
/* WARNING: Type propagation algorithm not settling */
/* WARNING: Enum "DT": Some values do not have unique names */
/* DWARF original prototype: bool do_read_symbols(Read_symbols * this, Workqueue * workqueue) */

bool __thiscall gold::Read_symbols::do_read_symbols(Read_symbols *this,Workqueue *workqueue)

{
  anon_union_16_2_edb7204a_for_basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_9
  *paVar1;
  File_read *this_00;
  _Rb_tree_header *p_Var2;
  Saved_views *pSVar3;
  Input_argument *pIVar4;
  Dirsearch *pDVar5;
  long filesize;
  long lVar6;
  char *__s;
  Task_token *pTVar7;
  Task_token *pTVar8;
  Mapfile *pMVar9;
  Input_objects *pIVar10;
  Layout *pLVar11;
  Symbol_table *pSVar12;
  Plugin_manager *this_01;
  Archive_member *pAVar13;
  Input_group *pIVar14;
  pointer pcVar15;
  bool bVar16;
  char cVar17;
  bool bVar18;
  int iVar19;
  Input_file *pIVar20;
  size_t sVar21;
  Archive *this_02;
  Task *pTVar22;
  Pluginobj *pPVar23;
  Read_symbols_data *pRVar24;
  Task *pTVar25;
  Object *elf_object;
  char *pcVar26;
  Read_symbols *pRVar27;
  bool *punconfigured;
  int read_size;
  uchar *ehdr;
  bool unconfigured;
  char local_48 [24];
  
  pIVar4 = this->input_argument_;
  if (pIVar4->is_file_ == false) {
    if (pIVar4->lib_ == (Input_file_lib *)0x0) {
      if (this->input_group_ != (Input_group *)0x0) {
                    /* WARNING: Subroutine does not return */
        do_gold_unreachable("../../gold/readsyms.cc",0x10b,"do_read_symbols");
      }
      do_group(this,workqueue);
      return true;
    }
  }
  else if (pIVar4->lib_ == (Input_file_lib *)0x0) {
    pIVar20 = (Input_file *)operator_new(0xe8);
    pDVar5 = this->dirpath_;
    paVar1 = &(pIVar20->found_name_).field_2;
    pIVar20->input_argument_ = &pIVar4->file_;
    (pIVar20->found_name_)._M_dataplus._M_p = (pointer)paVar1;
    (pIVar20->found_name_)._M_string_length = 0;
    (pIVar20->found_name_).field_2._M_local_buf[0] = '\0';
    (pIVar20->file_).name_._M_dataplus._M_p = (pointer)&(pIVar20->file_).name_.field_2;
    p_Var2 = &(pIVar20->file_).views_._M_t._M_impl.super__Rb_tree_header;
    (pIVar20->file_).views_._M_t._M_impl.super__Rb_tree_header._M_header._M_left =
         &p_Var2->_M_header;
    (pIVar20->file_).views_._M_t._M_impl.super__Rb_tree_header._M_header._M_right =
         &p_Var2->_M_header;
    pSVar3 = &(pIVar20->file_).saved_views_;
    (pIVar20->file_).name_._M_string_length = 0;
    (pIVar20->file_).name_.field_2._M_local_buf[0] = '\0';
    (pIVar20->file_).descriptor_ = -1;
    (pIVar20->file_).is_descriptor_opened_ = false;
    (pIVar20->file_).object_count_ = 0;
    (pIVar20->file_).size_ = 0;
    (pIVar20->file_).token_.is_blocker_ = false;
    (pIVar20->file_).token_.blockers_ = 0;
    (pIVar20->file_).token_.writer_ = (Task *)0x0;
    (pIVar20->file_).token_.waiting_.head_ = (Task *)0x0;
    (pIVar20->file_).token_.waiting_.tail_ = (Task *)0x0;
    (pIVar20->file_).views_._M_t._M_impl.super__Rb_tree_header._M_header._M_color = _S_red;
    (pIVar20->file_).views_._M_t._M_impl.super__Rb_tree_header._M_header._M_parent = (_Base_ptr)0x0;
    (pIVar20->file_).views_._M_t._M_impl.super__Rb_tree_header._M_node_count = 0;
    (pIVar20->file_).saved_views_.
    super__List_base<gold::File_read::View*,_std::allocator<gold::File_read::View*>_>._M_impl.
    _M_node.super__List_node_base._M_prev = (_List_node_base *)pSVar3;
    (pIVar20->file_).saved_views_.
    super__List_base<gold::File_read::View*,_std::allocator<gold::File_read::View*>_>._M_impl.
    _M_node.super__List_node_base._M_next = (_List_node_base *)pSVar3;
    (pIVar20->file_).saved_views_.
    super__List_base<gold::File_read::View*,_std::allocator<gold::File_read::View*>_>._M_impl.
    _M_node._M_size = 0;
    (pIVar20->file_).mapped_bytes_ = 0;
    (pIVar20->file_).released_ = true;
    (pIVar20->file_).whole_file_view_ = (View *)0x0;
    pIVar20->is_in_sysroot_ = false;
    pIVar20->format_ = FORMAT_NONE;
    iVar19 = Input_file::open(pIVar20,(char *)pDVar5,(int)this,&this->dirindex_);
    cVar17 = (char)iVar19;
    if (cVar17 != '\0') {
      filesize = (pIVar20->file_).size_;
      if (filesize != 0) {
        bVar16 = is_elf_object(pIVar20,0,&ehdr,&read_size);
        if ((read_size < 8) ||
           ((lVar6 = *(long *)ehdr, lVar6 != Archive::armagt && (Archive::armag != lVar6)))) {
          elf_object = (Object *)0x0;
          if (bVar16) {
            _unconfigured = _unconfigured & 0xffffffffffffff00;
            bVar18 = Input_file::will_search_for(pIVar20);
            punconfigured = (bool *)0x0;
            if (bVar18) {
              punconfigured = &unconfigured;
            }
            elf_object = make_elf_object(&(pIVar20->file_).name_,pIVar20,0,ehdr,(long)read_size,
                                         punconfigured);
          }
          if (parameters->options_ == (General_options *)0x0) {
                    /* WARNING: Subroutine does not return */
            do_gold_unreachable("../../gold/parameters.h",0x5c,"options");
          }
          this_01 = parameters->options_->plugins_;
          if ((this_01 != (Plugin_manager *)0x0) &&
             (pPVar23 = Plugin_manager::claim_file(this_01,pIVar20,0,filesize,elf_object),
             pPVar23 != (Pluginobj *)0x0)) {
            if (elf_object != (Object *)0x0) {
              (*elf_object->_vptr_Object[1])(elf_object);
            }
            pIVar20 = (pPVar23->super_Object).input_file_;
            if (pIVar20 != (Input_file *)0x0) {
              File_read::unlock(&pIVar20->file_,&this->super_Task);
            }
            pAVar13 = this->member_;
            if (pAVar13 == (Archive_member *)0x0) {
              pTVar22 = (Task *)operator_new(0x80);
              pIVar4 = this->input_argument_;
              pLVar11 = this->layout_;
              pSVar12 = this->symtab_;
              pIVar10 = this->input_objects_;
              pTVar22->_vptr_Task = (_func_int_varargs **)&PTR__Add_symbols_003acf00;
              pTVar25 = (Task *)this->next_blocker_;
              pTVar7 = this->this_blocker_;
              pTVar22[1].name_._M_dataplus._M_p = (pointer)pLVar11;
              pTVar22[1].name_._M_string_length = (size_type)pIVar4;
              pTVar22->list_next_ = (Task *)0x0;
              (pTVar22->name_)._M_dataplus._M_p = (pointer)&(pTVar22->name_).field_2;
              (pTVar22->name_)._M_string_length = 0;
              (pTVar22->name_).field_2._M_local_buf[0] = '\0';
              pTVar22->should_run_soon_ = false;
              pTVar22[1]._vptr_Task = (_func_int_varargs **)pIVar10;
              pTVar22[1].list_next_ = (Task *)pSVar12;
              pTVar22[1].name_.field_2._M_allocated_capacity = (size_type)pPVar23;
              *(undefined8 *)((long)&pTVar22[1].name_.field_2 + 8) = 0;
              *(undefined8 *)&pTVar22[1].should_run_soon_ = 0;
              pTVar22[2]._vptr_Task = (_func_int_varargs **)pTVar7;
              pTVar22[2].list_next_ = pTVar25;
              Workqueue::queue_next(workqueue,pTVar22);
              return (bool)cVar17;
            }
            pAVar13->sd_ = (Read_symbols_data *)0x0;
            pAVar13->obj_ = &pPVar23->super_Object;
            return (bool)cVar17;
          }
          if (!bVar16) {
            pTVar25 = (Task *)operator_new(0x90);
            pTVar7 = this->next_blocker_;
            pTVar8 = this->this_blocker_;
            pIVar4 = this->input_argument_;
            pIVar14 = this->input_group_;
            (pTVar25->name_).field_2._M_local_buf[0] = '\0';
            pMVar9 = this->mapfile_;
            pIVar10 = this->input_objects_;
            (pTVar25->name_)._M_dataplus._M_p = (pointer)&(pTVar25->name_).field_2;
            iVar19 = this->dirindex_;
            pDVar5 = this->dirpath_;
            *(Input_group **)&pTVar25[1].should_run_soon_ = pIVar14;
            pLVar11 = this->layout_;
            pSVar12 = this->symtab_;
            pTVar25[2]._vptr_Task = (_func_int_varargs **)pIVar4;
            pTVar25->list_next_ = (Task *)0x0;
            (pTVar25->name_)._M_string_length = 0;
            pTVar25->should_run_soon_ = false;
            pTVar25->_vptr_Task = (_func_int_varargs **)&PTR__Read_script_003ad080;
            pTVar25[1]._vptr_Task = (_func_int_varargs **)pSVar12;
            pTVar25[1].list_next_ = (Task *)pLVar11;
            pTVar25[1].name_._M_dataplus._M_p = (pointer)pDVar5;
            *(int *)&pTVar25[1].name_._M_string_length = iVar19;
            pTVar25[1].name_.field_2._M_allocated_capacity = (size_type)pIVar10;
            *(Mapfile **)((long)&pTVar25[1].name_.field_2 + 8) = pMVar9;
            pTVar25[2].list_next_ = (Task *)pIVar20;
            pTVar25[2].name_._M_dataplus._M_p = &pTVar8->is_blocker_;
            pTVar25[2].name_._M_string_length = (size_type)pTVar7;
            Workqueue::queue_soon(workqueue,pTVar25);
            return (bool)cVar17;
          }
          if (elf_object == (Object *)0x0) {
            if (unconfigured == false) {
              return false;
            }
            this_00 = &pIVar20->file_;
            incompatible_warning(this->input_argument_,pIVar20);
            File_read::release(this_00);
            pRVar27 = this;
            File_read::unlock(this_00,&this->super_Task);
            File_read::~File_read(this_00,(int)pRVar27);
            pcVar15 = (pIVar20->found_name_)._M_dataplus._M_p;
            if (paVar1 != (anon_union_16_2_edb7204a_for_basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_9
                           *)pcVar15) {
              operator_delete(pcVar15);
            }
            operator_delete(pIVar20,0xe8);
            this->dirindex_ = this->dirindex_ + 1;
            bVar16 = do_read_symbols(this,workqueue);
            return bVar16;
          }
          pRVar24 = (Read_symbols_data *)operator_new(0x80);
          pRVar24->section_headers = (File_view *)0x0;
          pRVar24->section_names = (File_view *)0x0;
          pRVar24->symbols = (File_view *)0x0;
          pRVar24->symbol_names = (File_view *)0x0;
          pRVar24->versym = (File_view *)0x0;
          pRVar24->verdef = (File_view *)0x0;
          pRVar24->verneed = (File_view *)0x0;
          (*elf_object->_vptr_Object[8])(elf_object,pRVar24);
          File_read::unlock(&pIVar20->file_,&this->super_Task);
          pAVar13 = this->member_;
          if (pAVar13 == (Archive_member *)0x0) {
            pTVar22 = (Task *)operator_new(0x80);
            pIVar4 = this->input_argument_;
            pLVar11 = this->layout_;
            pSVar12 = this->symtab_;
            pIVar10 = this->input_objects_;
            *(Read_symbols_data **)&pTVar22[1].should_run_soon_ = pRVar24;
            pTVar25 = (Task *)this->next_blocker_;
            pTVar7 = this->this_blocker_;
            (pTVar22->name_)._M_dataplus._M_p = (pointer)&(pTVar22->name_).field_2;
            pTVar22[1].name_._M_dataplus._M_p = (pointer)pLVar11;
            pTVar22[1].name_._M_string_length = (size_type)pIVar4;
            pTVar22->list_next_ = (Task *)0x0;
            (pTVar22->name_)._M_string_length = 0;
            (pTVar22->name_).field_2._M_local_buf[0] = '\0';
            pTVar22->should_run_soon_ = false;
            pTVar22->_vptr_Task = (_func_int_varargs **)&PTR__Add_symbols_003acf00;
            pTVar22[1]._vptr_Task = (_func_int_varargs **)pIVar10;
            pTVar22[1].list_next_ = (Task *)pSVar12;
            *(Object **)&pTVar22[1].name_.field_2 = elf_object;
            *(undefined8 *)((long)&pTVar22[1].name_.field_2 + 8) = 0;
            pTVar22[2]._vptr_Task = (_func_int_varargs **)pTVar7;
            pTVar22[2].list_next_ = pTVar25;
            Workqueue::queue_next(workqueue,pTVar22);
            return bVar16;
          }
          pIVar4 = this->input_argument_;
          pAVar13->sd_ = pRVar24;
          pAVar13->obj_ = elf_object;
          bVar16 = pIVar4->is_file_;
          if (bVar16 != false) {
            pAVar13->arg_serial_ = (pIVar4->file_).arg_serial_;
            return bVar16;
          }
        }
        else {
          bVar16 = this->input_argument_->is_file_;
          if (bVar16 != false) {
            __s = (this->input_argument_->file_).name_._M_dataplus._M_p;
            pcVar26 = (char *)0xffffffffffffffff;
            _unconfigured = local_48;
            if (__s != (char *)0x0) {
              sVar21 = strlen(__s);
              pcVar26 = __s + sVar21;
            }
            std::__cxx11::basic_string<char,_std::char_traits<char>,_std::allocator<char>_>::
            _M_construct<char_const*>((string *)&unconfigured,__s,pcVar26);
                    /* try { // try from 001f5e1a to 001f5e1e has its CatchHandler @ 001f63a4 */
            this_02 = (Archive *)operator_new(0x178);
                    /* try { // try from 001f5e42 to 001f5e46 has its CatchHandler @ 001f639c */
            Archive::Archive(this_02,(string *)&unconfigured,pIVar20,lVar6 == Archive::armagt,
                             this->dirpath_,&this->super_Task);
            if (_unconfigured != local_48) {
              operator_delete(_unconfigured);
            }
            Archive::setup(this_02);
            File_read::unlock(&this_02->input_file_->file_,&this->super_Task);
            pTVar22 = (Task *)operator_new(0x90);
            pTVar7 = this->next_blocker_;
            pTVar8 = this->this_blocker_;
            pTVar25 = (Task *)this->input_group_;
            pIVar4 = this->input_argument_;
            (pTVar22->name_).field_2._M_local_buf[0] = '\0';
            pMVar9 = this->mapfile_;
            iVar19 = this->dirindex_;
            (pTVar22->name_)._M_dataplus._M_p = (pointer)&(pTVar22->name_).field_2;
            pDVar5 = this->dirpath_;
            pIVar10 = this->input_objects_;
            *(Input_argument **)&pTVar22[1].should_run_soon_ = pIVar4;
            pLVar11 = this->layout_;
            pSVar12 = this->symtab_;
            pTVar22[2].list_next_ = pTVar25;
            pTVar22->list_next_ = (Task *)0x0;
            (pTVar22->name_)._M_string_length = 0;
            pTVar22->should_run_soon_ = false;
            pTVar22->_vptr_Task = (_func_int_varargs **)&PTR__Add_archive_symbols_003ae430;
            pTVar22[1]._vptr_Task = (_func_int_varargs **)pSVar12;
            pTVar22[1].list_next_ = (Task *)pLVar11;
            pTVar22[1].name_._M_dataplus._M_p = (pointer)pIVar10;
            pTVar22[1].name_._M_string_length = (size_type)pDVar5;
            *(int *)&pTVar22[1].name_.field_2 = iVar19;
            *(Mapfile **)((long)&pTVar22[1].name_.field_2 + 8) = pMVar9;
            pTVar22[2]._vptr_Task = (_func_int_varargs **)this_02;
            pTVar22[2].name_._M_dataplus._M_p = &pTVar8->is_blocker_;
            pTVar22[2].name_._M_string_length = (size_type)pTVar7;
            Workqueue::queue_next(workqueue,pTVar22);
            return bVar16;
          }
        }
                    /* WARNING: Subroutine does not return */
        do_gold_unreachable("../../gold/options.h",0x828,"file");
      }
      pcVar15 = (pIVar20->file_).name_._M_dataplus._M_p;
      pcVar26 = (char *)gettext("%s: file is empty");
      gold_error(pcVar26,pcVar15);
    }
    return false;
  }
  bVar16 = do_lib_group(this,workqueue);
  return bVar16;
}



uint FUN_001f5c10(long param_1,undefined8 param_2)

{
  undefined4 uVar1;
  undefined8 uVar2;
  long lVar3;
  char *__s;
  undefined8 uVar4;
  undefined8 uVar5;
  undefined8 uVar6;
  undefined8 uVar7;
  undefined8 uVar8;
  undefined8 uVar9;
  byte *pbVar10;
  byte bVar11;
  char cVar12;
  uint uVar13;
  undefined8 *puVar14;
  size_t sVar15;
  long lVar16;
  undefined8 uVar17;
  undefined8 *puVar18;
  long *plVar19;
  char *pcVar20;
  undefined1 **ppuVar21;
  int local_64;
  long *local_60;
  undefined1 *local_58 [2];
  undefined1 local_48 [24];
  
  pcVar20 = *(char **)(param_1 + 0x68);
  if (*pcVar20 == '\0') {
    if (*(long *)(pcVar20 + 0x70) == 0) {
      if (*(long *)(param_1 + 0x70) != 0) {
                    /* WARNING: Subroutine does not return */
        FUN_0016cdf0("../../gold/readsyms.cc",0x10b,"do_read_symbols");
      }
      FUN_001f5780();
      return 1;
    }
  }
  else if (*(long *)(pcVar20 + 0x70) == 0) {
    puVar14 = (undefined8 *)FUN_00275550(0xe8);
    uVar2 = *(undefined8 *)(param_1 + 0x50);
    *puVar14 = pcVar20 + 8;
    puVar14[1] = puVar14 + 3;
    puVar14[2] = 0;
    *(undefined1 *)(puVar14 + 3) = 0;
    puVar14[5] = puVar14 + 7;
    puVar14[0x13] = puVar14 + 0x11;
    puVar14[0x14] = puVar14 + 0x11;
    puVar14[6] = 0;
    *(undefined1 *)(puVar14 + 7) = 0;
    *(undefined4 *)(puVar14 + 9) = 0xffffffff;
    *(undefined1 *)((long)puVar14 + 0x4c) = 0;
    *(undefined4 *)(puVar14 + 10) = 0;
    puVar14[0xb] = 0;
    *(undefined1 *)(puVar14 + 0xc) = 0;
    *(undefined4 *)((long)puVar14 + 100) = 0;
    puVar14[0xd] = 0;
    puVar14[0xe] = 0;
    puVar14[0xf] = 0;
    *(undefined4 *)(puVar14 + 0x11) = 0;
    puVar14[0x12] = 0;
    puVar14[0x15] = 0;
    puVar14[0x17] = puVar14 + 0x16;
    puVar14[0x16] = puVar14 + 0x16;
    puVar14[0x18] = 0;
    puVar14[0x19] = 0;
    *(undefined1 *)(puVar14 + 0x1a) = 1;
    puVar14[0x1b] = 0;
    *(undefined1 *)(puVar14 + 0x1c) = 0;
    *(undefined4 *)((long)puVar14 + 0xe4) = 0;
    uVar13 = FUN_0016ca50(puVar14,uVar2,param_1,param_1 + 0x58);
    if ((char)uVar13 != '\0') {
      lVar16 = puVar14[0xb];
      if (lVar16 != 0) {
        bVar11 = FUN_0019b230(puVar14,0,&local_60,&local_64);
        if ((local_64 < 8) ||
           ((lVar3 = *local_60, lVar3 != s__<thin>__<arch>_N4gold7ArchiveE_00322e50._0_8_ &&
            (s__<thin>__<arch>_N4gold7ArchiveE_00322e50._8_8_ != lVar3)))) {
          plVar19 = (long *)0x0;
          if (bVar11 != 0) {
            local_58[0] = (undefined1 *)((ulong)local_58[0] & 0xffffffffffffff00);
            cVar12 = FUN_0016b000(puVar14);
            ppuVar21 = (undefined1 **)0x0;
            if (cVar12 != '\0') {
              ppuVar21 = local_58;
            }
            plVar19 = (long *)FUN_0019b3d0(puVar14 + 5,puVar14,0,local_60,(long)local_64,ppuVar21);
          }
          if (*(long *)(PTR_DAT_003be6b0 + 0x10) == 0) {
                    /* WARNING: Subroutine does not return */
            FUN_0016cdf0("../../gold/parameters.h",0x5c,"options");
          }
          lVar3 = *(long *)(*(long *)(PTR_DAT_003be6b0 + 0x10) + 0x9058);
          if ((lVar3 != 0) && (lVar16 = FUN_001f1940(lVar3,puVar14,0,lVar16,plVar19), lVar16 != 0))
          {
            if (plVar19 != (long *)0x0) {
              (**(code **)(*plVar19 + 8))(plVar19);
            }
            if (*(long *)(lVar16 + 0x28) != 0) {
              FUN_0016ae30(*(long *)(lVar16 + 0x28) + 0x28,param_1);
            }
            plVar19 = *(long **)(param_1 + 0x78);
            if (plVar19 == (long *)0x0) {
              puVar14 = (undefined8 *)FUN_00275550(0x80);
              uVar2 = *(undefined8 *)(param_1 + 0x68);
              uVar17 = *(undefined8 *)(param_1 + 0x48);
              uVar4 = *(undefined8 *)(param_1 + 0x40);
              uVar5 = *(undefined8 *)(param_1 + 0x38);
              *puVar14 = &PTR_FUN_003acf00;
              uVar6 = *(undefined8 *)(param_1 + 0x88);
              uVar7 = *(undefined8 *)(param_1 + 0x80);
              puVar14[9] = uVar17;
              puVar14[10] = uVar2;
              puVar14[1] = 0;
              puVar14[2] = puVar14 + 4;
              puVar14[3] = 0;
              *(undefined1 *)(puVar14 + 4) = 0;
              *(undefined1 *)(puVar14 + 6) = 0;
              puVar14[7] = uVar5;
              puVar14[8] = uVar4;
              puVar14[0xb] = lVar16;
              puVar14[0xc] = 0;
              puVar14[0xd] = 0;
              puVar14[0xe] = uVar7;
              puVar14[0xf] = uVar6;
              FUN_002300a0(param_2,puVar14);
              return uVar13;
            }
            plVar19[1] = 0;
            *plVar19 = lVar16;
            return uVar13;
          }
          if (bVar11 == 0) {
            puVar18 = (undefined8 *)FUN_00275550(0x90);
            uVar2 = *(undefined8 *)(param_1 + 0x88);
            uVar17 = *(undefined8 *)(param_1 + 0x80);
            uVar4 = *(undefined8 *)(param_1 + 0x68);
            uVar5 = *(undefined8 *)(param_1 + 0x70);
            *(undefined1 *)(puVar18 + 4) = 0;
            uVar6 = *(undefined8 *)(param_1 + 0x60);
            uVar7 = *(undefined8 *)(param_1 + 0x38);
            puVar18[2] = puVar18 + 4;
            uVar1 = *(undefined4 *)(param_1 + 0x58);
            uVar8 = *(undefined8 *)(param_1 + 0x50);
            puVar18[0xd] = uVar5;
            uVar5 = *(undefined8 *)(param_1 + 0x48);
            uVar9 = *(undefined8 *)(param_1 + 0x40);
            puVar18[0xe] = uVar4;
            puVar18[1] = 0;
            puVar18[3] = 0;
            *(undefined1 *)(puVar18 + 6) = 0;
            *puVar18 = &PTR_FUN_003ad080;
            puVar18[7] = uVar9;
            puVar18[8] = uVar5;
            puVar18[9] = uVar8;
            *(undefined4 *)(puVar18 + 10) = uVar1;
            puVar18[0xb] = uVar7;
            puVar18[0xc] = uVar6;
            puVar18[0xf] = puVar14;
            puVar18[0x10] = uVar17;
            puVar18[0x11] = uVar2;
            FUN_00230080(param_2,puVar18);
            return uVar13;
          }
          if (plVar19 == (long *)0x0) {
            if ((char)local_58[0] == '\0') {
              return 0;
            }
            puVar18 = puVar14 + 5;
            FUN_001f51c0(*(undefined8 *)(param_1 + 0x68),puVar14);
            FUN_0016ad00(puVar18);
            FUN_0016ae30(puVar18,param_1);
            FUN_0016b0b0(puVar18);
            if (puVar14 + 3 != (undefined8 *)puVar14[1]) {
              FUN_00276d20();
            }
            thunk_FUN_00276d20(puVar14,0xe8);
            *(int *)(param_1 + 0x58) = *(int *)(param_1 + 0x58) + 1;
            uVar13 = FUN_001f5c10(param_1,param_2);
            return uVar13;
          }
          puVar18 = (undefined8 *)FUN_00275550(0x80);
          *puVar18 = 0;
          puVar18[1] = 0;
          puVar18[3] = 0;
          puVar18[6] = 0;
          puVar18[8] = 0;
          puVar18[10] = 0;
          puVar18[0xd] = 0;
          (**(code **)(*plVar19 + 0x40))(plVar19,puVar18);
          FUN_0016ae30(puVar14 + 5,param_1);
          puVar14 = *(undefined8 **)(param_1 + 0x78);
          if (puVar14 == (undefined8 *)0x0) {
            puVar14 = (undefined8 *)FUN_00275550(0x80);
            uVar2 = *(undefined8 *)(param_1 + 0x68);
            uVar17 = *(undefined8 *)(param_1 + 0x48);
            uVar4 = *(undefined8 *)(param_1 + 0x40);
            uVar5 = *(undefined8 *)(param_1 + 0x38);
            puVar14[0xd] = puVar18;
            uVar6 = *(undefined8 *)(param_1 + 0x88);
            uVar7 = *(undefined8 *)(param_1 + 0x80);
            puVar14[2] = puVar14 + 4;
            puVar14[9] = uVar17;
            puVar14[10] = uVar2;
            puVar14[1] = 0;
            puVar14[3] = 0;
            *(undefined1 *)(puVar14 + 4) = 0;
            *(undefined1 *)(puVar14 + 6) = 0;
            *puVar14 = &PTR_FUN_003acf00;
            puVar14[7] = uVar5;
            puVar14[8] = uVar4;
            puVar14[0xb] = plVar19;
            puVar14[0xc] = 0;
            puVar14[0xe] = uVar7;
            puVar14[0xf] = uVar6;
            FUN_002300a0(param_2,puVar14);
            return (uint)bVar11;
          }
          pbVar10 = *(byte **)(param_1 + 0x68);
          puVar14[1] = puVar18;
          *puVar14 = plVar19;
          bVar11 = *pbVar10;
          if (bVar11 != 0) {
            *(undefined4 *)(puVar14 + 2) = *(undefined4 *)(pbVar10 + 100);
            return (uint)bVar11;
          }
        }
        else {
          bVar11 = **(byte **)(param_1 + 0x68);
          if (bVar11 != 0) {
            __s = *(char **)(*(byte **)(param_1 + 0x68) + 8);
            pcVar20 = (char *)0xffffffffffffffff;
            local_58[0] = local_48;
            if (__s != (char *)0x0) {
              sVar15 = strlen(__s);
              pcVar20 = __s + sVar15;
            }
            FUN_0015cbe0(local_58,__s,pcVar20);
                    /* try { // try from 001f5e1a to 001f5e1e has its CatchHandler @ 001f63a4 */
            lVar16 = FUN_00275550(0x178);
                    /* try { // try from 001f5e42 to 001f5e46 has its CatchHandler @ 001f639c */
            FUN_00234b40(lVar16,local_58,puVar14,
                         lVar3 == s__<thin>__<arch>_N4gold7ArchiveE_00322e50._0_8_,
                         *(undefined8 *)(param_1 + 0x50),param_1);
            if (local_58[0] != local_48) {
              FUN_00276d20();
            }
            FUN_00235c40(lVar16);
            FUN_0016ae30(*(long *)(lVar16 + 0x38) + 0x28,param_1);
            puVar14 = (undefined8 *)FUN_00275550(0x90);
            uVar2 = *(undefined8 *)(param_1 + 0x88);
            uVar17 = *(undefined8 *)(param_1 + 0x80);
            uVar4 = *(undefined8 *)(param_1 + 0x70);
            uVar5 = *(undefined8 *)(param_1 + 0x68);
            *(undefined1 *)(puVar14 + 4) = 0;
            uVar6 = *(undefined8 *)(param_1 + 0x60);
            uVar1 = *(undefined4 *)(param_1 + 0x58);
            puVar14[2] = puVar14 + 4;
            uVar7 = *(undefined8 *)(param_1 + 0x50);
            uVar8 = *(undefined8 *)(param_1 + 0x38);
            puVar14[0xd] = uVar5;
            uVar5 = *(undefined8 *)(param_1 + 0x48);
            uVar9 = *(undefined8 *)(param_1 + 0x40);
            puVar14[0xf] = uVar4;
            puVar14[1] = 0;
            puVar14[3] = 0;
            *(undefined1 *)(puVar14 + 6) = 0;
            *puVar14 = &PTR_FUN_003ae430;
            puVar14[7] = uVar9;
            puVar14[8] = uVar5;
            puVar14[9] = uVar8;
            puVar14[10] = uVar7;
            *(undefined4 *)(puVar14 + 0xb) = uVar1;
            puVar14[0xc] = uVar6;
            puVar14[0xe] = lVar16;
            puVar14[0x10] = uVar17;
            puVar14[0x11] = uVar2;
            FUN_002300a0(param_2,puVar14);
            return (uint)bVar11;
          }
        }
                    /* WARNING: Subroutine does not return */
        FUN_0016cdf0("../../gold/options.h",0x828,&DAT_0031b73b);
      }
      uVar2 = puVar14[5];
      uVar17 = gettext("%s: file is empty");
      FUN_001690a0(uVar17,uVar2);
    }
    return 0;
  }
  uVar13 = FUN_001f54c0(param_1,param_2);
  return uVar13;
}


PUSH R15
PUSH R14
PUSH R13
MOV R13,RSI
PUSH R12
PUSH RBP
MOV RBP,RDI
PUSH RBX
SUB RSP,0x48
MOV R12,qword ptr [RDI + 0x68]
CMP byte ptr [R12],0x0
MOV R15,qword ptr [R12 + 0x70]
JNZ 0x001f5c60
TEST R15,R15
JZ 0x001f5f48
MOV RSI,R13
MOV RDI,RBP
CALL 0x001f54c0
MOV R12D,EAX
ADD RSP,0x48
MOV EAX,R12D
POP RBX
POP RBP
POP R12
POP R13
POP R14
POP R15
RET
TEST R15,R15
JNZ 0x001f5c3d
MOV EDI,0xe8
ADD R12,0x8
CALL 0x00275550
MOV RSI,qword ptr [RBP + 0x50]
LEA RCX,[RBP + 0x58]
MOV RDX,RBP
LEA R14,[RAX + 0x18]
MOV RBX,RAX
MOV qword ptr [RAX],R12
LEA RAX,[RAX + 0x38]
MOV qword ptr [RAX + -0x30],R14
MOV RDI,RBX
MOV qword ptr [RAX + -0x28],0x0
MOV byte ptr [RAX + -0x20],0x0
MOV qword ptr [RBX + 0x28],RAX
LEA RAX,[RBX + 0x88]
MOV qword ptr [RBX + 0x98],RAX
MOV qword ptr [RBX + 0xa0],RAX
LEA RAX,[RBX + 0xb0]
MOV qword ptr [RBX + 0x30],0x0
MOV byte ptr [RBX + 0x38],0x0
MOV dword ptr [RBX + 0x48],0xffffffff
MOV byte ptr [RBX + 0x4c],0x0
MOV dword ptr [RBX + 0x50],0x0
MOV qword ptr [RBX + 0x58],0x0
MOV byte ptr [RBX + 0x60],0x0
MOV dword ptr [RBX + 0x64],0x0
MOV qword ptr [RBX + 0x68],0x0
MOV qword ptr [RBX + 0x70],0x0
MOV qword ptr [RBX + 0x78],0x0
MOV dword ptr [RBX + 0x88],0x0
MOV qword ptr [RBX + 0x90],0x0
MOV qword ptr [RBX + 0xa8],0x0
MOV qword ptr [RBX + 0xb8],RAX
MOV qword ptr [RBX + 0xb0],RAX
MOV qword ptr [RBX + 0xc0],0x0
MOV qword ptr [RBX + 0xc8],0x0
MOV byte ptr [RBX + 0xd0],0x1
MOV qword ptr [RBX + 0xd8],0x0
MOV byte ptr [RBX + 0xe0],0x0
MOV dword ptr [RBX + 0xe4],0x0
CALL 0x0016ca50
MOV R12D,EAX
TEST AL,AL
JZ 0x001f5f3d
MOV R11,qword ptr [RBX + 0x58]
TEST R11,R11
JZ 0x001f5f20
XOR ESI,ESI
LEA RCX,[RSP + 0x14]
LEA RDX,[RSP + 0x18]
MOV RDI,RBX
MOV qword ptr [RSP],R11
CALL 0x0019b230
CMP dword ptr [RSP + 0x14],0x7
MOV R11,qword ptr [RSP]
MOV R10D,EAX
JLE 0x001f5f75
MOV RAX,qword ptr [RSP + 0x18]
MOV RDX,qword ptr [RAX]
CMP RDX,qword ptr [0x00322e50]
MOV qword ptr [RSP],RDX
JNZ 0x001f5f68
MOV RAX,qword ptr [RBP + 0x68]
MOVZX R12D,byte ptr [RAX]
TEST R12B,R12B
JZ 0x001f636c
MOV R15,qword ptr [RAX + 0x8]
LEA R14,[RSP + 0x20]
MOV RDX,-0x1
LEA RAX,[R14 + 0x10]
MOV qword ptr [RSP + 0x20],RAX
TEST R15,R15
JZ 0x001f5e0a
MOV RDI,R15
CALL 0x0013e490
LEA RDX,[R15 + RAX*0x1]
MOV RDI,R14
MOV RSI,R15
CALL 0x0015cbe0
MOV EDI,0x178
CALL 0x00275550
MOV R15,RAX
XOR ECX,ECX
MOV RAX,qword ptr [RSP]
MOV R8,qword ptr [RBP + 0x50]
CMP RAX,qword ptr [0x00322e50]
MOV R9,RBP
MOV RDX,RBX
MOV RSI,R14
SETZ CL
MOV RDI,R15
CALL 0x00234b40
MOV RDI,qword ptr [RSP + 0x20]
ADD R14,0x10
CMP RDI,R14
JZ 0x001f5e5a
CALL 0x00276d20
MOV RDI,R15
CALL 0x00235c40
MOV RAX,qword ptr [R15 + 0x38]
MOV RSI,RBP
LEA RDI,[RAX + 0x28]
CALL 0x0016ae30
MOV EDI,0x90
CALL 0x00275550
MOV RDX,qword ptr [RBP + 0x88]
MOV RCX,qword ptr [RBP + 0x80]
MOV RSI,qword ptr [RBP + 0x70]
MOV RDI,qword ptr [RBP + 0x68]
LEA R14,[RAX + 0x20]
MOV byte ptr [RAX + 0x20],0x0
MOV R8,qword ptr [RBP + 0x60]
MOV R9D,dword ptr [RBP + 0x58]
MOV qword ptr [RAX + 0x10],R14
LEA R14,[0x3ae430]
MOV R10,qword ptr [RBP + 0x50]
MOV R11,qword ptr [RBP + 0x38]
MOV qword ptr [RAX + 0x68],RDI
MOV RDI,R13
MOV RBX,qword ptr [RBP + 0x48]
MOV RBP,qword ptr [RBP + 0x40]
MOV qword ptr [RAX + 0x78],RSI
MOV RSI,RAX
MOV qword ptr [RAX + 0x8],0x0
MOV qword ptr [RAX + 0x18],0x0
MOV byte ptr [RAX + 0x30],0x0
MOV qword ptr [RAX],R14
MOV qword ptr [RAX + 0x38],RBP
MOV qword ptr [RAX + 0x40],RBX
MOV qword ptr [RAX + 0x48],R11
MOV qword ptr [RAX + 0x50],R10
MOV dword ptr [RAX + 0x58],R9D
MOV qword ptr [RAX + 0x60],R8
MOV qword ptr [RAX + 0x70],R15
MOV qword ptr [RAX + 0x80],RCX
MOV qword ptr [RAX + 0x88],RDX
CALL 0x002300a0
JMP 0x001f5c4b
MOV RBX,qword ptr [RBX + 0x28]
LEA RDI,[0x31b59f]
CALL 0x0013e320
MOV RDI,RAX
MOV RSI,RBX
XOR EAX,EAX
CALL 0x001690a0
XOR R12D,R12D
JMP 0x001f5c4b
CMP qword ptr [RDI + 0x70],0x0
JNZ 0x001f6354
CALL 0x001f5780
MOV R12D,0x1
JMP 0x001f5c4b
CMP qword ptr [0x00322e58],RDX
JZ 0x001f5dcf
TEST R10B,R10B
JNZ 0x001f6168
MOV RAX,qword ptr [0x003be6b0]
MOV RAX,qword ptr [RAX + 0x10]
TEST RAX,RAX
JZ 0x001f6384
MOV RDI,qword ptr [RAX + 0x9058]
TEST RDI,RDI
JZ 0x001f6010
XOR EDX,EDX
MOV R8,R15
MOV RCX,R11
MOV RSI,RBX
MOV byte ptr [RSP],R10B
CALL 0x001f1940
MOVZX R10D,byte ptr [RSP]
TEST RAX,RAX
MOV RDX,RAX
JZ 0x001f6010
TEST R15,R15
JZ 0x001f5fd5
MOV qword ptr [RSP],RAX
MOV RAX,qword ptr [R15]
MOV RDI,R15
CALL qword ptr [RAX + 0x8]
MOV RDX,qword ptr [RSP]
MOV RDI,qword ptr [RDX + 0x28]
TEST RDI,RDI
JZ 0x001f5ff2
ADD RDI,0x28
MOV RSI,RBP
MOV qword ptr [RSP],RDX
CALL 0x0016ae30
MOV RDX,qword ptr [RSP]
MOV RAX,qword ptr [RBP + 0x78]
TEST RAX,RAX
JZ 0x001f6228
MOV qword ptr [RAX + 0x8],0x0
MOV qword ptr [RAX],RDX
JMP 0x001f5c4b
TEST R10B,R10B
JZ 0x001f60c0
TEST R15,R15
JZ 0x001f61c0
MOV EDI,0x80
MOV byte ptr [RSP],R10B
CALL 0x00275550
MOV RDI,R15
MOV R12,RAX
MOV qword ptr [RAX],0x0
MOV qword ptr [RAX + 0x8],0x0
MOV RSI,R12
MOV qword ptr [RAX + 0x18],0x0
MOV qword ptr [RAX + 0x30],0x0
MOV qword ptr [RAX + 0x40],0x0
MOV qword ptr [RAX + 0x50],0x0
MOV qword ptr [RAX + 0x68],0x0
MOV RAX,qword ptr [R15]
CALL qword ptr [RAX + 0x40]
LEA RDI,[RBX + 0x28]
MOV RSI,RBP
CALL 0x0016ae30
MOV RAX,qword ptr [RBP + 0x78]
MOVZX R10D,byte ptr [RSP]
TEST RAX,RAX
JZ 0x001f62be
MOV RDX,qword ptr [RBP + 0x68]
MOV qword ptr [RAX + 0x8],R12
MOV qword ptr [RAX],R15
MOVZX R12D,byte ptr [RDX]
TEST R12B,R12B
JZ 0x001f636c
MOV EDX,dword ptr [RDX + 0x64]
MOV dword ptr [RAX + 0x10],EDX
JMP 0x001f5c4b
MOV EDI,0x90
CALL 0x00275550
MOV RDX,qword ptr [RBP + 0x88]
MOV RCX,qword ptr [RBP + 0x80]
MOV RSI,qword ptr [RBP + 0x68]
MOV RDI,qword ptr [RBP + 0x70]
LEA R15,[RAX + 0x20]
MOV byte ptr [RAX + 0x20],0x0
MOV R8,qword ptr [RBP + 0x60]
MOV R9,qword ptr [RBP + 0x38]
MOV qword ptr [RAX + 0x10],R15
LEA R15,[0x3ad080]
MOV R10D,dword ptr [RBP + 0x58]
MOV R11,qword ptr [RBP + 0x50]
MOV qword ptr [RAX + 0x68],RDI
MOV RDI,R13
MOV R14,qword ptr [RBP + 0x48]
MOV RBP,qword ptr [RBP + 0x40]
MOV qword ptr [RAX + 0x70],RSI
MOV RSI,RAX
MOV qword ptr [RAX + 0x8],0x0
MOV qword ptr [RAX + 0x18],0x0
MOV byte ptr [RAX + 0x30],0x0
MOV qword ptr [RAX],R15
MOV qword ptr [RAX + 0x38],RBP
MOV qword ptr [RAX + 0x40],R14
MOV qword ptr [RAX + 0x48],R11
MOV dword ptr [RAX + 0x50],R10D
MOV qword ptr [RAX + 0x58],R9
MOV qword ptr [RAX + 0x60],R8
MOV qword ptr [RAX + 0x78],RBX
MOV qword ptr [RAX + 0x80],RCX
MOV qword ptr [RAX + 0x88],RDX
CALL 0x00230080
JMP 0x001f5c4b
MOV RDI,RBX
MOV qword ptr [RSP + 0x8],R11
MOV byte ptr [RSP],R10B
MOV byte ptr [RSP + 0x20],0x0
CALL 0x0016b000
LEA RDX,[RSP + 0x20]
LEA RDI,[RBX + 0x28]
MOV RSI,RBX
TEST AL,AL
MOVSXD R8,dword ptr [RSP + 0x14]
MOV RCX,qword ptr [RSP + 0x18]
CMOVNZ R15,RDX
XOR EDX,EDX
MOV R9,R15
CALL 0x0019b3d0
MOV R11,qword ptr [RSP + 0x8]
MOVZX R10D,byte ptr [RSP]
MOV R15,RAX
JMP 0x001f5f7e
CMP byte ptr [RSP + 0x20],0x0
JZ 0x001f5f3d
MOV RDI,qword ptr [RBP + 0x68]
MOV RSI,RBX
LEA R12,[RBX + 0x28]
CALL 0x001f51c0
MOV RDI,R12
CALL 0x0016ad00
MOV RSI,RBP
MOV RDI,R12
CALL 0x0016ae30
MOV RDI,R12
CALL 0x0016b0b0
MOV RDI,qword ptr [RBX + 0x8]
CMP R14,RDI
JZ 0x001f6204
CALL 0x00276d20
MOV ESI,0xe8
MOV RDI,RBX
CALL 0x00276d10
ADD dword ptr [RBP + 0x58],0x1
MOV RSI,R13
MOV RDI,RBP
CALL 0x001f5c10
MOV R12D,EAX
JMP 0x001f5c4b
MOV EDI,0x80
MOV qword ptr [RSP],RDX
CALL 0x00275550
LEA RDX,[0x3acf00]
MOV RSI,qword ptr [RBP + 0x68]
MOV RDI,qword ptr [RBP + 0x48]
MOV R8,qword ptr [RBP + 0x40]
MOV R9,qword ptr [RBP + 0x38]
MOV qword ptr [RAX],RDX
LEA R10,[RAX + 0x20]
MOV R11,qword ptr [RBP + 0x88]
MOV RCX,qword ptr [RBP + 0x80]
MOV qword ptr [RAX + 0x48],RDI
MOV RDI,R13
MOV RDX,qword ptr [RSP]
MOV qword ptr [RAX + 0x50],RSI
MOV RSI,RAX
MOV qword ptr [RAX + 0x8],0x0
MOV qword ptr [RAX + 0x10],R10
MOV qword ptr [RAX + 0x18],0x0
MOV byte ptr [RAX + 0x20],0x0
MOV byte ptr [RAX + 0x30],0x0
MOV qword ptr [RAX + 0x38],R9
MOV qword ptr [RAX + 0x40],R8
MOV qword ptr [RAX + 0x58],RDX
MOV qword ptr [RAX + 0x60],0x0
MOV qword ptr [RAX + 0x68],0x0
MOV qword ptr [RAX + 0x70],RCX
MOV qword ptr [RAX + 0x78],R11
CALL 0x002300a0
JMP 0x001f5c4b
MOV EDI,0x80
MOV byte ptr [RSP],R10B
CALL 0x00275550
MOV RSI,qword ptr [RBP + 0x68]
MOV RDI,qword ptr [RBP + 0x48]
LEA RBX,[RAX + 0x20]
MOV R8,qword ptr [RBP + 0x40]
MOV R11,qword ptr [RBP + 0x38]
MOV qword ptr [RAX + 0x68],R12
MOV RDX,qword ptr [RBP + 0x88]
MOV RCX,qword ptr [RBP + 0x80]
MOV qword ptr [RAX + 0x10],RBX
LEA RBX,[0x3acf00]
MOV qword ptr [RAX + 0x48],RDI
MOV RDI,R13
MOV qword ptr [RAX + 0x50],RSI
MOV RSI,RAX
MOV qword ptr [RAX + 0x8],0x0
MOV qword ptr [RAX + 0x18],0x0
MOV byte ptr [RAX + 0x20],0x0
MOV byte ptr [RAX + 0x30],0x0
MOV qword ptr [RAX],RBX
MOV qword ptr [RAX + 0x38],R11
MOV qword ptr [RAX + 0x40],R8
MOV qword ptr [RAX + 0x58],R15
MOV qword ptr [RAX + 0x60],0x0
MOV qword ptr [RAX + 0x70],RCX
MOV qword ptr [RAX + 0x78],RDX
CALL 0x002300a0
MOVZX R10D,byte ptr [RSP]
MOV R12D,R10D
JMP 0x001f5c4b
LEA RDX,[0x31b6d0]
MOV ESI,0x10b
LEA RDI,[0x31b540]
CALL 0x0016cdf0
LEA RDX,[0x31b73b]
MOV ESI,0x828
LEA RDI,[0x30eacd]
CALL 0x0016cdf0
LEA RDX,[0x31b740]
MOV ESI,0x5c
LEA RDI,[0x30dc70]
CALL 0x0016cdf0
(translation_unit "uint FUN_001f5c10(long param_1,undefined8 param_2)\n\n{\n  undefined4 uVar1;\n  undefined8 uVar2;\n  long lVar3;\n  char *__s;\n  undefined8 uVar4;\n  undefined8 uVar5;\n  undefined8 uVar6;\n  undefined8 uVar7;\n  undefined8 uVar8;\n  undefined8 uVar9;\n  byte *pbVar10;\n  byte bVar11;\n  char cVar12;\n  uint uVar13;\n  undefined8 *puVar14;\n  size_t sVar15;\n  long lVar16;\n  undefined8 uVar17;\n  undefined8 *puVar18;\n  long *plVar19;\n  char *pcVar20;\n  undefined1 **ppuVar21;\n  int local_64;\n  long *local_60;\n  undefined1 *local_58 [2];\n  undefined1 local_48 [24];\n  \n  pcVar20 = *(char **)(param_1 + 0x68);\n  if (*pcVar20 == '\0') {\n    if (*(long *)(pcVar20 + 0x70) == 0) {\n      if (*(long *)(param_1 + 0x70) != 0) {\n                    /* WARNING: Subroutine does not return */\n        FUN_0016cdf0("../../gold/readsyms.cc",0x10b,"do_read_symbols");\n      }\n      FUN_001f5780();\n      return 1;\n    }\n  }\n  else if (*(long *)(pcVar20 + 0x70) == 0) {\n    puVar14 = (undefined8 *)FUN_00275550(0xe8);\n    uVar2 = *(undefined8 *)(param_1 + 0x50);\n    *puVar14 = pcVar20 + 8;\n    puVar14[1] = puVar14 + 3;\n    puVar14[2] = 0;\n    *(undefined1 *)(puVar14 + 3) = 0;\n    puVar14[5] = puVar14 + 7;\n    puVar14[0x13] = puVar14 + 0x11;\n    puVar14[0x14] = puVar14 + 0x11;\n    puVar14[6] = 0;\n    *(undefined1 *)(puVar14 + 7) = 0;\n    *(undefined4 *)(puVar14 + 9) = 0xffffffff;\n    *(undefined1 *)((long)puVar14 + 0x4c) = 0;\n    *(undefined4 *)(puVar14 + 10) = 0;\n    puVar14[0xb] = 0;\n    *(undefined1 *)(puVar14 + 0xc) = 0;\n    *(undefined4 *)((long)puVar14 + 100) = 0;\n    puVar14[0xd] = 0;\n    puVar14[0xe] = 0;\n    puVar14[0xf] = 0;\n    *(undefined4 *)(puVar14 + 0x11) = 0;\n    puVar14[0x12] = 0;\n    puVar14[0x15] = 0;\n    puVar14[0x17] = puVar14 + 0x16;\n    puVar14[0x16] = puVar14 + 0x16;\n    puVar14[0x18] = 0;\n    puVar14[0x19] = 0;\n    *(undefined1 *)(puVar14 + 0x1a) = 1;\n    puVar14[0x1b] = 0;\n    *(undefined1 *)(puVar14 + 0x1c) = 0;\n    *(undefined4 *)((long)puVar14 + 0xe4) = 0;\n    uVar13 = FUN_0016ca50(puVar14,uVar2,param_1,param_1 + 0x58);\n    if ((char)uVar13 != '\0') {\n      lVar16 = puVar14[0xb];\n      if (lVar16 != 0) {\n        bVar11 = FUN_0019b230(puVar14,0,&local_60,&local_64);\n        if ((local_64 < 8) ||\n           ((lVar3 = *local_60, lVar3 != s__<thin>__<arch>_N4gold7ArchiveE_00322e50._0_8_ &&\n            (s__<thin>__<arch>_N4gold7ArchiveE_00322e50._8_8_ != lVar3)))) {\n          plVar19 = (long *)0x0;\n          if (bVar11 != 0) {\n            local_58[0] = (undefined1 *)((ulong)local_58[0] & 0xffffffffffffff00);\n            cVar12 = FUN_0016b000(puVar14);\n            ppuVar21 = (undefined1 **)0x0;\n            if (cVar12 != '\0') {\n              ppuVar21 = local_58;\n            }\n            plVar19 = (long *)FUN_0019b3d0(puVar14 + 5,puVar14,0,local_60,(long)local_64,ppuVar21);\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          lVar3 = *(long *)(*(long *)(PTR_DAT_003be6b0 + 0x10) + 0x9058);\n          if ((lVar3 != 0) && (lVar16 = FUN_001f1940(lVar3,puVar14,0,lVar16,plVar19), lVar16 != 0))\n          {\n            if (plVar19 != (long *)0x0) {\n              (**(code **)(*plVar19 + 8))(plVar19);\n            }\n            if (*(long *)(lVar16 + 0x28) != 0) {\n              FUN_0016ae30(*(long *)(lVar16 + 0x28) + 0x28,param_1);\n            }\n            plVar19 = *(long **)(param_1 + 0x78);\n            if (plVar19 == (long *)0x0) {\n              puVar14 = (undefined8 *)FUN_00275550(0x80);\n              uVar2 = *(undefined8 *)(param_1 + 0x68);\n              uVar17 = *(undefined8 *)(param_1 + 0x48);\n              uVar4 = *(undefined8 *)(param_1 + 0x40);\n              uVar5 = *(undefined8 *)(param_1 + 0x38);\n              *puVar14 = &PTR_FUN_003acf00;\n              uVar6 = *(undefined8 *)(param_1 + 0x88);\n              uVar7 = *(undefined8 *)(param_1 + 0x80);\n              puVar14[9] = uVar17;\n              puVar14[10] = uVar2;\n              puVar14[1] = 0;\n              puVar14[2] = puVar14 + 4;\n              puVar14[3] = 0;\n              *(undefined1 *)(puVar14 + 4) = 0;\n              *(undefined1 *)(puVar14 + 6) = 0;\n              puVar14[7] = uVar5;\n              puVar14[8] = uVar4;\n              puVar14[0xb] = lVar16;\n              puVar14[0xc] = 0;\n              puVar14[0xd] = 0;\n              puVar14[0xe] = uVar7;\n              puVar14[0xf] = uVar6;\n              FUN_002300a0(param_2,puVar14);\n              return uVar13;\n            }\n            plVar19[1] = 0;\n            *plVar19 = lVar16;\n            return uVar13;\n          }\n          if (bVar11 == 0) {\n            puVar18 = (undefined8 *)FUN_00275550(0x90);\n            uVar2 = *(undefined8 *)(param_1 + 0x88);\n            uVar17 = *(undefined8 *)(param_1 + 0x80);\n            uVar4 = *(undefined8 *)(param_1 + 0x68);\n            uVar5 = *(undefined8 *)(param_1 + 0x70);\n            *(undefined1 *)(puVar18 + 4) = 0;\n            uVar6 = *(undefined8 *)(param_1 + 0x60);\n            uVar7 = *(undefined8 *)(param_1 + 0x38);\n            puVar18[2] = puVar18 + 4;\n            uVar1 = *(undefined4 *)(param_1 + 0x58);\n            uVar8 = *(undefined8 *)(param_1 + 0x50);\n            puVar18[0xd] = uVar5;\n            uVar5 = *(undefined8 *)(param_1 + 0x48);\n            uVar9 = *(undefined8 *)(param_1 + 0x40);\n            puVar18[0xe] = uVar4;\n            puVar18[1] = 0;\n            puVar18[3] = 0;\n            *(undefined1 *)(puVar18 + 6) = 0;\n            *puVar18 = &PTR_FUN_003ad080;\n            puVar18[7] = uVar9;\n            puVar18[8] = uVar5;\n            puVar18[9] = uVar8;\n            *(undefined4 *)(puVar18 + 10) = uVar1;\n            puVar18[0xb] = uVar7;\n            puVar18[0xc] = uVar6;\n            puVar18[0xf] = puVar14;\n            puVar18[0x10] = uVar17;\n            puVar18[0x11] = uVar2;\n            FUN_00230080(param_2,puVar18);\n            return uVar13;\n          }\n          if (plVar19 == (long *)0x0) {\n            if ((char)local_58[0] == '\0') {\n              return 0;\n            }\n            puVar18 = puVar14 + 5;\n            FUN_001f51c0(*(undefined8 *)(param_1 + 0x68),puVar14);\n            FUN_0016ad00(puVar18);\n            FUN_0016ae30(puVar18,param_1);\n            FUN_0016b0b0(puVar18);\n            if (puVar14 + 3 != (undefined8 *)puVar14[1]) {\n              FUN_00276d20();\n            }\n            thunk_FUN_00276d20(puVar14,0xe8);\n            *(int *)(param_1 + 0x58) = *(int *)(param_1 + 0x58) + 1;\n            uVar13 = FUN_001f5c10(param_1,param_2);\n            return uVar13;\n          }\n          puVar18 = (undefined8 *)FUN_00275550(0x80);\n          *puVar18 = 0;\n          puVar18[1] = 0;\n          puVar18[3] = 0;\n          puVar18[6] = 0;\n          puVar18[8] = 0;\n          puVar18[10] = 0;\n          puVar18[0xd] = 0;\n          (**(code **)(*plVar19 + 0x40))(plVar19,puVar18);\n          FUN_0016ae30(puVar14 + 5,param_1);\n          puVar14 = *(undefined8 **)(param_1 + 0x78);\n          if (puVar14 == (undefined8 *)0x0) {\n            puVar14 = (undefined8 *)FUN_00275550(0x80);\n            uVar2 = *(undefined8 *)(param_1 + 0x68);\n            uVar17 = *(undefined8 *)(param_1 + 0x48);\n            uVar4 = *(undefined8 *)(param_1 + 0x40);\n            uVar5 = *(undefined8 *)(param_1 + 0x38);\n            puVar14[0xd] = puVar18;\n            uVar6 = *(undefined8 *)(param_1 + 0x88);\n            uVar7 = *(undefined8 *)(param_1 + 0x80);\n            puVar14[2] = puVar14 + 4;\n            puVar14[9] = uVar17;\n            puVar14[10] = uVar2;\n            puVar14[1] = 0;\n            puVar14[3] = 0;\n            *(undefined1 *)(puVar14 + 4) = 0;\n            *(undefined1 *)(puVar14 + 6) = 0;\n            *puVar14 = &PTR_FUN_003acf00;\n            puVar14[7] = uVar5;\n            puVar14[8] = uVar4;\n            puVar14[0xb] = plVar19;\n            puVar14[0xc] = 0;\n            puVar14[0xe] = uVar7;\n            puVar14[0xf] = uVar6;\n            FUN_002300a0(param_2,puVar14);\n            return (uint)bVar11;\n          }\n          pbVar10 = *(byte **)(param_1 + 0x68);\n          puVar14[1] = puVar18;\n          *puVar14 = plVar19;\n          bVar11 = *pbVar10;\n          if (bVar11 != 0) {\n            *(undefined4 *)(puVar14 + 2) = *(undefined4 *)(pbVar10 + 100);\n            return (uint)bVar11;\n          }\n        }\n        else {\n          bVar11 = **(byte **)(param_1 + 0x68);\n          if (bVar11 != 0) {\n            __s = *(char **)(*(byte **)(param_1 + 0x68) + 8);\n            pcVar20 = (char *)0xffffffffffffffff;\n            local_58[0] = local_48;\n            if (__s != (char *)0x0) {\n              sVar15 = strlen(__s);\n              pcVar20 = __s + sVar15;\n            }\n            FUN_0015cbe0(local_58,__s,pcVar20);\n                    /* try { // try from 001f5e1a to 001f5e1e has its CatchHandler @ 001f63a4 */\n            lVar16 = FUN_00275550(0x178);\n                    /* try { // try from 001f5e42 to 001f5e46 has its CatchHandler @ 001f639c */\n            FUN_00234b40(lVar16,local_58,puVar14,\n                         lVar3 == s__<thin>__<arch>_N4gold7ArchiveE_00322e50._0_8_,\n                         *(undefined8 *)(param_1 + 0x50),param_1);\n            if (local_58[0] != local_48) {\n              FUN_00276d20();\n            }\n            FUN_00235c40(lVar16);\n            FUN_0016ae30(*(long *)(lVar16 + 0x38) + 0x28,param_1);\n            puVar14 = (undefined8 *)FUN_00275550(0x90);\n            uVar2 = *(undefined8 *)(param_1 + 0x88);\n            uVar17 = *(undefined8 *)(param_1 + 0x80);\n            uVar4 = *(undefined8 *)(param_1 + 0x70);\n            uVar5 = *(undefined8 *)(param_1 + 0x68);\n            *(undefined1 *)(puVar14 + 4) = 0;\n            uVar6 = *(undefined8 *)(param_1 + 0x60);\n            uVar1 = *(undefined4 *)(param_1 + 0x58);\n            puVar14[2] = puVar14 + 4;\n            uVar7 = *(undefined8 *)(param_1 + 0x50);\n            uVar8 = *(undefined8 *)(param_1 + 0x38);\n            puVar14[0xd] = uVar5;\n            uVar5 = *(undefined8 *)(param_1 + 0x48);\n            uVar9 = *(undefined8 *)(param_1 + 0x40);\n            puVar14[0xf] = uVar4;\n            puVar14[1] = 0;\n            puVar14[3] = 0;\n            *(undefined1 *)(puVar14 + 6) = 0;\n            *puVar14 = &PTR_FUN_003ae430;\n            puVar14[7] = uVar9;\n            puVar14[8] = uVar5;\n            puVar14[9] = uVar8;\n            puVar14[10] = uVar7;\n            *(undefined4 *)(puVar14 + 0xb) = uVar1;\n            puVar14[0xc] = uVar6;\n            puVar14[0xe] = lVar16;\n            puVar14[0x10] = uVar17;\n            puVar14[0x11] = uVar2;\n            FUN_002300a0(param_2,puVar14);\n            return (uint)bVar11;\n          }\n        }\n                    /* WARNING: Subroutine does not return */\n        FUN_0016cdf0("../../gold/options.h",0x828,&DAT_0031b73b);\n      }\n      uVar2 = puVar14[5];\n      uVar17 = gettext("%s: file is empty");\n      FUN_001690a0(uVar17,uVar2);\n    }\n    return 0;\n  }\n  uVar13 = FUN_001f54c0(param_1,param_2);\n  return uVar13;\n}\n\n" (function_definition "uint FUN_001f5c10(long param_1,undefined8 param_2)\n\n{\n  undefined4 uVar1;\n  undefined8 uVar2;\n  long lVar3;\n  char *__s;\n  undefined8 uVar4;\n  undefined8 uVar5;\n  undefined8 uVar6;\n  undefined8 uVar7;\n  undefined8 uVar8;\n  undefined8 uVar9;\n  byte *pbVar10;\n  byte bVar11;\n  char cVar12;\n  uint uVar13;\n  undefined8 *puVar14;\n  size_t sVar15;\n  long lVar16;\n  undefined8 uVar17;\n  undefined8 *puVar18;\n  long *plVar19;\n  char *pcVar20;\n  undefined1 **ppuVar21;\n  int local_64;\n  long *local_60;\n  undefined1 *local_58 [2];\n  undefined1 local_48 [24];\n  \n  pcVar20 = *(char **)(param_1 + 0x68);\n  if (*pcVar20 == '\0') {\n    if (*(long *)(pcVar20 + 0x70) == 0) {\n      if (*(long *)(param_1 + 0x70) != 0) {\n                    /* WARNING: Subroutine does not return */\n        FUN_0016cdf0("../../gold/readsyms.cc",0x10b,"do_read_symbols");\n      }\n      FUN_001f5780();\n      return 1;\n    }\n  }\n  else if (*(long *)(pcVar20 + 0x70) == 0) {\n    puVar14 = (undefined8 *)FUN_00275550(0xe8);\n    uVar2 = *(undefined8 *)(param_1 + 0x50);\n    *puVar14 = pcVar20 + 8;\n    puVar14[1] = puVar14 + 3;\n    puVar14[2] = 0;\n    *(undefined1 *)(puVar14 + 3) = 0;\n    puVar14[5] = puVar14 + 7;\n    puVar14[0x13] = puVar14 + 0x11;\n    puVar14[0x14] = puVar14 + 0x11;\n    puVar14[6] = 0;\n    *(undefined1 *)(puVar14 + 7) = 0;\n    *(undefined4 *)(puVar14 + 9) = 0xffffffff;\n    *(undefined1 *)((long)puVar14 + 0x4c) = 0;\n    *(undefined4 *)(puVar14 + 10) = 0;\n    puVar14[0xb] = 0;\n    *(undefined1 *)(puVar14 + 0xc) = 0;\n    *(undefined4 *)((long)puVar14 + 100) = 0;\n    puVar14[0xd] = 0;\n    puVar14[0xe] = 0;\n    puVar14[0xf] = 0;\n    *(undefined4 *)(puVar14 + 0x11) = 0;\n    puVar14[0x12] = 0;\n    puVar14[0x15] = 0;\n    puVar14[0x17] = puVar14 + 0x16;\n    puVar14[0x16] = puVar14 + 0x16;\n    puVar14[0x18] = 0;\n    puVar14[0x19] = 0;\n    *(undefined1 *)(puVar14 + 0x1a) = 1;\n    puVar14[0x1b] = 0;\n    *(undefined1 *)(puVar14 + 0x1c) = 0;\n    *(undefined4 *)((long)puVar14 + 0xe4) = 0;\n    uVar13 = FUN_0016ca50(puVar14,uVar2,param_1,param_1 + 0x58);\n    if ((char)uVar13 != '\0') {\n      lVar16 = puVar14[0xb];\n      if (lVar16 != 0) {\n        bVar11 = FUN_0019b230(puVar14,0,&local_60,&local_64);\n        if ((local_64 < 8) ||\n           ((lVar3 = *local_60, lVar3 != s__<thin>__<arch>_N4gold7ArchiveE_00322e50._0_8_ &&\n            (s__<thin>__<arch>_N4gold7ArchiveE_00322e50._8_8_ != lVar3)))) {\n          plVar19 = (long *)0x0;\n          if (bVar11 != 0) {\n            local_58[0] = (undefined1 *)((ulong)local_58[0] & 0xffffffffffffff00);\n            cVar12 = FUN_0016b000(puVar14);\n            ppuVar21 = (undefined1 **)0x0;\n            if (cVar12 != '\0') {\n              ppuVar21 = local_58;\n            }\n            plVar19 = (long *)FUN_0019b3d0(puVar14 + 5,puVar14,0,local_60,(long)local_64,ppuVar21);\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          lVar3 = *(long *)(*(long *)(PTR_DAT_003be6b0 + 0x10) + 0x9058);\n          if ((lVar3 != 0) && (lVar16 = FUN_001f1940(lVar3,puVar14,0,lVar16,plVar19), lVar16 != 0))\n          {\n            if (plVar19 != (long *)0x0) {\n              (**(code **)(*plVar19 + 8))(plVar19);\n            }\n            if (*(long *)(lVar16 + 0x28) != 0) {\n              FUN_0016ae30(*(long *)(lVar16 + 0x28) + 0x28,param_1);\n            }\n            plVar19 = *(long **)(param_1 + 0x78);\n            if (plVar19 == (long *)0x0) {\n              puVar14 = (undefined8 *)FUN_00275550(0x80);\n              uVar2 = *(undefined8 *)(param_1 + 0x68);\n              uVar17 = *(undefined8 *)(param_1 + 0x48);\n              uVar4 = *(undefined8 *)(param_1 + 0x40);\n              uVar5 = *(undefined8 *)(param_1 + 0x38);\n              *puVar14 = &PTR_FUN_003acf00;\n              uVar6 = *(undefined8 *)(param_1 + 0x88);\n              uVar7 = *(undefined8 *)(param_1 + 0x80);\n              puVar14[9] = uVar17;\n              puVar14[10] = uVar2;\n              puVar14[1] = 0;\n              puVar14[2] = puVar14 + 4;\n              puVar14[3] = 0;\n              *(undefined1 *)(puVar14 + 4) = 0;\n              *(undefined1 *)(puVar14 + 6) = 0;\n              puVar14[7] = uVar5;\n              puVar14[8] = uVar4;\n              puVar14[0xb] = lVar16;\n              puVar14[0xc] = 0;\n              puVar14[0xd] = 0;\n              puVar14[0xe] = uVar7;\n              puVar14[0xf] = uVar6;\n              FUN_002300a0(param_2,puVar14);\n              return uVar13;\n            }\n            plVar19[1] = 0;\n            *plVar19 = lVar16;\n            return uVar13;\n          }\n          if (bVar11 == 0) {\n            puVar18 = (undefined8 *)FUN_00275550(0x90);\n            uVar2 = *(undefined8 *)(param_1 + 0x88);\n            uVar17 = *(undefined8 *)(param_1 + 0x80);\n            uVar4 = *(undefined8 *)(param_1 + 0x68);\n            uVar5 = *(undefined8 *)(param_1 + 0x70);\n            *(undefined1 *)(puVar18 + 4) = 0;\n            uVar6 = *(undefined8 *)(param_1 + 0x60);\n            uVar7 = *(undefined8 *)(param_1 + 0x38);\n            puVar18[2] = puVar18 + 4;\n            uVar1 = *(undefined4 *)(param_1 + 0x58);\n            uVar8 = *(undefined8 *)(param_1 + 0x50);\n            puVar18[0xd] = uVar5;\n            uVar5 = *(undefined8 *)(param_1 + 0x48);\n            uVar9 = *(undefined8 *)(param_1 + 0x40);\n            puVar18[0xe] = uVar4;\n            puVar18[1] = 0;\n            puVar18[3] = 0;\n            *(undefined1 *)(puVar18 + 6) = 0;\n            *puVar18 = &PTR_FUN_003ad080;\n            puVar18[7] = uVar9;\n            puVar18[8] = uVar5;\n            puVar18[9] = uVar8;\n            *(undefined4 *)(puVar18 + 10) = uVar1;\n            puVar18[0xb] = uVar7;\n            puVar18[0xc] = uVar6;\n            puVar18[0xf] = puVar14;\n            puVar18[0x10] = uVar17;\n            puVar18[0x11] = uVar2;\n            FUN_00230080(param_2,puVar18);\n            return uVar13;\n          }\n          if (plVar19 == (long *)0x0) {\n            if ((char)local_58[0] == '\0') {\n              return 0;\n            }\n            puVar18 = puVar14 + 5;\n            FUN_001f51c0(*(undefined8 *)(param_1 + 0x68),puVar14);\n            FUN_0016ad00(puVar18);\n            FUN_0016ae30(puVar18,param_1);\n            FUN_0016b0b0(puVar18);\n            if (puVar14 + 3 != (undefined8 *)puVar14[1]) {\n              FUN_00276d20();\n            }\n            thunk_FUN_00276d20(puVar14,0xe8);\n            *(int *)(param_1 + 0x58) = *(int *)(param_1 + 0x58) + 1;\n            uVar13 = FUN_001f5c10(param_1,param_2);\n            return uVar13;\n          }\n          puVar18 = (undefined8 *)FUN_00275550(0x80);\n          *puVar18 = 0;\n          puVar18[1] = 0;\n          puVar18[3] = 0;\n          puVar18[6] = 0;\n          puVar18[8] = 0;\n          puVar18[10] = 0;\n          puVar18[0xd] = 0;\n          (**(code **)(*plVar19 + 0x40))(plVar19,puVar18);\n          FUN_0016ae30(puVar14 + 5,param_1);\n          puVar14 = *(undefined8 **)(param_1 + 0x78);\n          if (puVar14 == (undefined8 *)0x0) {\n            puVar14 = (undefined8 *)FUN_00275550(0x80);\n            uVar2 = *(undefined8 *)(param_1 + 0x68);\n            uVar17 = *(undefined8 *)(param_1 + 0x48);\n            uVar4 = *(undefined8 *)(param_1 + 0x40);\n            uVar5 = *(undefined8 *)(param_1 + 0x38);\n            puVar14[0xd] = puVar18;\n            uVar6 = *(undefined8 *)(param_1 + 0x88);\n            uVar7 = *(undefined8 *)(param_1 + 0x80);\n            puVar14[2] = puVar14 + 4;\n            puVar14[9] = uVar17;\n            puVar14[10] = uVar2;\n            puVar14[1] = 0;\n            puVar14[3] = 0;\n            *(undefined1 *)(puVar14 + 4) = 0;\n            *(undefined1 *)(puVar14 + 6) = 0;\n            *puVar14 = &PTR_FUN_003acf00;\n            puVar14[7] = uVar5;\n            puVar14[8] = uVar4;\n            puVar14[0xb] = plVar19;\n            puVar14[0xc] = 0;\n            puVar14[0xe] = uVar7;\n            puVar14[0xf] = uVar6;\n            FUN_002300a0(param_2,puVar14);\n            return (uint)bVar11;\n          }\n          pbVar10 = *(byte **)(param_1 + 0x68);\n          puVar14[1] = puVar18;\n          *puVar14 = plVar19;\n          bVar11 = *pbVar10;\n          if (bVar11 != 0) {\n            *(undefined4 *)(puVar14 + 2) = *(undefined4 *)(pbVar10 + 100);\n            return (uint)bVar11;\n          }\n        }\n        else {\n          bVar11 = **(byte **)(param_1 + 0x68);\n          if (bVar11 != 0) {\n            __s = *(char **)(*(byte **)(param_1 + 0x68) + 8);\n            pcVar20 = (char *)0xffffffffffffffff;\n            local_58[0] = local_48;\n            if (__s != (char *)0x0) {\n              sVar15 = strlen(__s);\n              pcVar20 = __s + sVar15;\n            }\n            FUN_0015cbe0(local_58,__s,pcVar20);\n                    /* try { // try from 001f5e1a to 001f5e1e has its CatchHandler @ 001f63a4 */\n            lVar16 = FUN_00275550(0x178);\n                    /* try { // try from 001f5e42 to 001f5e46 has its CatchHandler @ 001f639c */\n            FUN_00234b40(lVar16,local_58,puVar14,\n                         lVar3 == s__<thin>__<arch>_N4gold7ArchiveE_00322e50._0_8_,\n                         *(undefined8 *)(param_1 + 0x50),param_1);\n            if (local_58[0] != local_48) {\n              FUN_00276d20();\n            }\n            FUN_00235c40(lVar16);\n            FUN_0016ae30(*(long *)(lVar16 + 0x38) + 0x28,param_1);\n            puVar14 = (undefined8 *)FUN_00275550(0x90);\n            uVar2 = *(undefined8 *)(param_1 + 0x88);\n            uVar17 = *(undefined8 *)(param_1 + 0x80);\n            uVar4 = *(undefined8 *)(param_1 + 0x70);\n            uVar5 = *(undefined8 *)(param_1 + 0x68);\n            *(undefined1 *)(puVar14 + 4) = 0;\n            uVar6 = *(undefined8 *)(param_1 + 0x60);\n            uVar1 = *(undefined4 *)(param_1 + 0x58);\n            puVar14[2] = puVar14 + 4;\n            uVar7 = *(undefined8 *)(param_1 + 0x50);\n            uVar8 = *(undefined8 *)(param_1 + 0x38);\n            puVar14[0xd] = uVar5;\n            uVar5 = *(undefined8 *)(param_1 + 0x48);\n            uVar9 = *(undefined8 *)(param_1 + 0x40);\n            puVar14[0xf] = uVar4;\n            puVar14[1] = 0;\n            puVar14[3] = 0;\n            *(undefined1 *)(puVar14 + 6) = 0;\n            *puVar14 = &PTR_FUN_003ae430;\n            puVar14[7] = uVar9;\n            puVar14[8] = uVar5;\n            puVar14[9] = uVar8;\n            puVar14[10] = uVar7;\n            *(undefined4 *)(puVar14 + 0xb) = uVar1;\n            puVar14[0xc] = uVar6;\n            puVar14[0xe] = lVar16;\n            puVar14[0x10] = uVar17;\n            puVar14[0x11] = uVar2;\n            FUN_002300a0(param_2,puVar14);\n            return (uint)bVar11;\n          }\n        }\n                    /* WARNING: Subroutine does not return */\n        FUN_0016cdf0("../../gold/options.h",0x828,&DAT_0031b73b);\n      }\n      uVar2 = puVar14[5];\n      uVar17 = gettext("%s: file is empty");\n      FUN_001690a0(uVar17,uVar2);\n    }\n    return 0;\n  }\n  uVar13 = FUN_001f54c0(param_1,param_2);\n  return uVar13;\n}" type_identifier (function_declarator "FUN_001f5c10(long param_1,undefined8 param_2)" identifier (parameter_list "(long param_1,undefined8 param_2)" ( (parameter_declaration "long param_1" (sized_type_specifier "long" long) identifier) , (parameter_declaration "undefined8 param_2" type_identifier identifier) ))) (compound_statement "{\n  undefined4 uVar1;\n  undefined8 uVar2;\n  long lVar3;\n  char *__s;\n  undefined8 uVar4;\n  undefined8 uVar5;\n  undefined8 uVar6;\n  undefined8 uVar7;\n  undefined8 uVar8;\n  undefined8 uVar9;\n  byte *pbVar10;\n  byte bVar11;\n  char cVar12;\n  uint uVar13;\n  undefined8 *puVar14;\n  size_t sVar15;\n  long lVar16;\n  undefined8 uVar17;\n  undefined8 *puVar18;\n  long *plVar19;\n  char *pcVar20;\n  undefined1 **ppuVar21;\n  int local_64;\n  long *local_60;\n  undefined1 *local_58 [2];\n  undefined1 local_48 [24];\n  \n  pcVar20 = *(char **)(param_1 + 0x68);\n  if (*pcVar20 == '\0') {\n    if (*(long *)(pcVar20 + 0x70) == 0) {\n      if (*(long *)(param_1 + 0x70) != 0) {\n                    /* WARNING: Subroutine does not return */\n        FUN_0016cdf0("../../gold/readsyms.cc",0x10b,"do_read_symbols");\n      }\n      FUN_001f5780();\n      return 1;\n    }\n  }\n  else if (*(long *)(pcVar20 + 0x70) == 0) {\n    puVar14 = (undefined8 *)FUN_00275550(0xe8);\n    uVar2 = *(undefined8 *)(param_1 + 0x50);\n    *puVar14 = pcVar20 + 8;\n    puVar14[1] = puVar14 + 3;\n    puVar14[2] = 0;\n    *(undefined1 *)(puVar14 + 3) = 0;\n    puVar14[5] = puVar14 + 7;\n    puVar14[0x13] = puVar14 + 0x11;\n    puVar14[0x14] = puVar14 + 0x11;\n    puVar14[6] = 0;\n    *(undefined1 *)(puVar14 + 7) = 0;\n    *(undefined4 *)(puVar14 + 9) = 0xffffffff;\n    *(undefined1 *)((long)puVar14 + 0x4c) = 0;\n    *(undefined4 *)(puVar14 + 10) = 0;\n    puVar14[0xb] = 0;\n    *(undefined1 *)(puVar14 + 0xc) = 0;\n    *(undefined4 *)((long)puVar14 + 100) = 0;\n    puVar14[0xd] = 0;\n    puVar14[0xe] = 0;\n    puVar14[0xf] = 0;\n    *(undefined4 *)(puVar14 + 0x11) = 0;\n    puVar14[0x12] = 0;\n    puVar14[0x15] = 0;\n    puVar14[0x17] = puVar14 + 0x16;\n    puVar14[0x16] = puVar14 + 0x16;\n    puVar14[0x18] = 0;\n    puVar14[0x19] = 0;\n    *(undefined1 *)(puVar14 + 0x1a) = 1;\n    puVar14[0x1b] = 0;\n    *(undefined1 *)(puVar14 + 0x1c) = 0;\n    *(undefined4 *)((long)puVar14 + 0xe4) = 0;\n    uVar13 = FUN_0016ca50(puVar14,uVar2,param_1,param_1 + 0x58);\n    if ((char)uVar13 != '\0') {\n      lVar16 = puVar14[0xb];\n      if (lVar16 != 0) {\n        bVar11 = FUN_0019b230(puVar14,0,&local_60,&local_64);\n        if ((local_64 < 8) ||\n           ((lVar3 = *local_60, lVar3 != s__<thin>__<arch>_N4gold7ArchiveE_00322e50._0_8_ &&\n            (s__<thin>__<arch>_N4gold7ArchiveE_00322e50._8_8_ != lVar3)))) {\n          plVar19 = (long *)0x0;\n          if (bVar11 != 0) {\n            local_58[0] = (undefined1 *)((ulong)local_58[0] & 0xffffffffffffff00);\n            cVar12 = FUN_0016b000(puVar14);\n            ppuVar21 = (undefined1 **)0x0;\n            if (cVar12 != '\0') {\n              ppuVar21 = local_58;\n            }\n            plVar19 = (long *)FUN_0019b3d0(puVar14 + 5,puVar14,0,local_60,(long)local_64,ppuVar21);\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          lVar3 = *(long *)(*(long *)(PTR_DAT_003be6b0 + 0x10) + 0x9058);\n          if ((lVar3 != 0) && (lVar16 = FUN_001f1940(lVar3,puVar14,0,lVar16,plVar19), lVar16 != 0))\n          {\n            if (plVar19 != (long *)0x0) {\n              (**(code **)(*plVar19 + 8))(plVar19);\n            }\n            if (*(long *)(lVar16 + 0x28) != 0) {\n              FUN_0016ae30(*(long *)(lVar16 + 0x28) + 0x28,param_1);\n            }\n            plVar19 = *(long **)(param_1 + 0x78);\n            if (plVar19 == (long *)0x0) {\n              puVar14 = (undefined8 *)FUN_00275550(0x80);\n              uVar2 = *(undefined8 *)(param_1 + 0x68);\n              uVar17 = *(undefined8 *)(param_1 + 0x48);\n              uVar4 = *(undefined8 *)(param_1 + 0x40);\n              uVar5 = *(undefined8 *)(param_1 + 0x38);\n              *puVar14 = &PTR_FUN_003acf00;\n              uVar6 = *(undefined8 *)(param_1 + 0x88);\n              uVar7 = *(undefined8 *)(param_1 + 0x80);\n              puVar14[9] = uVar17;\n              puVar14[10] = uVar2;\n              puVar14[1] = 0;\n              puVar14[2] = puVar14 + 4;\n              puVar14[3] = 0;\n              *(undefined1 *)(puVar14 + 4) = 0;\n              *(undefined1 *)(puVar14 + 6) = 0;\n              puVar14[7] = uVar5;\n              puVar14[8] = uVar4;\n              puVar14[0xb] = lVar16;\n              puVar14[0xc] = 0;\n              puVar14[0xd] = 0;\n              puVar14[0xe] = uVar7;\n              puVar14[0xf] = uVar6;\n              FUN_002300a0(param_2,puVar14);\n              return uVar13;\n            }\n            plVar19[1] = 0;\n            *plVar19 = lVar16;\n            return uVar13;\n          }\n          if (bVar11 == 0) {\n            puVar18 = (undefined8 *)FUN_00275550(0x90);\n            uVar2 = *(undefined8 *)(param_1 + 0x88);\n            uVar17 = *(undefined8 *)(param_1 + 0x80);\n            uVar4 = *(undefined8 *)(param_1 + 0x68);\n            uVar5 = *(undefined8 *)(param_1 + 0x70);\n            *(undefined1 *)(puVar18 + 4) = 0;\n            uVar6 = *(undefined8 *)(param_1 + 0x60);\n            uVar7 = *(undefined8 *)(param_1 + 0x38);\n            puVar18[2] = puVar18 + 4;\n            uVar1 = *(undefined4 *)(param_1 + 0x58);\n            uVar8 = *(undefined8 *)(param_1 + 0x50);\n            puVar18[0xd] = uVar5;\n            uVar5 = *(undefined8 *)(param_1 + 0x48);\n            uVar9 = *(undefined8 *)(param_1 + 0x40);\n            puVar18[0xe] = uVar4;\n            puVar18[1] = 0;\n            puVar18[3] = 0;\n            *(undefined1 *)(puVar18 + 6) = 0;\n            *puVar18 = &PTR_FUN_003ad080;\n            puVar18[7] = uVar9;\n            puVar18[8] = uVar5;\n            puVar18[9] = uVar8;\n            *(undefined4 *)(puVar18 + 10) = uVar1;\n            puVar18[0xb] = uVar7;\n            puVar18[0xc] = uVar6;\n            puVar18[0xf] = puVar14;\n            puVar18[0x10] = uVar17;\n            puVar18[0x11] = uVar2;\n            FUN_00230080(param_2,puVar18);\n            return uVar13;\n          }\n          if (plVar19 == (long *)0x0) {\n            if ((char)local_58[0] == '\0') {\n              return 0;\n            }\n            puVar18 = puVar14 + 5;\n            FUN_001f51c0(*(undefined8 *)(param_1 + 0x68),puVar14);\n            FUN_0016ad00(puVar18);\n            FUN_0016ae30(puVar18,param_1);\n            FUN_0016b0b0(puVar18);\n            if (puVar14 + 3 != (undefined8 *)puVar14[1]) {\n              FUN_00276d20();\n            }\n            thunk_FUN_00276d20(puVar14,0xe8);\n            *(int *)(param_1 + 0x58) = *(int *)(param_1 + 0x58) + 1;\n            uVar13 = FUN_001f5c10(param_1,param_2);\n            return uVar13;\n          }\n          puVar18 = (undefined8 *)FUN_00275550(0x80);\n          *puVar18 = 0;\n          puVar18[1] = 0;\n          puVar18[3] = 0;\n          puVar18[6] = 0;\n          puVar18[8] = 0;\n          puVar18[10] = 0;\n          puVar18[0xd] = 0;\n          (**(code **)(*plVar19 + 0x40))(plVar19,puVar18);\n          FUN_0016ae30(puVar14 + 5,param_1);\n          puVar14 = *(undefined8 **)(param_1 + 0x78);\n          if (puVar14 == (undefined8 *)0x0) {\n            puVar14 = (undefined8 *)FUN_00275550(0x80);\n            uVar2 = *(undefined8 *)(param_1 + 0x68);\n            uVar17 = *(undefined8 *)(param_1 + 0x48);\n            uVar4 = *(undefined8 *)(param_1 + 0x40);\n            uVar5 = *(undefined8 *)(param_1 + 0x38);\n            puVar14[0xd] = puVar18;\n            uVar6 = *(undefined8 *)(param_1 + 0x88);\n            uVar7 = *(undefined8 *)(param_1 + 0x80);\n            puVar14[2] = puVar14 + 4;\n            puVar14[9] = uVar17;\n            puVar14[10] = uVar2;\n            puVar14[1] = 0;\n            puVar14[3] = 0;\n            *(undefined1 *)(puVar14 + 4) = 0;\n            *(undefined1 *)(puVar14 + 6) = 0;\n            *puVar14 = &PTR_FUN_003acf00;\n            puVar14[7] = uVar5;\n            puVar14[8] = uVar4;\n            puVar14[0xb] = plVar19;\n            puVar14[0xc] = 0;\n            puVar14[0xe] = uVar7;\n            puVar14[0xf] = uVar6;\n            FUN_002300a0(param_2,puVar14);\n            return (uint)bVar11;\n          }\n          pbVar10 = *(byte **)(param_1 + 0x68);\n          puVar14[1] = puVar18;\n          *puVar14 = plVar19;\n          bVar11 = *pbVar10;\n          if (bVar11 != 0) {\n            *(undefined4 *)(puVar14 + 2) = *(undefined4 *)(pbVar10 + 100);\n            return (uint)bVar11;\n          }\n        }\n        else {\n          bVar11 = **(byte **)(param_1 + 0x68);\n          if (bVar11 != 0) {\n            __s = *(char **)(*(byte **)(param_1 + 0x68) + 8);\n            pcVar20 = (char *)0xffffffffffffffff;\n            local_58[0] = local_48;\n            if (__s != (char *)0x0) {\n              sVar15 = strlen(__s);\n              pcVar20 = __s + sVar15;\n            }\n            FUN_0015cbe0(local_58,__s,pcVar20);\n                    /* try { // try from 001f5e1a to 001f5e1e has its CatchHandler @ 001f63a4 */\n            lVar16 = FUN_00275550(0x178);\n                    /* try { // try from 001f5e42 to 001f5e46 has its CatchHandler @ 001f639c */\n            FUN_00234b40(lVar16,local_58,puVar14,\n                         lVar3 == s__<thin>__<arch>_N4gold7ArchiveE_00322e50._0_8_,\n                         *(undefined8 *)(param_1 + 0x50),param_1);\n            if (local_58[0] != local_48) {\n              FUN_00276d20();\n            }\n            FUN_00235c40(lVar16);\n            FUN_0016ae30(*(long *)(lVar16 + 0x38) + 0x28,param_1);\n            puVar14 = (undefined8 *)FUN_00275550(0x90);\n            uVar2 = *(undefined8 *)(param_1 + 0x88);\n            uVar17 = *(undefined8 *)(param_1 + 0x80);\n            uVar4 = *(undefined8 *)(param_1 + 0x70);\n            uVar5 = *(undefined8 *)(param_1 + 0x68);\n            *(undefined1 *)(puVar14 + 4) = 0;\n            uVar6 = *(undefined8 *)(param_1 + 0x60);\n            uVar1 = *(undefined4 *)(param_1 + 0x58);\n            puVar14[2] = puVar14 + 4;\n            uVar7 = *(undefined8 *)(param_1 + 0x50);\n            uVar8 = *(undefined8 *)(param_1 + 0x38);\n            puVar14[0xd] = uVar5;\n            uVar5 = *(undefined8 *)(param_1 + 0x48);\n            uVar9 = *(undefined8 *)(param_1 + 0x40);\n            puVar14[0xf] = uVar4;\n            puVar14[1] = 0;\n            puVar14[3] = 0;\n            *(undefined1 *)(puVar14 + 6) = 0;\n            *puVar14 = &PTR_FUN_003ae430;\n            puVar14[7] = uVar9;\n            puVar14[8] = uVar5;\n            puVar14[9] = uVar8;\n            puVar14[10] = uVar7;\n            *(undefined4 *)(puVar14 + 0xb) = uVar1;\n            puVar14[0xc] = uVar6;\n            puVar14[0xe] = lVar16;\n            puVar14[0x10] = uVar17;\n            puVar14[0x11] = uVar2;\n            FUN_002300a0(param_2,puVar14);\n            return (uint)bVar11;\n          }\n        }\n                    /* WARNING: Subroutine does not return */\n        FUN_0016cdf0("../../gold/options.h",0x828,&DAT_0031b73b);\n      }\n      uVar2 = puVar14[5];\n      uVar17 = gettext("%s: file is empty");\n      FUN_001690a0(uVar17,uVar2);\n    }\n    return 0;\n  }\n  uVar13 = FUN_001f54c0(param_1,param_2);\n  return uVar13;\n}" { (declaration "undefined4 uVar1;" type_identifier identifier ;) (declaration "undefined8 uVar2;" type_identifier identifier ;) (declaration "long lVar3;" (sized_type_specifier "long" long) identifier ;) (declaration "char *__s;" primitive_type (pointer_declarator "*__s" * identifier) ;) (declaration "undefined8 uVar4;" type_identifier identifier ;) (declaration "undefined8 uVar5;" type_identifier identifier ;) (declaration "undefined8 uVar6;" type_identifier identifier ;) (declaration "undefined8 uVar7;" type_identifier identifier ;) (declaration "undefined8 uVar8;" type_identifier identifier ;) (declaration "undefined8 uVar9;" type_identifier identifier ;) (declaration "byte *pbVar10;" type_identifier (pointer_declarator "*pbVar10" * identifier) ;) (declaration "byte bVar11;" type_identifier identifier ;) (declaration "char cVar12;" primitive_type identifier ;) (declaration "uint uVar13;" type_identifier identifier ;) (declaration "undefined8 *puVar14;" type_identifier (pointer_declarator "*puVar14" * identifier) ;) (declaration "size_t sVar15;" primitive_type identifier ;) (declaration "long lVar16;" (sized_type_specifier "long" long) identifier ;) (declaration "undefined8 uVar17;" type_identifier identifier ;) (declaration "undefined8 *puVar18;" type_identifier (pointer_declarator "*puVar18" * identifier) ;) (declaration "long *plVar19;" (sized_type_specifier "long" long) (pointer_declarator "*plVar19" * identifier) ;) (declaration "char *pcVar20;" primitive_type (pointer_declarator "*pcVar20" * identifier) ;) (declaration "undefined1 **ppuVar21;" type_identifier (pointer_declarator "**ppuVar21" * (pointer_declarator "*ppuVar21" * identifier)) ;) (declaration "int local_64;" primitive_type identifier ;) (declaration "long *local_60;" (sized_type_specifier "long" long) (pointer_declarator "*local_60" * identifier) ;) (declaration "undefined1 *local_58 [2];" type_identifier (pointer_declarator "*local_58 [2]" * (array_declarator "local_58 [2]" identifier [ number_literal ])) ;) (declaration "undefined1 local_48 [24];" type_identifier (array_declarator "local_48 [24]" identifier [ number_literal ]) ;) (expression_statement "pcVar20 = *(char **)(param_1 + 0x68);" (assignment_expression "pcVar20 = *(char **)(param_1 + 0x68)" identifier = (pointer_expression "*(char **)(param_1 + 0x68)" * (cast_expression "(char **)(param_1 + 0x68)" ( (type_descriptor "char **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(param_1 + 0x68)" ( (binary_expression "param_1 + 0x68" identifier + number_literal) ))))) ;) (if_statement "if (*pcVar20 == '\0') {\n    if (*(long *)(pcVar20 + 0x70) == 0) {\n      if (*(long *)(param_1 + 0x70) != 0) {\n                    /* WARNING: Subroutine does not return */\n        FUN_0016cdf0("../../gold/readsyms.cc",0x10b,"do_read_symbols");\n      }\n      FUN_001f5780();\n      return 1;\n    }\n  }\n  else if (*(long *)(pcVar20 + 0x70) == 0) {\n    puVar14 = (undefined8 *)FUN_00275550(0xe8);\n    uVar2 = *(undefined8 *)(param_1 + 0x50);\n    *puVar14 = pcVar20 + 8;\n    puVar14[1] = puVar14 + 3;\n    puVar14[2] = 0;\n    *(undefined1 *)(puVar14 + 3) = 0;\n    puVar14[5] = puVar14 + 7;\n    puVar14[0x13] = puVar14 + 0x11;\n    puVar14[0x14] = puVar14 + 0x11;\n    puVar14[6] = 0;\n    *(undefined1 *)(puVar14 + 7) = 0;\n    *(undefined4 *)(puVar14 + 9) = 0xffffffff;\n    *(undefined1 *)((long)puVar14 + 0x4c) = 0;\n    *(undefined4 *)(puVar14 + 10) = 0;\n    puVar14[0xb] = 0;\n    *(undefined1 *)(puVar14 + 0xc) = 0;\n    *(undefined4 *)((long)puVar14 + 100) = 0;\n    puVar14[0xd] = 0;\n    puVar14[0xe] = 0;\n    puVar14[0xf] = 0;\n    *(undefined4 *)(puVar14 + 0x11) = 0;\n    puVar14[0x12] = 0;\n    puVar14[0x15] = 0;\n    puVar14[0x17] = puVar14 + 0x16;\n    puVar14[0x16] = puVar14 + 0x16;\n    puVar14[0x18] = 0;\n    puVar14[0x19] = 0;\n    *(undefined1 *)(puVar14 + 0x1a) = 1;\n    puVar14[0x1b] = 0;\n    *(undefined1 *)(puVar14 + 0x1c) = 0;\n    *(undefined4 *)((long)puVar14 + 0xe4) = 0;\n    uVar13 = FUN_0016ca50(puVar14,uVar2,param_1,param_1 + 0x58);\n    if ((char)uVar13 != '\0') {\n      lVar16 = puVar14[0xb];\n      if (lVar16 != 0) {\n        bVar11 = FUN_0019b230(puVar14,0,&local_60,&local_64);\n        if ((local_64 < 8) ||\n           ((lVar3 = *local_60, lVar3 != s__<thin>__<arch>_N4gold7ArchiveE_00322e50._0_8_ &&\n            (s__<thin>__<arch>_N4gold7ArchiveE_00322e50._8_8_ != lVar3)))) {\n          plVar19 = (long *)0x0;\n          if (bVar11 != 0) {\n            local_58[0] = (undefined1 *)((ulong)local_58[0] & 0xffffffffffffff00);\n            cVar12 = FUN_0016b000(puVar14);\n            ppuVar21 = (undefined1 **)0x0;\n            if (cVar12 != '\0') {\n              ppuVar21 = local_58;\n            }\n            plVar19 = (long *)FUN_0019b3d0(puVar14 + 5,puVar14,0,local_60,(long)local_64,ppuVar21);\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          lVar3 = *(long *)(*(long *)(PTR_DAT_003be6b0 + 0x10) + 0x9058);\n          if ((lVar3 != 0) && (lVar16 = FUN_001f1940(lVar3,puVar14,0,lVar16,plVar19), lVar16 != 0))\n          {\n            if (plVar19 != (long *)0x0) {\n              (**(code **)(*plVar19 + 8))(plVar19);\n            }\n            if (*(long *)(lVar16 + 0x28) != 0) {\n              FUN_0016ae30(*(long *)(lVar16 + 0x28) + 0x28,param_1);\n            }\n            plVar19 = *(long **)(param_1 + 0x78);\n            if (plVar19 == (long *)0x0) {\n              puVar14 = (undefined8 *)FUN_00275550(0x80);\n              uVar2 = *(undefined8 *)(param_1 + 0x68);\n              uVar17 = *(undefined8 *)(param_1 + 0x48);\n              uVar4 = *(undefined8 *)(param_1 + 0x40);\n              uVar5 = *(undefined8 *)(param_1 + 0x38);\n              *puVar14 = &PTR_FUN_003acf00;\n              uVar6 = *(undefined8 *)(param_1 + 0x88);\n              uVar7 = *(undefined8 *)(param_1 + 0x80);\n              puVar14[9] = uVar17;\n              puVar14[10] = uVar2;\n              puVar14[1] = 0;\n              puVar14[2] = puVar14 + 4;\n              puVar14[3] = 0;\n              *(undefined1 *)(puVar14 + 4) = 0;\n              *(undefined1 *)(puVar14 + 6) = 0;\n              puVar14[7] = uVar5;\n              puVar14[8] = uVar4;\n              puVar14[0xb] = lVar16;\n              puVar14[0xc] = 0;\n              puVar14[0xd] = 0;\n              puVar14[0xe] = uVar7;\n              puVar14[0xf] = uVar6;\n              FUN_002300a0(param_2,puVar14);\n              return uVar13;\n            }\n            plVar19[1] = 0;\n            *plVar19 = lVar16;\n            return uVar13;\n          }\n          if (bVar11 == 0) {\n            puVar18 = (undefined8 *)FUN_00275550(0x90);\n            uVar2 = *(undefined8 *)(param_1 + 0x88);\n            uVar17 = *(undefined8 *)(param_1 + 0x80);\n            uVar4 = *(undefined8 *)(param_1 + 0x68);\n            uVar5 = *(undefined8 *)(param_1 + 0x70);\n            *(undefined1 *)(puVar18 + 4) = 0;\n            uVar6 = *(undefined8 *)(param_1 + 0x60);\n            uVar7 = *(undefined8 *)(param_1 + 0x38);\n            puVar18[2] = puVar18 + 4;\n            uVar1 = *(undefined4 *)(param_1 + 0x58);\n            uVar8 = *(undefined8 *)(param_1 + 0x50);\n            puVar18[0xd] = uVar5;\n            uVar5 = *(undefined8 *)(param_1 + 0x48);\n            uVar9 = *(undefined8 *)(param_1 + 0x40);\n            puVar18[0xe] = uVar4;\n            puVar18[1] = 0;\n            puVar18[3] = 0;\n            *(undefined1 *)(puVar18 + 6) = 0;\n            *puVar18 = &PTR_FUN_003ad080;\n            puVar18[7] = uVar9;\n            puVar18[8] = uVar5;\n            puVar18[9] = uVar8;\n            *(undefined4 *)(puVar18 + 10) = uVar1;\n            puVar18[0xb] = uVar7;\n            puVar18[0xc] = uVar6;\n            puVar18[0xf] = puVar14;\n            puVar18[0x10] = uVar17;\n            puVar18[0x11] = uVar2;\n            FUN_00230080(param_2,puVar18);\n            return uVar13;\n          }\n          if (plVar19 == (long *)0x0) {\n            if ((char)local_58[0] == '\0') {\n              return 0;\n            }\n            puVar18 = puVar14 + 5;\n            FUN_001f51c0(*(undefined8 *)(param_1 + 0x68),puVar14);\n            FUN_0016ad00(puVar18);\n            FUN_0016ae30(puVar18,param_1);\n            FUN_0016b0b0(puVar18);\n            if (puVar14 + 3 != (undefined8 *)puVar14[1]) {\n              FUN_00276d20();\n            }\n            thunk_FUN_00276d20(puVar14,0xe8);\n            *(int *)(param_1 + 0x58) = *(int *)(param_1 + 0x58) + 1;\n            uVar13 = FUN_001f5c10(param_1,param_2);\n            return uVar13;\n          }\n          puVar18 = (undefined8 *)FUN_00275550(0x80);\n          *puVar18 = 0;\n          puVar18[1] = 0;\n          puVar18[3] = 0;\n          puVar18[6] = 0;\n          puVar18[8] = 0;\n          puVar18[10] = 0;\n          puVar18[0xd] = 0;\n          (**(code **)(*plVar19 + 0x40))(plVar19,puVar18);\n          FUN_0016ae30(puVar14 + 5,param_1);\n          puVar14 = *(undefined8 **)(param_1 + 0x78);\n          if (puVar14 == (undefined8 *)0x0) {\n            puVar14 = (undefined8 *)FUN_00275550(0x80);\n            uVar2 = *(undefined8 *)(param_1 + 0x68);\n            uVar17 = *(undefined8 *)(param_1 + 0x48);\n            uVar4 = *(undefined8 *)(param_1 + 0x40);\n            uVar5 = *(undefined8 *)(param_1 + 0x38);\n            puVar14[0xd] = puVar18;\n            uVar6 = *(undefined8 *)(param_1 + 0x88);\n            uVar7 = *(undefined8 *)(param_1 + 0x80);\n            puVar14[2] = puVar14 + 4;\n            puVar14[9] = uVar17;\n            puVar14[10] = uVar2;\n            puVar14[1] = 0;\n            puVar14[3] = 0;\n            *(undefined1 *)(puVar14 + 4) = 0;\n            *(undefined1 *)(puVar14 + 6) = 0;\n            *puVar14 = &PTR_FUN_003acf00;\n            puVar14[7] = uVar5;\n            puVar14[8] = uVar4;\n            puVar14[0xb] = plVar19;\n            puVar14[0xc] = 0;\n            puVar14[0xe] = uVar7;\n            puVar14[0xf] = uVar6;\n            FUN_002300a0(param_2,puVar14);\n            return (uint)bVar11;\n          }\n          pbVar10 = *(byte **)(param_1 + 0x68);\n          puVar14[1] = puVar18;\n          *puVar14 = plVar19;\n          bVar11 = *pbVar10;\n          if (bVar11 != 0) {\n            *(undefined4 *)(puVar14 + 2) = *(undefined4 *)(pbVar10 + 100);\n            return (uint)bVar11;\n          }\n        }\n        else {\n          bVar11 = **(byte **)(param_1 + 0x68);\n          if (bVar11 != 0) {\n            __s = *(char **)(*(byte **)(param_1 + 0x68) + 8);\n            pcVar20 = (char *)0xffffffffffffffff;\n            local_58[0] = local_48;\n            if (__s != (char *)0x0) {\n              sVar15 = strlen(__s);\n              pcVar20 = __s + sVar15;\n            }\n            FUN_0015cbe0(local_58,__s,pcVar20);\n                    /* try { // try from 001f5e1a to 001f5e1e has its CatchHandler @ 001f63a4 */\n            lVar16 = FUN_00275550(0x178);\n                    /* try { // try from 001f5e42 to 001f5e46 has its CatchHandler @ 001f639c */\n            FUN_00234b40(lVar16,local_58,puVar14,\n                         lVar3 == s__<thin>__<arch>_N4gold7ArchiveE_00322e50._0_8_,\n                         *(undefined8 *)(param_1 + 0x50),param_1);\n            if (local_58[0] != local_48) {\n              FUN_00276d20();\n            }\n            FUN_00235c40(lVar16);\n            FUN_0016ae30(*(long *)(lVar16 + 0x38) + 0x28,param_1);\n            puVar14 = (undefined8 *)FUN_00275550(0x90);\n            uVar2 = *(undefined8 *)(param_1 + 0x88);\n            uVar17 = *(undefined8 *)(param_1 + 0x80);\n            uVar4 = *(undefined8 *)(param_1 + 0x70);\n            uVar5 = *(undefined8 *)(param_1 + 0x68);\n            *(undefined1 *)(puVar14 + 4) = 0;\n            uVar6 = *(undefined8 *)(param_1 + 0x60);\n            uVar1 = *(undefined4 *)(param_1 + 0x58);\n            puVar14[2] = puVar14 + 4;\n            uVar7 = *(undefined8 *)(param_1 + 0x50);\n            uVar8 = *(undefined8 *)(param_1 + 0x38);\n            puVar14[0xd] = uVar5;\n            uVar5 = *(undefined8 *)(param_1 + 0x48);\n            uVar9 = *(undefined8 *)(param_1 + 0x40);\n            puVar14[0xf] = uVar4;\n            puVar14[1] = 0;\n            puVar14[3] = 0;\n            *(undefined1 *)(puVar14 + 6) = 0;\n            *puVar14 = &PTR_FUN_003ae430;\n            puVar14[7] = uVar9;\n            puVar14[8] = uVar5;\n            puVar14[9] = uVar8;\n            puVar14[10] = uVar7;\n            *(undefined4 *)(puVar14 + 0xb) = uVar1;\n            puVar14[0xc] = uVar6;\n            puVar14[0xe] = lVar16;\n            puVar14[0x10] = uVar17;\n            puVar14[0x11] = uVar2;\n            FUN_002300a0(param_2,puVar14);\n            return (uint)bVar11;\n          }\n        }\n                    /* WARNING: Subroutine does not return */\n        FUN_0016cdf0("../../gold/options.h",0x828,&DAT_0031b73b);\n      }\n      uVar2 = puVar14[5];\n      uVar17 = gettext("%s: file is empty");\n      FUN_001690a0(uVar17,uVar2);\n    }\n    return 0;\n  }" if (parenthesized_expression "(*pcVar20 == '\0')" ( (binary_expression "*pcVar20 == '\0'" (pointer_expression "*pcVar20" * identifier) == (char_literal "'\0'" ' escape_sequence ')) )) (compound_statement "{\n    if (*(long *)(pcVar20 + 0x70) == 0) {\n      if (*(long *)(param_1 + 0x70) != 0) {\n                    /* WARNING: Subroutine does not return */\n        FUN_0016cdf0("../../gold/readsyms.cc",0x10b,"do_read_symbols");\n      }\n      FUN_001f5780();\n      return 1;\n    }\n  }" { (if_statement "if (*(long *)(pcVar20 + 0x70) == 0) {\n      if (*(long *)(param_1 + 0x70) != 0) {\n                    /* WARNING: Subroutine does not return */\n        FUN_0016cdf0("../../gold/readsyms.cc",0x10b,"do_read_symbols");\n      }\n      FUN_001f5780();\n      return 1;\n    }" if (parenthesized_expression "(*(long *)(pcVar20 + 0x70) == 0)" ( (binary_expression "*(long *)(pcVar20 + 0x70) == 0" (pointer_expression "*(long *)(pcVar20 + 0x70)" * (cast_expression "(long *)(pcVar20 + 0x70)" ( (type_descriptor "long *" (sized_type_specifier "long" long) (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pcVar20 + 0x70)" ( (binary_expression "pcVar20 + 0x70" identifier + number_literal) )))) == number_literal) )) (compound_statement "{\n      if (*(long *)(param_1 + 0x70) != 0) {\n                    /* WARNING: Subroutine does not return */\n        FUN_0016cdf0("../../gold/readsyms.cc",0x10b,"do_read_symbols");\n      }\n      FUN_001f5780();\n      return 1;\n    }" { (if_statement "if (*(long *)(param_1 + 0x70) != 0) {\n                    /* WARNING: Subroutine does not return */\n        FUN_0016cdf0("../../gold/readsyms.cc",0x10b,"do_read_symbols");\n      }" if (parenthesized_expression "(*(long *)(param_1 + 0x70) != 0)" ( (binary_expression "*(long *)(param_1 + 0x70) != 0" (pointer_expression "*(long *)(param_1 + 0x70)" * (cast_expression "(long *)(param_1 + 0x70)" ( (type_descriptor "long *" (sized_type_specifier "long" long) (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x70)" ( (binary_expression "param_1 + 0x70" identifier + number_literal) )))) != number_literal) )) (compound_statement "{\n                    /* WARNING: Subroutine does not return */\n        FUN_0016cdf0("../../gold/readsyms.cc",0x10b,"do_read_symbols");\n      }" { comment (expression_statement "FUN_0016cdf0("../../gold/readsyms.cc",0x10b,"do_read_symbols");" (call_expression "FUN_0016cdf0("../../gold/readsyms.cc",0x10b,"do_read_symbols")" identifier (argument_list "("../../gold/readsyms.cc",0x10b,"do_read_symbols")" ( (string_literal ""../../gold/readsyms.cc"" " string_content ") , number_literal , (string_literal ""do_read_symbols"" " string_content ") ))) ;) })) (expression_statement "FUN_001f5780();" (call_expression "FUN_001f5780()" identifier (argument_list "()" ( ))) ;) (return_statement "return 1;" return number_literal ;) })) }) (else_clause "else if (*(long *)(pcVar20 + 0x70) == 0) {\n    puVar14 = (undefined8 *)FUN_00275550(0xe8);\n    uVar2 = *(undefined8 *)(param_1 + 0x50);\n    *puVar14 = pcVar20 + 8;\n    puVar14[1] = puVar14 + 3;\n    puVar14[2] = 0;\n    *(undefined1 *)(puVar14 + 3) = 0;\n    puVar14[5] = puVar14 + 7;\n    puVar14[0x13] = puVar14 + 0x11;\n    puVar14[0x14] = puVar14 + 0x11;\n    puVar14[6] = 0;\n    *(undefined1 *)(puVar14 + 7) = 0;\n    *(undefined4 *)(puVar14 + 9) = 0xffffffff;\n    *(undefined1 *)((long)puVar14 + 0x4c) = 0;\n    *(undefined4 *)(puVar14 + 10) = 0;\n    puVar14[0xb] = 0;\n    *(undefined1 *)(puVar14 + 0xc) = 0;\n    *(undefined4 *)((long)puVar14 + 100) = 0;\n    puVar14[0xd] = 0;\n    puVar14[0xe] = 0;\n    puVar14[0xf] = 0;\n    *(undefined4 *)(puVar14 + 0x11) = 0;\n    puVar14[0x12] = 0;\n    puVar14[0x15] = 0;\n    puVar14[0x17] = puVar14 + 0x16;\n    puVar14[0x16] = puVar14 + 0x16;\n    puVar14[0x18] = 0;\n    puVar14[0x19] = 0;\n    *(undefined1 *)(puVar14 + 0x1a) = 1;\n    puVar14[0x1b] = 0;\n    *(undefined1 *)(puVar14 + 0x1c) = 0;\n    *(undefined4 *)((long)puVar14 + 0xe4) = 0;\n    uVar13 = FUN_0016ca50(puVar14,uVar2,param_1,param_1 + 0x58);\n    if ((char)uVar13 != '\0') {\n      lVar16 = puVar14[0xb];\n      if (lVar16 != 0) {\n        bVar11 = FUN_0019b230(puVar14,0,&local_60,&local_64);\n        if ((local_64 < 8) ||\n           ((lVar3 = *local_60, lVar3 != s__<thin>__<arch>_N4gold7ArchiveE_00322e50._0_8_ &&\n            (s__<thin>__<arch>_N4gold7ArchiveE_00322e50._8_8_ != lVar3)))) {\n          plVar19 = (long *)0x0;\n          if (bVar11 != 0) {\n            local_58[0] = (undefined1 *)((ulong)local_58[0] & 0xffffffffffffff00);\n            cVar12 = FUN_0016b000(puVar14);\n            ppuVar21 = (undefined1 **)0x0;\n            if (cVar12 != '\0') {\n              ppuVar21 = local_58;\n            }\n            plVar19 = (long *)FUN_0019b3d0(puVar14 + 5,puVar14,0,local_60,(long)local_64,ppuVar21);\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          lVar3 = *(long *)(*(long *)(PTR_DAT_003be6b0 + 0x10) + 0x9058);\n          if ((lVar3 != 0) && (lVar16 = FUN_001f1940(lVar3,puVar14,0,lVar16,plVar19), lVar16 != 0))\n          {\n            if (plVar19 != (long *)0x0) {\n              (**(code **)(*plVar19 + 8))(plVar19);\n            }\n            if (*(long *)(lVar16 + 0x28) != 0) {\n              FUN_0016ae30(*(long *)(lVar16 + 0x28) + 0x28,param_1);\n            }\n            plVar19 = *(long **)(param_1 + 0x78);\n            if (plVar19 == (long *)0x0) {\n              puVar14 = (undefined8 *)FUN_00275550(0x80);\n              uVar2 = *(undefined8 *)(param_1 + 0x68);\n              uVar17 = *(undefined8 *)(param_1 + 0x48);\n              uVar4 = *(undefined8 *)(param_1 + 0x40);\n              uVar5 = *(undefined8 *)(param_1 + 0x38);\n              *puVar14 = &PTR_FUN_003acf00;\n              uVar6 = *(undefined8 *)(param_1 + 0x88);\n              uVar7 = *(undefined8 *)(param_1 + 0x80);\n              puVar14[9] = uVar17;\n              puVar14[10] = uVar2;\n              puVar14[1] = 0;\n              puVar14[2] = puVar14 + 4;\n              puVar14[3] = 0;\n              *(undefined1 *)(puVar14 + 4) = 0;\n              *(undefined1 *)(puVar14 + 6) = 0;\n              puVar14[7] = uVar5;\n              puVar14[8] = uVar4;\n              puVar14[0xb] = lVar16;\n              puVar14[0xc] = 0;\n              puVar14[0xd] = 0;\n              puVar14[0xe] = uVar7;\n              puVar14[0xf] = uVar6;\n              FUN_002300a0(param_2,puVar14);\n              return uVar13;\n            }\n            plVar19[1] = 0;\n            *plVar19 = lVar16;\n            return uVar13;\n          }\n          if (bVar11 == 0) {\n            puVar18 = (undefined8 *)FUN_00275550(0x90);\n            uVar2 = *(undefined8 *)(param_1 + 0x88);\n            uVar17 = *(undefined8 *)(param_1 + 0x80);\n            uVar4 = *(undefined8 *)(param_1 + 0x68);\n            uVar5 = *(undefined8 *)(param_1 + 0x70);\n            *(undefined1 *)(puVar18 + 4) = 0;\n            uVar6 = *(undefined8 *)(param_1 + 0x60);\n            uVar7 = *(undefined8 *)(param_1 + 0x38);\n            puVar18[2] = puVar18 + 4;\n            uVar1 = *(undefined4 *)(param_1 + 0x58);\n            uVar8 = *(undefined8 *)(param_1 + 0x50);\n            puVar18[0xd] = uVar5;\n            uVar5 = *(undefined8 *)(param_1 + 0x48);\n            uVar9 = *(undefined8 *)(param_1 + 0x40);\n            puVar18[0xe] = uVar4;\n            puVar18[1] = 0;\n            puVar18[3] = 0;\n            *(undefined1 *)(puVar18 + 6) = 0;\n            *puVar18 = &PTR_FUN_003ad080;\n            puVar18[7] = uVar9;\n            puVar18[8] = uVar5;\n            puVar18[9] = uVar8;\n            *(undefined4 *)(puVar18 + 10) = uVar1;\n            puVar18[0xb] = uVar7;\n            puVar18[0xc] = uVar6;\n            puVar18[0xf] = puVar14;\n            puVar18[0x10] = uVar17;\n            puVar18[0x11] = uVar2;\n            FUN_00230080(param_2,puVar18);\n            return uVar13;\n          }\n          if (plVar19 == (long *)0x0) {\n            if ((char)local_58[0] == '\0') {\n              return 0;\n            }\n            puVar18 = puVar14 + 5;\n            FUN_001f51c0(*(undefined8 *)(param_1 + 0x68),puVar14);\n            FUN_0016ad00(puVar18);\n            FUN_0016ae30(puVar18,param_1);\n            FUN_0016b0b0(puVar18);\n            if (puVar14 + 3 != (undefined8 *)puVar14[1]) {\n              FUN_00276d20();\n            }\n            thunk_FUN_00276d20(puVar14,0xe8);\n            *(int *)(param_1 + 0x58) = *(int *)(param_1 + 0x58) + 1;\n            uVar13 = FUN_001f5c10(param_1,param_2);\n            return uVar13;\n          }\n          puVar18 = (undefined8 *)FUN_00275550(0x80);\n          *puVar18 = 0;\n          puVar18[1] = 0;\n          puVar18[3] = 0;\n          puVar18[6] = 0;\n          puVar18[8] = 0;\n          puVar18[10] = 0;\n          puVar18[0xd] = 0;\n          (**(code **)(*plVar19 + 0x40))(plVar19,puVar18);\n          FUN_0016ae30(puVar14 + 5,param_1);\n          puVar14 = *(undefined8 **)(param_1 + 0x78);\n          if (puVar14 == (undefined8 *)0x0) {\n            puVar14 = (undefined8 *)FUN_00275550(0x80);\n            uVar2 = *(undefined8 *)(param_1 + 0x68);\n            uVar17 = *(undefined8 *)(param_1 + 0x48);\n            uVar4 = *(undefined8 *)(param_1 + 0x40);\n            uVar5 = *(undefined8 *)(param_1 + 0x38);\n            puVar14[0xd] = puVar18;\n            uVar6 = *(undefined8 *)(param_1 + 0x88);\n            uVar7 = *(undefined8 *)(param_1 + 0x80);\n            puVar14[2] = puVar14 + 4;\n            puVar14[9] = uVar17;\n            puVar14[10] = uVar2;\n            puVar14[1] = 0;\n            puVar14[3] = 0;\n            *(undefined1 *)(puVar14 + 4) = 0;\n            *(undefined1 *)(puVar14 + 6) = 0;\n            *puVar14 = &PTR_FUN_003acf00;\n            puVar14[7] = uVar5;\n            puVar14[8] = uVar4;\n            puVar14[0xb] = plVar19;\n            puVar14[0xc] = 0;\n            puVar14[0xe] = uVar7;\n            puVar14[0xf] = uVar6;\n            FUN_002300a0(param_2,puVar14);\n            return (uint)bVar11;\n          }\n          pbVar10 = *(byte **)(param_1 + 0x68);\n          puVar14[1] = puVar18;\n          *puVar14 = plVar19;\n          bVar11 = *pbVar10;\n          if (bVar11 != 0) {\n            *(undefined4 *)(puVar14 + 2) = *(undefined4 *)(pbVar10 + 100);\n            return (uint)bVar11;\n          }\n        }\n        else {\n          bVar11 = **(byte **)(param_1 + 0x68);\n          if (bVar11 != 0) {\n            __s = *(char **)(*(byte **)(param_1 + 0x68) + 8);\n            pcVar20 = (char *)0xffffffffffffffff;\n            local_58[0] = local_48;\n            if (__s != (char *)0x0) {\n              sVar15 = strlen(__s);\n              pcVar20 = __s + sVar15;\n            }\n            FUN_0015cbe0(local_58,__s,pcVar20);\n                    /* try { // try from 001f5e1a to 001f5e1e has its CatchHandler @ 001f63a4 */\n            lVar16 = FUN_00275550(0x178);\n                    /* try { // try from 001f5e42 to 001f5e46 has its CatchHandler @ 001f639c */\n            FUN_00234b40(lVar16,local_58,puVar14,\n                         lVar3 == s__<thin>__<arch>_N4gold7ArchiveE_00322e50._0_8_,\n                         *(undefined8 *)(param_1 + 0x50),param_1);\n            if (local_58[0] != local_48) {\n              FUN_00276d20();\n            }\n            FUN_00235c40(lVar16);\n            FUN_0016ae30(*(long *)(lVar16 + 0x38) + 0x28,param_1);\n            puVar14 = (undefined8 *)FUN_00275550(0x90);\n            uVar2 = *(undefined8 *)(param_1 + 0x88);\n            uVar17 = *(undefined8 *)(param_1 + 0x80);\n            uVar4 = *(undefined8 *)(param_1 + 0x70);\n            uVar5 = *(undefined8 *)(param_1 + 0x68);\n            *(undefined1 *)(puVar14 + 4) = 0;\n            uVar6 = *(undefined8 *)(param_1 + 0x60);\n            uVar1 = *(undefined4 *)(param_1 + 0x58);\n            puVar14[2] = puVar14 + 4;\n            uVar7 = *(undefined8 *)(param_1 + 0x50);\n            uVar8 = *(undefined8 *)(param_1 + 0x38);\n            puVar14[0xd] = uVar5;\n            uVar5 = *(undefined8 *)(param_1 + 0x48);\n            uVar9 = *(undefined8 *)(param_1 + 0x40);\n            puVar14[0xf] = uVar4;\n            puVar14[1] = 0;\n            puVar14[3] = 0;\n            *(undefined1 *)(puVar14 + 6) = 0;\n            *puVar14 = &PTR_FUN_003ae430;\n            puVar14[7] = uVar9;\n            puVar14[8] = uVar5;\n            puVar14[9] = uVar8;\n            puVar14[10] = uVar7;\n            *(undefined4 *)(puVar14 + 0xb) = uVar1;\n            puVar14[0xc] = uVar6;\n            puVar14[0xe] = lVar16;\n            puVar14[0x10] = uVar17;\n            puVar14[0x11] = uVar2;\n            FUN_002300a0(param_2,puVar14);\n            return (uint)bVar11;\n          }\n        }\n                    /* WARNING: Subroutine does not return */\n        FUN_0016cdf0("../../gold/options.h",0x828,&DAT_0031b73b);\n      }\n      uVar2 = puVar14[5];\n      uVar17 = gettext("%s: file is empty");\n      FUN_001690a0(uVar17,uVar2);\n    }\n    return 0;\n  }" else (if_statement "if (*(long *)(pcVar20 + 0x70) == 0) {\n    puVar14 = (undefined8 *)FUN_00275550(0xe8);\n    uVar2 = *(undefined8 *)(param_1 + 0x50);\n    *puVar14 = pcVar20 + 8;\n    puVar14[1] = puVar14 + 3;\n    puVar14[2] = 0;\n    *(undefined1 *)(puVar14 + 3) = 0;\n    puVar14[5] = puVar14 + 7;\n    puVar14[0x13] = puVar14 + 0x11;\n    puVar14[0x14] = puVar14 + 0x11;\n    puVar14[6] = 0;\n    *(undefined1 *)(puVar14 + 7) = 0;\n    *(undefined4 *)(puVar14 + 9) = 0xffffffff;\n    *(undefined1 *)((long)puVar14 + 0x4c) = 0;\n    *(undefined4 *)(puVar14 + 10) = 0;\n    puVar14[0xb] = 0;\n    *(undefined1 *)(puVar14 + 0xc) = 0;\n    *(undefined4 *)((long)puVar14 + 100) = 0;\n    puVar14[0xd] = 0;\n    puVar14[0xe] = 0;\n    puVar14[0xf] = 0;\n    *(undefined4 *)(puVar14 + 0x11) = 0;\n    puVar14[0x12] = 0;\n    puVar14[0x15] = 0;\n    puVar14[0x17] = puVar14 + 0x16;\n    puVar14[0x16] = puVar14 + 0x16;\n    puVar14[0x18] = 0;\n    puVar14[0x19] = 0;\n    *(undefined1 *)(puVar14 + 0x1a) = 1;\n    puVar14[0x1b] = 0;\n    *(undefined1 *)(puVar14 + 0x1c) = 0;\n    *(undefined4 *)((long)puVar14 + 0xe4) = 0;\n    uVar13 = FUN_0016ca50(puVar14,uVar2,param_1,param_1 + 0x58);\n    if ((char)uVar13 != '\0') {\n      lVar16 = puVar14[0xb];\n      if (lVar16 != 0) {\n        bVar11 = FUN_0019b230(puVar14,0,&local_60,&local_64);\n        if ((local_64 < 8) ||\n           ((lVar3 = *local_60, lVar3 != s__<thin>__<arch>_N4gold7ArchiveE_00322e50._0_8_ &&\n            (s__<thin>__<arch>_N4gold7ArchiveE_00322e50._8_8_ != lVar3)))) {\n          plVar19 = (long *)0x0;\n          if (bVar11 != 0) {\n            local_58[0] = (undefined1 *)((ulong)local_58[0] & 0xffffffffffffff00);\n            cVar12 = FUN_0016b000(puVar14);\n            ppuVar21 = (undefined1 **)0x0;\n            if (cVar12 != '\0') {\n              ppuVar21 = local_58;\n            }\n            plVar19 = (long *)FUN_0019b3d0(puVar14 + 5,puVar14,0,local_60,(long)local_64,ppuVar21);\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          lVar3 = *(long *)(*(long *)(PTR_DAT_003be6b0 + 0x10) + 0x9058);\n          if ((lVar3 != 0) && (lVar16 = FUN_001f1940(lVar3,puVar14,0,lVar16,plVar19), lVar16 != 0))\n          {\n            if (plVar19 != (long *)0x0) {\n              (**(code **)(*plVar19 + 8))(plVar19);\n            }\n            if (*(long *)(lVar16 + 0x28) != 0) {\n              FUN_0016ae30(*(long *)(lVar16 + 0x28) + 0x28,param_1);\n            }\n            plVar19 = *(long **)(param_1 + 0x78);\n            if (plVar19 == (long *)0x0) {\n              puVar14 = (undefined8 *)FUN_00275550(0x80);\n              uVar2 = *(undefined8 *)(param_1 + 0x68);\n              uVar17 = *(undefined8 *)(param_1 + 0x48);\n              uVar4 = *(undefined8 *)(param_1 + 0x40);\n              uVar5 = *(undefined8 *)(param_1 + 0x38);\n              *puVar14 = &PTR_FUN_003acf00;\n              uVar6 = *(undefined8 *)(param_1 + 0x88);\n              uVar7 = *(undefined8 *)(param_1 + 0x80);\n              puVar14[9] = uVar17;\n              puVar14[10] = uVar2;\n              puVar14[1] = 0;\n              puVar14[2] = puVar14 + 4;\n              puVar14[3] = 0;\n              *(undefined1 *)(puVar14 + 4) = 0;\n              *(undefined1 *)(puVar14 + 6) = 0;\n              puVar14[7] = uVar5;\n              puVar14[8] = uVar4;\n              puVar14[0xb] = lVar16;\n              puVar14[0xc] = 0;\n              puVar14[0xd] = 0;\n              puVar14[0xe] = uVar7;\n              puVar14[0xf] = uVar6;\n              FUN_002300a0(param_2,puVar14);\n              return uVar13;\n            }\n            plVar19[1] = 0;\n            *plVar19 = lVar16;\n            return uVar13;\n          }\n          if (bVar11 == 0) {\n            puVar18 = (undefined8 *)FUN_00275550(0x90);\n            uVar2 = *(undefined8 *)(param_1 + 0x88);\n            uVar17 = *(undefined8 *)(param_1 + 0x80);\n            uVar4 = *(undefined8 *)(param_1 + 0x68);\n            uVar5 = *(undefined8 *)(param_1 + 0x70);\n            *(undefined1 *)(puVar18 + 4) = 0;\n            uVar6 = *(undefined8 *)(param_1 + 0x60);\n            uVar7 = *(undefined8 *)(param_1 + 0x38);\n            puVar18[2] = puVar18 + 4;\n            uVar1 = *(undefined4 *)(param_1 + 0x58);\n            uVar8 = *(undefined8 *)(param_1 + 0x50);\n            puVar18[0xd] = uVar5;\n            uVar5 = *(undefined8 *)(param_1 + 0x48);\n            uVar9 = *(undefined8 *)(param_1 + 0x40);\n            puVar18[0xe] = uVar4;\n            puVar18[1] = 0;\n            puVar18[3] = 0;\n            *(undefined1 *)(puVar18 + 6) = 0;\n            *puVar18 = &PTR_FUN_003ad080;\n            puVar18[7] = uVar9;\n            puVar18[8] = uVar5;\n            puVar18[9] = uVar8;\n            *(undefined4 *)(puVar18 + 10) = uVar1;\n            puVar18[0xb] = uVar7;\n            puVar18[0xc] = uVar6;\n            puVar18[0xf] = puVar14;\n            puVar18[0x10] = uVar17;\n            puVar18[0x11] = uVar2;\n            FUN_00230080(param_2,puVar18);\n            return uVar13;\n          }\n          if (plVar19 == (long *)0x0) {\n            if ((char)local_58[0] == '\0') {\n              return 0;\n            }\n            puVar18 = puVar14 + 5;\n            FUN_001f51c0(*(undefined8 *)(param_1 + 0x68),puVar14);\n            FUN_0016ad00(puVar18);\n            FUN_0016ae30(puVar18,param_1);\n            FUN_0016b0b0(puVar18);\n            if (puVar14 + 3 != (undefined8 *)puVar14[1]) {\n              FUN_00276d20();\n            }\n            thunk_FUN_00276d20(puVar14,0xe8);\n            *(int *)(param_1 + 0x58) = *(int *)(param_1 + 0x58) + 1;\n            uVar13 = FUN_001f5c10(param_1,param_2);\n            return uVar13;\n          }\n          puVar18 = (undefined8 *)FUN_00275550(0x80);\n          *puVar18 = 0;\n          puVar18[1] = 0;\n          puVar18[3] = 0;\n          puVar18[6] = 0;\n          puVar18[8] = 0;\n          puVar18[10] = 0;\n          puVar18[0xd] = 0;\n          (**(code **)(*plVar19 + 0x40))(plVar19,puVar18);\n          FUN_0016ae30(puVar14 + 5,param_1);\n          puVar14 = *(undefined8 **)(param_1 + 0x78);\n          if (puVar14 == (undefined8 *)0x0) {\n            puVar14 = (undefined8 *)FUN_00275550(0x80);\n            uVar2 = *(undefined8 *)(param_1 + 0x68);\n            uVar17 = *(undefined8 *)(param_1 + 0x48);\n            uVar4 = *(undefined8 *)(param_1 + 0x40);\n            uVar5 = *(undefined8 *)(param_1 + 0x38);\n            puVar14[0xd] = puVar18;\n            uVar6 = *(undefined8 *)(param_1 + 0x88);\n            uVar7 = *(undefined8 *)(param_1 + 0x80);\n            puVar14[2] = puVar14 + 4;\n            puVar14[9] = uVar17;\n            puVar14[10] = uVar2;\n            puVar14[1] = 0;\n            puVar14[3] = 0;\n            *(undefined1 *)(puVar14 + 4) = 0;\n            *(undefined1 *)(puVar14 + 6) = 0;\n            *puVar14 = &PTR_FUN_003acf00;\n            puVar14[7] = uVar5;\n            puVar14[8] = uVar4;\n            puVar14[0xb] = plVar19;\n            puVar14[0xc] = 0;\n            puVar14[0xe] = uVar7;\n            puVar14[0xf] = uVar6;\n            FUN_002300a0(param_2,puVar14);\n            return (uint)bVar11;\n          }\n          pbVar10 = *(byte **)(param_1 + 0x68);\n          puVar14[1] = puVar18;\n          *puVar14 = plVar19;\n          bVar11 = *pbVar10;\n          if (bVar11 != 0) {\n            *(undefined4 *)(puVar14 + 2) = *(undefined4 *)(pbVar10 + 100);\n            return (uint)bVar11;\n          }\n        }\n        else {\n          bVar11 = **(byte **)(param_1 + 0x68);\n          if (bVar11 != 0) {\n            __s = *(char **)(*(byte **)(param_1 + 0x68) + 8);\n            pcVar20 = (char *)0xffffffffffffffff;\n            local_58[0] = local_48;\n            if (__s != (char *)0x0) {\n              sVar15 = strlen(__s);\n              pcVar20 = __s + sVar15;\n            }\n            FUN_0015cbe0(local_58,__s,pcVar20);\n                    /* try { // try from 001f5e1a to 001f5e1e has its CatchHandler @ 001f63a4 */\n            lVar16 = FUN_00275550(0x178);\n                    /* try { // try from 001f5e42 to 001f5e46 has its CatchHandler @ 001f639c */\n            FUN_00234b40(lVar16,local_58,puVar14,\n                         lVar3 == s__<thin>__<arch>_N4gold7ArchiveE_00322e50._0_8_,\n                         *(undefined8 *)(param_1 + 0x50),param_1);\n            if (local_58[0] != local_48) {\n              FUN_00276d20();\n            }\n            FUN_00235c40(lVar16);\n            FUN_0016ae30(*(long *)(lVar16 + 0x38) + 0x28,param_1);\n            puVar14 = (undefined8 *)FUN_00275550(0x90);\n            uVar2 = *(undefined8 *)(param_1 + 0x88);\n            uVar17 = *(undefined8 *)(param_1 + 0x80);\n            uVar4 = *(undefined8 *)(param_1 + 0x70);\n            uVar5 = *(undefined8 *)(param_1 + 0x68);\n            *(undefined1 *)(puVar14 + 4) = 0;\n            uVar6 = *(undefined8 *)(param_1 + 0x60);\n            uVar1 = *(undefined4 *)(param_1 + 0x58);\n            puVar14[2] = puVar14 + 4;\n            uVar7 = *(undefined8 *)(param_1 + 0x50);\n            uVar8 = *(undefined8 *)(param_1 + 0x38);\n            puVar14[0xd] = uVar5;\n            uVar5 = *(undefined8 *)(param_1 + 0x48);\n            uVar9 = *(undefined8 *)(param_1 + 0x40);\n            puVar14[0xf] = uVar4;\n            puVar14[1] = 0;\n            puVar14[3] = 0;\n            *(undefined1 *)(puVar14 + 6) = 0;\n            *puVar14 = &PTR_FUN_003ae430;\n            puVar14[7] = uVar9;\n            puVar14[8] = uVar5;\n            puVar14[9] = uVar8;\n            puVar14[10] = uVar7;\n            *(undefined4 *)(puVar14 + 0xb) = uVar1;\n            puVar14[0xc] = uVar6;\n            puVar14[0xe] = lVar16;\n            puVar14[0x10] = uVar17;\n            puVar14[0x11] = uVar2;\n            FUN_002300a0(param_2,puVar14);\n            return (uint)bVar11;\n          }\n        }\n                    /* WARNING: Subroutine does not return */\n        FUN_0016cdf0("../../gold/options.h",0x828,&DAT_0031b73b);\n      }\n      uVar2 = puVar14[5];\n      uVar17 = gettext("%s: file is empty");\n      FUN_001690a0(uVar17,uVar2);\n    }\n    return 0;\n  }" if (parenthesized_expression "(*(long *)(pcVar20 + 0x70) == 0)" ( (binary_expression "*(long *)(pcVar20 + 0x70) == 0" (pointer_expression "*(long *)(pcVar20 + 0x70)" * (cast_expression "(long *)(pcVar20 + 0x70)" ( (type_descriptor "long *" (sized_type_specifier "long" long) (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pcVar20 + 0x70)" ( (binary_expression "pcVar20 + 0x70" identifier + number_literal) )))) == number_literal) )) (compound_statement "{\n    puVar14 = (undefined8 *)FUN_00275550(0xe8);\n    uVar2 = *(undefined8 *)(param_1 + 0x50);\n    *puVar14 = pcVar20 + 8;\n    puVar14[1] = puVar14 + 3;\n    puVar14[2] = 0;\n    *(undefined1 *)(puVar14 + 3) = 0;\n    puVar14[5] = puVar14 + 7;\n    puVar14[0x13] = puVar14 + 0x11;\n    puVar14[0x14] = puVar14 + 0x11;\n    puVar14[6] = 0;\n    *(undefined1 *)(puVar14 + 7) = 0;\n    *(undefined4 *)(puVar14 + 9) = 0xffffffff;\n    *(undefined1 *)((long)puVar14 + 0x4c) = 0;\n    *(undefined4 *)(puVar14 + 10) = 0;\n    puVar14[0xb] = 0;\n    *(undefined1 *)(puVar14 + 0xc) = 0;\n    *(undefined4 *)((long)puVar14 + 100) = 0;\n    puVar14[0xd] = 0;\n    puVar14[0xe] = 0;\n    puVar14[0xf] = 0;\n    *(undefined4 *)(puVar14 + 0x11) = 0;\n    puVar14[0x12] = 0;\n    puVar14[0x15] = 0;\n    puVar14[0x17] = puVar14 + 0x16;\n    puVar14[0x16] = puVar14 + 0x16;\n    puVar14[0x18] = 0;\n    puVar14[0x19] = 0;\n    *(undefined1 *)(puVar14 + 0x1a) = 1;\n    puVar14[0x1b] = 0;\n    *(undefined1 *)(puVar14 + 0x1c) = 0;\n    *(undefined4 *)((long)puVar14 + 0xe4) = 0;\n    uVar13 = FUN_0016ca50(puVar14,uVar2,param_1,param_1 + 0x58);\n    if ((char)uVar13 != '\0') {\n      lVar16 = puVar14[0xb];\n      if (lVar16 != 0) {\n        bVar11 = FUN_0019b230(puVar14,0,&local_60,&local_64);\n        if ((local_64 < 8) ||\n           ((lVar3 = *local_60, lVar3 != s__<thin>__<arch>_N4gold7ArchiveE_00322e50._0_8_ &&\n            (s__<thin>__<arch>_N4gold7ArchiveE_00322e50._8_8_ != lVar3)))) {\n          plVar19 = (long *)0x0;\n          if (bVar11 != 0) {\n            local_58[0] = (undefined1 *)((ulong)local_58[0] & 0xffffffffffffff00);\n            cVar12 = FUN_0016b000(puVar14);\n            ppuVar21 = (undefined1 **)0x0;\n            if (cVar12 != '\0') {\n              ppuVar21 = local_58;\n            }\n            plVar19 = (long *)FUN_0019b3d0(puVar14 + 5,puVar14,0,local_60,(long)local_64,ppuVar21);\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          lVar3 = *(long *)(*(long *)(PTR_DAT_003be6b0 + 0x10) + 0x9058);\n          if ((lVar3 != 0) && (lVar16 = FUN_001f1940(lVar3,puVar14,0,lVar16,plVar19), lVar16 != 0))\n          {\n            if (plVar19 != (long *)0x0) {\n              (**(code **)(*plVar19 + 8))(plVar19);\n            }\n            if (*(long *)(lVar16 + 0x28) != 0) {\n              FUN_0016ae30(*(long *)(lVar16 + 0x28) + 0x28,param_1);\n            }\n            plVar19 = *(long **)(param_1 + 0x78);\n            if (plVar19 == (long *)0x0) {\n              puVar14 = (undefined8 *)FUN_00275550(0x80);\n              uVar2 = *(undefined8 *)(param_1 + 0x68);\n              uVar17 = *(undefined8 *)(param_1 + 0x48);\n              uVar4 = *(undefined8 *)(param_1 + 0x40);\n              uVar5 = *(undefined8 *)(param_1 + 0x38);\n              *puVar14 = &PTR_FUN_003acf00;\n              uVar6 = *(undefined8 *)(param_1 + 0x88);\n              uVar7 = *(undefined8 *)(param_1 + 0x80);\n              puVar14[9] = uVar17;\n              puVar14[10] = uVar2;\n              puVar14[1] = 0;\n              puVar14[2] = puVar14 + 4;\n              puVar14[3] = 0;\n              *(undefined1 *)(puVar14 + 4) = 0;\n              *(undefined1 *)(puVar14 + 6) = 0;\n              puVar14[7] = uVar5;\n              puVar14[8] = uVar4;\n              puVar14[0xb] = lVar16;\n              puVar14[0xc] = 0;\n              puVar14[0xd] = 0;\n              puVar14[0xe] = uVar7;\n              puVar14[0xf] = uVar6;\n              FUN_002300a0(param_2,puVar14);\n              return uVar13;\n            }\n            plVar19[1] = 0;\n            *plVar19 = lVar16;\n            return uVar13;\n          }\n          if (bVar11 == 0) {\n            puVar18 = (undefined8 *)FUN_00275550(0x90);\n            uVar2 = *(undefined8 *)(param_1 + 0x88);\n            uVar17 = *(undefined8 *)(param_1 + 0x80);\n            uVar4 = *(undefined8 *)(param_1 + 0x68);\n            uVar5 = *(undefined8 *)(param_1 + 0x70);\n            *(undefined1 *)(puVar18 + 4) = 0;\n            uVar6 = *(undefined8 *)(param_1 + 0x60);\n            uVar7 = *(undefined8 *)(param_1 + 0x38);\n            puVar18[2] = puVar18 + 4;\n            uVar1 = *(undefined4 *)(param_1 + 0x58);\n            uVar8 = *(undefined8 *)(param_1 + 0x50);\n            puVar18[0xd] = uVar5;\n            uVar5 = *(undefined8 *)(param_1 + 0x48);\n            uVar9 = *(undefined8 *)(param_1 + 0x40);\n            puVar18[0xe] = uVar4;\n            puVar18[1] = 0;\n            puVar18[3] = 0;\n            *(undefined1 *)(puVar18 + 6) = 0;\n            *puVar18 = &PTR_FUN_003ad080;\n            puVar18[7] = uVar9;\n            puVar18[8] = uVar5;\n            puVar18[9] = uVar8;\n            *(undefined4 *)(puVar18 + 10) = uVar1;\n            puVar18[0xb] = uVar7;\n            puVar18[0xc] = uVar6;\n            puVar18[0xf] = puVar14;\n            puVar18[0x10] = uVar17;\n            puVar18[0x11] = uVar2;\n            FUN_00230080(param_2,puVar18);\n            return uVar13;\n          }\n          if (plVar19 == (long *)0x0) {\n            if ((char)local_58[0] == '\0') {\n              return 0;\n            }\n            puVar18 = puVar14 + 5;\n            FUN_001f51c0(*(undefined8 *)(param_1 + 0x68),puVar14);\n            FUN_0016ad00(puVar18);\n            FUN_0016ae30(puVar18,param_1);\n            FUN_0016b0b0(puVar18);\n            if (puVar14 + 3 != (undefined8 *)puVar14[1]) {\n              FUN_00276d20();\n            }\n            thunk_FUN_00276d20(puVar14,0xe8);\n            *(int *)(param_1 + 0x58) = *(int *)(param_1 + 0x58) + 1;\n            uVar13 = FUN_001f5c10(param_1,param_2);\n            return uVar13;\n          }\n          puVar18 = (undefined8 *)FUN_00275550(0x80);\n          *puVar18 = 0;\n          puVar18[1] = 0;\n          puVar18[3] = 0;\n          puVar18[6] = 0;\n          puVar18[8] = 0;\n          puVar18[10] = 0;\n          puVar18[0xd] = 0;\n          (**(code **)(*plVar19 + 0x40))(plVar19,puVar18);\n          FUN_0016ae30(puVar14 + 5,param_1);\n          puVar14 = *(undefined8 **)(param_1 + 0x78);\n          if (puVar14 == (undefined8 *)0x0) {\n            puVar14 = (undefined8 *)FUN_00275550(0x80);\n            uVar2 = *(undefined8 *)(param_1 + 0x68);\n            uVar17 = *(undefined8 *)(param_1 + 0x48);\n            uVar4 = *(undefined8 *)(param_1 + 0x40);\n            uVar5 = *(undefined8 *)(param_1 + 0x38);\n            puVar14[0xd] = puVar18;\n            uVar6 = *(undefined8 *)(param_1 + 0x88);\n            uVar7 = *(undefined8 *)(param_1 + 0x80);\n            puVar14[2] = puVar14 + 4;\n            puVar14[9] = uVar17;\n            puVar14[10] = uVar2;\n            puVar14[1] = 0;\n            puVar14[3] = 0;\n            *(undefined1 *)(puVar14 + 4) = 0;\n            *(undefined1 *)(puVar14 + 6) = 0;\n            *puVar14 = &PTR_FUN_003acf00;\n            puVar14[7] = uVar5;\n            puVar14[8] = uVar4;\n            puVar14[0xb] = plVar19;\n            puVar14[0xc] = 0;\n            puVar14[0xe] = uVar7;\n            puVar14[0xf] = uVar6;\n            FUN_002300a0(param_2,puVar14);\n            return (uint)bVar11;\n          }\n          pbVar10 = *(byte **)(param_1 + 0x68);\n          puVar14[1] = puVar18;\n          *puVar14 = plVar19;\n          bVar11 = *pbVar10;\n          if (bVar11 != 0) {\n            *(undefined4 *)(puVar14 + 2) = *(undefined4 *)(pbVar10 + 100);\n            return (uint)bVar11;\n          }\n        }\n        else {\n          bVar11 = **(byte **)(param_1 + 0x68);\n          if (bVar11 != 0) {\n            __s = *(char **)(*(byte **)(param_1 + 0x68) + 8);\n            pcVar20 = (char *)0xffffffffffffffff;\n            local_58[0] = local_48;\n            if (__s != (char *)0x0) {\n              sVar15 = strlen(__s);\n              pcVar20 = __s + sVar15;\n            }\n            FUN_0015cbe0(local_58,__s,pcVar20);\n                    /* try { // try from 001f5e1a to 001f5e1e has its CatchHandler @ 001f63a4 */\n            lVar16 = FUN_00275550(0x178);\n                    /* try { // try from 001f5e42 to 001f5e46 has its CatchHandler @ 001f639c */\n            FUN_00234b40(lVar16,local_58,puVar14,\n                         lVar3 == s__<thin>__<arch>_N4gold7ArchiveE_00322e50._0_8_,\n                         *(undefined8 *)(param_1 + 0x50),param_1);\n            if (local_58[0] != local_48) {\n              FUN_00276d20();\n            }\n            FUN_00235c40(lVar16);\n            FUN_0016ae30(*(long *)(lVar16 + 0x38) + 0x28,param_1);\n            puVar14 = (undefined8 *)FUN_00275550(0x90);\n            uVar2 = *(undefined8 *)(param_1 + 0x88);\n            uVar17 = *(undefined8 *)(param_1 + 0x80);\n            uVar4 = *(undefined8 *)(param_1 + 0x70);\n            uVar5 = *(undefined8 *)(param_1 + 0x68);\n            *(undefined1 *)(puVar14 + 4) = 0;\n            uVar6 = *(undefined8 *)(param_1 + 0x60);\n            uVar1 = *(undefined4 *)(param_1 + 0x58);\n            puVar14[2] = puVar14 + 4;\n            uVar7 = *(undefined8 *)(param_1 + 0x50);\n            uVar8 = *(undefined8 *)(param_1 + 0x38);\n            puVar14[0xd] = uVar5;\n            uVar5 = *(undefined8 *)(param_1 + 0x48);\n            uVar9 = *(undefined8 *)(param_1 + 0x40);\n            puVar14[0xf] = uVar4;\n            puVar14[1] = 0;\n            puVar14[3] = 0;\n            *(undefined1 *)(puVar14 + 6) = 0;\n            *puVar14 = &PTR_FUN_003ae430;\n            puVar14[7] = uVar9;\n            puVar14[8] = uVar5;\n            puVar14[9] = uVar8;\n            puVar14[10] = uVar7;\n            *(undefined4 *)(puVar14 + 0xb) = uVar1;\n            puVar14[0xc] = uVar6;\n            puVar14[0xe] = lVar16;\n            puVar14[0x10] = uVar17;\n            puVar14[0x11] = uVar2;\n            FUN_002300a0(param_2,puVar14);\n            return (uint)bVar11;\n          }\n        }\n                    /* WARNING: Subroutine does not return */\n        FUN_0016cdf0("../../gold/options.h",0x828,&DAT_0031b73b);\n      }\n      uVar2 = puVar14[5];\n      uVar17 = gettext("%s: file is empty");\n      FUN_001690a0(uVar17,uVar2);\n    }\n    return 0;\n  }" { (expression_statement "puVar14 = (undefined8 *)FUN_00275550(0xe8);" (assignment_expression "puVar14 = (undefined8 *)FUN_00275550(0xe8)" identifier = (cast_expression "(undefined8 *)FUN_00275550(0xe8)" ( (type_descriptor "undefined8 *" type_identifier (abstract_pointer_declarator "*" *)) ) (call_expression "FUN_00275550(0xe8)" identifier (argument_list "(0xe8)" ( number_literal ))))) ;) (expression_statement "uVar2 = *(undefined8 *)(param_1 + 0x50);" (assignment_expression "uVar2 = *(undefined8 *)(param_1 + 0x50)" identifier = (pointer_expression "*(undefined8 *)(param_1 + 0x50)" * (cast_expression "(undefined8 *)(param_1 + 0x50)" ( (type_descriptor "undefined8 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x50)" ( (binary_expression "param_1 + 0x50" identifier + number_literal) ))))) ;) (expression_statement "*puVar14 = pcVar20 + 8;" (assignment_expression "*puVar14 = pcVar20 + 8" (pointer_expression "*puVar14" * identifier) = (binary_expression "pcVar20 + 8" identifier + number_literal)) ;) (expression_statement "puVar14[1] = puVar14 + 3;" (assignment_expression "puVar14[1] = puVar14 + 3" (subscript_expression "puVar14[1]" identifier [ number_literal ]) = (binary_expression "puVar14 + 3" identifier + number_literal)) ;) (expression_statement "puVar14[2] = 0;" (assignment_expression "puVar14[2] = 0" (subscript_expression "puVar14[2]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "*(undefined1 *)(puVar14 + 3) = 0;" (assignment_expression "*(undefined1 *)(puVar14 + 3) = 0" (pointer_expression "*(undefined1 *)(puVar14 + 3)" * (cast_expression "(undefined1 *)(puVar14 + 3)" ( (type_descriptor "undefined1 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar14 + 3)" ( (binary_expression "puVar14 + 3" identifier + number_literal) )))) = number_literal) ;) (expression_statement "puVar14[5] = puVar14 + 7;" (assignment_expression "puVar14[5] = puVar14 + 7" (subscript_expression "puVar14[5]" identifier [ number_literal ]) = (binary_expression "puVar14 + 7" identifier + number_literal)) ;) (expression_statement "puVar14[0x13] = puVar14 + 0x11;" (assignment_expression "puVar14[0x13] = puVar14 + 0x11" (subscript_expression "puVar14[0x13]" identifier [ number_literal ]) = (binary_expression "puVar14 + 0x11" identifier + number_literal)) ;) (expression_statement "puVar14[0x14] = puVar14 + 0x11;" (assignment_expression "puVar14[0x14] = puVar14 + 0x11" (subscript_expression "puVar14[0x14]" identifier [ number_literal ]) = (binary_expression "puVar14 + 0x11" identifier + number_literal)) ;) (expression_statement "puVar14[6] = 0;" (assignment_expression "puVar14[6] = 0" (subscript_expression "puVar14[6]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "*(undefined1 *)(puVar14 + 7) = 0;" (assignment_expression "*(undefined1 *)(puVar14 + 7) = 0" (pointer_expression "*(undefined1 *)(puVar14 + 7)" * (cast_expression "(undefined1 *)(puVar14 + 7)" ( (type_descriptor "undefined1 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar14 + 7)" ( (binary_expression "puVar14 + 7" identifier + number_literal) )))) = number_literal) ;) (expression_statement "*(undefined4 *)(puVar14 + 9) = 0xffffffff;" (assignment_expression "*(undefined4 *)(puVar14 + 9) = 0xffffffff" (pointer_expression "*(undefined4 *)(puVar14 + 9)" * (cast_expression "(undefined4 *)(puVar14 + 9)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar14 + 9)" ( (binary_expression "puVar14 + 9" identifier + number_literal) )))) = number_literal) ;) (expression_statement "*(undefined1 *)((long)puVar14 + 0x4c) = 0;" (assignment_expression "*(undefined1 *)((long)puVar14 + 0x4c) = 0" (pointer_expression "*(undefined1 *)((long)puVar14 + 0x4c)" * (cast_expression "(undefined1 *)((long)puVar14 + 0x4c)" ( (type_descriptor "undefined1 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((long)puVar14 + 0x4c)" ( (binary_expression "(long)puVar14 + 0x4c" (cast_expression "(long)puVar14" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) identifier) + number_literal) )))) = number_literal) ;) (expression_statement "*(undefined4 *)(puVar14 + 10) = 0;" (assignment_expression "*(undefined4 *)(puVar14 + 10) = 0" (pointer_expression "*(undefined4 *)(puVar14 + 10)" * (cast_expression "(undefined4 *)(puVar14 + 10)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar14 + 10)" ( (binary_expression "puVar14 + 10" identifier + number_literal) )))) = number_literal) ;) (expression_statement "puVar14[0xb] = 0;" (assignment_expression "puVar14[0xb] = 0" (subscript_expression "puVar14[0xb]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "*(undefined1 *)(puVar14 + 0xc) = 0;" (assignment_expression "*(undefined1 *)(puVar14 + 0xc) = 0" (pointer_expression "*(undefined1 *)(puVar14 + 0xc)" * (cast_expression "(undefined1 *)(puVar14 + 0xc)" ( (type_descriptor "undefined1 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar14 + 0xc)" ( (binary_expression "puVar14 + 0xc" identifier + number_literal) )))) = number_literal) ;) (expression_statement "*(undefined4 *)((long)puVar14 + 100) = 0;" (assignment_expression "*(undefined4 *)((long)puVar14 + 100) = 0" (pointer_expression "*(undefined4 *)((long)puVar14 + 100)" * (cast_expression "(undefined4 *)((long)puVar14 + 100)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((long)puVar14 + 100)" ( (binary_expression "(long)puVar14 + 100" (cast_expression "(long)puVar14" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) identifier) + number_literal) )))) = number_literal) ;) (expression_statement "puVar14[0xd] = 0;" (assignment_expression "puVar14[0xd] = 0" (subscript_expression "puVar14[0xd]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "puVar14[0xe] = 0;" (assignment_expression "puVar14[0xe] = 0" (subscript_expression "puVar14[0xe]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "puVar14[0xf] = 0;" (assignment_expression "puVar14[0xf] = 0" (subscript_expression "puVar14[0xf]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "*(undefined4 *)(puVar14 + 0x11) = 0;" (assignment_expression "*(undefined4 *)(puVar14 + 0x11) = 0" (pointer_expression "*(undefined4 *)(puVar14 + 0x11)" * (cast_expression "(undefined4 *)(puVar14 + 0x11)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar14 + 0x11)" ( (binary_expression "puVar14 + 0x11" identifier + number_literal) )))) = number_literal) ;) (expression_statement "puVar14[0x12] = 0;" (assignment_expression "puVar14[0x12] = 0" (subscript_expression "puVar14[0x12]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "puVar14[0x15] = 0;" (assignment_expression "puVar14[0x15] = 0" (subscript_expression "puVar14[0x15]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "puVar14[0x17] = puVar14 + 0x16;" (assignment_expression "puVar14[0x17] = puVar14 + 0x16" (subscript_expression "puVar14[0x17]" identifier [ number_literal ]) = (binary_expression "puVar14 + 0x16" identifier + number_literal)) ;) (expression_statement "puVar14[0x16] = puVar14 + 0x16;" (assignment_expression "puVar14[0x16] = puVar14 + 0x16" (subscript_expression "puVar14[0x16]" identifier [ number_literal ]) = (binary_expression "puVar14 + 0x16" identifier + number_literal)) ;) (expression_statement "puVar14[0x18] = 0;" (assignment_expression "puVar14[0x18] = 0" (subscript_expression "puVar14[0x18]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "puVar14[0x19] = 0;" (assignment_expression "puVar14[0x19] = 0" (subscript_expression "puVar14[0x19]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "*(undefined1 *)(puVar14 + 0x1a) = 1;" (assignment_expression "*(undefined1 *)(puVar14 + 0x1a) = 1" (pointer_expression "*(undefined1 *)(puVar14 + 0x1a)" * (cast_expression "(undefined1 *)(puVar14 + 0x1a)" ( (type_descriptor "undefined1 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar14 + 0x1a)" ( (binary_expression "puVar14 + 0x1a" identifier + number_literal) )))) = number_literal) ;) (expression_statement "puVar14[0x1b] = 0;" (assignment_expression "puVar14[0x1b] = 0" (subscript_expression "puVar14[0x1b]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "*(undefined1 *)(puVar14 + 0x1c) = 0;" (assignment_expression "*(undefined1 *)(puVar14 + 0x1c) = 0" (pointer_expression "*(undefined1 *)(puVar14 + 0x1c)" * (cast_expression "(undefined1 *)(puVar14 + 0x1c)" ( (type_descriptor "undefined1 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar14 + 0x1c)" ( (binary_expression "puVar14 + 0x1c" identifier + number_literal) )))) = number_literal) ;) (expression_statement "*(undefined4 *)((long)puVar14 + 0xe4) = 0;" (assignment_expression "*(undefined4 *)((long)puVar14 + 0xe4) = 0" (pointer_expression "*(undefined4 *)((long)puVar14 + 0xe4)" * (cast_expression "(undefined4 *)((long)puVar14 + 0xe4)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((long)puVar14 + 0xe4)" ( (binary_expression "(long)puVar14 + 0xe4" (cast_expression "(long)puVar14" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) identifier) + number_literal) )))) = number_literal) ;) (expression_statement "uVar13 = FUN_0016ca50(puVar14,uVar2,param_1,param_1 + 0x58);" (assignment_expression "uVar13 = FUN_0016ca50(puVar14,uVar2,param_1,param_1 + 0x58)" identifier = (call_expression "FUN_0016ca50(puVar14,uVar2,param_1,param_1 + 0x58)" identifier (argument_list "(puVar14,uVar2,param_1,param_1 + 0x58)" ( identifier , identifier , identifier , (binary_expression "param_1 + 0x58" identifier + number_literal) )))) ;) (if_statement "if ((char)uVar13 != '\0') {\n      lVar16 = puVar14[0xb];\n      if (lVar16 != 0) {\n        bVar11 = FUN_0019b230(puVar14,0,&local_60,&local_64);\n        if ((local_64 < 8) ||\n           ((lVar3 = *local_60, lVar3 != s__<thin>__<arch>_N4gold7ArchiveE_00322e50._0_8_ &&\n            (s__<thin>__<arch>_N4gold7ArchiveE_00322e50._8_8_ != lVar3)))) {\n          plVar19 = (long *)0x0;\n          if (bVar11 != 0) {\n            local_58[0] = (undefined1 *)((ulong)local_58[0] & 0xffffffffffffff00);\n            cVar12 = FUN_0016b000(puVar14);\n            ppuVar21 = (undefined1 **)0x0;\n            if (cVar12 != '\0') {\n              ppuVar21 = local_58;\n            }\n            plVar19 = (long *)FUN_0019b3d0(puVar14 + 5,puVar14,0,local_60,(long)local_64,ppuVar21);\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          lVar3 = *(long *)(*(long *)(PTR_DAT_003be6b0 + 0x10) + 0x9058);\n          if ((lVar3 != 0) && (lVar16 = FUN_001f1940(lVar3,puVar14,0,lVar16,plVar19), lVar16 != 0))\n          {\n            if (plVar19 != (long *)0x0) {\n              (**(code **)(*plVar19 + 8))(plVar19);\n            }\n            if (*(long *)(lVar16 + 0x28) != 0) {\n              FUN_0016ae30(*(long *)(lVar16 + 0x28) + 0x28,param_1);\n            }\n            plVar19 = *(long **)(param_1 + 0x78);\n            if (plVar19 == (long *)0x0) {\n              puVar14 = (undefined8 *)FUN_00275550(0x80);\n              uVar2 = *(undefined8 *)(param_1 + 0x68);\n              uVar17 = *(undefined8 *)(param_1 + 0x48);\n              uVar4 = *(undefined8 *)(param_1 + 0x40);\n              uVar5 = *(undefined8 *)(param_1 + 0x38);\n              *puVar14 = &PTR_FUN_003acf00;\n              uVar6 = *(undefined8 *)(param_1 + 0x88);\n              uVar7 = *(undefined8 *)(param_1 + 0x80);\n              puVar14[9] = uVar17;\n              puVar14[10] = uVar2;\n              puVar14[1] = 0;\n              puVar14[2] = puVar14 + 4;\n              puVar14[3] = 0;\n              *(undefined1 *)(puVar14 + 4) = 0;\n              *(undefined1 *)(puVar14 + 6) = 0;\n              puVar14[7] = uVar5;\n              puVar14[8] = uVar4;\n              puVar14[0xb] = lVar16;\n              puVar14[0xc] = 0;\n              puVar14[0xd] = 0;\n              puVar14[0xe] = uVar7;\n              puVar14[0xf] = uVar6;\n              FUN_002300a0(param_2,puVar14);\n              return uVar13;\n            }\n            plVar19[1] = 0;\n            *plVar19 = lVar16;\n            return uVar13;\n          }\n          if (bVar11 == 0) {\n            puVar18 = (undefined8 *)FUN_00275550(0x90);\n            uVar2 = *(undefined8 *)(param_1 + 0x88);\n            uVar17 = *(undefined8 *)(param_1 + 0x80);\n            uVar4 = *(undefined8 *)(param_1 + 0x68);\n            uVar5 = *(undefined8 *)(param_1 + 0x70);\n            *(undefined1 *)(puVar18 + 4) = 0;\n            uVar6 = *(undefined8 *)(param_1 + 0x60);\n            uVar7 = *(undefined8 *)(param_1 + 0x38);\n            puVar18[2] = puVar18 + 4;\n            uVar1 = *(undefined4 *)(param_1 + 0x58);\n            uVar8 = *(undefined8 *)(param_1 + 0x50);\n            puVar18[0xd] = uVar5;\n            uVar5 = *(undefined8 *)(param_1 + 0x48);\n            uVar9 = *(undefined8 *)(param_1 + 0x40);\n            puVar18[0xe] = uVar4;\n            puVar18[1] = 0;\n            puVar18[3] = 0;\n            *(undefined1 *)(puVar18 + 6) = 0;\n            *puVar18 = &PTR_FUN_003ad080;\n            puVar18[7] = uVar9;\n            puVar18[8] = uVar5;\n            puVar18[9] = uVar8;\n            *(undefined4 *)(puVar18 + 10) = uVar1;\n            puVar18[0xb] = uVar7;\n            puVar18[0xc] = uVar6;\n            puVar18[0xf] = puVar14;\n            puVar18[0x10] = uVar17;\n            puVar18[0x11] = uVar2;\n            FUN_00230080(param_2,puVar18);\n            return uVar13;\n          }\n          if (plVar19 == (long *)0x0) {\n            if ((char)local_58[0] == '\0') {\n              return 0;\n            }\n            puVar18 = puVar14 + 5;\n            FUN_001f51c0(*(undefined8 *)(param_1 + 0x68),puVar14);\n            FUN_0016ad00(puVar18);\n            FUN_0016ae30(puVar18,param_1);\n            FUN_0016b0b0(puVar18);\n            if (puVar14 + 3 != (undefined8 *)puVar14[1]) {\n              FUN_00276d20();\n            }\n            thunk_FUN_00276d20(puVar14,0xe8);\n            *(int *)(param_1 + 0x58) = *(int *)(param_1 + 0x58) + 1;\n            uVar13 = FUN_001f5c10(param_1,param_2);\n            return uVar13;\n          }\n          puVar18 = (undefined8 *)FUN_00275550(0x80);\n          *puVar18 = 0;\n          puVar18[1] = 0;\n          puVar18[3] = 0;\n          puVar18[6] = 0;\n          puVar18[8] = 0;\n          puVar18[10] = 0;\n          puVar18[0xd] = 0;\n          (**(code **)(*plVar19 + 0x40))(plVar19,puVar18);\n          FUN_0016ae30(puVar14 + 5,param_1);\n          puVar14 = *(undefined8 **)(param_1 + 0x78);\n          if (puVar14 == (undefined8 *)0x0) {\n            puVar14 = (undefined8 *)FUN_00275550(0x80);\n            uVar2 = *(undefined8 *)(param_1 + 0x68);\n            uVar17 = *(undefined8 *)(param_1 + 0x48);\n            uVar4 = *(undefined8 *)(param_1 + 0x40);\n            uVar5 = *(undefined8 *)(param_1 + 0x38);\n            puVar14[0xd] = puVar18;\n            uVar6 = *(undefined8 *)(param_1 + 0x88);\n            uVar7 = *(undefined8 *)(param_1 + 0x80);\n            puVar14[2] = puVar14 + 4;\n            puVar14[9] = uVar17;\n            puVar14[10] = uVar2;\n            puVar14[1] = 0;\n            puVar14[3] = 0;\n            *(undefined1 *)(puVar14 + 4) = 0;\n            *(undefined1 *)(puVar14 + 6) = 0;\n            *puVar14 = &PTR_FUN_003acf00;\n            puVar14[7] = uVar5;\n            puVar14[8] = uVar4;\n            puVar14[0xb] = plVar19;\n            puVar14[0xc] = 0;\n            puVar14[0xe] = uVar7;\n            puVar14[0xf] = uVar6;\n            FUN_002300a0(param_2,puVar14);\n            return (uint)bVar11;\n          }\n          pbVar10 = *(byte **)(param_1 + 0x68);\n          puVar14[1] = puVar18;\n          *puVar14 = plVar19;\n          bVar11 = *pbVar10;\n          if (bVar11 != 0) {\n            *(undefined4 *)(puVar14 + 2) = *(undefined4 *)(pbVar10 + 100);\n            return (uint)bVar11;\n          }\n        }\n        else {\n          bVar11 = **(byte **)(param_1 + 0x68);\n          if (bVar11 != 0) {\n            __s = *(char **)(*(byte **)(param_1 + 0x68) + 8);\n            pcVar20 = (char *)0xffffffffffffffff;\n            local_58[0] = local_48;\n            if (__s != (char *)0x0) {\n              sVar15 = strlen(__s);\n              pcVar20 = __s + sVar15;\n            }\n            FUN_0015cbe0(local_58,__s,pcVar20);\n                    /* try { // try from 001f5e1a to 001f5e1e has its CatchHandler @ 001f63a4 */\n            lVar16 = FUN_00275550(0x178);\n                    /* try { // try from 001f5e42 to 001f5e46 has its CatchHandler @ 001f639c */\n            FUN_00234b40(lVar16,local_58,puVar14,\n                         lVar3 == s__<thin>__<arch>_N4gold7ArchiveE_00322e50._0_8_,\n                         *(undefined8 *)(param_1 + 0x50),param_1);\n            if (local_58[0] != local_48) {\n              FUN_00276d20();\n            }\n            FUN_00235c40(lVar16);\n            FUN_0016ae30(*(long *)(lVar16 + 0x38) + 0x28,param_1);\n            puVar14 = (undefined8 *)FUN_00275550(0x90);\n            uVar2 = *(undefined8 *)(param_1 + 0x88);\n            uVar17 = *(undefined8 *)(param_1 + 0x80);\n            uVar4 = *(undefined8 *)(param_1 + 0x70);\n            uVar5 = *(undefined8 *)(param_1 + 0x68);\n            *(undefined1 *)(puVar14 + 4) = 0;\n            uVar6 = *(undefined8 *)(param_1 + 0x60);\n            uVar1 = *(undefined4 *)(param_1 + 0x58);\n            puVar14[2] = puVar14 + 4;\n            uVar7 = *(undefined8 *)(param_1 + 0x50);\n            uVar8 = *(undefined8 *)(param_1 + 0x38);\n            puVar14[0xd] = uVar5;\n            uVar5 = *(undefined8 *)(param_1 + 0x48);\n            uVar9 = *(undefined8 *)(param_1 + 0x40);\n            puVar14[0xf] = uVar4;\n            puVar14[1] = 0;\n            puVar14[3] = 0;\n            *(undefined1 *)(puVar14 + 6) = 0;\n            *puVar14 = &PTR_FUN_003ae430;\n            puVar14[7] = uVar9;\n            puVar14[8] = uVar5;\n            puVar14[9] = uVar8;\n            puVar14[10] = uVar7;\n            *(undefined4 *)(puVar14 + 0xb) = uVar1;\n            puVar14[0xc] = uVar6;\n            puVar14[0xe] = lVar16;\n            puVar14[0x10] = uVar17;\n            puVar14[0x11] = uVar2;\n            FUN_002300a0(param_2,puVar14);\n            return (uint)bVar11;\n          }\n        }\n                    /* WARNING: Subroutine does not return */\n        FUN_0016cdf0("../../gold/options.h",0x828,&DAT_0031b73b);\n      }\n      uVar2 = puVar14[5];\n      uVar17 = gettext("%s: file is empty");\n      FUN_001690a0(uVar17,uVar2);\n    }" if (parenthesized_expression "((char)uVar13 != '\0')" ( (binary_expression "(char)uVar13 != '\0'" (cast_expression "(char)uVar13" ( (type_descriptor "char" primitive_type) ) identifier) != (char_literal "'\0'" ' escape_sequence ')) )) (compound_statement "{\n      lVar16 = puVar14[0xb];\n      if (lVar16 != 0) {\n        bVar11 = FUN_0019b230(puVar14,0,&local_60,&local_64);\n        if ((local_64 < 8) ||\n           ((lVar3 = *local_60, lVar3 != s__<thin>__<arch>_N4gold7ArchiveE_00322e50._0_8_ &&\n            (s__<thin>__<arch>_N4gold7ArchiveE_00322e50._8_8_ != lVar3)))) {\n          plVar19 = (long *)0x0;\n          if (bVar11 != 0) {\n            local_58[0] = (undefined1 *)((ulong)local_58[0] & 0xffffffffffffff00);\n            cVar12 = FUN_0016b000(puVar14);\n            ppuVar21 = (undefined1 **)0x0;\n            if (cVar12 != '\0') {\n              ppuVar21 = local_58;\n            }\n            plVar19 = (long *)FUN_0019b3d0(puVar14 + 5,puVar14,0,local_60,(long)local_64,ppuVar21);\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          lVar3 = *(long *)(*(long *)(PTR_DAT_003be6b0 + 0x10) + 0x9058);\n          if ((lVar3 != 0) && (lVar16 = FUN_001f1940(lVar3,puVar14,0,lVar16,plVar19), lVar16 != 0))\n          {\n            if (plVar19 != (long *)0x0) {\n              (**(code **)(*plVar19 + 8))(plVar19);\n            }\n            if (*(long *)(lVar16 + 0x28) != 0) {\n              FUN_0016ae30(*(long *)(lVar16 + 0x28) + 0x28,param_1);\n            }\n            plVar19 = *(long **)(param_1 + 0x78);\n            if (plVar19 == (long *)0x0) {\n              puVar14 = (undefined8 *)FUN_00275550(0x80);\n              uVar2 = *(undefined8 *)(param_1 + 0x68);\n              uVar17 = *(undefined8 *)(param_1 + 0x48);\n              uVar4 = *(undefined8 *)(param_1 + 0x40);\n              uVar5 = *(undefined8 *)(param_1 + 0x38);\n              *puVar14 = &PTR_FUN_003acf00;\n              uVar6 = *(undefined8 *)(param_1 + 0x88);\n              uVar7 = *(undefined8 *)(param_1 + 0x80);\n              puVar14[9] = uVar17;\n              puVar14[10] = uVar2;\n              puVar14[1] = 0;\n              puVar14[2] = puVar14 + 4;\n              puVar14[3] = 0;\n              *(undefined1 *)(puVar14 + 4) = 0;\n              *(undefined1 *)(puVar14 + 6) = 0;\n              puVar14[7] = uVar5;\n              puVar14[8] = uVar4;\n              puVar14[0xb] = lVar16;\n              puVar14[0xc] = 0;\n              puVar14[0xd] = 0;\n              puVar14[0xe] = uVar7;\n              puVar14[0xf] = uVar6;\n              FUN_002300a0(param_2,puVar14);\n              return uVar13;\n            }\n            plVar19[1] = 0;\n            *plVar19 = lVar16;\n            return uVar13;\n          }\n          if (bVar11 == 0) {\n            puVar18 = (undefined8 *)FUN_00275550(0x90);\n            uVar2 = *(undefined8 *)(param_1 + 0x88);\n            uVar17 = *(undefined8 *)(param_1 + 0x80);\n            uVar4 = *(undefined8 *)(param_1 + 0x68);\n            uVar5 = *(undefined8 *)(param_1 + 0x70);\n            *(undefined1 *)(puVar18 + 4) = 0;\n            uVar6 = *(undefined8 *)(param_1 + 0x60);\n            uVar7 = *(undefined8 *)(param_1 + 0x38);\n            puVar18[2] = puVar18 + 4;\n            uVar1 = *(undefined4 *)(param_1 + 0x58);\n            uVar8 = *(undefined8 *)(param_1 + 0x50);\n            puVar18[0xd] = uVar5;\n            uVar5 = *(undefined8 *)(param_1 + 0x48);\n            uVar9 = *(undefined8 *)(param_1 + 0x40);\n            puVar18[0xe] = uVar4;\n            puVar18[1] = 0;\n            puVar18[3] = 0;\n            *(undefined1 *)(puVar18 + 6) = 0;\n            *puVar18 = &PTR_FUN_003ad080;\n            puVar18[7] = uVar9;\n            puVar18[8] = uVar5;\n            puVar18[9] = uVar8;\n            *(undefined4 *)(puVar18 + 10) = uVar1;\n            puVar18[0xb] = uVar7;\n            puVar18[0xc] = uVar6;\n            puVar18[0xf] = puVar14;\n            puVar18[0x10] = uVar17;\n            puVar18[0x11] = uVar2;\n            FUN_00230080(param_2,puVar18);\n            return uVar13;\n          }\n          if (plVar19 == (long *)0x0) {\n            if ((char)local_58[0] == '\0') {\n              return 0;\n            }\n            puVar18 = puVar14 + 5;\n            FUN_001f51c0(*(undefined8 *)(param_1 + 0x68),puVar14);\n            FUN_0016ad00(puVar18);\n            FUN_0016ae30(puVar18,param_1);\n            FUN_0016b0b0(puVar18);\n            if (puVar14 + 3 != (undefined8 *)puVar14[1]) {\n              FUN_00276d20();\n            }\n            thunk_FUN_00276d20(puVar14,0xe8);\n            *(int *)(param_1 + 0x58) = *(int *)(param_1 + 0x58) + 1;\n            uVar13 = FUN_001f5c10(param_1,param_2);\n            return uVar13;\n          }\n          puVar18 = (undefined8 *)FUN_00275550(0x80);\n          *puVar18 = 0;\n          puVar18[1] = 0;\n          puVar18[3] = 0;\n          puVar18[6] = 0;\n          puVar18[8] = 0;\n          puVar18[10] = 0;\n          puVar18[0xd] = 0;\n          (**(code **)(*plVar19 + 0x40))(plVar19,puVar18);\n          FUN_0016ae30(puVar14 + 5,param_1);\n          puVar14 = *(undefined8 **)(param_1 + 0x78);\n          if (puVar14 == (undefined8 *)0x0) {\n            puVar14 = (undefined8 *)FUN_00275550(0x80);\n            uVar2 = *(undefined8 *)(param_1 + 0x68);\n            uVar17 = *(undefined8 *)(param_1 + 0x48);\n            uVar4 = *(undefined8 *)(param_1 + 0x40);\n            uVar5 = *(undefined8 *)(param_1 + 0x38);\n            puVar14[0xd] = puVar18;\n            uVar6 = *(undefined8 *)(param_1 + 0x88);\n            uVar7 = *(undefined8 *)(param_1 + 0x80);\n            puVar14[2] = puVar14 + 4;\n            puVar14[9] = uVar17;\n            puVar14[10] = uVar2;\n            puVar14[1] = 0;\n            puVar14[3] = 0;\n            *(undefined1 *)(puVar14 + 4) = 0;\n            *(undefined1 *)(puVar14 + 6) = 0;\n            *puVar14 = &PTR_FUN_003acf00;\n            puVar14[7] = uVar5;\n            puVar14[8] = uVar4;\n            puVar14[0xb] = plVar19;\n            puVar14[0xc] = 0;\n            puVar14[0xe] = uVar7;\n            puVar14[0xf] = uVar6;\n            FUN_002300a0(param_2,puVar14);\n            return (uint)bVar11;\n          }\n          pbVar10 = *(byte **)(param_1 + 0x68);\n          puVar14[1] = puVar18;\n          *puVar14 = plVar19;\n          bVar11 = *pbVar10;\n          if (bVar11 != 0) {\n            *(undefined4 *)(puVar14 + 2) = *(undefined4 *)(pbVar10 + 100);\n            return (uint)bVar11;\n          }\n        }\n        else {\n          bVar11 = **(byte **)(param_1 + 0x68);\n          if (bVar11 != 0) {\n            __s = *(char **)(*(byte **)(param_1 + 0x68) + 8);\n            pcVar20 = (char *)0xffffffffffffffff;\n            local_58[0] = local_48;\n            if (__s != (char *)0x0) {\n              sVar15 = strlen(__s);\n              pcVar20 = __s + sVar15;\n            }\n            FUN_0015cbe0(local_58,__s,pcVar20);\n                    /* try { // try from 001f5e1a to 001f5e1e has its CatchHandler @ 001f63a4 */\n            lVar16 = FUN_00275550(0x178);\n                    /* try { // try from 001f5e42 to 001f5e46 has its CatchHandler @ 001f639c */\n            FUN_00234b40(lVar16,local_58,puVar14,\n                         lVar3 == s__<thin>__<arch>_N4gold7ArchiveE_00322e50._0_8_,\n                         *(undefined8 *)(param_1 + 0x50),param_1);\n            if (local_58[0] != local_48) {\n              FUN_00276d20();\n            }\n            FUN_00235c40(lVar16);\n            FUN_0016ae30(*(long *)(lVar16 + 0x38) + 0x28,param_1);\n            puVar14 = (undefined8 *)FUN_00275550(0x90);\n            uVar2 = *(undefined8 *)(param_1 + 0x88);\n            uVar17 = *(undefined8 *)(param_1 + 0x80);\n            uVar4 = *(undefined8 *)(param_1 + 0x70);\n            uVar5 = *(undefined8 *)(param_1 + 0x68);\n            *(undefined1 *)(puVar14 + 4) = 0;\n            uVar6 = *(undefined8 *)(param_1 + 0x60);\n            uVar1 = *(undefined4 *)(param_1 + 0x58);\n            puVar14[2] = puVar14 + 4;\n            uVar7 = *(undefined8 *)(param_1 + 0x50);\n            uVar8 = *(undefined8 *)(param_1 + 0x38);\n            puVar14[0xd] = uVar5;\n            uVar5 = *(undefined8 *)(param_1 + 0x48);\n            uVar9 = *(undefined8 *)(param_1 + 0x40);\n            puVar14[0xf] = uVar4;\n            puVar14[1] = 0;\n            puVar14[3] = 0;\n            *(undefined1 *)(puVar14 + 6) = 0;\n            *puVar14 = &PTR_FUN_003ae430;\n            puVar14[7] = uVar9;\n            puVar14[8] = uVar5;\n            puVar14[9] = uVar8;\n            puVar14[10] = uVar7;\n            *(undefined4 *)(puVar14 + 0xb) = uVar1;\n            puVar14[0xc] = uVar6;\n            puVar14[0xe] = lVar16;\n            puVar14[0x10] = uVar17;\n            puVar14[0x11] = uVar2;\n            FUN_002300a0(param_2,puVar14);\n            return (uint)bVar11;\n          }\n        }\n                    /* WARNING: Subroutine does not return */\n        FUN_0016cdf0("../../gold/options.h",0x828,&DAT_0031b73b);\n      }\n      uVar2 = puVar14[5];\n      uVar17 = gettext("%s: file is empty");\n      FUN_001690a0(uVar17,uVar2);\n    }" { (expression_statement "lVar16 = puVar14[0xb];" (assignment_expression "lVar16 = puVar14[0xb]" identifier = (subscript_expression "puVar14[0xb]" identifier [ number_literal ])) ;) (if_statement "if (lVar16 != 0) {\n        bVar11 = FUN_0019b230(puVar14,0,&local_60,&local_64);\n        if ((local_64 < 8) ||\n           ((lVar3 = *local_60, lVar3 != s__<thin>__<arch>_N4gold7ArchiveE_00322e50._0_8_ &&\n            (s__<thin>__<arch>_N4gold7ArchiveE_00322e50._8_8_ != lVar3)))) {\n          plVar19 = (long *)0x0;\n          if (bVar11 != 0) {\n            local_58[0] = (undefined1 *)((ulong)local_58[0] & 0xffffffffffffff00);\n            cVar12 = FUN_0016b000(puVar14);\n            ppuVar21 = (undefined1 **)0x0;\n            if (cVar12 != '\0') {\n              ppuVar21 = local_58;\n            }\n            plVar19 = (long *)FUN_0019b3d0(puVar14 + 5,puVar14,0,local_60,(long)local_64,ppuVar21);\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          lVar3 = *(long *)(*(long *)(PTR_DAT_003be6b0 + 0x10) + 0x9058);\n          if ((lVar3 != 0) && (lVar16 = FUN_001f1940(lVar3,puVar14,0,lVar16,plVar19), lVar16 != 0))\n          {\n            if (plVar19 != (long *)0x0) {\n              (**(code **)(*plVar19 + 8))(plVar19);\n            }\n            if (*(long *)(lVar16 + 0x28) != 0) {\n              FUN_0016ae30(*(long *)(lVar16 + 0x28) + 0x28,param_1);\n            }\n            plVar19 = *(long **)(param_1 + 0x78);\n            if (plVar19 == (long *)0x0) {\n              puVar14 = (undefined8 *)FUN_00275550(0x80);\n              uVar2 = *(undefined8 *)(param_1 + 0x68);\n              uVar17 = *(undefined8 *)(param_1 + 0x48);\n              uVar4 = *(undefined8 *)(param_1 + 0x40);\n              uVar5 = *(undefined8 *)(param_1 + 0x38);\n              *puVar14 = &PTR_FUN_003acf00;\n              uVar6 = *(undefined8 *)(param_1 + 0x88);\n              uVar7 = *(undefined8 *)(param_1 + 0x80);\n              puVar14[9] = uVar17;\n              puVar14[10] = uVar2;\n              puVar14[1] = 0;\n              puVar14[2] = puVar14 + 4;\n              puVar14[3] = 0;\n              *(undefined1 *)(puVar14 + 4) = 0;\n              *(undefined1 *)(puVar14 + 6) = 0;\n              puVar14[7] = uVar5;\n              puVar14[8] = uVar4;\n              puVar14[0xb] = lVar16;\n              puVar14[0xc] = 0;\n              puVar14[0xd] = 0;\n              puVar14[0xe] = uVar7;\n              puVar14[0xf] = uVar6;\n              FUN_002300a0(param_2,puVar14);\n              return uVar13;\n            }\n            plVar19[1] = 0;\n            *plVar19 = lVar16;\n            return uVar13;\n          }\n          if (bVar11 == 0) {\n            puVar18 = (undefined8 *)FUN_00275550(0x90);\n            uVar2 = *(undefined8 *)(param_1 + 0x88);\n            uVar17 = *(undefined8 *)(param_1 + 0x80);\n            uVar4 = *(undefined8 *)(param_1 + 0x68);\n            uVar5 = *(undefined8 *)(param_1 + 0x70);\n            *(undefined1 *)(puVar18 + 4) = 0;\n            uVar6 = *(undefined8 *)(param_1 + 0x60);\n            uVar7 = *(undefined8 *)(param_1 + 0x38);\n            puVar18[2] = puVar18 + 4;\n            uVar1 = *(undefined4 *)(param_1 + 0x58);\n            uVar8 = *(undefined8 *)(param_1 + 0x50);\n            puVar18[0xd] = uVar5;\n            uVar5 = *(undefined8 *)(param_1 + 0x48);\n            uVar9 = *(undefined8 *)(param_1 + 0x40);\n            puVar18[0xe] = uVar4;\n            puVar18[1] = 0;\n            puVar18[3] = 0;\n            *(undefined1 *)(puVar18 + 6) = 0;\n            *puVar18 = &PTR_FUN_003ad080;\n            puVar18[7] = uVar9;\n            puVar18[8] = uVar5;\n            puVar18[9] = uVar8;\n            *(undefined4 *)(puVar18 + 10) = uVar1;\n            puVar18[0xb] = uVar7;\n            puVar18[0xc] = uVar6;\n            puVar18[0xf] = puVar14;\n            puVar18[0x10] = uVar17;\n            puVar18[0x11] = uVar2;\n            FUN_00230080(param_2,puVar18);\n            return uVar13;\n          }\n          if (plVar19 == (long *)0x0) {\n            if ((char)local_58[0] == '\0') {\n              return 0;\n            }\n            puVar18 = puVar14 + 5;\n            FUN_001f51c0(*(undefined8 *)(param_1 + 0x68),puVar14);\n            FUN_0016ad00(puVar18);\n            FUN_0016ae30(puVar18,param_1);\n            FUN_0016b0b0(puVar18);\n            if (puVar14 + 3 != (undefined8 *)puVar14[1]) {\n              FUN_00276d20();\n            }\n            thunk_FUN_00276d20(puVar14,0xe8);\n            *(int *)(param_1 + 0x58) = *(int *)(param_1 + 0x58) + 1;\n            uVar13 = FUN_001f5c10(param_1,param_2);\n            return uVar13;\n          }\n          puVar18 = (undefined8 *)FUN_00275550(0x80);\n          *puVar18 = 0;\n          puVar18[1] = 0;\n          puVar18[3] = 0;\n          puVar18[6] = 0;\n          puVar18[8] = 0;\n          puVar18[10] = 0;\n          puVar18[0xd] = 0;\n          (**(code **)(*plVar19 + 0x40))(plVar19,puVar18);\n          FUN_0016ae30(puVar14 + 5,param_1);\n          puVar14 = *(undefined8 **)(param_1 + 0x78);\n          if (puVar14 == (undefined8 *)0x0) {\n            puVar14 = (undefined8 *)FUN_00275550(0x80);\n            uVar2 = *(undefined8 *)(param_1 + 0x68);\n            uVar17 = *(undefined8 *)(param_1 + 0x48);\n            uVar4 = *(undefined8 *)(param_1 + 0x40);\n            uVar5 = *(undefined8 *)(param_1 + 0x38);\n            puVar14[0xd] = puVar18;\n            uVar6 = *(undefined8 *)(param_1 + 0x88);\n            uVar7 = *(undefined8 *)(param_1 + 0x80);\n            puVar14[2] = puVar14 + 4;\n            puVar14[9] = uVar17;\n            puVar14[10] = uVar2;\n            puVar14[1] = 0;\n            puVar14[3] = 0;\n            *(undefined1 *)(puVar14 + 4) = 0;\n            *(undefined1 *)(puVar14 + 6) = 0;\n            *puVar14 = &PTR_FUN_003acf00;\n            puVar14[7] = uVar5;\n            puVar14[8] = uVar4;\n            puVar14[0xb] = plVar19;\n            puVar14[0xc] = 0;\n            puVar14[0xe] = uVar7;\n            puVar14[0xf] = uVar6;\n            FUN_002300a0(param_2,puVar14);\n            return (uint)bVar11;\n          }\n          pbVar10 = *(byte **)(param_1 + 0x68);\n          puVar14[1] = puVar18;\n          *puVar14 = plVar19;\n          bVar11 = *pbVar10;\n          if (bVar11 != 0) {\n            *(undefined4 *)(puVar14 + 2) = *(undefined4 *)(pbVar10 + 100);\n            return (uint)bVar11;\n          }\n        }\n        else {\n          bVar11 = **(byte **)(param_1 + 0x68);\n          if (bVar11 != 0) {\n            __s = *(char **)(*(byte **)(param_1 + 0x68) + 8);\n            pcVar20 = (char *)0xffffffffffffffff;\n            local_58[0] = local_48;\n            if (__s != (char *)0x0) {\n              sVar15 = strlen(__s);\n              pcVar20 = __s + sVar15;\n            }\n            FUN_0015cbe0(local_58,__s,pcVar20);\n                    /* try { // try from 001f5e1a to 001f5e1e has its CatchHandler @ 001f63a4 */\n            lVar16 = FUN_00275550(0x178);\n                    /* try { // try from 001f5e42 to 001f5e46 has its CatchHandler @ 001f639c */\n            FUN_00234b40(lVar16,local_58,puVar14,\n                         lVar3 == s__<thin>__<arch>_N4gold7ArchiveE_00322e50._0_8_,\n                         *(undefined8 *)(param_1 + 0x50),param_1);\n            if (local_58[0] != local_48) {\n              FUN_00276d20();\n            }\n            FUN_00235c40(lVar16);\n            FUN_0016ae30(*(long *)(lVar16 + 0x38) + 0x28,param_1);\n            puVar14 = (undefined8 *)FUN_00275550(0x90);\n            uVar2 = *(undefined8 *)(param_1 + 0x88);\n            uVar17 = *(undefined8 *)(param_1 + 0x80);\n            uVar4 = *(undefined8 *)(param_1 + 0x70);\n            uVar5 = *(undefined8 *)(param_1 + 0x68);\n            *(undefined1 *)(puVar14 + 4) = 0;\n            uVar6 = *(undefined8 *)(param_1 + 0x60);\n            uVar1 = *(undefined4 *)(param_1 + 0x58);\n            puVar14[2] = puVar14 + 4;\n            uVar7 = *(undefined8 *)(param_1 + 0x50);\n            uVar8 = *(undefined8 *)(param_1 + 0x38);\n            puVar14[0xd] = uVar5;\n            uVar5 = *(undefined8 *)(param_1 + 0x48);\n            uVar9 = *(undefined8 *)(param_1 + 0x40);\n            puVar14[0xf] = uVar4;\n            puVar14[1] = 0;\n            puVar14[3] = 0;\n            *(undefined1 *)(puVar14 + 6) = 0;\n            *puVar14 = &PTR_FUN_003ae430;\n            puVar14[7] = uVar9;\n            puVar14[8] = uVar5;\n            puVar14[9] = uVar8;\n            puVar14[10] = uVar7;\n            *(undefined4 *)(puVar14 + 0xb) = uVar1;\n            puVar14[0xc] = uVar6;\n            puVar14[0xe] = lVar16;\n            puVar14[0x10] = uVar17;\n            puVar14[0x11] = uVar2;\n            FUN_002300a0(param_2,puVar14);\n            return (uint)bVar11;\n          }\n        }\n                    /* WARNING: Subroutine does not return */\n        FUN_0016cdf0("../../gold/options.h",0x828,&DAT_0031b73b);\n      }" if (parenthesized_expression "(lVar16 != 0)" ( (binary_expression "lVar16 != 0" identifier != number_literal) )) (compound_statement "{\n        bVar11 = FUN_0019b230(puVar14,0,&local_60,&local_64);\n        if ((local_64 < 8) ||\n           ((lVar3 = *local_60, lVar3 != s__<thin>__<arch>_N4gold7ArchiveE_00322e50._0_8_ &&\n            (s__<thin>__<arch>_N4gold7ArchiveE_00322e50._8_8_ != lVar3)))) {\n          plVar19 = (long *)0x0;\n          if (bVar11 != 0) {\n            local_58[0] = (undefined1 *)((ulong)local_58[0] & 0xffffffffffffff00);\n            cVar12 = FUN_0016b000(puVar14);\n            ppuVar21 = (undefined1 **)0x0;\n            if (cVar12 != '\0') {\n              ppuVar21 = local_58;\n            }\n            plVar19 = (long *)FUN_0019b3d0(puVar14 + 5,puVar14,0,local_60,(long)local_64,ppuVar21);\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          lVar3 = *(long *)(*(long *)(PTR_DAT_003be6b0 + 0x10) + 0x9058);\n          if ((lVar3 != 0) && (lVar16 = FUN_001f1940(lVar3,puVar14,0,lVar16,plVar19), lVar16 != 0))\n          {\n            if (plVar19 != (long *)0x0) {\n              (**(code **)(*plVar19 + 8))(plVar19);\n            }\n            if (*(long *)(lVar16 + 0x28) != 0) {\n              FUN_0016ae30(*(long *)(lVar16 + 0x28) + 0x28,param_1);\n            }\n            plVar19 = *(long **)(param_1 + 0x78);\n            if (plVar19 == (long *)0x0) {\n              puVar14 = (undefined8 *)FUN_00275550(0x80);\n              uVar2 = *(undefined8 *)(param_1 + 0x68);\n              uVar17 = *(undefined8 *)(param_1 + 0x48);\n              uVar4 = *(undefined8 *)(param_1 + 0x40);\n              uVar5 = *(undefined8 *)(param_1 + 0x38);\n              *puVar14 = &PTR_FUN_003acf00;\n              uVar6 = *(undefined8 *)(param_1 + 0x88);\n              uVar7 = *(undefined8 *)(param_1 + 0x80);\n              puVar14[9] = uVar17;\n              puVar14[10] = uVar2;\n              puVar14[1] = 0;\n              puVar14[2] = puVar14 + 4;\n              puVar14[3] = 0;\n              *(undefined1 *)(puVar14 + 4) = 0;\n              *(undefined1 *)(puVar14 + 6) = 0;\n              puVar14[7] = uVar5;\n              puVar14[8] = uVar4;\n              puVar14[0xb] = lVar16;\n              puVar14[0xc] = 0;\n              puVar14[0xd] = 0;\n              puVar14[0xe] = uVar7;\n              puVar14[0xf] = uVar6;\n              FUN_002300a0(param_2,puVar14);\n              return uVar13;\n            }\n            plVar19[1] = 0;\n            *plVar19 = lVar16;\n            return uVar13;\n          }\n          if (bVar11 == 0) {\n            puVar18 = (undefined8 *)FUN_00275550(0x90);\n            uVar2 = *(undefined8 *)(param_1 + 0x88);\n            uVar17 = *(undefined8 *)(param_1 + 0x80);\n            uVar4 = *(undefined8 *)(param_1 + 0x68);\n            uVar5 = *(undefined8 *)(param_1 + 0x70);\n            *(undefined1 *)(puVar18 + 4) = 0;\n            uVar6 = *(undefined8 *)(param_1 + 0x60);\n            uVar7 = *(undefined8 *)(param_1 + 0x38);\n            puVar18[2] = puVar18 + 4;\n            uVar1 = *(undefined4 *)(param_1 + 0x58);\n            uVar8 = *(undefined8 *)(param_1 + 0x50);\n            puVar18[0xd] = uVar5;\n            uVar5 = *(undefined8 *)(param_1 + 0x48);\n            uVar9 = *(undefined8 *)(param_1 + 0x40);\n            puVar18[0xe] = uVar4;\n            puVar18[1] = 0;\n            puVar18[3] = 0;\n            *(undefined1 *)(puVar18 + 6) = 0;\n            *puVar18 = &PTR_FUN_003ad080;\n            puVar18[7] = uVar9;\n            puVar18[8] = uVar5;\n            puVar18[9] = uVar8;\n            *(undefined4 *)(puVar18 + 10) = uVar1;\n            puVar18[0xb] = uVar7;\n            puVar18[0xc] = uVar6;\n            puVar18[0xf] = puVar14;\n            puVar18[0x10] = uVar17;\n            puVar18[0x11] = uVar2;\n            FUN_00230080(param_2,puVar18);\n            return uVar13;\n          }\n          if (plVar19 == (long *)0x0) {\n            if ((char)local_58[0] == '\0') {\n              return 0;\n            }\n            puVar18 = puVar14 + 5;\n            FUN_001f51c0(*(undefined8 *)(param_1 + 0x68),puVar14);\n            FUN_0016ad00(puVar18);\n            FUN_0016ae30(puVar18,param_1);\n            FUN_0016b0b0(puVar18);\n            if (puVar14 + 3 != (undefined8 *)puVar14[1]) {\n              FUN_00276d20();\n            }\n            thunk_FUN_00276d20(puVar14,0xe8);\n            *(int *)(param_1 + 0x58) = *(int *)(param_1 + 0x58) + 1;\n            uVar13 = FUN_001f5c10(param_1,param_2);\n            return uVar13;\n          }\n          puVar18 = (undefined8 *)FUN_00275550(0x80);\n          *puVar18 = 0;\n          puVar18[1] = 0;\n          puVar18[3] = 0;\n          puVar18[6] = 0;\n          puVar18[8] = 0;\n          puVar18[10] = 0;\n          puVar18[0xd] = 0;\n          (**(code **)(*plVar19 + 0x40))(plVar19,puVar18);\n          FUN_0016ae30(puVar14 + 5,param_1);\n          puVar14 = *(undefined8 **)(param_1 + 0x78);\n          if (puVar14 == (undefined8 *)0x0) {\n            puVar14 = (undefined8 *)FUN_00275550(0x80);\n            uVar2 = *(undefined8 *)(param_1 + 0x68);\n            uVar17 = *(undefined8 *)(param_1 + 0x48);\n            uVar4 = *(undefined8 *)(param_1 + 0x40);\n            uVar5 = *(undefined8 *)(param_1 + 0x38);\n            puVar14[0xd] = puVar18;\n            uVar6 = *(undefined8 *)(param_1 + 0x88);\n            uVar7 = *(undefined8 *)(param_1 + 0x80);\n            puVar14[2] = puVar14 + 4;\n            puVar14[9] = uVar17;\n            puVar14[10] = uVar2;\n            puVar14[1] = 0;\n            puVar14[3] = 0;\n            *(undefined1 *)(puVar14 + 4) = 0;\n            *(undefined1 *)(puVar14 + 6) = 0;\n            *puVar14 = &PTR_FUN_003acf00;\n            puVar14[7] = uVar5;\n            puVar14[8] = uVar4;\n            puVar14[0xb] = plVar19;\n            puVar14[0xc] = 0;\n            puVar14[0xe] = uVar7;\n            puVar14[0xf] = uVar6;\n            FUN_002300a0(param_2,puVar14);\n            return (uint)bVar11;\n          }\n          pbVar10 = *(byte **)(param_1 + 0x68);\n          puVar14[1] = puVar18;\n          *puVar14 = plVar19;\n          bVar11 = *pbVar10;\n          if (bVar11 != 0) {\n            *(undefined4 *)(puVar14 + 2) = *(undefined4 *)(pbVar10 + 100);\n            return (uint)bVar11;\n          }\n        }\n        else {\n          bVar11 = **(byte **)(param_1 + 0x68);\n          if (bVar11 != 0) {\n            __s = *(char **)(*(byte **)(param_1 + 0x68) + 8);\n            pcVar20 = (char *)0xffffffffffffffff;\n            local_58[0] = local_48;\n            if (__s != (char *)0x0) {\n              sVar15 = strlen(__s);\n              pcVar20 = __s + sVar15;\n            }\n            FUN_0015cbe0(local_58,__s,pcVar20);\n                    /* try { // try from 001f5e1a to 001f5e1e has its CatchHandler @ 001f63a4 */\n            lVar16 = FUN_00275550(0x178);\n                    /* try { // try from 001f5e42 to 001f5e46 has its CatchHandler @ 001f639c */\n            FUN_00234b40(lVar16,local_58,puVar14,\n                         lVar3 == s__<thin>__<arch>_N4gold7ArchiveE_00322e50._0_8_,\n                         *(undefined8 *)(param_1 + 0x50),param_1);\n            if (local_58[0] != local_48) {\n              FUN_00276d20();\n            }\n            FUN_00235c40(lVar16);\n            FUN_0016ae30(*(long *)(lVar16 + 0x38) + 0x28,param_1);\n            puVar14 = (undefined8 *)FUN_00275550(0x90);\n            uVar2 = *(undefined8 *)(param_1 + 0x88);\n            uVar17 = *(undefined8 *)(param_1 + 0x80);\n            uVar4 = *(undefined8 *)(param_1 + 0x70);\n            uVar5 = *(undefined8 *)(param_1 + 0x68);\n            *(undefined1 *)(puVar14 + 4) = 0;\n            uVar6 = *(undefined8 *)(param_1 + 0x60);\n            uVar1 = *(undefined4 *)(param_1 + 0x58);\n            puVar14[2] = puVar14 + 4;\n            uVar7 = *(undefined8 *)(param_1 + 0x50);\n            uVar8 = *(undefined8 *)(param_1 + 0x38);\n            puVar14[0xd] = uVar5;\n            uVar5 = *(undefined8 *)(param_1 + 0x48);\n            uVar9 = *(undefined8 *)(param_1 + 0x40);\n            puVar14[0xf] = uVar4;\n            puVar14[1] = 0;\n            puVar14[3] = 0;\n            *(undefined1 *)(puVar14 + 6) = 0;\n            *puVar14 = &PTR_FUN_003ae430;\n            puVar14[7] = uVar9;\n            puVar14[8] = uVar5;\n            puVar14[9] = uVar8;\n            puVar14[10] = uVar7;\n            *(undefined4 *)(puVar14 + 0xb) = uVar1;\n            puVar14[0xc] = uVar6;\n            puVar14[0xe] = lVar16;\n            puVar14[0x10] = uVar17;\n            puVar14[0x11] = uVar2;\n            FUN_002300a0(param_2,puVar14);\n            return (uint)bVar11;\n          }\n        }\n                    /* WARNING: Subroutine does not return */\n        FUN_0016cdf0("../../gold/options.h",0x828,&DAT_0031b73b);\n      }" { (expression_statement "bVar11 = FUN_0019b230(puVar14,0,&local_60,&local_64);" (assignment_expression "bVar11 = FUN_0019b230(puVar14,0,&local_60,&local_64)" identifier = (call_expression "FUN_0019b230(puVar14,0,&local_60,&local_64)" identifier (argument_list "(puVar14,0,&local_60,&local_64)" ( identifier , number_literal , (pointer_expression "&local_60" & identifier) , (pointer_expression "&local_64" & identifier) )))) ;) (if_statement "if ((local_64 < 8) ||\n           ((lVar3 = *local_60, lVar3 != s__<thin>__<arch>_N4gold7ArchiveE_00322e50._0_8_ &&\n            (s__<thin>__<arch>_N4gold7ArchiveE_00322e50._8_8_ != lVar3)))) {\n          plVar19 = (long *)0x0;\n          if (bVar11 != 0) {\n            local_58[0] = (undefined1 *)((ulong)local_58[0] & 0xffffffffffffff00);\n            cVar12 = FUN_0016b000(puVar14);\n            ppuVar21 = (undefined1 **)0x0;\n            if (cVar12 != '\0') {\n              ppuVar21 = local_58;\n            }\n            plVar19 = (long *)FUN_0019b3d0(puVar14 + 5,puVar14,0,local_60,(long)local_64,ppuVar21);\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          lVar3 = *(long *)(*(long *)(PTR_DAT_003be6b0 + 0x10) + 0x9058);\n          if ((lVar3 != 0) && (lVar16 = FUN_001f1940(lVar3,puVar14,0,lVar16,plVar19), lVar16 != 0))\n          {\n            if (plVar19 != (long *)0x0) {\n              (**(code **)(*plVar19 + 8))(plVar19);\n            }\n            if (*(long *)(lVar16 + 0x28) != 0) {\n              FUN_0016ae30(*(long *)(lVar16 + 0x28) + 0x28,param_1);\n            }\n            plVar19 = *(long **)(param_1 + 0x78);\n            if (plVar19 == (long *)0x0) {\n              puVar14 = (undefined8 *)FUN_00275550(0x80);\n              uVar2 = *(undefined8 *)(param_1 + 0x68);\n              uVar17 = *(undefined8 *)(param_1 + 0x48);\n              uVar4 = *(undefined8 *)(param_1 + 0x40);\n              uVar5 = *(undefined8 *)(param_1 + 0x38);\n              *puVar14 = &PTR_FUN_003acf00;\n              uVar6 = *(undefined8 *)(param_1 + 0x88);\n              uVar7 = *(undefined8 *)(param_1 + 0x80);\n              puVar14[9] = uVar17;\n              puVar14[10] = uVar2;\n              puVar14[1] = 0;\n              puVar14[2] = puVar14 + 4;\n              puVar14[3] = 0;\n              *(undefined1 *)(puVar14 + 4) = 0;\n              *(undefined1 *)(puVar14 + 6) = 0;\n              puVar14[7] = uVar5;\n              puVar14[8] = uVar4;\n              puVar14[0xb] = lVar16;\n              puVar14[0xc] = 0;\n              puVar14[0xd] = 0;\n              puVar14[0xe] = uVar7;\n              puVar14[0xf] = uVar6;\n              FUN_002300a0(param_2,puVar14);\n              return uVar13;\n            }\n            plVar19[1] = 0;\n            *plVar19 = lVar16;\n            return uVar13;\n          }\n          if (bVar11 == 0) {\n            puVar18 = (undefined8 *)FUN_00275550(0x90);\n            uVar2 = *(undefined8 *)(param_1 + 0x88);\n            uVar17 = *(undefined8 *)(param_1 + 0x80);\n            uVar4 = *(undefined8 *)(param_1 + 0x68);\n            uVar5 = *(undefined8 *)(param_1 + 0x70);\n            *(undefined1 *)(puVar18 + 4) = 0;\n            uVar6 = *(undefined8 *)(param_1 + 0x60);\n            uVar7 = *(undefined8 *)(param_1 + 0x38);\n            puVar18[2] = puVar18 + 4;\n            uVar1 = *(undefined4 *)(param_1 + 0x58);\n            uVar8 = *(undefined8 *)(param_1 + 0x50);\n            puVar18[0xd] = uVar5;\n            uVar5 = *(undefined8 *)(param_1 + 0x48);\n            uVar9 = *(undefined8 *)(param_1 + 0x40);\n            puVar18[0xe] = uVar4;\n            puVar18[1] = 0;\n            puVar18[3] = 0;\n            *(undefined1 *)(puVar18 + 6) = 0;\n            *puVar18 = &PTR_FUN_003ad080;\n            puVar18[7] = uVar9;\n            puVar18[8] = uVar5;\n            puVar18[9] = uVar8;\n            *(undefined4 *)(puVar18 + 10) = uVar1;\n            puVar18[0xb] = uVar7;\n            puVar18[0xc] = uVar6;\n            puVar18[0xf] = puVar14;\n            puVar18[0x10] = uVar17;\n            puVar18[0x11] = uVar2;\n            FUN_00230080(param_2,puVar18);\n            return uVar13;\n          }\n          if (plVar19 == (long *)0x0) {\n            if ((char)local_58[0] == '\0') {\n              return 0;\n            }\n            puVar18 = puVar14 + 5;\n            FUN_001f51c0(*(undefined8 *)(param_1 + 0x68),puVar14);\n            FUN_0016ad00(puVar18);\n            FUN_0016ae30(puVar18,param_1);\n            FUN_0016b0b0(puVar18);\n            if (puVar14 + 3 != (undefined8 *)puVar14[1]) {\n              FUN_00276d20();\n            }\n            thunk_FUN_00276d20(puVar14,0xe8);\n            *(int *)(param_1 + 0x58) = *(int *)(param_1 + 0x58) + 1;\n            uVar13 = FUN_001f5c10(param_1,param_2);\n            return uVar13;\n          }\n          puVar18 = (undefined8 *)FUN_00275550(0x80);\n          *puVar18 = 0;\n          puVar18[1] = 0;\n          puVar18[3] = 0;\n          puVar18[6] = 0;\n          puVar18[8] = 0;\n          puVar18[10] = 0;\n          puVar18[0xd] = 0;\n          (**(code **)(*plVar19 + 0x40))(plVar19,puVar18);\n          FUN_0016ae30(puVar14 + 5,param_1);\n          puVar14 = *(undefined8 **)(param_1 + 0x78);\n          if (puVar14 == (undefined8 *)0x0) {\n            puVar14 = (undefined8 *)FUN_00275550(0x80);\n            uVar2 = *(undefined8 *)(param_1 + 0x68);\n            uVar17 = *(undefined8 *)(param_1 + 0x48);\n            uVar4 = *(undefined8 *)(param_1 + 0x40);\n            uVar5 = *(undefined8 *)(param_1 + 0x38);\n            puVar14[0xd] = puVar18;\n            uVar6 = *(undefined8 *)(param_1 + 0x88);\n            uVar7 = *(undefined8 *)(param_1 + 0x80);\n            puVar14[2] = puVar14 + 4;\n            puVar14[9] = uVar17;\n            puVar14[10] = uVar2;\n            puVar14[1] = 0;\n            puVar14[3] = 0;\n            *(undefined1 *)(puVar14 + 4) = 0;\n            *(undefined1 *)(puVar14 + 6) = 0;\n            *puVar14 = &PTR_FUN_003acf00;\n            puVar14[7] = uVar5;\n            puVar14[8] = uVar4;\n            puVar14[0xb] = plVar19;\n            puVar14[0xc] = 0;\n            puVar14[0xe] = uVar7;\n            puVar14[0xf] = uVar6;\n            FUN_002300a0(param_2,puVar14);\n            return (uint)bVar11;\n          }\n          pbVar10 = *(byte **)(param_1 + 0x68);\n          puVar14[1] = puVar18;\n          *puVar14 = plVar19;\n          bVar11 = *pbVar10;\n          if (bVar11 != 0) {\n            *(undefined4 *)(puVar14 + 2) = *(undefined4 *)(pbVar10 + 100);\n            return (uint)bVar11;\n          }\n        }\n        else {\n          bVar11 = **(byte **)(param_1 + 0x68);\n          if (bVar11 != 0) {\n            __s = *(char **)(*(byte **)(param_1 + 0x68) + 8);\n            pcVar20 = (char *)0xffffffffffffffff;\n            local_58[0] = local_48;\n            if (__s != (char *)0x0) {\n              sVar15 = strlen(__s);\n              pcVar20 = __s + sVar15;\n            }\n            FUN_0015cbe0(local_58,__s,pcVar20);\n                    /* try { // try from 001f5e1a to 001f5e1e has its CatchHandler @ 001f63a4 */\n            lVar16 = FUN_00275550(0x178);\n                    /* try { // try from 001f5e42 to 001f5e46 has its CatchHandler @ 001f639c */\n            FUN_00234b40(lVar16,local_58,puVar14,\n                         lVar3 == s__<thin>__<arch>_N4gold7ArchiveE_00322e50._0_8_,\n                         *(undefined8 *)(param_1 + 0x50),param_1);\n            if (local_58[0] != local_48) {\n              FUN_00276d20();\n            }\n            FUN_00235c40(lVar16);\n            FUN_0016ae30(*(long *)(lVar16 + 0x38) + 0x28,param_1);\n            puVar14 = (undefined8 *)FUN_00275550(0x90);\n            uVar2 = *(undefined8 *)(param_1 + 0x88);\n            uVar17 = *(undefined8 *)(param_1 + 0x80);\n            uVar4 = *(undefined8 *)(param_1 + 0x70);\n            uVar5 = *(undefined8 *)(param_1 + 0x68);\n            *(undefined1 *)(puVar14 + 4) = 0;\n            uVar6 = *(undefined8 *)(param_1 + 0x60);\n            uVar1 = *(undefined4 *)(param_1 + 0x58);\n            puVar14[2] = puVar14 + 4;\n            uVar7 = *(undefined8 *)(param_1 + 0x50);\n            uVar8 = *(undefined8 *)(param_1 + 0x38);\n            puVar14[0xd] = uVar5;\n            uVar5 = *(undefined8 *)(param_1 + 0x48);\n            uVar9 = *(undefined8 *)(param_1 + 0x40);\n            puVar14[0xf] = uVar4;\n            puVar14[1] = 0;\n            puVar14[3] = 0;\n            *(undefined1 *)(puVar14 + 6) = 0;\n            *puVar14 = &PTR_FUN_003ae430;\n            puVar14[7] = uVar9;\n            puVar14[8] = uVar5;\n            puVar14[9] = uVar8;\n            puVar14[10] = uVar7;\n            *(undefined4 *)(puVar14 + 0xb) = uVar1;\n            puVar14[0xc] = uVar6;\n            puVar14[0xe] = lVar16;\n            puVar14[0x10] = uVar17;\n            puVar14[0x11] = uVar2;\n            FUN_002300a0(param_2,puVar14);\n            return (uint)bVar11;\n          }\n        }" if (parenthesized_expression "((local_64 < 8) ||\n           ((lVar3 = *local_60, lVar3 != s__<thin>__<arch>_N4gold7ArchiveE_00322e50._0_8_ &&\n            (s__<thin>__<arch>_N4gold7ArchiveE_00322e50._8_8_ != lVar3))))" ( (binary_expression "(local_64 < 8) ||\n           ((lVar3 = *local_60, lVar3 != s__<thin>__<arch>_N4gold7ArchiveE_00322e50._0_8_ &&\n            (s__<thin>__<arch>_N4gold7ArchiveE_00322e50._8_8_ != lVar3)))" (parenthesized_expression "(local_64 < 8)" ( (binary_expression "local_64 < 8" identifier < number_literal) )) || (parenthesized_expression "((lVar3 = *local_60, lVar3 != s__<thin>__<arch>_N4gold7ArchiveE_00322e50._0_8_ &&\n            (s__<thin>__<arch>_N4gold7ArchiveE_00322e50._8_8_ != lVar3)))" ( (parenthesized_expression "(lVar3 = *local_60, lVar3 != s__<thin>__<arch>_N4gold7ArchiveE_00322e50._0_8_ &&\n            (s__<thin>__<arch>_N4gold7ArchiveE_00322e50._8_8_ != lVar3))" ( (comma_expression "lVar3 = *local_60, lVar3 != s__<thin>__<arch>_N4gold7ArchiveE_00322e50._0_8_ &&\n            (s__<thin>__<arch>_N4gold7ArchiveE_00322e50._8_8_ != lVar3)" (assignment_expression "lVar3 = *local_60" identifier = (pointer_expression "*local_60" * identifier)) , (binary_expression "lVar3 != s__<thin>__<arch>_N4gold7ArchiveE_00322e50._0_8_ &&\n            (s__<thin>__<arch>_N4gold7ArchiveE_00322e50._8_8_ != lVar3)" (binary_expression "lVar3 != s__<thin>__<arch>_N4gold7ArchiveE_00322e50._0_8_" identifier != (binary_expression "s__<thin>__<arch>_N4gold7ArchiveE_00322e50._0_8_" (binary_expression "s__<thin>__<arch" (binary_expression "s__<thin>__" (binary_expression "s__<thin" identifier < identifier) > identifier) < identifier) > (field_expression "_N4gold7ArchiveE_00322e50._0_8_" identifier . field_identifier))) && (parenthesized_expression "(s__<thin>__<arch>_N4gold7ArchiveE_00322e50._8_8_ != lVar3)" ( (binary_expression "s__<thin>__<arch>_N4gold7ArchiveE_00322e50._8_8_ != lVar3" (binary_expression "s__<thin>__<arch>_N4gold7ArchiveE_00322e50._8_8_" (binary_expression "s__<thin>__<arch" (binary_expression "s__<thin>__" (binary_expression "s__<thin" identifier < identifier) > identifier) < identifier) > (field_expression "_N4gold7ArchiveE_00322e50._8_8_" identifier . field_identifier)) != identifier) )))) )) ))) )) (compound_statement "{\n          plVar19 = (long *)0x0;\n          if (bVar11 != 0) {\n            local_58[0] = (undefined1 *)((ulong)local_58[0] & 0xffffffffffffff00);\n            cVar12 = FUN_0016b000(puVar14);\n            ppuVar21 = (undefined1 **)0x0;\n            if (cVar12 != '\0') {\n              ppuVar21 = local_58;\n            }\n            plVar19 = (long *)FUN_0019b3d0(puVar14 + 5,puVar14,0,local_60,(long)local_64,ppuVar21);\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          lVar3 = *(long *)(*(long *)(PTR_DAT_003be6b0 + 0x10) + 0x9058);\n          if ((lVar3 != 0) && (lVar16 = FUN_001f1940(lVar3,puVar14,0,lVar16,plVar19), lVar16 != 0))\n          {\n            if (plVar19 != (long *)0x0) {\n              (**(code **)(*plVar19 + 8))(plVar19);\n            }\n            if (*(long *)(lVar16 + 0x28) != 0) {\n              FUN_0016ae30(*(long *)(lVar16 + 0x28) + 0x28,param_1);\n            }\n            plVar19 = *(long **)(param_1 + 0x78);\n            if (plVar19 == (long *)0x0) {\n              puVar14 = (undefined8 *)FUN_00275550(0x80);\n              uVar2 = *(undefined8 *)(param_1 + 0x68);\n              uVar17 = *(undefined8 *)(param_1 + 0x48);\n              uVar4 = *(undefined8 *)(param_1 + 0x40);\n              uVar5 = *(undefined8 *)(param_1 + 0x38);\n              *puVar14 = &PTR_FUN_003acf00;\n              uVar6 = *(undefined8 *)(param_1 + 0x88);\n              uVar7 = *(undefined8 *)(param_1 + 0x80);\n              puVar14[9] = uVar17;\n              puVar14[10] = uVar2;\n              puVar14[1] = 0;\n              puVar14[2] = puVar14 + 4;\n              puVar14[3] = 0;\n              *(undefined1 *)(puVar14 + 4) = 0;\n              *(undefined1 *)(puVar14 + 6) = 0;\n              puVar14[7] = uVar5;\n              puVar14[8] = uVar4;\n              puVar14[0xb] = lVar16;\n              puVar14[0xc] = 0;\n              puVar14[0xd] = 0;\n              puVar14[0xe] = uVar7;\n              puVar14[0xf] = uVar6;\n              FUN_002300a0(param_2,puVar14);\n              return uVar13;\n            }\n            plVar19[1] = 0;\n            *plVar19 = lVar16;\n            return uVar13;\n          }\n          if (bVar11 == 0) {\n            puVar18 = (undefined8 *)FUN_00275550(0x90);\n            uVar2 = *(undefined8 *)(param_1 + 0x88);\n            uVar17 = *(undefined8 *)(param_1 + 0x80);\n            uVar4 = *(undefined8 *)(param_1 + 0x68);\n            uVar5 = *(undefined8 *)(param_1 + 0x70);\n            *(undefined1 *)(puVar18 + 4) = 0;\n            uVar6 = *(undefined8 *)(param_1 + 0x60);\n            uVar7 = *(undefined8 *)(param_1 + 0x38);\n            puVar18[2] = puVar18 + 4;\n            uVar1 = *(undefined4 *)(param_1 + 0x58);\n            uVar8 = *(undefined8 *)(param_1 + 0x50);\n            puVar18[0xd] = uVar5;\n            uVar5 = *(undefined8 *)(param_1 + 0x48);\n            uVar9 = *(undefined8 *)(param_1 + 0x40);\n            puVar18[0xe] = uVar4;\n            puVar18[1] = 0;\n            puVar18[3] = 0;\n            *(undefined1 *)(puVar18 + 6) = 0;\n            *puVar18 = &PTR_FUN_003ad080;\n            puVar18[7] = uVar9;\n            puVar18[8] = uVar5;\n            puVar18[9] = uVar8;\n            *(undefined4 *)(puVar18 + 10) = uVar1;\n            puVar18[0xb] = uVar7;\n            puVar18[0xc] = uVar6;\n            puVar18[0xf] = puVar14;\n            puVar18[0x10] = uVar17;\n            puVar18[0x11] = uVar2;\n            FUN_00230080(param_2,puVar18);\n            return uVar13;\n          }\n          if (plVar19 == (long *)0x0) {\n            if ((char)local_58[0] == '\0') {\n              return 0;\n            }\n            puVar18 = puVar14 + 5;\n            FUN_001f51c0(*(undefined8 *)(param_1 + 0x68),puVar14);\n            FUN_0016ad00(puVar18);\n            FUN_0016ae30(puVar18,param_1);\n            FUN_0016b0b0(puVar18);\n            if (puVar14 + 3 != (undefined8 *)puVar14[1]) {\n              FUN_00276d20();\n            }\n            thunk_FUN_00276d20(puVar14,0xe8);\n            *(int *)(param_1 + 0x58) = *(int *)(param_1 + 0x58) + 1;\n            uVar13 = FUN_001f5c10(param_1,param_2);\n            return uVar13;\n          }\n          puVar18 = (undefined8 *)FUN_00275550(0x80);\n          *puVar18 = 0;\n          puVar18[1] = 0;\n          puVar18[3] = 0;\n          puVar18[6] = 0;\n          puVar18[8] = 0;\n          puVar18[10] = 0;\n          puVar18[0xd] = 0;\n          (**(code **)(*plVar19 + 0x40))(plVar19,puVar18);\n          FUN_0016ae30(puVar14 + 5,param_1);\n          puVar14 = *(undefined8 **)(param_1 + 0x78);\n          if (puVar14 == (undefined8 *)0x0) {\n            puVar14 = (undefined8 *)FUN_00275550(0x80);\n            uVar2 = *(undefined8 *)(param_1 + 0x68);\n            uVar17 = *(undefined8 *)(param_1 + 0x48);\n            uVar4 = *(undefined8 *)(param_1 + 0x40);\n            uVar5 = *(undefined8 *)(param_1 + 0x38);\n            puVar14[0xd] = puVar18;\n            uVar6 = *(undefined8 *)(param_1 + 0x88);\n            uVar7 = *(undefined8 *)(param_1 + 0x80);\n            puVar14[2] = puVar14 + 4;\n            puVar14[9] = uVar17;\n            puVar14[10] = uVar2;\n            puVar14[1] = 0;\n            puVar14[3] = 0;\n            *(undefined1 *)(puVar14 + 4) = 0;\n            *(undefined1 *)(puVar14 + 6) = 0;\n            *puVar14 = &PTR_FUN_003acf00;\n            puVar14[7] = uVar5;\n            puVar14[8] = uVar4;\n            puVar14[0xb] = plVar19;\n            puVar14[0xc] = 0;\n            puVar14[0xe] = uVar7;\n            puVar14[0xf] = uVar6;\n            FUN_002300a0(param_2,puVar14);\n            return (uint)bVar11;\n          }\n          pbVar10 = *(byte **)(param_1 + 0x68);\n          puVar14[1] = puVar18;\n          *puVar14 = plVar19;\n          bVar11 = *pbVar10;\n          if (bVar11 != 0) {\n            *(undefined4 *)(puVar14 + 2) = *(undefined4 *)(pbVar10 + 100);\n            return (uint)bVar11;\n          }\n        }" { (expression_statement "plVar19 = (long *)0x0;" (assignment_expression "plVar19 = (long *)0x0" identifier = (cast_expression "(long *)0x0" ( (type_descriptor "long *" (sized_type_specifier "long" long) (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (if_statement "if (bVar11 != 0) {\n            local_58[0] = (undefined1 *)((ulong)local_58[0] & 0xffffffffffffff00);\n            cVar12 = FUN_0016b000(puVar14);\n            ppuVar21 = (undefined1 **)0x0;\n            if (cVar12 != '\0') {\n              ppuVar21 = local_58;\n            }\n            plVar19 = (long *)FUN_0019b3d0(puVar14 + 5,puVar14,0,local_60,(long)local_64,ppuVar21);\n          }" if (parenthesized_expression "(bVar11 != 0)" ( (binary_expression "bVar11 != 0" identifier != number_literal) )) (compound_statement "{\n            local_58[0] = (undefined1 *)((ulong)local_58[0] & 0xffffffffffffff00);\n            cVar12 = FUN_0016b000(puVar14);\n            ppuVar21 = (undefined1 **)0x0;\n            if (cVar12 != '\0') {\n              ppuVar21 = local_58;\n            }\n            plVar19 = (long *)FUN_0019b3d0(puVar14 + 5,puVar14,0,local_60,(long)local_64,ppuVar21);\n          }" { (expression_statement "local_58[0] = (undefined1 *)((ulong)local_58[0] & 0xffffffffffffff00);" (assignment_expression "local_58[0] = (undefined1 *)((ulong)local_58[0] & 0xffffffffffffff00)" (subscript_expression "local_58[0]" identifier [ number_literal ]) = (cast_expression "(undefined1 *)((ulong)local_58[0] & 0xffffffffffffff00)" ( (type_descriptor "undefined1 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((ulong)local_58[0] & 0xffffffffffffff00)" ( (binary_expression "(ulong)local_58[0] & 0xffffffffffffff00" (cast_expression "(ulong)local_58[0]" ( (type_descriptor "ulong" type_identifier) ) (subscript_expression "local_58[0]" identifier [ number_literal ])) & number_literal) )))) ;) (expression_statement "cVar12 = FUN_0016b000(puVar14);" (assignment_expression "cVar12 = FUN_0016b000(puVar14)" identifier = (call_expression "FUN_0016b000(puVar14)" identifier (argument_list "(puVar14)" ( identifier )))) ;) (expression_statement "ppuVar21 = (undefined1 **)0x0;" (assignment_expression "ppuVar21 = (undefined1 **)0x0" identifier = (cast_expression "(undefined1 **)0x0" ( (type_descriptor "undefined1 **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) number_literal)) ;) (if_statement "if (cVar12 != '\0') {\n              ppuVar21 = local_58;\n            }" if (parenthesized_expression "(cVar12 != '\0')" ( (binary_expression "cVar12 != '\0'" identifier != (char_literal "'\0'" ' escape_sequence ')) )) (compound_statement "{\n              ppuVar21 = local_58;\n            }" { (expression_statement "ppuVar21 = local_58;" (assignment_expression "ppuVar21 = local_58" identifier = identifier) ;) })) (expression_statement "plVar19 = (long *)FUN_0019b3d0(puVar14 + 5,puVar14,0,local_60,(long)local_64,ppuVar21);" (assignment_expression "plVar19 = (long *)FUN_0019b3d0(puVar14 + 5,puVar14,0,local_60,(long)local_64,ppuVar21)" identifier = (cast_expression "(long *)FUN_0019b3d0(puVar14 + 5,puVar14,0,local_60,(long)local_64,ppuVar21)" ( (type_descriptor "long *" (sized_type_specifier "long" long) (abstract_pointer_declarator "*" *)) ) (call_expression "FUN_0019b3d0(puVar14 + 5,puVar14,0,local_60,(long)local_64,ppuVar21)" identifier (argument_list "(puVar14 + 5,puVar14,0,local_60,(long)local_64,ppuVar21)" ( (binary_expression "puVar14 + 5" identifier + number_literal) , identifier , number_literal , identifier , (cast_expression "(long)local_64" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) 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 ") ))) ;) })) (expression_statement "lVar3 = *(long *)(*(long *)(PTR_DAT_003be6b0 + 0x10) + 0x9058);" (assignment_expression "lVar3 = *(long *)(*(long *)(PTR_DAT_003be6b0 + 0x10) + 0x9058)" identifier = (pointer_expression "*(long *)(*(long *)(PTR_DAT_003be6b0 + 0x10) + 0x9058)" * (cast_expression "(long *)(*(long *)(PTR_DAT_003be6b0 + 0x10) + 0x9058)" ( (type_descriptor "long *" (sized_type_specifier "long" long) (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*(long *)(PTR_DAT_003be6b0 + 0x10) + 0x9058)" ( (binary_expression "*(long *)(PTR_DAT_003be6b0 + 0x10) + 0x9058" (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) ))))) ;) (if_statement "if ((lVar3 != 0) && (lVar16 = FUN_001f1940(lVar3,puVar14,0,lVar16,plVar19), lVar16 != 0))\n          {\n            if (plVar19 != (long *)0x0) {\n              (**(code **)(*plVar19 + 8))(plVar19);\n            }\n            if (*(long *)(lVar16 + 0x28) != 0) {\n              FUN_0016ae30(*(long *)(lVar16 + 0x28) + 0x28,param_1);\n            }\n            plVar19 = *(long **)(param_1 + 0x78);\n            if (plVar19 == (long *)0x0) {\n              puVar14 = (undefined8 *)FUN_00275550(0x80);\n              uVar2 = *(undefined8 *)(param_1 + 0x68);\n              uVar17 = *(undefined8 *)(param_1 + 0x48);\n              uVar4 = *(undefined8 *)(param_1 + 0x40);\n              uVar5 = *(undefined8 *)(param_1 + 0x38);\n              *puVar14 = &PTR_FUN_003acf00;\n              uVar6 = *(undefined8 *)(param_1 + 0x88);\n              uVar7 = *(undefined8 *)(param_1 + 0x80);\n              puVar14[9] = uVar17;\n              puVar14[10] = uVar2;\n              puVar14[1] = 0;\n              puVar14[2] = puVar14 + 4;\n              puVar14[3] = 0;\n              *(undefined1 *)(puVar14 + 4) = 0;\n              *(undefined1 *)(puVar14 + 6) = 0;\n              puVar14[7] = uVar5;\n              puVar14[8] = uVar4;\n              puVar14[0xb] = lVar16;\n              puVar14[0xc] = 0;\n              puVar14[0xd] = 0;\n              puVar14[0xe] = uVar7;\n              puVar14[0xf] = uVar6;\n              FUN_002300a0(param_2,puVar14);\n              return uVar13;\n            }\n            plVar19[1] = 0;\n            *plVar19 = lVar16;\n            return uVar13;\n          }" if (parenthesized_expression "((lVar3 != 0) && (lVar16 = FUN_001f1940(lVar3,puVar14,0,lVar16,plVar19), lVar16 != 0))" ( (binary_expression "(lVar3 != 0) && (lVar16 = FUN_001f1940(lVar3,puVar14,0,lVar16,plVar19), lVar16 != 0)" (parenthesized_expression "(lVar3 != 0)" ( (binary_expression "lVar3 != 0" identifier != number_literal) )) && (parenthesized_expression "(lVar16 = FUN_001f1940(lVar3,puVar14,0,lVar16,plVar19), lVar16 != 0)" ( (comma_expression "lVar16 = FUN_001f1940(lVar3,puVar14,0,lVar16,plVar19), lVar16 != 0" (assignment_expression "lVar16 = FUN_001f1940(lVar3,puVar14,0,lVar16,plVar19)" identifier = (call_expression "FUN_001f1940(lVar3,puVar14,0,lVar16,plVar19)" identifier (argument_list "(lVar3,puVar14,0,lVar16,plVar19)" ( identifier , identifier , number_literal , identifier , identifier )))) , (binary_expression "lVar16 != 0" identifier != number_literal)) ))) )) (compound_statement "{\n            if (plVar19 != (long *)0x0) {\n              (**(code **)(*plVar19 + 8))(plVar19);\n            }\n            if (*(long *)(lVar16 + 0x28) != 0) {\n              FUN_0016ae30(*(long *)(lVar16 + 0x28) + 0x28,param_1);\n            }\n            plVar19 = *(long **)(param_1 + 0x78);\n            if (plVar19 == (long *)0x0) {\n              puVar14 = (undefined8 *)FUN_00275550(0x80);\n              uVar2 = *(undefined8 *)(param_1 + 0x68);\n              uVar17 = *(undefined8 *)(param_1 + 0x48);\n              uVar4 = *(undefined8 *)(param_1 + 0x40);\n              uVar5 = *(undefined8 *)(param_1 + 0x38);\n              *puVar14 = &PTR_FUN_003acf00;\n              uVar6 = *(undefined8 *)(param_1 + 0x88);\n              uVar7 = *(undefined8 *)(param_1 + 0x80);\n              puVar14[9] = uVar17;\n              puVar14[10] = uVar2;\n              puVar14[1] = 0;\n              puVar14[2] = puVar14 + 4;\n              puVar14[3] = 0;\n              *(undefined1 *)(puVar14 + 4) = 0;\n              *(undefined1 *)(puVar14 + 6) = 0;\n              puVar14[7] = uVar5;\n              puVar14[8] = uVar4;\n              puVar14[0xb] = lVar16;\n              puVar14[0xc] = 0;\n              puVar14[0xd] = 0;\n              puVar14[0xe] = uVar7;\n              puVar14[0xf] = uVar6;\n              FUN_002300a0(param_2,puVar14);\n              return uVar13;\n            }\n            plVar19[1] = 0;\n            *plVar19 = lVar16;\n            return uVar13;\n          }" { (if_statement "if (plVar19 != (long *)0x0) {\n              (**(code **)(*plVar19 + 8))(plVar19);\n            }" if (parenthesized_expression "(plVar19 != (long *)0x0)" ( (binary_expression "plVar19 != (long *)0x0" identifier != (cast_expression "(long *)0x0" ( (type_descriptor "long *" (sized_type_specifier "long" long) (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n              (**(code **)(*plVar19 + 8))(plVar19);\n            }" { (expression_statement "(**(code **)(*plVar19 + 8))(plVar19);" (call_expression "(**(code **)(*plVar19 + 8))(plVar19)" (parenthesized_expression "(**(code **)(*plVar19 + 8))" ( (pointer_expression "**(code **)(*plVar19 + 8)" * (pointer_expression "*(code **)(*plVar19 + 8)" * (cast_expression "(code **)(*plVar19 + 8)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(*plVar19 + 8)" ( (binary_expression "*plVar19 + 8" (pointer_expression "*plVar19" * identifier) + number_literal) ))))) )) (argument_list "(plVar19)" ( identifier ))) ;) })) (if_statement "if (*(long *)(lVar16 + 0x28) != 0) {\n              FUN_0016ae30(*(long *)(lVar16 + 0x28) + 0x28,param_1);\n            }" if (parenthesized_expression "(*(long *)(lVar16 + 0x28) != 0)" ( (binary_expression "*(long *)(lVar16 + 0x28) != 0" (pointer_expression "*(long *)(lVar16 + 0x28)" * (cast_expression "(long *)(lVar16 + 0x28)" ( (type_descriptor "long *" (sized_type_specifier "long" long) (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(lVar16 + 0x28)" ( (binary_expression "lVar16 + 0x28" identifier + number_literal) )))) != number_literal) )) (compound_statement "{\n              FUN_0016ae30(*(long *)(lVar16 + 0x28) + 0x28,param_1);\n            }" { (expression_statement "FUN_0016ae30(*(long *)(lVar16 + 0x28) + 0x28,param_1);" (call_expression "FUN_0016ae30(*(long *)(lVar16 + 0x28) + 0x28,param_1)" identifier (argument_list "(*(long *)(lVar16 + 0x28) + 0x28,param_1)" ( (binary_expression "*(long *)(lVar16 + 0x28) + 0x28" (pointer_expression "*(long *)(lVar16 + 0x28)" * (cast_expression "(long *)(lVar16 + 0x28)" ( (type_descriptor "long *" (sized_type_specifier "long" long) (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(lVar16 + 0x28)" ( (binary_expression "lVar16 + 0x28" identifier + number_literal) )))) + number_literal) , identifier ))) ;) })) (expression_statement "plVar19 = *(long **)(param_1 + 0x78);" (assignment_expression "plVar19 = *(long **)(param_1 + 0x78)" identifier = (pointer_expression "*(long **)(param_1 + 0x78)" * (cast_expression "(long **)(param_1 + 0x78)" ( (type_descriptor "long **" (sized_type_specifier "long" long) (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(param_1 + 0x78)" ( (binary_expression "param_1 + 0x78" identifier + number_literal) ))))) ;) (if_statement "if (plVar19 == (long *)0x0) {\n              puVar14 = (undefined8 *)FUN_00275550(0x80);\n              uVar2 = *(undefined8 *)(param_1 + 0x68);\n              uVar17 = *(undefined8 *)(param_1 + 0x48);\n              uVar4 = *(undefined8 *)(param_1 + 0x40);\n              uVar5 = *(undefined8 *)(param_1 + 0x38);\n              *puVar14 = &PTR_FUN_003acf00;\n              uVar6 = *(undefined8 *)(param_1 + 0x88);\n              uVar7 = *(undefined8 *)(param_1 + 0x80);\n              puVar14[9] = uVar17;\n              puVar14[10] = uVar2;\n              puVar14[1] = 0;\n              puVar14[2] = puVar14 + 4;\n              puVar14[3] = 0;\n              *(undefined1 *)(puVar14 + 4) = 0;\n              *(undefined1 *)(puVar14 + 6) = 0;\n              puVar14[7] = uVar5;\n              puVar14[8] = uVar4;\n              puVar14[0xb] = lVar16;\n              puVar14[0xc] = 0;\n              puVar14[0xd] = 0;\n              puVar14[0xe] = uVar7;\n              puVar14[0xf] = uVar6;\n              FUN_002300a0(param_2,puVar14);\n              return uVar13;\n            }" if (parenthesized_expression "(plVar19 == (long *)0x0)" ( (binary_expression "plVar19 == (long *)0x0" identifier == (cast_expression "(long *)0x0" ( (type_descriptor "long *" (sized_type_specifier "long" long) (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n              puVar14 = (undefined8 *)FUN_00275550(0x80);\n              uVar2 = *(undefined8 *)(param_1 + 0x68);\n              uVar17 = *(undefined8 *)(param_1 + 0x48);\n              uVar4 = *(undefined8 *)(param_1 + 0x40);\n              uVar5 = *(undefined8 *)(param_1 + 0x38);\n              *puVar14 = &PTR_FUN_003acf00;\n              uVar6 = *(undefined8 *)(param_1 + 0x88);\n              uVar7 = *(undefined8 *)(param_1 + 0x80);\n              puVar14[9] = uVar17;\n              puVar14[10] = uVar2;\n              puVar14[1] = 0;\n              puVar14[2] = puVar14 + 4;\n              puVar14[3] = 0;\n              *(undefined1 *)(puVar14 + 4) = 0;\n              *(undefined1 *)(puVar14 + 6) = 0;\n              puVar14[7] = uVar5;\n              puVar14[8] = uVar4;\n              puVar14[0xb] = lVar16;\n              puVar14[0xc] = 0;\n              puVar14[0xd] = 0;\n              puVar14[0xe] = uVar7;\n              puVar14[0xf] = uVar6;\n              FUN_002300a0(param_2,puVar14);\n              return uVar13;\n            }" { (expression_statement "puVar14 = (undefined8 *)FUN_00275550(0x80);" (assignment_expression "puVar14 = (undefined8 *)FUN_00275550(0x80)" identifier = (cast_expression "(undefined8 *)FUN_00275550(0x80)" ( (type_descriptor "undefined8 *" type_identifier (abstract_pointer_declarator "*" *)) ) (call_expression "FUN_00275550(0x80)" identifier (argument_list "(0x80)" ( number_literal ))))) ;) (expression_statement "uVar2 = *(undefined8 *)(param_1 + 0x68);" (assignment_expression "uVar2 = *(undefined8 *)(param_1 + 0x68)" identifier = (pointer_expression "*(undefined8 *)(param_1 + 0x68)" * (cast_expression "(undefined8 *)(param_1 + 0x68)" ( (type_descriptor "undefined8 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x68)" ( (binary_expression "param_1 + 0x68" identifier + number_literal) ))))) ;) (expression_statement "uVar17 = *(undefined8 *)(param_1 + 0x48);" (assignment_expression "uVar17 = *(undefined8 *)(param_1 + 0x48)" identifier = (pointer_expression "*(undefined8 *)(param_1 + 0x48)" * (cast_expression "(undefined8 *)(param_1 + 0x48)" ( (type_descriptor "undefined8 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x48)" ( (binary_expression "param_1 + 0x48" identifier + number_literal) ))))) ;) (expression_statement "uVar4 = *(undefined8 *)(param_1 + 0x40);" (assignment_expression "uVar4 = *(undefined8 *)(param_1 + 0x40)" identifier = (pointer_expression "*(undefined8 *)(param_1 + 0x40)" * (cast_expression "(undefined8 *)(param_1 + 0x40)" ( (type_descriptor "undefined8 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x40)" ( (binary_expression "param_1 + 0x40" identifier + number_literal) ))))) ;) (expression_statement "uVar5 = *(undefined8 *)(param_1 + 0x38);" (assignment_expression "uVar5 = *(undefined8 *)(param_1 + 0x38)" identifier = (pointer_expression "*(undefined8 *)(param_1 + 0x38)" * (cast_expression "(undefined8 *)(param_1 + 0x38)" ( (type_descriptor "undefined8 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x38)" ( (binary_expression "param_1 + 0x38" identifier + number_literal) ))))) ;) (expression_statement "*puVar14 = &PTR_FUN_003acf00;" (assignment_expression "*puVar14 = &PTR_FUN_003acf00" (pointer_expression "*puVar14" * identifier) = (pointer_expression "&PTR_FUN_003acf00" & identifier)) ;) (expression_statement "uVar6 = *(undefined8 *)(param_1 + 0x88);" (assignment_expression "uVar6 = *(undefined8 *)(param_1 + 0x88)" identifier = (pointer_expression "*(undefined8 *)(param_1 + 0x88)" * (cast_expression "(undefined8 *)(param_1 + 0x88)" ( (type_descriptor "undefined8 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x88)" ( (binary_expression "param_1 + 0x88" identifier + number_literal) ))))) ;) (expression_statement "uVar7 = *(undefined8 *)(param_1 + 0x80);" (assignment_expression "uVar7 = *(undefined8 *)(param_1 + 0x80)" identifier = (pointer_expression "*(undefined8 *)(param_1 + 0x80)" * (cast_expression "(undefined8 *)(param_1 + 0x80)" ( (type_descriptor "undefined8 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x80)" ( (binary_expression "param_1 + 0x80" identifier + number_literal) ))))) ;) (expression_statement "puVar14[9] = uVar17;" (assignment_expression "puVar14[9] = uVar17" (subscript_expression "puVar14[9]" identifier [ number_literal ]) = identifier) ;) (expression_statement "puVar14[10] = uVar2;" (assignment_expression "puVar14[10] = uVar2" (subscript_expression "puVar14[10]" identifier [ number_literal ]) = identifier) ;) (expression_statement "puVar14[1] = 0;" (assignment_expression "puVar14[1] = 0" (subscript_expression "puVar14[1]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "puVar14[2] = puVar14 + 4;" (assignment_expression "puVar14[2] = puVar14 + 4" (subscript_expression "puVar14[2]" identifier [ number_literal ]) = (binary_expression "puVar14 + 4" identifier + number_literal)) ;) (expression_statement "puVar14[3] = 0;" (assignment_expression "puVar14[3] = 0" (subscript_expression "puVar14[3]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "*(undefined1 *)(puVar14 + 4) = 0;" (assignment_expression "*(undefined1 *)(puVar14 + 4) = 0" (pointer_expression "*(undefined1 *)(puVar14 + 4)" * (cast_expression "(undefined1 *)(puVar14 + 4)" ( (type_descriptor "undefined1 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar14 + 4)" ( (binary_expression "puVar14 + 4" identifier + number_literal) )))) = number_literal) ;) (expression_statement "*(undefined1 *)(puVar14 + 6) = 0;" (assignment_expression "*(undefined1 *)(puVar14 + 6) = 0" (pointer_expression "*(undefined1 *)(puVar14 + 6)" * (cast_expression "(undefined1 *)(puVar14 + 6)" ( (type_descriptor "undefined1 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar14 + 6)" ( (binary_expression "puVar14 + 6" identifier + number_literal) )))) = number_literal) ;) (expression_statement "puVar14[7] = uVar5;" (assignment_expression "puVar14[7] = uVar5" (subscript_expression "puVar14[7]" identifier [ number_literal ]) = identifier) ;) (expression_statement "puVar14[8] = uVar4;" (assignment_expression "puVar14[8] = uVar4" (subscript_expression "puVar14[8]" identifier [ number_literal ]) = identifier) ;) (expression_statement "puVar14[0xb] = lVar16;" (assignment_expression "puVar14[0xb] = lVar16" (subscript_expression "puVar14[0xb]" identifier [ number_literal ]) = identifier) ;) (expression_statement "puVar14[0xc] = 0;" (assignment_expression "puVar14[0xc] = 0" (subscript_expression "puVar14[0xc]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "puVar14[0xd] = 0;" (assignment_expression "puVar14[0xd] = 0" (subscript_expression "puVar14[0xd]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "puVar14[0xe] = uVar7;" (assignment_expression "puVar14[0xe] = uVar7" (subscript_expression "puVar14[0xe]" identifier [ number_literal ]) = identifier) ;) (expression_statement "puVar14[0xf] = uVar6;" (assignment_expression "puVar14[0xf] = uVar6" (subscript_expression "puVar14[0xf]" identifier [ number_literal ]) = identifier) ;) (expression_statement "FUN_002300a0(param_2,puVar14);" (call_expression "FUN_002300a0(param_2,puVar14)" identifier (argument_list "(param_2,puVar14)" ( identifier , identifier ))) ;) (return_statement "return uVar13;" return identifier ;) })) (expression_statement "plVar19[1] = 0;" (assignment_expression "plVar19[1] = 0" (subscript_expression "plVar19[1]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "*plVar19 = lVar16;" (assignment_expression "*plVar19 = lVar16" (pointer_expression "*plVar19" * identifier) = identifier) ;) (return_statement "return uVar13;" return identifier ;) })) (if_statement "if (bVar11 == 0) {\n            puVar18 = (undefined8 *)FUN_00275550(0x90);\n            uVar2 = *(undefined8 *)(param_1 + 0x88);\n            uVar17 = *(undefined8 *)(param_1 + 0x80);\n            uVar4 = *(undefined8 *)(param_1 + 0x68);\n            uVar5 = *(undefined8 *)(param_1 + 0x70);\n            *(undefined1 *)(puVar18 + 4) = 0;\n            uVar6 = *(undefined8 *)(param_1 + 0x60);\n            uVar7 = *(undefined8 *)(param_1 + 0x38);\n            puVar18[2] = puVar18 + 4;\n            uVar1 = *(undefined4 *)(param_1 + 0x58);\n            uVar8 = *(undefined8 *)(param_1 + 0x50);\n            puVar18[0xd] = uVar5;\n            uVar5 = *(undefined8 *)(param_1 + 0x48);\n            uVar9 = *(undefined8 *)(param_1 + 0x40);\n            puVar18[0xe] = uVar4;\n            puVar18[1] = 0;\n            puVar18[3] = 0;\n            *(undefined1 *)(puVar18 + 6) = 0;\n            *puVar18 = &PTR_FUN_003ad080;\n            puVar18[7] = uVar9;\n            puVar18[8] = uVar5;\n            puVar18[9] = uVar8;\n            *(undefined4 *)(puVar18 + 10) = uVar1;\n            puVar18[0xb] = uVar7;\n            puVar18[0xc] = uVar6;\n            puVar18[0xf] = puVar14;\n            puVar18[0x10] = uVar17;\n            puVar18[0x11] = uVar2;\n            FUN_00230080(param_2,puVar18);\n            return uVar13;\n          }" if (parenthesized_expression "(bVar11 == 0)" ( (binary_expression "bVar11 == 0" identifier == number_literal) )) (compound_statement "{\n            puVar18 = (undefined8 *)FUN_00275550(0x90);\n            uVar2 = *(undefined8 *)(param_1 + 0x88);\n            uVar17 = *(undefined8 *)(param_1 + 0x80);\n            uVar4 = *(undefined8 *)(param_1 + 0x68);\n            uVar5 = *(undefined8 *)(param_1 + 0x70);\n            *(undefined1 *)(puVar18 + 4) = 0;\n            uVar6 = *(undefined8 *)(param_1 + 0x60);\n            uVar7 = *(undefined8 *)(param_1 + 0x38);\n            puVar18[2] = puVar18 + 4;\n            uVar1 = *(undefined4 *)(param_1 + 0x58);\n            uVar8 = *(undefined8 *)(param_1 + 0x50);\n            puVar18[0xd] = uVar5;\n            uVar5 = *(undefined8 *)(param_1 + 0x48);\n            uVar9 = *(undefined8 *)(param_1 + 0x40);\n            puVar18[0xe] = uVar4;\n            puVar18[1] = 0;\n            puVar18[3] = 0;\n            *(undefined1 *)(puVar18 + 6) = 0;\n            *puVar18 = &PTR_FUN_003ad080;\n            puVar18[7] = uVar9;\n            puVar18[8] = uVar5;\n            puVar18[9] = uVar8;\n            *(undefined4 *)(puVar18 + 10) = uVar1;\n            puVar18[0xb] = uVar7;\n            puVar18[0xc] = uVar6;\n            puVar18[0xf] = puVar14;\n            puVar18[0x10] = uVar17;\n            puVar18[0x11] = uVar2;\n            FUN_00230080(param_2,puVar18);\n            return uVar13;\n          }" { (expression_statement "puVar18 = (undefined8 *)FUN_00275550(0x90);" (assignment_expression "puVar18 = (undefined8 *)FUN_00275550(0x90)" identifier = (cast_expression "(undefined8 *)FUN_00275550(0x90)" ( (type_descriptor "undefined8 *" type_identifier (abstract_pointer_declarator "*" *)) ) (call_expression "FUN_00275550(0x90)" identifier (argument_list "(0x90)" ( number_literal ))))) ;) (expression_statement "uVar2 = *(undefined8 *)(param_1 + 0x88);" (assignment_expression "uVar2 = *(undefined8 *)(param_1 + 0x88)" identifier = (pointer_expression "*(undefined8 *)(param_1 + 0x88)" * (cast_expression "(undefined8 *)(param_1 + 0x88)" ( (type_descriptor "undefined8 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x88)" ( (binary_expression "param_1 + 0x88" identifier + number_literal) ))))) ;) (expression_statement "uVar17 = *(undefined8 *)(param_1 + 0x80);" (assignment_expression "uVar17 = *(undefined8 *)(param_1 + 0x80)" identifier = (pointer_expression "*(undefined8 *)(param_1 + 0x80)" * (cast_expression "(undefined8 *)(param_1 + 0x80)" ( (type_descriptor "undefined8 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x80)" ( (binary_expression "param_1 + 0x80" identifier + number_literal) ))))) ;) (expression_statement "uVar4 = *(undefined8 *)(param_1 + 0x68);" (assignment_expression "uVar4 = *(undefined8 *)(param_1 + 0x68)" identifier = (pointer_expression "*(undefined8 *)(param_1 + 0x68)" * (cast_expression "(undefined8 *)(param_1 + 0x68)" ( (type_descriptor "undefined8 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x68)" ( (binary_expression "param_1 + 0x68" identifier + number_literal) ))))) ;) (expression_statement "uVar5 = *(undefined8 *)(param_1 + 0x70);" (assignment_expression "uVar5 = *(undefined8 *)(param_1 + 0x70)" identifier = (pointer_expression "*(undefined8 *)(param_1 + 0x70)" * (cast_expression "(undefined8 *)(param_1 + 0x70)" ( (type_descriptor "undefined8 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x70)" ( (binary_expression "param_1 + 0x70" identifier + number_literal) ))))) ;) (expression_statement "*(undefined1 *)(puVar18 + 4) = 0;" (assignment_expression "*(undefined1 *)(puVar18 + 4) = 0" (pointer_expression "*(undefined1 *)(puVar18 + 4)" * (cast_expression "(undefined1 *)(puVar18 + 4)" ( (type_descriptor "undefined1 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar18 + 4)" ( (binary_expression "puVar18 + 4" identifier + number_literal) )))) = number_literal) ;) (expression_statement "uVar6 = *(undefined8 *)(param_1 + 0x60);" (assignment_expression "uVar6 = *(undefined8 *)(param_1 + 0x60)" identifier = (pointer_expression "*(undefined8 *)(param_1 + 0x60)" * (cast_expression "(undefined8 *)(param_1 + 0x60)" ( (type_descriptor "undefined8 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x60)" ( (binary_expression "param_1 + 0x60" identifier + number_literal) ))))) ;) (expression_statement "uVar7 = *(undefined8 *)(param_1 + 0x38);" (assignment_expression "uVar7 = *(undefined8 *)(param_1 + 0x38)" identifier = (pointer_expression "*(undefined8 *)(param_1 + 0x38)" * (cast_expression "(undefined8 *)(param_1 + 0x38)" ( (type_descriptor "undefined8 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x38)" ( (binary_expression "param_1 + 0x38" identifier + number_literal) ))))) ;) (expression_statement "puVar18[2] = puVar18 + 4;" (assignment_expression "puVar18[2] = puVar18 + 4" (subscript_expression "puVar18[2]" identifier [ number_literal ]) = (binary_expression "puVar18 + 4" identifier + number_literal)) ;) (expression_statement "uVar1 = *(undefined4 *)(param_1 + 0x58);" (assignment_expression "uVar1 = *(undefined4 *)(param_1 + 0x58)" identifier = (pointer_expression "*(undefined4 *)(param_1 + 0x58)" * (cast_expression "(undefined4 *)(param_1 + 0x58)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x58)" ( (binary_expression "param_1 + 0x58" identifier + number_literal) ))))) ;) (expression_statement "uVar8 = *(undefined8 *)(param_1 + 0x50);" (assignment_expression "uVar8 = *(undefined8 *)(param_1 + 0x50)" identifier = (pointer_expression "*(undefined8 *)(param_1 + 0x50)" * (cast_expression "(undefined8 *)(param_1 + 0x50)" ( (type_descriptor "undefined8 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x50)" ( (binary_expression "param_1 + 0x50" identifier + number_literal) ))))) ;) (expression_statement "puVar18[0xd] = uVar5;" (assignment_expression "puVar18[0xd] = uVar5" (subscript_expression "puVar18[0xd]" identifier [ number_literal ]) = identifier) ;) (expression_statement "uVar5 = *(undefined8 *)(param_1 + 0x48);" (assignment_expression "uVar5 = *(undefined8 *)(param_1 + 0x48)" identifier = (pointer_expression "*(undefined8 *)(param_1 + 0x48)" * (cast_expression "(undefined8 *)(param_1 + 0x48)" ( (type_descriptor "undefined8 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x48)" ( (binary_expression "param_1 + 0x48" identifier + number_literal) ))))) ;) (expression_statement "uVar9 = *(undefined8 *)(param_1 + 0x40);" (assignment_expression "uVar9 = *(undefined8 *)(param_1 + 0x40)" identifier = (pointer_expression "*(undefined8 *)(param_1 + 0x40)" * (cast_expression "(undefined8 *)(param_1 + 0x40)" ( (type_descriptor "undefined8 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x40)" ( (binary_expression "param_1 + 0x40" identifier + number_literal) ))))) ;) (expression_statement "puVar18[0xe] = uVar4;" (assignment_expression "puVar18[0xe] = uVar4" (subscript_expression "puVar18[0xe]" identifier [ number_literal ]) = identifier) ;) (expression_statement "puVar18[1] = 0;" (assignment_expression "puVar18[1] = 0" (subscript_expression "puVar18[1]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "puVar18[3] = 0;" (assignment_expression "puVar18[3] = 0" (subscript_expression "puVar18[3]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "*(undefined1 *)(puVar18 + 6) = 0;" (assignment_expression "*(undefined1 *)(puVar18 + 6) = 0" (pointer_expression "*(undefined1 *)(puVar18 + 6)" * (cast_expression "(undefined1 *)(puVar18 + 6)" ( (type_descriptor "undefined1 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar18 + 6)" ( (binary_expression "puVar18 + 6" identifier + number_literal) )))) = number_literal) ;) (expression_statement "*puVar18 = &PTR_FUN_003ad080;" (assignment_expression "*puVar18 = &PTR_FUN_003ad080" (pointer_expression "*puVar18" * identifier) = (pointer_expression "&PTR_FUN_003ad080" & identifier)) ;) (expression_statement "puVar18[7] = uVar9;" (assignment_expression "puVar18[7] = uVar9" (subscript_expression "puVar18[7]" identifier [ number_literal ]) = identifier) ;) (expression_statement "puVar18[8] = uVar5;" (assignment_expression "puVar18[8] = uVar5" (subscript_expression "puVar18[8]" identifier [ number_literal ]) = identifier) ;) (expression_statement "puVar18[9] = uVar8;" (assignment_expression "puVar18[9] = uVar8" (subscript_expression "puVar18[9]" identifier [ number_literal ]) = identifier) ;) (expression_statement "*(undefined4 *)(puVar18 + 10) = uVar1;" (assignment_expression "*(undefined4 *)(puVar18 + 10) = uVar1" (pointer_expression "*(undefined4 *)(puVar18 + 10)" * (cast_expression "(undefined4 *)(puVar18 + 10)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar18 + 10)" ( (binary_expression "puVar18 + 10" identifier + number_literal) )))) = identifier) ;) (expression_statement "puVar18[0xb] = uVar7;" (assignment_expression "puVar18[0xb] = uVar7" (subscript_expression "puVar18[0xb]" identifier [ number_literal ]) = identifier) ;) (expression_statement "puVar18[0xc] = uVar6;" (assignment_expression "puVar18[0xc] = uVar6" (subscript_expression "puVar18[0xc]" identifier [ number_literal ]) = identifier) ;) (expression_statement "puVar18[0xf] = puVar14;" (assignment_expression "puVar18[0xf] = puVar14" (subscript_expression "puVar18[0xf]" identifier [ number_literal ]) = identifier) ;) (expression_statement "puVar18[0x10] = uVar17;" (assignment_expression "puVar18[0x10] = uVar17" (subscript_expression "puVar18[0x10]" identifier [ number_literal ]) = identifier) ;) (expression_statement "puVar18[0x11] = uVar2;" (assignment_expression "puVar18[0x11] = uVar2" (subscript_expression "puVar18[0x11]" identifier [ number_literal ]) = identifier) ;) (expression_statement "FUN_00230080(param_2,puVar18);" (call_expression "FUN_00230080(param_2,puVar18)" identifier (argument_list "(param_2,puVar18)" ( identifier , identifier ))) ;) (return_statement "return uVar13;" return identifier ;) })) (if_statement "if (plVar19 == (long *)0x0) {\n            if ((char)local_58[0] == '\0') {\n              return 0;\n            }\n            puVar18 = puVar14 + 5;\n            FUN_001f51c0(*(undefined8 *)(param_1 + 0x68),puVar14);\n            FUN_0016ad00(puVar18);\n            FUN_0016ae30(puVar18,param_1);\n            FUN_0016b0b0(puVar18);\n            if (puVar14 + 3 != (undefined8 *)puVar14[1]) {\n              FUN_00276d20();\n            }\n            thunk_FUN_00276d20(puVar14,0xe8);\n            *(int *)(param_1 + 0x58) = *(int *)(param_1 + 0x58) + 1;\n            uVar13 = FUN_001f5c10(param_1,param_2);\n            return uVar13;\n          }" if (parenthesized_expression "(plVar19 == (long *)0x0)" ( (binary_expression "plVar19 == (long *)0x0" identifier == (cast_expression "(long *)0x0" ( (type_descriptor "long *" (sized_type_specifier "long" long) (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n            if ((char)local_58[0] == '\0') {\n              return 0;\n            }\n            puVar18 = puVar14 + 5;\n            FUN_001f51c0(*(undefined8 *)(param_1 + 0x68),puVar14);\n            FUN_0016ad00(puVar18);\n            FUN_0016ae30(puVar18,param_1);\n            FUN_0016b0b0(puVar18);\n            if (puVar14 + 3 != (undefined8 *)puVar14[1]) {\n              FUN_00276d20();\n            }\n            thunk_FUN_00276d20(puVar14,0xe8);\n            *(int *)(param_1 + 0x58) = *(int *)(param_1 + 0x58) + 1;\n            uVar13 = FUN_001f5c10(param_1,param_2);\n            return uVar13;\n          }" { (if_statement "if ((char)local_58[0] == '\0') {\n              return 0;\n            }" if (parenthesized_expression "((char)local_58[0] == '\0')" ( (binary_expression "(char)local_58[0] == '\0'" (cast_expression "(char)local_58[0]" ( (type_descriptor "char" primitive_type) ) (subscript_expression "local_58[0]" identifier [ number_literal ])) == (char_literal "'\0'" ' escape_sequence ')) )) (compound_statement "{\n              return 0;\n            }" { (return_statement "return 0;" return number_literal ;) })) (expression_statement "puVar18 = puVar14 + 5;" (assignment_expression "puVar18 = puVar14 + 5" identifier = (binary_expression "puVar14 + 5" identifier + number_literal)) ;) (expression_statement "FUN_001f51c0(*(undefined8 *)(param_1 + 0x68),puVar14);" (call_expression "FUN_001f51c0(*(undefined8 *)(param_1 + 0x68),puVar14)" identifier (argument_list "(*(undefined8 *)(param_1 + 0x68),puVar14)" ( (pointer_expression "*(undefined8 *)(param_1 + 0x68)" * (cast_expression "(undefined8 *)(param_1 + 0x68)" ( (type_descriptor "undefined8 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x68)" ( (binary_expression "param_1 + 0x68" identifier + number_literal) )))) , identifier ))) ;) (expression_statement "FUN_0016ad00(puVar18);" (call_expression "FUN_0016ad00(puVar18)" identifier (argument_list "(puVar18)" ( identifier ))) ;) (expression_statement "FUN_0016ae30(puVar18,param_1);" (call_expression "FUN_0016ae30(puVar18,param_1)" identifier (argument_list "(puVar18,param_1)" ( identifier , identifier ))) ;) (expression_statement "FUN_0016b0b0(puVar18);" (call_expression "FUN_0016b0b0(puVar18)" identifier (argument_list "(puVar18)" ( identifier ))) ;) (if_statement "if (puVar14 + 3 != (undefined8 *)puVar14[1]) {\n              FUN_00276d20();\n            }" if (parenthesized_expression "(puVar14 + 3 != (undefined8 *)puVar14[1])" ( (binary_expression "puVar14 + 3 != (undefined8 *)puVar14[1]" (binary_expression "puVar14 + 3" identifier + number_literal) != (cast_expression "(undefined8 *)puVar14[1]" ( (type_descriptor "undefined8 *" type_identifier (abstract_pointer_declarator "*" *)) ) (subscript_expression "puVar14[1]" identifier [ number_literal ]))) )) (compound_statement "{\n              FUN_00276d20();\n            }" { (expression_statement "FUN_00276d20();" (call_expression "FUN_00276d20()" identifier (argument_list "()" ( ))) ;) })) (expression_statement "thunk_FUN_00276d20(puVar14,0xe8);" (call_expression "thunk_FUN_00276d20(puVar14,0xe8)" identifier (argument_list "(puVar14,0xe8)" ( identifier , number_literal ))) ;) (expression_statement "*(int *)(param_1 + 0x58) = *(int *)(param_1 + 0x58) + 1;" (assignment_expression "*(int *)(param_1 + 0x58) = *(int *)(param_1 + 0x58) + 1" (pointer_expression "*(int *)(param_1 + 0x58)" * (cast_expression "(int *)(param_1 + 0x58)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x58)" ( (binary_expression "param_1 + 0x58" identifier + number_literal) )))) = (binary_expression "*(int *)(param_1 + 0x58) + 1" (pointer_expression "*(int *)(param_1 + 0x58)" * (cast_expression "(int *)(param_1 + 0x58)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x58)" ( (binary_expression "param_1 + 0x58" identifier + number_literal) )))) + number_literal)) ;) (expression_statement "uVar13 = FUN_001f5c10(param_1,param_2);" (assignment_expression "uVar13 = FUN_001f5c10(param_1,param_2)" identifier = (call_expression "FUN_001f5c10(param_1,param_2)" identifier (argument_list "(param_1,param_2)" ( identifier , identifier )))) ;) (return_statement "return uVar13;" return identifier ;) })) (expression_statement "puVar18 = (undefined8 *)FUN_00275550(0x80);" (assignment_expression "puVar18 = (undefined8 *)FUN_00275550(0x80)" identifier = (cast_expression "(undefined8 *)FUN_00275550(0x80)" ( (type_descriptor "undefined8 *" type_identifier (abstract_pointer_declarator "*" *)) ) (call_expression "FUN_00275550(0x80)" identifier (argument_list "(0x80)" ( number_literal ))))) ;) (expression_statement "*puVar18 = 0;" (assignment_expression "*puVar18 = 0" (pointer_expression "*puVar18" * identifier) = number_literal) ;) (expression_statement "puVar18[1] = 0;" (assignment_expression "puVar18[1] = 0" (subscript_expression "puVar18[1]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "puVar18[3] = 0;" (assignment_expression "puVar18[3] = 0" (subscript_expression "puVar18[3]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "puVar18[6] = 0;" (assignment_expression "puVar18[6] = 0" (subscript_expression "puVar18[6]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "puVar18[8] = 0;" (assignment_expression "puVar18[8] = 0" (subscript_expression "puVar18[8]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "puVar18[10] = 0;" (assignment_expression "puVar18[10] = 0" (subscript_expression "puVar18[10]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "puVar18[0xd] = 0;" (assignment_expression "puVar18[0xd] = 0" (subscript_expression "puVar18[0xd]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "(**(code **)(*plVar19 + 0x40))(plVar19,puVar18);" (call_expression "(**(code **)(*plVar19 + 0x40))(plVar19,puVar18)" (parenthesized_expression "(**(code **)(*plVar19 + 0x40))" ( (pointer_expression "**(code **)(*plVar19 + 0x40)" * (pointer_expression "*(code **)(*plVar19 + 0x40)" * (cast_expression "(code **)(*plVar19 + 0x40)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(*plVar19 + 0x40)" ( (binary_expression "*plVar19 + 0x40" (pointer_expression "*plVar19" * identifier) + number_literal) ))))) )) (argument_list "(plVar19,puVar18)" ( identifier , identifier ))) ;) (expression_statement "FUN_0016ae30(puVar14 + 5,param_1);" (call_expression "FUN_0016ae30(puVar14 + 5,param_1)" identifier (argument_list "(puVar14 + 5,param_1)" ( (binary_expression "puVar14 + 5" identifier + number_literal) , identifier ))) ;) (expression_statement "puVar14 = *(undefined8 **)(param_1 + 0x78);" (assignment_expression "puVar14 = *(undefined8 **)(param_1 + 0x78)" identifier = (pointer_expression "*(undefined8 **)(param_1 + 0x78)" * (cast_expression "(undefined8 **)(param_1 + 0x78)" ( (type_descriptor "undefined8 **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(param_1 + 0x78)" ( (binary_expression "param_1 + 0x78" identifier + number_literal) ))))) ;) (if_statement "if (puVar14 == (undefined8 *)0x0) {\n            puVar14 = (undefined8 *)FUN_00275550(0x80);\n            uVar2 = *(undefined8 *)(param_1 + 0x68);\n            uVar17 = *(undefined8 *)(param_1 + 0x48);\n            uVar4 = *(undefined8 *)(param_1 + 0x40);\n            uVar5 = *(undefined8 *)(param_1 + 0x38);\n            puVar14[0xd] = puVar18;\n            uVar6 = *(undefined8 *)(param_1 + 0x88);\n            uVar7 = *(undefined8 *)(param_1 + 0x80);\n            puVar14[2] = puVar14 + 4;\n            puVar14[9] = uVar17;\n            puVar14[10] = uVar2;\n            puVar14[1] = 0;\n            puVar14[3] = 0;\n            *(undefined1 *)(puVar14 + 4) = 0;\n            *(undefined1 *)(puVar14 + 6) = 0;\n            *puVar14 = &PTR_FUN_003acf00;\n            puVar14[7] = uVar5;\n            puVar14[8] = uVar4;\n            puVar14[0xb] = plVar19;\n            puVar14[0xc] = 0;\n            puVar14[0xe] = uVar7;\n            puVar14[0xf] = uVar6;\n            FUN_002300a0(param_2,puVar14);\n            return (uint)bVar11;\n          }" if (parenthesized_expression "(puVar14 == (undefined8 *)0x0)" ( (binary_expression "puVar14 == (undefined8 *)0x0" identifier == (cast_expression "(undefined8 *)0x0" ( (type_descriptor "undefined8 *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n            puVar14 = (undefined8 *)FUN_00275550(0x80);\n            uVar2 = *(undefined8 *)(param_1 + 0x68);\n            uVar17 = *(undefined8 *)(param_1 + 0x48);\n            uVar4 = *(undefined8 *)(param_1 + 0x40);\n            uVar5 = *(undefined8 *)(param_1 + 0x38);\n            puVar14[0xd] = puVar18;\n            uVar6 = *(undefined8 *)(param_1 + 0x88);\n            uVar7 = *(undefined8 *)(param_1 + 0x80);\n            puVar14[2] = puVar14 + 4;\n            puVar14[9] = uVar17;\n            puVar14[10] = uVar2;\n            puVar14[1] = 0;\n            puVar14[3] = 0;\n            *(undefined1 *)(puVar14 + 4) = 0;\n            *(undefined1 *)(puVar14 + 6) = 0;\n            *puVar14 = &PTR_FUN_003acf00;\n            puVar14[7] = uVar5;\n            puVar14[8] = uVar4;\n            puVar14[0xb] = plVar19;\n            puVar14[0xc] = 0;\n            puVar14[0xe] = uVar7;\n            puVar14[0xf] = uVar6;\n            FUN_002300a0(param_2,puVar14);\n            return (uint)bVar11;\n          }" { (expression_statement "puVar14 = (undefined8 *)FUN_00275550(0x80);" (assignment_expression "puVar14 = (undefined8 *)FUN_00275550(0x80)" identifier = (cast_expression "(undefined8 *)FUN_00275550(0x80)" ( (type_descriptor "undefined8 *" type_identifier (abstract_pointer_declarator "*" *)) ) (call_expression "FUN_00275550(0x80)" identifier (argument_list "(0x80)" ( number_literal ))))) ;) (expression_statement "uVar2 = *(undefined8 *)(param_1 + 0x68);" (assignment_expression "uVar2 = *(undefined8 *)(param_1 + 0x68)" identifier = (pointer_expression "*(undefined8 *)(param_1 + 0x68)" * (cast_expression "(undefined8 *)(param_1 + 0x68)" ( (type_descriptor "undefined8 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x68)" ( (binary_expression "param_1 + 0x68" identifier + number_literal) ))))) ;) (expression_statement "uVar17 = *(undefined8 *)(param_1 + 0x48);" (assignment_expression "uVar17 = *(undefined8 *)(param_1 + 0x48)" identifier = (pointer_expression "*(undefined8 *)(param_1 + 0x48)" * (cast_expression "(undefined8 *)(param_1 + 0x48)" ( (type_descriptor "undefined8 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x48)" ( (binary_expression "param_1 + 0x48" identifier + number_literal) ))))) ;) (expression_statement "uVar4 = *(undefined8 *)(param_1 + 0x40);" (assignment_expression "uVar4 = *(undefined8 *)(param_1 + 0x40)" identifier = (pointer_expression "*(undefined8 *)(param_1 + 0x40)" * (cast_expression "(undefined8 *)(param_1 + 0x40)" ( (type_descriptor "undefined8 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x40)" ( (binary_expression "param_1 + 0x40" identifier + number_literal) ))))) ;) (expression_statement "uVar5 = *(undefined8 *)(param_1 + 0x38);" (assignment_expression "uVar5 = *(undefined8 *)(param_1 + 0x38)" identifier = (pointer_expression "*(undefined8 *)(param_1 + 0x38)" * (cast_expression "(undefined8 *)(param_1 + 0x38)" ( (type_descriptor "undefined8 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x38)" ( (binary_expression "param_1 + 0x38" identifier + number_literal) ))))) ;) (expression_statement "puVar14[0xd] = puVar18;" (assignment_expression "puVar14[0xd] = puVar18" (subscript_expression "puVar14[0xd]" identifier [ number_literal ]) = identifier) ;) (expression_statement "uVar6 = *(undefined8 *)(param_1 + 0x88);" (assignment_expression "uVar6 = *(undefined8 *)(param_1 + 0x88)" identifier = (pointer_expression "*(undefined8 *)(param_1 + 0x88)" * (cast_expression "(undefined8 *)(param_1 + 0x88)" ( (type_descriptor "undefined8 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x88)" ( (binary_expression "param_1 + 0x88" identifier + number_literal) ))))) ;) (expression_statement "uVar7 = *(undefined8 *)(param_1 + 0x80);" (assignment_expression "uVar7 = *(undefined8 *)(param_1 + 0x80)" identifier = (pointer_expression "*(undefined8 *)(param_1 + 0x80)" * (cast_expression "(undefined8 *)(param_1 + 0x80)" ( (type_descriptor "undefined8 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x80)" ( (binary_expression "param_1 + 0x80" identifier + number_literal) ))))) ;) (expression_statement "puVar14[2] = puVar14 + 4;" (assignment_expression "puVar14[2] = puVar14 + 4" (subscript_expression "puVar14[2]" identifier [ number_literal ]) = (binary_expression "puVar14 + 4" identifier + number_literal)) ;) (expression_statement "puVar14[9] = uVar17;" (assignment_expression "puVar14[9] = uVar17" (subscript_expression "puVar14[9]" identifier [ number_literal ]) = identifier) ;) (expression_statement "puVar14[10] = uVar2;" (assignment_expression "puVar14[10] = uVar2" (subscript_expression "puVar14[10]" identifier [ number_literal ]) = identifier) ;) (expression_statement "puVar14[1] = 0;" (assignment_expression "puVar14[1] = 0" (subscript_expression "puVar14[1]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "puVar14[3] = 0;" (assignment_expression "puVar14[3] = 0" (subscript_expression "puVar14[3]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "*(undefined1 *)(puVar14 + 4) = 0;" (assignment_expression "*(undefined1 *)(puVar14 + 4) = 0" (pointer_expression "*(undefined1 *)(puVar14 + 4)" * (cast_expression "(undefined1 *)(puVar14 + 4)" ( (type_descriptor "undefined1 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar14 + 4)" ( (binary_expression "puVar14 + 4" identifier + number_literal) )))) = number_literal) ;) (expression_statement "*(undefined1 *)(puVar14 + 6) = 0;" (assignment_expression "*(undefined1 *)(puVar14 + 6) = 0" (pointer_expression "*(undefined1 *)(puVar14 + 6)" * (cast_expression "(undefined1 *)(puVar14 + 6)" ( (type_descriptor "undefined1 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar14 + 6)" ( (binary_expression "puVar14 + 6" identifier + number_literal) )))) = number_literal) ;) (expression_statement "*puVar14 = &PTR_FUN_003acf00;" (assignment_expression "*puVar14 = &PTR_FUN_003acf00" (pointer_expression "*puVar14" * identifier) = (pointer_expression "&PTR_FUN_003acf00" & identifier)) ;) (expression_statement "puVar14[7] = uVar5;" (assignment_expression "puVar14[7] = uVar5" (subscript_expression "puVar14[7]" identifier [ number_literal ]) = identifier) ;) (expression_statement "puVar14[8] = uVar4;" (assignment_expression "puVar14[8] = uVar4" (subscript_expression "puVar14[8]" identifier [ number_literal ]) = identifier) ;) (expression_statement "puVar14[0xb] = plVar19;" (assignment_expression "puVar14[0xb] = plVar19" (subscript_expression "puVar14[0xb]" identifier [ number_literal ]) = identifier) ;) (expression_statement "puVar14[0xc] = 0;" (assignment_expression "puVar14[0xc] = 0" (subscript_expression "puVar14[0xc]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "puVar14[0xe] = uVar7;" (assignment_expression "puVar14[0xe] = uVar7" (subscript_expression "puVar14[0xe]" identifier [ number_literal ]) = identifier) ;) (expression_statement "puVar14[0xf] = uVar6;" (assignment_expression "puVar14[0xf] = uVar6" (subscript_expression "puVar14[0xf]" identifier [ number_literal ]) = identifier) ;) (expression_statement "FUN_002300a0(param_2,puVar14);" (call_expression "FUN_002300a0(param_2,puVar14)" identifier (argument_list "(param_2,puVar14)" ( identifier , identifier ))) ;) (return_statement "return (uint)bVar11;" return (cast_expression "(uint)bVar11" ( (type_descriptor "uint" type_identifier) ) identifier) ;) })) (expression_statement "pbVar10 = *(byte **)(param_1 + 0x68);" (assignment_expression "pbVar10 = *(byte **)(param_1 + 0x68)" identifier = (pointer_expression "*(byte **)(param_1 + 0x68)" * (cast_expression "(byte **)(param_1 + 0x68)" ( (type_descriptor "byte **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(param_1 + 0x68)" ( (binary_expression "param_1 + 0x68" identifier + number_literal) ))))) ;) (expression_statement "puVar14[1] = puVar18;" (assignment_expression "puVar14[1] = puVar18" (subscript_expression "puVar14[1]" identifier [ number_literal ]) = identifier) ;) (expression_statement "*puVar14 = plVar19;" (assignment_expression "*puVar14 = plVar19" (pointer_expression "*puVar14" * identifier) = identifier) ;) (expression_statement "bVar11 = *pbVar10;" (assignment_expression "bVar11 = *pbVar10" identifier = (pointer_expression "*pbVar10" * identifier)) ;) (if_statement "if (bVar11 != 0) {\n            *(undefined4 *)(puVar14 + 2) = *(undefined4 *)(pbVar10 + 100);\n            return (uint)bVar11;\n          }" if (parenthesized_expression "(bVar11 != 0)" ( (binary_expression "bVar11 != 0" identifier != number_literal) )) (compound_statement "{\n            *(undefined4 *)(puVar14 + 2) = *(undefined4 *)(pbVar10 + 100);\n            return (uint)bVar11;\n          }" { (expression_statement "*(undefined4 *)(puVar14 + 2) = *(undefined4 *)(pbVar10 + 100);" (assignment_expression "*(undefined4 *)(puVar14 + 2) = *(undefined4 *)(pbVar10 + 100)" (pointer_expression "*(undefined4 *)(puVar14 + 2)" * (cast_expression "(undefined4 *)(puVar14 + 2)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar14 + 2)" ( (binary_expression "puVar14 + 2" identifier + number_literal) )))) = (pointer_expression "*(undefined4 *)(pbVar10 + 100)" * (cast_expression "(undefined4 *)(pbVar10 + 100)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pbVar10 + 100)" ( (binary_expression "pbVar10 + 100" identifier + number_literal) ))))) ;) (return_statement "return (uint)bVar11;" return (cast_expression "(uint)bVar11" ( (type_descriptor "uint" type_identifier) ) identifier) ;) })) }) (else_clause "else {\n          bVar11 = **(byte **)(param_1 + 0x68);\n          if (bVar11 != 0) {\n            __s = *(char **)(*(byte **)(param_1 + 0x68) + 8);\n            pcVar20 = (char *)0xffffffffffffffff;\n            local_58[0] = local_48;\n            if (__s != (char *)0x0) {\n              sVar15 = strlen(__s);\n              pcVar20 = __s + sVar15;\n            }\n            FUN_0015cbe0(local_58,__s,pcVar20);\n                    /* try { // try from 001f5e1a to 001f5e1e has its CatchHandler @ 001f63a4 */\n            lVar16 = FUN_00275550(0x178);\n                    /* try { // try from 001f5e42 to 001f5e46 has its CatchHandler @ 001f639c */\n            FUN_00234b40(lVar16,local_58,puVar14,\n                         lVar3 == s__<thin>__<arch>_N4gold7ArchiveE_00322e50._0_8_,\n                         *(undefined8 *)(param_1 + 0x50),param_1);\n            if (local_58[0] != local_48) {\n              FUN_00276d20();\n            }\n            FUN_00235c40(lVar16);\n            FUN_0016ae30(*(long *)(lVar16 + 0x38) + 0x28,param_1);\n            puVar14 = (undefined8 *)FUN_00275550(0x90);\n            uVar2 = *(undefined8 *)(param_1 + 0x88);\n            uVar17 = *(undefined8 *)(param_1 + 0x80);\n            uVar4 = *(undefined8 *)(param_1 + 0x70);\n            uVar5 = *(undefined8 *)(param_1 + 0x68);\n            *(undefined1 *)(puVar14 + 4) = 0;\n            uVar6 = *(undefined8 *)(param_1 + 0x60);\n            uVar1 = *(undefined4 *)(param_1 + 0x58);\n            puVar14[2] = puVar14 + 4;\n            uVar7 = *(undefined8 *)(param_1 + 0x50);\n            uVar8 = *(undefined8 *)(param_1 + 0x38);\n            puVar14[0xd] = uVar5;\n            uVar5 = *(undefined8 *)(param_1 + 0x48);\n            uVar9 = *(undefined8 *)(param_1 + 0x40);\n            puVar14[0xf] = uVar4;\n            puVar14[1] = 0;\n            puVar14[3] = 0;\n            *(undefined1 *)(puVar14 + 6) = 0;\n            *puVar14 = &PTR_FUN_003ae430;\n            puVar14[7] = uVar9;\n            puVar14[8] = uVar5;\n            puVar14[9] = uVar8;\n            puVar14[10] = uVar7;\n            *(undefined4 *)(puVar14 + 0xb) = uVar1;\n            puVar14[0xc] = uVar6;\n            puVar14[0xe] = lVar16;\n            puVar14[0x10] = uVar17;\n            puVar14[0x11] = uVar2;\n            FUN_002300a0(param_2,puVar14);\n            return (uint)bVar11;\n          }\n        }" else (compound_statement "{\n          bVar11 = **(byte **)(param_1 + 0x68);\n          if (bVar11 != 0) {\n            __s = *(char **)(*(byte **)(param_1 + 0x68) + 8);\n            pcVar20 = (char *)0xffffffffffffffff;\n            local_58[0] = local_48;\n            if (__s != (char *)0x0) {\n              sVar15 = strlen(__s);\n              pcVar20 = __s + sVar15;\n            }\n            FUN_0015cbe0(local_58,__s,pcVar20);\n                    /* try { // try from 001f5e1a to 001f5e1e has its CatchHandler @ 001f63a4 */\n            lVar16 = FUN_00275550(0x178);\n                    /* try { // try from 001f5e42 to 001f5e46 has its CatchHandler @ 001f639c */\n            FUN_00234b40(lVar16,local_58,puVar14,\n                         lVar3 == s__<thin>__<arch>_N4gold7ArchiveE_00322e50._0_8_,\n                         *(undefined8 *)(param_1 + 0x50),param_1);\n            if (local_58[0] != local_48) {\n              FUN_00276d20();\n            }\n            FUN_00235c40(lVar16);\n            FUN_0016ae30(*(long *)(lVar16 + 0x38) + 0x28,param_1);\n            puVar14 = (undefined8 *)FUN_00275550(0x90);\n            uVar2 = *(undefined8 *)(param_1 + 0x88);\n            uVar17 = *(undefined8 *)(param_1 + 0x80);\n            uVar4 = *(undefined8 *)(param_1 + 0x70);\n            uVar5 = *(undefined8 *)(param_1 + 0x68);\n            *(undefined1 *)(puVar14 + 4) = 0;\n            uVar6 = *(undefined8 *)(param_1 + 0x60);\n            uVar1 = *(undefined4 *)(param_1 + 0x58);\n            puVar14[2] = puVar14 + 4;\n            uVar7 = *(undefined8 *)(param_1 + 0x50);\n            uVar8 = *(undefined8 *)(param_1 + 0x38);\n            puVar14[0xd] = uVar5;\n            uVar5 = *(undefined8 *)(param_1 + 0x48);\n            uVar9 = *(undefined8 *)(param_1 + 0x40);\n            puVar14[0xf] = uVar4;\n            puVar14[1] = 0;\n            puVar14[3] = 0;\n            *(undefined1 *)(puVar14 + 6) = 0;\n            *puVar14 = &PTR_FUN_003ae430;\n            puVar14[7] = uVar9;\n            puVar14[8] = uVar5;\n            puVar14[9] = uVar8;\n            puVar14[10] = uVar7;\n            *(undefined4 *)(puVar14 + 0xb) = uVar1;\n            puVar14[0xc] = uVar6;\n            puVar14[0xe] = lVar16;\n            puVar14[0x10] = uVar17;\n            puVar14[0x11] = uVar2;\n            FUN_002300a0(param_2,puVar14);\n            return (uint)bVar11;\n          }\n        }" { (expression_statement "bVar11 = **(byte **)(param_1 + 0x68);" (assignment_expression "bVar11 = **(byte **)(param_1 + 0x68)" identifier = (pointer_expression "**(byte **)(param_1 + 0x68)" * (pointer_expression "*(byte **)(param_1 + 0x68)" * (cast_expression "(byte **)(param_1 + 0x68)" ( (type_descriptor "byte **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(param_1 + 0x68)" ( (binary_expression "param_1 + 0x68" identifier + number_literal) )))))) ;) (if_statement "if (bVar11 != 0) {\n            __s = *(char **)(*(byte **)(param_1 + 0x68) + 8);\n            pcVar20 = (char *)0xffffffffffffffff;\n            local_58[0] = local_48;\n            if (__s != (char *)0x0) {\n              sVar15 = strlen(__s);\n              pcVar20 = __s + sVar15;\n            }\n            FUN_0015cbe0(local_58,__s,pcVar20);\n                    /* try { // try from 001f5e1a to 001f5e1e has its CatchHandler @ 001f63a4 */\n            lVar16 = FUN_00275550(0x178);\n                    /* try { // try from 001f5e42 to 001f5e46 has its CatchHandler @ 001f639c */\n            FUN_00234b40(lVar16,local_58,puVar14,\n                         lVar3 == s__<thin>__<arch>_N4gold7ArchiveE_00322e50._0_8_,\n                         *(undefined8 *)(param_1 + 0x50),param_1);\n            if (local_58[0] != local_48) {\n              FUN_00276d20();\n            }\n            FUN_00235c40(lVar16);\n            FUN_0016ae30(*(long *)(lVar16 + 0x38) + 0x28,param_1);\n            puVar14 = (undefined8 *)FUN_00275550(0x90);\n            uVar2 = *(undefined8 *)(param_1 + 0x88);\n            uVar17 = *(undefined8 *)(param_1 + 0x80);\n            uVar4 = *(undefined8 *)(param_1 + 0x70);\n            uVar5 = *(undefined8 *)(param_1 + 0x68);\n            *(undefined1 *)(puVar14 + 4) = 0;\n            uVar6 = *(undefined8 *)(param_1 + 0x60);\n            uVar1 = *(undefined4 *)(param_1 + 0x58);\n            puVar14[2] = puVar14 + 4;\n            uVar7 = *(undefined8 *)(param_1 + 0x50);\n            uVar8 = *(undefined8 *)(param_1 + 0x38);\n            puVar14[0xd] = uVar5;\n            uVar5 = *(undefined8 *)(param_1 + 0x48);\n            uVar9 = *(undefined8 *)(param_1 + 0x40);\n            puVar14[0xf] = uVar4;\n            puVar14[1] = 0;\n            puVar14[3] = 0;\n            *(undefined1 *)(puVar14 + 6) = 0;\n            *puVar14 = &PTR_FUN_003ae430;\n            puVar14[7] = uVar9;\n            puVar14[8] = uVar5;\n            puVar14[9] = uVar8;\n            puVar14[10] = uVar7;\n            *(undefined4 *)(puVar14 + 0xb) = uVar1;\n            puVar14[0xc] = uVar6;\n            puVar14[0xe] = lVar16;\n            puVar14[0x10] = uVar17;\n            puVar14[0x11] = uVar2;\n            FUN_002300a0(param_2,puVar14);\n            return (uint)bVar11;\n          }" if (parenthesized_expression "(bVar11 != 0)" ( (binary_expression "bVar11 != 0" identifier != number_literal) )) (compound_statement "{\n            __s = *(char **)(*(byte **)(param_1 + 0x68) + 8);\n            pcVar20 = (char *)0xffffffffffffffff;\n            local_58[0] = local_48;\n            if (__s != (char *)0x0) {\n              sVar15 = strlen(__s);\n              pcVar20 = __s + sVar15;\n            }\n            FUN_0015cbe0(local_58,__s,pcVar20);\n                    /* try { // try from 001f5e1a to 001f5e1e has its CatchHandler @ 001f63a4 */\n            lVar16 = FUN_00275550(0x178);\n                    /* try { // try from 001f5e42 to 001f5e46 has its CatchHandler @ 001f639c */\n            FUN_00234b40(lVar16,local_58,puVar14,\n                         lVar3 == s__<thin>__<arch>_N4gold7ArchiveE_00322e50._0_8_,\n                         *(undefined8 *)(param_1 + 0x50),param_1);\n            if (local_58[0] != local_48) {\n              FUN_00276d20();\n            }\n            FUN_00235c40(lVar16);\n            FUN_0016ae30(*(long *)(lVar16 + 0x38) + 0x28,param_1);\n            puVar14 = (undefined8 *)FUN_00275550(0x90);\n            uVar2 = *(undefined8 *)(param_1 + 0x88);\n            uVar17 = *(undefined8 *)(param_1 + 0x80);\n            uVar4 = *(undefined8 *)(param_1 + 0x70);\n            uVar5 = *(undefined8 *)(param_1 + 0x68);\n            *(undefined1 *)(puVar14 + 4) = 0;\n            uVar6 = *(undefined8 *)(param_1 + 0x60);\n            uVar1 = *(undefined4 *)(param_1 + 0x58);\n            puVar14[2] = puVar14 + 4;\n            uVar7 = *(undefined8 *)(param_1 + 0x50);\n            uVar8 = *(undefined8 *)(param_1 + 0x38);\n            puVar14[0xd] = uVar5;\n            uVar5 = *(undefined8 *)(param_1 + 0x48);\n            uVar9 = *(undefined8 *)(param_1 + 0x40);\n            puVar14[0xf] = uVar4;\n            puVar14[1] = 0;\n            puVar14[3] = 0;\n            *(undefined1 *)(puVar14 + 6) = 0;\n            *puVar14 = &PTR_FUN_003ae430;\n            puVar14[7] = uVar9;\n            puVar14[8] = uVar5;\n            puVar14[9] = uVar8;\n            puVar14[10] = uVar7;\n            *(undefined4 *)(puVar14 + 0xb) = uVar1;\n            puVar14[0xc] = uVar6;\n            puVar14[0xe] = lVar16;\n            puVar14[0x10] = uVar17;\n            puVar14[0x11] = uVar2;\n            FUN_002300a0(param_2,puVar14);\n            return (uint)bVar11;\n          }" { (expression_statement "__s = *(char **)(*(byte **)(param_1 + 0x68) + 8);" (assignment_expression "__s = *(char **)(*(byte **)(param_1 + 0x68) + 8)" identifier = (pointer_expression "*(char **)(*(byte **)(param_1 + 0x68) + 8)" * (cast_expression "(char **)(*(byte **)(param_1 + 0x68) + 8)" ( (type_descriptor "char **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(*(byte **)(param_1 + 0x68) + 8)" ( (binary_expression "*(byte **)(param_1 + 0x68) + 8" (pointer_expression "*(byte **)(param_1 + 0x68)" * (cast_expression "(byte **)(param_1 + 0x68)" ( (type_descriptor "byte **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(param_1 + 0x68)" ( (binary_expression "param_1 + 0x68" identifier + number_literal) )))) + number_literal) ))))) ;) (expression_statement "pcVar20 = (char *)0xffffffffffffffff;" (assignment_expression "pcVar20 = (char *)0xffffffffffffffff" identifier = (cast_expression "(char *)0xffffffffffffffff" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (expression_statement "local_58[0] = local_48;" (assignment_expression "local_58[0] = local_48" (subscript_expression "local_58[0]" identifier [ number_literal ]) = identifier) ;) (if_statement "if (__s != (char *)0x0) {\n              sVar15 = strlen(__s);\n              pcVar20 = __s + sVar15;\n            }" if (parenthesized_expression "(__s != (char *)0x0)" ( (binary_expression "__s != (char *)0x0" identifier != (cast_expression "(char *)0x0" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n              sVar15 = strlen(__s);\n              pcVar20 = __s + sVar15;\n            }" { (expression_statement "sVar15 = strlen(__s);" (assignment_expression "sVar15 = strlen(__s)" identifier = (call_expression "strlen(__s)" identifier (argument_list "(__s)" ( identifier )))) ;) (expression_statement "pcVar20 = __s + sVar15;" (assignment_expression "pcVar20 = __s + sVar15" identifier = (binary_expression "__s + sVar15" identifier + identifier)) ;) })) (expression_statement "FUN_0015cbe0(local_58,__s,pcVar20);" (call_expression "FUN_0015cbe0(local_58,__s,pcVar20)" identifier (argument_list "(local_58,__s,pcVar20)" ( identifier , identifier , identifier ))) ;) comment (expression_statement "lVar16 = FUN_00275550(0x178);" (assignment_expression "lVar16 = FUN_00275550(0x178)" identifier = (call_expression "FUN_00275550(0x178)" identifier (argument_list "(0x178)" ( number_literal )))) ;) comment (expression_statement "FUN_00234b40(lVar16,local_58,puVar14,\n                         lVar3 == s__<thin>__<arch>_N4gold7ArchiveE_00322e50._0_8_,\n                         *(undefined8 *)(param_1 + 0x50),param_1);" (call_expression "FUN_00234b40(lVar16,local_58,puVar14,\n                         lVar3 == s__<thin>__<arch>_N4gold7ArchiveE_00322e50._0_8_,\n                         *(undefined8 *)(param_1 + 0x50),param_1)" identifier (argument_list "(lVar16,local_58,puVar14,\n                         lVar3 == s__<thin>__<arch>_N4gold7ArchiveE_00322e50._0_8_,\n                         *(undefined8 *)(param_1 + 0x50),param_1)" ( identifier , identifier , identifier , (binary_expression "lVar3 == s__<thin>__<arch>_N4gold7ArchiveE_00322e50._0_8_" identifier == (binary_expression "s__<thin>__<arch>_N4gold7ArchiveE_00322e50._0_8_" (binary_expression "s__<thin>__<arch" (binary_expression "s__<thin>__" (binary_expression "s__<thin" identifier < identifier) > identifier) < identifier) > (field_expression "_N4gold7ArchiveE_00322e50._0_8_" identifier . field_identifier))) , (pointer_expression "*(undefined8 *)(param_1 + 0x50)" * (cast_expression "(undefined8 *)(param_1 + 0x50)" ( (type_descriptor "undefined8 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x50)" ( (binary_expression "param_1 + 0x50" identifier + number_literal) )))) , identifier ))) ;) (if_statement "if (local_58[0] != local_48) {\n              FUN_00276d20();\n            }" if (parenthesized_expression "(local_58[0] != local_48)" ( (binary_expression "local_58[0] != local_48" (subscript_expression "local_58[0]" identifier [ number_literal ]) != identifier) )) (compound_statement "{\n              FUN_00276d20();\n            }" { (expression_statement "FUN_00276d20();" (call_expression "FUN_00276d20()" identifier (argument_list "()" ( ))) ;) })) (expression_statement "FUN_00235c40(lVar16);" (call_expression "FUN_00235c40(lVar16)" identifier (argument_list "(lVar16)" ( identifier ))) ;) (expression_statement "FUN_0016ae30(*(long *)(lVar16 + 0x38) + 0x28,param_1);" (call_expression "FUN_0016ae30(*(long *)(lVar16 + 0x38) + 0x28,param_1)" identifier (argument_list "(*(long *)(lVar16 + 0x38) + 0x28,param_1)" ( (binary_expression "*(long *)(lVar16 + 0x38) + 0x28" (pointer_expression "*(long *)(lVar16 + 0x38)" * (cast_expression "(long *)(lVar16 + 0x38)" ( (type_descriptor "long *" (sized_type_specifier "long" long) (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(lVar16 + 0x38)" ( (binary_expression "lVar16 + 0x38" identifier + number_literal) )))) + number_literal) , identifier ))) ;) (expression_statement "puVar14 = (undefined8 *)FUN_00275550(0x90);" (assignment_expression "puVar14 = (undefined8 *)FUN_00275550(0x90)" identifier = (cast_expression "(undefined8 *)FUN_00275550(0x90)" ( (type_descriptor "undefined8 *" type_identifier (abstract_pointer_declarator "*" *)) ) (call_expression "FUN_00275550(0x90)" identifier (argument_list "(0x90)" ( number_literal ))))) ;) (expression_statement "uVar2 = *(undefined8 *)(param_1 + 0x88);" (assignment_expression "uVar2 = *(undefined8 *)(param_1 + 0x88)" identifier = (pointer_expression "*(undefined8 *)(param_1 + 0x88)" * (cast_expression "(undefined8 *)(param_1 + 0x88)" ( (type_descriptor "undefined8 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x88)" ( (binary_expression "param_1 + 0x88" identifier + number_literal) ))))) ;) (expression_statement "uVar17 = *(undefined8 *)(param_1 + 0x80);" (assignment_expression "uVar17 = *(undefined8 *)(param_1 + 0x80)" identifier = (pointer_expression "*(undefined8 *)(param_1 + 0x80)" * (cast_expression "(undefined8 *)(param_1 + 0x80)" ( (type_descriptor "undefined8 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x80)" ( (binary_expression "param_1 + 0x80" identifier + number_literal) ))))) ;) (expression_statement "uVar4 = *(undefined8 *)(param_1 + 0x70);" (assignment_expression "uVar4 = *(undefined8 *)(param_1 + 0x70)" identifier = (pointer_expression "*(undefined8 *)(param_1 + 0x70)" * (cast_expression "(undefined8 *)(param_1 + 0x70)" ( (type_descriptor "undefined8 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x70)" ( (binary_expression "param_1 + 0x70" identifier + number_literal) ))))) ;) (expression_statement "uVar5 = *(undefined8 *)(param_1 + 0x68);" (assignment_expression "uVar5 = *(undefined8 *)(param_1 + 0x68)" identifier = (pointer_expression "*(undefined8 *)(param_1 + 0x68)" * (cast_expression "(undefined8 *)(param_1 + 0x68)" ( (type_descriptor "undefined8 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x68)" ( (binary_expression "param_1 + 0x68" identifier + number_literal) ))))) ;) (expression_statement "*(undefined1 *)(puVar14 + 4) = 0;" (assignment_expression "*(undefined1 *)(puVar14 + 4) = 0" (pointer_expression "*(undefined1 *)(puVar14 + 4)" * (cast_expression "(undefined1 *)(puVar14 + 4)" ( (type_descriptor "undefined1 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar14 + 4)" ( (binary_expression "puVar14 + 4" identifier + number_literal) )))) = number_literal) ;) (expression_statement "uVar6 = *(undefined8 *)(param_1 + 0x60);" (assignment_expression "uVar6 = *(undefined8 *)(param_1 + 0x60)" identifier = (pointer_expression "*(undefined8 *)(param_1 + 0x60)" * (cast_expression "(undefined8 *)(param_1 + 0x60)" ( (type_descriptor "undefined8 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x60)" ( (binary_expression "param_1 + 0x60" identifier + number_literal) ))))) ;) (expression_statement "uVar1 = *(undefined4 *)(param_1 + 0x58);" (assignment_expression "uVar1 = *(undefined4 *)(param_1 + 0x58)" identifier = (pointer_expression "*(undefined4 *)(param_1 + 0x58)" * (cast_expression "(undefined4 *)(param_1 + 0x58)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x58)" ( (binary_expression "param_1 + 0x58" identifier + number_literal) ))))) ;) (expression_statement "puVar14[2] = puVar14 + 4;" (assignment_expression "puVar14[2] = puVar14 + 4" (subscript_expression "puVar14[2]" identifier [ number_literal ]) = (binary_expression "puVar14 + 4" identifier + number_literal)) ;) (expression_statement "uVar7 = *(undefined8 *)(param_1 + 0x50);" (assignment_expression "uVar7 = *(undefined8 *)(param_1 + 0x50)" identifier = (pointer_expression "*(undefined8 *)(param_1 + 0x50)" * (cast_expression "(undefined8 *)(param_1 + 0x50)" ( (type_descriptor "undefined8 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x50)" ( (binary_expression "param_1 + 0x50" identifier + number_literal) ))))) ;) (expression_statement "uVar8 = *(undefined8 *)(param_1 + 0x38);" (assignment_expression "uVar8 = *(undefined8 *)(param_1 + 0x38)" identifier = (pointer_expression "*(undefined8 *)(param_1 + 0x38)" * (cast_expression "(undefined8 *)(param_1 + 0x38)" ( (type_descriptor "undefined8 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x38)" ( (binary_expression "param_1 + 0x38" identifier + number_literal) ))))) ;) (expression_statement "puVar14[0xd] = uVar5;" (assignment_expression "puVar14[0xd] = uVar5" (subscript_expression "puVar14[0xd]" identifier [ number_literal ]) = identifier) ;) (expression_statement "uVar5 = *(undefined8 *)(param_1 + 0x48);" (assignment_expression "uVar5 = *(undefined8 *)(param_1 + 0x48)" identifier = (pointer_expression "*(undefined8 *)(param_1 + 0x48)" * (cast_expression "(undefined8 *)(param_1 + 0x48)" ( (type_descriptor "undefined8 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x48)" ( (binary_expression "param_1 + 0x48" identifier + number_literal) ))))) ;) (expression_statement "uVar9 = *(undefined8 *)(param_1 + 0x40);" (assignment_expression "uVar9 = *(undefined8 *)(param_1 + 0x40)" identifier = (pointer_expression "*(undefined8 *)(param_1 + 0x40)" * (cast_expression "(undefined8 *)(param_1 + 0x40)" ( (type_descriptor "undefined8 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x40)" ( (binary_expression "param_1 + 0x40" identifier + number_literal) ))))) ;) (expression_statement "puVar14[0xf] = uVar4;" (assignment_expression "puVar14[0xf] = uVar4" (subscript_expression "puVar14[0xf]" identifier [ number_literal ]) = identifier) ;) (expression_statement "puVar14[1] = 0;" (assignment_expression "puVar14[1] = 0" (subscript_expression "puVar14[1]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "puVar14[3] = 0;" (assignment_expression "puVar14[3] = 0" (subscript_expression "puVar14[3]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "*(undefined1 *)(puVar14 + 6) = 0;" (assignment_expression "*(undefined1 *)(puVar14 + 6) = 0" (pointer_expression "*(undefined1 *)(puVar14 + 6)" * (cast_expression "(undefined1 *)(puVar14 + 6)" ( (type_descriptor "undefined1 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar14 + 6)" ( (binary_expression "puVar14 + 6" identifier + number_literal) )))) = number_literal) ;) (expression_statement "*puVar14 = &PTR_FUN_003ae430;" (assignment_expression "*puVar14 = &PTR_FUN_003ae430" (pointer_expression "*puVar14" * identifier) = (pointer_expression "&PTR_FUN_003ae430" & identifier)) ;) (expression_statement "puVar14[7] = uVar9;" (assignment_expression "puVar14[7] = uVar9" (subscript_expression "puVar14[7]" identifier [ number_literal ]) = identifier) ;) (expression_statement "puVar14[8] = uVar5;" (assignment_expression "puVar14[8] = uVar5" (subscript_expression "puVar14[8]" identifier [ number_literal ]) = identifier) ;) (expression_statement "puVar14[9] = uVar8;" (assignment_expression "puVar14[9] = uVar8" (subscript_expression "puVar14[9]" identifier [ number_literal ]) = identifier) ;) (expression_statement "puVar14[10] = uVar7;" (assignment_expression "puVar14[10] = uVar7" (subscript_expression "puVar14[10]" identifier [ number_literal ]) = identifier) ;) (expression_statement "*(undefined4 *)(puVar14 + 0xb) = uVar1;" (assignment_expression "*(undefined4 *)(puVar14 + 0xb) = uVar1" (pointer_expression "*(undefined4 *)(puVar14 + 0xb)" * (cast_expression "(undefined4 *)(puVar14 + 0xb)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar14 + 0xb)" ( (binary_expression "puVar14 + 0xb" identifier + number_literal) )))) = identifier) ;) (expression_statement "puVar14[0xc] = uVar6;" (assignment_expression "puVar14[0xc] = uVar6" (subscript_expression "puVar14[0xc]" identifier [ number_literal ]) = identifier) ;) (expression_statement "puVar14[0xe] = lVar16;" (assignment_expression "puVar14[0xe] = lVar16" (subscript_expression "puVar14[0xe]" identifier [ number_literal ]) = identifier) ;) (expression_statement "puVar14[0x10] = uVar17;" (assignment_expression "puVar14[0x10] = uVar17" (subscript_expression "puVar14[0x10]" identifier [ number_literal ]) = identifier) ;) (expression_statement "puVar14[0x11] = uVar2;" (assignment_expression "puVar14[0x11] = uVar2" (subscript_expression "puVar14[0x11]" identifier [ number_literal ]) = identifier) ;) (expression_statement "FUN_002300a0(param_2,puVar14);" (call_expression "FUN_002300a0(param_2,puVar14)" identifier (argument_list "(param_2,puVar14)" ( identifier , identifier ))) ;) (return_statement "return (uint)bVar11;" return (cast_expression "(uint)bVar11" ( (type_descriptor "uint" type_identifier) ) identifier) ;) })) }))) comment (expression_statement "FUN_0016cdf0("../../gold/options.h",0x828,&DAT_0031b73b);" (call_expression "FUN_0016cdf0("../../gold/options.h",0x828,&DAT_0031b73b)" identifier (argument_list "("../../gold/options.h",0x828,&DAT_0031b73b)" ( (string_literal ""../../gold/options.h"" " string_content ") , number_literal , (pointer_expression "&DAT_0031b73b" & identifier) ))) ;) })) (expression_statement "uVar2 = puVar14[5];" (assignment_expression "uVar2 = puVar14[5]" identifier = (subscript_expression "puVar14[5]" identifier [ number_literal ])) ;) (expression_statement "uVar17 = gettext("%s: file is empty");" (assignment_expression "uVar17 = gettext("%s: file is empty")" identifier = (call_expression "gettext("%s: file is empty")" identifier (argument_list "("%s: file is empty")" ( (string_literal ""%s: file is empty"" " string_content ") )))) ;) (expression_statement "FUN_001690a0(uVar17,uVar2);" (call_expression "FUN_001690a0(uVar17,uVar2)" identifier (argument_list "(uVar17,uVar2)" ( identifier , identifier ))) ;) })) (return_statement "return 0;" return number_literal ;) })))) (expression_statement "uVar13 = FUN_001f54c0(param_1,param_2);" (assignment_expression "uVar13 = FUN_001f54c0(param_1,param_2)" identifier = (call_expression "FUN_001f54c0(param_1,param_2)" identifier (argument_list "(param_1,param_2)" ( identifier , identifier )))) ;) (return_statement "return uVar13;" return identifier ;) })))
(translation_unit "/* WARNING: Type propagation algorithm not settling */\n/* WARNING: Enum "DT": Some values do not have unique names */\n/* DWARF original prototype: bool do_read_symbols(Read_symbols * this, Workqueue * workqueue) */\n\nbool __thiscall gold::Read_symbols::do_read_symbols(Read_symbols *this,Workqueue *workqueue)\n\n{\n  anon_union_16_2_edb7204a_for_basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_9\n  *paVar1;\n  File_read *this_00;\n  _Rb_tree_header *p_Var2;\n  Saved_views *pSVar3;\n  Input_argument *pIVar4;\n  Dirsearch *pDVar5;\n  long filesize;\n  long lVar6;\n  char *__s;\n  Task_token *pTVar7;\n  Task_token *pTVar8;\n  Mapfile *pMVar9;\n  Input_objects *pIVar10;\n  Layout *pLVar11;\n  Symbol_table *pSVar12;\n  Plugin_manager *this_01;\n  Archive_member *pAVar13;\n  Input_group *pIVar14;\n  pointer pcVar15;\n  bool bVar16;\n  char cVar17;\n  bool bVar18;\n  int iVar19;\n  Input_file *pIVar20;\n  size_t sVar21;\n  Archive *this_02;\n  Task *pTVar22;\n  Pluginobj *pPVar23;\n  Read_symbols_data *pRVar24;\n  Task *pTVar25;\n  Object *elf_object;\n  char *pcVar26;\n  Read_symbols *pRVar27;\n  bool *punconfigured;\n  int read_size;\n  uchar *ehdr;\n  bool unconfigured;\n  char local_48 [24];\n  \n  pIVar4 = this->input_argument_;\n  if (pIVar4->is_file_ == false) {\n    if (pIVar4->lib_ == (Input_file_lib *)0x0) {\n      if (this->input_group_ != (Input_group *)0x0) {\n                    /* WARNING: Subroutine does not return */\n        do_gold_unreachable("../../gold/readsyms.cc",0x10b,"do_read_symbols");\n      }\n      do_group(this,workqueue);\n      return true;\n    }\n  }\n  else if (pIVar4->lib_ == (Input_file_lib *)0x0) {\n    pIVar20 = (Input_file *)operator_new(0xe8);\n    pDVar5 = this->dirpath_;\n    paVar1 = &(pIVar20->found_name_).field_2;\n    pIVar20->input_argument_ = &pIVar4->file_;\n    (pIVar20->found_name_)._M_dataplus._M_p = (pointer)paVar1;\n    (pIVar20->found_name_)._M_string_length = 0;\n    (pIVar20->found_name_).field_2._M_local_buf[0] = '\0';\n    (pIVar20->file_).name_._M_dataplus._M_p = (pointer)&(pIVar20->file_).name_.field_2;\n    p_Var2 = &(pIVar20->file_).views_._M_t._M_impl.super__Rb_tree_header;\n    (pIVar20->file_).views_._M_t._M_impl.super__Rb_tree_header._M_header._M_left =\n         &p_Var2->_M_header;\n    (pIVar20->file_).views_._M_t._M_impl.super__Rb_tree_header._M_header._M_right =\n         &p_Var2->_M_header;\n    pSVar3 = &(pIVar20->file_).saved_views_;\n    (pIVar20->file_).name_._M_string_length = 0;\n    (pIVar20->file_).name_.field_2._M_local_buf[0] = '\0';\n    (pIVar20->file_).descriptor_ = -1;\n    (pIVar20->file_).is_descriptor_opened_ = false;\n    (pIVar20->file_).object_count_ = 0;\n    (pIVar20->file_).size_ = 0;\n    (pIVar20->file_).token_.is_blocker_ = false;\n    (pIVar20->file_).token_.blockers_ = 0;\n    (pIVar20->file_).token_.writer_ = (Task *)0x0;\n    (pIVar20->file_).token_.waiting_.head_ = (Task *)0x0;\n    (pIVar20->file_).token_.waiting_.tail_ = (Task *)0x0;\n    (pIVar20->file_).views_._M_t._M_impl.super__Rb_tree_header._M_header._M_color = _S_red;\n    (pIVar20->file_).views_._M_t._M_impl.super__Rb_tree_header._M_header._M_parent = (_Base_ptr)0x0;\n    (pIVar20->file_).views_._M_t._M_impl.super__Rb_tree_header._M_node_count = 0;\n    (pIVar20->file_).saved_views_.\n    super__List_base<gold::File_read::View*,_std::allocator<gold::File_read::View*>_>._M_impl.\n    _M_node.super__List_node_base._M_prev = (_List_node_base *)pSVar3;\n    (pIVar20->file_).saved_views_.\n    super__List_base<gold::File_read::View*,_std::allocator<gold::File_read::View*>_>._M_impl.\n    _M_node.super__List_node_base._M_next = (_List_node_base *)pSVar3;\n    (pIVar20->file_).saved_views_.\n    super__List_base<gold::File_read::View*,_std::allocator<gold::File_read::View*>_>._M_impl.\n    _M_node._M_size = 0;\n    (pIVar20->file_).mapped_bytes_ = 0;\n    (pIVar20->file_).released_ = true;\n    (pIVar20->file_).whole_file_view_ = (View *)0x0;\n    pIVar20->is_in_sysroot_ = false;\n    pIVar20->format_ = FORMAT_NONE;\n    iVar19 = Input_file::open(pIVar20,(char *)pDVar5,(int)this,&this->dirindex_);\n    cVar17 = (char)iVar19;\n    if (cVar17 != '\0') {\n      filesize = (pIVar20->file_).size_;\n      if (filesize != 0) {\n        bVar16 = is_elf_object(pIVar20,0,&ehdr,&read_size);\n        if ((read_size < 8) ||\n           ((lVar6 = *(long *)ehdr, lVar6 != Archive::armagt && (Archive::armag != lVar6)))) {\n          elf_object = (Object *)0x0;\n          if (bVar16) {\n            _unconfigured = _unconfigured & 0xffffffffffffff00;\n            bVar18 = Input_file::will_search_for(pIVar20);\n            punconfigured = (bool *)0x0;\n            if (bVar18) {\n              punconfigured = &unconfigured;\n            }\n            elf_object = make_elf_object(&(pIVar20->file_).name_,pIVar20,0,ehdr,(long)read_size,\n                                         punconfigured);\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          this_01 = parameters->options_->plugins_;\n          if ((this_01 != (Plugin_manager *)0x0) &&\n             (pPVar23 = Plugin_manager::claim_file(this_01,pIVar20,0,filesize,elf_object),\n             pPVar23 != (Pluginobj *)0x0)) {\n            if (elf_object != (Object *)0x0) {\n              (*elf_object->_vptr_Object[1])(elf_object);\n            }\n            pIVar20 = (pPVar23->super_Object).input_file_;\n            if (pIVar20 != (Input_file *)0x0) {\n              File_read::unlock(&pIVar20->file_,&this->super_Task);\n            }\n            pAVar13 = this->member_;\n            if (pAVar13 == (Archive_member *)0x0) {\n              pTVar22 = (Task *)operator_new(0x80);\n              pIVar4 = this->input_argument_;\n              pLVar11 = this->layout_;\n              pSVar12 = this->symtab_;\n              pIVar10 = this->input_objects_;\n              pTVar22->_vptr_Task = (_func_int_varargs **)&PTR__Add_symbols_003acf00;\n              pTVar25 = (Task *)this->next_blocker_;\n              pTVar7 = this->this_blocker_;\n              pTVar22[1].name_._M_dataplus._M_p = (pointer)pLVar11;\n              pTVar22[1].name_._M_string_length = (size_type)pIVar4;\n              pTVar22->list_next_ = (Task *)0x0;\n              (pTVar22->name_)._M_dataplus._M_p = (pointer)&(pTVar22->name_).field_2;\n              (pTVar22->name_)._M_string_length = 0;\n              (pTVar22->name_).field_2._M_local_buf[0] = '\0';\n              pTVar22->should_run_soon_ = false;\n              pTVar22[1]._vptr_Task = (_func_int_varargs **)pIVar10;\n              pTVar22[1].list_next_ = (Task *)pSVar12;\n              pTVar22[1].name_.field_2._M_allocated_capacity = (size_type)pPVar23;\n              *(undefined8 *)((long)&pTVar22[1].name_.field_2 + 8) = 0;\n              *(undefined8 *)&pTVar22[1].should_run_soon_ = 0;\n              pTVar22[2]._vptr_Task = (_func_int_varargs **)pTVar7;\n              pTVar22[2].list_next_ = pTVar25;\n              Workqueue::queue_next(workqueue,pTVar22);\n              return (bool)cVar17;\n            }\n            pAVar13->sd_ = (Read_symbols_data *)0x0;\n            pAVar13->obj_ = &pPVar23->super_Object;\n            return (bool)cVar17;\n          }\n          if (!bVar16) {\n            pTVar25 = (Task *)operator_new(0x90);\n            pTVar7 = this->next_blocker_;\n            pTVar8 = this->this_blocker_;\n            pIVar4 = this->input_argument_;\n            pIVar14 = this->input_group_;\n            (pTVar25->name_).field_2._M_local_buf[0] = '\0';\n            pMVar9 = this->mapfile_;\n            pIVar10 = this->input_objects_;\n            (pTVar25->name_)._M_dataplus._M_p = (pointer)&(pTVar25->name_).field_2;\n            iVar19 = this->dirindex_;\n            pDVar5 = this->dirpath_;\n            *(Input_group **)&pTVar25[1].should_run_soon_ = pIVar14;\n            pLVar11 = this->layout_;\n            pSVar12 = this->symtab_;\n            pTVar25[2]._vptr_Task = (_func_int_varargs **)pIVar4;\n            pTVar25->list_next_ = (Task *)0x0;\n            (pTVar25->name_)._M_string_length = 0;\n            pTVar25->should_run_soon_ = false;\n            pTVar25->_vptr_Task = (_func_int_varargs **)&PTR__Read_script_003ad080;\n            pTVar25[1]._vptr_Task = (_func_int_varargs **)pSVar12;\n            pTVar25[1].list_next_ = (Task *)pLVar11;\n            pTVar25[1].name_._M_dataplus._M_p = (pointer)pDVar5;\n            *(int *)&pTVar25[1].name_._M_string_length = iVar19;\n            pTVar25[1].name_.field_2._M_allocated_capacity = (size_type)pIVar10;\n            *(Mapfile **)((long)&pTVar25[1].name_.field_2 + 8) = pMVar9;\n            pTVar25[2].list_next_ = (Task *)pIVar20;\n            pTVar25[2].name_._M_dataplus._M_p = &pTVar8->is_blocker_;\n            pTVar25[2].name_._M_string_length = (size_type)pTVar7;\n            Workqueue::queue_soon(workqueue,pTVar25);\n            return (bool)cVar17;\n          }\n          if (elf_object == (Object *)0x0) {\n            if (unconfigured == false) {\n              return false;\n            }\n            this_00 = &pIVar20->file_;\n            incompatible_warning(this->input_argument_,pIVar20);\n            File_read::release(this_00);\n            pRVar27 = this;\n            File_read::unlock(this_00,&this->super_Task);\n            File_read::~File_read(this_00,(int)pRVar27);\n            pcVar15 = (pIVar20->found_name_)._M_dataplus._M_p;\n            if (paVar1 != (anon_union_16_2_edb7204a_for_basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_9\n                           *)pcVar15) {\n              operator_delete(pcVar15);\n            }\n            operator_delete(pIVar20,0xe8);\n            this->dirindex_ = this->dirindex_ + 1;\n            bVar16 = do_read_symbols(this,workqueue);\n            return bVar16;\n          }\n          pRVar24 = (Read_symbols_data *)operator_new(0x80);\n          pRVar24->section_headers = (File_view *)0x0;\n          pRVar24->section_names = (File_view *)0x0;\n          pRVar24->symbols = (File_view *)0x0;\n          pRVar24->symbol_names = (File_view *)0x0;\n          pRVar24->versym = (File_view *)0x0;\n          pRVar24->verdef = (File_view *)0x0;\n          pRVar24->verneed = (File_view *)0x0;\n          (*elf_object->_vptr_Object[8])(elf_object,pRVar24);\n          File_read::unlock(&pIVar20->file_,&this->super_Task);\n          pAVar13 = this->member_;\n          if (pAVar13 == (Archive_member *)0x0) {\n            pTVar22 = (Task *)operator_new(0x80);\n            pIVar4 = this->input_argument_;\n            pLVar11 = this->layout_;\n            pSVar12 = this->symtab_;\n            pIVar10 = this->input_objects_;\n            *(Read_symbols_data **)&pTVar22[1].should_run_soon_ = pRVar24;\n            pTVar25 = (Task *)this->next_blocker_;\n            pTVar7 = this->this_blocker_;\n            (pTVar22->name_)._M_dataplus._M_p = (pointer)&(pTVar22->name_).field_2;\n            pTVar22[1].name_._M_dataplus._M_p = (pointer)pLVar11;\n            pTVar22[1].name_._M_string_length = (size_type)pIVar4;\n            pTVar22->list_next_ = (Task *)0x0;\n            (pTVar22->name_)._M_string_length = 0;\n            (pTVar22->name_).field_2._M_local_buf[0] = '\0';\n            pTVar22->should_run_soon_ = false;\n            pTVar22->_vptr_Task = (_func_int_varargs **)&PTR__Add_symbols_003acf00;\n            pTVar22[1]._vptr_Task = (_func_int_varargs **)pIVar10;\n            pTVar22[1].list_next_ = (Task *)pSVar12;\n            *(Object **)&pTVar22[1].name_.field_2 = elf_object;\n            *(undefined8 *)((long)&pTVar22[1].name_.field_2 + 8) = 0;\n            pTVar22[2]._vptr_Task = (_func_int_varargs **)pTVar7;\n            pTVar22[2].list_next_ = pTVar25;\n            Workqueue::queue_next(workqueue,pTVar22);\n            return bVar16;\n          }\n          pIVar4 = this->input_argument_;\n          pAVar13->sd_ = pRVar24;\n          pAVar13->obj_ = elf_object;\n          bVar16 = pIVar4->is_file_;\n          if (bVar16 != false) {\n            pAVar13->arg_serial_ = (pIVar4->file_).arg_serial_;\n            return bVar16;\n          }\n        }\n        else {\n          bVar16 = this->input_argument_->is_file_;\n          if (bVar16 != false) {\n            __s = (this->input_argument_->file_).name_._M_dataplus._M_p;\n            pcVar26 = (char *)0xffffffffffffffff;\n            _unconfigured = local_48;\n            if (__s != (char *)0x0) {\n              sVar21 = strlen(__s);\n              pcVar26 = __s + sVar21;\n            }\n            std::__cxx11::basic_string<char,_std::char_traits<char>,_std::allocator<char>_>::\n            _M_construct<char_const*>((string *)&unconfigured,__s,pcVar26);\n                    /* try { // try from 001f5e1a to 001f5e1e has its CatchHandler @ 001f63a4 */\n            this_02 = (Archive *)operator_new(0x178);\n                    /* try { // try from 001f5e42 to 001f5e46 has its CatchHandler @ 001f639c */\n            Archive::Archive(this_02,(string *)&unconfigured,pIVar20,lVar6 == Archive::armagt,\n                             this->dirpath_,&this->super_Task);\n            if (_unconfigured != local_48) {\n              operator_delete(_unconfigured);\n            }\n            Archive::setup(this_02);\n            File_read::unlock(&this_02->input_file_->file_,&this->super_Task);\n            pTVar22 = (Task *)operator_new(0x90);\n            pTVar7 = this->next_blocker_;\n            pTVar8 = this->this_blocker_;\n            pTVar25 = (Task *)this->input_group_;\n            pIVar4 = this->input_argument_;\n            (pTVar22->name_).field_2._M_local_buf[0] = '\0';\n            pMVar9 = this->mapfile_;\n            iVar19 = this->dirindex_;\n            (pTVar22->name_)._M_dataplus._M_p = (pointer)&(pTVar22->name_).field_2;\n            pDVar5 = this->dirpath_;\n            pIVar10 = this->input_objects_;\n            *(Input_argument **)&pTVar22[1].should_run_soon_ = pIVar4;\n            pLVar11 = this->layout_;\n            pSVar12 = this->symtab_;\n            pTVar22[2].list_next_ = pTVar25;\n            pTVar22->list_next_ = (Task *)0x0;\n            (pTVar22->name_)._M_string_length = 0;\n            pTVar22->should_run_soon_ = false;\n            pTVar22->_vptr_Task = (_func_int_varargs **)&PTR__Add_archive_symbols_003ae430;\n            pTVar22[1]._vptr_Task = (_func_int_varargs **)pSVar12;\n            pTVar22[1].list_next_ = (Task *)pLVar11;\n            pTVar22[1].name_._M_dataplus._M_p = (pointer)pIVar10;\n            pTVar22[1].name_._M_string_length = (size_type)pDVar5;\n            *(int *)&pTVar22[1].name_.field_2 = iVar19;\n            *(Mapfile **)((long)&pTVar22[1].name_.field_2 + 8) = pMVar9;\n            pTVar22[2]._vptr_Task = (_func_int_varargs **)this_02;\n            pTVar22[2].name_._M_dataplus._M_p = &pTVar8->is_blocker_;\n            pTVar22[2].name_._M_string_length = (size_type)pTVar7;\n            Workqueue::queue_next(workqueue,pTVar22);\n            return bVar16;\n          }\n        }\n                    /* WARNING: Subroutine does not return */\n        do_gold_unreachable("../../gold/options.h",0x828,"file");\n      }\n      pcVar15 = (pIVar20->file_).name_._M_dataplus._M_p;\n      pcVar26 = (char *)gettext("%s: file is empty");\n      gold_error(pcVar26,pcVar15);\n    }\n    return false;\n  }\n  bVar16 = do_lib_group(this,workqueue);\n  return bVar16;\n}\n\n" comment comment comment (function_definition "bool __thiscall gold::Read_symbols::do_read_symbols(Read_symbols *this,Workqueue *workqueue)\n\n{\n  anon_union_16_2_edb7204a_for_basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_9\n  *paVar1;\n  File_read *this_00;\n  _Rb_tree_header *p_Var2;\n  Saved_views *pSVar3;\n  Input_argument *pIVar4;\n  Dirsearch *pDVar5;\n  long filesize;\n  long lVar6;\n  char *__s;\n  Task_token *pTVar7;\n  Task_token *pTVar8;\n  Mapfile *pMVar9;\n  Input_objects *pIVar10;\n  Layout *pLVar11;\n  Symbol_table *pSVar12;\n  Plugin_manager *this_01;\n  Archive_member *pAVar13;\n  Input_group *pIVar14;\n  pointer pcVar15;\n  bool bVar16;\n  char cVar17;\n  bool bVar18;\n  int iVar19;\n  Input_file *pIVar20;\n  size_t sVar21;\n  Archive *this_02;\n  Task *pTVar22;\n  Pluginobj *pPVar23;\n  Read_symbols_data *pRVar24;\n  Task *pTVar25;\n  Object *elf_object;\n  char *pcVar26;\n  Read_symbols *pRVar27;\n  bool *punconfigured;\n  int read_size;\n  uchar *ehdr;\n  bool unconfigured;\n  char local_48 [24];\n  \n  pIVar4 = this->input_argument_;\n  if (pIVar4->is_file_ == false) {\n    if (pIVar4->lib_ == (Input_file_lib *)0x0) {\n      if (this->input_group_ != (Input_group *)0x0) {\n                    /* WARNING: Subroutine does not return */\n        do_gold_unreachable("../../gold/readsyms.cc",0x10b,"do_read_symbols");\n      }\n      do_group(this,workqueue);\n      return true;\n    }\n  }\n  else if (pIVar4->lib_ == (Input_file_lib *)0x0) {\n    pIVar20 = (Input_file *)operator_new(0xe8);\n    pDVar5 = this->dirpath_;\n    paVar1 = &(pIVar20->found_name_).field_2;\n    pIVar20->input_argument_ = &pIVar4->file_;\n    (pIVar20->found_name_)._M_dataplus._M_p = (pointer)paVar1;\n    (pIVar20->found_name_)._M_string_length = 0;\n    (pIVar20->found_name_).field_2._M_local_buf[0] = '\0';\n    (pIVar20->file_).name_._M_dataplus._M_p = (pointer)&(pIVar20->file_).name_.field_2;\n    p_Var2 = &(pIVar20->file_).views_._M_t._M_impl.super__Rb_tree_header;\n    (pIVar20->file_).views_._M_t._M_impl.super__Rb_tree_header._M_header._M_left =\n         &p_Var2->_M_header;\n    (pIVar20->file_).views_._M_t._M_impl.super__Rb_tree_header._M_header._M_right =\n         &p_Var2->_M_header;\n    pSVar3 = &(pIVar20->file_).saved_views_;\n    (pIVar20->file_).name_._M_string_length = 0;\n    (pIVar20->file_).name_.field_2._M_local_buf[0] = '\0';\n    (pIVar20->file_).descriptor_ = -1;\n    (pIVar20->file_).is_descriptor_opened_ = false;\n    (pIVar20->file_).object_count_ = 0;\n    (pIVar20->file_).size_ = 0;\n    (pIVar20->file_).token_.is_blocker_ = false;\n    (pIVar20->file_).token_.blockers_ = 0;\n    (pIVar20->file_).token_.writer_ = (Task *)0x0;\n    (pIVar20->file_).token_.waiting_.head_ = (Task *)0x0;\n    (pIVar20->file_).token_.waiting_.tail_ = (Task *)0x0;\n    (pIVar20->file_).views_._M_t._M_impl.super__Rb_tree_header._M_header._M_color = _S_red;\n    (pIVar20->file_).views_._M_t._M_impl.super__Rb_tree_header._M_header._M_parent = (_Base_ptr)0x0;\n    (pIVar20->file_).views_._M_t._M_impl.super__Rb_tree_header._M_node_count = 0;\n    (pIVar20->file_).saved_views_.\n    super__List_base<gold::File_read::View*,_std::allocator<gold::File_read::View*>_>._M_impl.\n    _M_node.super__List_node_base._M_prev = (_List_node_base *)pSVar3;\n    (pIVar20->file_).saved_views_.\n    super__List_base<gold::File_read::View*,_std::allocator<gold::File_read::View*>_>._M_impl.\n    _M_node.super__List_node_base._M_next = (_List_node_base *)pSVar3;\n    (pIVar20->file_).saved_views_.\n    super__List_base<gold::File_read::View*,_std::allocator<gold::File_read::View*>_>._M_impl.\n    _M_node._M_size = 0;\n    (pIVar20->file_).mapped_bytes_ = 0;\n    (pIVar20->file_).released_ = true;\n    (pIVar20->file_).whole_file_view_ = (View *)0x0;\n    pIVar20->is_in_sysroot_ = false;\n    pIVar20->format_ = FORMAT_NONE;\n    iVar19 = Input_file::open(pIVar20,(char *)pDVar5,(int)this,&this->dirindex_);\n    cVar17 = (char)iVar19;\n    if (cVar17 != '\0') {\n      filesize = (pIVar20->file_).size_;\n      if (filesize != 0) {\n        bVar16 = is_elf_object(pIVar20,0,&ehdr,&read_size);\n        if ((read_size < 8) ||\n           ((lVar6 = *(long *)ehdr, lVar6 != Archive::armagt && (Archive::armag != lVar6)))) {\n          elf_object = (Object *)0x0;\n          if (bVar16) {\n            _unconfigured = _unconfigured & 0xffffffffffffff00;\n            bVar18 = Input_file::will_search_for(pIVar20);\n            punconfigured = (bool *)0x0;\n            if (bVar18) {\n              punconfigured = &unconfigured;\n            }\n            elf_object = make_elf_object(&(pIVar20->file_).name_,pIVar20,0,ehdr,(long)read_size,\n                                         punconfigured);\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          this_01 = parameters->options_->plugins_;\n          if ((this_01 != (Plugin_manager *)0x0) &&\n             (pPVar23 = Plugin_manager::claim_file(this_01,pIVar20,0,filesize,elf_object),\n             pPVar23 != (Pluginobj *)0x0)) {\n            if (elf_object != (Object *)0x0) {\n              (*elf_object->_vptr_Object[1])(elf_object);\n            }\n            pIVar20 = (pPVar23->super_Object).input_file_;\n            if (pIVar20 != (Input_file *)0x0) {\n              File_read::unlock(&pIVar20->file_,&this->super_Task);\n            }\n            pAVar13 = this->member_;\n            if (pAVar13 == (Archive_member *)0x0) {\n              pTVar22 = (Task *)operator_new(0x80);\n              pIVar4 = this->input_argument_;\n              pLVar11 = this->layout_;\n              pSVar12 = this->symtab_;\n              pIVar10 = this->input_objects_;\n              pTVar22->_vptr_Task = (_func_int_varargs **)&PTR__Add_symbols_003acf00;\n              pTVar25 = (Task *)this->next_blocker_;\n              pTVar7 = this->this_blocker_;\n              pTVar22[1].name_._M_dataplus._M_p = (pointer)pLVar11;\n              pTVar22[1].name_._M_string_length = (size_type)pIVar4;\n              pTVar22->list_next_ = (Task *)0x0;\n              (pTVar22->name_)._M_dataplus._M_p = (pointer)&(pTVar22->name_).field_2;\n              (pTVar22->name_)._M_string_length = 0;\n              (pTVar22->name_).field_2._M_local_buf[0] = '\0';\n              pTVar22->should_run_soon_ = false;\n              pTVar22[1]._vptr_Task = (_func_int_varargs **)pIVar10;\n              pTVar22[1].list_next_ = (Task *)pSVar12;\n              pTVar22[1].name_.field_2._M_allocated_capacity = (size_type)pPVar23;\n              *(undefined8 *)((long)&pTVar22[1].name_.field_2 + 8) = 0;\n              *(undefined8 *)&pTVar22[1].should_run_soon_ = 0;\n              pTVar22[2]._vptr_Task = (_func_int_varargs **)pTVar7;\n              pTVar22[2].list_next_ = pTVar25;\n              Workqueue::queue_next(workqueue,pTVar22);\n              return (bool)cVar17;\n            }\n            pAVar13->sd_ = (Read_symbols_data *)0x0;\n            pAVar13->obj_ = &pPVar23->super_Object;\n            return (bool)cVar17;\n          }\n          if (!bVar16) {\n            pTVar25 = (Task *)operator_new(0x90);\n            pTVar7 = this->next_blocker_;\n            pTVar8 = this->this_blocker_;\n            pIVar4 = this->input_argument_;\n            pIVar14 = this->input_group_;\n            (pTVar25->name_).field_2._M_local_buf[0] = '\0';\n            pMVar9 = this->mapfile_;\n            pIVar10 = this->input_objects_;\n            (pTVar25->name_)._M_dataplus._M_p = (pointer)&(pTVar25->name_).field_2;\n            iVar19 = this->dirindex_;\n            pDVar5 = this->dirpath_;\n            *(Input_group **)&pTVar25[1].should_run_soon_ = pIVar14;\n            pLVar11 = this->layout_;\n            pSVar12 = this->symtab_;\n            pTVar25[2]._vptr_Task = (_func_int_varargs **)pIVar4;\n            pTVar25->list_next_ = (Task *)0x0;\n            (pTVar25->name_)._M_string_length = 0;\n            pTVar25->should_run_soon_ = false;\n            pTVar25->_vptr_Task = (_func_int_varargs **)&PTR__Read_script_003ad080;\n            pTVar25[1]._vptr_Task = (_func_int_varargs **)pSVar12;\n            pTVar25[1].list_next_ = (Task *)pLVar11;\n            pTVar25[1].name_._M_dataplus._M_p = (pointer)pDVar5;\n            *(int *)&pTVar25[1].name_._M_string_length = iVar19;\n            pTVar25[1].name_.field_2._M_allocated_capacity = (size_type)pIVar10;\n            *(Mapfile **)((long)&pTVar25[1].name_.field_2 + 8) = pMVar9;\n            pTVar25[2].list_next_ = (Task *)pIVar20;\n            pTVar25[2].name_._M_dataplus._M_p = &pTVar8->is_blocker_;\n            pTVar25[2].name_._M_string_length = (size_type)pTVar7;\n            Workqueue::queue_soon(workqueue,pTVar25);\n            return (bool)cVar17;\n          }\n          if (elf_object == (Object *)0x0) {\n            if (unconfigured == false) {\n              return false;\n            }\n            this_00 = &pIVar20->file_;\n            incompatible_warning(this->input_argument_,pIVar20);\n            File_read::release(this_00);\n            pRVar27 = this;\n            File_read::unlock(this_00,&this->super_Task);\n            File_read::~File_read(this_00,(int)pRVar27);\n            pcVar15 = (pIVar20->found_name_)._M_dataplus._M_p;\n            if (paVar1 != (anon_union_16_2_edb7204a_for_basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_9\n                           *)pcVar15) {\n              operator_delete(pcVar15);\n            }\n            operator_delete(pIVar20,0xe8);\n            this->dirindex_ = this->dirindex_ + 1;\n            bVar16 = do_read_symbols(this,workqueue);\n            return bVar16;\n          }\n          pRVar24 = (Read_symbols_data *)operator_new(0x80);\n          pRVar24->section_headers = (File_view *)0x0;\n          pRVar24->section_names = (File_view *)0x0;\n          pRVar24->symbols = (File_view *)0x0;\n          pRVar24->symbol_names = (File_view *)0x0;\n          pRVar24->versym = (File_view *)0x0;\n          pRVar24->verdef = (File_view *)0x0;\n          pRVar24->verneed = (File_view *)0x0;\n          (*elf_object->_vptr_Object[8])(elf_object,pRVar24);\n          File_read::unlock(&pIVar20->file_,&this->super_Task);\n          pAVar13 = this->member_;\n          if (pAVar13 == (Archive_member *)0x0) {\n            pTVar22 = (Task *)operator_new(0x80);\n            pIVar4 = this->input_argument_;\n            pLVar11 = this->layout_;\n            pSVar12 = this->symtab_;\n            pIVar10 = this->input_objects_;\n            *(Read_symbols_data **)&pTVar22[1].should_run_soon_ = pRVar24;\n            pTVar25 = (Task *)this->next_blocker_;\n            pTVar7 = this->this_blocker_;\n            (pTVar22->name_)._M_dataplus._M_p = (pointer)&(pTVar22->name_).field_2;\n            pTVar22[1].name_._M_dataplus._M_p = (pointer)pLVar11;\n            pTVar22[1].name_._M_string_length = (size_type)pIVar4;\n            pTVar22->list_next_ = (Task *)0x0;\n            (pTVar22->name_)._M_string_length = 0;\n            (pTVar22->name_).field_2._M_local_buf[0] = '\0';\n            pTVar22->should_run_soon_ = false;\n            pTVar22->_vptr_Task = (_func_int_varargs **)&PTR__Add_symbols_003acf00;\n            pTVar22[1]._vptr_Task = (_func_int_varargs **)pIVar10;\n            pTVar22[1].list_next_ = (Task *)pSVar12;\n            *(Object **)&pTVar22[1].name_.field_2 = elf_object;\n            *(undefined8 *)((long)&pTVar22[1].name_.field_2 + 8) = 0;\n            pTVar22[2]._vptr_Task = (_func_int_varargs **)pTVar7;\n            pTVar22[2].list_next_ = pTVar25;\n            Workqueue::queue_next(workqueue,pTVar22);\n            return bVar16;\n          }\n          pIVar4 = this->input_argument_;\n          pAVar13->sd_ = pRVar24;\n          pAVar13->obj_ = elf_object;\n          bVar16 = pIVar4->is_file_;\n          if (bVar16 != false) {\n            pAVar13->arg_serial_ = (pIVar4->file_).arg_serial_;\n            return bVar16;\n          }\n        }\n        else {\n          bVar16 = this->input_argument_->is_file_;\n          if (bVar16 != false) {\n            __s = (this->input_argument_->file_).name_._M_dataplus._M_p;\n            pcVar26 = (char *)0xffffffffffffffff;\n            _unconfigured = local_48;\n            if (__s != (char *)0x0) {\n              sVar21 = strlen(__s);\n              pcVar26 = __s + sVar21;\n            }\n            std::__cxx11::basic_string<char,_std::char_traits<char>,_std::allocator<char>_>::\n            _M_construct<char_const*>((string *)&unconfigured,__s,pcVar26);\n                    /* try { // try from 001f5e1a to 001f5e1e has its CatchHandler @ 001f63a4 */\n            this_02 = (Archive *)operator_new(0x178);\n                    /* try { // try from 001f5e42 to 001f5e46 has its CatchHandler @ 001f639c */\n            Archive::Archive(this_02,(string *)&unconfigured,pIVar20,lVar6 == Archive::armagt,\n                             this->dirpath_,&this->super_Task);\n            if (_unconfigured != local_48) {\n              operator_delete(_unconfigured);\n            }\n            Archive::setup(this_02);\n            File_read::unlock(&this_02->input_file_->file_,&this->super_Task);\n            pTVar22 = (Task *)operator_new(0x90);\n            pTVar7 = this->next_blocker_;\n            pTVar8 = this->this_blocker_;\n            pTVar25 = (Task *)this->input_group_;\n            pIVar4 = this->input_argument_;\n            (pTVar22->name_).field_2._M_local_buf[0] = '\0';\n            pMVar9 = this->mapfile_;\n            iVar19 = this->dirindex_;\n            (pTVar22->name_)._M_dataplus._M_p = (pointer)&(pTVar22->name_).field_2;\n            pDVar5 = this->dirpath_;\n            pIVar10 = this->input_objects_;\n            *(Input_argument **)&pTVar22[1].should_run_soon_ = pIVar4;\n            pLVar11 = this->layout_;\n            pSVar12 = this->symtab_;\n            pTVar22[2].list_next_ = pTVar25;\n            pTVar22->list_next_ = (Task *)0x0;\n            (pTVar22->name_)._M_string_length = 0;\n            pTVar22->should_run_soon_ = false;\n            pTVar22->_vptr_Task = (_func_int_varargs **)&PTR__Add_archive_symbols_003ae430;\n            pTVar22[1]._vptr_Task = (_func_int_varargs **)pSVar12;\n            pTVar22[1].list_next_ = (Task *)pLVar11;\n            pTVar22[1].name_._M_dataplus._M_p = (pointer)pIVar10;\n            pTVar22[1].name_._M_string_length = (size_type)pDVar5;\n            *(int *)&pTVar22[1].name_.field_2 = iVar19;\n            *(Mapfile **)((long)&pTVar22[1].name_.field_2 + 8) = pMVar9;\n            pTVar22[2]._vptr_Task = (_func_int_varargs **)this_02;\n            pTVar22[2].name_._M_dataplus._M_p = &pTVar8->is_blocker_;\n            pTVar22[2].name_._M_string_length = (size_type)pTVar7;\n            Workqueue::queue_next(workqueue,pTVar22);\n            return bVar16;\n          }\n        }\n                    /* WARNING: Subroutine does not return */\n        do_gold_unreachable("../../gold/options.h",0x828,"file");\n      }\n      pcVar15 = (pIVar20->file_).name_._M_dataplus._M_p;\n      pcVar26 = (char *)gettext("%s: file is empty");\n      gold_error(pcVar26,pcVar15);\n    }\n    return false;\n  }\n  bVar16 = do_lib_group(this,workqueue);\n  return bVar16;\n}" primitive_type (ms_call_modifier "__thiscall" __thiscall) (ERROR "gold::Read_symbols::" identifier : : identifier : :) (function_declarator "do_read_symbols(Read_symbols *this,Workqueue *workqueue)" identifier (parameter_list "(Read_symbols *this,Workqueue *workqueue)" ( (parameter_declaration "Read_symbols *this" type_identifier (pointer_declarator "*this" * identifier)) , (parameter_declaration "Workqueue *workqueue" type_identifier (pointer_declarator "*workqueue" * identifier)) ))) (compound_statement "{\n  anon_union_16_2_edb7204a_for_basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_9\n  *paVar1;\n  File_read *this_00;\n  _Rb_tree_header *p_Var2;\n  Saved_views *pSVar3;\n  Input_argument *pIVar4;\n  Dirsearch *pDVar5;\n  long filesize;\n  long lVar6;\n  char *__s;\n  Task_token *pTVar7;\n  Task_token *pTVar8;\n  Mapfile *pMVar9;\n  Input_objects *pIVar10;\n  Layout *pLVar11;\n  Symbol_table *pSVar12;\n  Plugin_manager *this_01;\n  Archive_member *pAVar13;\n  Input_group *pIVar14;\n  pointer pcVar15;\n  bool bVar16;\n  char cVar17;\n  bool bVar18;\n  int iVar19;\n  Input_file *pIVar20;\n  size_t sVar21;\n  Archive *this_02;\n  Task *pTVar22;\n  Pluginobj *pPVar23;\n  Read_symbols_data *pRVar24;\n  Task *pTVar25;\n  Object *elf_object;\n  char *pcVar26;\n  Read_symbols *pRVar27;\n  bool *punconfigured;\n  int read_size;\n  uchar *ehdr;\n  bool unconfigured;\n  char local_48 [24];\n  \n  pIVar4 = this->input_argument_;\n  if (pIVar4->is_file_ == false) {\n    if (pIVar4->lib_ == (Input_file_lib *)0x0) {\n      if (this->input_group_ != (Input_group *)0x0) {\n                    /* WARNING: Subroutine does not return */\n        do_gold_unreachable("../../gold/readsyms.cc",0x10b,"do_read_symbols");\n      }\n      do_group(this,workqueue);\n      return true;\n    }\n  }\n  else if (pIVar4->lib_ == (Input_file_lib *)0x0) {\n    pIVar20 = (Input_file *)operator_new(0xe8);\n    pDVar5 = this->dirpath_;\n    paVar1 = &(pIVar20->found_name_).field_2;\n    pIVar20->input_argument_ = &pIVar4->file_;\n    (pIVar20->found_name_)._M_dataplus._M_p = (pointer)paVar1;\n    (pIVar20->found_name_)._M_string_length = 0;\n    (pIVar20->found_name_).field_2._M_local_buf[0] = '\0';\n    (pIVar20->file_).name_._M_dataplus._M_p = (pointer)&(pIVar20->file_).name_.field_2;\n    p_Var2 = &(pIVar20->file_).views_._M_t._M_impl.super__Rb_tree_header;\n    (pIVar20->file_).views_._M_t._M_impl.super__Rb_tree_header._M_header._M_left =\n         &p_Var2->_M_header;\n    (pIVar20->file_).views_._M_t._M_impl.super__Rb_tree_header._M_header._M_right =\n         &p_Var2->_M_header;\n    pSVar3 = &(pIVar20->file_).saved_views_;\n    (pIVar20->file_).name_._M_string_length = 0;\n    (pIVar20->file_).name_.field_2._M_local_buf[0] = '\0';\n    (pIVar20->file_).descriptor_ = -1;\n    (pIVar20->file_).is_descriptor_opened_ = false;\n    (pIVar20->file_).object_count_ = 0;\n    (pIVar20->file_).size_ = 0;\n    (pIVar20->file_).token_.is_blocker_ = false;\n    (pIVar20->file_).token_.blockers_ = 0;\n    (pIVar20->file_).token_.writer_ = (Task *)0x0;\n    (pIVar20->file_).token_.waiting_.head_ = (Task *)0x0;\n    (pIVar20->file_).token_.waiting_.tail_ = (Task *)0x0;\n    (pIVar20->file_).views_._M_t._M_impl.super__Rb_tree_header._M_header._M_color = _S_red;\n    (pIVar20->file_).views_._M_t._M_impl.super__Rb_tree_header._M_header._M_parent = (_Base_ptr)0x0;\n    (pIVar20->file_).views_._M_t._M_impl.super__Rb_tree_header._M_node_count = 0;\n    (pIVar20->file_).saved_views_.\n    super__List_base<gold::File_read::View*,_std::allocator<gold::File_read::View*>_>._M_impl.\n    _M_node.super__List_node_base._M_prev = (_List_node_base *)pSVar3;\n    (pIVar20->file_).saved_views_.\n    super__List_base<gold::File_read::View*,_std::allocator<gold::File_read::View*>_>._M_impl.\n    _M_node.super__List_node_base._M_next = (_List_node_base *)pSVar3;\n    (pIVar20->file_).saved_views_.\n    super__List_base<gold::File_read::View*,_std::allocator<gold::File_read::View*>_>._M_impl.\n    _M_node._M_size = 0;\n    (pIVar20->file_).mapped_bytes_ = 0;\n    (pIVar20->file_).released_ = true;\n    (pIVar20->file_).whole_file_view_ = (View *)0x0;\n    pIVar20->is_in_sysroot_ = false;\n    pIVar20->format_ = FORMAT_NONE;\n    iVar19 = Input_file::open(pIVar20,(char *)pDVar5,(int)this,&this->dirindex_);\n    cVar17 = (char)iVar19;\n    if (cVar17 != '\0') {\n      filesize = (pIVar20->file_).size_;\n      if (filesize != 0) {\n        bVar16 = is_elf_object(pIVar20,0,&ehdr,&read_size);\n        if ((read_size < 8) ||\n           ((lVar6 = *(long *)ehdr, lVar6 != Archive::armagt && (Archive::armag != lVar6)))) {\n          elf_object = (Object *)0x0;\n          if (bVar16) {\n            _unconfigured = _unconfigured & 0xffffffffffffff00;\n            bVar18 = Input_file::will_search_for(pIVar20);\n            punconfigured = (bool *)0x0;\n            if (bVar18) {\n              punconfigured = &unconfigured;\n            }\n            elf_object = make_elf_object(&(pIVar20->file_).name_,pIVar20,0,ehdr,(long)read_size,\n                                         punconfigured);\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          this_01 = parameters->options_->plugins_;\n          if ((this_01 != (Plugin_manager *)0x0) &&\n             (pPVar23 = Plugin_manager::claim_file(this_01,pIVar20,0,filesize,elf_object),\n             pPVar23 != (Pluginobj *)0x0)) {\n            if (elf_object != (Object *)0x0) {\n              (*elf_object->_vptr_Object[1])(elf_object);\n            }\n            pIVar20 = (pPVar23->super_Object).input_file_;\n            if (pIVar20 != (Input_file *)0x0) {\n              File_read::unlock(&pIVar20->file_,&this->super_Task);\n            }\n            pAVar13 = this->member_;\n            if (pAVar13 == (Archive_member *)0x0) {\n              pTVar22 = (Task *)operator_new(0x80);\n              pIVar4 = this->input_argument_;\n              pLVar11 = this->layout_;\n              pSVar12 = this->symtab_;\n              pIVar10 = this->input_objects_;\n              pTVar22->_vptr_Task = (_func_int_varargs **)&PTR__Add_symbols_003acf00;\n              pTVar25 = (Task *)this->next_blocker_;\n              pTVar7 = this->this_blocker_;\n              pTVar22[1].name_._M_dataplus._M_p = (pointer)pLVar11;\n              pTVar22[1].name_._M_string_length = (size_type)pIVar4;\n              pTVar22->list_next_ = (Task *)0x0;\n              (pTVar22->name_)._M_dataplus._M_p = (pointer)&(pTVar22->name_).field_2;\n              (pTVar22->name_)._M_string_length = 0;\n              (pTVar22->name_).field_2._M_local_buf[0] = '\0';\n              pTVar22->should_run_soon_ = false;\n              pTVar22[1]._vptr_Task = (_func_int_varargs **)pIVar10;\n              pTVar22[1].list_next_ = (Task *)pSVar12;\n              pTVar22[1].name_.field_2._M_allocated_capacity = (size_type)pPVar23;\n              *(undefined8 *)((long)&pTVar22[1].name_.field_2 + 8) = 0;\n              *(undefined8 *)&pTVar22[1].should_run_soon_ = 0;\n              pTVar22[2]._vptr_Task = (_func_int_varargs **)pTVar7;\n              pTVar22[2].list_next_ = pTVar25;\n              Workqueue::queue_next(workqueue,pTVar22);\n              return (bool)cVar17;\n            }\n            pAVar13->sd_ = (Read_symbols_data *)0x0;\n            pAVar13->obj_ = &pPVar23->super_Object;\n            return (bool)cVar17;\n          }\n          if (!bVar16) {\n            pTVar25 = (Task *)operator_new(0x90);\n            pTVar7 = this->next_blocker_;\n            pTVar8 = this->this_blocker_;\n            pIVar4 = this->input_argument_;\n            pIVar14 = this->input_group_;\n            (pTVar25->name_).field_2._M_local_buf[0] = '\0';\n            pMVar9 = this->mapfile_;\n            pIVar10 = this->input_objects_;\n            (pTVar25->name_)._M_dataplus._M_p = (pointer)&(pTVar25->name_).field_2;\n            iVar19 = this->dirindex_;\n            pDVar5 = this->dirpath_;\n            *(Input_group **)&pTVar25[1].should_run_soon_ = pIVar14;\n            pLVar11 = this->layout_;\n            pSVar12 = this->symtab_;\n            pTVar25[2]._vptr_Task = (_func_int_varargs **)pIVar4;\n            pTVar25->list_next_ = (Task *)0x0;\n            (pTVar25->name_)._M_string_length = 0;\n            pTVar25->should_run_soon_ = false;\n            pTVar25->_vptr_Task = (_func_int_varargs **)&PTR__Read_script_003ad080;\n            pTVar25[1]._vptr_Task = (_func_int_varargs **)pSVar12;\n            pTVar25[1].list_next_ = (Task *)pLVar11;\n            pTVar25[1].name_._M_dataplus._M_p = (pointer)pDVar5;\n            *(int *)&pTVar25[1].name_._M_string_length = iVar19;\n            pTVar25[1].name_.field_2._M_allocated_capacity = (size_type)pIVar10;\n            *(Mapfile **)((long)&pTVar25[1].name_.field_2 + 8) = pMVar9;\n            pTVar25[2].list_next_ = (Task *)pIVar20;\n            pTVar25[2].name_._M_dataplus._M_p = &pTVar8->is_blocker_;\n            pTVar25[2].name_._M_string_length = (size_type)pTVar7;\n            Workqueue::queue_soon(workqueue,pTVar25);\n            return (bool)cVar17;\n          }\n          if (elf_object == (Object *)0x0) {\n            if (unconfigured == false) {\n              return false;\n            }\n            this_00 = &pIVar20->file_;\n            incompatible_warning(this->input_argument_,pIVar20);\n            File_read::release(this_00);\n            pRVar27 = this;\n            File_read::unlock(this_00,&this->super_Task);\n            File_read::~File_read(this_00,(int)pRVar27);\n            pcVar15 = (pIVar20->found_name_)._M_dataplus._M_p;\n            if (paVar1 != (anon_union_16_2_edb7204a_for_basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_9\n                           *)pcVar15) {\n              operator_delete(pcVar15);\n            }\n            operator_delete(pIVar20,0xe8);\n            this->dirindex_ = this->dirindex_ + 1;\n            bVar16 = do_read_symbols(this,workqueue);\n            return bVar16;\n          }\n          pRVar24 = (Read_symbols_data *)operator_new(0x80);\n          pRVar24->section_headers = (File_view *)0x0;\n          pRVar24->section_names = (File_view *)0x0;\n          pRVar24->symbols = (File_view *)0x0;\n          pRVar24->symbol_names = (File_view *)0x0;\n          pRVar24->versym = (File_view *)0x0;\n          pRVar24->verdef = (File_view *)0x0;\n          pRVar24->verneed = (File_view *)0x0;\n          (*elf_object->_vptr_Object[8])(elf_object,pRVar24);\n          File_read::unlock(&pIVar20->file_,&this->super_Task);\n          pAVar13 = this->member_;\n          if (pAVar13 == (Archive_member *)0x0) {\n            pTVar22 = (Task *)operator_new(0x80);\n            pIVar4 = this->input_argument_;\n            pLVar11 = this->layout_;\n            pSVar12 = this->symtab_;\n            pIVar10 = this->input_objects_;\n            *(Read_symbols_data **)&pTVar22[1].should_run_soon_ = pRVar24;\n            pTVar25 = (Task *)this->next_blocker_;\n            pTVar7 = this->this_blocker_;\n            (pTVar22->name_)._M_dataplus._M_p = (pointer)&(pTVar22->name_).field_2;\n            pTVar22[1].name_._M_dataplus._M_p = (pointer)pLVar11;\n            pTVar22[1].name_._M_string_length = (size_type)pIVar4;\n            pTVar22->list_next_ = (Task *)0x0;\n            (pTVar22->name_)._M_string_length = 0;\n            (pTVar22->name_).field_2._M_local_buf[0] = '\0';\n            pTVar22->should_run_soon_ = false;\n            pTVar22->_vptr_Task = (_func_int_varargs **)&PTR__Add_symbols_003acf00;\n            pTVar22[1]._vptr_Task = (_func_int_varargs **)pIVar10;\n            pTVar22[1].list_next_ = (Task *)pSVar12;\n            *(Object **)&pTVar22[1].name_.field_2 = elf_object;\n            *(undefined8 *)((long)&pTVar22[1].name_.field_2 + 8) = 0;\n            pTVar22[2]._vptr_Task = (_func_int_varargs **)pTVar7;\n            pTVar22[2].list_next_ = pTVar25;\n            Workqueue::queue_next(workqueue,pTVar22);\n            return bVar16;\n          }\n          pIVar4 = this->input_argument_;\n          pAVar13->sd_ = pRVar24;\n          pAVar13->obj_ = elf_object;\n          bVar16 = pIVar4->is_file_;\n          if (bVar16 != false) {\n            pAVar13->arg_serial_ = (pIVar4->file_).arg_serial_;\n            return bVar16;\n          }\n        }\n        else {\n          bVar16 = this->input_argument_->is_file_;\n          if (bVar16 != false) {\n            __s = (this->input_argument_->file_).name_._M_dataplus._M_p;\n            pcVar26 = (char *)0xffffffffffffffff;\n            _unconfigured = local_48;\n            if (__s != (char *)0x0) {\n              sVar21 = strlen(__s);\n              pcVar26 = __s + sVar21;\n            }\n            std::__cxx11::basic_string<char,_std::char_traits<char>,_std::allocator<char>_>::\n            _M_construct<char_const*>((string *)&unconfigured,__s,pcVar26);\n                    /* try { // try from 001f5e1a to 001f5e1e has its CatchHandler @ 001f63a4 */\n            this_02 = (Archive *)operator_new(0x178);\n                    /* try { // try from 001f5e42 to 001f5e46 has its CatchHandler @ 001f639c */\n            Archive::Archive(this_02,(string *)&unconfigured,pIVar20,lVar6 == Archive::armagt,\n                             this->dirpath_,&this->super_Task);\n            if (_unconfigured != local_48) {\n              operator_delete(_unconfigured);\n            }\n            Archive::setup(this_02);\n            File_read::unlock(&this_02->input_file_->file_,&this->super_Task);\n            pTVar22 = (Task *)operator_new(0x90);\n            pTVar7 = this->next_blocker_;\n            pTVar8 = this->this_blocker_;\n            pTVar25 = (Task *)this->input_group_;\n            pIVar4 = this->input_argument_;\n            (pTVar22->name_).field_2._M_local_buf[0] = '\0';\n            pMVar9 = this->mapfile_;\n            iVar19 = this->dirindex_;\n            (pTVar22->name_)._M_dataplus._M_p = (pointer)&(pTVar22->name_).field_2;\n            pDVar5 = this->dirpath_;\n            pIVar10 = this->input_objects_;\n            *(Input_argument **)&pTVar22[1].should_run_soon_ = pIVar4;\n            pLVar11 = this->layout_;\n            pSVar12 = this->symtab_;\n            pTVar22[2].list_next_ = pTVar25;\n            pTVar22->list_next_ = (Task *)0x0;\n            (pTVar22->name_)._M_string_length = 0;\n            pTVar22->should_run_soon_ = false;\n            pTVar22->_vptr_Task = (_func_int_varargs **)&PTR__Add_archive_symbols_003ae430;\n            pTVar22[1]._vptr_Task = (_func_int_varargs **)pSVar12;\n            pTVar22[1].list_next_ = (Task *)pLVar11;\n            pTVar22[1].name_._M_dataplus._M_p = (pointer)pIVar10;\n            pTVar22[1].name_._M_string_length = (size_type)pDVar5;\n            *(int *)&pTVar22[1].name_.field_2 = iVar19;\n            *(Mapfile **)((long)&pTVar22[1].name_.field_2 + 8) = pMVar9;\n            pTVar22[2]._vptr_Task = (_func_int_varargs **)this_02;\n            pTVar22[2].name_._M_dataplus._M_p = &pTVar8->is_blocker_;\n            pTVar22[2].name_._M_string_length = (size_type)pTVar7;\n            Workqueue::queue_next(workqueue,pTVar22);\n            return bVar16;\n          }\n        }\n                    /* WARNING: Subroutine does not return */\n        do_gold_unreachable("../../gold/options.h",0x828,"file");\n      }\n      pcVar15 = (pIVar20->file_).name_._M_dataplus._M_p;\n      pcVar26 = (char *)gettext("%s: file is empty");\n      gold_error(pcVar26,pcVar15);\n    }\n    return false;\n  }\n  bVar16 = do_lib_group(this,workqueue);\n  return bVar16;\n}" { (ERROR "anon_union_16_2_edb7204a_for_basic_string<char,_std::char_traits<char>,_std::" (comma_expression "anon_union_16_2_edb7204a_for_basic_string<char,_std" (binary_expression "anon_union_16_2_edb7204a_for_basic_string<char" identifier < identifier) , identifier) : : (binary_expression "char_traits<char>,_std" (binary_expression "char_traits<char" identifier < identifier) > (ERROR "," ,) identifier) : :) (expression_statement "allocator<char>_>_9\n  *paVar1;" (binary_expression "allocator<char>_>_9\n  *paVar1" (binary_expression "allocator<char>_" (binary_expression "allocator<char" identifier < identifier) > identifier) > (binary_expression "_9\n  *paVar1" identifier * identifier)) ;) (declaration "File_read *this_00;" type_identifier (pointer_declarator "*this_00" * identifier) ;) (declaration "_Rb_tree_header *p_Var2;" type_identifier (pointer_declarator "*p_Var2" * identifier) ;) (declaration "Saved_views *pSVar3;" type_identifier (pointer_declarator "*pSVar3" * identifier) ;) (declaration "Input_argument *pIVar4;" type_identifier (pointer_declarator "*pIVar4" * identifier) ;) (declaration "Dirsearch *pDVar5;" type_identifier (pointer_declarator "*pDVar5" * identifier) ;) (declaration "long filesize;" (sized_type_specifier "long" long) identifier ;) (declaration "long lVar6;" (sized_type_specifier "long" long) identifier ;) (declaration "char *__s;" primitive_type (pointer_declarator "*__s" * identifier) ;) (declaration "Task_token *pTVar7;" type_identifier (pointer_declarator "*pTVar7" * identifier) ;) (declaration "Task_token *pTVar8;" type_identifier (pointer_declarator "*pTVar8" * identifier) ;) (declaration "Mapfile *pMVar9;" type_identifier (pointer_declarator "*pMVar9" * identifier) ;) (declaration "Input_objects *pIVar10;" type_identifier (pointer_declarator "*pIVar10" * identifier) ;) (declaration "Layout *pLVar11;" type_identifier (pointer_declarator "*pLVar11" * identifier) ;) (declaration "Symbol_table *pSVar12;" type_identifier (pointer_declarator "*pSVar12" * identifier) ;) (declaration "Plugin_manager *this_01;" type_identifier (pointer_declarator "*this_01" * identifier) ;) (declaration "Archive_member *pAVar13;" type_identifier (pointer_declarator "*pAVar13" * identifier) ;) (declaration "Input_group *pIVar14;" type_identifier (pointer_declarator "*pIVar14" * identifier) ;) (declaration "pointer pcVar15;" type_identifier identifier ;) (declaration "bool bVar16;" primitive_type identifier ;) (declaration "char cVar17;" primitive_type identifier ;) (declaration "bool bVar18;" primitive_type identifier ;) (declaration "int iVar19;" primitive_type identifier ;) (declaration "Input_file *pIVar20;" type_identifier (pointer_declarator "*pIVar20" * identifier) ;) (declaration "size_t sVar21;" primitive_type identifier ;) (declaration "Archive *this_02;" type_identifier (pointer_declarator "*this_02" * identifier) ;) (declaration "Task *pTVar22;" type_identifier (pointer_declarator "*pTVar22" * identifier) ;) (declaration "Pluginobj *pPVar23;" type_identifier (pointer_declarator "*pPVar23" * identifier) ;) (declaration "Read_symbols_data *pRVar24;" type_identifier (pointer_declarator "*pRVar24" * identifier) ;) (declaration "Task *pTVar25;" type_identifier (pointer_declarator "*pTVar25" * identifier) ;) (declaration "Object *elf_object;" type_identifier (pointer_declarator "*elf_object" * identifier) ;) (declaration "char *pcVar26;" primitive_type (pointer_declarator "*pcVar26" * identifier) ;) (declaration "Read_symbols *pRVar27;" type_identifier (pointer_declarator "*pRVar27" * identifier) ;) (declaration "bool *punconfigured;" primitive_type (pointer_declarator "*punconfigured" * identifier) ;) (declaration "int read_size;" primitive_type identifier ;) (declaration "uchar *ehdr;" type_identifier (pointer_declarator "*ehdr" * identifier) ;) (declaration "bool unconfigured;" primitive_type identifier ;) (declaration "char local_48 [24];" primitive_type (array_declarator "local_48 [24]" identifier [ number_literal ]) ;) (expression_statement "pIVar4 = this->input_argument_;" (assignment_expression "pIVar4 = this->input_argument_" identifier = (field_expression "this->input_argument_" identifier -> field_identifier)) ;) (if_statement "if (pIVar4->is_file_ == false) {\n    if (pIVar4->lib_ == (Input_file_lib *)0x0) {\n      if (this->input_group_ != (Input_group *)0x0) {\n                    /* WARNING: Subroutine does not return */\n        do_gold_unreachable("../../gold/readsyms.cc",0x10b,"do_read_symbols");\n      }\n      do_group(this,workqueue);\n      return true;\n    }\n  }\n  else if (pIVar4->lib_ == (Input_file_lib *)0x0) {\n    pIVar20 = (Input_file *)operator_new(0xe8);\n    pDVar5 = this->dirpath_;\n    paVar1 = &(pIVar20->found_name_).field_2;\n    pIVar20->input_argument_ = &pIVar4->file_;\n    (pIVar20->found_name_)._M_dataplus._M_p = (pointer)paVar1;\n    (pIVar20->found_name_)._M_string_length = 0;\n    (pIVar20->found_name_).field_2._M_local_buf[0] = '\0';\n    (pIVar20->file_).name_._M_dataplus._M_p = (pointer)&(pIVar20->file_).name_.field_2;\n    p_Var2 = &(pIVar20->file_).views_._M_t._M_impl.super__Rb_tree_header;\n    (pIVar20->file_).views_._M_t._M_impl.super__Rb_tree_header._M_header._M_left =\n         &p_Var2->_M_header;\n    (pIVar20->file_).views_._M_t._M_impl.super__Rb_tree_header._M_header._M_right =\n         &p_Var2->_M_header;\n    pSVar3 = &(pIVar20->file_).saved_views_;\n    (pIVar20->file_).name_._M_string_length = 0;\n    (pIVar20->file_).name_.field_2._M_local_buf[0] = '\0';\n    (pIVar20->file_).descriptor_ = -1;\n    (pIVar20->file_).is_descriptor_opened_ = false;\n    (pIVar20->file_).object_count_ = 0;\n    (pIVar20->file_).size_ = 0;\n    (pIVar20->file_).token_.is_blocker_ = false;\n    (pIVar20->file_).token_.blockers_ = 0;\n    (pIVar20->file_).token_.writer_ = (Task *)0x0;\n    (pIVar20->file_).token_.waiting_.head_ = (Task *)0x0;\n    (pIVar20->file_).token_.waiting_.tail_ = (Task *)0x0;\n    (pIVar20->file_).views_._M_t._M_impl.super__Rb_tree_header._M_header._M_color = _S_red;\n    (pIVar20->file_).views_._M_t._M_impl.super__Rb_tree_header._M_header._M_parent = (_Base_ptr)0x0;\n    (pIVar20->file_).views_._M_t._M_impl.super__Rb_tree_header._M_node_count = 0;\n    (pIVar20->file_).saved_views_.\n    super__List_base<gold::File_read::View*,_std::allocator<gold::File_read::View*>_>._M_impl.\n    _M_node.super__List_node_base._M_prev = (_List_node_base *)pSVar3;\n    (pIVar20->file_).saved_views_.\n    super__List_base<gold::File_read::View*,_std::allocator<gold::File_read::View*>_>._M_impl.\n    _M_node.super__List_node_base._M_next = (_List_node_base *)pSVar3;\n    (pIVar20->file_).saved_views_.\n    super__List_base<gold::File_read::View*,_std::allocator<gold::File_read::View*>_>._M_impl.\n    _M_node._M_size = 0;\n    (pIVar20->file_).mapped_bytes_ = 0;\n    (pIVar20->file_).released_ = true;\n    (pIVar20->file_).whole_file_view_ = (View *)0x0;\n    pIVar20->is_in_sysroot_ = false;\n    pIVar20->format_ = FORMAT_NONE;\n    iVar19 = Input_file::open(pIVar20,(char *)pDVar5,(int)this,&this->dirindex_);\n    cVar17 = (char)iVar19;\n    if (cVar17 != '\0') {\n      filesize = (pIVar20->file_).size_;\n      if (filesize != 0) {\n        bVar16 = is_elf_object(pIVar20,0,&ehdr,&read_size);\n        if ((read_size < 8) ||\n           ((lVar6 = *(long *)ehdr, lVar6 != Archive::armagt && (Archive::armag != lVar6)))) {\n          elf_object = (Object *)0x0;\n          if (bVar16) {\n            _unconfigured = _unconfigured & 0xffffffffffffff00;\n            bVar18 = Input_file::will_search_for(pIVar20);\n            punconfigured = (bool *)0x0;\n            if (bVar18) {\n              punconfigured = &unconfigured;\n            }\n            elf_object = make_elf_object(&(pIVar20->file_).name_,pIVar20,0,ehdr,(long)read_size,\n                                         punconfigured);\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          this_01 = parameters->options_->plugins_;\n          if ((this_01 != (Plugin_manager *)0x0) &&\n             (pPVar23 = Plugin_manager::claim_file(this_01,pIVar20,0,filesize,elf_object),\n             pPVar23 != (Pluginobj *)0x0)) {\n            if (elf_object != (Object *)0x0) {\n              (*elf_object->_vptr_Object[1])(elf_object);\n            }\n            pIVar20 = (pPVar23->super_Object).input_file_;\n            if (pIVar20 != (Input_file *)0x0) {\n              File_read::unlock(&pIVar20->file_,&this->super_Task);\n            }\n            pAVar13 = this->member_;\n            if (pAVar13 == (Archive_member *)0x0) {\n              pTVar22 = (Task *)operator_new(0x80);\n              pIVar4 = this->input_argument_;\n              pLVar11 = this->layout_;\n              pSVar12 = this->symtab_;\n              pIVar10 = this->input_objects_;\n              pTVar22->_vptr_Task = (_func_int_varargs **)&PTR__Add_symbols_003acf00;\n              pTVar25 = (Task *)this->next_blocker_;\n              pTVar7 = this->this_blocker_;\n              pTVar22[1].name_._M_dataplus._M_p = (pointer)pLVar11;\n              pTVar22[1].name_._M_string_length = (size_type)pIVar4;\n              pTVar22->list_next_ = (Task *)0x0;\n              (pTVar22->name_)._M_dataplus._M_p = (pointer)&(pTVar22->name_).field_2;\n              (pTVar22->name_)._M_string_length = 0;\n              (pTVar22->name_).field_2._M_local_buf[0] = '\0';\n              pTVar22->should_run_soon_ = false;\n              pTVar22[1]._vptr_Task = (_func_int_varargs **)pIVar10;\n              pTVar22[1].list_next_ = (Task *)pSVar12;\n              pTVar22[1].name_.field_2._M_allocated_capacity = (size_type)pPVar23;\n              *(undefined8 *)((long)&pTVar22[1].name_.field_2 + 8) = 0;\n              *(undefined8 *)&pTVar22[1].should_run_soon_ = 0;\n              pTVar22[2]._vptr_Task = (_func_int_varargs **)pTVar7;\n              pTVar22[2].list_next_ = pTVar25;\n              Workqueue::queue_next(workqueue,pTVar22);\n              return (bool)cVar17;\n            }\n            pAVar13->sd_ = (Read_symbols_data *)0x0;\n            pAVar13->obj_ = &pPVar23->super_Object;\n            return (bool)cVar17;\n          }\n          if (!bVar16) {\n            pTVar25 = (Task *)operator_new(0x90);\n            pTVar7 = this->next_blocker_;\n            pTVar8 = this->this_blocker_;\n            pIVar4 = this->input_argument_;\n            pIVar14 = this->input_group_;\n            (pTVar25->name_).field_2._M_local_buf[0] = '\0';\n            pMVar9 = this->mapfile_;\n            pIVar10 = this->input_objects_;\n            (pTVar25->name_)._M_dataplus._M_p = (pointer)&(pTVar25->name_).field_2;\n            iVar19 = this->dirindex_;\n            pDVar5 = this->dirpath_;\n            *(Input_group **)&pTVar25[1].should_run_soon_ = pIVar14;\n            pLVar11 = this->layout_;\n            pSVar12 = this->symtab_;\n            pTVar25[2]._vptr_Task = (_func_int_varargs **)pIVar4;\n            pTVar25->list_next_ = (Task *)0x0;\n            (pTVar25->name_)._M_string_length = 0;\n            pTVar25->should_run_soon_ = false;\n            pTVar25->_vptr_Task = (_func_int_varargs **)&PTR__Read_script_003ad080;\n            pTVar25[1]._vptr_Task = (_func_int_varargs **)pSVar12;\n            pTVar25[1].list_next_ = (Task *)pLVar11;\n            pTVar25[1].name_._M_dataplus._M_p = (pointer)pDVar5;\n            *(int *)&pTVar25[1].name_._M_string_length = iVar19;\n            pTVar25[1].name_.field_2._M_allocated_capacity = (size_type)pIVar10;\n            *(Mapfile **)((long)&pTVar25[1].name_.field_2 + 8) = pMVar9;\n            pTVar25[2].list_next_ = (Task *)pIVar20;\n            pTVar25[2].name_._M_dataplus._M_p = &pTVar8->is_blocker_;\n            pTVar25[2].name_._M_string_length = (size_type)pTVar7;\n            Workqueue::queue_soon(workqueue,pTVar25);\n            return (bool)cVar17;\n          }\n          if (elf_object == (Object *)0x0) {\n            if (unconfigured == false) {\n              return false;\n            }\n            this_00 = &pIVar20->file_;\n            incompatible_warning(this->input_argument_,pIVar20);\n            File_read::release(this_00);\n            pRVar27 = this;\n            File_read::unlock(this_00,&this->super_Task);\n            File_read::~File_read(this_00,(int)pRVar27);\n            pcVar15 = (pIVar20->found_name_)._M_dataplus._M_p;\n            if (paVar1 != (anon_union_16_2_edb7204a_for_basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_9\n                           *)pcVar15) {\n              operator_delete(pcVar15);\n            }\n            operator_delete(pIVar20,0xe8);\n            this->dirindex_ = this->dirindex_ + 1;\n            bVar16 = do_read_symbols(this,workqueue);\n            return bVar16;\n          }\n          pRVar24 = (Read_symbols_data *)operator_new(0x80);\n          pRVar24->section_headers = (File_view *)0x0;\n          pRVar24->section_names = (File_view *)0x0;\n          pRVar24->symbols = (File_view *)0x0;\n          pRVar24->symbol_names = (File_view *)0x0;\n          pRVar24->versym = (File_view *)0x0;\n          pRVar24->verdef = (File_view *)0x0;\n          pRVar24->verneed = (File_view *)0x0;\n          (*elf_object->_vptr_Object[8])(elf_object,pRVar24);\n          File_read::unlock(&pIVar20->file_,&this->super_Task);\n          pAVar13 = this->member_;\n          if (pAVar13 == (Archive_member *)0x0) {\n            pTVar22 = (Task *)operator_new(0x80);\n            pIVar4 = this->input_argument_;\n            pLVar11 = this->layout_;\n            pSVar12 = this->symtab_;\n            pIVar10 = this->input_objects_;\n            *(Read_symbols_data **)&pTVar22[1].should_run_soon_ = pRVar24;\n            pTVar25 = (Task *)this->next_blocker_;\n            pTVar7 = this->this_blocker_;\n            (pTVar22->name_)._M_dataplus._M_p = (pointer)&(pTVar22->name_).field_2;\n            pTVar22[1].name_._M_dataplus._M_p = (pointer)pLVar11;\n            pTVar22[1].name_._M_string_length = (size_type)pIVar4;\n            pTVar22->list_next_ = (Task *)0x0;\n            (pTVar22->name_)._M_string_length = 0;\n            (pTVar22->name_).field_2._M_local_buf[0] = '\0';\n            pTVar22->should_run_soon_ = false;\n            pTVar22->_vptr_Task = (_func_int_varargs **)&PTR__Add_symbols_003acf00;\n            pTVar22[1]._vptr_Task = (_func_int_varargs **)pIVar10;\n            pTVar22[1].list_next_ = (Task *)pSVar12;\n            *(Object **)&pTVar22[1].name_.field_2 = elf_object;\n            *(undefined8 *)((long)&pTVar22[1].name_.field_2 + 8) = 0;\n            pTVar22[2]._vptr_Task = (_func_int_varargs **)pTVar7;\n            pTVar22[2].list_next_ = pTVar25;\n            Workqueue::queue_next(workqueue,pTVar22);\n            return bVar16;\n          }\n          pIVar4 = this->input_argument_;\n          pAVar13->sd_ = pRVar24;\n          pAVar13->obj_ = elf_object;\n          bVar16 = pIVar4->is_file_;\n          if (bVar16 != false) {\n            pAVar13->arg_serial_ = (pIVar4->file_).arg_serial_;\n            return bVar16;\n          }\n        }\n        else {\n          bVar16 = this->input_argument_->is_file_;\n          if (bVar16 != false) {\n            __s = (this->input_argument_->file_).name_._M_dataplus._M_p;\n            pcVar26 = (char *)0xffffffffffffffff;\n            _unconfigured = local_48;\n            if (__s != (char *)0x0) {\n              sVar21 = strlen(__s);\n              pcVar26 = __s + sVar21;\n            }\n            std::__cxx11::basic_string<char,_std::char_traits<char>,_std::allocator<char>_>::\n            _M_construct<char_const*>((string *)&unconfigured,__s,pcVar26);\n                    /* try { // try from 001f5e1a to 001f5e1e has its CatchHandler @ 001f63a4 */\n            this_02 = (Archive *)operator_new(0x178);\n                    /* try { // try from 001f5e42 to 001f5e46 has its CatchHandler @ 001f639c */\n            Archive::Archive(this_02,(string *)&unconfigured,pIVar20,lVar6 == Archive::armagt,\n                             this->dirpath_,&this->super_Task);\n            if (_unconfigured != local_48) {\n              operator_delete(_unconfigured);\n            }\n            Archive::setup(this_02);\n            File_read::unlock(&this_02->input_file_->file_,&this->super_Task);\n            pTVar22 = (Task *)operator_new(0x90);\n            pTVar7 = this->next_blocker_;\n            pTVar8 = this->this_blocker_;\n            pTVar25 = (Task *)this->input_group_;\n            pIVar4 = this->input_argument_;\n            (pTVar22->name_).field_2._M_local_buf[0] = '\0';\n            pMVar9 = this->mapfile_;\n            iVar19 = this->dirindex_;\n            (pTVar22->name_)._M_dataplus._M_p = (pointer)&(pTVar22->name_).field_2;\n            pDVar5 = this->dirpath_;\n            pIVar10 = this->input_objects_;\n            *(Input_argument **)&pTVar22[1].should_run_soon_ = pIVar4;\n            pLVar11 = this->layout_;\n            pSVar12 = this->symtab_;\n            pTVar22[2].list_next_ = pTVar25;\n            pTVar22->list_next_ = (Task *)0x0;\n            (pTVar22->name_)._M_string_length = 0;\n            pTVar22->should_run_soon_ = false;\n            pTVar22->_vptr_Task = (_func_int_varargs **)&PTR__Add_archive_symbols_003ae430;\n            pTVar22[1]._vptr_Task = (_func_int_varargs **)pSVar12;\n            pTVar22[1].list_next_ = (Task *)pLVar11;\n            pTVar22[1].name_._M_dataplus._M_p = (pointer)pIVar10;\n            pTVar22[1].name_._M_string_length = (size_type)pDVar5;\n            *(int *)&pTVar22[1].name_.field_2 = iVar19;\n            *(Mapfile **)((long)&pTVar22[1].name_.field_2 + 8) = pMVar9;\n            pTVar22[2]._vptr_Task = (_func_int_varargs **)this_02;\n            pTVar22[2].name_._M_dataplus._M_p = &pTVar8->is_blocker_;\n            pTVar22[2].name_._M_string_length = (size_type)pTVar7;\n            Workqueue::queue_next(workqueue,pTVar22);\n            return bVar16;\n          }\n        }\n                    /* WARNING: Subroutine does not return */\n        do_gold_unreachable("../../gold/options.h",0x828,"file");\n      }\n      pcVar15 = (pIVar20->file_).name_._M_dataplus._M_p;\n      pcVar26 = (char *)gettext("%s: file is empty");\n      gold_error(pcVar26,pcVar15);\n    }\n    return false;\n  }" if (parenthesized_expression "(pIVar4->is_file_ == false)" ( (binary_expression "pIVar4->is_file_ == false" (field_expression "pIVar4->is_file_" identifier -> field_identifier) == false) )) (compound_statement "{\n    if (pIVar4->lib_ == (Input_file_lib *)0x0) {\n      if (this->input_group_ != (Input_group *)0x0) {\n                    /* WARNING: Subroutine does not return */\n        do_gold_unreachable("../../gold/readsyms.cc",0x10b,"do_read_symbols");\n      }\n      do_group(this,workqueue);\n      return true;\n    }\n  }" { (if_statement "if (pIVar4->lib_ == (Input_file_lib *)0x0) {\n      if (this->input_group_ != (Input_group *)0x0) {\n                    /* WARNING: Subroutine does not return */\n        do_gold_unreachable("../../gold/readsyms.cc",0x10b,"do_read_symbols");\n      }\n      do_group(this,workqueue);\n      return true;\n    }" if (parenthesized_expression "(pIVar4->lib_ == (Input_file_lib *)0x0)" ( (binary_expression "pIVar4->lib_ == (Input_file_lib *)0x0" (field_expression "pIVar4->lib_" identifier -> field_identifier) == (cast_expression "(Input_file_lib *)0x0" ( (type_descriptor "Input_file_lib *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n      if (this->input_group_ != (Input_group *)0x0) {\n                    /* WARNING: Subroutine does not return */\n        do_gold_unreachable("../../gold/readsyms.cc",0x10b,"do_read_symbols");\n      }\n      do_group(this,workqueue);\n      return true;\n    }" { (if_statement "if (this->input_group_ != (Input_group *)0x0) {\n                    /* WARNING: Subroutine does not return */\n        do_gold_unreachable("../../gold/readsyms.cc",0x10b,"do_read_symbols");\n      }" if (parenthesized_expression "(this->input_group_ != (Input_group *)0x0)" ( (binary_expression "this->input_group_ != (Input_group *)0x0" (field_expression "this->input_group_" identifier -> field_identifier) != (cast_expression "(Input_group *)0x0" ( (type_descriptor "Input_group *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n                    /* WARNING: Subroutine does not return */\n        do_gold_unreachable("../../gold/readsyms.cc",0x10b,"do_read_symbols");\n      }" { comment (expression_statement "do_gold_unreachable("../../gold/readsyms.cc",0x10b,"do_read_symbols");" (call_expression "do_gold_unreachable("../../gold/readsyms.cc",0x10b,"do_read_symbols")" identifier (argument_list "("../../gold/readsyms.cc",0x10b,"do_read_symbols")" ( (string_literal ""../../gold/readsyms.cc"" " string_content ") , number_literal , (string_literal ""do_read_symbols"" " string_content ") ))) ;) })) (expression_statement "do_group(this,workqueue);" (call_expression "do_group(this,workqueue)" identifier (argument_list "(this,workqueue)" ( identifier , identifier ))) ;) (return_statement "return true;" return true ;) })) }) (else_clause "else if (pIVar4->lib_ == (Input_file_lib *)0x0) {\n    pIVar20 = (Input_file *)operator_new(0xe8);\n    pDVar5 = this->dirpath_;\n    paVar1 = &(pIVar20->found_name_).field_2;\n    pIVar20->input_argument_ = &pIVar4->file_;\n    (pIVar20->found_name_)._M_dataplus._M_p = (pointer)paVar1;\n    (pIVar20->found_name_)._M_string_length = 0;\n    (pIVar20->found_name_).field_2._M_local_buf[0] = '\0';\n    (pIVar20->file_).name_._M_dataplus._M_p = (pointer)&(pIVar20->file_).name_.field_2;\n    p_Var2 = &(pIVar20->file_).views_._M_t._M_impl.super__Rb_tree_header;\n    (pIVar20->file_).views_._M_t._M_impl.super__Rb_tree_header._M_header._M_left =\n         &p_Var2->_M_header;\n    (pIVar20->file_).views_._M_t._M_impl.super__Rb_tree_header._M_header._M_right =\n         &p_Var2->_M_header;\n    pSVar3 = &(pIVar20->file_).saved_views_;\n    (pIVar20->file_).name_._M_string_length = 0;\n    (pIVar20->file_).name_.field_2._M_local_buf[0] = '\0';\n    (pIVar20->file_).descriptor_ = -1;\n    (pIVar20->file_).is_descriptor_opened_ = false;\n    (pIVar20->file_).object_count_ = 0;\n    (pIVar20->file_).size_ = 0;\n    (pIVar20->file_).token_.is_blocker_ = false;\n    (pIVar20->file_).token_.blockers_ = 0;\n    (pIVar20->file_).token_.writer_ = (Task *)0x0;\n    (pIVar20->file_).token_.waiting_.head_ = (Task *)0x0;\n    (pIVar20->file_).token_.waiting_.tail_ = (Task *)0x0;\n    (pIVar20->file_).views_._M_t._M_impl.super__Rb_tree_header._M_header._M_color = _S_red;\n    (pIVar20->file_).views_._M_t._M_impl.super__Rb_tree_header._M_header._M_parent = (_Base_ptr)0x0;\n    (pIVar20->file_).views_._M_t._M_impl.super__Rb_tree_header._M_node_count = 0;\n    (pIVar20->file_).saved_views_.\n    super__List_base<gold::File_read::View*,_std::allocator<gold::File_read::View*>_>._M_impl.\n    _M_node.super__List_node_base._M_prev = (_List_node_base *)pSVar3;\n    (pIVar20->file_).saved_views_.\n    super__List_base<gold::File_read::View*,_std::allocator<gold::File_read::View*>_>._M_impl.\n    _M_node.super__List_node_base._M_next = (_List_node_base *)pSVar3;\n    (pIVar20->file_).saved_views_.\n    super__List_base<gold::File_read::View*,_std::allocator<gold::File_read::View*>_>._M_impl.\n    _M_node._M_size = 0;\n    (pIVar20->file_).mapped_bytes_ = 0;\n    (pIVar20->file_).released_ = true;\n    (pIVar20->file_).whole_file_view_ = (View *)0x0;\n    pIVar20->is_in_sysroot_ = false;\n    pIVar20->format_ = FORMAT_NONE;\n    iVar19 = Input_file::open(pIVar20,(char *)pDVar5,(int)this,&this->dirindex_);\n    cVar17 = (char)iVar19;\n    if (cVar17 != '\0') {\n      filesize = (pIVar20->file_).size_;\n      if (filesize != 0) {\n        bVar16 = is_elf_object(pIVar20,0,&ehdr,&read_size);\n        if ((read_size < 8) ||\n           ((lVar6 = *(long *)ehdr, lVar6 != Archive::armagt && (Archive::armag != lVar6)))) {\n          elf_object = (Object *)0x0;\n          if (bVar16) {\n            _unconfigured = _unconfigured & 0xffffffffffffff00;\n            bVar18 = Input_file::will_search_for(pIVar20);\n            punconfigured = (bool *)0x0;\n            if (bVar18) {\n              punconfigured = &unconfigured;\n            }\n            elf_object = make_elf_object(&(pIVar20->file_).name_,pIVar20,0,ehdr,(long)read_size,\n                                         punconfigured);\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          this_01 = parameters->options_->plugins_;\n          if ((this_01 != (Plugin_manager *)0x0) &&\n             (pPVar23 = Plugin_manager::claim_file(this_01,pIVar20,0,filesize,elf_object),\n             pPVar23 != (Pluginobj *)0x0)) {\n            if (elf_object != (Object *)0x0) {\n              (*elf_object->_vptr_Object[1])(elf_object);\n            }\n            pIVar20 = (pPVar23->super_Object).input_file_;\n            if (pIVar20 != (Input_file *)0x0) {\n              File_read::unlock(&pIVar20->file_,&this->super_Task);\n            }\n            pAVar13 = this->member_;\n            if (pAVar13 == (Archive_member *)0x0) {\n              pTVar22 = (Task *)operator_new(0x80);\n              pIVar4 = this->input_argument_;\n              pLVar11 = this->layout_;\n              pSVar12 = this->symtab_;\n              pIVar10 = this->input_objects_;\n              pTVar22->_vptr_Task = (_func_int_varargs **)&PTR__Add_symbols_003acf00;\n              pTVar25 = (Task *)this->next_blocker_;\n              pTVar7 = this->this_blocker_;\n              pTVar22[1].name_._M_dataplus._M_p = (pointer)pLVar11;\n              pTVar22[1].name_._M_string_length = (size_type)pIVar4;\n              pTVar22->list_next_ = (Task *)0x0;\n              (pTVar22->name_)._M_dataplus._M_p = (pointer)&(pTVar22->name_).field_2;\n              (pTVar22->name_)._M_string_length = 0;\n              (pTVar22->name_).field_2._M_local_buf[0] = '\0';\n              pTVar22->should_run_soon_ = false;\n              pTVar22[1]._vptr_Task = (_func_int_varargs **)pIVar10;\n              pTVar22[1].list_next_ = (Task *)pSVar12;\n              pTVar22[1].name_.field_2._M_allocated_capacity = (size_type)pPVar23;\n              *(undefined8 *)((long)&pTVar22[1].name_.field_2 + 8) = 0;\n              *(undefined8 *)&pTVar22[1].should_run_soon_ = 0;\n              pTVar22[2]._vptr_Task = (_func_int_varargs **)pTVar7;\n              pTVar22[2].list_next_ = pTVar25;\n              Workqueue::queue_next(workqueue,pTVar22);\n              return (bool)cVar17;\n            }\n            pAVar13->sd_ = (Read_symbols_data *)0x0;\n            pAVar13->obj_ = &pPVar23->super_Object;\n            return (bool)cVar17;\n          }\n          if (!bVar16) {\n            pTVar25 = (Task *)operator_new(0x90);\n            pTVar7 = this->next_blocker_;\n            pTVar8 = this->this_blocker_;\n            pIVar4 = this->input_argument_;\n            pIVar14 = this->input_group_;\n            (pTVar25->name_).field_2._M_local_buf[0] = '\0';\n            pMVar9 = this->mapfile_;\n            pIVar10 = this->input_objects_;\n            (pTVar25->name_)._M_dataplus._M_p = (pointer)&(pTVar25->name_).field_2;\n            iVar19 = this->dirindex_;\n            pDVar5 = this->dirpath_;\n            *(Input_group **)&pTVar25[1].should_run_soon_ = pIVar14;\n            pLVar11 = this->layout_;\n            pSVar12 = this->symtab_;\n            pTVar25[2]._vptr_Task = (_func_int_varargs **)pIVar4;\n            pTVar25->list_next_ = (Task *)0x0;\n            (pTVar25->name_)._M_string_length = 0;\n            pTVar25->should_run_soon_ = false;\n            pTVar25->_vptr_Task = (_func_int_varargs **)&PTR__Read_script_003ad080;\n            pTVar25[1]._vptr_Task = (_func_int_varargs **)pSVar12;\n            pTVar25[1].list_next_ = (Task *)pLVar11;\n            pTVar25[1].name_._M_dataplus._M_p = (pointer)pDVar5;\n            *(int *)&pTVar25[1].name_._M_string_length = iVar19;\n            pTVar25[1].name_.field_2._M_allocated_capacity = (size_type)pIVar10;\n            *(Mapfile **)((long)&pTVar25[1].name_.field_2 + 8) = pMVar9;\n            pTVar25[2].list_next_ = (Task *)pIVar20;\n            pTVar25[2].name_._M_dataplus._M_p = &pTVar8->is_blocker_;\n            pTVar25[2].name_._M_string_length = (size_type)pTVar7;\n            Workqueue::queue_soon(workqueue,pTVar25);\n            return (bool)cVar17;\n          }\n          if (elf_object == (Object *)0x0) {\n            if (unconfigured == false) {\n              return false;\n            }\n            this_00 = &pIVar20->file_;\n            incompatible_warning(this->input_argument_,pIVar20);\n            File_read::release(this_00);\n            pRVar27 = this;\n            File_read::unlock(this_00,&this->super_Task);\n            File_read::~File_read(this_00,(int)pRVar27);\n            pcVar15 = (pIVar20->found_name_)._M_dataplus._M_p;\n            if (paVar1 != (anon_union_16_2_edb7204a_for_basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_9\n                           *)pcVar15) {\n              operator_delete(pcVar15);\n            }\n            operator_delete(pIVar20,0xe8);\n            this->dirindex_ = this->dirindex_ + 1;\n            bVar16 = do_read_symbols(this,workqueue);\n            return bVar16;\n          }\n          pRVar24 = (Read_symbols_data *)operator_new(0x80);\n          pRVar24->section_headers = (File_view *)0x0;\n          pRVar24->section_names = (File_view *)0x0;\n          pRVar24->symbols = (File_view *)0x0;\n          pRVar24->symbol_names = (File_view *)0x0;\n          pRVar24->versym = (File_view *)0x0;\n          pRVar24->verdef = (File_view *)0x0;\n          pRVar24->verneed = (File_view *)0x0;\n          (*elf_object->_vptr_Object[8])(elf_object,pRVar24);\n          File_read::unlock(&pIVar20->file_,&this->super_Task);\n          pAVar13 = this->member_;\n          if (pAVar13 == (Archive_member *)0x0) {\n            pTVar22 = (Task *)operator_new(0x80);\n            pIVar4 = this->input_argument_;\n            pLVar11 = this->layout_;\n            pSVar12 = this->symtab_;\n            pIVar10 = this->input_objects_;\n            *(Read_symbols_data **)&pTVar22[1].should_run_soon_ = pRVar24;\n            pTVar25 = (Task *)this->next_blocker_;\n            pTVar7 = this->this_blocker_;\n            (pTVar22->name_)._M_dataplus._M_p = (pointer)&(pTVar22->name_).field_2;\n            pTVar22[1].name_._M_dataplus._M_p = (pointer)pLVar11;\n            pTVar22[1].name_._M_string_length = (size_type)pIVar4;\n            pTVar22->list_next_ = (Task *)0x0;\n            (pTVar22->name_)._M_string_length = 0;\n            (pTVar22->name_).field_2._M_local_buf[0] = '\0';\n            pTVar22->should_run_soon_ = false;\n            pTVar22->_vptr_Task = (_func_int_varargs **)&PTR__Add_symbols_003acf00;\n            pTVar22[1]._vptr_Task = (_func_int_varargs **)pIVar10;\n            pTVar22[1].list_next_ = (Task *)pSVar12;\n            *(Object **)&pTVar22[1].name_.field_2 = elf_object;\n            *(undefined8 *)((long)&pTVar22[1].name_.field_2 + 8) = 0;\n            pTVar22[2]._vptr_Task = (_func_int_varargs **)pTVar7;\n            pTVar22[2].list_next_ = pTVar25;\n            Workqueue::queue_next(workqueue,pTVar22);\n            return bVar16;\n          }\n          pIVar4 = this->input_argument_;\n          pAVar13->sd_ = pRVar24;\n          pAVar13->obj_ = elf_object;\n          bVar16 = pIVar4->is_file_;\n          if (bVar16 != false) {\n            pAVar13->arg_serial_ = (pIVar4->file_).arg_serial_;\n            return bVar16;\n          }\n        }\n        else {\n          bVar16 = this->input_argument_->is_file_;\n          if (bVar16 != false) {\n            __s = (this->input_argument_->file_).name_._M_dataplus._M_p;\n            pcVar26 = (char *)0xffffffffffffffff;\n            _unconfigured = local_48;\n            if (__s != (char *)0x0) {\n              sVar21 = strlen(__s);\n              pcVar26 = __s + sVar21;\n            }\n            std::__cxx11::basic_string<char,_std::char_traits<char>,_std::allocator<char>_>::\n            _M_construct<char_const*>((string *)&unconfigured,__s,pcVar26);\n                    /* try { // try from 001f5e1a to 001f5e1e has its CatchHandler @ 001f63a4 */\n            this_02 = (Archive *)operator_new(0x178);\n                    /* try { // try from 001f5e42 to 001f5e46 has its CatchHandler @ 001f639c */\n            Archive::Archive(this_02,(string *)&unconfigured,pIVar20,lVar6 == Archive::armagt,\n                             this->dirpath_,&this->super_Task);\n            if (_unconfigured != local_48) {\n              operator_delete(_unconfigured);\n            }\n            Archive::setup(this_02);\n            File_read::unlock(&this_02->input_file_->file_,&this->super_Task);\n            pTVar22 = (Task *)operator_new(0x90);\n            pTVar7 = this->next_blocker_;\n            pTVar8 = this->this_blocker_;\n            pTVar25 = (Task *)this->input_group_;\n            pIVar4 = this->input_argument_;\n            (pTVar22->name_).field_2._M_local_buf[0] = '\0';\n            pMVar9 = this->mapfile_;\n            iVar19 = this->dirindex_;\n            (pTVar22->name_)._M_dataplus._M_p = (pointer)&(pTVar22->name_).field_2;\n            pDVar5 = this->dirpath_;\n            pIVar10 = this->input_objects_;\n            *(Input_argument **)&pTVar22[1].should_run_soon_ = pIVar4;\n            pLVar11 = this->layout_;\n            pSVar12 = this->symtab_;\n            pTVar22[2].list_next_ = pTVar25;\n            pTVar22->list_next_ = (Task *)0x0;\n            (pTVar22->name_)._M_string_length = 0;\n            pTVar22->should_run_soon_ = false;\n            pTVar22->_vptr_Task = (_func_int_varargs **)&PTR__Add_archive_symbols_003ae430;\n            pTVar22[1]._vptr_Task = (_func_int_varargs **)pSVar12;\n            pTVar22[1].list_next_ = (Task *)pLVar11;\n            pTVar22[1].name_._M_dataplus._M_p = (pointer)pIVar10;\n            pTVar22[1].name_._M_string_length = (size_type)pDVar5;\n            *(int *)&pTVar22[1].name_.field_2 = iVar19;\n            *(Mapfile **)((long)&pTVar22[1].name_.field_2 + 8) = pMVar9;\n            pTVar22[2]._vptr_Task = (_func_int_varargs **)this_02;\n            pTVar22[2].name_._M_dataplus._M_p = &pTVar8->is_blocker_;\n            pTVar22[2].name_._M_string_length = (size_type)pTVar7;\n            Workqueue::queue_next(workqueue,pTVar22);\n            return bVar16;\n          }\n        }\n                    /* WARNING: Subroutine does not return */\n        do_gold_unreachable("../../gold/options.h",0x828,"file");\n      }\n      pcVar15 = (pIVar20->file_).name_._M_dataplus._M_p;\n      pcVar26 = (char *)gettext("%s: file is empty");\n      gold_error(pcVar26,pcVar15);\n    }\n    return false;\n  }" else (if_statement "if (pIVar4->lib_ == (Input_file_lib *)0x0) {\n    pIVar20 = (Input_file *)operator_new(0xe8);\n    pDVar5 = this->dirpath_;\n    paVar1 = &(pIVar20->found_name_).field_2;\n    pIVar20->input_argument_ = &pIVar4->file_;\n    (pIVar20->found_name_)._M_dataplus._M_p = (pointer)paVar1;\n    (pIVar20->found_name_)._M_string_length = 0;\n    (pIVar20->found_name_).field_2._M_local_buf[0] = '\0';\n    (pIVar20->file_).name_._M_dataplus._M_p = (pointer)&(pIVar20->file_).name_.field_2;\n    p_Var2 = &(pIVar20->file_).views_._M_t._M_impl.super__Rb_tree_header;\n    (pIVar20->file_).views_._M_t._M_impl.super__Rb_tree_header._M_header._M_left =\n         &p_Var2->_M_header;\n    (pIVar20->file_).views_._M_t._M_impl.super__Rb_tree_header._M_header._M_right =\n         &p_Var2->_M_header;\n    pSVar3 = &(pIVar20->file_).saved_views_;\n    (pIVar20->file_).name_._M_string_length = 0;\n    (pIVar20->file_).name_.field_2._M_local_buf[0] = '\0';\n    (pIVar20->file_).descriptor_ = -1;\n    (pIVar20->file_).is_descriptor_opened_ = false;\n    (pIVar20->file_).object_count_ = 0;\n    (pIVar20->file_).size_ = 0;\n    (pIVar20->file_).token_.is_blocker_ = false;\n    (pIVar20->file_).token_.blockers_ = 0;\n    (pIVar20->file_).token_.writer_ = (Task *)0x0;\n    (pIVar20->file_).token_.waiting_.head_ = (Task *)0x0;\n    (pIVar20->file_).token_.waiting_.tail_ = (Task *)0x0;\n    (pIVar20->file_).views_._M_t._M_impl.super__Rb_tree_header._M_header._M_color = _S_red;\n    (pIVar20->file_).views_._M_t._M_impl.super__Rb_tree_header._M_header._M_parent = (_Base_ptr)0x0;\n    (pIVar20->file_).views_._M_t._M_impl.super__Rb_tree_header._M_node_count = 0;\n    (pIVar20->file_).saved_views_.\n    super__List_base<gold::File_read::View*,_std::allocator<gold::File_read::View*>_>._M_impl.\n    _M_node.super__List_node_base._M_prev = (_List_node_base *)pSVar3;\n    (pIVar20->file_).saved_views_.\n    super__List_base<gold::File_read::View*,_std::allocator<gold::File_read::View*>_>._M_impl.\n    _M_node.super__List_node_base._M_next = (_List_node_base *)pSVar3;\n    (pIVar20->file_).saved_views_.\n    super__List_base<gold::File_read::View*,_std::allocator<gold::File_read::View*>_>._M_impl.\n    _M_node._M_size = 0;\n    (pIVar20->file_).mapped_bytes_ = 0;\n    (pIVar20->file_).released_ = true;\n    (pIVar20->file_).whole_file_view_ = (View *)0x0;\n    pIVar20->is_in_sysroot_ = false;\n    pIVar20->format_ = FORMAT_NONE;\n    iVar19 = Input_file::open(pIVar20,(char *)pDVar5,(int)this,&this->dirindex_);\n    cVar17 = (char)iVar19;\n    if (cVar17 != '\0') {\n      filesize = (pIVar20->file_).size_;\n      if (filesize != 0) {\n        bVar16 = is_elf_object(pIVar20,0,&ehdr,&read_size);\n        if ((read_size < 8) ||\n           ((lVar6 = *(long *)ehdr, lVar6 != Archive::armagt && (Archive::armag != lVar6)))) {\n          elf_object = (Object *)0x0;\n          if (bVar16) {\n            _unconfigured = _unconfigured & 0xffffffffffffff00;\n            bVar18 = Input_file::will_search_for(pIVar20);\n            punconfigured = (bool *)0x0;\n            if (bVar18) {\n              punconfigured = &unconfigured;\n            }\n            elf_object = make_elf_object(&(pIVar20->file_).name_,pIVar20,0,ehdr,(long)read_size,\n                                         punconfigured);\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          this_01 = parameters->options_->plugins_;\n          if ((this_01 != (Plugin_manager *)0x0) &&\n             (pPVar23 = Plugin_manager::claim_file(this_01,pIVar20,0,filesize,elf_object),\n             pPVar23 != (Pluginobj *)0x0)) {\n            if (elf_object != (Object *)0x0) {\n              (*elf_object->_vptr_Object[1])(elf_object);\n            }\n            pIVar20 = (pPVar23->super_Object).input_file_;\n            if (pIVar20 != (Input_file *)0x0) {\n              File_read::unlock(&pIVar20->file_,&this->super_Task);\n            }\n            pAVar13 = this->member_;\n            if (pAVar13 == (Archive_member *)0x0) {\n              pTVar22 = (Task *)operator_new(0x80);\n              pIVar4 = this->input_argument_;\n              pLVar11 = this->layout_;\n              pSVar12 = this->symtab_;\n              pIVar10 = this->input_objects_;\n              pTVar22->_vptr_Task = (_func_int_varargs **)&PTR__Add_symbols_003acf00;\n              pTVar25 = (Task *)this->next_blocker_;\n              pTVar7 = this->this_blocker_;\n              pTVar22[1].name_._M_dataplus._M_p = (pointer)pLVar11;\n              pTVar22[1].name_._M_string_length = (size_type)pIVar4;\n              pTVar22->list_next_ = (Task *)0x0;\n              (pTVar22->name_)._M_dataplus._M_p = (pointer)&(pTVar22->name_).field_2;\n              (pTVar22->name_)._M_string_length = 0;\n              (pTVar22->name_).field_2._M_local_buf[0] = '\0';\n              pTVar22->should_run_soon_ = false;\n              pTVar22[1]._vptr_Task = (_func_int_varargs **)pIVar10;\n              pTVar22[1].list_next_ = (Task *)pSVar12;\n              pTVar22[1].name_.field_2._M_allocated_capacity = (size_type)pPVar23;\n              *(undefined8 *)((long)&pTVar22[1].name_.field_2 + 8) = 0;\n              *(undefined8 *)&pTVar22[1].should_run_soon_ = 0;\n              pTVar22[2]._vptr_Task = (_func_int_varargs **)pTVar7;\n              pTVar22[2].list_next_ = pTVar25;\n              Workqueue::queue_next(workqueue,pTVar22);\n              return (bool)cVar17;\n            }\n            pAVar13->sd_ = (Read_symbols_data *)0x0;\n            pAVar13->obj_ = &pPVar23->super_Object;\n            return (bool)cVar17;\n          }\n          if (!bVar16) {\n            pTVar25 = (Task *)operator_new(0x90);\n            pTVar7 = this->next_blocker_;\n            pTVar8 = this->this_blocker_;\n            pIVar4 = this->input_argument_;\n            pIVar14 = this->input_group_;\n            (pTVar25->name_).field_2._M_local_buf[0] = '\0';\n            pMVar9 = this->mapfile_;\n            pIVar10 = this->input_objects_;\n            (pTVar25->name_)._M_dataplus._M_p = (pointer)&(pTVar25->name_).field_2;\n            iVar19 = this->dirindex_;\n            pDVar5 = this->dirpath_;\n            *(Input_group **)&pTVar25[1].should_run_soon_ = pIVar14;\n            pLVar11 = this->layout_;\n            pSVar12 = this->symtab_;\n            pTVar25[2]._vptr_Task = (_func_int_varargs **)pIVar4;\n            pTVar25->list_next_ = (Task *)0x0;\n            (pTVar25->name_)._M_string_length = 0;\n            pTVar25->should_run_soon_ = false;\n            pTVar25->_vptr_Task = (_func_int_varargs **)&PTR__Read_script_003ad080;\n            pTVar25[1]._vptr_Task = (_func_int_varargs **)pSVar12;\n            pTVar25[1].list_next_ = (Task *)pLVar11;\n            pTVar25[1].name_._M_dataplus._M_p = (pointer)pDVar5;\n            *(int *)&pTVar25[1].name_._M_string_length = iVar19;\n            pTVar25[1].name_.field_2._M_allocated_capacity = (size_type)pIVar10;\n            *(Mapfile **)((long)&pTVar25[1].name_.field_2 + 8) = pMVar9;\n            pTVar25[2].list_next_ = (Task *)pIVar20;\n            pTVar25[2].name_._M_dataplus._M_p = &pTVar8->is_blocker_;\n            pTVar25[2].name_._M_string_length = (size_type)pTVar7;\n            Workqueue::queue_soon(workqueue,pTVar25);\n            return (bool)cVar17;\n          }\n          if (elf_object == (Object *)0x0) {\n            if (unconfigured == false) {\n              return false;\n            }\n            this_00 = &pIVar20->file_;\n            incompatible_warning(this->input_argument_,pIVar20);\n            File_read::release(this_00);\n            pRVar27 = this;\n            File_read::unlock(this_00,&this->super_Task);\n            File_read::~File_read(this_00,(int)pRVar27);\n            pcVar15 = (pIVar20->found_name_)._M_dataplus._M_p;\n            if (paVar1 != (anon_union_16_2_edb7204a_for_basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_9\n                           *)pcVar15) {\n              operator_delete(pcVar15);\n            }\n            operator_delete(pIVar20,0xe8);\n            this->dirindex_ = this->dirindex_ + 1;\n            bVar16 = do_read_symbols(this,workqueue);\n            return bVar16;\n          }\n          pRVar24 = (Read_symbols_data *)operator_new(0x80);\n          pRVar24->section_headers = (File_view *)0x0;\n          pRVar24->section_names = (File_view *)0x0;\n          pRVar24->symbols = (File_view *)0x0;\n          pRVar24->symbol_names = (File_view *)0x0;\n          pRVar24->versym = (File_view *)0x0;\n          pRVar24->verdef = (File_view *)0x0;\n          pRVar24->verneed = (File_view *)0x0;\n          (*elf_object->_vptr_Object[8])(elf_object,pRVar24);\n          File_read::unlock(&pIVar20->file_,&this->super_Task);\n          pAVar13 = this->member_;\n          if (pAVar13 == (Archive_member *)0x0) {\n            pTVar22 = (Task *)operator_new(0x80);\n            pIVar4 = this->input_argument_;\n            pLVar11 = this->layout_;\n            pSVar12 = this->symtab_;\n            pIVar10 = this->input_objects_;\n            *(Read_symbols_data **)&pTVar22[1].should_run_soon_ = pRVar24;\n            pTVar25 = (Task *)this->next_blocker_;\n            pTVar7 = this->this_blocker_;\n            (pTVar22->name_)._M_dataplus._M_p = (pointer)&(pTVar22->name_).field_2;\n            pTVar22[1].name_._M_dataplus._M_p = (pointer)pLVar11;\n            pTVar22[1].name_._M_string_length = (size_type)pIVar4;\n            pTVar22->list_next_ = (Task *)0x0;\n            (pTVar22->name_)._M_string_length = 0;\n            (pTVar22->name_).field_2._M_local_buf[0] = '\0';\n            pTVar22->should_run_soon_ = false;\n            pTVar22->_vptr_Task = (_func_int_varargs **)&PTR__Add_symbols_003acf00;\n            pTVar22[1]._vptr_Task = (_func_int_varargs **)pIVar10;\n            pTVar22[1].list_next_ = (Task *)pSVar12;\n            *(Object **)&pTVar22[1].name_.field_2 = elf_object;\n            *(undefined8 *)((long)&pTVar22[1].name_.field_2 + 8) = 0;\n            pTVar22[2]._vptr_Task = (_func_int_varargs **)pTVar7;\n            pTVar22[2].list_next_ = pTVar25;\n            Workqueue::queue_next(workqueue,pTVar22);\n            return bVar16;\n          }\n          pIVar4 = this->input_argument_;\n          pAVar13->sd_ = pRVar24;\n          pAVar13->obj_ = elf_object;\n          bVar16 = pIVar4->is_file_;\n          if (bVar16 != false) {\n            pAVar13->arg_serial_ = (pIVar4->file_).arg_serial_;\n            return bVar16;\n          }\n        }\n        else {\n          bVar16 = this->input_argument_->is_file_;\n          if (bVar16 != false) {\n            __s = (this->input_argument_->file_).name_._M_dataplus._M_p;\n            pcVar26 = (char *)0xffffffffffffffff;\n            _unconfigured = local_48;\n            if (__s != (char *)0x0) {\n              sVar21 = strlen(__s);\n              pcVar26 = __s + sVar21;\n            }\n            std::__cxx11::basic_string<char,_std::char_traits<char>,_std::allocator<char>_>::\n            _M_construct<char_const*>((string *)&unconfigured,__s,pcVar26);\n                    /* try { // try from 001f5e1a to 001f5e1e has its CatchHandler @ 001f63a4 */\n            this_02 = (Archive *)operator_new(0x178);\n                    /* try { // try from 001f5e42 to 001f5e46 has its CatchHandler @ 001f639c */\n            Archive::Archive(this_02,(string *)&unconfigured,pIVar20,lVar6 == Archive::armagt,\n                             this->dirpath_,&this->super_Task);\n            if (_unconfigured != local_48) {\n              operator_delete(_unconfigured);\n            }\n            Archive::setup(this_02);\n            File_read::unlock(&this_02->input_file_->file_,&this->super_Task);\n            pTVar22 = (Task *)operator_new(0x90);\n            pTVar7 = this->next_blocker_;\n            pTVar8 = this->this_blocker_;\n            pTVar25 = (Task *)this->input_group_;\n            pIVar4 = this->input_argument_;\n            (pTVar22->name_).field_2._M_local_buf[0] = '\0';\n            pMVar9 = this->mapfile_;\n            iVar19 = this->dirindex_;\n            (pTVar22->name_)._M_dataplus._M_p = (pointer)&(pTVar22->name_).field_2;\n            pDVar5 = this->dirpath_;\n            pIVar10 = this->input_objects_;\n            *(Input_argument **)&pTVar22[1].should_run_soon_ = pIVar4;\n            pLVar11 = this->layout_;\n            pSVar12 = this->symtab_;\n            pTVar22[2].list_next_ = pTVar25;\n            pTVar22->list_next_ = (Task *)0x0;\n            (pTVar22->name_)._M_string_length = 0;\n            pTVar22->should_run_soon_ = false;\n            pTVar22->_vptr_Task = (_func_int_varargs **)&PTR__Add_archive_symbols_003ae430;\n            pTVar22[1]._vptr_Task = (_func_int_varargs **)pSVar12;\n            pTVar22[1].list_next_ = (Task *)pLVar11;\n            pTVar22[1].name_._M_dataplus._M_p = (pointer)pIVar10;\n            pTVar22[1].name_._M_string_length = (size_type)pDVar5;\n            *(int *)&pTVar22[1].name_.field_2 = iVar19;\n            *(Mapfile **)((long)&pTVar22[1].name_.field_2 + 8) = pMVar9;\n            pTVar22[2]._vptr_Task = (_func_int_varargs **)this_02;\n            pTVar22[2].name_._M_dataplus._M_p = &pTVar8->is_blocker_;\n            pTVar22[2].name_._M_string_length = (size_type)pTVar7;\n            Workqueue::queue_next(workqueue,pTVar22);\n            return bVar16;\n          }\n        }\n                    /* WARNING: Subroutine does not return */\n        do_gold_unreachable("../../gold/options.h",0x828,"file");\n      }\n      pcVar15 = (pIVar20->file_).name_._M_dataplus._M_p;\n      pcVar26 = (char *)gettext("%s: file is empty");\n      gold_error(pcVar26,pcVar15);\n    }\n    return false;\n  }" if (parenthesized_expression "(pIVar4->lib_ == (Input_file_lib *)0x0)" ( (binary_expression "pIVar4->lib_ == (Input_file_lib *)0x0" (field_expression "pIVar4->lib_" identifier -> field_identifier) == (cast_expression "(Input_file_lib *)0x0" ( (type_descriptor "Input_file_lib *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n    pIVar20 = (Input_file *)operator_new(0xe8);\n    pDVar5 = this->dirpath_;\n    paVar1 = &(pIVar20->found_name_).field_2;\n    pIVar20->input_argument_ = &pIVar4->file_;\n    (pIVar20->found_name_)._M_dataplus._M_p = (pointer)paVar1;\n    (pIVar20->found_name_)._M_string_length = 0;\n    (pIVar20->found_name_).field_2._M_local_buf[0] = '\0';\n    (pIVar20->file_).name_._M_dataplus._M_p = (pointer)&(pIVar20->file_).name_.field_2;\n    p_Var2 = &(pIVar20->file_).views_._M_t._M_impl.super__Rb_tree_header;\n    (pIVar20->file_).views_._M_t._M_impl.super__Rb_tree_header._M_header._M_left =\n         &p_Var2->_M_header;\n    (pIVar20->file_).views_._M_t._M_impl.super__Rb_tree_header._M_header._M_right =\n         &p_Var2->_M_header;\n    pSVar3 = &(pIVar20->file_).saved_views_;\n    (pIVar20->file_).name_._M_string_length = 0;\n    (pIVar20->file_).name_.field_2._M_local_buf[0] = '\0';\n    (pIVar20->file_).descriptor_ = -1;\n    (pIVar20->file_).is_descriptor_opened_ = false;\n    (pIVar20->file_).object_count_ = 0;\n    (pIVar20->file_).size_ = 0;\n    (pIVar20->file_).token_.is_blocker_ = false;\n    (pIVar20->file_).token_.blockers_ = 0;\n    (pIVar20->file_).token_.writer_ = (Task *)0x0;\n    (pIVar20->file_).token_.waiting_.head_ = (Task *)0x0;\n    (pIVar20->file_).token_.waiting_.tail_ = (Task *)0x0;\n    (pIVar20->file_).views_._M_t._M_impl.super__Rb_tree_header._M_header._M_color = _S_red;\n    (pIVar20->file_).views_._M_t._M_impl.super__Rb_tree_header._M_header._M_parent = (_Base_ptr)0x0;\n    (pIVar20->file_).views_._M_t._M_impl.super__Rb_tree_header._M_node_count = 0;\n    (pIVar20->file_).saved_views_.\n    super__List_base<gold::File_read::View*,_std::allocator<gold::File_read::View*>_>._M_impl.\n    _M_node.super__List_node_base._M_prev = (_List_node_base *)pSVar3;\n    (pIVar20->file_).saved_views_.\n    super__List_base<gold::File_read::View*,_std::allocator<gold::File_read::View*>_>._M_impl.\n    _M_node.super__List_node_base._M_next = (_List_node_base *)pSVar3;\n    (pIVar20->file_).saved_views_.\n    super__List_base<gold::File_read::View*,_std::allocator<gold::File_read::View*>_>._M_impl.\n    _M_node._M_size = 0;\n    (pIVar20->file_).mapped_bytes_ = 0;\n    (pIVar20->file_).released_ = true;\n    (pIVar20->file_).whole_file_view_ = (View *)0x0;\n    pIVar20->is_in_sysroot_ = false;\n    pIVar20->format_ = FORMAT_NONE;\n    iVar19 = Input_file::open(pIVar20,(char *)pDVar5,(int)this,&this->dirindex_);\n    cVar17 = (char)iVar19;\n    if (cVar17 != '\0') {\n      filesize = (pIVar20->file_).size_;\n      if (filesize != 0) {\n        bVar16 = is_elf_object(pIVar20,0,&ehdr,&read_size);\n        if ((read_size < 8) ||\n           ((lVar6 = *(long *)ehdr, lVar6 != Archive::armagt && (Archive::armag != lVar6)))) {\n          elf_object = (Object *)0x0;\n          if (bVar16) {\n            _unconfigured = _unconfigured & 0xffffffffffffff00;\n            bVar18 = Input_file::will_search_for(pIVar20);\n            punconfigured = (bool *)0x0;\n            if (bVar18) {\n              punconfigured = &unconfigured;\n            }\n            elf_object = make_elf_object(&(pIVar20->file_).name_,pIVar20,0,ehdr,(long)read_size,\n                                         punconfigured);\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          this_01 = parameters->options_->plugins_;\n          if ((this_01 != (Plugin_manager *)0x0) &&\n             (pPVar23 = Plugin_manager::claim_file(this_01,pIVar20,0,filesize,elf_object),\n             pPVar23 != (Pluginobj *)0x0)) {\n            if (elf_object != (Object *)0x0) {\n              (*elf_object->_vptr_Object[1])(elf_object);\n            }\n            pIVar20 = (pPVar23->super_Object).input_file_;\n            if (pIVar20 != (Input_file *)0x0) {\n              File_read::unlock(&pIVar20->file_,&this->super_Task);\n            }\n            pAVar13 = this->member_;\n            if (pAVar13 == (Archive_member *)0x0) {\n              pTVar22 = (Task *)operator_new(0x80);\n              pIVar4 = this->input_argument_;\n              pLVar11 = this->layout_;\n              pSVar12 = this->symtab_;\n              pIVar10 = this->input_objects_;\n              pTVar22->_vptr_Task = (_func_int_varargs **)&PTR__Add_symbols_003acf00;\n              pTVar25 = (Task *)this->next_blocker_;\n              pTVar7 = this->this_blocker_;\n              pTVar22[1].name_._M_dataplus._M_p = (pointer)pLVar11;\n              pTVar22[1].name_._M_string_length = (size_type)pIVar4;\n              pTVar22->list_next_ = (Task *)0x0;\n              (pTVar22->name_)._M_dataplus._M_p = (pointer)&(pTVar22->name_).field_2;\n              (pTVar22->name_)._M_string_length = 0;\n              (pTVar22->name_).field_2._M_local_buf[0] = '\0';\n              pTVar22->should_run_soon_ = false;\n              pTVar22[1]._vptr_Task = (_func_int_varargs **)pIVar10;\n              pTVar22[1].list_next_ = (Task *)pSVar12;\n              pTVar22[1].name_.field_2._M_allocated_capacity = (size_type)pPVar23;\n              *(undefined8 *)((long)&pTVar22[1].name_.field_2 + 8) = 0;\n              *(undefined8 *)&pTVar22[1].should_run_soon_ = 0;\n              pTVar22[2]._vptr_Task = (_func_int_varargs **)pTVar7;\n              pTVar22[2].list_next_ = pTVar25;\n              Workqueue::queue_next(workqueue,pTVar22);\n              return (bool)cVar17;\n            }\n            pAVar13->sd_ = (Read_symbols_data *)0x0;\n            pAVar13->obj_ = &pPVar23->super_Object;\n            return (bool)cVar17;\n          }\n          if (!bVar16) {\n            pTVar25 = (Task *)operator_new(0x90);\n            pTVar7 = this->next_blocker_;\n            pTVar8 = this->this_blocker_;\n            pIVar4 = this->input_argument_;\n            pIVar14 = this->input_group_;\n            (pTVar25->name_).field_2._M_local_buf[0] = '\0';\n            pMVar9 = this->mapfile_;\n            pIVar10 = this->input_objects_;\n            (pTVar25->name_)._M_dataplus._M_p = (pointer)&(pTVar25->name_).field_2;\n            iVar19 = this->dirindex_;\n            pDVar5 = this->dirpath_;\n            *(Input_group **)&pTVar25[1].should_run_soon_ = pIVar14;\n            pLVar11 = this->layout_;\n            pSVar12 = this->symtab_;\n            pTVar25[2]._vptr_Task = (_func_int_varargs **)pIVar4;\n            pTVar25->list_next_ = (Task *)0x0;\n            (pTVar25->name_)._M_string_length = 0;\n            pTVar25->should_run_soon_ = false;\n            pTVar25->_vptr_Task = (_func_int_varargs **)&PTR__Read_script_003ad080;\n            pTVar25[1]._vptr_Task = (_func_int_varargs **)pSVar12;\n            pTVar25[1].list_next_ = (Task *)pLVar11;\n            pTVar25[1].name_._M_dataplus._M_p = (pointer)pDVar5;\n            *(int *)&pTVar25[1].name_._M_string_length = iVar19;\n            pTVar25[1].name_.field_2._M_allocated_capacity = (size_type)pIVar10;\n            *(Mapfile **)((long)&pTVar25[1].name_.field_2 + 8) = pMVar9;\n            pTVar25[2].list_next_ = (Task *)pIVar20;\n            pTVar25[2].name_._M_dataplus._M_p = &pTVar8->is_blocker_;\n            pTVar25[2].name_._M_string_length = (size_type)pTVar7;\n            Workqueue::queue_soon(workqueue,pTVar25);\n            return (bool)cVar17;\n          }\n          if (elf_object == (Object *)0x0) {\n            if (unconfigured == false) {\n              return false;\n            }\n            this_00 = &pIVar20->file_;\n            incompatible_warning(this->input_argument_,pIVar20);\n            File_read::release(this_00);\n            pRVar27 = this;\n            File_read::unlock(this_00,&this->super_Task);\n            File_read::~File_read(this_00,(int)pRVar27);\n            pcVar15 = (pIVar20->found_name_)._M_dataplus._M_p;\n            if (paVar1 != (anon_union_16_2_edb7204a_for_basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_9\n                           *)pcVar15) {\n              operator_delete(pcVar15);\n            }\n            operator_delete(pIVar20,0xe8);\n            this->dirindex_ = this->dirindex_ + 1;\n            bVar16 = do_read_symbols(this,workqueue);\n            return bVar16;\n          }\n          pRVar24 = (Read_symbols_data *)operator_new(0x80);\n          pRVar24->section_headers = (File_view *)0x0;\n          pRVar24->section_names = (File_view *)0x0;\n          pRVar24->symbols = (File_view *)0x0;\n          pRVar24->symbol_names = (File_view *)0x0;\n          pRVar24->versym = (File_view *)0x0;\n          pRVar24->verdef = (File_view *)0x0;\n          pRVar24->verneed = (File_view *)0x0;\n          (*elf_object->_vptr_Object[8])(elf_object,pRVar24);\n          File_read::unlock(&pIVar20->file_,&this->super_Task);\n          pAVar13 = this->member_;\n          if (pAVar13 == (Archive_member *)0x0) {\n            pTVar22 = (Task *)operator_new(0x80);\n            pIVar4 = this->input_argument_;\n            pLVar11 = this->layout_;\n            pSVar12 = this->symtab_;\n            pIVar10 = this->input_objects_;\n            *(Read_symbols_data **)&pTVar22[1].should_run_soon_ = pRVar24;\n            pTVar25 = (Task *)this->next_blocker_;\n            pTVar7 = this->this_blocker_;\n            (pTVar22->name_)._M_dataplus._M_p = (pointer)&(pTVar22->name_).field_2;\n            pTVar22[1].name_._M_dataplus._M_p = (pointer)pLVar11;\n            pTVar22[1].name_._M_string_length = (size_type)pIVar4;\n            pTVar22->list_next_ = (Task *)0x0;\n            (pTVar22->name_)._M_string_length = 0;\n            (pTVar22->name_).field_2._M_local_buf[0] = '\0';\n            pTVar22->should_run_soon_ = false;\n            pTVar22->_vptr_Task = (_func_int_varargs **)&PTR__Add_symbols_003acf00;\n            pTVar22[1]._vptr_Task = (_func_int_varargs **)pIVar10;\n            pTVar22[1].list_next_ = (Task *)pSVar12;\n            *(Object **)&pTVar22[1].name_.field_2 = elf_object;\n            *(undefined8 *)((long)&pTVar22[1].name_.field_2 + 8) = 0;\n            pTVar22[2]._vptr_Task = (_func_int_varargs **)pTVar7;\n            pTVar22[2].list_next_ = pTVar25;\n            Workqueue::queue_next(workqueue,pTVar22);\n            return bVar16;\n          }\n          pIVar4 = this->input_argument_;\n          pAVar13->sd_ = pRVar24;\n          pAVar13->obj_ = elf_object;\n          bVar16 = pIVar4->is_file_;\n          if (bVar16 != false) {\n            pAVar13->arg_serial_ = (pIVar4->file_).arg_serial_;\n            return bVar16;\n          }\n        }\n        else {\n          bVar16 = this->input_argument_->is_file_;\n          if (bVar16 != false) {\n            __s = (this->input_argument_->file_).name_._M_dataplus._M_p;\n            pcVar26 = (char *)0xffffffffffffffff;\n            _unconfigured = local_48;\n            if (__s != (char *)0x0) {\n              sVar21 = strlen(__s);\n              pcVar26 = __s + sVar21;\n            }\n            std::__cxx11::basic_string<char,_std::char_traits<char>,_std::allocator<char>_>::\n            _M_construct<char_const*>((string *)&unconfigured,__s,pcVar26);\n                    /* try { // try from 001f5e1a to 001f5e1e has its CatchHandler @ 001f63a4 */\n            this_02 = (Archive *)operator_new(0x178);\n                    /* try { // try from 001f5e42 to 001f5e46 has its CatchHandler @ 001f639c */\n            Archive::Archive(this_02,(string *)&unconfigured,pIVar20,lVar6 == Archive::armagt,\n                             this->dirpath_,&this->super_Task);\n            if (_unconfigured != local_48) {\n              operator_delete(_unconfigured);\n            }\n            Archive::setup(this_02);\n            File_read::unlock(&this_02->input_file_->file_,&this->super_Task);\n            pTVar22 = (Task *)operator_new(0x90);\n            pTVar7 = this->next_blocker_;\n            pTVar8 = this->this_blocker_;\n            pTVar25 = (Task *)this->input_group_;\n            pIVar4 = this->input_argument_;\n            (pTVar22->name_).field_2._M_local_buf[0] = '\0';\n            pMVar9 = this->mapfile_;\n            iVar19 = this->dirindex_;\n            (pTVar22->name_)._M_dataplus._M_p = (pointer)&(pTVar22->name_).field_2;\n            pDVar5 = this->dirpath_;\n            pIVar10 = this->input_objects_;\n            *(Input_argument **)&pTVar22[1].should_run_soon_ = pIVar4;\n            pLVar11 = this->layout_;\n            pSVar12 = this->symtab_;\n            pTVar22[2].list_next_ = pTVar25;\n            pTVar22->list_next_ = (Task *)0x0;\n            (pTVar22->name_)._M_string_length = 0;\n            pTVar22->should_run_soon_ = false;\n            pTVar22->_vptr_Task = (_func_int_varargs **)&PTR__Add_archive_symbols_003ae430;\n            pTVar22[1]._vptr_Task = (_func_int_varargs **)pSVar12;\n            pTVar22[1].list_next_ = (Task *)pLVar11;\n            pTVar22[1].name_._M_dataplus._M_p = (pointer)pIVar10;\n            pTVar22[1].name_._M_string_length = (size_type)pDVar5;\n            *(int *)&pTVar22[1].name_.field_2 = iVar19;\n            *(Mapfile **)((long)&pTVar22[1].name_.field_2 + 8) = pMVar9;\n            pTVar22[2]._vptr_Task = (_func_int_varargs **)this_02;\n            pTVar22[2].name_._M_dataplus._M_p = &pTVar8->is_blocker_;\n            pTVar22[2].name_._M_string_length = (size_type)pTVar7;\n            Workqueue::queue_next(workqueue,pTVar22);\n            return bVar16;\n          }\n        }\n                    /* WARNING: Subroutine does not return */\n        do_gold_unreachable("../../gold/options.h",0x828,"file");\n      }\n      pcVar15 = (pIVar20->file_).name_._M_dataplus._M_p;\n      pcVar26 = (char *)gettext("%s: file is empty");\n      gold_error(pcVar26,pcVar15);\n    }\n    return false;\n  }" { (expression_statement "pIVar20 = (Input_file *)operator_new(0xe8);" (assignment_expression "pIVar20 = (Input_file *)operator_new(0xe8)" identifier = (cast_expression "(Input_file *)operator_new(0xe8)" ( (type_descriptor "Input_file *" type_identifier (abstract_pointer_declarator "*" *)) ) (call_expression "operator_new(0xe8)" identifier (argument_list "(0xe8)" ( number_literal ))))) ;) (expression_statement "pDVar5 = this->dirpath_;" (assignment_expression "pDVar5 = this->dirpath_" identifier = (field_expression "this->dirpath_" identifier -> field_identifier)) ;) (expression_statement "paVar1 = &(pIVar20->found_name_).field_2;" (assignment_expression "paVar1 = &(pIVar20->found_name_).field_2" identifier = (pointer_expression "&(pIVar20->found_name_).field_2" & (field_expression "(pIVar20->found_name_).field_2" (parenthesized_expression "(pIVar20->found_name_)" ( (field_expression "pIVar20->found_name_" identifier -> field_identifier) )) . field_identifier))) ;) (expression_statement "pIVar20->input_argument_ = &pIVar4->file_;" (assignment_expression "pIVar20->input_argument_ = &pIVar4->file_" (field_expression "pIVar20->input_argument_" identifier -> field_identifier) = (pointer_expression "&pIVar4->file_" & (field_expression "pIVar4->file_" identifier -> field_identifier))) ;) (expression_statement "(pIVar20->found_name_)._M_dataplus._M_p = (pointer)paVar1;" (assignment_expression "(pIVar20->found_name_)._M_dataplus._M_p = (pointer)paVar1" (field_expression "(pIVar20->found_name_)._M_dataplus._M_p" (field_expression "(pIVar20->found_name_)._M_dataplus" (parenthesized_expression "(pIVar20->found_name_)" ( (field_expression "pIVar20->found_name_" identifier -> field_identifier) )) . field_identifier) . field_identifier) = (cast_expression "(pointer)paVar1" ( (type_descriptor "pointer" type_identifier) ) identifier)) ;) (expression_statement "(pIVar20->found_name_)._M_string_length = 0;" (assignment_expression "(pIVar20->found_name_)._M_string_length = 0" (field_expression "(pIVar20->found_name_)._M_string_length" (parenthesized_expression "(pIVar20->found_name_)" ( (field_expression "pIVar20->found_name_" identifier -> field_identifier) )) . field_identifier) = number_literal) ;) (expression_statement "(pIVar20->found_name_).field_2._M_local_buf[0] = '\0';" (assignment_expression "(pIVar20->found_name_).field_2._M_local_buf[0] = '\0'" (subscript_expression "(pIVar20->found_name_).field_2._M_local_buf[0]" (field_expression "(pIVar20->found_name_).field_2._M_local_buf" (field_expression "(pIVar20->found_name_).field_2" (parenthesized_expression "(pIVar20->found_name_)" ( (field_expression "pIVar20->found_name_" identifier -> field_identifier) )) . field_identifier) . field_identifier) [ number_literal ]) = (char_literal "'\0'" ' escape_sequence ')) ;) (expression_statement "(pIVar20->file_).name_._M_dataplus._M_p = (pointer)&(pIVar20->file_).name_.field_2;" (assignment_expression "(pIVar20->file_).name_._M_dataplus._M_p = (pointer)&(pIVar20->file_).name_.field_2" (field_expression "(pIVar20->file_).name_._M_dataplus._M_p" (field_expression "(pIVar20->file_).name_._M_dataplus" (field_expression "(pIVar20->file_).name_" (parenthesized_expression "(pIVar20->file_)" ( (field_expression "pIVar20->file_" identifier -> field_identifier) )) . field_identifier) . field_identifier) . field_identifier) = (binary_expression "(pointer)&(pIVar20->file_).name_.field_2" (parenthesized_expression "(pointer)" ( identifier )) & (field_expression "(pIVar20->file_).name_.field_2" (field_expression "(pIVar20->file_).name_" (parenthesized_expression "(pIVar20->file_)" ( (field_expression "pIVar20->file_" identifier -> field_identifier) )) . field_identifier) . field_identifier))) ;) (expression_statement "p_Var2 = &(pIVar20->file_).views_._M_t._M_impl.super__Rb_tree_header;" (assignment_expression "p_Var2 = &(pIVar20->file_).views_._M_t._M_impl.super__Rb_tree_header" identifier = (pointer_expression "&(pIVar20->file_).views_._M_t._M_impl.super__Rb_tree_header" & (field_expression "(pIVar20->file_).views_._M_t._M_impl.super__Rb_tree_header" (field_expression "(pIVar20->file_).views_._M_t._M_impl" (field_expression "(pIVar20->file_).views_._M_t" (field_expression "(pIVar20->file_).views_" (parenthesized_expression "(pIVar20->file_)" ( (field_expression "pIVar20->file_" identifier -> field_identifier) )) . field_identifier) . field_identifier) . field_identifier) . field_identifier))) ;) (expression_statement "(pIVar20->file_).views_._M_t._M_impl.super__Rb_tree_header._M_header._M_left =\n         &p_Var2->_M_header;" (assignment_expression "(pIVar20->file_).views_._M_t._M_impl.super__Rb_tree_header._M_header._M_left =\n         &p_Var2->_M_header" (field_expression "(pIVar20->file_).views_._M_t._M_impl.super__Rb_tree_header._M_header._M_left" (field_expression "(pIVar20->file_).views_._M_t._M_impl.super__Rb_tree_header._M_header" (field_expression "(pIVar20->file_).views_._M_t._M_impl.super__Rb_tree_header" (field_expression "(pIVar20->file_).views_._M_t._M_impl" (field_expression "(pIVar20->file_).views_._M_t" (field_expression "(pIVar20->file_).views_" (parenthesized_expression "(pIVar20->file_)" ( (field_expression "pIVar20->file_" identifier -> field_identifier) )) . field_identifier) . field_identifier) . field_identifier) . field_identifier) . field_identifier) . field_identifier) = (pointer_expression "&p_Var2->_M_header" & (field_expression "p_Var2->_M_header" identifier -> field_identifier))) ;) (expression_statement "(pIVar20->file_).views_._M_t._M_impl.super__Rb_tree_header._M_header._M_right =\n         &p_Var2->_M_header;" (assignment_expression "(pIVar20->file_).views_._M_t._M_impl.super__Rb_tree_header._M_header._M_right =\n         &p_Var2->_M_header" (field_expression "(pIVar20->file_).views_._M_t._M_impl.super__Rb_tree_header._M_header._M_right" (field_expression "(pIVar20->file_).views_._M_t._M_impl.super__Rb_tree_header._M_header" (field_expression "(pIVar20->file_).views_._M_t._M_impl.super__Rb_tree_header" (field_expression "(pIVar20->file_).views_._M_t._M_impl" (field_expression "(pIVar20->file_).views_._M_t" (field_expression "(pIVar20->file_).views_" (parenthesized_expression "(pIVar20->file_)" ( (field_expression "pIVar20->file_" identifier -> field_identifier) )) . field_identifier) . field_identifier) . field_identifier) . field_identifier) . field_identifier) . field_identifier) = (pointer_expression "&p_Var2->_M_header" & (field_expression "p_Var2->_M_header" identifier -> field_identifier))) ;) (expression_statement "pSVar3 = &(pIVar20->file_).saved_views_;" (assignment_expression "pSVar3 = &(pIVar20->file_).saved_views_" identifier = (pointer_expression "&(pIVar20->file_).saved_views_" & (field_expression "(pIVar20->file_).saved_views_" (parenthesized_expression "(pIVar20->file_)" ( (field_expression "pIVar20->file_" identifier -> field_identifier) )) . field_identifier))) ;) (expression_statement "(pIVar20->file_).name_._M_string_length = 0;" (assignment_expression "(pIVar20->file_).name_._M_string_length = 0" (field_expression "(pIVar20->file_).name_._M_string_length" (field_expression "(pIVar20->file_).name_" (parenthesized_expression "(pIVar20->file_)" ( (field_expression "pIVar20->file_" identifier -> field_identifier) )) . field_identifier) . field_identifier) = number_literal) ;) (expression_statement "(pIVar20->file_).name_.field_2._M_local_buf[0] = '\0';" (assignment_expression "(pIVar20->file_).name_.field_2._M_local_buf[0] = '\0'" (subscript_expression "(pIVar20->file_).name_.field_2._M_local_buf[0]" (field_expression "(pIVar20->file_).name_.field_2._M_local_buf" (field_expression "(pIVar20->file_).name_.field_2" (field_expression "(pIVar20->file_).name_" (parenthesized_expression "(pIVar20->file_)" ( (field_expression "pIVar20->file_" identifier -> field_identifier) )) . field_identifier) . field_identifier) . field_identifier) [ number_literal ]) = (char_literal "'\0'" ' escape_sequence ')) ;) (expression_statement "(pIVar20->file_).descriptor_ = -1;" (assignment_expression "(pIVar20->file_).descriptor_ = -1" (field_expression "(pIVar20->file_).descriptor_" (parenthesized_expression "(pIVar20->file_)" ( (field_expression "pIVar20->file_" identifier -> field_identifier) )) . field_identifier) = number_literal) ;) (expression_statement "(pIVar20->file_).is_descriptor_opened_ = false;" (assignment_expression "(pIVar20->file_).is_descriptor_opened_ = false" (field_expression "(pIVar20->file_).is_descriptor_opened_" (parenthesized_expression "(pIVar20->file_)" ( (field_expression "pIVar20->file_" identifier -> field_identifier) )) . field_identifier) = false) ;) (expression_statement "(pIVar20->file_).object_count_ = 0;" (assignment_expression "(pIVar20->file_).object_count_ = 0" (field_expression "(pIVar20->file_).object_count_" (parenthesized_expression "(pIVar20->file_)" ( (field_expression "pIVar20->file_" identifier -> field_identifier) )) . field_identifier) = number_literal) ;) (expression_statement "(pIVar20->file_).size_ = 0;" (assignment_expression "(pIVar20->file_).size_ = 0" (field_expression "(pIVar20->file_).size_" (parenthesized_expression "(pIVar20->file_)" ( (field_expression "pIVar20->file_" identifier -> field_identifier) )) . field_identifier) = number_literal) ;) (expression_statement "(pIVar20->file_).token_.is_blocker_ = false;" (assignment_expression "(pIVar20->file_).token_.is_blocker_ = false" (field_expression "(pIVar20->file_).token_.is_blocker_" (field_expression "(pIVar20->file_).token_" (parenthesized_expression "(pIVar20->file_)" ( (field_expression "pIVar20->file_" identifier -> field_identifier) )) . field_identifier) . field_identifier) = false) ;) (expression_statement "(pIVar20->file_).token_.blockers_ = 0;" (assignment_expression "(pIVar20->file_).token_.blockers_ = 0" (field_expression "(pIVar20->file_).token_.blockers_" (field_expression "(pIVar20->file_).token_" (parenthesized_expression "(pIVar20->file_)" ( (field_expression "pIVar20->file_" identifier -> field_identifier) )) . field_identifier) . field_identifier) = number_literal) ;) (expression_statement "(pIVar20->file_).token_.writer_ = (Task *)0x0;" (assignment_expression "(pIVar20->file_).token_.writer_ = (Task *)0x0" (field_expression "(pIVar20->file_).token_.writer_" (field_expression "(pIVar20->file_).token_" (parenthesized_expression "(pIVar20->file_)" ( (field_expression "pIVar20->file_" identifier -> field_identifier) )) . field_identifier) . field_identifier) = (cast_expression "(Task *)0x0" ( (type_descriptor "Task *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (expression_statement "(pIVar20->file_).token_.waiting_.head_ = (Task *)0x0;" (assignment_expression "(pIVar20->file_).token_.waiting_.head_ = (Task *)0x0" (field_expression "(pIVar20->file_).token_.waiting_.head_" (field_expression "(pIVar20->file_).token_.waiting_" (field_expression "(pIVar20->file_).token_" (parenthesized_expression "(pIVar20->file_)" ( (field_expression "pIVar20->file_" identifier -> field_identifier) )) . field_identifier) . field_identifier) . field_identifier) = (cast_expression "(Task *)0x0" ( (type_descriptor "Task *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (expression_statement "(pIVar20->file_).token_.waiting_.tail_ = (Task *)0x0;" (assignment_expression "(pIVar20->file_).token_.waiting_.tail_ = (Task *)0x0" (field_expression "(pIVar20->file_).token_.waiting_.tail_" (field_expression "(pIVar20->file_).token_.waiting_" (field_expression "(pIVar20->file_).token_" (parenthesized_expression "(pIVar20->file_)" ( (field_expression "pIVar20->file_" identifier -> field_identifier) )) . field_identifier) . field_identifier) . field_identifier) = (cast_expression "(Task *)0x0" ( (type_descriptor "Task *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (expression_statement "(pIVar20->file_).views_._M_t._M_impl.super__Rb_tree_header._M_header._M_color = _S_red;" (assignment_expression "(pIVar20->file_).views_._M_t._M_impl.super__Rb_tree_header._M_header._M_color = _S_red" (field_expression "(pIVar20->file_).views_._M_t._M_impl.super__Rb_tree_header._M_header._M_color" (field_expression "(pIVar20->file_).views_._M_t._M_impl.super__Rb_tree_header._M_header" (field_expression "(pIVar20->file_).views_._M_t._M_impl.super__Rb_tree_header" (field_expression "(pIVar20->file_).views_._M_t._M_impl" (field_expression "(pIVar20->file_).views_._M_t" (field_expression "(pIVar20->file_).views_" (parenthesized_expression "(pIVar20->file_)" ( (field_expression "pIVar20->file_" identifier -> field_identifier) )) . field_identifier) . field_identifier) . field_identifier) . field_identifier) . field_identifier) . field_identifier) = identifier) ;) (expression_statement "(pIVar20->file_).views_._M_t._M_impl.super__Rb_tree_header._M_header._M_parent = (_Base_ptr)0x0;" (assignment_expression "(pIVar20->file_).views_._M_t._M_impl.super__Rb_tree_header._M_header._M_parent = (_Base_ptr)0x0" (field_expression "(pIVar20->file_).views_._M_t._M_impl.super__Rb_tree_header._M_header._M_parent" (field_expression "(pIVar20->file_).views_._M_t._M_impl.super__Rb_tree_header._M_header" (field_expression "(pIVar20->file_).views_._M_t._M_impl.super__Rb_tree_header" (field_expression "(pIVar20->file_).views_._M_t._M_impl" (field_expression "(pIVar20->file_).views_._M_t" (field_expression "(pIVar20->file_).views_" (parenthesized_expression "(pIVar20->file_)" ( (field_expression "pIVar20->file_" identifier -> field_identifier) )) . field_identifier) . field_identifier) . field_identifier) . field_identifier) . field_identifier) . field_identifier) = (cast_expression "(_Base_ptr)0x0" ( (type_descriptor "_Base_ptr" type_identifier) ) number_literal)) ;) (expression_statement "(pIVar20->file_).views_._M_t._M_impl.super__Rb_tree_header._M_node_count = 0;" (assignment_expression "(pIVar20->file_).views_._M_t._M_impl.super__Rb_tree_header._M_node_count = 0" (field_expression "(pIVar20->file_).views_._M_t._M_impl.super__Rb_tree_header._M_node_count" (field_expression "(pIVar20->file_).views_._M_t._M_impl.super__Rb_tree_header" (field_expression "(pIVar20->file_).views_._M_t._M_impl" (field_expression "(pIVar20->file_).views_._M_t" (field_expression "(pIVar20->file_).views_" (parenthesized_expression "(pIVar20->file_)" ( (field_expression "pIVar20->file_" identifier -> field_identifier) )) . field_identifier) . field_identifier) . field_identifier) . field_identifier) . field_identifier) = number_literal) ;) (ERROR "(pIVar20->file_).saved_views_.\n    super__List_base<gold::File_read::View*,_std::allocator<gold::" (binary_expression "(pIVar20->file_).saved_views_.\n    super__List_base<gold" (field_expression "(pIVar20->file_).saved_views_.\n    super__List_base" (field_expression "(pIVar20->file_).saved_views_" (parenthesized_expression "(pIVar20->file_)" ( (field_expression "pIVar20->file_" identifier -> field_identifier) )) . field_identifier) . field_identifier) < identifier) : : (comma_expression "File_read::View*,_std" identifier (ERROR "::View*" : : identifier *) , identifier) : : (binary_expression "allocator<gold" identifier < identifier) : :) (expression_statement "File_read::View*>_>._M_impl.\n    _M_node.super__List_node_base._M_prev = (_List_node_base *)pSVar3;" (assignment_expression "File_read::View*>_>._M_impl.\n    _M_node.super__List_node_base._M_prev = (_List_node_base *)pSVar3" (field_expression "File_read::View*>_>._M_impl.\n    _M_node.super__List_node_base._M_prev" (field_expression "File_read::View*>_>._M_impl.\n    _M_node.super__List_node_base" (field_expression "File_read::View*>_>._M_impl.\n    _M_node" (field_expression "File_read::View*>_>._M_impl" (binary_expression "File_read::View*>_" identifier (ERROR "::View*" : : identifier *) > identifier) (ERROR ">" >) . field_identifier) . field_identifier) . field_identifier) . field_identifier) = (cast_expression "(_List_node_base *)pSVar3" ( (type_descriptor "_List_node_base *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) ;) (ERROR "(pIVar20->file_).saved_views_.\n    super__List_base<gold::File_read::View*,_std::allocator<gold::" (binary_expression "(pIVar20->file_).saved_views_.\n    super__List_base<gold" (field_expression "(pIVar20->file_).saved_views_.\n    super__List_base" (field_expression "(pIVar20->file_).saved_views_" (parenthesized_expression "(pIVar20->file_)" ( (field_expression "pIVar20->file_" identifier -> field_identifier) )) . field_identifier) . field_identifier) < identifier) : : (comma_expression "File_read::View*,_std" identifier (ERROR "::View*" : : identifier *) , identifier) : : (binary_expression "allocator<gold" identifier < identifier) : :) (expression_statement "File_read::View*>_>._M_impl.\n    _M_node.super__List_node_base._M_next = (_List_node_base *)pSVar3;" (assignment_expression "File_read::View*>_>._M_impl.\n    _M_node.super__List_node_base._M_next = (_List_node_base *)pSVar3" (field_expression "File_read::View*>_>._M_impl.\n    _M_node.super__List_node_base._M_next" (field_expression "File_read::View*>_>._M_impl.\n    _M_node.super__List_node_base" (field_expression "File_read::View*>_>._M_impl.\n    _M_node" (field_expression "File_read::View*>_>._M_impl" (binary_expression "File_read::View*>_" identifier (ERROR "::View*" : : identifier *) > identifier) (ERROR ">" >) . field_identifier) . field_identifier) . field_identifier) . field_identifier) = (cast_expression "(_List_node_base *)pSVar3" ( (type_descriptor "_List_node_base *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) ;) (ERROR "(pIVar20->file_).saved_views_.\n    super__List_base<gold::File_read::View*,_std::allocator<gold::" (binary_expression "(pIVar20->file_).saved_views_.\n    super__List_base<gold" (field_expression "(pIVar20->file_).saved_views_.\n    super__List_base" (field_expression "(pIVar20->file_).saved_views_" (parenthesized_expression "(pIVar20->file_)" ( (field_expression "pIVar20->file_" identifier -> field_identifier) )) . field_identifier) . field_identifier) < identifier) : : (comma_expression "File_read::View*,_std" identifier (ERROR "::View*" : : identifier *) , identifier) : : (binary_expression "allocator<gold" identifier < identifier) : :) (expression_statement "File_read::View*>_>._M_impl.\n    _M_node._M_size = 0;" (assignment_expression "File_read::View*>_>._M_impl.\n    _M_node._M_size = 0" (field_expression "File_read::View*>_>._M_impl.\n    _M_node._M_size" (field_expression "File_read::View*>_>._M_impl.\n    _M_node" (field_expression "File_read::View*>_>._M_impl" (binary_expression "File_read::View*>_" identifier (ERROR "::View*" : : identifier *) > identifier) (ERROR ">" >) . field_identifier) . field_identifier) . field_identifier) = number_literal) ;) (expression_statement "(pIVar20->file_).mapped_bytes_ = 0;" (assignment_expression "(pIVar20->file_).mapped_bytes_ = 0" (field_expression "(pIVar20->file_).mapped_bytes_" (parenthesized_expression "(pIVar20->file_)" ( (field_expression "pIVar20->file_" identifier -> field_identifier) )) . field_identifier) = number_literal) ;) (expression_statement "(pIVar20->file_).released_ = true;" (assignment_expression "(pIVar20->file_).released_ = true" (field_expression "(pIVar20->file_).released_" (parenthesized_expression "(pIVar20->file_)" ( (field_expression "pIVar20->file_" identifier -> field_identifier) )) . field_identifier) = true) ;) (expression_statement "(pIVar20->file_).whole_file_view_ = (View *)0x0;" (assignment_expression "(pIVar20->file_).whole_file_view_ = (View *)0x0" (field_expression "(pIVar20->file_).whole_file_view_" (parenthesized_expression "(pIVar20->file_)" ( (field_expression "pIVar20->file_" identifier -> field_identifier) )) . field_identifier) = (cast_expression "(View *)0x0" ( (type_descriptor "View *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (expression_statement "pIVar20->is_in_sysroot_ = false;" (assignment_expression "pIVar20->is_in_sysroot_ = false" (field_expression "pIVar20->is_in_sysroot_" identifier -> field_identifier) = false) ;) (expression_statement "pIVar20->format_ = FORMAT_NONE;" (assignment_expression "pIVar20->format_ = FORMAT_NONE" (field_expression "pIVar20->format_" identifier -> field_identifier) = identifier) ;) (ERROR "iVar19 = Input_file::" (assignment_expression "iVar19 = Input_file" identifier = identifier) : :) (expression_statement "open(pIVar20,(char *)pDVar5,(int)this,&this->dirindex_);" (call_expression "open(pIVar20,(char *)pDVar5,(int)this,&this->dirindex_)" identifier (argument_list "(pIVar20,(char *)pDVar5,(int)this,&this->dirindex_)" ( identifier , (cast_expression "(char *)pDVar5" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) identifier) , (cast_expression "(int)this" ( (type_descriptor "int" primitive_type) ) identifier) , (pointer_expression "&this->dirindex_" & (field_expression "this->dirindex_" identifier -> field_identifier)) ))) ;) (expression_statement "cVar17 = (char)iVar19;" (assignment_expression "cVar17 = (char)iVar19" identifier = (cast_expression "(char)iVar19" ( (type_descriptor "char" primitive_type) ) identifier)) ;) (if_statement "if (cVar17 != '\0') {\n      filesize = (pIVar20->file_).size_;\n      if (filesize != 0) {\n        bVar16 = is_elf_object(pIVar20,0,&ehdr,&read_size);\n        if ((read_size < 8) ||\n           ((lVar6 = *(long *)ehdr, lVar6 != Archive::armagt && (Archive::armag != lVar6)))) {\n          elf_object = (Object *)0x0;\n          if (bVar16) {\n            _unconfigured = _unconfigured & 0xffffffffffffff00;\n            bVar18 = Input_file::will_search_for(pIVar20);\n            punconfigured = (bool *)0x0;\n            if (bVar18) {\n              punconfigured = &unconfigured;\n            }\n            elf_object = make_elf_object(&(pIVar20->file_).name_,pIVar20,0,ehdr,(long)read_size,\n                                         punconfigured);\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          this_01 = parameters->options_->plugins_;\n          if ((this_01 != (Plugin_manager *)0x0) &&\n             (pPVar23 = Plugin_manager::claim_file(this_01,pIVar20,0,filesize,elf_object),\n             pPVar23 != (Pluginobj *)0x0)) {\n            if (elf_object != (Object *)0x0) {\n              (*elf_object->_vptr_Object[1])(elf_object);\n            }\n            pIVar20 = (pPVar23->super_Object).input_file_;\n            if (pIVar20 != (Input_file *)0x0) {\n              File_read::unlock(&pIVar20->file_,&this->super_Task);\n            }\n            pAVar13 = this->member_;\n            if (pAVar13 == (Archive_member *)0x0) {\n              pTVar22 = (Task *)operator_new(0x80);\n              pIVar4 = this->input_argument_;\n              pLVar11 = this->layout_;\n              pSVar12 = this->symtab_;\n              pIVar10 = this->input_objects_;\n              pTVar22->_vptr_Task = (_func_int_varargs **)&PTR__Add_symbols_003acf00;\n              pTVar25 = (Task *)this->next_blocker_;\n              pTVar7 = this->this_blocker_;\n              pTVar22[1].name_._M_dataplus._M_p = (pointer)pLVar11;\n              pTVar22[1].name_._M_string_length = (size_type)pIVar4;\n              pTVar22->list_next_ = (Task *)0x0;\n              (pTVar22->name_)._M_dataplus._M_p = (pointer)&(pTVar22->name_).field_2;\n              (pTVar22->name_)._M_string_length = 0;\n              (pTVar22->name_).field_2._M_local_buf[0] = '\0';\n              pTVar22->should_run_soon_ = false;\n              pTVar22[1]._vptr_Task = (_func_int_varargs **)pIVar10;\n              pTVar22[1].list_next_ = (Task *)pSVar12;\n              pTVar22[1].name_.field_2._M_allocated_capacity = (size_type)pPVar23;\n              *(undefined8 *)((long)&pTVar22[1].name_.field_2 + 8) = 0;\n              *(undefined8 *)&pTVar22[1].should_run_soon_ = 0;\n              pTVar22[2]._vptr_Task = (_func_int_varargs **)pTVar7;\n              pTVar22[2].list_next_ = pTVar25;\n              Workqueue::queue_next(workqueue,pTVar22);\n              return (bool)cVar17;\n            }\n            pAVar13->sd_ = (Read_symbols_data *)0x0;\n            pAVar13->obj_ = &pPVar23->super_Object;\n            return (bool)cVar17;\n          }\n          if (!bVar16) {\n            pTVar25 = (Task *)operator_new(0x90);\n            pTVar7 = this->next_blocker_;\n            pTVar8 = this->this_blocker_;\n            pIVar4 = this->input_argument_;\n            pIVar14 = this->input_group_;\n            (pTVar25->name_).field_2._M_local_buf[0] = '\0';\n            pMVar9 = this->mapfile_;\n            pIVar10 = this->input_objects_;\n            (pTVar25->name_)._M_dataplus._M_p = (pointer)&(pTVar25->name_).field_2;\n            iVar19 = this->dirindex_;\n            pDVar5 = this->dirpath_;\n            *(Input_group **)&pTVar25[1].should_run_soon_ = pIVar14;\n            pLVar11 = this->layout_;\n            pSVar12 = this->symtab_;\n            pTVar25[2]._vptr_Task = (_func_int_varargs **)pIVar4;\n            pTVar25->list_next_ = (Task *)0x0;\n            (pTVar25->name_)._M_string_length = 0;\n            pTVar25->should_run_soon_ = false;\n            pTVar25->_vptr_Task = (_func_int_varargs **)&PTR__Read_script_003ad080;\n            pTVar25[1]._vptr_Task = (_func_int_varargs **)pSVar12;\n            pTVar25[1].list_next_ = (Task *)pLVar11;\n            pTVar25[1].name_._M_dataplus._M_p = (pointer)pDVar5;\n            *(int *)&pTVar25[1].name_._M_string_length = iVar19;\n            pTVar25[1].name_.field_2._M_allocated_capacity = (size_type)pIVar10;\n            *(Mapfile **)((long)&pTVar25[1].name_.field_2 + 8) = pMVar9;\n            pTVar25[2].list_next_ = (Task *)pIVar20;\n            pTVar25[2].name_._M_dataplus._M_p = &pTVar8->is_blocker_;\n            pTVar25[2].name_._M_string_length = (size_type)pTVar7;\n            Workqueue::queue_soon(workqueue,pTVar25);\n            return (bool)cVar17;\n          }\n          if (elf_object == (Object *)0x0) {\n            if (unconfigured == false) {\n              return false;\n            }\n            this_00 = &pIVar20->file_;\n            incompatible_warning(this->input_argument_,pIVar20);\n            File_read::release(this_00);\n            pRVar27 = this;\n            File_read::unlock(this_00,&this->super_Task);\n            File_read::~File_read(this_00,(int)pRVar27);\n            pcVar15 = (pIVar20->found_name_)._M_dataplus._M_p;\n            if (paVar1 != (anon_union_16_2_edb7204a_for_basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_9\n                           *)pcVar15) {\n              operator_delete(pcVar15);\n            }\n            operator_delete(pIVar20,0xe8);\n            this->dirindex_ = this->dirindex_ + 1;\n            bVar16 = do_read_symbols(this,workqueue);\n            return bVar16;\n          }\n          pRVar24 = (Read_symbols_data *)operator_new(0x80);\n          pRVar24->section_headers = (File_view *)0x0;\n          pRVar24->section_names = (File_view *)0x0;\n          pRVar24->symbols = (File_view *)0x0;\n          pRVar24->symbol_names = (File_view *)0x0;\n          pRVar24->versym = (File_view *)0x0;\n          pRVar24->verdef = (File_view *)0x0;\n          pRVar24->verneed = (File_view *)0x0;\n          (*elf_object->_vptr_Object[8])(elf_object,pRVar24);\n          File_read::unlock(&pIVar20->file_,&this->super_Task);\n          pAVar13 = this->member_;\n          if (pAVar13 == (Archive_member *)0x0) {\n            pTVar22 = (Task *)operator_new(0x80);\n            pIVar4 = this->input_argument_;\n            pLVar11 = this->layout_;\n            pSVar12 = this->symtab_;\n            pIVar10 = this->input_objects_;\n            *(Read_symbols_data **)&pTVar22[1].should_run_soon_ = pRVar24;\n            pTVar25 = (Task *)this->next_blocker_;\n            pTVar7 = this->this_blocker_;\n            (pTVar22->name_)._M_dataplus._M_p = (pointer)&(pTVar22->name_).field_2;\n            pTVar22[1].name_._M_dataplus._M_p = (pointer)pLVar11;\n            pTVar22[1].name_._M_string_length = (size_type)pIVar4;\n            pTVar22->list_next_ = (Task *)0x0;\n            (pTVar22->name_)._M_string_length = 0;\n            (pTVar22->name_).field_2._M_local_buf[0] = '\0';\n            pTVar22->should_run_soon_ = false;\n            pTVar22->_vptr_Task = (_func_int_varargs **)&PTR__Add_symbols_003acf00;\n            pTVar22[1]._vptr_Task = (_func_int_varargs **)pIVar10;\n            pTVar22[1].list_next_ = (Task *)pSVar12;\n            *(Object **)&pTVar22[1].name_.field_2 = elf_object;\n            *(undefined8 *)((long)&pTVar22[1].name_.field_2 + 8) = 0;\n            pTVar22[2]._vptr_Task = (_func_int_varargs **)pTVar7;\n            pTVar22[2].list_next_ = pTVar25;\n            Workqueue::queue_next(workqueue,pTVar22);\n            return bVar16;\n          }\n          pIVar4 = this->input_argument_;\n          pAVar13->sd_ = pRVar24;\n          pAVar13->obj_ = elf_object;\n          bVar16 = pIVar4->is_file_;\n          if (bVar16 != false) {\n            pAVar13->arg_serial_ = (pIVar4->file_).arg_serial_;\n            return bVar16;\n          }\n        }\n        else {\n          bVar16 = this->input_argument_->is_file_;\n          if (bVar16 != false) {\n            __s = (this->input_argument_->file_).name_._M_dataplus._M_p;\n            pcVar26 = (char *)0xffffffffffffffff;\n            _unconfigured = local_48;\n            if (__s != (char *)0x0) {\n              sVar21 = strlen(__s);\n              pcVar26 = __s + sVar21;\n            }\n            std::__cxx11::basic_string<char,_std::char_traits<char>,_std::allocator<char>_>::\n            _M_construct<char_const*>((string *)&unconfigured,__s,pcVar26);\n                    /* try { // try from 001f5e1a to 001f5e1e has its CatchHandler @ 001f63a4 */\n            this_02 = (Archive *)operator_new(0x178);\n                    /* try { // try from 001f5e42 to 001f5e46 has its CatchHandler @ 001f639c */\n            Archive::Archive(this_02,(string *)&unconfigured,pIVar20,lVar6 == Archive::armagt,\n                             this->dirpath_,&this->super_Task);\n            if (_unconfigured != local_48) {\n              operator_delete(_unconfigured);\n            }\n            Archive::setup(this_02);\n            File_read::unlock(&this_02->input_file_->file_,&this->super_Task);\n            pTVar22 = (Task *)operator_new(0x90);\n            pTVar7 = this->next_blocker_;\n            pTVar8 = this->this_blocker_;\n            pTVar25 = (Task *)this->input_group_;\n            pIVar4 = this->input_argument_;\n            (pTVar22->name_).field_2._M_local_buf[0] = '\0';\n            pMVar9 = this->mapfile_;\n            iVar19 = this->dirindex_;\n            (pTVar22->name_)._M_dataplus._M_p = (pointer)&(pTVar22->name_).field_2;\n            pDVar5 = this->dirpath_;\n            pIVar10 = this->input_objects_;\n            *(Input_argument **)&pTVar22[1].should_run_soon_ = pIVar4;\n            pLVar11 = this->layout_;\n            pSVar12 = this->symtab_;\n            pTVar22[2].list_next_ = pTVar25;\n            pTVar22->list_next_ = (Task *)0x0;\n            (pTVar22->name_)._M_string_length = 0;\n            pTVar22->should_run_soon_ = false;\n            pTVar22->_vptr_Task = (_func_int_varargs **)&PTR__Add_archive_symbols_003ae430;\n            pTVar22[1]._vptr_Task = (_func_int_varargs **)pSVar12;\n            pTVar22[1].list_next_ = (Task *)pLVar11;\n            pTVar22[1].name_._M_dataplus._M_p = (pointer)pIVar10;\n            pTVar22[1].name_._M_string_length = (size_type)pDVar5;\n            *(int *)&pTVar22[1].name_.field_2 = iVar19;\n            *(Mapfile **)((long)&pTVar22[1].name_.field_2 + 8) = pMVar9;\n            pTVar22[2]._vptr_Task = (_func_int_varargs **)this_02;\n            pTVar22[2].name_._M_dataplus._M_p = &pTVar8->is_blocker_;\n            pTVar22[2].name_._M_string_length = (size_type)pTVar7;\n            Workqueue::queue_next(workqueue,pTVar22);\n            return bVar16;\n          }\n        }\n                    /* WARNING: Subroutine does not return */\n        do_gold_unreachable("../../gold/options.h",0x828,"file");\n      }\n      pcVar15 = (pIVar20->file_).name_._M_dataplus._M_p;\n      pcVar26 = (char *)gettext("%s: file is empty");\n      gold_error(pcVar26,pcVar15);\n    }" if (parenthesized_expression "(cVar17 != '\0')" ( (binary_expression "cVar17 != '\0'" identifier != (char_literal "'\0'" ' escape_sequence ')) )) (compound_statement "{\n      filesize = (pIVar20->file_).size_;\n      if (filesize != 0) {\n        bVar16 = is_elf_object(pIVar20,0,&ehdr,&read_size);\n        if ((read_size < 8) ||\n           ((lVar6 = *(long *)ehdr, lVar6 != Archive::armagt && (Archive::armag != lVar6)))) {\n          elf_object = (Object *)0x0;\n          if (bVar16) {\n            _unconfigured = _unconfigured & 0xffffffffffffff00;\n            bVar18 = Input_file::will_search_for(pIVar20);\n            punconfigured = (bool *)0x0;\n            if (bVar18) {\n              punconfigured = &unconfigured;\n            }\n            elf_object = make_elf_object(&(pIVar20->file_).name_,pIVar20,0,ehdr,(long)read_size,\n                                         punconfigured);\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          this_01 = parameters->options_->plugins_;\n          if ((this_01 != (Plugin_manager *)0x0) &&\n             (pPVar23 = Plugin_manager::claim_file(this_01,pIVar20,0,filesize,elf_object),\n             pPVar23 != (Pluginobj *)0x0)) {\n            if (elf_object != (Object *)0x0) {\n              (*elf_object->_vptr_Object[1])(elf_object);\n            }\n            pIVar20 = (pPVar23->super_Object).input_file_;\n            if (pIVar20 != (Input_file *)0x0) {\n              File_read::unlock(&pIVar20->file_,&this->super_Task);\n            }\n            pAVar13 = this->member_;\n            if (pAVar13 == (Archive_member *)0x0) {\n              pTVar22 = (Task *)operator_new(0x80);\n              pIVar4 = this->input_argument_;\n              pLVar11 = this->layout_;\n              pSVar12 = this->symtab_;\n              pIVar10 = this->input_objects_;\n              pTVar22->_vptr_Task = (_func_int_varargs **)&PTR__Add_symbols_003acf00;\n              pTVar25 = (Task *)this->next_blocker_;\n              pTVar7 = this->this_blocker_;\n              pTVar22[1].name_._M_dataplus._M_p = (pointer)pLVar11;\n              pTVar22[1].name_._M_string_length = (size_type)pIVar4;\n              pTVar22->list_next_ = (Task *)0x0;\n              (pTVar22->name_)._M_dataplus._M_p = (pointer)&(pTVar22->name_).field_2;\n              (pTVar22->name_)._M_string_length = 0;\n              (pTVar22->name_).field_2._M_local_buf[0] = '\0';\n              pTVar22->should_run_soon_ = false;\n              pTVar22[1]._vptr_Task = (_func_int_varargs **)pIVar10;\n              pTVar22[1].list_next_ = (Task *)pSVar12;\n              pTVar22[1].name_.field_2._M_allocated_capacity = (size_type)pPVar23;\n              *(undefined8 *)((long)&pTVar22[1].name_.field_2 + 8) = 0;\n              *(undefined8 *)&pTVar22[1].should_run_soon_ = 0;\n              pTVar22[2]._vptr_Task = (_func_int_varargs **)pTVar7;\n              pTVar22[2].list_next_ = pTVar25;\n              Workqueue::queue_next(workqueue,pTVar22);\n              return (bool)cVar17;\n            }\n            pAVar13->sd_ = (Read_symbols_data *)0x0;\n            pAVar13->obj_ = &pPVar23->super_Object;\n            return (bool)cVar17;\n          }\n          if (!bVar16) {\n            pTVar25 = (Task *)operator_new(0x90);\n            pTVar7 = this->next_blocker_;\n            pTVar8 = this->this_blocker_;\n            pIVar4 = this->input_argument_;\n            pIVar14 = this->input_group_;\n            (pTVar25->name_).field_2._M_local_buf[0] = '\0';\n            pMVar9 = this->mapfile_;\n            pIVar10 = this->input_objects_;\n            (pTVar25->name_)._M_dataplus._M_p = (pointer)&(pTVar25->name_).field_2;\n            iVar19 = this->dirindex_;\n            pDVar5 = this->dirpath_;\n            *(Input_group **)&pTVar25[1].should_run_soon_ = pIVar14;\n            pLVar11 = this->layout_;\n            pSVar12 = this->symtab_;\n            pTVar25[2]._vptr_Task = (_func_int_varargs **)pIVar4;\n            pTVar25->list_next_ = (Task *)0x0;\n            (pTVar25->name_)._M_string_length = 0;\n            pTVar25->should_run_soon_ = false;\n            pTVar25->_vptr_Task = (_func_int_varargs **)&PTR__Read_script_003ad080;\n            pTVar25[1]._vptr_Task = (_func_int_varargs **)pSVar12;\n            pTVar25[1].list_next_ = (Task *)pLVar11;\n            pTVar25[1].name_._M_dataplus._M_p = (pointer)pDVar5;\n            *(int *)&pTVar25[1].name_._M_string_length = iVar19;\n            pTVar25[1].name_.field_2._M_allocated_capacity = (size_type)pIVar10;\n            *(Mapfile **)((long)&pTVar25[1].name_.field_2 + 8) = pMVar9;\n            pTVar25[2].list_next_ = (Task *)pIVar20;\n            pTVar25[2].name_._M_dataplus._M_p = &pTVar8->is_blocker_;\n            pTVar25[2].name_._M_string_length = (size_type)pTVar7;\n            Workqueue::queue_soon(workqueue,pTVar25);\n            return (bool)cVar17;\n          }\n          if (elf_object == (Object *)0x0) {\n            if (unconfigured == false) {\n              return false;\n            }\n            this_00 = &pIVar20->file_;\n            incompatible_warning(this->input_argument_,pIVar20);\n            File_read::release(this_00);\n            pRVar27 = this;\n            File_read::unlock(this_00,&this->super_Task);\n            File_read::~File_read(this_00,(int)pRVar27);\n            pcVar15 = (pIVar20->found_name_)._M_dataplus._M_p;\n            if (paVar1 != (anon_union_16_2_edb7204a_for_basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_9\n                           *)pcVar15) {\n              operator_delete(pcVar15);\n            }\n            operator_delete(pIVar20,0xe8);\n            this->dirindex_ = this->dirindex_ + 1;\n            bVar16 = do_read_symbols(this,workqueue);\n            return bVar16;\n          }\n          pRVar24 = (Read_symbols_data *)operator_new(0x80);\n          pRVar24->section_headers = (File_view *)0x0;\n          pRVar24->section_names = (File_view *)0x0;\n          pRVar24->symbols = (File_view *)0x0;\n          pRVar24->symbol_names = (File_view *)0x0;\n          pRVar24->versym = (File_view *)0x0;\n          pRVar24->verdef = (File_view *)0x0;\n          pRVar24->verneed = (File_view *)0x0;\n          (*elf_object->_vptr_Object[8])(elf_object,pRVar24);\n          File_read::unlock(&pIVar20->file_,&this->super_Task);\n          pAVar13 = this->member_;\n          if (pAVar13 == (Archive_member *)0x0) {\n            pTVar22 = (Task *)operator_new(0x80);\n            pIVar4 = this->input_argument_;\n            pLVar11 = this->layout_;\n            pSVar12 = this->symtab_;\n            pIVar10 = this->input_objects_;\n            *(Read_symbols_data **)&pTVar22[1].should_run_soon_ = pRVar24;\n            pTVar25 = (Task *)this->next_blocker_;\n            pTVar7 = this->this_blocker_;\n            (pTVar22->name_)._M_dataplus._M_p = (pointer)&(pTVar22->name_).field_2;\n            pTVar22[1].name_._M_dataplus._M_p = (pointer)pLVar11;\n            pTVar22[1].name_._M_string_length = (size_type)pIVar4;\n            pTVar22->list_next_ = (Task *)0x0;\n            (pTVar22->name_)._M_string_length = 0;\n            (pTVar22->name_).field_2._M_local_buf[0] = '\0';\n            pTVar22->should_run_soon_ = false;\n            pTVar22->_vptr_Task = (_func_int_varargs **)&PTR__Add_symbols_003acf00;\n            pTVar22[1]._vptr_Task = (_func_int_varargs **)pIVar10;\n            pTVar22[1].list_next_ = (Task *)pSVar12;\n            *(Object **)&pTVar22[1].name_.field_2 = elf_object;\n            *(undefined8 *)((long)&pTVar22[1].name_.field_2 + 8) = 0;\n            pTVar22[2]._vptr_Task = (_func_int_varargs **)pTVar7;\n            pTVar22[2].list_next_ = pTVar25;\n            Workqueue::queue_next(workqueue,pTVar22);\n            return bVar16;\n          }\n          pIVar4 = this->input_argument_;\n          pAVar13->sd_ = pRVar24;\n          pAVar13->obj_ = elf_object;\n          bVar16 = pIVar4->is_file_;\n          if (bVar16 != false) {\n            pAVar13->arg_serial_ = (pIVar4->file_).arg_serial_;\n            return bVar16;\n          }\n        }\n        else {\n          bVar16 = this->input_argument_->is_file_;\n          if (bVar16 != false) {\n            __s = (this->input_argument_->file_).name_._M_dataplus._M_p;\n            pcVar26 = (char *)0xffffffffffffffff;\n            _unconfigured = local_48;\n            if (__s != (char *)0x0) {\n              sVar21 = strlen(__s);\n              pcVar26 = __s + sVar21;\n            }\n            std::__cxx11::basic_string<char,_std::char_traits<char>,_std::allocator<char>_>::\n            _M_construct<char_const*>((string *)&unconfigured,__s,pcVar26);\n                    /* try { // try from 001f5e1a to 001f5e1e has its CatchHandler @ 001f63a4 */\n            this_02 = (Archive *)operator_new(0x178);\n                    /* try { // try from 001f5e42 to 001f5e46 has its CatchHandler @ 001f639c */\n            Archive::Archive(this_02,(string *)&unconfigured,pIVar20,lVar6 == Archive::armagt,\n                             this->dirpath_,&this->super_Task);\n            if (_unconfigured != local_48) {\n              operator_delete(_unconfigured);\n            }\n            Archive::setup(this_02);\n            File_read::unlock(&this_02->input_file_->file_,&this->super_Task);\n            pTVar22 = (Task *)operator_new(0x90);\n            pTVar7 = this->next_blocker_;\n            pTVar8 = this->this_blocker_;\n            pTVar25 = (Task *)this->input_group_;\n            pIVar4 = this->input_argument_;\n            (pTVar22->name_).field_2._M_local_buf[0] = '\0';\n            pMVar9 = this->mapfile_;\n            iVar19 = this->dirindex_;\n            (pTVar22->name_)._M_dataplus._M_p = (pointer)&(pTVar22->name_).field_2;\n            pDVar5 = this->dirpath_;\n            pIVar10 = this->input_objects_;\n            *(Input_argument **)&pTVar22[1].should_run_soon_ = pIVar4;\n            pLVar11 = this->layout_;\n            pSVar12 = this->symtab_;\n            pTVar22[2].list_next_ = pTVar25;\n            pTVar22->list_next_ = (Task *)0x0;\n            (pTVar22->name_)._M_string_length = 0;\n            pTVar22->should_run_soon_ = false;\n            pTVar22->_vptr_Task = (_func_int_varargs **)&PTR__Add_archive_symbols_003ae430;\n            pTVar22[1]._vptr_Task = (_func_int_varargs **)pSVar12;\n            pTVar22[1].list_next_ = (Task *)pLVar11;\n            pTVar22[1].name_._M_dataplus._M_p = (pointer)pIVar10;\n            pTVar22[1].name_._M_string_length = (size_type)pDVar5;\n            *(int *)&pTVar22[1].name_.field_2 = iVar19;\n            *(Mapfile **)((long)&pTVar22[1].name_.field_2 + 8) = pMVar9;\n            pTVar22[2]._vptr_Task = (_func_int_varargs **)this_02;\n            pTVar22[2].name_._M_dataplus._M_p = &pTVar8->is_blocker_;\n            pTVar22[2].name_._M_string_length = (size_type)pTVar7;\n            Workqueue::queue_next(workqueue,pTVar22);\n            return bVar16;\n          }\n        }\n                    /* WARNING: Subroutine does not return */\n        do_gold_unreachable("../../gold/options.h",0x828,"file");\n      }\n      pcVar15 = (pIVar20->file_).name_._M_dataplus._M_p;\n      pcVar26 = (char *)gettext("%s: file is empty");\n      gold_error(pcVar26,pcVar15);\n    }" { (expression_statement "filesize = (pIVar20->file_).size_;" (assignment_expression "filesize = (pIVar20->file_).size_" identifier = (field_expression "(pIVar20->file_).size_" (parenthesized_expression "(pIVar20->file_)" ( (field_expression "pIVar20->file_" identifier -> field_identifier) )) . field_identifier)) ;) (if_statement "if (filesize != 0) {\n        bVar16 = is_elf_object(pIVar20,0,&ehdr,&read_size);\n        if ((read_size < 8) ||\n           ((lVar6 = *(long *)ehdr, lVar6 != Archive::armagt && (Archive::armag != lVar6)))) {\n          elf_object = (Object *)0x0;\n          if (bVar16) {\n            _unconfigured = _unconfigured & 0xffffffffffffff00;\n            bVar18 = Input_file::will_search_for(pIVar20);\n            punconfigured = (bool *)0x0;\n            if (bVar18) {\n              punconfigured = &unconfigured;\n            }\n            elf_object = make_elf_object(&(pIVar20->file_).name_,pIVar20,0,ehdr,(long)read_size,\n                                         punconfigured);\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          this_01 = parameters->options_->plugins_;\n          if ((this_01 != (Plugin_manager *)0x0) &&\n             (pPVar23 = Plugin_manager::claim_file(this_01,pIVar20,0,filesize,elf_object),\n             pPVar23 != (Pluginobj *)0x0)) {\n            if (elf_object != (Object *)0x0) {\n              (*elf_object->_vptr_Object[1])(elf_object);\n            }\n            pIVar20 = (pPVar23->super_Object).input_file_;\n            if (pIVar20 != (Input_file *)0x0) {\n              File_read::unlock(&pIVar20->file_,&this->super_Task);\n            }\n            pAVar13 = this->member_;\n            if (pAVar13 == (Archive_member *)0x0) {\n              pTVar22 = (Task *)operator_new(0x80);\n              pIVar4 = this->input_argument_;\n              pLVar11 = this->layout_;\n              pSVar12 = this->symtab_;\n              pIVar10 = this->input_objects_;\n              pTVar22->_vptr_Task = (_func_int_varargs **)&PTR__Add_symbols_003acf00;\n              pTVar25 = (Task *)this->next_blocker_;\n              pTVar7 = this->this_blocker_;\n              pTVar22[1].name_._M_dataplus._M_p = (pointer)pLVar11;\n              pTVar22[1].name_._M_string_length = (size_type)pIVar4;\n              pTVar22->list_next_ = (Task *)0x0;\n              (pTVar22->name_)._M_dataplus._M_p = (pointer)&(pTVar22->name_).field_2;\n              (pTVar22->name_)._M_string_length = 0;\n              (pTVar22->name_).field_2._M_local_buf[0] = '\0';\n              pTVar22->should_run_soon_ = false;\n              pTVar22[1]._vptr_Task = (_func_int_varargs **)pIVar10;\n              pTVar22[1].list_next_ = (Task *)pSVar12;\n              pTVar22[1].name_.field_2._M_allocated_capacity = (size_type)pPVar23;\n              *(undefined8 *)((long)&pTVar22[1].name_.field_2 + 8) = 0;\n              *(undefined8 *)&pTVar22[1].should_run_soon_ = 0;\n              pTVar22[2]._vptr_Task = (_func_int_varargs **)pTVar7;\n              pTVar22[2].list_next_ = pTVar25;\n              Workqueue::queue_next(workqueue,pTVar22);\n              return (bool)cVar17;\n            }\n            pAVar13->sd_ = (Read_symbols_data *)0x0;\n            pAVar13->obj_ = &pPVar23->super_Object;\n            return (bool)cVar17;\n          }\n          if (!bVar16) {\n            pTVar25 = (Task *)operator_new(0x90);\n            pTVar7 = this->next_blocker_;\n            pTVar8 = this->this_blocker_;\n            pIVar4 = this->input_argument_;\n            pIVar14 = this->input_group_;\n            (pTVar25->name_).field_2._M_local_buf[0] = '\0';\n            pMVar9 = this->mapfile_;\n            pIVar10 = this->input_objects_;\n            (pTVar25->name_)._M_dataplus._M_p = (pointer)&(pTVar25->name_).field_2;\n            iVar19 = this->dirindex_;\n            pDVar5 = this->dirpath_;\n            *(Input_group **)&pTVar25[1].should_run_soon_ = pIVar14;\n            pLVar11 = this->layout_;\n            pSVar12 = this->symtab_;\n            pTVar25[2]._vptr_Task = (_func_int_varargs **)pIVar4;\n            pTVar25->list_next_ = (Task *)0x0;\n            (pTVar25->name_)._M_string_length = 0;\n            pTVar25->should_run_soon_ = false;\n            pTVar25->_vptr_Task = (_func_int_varargs **)&PTR__Read_script_003ad080;\n            pTVar25[1]._vptr_Task = (_func_int_varargs **)pSVar12;\n            pTVar25[1].list_next_ = (Task *)pLVar11;\n            pTVar25[1].name_._M_dataplus._M_p = (pointer)pDVar5;\n            *(int *)&pTVar25[1].name_._M_string_length = iVar19;\n            pTVar25[1].name_.field_2._M_allocated_capacity = (size_type)pIVar10;\n            *(Mapfile **)((long)&pTVar25[1].name_.field_2 + 8) = pMVar9;\n            pTVar25[2].list_next_ = (Task *)pIVar20;\n            pTVar25[2].name_._M_dataplus._M_p = &pTVar8->is_blocker_;\n            pTVar25[2].name_._M_string_length = (size_type)pTVar7;\n            Workqueue::queue_soon(workqueue,pTVar25);\n            return (bool)cVar17;\n          }\n          if (elf_object == (Object *)0x0) {\n            if (unconfigured == false) {\n              return false;\n            }\n            this_00 = &pIVar20->file_;\n            incompatible_warning(this->input_argument_,pIVar20);\n            File_read::release(this_00);\n            pRVar27 = this;\n            File_read::unlock(this_00,&this->super_Task);\n            File_read::~File_read(this_00,(int)pRVar27);\n            pcVar15 = (pIVar20->found_name_)._M_dataplus._M_p;\n            if (paVar1 != (anon_union_16_2_edb7204a_for_basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_9\n                           *)pcVar15) {\n              operator_delete(pcVar15);\n            }\n            operator_delete(pIVar20,0xe8);\n            this->dirindex_ = this->dirindex_ + 1;\n            bVar16 = do_read_symbols(this,workqueue);\n            return bVar16;\n          }\n          pRVar24 = (Read_symbols_data *)operator_new(0x80);\n          pRVar24->section_headers = (File_view *)0x0;\n          pRVar24->section_names = (File_view *)0x0;\n          pRVar24->symbols = (File_view *)0x0;\n          pRVar24->symbol_names = (File_view *)0x0;\n          pRVar24->versym = (File_view *)0x0;\n          pRVar24->verdef = (File_view *)0x0;\n          pRVar24->verneed = (File_view *)0x0;\n          (*elf_object->_vptr_Object[8])(elf_object,pRVar24);\n          File_read::unlock(&pIVar20->file_,&this->super_Task);\n          pAVar13 = this->member_;\n          if (pAVar13 == (Archive_member *)0x0) {\n            pTVar22 = (Task *)operator_new(0x80);\n            pIVar4 = this->input_argument_;\n            pLVar11 = this->layout_;\n            pSVar12 = this->symtab_;\n            pIVar10 = this->input_objects_;\n            *(Read_symbols_data **)&pTVar22[1].should_run_soon_ = pRVar24;\n            pTVar25 = (Task *)this->next_blocker_;\n            pTVar7 = this->this_blocker_;\n            (pTVar22->name_)._M_dataplus._M_p = (pointer)&(pTVar22->name_).field_2;\n            pTVar22[1].name_._M_dataplus._M_p = (pointer)pLVar11;\n            pTVar22[1].name_._M_string_length = (size_type)pIVar4;\n            pTVar22->list_next_ = (Task *)0x0;\n            (pTVar22->name_)._M_string_length = 0;\n            (pTVar22->name_).field_2._M_local_buf[0] = '\0';\n            pTVar22->should_run_soon_ = false;\n            pTVar22->_vptr_Task = (_func_int_varargs **)&PTR__Add_symbols_003acf00;\n            pTVar22[1]._vptr_Task = (_func_int_varargs **)pIVar10;\n            pTVar22[1].list_next_ = (Task *)pSVar12;\n            *(Object **)&pTVar22[1].name_.field_2 = elf_object;\n            *(undefined8 *)((long)&pTVar22[1].name_.field_2 + 8) = 0;\n            pTVar22[2]._vptr_Task = (_func_int_varargs **)pTVar7;\n            pTVar22[2].list_next_ = pTVar25;\n            Workqueue::queue_next(workqueue,pTVar22);\n            return bVar16;\n          }\n          pIVar4 = this->input_argument_;\n          pAVar13->sd_ = pRVar24;\n          pAVar13->obj_ = elf_object;\n          bVar16 = pIVar4->is_file_;\n          if (bVar16 != false) {\n            pAVar13->arg_serial_ = (pIVar4->file_).arg_serial_;\n            return bVar16;\n          }\n        }\n        else {\n          bVar16 = this->input_argument_->is_file_;\n          if (bVar16 != false) {\n            __s = (this->input_argument_->file_).name_._M_dataplus._M_p;\n            pcVar26 = (char *)0xffffffffffffffff;\n            _unconfigured = local_48;\n            if (__s != (char *)0x0) {\n              sVar21 = strlen(__s);\n              pcVar26 = __s + sVar21;\n            }\n            std::__cxx11::basic_string<char,_std::char_traits<char>,_std::allocator<char>_>::\n            _M_construct<char_const*>((string *)&unconfigured,__s,pcVar26);\n                    /* try { // try from 001f5e1a to 001f5e1e has its CatchHandler @ 001f63a4 */\n            this_02 = (Archive *)operator_new(0x178);\n                    /* try { // try from 001f5e42 to 001f5e46 has its CatchHandler @ 001f639c */\n            Archive::Archive(this_02,(string *)&unconfigured,pIVar20,lVar6 == Archive::armagt,\n                             this->dirpath_,&this->super_Task);\n            if (_unconfigured != local_48) {\n              operator_delete(_unconfigured);\n            }\n            Archive::setup(this_02);\n            File_read::unlock(&this_02->input_file_->file_,&this->super_Task);\n            pTVar22 = (Task *)operator_new(0x90);\n            pTVar7 = this->next_blocker_;\n            pTVar8 = this->this_blocker_;\n            pTVar25 = (Task *)this->input_group_;\n            pIVar4 = this->input_argument_;\n            (pTVar22->name_).field_2._M_local_buf[0] = '\0';\n            pMVar9 = this->mapfile_;\n            iVar19 = this->dirindex_;\n            (pTVar22->name_)._M_dataplus._M_p = (pointer)&(pTVar22->name_).field_2;\n            pDVar5 = this->dirpath_;\n            pIVar10 = this->input_objects_;\n            *(Input_argument **)&pTVar22[1].should_run_soon_ = pIVar4;\n            pLVar11 = this->layout_;\n            pSVar12 = this->symtab_;\n            pTVar22[2].list_next_ = pTVar25;\n            pTVar22->list_next_ = (Task *)0x0;\n            (pTVar22->name_)._M_string_length = 0;\n            pTVar22->should_run_soon_ = false;\n            pTVar22->_vptr_Task = (_func_int_varargs **)&PTR__Add_archive_symbols_003ae430;\n            pTVar22[1]._vptr_Task = (_func_int_varargs **)pSVar12;\n            pTVar22[1].list_next_ = (Task *)pLVar11;\n            pTVar22[1].name_._M_dataplus._M_p = (pointer)pIVar10;\n            pTVar22[1].name_._M_string_length = (size_type)pDVar5;\n            *(int *)&pTVar22[1].name_.field_2 = iVar19;\n            *(Mapfile **)((long)&pTVar22[1].name_.field_2 + 8) = pMVar9;\n            pTVar22[2]._vptr_Task = (_func_int_varargs **)this_02;\n            pTVar22[2].name_._M_dataplus._M_p = &pTVar8->is_blocker_;\n            pTVar22[2].name_._M_string_length = (size_type)pTVar7;\n            Workqueue::queue_next(workqueue,pTVar22);\n            return bVar16;\n          }\n        }\n                    /* WARNING: Subroutine does not return */\n        do_gold_unreachable("../../gold/options.h",0x828,"file");\n      }" if (parenthesized_expression "(filesize != 0)" ( (binary_expression "filesize != 0" identifier != number_literal) )) (compound_statement "{\n        bVar16 = is_elf_object(pIVar20,0,&ehdr,&read_size);\n        if ((read_size < 8) ||\n           ((lVar6 = *(long *)ehdr, lVar6 != Archive::armagt && (Archive::armag != lVar6)))) {\n          elf_object = (Object *)0x0;\n          if (bVar16) {\n            _unconfigured = _unconfigured & 0xffffffffffffff00;\n            bVar18 = Input_file::will_search_for(pIVar20);\n            punconfigured = (bool *)0x0;\n            if (bVar18) {\n              punconfigured = &unconfigured;\n            }\n            elf_object = make_elf_object(&(pIVar20->file_).name_,pIVar20,0,ehdr,(long)read_size,\n                                         punconfigured);\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          this_01 = parameters->options_->plugins_;\n          if ((this_01 != (Plugin_manager *)0x0) &&\n             (pPVar23 = Plugin_manager::claim_file(this_01,pIVar20,0,filesize,elf_object),\n             pPVar23 != (Pluginobj *)0x0)) {\n            if (elf_object != (Object *)0x0) {\n              (*elf_object->_vptr_Object[1])(elf_object);\n            }\n            pIVar20 = (pPVar23->super_Object).input_file_;\n            if (pIVar20 != (Input_file *)0x0) {\n              File_read::unlock(&pIVar20->file_,&this->super_Task);\n            }\n            pAVar13 = this->member_;\n            if (pAVar13 == (Archive_member *)0x0) {\n              pTVar22 = (Task *)operator_new(0x80);\n              pIVar4 = this->input_argument_;\n              pLVar11 = this->layout_;\n              pSVar12 = this->symtab_;\n              pIVar10 = this->input_objects_;\n              pTVar22->_vptr_Task = (_func_int_varargs **)&PTR__Add_symbols_003acf00;\n              pTVar25 = (Task *)this->next_blocker_;\n              pTVar7 = this->this_blocker_;\n              pTVar22[1].name_._M_dataplus._M_p = (pointer)pLVar11;\n              pTVar22[1].name_._M_string_length = (size_type)pIVar4;\n              pTVar22->list_next_ = (Task *)0x0;\n              (pTVar22->name_)._M_dataplus._M_p = (pointer)&(pTVar22->name_).field_2;\n              (pTVar22->name_)._M_string_length = 0;\n              (pTVar22->name_).field_2._M_local_buf[0] = '\0';\n              pTVar22->should_run_soon_ = false;\n              pTVar22[1]._vptr_Task = (_func_int_varargs **)pIVar10;\n              pTVar22[1].list_next_ = (Task *)pSVar12;\n              pTVar22[1].name_.field_2._M_allocated_capacity = (size_type)pPVar23;\n              *(undefined8 *)((long)&pTVar22[1].name_.field_2 + 8) = 0;\n              *(undefined8 *)&pTVar22[1].should_run_soon_ = 0;\n              pTVar22[2]._vptr_Task = (_func_int_varargs **)pTVar7;\n              pTVar22[2].list_next_ = pTVar25;\n              Workqueue::queue_next(workqueue,pTVar22);\n              return (bool)cVar17;\n            }\n            pAVar13->sd_ = (Read_symbols_data *)0x0;\n            pAVar13->obj_ = &pPVar23->super_Object;\n            return (bool)cVar17;\n          }\n          if (!bVar16) {\n            pTVar25 = (Task *)operator_new(0x90);\n            pTVar7 = this->next_blocker_;\n            pTVar8 = this->this_blocker_;\n            pIVar4 = this->input_argument_;\n            pIVar14 = this->input_group_;\n            (pTVar25->name_).field_2._M_local_buf[0] = '\0';\n            pMVar9 = this->mapfile_;\n            pIVar10 = this->input_objects_;\n            (pTVar25->name_)._M_dataplus._M_p = (pointer)&(pTVar25->name_).field_2;\n            iVar19 = this->dirindex_;\n            pDVar5 = this->dirpath_;\n            *(Input_group **)&pTVar25[1].should_run_soon_ = pIVar14;\n            pLVar11 = this->layout_;\n            pSVar12 = this->symtab_;\n            pTVar25[2]._vptr_Task = (_func_int_varargs **)pIVar4;\n            pTVar25->list_next_ = (Task *)0x0;\n            (pTVar25->name_)._M_string_length = 0;\n            pTVar25->should_run_soon_ = false;\n            pTVar25->_vptr_Task = (_func_int_varargs **)&PTR__Read_script_003ad080;\n            pTVar25[1]._vptr_Task = (_func_int_varargs **)pSVar12;\n            pTVar25[1].list_next_ = (Task *)pLVar11;\n            pTVar25[1].name_._M_dataplus._M_p = (pointer)pDVar5;\n            *(int *)&pTVar25[1].name_._M_string_length = iVar19;\n            pTVar25[1].name_.field_2._M_allocated_capacity = (size_type)pIVar10;\n            *(Mapfile **)((long)&pTVar25[1].name_.field_2 + 8) = pMVar9;\n            pTVar25[2].list_next_ = (Task *)pIVar20;\n            pTVar25[2].name_._M_dataplus._M_p = &pTVar8->is_blocker_;\n            pTVar25[2].name_._M_string_length = (size_type)pTVar7;\n            Workqueue::queue_soon(workqueue,pTVar25);\n            return (bool)cVar17;\n          }\n          if (elf_object == (Object *)0x0) {\n            if (unconfigured == false) {\n              return false;\n            }\n            this_00 = &pIVar20->file_;\n            incompatible_warning(this->input_argument_,pIVar20);\n            File_read::release(this_00);\n            pRVar27 = this;\n            File_read::unlock(this_00,&this->super_Task);\n            File_read::~File_read(this_00,(int)pRVar27);\n            pcVar15 = (pIVar20->found_name_)._M_dataplus._M_p;\n            if (paVar1 != (anon_union_16_2_edb7204a_for_basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_9\n                           *)pcVar15) {\n              operator_delete(pcVar15);\n            }\n            operator_delete(pIVar20,0xe8);\n            this->dirindex_ = this->dirindex_ + 1;\n            bVar16 = do_read_symbols(this,workqueue);\n            return bVar16;\n          }\n          pRVar24 = (Read_symbols_data *)operator_new(0x80);\n          pRVar24->section_headers = (File_view *)0x0;\n          pRVar24->section_names = (File_view *)0x0;\n          pRVar24->symbols = (File_view *)0x0;\n          pRVar24->symbol_names = (File_view *)0x0;\n          pRVar24->versym = (File_view *)0x0;\n          pRVar24->verdef = (File_view *)0x0;\n          pRVar24->verneed = (File_view *)0x0;\n          (*elf_object->_vptr_Object[8])(elf_object,pRVar24);\n          File_read::unlock(&pIVar20->file_,&this->super_Task);\n          pAVar13 = this->member_;\n          if (pAVar13 == (Archive_member *)0x0) {\n            pTVar22 = (Task *)operator_new(0x80);\n            pIVar4 = this->input_argument_;\n            pLVar11 = this->layout_;\n            pSVar12 = this->symtab_;\n            pIVar10 = this->input_objects_;\n            *(Read_symbols_data **)&pTVar22[1].should_run_soon_ = pRVar24;\n            pTVar25 = (Task *)this->next_blocker_;\n            pTVar7 = this->this_blocker_;\n            (pTVar22->name_)._M_dataplus._M_p = (pointer)&(pTVar22->name_).field_2;\n            pTVar22[1].name_._M_dataplus._M_p = (pointer)pLVar11;\n            pTVar22[1].name_._M_string_length = (size_type)pIVar4;\n            pTVar22->list_next_ = (Task *)0x0;\n            (pTVar22->name_)._M_string_length = 0;\n            (pTVar22->name_).field_2._M_local_buf[0] = '\0';\n            pTVar22->should_run_soon_ = false;\n            pTVar22->_vptr_Task = (_func_int_varargs **)&PTR__Add_symbols_003acf00;\n            pTVar22[1]._vptr_Task = (_func_int_varargs **)pIVar10;\n            pTVar22[1].list_next_ = (Task *)pSVar12;\n            *(Object **)&pTVar22[1].name_.field_2 = elf_object;\n            *(undefined8 *)((long)&pTVar22[1].name_.field_2 + 8) = 0;\n            pTVar22[2]._vptr_Task = (_func_int_varargs **)pTVar7;\n            pTVar22[2].list_next_ = pTVar25;\n            Workqueue::queue_next(workqueue,pTVar22);\n            return bVar16;\n          }\n          pIVar4 = this->input_argument_;\n          pAVar13->sd_ = pRVar24;\n          pAVar13->obj_ = elf_object;\n          bVar16 = pIVar4->is_file_;\n          if (bVar16 != false) {\n            pAVar13->arg_serial_ = (pIVar4->file_).arg_serial_;\n            return bVar16;\n          }\n        }\n        else {\n          bVar16 = this->input_argument_->is_file_;\n          if (bVar16 != false) {\n            __s = (this->input_argument_->file_).name_._M_dataplus._M_p;\n            pcVar26 = (char *)0xffffffffffffffff;\n            _unconfigured = local_48;\n            if (__s != (char *)0x0) {\n              sVar21 = strlen(__s);\n              pcVar26 = __s + sVar21;\n            }\n            std::__cxx11::basic_string<char,_std::char_traits<char>,_std::allocator<char>_>::\n            _M_construct<char_const*>((string *)&unconfigured,__s,pcVar26);\n                    /* try { // try from 001f5e1a to 001f5e1e has its CatchHandler @ 001f63a4 */\n            this_02 = (Archive *)operator_new(0x178);\n                    /* try { // try from 001f5e42 to 001f5e46 has its CatchHandler @ 001f639c */\n            Archive::Archive(this_02,(string *)&unconfigured,pIVar20,lVar6 == Archive::armagt,\n                             this->dirpath_,&this->super_Task);\n            if (_unconfigured != local_48) {\n              operator_delete(_unconfigured);\n            }\n            Archive::setup(this_02);\n            File_read::unlock(&this_02->input_file_->file_,&this->super_Task);\n            pTVar22 = (Task *)operator_new(0x90);\n            pTVar7 = this->next_blocker_;\n            pTVar8 = this->this_blocker_;\n            pTVar25 = (Task *)this->input_group_;\n            pIVar4 = this->input_argument_;\n            (pTVar22->name_).field_2._M_local_buf[0] = '\0';\n            pMVar9 = this->mapfile_;\n            iVar19 = this->dirindex_;\n            (pTVar22->name_)._M_dataplus._M_p = (pointer)&(pTVar22->name_).field_2;\n            pDVar5 = this->dirpath_;\n            pIVar10 = this->input_objects_;\n            *(Input_argument **)&pTVar22[1].should_run_soon_ = pIVar4;\n            pLVar11 = this->layout_;\n            pSVar12 = this->symtab_;\n            pTVar22[2].list_next_ = pTVar25;\n            pTVar22->list_next_ = (Task *)0x0;\n            (pTVar22->name_)._M_string_length = 0;\n            pTVar22->should_run_soon_ = false;\n            pTVar22->_vptr_Task = (_func_int_varargs **)&PTR__Add_archive_symbols_003ae430;\n            pTVar22[1]._vptr_Task = (_func_int_varargs **)pSVar12;\n            pTVar22[1].list_next_ = (Task *)pLVar11;\n            pTVar22[1].name_._M_dataplus._M_p = (pointer)pIVar10;\n            pTVar22[1].name_._M_string_length = (size_type)pDVar5;\n            *(int *)&pTVar22[1].name_.field_2 = iVar19;\n            *(Mapfile **)((long)&pTVar22[1].name_.field_2 + 8) = pMVar9;\n            pTVar22[2]._vptr_Task = (_func_int_varargs **)this_02;\n            pTVar22[2].name_._M_dataplus._M_p = &pTVar8->is_blocker_;\n            pTVar22[2].name_._M_string_length = (size_type)pTVar7;\n            Workqueue::queue_next(workqueue,pTVar22);\n            return bVar16;\n          }\n        }\n                    /* WARNING: Subroutine does not return */\n        do_gold_unreachable("../../gold/options.h",0x828,"file");\n      }" { (expression_statement "bVar16 = is_elf_object(pIVar20,0,&ehdr,&read_size);" (assignment_expression "bVar16 = is_elf_object(pIVar20,0,&ehdr,&read_size)" identifier = (call_expression "is_elf_object(pIVar20,0,&ehdr,&read_size)" identifier (argument_list "(pIVar20,0,&ehdr,&read_size)" ( identifier , number_literal , (pointer_expression "&ehdr" & identifier) , (pointer_expression "&read_size" & identifier) )))) ;) (if_statement "if ((read_size < 8) ||\n           ((lVar6 = *(long *)ehdr, lVar6 != Archive::armagt && (Archive::armag != lVar6)))) {\n          elf_object = (Object *)0x0;\n          if (bVar16) {\n            _unconfigured = _unconfigured & 0xffffffffffffff00;\n            bVar18 = Input_file::will_search_for(pIVar20);\n            punconfigured = (bool *)0x0;\n            if (bVar18) {\n              punconfigured = &unconfigured;\n            }\n            elf_object = make_elf_object(&(pIVar20->file_).name_,pIVar20,0,ehdr,(long)read_size,\n                                         punconfigured);\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          this_01 = parameters->options_->plugins_;\n          if ((this_01 != (Plugin_manager *)0x0) &&\n             (pPVar23 = Plugin_manager::claim_file(this_01,pIVar20,0,filesize,elf_object),\n             pPVar23 != (Pluginobj *)0x0)) {\n            if (elf_object != (Object *)0x0) {\n              (*elf_object->_vptr_Object[1])(elf_object);\n            }\n            pIVar20 = (pPVar23->super_Object).input_file_;\n            if (pIVar20 != (Input_file *)0x0) {\n              File_read::unlock(&pIVar20->file_,&this->super_Task);\n            }\n            pAVar13 = this->member_;\n            if (pAVar13 == (Archive_member *)0x0) {\n              pTVar22 = (Task *)operator_new(0x80);\n              pIVar4 = this->input_argument_;\n              pLVar11 = this->layout_;\n              pSVar12 = this->symtab_;\n              pIVar10 = this->input_objects_;\n              pTVar22->_vptr_Task = (_func_int_varargs **)&PTR__Add_symbols_003acf00;\n              pTVar25 = (Task *)this->next_blocker_;\n              pTVar7 = this->this_blocker_;\n              pTVar22[1].name_._M_dataplus._M_p = (pointer)pLVar11;\n              pTVar22[1].name_._M_string_length = (size_type)pIVar4;\n              pTVar22->list_next_ = (Task *)0x0;\n              (pTVar22->name_)._M_dataplus._M_p = (pointer)&(pTVar22->name_).field_2;\n              (pTVar22->name_)._M_string_length = 0;\n              (pTVar22->name_).field_2._M_local_buf[0] = '\0';\n              pTVar22->should_run_soon_ = false;\n              pTVar22[1]._vptr_Task = (_func_int_varargs **)pIVar10;\n              pTVar22[1].list_next_ = (Task *)pSVar12;\n              pTVar22[1].name_.field_2._M_allocated_capacity = (size_type)pPVar23;\n              *(undefined8 *)((long)&pTVar22[1].name_.field_2 + 8) = 0;\n              *(undefined8 *)&pTVar22[1].should_run_soon_ = 0;\n              pTVar22[2]._vptr_Task = (_func_int_varargs **)pTVar7;\n              pTVar22[2].list_next_ = pTVar25;\n              Workqueue::queue_next(workqueue,pTVar22);\n              return (bool)cVar17;\n            }\n            pAVar13->sd_ = (Read_symbols_data *)0x0;\n            pAVar13->obj_ = &pPVar23->super_Object;\n            return (bool)cVar17;\n          }\n          if (!bVar16) {\n            pTVar25 = (Task *)operator_new(0x90);\n            pTVar7 = this->next_blocker_;\n            pTVar8 = this->this_blocker_;\n            pIVar4 = this->input_argument_;\n            pIVar14 = this->input_group_;\n            (pTVar25->name_).field_2._M_local_buf[0] = '\0';\n            pMVar9 = this->mapfile_;\n            pIVar10 = this->input_objects_;\n            (pTVar25->name_)._M_dataplus._M_p = (pointer)&(pTVar25->name_).field_2;\n            iVar19 = this->dirindex_;\n            pDVar5 = this->dirpath_;\n            *(Input_group **)&pTVar25[1].should_run_soon_ = pIVar14;\n            pLVar11 = this->layout_;\n            pSVar12 = this->symtab_;\n            pTVar25[2]._vptr_Task = (_func_int_varargs **)pIVar4;\n            pTVar25->list_next_ = (Task *)0x0;\n            (pTVar25->name_)._M_string_length = 0;\n            pTVar25->should_run_soon_ = false;\n            pTVar25->_vptr_Task = (_func_int_varargs **)&PTR__Read_script_003ad080;\n            pTVar25[1]._vptr_Task = (_func_int_varargs **)pSVar12;\n            pTVar25[1].list_next_ = (Task *)pLVar11;\n            pTVar25[1].name_._M_dataplus._M_p = (pointer)pDVar5;\n            *(int *)&pTVar25[1].name_._M_string_length = iVar19;\n            pTVar25[1].name_.field_2._M_allocated_capacity = (size_type)pIVar10;\n            *(Mapfile **)((long)&pTVar25[1].name_.field_2 + 8) = pMVar9;\n            pTVar25[2].list_next_ = (Task *)pIVar20;\n            pTVar25[2].name_._M_dataplus._M_p = &pTVar8->is_blocker_;\n            pTVar25[2].name_._M_string_length = (size_type)pTVar7;\n            Workqueue::queue_soon(workqueue,pTVar25);\n            return (bool)cVar17;\n          }\n          if (elf_object == (Object *)0x0) {\n            if (unconfigured == false) {\n              return false;\n            }\n            this_00 = &pIVar20->file_;\n            incompatible_warning(this->input_argument_,pIVar20);\n            File_read::release(this_00);\n            pRVar27 = this;\n            File_read::unlock(this_00,&this->super_Task);\n            File_read::~File_read(this_00,(int)pRVar27);\n            pcVar15 = (pIVar20->found_name_)._M_dataplus._M_p;\n            if (paVar1 != (anon_union_16_2_edb7204a_for_basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_9\n                           *)pcVar15) {\n              operator_delete(pcVar15);\n            }\n            operator_delete(pIVar20,0xe8);\n            this->dirindex_ = this->dirindex_ + 1;\n            bVar16 = do_read_symbols(this,workqueue);\n            return bVar16;\n          }\n          pRVar24 = (Read_symbols_data *)operator_new(0x80);\n          pRVar24->section_headers = (File_view *)0x0;\n          pRVar24->section_names = (File_view *)0x0;\n          pRVar24->symbols = (File_view *)0x0;\n          pRVar24->symbol_names = (File_view *)0x0;\n          pRVar24->versym = (File_view *)0x0;\n          pRVar24->verdef = (File_view *)0x0;\n          pRVar24->verneed = (File_view *)0x0;\n          (*elf_object->_vptr_Object[8])(elf_object,pRVar24);\n          File_read::unlock(&pIVar20->file_,&this->super_Task);\n          pAVar13 = this->member_;\n          if (pAVar13 == (Archive_member *)0x0) {\n            pTVar22 = (Task *)operator_new(0x80);\n            pIVar4 = this->input_argument_;\n            pLVar11 = this->layout_;\n            pSVar12 = this->symtab_;\n            pIVar10 = this->input_objects_;\n            *(Read_symbols_data **)&pTVar22[1].should_run_soon_ = pRVar24;\n            pTVar25 = (Task *)this->next_blocker_;\n            pTVar7 = this->this_blocker_;\n            (pTVar22->name_)._M_dataplus._M_p = (pointer)&(pTVar22->name_).field_2;\n            pTVar22[1].name_._M_dataplus._M_p = (pointer)pLVar11;\n            pTVar22[1].name_._M_string_length = (size_type)pIVar4;\n            pTVar22->list_next_ = (Task *)0x0;\n            (pTVar22->name_)._M_string_length = 0;\n            (pTVar22->name_).field_2._M_local_buf[0] = '\0';\n            pTVar22->should_run_soon_ = false;\n            pTVar22->_vptr_Task = (_func_int_varargs **)&PTR__Add_symbols_003acf00;\n            pTVar22[1]._vptr_Task = (_func_int_varargs **)pIVar10;\n            pTVar22[1].list_next_ = (Task *)pSVar12;\n            *(Object **)&pTVar22[1].name_.field_2 = elf_object;\n            *(undefined8 *)((long)&pTVar22[1].name_.field_2 + 8) = 0;\n            pTVar22[2]._vptr_Task = (_func_int_varargs **)pTVar7;\n            pTVar22[2].list_next_ = pTVar25;\n            Workqueue::queue_next(workqueue,pTVar22);\n            return bVar16;\n          }\n          pIVar4 = this->input_argument_;\n          pAVar13->sd_ = pRVar24;\n          pAVar13->obj_ = elf_object;\n          bVar16 = pIVar4->is_file_;\n          if (bVar16 != false) {\n            pAVar13->arg_serial_ = (pIVar4->file_).arg_serial_;\n            return bVar16;\n          }\n        }\n        else {\n          bVar16 = this->input_argument_->is_file_;\n          if (bVar16 != false) {\n            __s = (this->input_argument_->file_).name_._M_dataplus._M_p;\n            pcVar26 = (char *)0xffffffffffffffff;\n            _unconfigured = local_48;\n            if (__s != (char *)0x0) {\n              sVar21 = strlen(__s);\n              pcVar26 = __s + sVar21;\n            }\n            std::__cxx11::basic_string<char,_std::char_traits<char>,_std::allocator<char>_>::\n            _M_construct<char_const*>((string *)&unconfigured,__s,pcVar26);\n                    /* try { // try from 001f5e1a to 001f5e1e has its CatchHandler @ 001f63a4 */\n            this_02 = (Archive *)operator_new(0x178);\n                    /* try { // try from 001f5e42 to 001f5e46 has its CatchHandler @ 001f639c */\n            Archive::Archive(this_02,(string *)&unconfigured,pIVar20,lVar6 == Archive::armagt,\n                             this->dirpath_,&this->super_Task);\n            if (_unconfigured != local_48) {\n              operator_delete(_unconfigured);\n            }\n            Archive::setup(this_02);\n            File_read::unlock(&this_02->input_file_->file_,&this->super_Task);\n            pTVar22 = (Task *)operator_new(0x90);\n            pTVar7 = this->next_blocker_;\n            pTVar8 = this->this_blocker_;\n            pTVar25 = (Task *)this->input_group_;\n            pIVar4 = this->input_argument_;\n            (pTVar22->name_).field_2._M_local_buf[0] = '\0';\n            pMVar9 = this->mapfile_;\n            iVar19 = this->dirindex_;\n            (pTVar22->name_)._M_dataplus._M_p = (pointer)&(pTVar22->name_).field_2;\n            pDVar5 = this->dirpath_;\n            pIVar10 = this->input_objects_;\n            *(Input_argument **)&pTVar22[1].should_run_soon_ = pIVar4;\n            pLVar11 = this->layout_;\n            pSVar12 = this->symtab_;\n            pTVar22[2].list_next_ = pTVar25;\n            pTVar22->list_next_ = (Task *)0x0;\n            (pTVar22->name_)._M_string_length = 0;\n            pTVar22->should_run_soon_ = false;\n            pTVar22->_vptr_Task = (_func_int_varargs **)&PTR__Add_archive_symbols_003ae430;\n            pTVar22[1]._vptr_Task = (_func_int_varargs **)pSVar12;\n            pTVar22[1].list_next_ = (Task *)pLVar11;\n            pTVar22[1].name_._M_dataplus._M_p = (pointer)pIVar10;\n            pTVar22[1].name_._M_string_length = (size_type)pDVar5;\n            *(int *)&pTVar22[1].name_.field_2 = iVar19;\n            *(Mapfile **)((long)&pTVar22[1].name_.field_2 + 8) = pMVar9;\n            pTVar22[2]._vptr_Task = (_func_int_varargs **)this_02;\n            pTVar22[2].name_._M_dataplus._M_p = &pTVar8->is_blocker_;\n            pTVar22[2].name_._M_string_length = (size_type)pTVar7;\n            Workqueue::queue_next(workqueue,pTVar22);\n            return bVar16;\n          }\n        }" if (parenthesized_expression "((read_size < 8) ||\n           ((lVar6 = *(long *)ehdr, lVar6 != Archive::armagt && (Archive::armag != lVar6))))" ( (binary_expression "(read_size < 8) ||\n           ((lVar6 = *(long *)ehdr, lVar6 != Archive::armagt && (Archive::armag != lVar6)))" (parenthesized_expression "(read_size < 8)" ( (binary_expression "read_size < 8" identifier < number_literal) )) || (parenthesized_expression "((lVar6 = *(long *)ehdr, lVar6 != Archive::armagt && (Archive::armag != lVar6)))" ( (parenthesized_expression "(lVar6 = *(long *)ehdr, lVar6 != Archive::armagt && (Archive::armag != lVar6))" ( (ERROR "lVar6 = *(long *)ehdr, lVar6 != Archive::" (comma_expression "lVar6 = *(long *)ehdr, lVar6 != Archive" (assignment_expression "lVar6 = *(long *)ehdr" identifier = (pointer_expression "*(long *)ehdr" * (cast_expression "(long *)ehdr" ( (type_descriptor "long *" (sized_type_specifier "long" long) (abstract_pointer_declarator "*" *)) ) identifier))) , (binary_expression "lVar6 != Archive" identifier != identifier)) : :) (binary_expression "armagt && (Archive::armag != lVar6)" identifier && (parenthesized_expression "(Archive::armag != lVar6)" ( (binary_expression "Archive::armag != lVar6" identifier (ERROR "::armag" : : identifier) != identifier) ))) )) ))) )) (compound_statement "{\n          elf_object = (Object *)0x0;\n          if (bVar16) {\n            _unconfigured = _unconfigured & 0xffffffffffffff00;\n            bVar18 = Input_file::will_search_for(pIVar20);\n            punconfigured = (bool *)0x0;\n            if (bVar18) {\n              punconfigured = &unconfigured;\n            }\n            elf_object = make_elf_object(&(pIVar20->file_).name_,pIVar20,0,ehdr,(long)read_size,\n                                         punconfigured);\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          this_01 = parameters->options_->plugins_;\n          if ((this_01 != (Plugin_manager *)0x0) &&\n             (pPVar23 = Plugin_manager::claim_file(this_01,pIVar20,0,filesize,elf_object),\n             pPVar23 != (Pluginobj *)0x0)) {\n            if (elf_object != (Object *)0x0) {\n              (*elf_object->_vptr_Object[1])(elf_object);\n            }\n            pIVar20 = (pPVar23->super_Object).input_file_;\n            if (pIVar20 != (Input_file *)0x0) {\n              File_read::unlock(&pIVar20->file_,&this->super_Task);\n            }\n            pAVar13 = this->member_;\n            if (pAVar13 == (Archive_member *)0x0) {\n              pTVar22 = (Task *)operator_new(0x80);\n              pIVar4 = this->input_argument_;\n              pLVar11 = this->layout_;\n              pSVar12 = this->symtab_;\n              pIVar10 = this->input_objects_;\n              pTVar22->_vptr_Task = (_func_int_varargs **)&PTR__Add_symbols_003acf00;\n              pTVar25 = (Task *)this->next_blocker_;\n              pTVar7 = this->this_blocker_;\n              pTVar22[1].name_._M_dataplus._M_p = (pointer)pLVar11;\n              pTVar22[1].name_._M_string_length = (size_type)pIVar4;\n              pTVar22->list_next_ = (Task *)0x0;\n              (pTVar22->name_)._M_dataplus._M_p = (pointer)&(pTVar22->name_).field_2;\n              (pTVar22->name_)._M_string_length = 0;\n              (pTVar22->name_).field_2._M_local_buf[0] = '\0';\n              pTVar22->should_run_soon_ = false;\n              pTVar22[1]._vptr_Task = (_func_int_varargs **)pIVar10;\n              pTVar22[1].list_next_ = (Task *)pSVar12;\n              pTVar22[1].name_.field_2._M_allocated_capacity = (size_type)pPVar23;\n              *(undefined8 *)((long)&pTVar22[1].name_.field_2 + 8) = 0;\n              *(undefined8 *)&pTVar22[1].should_run_soon_ = 0;\n              pTVar22[2]._vptr_Task = (_func_int_varargs **)pTVar7;\n              pTVar22[2].list_next_ = pTVar25;\n              Workqueue::queue_next(workqueue,pTVar22);\n              return (bool)cVar17;\n            }\n            pAVar13->sd_ = (Read_symbols_data *)0x0;\n            pAVar13->obj_ = &pPVar23->super_Object;\n            return (bool)cVar17;\n          }\n          if (!bVar16) {\n            pTVar25 = (Task *)operator_new(0x90);\n            pTVar7 = this->next_blocker_;\n            pTVar8 = this->this_blocker_;\n            pIVar4 = this->input_argument_;\n            pIVar14 = this->input_group_;\n            (pTVar25->name_).field_2._M_local_buf[0] = '\0';\n            pMVar9 = this->mapfile_;\n            pIVar10 = this->input_objects_;\n            (pTVar25->name_)._M_dataplus._M_p = (pointer)&(pTVar25->name_).field_2;\n            iVar19 = this->dirindex_;\n            pDVar5 = this->dirpath_;\n            *(Input_group **)&pTVar25[1].should_run_soon_ = pIVar14;\n            pLVar11 = this->layout_;\n            pSVar12 = this->symtab_;\n            pTVar25[2]._vptr_Task = (_func_int_varargs **)pIVar4;\n            pTVar25->list_next_ = (Task *)0x0;\n            (pTVar25->name_)._M_string_length = 0;\n            pTVar25->should_run_soon_ = false;\n            pTVar25->_vptr_Task = (_func_int_varargs **)&PTR__Read_script_003ad080;\n            pTVar25[1]._vptr_Task = (_func_int_varargs **)pSVar12;\n            pTVar25[1].list_next_ = (Task *)pLVar11;\n            pTVar25[1].name_._M_dataplus._M_p = (pointer)pDVar5;\n            *(int *)&pTVar25[1].name_._M_string_length = iVar19;\n            pTVar25[1].name_.field_2._M_allocated_capacity = (size_type)pIVar10;\n            *(Mapfile **)((long)&pTVar25[1].name_.field_2 + 8) = pMVar9;\n            pTVar25[2].list_next_ = (Task *)pIVar20;\n            pTVar25[2].name_._M_dataplus._M_p = &pTVar8->is_blocker_;\n            pTVar25[2].name_._M_string_length = (size_type)pTVar7;\n            Workqueue::queue_soon(workqueue,pTVar25);\n            return (bool)cVar17;\n          }\n          if (elf_object == (Object *)0x0) {\n            if (unconfigured == false) {\n              return false;\n            }\n            this_00 = &pIVar20->file_;\n            incompatible_warning(this->input_argument_,pIVar20);\n            File_read::release(this_00);\n            pRVar27 = this;\n            File_read::unlock(this_00,&this->super_Task);\n            File_read::~File_read(this_00,(int)pRVar27);\n            pcVar15 = (pIVar20->found_name_)._M_dataplus._M_p;\n            if (paVar1 != (anon_union_16_2_edb7204a_for_basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_9\n                           *)pcVar15) {\n              operator_delete(pcVar15);\n            }\n            operator_delete(pIVar20,0xe8);\n            this->dirindex_ = this->dirindex_ + 1;\n            bVar16 = do_read_symbols(this,workqueue);\n            return bVar16;\n          }\n          pRVar24 = (Read_symbols_data *)operator_new(0x80);\n          pRVar24->section_headers = (File_view *)0x0;\n          pRVar24->section_names = (File_view *)0x0;\n          pRVar24->symbols = (File_view *)0x0;\n          pRVar24->symbol_names = (File_view *)0x0;\n          pRVar24->versym = (File_view *)0x0;\n          pRVar24->verdef = (File_view *)0x0;\n          pRVar24->verneed = (File_view *)0x0;\n          (*elf_object->_vptr_Object[8])(elf_object,pRVar24);\n          File_read::unlock(&pIVar20->file_,&this->super_Task);\n          pAVar13 = this->member_;\n          if (pAVar13 == (Archive_member *)0x0) {\n            pTVar22 = (Task *)operator_new(0x80);\n            pIVar4 = this->input_argument_;\n            pLVar11 = this->layout_;\n            pSVar12 = this->symtab_;\n            pIVar10 = this->input_objects_;\n            *(Read_symbols_data **)&pTVar22[1].should_run_soon_ = pRVar24;\n            pTVar25 = (Task *)this->next_blocker_;\n            pTVar7 = this->this_blocker_;\n            (pTVar22->name_)._M_dataplus._M_p = (pointer)&(pTVar22->name_).field_2;\n            pTVar22[1].name_._M_dataplus._M_p = (pointer)pLVar11;\n            pTVar22[1].name_._M_string_length = (size_type)pIVar4;\n            pTVar22->list_next_ = (Task *)0x0;\n            (pTVar22->name_)._M_string_length = 0;\n            (pTVar22->name_).field_2._M_local_buf[0] = '\0';\n            pTVar22->should_run_soon_ = false;\n            pTVar22->_vptr_Task = (_func_int_varargs **)&PTR__Add_symbols_003acf00;\n            pTVar22[1]._vptr_Task = (_func_int_varargs **)pIVar10;\n            pTVar22[1].list_next_ = (Task *)pSVar12;\n            *(Object **)&pTVar22[1].name_.field_2 = elf_object;\n            *(undefined8 *)((long)&pTVar22[1].name_.field_2 + 8) = 0;\n            pTVar22[2]._vptr_Task = (_func_int_varargs **)pTVar7;\n            pTVar22[2].list_next_ = pTVar25;\n            Workqueue::queue_next(workqueue,pTVar22);\n            return bVar16;\n          }\n          pIVar4 = this->input_argument_;\n          pAVar13->sd_ = pRVar24;\n          pAVar13->obj_ = elf_object;\n          bVar16 = pIVar4->is_file_;\n          if (bVar16 != false) {\n            pAVar13->arg_serial_ = (pIVar4->file_).arg_serial_;\n            return bVar16;\n          }\n        }" { (expression_statement "elf_object = (Object *)0x0;" (assignment_expression "elf_object = (Object *)0x0" identifier = (cast_expression "(Object *)0x0" ( (type_descriptor "Object *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (if_statement "if (bVar16) {\n            _unconfigured = _unconfigured & 0xffffffffffffff00;\n            bVar18 = Input_file::will_search_for(pIVar20);\n            punconfigured = (bool *)0x0;\n            if (bVar18) {\n              punconfigured = &unconfigured;\n            }\n            elf_object = make_elf_object(&(pIVar20->file_).name_,pIVar20,0,ehdr,(long)read_size,\n                                         punconfigured);\n          }" if (parenthesized_expression "(bVar16)" ( identifier )) (compound_statement "{\n            _unconfigured = _unconfigured & 0xffffffffffffff00;\n            bVar18 = Input_file::will_search_for(pIVar20);\n            punconfigured = (bool *)0x0;\n            if (bVar18) {\n              punconfigured = &unconfigured;\n            }\n            elf_object = make_elf_object(&(pIVar20->file_).name_,pIVar20,0,ehdr,(long)read_size,\n                                         punconfigured);\n          }" { (expression_statement "_unconfigured = _unconfigured & 0xffffffffffffff00;" (assignment_expression "_unconfigured = _unconfigured & 0xffffffffffffff00" identifier = (binary_expression "_unconfigured & 0xffffffffffffff00" identifier & number_literal)) ;) (ERROR "bVar18 = Input_file::" (assignment_expression "bVar18 = Input_file" identifier = identifier) : :) (expression_statement "will_search_for(pIVar20);" (call_expression "will_search_for(pIVar20)" identifier (argument_list "(pIVar20)" ( identifier ))) ;) (expression_statement "punconfigured = (bool *)0x0;" (assignment_expression "punconfigured = (bool *)0x0" identifier = (cast_expression "(bool *)0x0" ( (type_descriptor "bool *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (if_statement "if (bVar18) {\n              punconfigured = &unconfigured;\n            }" if (parenthesized_expression "(bVar18)" ( identifier )) (compound_statement "{\n              punconfigured = &unconfigured;\n            }" { (expression_statement "punconfigured = &unconfigured;" (assignment_expression "punconfigured = &unconfigured" identifier = (pointer_expression "&unconfigured" & identifier)) ;) })) (expression_statement "elf_object = make_elf_object(&(pIVar20->file_).name_,pIVar20,0,ehdr,(long)read_size,\n                                         punconfigured);" (assignment_expression "elf_object = make_elf_object(&(pIVar20->file_).name_,pIVar20,0,ehdr,(long)read_size,\n                                         punconfigured)" identifier = (call_expression "make_elf_object(&(pIVar20->file_).name_,pIVar20,0,ehdr,(long)read_size,\n                                         punconfigured)" identifier (argument_list "(&(pIVar20->file_).name_,pIVar20,0,ehdr,(long)read_size,\n                                         punconfigured)" ( (pointer_expression "&(pIVar20->file_).name_" & (field_expression "(pIVar20->file_).name_" (parenthesized_expression "(pIVar20->file_)" ( (field_expression "pIVar20->file_" identifier -> field_identifier) )) . field_identifier)) , identifier , number_literal , identifier , (cast_expression "(long)read_size" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) identifier) , 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 ") ))) ;) })) (expression_statement "this_01 = parameters->options_->plugins_;" (assignment_expression "this_01 = parameters->options_->plugins_" identifier = (field_expression "parameters->options_->plugins_" (field_expression "parameters->options_" identifier -> field_identifier) -> field_identifier)) ;) (if_statement "if ((this_01 != (Plugin_manager *)0x0) &&\n             (pPVar23 = Plugin_manager::claim_file(this_01,pIVar20,0,filesize,elf_object),\n             pPVar23 != (Pluginobj *)0x0)) {\n            if (elf_object != (Object *)0x0) {\n              (*elf_object->_vptr_Object[1])(elf_object);\n            }\n            pIVar20 = (pPVar23->super_Object).input_file_;\n            if (pIVar20 != (Input_file *)0x0) {\n              File_read::unlock(&pIVar20->file_,&this->super_Task);\n            }\n            pAVar13 = this->member_;\n            if (pAVar13 == (Archive_member *)0x0) {\n              pTVar22 = (Task *)operator_new(0x80);\n              pIVar4 = this->input_argument_;\n              pLVar11 = this->layout_;\n              pSVar12 = this->symtab_;\n              pIVar10 = this->input_objects_;\n              pTVar22->_vptr_Task = (_func_int_varargs **)&PTR__Add_symbols_003acf00;\n              pTVar25 = (Task *)this->next_blocker_;\n              pTVar7 = this->this_blocker_;\n              pTVar22[1].name_._M_dataplus._M_p = (pointer)pLVar11;\n              pTVar22[1].name_._M_string_length = (size_type)pIVar4;\n              pTVar22->list_next_ = (Task *)0x0;\n              (pTVar22->name_)._M_dataplus._M_p = (pointer)&(pTVar22->name_).field_2;\n              (pTVar22->name_)._M_string_length = 0;\n              (pTVar22->name_).field_2._M_local_buf[0] = '\0';\n              pTVar22->should_run_soon_ = false;\n              pTVar22[1]._vptr_Task = (_func_int_varargs **)pIVar10;\n              pTVar22[1].list_next_ = (Task *)pSVar12;\n              pTVar22[1].name_.field_2._M_allocated_capacity = (size_type)pPVar23;\n              *(undefined8 *)((long)&pTVar22[1].name_.field_2 + 8) = 0;\n              *(undefined8 *)&pTVar22[1].should_run_soon_ = 0;\n              pTVar22[2]._vptr_Task = (_func_int_varargs **)pTVar7;\n              pTVar22[2].list_next_ = pTVar25;\n              Workqueue::queue_next(workqueue,pTVar22);\n              return (bool)cVar17;\n            }\n            pAVar13->sd_ = (Read_symbols_data *)0x0;\n            pAVar13->obj_ = &pPVar23->super_Object;\n            return (bool)cVar17;\n          }" if (parenthesized_expression "((this_01 != (Plugin_manager *)0x0) &&\n             (pPVar23 = Plugin_manager::claim_file(this_01,pIVar20,0,filesize,elf_object),\n             pPVar23 != (Pluginobj *)0x0))" ( (binary_expression "(this_01 != (Plugin_manager *)0x0) &&\n             (pPVar23 = Plugin_manager::claim_file(this_01,pIVar20,0,filesize,elf_object),\n             pPVar23 != (Pluginobj *)0x0)" (parenthesized_expression "(this_01 != (Plugin_manager *)0x0)" ( (binary_expression "this_01 != (Plugin_manager *)0x0" identifier != (cast_expression "(Plugin_manager *)0x0" ( (type_descriptor "Plugin_manager *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) && (parenthesized_expression "(pPVar23 = Plugin_manager::claim_file(this_01,pIVar20,0,filesize,elf_object),\n             pPVar23 != (Pluginobj *)0x0)" ( (ERROR "pPVar23 = Plugin_manager::" (assignment_expression "pPVar23 = Plugin_manager" identifier = identifier) : :) (comma_expression "claim_file(this_01,pIVar20,0,filesize,elf_object),\n             pPVar23 != (Pluginobj *)0x0" (call_expression "claim_file(this_01,pIVar20,0,filesize,elf_object)" identifier (argument_list "(this_01,pIVar20,0,filesize,elf_object)" ( identifier , identifier , number_literal , identifier , identifier ))) , (binary_expression "pPVar23 != (Pluginobj *)0x0" identifier != (cast_expression "(Pluginobj *)0x0" ( (type_descriptor "Pluginobj *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal))) ))) )) (compound_statement "{\n            if (elf_object != (Object *)0x0) {\n              (*elf_object->_vptr_Object[1])(elf_object);\n            }\n            pIVar20 = (pPVar23->super_Object).input_file_;\n            if (pIVar20 != (Input_file *)0x0) {\n              File_read::unlock(&pIVar20->file_,&this->super_Task);\n            }\n            pAVar13 = this->member_;\n            if (pAVar13 == (Archive_member *)0x0) {\n              pTVar22 = (Task *)operator_new(0x80);\n              pIVar4 = this->input_argument_;\n              pLVar11 = this->layout_;\n              pSVar12 = this->symtab_;\n              pIVar10 = this->input_objects_;\n              pTVar22->_vptr_Task = (_func_int_varargs **)&PTR__Add_symbols_003acf00;\n              pTVar25 = (Task *)this->next_blocker_;\n              pTVar7 = this->this_blocker_;\n              pTVar22[1].name_._M_dataplus._M_p = (pointer)pLVar11;\n              pTVar22[1].name_._M_string_length = (size_type)pIVar4;\n              pTVar22->list_next_ = (Task *)0x0;\n              (pTVar22->name_)._M_dataplus._M_p = (pointer)&(pTVar22->name_).field_2;\n              (pTVar22->name_)._M_string_length = 0;\n              (pTVar22->name_).field_2._M_local_buf[0] = '\0';\n              pTVar22->should_run_soon_ = false;\n              pTVar22[1]._vptr_Task = (_func_int_varargs **)pIVar10;\n              pTVar22[1].list_next_ = (Task *)pSVar12;\n              pTVar22[1].name_.field_2._M_allocated_capacity = (size_type)pPVar23;\n              *(undefined8 *)((long)&pTVar22[1].name_.field_2 + 8) = 0;\n              *(undefined8 *)&pTVar22[1].should_run_soon_ = 0;\n              pTVar22[2]._vptr_Task = (_func_int_varargs **)pTVar7;\n              pTVar22[2].list_next_ = pTVar25;\n              Workqueue::queue_next(workqueue,pTVar22);\n              return (bool)cVar17;\n            }\n            pAVar13->sd_ = (Read_symbols_data *)0x0;\n            pAVar13->obj_ = &pPVar23->super_Object;\n            return (bool)cVar17;\n          }" { (if_statement "if (elf_object != (Object *)0x0) {\n              (*elf_object->_vptr_Object[1])(elf_object);\n            }" if (parenthesized_expression "(elf_object != (Object *)0x0)" ( (binary_expression "elf_object != (Object *)0x0" identifier != (cast_expression "(Object *)0x0" ( (type_descriptor "Object *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n              (*elf_object->_vptr_Object[1])(elf_object);\n            }" { (expression_statement "(*elf_object->_vptr_Object[1])(elf_object);" (call_expression "(*elf_object->_vptr_Object[1])(elf_object)" (parenthesized_expression "(*elf_object->_vptr_Object[1])" ( (pointer_expression "*elf_object->_vptr_Object[1]" * (subscript_expression "elf_object->_vptr_Object[1]" (field_expression "elf_object->_vptr_Object" identifier -> field_identifier) [ number_literal ])) )) (argument_list "(elf_object)" ( identifier ))) ;) })) (expression_statement "pIVar20 = (pPVar23->super_Object).input_file_;" (assignment_expression "pIVar20 = (pPVar23->super_Object).input_file_" identifier = (field_expression "(pPVar23->super_Object).input_file_" (parenthesized_expression "(pPVar23->super_Object)" ( (field_expression "pPVar23->super_Object" identifier -> field_identifier) )) . field_identifier)) ;) (if_statement "if (pIVar20 != (Input_file *)0x0) {\n              File_read::unlock(&pIVar20->file_,&this->super_Task);\n            }" if (parenthesized_expression "(pIVar20 != (Input_file *)0x0)" ( (binary_expression "pIVar20 != (Input_file *)0x0" identifier != (cast_expression "(Input_file *)0x0" ( (type_descriptor "Input_file *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n              File_read::unlock(&pIVar20->file_,&this->super_Task);\n            }" { (labeled_statement "File_read::unlock(&pIVar20->file_,&this->super_Task);" statement_identifier : (ERROR ":" :) (expression_statement "unlock(&pIVar20->file_,&this->super_Task);" (call_expression "unlock(&pIVar20->file_,&this->super_Task)" identifier (argument_list "(&pIVar20->file_,&this->super_Task)" ( (pointer_expression "&pIVar20->file_" & (field_expression "pIVar20->file_" identifier -> field_identifier)) , (pointer_expression "&this->super_Task" & (field_expression "this->super_Task" identifier -> field_identifier)) ))) ;)) })) (expression_statement "pAVar13 = this->member_;" (assignment_expression "pAVar13 = this->member_" identifier = (field_expression "this->member_" identifier -> field_identifier)) ;) (if_statement "if (pAVar13 == (Archive_member *)0x0) {\n              pTVar22 = (Task *)operator_new(0x80);\n              pIVar4 = this->input_argument_;\n              pLVar11 = this->layout_;\n              pSVar12 = this->symtab_;\n              pIVar10 = this->input_objects_;\n              pTVar22->_vptr_Task = (_func_int_varargs **)&PTR__Add_symbols_003acf00;\n              pTVar25 = (Task *)this->next_blocker_;\n              pTVar7 = this->this_blocker_;\n              pTVar22[1].name_._M_dataplus._M_p = (pointer)pLVar11;\n              pTVar22[1].name_._M_string_length = (size_type)pIVar4;\n              pTVar22->list_next_ = (Task *)0x0;\n              (pTVar22->name_)._M_dataplus._M_p = (pointer)&(pTVar22->name_).field_2;\n              (pTVar22->name_)._M_string_length = 0;\n              (pTVar22->name_).field_2._M_local_buf[0] = '\0';\n              pTVar22->should_run_soon_ = false;\n              pTVar22[1]._vptr_Task = (_func_int_varargs **)pIVar10;\n              pTVar22[1].list_next_ = (Task *)pSVar12;\n              pTVar22[1].name_.field_2._M_allocated_capacity = (size_type)pPVar23;\n              *(undefined8 *)((long)&pTVar22[1].name_.field_2 + 8) = 0;\n              *(undefined8 *)&pTVar22[1].should_run_soon_ = 0;\n              pTVar22[2]._vptr_Task = (_func_int_varargs **)pTVar7;\n              pTVar22[2].list_next_ = pTVar25;\n              Workqueue::queue_next(workqueue,pTVar22);\n              return (bool)cVar17;\n            }" if (parenthesized_expression "(pAVar13 == (Archive_member *)0x0)" ( (binary_expression "pAVar13 == (Archive_member *)0x0" identifier == (cast_expression "(Archive_member *)0x0" ( (type_descriptor "Archive_member *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n              pTVar22 = (Task *)operator_new(0x80);\n              pIVar4 = this->input_argument_;\n              pLVar11 = this->layout_;\n              pSVar12 = this->symtab_;\n              pIVar10 = this->input_objects_;\n              pTVar22->_vptr_Task = (_func_int_varargs **)&PTR__Add_symbols_003acf00;\n              pTVar25 = (Task *)this->next_blocker_;\n              pTVar7 = this->this_blocker_;\n              pTVar22[1].name_._M_dataplus._M_p = (pointer)pLVar11;\n              pTVar22[1].name_._M_string_length = (size_type)pIVar4;\n              pTVar22->list_next_ = (Task *)0x0;\n              (pTVar22->name_)._M_dataplus._M_p = (pointer)&(pTVar22->name_).field_2;\n              (pTVar22->name_)._M_string_length = 0;\n              (pTVar22->name_).field_2._M_local_buf[0] = '\0';\n              pTVar22->should_run_soon_ = false;\n              pTVar22[1]._vptr_Task = (_func_int_varargs **)pIVar10;\n              pTVar22[1].list_next_ = (Task *)pSVar12;\n              pTVar22[1].name_.field_2._M_allocated_capacity = (size_type)pPVar23;\n              *(undefined8 *)((long)&pTVar22[1].name_.field_2 + 8) = 0;\n              *(undefined8 *)&pTVar22[1].should_run_soon_ = 0;\n              pTVar22[2]._vptr_Task = (_func_int_varargs **)pTVar7;\n              pTVar22[2].list_next_ = pTVar25;\n              Workqueue::queue_next(workqueue,pTVar22);\n              return (bool)cVar17;\n            }" { (expression_statement "pTVar22 = (Task *)operator_new(0x80);" (assignment_expression "pTVar22 = (Task *)operator_new(0x80)" identifier = (cast_expression "(Task *)operator_new(0x80)" ( (type_descriptor "Task *" type_identifier (abstract_pointer_declarator "*" *)) ) (call_expression "operator_new(0x80)" identifier (argument_list "(0x80)" ( number_literal ))))) ;) (expression_statement "pIVar4 = this->input_argument_;" (assignment_expression "pIVar4 = this->input_argument_" identifier = (field_expression "this->input_argument_" identifier -> field_identifier)) ;) (expression_statement "pLVar11 = this->layout_;" (assignment_expression "pLVar11 = this->layout_" identifier = (field_expression "this->layout_" identifier -> field_identifier)) ;) (expression_statement "pSVar12 = this->symtab_;" (assignment_expression "pSVar12 = this->symtab_" identifier = (field_expression "this->symtab_" identifier -> field_identifier)) ;) (expression_statement "pIVar10 = this->input_objects_;" (assignment_expression "pIVar10 = this->input_objects_" identifier = (field_expression "this->input_objects_" identifier -> field_identifier)) ;) (expression_statement "pTVar22->_vptr_Task = (_func_int_varargs **)&PTR__Add_symbols_003acf00;" (assignment_expression "pTVar22->_vptr_Task = (_func_int_varargs **)&PTR__Add_symbols_003acf00" (field_expression "pTVar22->_vptr_Task" identifier -> field_identifier) = (cast_expression "(_func_int_varargs **)&PTR__Add_symbols_003acf00" ( (type_descriptor "_func_int_varargs **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (pointer_expression "&PTR__Add_symbols_003acf00" & identifier))) ;) (expression_statement "pTVar25 = (Task *)this->next_blocker_;" (assignment_expression "pTVar25 = (Task *)this->next_blocker_" identifier = (cast_expression "(Task *)this->next_blocker_" ( (type_descriptor "Task *" type_identifier (abstract_pointer_declarator "*" *)) ) (field_expression "this->next_blocker_" identifier -> field_identifier))) ;) (expression_statement "pTVar7 = this->this_blocker_;" (assignment_expression "pTVar7 = this->this_blocker_" identifier = (field_expression "this->this_blocker_" identifier -> field_identifier)) ;) (expression_statement "pTVar22[1].name_._M_dataplus._M_p = (pointer)pLVar11;" (assignment_expression "pTVar22[1].name_._M_dataplus._M_p = (pointer)pLVar11" (field_expression "pTVar22[1].name_._M_dataplus._M_p" (field_expression "pTVar22[1].name_._M_dataplus" (field_expression "pTVar22[1].name_" (subscript_expression "pTVar22[1]" identifier [ number_literal ]) . field_identifier) . field_identifier) . field_identifier) = (cast_expression "(pointer)pLVar11" ( (type_descriptor "pointer" type_identifier) ) identifier)) ;) (expression_statement "pTVar22[1].name_._M_string_length = (size_type)pIVar4;" (assignment_expression "pTVar22[1].name_._M_string_length = (size_type)pIVar4" (field_expression "pTVar22[1].name_._M_string_length" (field_expression "pTVar22[1].name_" (subscript_expression "pTVar22[1]" identifier [ number_literal ]) . field_identifier) . field_identifier) = (cast_expression "(size_type)pIVar4" ( (type_descriptor "size_type" type_identifier) ) identifier)) ;) (expression_statement "pTVar22->list_next_ = (Task *)0x0;" (assignment_expression "pTVar22->list_next_ = (Task *)0x0" (field_expression "pTVar22->list_next_" identifier -> field_identifier) = (cast_expression "(Task *)0x0" ( (type_descriptor "Task *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (expression_statement "(pTVar22->name_)._M_dataplus._M_p = (pointer)&(pTVar22->name_).field_2;" (assignment_expression "(pTVar22->name_)._M_dataplus._M_p = (pointer)&(pTVar22->name_).field_2" (field_expression "(pTVar22->name_)._M_dataplus._M_p" (field_expression "(pTVar22->name_)._M_dataplus" (parenthesized_expression "(pTVar22->name_)" ( (field_expression "pTVar22->name_" identifier -> field_identifier) )) . field_identifier) . field_identifier) = (binary_expression "(pointer)&(pTVar22->name_).field_2" (parenthesized_expression "(pointer)" ( identifier )) & (field_expression "(pTVar22->name_).field_2" (parenthesized_expression "(pTVar22->name_)" ( (field_expression "pTVar22->name_" identifier -> field_identifier) )) . field_identifier))) ;) (expression_statement "(pTVar22->name_)._M_string_length = 0;" (assignment_expression "(pTVar22->name_)._M_string_length = 0" (field_expression "(pTVar22->name_)._M_string_length" (parenthesized_expression "(pTVar22->name_)" ( (field_expression "pTVar22->name_" identifier -> field_identifier) )) . field_identifier) = number_literal) ;) (expression_statement "(pTVar22->name_).field_2._M_local_buf[0] = '\0';" (assignment_expression "(pTVar22->name_).field_2._M_local_buf[0] = '\0'" (subscript_expression "(pTVar22->name_).field_2._M_local_buf[0]" (field_expression "(pTVar22->name_).field_2._M_local_buf" (field_expression "(pTVar22->name_).field_2" (parenthesized_expression "(pTVar22->name_)" ( (field_expression "pTVar22->name_" identifier -> field_identifier) )) . field_identifier) . field_identifier) [ number_literal ]) = (char_literal "'\0'" ' escape_sequence ')) ;) (expression_statement "pTVar22->should_run_soon_ = false;" (assignment_expression "pTVar22->should_run_soon_ = false" (field_expression "pTVar22->should_run_soon_" identifier -> field_identifier) = false) ;) (expression_statement "pTVar22[1]._vptr_Task = (_func_int_varargs **)pIVar10;" (assignment_expression "pTVar22[1]._vptr_Task = (_func_int_varargs **)pIVar10" (field_expression "pTVar22[1]._vptr_Task" (subscript_expression "pTVar22[1]" identifier [ number_literal ]) . field_identifier) = (cast_expression "(_func_int_varargs **)pIVar10" ( (type_descriptor "_func_int_varargs **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) identifier)) ;) (expression_statement "pTVar22[1].list_next_ = (Task *)pSVar12;" (assignment_expression "pTVar22[1].list_next_ = (Task *)pSVar12" (field_expression "pTVar22[1].list_next_" (subscript_expression "pTVar22[1]" identifier [ number_literal ]) . field_identifier) = (cast_expression "(Task *)pSVar12" ( (type_descriptor "Task *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) ;) (expression_statement "pTVar22[1].name_.field_2._M_allocated_capacity = (size_type)pPVar23;" (assignment_expression "pTVar22[1].name_.field_2._M_allocated_capacity = (size_type)pPVar23" (field_expression "pTVar22[1].name_.field_2._M_allocated_capacity" (field_expression "pTVar22[1].name_.field_2" (field_expression "pTVar22[1].name_" (subscript_expression "pTVar22[1]" identifier [ number_literal ]) . field_identifier) . field_identifier) . field_identifier) = (cast_expression "(size_type)pPVar23" ( (type_descriptor "size_type" type_identifier) ) identifier)) ;) (expression_statement "*(undefined8 *)((long)&pTVar22[1].name_.field_2 + 8) = 0;" (assignment_expression "*(undefined8 *)((long)&pTVar22[1].name_.field_2 + 8) = 0" (pointer_expression "*(undefined8 *)((long)&pTVar22[1].name_.field_2 + 8)" * (cast_expression "(undefined8 *)((long)&pTVar22[1].name_.field_2 + 8)" ( (type_descriptor "undefined8 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((long)&pTVar22[1].name_.field_2 + 8)" ( (binary_expression "(long)&pTVar22[1].name_.field_2 + 8" (cast_expression "(long)&pTVar22[1].name_.field_2" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) (pointer_expression "&pTVar22[1].name_.field_2" & (field_expression "pTVar22[1].name_.field_2" (field_expression "pTVar22[1].name_" (subscript_expression "pTVar22[1]" identifier [ number_literal ]) . field_identifier) . field_identifier))) + number_literal) )))) = number_literal) ;) (expression_statement "*(undefined8 *)&pTVar22[1].should_run_soon_ = 0;" (assignment_expression "*(undefined8 *)&pTVar22[1].should_run_soon_ = 0" (pointer_expression "*(undefined8 *)&pTVar22[1].should_run_soon_" * (cast_expression "(undefined8 *)&pTVar22[1].should_run_soon_" ( (type_descriptor "undefined8 *" type_identifier (abstract_pointer_declarator "*" *)) ) (pointer_expression "&pTVar22[1].should_run_soon_" & (field_expression "pTVar22[1].should_run_soon_" (subscript_expression "pTVar22[1]" identifier [ number_literal ]) . field_identifier)))) = number_literal) ;) (expression_statement "pTVar22[2]._vptr_Task = (_func_int_varargs **)pTVar7;" (assignment_expression "pTVar22[2]._vptr_Task = (_func_int_varargs **)pTVar7" (field_expression "pTVar22[2]._vptr_Task" (subscript_expression "pTVar22[2]" identifier [ number_literal ]) . field_identifier) = (cast_expression "(_func_int_varargs **)pTVar7" ( (type_descriptor "_func_int_varargs **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) identifier)) ;) (expression_statement "pTVar22[2].list_next_ = pTVar25;" (assignment_expression "pTVar22[2].list_next_ = pTVar25" (field_expression "pTVar22[2].list_next_" (subscript_expression "pTVar22[2]" identifier [ number_literal ]) . field_identifier) = identifier) ;) (labeled_statement "Workqueue::queue_next(workqueue,pTVar22);" statement_identifier : (ERROR ":" :) (expression_statement "queue_next(workqueue,pTVar22);" (call_expression "queue_next(workqueue,pTVar22)" identifier (argument_list "(workqueue,pTVar22)" ( identifier , identifier ))) ;)) (return_statement "return (bool)cVar17;" return (cast_expression "(bool)cVar17" ( (type_descriptor "bool" primitive_type) ) identifier) ;) })) (expression_statement "pAVar13->sd_ = (Read_symbols_data *)0x0;" (assignment_expression "pAVar13->sd_ = (Read_symbols_data *)0x0" (field_expression "pAVar13->sd_" identifier -> field_identifier) = (cast_expression "(Read_symbols_data *)0x0" ( (type_descriptor "Read_symbols_data *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (expression_statement "pAVar13->obj_ = &pPVar23->super_Object;" (assignment_expression "pAVar13->obj_ = &pPVar23->super_Object" (field_expression "pAVar13->obj_" identifier -> field_identifier) = (pointer_expression "&pPVar23->super_Object" & (field_expression "pPVar23->super_Object" identifier -> field_identifier))) ;) (return_statement "return (bool)cVar17;" return (cast_expression "(bool)cVar17" ( (type_descriptor "bool" primitive_type) ) identifier) ;) })) (if_statement "if (!bVar16) {\n            pTVar25 = (Task *)operator_new(0x90);\n            pTVar7 = this->next_blocker_;\n            pTVar8 = this->this_blocker_;\n            pIVar4 = this->input_argument_;\n            pIVar14 = this->input_group_;\n            (pTVar25->name_).field_2._M_local_buf[0] = '\0';\n            pMVar9 = this->mapfile_;\n            pIVar10 = this->input_objects_;\n            (pTVar25->name_)._M_dataplus._M_p = (pointer)&(pTVar25->name_).field_2;\n            iVar19 = this->dirindex_;\n            pDVar5 = this->dirpath_;\n            *(Input_group **)&pTVar25[1].should_run_soon_ = pIVar14;\n            pLVar11 = this->layout_;\n            pSVar12 = this->symtab_;\n            pTVar25[2]._vptr_Task = (_func_int_varargs **)pIVar4;\n            pTVar25->list_next_ = (Task *)0x0;\n            (pTVar25->name_)._M_string_length = 0;\n            pTVar25->should_run_soon_ = false;\n            pTVar25->_vptr_Task = (_func_int_varargs **)&PTR__Read_script_003ad080;\n            pTVar25[1]._vptr_Task = (_func_int_varargs **)pSVar12;\n            pTVar25[1].list_next_ = (Task *)pLVar11;\n            pTVar25[1].name_._M_dataplus._M_p = (pointer)pDVar5;\n            *(int *)&pTVar25[1].name_._M_string_length = iVar19;\n            pTVar25[1].name_.field_2._M_allocated_capacity = (size_type)pIVar10;\n            *(Mapfile **)((long)&pTVar25[1].name_.field_2 + 8) = pMVar9;\n            pTVar25[2].list_next_ = (Task *)pIVar20;\n            pTVar25[2].name_._M_dataplus._M_p = &pTVar8->is_blocker_;\n            pTVar25[2].name_._M_string_length = (size_type)pTVar7;\n            Workqueue::queue_soon(workqueue,pTVar25);\n            return (bool)cVar17;\n          }" if (parenthesized_expression "(!bVar16)" ( (unary_expression "!bVar16" ! identifier) )) (compound_statement "{\n            pTVar25 = (Task *)operator_new(0x90);\n            pTVar7 = this->next_blocker_;\n            pTVar8 = this->this_blocker_;\n            pIVar4 = this->input_argument_;\n            pIVar14 = this->input_group_;\n            (pTVar25->name_).field_2._M_local_buf[0] = '\0';\n            pMVar9 = this->mapfile_;\n            pIVar10 = this->input_objects_;\n            (pTVar25->name_)._M_dataplus._M_p = (pointer)&(pTVar25->name_).field_2;\n            iVar19 = this->dirindex_;\n            pDVar5 = this->dirpath_;\n            *(Input_group **)&pTVar25[1].should_run_soon_ = pIVar14;\n            pLVar11 = this->layout_;\n            pSVar12 = this->symtab_;\n            pTVar25[2]._vptr_Task = (_func_int_varargs **)pIVar4;\n            pTVar25->list_next_ = (Task *)0x0;\n            (pTVar25->name_)._M_string_length = 0;\n            pTVar25->should_run_soon_ = false;\n            pTVar25->_vptr_Task = (_func_int_varargs **)&PTR__Read_script_003ad080;\n            pTVar25[1]._vptr_Task = (_func_int_varargs **)pSVar12;\n            pTVar25[1].list_next_ = (Task *)pLVar11;\n            pTVar25[1].name_._M_dataplus._M_p = (pointer)pDVar5;\n            *(int *)&pTVar25[1].name_._M_string_length = iVar19;\n            pTVar25[1].name_.field_2._M_allocated_capacity = (size_type)pIVar10;\n            *(Mapfile **)((long)&pTVar25[1].name_.field_2 + 8) = pMVar9;\n            pTVar25[2].list_next_ = (Task *)pIVar20;\n            pTVar25[2].name_._M_dataplus._M_p = &pTVar8->is_blocker_;\n            pTVar25[2].name_._M_string_length = (size_type)pTVar7;\n            Workqueue::queue_soon(workqueue,pTVar25);\n            return (bool)cVar17;\n          }" { (expression_statement "pTVar25 = (Task *)operator_new(0x90);" (assignment_expression "pTVar25 = (Task *)operator_new(0x90)" identifier = (cast_expression "(Task *)operator_new(0x90)" ( (type_descriptor "Task *" type_identifier (abstract_pointer_declarator "*" *)) ) (call_expression "operator_new(0x90)" identifier (argument_list "(0x90)" ( number_literal ))))) ;) (expression_statement "pTVar7 = this->next_blocker_;" (assignment_expression "pTVar7 = this->next_blocker_" identifier = (field_expression "this->next_blocker_" identifier -> field_identifier)) ;) (expression_statement "pTVar8 = this->this_blocker_;" (assignment_expression "pTVar8 = this->this_blocker_" identifier = (field_expression "this->this_blocker_" identifier -> field_identifier)) ;) (expression_statement "pIVar4 = this->input_argument_;" (assignment_expression "pIVar4 = this->input_argument_" identifier = (field_expression "this->input_argument_" identifier -> field_identifier)) ;) (expression_statement "pIVar14 = this->input_group_;" (assignment_expression "pIVar14 = this->input_group_" identifier = (field_expression "this->input_group_" identifier -> field_identifier)) ;) (expression_statement "(pTVar25->name_).field_2._M_local_buf[0] = '\0';" (assignment_expression "(pTVar25->name_).field_2._M_local_buf[0] = '\0'" (subscript_expression "(pTVar25->name_).field_2._M_local_buf[0]" (field_expression "(pTVar25->name_).field_2._M_local_buf" (field_expression "(pTVar25->name_).field_2" (parenthesized_expression "(pTVar25->name_)" ( (field_expression "pTVar25->name_" identifier -> field_identifier) )) . field_identifier) . field_identifier) [ number_literal ]) = (char_literal "'\0'" ' escape_sequence ')) ;) (expression_statement "pMVar9 = this->mapfile_;" (assignment_expression "pMVar9 = this->mapfile_" identifier = (field_expression "this->mapfile_" identifier -> field_identifier)) ;) (expression_statement "pIVar10 = this->input_objects_;" (assignment_expression "pIVar10 = this->input_objects_" identifier = (field_expression "this->input_objects_" identifier -> field_identifier)) ;) (expression_statement "(pTVar25->name_)._M_dataplus._M_p = (pointer)&(pTVar25->name_).field_2;" (assignment_expression "(pTVar25->name_)._M_dataplus._M_p = (pointer)&(pTVar25->name_).field_2" (field_expression "(pTVar25->name_)._M_dataplus._M_p" (field_expression "(pTVar25->name_)._M_dataplus" (parenthesized_expression "(pTVar25->name_)" ( (field_expression "pTVar25->name_" identifier -> field_identifier) )) . field_identifier) . field_identifier) = (binary_expression "(pointer)&(pTVar25->name_).field_2" (parenthesized_expression "(pointer)" ( identifier )) & (field_expression "(pTVar25->name_).field_2" (parenthesized_expression "(pTVar25->name_)" ( (field_expression "pTVar25->name_" identifier -> field_identifier) )) . field_identifier))) ;) (expression_statement "iVar19 = this->dirindex_;" (assignment_expression "iVar19 = this->dirindex_" identifier = (field_expression "this->dirindex_" identifier -> field_identifier)) ;) (expression_statement "pDVar5 = this->dirpath_;" (assignment_expression "pDVar5 = this->dirpath_" identifier = (field_expression "this->dirpath_" identifier -> field_identifier)) ;) (expression_statement "*(Input_group **)&pTVar25[1].should_run_soon_ = pIVar14;" (assignment_expression "*(Input_group **)&pTVar25[1].should_run_soon_ = pIVar14" (pointer_expression "*(Input_group **)&pTVar25[1].should_run_soon_" * (cast_expression "(Input_group **)&pTVar25[1].should_run_soon_" ( (type_descriptor "Input_group **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (pointer_expression "&pTVar25[1].should_run_soon_" & (field_expression "pTVar25[1].should_run_soon_" (subscript_expression "pTVar25[1]" identifier [ number_literal ]) . field_identifier)))) = identifier) ;) (expression_statement "pLVar11 = this->layout_;" (assignment_expression "pLVar11 = this->layout_" identifier = (field_expression "this->layout_" identifier -> field_identifier)) ;) (expression_statement "pSVar12 = this->symtab_;" (assignment_expression "pSVar12 = this->symtab_" identifier = (field_expression "this->symtab_" identifier -> field_identifier)) ;) (expression_statement "pTVar25[2]._vptr_Task = (_func_int_varargs **)pIVar4;" (assignment_expression "pTVar25[2]._vptr_Task = (_func_int_varargs **)pIVar4" (field_expression "pTVar25[2]._vptr_Task" (subscript_expression "pTVar25[2]" identifier [ number_literal ]) . field_identifier) = (cast_expression "(_func_int_varargs **)pIVar4" ( (type_descriptor "_func_int_varargs **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) identifier)) ;) (expression_statement "pTVar25->list_next_ = (Task *)0x0;" (assignment_expression "pTVar25->list_next_ = (Task *)0x0" (field_expression "pTVar25->list_next_" identifier -> field_identifier) = (cast_expression "(Task *)0x0" ( (type_descriptor "Task *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (expression_statement "(pTVar25->name_)._M_string_length = 0;" (assignment_expression "(pTVar25->name_)._M_string_length = 0" (field_expression "(pTVar25->name_)._M_string_length" (parenthesized_expression "(pTVar25->name_)" ( (field_expression "pTVar25->name_" identifier -> field_identifier) )) . field_identifier) = number_literal) ;) (expression_statement "pTVar25->should_run_soon_ = false;" (assignment_expression "pTVar25->should_run_soon_ = false" (field_expression "pTVar25->should_run_soon_" identifier -> field_identifier) = false) ;) (expression_statement "pTVar25->_vptr_Task = (_func_int_varargs **)&PTR__Read_script_003ad080;" (assignment_expression "pTVar25->_vptr_Task = (_func_int_varargs **)&PTR__Read_script_003ad080" (field_expression "pTVar25->_vptr_Task" identifier -> field_identifier) = (cast_expression "(_func_int_varargs **)&PTR__Read_script_003ad080" ( (type_descriptor "_func_int_varargs **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (pointer_expression "&PTR__Read_script_003ad080" & identifier))) ;) (expression_statement "pTVar25[1]._vptr_Task = (_func_int_varargs **)pSVar12;" (assignment_expression "pTVar25[1]._vptr_Task = (_func_int_varargs **)pSVar12" (field_expression "pTVar25[1]._vptr_Task" (subscript_expression "pTVar25[1]" identifier [ number_literal ]) . field_identifier) = (cast_expression "(_func_int_varargs **)pSVar12" ( (type_descriptor "_func_int_varargs **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) identifier)) ;) (expression_statement "pTVar25[1].list_next_ = (Task *)pLVar11;" (assignment_expression "pTVar25[1].list_next_ = (Task *)pLVar11" (field_expression "pTVar25[1].list_next_" (subscript_expression "pTVar25[1]" identifier [ number_literal ]) . field_identifier) = (cast_expression "(Task *)pLVar11" ( (type_descriptor "Task *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) ;) (expression_statement "pTVar25[1].name_._M_dataplus._M_p = (pointer)pDVar5;" (assignment_expression "pTVar25[1].name_._M_dataplus._M_p = (pointer)pDVar5" (field_expression "pTVar25[1].name_._M_dataplus._M_p" (field_expression "pTVar25[1].name_._M_dataplus" (field_expression "pTVar25[1].name_" (subscript_expression "pTVar25[1]" identifier [ number_literal ]) . field_identifier) . field_identifier) . field_identifier) = (cast_expression "(pointer)pDVar5" ( (type_descriptor "pointer" type_identifier) ) identifier)) ;) (expression_statement "*(int *)&pTVar25[1].name_._M_string_length = iVar19;" (assignment_expression "*(int *)&pTVar25[1].name_._M_string_length = iVar19" (pointer_expression "*(int *)&pTVar25[1].name_._M_string_length" * (cast_expression "(int *)&pTVar25[1].name_._M_string_length" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (pointer_expression "&pTVar25[1].name_._M_string_length" & (field_expression "pTVar25[1].name_._M_string_length" (field_expression "pTVar25[1].name_" (subscript_expression "pTVar25[1]" identifier [ number_literal ]) . field_identifier) . field_identifier)))) = identifier) ;) (expression_statement "pTVar25[1].name_.field_2._M_allocated_capacity = (size_type)pIVar10;" (assignment_expression "pTVar25[1].name_.field_2._M_allocated_capacity = (size_type)pIVar10" (field_expression "pTVar25[1].name_.field_2._M_allocated_capacity" (field_expression "pTVar25[1].name_.field_2" (field_expression "pTVar25[1].name_" (subscript_expression "pTVar25[1]" identifier [ number_literal ]) . field_identifier) . field_identifier) . field_identifier) = (cast_expression "(size_type)pIVar10" ( (type_descriptor "size_type" type_identifier) ) identifier)) ;) (expression_statement "*(Mapfile **)((long)&pTVar25[1].name_.field_2 + 8) = pMVar9;" (assignment_expression "*(Mapfile **)((long)&pTVar25[1].name_.field_2 + 8) = pMVar9" (pointer_expression "*(Mapfile **)((long)&pTVar25[1].name_.field_2 + 8)" * (cast_expression "(Mapfile **)((long)&pTVar25[1].name_.field_2 + 8)" ( (type_descriptor "Mapfile **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "((long)&pTVar25[1].name_.field_2 + 8)" ( (binary_expression "(long)&pTVar25[1].name_.field_2 + 8" (cast_expression "(long)&pTVar25[1].name_.field_2" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) (pointer_expression "&pTVar25[1].name_.field_2" & (field_expression "pTVar25[1].name_.field_2" (field_expression "pTVar25[1].name_" (subscript_expression "pTVar25[1]" identifier [ number_literal ]) . field_identifier) . field_identifier))) + number_literal) )))) = identifier) ;) (expression_statement "pTVar25[2].list_next_ = (Task *)pIVar20;" (assignment_expression "pTVar25[2].list_next_ = (Task *)pIVar20" (field_expression "pTVar25[2].list_next_" (subscript_expression "pTVar25[2]" identifier [ number_literal ]) . field_identifier) = (cast_expression "(Task *)pIVar20" ( (type_descriptor "Task *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) ;) (expression_statement "pTVar25[2].name_._M_dataplus._M_p = &pTVar8->is_blocker_;" (assignment_expression "pTVar25[2].name_._M_dataplus._M_p = &pTVar8->is_blocker_" (field_expression "pTVar25[2].name_._M_dataplus._M_p" (field_expression "pTVar25[2].name_._M_dataplus" (field_expression "pTVar25[2].name_" (subscript_expression "pTVar25[2]" identifier [ number_literal ]) . field_identifier) . field_identifier) . field_identifier) = (pointer_expression "&pTVar8->is_blocker_" & (field_expression "pTVar8->is_blocker_" identifier -> field_identifier))) ;) (expression_statement "pTVar25[2].name_._M_string_length = (size_type)pTVar7;" (assignment_expression "pTVar25[2].name_._M_string_length = (size_type)pTVar7" (field_expression "pTVar25[2].name_._M_string_length" (field_expression "pTVar25[2].name_" (subscript_expression "pTVar25[2]" identifier [ number_literal ]) . field_identifier) . field_identifier) = (cast_expression "(size_type)pTVar7" ( (type_descriptor "size_type" type_identifier) ) identifier)) ;) (labeled_statement "Workqueue::queue_soon(workqueue,pTVar25);" statement_identifier : (ERROR ":" :) (expression_statement "queue_soon(workqueue,pTVar25);" (call_expression "queue_soon(workqueue,pTVar25)" identifier (argument_list "(workqueue,pTVar25)" ( identifier , identifier ))) ;)) (return_statement "return (bool)cVar17;" return (cast_expression "(bool)cVar17" ( (type_descriptor "bool" primitive_type) ) identifier) ;) })) (if_statement "if (elf_object == (Object *)0x0) {\n            if (unconfigured == false) {\n              return false;\n            }\n            this_00 = &pIVar20->file_;\n            incompatible_warning(this->input_argument_,pIVar20);\n            File_read::release(this_00);\n            pRVar27 = this;\n            File_read::unlock(this_00,&this->super_Task);\n            File_read::~File_read(this_00,(int)pRVar27);\n            pcVar15 = (pIVar20->found_name_)._M_dataplus._M_p;\n            if (paVar1 != (anon_union_16_2_edb7204a_for_basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_9\n                           *)pcVar15) {\n              operator_delete(pcVar15);\n            }\n            operator_delete(pIVar20,0xe8);\n            this->dirindex_ = this->dirindex_ + 1;\n            bVar16 = do_read_symbols(this,workqueue);\n            return bVar16;\n          }" if (parenthesized_expression "(elf_object == (Object *)0x0)" ( (binary_expression "elf_object == (Object *)0x0" identifier == (cast_expression "(Object *)0x0" ( (type_descriptor "Object *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n            if (unconfigured == false) {\n              return false;\n            }\n            this_00 = &pIVar20->file_;\n            incompatible_warning(this->input_argument_,pIVar20);\n            File_read::release(this_00);\n            pRVar27 = this;\n            File_read::unlock(this_00,&this->super_Task);\n            File_read::~File_read(this_00,(int)pRVar27);\n            pcVar15 = (pIVar20->found_name_)._M_dataplus._M_p;\n            if (paVar1 != (anon_union_16_2_edb7204a_for_basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_9\n                           *)pcVar15) {\n              operator_delete(pcVar15);\n            }\n            operator_delete(pIVar20,0xe8);\n            this->dirindex_ = this->dirindex_ + 1;\n            bVar16 = do_read_symbols(this,workqueue);\n            return bVar16;\n          }" { (if_statement "if (unconfigured == false) {\n              return false;\n            }" if (parenthesized_expression "(unconfigured == false)" ( (binary_expression "unconfigured == false" identifier == false) )) (compound_statement "{\n              return false;\n            }" { (return_statement "return false;" return false ;) })) (expression_statement "this_00 = &pIVar20->file_;" (assignment_expression "this_00 = &pIVar20->file_" identifier = (pointer_expression "&pIVar20->file_" & (field_expression "pIVar20->file_" identifier -> field_identifier))) ;) (expression_statement "incompatible_warning(this->input_argument_,pIVar20);" (call_expression "incompatible_warning(this->input_argument_,pIVar20)" identifier (argument_list "(this->input_argument_,pIVar20)" ( (field_expression "this->input_argument_" identifier -> field_identifier) , identifier ))) ;) (labeled_statement "File_read::release(this_00);" statement_identifier : (ERROR ":" :) (expression_statement "release(this_00);" (call_expression "release(this_00)" identifier (argument_list "(this_00)" ( identifier ))) ;)) (expression_statement "pRVar27 = this;" (assignment_expression "pRVar27 = this" identifier = identifier) ;) (labeled_statement "File_read::unlock(this_00,&this->super_Task);" statement_identifier : (ERROR ":" :) (expression_statement "unlock(this_00,&this->super_Task);" (call_expression "unlock(this_00,&this->super_Task)" identifier (argument_list "(this_00,&this->super_Task)" ( identifier , (pointer_expression "&this->super_Task" & (field_expression "this->super_Task" identifier -> field_identifier)) ))) ;)) (labeled_statement "File_read::~File_read(this_00,(int)pRVar27);" statement_identifier : (ERROR ":" :) (expression_statement "~File_read(this_00,(int)pRVar27);" (unary_expression "~File_read(this_00,(int)pRVar27)" ~ (call_expression "File_read(this_00,(int)pRVar27)" identifier (argument_list "(this_00,(int)pRVar27)" ( identifier , (cast_expression "(int)pRVar27" ( (type_descriptor "int" primitive_type) ) identifier) )))) ;)) (expression_statement "pcVar15 = (pIVar20->found_name_)._M_dataplus._M_p;" (assignment_expression "pcVar15 = (pIVar20->found_name_)._M_dataplus._M_p" identifier = (field_expression "(pIVar20->found_name_)._M_dataplus._M_p" (field_expression "(pIVar20->found_name_)._M_dataplus" (parenthesized_expression "(pIVar20->found_name_)" ( (field_expression "pIVar20->found_name_" identifier -> field_identifier) )) . field_identifier) . field_identifier)) ;) (if_statement "if (paVar1 != (anon_union_16_2_edb7204a_for_basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_9\n                           *)pcVar15) {\n              operator_delete(pcVar15);\n            }" if (parenthesized_expression "(paVar1 != (anon_union_16_2_edb7204a_for_basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_9\n                           *)pcVar15)" ( (binary_expression "paVar1 != (anon_union_16_2_edb7204a_for_basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_9\n                           *)pcVar15)" identifier != (parenthesized_expression "(anon_union_16_2_edb7204a_for_basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_9\n                           *)pcVar15)" ( (ERROR "anon_union_16_2_edb7204a_for_basic_string<char,_std::char_traits<char>,_std::" (comma_expression "anon_union_16_2_edb7204a_for_basic_string<char,_std" (binary_expression "anon_union_16_2_edb7204a_for_basic_string<char" identifier < identifier) , identifier) : : (binary_expression "char_traits<char>,_std" (binary_expression "char_traits<char" identifier < identifier) > (ERROR "," ,) identifier) : :) (binary_expression "allocator<char>_>_9\n                           *)pcVar15" (binary_expression "allocator<char>_" (binary_expression "allocator<char" identifier < identifier) > identifier) > (binary_expression "_9\n                           *)pcVar15" identifier * (ERROR ")" )) identifier)) ))) )) (compound_statement "{\n              operator_delete(pcVar15);\n            }" { (expression_statement "operator_delete(pcVar15);" (call_expression "operator_delete(pcVar15)" identifier (argument_list "(pcVar15)" ( identifier ))) ;) })) (expression_statement "operator_delete(pIVar20,0xe8);" (call_expression "operator_delete(pIVar20,0xe8)" identifier (argument_list "(pIVar20,0xe8)" ( identifier , number_literal ))) ;) (expression_statement "this->dirindex_ = this->dirindex_ + 1;" (assignment_expression "this->dirindex_ = this->dirindex_ + 1" (field_expression "this->dirindex_" identifier -> field_identifier) = (binary_expression "this->dirindex_ + 1" (field_expression "this->dirindex_" identifier -> field_identifier) + number_literal)) ;) (expression_statement "bVar16 = do_read_symbols(this,workqueue);" (assignment_expression "bVar16 = do_read_symbols(this,workqueue)" identifier = (call_expression "do_read_symbols(this,workqueue)" identifier (argument_list "(this,workqueue)" ( identifier , identifier )))) ;) (return_statement "return bVar16;" return identifier ;) })) (expression_statement "pRVar24 = (Read_symbols_data *)operator_new(0x80);" (assignment_expression "pRVar24 = (Read_symbols_data *)operator_new(0x80)" identifier = (cast_expression "(Read_symbols_data *)operator_new(0x80)" ( (type_descriptor "Read_symbols_data *" type_identifier (abstract_pointer_declarator "*" *)) ) (call_expression "operator_new(0x80)" identifier (argument_list "(0x80)" ( number_literal ))))) ;) (expression_statement "pRVar24->section_headers = (File_view *)0x0;" (assignment_expression "pRVar24->section_headers = (File_view *)0x0" (field_expression "pRVar24->section_headers" identifier -> field_identifier) = (cast_expression "(File_view *)0x0" ( (type_descriptor "File_view *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (expression_statement "pRVar24->section_names = (File_view *)0x0;" (assignment_expression "pRVar24->section_names = (File_view *)0x0" (field_expression "pRVar24->section_names" identifier -> field_identifier) = (cast_expression "(File_view *)0x0" ( (type_descriptor "File_view *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (expression_statement "pRVar24->symbols = (File_view *)0x0;" (assignment_expression "pRVar24->symbols = (File_view *)0x0" (field_expression "pRVar24->symbols" identifier -> field_identifier) = (cast_expression "(File_view *)0x0" ( (type_descriptor "File_view *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (expression_statement "pRVar24->symbol_names = (File_view *)0x0;" (assignment_expression "pRVar24->symbol_names = (File_view *)0x0" (field_expression "pRVar24->symbol_names" identifier -> field_identifier) = (cast_expression "(File_view *)0x0" ( (type_descriptor "File_view *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (expression_statement "pRVar24->versym = (File_view *)0x0;" (assignment_expression "pRVar24->versym = (File_view *)0x0" (field_expression "pRVar24->versym" identifier -> field_identifier) = (cast_expression "(File_view *)0x0" ( (type_descriptor "File_view *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (expression_statement "pRVar24->verdef = (File_view *)0x0;" (assignment_expression "pRVar24->verdef = (File_view *)0x0" (field_expression "pRVar24->verdef" identifier -> field_identifier) = (cast_expression "(File_view *)0x0" ( (type_descriptor "File_view *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (expression_statement "pRVar24->verneed = (File_view *)0x0;" (assignment_expression "pRVar24->verneed = (File_view *)0x0" (field_expression "pRVar24->verneed" identifier -> field_identifier) = (cast_expression "(File_view *)0x0" ( (type_descriptor "File_view *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (expression_statement "(*elf_object->_vptr_Object[8])(elf_object,pRVar24);" (call_expression "(*elf_object->_vptr_Object[8])(elf_object,pRVar24)" (parenthesized_expression "(*elf_object->_vptr_Object[8])" ( (pointer_expression "*elf_object->_vptr_Object[8]" * (subscript_expression "elf_object->_vptr_Object[8]" (field_expression "elf_object->_vptr_Object" identifier -> field_identifier) [ number_literal ])) )) (argument_list "(elf_object,pRVar24)" ( identifier , identifier ))) ;) (labeled_statement "File_read::unlock(&pIVar20->file_,&this->super_Task);" statement_identifier : (ERROR ":" :) (expression_statement "unlock(&pIVar20->file_,&this->super_Task);" (call_expression "unlock(&pIVar20->file_,&this->super_Task)" identifier (argument_list "(&pIVar20->file_,&this->super_Task)" ( (pointer_expression "&pIVar20->file_" & (field_expression "pIVar20->file_" identifier -> field_identifier)) , (pointer_expression "&this->super_Task" & (field_expression "this->super_Task" identifier -> field_identifier)) ))) ;)) (expression_statement "pAVar13 = this->member_;" (assignment_expression "pAVar13 = this->member_" identifier = (field_expression "this->member_" identifier -> field_identifier)) ;) (if_statement "if (pAVar13 == (Archive_member *)0x0) {\n            pTVar22 = (Task *)operator_new(0x80);\n            pIVar4 = this->input_argument_;\n            pLVar11 = this->layout_;\n            pSVar12 = this->symtab_;\n            pIVar10 = this->input_objects_;\n            *(Read_symbols_data **)&pTVar22[1].should_run_soon_ = pRVar24;\n            pTVar25 = (Task *)this->next_blocker_;\n            pTVar7 = this->this_blocker_;\n            (pTVar22->name_)._M_dataplus._M_p = (pointer)&(pTVar22->name_).field_2;\n            pTVar22[1].name_._M_dataplus._M_p = (pointer)pLVar11;\n            pTVar22[1].name_._M_string_length = (size_type)pIVar4;\n            pTVar22->list_next_ = (Task *)0x0;\n            (pTVar22->name_)._M_string_length = 0;\n            (pTVar22->name_).field_2._M_local_buf[0] = '\0';\n            pTVar22->should_run_soon_ = false;\n            pTVar22->_vptr_Task = (_func_int_varargs **)&PTR__Add_symbols_003acf00;\n            pTVar22[1]._vptr_Task = (_func_int_varargs **)pIVar10;\n            pTVar22[1].list_next_ = (Task *)pSVar12;\n            *(Object **)&pTVar22[1].name_.field_2 = elf_object;\n            *(undefined8 *)((long)&pTVar22[1].name_.field_2 + 8) = 0;\n            pTVar22[2]._vptr_Task = (_func_int_varargs **)pTVar7;\n            pTVar22[2].list_next_ = pTVar25;\n            Workqueue::queue_next(workqueue,pTVar22);\n            return bVar16;\n          }" if (parenthesized_expression "(pAVar13 == (Archive_member *)0x0)" ( (binary_expression "pAVar13 == (Archive_member *)0x0" identifier == (cast_expression "(Archive_member *)0x0" ( (type_descriptor "Archive_member *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n            pTVar22 = (Task *)operator_new(0x80);\n            pIVar4 = this->input_argument_;\n            pLVar11 = this->layout_;\n            pSVar12 = this->symtab_;\n            pIVar10 = this->input_objects_;\n            *(Read_symbols_data **)&pTVar22[1].should_run_soon_ = pRVar24;\n            pTVar25 = (Task *)this->next_blocker_;\n            pTVar7 = this->this_blocker_;\n            (pTVar22->name_)._M_dataplus._M_p = (pointer)&(pTVar22->name_).field_2;\n            pTVar22[1].name_._M_dataplus._M_p = (pointer)pLVar11;\n            pTVar22[1].name_._M_string_length = (size_type)pIVar4;\n            pTVar22->list_next_ = (Task *)0x0;\n            (pTVar22->name_)._M_string_length = 0;\n            (pTVar22->name_).field_2._M_local_buf[0] = '\0';\n            pTVar22->should_run_soon_ = false;\n            pTVar22->_vptr_Task = (_func_int_varargs **)&PTR__Add_symbols_003acf00;\n            pTVar22[1]._vptr_Task = (_func_int_varargs **)pIVar10;\n            pTVar22[1].list_next_ = (Task *)pSVar12;\n            *(Object **)&pTVar22[1].name_.field_2 = elf_object;\n            *(undefined8 *)((long)&pTVar22[1].name_.field_2 + 8) = 0;\n            pTVar22[2]._vptr_Task = (_func_int_varargs **)pTVar7;\n            pTVar22[2].list_next_ = pTVar25;\n            Workqueue::queue_next(workqueue,pTVar22);\n            return bVar16;\n          }" { (expression_statement "pTVar22 = (Task *)operator_new(0x80);" (assignment_expression "pTVar22 = (Task *)operator_new(0x80)" identifier = (cast_expression "(Task *)operator_new(0x80)" ( (type_descriptor "Task *" type_identifier (abstract_pointer_declarator "*" *)) ) (call_expression "operator_new(0x80)" identifier (argument_list "(0x80)" ( number_literal ))))) ;) (expression_statement "pIVar4 = this->input_argument_;" (assignment_expression "pIVar4 = this->input_argument_" identifier = (field_expression "this->input_argument_" identifier -> field_identifier)) ;) (expression_statement "pLVar11 = this->layout_;" (assignment_expression "pLVar11 = this->layout_" identifier = (field_expression "this->layout_" identifier -> field_identifier)) ;) (expression_statement "pSVar12 = this->symtab_;" (assignment_expression "pSVar12 = this->symtab_" identifier = (field_expression "this->symtab_" identifier -> field_identifier)) ;) (expression_statement "pIVar10 = this->input_objects_;" (assignment_expression "pIVar10 = this->input_objects_" identifier = (field_expression "this->input_objects_" identifier -> field_identifier)) ;) (expression_statement "*(Read_symbols_data **)&pTVar22[1].should_run_soon_ = pRVar24;" (assignment_expression "*(Read_symbols_data **)&pTVar22[1].should_run_soon_ = pRVar24" (pointer_expression "*(Read_symbols_data **)&pTVar22[1].should_run_soon_" * (cast_expression "(Read_symbols_data **)&pTVar22[1].should_run_soon_" ( (type_descriptor "Read_symbols_data **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (pointer_expression "&pTVar22[1].should_run_soon_" & (field_expression "pTVar22[1].should_run_soon_" (subscript_expression "pTVar22[1]" identifier [ number_literal ]) . field_identifier)))) = identifier) ;) (expression_statement "pTVar25 = (Task *)this->next_blocker_;" (assignment_expression "pTVar25 = (Task *)this->next_blocker_" identifier = (cast_expression "(Task *)this->next_blocker_" ( (type_descriptor "Task *" type_identifier (abstract_pointer_declarator "*" *)) ) (field_expression "this->next_blocker_" identifier -> field_identifier))) ;) (expression_statement "pTVar7 = this->this_blocker_;" (assignment_expression "pTVar7 = this->this_blocker_" identifier = (field_expression "this->this_blocker_" identifier -> field_identifier)) ;) (expression_statement "(pTVar22->name_)._M_dataplus._M_p = (pointer)&(pTVar22->name_).field_2;" (assignment_expression "(pTVar22->name_)._M_dataplus._M_p = (pointer)&(pTVar22->name_).field_2" (field_expression "(pTVar22->name_)._M_dataplus._M_p" (field_expression "(pTVar22->name_)._M_dataplus" (parenthesized_expression "(pTVar22->name_)" ( (field_expression "pTVar22->name_" identifier -> field_identifier) )) . field_identifier) . field_identifier) = (binary_expression "(pointer)&(pTVar22->name_).field_2" (parenthesized_expression "(pointer)" ( identifier )) & (field_expression "(pTVar22->name_).field_2" (parenthesized_expression "(pTVar22->name_)" ( (field_expression "pTVar22->name_" identifier -> field_identifier) )) . field_identifier))) ;) (expression_statement "pTVar22[1].name_._M_dataplus._M_p = (pointer)pLVar11;" (assignment_expression "pTVar22[1].name_._M_dataplus._M_p = (pointer)pLVar11" (field_expression "pTVar22[1].name_._M_dataplus._M_p" (field_expression "pTVar22[1].name_._M_dataplus" (field_expression "pTVar22[1].name_" (subscript_expression "pTVar22[1]" identifier [ number_literal ]) . field_identifier) . field_identifier) . field_identifier) = (cast_expression "(pointer)pLVar11" ( (type_descriptor "pointer" type_identifier) ) identifier)) ;) (expression_statement "pTVar22[1].name_._M_string_length = (size_type)pIVar4;" (assignment_expression "pTVar22[1].name_._M_string_length = (size_type)pIVar4" (field_expression "pTVar22[1].name_._M_string_length" (field_expression "pTVar22[1].name_" (subscript_expression "pTVar22[1]" identifier [ number_literal ]) . field_identifier) . field_identifier) = (cast_expression "(size_type)pIVar4" ( (type_descriptor "size_type" type_identifier) ) identifier)) ;) (expression_statement "pTVar22->list_next_ = (Task *)0x0;" (assignment_expression "pTVar22->list_next_ = (Task *)0x0" (field_expression "pTVar22->list_next_" identifier -> field_identifier) = (cast_expression "(Task *)0x0" ( (type_descriptor "Task *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (expression_statement "(pTVar22->name_)._M_string_length = 0;" (assignment_expression "(pTVar22->name_)._M_string_length = 0" (field_expression "(pTVar22->name_)._M_string_length" (parenthesized_expression "(pTVar22->name_)" ( (field_expression "pTVar22->name_" identifier -> field_identifier) )) . field_identifier) = number_literal) ;) (expression_statement "(pTVar22->name_).field_2._M_local_buf[0] = '\0';" (assignment_expression "(pTVar22->name_).field_2._M_local_buf[0] = '\0'" (subscript_expression "(pTVar22->name_).field_2._M_local_buf[0]" (field_expression "(pTVar22->name_).field_2._M_local_buf" (field_expression "(pTVar22->name_).field_2" (parenthesized_expression "(pTVar22->name_)" ( (field_expression "pTVar22->name_" identifier -> field_identifier) )) . field_identifier) . field_identifier) [ number_literal ]) = (char_literal "'\0'" ' escape_sequence ')) ;) (expression_statement "pTVar22->should_run_soon_ = false;" (assignment_expression "pTVar22->should_run_soon_ = false" (field_expression "pTVar22->should_run_soon_" identifier -> field_identifier) = false) ;) (expression_statement "pTVar22->_vptr_Task = (_func_int_varargs **)&PTR__Add_symbols_003acf00;" (assignment_expression "pTVar22->_vptr_Task = (_func_int_varargs **)&PTR__Add_symbols_003acf00" (field_expression "pTVar22->_vptr_Task" identifier -> field_identifier) = (cast_expression "(_func_int_varargs **)&PTR__Add_symbols_003acf00" ( (type_descriptor "_func_int_varargs **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (pointer_expression "&PTR__Add_symbols_003acf00" & identifier))) ;) (expression_statement "pTVar22[1]._vptr_Task = (_func_int_varargs **)pIVar10;" (assignment_expression "pTVar22[1]._vptr_Task = (_func_int_varargs **)pIVar10" (field_expression "pTVar22[1]._vptr_Task" (subscript_expression "pTVar22[1]" identifier [ number_literal ]) . field_identifier) = (cast_expression "(_func_int_varargs **)pIVar10" ( (type_descriptor "_func_int_varargs **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) identifier)) ;) (expression_statement "pTVar22[1].list_next_ = (Task *)pSVar12;" (assignment_expression "pTVar22[1].list_next_ = (Task *)pSVar12" (field_expression "pTVar22[1].list_next_" (subscript_expression "pTVar22[1]" identifier [ number_literal ]) . field_identifier) = (cast_expression "(Task *)pSVar12" ( (type_descriptor "Task *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) ;) (expression_statement "*(Object **)&pTVar22[1].name_.field_2 = elf_object;" (assignment_expression "*(Object **)&pTVar22[1].name_.field_2 = elf_object" (pointer_expression "*(Object **)&pTVar22[1].name_.field_2" * (cast_expression "(Object **)&pTVar22[1].name_.field_2" ( (type_descriptor "Object **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (pointer_expression "&pTVar22[1].name_.field_2" & (field_expression "pTVar22[1].name_.field_2" (field_expression "pTVar22[1].name_" (subscript_expression "pTVar22[1]" identifier [ number_literal ]) . field_identifier) . field_identifier)))) = identifier) ;) (expression_statement "*(undefined8 *)((long)&pTVar22[1].name_.field_2 + 8) = 0;" (assignment_expression "*(undefined8 *)((long)&pTVar22[1].name_.field_2 + 8) = 0" (pointer_expression "*(undefined8 *)((long)&pTVar22[1].name_.field_2 + 8)" * (cast_expression "(undefined8 *)((long)&pTVar22[1].name_.field_2 + 8)" ( (type_descriptor "undefined8 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((long)&pTVar22[1].name_.field_2 + 8)" ( (binary_expression "(long)&pTVar22[1].name_.field_2 + 8" (cast_expression "(long)&pTVar22[1].name_.field_2" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) (pointer_expression "&pTVar22[1].name_.field_2" & (field_expression "pTVar22[1].name_.field_2" (field_expression "pTVar22[1].name_" (subscript_expression "pTVar22[1]" identifier [ number_literal ]) . field_identifier) . field_identifier))) + number_literal) )))) = number_literal) ;) (expression_statement "pTVar22[2]._vptr_Task = (_func_int_varargs **)pTVar7;" (assignment_expression "pTVar22[2]._vptr_Task = (_func_int_varargs **)pTVar7" (field_expression "pTVar22[2]._vptr_Task" (subscript_expression "pTVar22[2]" identifier [ number_literal ]) . field_identifier) = (cast_expression "(_func_int_varargs **)pTVar7" ( (type_descriptor "_func_int_varargs **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) identifier)) ;) (expression_statement "pTVar22[2].list_next_ = pTVar25;" (assignment_expression "pTVar22[2].list_next_ = pTVar25" (field_expression "pTVar22[2].list_next_" (subscript_expression "pTVar22[2]" identifier [ number_literal ]) . field_identifier) = identifier) ;) (labeled_statement "Workqueue::queue_next(workqueue,pTVar22);" statement_identifier : (ERROR ":" :) (expression_statement "queue_next(workqueue,pTVar22);" (call_expression "queue_next(workqueue,pTVar22)" identifier (argument_list "(workqueue,pTVar22)" ( identifier , identifier ))) ;)) (return_statement "return bVar16;" return identifier ;) })) (expression_statement "pIVar4 = this->input_argument_;" (assignment_expression "pIVar4 = this->input_argument_" identifier = (field_expression "this->input_argument_" identifier -> field_identifier)) ;) (expression_statement "pAVar13->sd_ = pRVar24;" (assignment_expression "pAVar13->sd_ = pRVar24" (field_expression "pAVar13->sd_" identifier -> field_identifier) = identifier) ;) (expression_statement "pAVar13->obj_ = elf_object;" (assignment_expression "pAVar13->obj_ = elf_object" (field_expression "pAVar13->obj_" identifier -> field_identifier) = identifier) ;) (expression_statement "bVar16 = pIVar4->is_file_;" (assignment_expression "bVar16 = pIVar4->is_file_" identifier = (field_expression "pIVar4->is_file_" identifier -> field_identifier)) ;) (if_statement "if (bVar16 != false) {\n            pAVar13->arg_serial_ = (pIVar4->file_).arg_serial_;\n            return bVar16;\n          }" if (parenthesized_expression "(bVar16 != false)" ( (binary_expression "bVar16 != false" identifier != false) )) (compound_statement "{\n            pAVar13->arg_serial_ = (pIVar4->file_).arg_serial_;\n            return bVar16;\n          }" { (expression_statement "pAVar13->arg_serial_ = (pIVar4->file_).arg_serial_;" (assignment_expression "pAVar13->arg_serial_ = (pIVar4->file_).arg_serial_" (field_expression "pAVar13->arg_serial_" identifier -> field_identifier) = (field_expression "(pIVar4->file_).arg_serial_" (parenthesized_expression "(pIVar4->file_)" ( (field_expression "pIVar4->file_" identifier -> field_identifier) )) . field_identifier)) ;) (return_statement "return bVar16;" return identifier ;) })) }) (else_clause "else {\n          bVar16 = this->input_argument_->is_file_;\n          if (bVar16 != false) {\n            __s = (this->input_argument_->file_).name_._M_dataplus._M_p;\n            pcVar26 = (char *)0xffffffffffffffff;\n            _unconfigured = local_48;\n            if (__s != (char *)0x0) {\n              sVar21 = strlen(__s);\n              pcVar26 = __s + sVar21;\n            }\n            std::__cxx11::basic_string<char,_std::char_traits<char>,_std::allocator<char>_>::\n            _M_construct<char_const*>((string *)&unconfigured,__s,pcVar26);\n                    /* try { // try from 001f5e1a to 001f5e1e has its CatchHandler @ 001f63a4 */\n            this_02 = (Archive *)operator_new(0x178);\n                    /* try { // try from 001f5e42 to 001f5e46 has its CatchHandler @ 001f639c */\n            Archive::Archive(this_02,(string *)&unconfigured,pIVar20,lVar6 == Archive::armagt,\n                             this->dirpath_,&this->super_Task);\n            if (_unconfigured != local_48) {\n              operator_delete(_unconfigured);\n            }\n            Archive::setup(this_02);\n            File_read::unlock(&this_02->input_file_->file_,&this->super_Task);\n            pTVar22 = (Task *)operator_new(0x90);\n            pTVar7 = this->next_blocker_;\n            pTVar8 = this->this_blocker_;\n            pTVar25 = (Task *)this->input_group_;\n            pIVar4 = this->input_argument_;\n            (pTVar22->name_).field_2._M_local_buf[0] = '\0';\n            pMVar9 = this->mapfile_;\n            iVar19 = this->dirindex_;\n            (pTVar22->name_)._M_dataplus._M_p = (pointer)&(pTVar22->name_).field_2;\n            pDVar5 = this->dirpath_;\n            pIVar10 = this->input_objects_;\n            *(Input_argument **)&pTVar22[1].should_run_soon_ = pIVar4;\n            pLVar11 = this->layout_;\n            pSVar12 = this->symtab_;\n            pTVar22[2].list_next_ = pTVar25;\n            pTVar22->list_next_ = (Task *)0x0;\n            (pTVar22->name_)._M_string_length = 0;\n            pTVar22->should_run_soon_ = false;\n            pTVar22->_vptr_Task = (_func_int_varargs **)&PTR__Add_archive_symbols_003ae430;\n            pTVar22[1]._vptr_Task = (_func_int_varargs **)pSVar12;\n            pTVar22[1].list_next_ = (Task *)pLVar11;\n            pTVar22[1].name_._M_dataplus._M_p = (pointer)pIVar10;\n            pTVar22[1].name_._M_string_length = (size_type)pDVar5;\n            *(int *)&pTVar22[1].name_.field_2 = iVar19;\n            *(Mapfile **)((long)&pTVar22[1].name_.field_2 + 8) = pMVar9;\n            pTVar22[2]._vptr_Task = (_func_int_varargs **)this_02;\n            pTVar22[2].name_._M_dataplus._M_p = &pTVar8->is_blocker_;\n            pTVar22[2].name_._M_string_length = (size_type)pTVar7;\n            Workqueue::queue_next(workqueue,pTVar22);\n            return bVar16;\n          }\n        }" else (compound_statement "{\n          bVar16 = this->input_argument_->is_file_;\n          if (bVar16 != false) {\n            __s = (this->input_argument_->file_).name_._M_dataplus._M_p;\n            pcVar26 = (char *)0xffffffffffffffff;\n            _unconfigured = local_48;\n            if (__s != (char *)0x0) {\n              sVar21 = strlen(__s);\n              pcVar26 = __s + sVar21;\n            }\n            std::__cxx11::basic_string<char,_std::char_traits<char>,_std::allocator<char>_>::\n            _M_construct<char_const*>((string *)&unconfigured,__s,pcVar26);\n                    /* try { // try from 001f5e1a to 001f5e1e has its CatchHandler @ 001f63a4 */\n            this_02 = (Archive *)operator_new(0x178);\n                    /* try { // try from 001f5e42 to 001f5e46 has its CatchHandler @ 001f639c */\n            Archive::Archive(this_02,(string *)&unconfigured,pIVar20,lVar6 == Archive::armagt,\n                             this->dirpath_,&this->super_Task);\n            if (_unconfigured != local_48) {\n              operator_delete(_unconfigured);\n            }\n            Archive::setup(this_02);\n            File_read::unlock(&this_02->input_file_->file_,&this->super_Task);\n            pTVar22 = (Task *)operator_new(0x90);\n            pTVar7 = this->next_blocker_;\n            pTVar8 = this->this_blocker_;\n            pTVar25 = (Task *)this->input_group_;\n            pIVar4 = this->input_argument_;\n            (pTVar22->name_).field_2._M_local_buf[0] = '\0';\n            pMVar9 = this->mapfile_;\n            iVar19 = this->dirindex_;\n            (pTVar22->name_)._M_dataplus._M_p = (pointer)&(pTVar22->name_).field_2;\n            pDVar5 = this->dirpath_;\n            pIVar10 = this->input_objects_;\n            *(Input_argument **)&pTVar22[1].should_run_soon_ = pIVar4;\n            pLVar11 = this->layout_;\n            pSVar12 = this->symtab_;\n            pTVar22[2].list_next_ = pTVar25;\n            pTVar22->list_next_ = (Task *)0x0;\n            (pTVar22->name_)._M_string_length = 0;\n            pTVar22->should_run_soon_ = false;\n            pTVar22->_vptr_Task = (_func_int_varargs **)&PTR__Add_archive_symbols_003ae430;\n            pTVar22[1]._vptr_Task = (_func_int_varargs **)pSVar12;\n            pTVar22[1].list_next_ = (Task *)pLVar11;\n            pTVar22[1].name_._M_dataplus._M_p = (pointer)pIVar10;\n            pTVar22[1].name_._M_string_length = (size_type)pDVar5;\n            *(int *)&pTVar22[1].name_.field_2 = iVar19;\n            *(Mapfile **)((long)&pTVar22[1].name_.field_2 + 8) = pMVar9;\n            pTVar22[2]._vptr_Task = (_func_int_varargs **)this_02;\n            pTVar22[2].name_._M_dataplus._M_p = &pTVar8->is_blocker_;\n            pTVar22[2].name_._M_string_length = (size_type)pTVar7;\n            Workqueue::queue_next(workqueue,pTVar22);\n            return bVar16;\n          }\n        }" { (expression_statement "bVar16 = this->input_argument_->is_file_;" (assignment_expression "bVar16 = this->input_argument_->is_file_" identifier = (field_expression "this->input_argument_->is_file_" (field_expression "this->input_argument_" identifier -> field_identifier) -> field_identifier)) ;) (if_statement "if (bVar16 != false) {\n            __s = (this->input_argument_->file_).name_._M_dataplus._M_p;\n            pcVar26 = (char *)0xffffffffffffffff;\n            _unconfigured = local_48;\n            if (__s != (char *)0x0) {\n              sVar21 = strlen(__s);\n              pcVar26 = __s + sVar21;\n            }\n            std::__cxx11::basic_string<char,_std::char_traits<char>,_std::allocator<char>_>::\n            _M_construct<char_const*>((string *)&unconfigured,__s,pcVar26);\n                    /* try { // try from 001f5e1a to 001f5e1e has its CatchHandler @ 001f63a4 */\n            this_02 = (Archive *)operator_new(0x178);\n                    /* try { // try from 001f5e42 to 001f5e46 has its CatchHandler @ 001f639c */\n            Archive::Archive(this_02,(string *)&unconfigured,pIVar20,lVar6 == Archive::armagt,\n                             this->dirpath_,&this->super_Task);\n            if (_unconfigured != local_48) {\n              operator_delete(_unconfigured);\n            }\n            Archive::setup(this_02);\n            File_read::unlock(&this_02->input_file_->file_,&this->super_Task);\n            pTVar22 = (Task *)operator_new(0x90);\n            pTVar7 = this->next_blocker_;\n            pTVar8 = this->this_blocker_;\n            pTVar25 = (Task *)this->input_group_;\n            pIVar4 = this->input_argument_;\n            (pTVar22->name_).field_2._M_local_buf[0] = '\0';\n            pMVar9 = this->mapfile_;\n            iVar19 = this->dirindex_;\n            (pTVar22->name_)._M_dataplus._M_p = (pointer)&(pTVar22->name_).field_2;\n            pDVar5 = this->dirpath_;\n            pIVar10 = this->input_objects_;\n            *(Input_argument **)&pTVar22[1].should_run_soon_ = pIVar4;\n            pLVar11 = this->layout_;\n            pSVar12 = this->symtab_;\n            pTVar22[2].list_next_ = pTVar25;\n            pTVar22->list_next_ = (Task *)0x0;\n            (pTVar22->name_)._M_string_length = 0;\n            pTVar22->should_run_soon_ = false;\n            pTVar22->_vptr_Task = (_func_int_varargs **)&PTR__Add_archive_symbols_003ae430;\n            pTVar22[1]._vptr_Task = (_func_int_varargs **)pSVar12;\n            pTVar22[1].list_next_ = (Task *)pLVar11;\n            pTVar22[1].name_._M_dataplus._M_p = (pointer)pIVar10;\n            pTVar22[1].name_._M_string_length = (size_type)pDVar5;\n            *(int *)&pTVar22[1].name_.field_2 = iVar19;\n            *(Mapfile **)((long)&pTVar22[1].name_.field_2 + 8) = pMVar9;\n            pTVar22[2]._vptr_Task = (_func_int_varargs **)this_02;\n            pTVar22[2].name_._M_dataplus._M_p = &pTVar8->is_blocker_;\n            pTVar22[2].name_._M_string_length = (size_type)pTVar7;\n            Workqueue::queue_next(workqueue,pTVar22);\n            return bVar16;\n          }" if (parenthesized_expression "(bVar16 != false)" ( (binary_expression "bVar16 != false" identifier != false) )) (compound_statement "{\n            __s = (this->input_argument_->file_).name_._M_dataplus._M_p;\n            pcVar26 = (char *)0xffffffffffffffff;\n            _unconfigured = local_48;\n            if (__s != (char *)0x0) {\n              sVar21 = strlen(__s);\n              pcVar26 = __s + sVar21;\n            }\n            std::__cxx11::basic_string<char,_std::char_traits<char>,_std::allocator<char>_>::\n            _M_construct<char_const*>((string *)&unconfigured,__s,pcVar26);\n                    /* try { // try from 001f5e1a to 001f5e1e has its CatchHandler @ 001f63a4 */\n            this_02 = (Archive *)operator_new(0x178);\n                    /* try { // try from 001f5e42 to 001f5e46 has its CatchHandler @ 001f639c */\n            Archive::Archive(this_02,(string *)&unconfigured,pIVar20,lVar6 == Archive::armagt,\n                             this->dirpath_,&this->super_Task);\n            if (_unconfigured != local_48) {\n              operator_delete(_unconfigured);\n            }\n            Archive::setup(this_02);\n            File_read::unlock(&this_02->input_file_->file_,&this->super_Task);\n            pTVar22 = (Task *)operator_new(0x90);\n            pTVar7 = this->next_blocker_;\n            pTVar8 = this->this_blocker_;\n            pTVar25 = (Task *)this->input_group_;\n            pIVar4 = this->input_argument_;\n            (pTVar22->name_).field_2._M_local_buf[0] = '\0';\n            pMVar9 = this->mapfile_;\n            iVar19 = this->dirindex_;\n            (pTVar22->name_)._M_dataplus._M_p = (pointer)&(pTVar22->name_).field_2;\n            pDVar5 = this->dirpath_;\n            pIVar10 = this->input_objects_;\n            *(Input_argument **)&pTVar22[1].should_run_soon_ = pIVar4;\n            pLVar11 = this->layout_;\n            pSVar12 = this->symtab_;\n            pTVar22[2].list_next_ = pTVar25;\n            pTVar22->list_next_ = (Task *)0x0;\n            (pTVar22->name_)._M_string_length = 0;\n            pTVar22->should_run_soon_ = false;\n            pTVar22->_vptr_Task = (_func_int_varargs **)&PTR__Add_archive_symbols_003ae430;\n            pTVar22[1]._vptr_Task = (_func_int_varargs **)pSVar12;\n            pTVar22[1].list_next_ = (Task *)pLVar11;\n            pTVar22[1].name_._M_dataplus._M_p = (pointer)pIVar10;\n            pTVar22[1].name_._M_string_length = (size_type)pDVar5;\n            *(int *)&pTVar22[1].name_.field_2 = iVar19;\n            *(Mapfile **)((long)&pTVar22[1].name_.field_2 + 8) = pMVar9;\n            pTVar22[2]._vptr_Task = (_func_int_varargs **)this_02;\n            pTVar22[2].name_._M_dataplus._M_p = &pTVar8->is_blocker_;\n            pTVar22[2].name_._M_string_length = (size_type)pTVar7;\n            Workqueue::queue_next(workqueue,pTVar22);\n            return bVar16;\n          }" { (expression_statement "__s = (this->input_argument_->file_).name_._M_dataplus._M_p;" (assignment_expression "__s = (this->input_argument_->file_).name_._M_dataplus._M_p" identifier = (field_expression "(this->input_argument_->file_).name_._M_dataplus._M_p" (field_expression "(this->input_argument_->file_).name_._M_dataplus" (field_expression "(this->input_argument_->file_).name_" (parenthesized_expression "(this->input_argument_->file_)" ( (field_expression "this->input_argument_->file_" (field_expression "this->input_argument_" identifier -> field_identifier) -> field_identifier) )) . field_identifier) . field_identifier) . field_identifier)) ;) (expression_statement "pcVar26 = (char *)0xffffffffffffffff;" (assignment_expression "pcVar26 = (char *)0xffffffffffffffff" identifier = (cast_expression "(char *)0xffffffffffffffff" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (expression_statement "_unconfigured = local_48;" (assignment_expression "_unconfigured = local_48" identifier = identifier) ;) (if_statement "if (__s != (char *)0x0) {\n              sVar21 = strlen(__s);\n              pcVar26 = __s + sVar21;\n            }" if (parenthesized_expression "(__s != (char *)0x0)" ( (binary_expression "__s != (char *)0x0" identifier != (cast_expression "(char *)0x0" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n              sVar21 = strlen(__s);\n              pcVar26 = __s + sVar21;\n            }" { (expression_statement "sVar21 = strlen(__s);" (assignment_expression "sVar21 = strlen(__s)" identifier = (call_expression "strlen(__s)" identifier (argument_list "(__s)" ( identifier )))) ;) (expression_statement "pcVar26 = __s + sVar21;" (assignment_expression "pcVar26 = __s + sVar21" identifier = (binary_expression "__s + sVar21" identifier + identifier)) ;) })) (labeled_statement "std::__cxx11::basic_string<char,_std::char_traits<char>,_std::allocator<char>_>::\n            _M_construct<char_const*>((string *)&unconfigured,__s,pcVar26);" statement_identifier (ERROR "::__cxx11::basic_string<char,_std::char_traits<char>,_std::allocator<char>_>:" : : (comma_expression "__cxx11::basic_string<char,_std::char_traits<char>,_std" identifier (ERROR "::basic_string<char,_std::char_traits<char>" : : (comma_expression "basic_string<char,_std" (binary_expression "basic_string<char" identifier < identifier) , identifier) : : (binary_expression "char_traits<char" identifier < identifier) >) , identifier) : : (binary_expression "allocator<char>_" (binary_expression "allocator<char" identifier < identifier) > identifier) > :) : (expression_statement "_M_construct<char_const*>((string *)&unconfigured,__s,pcVar26);" (binary_expression "_M_construct<char_const*>((string *)&unconfigured,__s,pcVar26)" (binary_expression "_M_construct<char_const" identifier < identifier) (ERROR "*" *) > (parenthesized_expression "((string *)&unconfigured,__s,pcVar26)" ( (comma_expression "(string *)&unconfigured,__s,pcVar26" (cast_expression "(string *)&unconfigured" ( (type_descriptor "string *" type_identifier (abstract_pointer_declarator "*" *)) ) (pointer_expression "&unconfigured" & identifier)) , (comma_expression "__s,pcVar26" identifier , identifier)) ))) ;)) comment (expression_statement "this_02 = (Archive *)operator_new(0x178);" (assignment_expression "this_02 = (Archive *)operator_new(0x178)" identifier = (cast_expression "(Archive *)operator_new(0x178)" ( (type_descriptor "Archive *" type_identifier (abstract_pointer_declarator "*" *)) ) (call_expression "operator_new(0x178)" identifier (argument_list "(0x178)" ( number_literal ))))) ;) comment (labeled_statement "Archive::Archive(this_02,(string *)&unconfigured,pIVar20,lVar6 == Archive::armagt,\n                             this->dirpath_,&this->super_Task);" statement_identifier : (ERROR ":" :) (expression_statement "Archive(this_02,(string *)&unconfigured,pIVar20,lVar6 == Archive::armagt,\n                             this->dirpath_,&this->super_Task);" (call_expression "Archive(this_02,(string *)&unconfigured,pIVar20,lVar6 == Archive::armagt,\n                             this->dirpath_,&this->super_Task)" identifier (argument_list "(this_02,(string *)&unconfigured,pIVar20,lVar6 == Archive::armagt,\n                             this->dirpath_,&this->super_Task)" ( identifier , (cast_expression "(string *)&unconfigured" ( (type_descriptor "string *" type_identifier (abstract_pointer_declarator "*" *)) ) (pointer_expression "&unconfigured" & identifier)) , identifier , (binary_expression "lVar6 == Archive" identifier == identifier) (ERROR "::armagt" : : identifier) , (field_expression "this->dirpath_" identifier -> field_identifier) , (pointer_expression "&this->super_Task" & (field_expression "this->super_Task" identifier -> field_identifier)) ))) ;)) (if_statement "if (_unconfigured != local_48) {\n              operator_delete(_unconfigured);\n            }" if (parenthesized_expression "(_unconfigured != local_48)" ( (binary_expression "_unconfigured != local_48" identifier != identifier) )) (compound_statement "{\n              operator_delete(_unconfigured);\n            }" { (expression_statement "operator_delete(_unconfigured);" (call_expression "operator_delete(_unconfigured)" identifier (argument_list "(_unconfigured)" ( identifier ))) ;) })) (labeled_statement "Archive::setup(this_02);" statement_identifier : (ERROR ":" :) (expression_statement "setup(this_02);" (call_expression "setup(this_02)" identifier (argument_list "(this_02)" ( identifier ))) ;)) (labeled_statement "File_read::unlock(&this_02->input_file_->file_,&this->super_Task);" statement_identifier : (ERROR ":" :) (expression_statement "unlock(&this_02->input_file_->file_,&this->super_Task);" (call_expression "unlock(&this_02->input_file_->file_,&this->super_Task)" identifier (argument_list "(&this_02->input_file_->file_,&this->super_Task)" ( (pointer_expression "&this_02->input_file_->file_" & (field_expression "this_02->input_file_->file_" (field_expression "this_02->input_file_" identifier -> field_identifier) -> field_identifier)) , (pointer_expression "&this->super_Task" & (field_expression "this->super_Task" identifier -> field_identifier)) ))) ;)) (expression_statement "pTVar22 = (Task *)operator_new(0x90);" (assignment_expression "pTVar22 = (Task *)operator_new(0x90)" identifier = (cast_expression "(Task *)operator_new(0x90)" ( (type_descriptor "Task *" type_identifier (abstract_pointer_declarator "*" *)) ) (call_expression "operator_new(0x90)" identifier (argument_list "(0x90)" ( number_literal ))))) ;) (expression_statement "pTVar7 = this->next_blocker_;" (assignment_expression "pTVar7 = this->next_blocker_" identifier = (field_expression "this->next_blocker_" identifier -> field_identifier)) ;) (expression_statement "pTVar8 = this->this_blocker_;" (assignment_expression "pTVar8 = this->this_blocker_" identifier = (field_expression "this->this_blocker_" identifier -> field_identifier)) ;) (expression_statement "pTVar25 = (Task *)this->input_group_;" (assignment_expression "pTVar25 = (Task *)this->input_group_" identifier = (cast_expression "(Task *)this->input_group_" ( (type_descriptor "Task *" type_identifier (abstract_pointer_declarator "*" *)) ) (field_expression "this->input_group_" identifier -> field_identifier))) ;) (expression_statement "pIVar4 = this->input_argument_;" (assignment_expression "pIVar4 = this->input_argument_" identifier = (field_expression "this->input_argument_" identifier -> field_identifier)) ;) (expression_statement "(pTVar22->name_).field_2._M_local_buf[0] = '\0';" (assignment_expression "(pTVar22->name_).field_2._M_local_buf[0] = '\0'" (subscript_expression "(pTVar22->name_).field_2._M_local_buf[0]" (field_expression "(pTVar22->name_).field_2._M_local_buf" (field_expression "(pTVar22->name_).field_2" (parenthesized_expression "(pTVar22->name_)" ( (field_expression "pTVar22->name_" identifier -> field_identifier) )) . field_identifier) . field_identifier) [ number_literal ]) = (char_literal "'\0'" ' escape_sequence ')) ;) (expression_statement "pMVar9 = this->mapfile_;" (assignment_expression "pMVar9 = this->mapfile_" identifier = (field_expression "this->mapfile_" identifier -> field_identifier)) ;) (expression_statement "iVar19 = this->dirindex_;" (assignment_expression "iVar19 = this->dirindex_" identifier = (field_expression "this->dirindex_" identifier -> field_identifier)) ;) (expression_statement "(pTVar22->name_)._M_dataplus._M_p = (pointer)&(pTVar22->name_).field_2;" (assignment_expression "(pTVar22->name_)._M_dataplus._M_p = (pointer)&(pTVar22->name_).field_2" (field_expression "(pTVar22->name_)._M_dataplus._M_p" (field_expression "(pTVar22->name_)._M_dataplus" (parenthesized_expression "(pTVar22->name_)" ( (field_expression "pTVar22->name_" identifier -> field_identifier) )) . field_identifier) . field_identifier) = (binary_expression "(pointer)&(pTVar22->name_).field_2" (parenthesized_expression "(pointer)" ( identifier )) & (field_expression "(pTVar22->name_).field_2" (parenthesized_expression "(pTVar22->name_)" ( (field_expression "pTVar22->name_" identifier -> field_identifier) )) . field_identifier))) ;) (expression_statement "pDVar5 = this->dirpath_;" (assignment_expression "pDVar5 = this->dirpath_" identifier = (field_expression "this->dirpath_" identifier -> field_identifier)) ;) (expression_statement "pIVar10 = this->input_objects_;" (assignment_expression "pIVar10 = this->input_objects_" identifier = (field_expression "this->input_objects_" identifier -> field_identifier)) ;) (expression_statement "*(Input_argument **)&pTVar22[1].should_run_soon_ = pIVar4;" (assignment_expression "*(Input_argument **)&pTVar22[1].should_run_soon_ = pIVar4" (pointer_expression "*(Input_argument **)&pTVar22[1].should_run_soon_" * (cast_expression "(Input_argument **)&pTVar22[1].should_run_soon_" ( (type_descriptor "Input_argument **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (pointer_expression "&pTVar22[1].should_run_soon_" & (field_expression "pTVar22[1].should_run_soon_" (subscript_expression "pTVar22[1]" identifier [ number_literal ]) . field_identifier)))) = identifier) ;) (expression_statement "pLVar11 = this->layout_;" (assignment_expression "pLVar11 = this->layout_" identifier = (field_expression "this->layout_" identifier -> field_identifier)) ;) (expression_statement "pSVar12 = this->symtab_;" (assignment_expression "pSVar12 = this->symtab_" identifier = (field_expression "this->symtab_" identifier -> field_identifier)) ;) (expression_statement "pTVar22[2].list_next_ = pTVar25;" (assignment_expression "pTVar22[2].list_next_ = pTVar25" (field_expression "pTVar22[2].list_next_" (subscript_expression "pTVar22[2]" identifier [ number_literal ]) . field_identifier) = identifier) ;) (expression_statement "pTVar22->list_next_ = (Task *)0x0;" (assignment_expression "pTVar22->list_next_ = (Task *)0x0" (field_expression "pTVar22->list_next_" identifier -> field_identifier) = (cast_expression "(Task *)0x0" ( (type_descriptor "Task *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (expression_statement "(pTVar22->name_)._M_string_length = 0;" (assignment_expression "(pTVar22->name_)._M_string_length = 0" (field_expression "(pTVar22->name_)._M_string_length" (parenthesized_expression "(pTVar22->name_)" ( (field_expression "pTVar22->name_" identifier -> field_identifier) )) . field_identifier) = number_literal) ;) (expression_statement "pTVar22->should_run_soon_ = false;" (assignment_expression "pTVar22->should_run_soon_ = false" (field_expression "pTVar22->should_run_soon_" identifier -> field_identifier) = false) ;) (expression_statement "pTVar22->_vptr_Task = (_func_int_varargs **)&PTR__Add_archive_symbols_003ae430;" (assignment_expression "pTVar22->_vptr_Task = (_func_int_varargs **)&PTR__Add_archive_symbols_003ae430" (field_expression "pTVar22->_vptr_Task" identifier -> field_identifier) = (cast_expression "(_func_int_varargs **)&PTR__Add_archive_symbols_003ae430" ( (type_descriptor "_func_int_varargs **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (pointer_expression "&PTR__Add_archive_symbols_003ae430" & identifier))) ;) (expression_statement "pTVar22[1]._vptr_Task = (_func_int_varargs **)pSVar12;" (assignment_expression "pTVar22[1]._vptr_Task = (_func_int_varargs **)pSVar12" (field_expression "pTVar22[1]._vptr_Task" (subscript_expression "pTVar22[1]" identifier [ number_literal ]) . field_identifier) = (cast_expression "(_func_int_varargs **)pSVar12" ( (type_descriptor "_func_int_varargs **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) identifier)) ;) (expression_statement "pTVar22[1].list_next_ = (Task *)pLVar11;" (assignment_expression "pTVar22[1].list_next_ = (Task *)pLVar11" (field_expression "pTVar22[1].list_next_" (subscript_expression "pTVar22[1]" identifier [ number_literal ]) . field_identifier) = (cast_expression "(Task *)pLVar11" ( (type_descriptor "Task *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) ;) (expression_statement "pTVar22[1].name_._M_dataplus._M_p = (pointer)pIVar10;" (assignment_expression "pTVar22[1].name_._M_dataplus._M_p = (pointer)pIVar10" (field_expression "pTVar22[1].name_._M_dataplus._M_p" (field_expression "pTVar22[1].name_._M_dataplus" (field_expression "pTVar22[1].name_" (subscript_expression "pTVar22[1]" identifier [ number_literal ]) . field_identifier) . field_identifier) . field_identifier) = (cast_expression "(pointer)pIVar10" ( (type_descriptor "pointer" type_identifier) ) identifier)) ;) (expression_statement "pTVar22[1].name_._M_string_length = (size_type)pDVar5;" (assignment_expression "pTVar22[1].name_._M_string_length = (size_type)pDVar5" (field_expression "pTVar22[1].name_._M_string_length" (field_expression "pTVar22[1].name_" (subscript_expression "pTVar22[1]" identifier [ number_literal ]) . field_identifier) . field_identifier) = (cast_expression "(size_type)pDVar5" ( (type_descriptor "size_type" type_identifier) ) identifier)) ;) (expression_statement "*(int *)&pTVar22[1].name_.field_2 = iVar19;" (assignment_expression "*(int *)&pTVar22[1].name_.field_2 = iVar19" (pointer_expression "*(int *)&pTVar22[1].name_.field_2" * (cast_expression "(int *)&pTVar22[1].name_.field_2" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (pointer_expression "&pTVar22[1].name_.field_2" & (field_expression "pTVar22[1].name_.field_2" (field_expression "pTVar22[1].name_" (subscript_expression "pTVar22[1]" identifier [ number_literal ]) . field_identifier) . field_identifier)))) = identifier) ;) (expression_statement "*(Mapfile **)((long)&pTVar22[1].name_.field_2 + 8) = pMVar9;" (assignment_expression "*(Mapfile **)((long)&pTVar22[1].name_.field_2 + 8) = pMVar9" (pointer_expression "*(Mapfile **)((long)&pTVar22[1].name_.field_2 + 8)" * (cast_expression "(Mapfile **)((long)&pTVar22[1].name_.field_2 + 8)" ( (type_descriptor "Mapfile **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "((long)&pTVar22[1].name_.field_2 + 8)" ( (binary_expression "(long)&pTVar22[1].name_.field_2 + 8" (cast_expression "(long)&pTVar22[1].name_.field_2" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) (pointer_expression "&pTVar22[1].name_.field_2" & (field_expression "pTVar22[1].name_.field_2" (field_expression "pTVar22[1].name_" (subscript_expression "pTVar22[1]" identifier [ number_literal ]) . field_identifier) . field_identifier))) + number_literal) )))) = identifier) ;) (expression_statement "pTVar22[2]._vptr_Task = (_func_int_varargs **)this_02;" (assignment_expression "pTVar22[2]._vptr_Task = (_func_int_varargs **)this_02" (field_expression "pTVar22[2]._vptr_Task" (subscript_expression "pTVar22[2]" identifier [ number_literal ]) . field_identifier) = (cast_expression "(_func_int_varargs **)this_02" ( (type_descriptor "_func_int_varargs **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) identifier)) ;) (expression_statement "pTVar22[2].name_._M_dataplus._M_p = &pTVar8->is_blocker_;" (assignment_expression "pTVar22[2].name_._M_dataplus._M_p = &pTVar8->is_blocker_" (field_expression "pTVar22[2].name_._M_dataplus._M_p" (field_expression "pTVar22[2].name_._M_dataplus" (field_expression "pTVar22[2].name_" (subscript_expression "pTVar22[2]" identifier [ number_literal ]) . field_identifier) . field_identifier) . field_identifier) = (pointer_expression "&pTVar8->is_blocker_" & (field_expression "pTVar8->is_blocker_" identifier -> field_identifier))) ;) (expression_statement "pTVar22[2].name_._M_string_length = (size_type)pTVar7;" (assignment_expression "pTVar22[2].name_._M_string_length = (size_type)pTVar7" (field_expression "pTVar22[2].name_._M_string_length" (field_expression "pTVar22[2].name_" (subscript_expression "pTVar22[2]" identifier [ number_literal ]) . field_identifier) . field_identifier) = (cast_expression "(size_type)pTVar7" ( (type_descriptor "size_type" type_identifier) ) identifier)) ;) (labeled_statement "Workqueue::queue_next(workqueue,pTVar22);" statement_identifier : (ERROR ":" :) (expression_statement "queue_next(workqueue,pTVar22);" (call_expression "queue_next(workqueue,pTVar22)" identifier (argument_list "(workqueue,pTVar22)" ( identifier , identifier ))) ;)) (return_statement "return bVar16;" return identifier ;) })) }))) comment (expression_statement "do_gold_unreachable("../../gold/options.h",0x828,"file");" (call_expression "do_gold_unreachable("../../gold/options.h",0x828,"file")" identifier (argument_list "("../../gold/options.h",0x828,"file")" ( (string_literal ""../../gold/options.h"" " string_content ") , number_literal , (string_literal ""file"" " string_content ") ))) ;) })) (expression_statement "pcVar15 = (pIVar20->file_).name_._M_dataplus._M_p;" (assignment_expression "pcVar15 = (pIVar20->file_).name_._M_dataplus._M_p" identifier = (field_expression "(pIVar20->file_).name_._M_dataplus._M_p" (field_expression "(pIVar20->file_).name_._M_dataplus" (field_expression "(pIVar20->file_).name_" (parenthesized_expression "(pIVar20->file_)" ( (field_expression "pIVar20->file_" identifier -> field_identifier) )) . field_identifier) . field_identifier) . field_identifier)) ;) (expression_statement "pcVar26 = (char *)gettext("%s: file is empty");" (assignment_expression "pcVar26 = (char *)gettext("%s: file is empty")" identifier = (cast_expression "(char *)gettext("%s: file is empty")" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (call_expression "gettext("%s: file is empty")" identifier (argument_list "("%s: file is empty")" ( (string_literal ""%s: file is empty"" " string_content ") ))))) ;) (expression_statement "gold_error(pcVar26,pcVar15);" (call_expression "gold_error(pcVar26,pcVar15)" identifier (argument_list "(pcVar26,pcVar15)" ( identifier , identifier ))) ;) })) (return_statement "return false;" return false ;) })))) (expression_statement "bVar16 = do_lib_group(this,workqueue);" (assignment_expression "bVar16 = do_lib_group(this,workqueue)" identifier = (call_expression "do_lib_group(this,workqueue)" identifier (argument_list "(this,workqueue)" ( identifier , identifier )))) ;) (return_statement "return bVar16;" return identifier ;) })))
(translation_unit "uint FUN_001f5c10(long param_1,undefined8 param_2)\n\n{\n  undefined4 uVar1;\n  undefined8 uVar2;\n  long lVar3;\n  char *__s;\n  undefined8 uVar4;\n  undefined8 uVar5;\n  undefined8 uVar6;\n  undefined8 uVar7;\n  undefined8 uVar8;\n  undefined8 uVar9;\n  byte *pbVar10;\n  byte bVar11;\n  char cVar12;\n  uint uVar13;\n  undefined8 *puVar14;\n  size_t sVar15;\n  long lVar16;\n  undefined8 uVar17;\n  undefined8 *puVar18;\n  long *plVar19;\n  char *pcVar20;\n  undefined1 **ppuVar21;\n  int local_64;\n  long *local_60;\n  undefined1 *local_58 [2];\n  undefined1 local_48 [24];\n  \n  pcVar20 = *(char **)(param_1 + 0x68);\n  if (*pcVar20 == '\0') {\n    if (*(long *)(pcVar20 + 0x70) == 0) {\n      if (*(long *)(param_1 + 0x70) != 0) {\n                    \n        FUN_0016cdf0("../../gold/readsyms.cc",0x10b,"do_read_symbols");\n      }\n      FUN_001f5780();\n      return 1;\n    }\n  }\n  else if (*(long *)(pcVar20 + 0x70) == 0) {\n    puVar14 = (undefined8 *)FUN_00275550(0xe8);\n    uVar2 = *(undefined8 *)(param_1 + 0x50);\n    *puVar14 = pcVar20 + 8;\n    puVar14[1] = puVar14 + 3;\n    puVar14[2] = 0;\n    *(undefined1 *)(puVar14 + 3) = 0;\n    puVar14[5] = puVar14 + 7;\n    puVar14[0x13] = puVar14 + 0x11;\n    puVar14[0x14] = puVar14 + 0x11;\n    puVar14[6] = 0;\n    *(undefined1 *)(puVar14 + 7) = 0;\n    *(undefined4 *)(puVar14 + 9) = 0xffffffff;\n    *(undefined1 *)((long)puVar14 + 0x4c) = 0;\n    *(undefined4 *)(puVar14 + 10) = 0;\n    puVar14[0xb] = 0;\n    *(undefined1 *)(puVar14 + 0xc) = 0;\n    *(undefined4 *)((long)puVar14 + 100) = 0;\n    puVar14[0xd] = 0;\n    puVar14[0xe] = 0;\n    puVar14[0xf] = 0;\n    *(undefined4 *)(puVar14 + 0x11) = 0;\n    puVar14[0x12] = 0;\n    puVar14[0x15] = 0;\n    puVar14[0x17] = puVar14 + 0x16;\n    puVar14[0x16] = puVar14 + 0x16;\n    puVar14[0x18] = 0;\n    puVar14[0x19] = 0;\n    *(undefined1 *)(puVar14 + 0x1a) = 1;\n    puVar14[0x1b] = 0;\n    *(undefined1 *)(puVar14 + 0x1c) = 0;\n    *(undefined4 *)((long)puVar14 + 0xe4) = 0;\n    uVar13 = FUN_0016ca50(puVar14,uVar2,param_1,param_1 + 0x58);\n    if ((char)uVar13 != '\0') {\n      lVar16 = puVar14[0xb];\n      if (lVar16 != 0) {\n        bVar11 = FUN_0019b230(puVar14,0,&local_60,&local_64);\n        if ((local_64 < 8) ||\n           ((lVar3 = *local_60, lVar3 != s__<thin>__<arch>_N4gold7ArchiveE_00322e50._0_8_ &&\n            (s__<thin>__<arch>_N4gold7ArchiveE_00322e50._8_8_ != lVar3)))) {\n          plVar19 = (long *)0x0;\n          if (bVar11 != 0) {\n            local_58[0] = (undefined1 *)((ulong)local_58[0] & 0xffffffffffffff00);\n            cVar12 = FUN_0016b000(puVar14);\n            ppuVar21 = (undefined1 **)0x0;\n            if (cVar12 != '\0') {\n              ppuVar21 = local_58;\n            }\n            plVar19 = (long *)FUN_0019b3d0(puVar14 + 5,puVar14,0,local_60,(long)local_64,ppuVar21);\n          }\n          if (*(long *)(PTR_DAT_003be6b0 + 0x10) == 0) {\n                    \n            FUN_0016cdf0("../../gold/parameters.h",0x5c,"options");\n          }\n          lVar3 = *(long *)(*(long *)(PTR_DAT_003be6b0 + 0x10) + 0x9058);\n          if ((lVar3 != 0) && (lVar16 = FUN_001f1940(lVar3,puVar14,0,lVar16,plVar19), lVar16 != 0))\n          {\n            if (plVar19 != (long *)0x0) {\n              (**(code **)(*plVar19 + 8))(plVar19);\n            }\n            if (*(long *)(lVar16 + 0x28) != 0) {\n              FUN_0016ae30(*(long *)(lVar16 + 0x28) + 0x28,param_1);\n            }\n            plVar19 = *(long **)(param_1 + 0x78);\n            if (plVar19 == (long *)0x0) {\n              puVar14 = (undefined8 *)FUN_00275550(0x80);\n              uVar2 = *(undefined8 *)(param_1 + 0x68);\n              uVar17 = *(undefined8 *)(param_1 + 0x48);\n              uVar4 = *(undefined8 *)(param_1 + 0x40);\n              uVar5 = *(undefined8 *)(param_1 + 0x38);\n              *puVar14 = &PTR_FUN_003acf00;\n              uVar6 = *(undefined8 *)(param_1 + 0x88);\n              uVar7 = *(undefined8 *)(param_1 + 0x80);\n              puVar14[9] = uVar17;\n              puVar14[10] = uVar2;\n              puVar14[1] = 0;\n              puVar14[2] = puVar14 + 4;\n              puVar14[3] = 0;\n              *(undefined1 *)(puVar14 + 4) = 0;\n              *(undefined1 *)(puVar14 + 6) = 0;\n              puVar14[7] = uVar5;\n              puVar14[8] = uVar4;\n              puVar14[0xb] = lVar16;\n              puVar14[0xc] = 0;\n              puVar14[0xd] = 0;\n              puVar14[0xe] = uVar7;\n              puVar14[0xf] = uVar6;\n              FUN_002300a0(param_2,puVar14);\n              return uVar13;\n            }\n            plVar19[1] = 0;\n            *plVar19 = lVar16;\n            return uVar13;\n          }\n          if (bVar11 == 0) {\n            puVar18 = (undefined8 *)FUN_00275550(0x90);\n            uVar2 = *(undefined8 *)(param_1 + 0x88);\n            uVar17 = *(undefined8 *)(param_1 + 0x80);\n            uVar4 = *(undefined8 *)(param_1 + 0x68);\n            uVar5 = *(undefined8 *)(param_1 + 0x70);\n            *(undefined1 *)(puVar18 + 4) = 0;\n            uVar6 = *(undefined8 *)(param_1 + 0x60);\n            uVar7 = *(undefined8 *)(param_1 + 0x38);\n            puVar18[2] = puVar18 + 4;\n            uVar1 = *(undefined4 *)(param_1 + 0x58);\n            uVar8 = *(undefined8 *)(param_1 + 0x50);\n            puVar18[0xd] = uVar5;\n            uVar5 = *(undefined8 *)(param_1 + 0x48);\n            uVar9 = *(undefined8 *)(param_1 + 0x40);\n            puVar18[0xe] = uVar4;\n            puVar18[1] = 0;\n            puVar18[3] = 0;\n            *(undefined1 *)(puVar18 + 6) = 0;\n            *puVar18 = &PTR_FUN_003ad080;\n            puVar18[7] = uVar9;\n            puVar18[8] = uVar5;\n            puVar18[9] = uVar8;\n            *(undefined4 *)(puVar18 + 10) = uVar1;\n            puVar18[0xb] = uVar7;\n            puVar18[0xc] = uVar6;\n            puVar18[0xf] = puVar14;\n            puVar18[0x10] = uVar17;\n            puVar18[0x11] = uVar2;\n            FUN_00230080(param_2,puVar18);\n            return uVar13;\n          }\n          if (plVar19 == (long *)0x0) {\n            if ((char)local_58[0] == '\0') {\n              return 0;\n            }\n            puVar18 = puVar14 + 5;\n            FUN_001f51c0(*(undefined8 *)(param_1 + 0x68),puVar14);\n            FUN_0016ad00(puVar18);\n            FUN_0016ae30(puVar18,param_1);\n            FUN_0016b0b0(puVar18);\n            if (puVar14 + 3 != (undefined8 *)puVar14[1]) {\n              FUN_00276d20();\n            }\n            thunk_FUN_00276d20(puVar14,0xe8);\n            *(int *)(param_1 + 0x58) = *(int *)(param_1 + 0x58) + 1;\n            uVar13 = FUN_001f5c10(param_1,param_2);\n            return uVar13;\n          }\n          puVar18 = (undefined8 *)FUN_00275550(0x80);\n          *puVar18 = 0;\n          puVar18[1] = 0;\n          puVar18[3] = 0;\n          puVar18[6] = 0;\n          puVar18[8] = 0;\n          puVar18[10] = 0;\n          puVar18[0xd] = 0;\n          (**(code **)(*plVar19 + 0x40))(plVar19,puVar18);\n          FUN_0016ae30(puVar14 + 5,param_1);\n          puVar14 = *(undefined8 **)(param_1 + 0x78);\n          if (puVar14 == (undefined8 *)0x0) {\n            puVar14 = (undefined8 *)FUN_00275550(0x80);\n            uVar2 = *(undefined8 *)(param_1 + 0x68);\n            uVar17 = *(undefined8 *)(param_1 + 0x48);\n            uVar4 = *(undefined8 *)(param_1 + 0x40);\n            uVar5 = *(undefined8 *)(param_1 + 0x38);\n            puVar14[0xd] = puVar18;\n            uVar6 = *(undefined8 *)(param_1 + 0x88);\n            uVar7 = *(undefined8 *)(param_1 + 0x80);\n            puVar14[2] = puVar14 + 4;\n            puVar14[9] = uVar17;\n            puVar14[10] = uVar2;\n            puVar14[1] = 0;\n            puVar14[3] = 0;\n            *(undefined1 *)(puVar14 + 4) = 0;\n            *(undefined1 *)(puVar14 + 6) = 0;\n            *puVar14 = &PTR_FUN_003acf00;\n            puVar14[7] = uVar5;\n            puVar14[8] = uVar4;\n            puVar14[0xb] = plVar19;\n            puVar14[0xc] = 0;\n            puVar14[0xe] = uVar7;\n            puVar14[0xf] = uVar6;\n            FUN_002300a0(param_2,puVar14);\n            return (uint)bVar11;\n          }\n          pbVar10 = *(byte **)(param_1 + 0x68);\n          puVar14[1] = puVar18;\n          *puVar14 = plVar19;\n          bVar11 = *pbVar10;\n          if (bVar11 != 0) {\n            *(undefined4 *)(puVar14 + 2) = *(undefined4 *)(pbVar10 + 100);\n            return (uint)bVar11;\n          }\n        }\n        else {\n          bVar11 = **(byte **)(param_1 + 0x68);\n          if (bVar11 != 0) {\n            __s = *(char **)(*(byte **)(param_1 + 0x68) + 8);\n            pcVar20 = (char *)0xffffffffffffffff;\n            local_58[0] = local_48;\n            if (__s != (char *)0x0) {\n              sVar15 = strlen(__s);\n              pcVar20 = __s + sVar15;\n            }\n            FUN_0015cbe0(local_58,__s,pcVar20);\n                    \n            lVar16 = FUN_00275550(0x178);\n                    \n            FUN_00234b40(lVar16,local_58,puVar14,\n                         lVar3 == s__<thin>__<arch>_N4gold7ArchiveE_00322e50._0_8_,\n                         *(undefined8 *)(param_1 + 0x50),param_1);\n            if (local_58[0] != local_48) {\n              FUN_00276d20();\n            }\n            FUN_00235c40(lVar16);\n            FUN_0016ae30(*(long *)(lVar16 + 0x38) + 0x28,param_1);\n            puVar14 = (undefined8 *)FUN_00275550(0x90);\n            uVar2 = *(undefined8 *)(param_1 + 0x88);\n            uVar17 = *(undefined8 *)(param_1 + 0x80);\n            uVar4 = *(undefined8 *)(param_1 + 0x70);\n            uVar5 = *(undefined8 *)(param_1 + 0x68);\n            *(undefined1 *)(puVar14 + 4) = 0;\n            uVar6 = *(undefined8 *)(param_1 + 0x60);\n            uVar1 = *(undefined4 *)(param_1 + 0x58);\n            puVar14[2] = puVar14 + 4;\n            uVar7 = *(undefined8 *)(param_1 + 0x50);\n            uVar8 = *(undefined8 *)(param_1 + 0x38);\n            puVar14[0xd] = uVar5;\n            uVar5 = *(undefined8 *)(param_1 + 0x48);\n            uVar9 = *(undefined8 *)(param_1 + 0x40);\n            puVar14[0xf] = uVar4;\n            puVar14[1] = 0;\n            puVar14[3] = 0;\n            *(undefined1 *)(puVar14 + 6) = 0;\n            *puVar14 = &PTR_FUN_003ae430;\n            puVar14[7] = uVar9;\n            puVar14[8] = uVar5;\n            puVar14[9] = uVar8;\n            puVar14[10] = uVar7;\n            *(undefined4 *)(puVar14 + 0xb) = uVar1;\n            puVar14[0xc] = uVar6;\n            puVar14[0xe] = lVar16;\n            puVar14[0x10] = uVar17;\n            puVar14[0x11] = uVar2;\n            FUN_002300a0(param_2,puVar14);\n            return (uint)bVar11;\n          }\n        }\n                    \n        FUN_0016cdf0("../../gold/options.h",0x828,&DAT_0031b73b);\n      }\n      uVar2 = puVar14[5];\n      uVar17 = gettext("%s: file is empty");\n      FUN_001690a0(uVar17,uVar2);\n    }\n    return 0;\n  }\n  uVar13 = FUN_001f54c0(param_1,param_2);\n  return uVar13;\n}\n\n" (function_definition "uint FUN_001f5c10(long param_1,undefined8 param_2)\n\n{\n  undefined4 uVar1;\n  undefined8 uVar2;\n  long lVar3;\n  char *__s;\n  undefined8 uVar4;\n  undefined8 uVar5;\n  undefined8 uVar6;\n  undefined8 uVar7;\n  undefined8 uVar8;\n  undefined8 uVar9;\n  byte *pbVar10;\n  byte bVar11;\n  char cVar12;\n  uint uVar13;\n  undefined8 *puVar14;\n  size_t sVar15;\n  long lVar16;\n  undefined8 uVar17;\n  undefined8 *puVar18;\n  long *plVar19;\n  char *pcVar20;\n  undefined1 **ppuVar21;\n  int local_64;\n  long *local_60;\n  undefined1 *local_58 [2];\n  undefined1 local_48 [24];\n  \n  pcVar20 = *(char **)(param_1 + 0x68);\n  if (*pcVar20 == '\0') {\n    if (*(long *)(pcVar20 + 0x70) == 0) {\n      if (*(long *)(param_1 + 0x70) != 0) {\n                    \n        FUN_0016cdf0("../../gold/readsyms.cc",0x10b,"do_read_symbols");\n      }\n      FUN_001f5780();\n      return 1;\n    }\n  }\n  else if (*(long *)(pcVar20 + 0x70) == 0) {\n    puVar14 = (undefined8 *)FUN_00275550(0xe8);\n    uVar2 = *(undefined8 *)(param_1 + 0x50);\n    *puVar14 = pcVar20 + 8;\n    puVar14[1] = puVar14 + 3;\n    puVar14[2] = 0;\n    *(undefined1 *)(puVar14 + 3) = 0;\n    puVar14[5] = puVar14 + 7;\n    puVar14[0x13] = puVar14 + 0x11;\n    puVar14[0x14] = puVar14 + 0x11;\n    puVar14[6] = 0;\n    *(undefined1 *)(puVar14 + 7) = 0;\n    *(undefined4 *)(puVar14 + 9) = 0xffffffff;\n    *(undefined1 *)((long)puVar14 + 0x4c) = 0;\n    *(undefined4 *)(puVar14 + 10) = 0;\n    puVar14[0xb] = 0;\n    *(undefined1 *)(puVar14 + 0xc) = 0;\n    *(undefined4 *)((long)puVar14 + 100) = 0;\n    puVar14[0xd] = 0;\n    puVar14[0xe] = 0;\n    puVar14[0xf] = 0;\n    *(undefined4 *)(puVar14 + 0x11) = 0;\n    puVar14[0x12] = 0;\n    puVar14[0x15] = 0;\n    puVar14[0x17] = puVar14 + 0x16;\n    puVar14[0x16] = puVar14 + 0x16;\n    puVar14[0x18] = 0;\n    puVar14[0x19] = 0;\n    *(undefined1 *)(puVar14 + 0x1a) = 1;\n    puVar14[0x1b] = 0;\n    *(undefined1 *)(puVar14 + 0x1c) = 0;\n    *(undefined4 *)((long)puVar14 + 0xe4) = 0;\n    uVar13 = FUN_0016ca50(puVar14,uVar2,param_1,param_1 + 0x58);\n    if ((char)uVar13 != '\0') {\n      lVar16 = puVar14[0xb];\n      if (lVar16 != 0) {\n        bVar11 = FUN_0019b230(puVar14,0,&local_60,&local_64);\n        if ((local_64 < 8) ||\n           ((lVar3 = *local_60, lVar3 != s__<thin>__<arch>_N4gold7ArchiveE_00322e50._0_8_ &&\n            (s__<thin>__<arch>_N4gold7ArchiveE_00322e50._8_8_ != lVar3)))) {\n          plVar19 = (long *)0x0;\n          if (bVar11 != 0) {\n            local_58[0] = (undefined1 *)((ulong)local_58[0] & 0xffffffffffffff00);\n            cVar12 = FUN_0016b000(puVar14);\n            ppuVar21 = (undefined1 **)0x0;\n            if (cVar12 != '\0') {\n              ppuVar21 = local_58;\n            }\n            plVar19 = (long *)FUN_0019b3d0(puVar14 + 5,puVar14,0,local_60,(long)local_64,ppuVar21);\n          }\n          if (*(long *)(PTR_DAT_003be6b0 + 0x10) == 0) {\n                    \n            FUN_0016cdf0("../../gold/parameters.h",0x5c,"options");\n          }\n          lVar3 = *(long *)(*(long *)(PTR_DAT_003be6b0 + 0x10) + 0x9058);\n          if ((lVar3 != 0) && (lVar16 = FUN_001f1940(lVar3,puVar14,0,lVar16,plVar19), lVar16 != 0))\n          {\n            if (plVar19 != (long *)0x0) {\n              (**(code **)(*plVar19 + 8))(plVar19);\n            }\n            if (*(long *)(lVar16 + 0x28) != 0) {\n              FUN_0016ae30(*(long *)(lVar16 + 0x28) + 0x28,param_1);\n            }\n            plVar19 = *(long **)(param_1 + 0x78);\n            if (plVar19 == (long *)0x0) {\n              puVar14 = (undefined8 *)FUN_00275550(0x80);\n              uVar2 = *(undefined8 *)(param_1 + 0x68);\n              uVar17 = *(undefined8 *)(param_1 + 0x48);\n              uVar4 = *(undefined8 *)(param_1 + 0x40);\n              uVar5 = *(undefined8 *)(param_1 + 0x38);\n              *puVar14 = &PTR_FUN_003acf00;\n              uVar6 = *(undefined8 *)(param_1 + 0x88);\n              uVar7 = *(undefined8 *)(param_1 + 0x80);\n              puVar14[9] = uVar17;\n              puVar14[10] = uVar2;\n              puVar14[1] = 0;\n              puVar14[2] = puVar14 + 4;\n              puVar14[3] = 0;\n              *(undefined1 *)(puVar14 + 4) = 0;\n              *(undefined1 *)(puVar14 + 6) = 0;\n              puVar14[7] = uVar5;\n              puVar14[8] = uVar4;\n              puVar14[0xb] = lVar16;\n              puVar14[0xc] = 0;\n              puVar14[0xd] = 0;\n              puVar14[0xe] = uVar7;\n              puVar14[0xf] = uVar6;\n              FUN_002300a0(param_2,puVar14);\n              return uVar13;\n            }\n            plVar19[1] = 0;\n            *plVar19 = lVar16;\n            return uVar13;\n          }\n          if (bVar11 == 0) {\n            puVar18 = (undefined8 *)FUN_00275550(0x90);\n            uVar2 = *(undefined8 *)(param_1 + 0x88);\n            uVar17 = *(undefined8 *)(param_1 + 0x80);\n            uVar4 = *(undefined8 *)(param_1 + 0x68);\n            uVar5 = *(undefined8 *)(param_1 + 0x70);\n            *(undefined1 *)(puVar18 + 4) = 0;\n            uVar6 = *(undefined8 *)(param_1 + 0x60);\n            uVar7 = *(undefined8 *)(param_1 + 0x38);\n            puVar18[2] = puVar18 + 4;\n            uVar1 = *(undefined4 *)(param_1 + 0x58);\n            uVar8 = *(undefined8 *)(param_1 + 0x50);\n            puVar18[0xd] = uVar5;\n            uVar5 = *(undefined8 *)(param_1 + 0x48);\n            uVar9 = *(undefined8 *)(param_1 + 0x40);\n            puVar18[0xe] = uVar4;\n            puVar18[1] = 0;\n            puVar18[3] = 0;\n            *(undefined1 *)(puVar18 + 6) = 0;\n            *puVar18 = &PTR_FUN_003ad080;\n            puVar18[7] = uVar9;\n            puVar18[8] = uVar5;\n            puVar18[9] = uVar8;\n            *(undefined4 *)(puVar18 + 10) = uVar1;\n            puVar18[0xb] = uVar7;\n            puVar18[0xc] = uVar6;\n            puVar18[0xf] = puVar14;\n            puVar18[0x10] = uVar17;\n            puVar18[0x11] = uVar2;\n            FUN_00230080(param_2,puVar18);\n            return uVar13;\n          }\n          if (plVar19 == (long *)0x0) {\n            if ((char)local_58[0] == '\0') {\n              return 0;\n            }\n            puVar18 = puVar14 + 5;\n            FUN_001f51c0(*(undefined8 *)(param_1 + 0x68),puVar14);\n            FUN_0016ad00(puVar18);\n            FUN_0016ae30(puVar18,param_1);\n            FUN_0016b0b0(puVar18);\n            if (puVar14 + 3 != (undefined8 *)puVar14[1]) {\n              FUN_00276d20();\n            }\n            thunk_FUN_00276d20(puVar14,0xe8);\n            *(int *)(param_1 + 0x58) = *(int *)(param_1 + 0x58) + 1;\n            uVar13 = FUN_001f5c10(param_1,param_2);\n            return uVar13;\n          }\n          puVar18 = (undefined8 *)FUN_00275550(0x80);\n          *puVar18 = 0;\n          puVar18[1] = 0;\n          puVar18[3] = 0;\n          puVar18[6] = 0;\n          puVar18[8] = 0;\n          puVar18[10] = 0;\n          puVar18[0xd] = 0;\n          (**(code **)(*plVar19 + 0x40))(plVar19,puVar18);\n          FUN_0016ae30(puVar14 + 5,param_1);\n          puVar14 = *(undefined8 **)(param_1 + 0x78);\n          if (puVar14 == (undefined8 *)0x0) {\n            puVar14 = (undefined8 *)FUN_00275550(0x80);\n            uVar2 = *(undefined8 *)(param_1 + 0x68);\n            uVar17 = *(undefined8 *)(param_1 + 0x48);\n            uVar4 = *(undefined8 *)(param_1 + 0x40);\n            uVar5 = *(undefined8 *)(param_1 + 0x38);\n            puVar14[0xd] = puVar18;\n            uVar6 = *(undefined8 *)(param_1 + 0x88);\n            uVar7 = *(undefined8 *)(param_1 + 0x80);\n            puVar14[2] = puVar14 + 4;\n            puVar14[9] = uVar17;\n            puVar14[10] = uVar2;\n            puVar14[1] = 0;\n            puVar14[3] = 0;\n            *(undefined1 *)(puVar14 + 4) = 0;\n            *(undefined1 *)(puVar14 + 6) = 0;\n            *puVar14 = &PTR_FUN_003acf00;\n            puVar14[7] = uVar5;\n            puVar14[8] = uVar4;\n            puVar14[0xb] = plVar19;\n            puVar14[0xc] = 0;\n            puVar14[0xe] = uVar7;\n            puVar14[0xf] = uVar6;\n            FUN_002300a0(param_2,puVar14);\n            return (uint)bVar11;\n          }\n          pbVar10 = *(byte **)(param_1 + 0x68);\n          puVar14[1] = puVar18;\n          *puVar14 = plVar19;\n          bVar11 = *pbVar10;\n          if (bVar11 != 0) {\n            *(undefined4 *)(puVar14 + 2) = *(undefined4 *)(pbVar10 + 100);\n            return (uint)bVar11;\n          }\n        }\n        else {\n          bVar11 = **(byte **)(param_1 + 0x68);\n          if (bVar11 != 0) {\n            __s = *(char **)(*(byte **)(param_1 + 0x68) + 8);\n            pcVar20 = (char *)0xffffffffffffffff;\n            local_58[0] = local_48;\n            if (__s != (char *)0x0) {\n              sVar15 = strlen(__s);\n              pcVar20 = __s + sVar15;\n            }\n            FUN_0015cbe0(local_58,__s,pcVar20);\n                    \n            lVar16 = FUN_00275550(0x178);\n                    \n            FUN_00234b40(lVar16,local_58,puVar14,\n                         lVar3 == s__<thin>__<arch>_N4gold7ArchiveE_00322e50._0_8_,\n                         *(undefined8 *)(param_1 + 0x50),param_1);\n            if (local_58[0] != local_48) {\n              FUN_00276d20();\n            }\n            FUN_00235c40(lVar16);\n            FUN_0016ae30(*(long *)(lVar16 + 0x38) + 0x28,param_1);\n            puVar14 = (undefined8 *)FUN_00275550(0x90);\n            uVar2 = *(undefined8 *)(param_1 + 0x88);\n            uVar17 = *(undefined8 *)(param_1 + 0x80);\n            uVar4 = *(undefined8 *)(param_1 + 0x70);\n            uVar5 = *(undefined8 *)(param_1 + 0x68);\n            *(undefined1 *)(puVar14 + 4) = 0;\n            uVar6 = *(undefined8 *)(param_1 + 0x60);\n            uVar1 = *(undefined4 *)(param_1 + 0x58);\n            puVar14[2] = puVar14 + 4;\n            uVar7 = *(undefined8 *)(param_1 + 0x50);\n            uVar8 = *(undefined8 *)(param_1 + 0x38);\n            puVar14[0xd] = uVar5;\n            uVar5 = *(undefined8 *)(param_1 + 0x48);\n            uVar9 = *(undefined8 *)(param_1 + 0x40);\n            puVar14[0xf] = uVar4;\n            puVar14[1] = 0;\n            puVar14[3] = 0;\n            *(undefined1 *)(puVar14 + 6) = 0;\n            *puVar14 = &PTR_FUN_003ae430;\n            puVar14[7] = uVar9;\n            puVar14[8] = uVar5;\n            puVar14[9] = uVar8;\n            puVar14[10] = uVar7;\n            *(undefined4 *)(puVar14 + 0xb) = uVar1;\n            puVar14[0xc] = uVar6;\n            puVar14[0xe] = lVar16;\n            puVar14[0x10] = uVar17;\n            puVar14[0x11] = uVar2;\n            FUN_002300a0(param_2,puVar14);\n            return (uint)bVar11;\n          }\n        }\n                    \n        FUN_0016cdf0("../../gold/options.h",0x828,&DAT_0031b73b);\n      }\n      uVar2 = puVar14[5];\n      uVar17 = gettext("%s: file is empty");\n      FUN_001690a0(uVar17,uVar2);\n    }\n    return 0;\n  }\n  uVar13 = FUN_001f54c0(param_1,param_2);\n  return uVar13;\n}" type_identifier (function_declarator "FUN_001f5c10(long param_1,undefined8 param_2)" identifier (parameter_list "(long param_1,undefined8 param_2)" ( (parameter_declaration "long param_1" (sized_type_specifier "long" long) identifier) , (parameter_declaration "undefined8 param_2" type_identifier identifier) ))) (compound_statement "{\n  undefined4 uVar1;\n  undefined8 uVar2;\n  long lVar3;\n  char *__s;\n  undefined8 uVar4;\n  undefined8 uVar5;\n  undefined8 uVar6;\n  undefined8 uVar7;\n  undefined8 uVar8;\n  undefined8 uVar9;\n  byte *pbVar10;\n  byte bVar11;\n  char cVar12;\n  uint uVar13;\n  undefined8 *puVar14;\n  size_t sVar15;\n  long lVar16;\n  undefined8 uVar17;\n  undefined8 *puVar18;\n  long *plVar19;\n  char *pcVar20;\n  undefined1 **ppuVar21;\n  int local_64;\n  long *local_60;\n  undefined1 *local_58 [2];\n  undefined1 local_48 [24];\n  \n  pcVar20 = *(char **)(param_1 + 0x68);\n  if (*pcVar20 == '\0') {\n    if (*(long *)(pcVar20 + 0x70) == 0) {\n      if (*(long *)(param_1 + 0x70) != 0) {\n                    \n        FUN_0016cdf0("../../gold/readsyms.cc",0x10b,"do_read_symbols");\n      }\n      FUN_001f5780();\n      return 1;\n    }\n  }\n  else if (*(long *)(pcVar20 + 0x70) == 0) {\n    puVar14 = (undefined8 *)FUN_00275550(0xe8);\n    uVar2 = *(undefined8 *)(param_1 + 0x50);\n    *puVar14 = pcVar20 + 8;\n    puVar14[1] = puVar14 + 3;\n    puVar14[2] = 0;\n    *(undefined1 *)(puVar14 + 3) = 0;\n    puVar14[5] = puVar14 + 7;\n    puVar14[0x13] = puVar14 + 0x11;\n    puVar14[0x14] = puVar14 + 0x11;\n    puVar14[6] = 0;\n    *(undefined1 *)(puVar14 + 7) = 0;\n    *(undefined4 *)(puVar14 + 9) = 0xffffffff;\n    *(undefined1 *)((long)puVar14 + 0x4c) = 0;\n    *(undefined4 *)(puVar14 + 10) = 0;\n    puVar14[0xb] = 0;\n    *(undefined1 *)(puVar14 + 0xc) = 0;\n    *(undefined4 *)((long)puVar14 + 100) = 0;\n    puVar14[0xd] = 0;\n    puVar14[0xe] = 0;\n    puVar14[0xf] = 0;\n    *(undefined4 *)(puVar14 + 0x11) = 0;\n    puVar14[0x12] = 0;\n    puVar14[0x15] = 0;\n    puVar14[0x17] = puVar14 + 0x16;\n    puVar14[0x16] = puVar14 + 0x16;\n    puVar14[0x18] = 0;\n    puVar14[0x19] = 0;\n    *(undefined1 *)(puVar14 + 0x1a) = 1;\n    puVar14[0x1b] = 0;\n    *(undefined1 *)(puVar14 + 0x1c) = 0;\n    *(undefined4 *)((long)puVar14 + 0xe4) = 0;\n    uVar13 = FUN_0016ca50(puVar14,uVar2,param_1,param_1 + 0x58);\n    if ((char)uVar13 != '\0') {\n      lVar16 = puVar14[0xb];\n      if (lVar16 != 0) {\n        bVar11 = FUN_0019b230(puVar14,0,&local_60,&local_64);\n        if ((local_64 < 8) ||\n           ((lVar3 = *local_60, lVar3 != s__<thin>__<arch>_N4gold7ArchiveE_00322e50._0_8_ &&\n            (s__<thin>__<arch>_N4gold7ArchiveE_00322e50._8_8_ != lVar3)))) {\n          plVar19 = (long *)0x0;\n          if (bVar11 != 0) {\n            local_58[0] = (undefined1 *)((ulong)local_58[0] & 0xffffffffffffff00);\n            cVar12 = FUN_0016b000(puVar14);\n            ppuVar21 = (undefined1 **)0x0;\n            if (cVar12 != '\0') {\n              ppuVar21 = local_58;\n            }\n            plVar19 = (long *)FUN_0019b3d0(puVar14 + 5,puVar14,0,local_60,(long)local_64,ppuVar21);\n          }\n          if (*(long *)(PTR_DAT_003be6b0 + 0x10) == 0) {\n                    \n            FUN_0016cdf0("../../gold/parameters.h",0x5c,"options");\n          }\n          lVar3 = *(long *)(*(long *)(PTR_DAT_003be6b0 + 0x10) + 0x9058);\n          if ((lVar3 != 0) && (lVar16 = FUN_001f1940(lVar3,puVar14,0,lVar16,plVar19), lVar16 != 0))\n          {\n            if (plVar19 != (long *)0x0) {\n              (**(code **)(*plVar19 + 8))(plVar19);\n            }\n            if (*(long *)(lVar16 + 0x28) != 0) {\n              FUN_0016ae30(*(long *)(lVar16 + 0x28) + 0x28,param_1);\n            }\n            plVar19 = *(long **)(param_1 + 0x78);\n            if (plVar19 == (long *)0x0) {\n              puVar14 = (undefined8 *)FUN_00275550(0x80);\n              uVar2 = *(undefined8 *)(param_1 + 0x68);\n              uVar17 = *(undefined8 *)(param_1 + 0x48);\n              uVar4 = *(undefined8 *)(param_1 + 0x40);\n              uVar5 = *(undefined8 *)(param_1 + 0x38);\n              *puVar14 = &PTR_FUN_003acf00;\n              uVar6 = *(undefined8 *)(param_1 + 0x88);\n              uVar7 = *(undefined8 *)(param_1 + 0x80);\n              puVar14[9] = uVar17;\n              puVar14[10] = uVar2;\n              puVar14[1] = 0;\n              puVar14[2] = puVar14 + 4;\n              puVar14[3] = 0;\n              *(undefined1 *)(puVar14 + 4) = 0;\n              *(undefined1 *)(puVar14 + 6) = 0;\n              puVar14[7] = uVar5;\n              puVar14[8] = uVar4;\n              puVar14[0xb] = lVar16;\n              puVar14[0xc] = 0;\n              puVar14[0xd] = 0;\n              puVar14[0xe] = uVar7;\n              puVar14[0xf] = uVar6;\n              FUN_002300a0(param_2,puVar14);\n              return uVar13;\n            }\n            plVar19[1] = 0;\n            *plVar19 = lVar16;\n            return uVar13;\n          }\n          if (bVar11 == 0) {\n            puVar18 = (undefined8 *)FUN_00275550(0x90);\n            uVar2 = *(undefined8 *)(param_1 + 0x88);\n            uVar17 = *(undefined8 *)(param_1 + 0x80);\n            uVar4 = *(undefined8 *)(param_1 + 0x68);\n            uVar5 = *(undefined8 *)(param_1 + 0x70);\n            *(undefined1 *)(puVar18 + 4) = 0;\n            uVar6 = *(undefined8 *)(param_1 + 0x60);\n            uVar7 = *(undefined8 *)(param_1 + 0x38);\n            puVar18[2] = puVar18 + 4;\n            uVar1 = *(undefined4 *)(param_1 + 0x58);\n            uVar8 = *(undefined8 *)(param_1 + 0x50);\n            puVar18[0xd] = uVar5;\n            uVar5 = *(undefined8 *)(param_1 + 0x48);\n            uVar9 = *(undefined8 *)(param_1 + 0x40);\n            puVar18[0xe] = uVar4;\n            puVar18[1] = 0;\n            puVar18[3] = 0;\n            *(undefined1 *)(puVar18 + 6) = 0;\n            *puVar18 = &PTR_FUN_003ad080;\n            puVar18[7] = uVar9;\n            puVar18[8] = uVar5;\n            puVar18[9] = uVar8;\n            *(undefined4 *)(puVar18 + 10) = uVar1;\n            puVar18[0xb] = uVar7;\n            puVar18[0xc] = uVar6;\n            puVar18[0xf] = puVar14;\n            puVar18[0x10] = uVar17;\n            puVar18[0x11] = uVar2;\n            FUN_00230080(param_2,puVar18);\n            return uVar13;\n          }\n          if (plVar19 == (long *)0x0) {\n            if ((char)local_58[0] == '\0') {\n              return 0;\n            }\n            puVar18 = puVar14 + 5;\n            FUN_001f51c0(*(undefined8 *)(param_1 + 0x68),puVar14);\n            FUN_0016ad00(puVar18);\n            FUN_0016ae30(puVar18,param_1);\n            FUN_0016b0b0(puVar18);\n            if (puVar14 + 3 != (undefined8 *)puVar14[1]) {\n              FUN_00276d20();\n            }\n            thunk_FUN_00276d20(puVar14,0xe8);\n            *(int *)(param_1 + 0x58) = *(int *)(param_1 + 0x58) + 1;\n            uVar13 = FUN_001f5c10(param_1,param_2);\n            return uVar13;\n          }\n          puVar18 = (undefined8 *)FUN_00275550(0x80);\n          *puVar18 = 0;\n          puVar18[1] = 0;\n          puVar18[3] = 0;\n          puVar18[6] = 0;\n          puVar18[8] = 0;\n          puVar18[10] = 0;\n          puVar18[0xd] = 0;\n          (**(code **)(*plVar19 + 0x40))(plVar19,puVar18);\n          FUN_0016ae30(puVar14 + 5,param_1);\n          puVar14 = *(undefined8 **)(param_1 + 0x78);\n          if (puVar14 == (undefined8 *)0x0) {\n            puVar14 = (undefined8 *)FUN_00275550(0x80);\n            uVar2 = *(undefined8 *)(param_1 + 0x68);\n            uVar17 = *(undefined8 *)(param_1 + 0x48);\n            uVar4 = *(undefined8 *)(param_1 + 0x40);\n            uVar5 = *(undefined8 *)(param_1 + 0x38);\n            puVar14[0xd] = puVar18;\n            uVar6 = *(undefined8 *)(param_1 + 0x88);\n            uVar7 = *(undefined8 *)(param_1 + 0x80);\n            puVar14[2] = puVar14 + 4;\n            puVar14[9] = uVar17;\n            puVar14[10] = uVar2;\n            puVar14[1] = 0;\n            puVar14[3] = 0;\n            *(undefined1 *)(puVar14 + 4) = 0;\n            *(undefined1 *)(puVar14 + 6) = 0;\n            *puVar14 = &PTR_FUN_003acf00;\n            puVar14[7] = uVar5;\n            puVar14[8] = uVar4;\n            puVar14[0xb] = plVar19;\n            puVar14[0xc] = 0;\n            puVar14[0xe] = uVar7;\n            puVar14[0xf] = uVar6;\n            FUN_002300a0(param_2,puVar14);\n            return (uint)bVar11;\n          }\n          pbVar10 = *(byte **)(param_1 + 0x68);\n          puVar14[1] = puVar18;\n          *puVar14 = plVar19;\n          bVar11 = *pbVar10;\n          if (bVar11 != 0) {\n            *(undefined4 *)(puVar14 + 2) = *(undefined4 *)(pbVar10 + 100);\n            return (uint)bVar11;\n          }\n        }\n        else {\n          bVar11 = **(byte **)(param_1 + 0x68);\n          if (bVar11 != 0) {\n            __s = *(char **)(*(byte **)(param_1 + 0x68) + 8);\n            pcVar20 = (char *)0xffffffffffffffff;\n            local_58[0] = local_48;\n            if (__s != (char *)0x0) {\n              sVar15 = strlen(__s);\n              pcVar20 = __s + sVar15;\n            }\n            FUN_0015cbe0(local_58,__s,pcVar20);\n                    \n            lVar16 = FUN_00275550(0x178);\n                    \n            FUN_00234b40(lVar16,local_58,puVar14,\n                         lVar3 == s__<thin>__<arch>_N4gold7ArchiveE_00322e50._0_8_,\n                         *(undefined8 *)(param_1 + 0x50),param_1);\n            if (local_58[0] != local_48) {\n              FUN_00276d20();\n            }\n            FUN_00235c40(lVar16);\n            FUN_0016ae30(*(long *)(lVar16 + 0x38) + 0x28,param_1);\n            puVar14 = (undefined8 *)FUN_00275550(0x90);\n            uVar2 = *(undefined8 *)(param_1 + 0x88);\n            uVar17 = *(undefined8 *)(param_1 + 0x80);\n            uVar4 = *(undefined8 *)(param_1 + 0x70);\n            uVar5 = *(undefined8 *)(param_1 + 0x68);\n            *(undefined1 *)(puVar14 + 4) = 0;\n            uVar6 = *(undefined8 *)(param_1 + 0x60);\n            uVar1 = *(undefined4 *)(param_1 + 0x58);\n            puVar14[2] = puVar14 + 4;\n            uVar7 = *(undefined8 *)(param_1 + 0x50);\n            uVar8 = *(undefined8 *)(param_1 + 0x38);\n            puVar14[0xd] = uVar5;\n            uVar5 = *(undefined8 *)(param_1 + 0x48);\n            uVar9 = *(undefined8 *)(param_1 + 0x40);\n            puVar14[0xf] = uVar4;\n            puVar14[1] = 0;\n            puVar14[3] = 0;\n            *(undefined1 *)(puVar14 + 6) = 0;\n            *puVar14 = &PTR_FUN_003ae430;\n            puVar14[7] = uVar9;\n            puVar14[8] = uVar5;\n            puVar14[9] = uVar8;\n            puVar14[10] = uVar7;\n            *(undefined4 *)(puVar14 + 0xb) = uVar1;\n            puVar14[0xc] = uVar6;\n            puVar14[0xe] = lVar16;\n            puVar14[0x10] = uVar17;\n            puVar14[0x11] = uVar2;\n            FUN_002300a0(param_2,puVar14);\n            return (uint)bVar11;\n          }\n        }\n                    \n        FUN_0016cdf0("../../gold/options.h",0x828,&DAT_0031b73b);\n      }\n      uVar2 = puVar14[5];\n      uVar17 = gettext("%s: file is empty");\n      FUN_001690a0(uVar17,uVar2);\n    }\n    return 0;\n  }\n  uVar13 = FUN_001f54c0(param_1,param_2);\n  return uVar13;\n}" { (declaration "undefined4 uVar1;" type_identifier identifier ;) (declaration "undefined8 uVar2;" type_identifier identifier ;) (declaration "long lVar3;" (sized_type_specifier "long" long) identifier ;) (declaration "char *__s;" primitive_type (pointer_declarator "*__s" * identifier) ;) (declaration "undefined8 uVar4;" type_identifier identifier ;) (declaration "undefined8 uVar5;" type_identifier identifier ;) (declaration "undefined8 uVar6;" type_identifier identifier ;) (declaration "undefined8 uVar7;" type_identifier identifier ;) (declaration "undefined8 uVar8;" type_identifier identifier ;) (declaration "undefined8 uVar9;" type_identifier identifier ;) (declaration "byte *pbVar10;" type_identifier (pointer_declarator "*pbVar10" * identifier) ;) (declaration "byte bVar11;" type_identifier identifier ;) (declaration "char cVar12;" primitive_type identifier ;) (declaration "uint uVar13;" type_identifier identifier ;) (declaration "undefined8 *puVar14;" type_identifier (pointer_declarator "*puVar14" * identifier) ;) (declaration "size_t sVar15;" primitive_type identifier ;) (declaration "long lVar16;" (sized_type_specifier "long" long) identifier ;) (declaration "undefined8 uVar17;" type_identifier identifier ;) (declaration "undefined8 *puVar18;" type_identifier (pointer_declarator "*puVar18" * identifier) ;) (declaration "long *plVar19;" (sized_type_specifier "long" long) (pointer_declarator "*plVar19" * identifier) ;) (declaration "char *pcVar20;" primitive_type (pointer_declarator "*pcVar20" * identifier) ;) (declaration "undefined1 **ppuVar21;" type_identifier (pointer_declarator "**ppuVar21" * (pointer_declarator "*ppuVar21" * identifier)) ;) (declaration "int local_64;" primitive_type identifier ;) (declaration "long *local_60;" (sized_type_specifier "long" long) (pointer_declarator "*local_60" * identifier) ;) (declaration "undefined1 *local_58 [2];" type_identifier (pointer_declarator "*local_58 [2]" * (array_declarator "local_58 [2]" identifier [ number_literal ])) ;) (declaration "undefined1 local_48 [24];" type_identifier (array_declarator "local_48 [24]" identifier [ number_literal ]) ;) (expression_statement "pcVar20 = *(char **)(param_1 + 0x68);" (assignment_expression "pcVar20 = *(char **)(param_1 + 0x68)" identifier = (pointer_expression "*(char **)(param_1 + 0x68)" * (cast_expression "(char **)(param_1 + 0x68)" ( (type_descriptor "char **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(param_1 + 0x68)" ( (binary_expression "param_1 + 0x68" identifier + number_literal) ))))) ;) (if_statement "if (*pcVar20 == '\0') {\n    if (*(long *)(pcVar20 + 0x70) == 0) {\n      if (*(long *)(param_1 + 0x70) != 0) {\n                    \n        FUN_0016cdf0("../../gold/readsyms.cc",0x10b,"do_read_symbols");\n      }\n      FUN_001f5780();\n      return 1;\n    }\n  }\n  else if (*(long *)(pcVar20 + 0x70) == 0) {\n    puVar14 = (undefined8 *)FUN_00275550(0xe8);\n    uVar2 = *(undefined8 *)(param_1 + 0x50);\n    *puVar14 = pcVar20 + 8;\n    puVar14[1] = puVar14 + 3;\n    puVar14[2] = 0;\n    *(undefined1 *)(puVar14 + 3) = 0;\n    puVar14[5] = puVar14 + 7;\n    puVar14[0x13] = puVar14 + 0x11;\n    puVar14[0x14] = puVar14 + 0x11;\n    puVar14[6] = 0;\n    *(undefined1 *)(puVar14 + 7) = 0;\n    *(undefined4 *)(puVar14 + 9) = 0xffffffff;\n    *(undefined1 *)((long)puVar14 + 0x4c) = 0;\n    *(undefined4 *)(puVar14 + 10) = 0;\n    puVar14[0xb] = 0;\n    *(undefined1 *)(puVar14 + 0xc) = 0;\n    *(undefined4 *)((long)puVar14 + 100) = 0;\n    puVar14[0xd] = 0;\n    puVar14[0xe] = 0;\n    puVar14[0xf] = 0;\n    *(undefined4 *)(puVar14 + 0x11) = 0;\n    puVar14[0x12] = 0;\n    puVar14[0x15] = 0;\n    puVar14[0x17] = puVar14 + 0x16;\n    puVar14[0x16] = puVar14 + 0x16;\n    puVar14[0x18] = 0;\n    puVar14[0x19] = 0;\n    *(undefined1 *)(puVar14 + 0x1a) = 1;\n    puVar14[0x1b] = 0;\n    *(undefined1 *)(puVar14 + 0x1c) = 0;\n    *(undefined4 *)((long)puVar14 + 0xe4) = 0;\n    uVar13 = FUN_0016ca50(puVar14,uVar2,param_1,param_1 + 0x58);\n    if ((char)uVar13 != '\0') {\n      lVar16 = puVar14[0xb];\n      if (lVar16 != 0) {\n        bVar11 = FUN_0019b230(puVar14,0,&local_60,&local_64);\n        if ((local_64 < 8) ||\n           ((lVar3 = *local_60, lVar3 != s__<thin>__<arch>_N4gold7ArchiveE_00322e50._0_8_ &&\n            (s__<thin>__<arch>_N4gold7ArchiveE_00322e50._8_8_ != lVar3)))) {\n          plVar19 = (long *)0x0;\n          if (bVar11 != 0) {\n            local_58[0] = (undefined1 *)((ulong)local_58[0] & 0xffffffffffffff00);\n            cVar12 = FUN_0016b000(puVar14);\n            ppuVar21 = (undefined1 **)0x0;\n            if (cVar12 != '\0') {\n              ppuVar21 = local_58;\n            }\n            plVar19 = (long *)FUN_0019b3d0(puVar14 + 5,puVar14,0,local_60,(long)local_64,ppuVar21);\n          }\n          if (*(long *)(PTR_DAT_003be6b0 + 0x10) == 0) {\n                    \n            FUN_0016cdf0("../../gold/parameters.h",0x5c,"options");\n          }\n          lVar3 = *(long *)(*(long *)(PTR_DAT_003be6b0 + 0x10) + 0x9058);\n          if ((lVar3 != 0) && (lVar16 = FUN_001f1940(lVar3,puVar14,0,lVar16,plVar19), lVar16 != 0))\n          {\n            if (plVar19 != (long *)0x0) {\n              (**(code **)(*plVar19 + 8))(plVar19);\n            }\n            if (*(long *)(lVar16 + 0x28) != 0) {\n              FUN_0016ae30(*(long *)(lVar16 + 0x28) + 0x28,param_1);\n            }\n            plVar19 = *(long **)(param_1 + 0x78);\n            if (plVar19 == (long *)0x0) {\n              puVar14 = (undefined8 *)FUN_00275550(0x80);\n              uVar2 = *(undefined8 *)(param_1 + 0x68);\n              uVar17 = *(undefined8 *)(param_1 + 0x48);\n              uVar4 = *(undefined8 *)(param_1 + 0x40);\n              uVar5 = *(undefined8 *)(param_1 + 0x38);\n              *puVar14 = &PTR_FUN_003acf00;\n              uVar6 = *(undefined8 *)(param_1 + 0x88);\n              uVar7 = *(undefined8 *)(param_1 + 0x80);\n              puVar14[9] = uVar17;\n              puVar14[10] = uVar2;\n              puVar14[1] = 0;\n              puVar14[2] = puVar14 + 4;\n              puVar14[3] = 0;\n              *(undefined1 *)(puVar14 + 4) = 0;\n              *(undefined1 *)(puVar14 + 6) = 0;\n              puVar14[7] = uVar5;\n              puVar14[8] = uVar4;\n              puVar14[0xb] = lVar16;\n              puVar14[0xc] = 0;\n              puVar14[0xd] = 0;\n              puVar14[0xe] = uVar7;\n              puVar14[0xf] = uVar6;\n              FUN_002300a0(param_2,puVar14);\n              return uVar13;\n            }\n            plVar19[1] = 0;\n            *plVar19 = lVar16;\n            return uVar13;\n          }\n          if (bVar11 == 0) {\n            puVar18 = (undefined8 *)FUN_00275550(0x90);\n            uVar2 = *(undefined8 *)(param_1 + 0x88);\n            uVar17 = *(undefined8 *)(param_1 + 0x80);\n            uVar4 = *(undefined8 *)(param_1 + 0x68);\n            uVar5 = *(undefined8 *)(param_1 + 0x70);\n            *(undefined1 *)(puVar18 + 4) = 0;\n            uVar6 = *(undefined8 *)(param_1 + 0x60);\n            uVar7 = *(undefined8 *)(param_1 + 0x38);\n            puVar18[2] = puVar18 + 4;\n            uVar1 = *(undefined4 *)(param_1 + 0x58);\n            uVar8 = *(undefined8 *)(param_1 + 0x50);\n            puVar18[0xd] = uVar5;\n            uVar5 = *(undefined8 *)(param_1 + 0x48);\n            uVar9 = *(undefined8 *)(param_1 + 0x40);\n            puVar18[0xe] = uVar4;\n            puVar18[1] = 0;\n            puVar18[3] = 0;\n            *(undefined1 *)(puVar18 + 6) = 0;\n            *puVar18 = &PTR_FUN_003ad080;\n            puVar18[7] = uVar9;\n            puVar18[8] = uVar5;\n            puVar18[9] = uVar8;\n            *(undefined4 *)(puVar18 + 10) = uVar1;\n            puVar18[0xb] = uVar7;\n            puVar18[0xc] = uVar6;\n            puVar18[0xf] = puVar14;\n            puVar18[0x10] = uVar17;\n            puVar18[0x11] = uVar2;\n            FUN_00230080(param_2,puVar18);\n            return uVar13;\n          }\n          if (plVar19 == (long *)0x0) {\n            if ((char)local_58[0] == '\0') {\n              return 0;\n            }\n            puVar18 = puVar14 + 5;\n            FUN_001f51c0(*(undefined8 *)(param_1 + 0x68),puVar14);\n            FUN_0016ad00(puVar18);\n            FUN_0016ae30(puVar18,param_1);\n            FUN_0016b0b0(puVar18);\n            if (puVar14 + 3 != (undefined8 *)puVar14[1]) {\n              FUN_00276d20();\n            }\n            thunk_FUN_00276d20(puVar14,0xe8);\n            *(int *)(param_1 + 0x58) = *(int *)(param_1 + 0x58) + 1;\n            uVar13 = FUN_001f5c10(param_1,param_2);\n            return uVar13;\n          }\n          puVar18 = (undefined8 *)FUN_00275550(0x80);\n          *puVar18 = 0;\n          puVar18[1] = 0;\n          puVar18[3] = 0;\n          puVar18[6] = 0;\n          puVar18[8] = 0;\n          puVar18[10] = 0;\n          puVar18[0xd] = 0;\n          (**(code **)(*plVar19 + 0x40))(plVar19,puVar18);\n          FUN_0016ae30(puVar14 + 5,param_1);\n          puVar14 = *(undefined8 **)(param_1 + 0x78);\n          if (puVar14 == (undefined8 *)0x0) {\n            puVar14 = (undefined8 *)FUN_00275550(0x80);\n            uVar2 = *(undefined8 *)(param_1 + 0x68);\n            uVar17 = *(undefined8 *)(param_1 + 0x48);\n            uVar4 = *(undefined8 *)(param_1 + 0x40);\n            uVar5 = *(undefined8 *)(param_1 + 0x38);\n            puVar14[0xd] = puVar18;\n            uVar6 = *(undefined8 *)(param_1 + 0x88);\n            uVar7 = *(undefined8 *)(param_1 + 0x80);\n            puVar14[2] = puVar14 + 4;\n            puVar14[9] = uVar17;\n            puVar14[10] = uVar2;\n            puVar14[1] = 0;\n            puVar14[3] = 0;\n            *(undefined1 *)(puVar14 + 4) = 0;\n            *(undefined1 *)(puVar14 + 6) = 0;\n            *puVar14 = &PTR_FUN_003acf00;\n            puVar14[7] = uVar5;\n            puVar14[8] = uVar4;\n            puVar14[0xb] = plVar19;\n            puVar14[0xc] = 0;\n            puVar14[0xe] = uVar7;\n            puVar14[0xf] = uVar6;\n            FUN_002300a0(param_2,puVar14);\n            return (uint)bVar11;\n          }\n          pbVar10 = *(byte **)(param_1 + 0x68);\n          puVar14[1] = puVar18;\n          *puVar14 = plVar19;\n          bVar11 = *pbVar10;\n          if (bVar11 != 0) {\n            *(undefined4 *)(puVar14 + 2) = *(undefined4 *)(pbVar10 + 100);\n            return (uint)bVar11;\n          }\n        }\n        else {\n          bVar11 = **(byte **)(param_1 + 0x68);\n          if (bVar11 != 0) {\n            __s = *(char **)(*(byte **)(param_1 + 0x68) + 8);\n            pcVar20 = (char *)0xffffffffffffffff;\n            local_58[0] = local_48;\n            if (__s != (char *)0x0) {\n              sVar15 = strlen(__s);\n              pcVar20 = __s + sVar15;\n            }\n            FUN_0015cbe0(local_58,__s,pcVar20);\n                    \n            lVar16 = FUN_00275550(0x178);\n                    \n            FUN_00234b40(lVar16,local_58,puVar14,\n                         lVar3 == s__<thin>__<arch>_N4gold7ArchiveE_00322e50._0_8_,\n                         *(undefined8 *)(param_1 + 0x50),param_1);\n            if (local_58[0] != local_48) {\n              FUN_00276d20();\n            }\n            FUN_00235c40(lVar16);\n            FUN_0016ae30(*(long *)(lVar16 + 0x38) + 0x28,param_1);\n            puVar14 = (undefined8 *)FUN_00275550(0x90);\n            uVar2 = *(undefined8 *)(param_1 + 0x88);\n            uVar17 = *(undefined8 *)(param_1 + 0x80);\n            uVar4 = *(undefined8 *)(param_1 + 0x70);\n            uVar5 = *(undefined8 *)(param_1 + 0x68);\n            *(undefined1 *)(puVar14 + 4) = 0;\n            uVar6 = *(undefined8 *)(param_1 + 0x60);\n            uVar1 = *(undefined4 *)(param_1 + 0x58);\n            puVar14[2] = puVar14 + 4;\n            uVar7 = *(undefined8 *)(param_1 + 0x50);\n            uVar8 = *(undefined8 *)(param_1 + 0x38);\n            puVar14[0xd] = uVar5;\n            uVar5 = *(undefined8 *)(param_1 + 0x48);\n            uVar9 = *(undefined8 *)(param_1 + 0x40);\n            puVar14[0xf] = uVar4;\n            puVar14[1] = 0;\n            puVar14[3] = 0;\n            *(undefined1 *)(puVar14 + 6) = 0;\n            *puVar14 = &PTR_FUN_003ae430;\n            puVar14[7] = uVar9;\n            puVar14[8] = uVar5;\n            puVar14[9] = uVar8;\n            puVar14[10] = uVar7;\n            *(undefined4 *)(puVar14 + 0xb) = uVar1;\n            puVar14[0xc] = uVar6;\n            puVar14[0xe] = lVar16;\n            puVar14[0x10] = uVar17;\n            puVar14[0x11] = uVar2;\n            FUN_002300a0(param_2,puVar14);\n            return (uint)bVar11;\n          }\n        }\n                    \n        FUN_0016cdf0("../../gold/options.h",0x828,&DAT_0031b73b);\n      }\n      uVar2 = puVar14[5];\n      uVar17 = gettext("%s: file is empty");\n      FUN_001690a0(uVar17,uVar2);\n    }\n    return 0;\n  }" if (parenthesized_expression "(*pcVar20 == '\0')" ( (binary_expression "*pcVar20 == '\0'" (pointer_expression "*pcVar20" * identifier) == (char_literal "'\0'" ' escape_sequence ')) )) (compound_statement "{\n    if (*(long *)(pcVar20 + 0x70) == 0) {\n      if (*(long *)(param_1 + 0x70) != 0) {\n                    \n        FUN_0016cdf0("../../gold/readsyms.cc",0x10b,"do_read_symbols");\n      }\n      FUN_001f5780();\n      return 1;\n    }\n  }" { (if_statement "if (*(long *)(pcVar20 + 0x70) == 0) {\n      if (*(long *)(param_1 + 0x70) != 0) {\n                    \n        FUN_0016cdf0("../../gold/readsyms.cc",0x10b,"do_read_symbols");\n      }\n      FUN_001f5780();\n      return 1;\n    }" if (parenthesized_expression "(*(long *)(pcVar20 + 0x70) == 0)" ( (binary_expression "*(long *)(pcVar20 + 0x70) == 0" (pointer_expression "*(long *)(pcVar20 + 0x70)" * (cast_expression "(long *)(pcVar20 + 0x70)" ( (type_descriptor "long *" (sized_type_specifier "long" long) (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pcVar20 + 0x70)" ( (binary_expression "pcVar20 + 0x70" identifier + number_literal) )))) == number_literal) )) (compound_statement "{\n      if (*(long *)(param_1 + 0x70) != 0) {\n                    \n        FUN_0016cdf0("../../gold/readsyms.cc",0x10b,"do_read_symbols");\n      }\n      FUN_001f5780();\n      return 1;\n    }" { (if_statement "if (*(long *)(param_1 + 0x70) != 0) {\n                    \n        FUN_0016cdf0("../../gold/readsyms.cc",0x10b,"do_read_symbols");\n      }" if (parenthesized_expression "(*(long *)(param_1 + 0x70) != 0)" ( (binary_expression "*(long *)(param_1 + 0x70) != 0" (pointer_expression "*(long *)(param_1 + 0x70)" * (cast_expression "(long *)(param_1 + 0x70)" ( (type_descriptor "long *" (sized_type_specifier "long" long) (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x70)" ( (binary_expression "param_1 + 0x70" identifier + number_literal) )))) != number_literal) )) (compound_statement "{\n                    \n        FUN_0016cdf0("../../gold/readsyms.cc",0x10b,"do_read_symbols");\n      }" { (expression_statement "FUN_0016cdf0("../../gold/readsyms.cc",0x10b,"do_read_symbols");" (call_expression "FUN_0016cdf0("../../gold/readsyms.cc",0x10b,"do_read_symbols")" identifier (argument_list "("../../gold/readsyms.cc",0x10b,"do_read_symbols")" ( (string_literal ""../../gold/readsyms.cc"" " string_content ") , number_literal , (string_literal ""do_read_symbols"" " string_content ") ))) ;) })) (expression_statement "FUN_001f5780();" (call_expression "FUN_001f5780()" identifier (argument_list "()" ( ))) ;) (return_statement "return 1;" return number_literal ;) })) }) (else_clause "else if (*(long *)(pcVar20 + 0x70) == 0) {\n    puVar14 = (undefined8 *)FUN_00275550(0xe8);\n    uVar2 = *(undefined8 *)(param_1 + 0x50);\n    *puVar14 = pcVar20 + 8;\n    puVar14[1] = puVar14 + 3;\n    puVar14[2] = 0;\n    *(undefined1 *)(puVar14 + 3) = 0;\n    puVar14[5] = puVar14 + 7;\n    puVar14[0x13] = puVar14 + 0x11;\n    puVar14[0x14] = puVar14 + 0x11;\n    puVar14[6] = 0;\n    *(undefined1 *)(puVar14 + 7) = 0;\n    *(undefined4 *)(puVar14 + 9) = 0xffffffff;\n    *(undefined1 *)((long)puVar14 + 0x4c) = 0;\n    *(undefined4 *)(puVar14 + 10) = 0;\n    puVar14[0xb] = 0;\n    *(undefined1 *)(puVar14 + 0xc) = 0;\n    *(undefined4 *)((long)puVar14 + 100) = 0;\n    puVar14[0xd] = 0;\n    puVar14[0xe] = 0;\n    puVar14[0xf] = 0;\n    *(undefined4 *)(puVar14 + 0x11) = 0;\n    puVar14[0x12] = 0;\n    puVar14[0x15] = 0;\n    puVar14[0x17] = puVar14 + 0x16;\n    puVar14[0x16] = puVar14 + 0x16;\n    puVar14[0x18] = 0;\n    puVar14[0x19] = 0;\n    *(undefined1 *)(puVar14 + 0x1a) = 1;\n    puVar14[0x1b] = 0;\n    *(undefined1 *)(puVar14 + 0x1c) = 0;\n    *(undefined4 *)((long)puVar14 + 0xe4) = 0;\n    uVar13 = FUN_0016ca50(puVar14,uVar2,param_1,param_1 + 0x58);\n    if ((char)uVar13 != '\0') {\n      lVar16 = puVar14[0xb];\n      if (lVar16 != 0) {\n        bVar11 = FUN_0019b230(puVar14,0,&local_60,&local_64);\n        if ((local_64 < 8) ||\n           ((lVar3 = *local_60, lVar3 != s__<thin>__<arch>_N4gold7ArchiveE_00322e50._0_8_ &&\n            (s__<thin>__<arch>_N4gold7ArchiveE_00322e50._8_8_ != lVar3)))) {\n          plVar19 = (long *)0x0;\n          if (bVar11 != 0) {\n            local_58[0] = (undefined1 *)((ulong)local_58[0] & 0xffffffffffffff00);\n            cVar12 = FUN_0016b000(puVar14);\n            ppuVar21 = (undefined1 **)0x0;\n            if (cVar12 != '\0') {\n              ppuVar21 = local_58;\n            }\n            plVar19 = (long *)FUN_0019b3d0(puVar14 + 5,puVar14,0,local_60,(long)local_64,ppuVar21);\n          }\n          if (*(long *)(PTR_DAT_003be6b0 + 0x10) == 0) {\n                    \n            FUN_0016cdf0("../../gold/parameters.h",0x5c,"options");\n          }\n          lVar3 = *(long *)(*(long *)(PTR_DAT_003be6b0 + 0x10) + 0x9058);\n          if ((lVar3 != 0) && (lVar16 = FUN_001f1940(lVar3,puVar14,0,lVar16,plVar19), lVar16 != 0))\n          {\n            if (plVar19 != (long *)0x0) {\n              (**(code **)(*plVar19 + 8))(plVar19);\n            }\n            if (*(long *)(lVar16 + 0x28) != 0) {\n              FUN_0016ae30(*(long *)(lVar16 + 0x28) + 0x28,param_1);\n            }\n            plVar19 = *(long **)(param_1 + 0x78);\n            if (plVar19 == (long *)0x0) {\n              puVar14 = (undefined8 *)FUN_00275550(0x80);\n              uVar2 = *(undefined8 *)(param_1 + 0x68);\n              uVar17 = *(undefined8 *)(param_1 + 0x48);\n              uVar4 = *(undefined8 *)(param_1 + 0x40);\n              uVar5 = *(undefined8 *)(param_1 + 0x38);\n              *puVar14 = &PTR_FUN_003acf00;\n              uVar6 = *(undefined8 *)(param_1 + 0x88);\n              uVar7 = *(undefined8 *)(param_1 + 0x80);\n              puVar14[9] = uVar17;\n              puVar14[10] = uVar2;\n              puVar14[1] = 0;\n              puVar14[2] = puVar14 + 4;\n              puVar14[3] = 0;\n              *(undefined1 *)(puVar14 + 4) = 0;\n              *(undefined1 *)(puVar14 + 6) = 0;\n              puVar14[7] = uVar5;\n              puVar14[8] = uVar4;\n              puVar14[0xb] = lVar16;\n              puVar14[0xc] = 0;\n              puVar14[0xd] = 0;\n              puVar14[0xe] = uVar7;\n              puVar14[0xf] = uVar6;\n              FUN_002300a0(param_2,puVar14);\n              return uVar13;\n            }\n            plVar19[1] = 0;\n            *plVar19 = lVar16;\n            return uVar13;\n          }\n          if (bVar11 == 0) {\n            puVar18 = (undefined8 *)FUN_00275550(0x90);\n            uVar2 = *(undefined8 *)(param_1 + 0x88);\n            uVar17 = *(undefined8 *)(param_1 + 0x80);\n            uVar4 = *(undefined8 *)(param_1 + 0x68);\n            uVar5 = *(undefined8 *)(param_1 + 0x70);\n            *(undefined1 *)(puVar18 + 4) = 0;\n            uVar6 = *(undefined8 *)(param_1 + 0x60);\n            uVar7 = *(undefined8 *)(param_1 + 0x38);\n            puVar18[2] = puVar18 + 4;\n            uVar1 = *(undefined4 *)(param_1 + 0x58);\n            uVar8 = *(undefined8 *)(param_1 + 0x50);\n            puVar18[0xd] = uVar5;\n            uVar5 = *(undefined8 *)(param_1 + 0x48);\n            uVar9 = *(undefined8 *)(param_1 + 0x40);\n            puVar18[0xe] = uVar4;\n            puVar18[1] = 0;\n            puVar18[3] = 0;\n            *(undefined1 *)(puVar18 + 6) = 0;\n            *puVar18 = &PTR_FUN_003ad080;\n            puVar18[7] = uVar9;\n            puVar18[8] = uVar5;\n            puVar18[9] = uVar8;\n            *(undefined4 *)(puVar18 + 10) = uVar1;\n            puVar18[0xb] = uVar7;\n            puVar18[0xc] = uVar6;\n            puVar18[0xf] = puVar14;\n            puVar18[0x10] = uVar17;\n            puVar18[0x11] = uVar2;\n            FUN_00230080(param_2,puVar18);\n            return uVar13;\n          }\n          if (plVar19 == (long *)0x0) {\n            if ((char)local_58[0] == '\0') {\n              return 0;\n            }\n            puVar18 = puVar14 + 5;\n            FUN_001f51c0(*(undefined8 *)(param_1 + 0x68),puVar14);\n            FUN_0016ad00(puVar18);\n            FUN_0016ae30(puVar18,param_1);\n            FUN_0016b0b0(puVar18);\n            if (puVar14 + 3 != (undefined8 *)puVar14[1]) {\n              FUN_00276d20();\n            }\n            thunk_FUN_00276d20(puVar14,0xe8);\n            *(int *)(param_1 + 0x58) = *(int *)(param_1 + 0x58) + 1;\n            uVar13 = FUN_001f5c10(param_1,param_2);\n            return uVar13;\n          }\n          puVar18 = (undefined8 *)FUN_00275550(0x80);\n          *puVar18 = 0;\n          puVar18[1] = 0;\n          puVar18[3] = 0;\n          puVar18[6] = 0;\n          puVar18[8] = 0;\n          puVar18[10] = 0;\n          puVar18[0xd] = 0;\n          (**(code **)(*plVar19 + 0x40))(plVar19,puVar18);\n          FUN_0016ae30(puVar14 + 5,param_1);\n          puVar14 = *(undefined8 **)(param_1 + 0x78);\n          if (puVar14 == (undefined8 *)0x0) {\n            puVar14 = (undefined8 *)FUN_00275550(0x80);\n            uVar2 = *(undefined8 *)(param_1 + 0x68);\n            uVar17 = *(undefined8 *)(param_1 + 0x48);\n            uVar4 = *(undefined8 *)(param_1 + 0x40);\n            uVar5 = *(undefined8 *)(param_1 + 0x38);\n            puVar14[0xd] = puVar18;\n            uVar6 = *(undefined8 *)(param_1 + 0x88);\n            uVar7 = *(undefined8 *)(param_1 + 0x80);\n            puVar14[2] = puVar14 + 4;\n            puVar14[9] = uVar17;\n            puVar14[10] = uVar2;\n            puVar14[1] = 0;\n            puVar14[3] = 0;\n            *(undefined1 *)(puVar14 + 4) = 0;\n            *(undefined1 *)(puVar14 + 6) = 0;\n            *puVar14 = &PTR_FUN_003acf00;\n            puVar14[7] = uVar5;\n            puVar14[8] = uVar4;\n            puVar14[0xb] = plVar19;\n            puVar14[0xc] = 0;\n            puVar14[0xe] = uVar7;\n            puVar14[0xf] = uVar6;\n            FUN_002300a0(param_2,puVar14);\n            return (uint)bVar11;\n          }\n          pbVar10 = *(byte **)(param_1 + 0x68);\n          puVar14[1] = puVar18;\n          *puVar14 = plVar19;\n          bVar11 = *pbVar10;\n          if (bVar11 != 0) {\n            *(undefined4 *)(puVar14 + 2) = *(undefined4 *)(pbVar10 + 100);\n            return (uint)bVar11;\n          }\n        }\n        else {\n          bVar11 = **(byte **)(param_1 + 0x68);\n          if (bVar11 != 0) {\n            __s = *(char **)(*(byte **)(param_1 + 0x68) + 8);\n            pcVar20 = (char *)0xffffffffffffffff;\n            local_58[0] = local_48;\n            if (__s != (char *)0x0) {\n              sVar15 = strlen(__s);\n              pcVar20 = __s + sVar15;\n            }\n            FUN_0015cbe0(local_58,__s,pcVar20);\n                    \n            lVar16 = FUN_00275550(0x178);\n                    \n            FUN_00234b40(lVar16,local_58,puVar14,\n                         lVar3 == s__<thin>__<arch>_N4gold7ArchiveE_00322e50._0_8_,\n                         *(undefined8 *)(param_1 + 0x50),param_1);\n            if (local_58[0] != local_48) {\n              FUN_00276d20();\n            }\n            FUN_00235c40(lVar16);\n            FUN_0016ae30(*(long *)(lVar16 + 0x38) + 0x28,param_1);\n            puVar14 = (undefined8 *)FUN_00275550(0x90);\n            uVar2 = *(undefined8 *)(param_1 + 0x88);\n            uVar17 = *(undefined8 *)(param_1 + 0x80);\n            uVar4 = *(undefined8 *)(param_1 + 0x70);\n            uVar5 = *(undefined8 *)(param_1 + 0x68);\n            *(undefined1 *)(puVar14 + 4) = 0;\n            uVar6 = *(undefined8 *)(param_1 + 0x60);\n            uVar1 = *(undefined4 *)(param_1 + 0x58);\n            puVar14[2] = puVar14 + 4;\n            uVar7 = *(undefined8 *)(param_1 + 0x50);\n            uVar8 = *(undefined8 *)(param_1 + 0x38);\n            puVar14[0xd] = uVar5;\n            uVar5 = *(undefined8 *)(param_1 + 0x48);\n            uVar9 = *(undefined8 *)(param_1 + 0x40);\n            puVar14[0xf] = uVar4;\n            puVar14[1] = 0;\n            puVar14[3] = 0;\n            *(undefined1 *)(puVar14 + 6) = 0;\n            *puVar14 = &PTR_FUN_003ae430;\n            puVar14[7] = uVar9;\n            puVar14[8] = uVar5;\n            puVar14[9] = uVar8;\n            puVar14[10] = uVar7;\n            *(undefined4 *)(puVar14 + 0xb) = uVar1;\n            puVar14[0xc] = uVar6;\n            puVar14[0xe] = lVar16;\n            puVar14[0x10] = uVar17;\n            puVar14[0x11] = uVar2;\n            FUN_002300a0(param_2,puVar14);\n            return (uint)bVar11;\n          }\n        }\n                    \n        FUN_0016cdf0("../../gold/options.h",0x828,&DAT_0031b73b);\n      }\n      uVar2 = puVar14[5];\n      uVar17 = gettext("%s: file is empty");\n      FUN_001690a0(uVar17,uVar2);\n    }\n    return 0;\n  }" else (if_statement "if (*(long *)(pcVar20 + 0x70) == 0) {\n    puVar14 = (undefined8 *)FUN_00275550(0xe8);\n    uVar2 = *(undefined8 *)(param_1 + 0x50);\n    *puVar14 = pcVar20 + 8;\n    puVar14[1] = puVar14 + 3;\n    puVar14[2] = 0;\n    *(undefined1 *)(puVar14 + 3) = 0;\n    puVar14[5] = puVar14 + 7;\n    puVar14[0x13] = puVar14 + 0x11;\n    puVar14[0x14] = puVar14 + 0x11;\n    puVar14[6] = 0;\n    *(undefined1 *)(puVar14 + 7) = 0;\n    *(undefined4 *)(puVar14 + 9) = 0xffffffff;\n    *(undefined1 *)((long)puVar14 + 0x4c) = 0;\n    *(undefined4 *)(puVar14 + 10) = 0;\n    puVar14[0xb] = 0;\n    *(undefined1 *)(puVar14 + 0xc) = 0;\n    *(undefined4 *)((long)puVar14 + 100) = 0;\n    puVar14[0xd] = 0;\n    puVar14[0xe] = 0;\n    puVar14[0xf] = 0;\n    *(undefined4 *)(puVar14 + 0x11) = 0;\n    puVar14[0x12] = 0;\n    puVar14[0x15] = 0;\n    puVar14[0x17] = puVar14 + 0x16;\n    puVar14[0x16] = puVar14 + 0x16;\n    puVar14[0x18] = 0;\n    puVar14[0x19] = 0;\n    *(undefined1 *)(puVar14 + 0x1a) = 1;\n    puVar14[0x1b] = 0;\n    *(undefined1 *)(puVar14 + 0x1c) = 0;\n    *(undefined4 *)((long)puVar14 + 0xe4) = 0;\n    uVar13 = FUN_0016ca50(puVar14,uVar2,param_1,param_1 + 0x58);\n    if ((char)uVar13 != '\0') {\n      lVar16 = puVar14[0xb];\n      if (lVar16 != 0) {\n        bVar11 = FUN_0019b230(puVar14,0,&local_60,&local_64);\n        if ((local_64 < 8) ||\n           ((lVar3 = *local_60, lVar3 != s__<thin>__<arch>_N4gold7ArchiveE_00322e50._0_8_ &&\n            (s__<thin>__<arch>_N4gold7ArchiveE_00322e50._8_8_ != lVar3)))) {\n          plVar19 = (long *)0x0;\n          if (bVar11 != 0) {\n            local_58[0] = (undefined1 *)((ulong)local_58[0] & 0xffffffffffffff00);\n            cVar12 = FUN_0016b000(puVar14);\n            ppuVar21 = (undefined1 **)0x0;\n            if (cVar12 != '\0') {\n              ppuVar21 = local_58;\n            }\n            plVar19 = (long *)FUN_0019b3d0(puVar14 + 5,puVar14,0,local_60,(long)local_64,ppuVar21);\n          }\n          if (*(long *)(PTR_DAT_003be6b0 + 0x10) == 0) {\n                    \n            FUN_0016cdf0("../../gold/parameters.h",0x5c,"options");\n          }\n          lVar3 = *(long *)(*(long *)(PTR_DAT_003be6b0 + 0x10) + 0x9058);\n          if ((lVar3 != 0) && (lVar16 = FUN_001f1940(lVar3,puVar14,0,lVar16,plVar19), lVar16 != 0))\n          {\n            if (plVar19 != (long *)0x0) {\n              (**(code **)(*plVar19 + 8))(plVar19);\n            }\n            if (*(long *)(lVar16 + 0x28) != 0) {\n              FUN_0016ae30(*(long *)(lVar16 + 0x28) + 0x28,param_1);\n            }\n            plVar19 = *(long **)(param_1 + 0x78);\n            if (plVar19 == (long *)0x0) {\n              puVar14 = (undefined8 *)FUN_00275550(0x80);\n              uVar2 = *(undefined8 *)(param_1 + 0x68);\n              uVar17 = *(undefined8 *)(param_1 + 0x48);\n              uVar4 = *(undefined8 *)(param_1 + 0x40);\n              uVar5 = *(undefined8 *)(param_1 + 0x38);\n              *puVar14 = &PTR_FUN_003acf00;\n              uVar6 = *(undefined8 *)(param_1 + 0x88);\n              uVar7 = *(undefined8 *)(param_1 + 0x80);\n              puVar14[9] = uVar17;\n              puVar14[10] = uVar2;\n              puVar14[1] = 0;\n              puVar14[2] = puVar14 + 4;\n              puVar14[3] = 0;\n              *(undefined1 *)(puVar14 + 4) = 0;\n              *(undefined1 *)(puVar14 + 6) = 0;\n              puVar14[7] = uVar5;\n              puVar14[8] = uVar4;\n              puVar14[0xb] = lVar16;\n              puVar14[0xc] = 0;\n              puVar14[0xd] = 0;\n              puVar14[0xe] = uVar7;\n              puVar14[0xf] = uVar6;\n              FUN_002300a0(param_2,puVar14);\n              return uVar13;\n            }\n            plVar19[1] = 0;\n            *plVar19 = lVar16;\n            return uVar13;\n          }\n          if (bVar11 == 0) {\n            puVar18 = (undefined8 *)FUN_00275550(0x90);\n            uVar2 = *(undefined8 *)(param_1 + 0x88);\n            uVar17 = *(undefined8 *)(param_1 + 0x80);\n            uVar4 = *(undefined8 *)(param_1 + 0x68);\n            uVar5 = *(undefined8 *)(param_1 + 0x70);\n            *(undefined1 *)(puVar18 + 4) = 0;\n            uVar6 = *(undefined8 *)(param_1 + 0x60);\n            uVar7 = *(undefined8 *)(param_1 + 0x38);\n            puVar18[2] = puVar18 + 4;\n            uVar1 = *(undefined4 *)(param_1 + 0x58);\n            uVar8 = *(undefined8 *)(param_1 + 0x50);\n            puVar18[0xd] = uVar5;\n            uVar5 = *(undefined8 *)(param_1 + 0x48);\n            uVar9 = *(undefined8 *)(param_1 + 0x40);\n            puVar18[0xe] = uVar4;\n            puVar18[1] = 0;\n            puVar18[3] = 0;\n            *(undefined1 *)(puVar18 + 6) = 0;\n            *puVar18 = &PTR_FUN_003ad080;\n            puVar18[7] = uVar9;\n            puVar18[8] = uVar5;\n            puVar18[9] = uVar8;\n            *(undefined4 *)(puVar18 + 10) = uVar1;\n            puVar18[0xb] = uVar7;\n            puVar18[0xc] = uVar6;\n            puVar18[0xf] = puVar14;\n            puVar18[0x10] = uVar17;\n            puVar18[0x11] = uVar2;\n            FUN_00230080(param_2,puVar18);\n            return uVar13;\n          }\n          if (plVar19 == (long *)0x0) {\n            if ((char)local_58[0] == '\0') {\n              return 0;\n            }\n            puVar18 = puVar14 + 5;\n            FUN_001f51c0(*(undefined8 *)(param_1 + 0x68),puVar14);\n            FUN_0016ad00(puVar18);\n            FUN_0016ae30(puVar18,param_1);\n            FUN_0016b0b0(puVar18);\n            if (puVar14 + 3 != (undefined8 *)puVar14[1]) {\n              FUN_00276d20();\n            }\n            thunk_FUN_00276d20(puVar14,0xe8);\n            *(int *)(param_1 + 0x58) = *(int *)(param_1 + 0x58) + 1;\n            uVar13 = FUN_001f5c10(param_1,param_2);\n            return uVar13;\n          }\n          puVar18 = (undefined8 *)FUN_00275550(0x80);\n          *puVar18 = 0;\n          puVar18[1] = 0;\n          puVar18[3] = 0;\n          puVar18[6] = 0;\n          puVar18[8] = 0;\n          puVar18[10] = 0;\n          puVar18[0xd] = 0;\n          (**(code **)(*plVar19 + 0x40))(plVar19,puVar18);\n          FUN_0016ae30(puVar14 + 5,param_1);\n          puVar14 = *(undefined8 **)(param_1 + 0x78);\n          if (puVar14 == (undefined8 *)0x0) {\n            puVar14 = (undefined8 *)FUN_00275550(0x80);\n            uVar2 = *(undefined8 *)(param_1 + 0x68);\n            uVar17 = *(undefined8 *)(param_1 + 0x48);\n            uVar4 = *(undefined8 *)(param_1 + 0x40);\n            uVar5 = *(undefined8 *)(param_1 + 0x38);\n            puVar14[0xd] = puVar18;\n            uVar6 = *(undefined8 *)(param_1 + 0x88);\n            uVar7 = *(undefined8 *)(param_1 + 0x80);\n            puVar14[2] = puVar14 + 4;\n            puVar14[9] = uVar17;\n            puVar14[10] = uVar2;\n            puVar14[1] = 0;\n            puVar14[3] = 0;\n            *(undefined1 *)(puVar14 + 4) = 0;\n            *(undefined1 *)(puVar14 + 6) = 0;\n            *puVar14 = &PTR_FUN_003acf00;\n            puVar14[7] = uVar5;\n            puVar14[8] = uVar4;\n            puVar14[0xb] = plVar19;\n            puVar14[0xc] = 0;\n            puVar14[0xe] = uVar7;\n            puVar14[0xf] = uVar6;\n            FUN_002300a0(param_2,puVar14);\n            return (uint)bVar11;\n          }\n          pbVar10 = *(byte **)(param_1 + 0x68);\n          puVar14[1] = puVar18;\n          *puVar14 = plVar19;\n          bVar11 = *pbVar10;\n          if (bVar11 != 0) {\n            *(undefined4 *)(puVar14 + 2) = *(undefined4 *)(pbVar10 + 100);\n            return (uint)bVar11;\n          }\n        }\n        else {\n          bVar11 = **(byte **)(param_1 + 0x68);\n          if (bVar11 != 0) {\n            __s = *(char **)(*(byte **)(param_1 + 0x68) + 8);\n            pcVar20 = (char *)0xffffffffffffffff;\n            local_58[0] = local_48;\n            if (__s != (char *)0x0) {\n              sVar15 = strlen(__s);\n              pcVar20 = __s + sVar15;\n            }\n            FUN_0015cbe0(local_58,__s,pcVar20);\n                    \n            lVar16 = FUN_00275550(0x178);\n                    \n            FUN_00234b40(lVar16,local_58,puVar14,\n                         lVar3 == s__<thin>__<arch>_N4gold7ArchiveE_00322e50._0_8_,\n                         *(undefined8 *)(param_1 + 0x50),param_1);\n            if (local_58[0] != local_48) {\n              FUN_00276d20();\n            }\n            FUN_00235c40(lVar16);\n            FUN_0016ae30(*(long *)(lVar16 + 0x38) + 0x28,param_1);\n            puVar14 = (undefined8 *)FUN_00275550(0x90);\n            uVar2 = *(undefined8 *)(param_1 + 0x88);\n            uVar17 = *(undefined8 *)(param_1 + 0x80);\n            uVar4 = *(undefined8 *)(param_1 + 0x70);\n            uVar5 = *(undefined8 *)(param_1 + 0x68);\n            *(undefined1 *)(puVar14 + 4) = 0;\n            uVar6 = *(undefined8 *)(param_1 + 0x60);\n            uVar1 = *(undefined4 *)(param_1 + 0x58);\n            puVar14[2] = puVar14 + 4;\n            uVar7 = *(undefined8 *)(param_1 + 0x50);\n            uVar8 = *(undefined8 *)(param_1 + 0x38);\n            puVar14[0xd] = uVar5;\n            uVar5 = *(undefined8 *)(param_1 + 0x48);\n            uVar9 = *(undefined8 *)(param_1 + 0x40);\n            puVar14[0xf] = uVar4;\n            puVar14[1] = 0;\n            puVar14[3] = 0;\n            *(undefined1 *)(puVar14 + 6) = 0;\n            *puVar14 = &PTR_FUN_003ae430;\n            puVar14[7] = uVar9;\n            puVar14[8] = uVar5;\n            puVar14[9] = uVar8;\n            puVar14[10] = uVar7;\n            *(undefined4 *)(puVar14 + 0xb) = uVar1;\n            puVar14[0xc] = uVar6;\n            puVar14[0xe] = lVar16;\n            puVar14[0x10] = uVar17;\n            puVar14[0x11] = uVar2;\n            FUN_002300a0(param_2,puVar14);\n            return (uint)bVar11;\n          }\n        }\n                    \n        FUN_0016cdf0("../../gold/options.h",0x828,&DAT_0031b73b);\n      }\n      uVar2 = puVar14[5];\n      uVar17 = gettext("%s: file is empty");\n      FUN_001690a0(uVar17,uVar2);\n    }\n    return 0;\n  }" if (parenthesized_expression "(*(long *)(pcVar20 + 0x70) == 0)" ( (binary_expression "*(long *)(pcVar20 + 0x70) == 0" (pointer_expression "*(long *)(pcVar20 + 0x70)" * (cast_expression "(long *)(pcVar20 + 0x70)" ( (type_descriptor "long *" (sized_type_specifier "long" long) (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pcVar20 + 0x70)" ( (binary_expression "pcVar20 + 0x70" identifier + number_literal) )))) == number_literal) )) (compound_statement "{\n    puVar14 = (undefined8 *)FUN_00275550(0xe8);\n    uVar2 = *(undefined8 *)(param_1 + 0x50);\n    *puVar14 = pcVar20 + 8;\n    puVar14[1] = puVar14 + 3;\n    puVar14[2] = 0;\n    *(undefined1 *)(puVar14 + 3) = 0;\n    puVar14[5] = puVar14 + 7;\n    puVar14[0x13] = puVar14 + 0x11;\n    puVar14[0x14] = puVar14 + 0x11;\n    puVar14[6] = 0;\n    *(undefined1 *)(puVar14 + 7) = 0;\n    *(undefined4 *)(puVar14 + 9) = 0xffffffff;\n    *(undefined1 *)((long)puVar14 + 0x4c) = 0;\n    *(undefined4 *)(puVar14 + 10) = 0;\n    puVar14[0xb] = 0;\n    *(undefined1 *)(puVar14 + 0xc) = 0;\n    *(undefined4 *)((long)puVar14 + 100) = 0;\n    puVar14[0xd] = 0;\n    puVar14[0xe] = 0;\n    puVar14[0xf] = 0;\n    *(undefined4 *)(puVar14 + 0x11) = 0;\n    puVar14[0x12] = 0;\n    puVar14[0x15] = 0;\n    puVar14[0x17] = puVar14 + 0x16;\n    puVar14[0x16] = puVar14 + 0x16;\n    puVar14[0x18] = 0;\n    puVar14[0x19] = 0;\n    *(undefined1 *)(puVar14 + 0x1a) = 1;\n    puVar14[0x1b] = 0;\n    *(undefined1 *)(puVar14 + 0x1c) = 0;\n    *(undefined4 *)((long)puVar14 + 0xe4) = 0;\n    uVar13 = FUN_0016ca50(puVar14,uVar2,param_1,param_1 + 0x58);\n    if ((char)uVar13 != '\0') {\n      lVar16 = puVar14[0xb];\n      if (lVar16 != 0) {\n        bVar11 = FUN_0019b230(puVar14,0,&local_60,&local_64);\n        if ((local_64 < 8) ||\n           ((lVar3 = *local_60, lVar3 != s__<thin>__<arch>_N4gold7ArchiveE_00322e50._0_8_ &&\n            (s__<thin>__<arch>_N4gold7ArchiveE_00322e50._8_8_ != lVar3)))) {\n          plVar19 = (long *)0x0;\n          if (bVar11 != 0) {\n            local_58[0] = (undefined1 *)((ulong)local_58[0] & 0xffffffffffffff00);\n            cVar12 = FUN_0016b000(puVar14);\n            ppuVar21 = (undefined1 **)0x0;\n            if (cVar12 != '\0') {\n              ppuVar21 = local_58;\n            }\n            plVar19 = (long *)FUN_0019b3d0(puVar14 + 5,puVar14,0,local_60,(long)local_64,ppuVar21);\n          }\n          if (*(long *)(PTR_DAT_003be6b0 + 0x10) == 0) {\n                    \n            FUN_0016cdf0("../../gold/parameters.h",0x5c,"options");\n          }\n          lVar3 = *(long *)(*(long *)(PTR_DAT_003be6b0 + 0x10) + 0x9058);\n          if ((lVar3 != 0) && (lVar16 = FUN_001f1940(lVar3,puVar14,0,lVar16,plVar19), lVar16 != 0))\n          {\n            if (plVar19 != (long *)0x0) {\n              (**(code **)(*plVar19 + 8))(plVar19);\n            }\n            if (*(long *)(lVar16 + 0x28) != 0) {\n              FUN_0016ae30(*(long *)(lVar16 + 0x28) + 0x28,param_1);\n            }\n            plVar19 = *(long **)(param_1 + 0x78);\n            if (plVar19 == (long *)0x0) {\n              puVar14 = (undefined8 *)FUN_00275550(0x80);\n              uVar2 = *(undefined8 *)(param_1 + 0x68);\n              uVar17 = *(undefined8 *)(param_1 + 0x48);\n              uVar4 = *(undefined8 *)(param_1 + 0x40);\n              uVar5 = *(undefined8 *)(param_1 + 0x38);\n              *puVar14 = &PTR_FUN_003acf00;\n              uVar6 = *(undefined8 *)(param_1 + 0x88);\n              uVar7 = *(undefined8 *)(param_1 + 0x80);\n              puVar14[9] = uVar17;\n              puVar14[10] = uVar2;\n              puVar14[1] = 0;\n              puVar14[2] = puVar14 + 4;\n              puVar14[3] = 0;\n              *(undefined1 *)(puVar14 + 4) = 0;\n              *(undefined1 *)(puVar14 + 6) = 0;\n              puVar14[7] = uVar5;\n              puVar14[8] = uVar4;\n              puVar14[0xb] = lVar16;\n              puVar14[0xc] = 0;\n              puVar14[0xd] = 0;\n              puVar14[0xe] = uVar7;\n              puVar14[0xf] = uVar6;\n              FUN_002300a0(param_2,puVar14);\n              return uVar13;\n            }\n            plVar19[1] = 0;\n            *plVar19 = lVar16;\n            return uVar13;\n          }\n          if (bVar11 == 0) {\n            puVar18 = (undefined8 *)FUN_00275550(0x90);\n            uVar2 = *(undefined8 *)(param_1 + 0x88);\n            uVar17 = *(undefined8 *)(param_1 + 0x80);\n            uVar4 = *(undefined8 *)(param_1 + 0x68);\n            uVar5 = *(undefined8 *)(param_1 + 0x70);\n            *(undefined1 *)(puVar18 + 4) = 0;\n            uVar6 = *(undefined8 *)(param_1 + 0x60);\n            uVar7 = *(undefined8 *)(param_1 + 0x38);\n            puVar18[2] = puVar18 + 4;\n            uVar1 = *(undefined4 *)(param_1 + 0x58);\n            uVar8 = *(undefined8 *)(param_1 + 0x50);\n            puVar18[0xd] = uVar5;\n            uVar5 = *(undefined8 *)(param_1 + 0x48);\n            uVar9 = *(undefined8 *)(param_1 + 0x40);\n            puVar18[0xe] = uVar4;\n            puVar18[1] = 0;\n            puVar18[3] = 0;\n            *(undefined1 *)(puVar18 + 6) = 0;\n            *puVar18 = &PTR_FUN_003ad080;\n            puVar18[7] = uVar9;\n            puVar18[8] = uVar5;\n            puVar18[9] = uVar8;\n            *(undefined4 *)(puVar18 + 10) = uVar1;\n            puVar18[0xb] = uVar7;\n            puVar18[0xc] = uVar6;\n            puVar18[0xf] = puVar14;\n            puVar18[0x10] = uVar17;\n            puVar18[0x11] = uVar2;\n            FUN_00230080(param_2,puVar18);\n            return uVar13;\n          }\n          if (plVar19 == (long *)0x0) {\n            if ((char)local_58[0] == '\0') {\n              return 0;\n            }\n            puVar18 = puVar14 + 5;\n            FUN_001f51c0(*(undefined8 *)(param_1 + 0x68),puVar14);\n            FUN_0016ad00(puVar18);\n            FUN_0016ae30(puVar18,param_1);\n            FUN_0016b0b0(puVar18);\n            if (puVar14 + 3 != (undefined8 *)puVar14[1]) {\n              FUN_00276d20();\n            }\n            thunk_FUN_00276d20(puVar14,0xe8);\n            *(int *)(param_1 + 0x58) = *(int *)(param_1 + 0x58) + 1;\n            uVar13 = FUN_001f5c10(param_1,param_2);\n            return uVar13;\n          }\n          puVar18 = (undefined8 *)FUN_00275550(0x80);\n          *puVar18 = 0;\n          puVar18[1] = 0;\n          puVar18[3] = 0;\n          puVar18[6] = 0;\n          puVar18[8] = 0;\n          puVar18[10] = 0;\n          puVar18[0xd] = 0;\n          (**(code **)(*plVar19 + 0x40))(plVar19,puVar18);\n          FUN_0016ae30(puVar14 + 5,param_1);\n          puVar14 = *(undefined8 **)(param_1 + 0x78);\n          if (puVar14 == (undefined8 *)0x0) {\n            puVar14 = (undefined8 *)FUN_00275550(0x80);\n            uVar2 = *(undefined8 *)(param_1 + 0x68);\n            uVar17 = *(undefined8 *)(param_1 + 0x48);\n            uVar4 = *(undefined8 *)(param_1 + 0x40);\n            uVar5 = *(undefined8 *)(param_1 + 0x38);\n            puVar14[0xd] = puVar18;\n            uVar6 = *(undefined8 *)(param_1 + 0x88);\n            uVar7 = *(undefined8 *)(param_1 + 0x80);\n            puVar14[2] = puVar14 + 4;\n            puVar14[9] = uVar17;\n            puVar14[10] = uVar2;\n            puVar14[1] = 0;\n            puVar14[3] = 0;\n            *(undefined1 *)(puVar14 + 4) = 0;\n            *(undefined1 *)(puVar14 + 6) = 0;\n            *puVar14 = &PTR_FUN_003acf00;\n            puVar14[7] = uVar5;\n            puVar14[8] = uVar4;\n            puVar14[0xb] = plVar19;\n            puVar14[0xc] = 0;\n            puVar14[0xe] = uVar7;\n            puVar14[0xf] = uVar6;\n            FUN_002300a0(param_2,puVar14);\n            return (uint)bVar11;\n          }\n          pbVar10 = *(byte **)(param_1 + 0x68);\n          puVar14[1] = puVar18;\n          *puVar14 = plVar19;\n          bVar11 = *pbVar10;\n          if (bVar11 != 0) {\n            *(undefined4 *)(puVar14 + 2) = *(undefined4 *)(pbVar10 + 100);\n            return (uint)bVar11;\n          }\n        }\n        else {\n          bVar11 = **(byte **)(param_1 + 0x68);\n          if (bVar11 != 0) {\n            __s = *(char **)(*(byte **)(param_1 + 0x68) + 8);\n            pcVar20 = (char *)0xffffffffffffffff;\n            local_58[0] = local_48;\n            if (__s != (char *)0x0) {\n              sVar15 = strlen(__s);\n              pcVar20 = __s + sVar15;\n            }\n            FUN_0015cbe0(local_58,__s,pcVar20);\n                    \n            lVar16 = FUN_00275550(0x178);\n                    \n            FUN_00234b40(lVar16,local_58,puVar14,\n                         lVar3 == s__<thin>__<arch>_N4gold7ArchiveE_00322e50._0_8_,\n                         *(undefined8 *)(param_1 + 0x50),param_1);\n            if (local_58[0] != local_48) {\n              FUN_00276d20();\n            }\n            FUN_00235c40(lVar16);\n            FUN_0016ae30(*(long *)(lVar16 + 0x38) + 0x28,param_1);\n            puVar14 = (undefined8 *)FUN_00275550(0x90);\n            uVar2 = *(undefined8 *)(param_1 + 0x88);\n            uVar17 = *(undefined8 *)(param_1 + 0x80);\n            uVar4 = *(undefined8 *)(param_1 + 0x70);\n            uVar5 = *(undefined8 *)(param_1 + 0x68);\n            *(undefined1 *)(puVar14 + 4) = 0;\n            uVar6 = *(undefined8 *)(param_1 + 0x60);\n            uVar1 = *(undefined4 *)(param_1 + 0x58);\n            puVar14[2] = puVar14 + 4;\n            uVar7 = *(undefined8 *)(param_1 + 0x50);\n            uVar8 = *(undefined8 *)(param_1 + 0x38);\n            puVar14[0xd] = uVar5;\n            uVar5 = *(undefined8 *)(param_1 + 0x48);\n            uVar9 = *(undefined8 *)(param_1 + 0x40);\n            puVar14[0xf] = uVar4;\n            puVar14[1] = 0;\n            puVar14[3] = 0;\n            *(undefined1 *)(puVar14 + 6) = 0;\n            *puVar14 = &PTR_FUN_003ae430;\n            puVar14[7] = uVar9;\n            puVar14[8] = uVar5;\n            puVar14[9] = uVar8;\n            puVar14[10] = uVar7;\n            *(undefined4 *)(puVar14 + 0xb) = uVar1;\n            puVar14[0xc] = uVar6;\n            puVar14[0xe] = lVar16;\n            puVar14[0x10] = uVar17;\n            puVar14[0x11] = uVar2;\n            FUN_002300a0(param_2,puVar14);\n            return (uint)bVar11;\n          }\n        }\n                    \n        FUN_0016cdf0("../../gold/options.h",0x828,&DAT_0031b73b);\n      }\n      uVar2 = puVar14[5];\n      uVar17 = gettext("%s: file is empty");\n      FUN_001690a0(uVar17,uVar2);\n    }\n    return 0;\n  }" { (expression_statement "puVar14 = (undefined8 *)FUN_00275550(0xe8);" (assignment_expression "puVar14 = (undefined8 *)FUN_00275550(0xe8)" identifier = (cast_expression "(undefined8 *)FUN_00275550(0xe8)" ( (type_descriptor "undefined8 *" type_identifier (abstract_pointer_declarator "*" *)) ) (call_expression "FUN_00275550(0xe8)" identifier (argument_list "(0xe8)" ( number_literal ))))) ;) (expression_statement "uVar2 = *(undefined8 *)(param_1 + 0x50);" (assignment_expression "uVar2 = *(undefined8 *)(param_1 + 0x50)" identifier = (pointer_expression "*(undefined8 *)(param_1 + 0x50)" * (cast_expression "(undefined8 *)(param_1 + 0x50)" ( (type_descriptor "undefined8 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x50)" ( (binary_expression "param_1 + 0x50" identifier + number_literal) ))))) ;) (expression_statement "*puVar14 = pcVar20 + 8;" (assignment_expression "*puVar14 = pcVar20 + 8" (pointer_expression "*puVar14" * identifier) = (binary_expression "pcVar20 + 8" identifier + number_literal)) ;) (expression_statement "puVar14[1] = puVar14 + 3;" (assignment_expression "puVar14[1] = puVar14 + 3" (subscript_expression "puVar14[1]" identifier [ number_literal ]) = (binary_expression "puVar14 + 3" identifier + number_literal)) ;) (expression_statement "puVar14[2] = 0;" (assignment_expression "puVar14[2] = 0" (subscript_expression "puVar14[2]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "*(undefined1 *)(puVar14 + 3) = 0;" (assignment_expression "*(undefined1 *)(puVar14 + 3) = 0" (pointer_expression "*(undefined1 *)(puVar14 + 3)" * (cast_expression "(undefined1 *)(puVar14 + 3)" ( (type_descriptor "undefined1 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar14 + 3)" ( (binary_expression "puVar14 + 3" identifier + number_literal) )))) = number_literal) ;) (expression_statement "puVar14[5] = puVar14 + 7;" (assignment_expression "puVar14[5] = puVar14 + 7" (subscript_expression "puVar14[5]" identifier [ number_literal ]) = (binary_expression "puVar14 + 7" identifier + number_literal)) ;) (expression_statement "puVar14[0x13] = puVar14 + 0x11;" (assignment_expression "puVar14[0x13] = puVar14 + 0x11" (subscript_expression "puVar14[0x13]" identifier [ number_literal ]) = (binary_expression "puVar14 + 0x11" identifier + number_literal)) ;) (expression_statement "puVar14[0x14] = puVar14 + 0x11;" (assignment_expression "puVar14[0x14] = puVar14 + 0x11" (subscript_expression "puVar14[0x14]" identifier [ number_literal ]) = (binary_expression "puVar14 + 0x11" identifier + number_literal)) ;) (expression_statement "puVar14[6] = 0;" (assignment_expression "puVar14[6] = 0" (subscript_expression "puVar14[6]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "*(undefined1 *)(puVar14 + 7) = 0;" (assignment_expression "*(undefined1 *)(puVar14 + 7) = 0" (pointer_expression "*(undefined1 *)(puVar14 + 7)" * (cast_expression "(undefined1 *)(puVar14 + 7)" ( (type_descriptor "undefined1 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar14 + 7)" ( (binary_expression "puVar14 + 7" identifier + number_literal) )))) = number_literal) ;) (expression_statement "*(undefined4 *)(puVar14 + 9) = 0xffffffff;" (assignment_expression "*(undefined4 *)(puVar14 + 9) = 0xffffffff" (pointer_expression "*(undefined4 *)(puVar14 + 9)" * (cast_expression "(undefined4 *)(puVar14 + 9)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar14 + 9)" ( (binary_expression "puVar14 + 9" identifier + number_literal) )))) = number_literal) ;) (expression_statement "*(undefined1 *)((long)puVar14 + 0x4c) = 0;" (assignment_expression "*(undefined1 *)((long)puVar14 + 0x4c) = 0" (pointer_expression "*(undefined1 *)((long)puVar14 + 0x4c)" * (cast_expression "(undefined1 *)((long)puVar14 + 0x4c)" ( (type_descriptor "undefined1 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((long)puVar14 + 0x4c)" ( (binary_expression "(long)puVar14 + 0x4c" (cast_expression "(long)puVar14" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) identifier) + number_literal) )))) = number_literal) ;) (expression_statement "*(undefined4 *)(puVar14 + 10) = 0;" (assignment_expression "*(undefined4 *)(puVar14 + 10) = 0" (pointer_expression "*(undefined4 *)(puVar14 + 10)" * (cast_expression "(undefined4 *)(puVar14 + 10)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar14 + 10)" ( (binary_expression "puVar14 + 10" identifier + number_literal) )))) = number_literal) ;) (expression_statement "puVar14[0xb] = 0;" (assignment_expression "puVar14[0xb] = 0" (subscript_expression "puVar14[0xb]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "*(undefined1 *)(puVar14 + 0xc) = 0;" (assignment_expression "*(undefined1 *)(puVar14 + 0xc) = 0" (pointer_expression "*(undefined1 *)(puVar14 + 0xc)" * (cast_expression "(undefined1 *)(puVar14 + 0xc)" ( (type_descriptor "undefined1 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar14 + 0xc)" ( (binary_expression "puVar14 + 0xc" identifier + number_literal) )))) = number_literal) ;) (expression_statement "*(undefined4 *)((long)puVar14 + 100) = 0;" (assignment_expression "*(undefined4 *)((long)puVar14 + 100) = 0" (pointer_expression "*(undefined4 *)((long)puVar14 + 100)" * (cast_expression "(undefined4 *)((long)puVar14 + 100)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((long)puVar14 + 100)" ( (binary_expression "(long)puVar14 + 100" (cast_expression "(long)puVar14" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) identifier) + number_literal) )))) = number_literal) ;) (expression_statement "puVar14[0xd] = 0;" (assignment_expression "puVar14[0xd] = 0" (subscript_expression "puVar14[0xd]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "puVar14[0xe] = 0;" (assignment_expression "puVar14[0xe] = 0" (subscript_expression "puVar14[0xe]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "puVar14[0xf] = 0;" (assignment_expression "puVar14[0xf] = 0" (subscript_expression "puVar14[0xf]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "*(undefined4 *)(puVar14 + 0x11) = 0;" (assignment_expression "*(undefined4 *)(puVar14 + 0x11) = 0" (pointer_expression "*(undefined4 *)(puVar14 + 0x11)" * (cast_expression "(undefined4 *)(puVar14 + 0x11)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar14 + 0x11)" ( (binary_expression "puVar14 + 0x11" identifier + number_literal) )))) = number_literal) ;) (expression_statement "puVar14[0x12] = 0;" (assignment_expression "puVar14[0x12] = 0" (subscript_expression "puVar14[0x12]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "puVar14[0x15] = 0;" (assignment_expression "puVar14[0x15] = 0" (subscript_expression "puVar14[0x15]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "puVar14[0x17] = puVar14 + 0x16;" (assignment_expression "puVar14[0x17] = puVar14 + 0x16" (subscript_expression "puVar14[0x17]" identifier [ number_literal ]) = (binary_expression "puVar14 + 0x16" identifier + number_literal)) ;) (expression_statement "puVar14[0x16] = puVar14 + 0x16;" (assignment_expression "puVar14[0x16] = puVar14 + 0x16" (subscript_expression "puVar14[0x16]" identifier [ number_literal ]) = (binary_expression "puVar14 + 0x16" identifier + number_literal)) ;) (expression_statement "puVar14[0x18] = 0;" (assignment_expression "puVar14[0x18] = 0" (subscript_expression "puVar14[0x18]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "puVar14[0x19] = 0;" (assignment_expression "puVar14[0x19] = 0" (subscript_expression "puVar14[0x19]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "*(undefined1 *)(puVar14 + 0x1a) = 1;" (assignment_expression "*(undefined1 *)(puVar14 + 0x1a) = 1" (pointer_expression "*(undefined1 *)(puVar14 + 0x1a)" * (cast_expression "(undefined1 *)(puVar14 + 0x1a)" ( (type_descriptor "undefined1 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar14 + 0x1a)" ( (binary_expression "puVar14 + 0x1a" identifier + number_literal) )))) = number_literal) ;) (expression_statement "puVar14[0x1b] = 0;" (assignment_expression "puVar14[0x1b] = 0" (subscript_expression "puVar14[0x1b]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "*(undefined1 *)(puVar14 + 0x1c) = 0;" (assignment_expression "*(undefined1 *)(puVar14 + 0x1c) = 0" (pointer_expression "*(undefined1 *)(puVar14 + 0x1c)" * (cast_expression "(undefined1 *)(puVar14 + 0x1c)" ( (type_descriptor "undefined1 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar14 + 0x1c)" ( (binary_expression "puVar14 + 0x1c" identifier + number_literal) )))) = number_literal) ;) (expression_statement "*(undefined4 *)((long)puVar14 + 0xe4) = 0;" (assignment_expression "*(undefined4 *)((long)puVar14 + 0xe4) = 0" (pointer_expression "*(undefined4 *)((long)puVar14 + 0xe4)" * (cast_expression "(undefined4 *)((long)puVar14 + 0xe4)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((long)puVar14 + 0xe4)" ( (binary_expression "(long)puVar14 + 0xe4" (cast_expression "(long)puVar14" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) identifier) + number_literal) )))) = number_literal) ;) (expression_statement "uVar13 = FUN_0016ca50(puVar14,uVar2,param_1,param_1 + 0x58);" (assignment_expression "uVar13 = FUN_0016ca50(puVar14,uVar2,param_1,param_1 + 0x58)" identifier = (call_expression "FUN_0016ca50(puVar14,uVar2,param_1,param_1 + 0x58)" identifier (argument_list "(puVar14,uVar2,param_1,param_1 + 0x58)" ( identifier , identifier , identifier , (binary_expression "param_1 + 0x58" identifier + number_literal) )))) ;) (if_statement "if ((char)uVar13 != '\0') {\n      lVar16 = puVar14[0xb];\n      if (lVar16 != 0) {\n        bVar11 = FUN_0019b230(puVar14,0,&local_60,&local_64);\n        if ((local_64 < 8) ||\n           ((lVar3 = *local_60, lVar3 != s__<thin>__<arch>_N4gold7ArchiveE_00322e50._0_8_ &&\n            (s__<thin>__<arch>_N4gold7ArchiveE_00322e50._8_8_ != lVar3)))) {\n          plVar19 = (long *)0x0;\n          if (bVar11 != 0) {\n            local_58[0] = (undefined1 *)((ulong)local_58[0] & 0xffffffffffffff00);\n            cVar12 = FUN_0016b000(puVar14);\n            ppuVar21 = (undefined1 **)0x0;\n            if (cVar12 != '\0') {\n              ppuVar21 = local_58;\n            }\n            plVar19 = (long *)FUN_0019b3d0(puVar14 + 5,puVar14,0,local_60,(long)local_64,ppuVar21);\n          }\n          if (*(long *)(PTR_DAT_003be6b0 + 0x10) == 0) {\n                    \n            FUN_0016cdf0("../../gold/parameters.h",0x5c,"options");\n          }\n          lVar3 = *(long *)(*(long *)(PTR_DAT_003be6b0 + 0x10) + 0x9058);\n          if ((lVar3 != 0) && (lVar16 = FUN_001f1940(lVar3,puVar14,0,lVar16,plVar19), lVar16 != 0))\n          {\n            if (plVar19 != (long *)0x0) {\n              (**(code **)(*plVar19 + 8))(plVar19);\n            }\n            if (*(long *)(lVar16 + 0x28) != 0) {\n              FUN_0016ae30(*(long *)(lVar16 + 0x28) + 0x28,param_1);\n            }\n            plVar19 = *(long **)(param_1 + 0x78);\n            if (plVar19 == (long *)0x0) {\n              puVar14 = (undefined8 *)FUN_00275550(0x80);\n              uVar2 = *(undefined8 *)(param_1 + 0x68);\n              uVar17 = *(undefined8 *)(param_1 + 0x48);\n              uVar4 = *(undefined8 *)(param_1 + 0x40);\n              uVar5 = *(undefined8 *)(param_1 + 0x38);\n              *puVar14 = &PTR_FUN_003acf00;\n              uVar6 = *(undefined8 *)(param_1 + 0x88);\n              uVar7 = *(undefined8 *)(param_1 + 0x80);\n              puVar14[9] = uVar17;\n              puVar14[10] = uVar2;\n              puVar14[1] = 0;\n              puVar14[2] = puVar14 + 4;\n              puVar14[3] = 0;\n              *(undefined1 *)(puVar14 + 4) = 0;\n              *(undefined1 *)(puVar14 + 6) = 0;\n              puVar14[7] = uVar5;\n              puVar14[8] = uVar4;\n              puVar14[0xb] = lVar16;\n              puVar14[0xc] = 0;\n              puVar14[0xd] = 0;\n              puVar14[0xe] = uVar7;\n              puVar14[0xf] = uVar6;\n              FUN_002300a0(param_2,puVar14);\n              return uVar13;\n            }\n            plVar19[1] = 0;\n            *plVar19 = lVar16;\n            return uVar13;\n          }\n          if (bVar11 == 0) {\n            puVar18 = (undefined8 *)FUN_00275550(0x90);\n            uVar2 = *(undefined8 *)(param_1 + 0x88);\n            uVar17 = *(undefined8 *)(param_1 + 0x80);\n            uVar4 = *(undefined8 *)(param_1 + 0x68);\n            uVar5 = *(undefined8 *)(param_1 + 0x70);\n            *(undefined1 *)(puVar18 + 4) = 0;\n            uVar6 = *(undefined8 *)(param_1 + 0x60);\n            uVar7 = *(undefined8 *)(param_1 + 0x38);\n            puVar18[2] = puVar18 + 4;\n            uVar1 = *(undefined4 *)(param_1 + 0x58);\n            uVar8 = *(undefined8 *)(param_1 + 0x50);\n            puVar18[0xd] = uVar5;\n            uVar5 = *(undefined8 *)(param_1 + 0x48);\n            uVar9 = *(undefined8 *)(param_1 + 0x40);\n            puVar18[0xe] = uVar4;\n            puVar18[1] = 0;\n            puVar18[3] = 0;\n            *(undefined1 *)(puVar18 + 6) = 0;\n            *puVar18 = &PTR_FUN_003ad080;\n            puVar18[7] = uVar9;\n            puVar18[8] = uVar5;\n            puVar18[9] = uVar8;\n            *(undefined4 *)(puVar18 + 10) = uVar1;\n            puVar18[0xb] = uVar7;\n            puVar18[0xc] = uVar6;\n            puVar18[0xf] = puVar14;\n            puVar18[0x10] = uVar17;\n            puVar18[0x11] = uVar2;\n            FUN_00230080(param_2,puVar18);\n            return uVar13;\n          }\n          if (plVar19 == (long *)0x0) {\n            if ((char)local_58[0] == '\0') {\n              return 0;\n            }\n            puVar18 = puVar14 + 5;\n            FUN_001f51c0(*(undefined8 *)(param_1 + 0x68),puVar14);\n            FUN_0016ad00(puVar18);\n            FUN_0016ae30(puVar18,param_1);\n            FUN_0016b0b0(puVar18);\n            if (puVar14 + 3 != (undefined8 *)puVar14[1]) {\n              FUN_00276d20();\n            }\n            thunk_FUN_00276d20(puVar14,0xe8);\n            *(int *)(param_1 + 0x58) = *(int *)(param_1 + 0x58) + 1;\n            uVar13 = FUN_001f5c10(param_1,param_2);\n            return uVar13;\n          }\n          puVar18 = (undefined8 *)FUN_00275550(0x80);\n          *puVar18 = 0;\n          puVar18[1] = 0;\n          puVar18[3] = 0;\n          puVar18[6] = 0;\n          puVar18[8] = 0;\n          puVar18[10] = 0;\n          puVar18[0xd] = 0;\n          (**(code **)(*plVar19 + 0x40))(plVar19,puVar18);\n          FUN_0016ae30(puVar14 + 5,param_1);\n          puVar14 = *(undefined8 **)(param_1 + 0x78);\n          if (puVar14 == (undefined8 *)0x0) {\n            puVar14 = (undefined8 *)FUN_00275550(0x80);\n            uVar2 = *(undefined8 *)(param_1 + 0x68);\n            uVar17 = *(undefined8 *)(param_1 + 0x48);\n            uVar4 = *(undefined8 *)(param_1 + 0x40);\n            uVar5 = *(undefined8 *)(param_1 + 0x38);\n            puVar14[0xd] = puVar18;\n            uVar6 = *(undefined8 *)(param_1 + 0x88);\n            uVar7 = *(undefined8 *)(param_1 + 0x80);\n            puVar14[2] = puVar14 + 4;\n            puVar14[9] = uVar17;\n            puVar14[10] = uVar2;\n            puVar14[1] = 0;\n            puVar14[3] = 0;\n            *(undefined1 *)(puVar14 + 4) = 0;\n            *(undefined1 *)(puVar14 + 6) = 0;\n            *puVar14 = &PTR_FUN_003acf00;\n            puVar14[7] = uVar5;\n            puVar14[8] = uVar4;\n            puVar14[0xb] = plVar19;\n            puVar14[0xc] = 0;\n            puVar14[0xe] = uVar7;\n            puVar14[0xf] = uVar6;\n            FUN_002300a0(param_2,puVar14);\n            return (uint)bVar11;\n          }\n          pbVar10 = *(byte **)(param_1 + 0x68);\n          puVar14[1] = puVar18;\n          *puVar14 = plVar19;\n          bVar11 = *pbVar10;\n          if (bVar11 != 0) {\n            *(undefined4 *)(puVar14 + 2) = *(undefined4 *)(pbVar10 + 100);\n            return (uint)bVar11;\n          }\n        }\n        else {\n          bVar11 = **(byte **)(param_1 + 0x68);\n          if (bVar11 != 0) {\n            __s = *(char **)(*(byte **)(param_1 + 0x68) + 8);\n            pcVar20 = (char *)0xffffffffffffffff;\n            local_58[0] = local_48;\n            if (__s != (char *)0x0) {\n              sVar15 = strlen(__s);\n              pcVar20 = __s + sVar15;\n            }\n            FUN_0015cbe0(local_58,__s,pcVar20);\n                    \n            lVar16 = FUN_00275550(0x178);\n                    \n            FUN_00234b40(lVar16,local_58,puVar14,\n                         lVar3 == s__<thin>__<arch>_N4gold7ArchiveE_00322e50._0_8_,\n                         *(undefined8 *)(param_1 + 0x50),param_1);\n            if (local_58[0] != local_48) {\n              FUN_00276d20();\n            }\n            FUN_00235c40(lVar16);\n            FUN_0016ae30(*(long *)(lVar16 + 0x38) + 0x28,param_1);\n            puVar14 = (undefined8 *)FUN_00275550(0x90);\n            uVar2 = *(undefined8 *)(param_1 + 0x88);\n            uVar17 = *(undefined8 *)(param_1 + 0x80);\n            uVar4 = *(undefined8 *)(param_1 + 0x70);\n            uVar5 = *(undefined8 *)(param_1 + 0x68);\n            *(undefined1 *)(puVar14 + 4) = 0;\n            uVar6 = *(undefined8 *)(param_1 + 0x60);\n            uVar1 = *(undefined4 *)(param_1 + 0x58);\n            puVar14[2] = puVar14 + 4;\n            uVar7 = *(undefined8 *)(param_1 + 0x50);\n            uVar8 = *(undefined8 *)(param_1 + 0x38);\n            puVar14[0xd] = uVar5;\n            uVar5 = *(undefined8 *)(param_1 + 0x48);\n            uVar9 = *(undefined8 *)(param_1 + 0x40);\n            puVar14[0xf] = uVar4;\n            puVar14[1] = 0;\n            puVar14[3] = 0;\n            *(undefined1 *)(puVar14 + 6) = 0;\n            *puVar14 = &PTR_FUN_003ae430;\n            puVar14[7] = uVar9;\n            puVar14[8] = uVar5;\n            puVar14[9] = uVar8;\n            puVar14[10] = uVar7;\n            *(undefined4 *)(puVar14 + 0xb) = uVar1;\n            puVar14[0xc] = uVar6;\n            puVar14[0xe] = lVar16;\n            puVar14[0x10] = uVar17;\n            puVar14[0x11] = uVar2;\n            FUN_002300a0(param_2,puVar14);\n            return (uint)bVar11;\n          }\n        }\n                    \n        FUN_0016cdf0("../../gold/options.h",0x828,&DAT_0031b73b);\n      }\n      uVar2 = puVar14[5];\n      uVar17 = gettext("%s: file is empty");\n      FUN_001690a0(uVar17,uVar2);\n    }" if (parenthesized_expression "((char)uVar13 != '\0')" ( (binary_expression "(char)uVar13 != '\0'" (cast_expression "(char)uVar13" ( (type_descriptor "char" primitive_type) ) identifier) != (char_literal "'\0'" ' escape_sequence ')) )) (compound_statement "{\n      lVar16 = puVar14[0xb];\n      if (lVar16 != 0) {\n        bVar11 = FUN_0019b230(puVar14,0,&local_60,&local_64);\n        if ((local_64 < 8) ||\n           ((lVar3 = *local_60, lVar3 != s__<thin>__<arch>_N4gold7ArchiveE_00322e50._0_8_ &&\n            (s__<thin>__<arch>_N4gold7ArchiveE_00322e50._8_8_ != lVar3)))) {\n          plVar19 = (long *)0x0;\n          if (bVar11 != 0) {\n            local_58[0] = (undefined1 *)((ulong)local_58[0] & 0xffffffffffffff00);\n            cVar12 = FUN_0016b000(puVar14);\n            ppuVar21 = (undefined1 **)0x0;\n            if (cVar12 != '\0') {\n              ppuVar21 = local_58;\n            }\n            plVar19 = (long *)FUN_0019b3d0(puVar14 + 5,puVar14,0,local_60,(long)local_64,ppuVar21);\n          }\n          if (*(long *)(PTR_DAT_003be6b0 + 0x10) == 0) {\n                    \n            FUN_0016cdf0("../../gold/parameters.h",0x5c,"options");\n          }\n          lVar3 = *(long *)(*(long *)(PTR_DAT_003be6b0 + 0x10) + 0x9058);\n          if ((lVar3 != 0) && (lVar16 = FUN_001f1940(lVar3,puVar14,0,lVar16,plVar19), lVar16 != 0))\n          {\n            if (plVar19 != (long *)0x0) {\n              (**(code **)(*plVar19 + 8))(plVar19);\n            }\n            if (*(long *)(lVar16 + 0x28) != 0) {\n              FUN_0016ae30(*(long *)(lVar16 + 0x28) + 0x28,param_1);\n            }\n            plVar19 = *(long **)(param_1 + 0x78);\n            if (plVar19 == (long *)0x0) {\n              puVar14 = (undefined8 *)FUN_00275550(0x80);\n              uVar2 = *(undefined8 *)(param_1 + 0x68);\n              uVar17 = *(undefined8 *)(param_1 + 0x48);\n              uVar4 = *(undefined8 *)(param_1 + 0x40);\n              uVar5 = *(undefined8 *)(param_1 + 0x38);\n              *puVar14 = &PTR_FUN_003acf00;\n              uVar6 = *(undefined8 *)(param_1 + 0x88);\n              uVar7 = *(undefined8 *)(param_1 + 0x80);\n              puVar14[9] = uVar17;\n              puVar14[10] = uVar2;\n              puVar14[1] = 0;\n              puVar14[2] = puVar14 + 4;\n              puVar14[3] = 0;\n              *(undefined1 *)(puVar14 + 4) = 0;\n              *(undefined1 *)(puVar14 + 6) = 0;\n              puVar14[7] = uVar5;\n              puVar14[8] = uVar4;\n              puVar14[0xb] = lVar16;\n              puVar14[0xc] = 0;\n              puVar14[0xd] = 0;\n              puVar14[0xe] = uVar7;\n              puVar14[0xf] = uVar6;\n              FUN_002300a0(param_2,puVar14);\n              return uVar13;\n            }\n            plVar19[1] = 0;\n            *plVar19 = lVar16;\n            return uVar13;\n          }\n          if (bVar11 == 0) {\n            puVar18 = (undefined8 *)FUN_00275550(0x90);\n            uVar2 = *(undefined8 *)(param_1 + 0x88);\n            uVar17 = *(undefined8 *)(param_1 + 0x80);\n            uVar4 = *(undefined8 *)(param_1 + 0x68);\n            uVar5 = *(undefined8 *)(param_1 + 0x70);\n            *(undefined1 *)(puVar18 + 4) = 0;\n            uVar6 = *(undefined8 *)(param_1 + 0x60);\n            uVar7 = *(undefined8 *)(param_1 + 0x38);\n            puVar18[2] = puVar18 + 4;\n            uVar1 = *(undefined4 *)(param_1 + 0x58);\n            uVar8 = *(undefined8 *)(param_1 + 0x50);\n            puVar18[0xd] = uVar5;\n            uVar5 = *(undefined8 *)(param_1 + 0x48);\n            uVar9 = *(undefined8 *)(param_1 + 0x40);\n            puVar18[0xe] = uVar4;\n            puVar18[1] = 0;\n            puVar18[3] = 0;\n            *(undefined1 *)(puVar18 + 6) = 0;\n            *puVar18 = &PTR_FUN_003ad080;\n            puVar18[7] = uVar9;\n            puVar18[8] = uVar5;\n            puVar18[9] = uVar8;\n            *(undefined4 *)(puVar18 + 10) = uVar1;\n            puVar18[0xb] = uVar7;\n            puVar18[0xc] = uVar6;\n            puVar18[0xf] = puVar14;\n            puVar18[0x10] = uVar17;\n            puVar18[0x11] = uVar2;\n            FUN_00230080(param_2,puVar18);\n            return uVar13;\n          }\n          if (plVar19 == (long *)0x0) {\n            if ((char)local_58[0] == '\0') {\n              return 0;\n            }\n            puVar18 = puVar14 + 5;\n            FUN_001f51c0(*(undefined8 *)(param_1 + 0x68),puVar14);\n            FUN_0016ad00(puVar18);\n            FUN_0016ae30(puVar18,param_1);\n            FUN_0016b0b0(puVar18);\n            if (puVar14 + 3 != (undefined8 *)puVar14[1]) {\n              FUN_00276d20();\n            }\n            thunk_FUN_00276d20(puVar14,0xe8);\n            *(int *)(param_1 + 0x58) = *(int *)(param_1 + 0x58) + 1;\n            uVar13 = FUN_001f5c10(param_1,param_2);\n            return uVar13;\n          }\n          puVar18 = (undefined8 *)FUN_00275550(0x80);\n          *puVar18 = 0;\n          puVar18[1] = 0;\n          puVar18[3] = 0;\n          puVar18[6] = 0;\n          puVar18[8] = 0;\n          puVar18[10] = 0;\n          puVar18[0xd] = 0;\n          (**(code **)(*plVar19 + 0x40))(plVar19,puVar18);\n          FUN_0016ae30(puVar14 + 5,param_1);\n          puVar14 = *(undefined8 **)(param_1 + 0x78);\n          if (puVar14 == (undefined8 *)0x0) {\n            puVar14 = (undefined8 *)FUN_00275550(0x80);\n            uVar2 = *(undefined8 *)(param_1 + 0x68);\n            uVar17 = *(undefined8 *)(param_1 + 0x48);\n            uVar4 = *(undefined8 *)(param_1 + 0x40);\n            uVar5 = *(undefined8 *)(param_1 + 0x38);\n            puVar14[0xd] = puVar18;\n            uVar6 = *(undefined8 *)(param_1 + 0x88);\n            uVar7 = *(undefined8 *)(param_1 + 0x80);\n            puVar14[2] = puVar14 + 4;\n            puVar14[9] = uVar17;\n            puVar14[10] = uVar2;\n            puVar14[1] = 0;\n            puVar14[3] = 0;\n            *(undefined1 *)(puVar14 + 4) = 0;\n            *(undefined1 *)(puVar14 + 6) = 0;\n            *puVar14 = &PTR_FUN_003acf00;\n            puVar14[7] = uVar5;\n            puVar14[8] = uVar4;\n            puVar14[0xb] = plVar19;\n            puVar14[0xc] = 0;\n            puVar14[0xe] = uVar7;\n            puVar14[0xf] = uVar6;\n            FUN_002300a0(param_2,puVar14);\n            return (uint)bVar11;\n          }\n          pbVar10 = *(byte **)(param_1 + 0x68);\n          puVar14[1] = puVar18;\n          *puVar14 = plVar19;\n          bVar11 = *pbVar10;\n          if (bVar11 != 0) {\n            *(undefined4 *)(puVar14 + 2) = *(undefined4 *)(pbVar10 + 100);\n            return (uint)bVar11;\n          }\n        }\n        else {\n          bVar11 = **(byte **)(param_1 + 0x68);\n          if (bVar11 != 0) {\n            __s = *(char **)(*(byte **)(param_1 + 0x68) + 8);\n            pcVar20 = (char *)0xffffffffffffffff;\n            local_58[0] = local_48;\n            if (__s != (char *)0x0) {\n              sVar15 = strlen(__s);\n              pcVar20 = __s + sVar15;\n            }\n            FUN_0015cbe0(local_58,__s,pcVar20);\n                    \n            lVar16 = FUN_00275550(0x178);\n                    \n            FUN_00234b40(lVar16,local_58,puVar14,\n                         lVar3 == s__<thin>__<arch>_N4gold7ArchiveE_00322e50._0_8_,\n                         *(undefined8 *)(param_1 + 0x50),param_1);\n            if (local_58[0] != local_48) {\n              FUN_00276d20();\n            }\n            FUN_00235c40(lVar16);\n            FUN_0016ae30(*(long *)(lVar16 + 0x38) + 0x28,param_1);\n            puVar14 = (undefined8 *)FUN_00275550(0x90);\n            uVar2 = *(undefined8 *)(param_1 + 0x88);\n            uVar17 = *(undefined8 *)(param_1 + 0x80);\n            uVar4 = *(undefined8 *)(param_1 + 0x70);\n            uVar5 = *(undefined8 *)(param_1 + 0x68);\n            *(undefined1 *)(puVar14 + 4) = 0;\n            uVar6 = *(undefined8 *)(param_1 + 0x60);\n            uVar1 = *(undefined4 *)(param_1 + 0x58);\n            puVar14[2] = puVar14 + 4;\n            uVar7 = *(undefined8 *)(param_1 + 0x50);\n            uVar8 = *(undefined8 *)(param_1 + 0x38);\n            puVar14[0xd] = uVar5;\n            uVar5 = *(undefined8 *)(param_1 + 0x48);\n            uVar9 = *(undefined8 *)(param_1 + 0x40);\n            puVar14[0xf] = uVar4;\n            puVar14[1] = 0;\n            puVar14[3] = 0;\n            *(undefined1 *)(puVar14 + 6) = 0;\n            *puVar14 = &PTR_FUN_003ae430;\n            puVar14[7] = uVar9;\n            puVar14[8] = uVar5;\n            puVar14[9] = uVar8;\n            puVar14[10] = uVar7;\n            *(undefined4 *)(puVar14 + 0xb) = uVar1;\n            puVar14[0xc] = uVar6;\n            puVar14[0xe] = lVar16;\n            puVar14[0x10] = uVar17;\n            puVar14[0x11] = uVar2;\n            FUN_002300a0(param_2,puVar14);\n            return (uint)bVar11;\n          }\n        }\n                    \n        FUN_0016cdf0("../../gold/options.h",0x828,&DAT_0031b73b);\n      }\n      uVar2 = puVar14[5];\n      uVar17 = gettext("%s: file is empty");\n      FUN_001690a0(uVar17,uVar2);\n    }" { (expression_statement "lVar16 = puVar14[0xb];" (assignment_expression "lVar16 = puVar14[0xb]" identifier = (subscript_expression "puVar14[0xb]" identifier [ number_literal ])) ;) (if_statement "if (lVar16 != 0) {\n        bVar11 = FUN_0019b230(puVar14,0,&local_60,&local_64);\n        if ((local_64 < 8) ||\n           ((lVar3 = *local_60, lVar3 != s__<thin>__<arch>_N4gold7ArchiveE_00322e50._0_8_ &&\n            (s__<thin>__<arch>_N4gold7ArchiveE_00322e50._8_8_ != lVar3)))) {\n          plVar19 = (long *)0x0;\n          if (bVar11 != 0) {\n            local_58[0] = (undefined1 *)((ulong)local_58[0] & 0xffffffffffffff00);\n            cVar12 = FUN_0016b000(puVar14);\n            ppuVar21 = (undefined1 **)0x0;\n            if (cVar12 != '\0') {\n              ppuVar21 = local_58;\n            }\n            plVar19 = (long *)FUN_0019b3d0(puVar14 + 5,puVar14,0,local_60,(long)local_64,ppuVar21);\n          }\n          if (*(long *)(PTR_DAT_003be6b0 + 0x10) == 0) {\n                    \n            FUN_0016cdf0("../../gold/parameters.h",0x5c,"options");\n          }\n          lVar3 = *(long *)(*(long *)(PTR_DAT_003be6b0 + 0x10) + 0x9058);\n          if ((lVar3 != 0) && (lVar16 = FUN_001f1940(lVar3,puVar14,0,lVar16,plVar19), lVar16 != 0))\n          {\n            if (plVar19 != (long *)0x0) {\n              (**(code **)(*plVar19 + 8))(plVar19);\n            }\n            if (*(long *)(lVar16 + 0x28) != 0) {\n              FUN_0016ae30(*(long *)(lVar16 + 0x28) + 0x28,param_1);\n            }\n            plVar19 = *(long **)(param_1 + 0x78);\n            if (plVar19 == (long *)0x0) {\n              puVar14 = (undefined8 *)FUN_00275550(0x80);\n              uVar2 = *(undefined8 *)(param_1 + 0x68);\n              uVar17 = *(undefined8 *)(param_1 + 0x48);\n              uVar4 = *(undefined8 *)(param_1 + 0x40);\n              uVar5 = *(undefined8 *)(param_1 + 0x38);\n              *puVar14 = &PTR_FUN_003acf00;\n              uVar6 = *(undefined8 *)(param_1 + 0x88);\n              uVar7 = *(undefined8 *)(param_1 + 0x80);\n              puVar14[9] = uVar17;\n              puVar14[10] = uVar2;\n              puVar14[1] = 0;\n              puVar14[2] = puVar14 + 4;\n              puVar14[3] = 0;\n              *(undefined1 *)(puVar14 + 4) = 0;\n              *(undefined1 *)(puVar14 + 6) = 0;\n              puVar14[7] = uVar5;\n              puVar14[8] = uVar4;\n              puVar14[0xb] = lVar16;\n              puVar14[0xc] = 0;\n              puVar14[0xd] = 0;\n              puVar14[0xe] = uVar7;\n              puVar14[0xf] = uVar6;\n              FUN_002300a0(param_2,puVar14);\n              return uVar13;\n            }\n            plVar19[1] = 0;\n            *plVar19 = lVar16;\n            return uVar13;\n          }\n          if (bVar11 == 0) {\n            puVar18 = (undefined8 *)FUN_00275550(0x90);\n            uVar2 = *(undefined8 *)(param_1 + 0x88);\n            uVar17 = *(undefined8 *)(param_1 + 0x80);\n            uVar4 = *(undefined8 *)(param_1 + 0x68);\n            uVar5 = *(undefined8 *)(param_1 + 0x70);\n            *(undefined1 *)(puVar18 + 4) = 0;\n            uVar6 = *(undefined8 *)(param_1 + 0x60);\n            uVar7 = *(undefined8 *)(param_1 + 0x38);\n            puVar18[2] = puVar18 + 4;\n            uVar1 = *(undefined4 *)(param_1 + 0x58);\n            uVar8 = *(undefined8 *)(param_1 + 0x50);\n            puVar18[0xd] = uVar5;\n            uVar5 = *(undefined8 *)(param_1 + 0x48);\n            uVar9 = *(undefined8 *)(param_1 + 0x40);\n            puVar18[0xe] = uVar4;\n            puVar18[1] = 0;\n            puVar18[3] = 0;\n            *(undefined1 *)(puVar18 + 6) = 0;\n            *puVar18 = &PTR_FUN_003ad080;\n            puVar18[7] = uVar9;\n            puVar18[8] = uVar5;\n            puVar18[9] = uVar8;\n            *(undefined4 *)(puVar18 + 10) = uVar1;\n            puVar18[0xb] = uVar7;\n            puVar18[0xc] = uVar6;\n            puVar18[0xf] = puVar14;\n            puVar18[0x10] = uVar17;\n            puVar18[0x11] = uVar2;\n            FUN_00230080(param_2,puVar18);\n            return uVar13;\n          }\n          if (plVar19 == (long *)0x0) {\n            if ((char)local_58[0] == '\0') {\n              return 0;\n            }\n            puVar18 = puVar14 + 5;\n            FUN_001f51c0(*(undefined8 *)(param_1 + 0x68),puVar14);\n            FUN_0016ad00(puVar18);\n            FUN_0016ae30(puVar18,param_1);\n            FUN_0016b0b0(puVar18);\n            if (puVar14 + 3 != (undefined8 *)puVar14[1]) {\n              FUN_00276d20();\n            }\n            thunk_FUN_00276d20(puVar14,0xe8);\n            *(int *)(param_1 + 0x58) = *(int *)(param_1 + 0x58) + 1;\n            uVar13 = FUN_001f5c10(param_1,param_2);\n            return uVar13;\n          }\n          puVar18 = (undefined8 *)FUN_00275550(0x80);\n          *puVar18 = 0;\n          puVar18[1] = 0;\n          puVar18[3] = 0;\n          puVar18[6] = 0;\n          puVar18[8] = 0;\n          puVar18[10] = 0;\n          puVar18[0xd] = 0;\n          (**(code **)(*plVar19 + 0x40))(plVar19,puVar18);\n          FUN_0016ae30(puVar14 + 5,param_1);\n          puVar14 = *(undefined8 **)(param_1 + 0x78);\n          if (puVar14 == (undefined8 *)0x0) {\n            puVar14 = (undefined8 *)FUN_00275550(0x80);\n            uVar2 = *(undefined8 *)(param_1 + 0x68);\n            uVar17 = *(undefined8 *)(param_1 + 0x48);\n            uVar4 = *(undefined8 *)(param_1 + 0x40);\n            uVar5 = *(undefined8 *)(param_1 + 0x38);\n            puVar14[0xd] = puVar18;\n            uVar6 = *(undefined8 *)(param_1 + 0x88);\n            uVar7 = *(undefined8 *)(param_1 + 0x80);\n            puVar14[2] = puVar14 + 4;\n            puVar14[9] = uVar17;\n            puVar14[10] = uVar2;\n            puVar14[1] = 0;\n            puVar14[3] = 0;\n            *(undefined1 *)(puVar14 + 4) = 0;\n            *(undefined1 *)(puVar14 + 6) = 0;\n            *puVar14 = &PTR_FUN_003acf00;\n            puVar14[7] = uVar5;\n            puVar14[8] = uVar4;\n            puVar14[0xb] = plVar19;\n            puVar14[0xc] = 0;\n            puVar14[0xe] = uVar7;\n            puVar14[0xf] = uVar6;\n            FUN_002300a0(param_2,puVar14);\n            return (uint)bVar11;\n          }\n          pbVar10 = *(byte **)(param_1 + 0x68);\n          puVar14[1] = puVar18;\n          *puVar14 = plVar19;\n          bVar11 = *pbVar10;\n          if (bVar11 != 0) {\n            *(undefined4 *)(puVar14 + 2) = *(undefined4 *)(pbVar10 + 100);\n            return (uint)bVar11;\n          }\n        }\n        else {\n          bVar11 = **(byte **)(param_1 + 0x68);\n          if (bVar11 != 0) {\n            __s = *(char **)(*(byte **)(param_1 + 0x68) + 8);\n            pcVar20 = (char *)0xffffffffffffffff;\n            local_58[0] = local_48;\n            if (__s != (char *)0x0) {\n              sVar15 = strlen(__s);\n              pcVar20 = __s + sVar15;\n            }\n            FUN_0015cbe0(local_58,__s,pcVar20);\n                    \n            lVar16 = FUN_00275550(0x178);\n                    \n            FUN_00234b40(lVar16,local_58,puVar14,\n                         lVar3 == s__<thin>__<arch>_N4gold7ArchiveE_00322e50._0_8_,\n                         *(undefined8 *)(param_1 + 0x50),param_1);\n            if (local_58[0] != local_48) {\n              FUN_00276d20();\n            }\n            FUN_00235c40(lVar16);\n            FUN_0016ae30(*(long *)(lVar16 + 0x38) + 0x28,param_1);\n            puVar14 = (undefined8 *)FUN_00275550(0x90);\n            uVar2 = *(undefined8 *)(param_1 + 0x88);\n            uVar17 = *(undefined8 *)(param_1 + 0x80);\n            uVar4 = *(undefined8 *)(param_1 + 0x70);\n            uVar5 = *(undefined8 *)(param_1 + 0x68);\n            *(undefined1 *)(puVar14 + 4) = 0;\n            uVar6 = *(undefined8 *)(param_1 + 0x60);\n            uVar1 = *(undefined4 *)(param_1 + 0x58);\n            puVar14[2] = puVar14 + 4;\n            uVar7 = *(undefined8 *)(param_1 + 0x50);\n            uVar8 = *(undefined8 *)(param_1 + 0x38);\n            puVar14[0xd] = uVar5;\n            uVar5 = *(undefined8 *)(param_1 + 0x48);\n            uVar9 = *(undefined8 *)(param_1 + 0x40);\n            puVar14[0xf] = uVar4;\n            puVar14[1] = 0;\n            puVar14[3] = 0;\n            *(undefined1 *)(puVar14 + 6) = 0;\n            *puVar14 = &PTR_FUN_003ae430;\n            puVar14[7] = uVar9;\n            puVar14[8] = uVar5;\n            puVar14[9] = uVar8;\n            puVar14[10] = uVar7;\n            *(undefined4 *)(puVar14 + 0xb) = uVar1;\n            puVar14[0xc] = uVar6;\n            puVar14[0xe] = lVar16;\n            puVar14[0x10] = uVar17;\n            puVar14[0x11] = uVar2;\n            FUN_002300a0(param_2,puVar14);\n            return (uint)bVar11;\n          }\n        }\n                    \n        FUN_0016cdf0("../../gold/options.h",0x828,&DAT_0031b73b);\n      }" if (parenthesized_expression "(lVar16 != 0)" ( (binary_expression "lVar16 != 0" identifier != number_literal) )) (compound_statement "{\n        bVar11 = FUN_0019b230(puVar14,0,&local_60,&local_64);\n        if ((local_64 < 8) ||\n           ((lVar3 = *local_60, lVar3 != s__<thin>__<arch>_N4gold7ArchiveE_00322e50._0_8_ &&\n            (s__<thin>__<arch>_N4gold7ArchiveE_00322e50._8_8_ != lVar3)))) {\n          plVar19 = (long *)0x0;\n          if (bVar11 != 0) {\n            local_58[0] = (undefined1 *)((ulong)local_58[0] & 0xffffffffffffff00);\n            cVar12 = FUN_0016b000(puVar14);\n            ppuVar21 = (undefined1 **)0x0;\n            if (cVar12 != '\0') {\n              ppuVar21 = local_58;\n            }\n            plVar19 = (long *)FUN_0019b3d0(puVar14 + 5,puVar14,0,local_60,(long)local_64,ppuVar21);\n          }\n          if (*(long *)(PTR_DAT_003be6b0 + 0x10) == 0) {\n                    \n            FUN_0016cdf0("../../gold/parameters.h",0x5c,"options");\n          }\n          lVar3 = *(long *)(*(long *)(PTR_DAT_003be6b0 + 0x10) + 0x9058);\n          if ((lVar3 != 0) && (lVar16 = FUN_001f1940(lVar3,puVar14,0,lVar16,plVar19), lVar16 != 0))\n          {\n            if (plVar19 != (long *)0x0) {\n              (**(code **)(*plVar19 + 8))(plVar19);\n            }\n            if (*(long *)(lVar16 + 0x28) != 0) {\n              FUN_0016ae30(*(long *)(lVar16 + 0x28) + 0x28,param_1);\n            }\n            plVar19 = *(long **)(param_1 + 0x78);\n            if (plVar19 == (long *)0x0) {\n              puVar14 = (undefined8 *)FUN_00275550(0x80);\n              uVar2 = *(undefined8 *)(param_1 + 0x68);\n              uVar17 = *(undefined8 *)(param_1 + 0x48);\n              uVar4 = *(undefined8 *)(param_1 + 0x40);\n              uVar5 = *(undefined8 *)(param_1 + 0x38);\n              *puVar14 = &PTR_FUN_003acf00;\n              uVar6 = *(undefined8 *)(param_1 + 0x88);\n              uVar7 = *(undefined8 *)(param_1 + 0x80);\n              puVar14[9] = uVar17;\n              puVar14[10] = uVar2;\n              puVar14[1] = 0;\n              puVar14[2] = puVar14 + 4;\n              puVar14[3] = 0;\n              *(undefined1 *)(puVar14 + 4) = 0;\n              *(undefined1 *)(puVar14 + 6) = 0;\n              puVar14[7] = uVar5;\n              puVar14[8] = uVar4;\n              puVar14[0xb] = lVar16;\n              puVar14[0xc] = 0;\n              puVar14[0xd] = 0;\n              puVar14[0xe] = uVar7;\n              puVar14[0xf] = uVar6;\n              FUN_002300a0(param_2,puVar14);\n              return uVar13;\n            }\n            plVar19[1] = 0;\n            *plVar19 = lVar16;\n            return uVar13;\n          }\n          if (bVar11 == 0) {\n            puVar18 = (undefined8 *)FUN_00275550(0x90);\n            uVar2 = *(undefined8 *)(param_1 + 0x88);\n            uVar17 = *(undefined8 *)(param_1 + 0x80);\n            uVar4 = *(undefined8 *)(param_1 + 0x68);\n            uVar5 = *(undefined8 *)(param_1 + 0x70);\n            *(undefined1 *)(puVar18 + 4) = 0;\n            uVar6 = *(undefined8 *)(param_1 + 0x60);\n            uVar7 = *(undefined8 *)(param_1 + 0x38);\n            puVar18[2] = puVar18 + 4;\n            uVar1 = *(undefined4 *)(param_1 + 0x58);\n            uVar8 = *(undefined8 *)(param_1 + 0x50);\n            puVar18[0xd] = uVar5;\n            uVar5 = *(undefined8 *)(param_1 + 0x48);\n            uVar9 = *(undefined8 *)(param_1 + 0x40);\n            puVar18[0xe] = uVar4;\n            puVar18[1] = 0;\n            puVar18[3] = 0;\n            *(undefined1 *)(puVar18 + 6) = 0;\n            *puVar18 = &PTR_FUN_003ad080;\n            puVar18[7] = uVar9;\n            puVar18[8] = uVar5;\n            puVar18[9] = uVar8;\n            *(undefined4 *)(puVar18 + 10) = uVar1;\n            puVar18[0xb] = uVar7;\n            puVar18[0xc] = uVar6;\n            puVar18[0xf] = puVar14;\n            puVar18[0x10] = uVar17;\n            puVar18[0x11] = uVar2;\n            FUN_00230080(param_2,puVar18);\n            return uVar13;\n          }\n          if (plVar19 == (long *)0x0) {\n            if ((char)local_58[0] == '\0') {\n              return 0;\n            }\n            puVar18 = puVar14 + 5;\n            FUN_001f51c0(*(undefined8 *)(param_1 + 0x68),puVar14);\n            FUN_0016ad00(puVar18);\n            FUN_0016ae30(puVar18,param_1);\n            FUN_0016b0b0(puVar18);\n            if (puVar14 + 3 != (undefined8 *)puVar14[1]) {\n              FUN_00276d20();\n            }\n            thunk_FUN_00276d20(puVar14,0xe8);\n            *(int *)(param_1 + 0x58) = *(int *)(param_1 + 0x58) + 1;\n            uVar13 = FUN_001f5c10(param_1,param_2);\n            return uVar13;\n          }\n          puVar18 = (undefined8 *)FUN_00275550(0x80);\n          *puVar18 = 0;\n          puVar18[1] = 0;\n          puVar18[3] = 0;\n          puVar18[6] = 0;\n          puVar18[8] = 0;\n          puVar18[10] = 0;\n          puVar18[0xd] = 0;\n          (**(code **)(*plVar19 + 0x40))(plVar19,puVar18);\n          FUN_0016ae30(puVar14 + 5,param_1);\n          puVar14 = *(undefined8 **)(param_1 + 0x78);\n          if (puVar14 == (undefined8 *)0x0) {\n            puVar14 = (undefined8 *)FUN_00275550(0x80);\n            uVar2 = *(undefined8 *)(param_1 + 0x68);\n            uVar17 = *(undefined8 *)(param_1 + 0x48);\n            uVar4 = *(undefined8 *)(param_1 + 0x40);\n            uVar5 = *(undefined8 *)(param_1 + 0x38);\n            puVar14[0xd] = puVar18;\n            uVar6 = *(undefined8 *)(param_1 + 0x88);\n            uVar7 = *(undefined8 *)(param_1 + 0x80);\n            puVar14[2] = puVar14 + 4;\n            puVar14[9] = uVar17;\n            puVar14[10] = uVar2;\n            puVar14[1] = 0;\n            puVar14[3] = 0;\n            *(undefined1 *)(puVar14 + 4) = 0;\n            *(undefined1 *)(puVar14 + 6) = 0;\n            *puVar14 = &PTR_FUN_003acf00;\n            puVar14[7] = uVar5;\n            puVar14[8] = uVar4;\n            puVar14[0xb] = plVar19;\n            puVar14[0xc] = 0;\n            puVar14[0xe] = uVar7;\n            puVar14[0xf] = uVar6;\n            FUN_002300a0(param_2,puVar14);\n            return (uint)bVar11;\n          }\n          pbVar10 = *(byte **)(param_1 + 0x68);\n          puVar14[1] = puVar18;\n          *puVar14 = plVar19;\n          bVar11 = *pbVar10;\n          if (bVar11 != 0) {\n            *(undefined4 *)(puVar14 + 2) = *(undefined4 *)(pbVar10 + 100);\n            return (uint)bVar11;\n          }\n        }\n        else {\n          bVar11 = **(byte **)(param_1 + 0x68);\n          if (bVar11 != 0) {\n            __s = *(char **)(*(byte **)(param_1 + 0x68) + 8);\n            pcVar20 = (char *)0xffffffffffffffff;\n            local_58[0] = local_48;\n            if (__s != (char *)0x0) {\n              sVar15 = strlen(__s);\n              pcVar20 = __s + sVar15;\n            }\n            FUN_0015cbe0(local_58,__s,pcVar20);\n                    \n            lVar16 = FUN_00275550(0x178);\n                    \n            FUN_00234b40(lVar16,local_58,puVar14,\n                         lVar3 == s__<thin>__<arch>_N4gold7ArchiveE_00322e50._0_8_,\n                         *(undefined8 *)(param_1 + 0x50),param_1);\n            if (local_58[0] != local_48) {\n              FUN_00276d20();\n            }\n            FUN_00235c40(lVar16);\n            FUN_0016ae30(*(long *)(lVar16 + 0x38) + 0x28,param_1);\n            puVar14 = (undefined8 *)FUN_00275550(0x90);\n            uVar2 = *(undefined8 *)(param_1 + 0x88);\n            uVar17 = *(undefined8 *)(param_1 + 0x80);\n            uVar4 = *(undefined8 *)(param_1 + 0x70);\n            uVar5 = *(undefined8 *)(param_1 + 0x68);\n            *(undefined1 *)(puVar14 + 4) = 0;\n            uVar6 = *(undefined8 *)(param_1 + 0x60);\n            uVar1 = *(undefined4 *)(param_1 + 0x58);\n            puVar14[2] = puVar14 + 4;\n            uVar7 = *(undefined8 *)(param_1 + 0x50);\n            uVar8 = *(undefined8 *)(param_1 + 0x38);\n            puVar14[0xd] = uVar5;\n            uVar5 = *(undefined8 *)(param_1 + 0x48);\n            uVar9 = *(undefined8 *)(param_1 + 0x40);\n            puVar14[0xf] = uVar4;\n            puVar14[1] = 0;\n            puVar14[3] = 0;\n            *(undefined1 *)(puVar14 + 6) = 0;\n            *puVar14 = &PTR_FUN_003ae430;\n            puVar14[7] = uVar9;\n            puVar14[8] = uVar5;\n            puVar14[9] = uVar8;\n            puVar14[10] = uVar7;\n            *(undefined4 *)(puVar14 + 0xb) = uVar1;\n            puVar14[0xc] = uVar6;\n            puVar14[0xe] = lVar16;\n            puVar14[0x10] = uVar17;\n            puVar14[0x11] = uVar2;\n            FUN_002300a0(param_2,puVar14);\n            return (uint)bVar11;\n          }\n        }\n                    \n        FUN_0016cdf0("../../gold/options.h",0x828,&DAT_0031b73b);\n      }" { (expression_statement "bVar11 = FUN_0019b230(puVar14,0,&local_60,&local_64);" (assignment_expression "bVar11 = FUN_0019b230(puVar14,0,&local_60,&local_64)" identifier = (call_expression "FUN_0019b230(puVar14,0,&local_60,&local_64)" identifier (argument_list "(puVar14,0,&local_60,&local_64)" ( identifier , number_literal , (pointer_expression "&local_60" & identifier) , (pointer_expression "&local_64" & identifier) )))) ;) (if_statement "if ((local_64 < 8) ||\n           ((lVar3 = *local_60, lVar3 != s__<thin>__<arch>_N4gold7ArchiveE_00322e50._0_8_ &&\n            (s__<thin>__<arch>_N4gold7ArchiveE_00322e50._8_8_ != lVar3)))) {\n          plVar19 = (long *)0x0;\n          if (bVar11 != 0) {\n            local_58[0] = (undefined1 *)((ulong)local_58[0] & 0xffffffffffffff00);\n            cVar12 = FUN_0016b000(puVar14);\n            ppuVar21 = (undefined1 **)0x0;\n            if (cVar12 != '\0') {\n              ppuVar21 = local_58;\n            }\n            plVar19 = (long *)FUN_0019b3d0(puVar14 + 5,puVar14,0,local_60,(long)local_64,ppuVar21);\n          }\n          if (*(long *)(PTR_DAT_003be6b0 + 0x10) == 0) {\n                    \n            FUN_0016cdf0("../../gold/parameters.h",0x5c,"options");\n          }\n          lVar3 = *(long *)(*(long *)(PTR_DAT_003be6b0 + 0x10) + 0x9058);\n          if ((lVar3 != 0) && (lVar16 = FUN_001f1940(lVar3,puVar14,0,lVar16,plVar19), lVar16 != 0))\n          {\n            if (plVar19 != (long *)0x0) {\n              (**(code **)(*plVar19 + 8))(plVar19);\n            }\n            if (*(long *)(lVar16 + 0x28) != 0) {\n              FUN_0016ae30(*(long *)(lVar16 + 0x28) + 0x28,param_1);\n            }\n            plVar19 = *(long **)(param_1 + 0x78);\n            if (plVar19 == (long *)0x0) {\n              puVar14 = (undefined8 *)FUN_00275550(0x80);\n              uVar2 = *(undefined8 *)(param_1 + 0x68);\n              uVar17 = *(undefined8 *)(param_1 + 0x48);\n              uVar4 = *(undefined8 *)(param_1 + 0x40);\n              uVar5 = *(undefined8 *)(param_1 + 0x38);\n              *puVar14 = &PTR_FUN_003acf00;\n              uVar6 = *(undefined8 *)(param_1 + 0x88);\n              uVar7 = *(undefined8 *)(param_1 + 0x80);\n              puVar14[9] = uVar17;\n              puVar14[10] = uVar2;\n              puVar14[1] = 0;\n              puVar14[2] = puVar14 + 4;\n              puVar14[3] = 0;\n              *(undefined1 *)(puVar14 + 4) = 0;\n              *(undefined1 *)(puVar14 + 6) = 0;\n              puVar14[7] = uVar5;\n              puVar14[8] = uVar4;\n              puVar14[0xb] = lVar16;\n              puVar14[0xc] = 0;\n              puVar14[0xd] = 0;\n              puVar14[0xe] = uVar7;\n              puVar14[0xf] = uVar6;\n              FUN_002300a0(param_2,puVar14);\n              return uVar13;\n            }\n            plVar19[1] = 0;\n            *plVar19 = lVar16;\n            return uVar13;\n          }\n          if (bVar11 == 0) {\n            puVar18 = (undefined8 *)FUN_00275550(0x90);\n            uVar2 = *(undefined8 *)(param_1 + 0x88);\n            uVar17 = *(undefined8 *)(param_1 + 0x80);\n            uVar4 = *(undefined8 *)(param_1 + 0x68);\n            uVar5 = *(undefined8 *)(param_1 + 0x70);\n            *(undefined1 *)(puVar18 + 4) = 0;\n            uVar6 = *(undefined8 *)(param_1 + 0x60);\n            uVar7 = *(undefined8 *)(param_1 + 0x38);\n            puVar18[2] = puVar18 + 4;\n            uVar1 = *(undefined4 *)(param_1 + 0x58);\n            uVar8 = *(undefined8 *)(param_1 + 0x50);\n            puVar18[0xd] = uVar5;\n            uVar5 = *(undefined8 *)(param_1 + 0x48);\n            uVar9 = *(undefined8 *)(param_1 + 0x40);\n            puVar18[0xe] = uVar4;\n            puVar18[1] = 0;\n            puVar18[3] = 0;\n            *(undefined1 *)(puVar18 + 6) = 0;\n            *puVar18 = &PTR_FUN_003ad080;\n            puVar18[7] = uVar9;\n            puVar18[8] = uVar5;\n            puVar18[9] = uVar8;\n            *(undefined4 *)(puVar18 + 10) = uVar1;\n            puVar18[0xb] = uVar7;\n            puVar18[0xc] = uVar6;\n            puVar18[0xf] = puVar14;\n            puVar18[0x10] = uVar17;\n            puVar18[0x11] = uVar2;\n            FUN_00230080(param_2,puVar18);\n            return uVar13;\n          }\n          if (plVar19 == (long *)0x0) {\n            if ((char)local_58[0] == '\0') {\n              return 0;\n            }\n            puVar18 = puVar14 + 5;\n            FUN_001f51c0(*(undefined8 *)(param_1 + 0x68),puVar14);\n            FUN_0016ad00(puVar18);\n            FUN_0016ae30(puVar18,param_1);\n            FUN_0016b0b0(puVar18);\n            if (puVar14 + 3 != (undefined8 *)puVar14[1]) {\n              FUN_00276d20();\n            }\n            thunk_FUN_00276d20(puVar14,0xe8);\n            *(int *)(param_1 + 0x58) = *(int *)(param_1 + 0x58) + 1;\n            uVar13 = FUN_001f5c10(param_1,param_2);\n            return uVar13;\n          }\n          puVar18 = (undefined8 *)FUN_00275550(0x80);\n          *puVar18 = 0;\n          puVar18[1] = 0;\n          puVar18[3] = 0;\n          puVar18[6] = 0;\n          puVar18[8] = 0;\n          puVar18[10] = 0;\n          puVar18[0xd] = 0;\n          (**(code **)(*plVar19 + 0x40))(plVar19,puVar18);\n          FUN_0016ae30(puVar14 + 5,param_1);\n          puVar14 = *(undefined8 **)(param_1 + 0x78);\n          if (puVar14 == (undefined8 *)0x0) {\n            puVar14 = (undefined8 *)FUN_00275550(0x80);\n            uVar2 = *(undefined8 *)(param_1 + 0x68);\n            uVar17 = *(undefined8 *)(param_1 + 0x48);\n            uVar4 = *(undefined8 *)(param_1 + 0x40);\n            uVar5 = *(undefined8 *)(param_1 + 0x38);\n            puVar14[0xd] = puVar18;\n            uVar6 = *(undefined8 *)(param_1 + 0x88);\n            uVar7 = *(undefined8 *)(param_1 + 0x80);\n            puVar14[2] = puVar14 + 4;\n            puVar14[9] = uVar17;\n            puVar14[10] = uVar2;\n            puVar14[1] = 0;\n            puVar14[3] = 0;\n            *(undefined1 *)(puVar14 + 4) = 0;\n            *(undefined1 *)(puVar14 + 6) = 0;\n            *puVar14 = &PTR_FUN_003acf00;\n            puVar14[7] = uVar5;\n            puVar14[8] = uVar4;\n            puVar14[0xb] = plVar19;\n            puVar14[0xc] = 0;\n            puVar14[0xe] = uVar7;\n            puVar14[0xf] = uVar6;\n            FUN_002300a0(param_2,puVar14);\n            return (uint)bVar11;\n          }\n          pbVar10 = *(byte **)(param_1 + 0x68);\n          puVar14[1] = puVar18;\n          *puVar14 = plVar19;\n          bVar11 = *pbVar10;\n          if (bVar11 != 0) {\n            *(undefined4 *)(puVar14 + 2) = *(undefined4 *)(pbVar10 + 100);\n            return (uint)bVar11;\n          }\n        }\n        else {\n          bVar11 = **(byte **)(param_1 + 0x68);\n          if (bVar11 != 0) {\n            __s = *(char **)(*(byte **)(param_1 + 0x68) + 8);\n            pcVar20 = (char *)0xffffffffffffffff;\n            local_58[0] = local_48;\n            if (__s != (char *)0x0) {\n              sVar15 = strlen(__s);\n              pcVar20 = __s + sVar15;\n            }\n            FUN_0015cbe0(local_58,__s,pcVar20);\n                    \n            lVar16 = FUN_00275550(0x178);\n                    \n            FUN_00234b40(lVar16,local_58,puVar14,\n                         lVar3 == s__<thin>__<arch>_N4gold7ArchiveE_00322e50._0_8_,\n                         *(undefined8 *)(param_1 + 0x50),param_1);\n            if (local_58[0] != local_48) {\n              FUN_00276d20();\n            }\n            FUN_00235c40(lVar16);\n            FUN_0016ae30(*(long *)(lVar16 + 0x38) + 0x28,param_1);\n            puVar14 = (undefined8 *)FUN_00275550(0x90);\n            uVar2 = *(undefined8 *)(param_1 + 0x88);\n            uVar17 = *(undefined8 *)(param_1 + 0x80);\n            uVar4 = *(undefined8 *)(param_1 + 0x70);\n            uVar5 = *(undefined8 *)(param_1 + 0x68);\n            *(undefined1 *)(puVar14 + 4) = 0;\n            uVar6 = *(undefined8 *)(param_1 + 0x60);\n            uVar1 = *(undefined4 *)(param_1 + 0x58);\n            puVar14[2] = puVar14 + 4;\n            uVar7 = *(undefined8 *)(param_1 + 0x50);\n            uVar8 = *(undefined8 *)(param_1 + 0x38);\n            puVar14[0xd] = uVar5;\n            uVar5 = *(undefined8 *)(param_1 + 0x48);\n            uVar9 = *(undefined8 *)(param_1 + 0x40);\n            puVar14[0xf] = uVar4;\n            puVar14[1] = 0;\n            puVar14[3] = 0;\n            *(undefined1 *)(puVar14 + 6) = 0;\n            *puVar14 = &PTR_FUN_003ae430;\n            puVar14[7] = uVar9;\n            puVar14[8] = uVar5;\n            puVar14[9] = uVar8;\n            puVar14[10] = uVar7;\n            *(undefined4 *)(puVar14 + 0xb) = uVar1;\n            puVar14[0xc] = uVar6;\n            puVar14[0xe] = lVar16;\n            puVar14[0x10] = uVar17;\n            puVar14[0x11] = uVar2;\n            FUN_002300a0(param_2,puVar14);\n            return (uint)bVar11;\n          }\n        }" if (parenthesized_expression "((local_64 < 8) ||\n           ((lVar3 = *local_60, lVar3 != s__<thin>__<arch>_N4gold7ArchiveE_00322e50._0_8_ &&\n            (s__<thin>__<arch>_N4gold7ArchiveE_00322e50._8_8_ != lVar3))))" ( (binary_expression "(local_64 < 8) ||\n           ((lVar3 = *local_60, lVar3 != s__<thin>__<arch>_N4gold7ArchiveE_00322e50._0_8_ &&\n            (s__<thin>__<arch>_N4gold7ArchiveE_00322e50._8_8_ != lVar3)))" (parenthesized_expression "(local_64 < 8)" ( (binary_expression "local_64 < 8" identifier < number_literal) )) || (parenthesized_expression "((lVar3 = *local_60, lVar3 != s__<thin>__<arch>_N4gold7ArchiveE_00322e50._0_8_ &&\n            (s__<thin>__<arch>_N4gold7ArchiveE_00322e50._8_8_ != lVar3)))" ( (parenthesized_expression "(lVar3 = *local_60, lVar3 != s__<thin>__<arch>_N4gold7ArchiveE_00322e50._0_8_ &&\n            (s__<thin>__<arch>_N4gold7ArchiveE_00322e50._8_8_ != lVar3))" ( (comma_expression "lVar3 = *local_60, lVar3 != s__<thin>__<arch>_N4gold7ArchiveE_00322e50._0_8_ &&\n            (s__<thin>__<arch>_N4gold7ArchiveE_00322e50._8_8_ != lVar3)" (assignment_expression "lVar3 = *local_60" identifier = (pointer_expression "*local_60" * identifier)) , (binary_expression "lVar3 != s__<thin>__<arch>_N4gold7ArchiveE_00322e50._0_8_ &&\n            (s__<thin>__<arch>_N4gold7ArchiveE_00322e50._8_8_ != lVar3)" (binary_expression "lVar3 != s__<thin>__<arch>_N4gold7ArchiveE_00322e50._0_8_" identifier != (binary_expression "s__<thin>__<arch>_N4gold7ArchiveE_00322e50._0_8_" (binary_expression "s__<thin>__<arch" (binary_expression "s__<thin>__" (binary_expression "s__<thin" identifier < identifier) > identifier) < identifier) > (field_expression "_N4gold7ArchiveE_00322e50._0_8_" identifier . field_identifier))) && (parenthesized_expression "(s__<thin>__<arch>_N4gold7ArchiveE_00322e50._8_8_ != lVar3)" ( (binary_expression "s__<thin>__<arch>_N4gold7ArchiveE_00322e50._8_8_ != lVar3" (binary_expression "s__<thin>__<arch>_N4gold7ArchiveE_00322e50._8_8_" (binary_expression "s__<thin>__<arch" (binary_expression "s__<thin>__" (binary_expression "s__<thin" identifier < identifier) > identifier) < identifier) > (field_expression "_N4gold7ArchiveE_00322e50._8_8_" identifier . field_identifier)) != identifier) )))) )) ))) )) (compound_statement "{\n          plVar19 = (long *)0x0;\n          if (bVar11 != 0) {\n            local_58[0] = (undefined1 *)((ulong)local_58[0] & 0xffffffffffffff00);\n            cVar12 = FUN_0016b000(puVar14);\n            ppuVar21 = (undefined1 **)0x0;\n            if (cVar12 != '\0') {\n              ppuVar21 = local_58;\n            }\n            plVar19 = (long *)FUN_0019b3d0(puVar14 + 5,puVar14,0,local_60,(long)local_64,ppuVar21);\n          }\n          if (*(long *)(PTR_DAT_003be6b0 + 0x10) == 0) {\n                    \n            FUN_0016cdf0("../../gold/parameters.h",0x5c,"options");\n          }\n          lVar3 = *(long *)(*(long *)(PTR_DAT_003be6b0 + 0x10) + 0x9058);\n          if ((lVar3 != 0) && (lVar16 = FUN_001f1940(lVar3,puVar14,0,lVar16,plVar19), lVar16 != 0))\n          {\n            if (plVar19 != (long *)0x0) {\n              (**(code **)(*plVar19 + 8))(plVar19);\n            }\n            if (*(long *)(lVar16 + 0x28) != 0) {\n              FUN_0016ae30(*(long *)(lVar16 + 0x28) + 0x28,param_1);\n            }\n            plVar19 = *(long **)(param_1 + 0x78);\n            if (plVar19 == (long *)0x0) {\n              puVar14 = (undefined8 *)FUN_00275550(0x80);\n              uVar2 = *(undefined8 *)(param_1 + 0x68);\n              uVar17 = *(undefined8 *)(param_1 + 0x48);\n              uVar4 = *(undefined8 *)(param_1 + 0x40);\n              uVar5 = *(undefined8 *)(param_1 + 0x38);\n              *puVar14 = &PTR_FUN_003acf00;\n              uVar6 = *(undefined8 *)(param_1 + 0x88);\n              uVar7 = *(undefined8 *)(param_1 + 0x80);\n              puVar14[9] = uVar17;\n              puVar14[10] = uVar2;\n              puVar14[1] = 0;\n              puVar14[2] = puVar14 + 4;\n              puVar14[3] = 0;\n              *(undefined1 *)(puVar14 + 4) = 0;\n              *(undefined1 *)(puVar14 + 6) = 0;\n              puVar14[7] = uVar5;\n              puVar14[8] = uVar4;\n              puVar14[0xb] = lVar16;\n              puVar14[0xc] = 0;\n              puVar14[0xd] = 0;\n              puVar14[0xe] = uVar7;\n              puVar14[0xf] = uVar6;\n              FUN_002300a0(param_2,puVar14);\n              return uVar13;\n            }\n            plVar19[1] = 0;\n            *plVar19 = lVar16;\n            return uVar13;\n          }\n          if (bVar11 == 0) {\n            puVar18 = (undefined8 *)FUN_00275550(0x90);\n            uVar2 = *(undefined8 *)(param_1 + 0x88);\n            uVar17 = *(undefined8 *)(param_1 + 0x80);\n            uVar4 = *(undefined8 *)(param_1 + 0x68);\n            uVar5 = *(undefined8 *)(param_1 + 0x70);\n            *(undefined1 *)(puVar18 + 4) = 0;\n            uVar6 = *(undefined8 *)(param_1 + 0x60);\n            uVar7 = *(undefined8 *)(param_1 + 0x38);\n            puVar18[2] = puVar18 + 4;\n            uVar1 = *(undefined4 *)(param_1 + 0x58);\n            uVar8 = *(undefined8 *)(param_1 + 0x50);\n            puVar18[0xd] = uVar5;\n            uVar5 = *(undefined8 *)(param_1 + 0x48);\n            uVar9 = *(undefined8 *)(param_1 + 0x40);\n            puVar18[0xe] = uVar4;\n            puVar18[1] = 0;\n            puVar18[3] = 0;\n            *(undefined1 *)(puVar18 + 6) = 0;\n            *puVar18 = &PTR_FUN_003ad080;\n            puVar18[7] = uVar9;\n            puVar18[8] = uVar5;\n            puVar18[9] = uVar8;\n            *(undefined4 *)(puVar18 + 10) = uVar1;\n            puVar18[0xb] = uVar7;\n            puVar18[0xc] = uVar6;\n            puVar18[0xf] = puVar14;\n            puVar18[0x10] = uVar17;\n            puVar18[0x11] = uVar2;\n            FUN_00230080(param_2,puVar18);\n            return uVar13;\n          }\n          if (plVar19 == (long *)0x0) {\n            if ((char)local_58[0] == '\0') {\n              return 0;\n            }\n            puVar18 = puVar14 + 5;\n            FUN_001f51c0(*(undefined8 *)(param_1 + 0x68),puVar14);\n            FUN_0016ad00(puVar18);\n            FUN_0016ae30(puVar18,param_1);\n            FUN_0016b0b0(puVar18);\n            if (puVar14 + 3 != (undefined8 *)puVar14[1]) {\n              FUN_00276d20();\n            }\n            thunk_FUN_00276d20(puVar14,0xe8);\n            *(int *)(param_1 + 0x58) = *(int *)(param_1 + 0x58) + 1;\n            uVar13 = FUN_001f5c10(param_1,param_2);\n            return uVar13;\n          }\n          puVar18 = (undefined8 *)FUN_00275550(0x80);\n          *puVar18 = 0;\n          puVar18[1] = 0;\n          puVar18[3] = 0;\n          puVar18[6] = 0;\n          puVar18[8] = 0;\n          puVar18[10] = 0;\n          puVar18[0xd] = 0;\n          (**(code **)(*plVar19 + 0x40))(plVar19,puVar18);\n          FUN_0016ae30(puVar14 + 5,param_1);\n          puVar14 = *(undefined8 **)(param_1 + 0x78);\n          if (puVar14 == (undefined8 *)0x0) {\n            puVar14 = (undefined8 *)FUN_00275550(0x80);\n            uVar2 = *(undefined8 *)(param_1 + 0x68);\n            uVar17 = *(undefined8 *)(param_1 + 0x48);\n            uVar4 = *(undefined8 *)(param_1 + 0x40);\n            uVar5 = *(undefined8 *)(param_1 + 0x38);\n            puVar14[0xd] = puVar18;\n            uVar6 = *(undefined8 *)(param_1 + 0x88);\n            uVar7 = *(undefined8 *)(param_1 + 0x80);\n            puVar14[2] = puVar14 + 4;\n            puVar14[9] = uVar17;\n            puVar14[10] = uVar2;\n            puVar14[1] = 0;\n            puVar14[3] = 0;\n            *(undefined1 *)(puVar14 + 4) = 0;\n            *(undefined1 *)(puVar14 + 6) = 0;\n            *puVar14 = &PTR_FUN_003acf00;\n            puVar14[7] = uVar5;\n            puVar14[8] = uVar4;\n            puVar14[0xb] = plVar19;\n            puVar14[0xc] = 0;\n            puVar14[0xe] = uVar7;\n            puVar14[0xf] = uVar6;\n            FUN_002300a0(param_2,puVar14);\n            return (uint)bVar11;\n          }\n          pbVar10 = *(byte **)(param_1 + 0x68);\n          puVar14[1] = puVar18;\n          *puVar14 = plVar19;\n          bVar11 = *pbVar10;\n          if (bVar11 != 0) {\n            *(undefined4 *)(puVar14 + 2) = *(undefined4 *)(pbVar10 + 100);\n            return (uint)bVar11;\n          }\n        }" { (expression_statement "plVar19 = (long *)0x0;" (assignment_expression "plVar19 = (long *)0x0" identifier = (cast_expression "(long *)0x0" ( (type_descriptor "long *" (sized_type_specifier "long" long) (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (if_statement "if (bVar11 != 0) {\n            local_58[0] = (undefined1 *)((ulong)local_58[0] & 0xffffffffffffff00);\n            cVar12 = FUN_0016b000(puVar14);\n            ppuVar21 = (undefined1 **)0x0;\n            if (cVar12 != '\0') {\n              ppuVar21 = local_58;\n            }\n            plVar19 = (long *)FUN_0019b3d0(puVar14 + 5,puVar14,0,local_60,(long)local_64,ppuVar21);\n          }" if (parenthesized_expression "(bVar11 != 0)" ( (binary_expression "bVar11 != 0" identifier != number_literal) )) (compound_statement "{\n            local_58[0] = (undefined1 *)((ulong)local_58[0] & 0xffffffffffffff00);\n            cVar12 = FUN_0016b000(puVar14);\n            ppuVar21 = (undefined1 **)0x0;\n            if (cVar12 != '\0') {\n              ppuVar21 = local_58;\n            }\n            plVar19 = (long *)FUN_0019b3d0(puVar14 + 5,puVar14,0,local_60,(long)local_64,ppuVar21);\n          }" { (expression_statement "local_58[0] = (undefined1 *)((ulong)local_58[0] & 0xffffffffffffff00);" (assignment_expression "local_58[0] = (undefined1 *)((ulong)local_58[0] & 0xffffffffffffff00)" (subscript_expression "local_58[0]" identifier [ number_literal ]) = (cast_expression "(undefined1 *)((ulong)local_58[0] & 0xffffffffffffff00)" ( (type_descriptor "undefined1 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((ulong)local_58[0] & 0xffffffffffffff00)" ( (binary_expression "(ulong)local_58[0] & 0xffffffffffffff00" (cast_expression "(ulong)local_58[0]" ( (type_descriptor "ulong" type_identifier) ) (subscript_expression "local_58[0]" identifier [ number_literal ])) & number_literal) )))) ;) (expression_statement "cVar12 = FUN_0016b000(puVar14);" (assignment_expression "cVar12 = FUN_0016b000(puVar14)" identifier = (call_expression "FUN_0016b000(puVar14)" identifier (argument_list "(puVar14)" ( identifier )))) ;) (expression_statement "ppuVar21 = (undefined1 **)0x0;" (assignment_expression "ppuVar21 = (undefined1 **)0x0" identifier = (cast_expression "(undefined1 **)0x0" ( (type_descriptor "undefined1 **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) number_literal)) ;) (if_statement "if (cVar12 != '\0') {\n              ppuVar21 = local_58;\n            }" if (parenthesized_expression "(cVar12 != '\0')" ( (binary_expression "cVar12 != '\0'" identifier != (char_literal "'\0'" ' escape_sequence ')) )) (compound_statement "{\n              ppuVar21 = local_58;\n            }" { (expression_statement "ppuVar21 = local_58;" (assignment_expression "ppuVar21 = local_58" identifier = identifier) ;) })) (expression_statement "plVar19 = (long *)FUN_0019b3d0(puVar14 + 5,puVar14,0,local_60,(long)local_64,ppuVar21);" (assignment_expression "plVar19 = (long *)FUN_0019b3d0(puVar14 + 5,puVar14,0,local_60,(long)local_64,ppuVar21)" identifier = (cast_expression "(long *)FUN_0019b3d0(puVar14 + 5,puVar14,0,local_60,(long)local_64,ppuVar21)" ( (type_descriptor "long *" (sized_type_specifier "long" long) (abstract_pointer_declarator "*" *)) ) (call_expression "FUN_0019b3d0(puVar14 + 5,puVar14,0,local_60,(long)local_64,ppuVar21)" identifier (argument_list "(puVar14 + 5,puVar14,0,local_60,(long)local_64,ppuVar21)" ( (binary_expression "puVar14 + 5" identifier + number_literal) , identifier , number_literal , identifier , (cast_expression "(long)local_64" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) 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 ") ))) ;) })) (expression_statement "lVar3 = *(long *)(*(long *)(PTR_DAT_003be6b0 + 0x10) + 0x9058);" (assignment_expression "lVar3 = *(long *)(*(long *)(PTR_DAT_003be6b0 + 0x10) + 0x9058)" identifier = (pointer_expression "*(long *)(*(long *)(PTR_DAT_003be6b0 + 0x10) + 0x9058)" * (cast_expression "(long *)(*(long *)(PTR_DAT_003be6b0 + 0x10) + 0x9058)" ( (type_descriptor "long *" (sized_type_specifier "long" long) (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*(long *)(PTR_DAT_003be6b0 + 0x10) + 0x9058)" ( (binary_expression "*(long *)(PTR_DAT_003be6b0 + 0x10) + 0x9058" (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) ))))) ;) (if_statement "if ((lVar3 != 0) && (lVar16 = FUN_001f1940(lVar3,puVar14,0,lVar16,plVar19), lVar16 != 0))\n          {\n            if (plVar19 != (long *)0x0) {\n              (**(code **)(*plVar19 + 8))(plVar19);\n            }\n            if (*(long *)(lVar16 + 0x28) != 0) {\n              FUN_0016ae30(*(long *)(lVar16 + 0x28) + 0x28,param_1);\n            }\n            plVar19 = *(long **)(param_1 + 0x78);\n            if (plVar19 == (long *)0x0) {\n              puVar14 = (undefined8 *)FUN_00275550(0x80);\n              uVar2 = *(undefined8 *)(param_1 + 0x68);\n              uVar17 = *(undefined8 *)(param_1 + 0x48);\n              uVar4 = *(undefined8 *)(param_1 + 0x40);\n              uVar5 = *(undefined8 *)(param_1 + 0x38);\n              *puVar14 = &PTR_FUN_003acf00;\n              uVar6 = *(undefined8 *)(param_1 + 0x88);\n              uVar7 = *(undefined8 *)(param_1 + 0x80);\n              puVar14[9] = uVar17;\n              puVar14[10] = uVar2;\n              puVar14[1] = 0;\n              puVar14[2] = puVar14 + 4;\n              puVar14[3] = 0;\n              *(undefined1 *)(puVar14 + 4) = 0;\n              *(undefined1 *)(puVar14 + 6) = 0;\n              puVar14[7] = uVar5;\n              puVar14[8] = uVar4;\n              puVar14[0xb] = lVar16;\n              puVar14[0xc] = 0;\n              puVar14[0xd] = 0;\n              puVar14[0xe] = uVar7;\n              puVar14[0xf] = uVar6;\n              FUN_002300a0(param_2,puVar14);\n              return uVar13;\n            }\n            plVar19[1] = 0;\n            *plVar19 = lVar16;\n            return uVar13;\n          }" if (parenthesized_expression "((lVar3 != 0) && (lVar16 = FUN_001f1940(lVar3,puVar14,0,lVar16,plVar19), lVar16 != 0))" ( (binary_expression "(lVar3 != 0) && (lVar16 = FUN_001f1940(lVar3,puVar14,0,lVar16,plVar19), lVar16 != 0)" (parenthesized_expression "(lVar3 != 0)" ( (binary_expression "lVar3 != 0" identifier != number_literal) )) && (parenthesized_expression "(lVar16 = FUN_001f1940(lVar3,puVar14,0,lVar16,plVar19), lVar16 != 0)" ( (comma_expression "lVar16 = FUN_001f1940(lVar3,puVar14,0,lVar16,plVar19), lVar16 != 0" (assignment_expression "lVar16 = FUN_001f1940(lVar3,puVar14,0,lVar16,plVar19)" identifier = (call_expression "FUN_001f1940(lVar3,puVar14,0,lVar16,plVar19)" identifier (argument_list "(lVar3,puVar14,0,lVar16,plVar19)" ( identifier , identifier , number_literal , identifier , identifier )))) , (binary_expression "lVar16 != 0" identifier != number_literal)) ))) )) (compound_statement "{\n            if (plVar19 != (long *)0x0) {\n              (**(code **)(*plVar19 + 8))(plVar19);\n            }\n            if (*(long *)(lVar16 + 0x28) != 0) {\n              FUN_0016ae30(*(long *)(lVar16 + 0x28) + 0x28,param_1);\n            }\n            plVar19 = *(long **)(param_1 + 0x78);\n            if (plVar19 == (long *)0x0) {\n              puVar14 = (undefined8 *)FUN_00275550(0x80);\n              uVar2 = *(undefined8 *)(param_1 + 0x68);\n              uVar17 = *(undefined8 *)(param_1 + 0x48);\n              uVar4 = *(undefined8 *)(param_1 + 0x40);\n              uVar5 = *(undefined8 *)(param_1 + 0x38);\n              *puVar14 = &PTR_FUN_003acf00;\n              uVar6 = *(undefined8 *)(param_1 + 0x88);\n              uVar7 = *(undefined8 *)(param_1 + 0x80);\n              puVar14[9] = uVar17;\n              puVar14[10] = uVar2;\n              puVar14[1] = 0;\n              puVar14[2] = puVar14 + 4;\n              puVar14[3] = 0;\n              *(undefined1 *)(puVar14 + 4) = 0;\n              *(undefined1 *)(puVar14 + 6) = 0;\n              puVar14[7] = uVar5;\n              puVar14[8] = uVar4;\n              puVar14[0xb] = lVar16;\n              puVar14[0xc] = 0;\n              puVar14[0xd] = 0;\n              puVar14[0xe] = uVar7;\n              puVar14[0xf] = uVar6;\n              FUN_002300a0(param_2,puVar14);\n              return uVar13;\n            }\n            plVar19[1] = 0;\n            *plVar19 = lVar16;\n            return uVar13;\n          }" { (if_statement "if (plVar19 != (long *)0x0) {\n              (**(code **)(*plVar19 + 8))(plVar19);\n            }" if (parenthesized_expression "(plVar19 != (long *)0x0)" ( (binary_expression "plVar19 != (long *)0x0" identifier != (cast_expression "(long *)0x0" ( (type_descriptor "long *" (sized_type_specifier "long" long) (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n              (**(code **)(*plVar19 + 8))(plVar19);\n            }" { (expression_statement "(**(code **)(*plVar19 + 8))(plVar19);" (call_expression "(**(code **)(*plVar19 + 8))(plVar19)" (parenthesized_expression "(**(code **)(*plVar19 + 8))" ( (pointer_expression "**(code **)(*plVar19 + 8)" * (pointer_expression "*(code **)(*plVar19 + 8)" * (cast_expression "(code **)(*plVar19 + 8)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(*plVar19 + 8)" ( (binary_expression "*plVar19 + 8" (pointer_expression "*plVar19" * identifier) + number_literal) ))))) )) (argument_list "(plVar19)" ( identifier ))) ;) })) (if_statement "if (*(long *)(lVar16 + 0x28) != 0) {\n              FUN_0016ae30(*(long *)(lVar16 + 0x28) + 0x28,param_1);\n            }" if (parenthesized_expression "(*(long *)(lVar16 + 0x28) != 0)" ( (binary_expression "*(long *)(lVar16 + 0x28) != 0" (pointer_expression "*(long *)(lVar16 + 0x28)" * (cast_expression "(long *)(lVar16 + 0x28)" ( (type_descriptor "long *" (sized_type_specifier "long" long) (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(lVar16 + 0x28)" ( (binary_expression "lVar16 + 0x28" identifier + number_literal) )))) != number_literal) )) (compound_statement "{\n              FUN_0016ae30(*(long *)(lVar16 + 0x28) + 0x28,param_1);\n            }" { (expression_statement "FUN_0016ae30(*(long *)(lVar16 + 0x28) + 0x28,param_1);" (call_expression "FUN_0016ae30(*(long *)(lVar16 + 0x28) + 0x28,param_1)" identifier (argument_list "(*(long *)(lVar16 + 0x28) + 0x28,param_1)" ( (binary_expression "*(long *)(lVar16 + 0x28) + 0x28" (pointer_expression "*(long *)(lVar16 + 0x28)" * (cast_expression "(long *)(lVar16 + 0x28)" ( (type_descriptor "long *" (sized_type_specifier "long" long) (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(lVar16 + 0x28)" ( (binary_expression "lVar16 + 0x28" identifier + number_literal) )))) + number_literal) , identifier ))) ;) })) (expression_statement "plVar19 = *(long **)(param_1 + 0x78);" (assignment_expression "plVar19 = *(long **)(param_1 + 0x78)" identifier = (pointer_expression "*(long **)(param_1 + 0x78)" * (cast_expression "(long **)(param_1 + 0x78)" ( (type_descriptor "long **" (sized_type_specifier "long" long) (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(param_1 + 0x78)" ( (binary_expression "param_1 + 0x78" identifier + number_literal) ))))) ;) (if_statement "if (plVar19 == (long *)0x0) {\n              puVar14 = (undefined8 *)FUN_00275550(0x80);\n              uVar2 = *(undefined8 *)(param_1 + 0x68);\n              uVar17 = *(undefined8 *)(param_1 + 0x48);\n              uVar4 = *(undefined8 *)(param_1 + 0x40);\n              uVar5 = *(undefined8 *)(param_1 + 0x38);\n              *puVar14 = &PTR_FUN_003acf00;\n              uVar6 = *(undefined8 *)(param_1 + 0x88);\n              uVar7 = *(undefined8 *)(param_1 + 0x80);\n              puVar14[9] = uVar17;\n              puVar14[10] = uVar2;\n              puVar14[1] = 0;\n              puVar14[2] = puVar14 + 4;\n              puVar14[3] = 0;\n              *(undefined1 *)(puVar14 + 4) = 0;\n              *(undefined1 *)(puVar14 + 6) = 0;\n              puVar14[7] = uVar5;\n              puVar14[8] = uVar4;\n              puVar14[0xb] = lVar16;\n              puVar14[0xc] = 0;\n              puVar14[0xd] = 0;\n              puVar14[0xe] = uVar7;\n              puVar14[0xf] = uVar6;\n              FUN_002300a0(param_2,puVar14);\n              return uVar13;\n            }" if (parenthesized_expression "(plVar19 == (long *)0x0)" ( (binary_expression "plVar19 == (long *)0x0" identifier == (cast_expression "(long *)0x0" ( (type_descriptor "long *" (sized_type_specifier "long" long) (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n              puVar14 = (undefined8 *)FUN_00275550(0x80);\n              uVar2 = *(undefined8 *)(param_1 + 0x68);\n              uVar17 = *(undefined8 *)(param_1 + 0x48);\n              uVar4 = *(undefined8 *)(param_1 + 0x40);\n              uVar5 = *(undefined8 *)(param_1 + 0x38);\n              *puVar14 = &PTR_FUN_003acf00;\n              uVar6 = *(undefined8 *)(param_1 + 0x88);\n              uVar7 = *(undefined8 *)(param_1 + 0x80);\n              puVar14[9] = uVar17;\n              puVar14[10] = uVar2;\n              puVar14[1] = 0;\n              puVar14[2] = puVar14 + 4;\n              puVar14[3] = 0;\n              *(undefined1 *)(puVar14 + 4) = 0;\n              *(undefined1 *)(puVar14 + 6) = 0;\n              puVar14[7] = uVar5;\n              puVar14[8] = uVar4;\n              puVar14[0xb] = lVar16;\n              puVar14[0xc] = 0;\n              puVar14[0xd] = 0;\n              puVar14[0xe] = uVar7;\n              puVar14[0xf] = uVar6;\n              FUN_002300a0(param_2,puVar14);\n              return uVar13;\n            }" { (expression_statement "puVar14 = (undefined8 *)FUN_00275550(0x80);" (assignment_expression "puVar14 = (undefined8 *)FUN_00275550(0x80)" identifier = (cast_expression "(undefined8 *)FUN_00275550(0x80)" ( (type_descriptor "undefined8 *" type_identifier (abstract_pointer_declarator "*" *)) ) (call_expression "FUN_00275550(0x80)" identifier (argument_list "(0x80)" ( number_literal ))))) ;) (expression_statement "uVar2 = *(undefined8 *)(param_1 + 0x68);" (assignment_expression "uVar2 = *(undefined8 *)(param_1 + 0x68)" identifier = (pointer_expression "*(undefined8 *)(param_1 + 0x68)" * (cast_expression "(undefined8 *)(param_1 + 0x68)" ( (type_descriptor "undefined8 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x68)" ( (binary_expression "param_1 + 0x68" identifier + number_literal) ))))) ;) (expression_statement "uVar17 = *(undefined8 *)(param_1 + 0x48);" (assignment_expression "uVar17 = *(undefined8 *)(param_1 + 0x48)" identifier = (pointer_expression "*(undefined8 *)(param_1 + 0x48)" * (cast_expression "(undefined8 *)(param_1 + 0x48)" ( (type_descriptor "undefined8 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x48)" ( (binary_expression "param_1 + 0x48" identifier + number_literal) ))))) ;) (expression_statement "uVar4 = *(undefined8 *)(param_1 + 0x40);" (assignment_expression "uVar4 = *(undefined8 *)(param_1 + 0x40)" identifier = (pointer_expression "*(undefined8 *)(param_1 + 0x40)" * (cast_expression "(undefined8 *)(param_1 + 0x40)" ( (type_descriptor "undefined8 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x40)" ( (binary_expression "param_1 + 0x40" identifier + number_literal) ))))) ;) (expression_statement "uVar5 = *(undefined8 *)(param_1 + 0x38);" (assignment_expression "uVar5 = *(undefined8 *)(param_1 + 0x38)" identifier = (pointer_expression "*(undefined8 *)(param_1 + 0x38)" * (cast_expression "(undefined8 *)(param_1 + 0x38)" ( (type_descriptor "undefined8 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x38)" ( (binary_expression "param_1 + 0x38" identifier + number_literal) ))))) ;) (expression_statement "*puVar14 = &PTR_FUN_003acf00;" (assignment_expression "*puVar14 = &PTR_FUN_003acf00" (pointer_expression "*puVar14" * identifier) = (pointer_expression "&PTR_FUN_003acf00" & identifier)) ;) (expression_statement "uVar6 = *(undefined8 *)(param_1 + 0x88);" (assignment_expression "uVar6 = *(undefined8 *)(param_1 + 0x88)" identifier = (pointer_expression "*(undefined8 *)(param_1 + 0x88)" * (cast_expression "(undefined8 *)(param_1 + 0x88)" ( (type_descriptor "undefined8 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x88)" ( (binary_expression "param_1 + 0x88" identifier + number_literal) ))))) ;) (expression_statement "uVar7 = *(undefined8 *)(param_1 + 0x80);" (assignment_expression "uVar7 = *(undefined8 *)(param_1 + 0x80)" identifier = (pointer_expression "*(undefined8 *)(param_1 + 0x80)" * (cast_expression "(undefined8 *)(param_1 + 0x80)" ( (type_descriptor "undefined8 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x80)" ( (binary_expression "param_1 + 0x80" identifier + number_literal) ))))) ;) (expression_statement "puVar14[9] = uVar17;" (assignment_expression "puVar14[9] = uVar17" (subscript_expression "puVar14[9]" identifier [ number_literal ]) = identifier) ;) (expression_statement "puVar14[10] = uVar2;" (assignment_expression "puVar14[10] = uVar2" (subscript_expression "puVar14[10]" identifier [ number_literal ]) = identifier) ;) (expression_statement "puVar14[1] = 0;" (assignment_expression "puVar14[1] = 0" (subscript_expression "puVar14[1]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "puVar14[2] = puVar14 + 4;" (assignment_expression "puVar14[2] = puVar14 + 4" (subscript_expression "puVar14[2]" identifier [ number_literal ]) = (binary_expression "puVar14 + 4" identifier + number_literal)) ;) (expression_statement "puVar14[3] = 0;" (assignment_expression "puVar14[3] = 0" (subscript_expression "puVar14[3]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "*(undefined1 *)(puVar14 + 4) = 0;" (assignment_expression "*(undefined1 *)(puVar14 + 4) = 0" (pointer_expression "*(undefined1 *)(puVar14 + 4)" * (cast_expression "(undefined1 *)(puVar14 + 4)" ( (type_descriptor "undefined1 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar14 + 4)" ( (binary_expression "puVar14 + 4" identifier + number_literal) )))) = number_literal) ;) (expression_statement "*(undefined1 *)(puVar14 + 6) = 0;" (assignment_expression "*(undefined1 *)(puVar14 + 6) = 0" (pointer_expression "*(undefined1 *)(puVar14 + 6)" * (cast_expression "(undefined1 *)(puVar14 + 6)" ( (type_descriptor "undefined1 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar14 + 6)" ( (binary_expression "puVar14 + 6" identifier + number_literal) )))) = number_literal) ;) (expression_statement "puVar14[7] = uVar5;" (assignment_expression "puVar14[7] = uVar5" (subscript_expression "puVar14[7]" identifier [ number_literal ]) = identifier) ;) (expression_statement "puVar14[8] = uVar4;" (assignment_expression "puVar14[8] = uVar4" (subscript_expression "puVar14[8]" identifier [ number_literal ]) = identifier) ;) (expression_statement "puVar14[0xb] = lVar16;" (assignment_expression "puVar14[0xb] = lVar16" (subscript_expression "puVar14[0xb]" identifier [ number_literal ]) = identifier) ;) (expression_statement "puVar14[0xc] = 0;" (assignment_expression "puVar14[0xc] = 0" (subscript_expression "puVar14[0xc]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "puVar14[0xd] = 0;" (assignment_expression "puVar14[0xd] = 0" (subscript_expression "puVar14[0xd]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "puVar14[0xe] = uVar7;" (assignment_expression "puVar14[0xe] = uVar7" (subscript_expression "puVar14[0xe]" identifier [ number_literal ]) = identifier) ;) (expression_statement "puVar14[0xf] = uVar6;" (assignment_expression "puVar14[0xf] = uVar6" (subscript_expression "puVar14[0xf]" identifier [ number_literal ]) = identifier) ;) (expression_statement "FUN_002300a0(param_2,puVar14);" (call_expression "FUN_002300a0(param_2,puVar14)" identifier (argument_list "(param_2,puVar14)" ( identifier , identifier ))) ;) (return_statement "return uVar13;" return identifier ;) })) (expression_statement "plVar19[1] = 0;" (assignment_expression "plVar19[1] = 0" (subscript_expression "plVar19[1]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "*plVar19 = lVar16;" (assignment_expression "*plVar19 = lVar16" (pointer_expression "*plVar19" * identifier) = identifier) ;) (return_statement "return uVar13;" return identifier ;) })) (if_statement "if (bVar11 == 0) {\n            puVar18 = (undefined8 *)FUN_00275550(0x90);\n            uVar2 = *(undefined8 *)(param_1 + 0x88);\n            uVar17 = *(undefined8 *)(param_1 + 0x80);\n            uVar4 = *(undefined8 *)(param_1 + 0x68);\n            uVar5 = *(undefined8 *)(param_1 + 0x70);\n            *(undefined1 *)(puVar18 + 4) = 0;\n            uVar6 = *(undefined8 *)(param_1 + 0x60);\n            uVar7 = *(undefined8 *)(param_1 + 0x38);\n            puVar18[2] = puVar18 + 4;\n            uVar1 = *(undefined4 *)(param_1 + 0x58);\n            uVar8 = *(undefined8 *)(param_1 + 0x50);\n            puVar18[0xd] = uVar5;\n            uVar5 = *(undefined8 *)(param_1 + 0x48);\n            uVar9 = *(undefined8 *)(param_1 + 0x40);\n            puVar18[0xe] = uVar4;\n            puVar18[1] = 0;\n            puVar18[3] = 0;\n            *(undefined1 *)(puVar18 + 6) = 0;\n            *puVar18 = &PTR_FUN_003ad080;\n            puVar18[7] = uVar9;\n            puVar18[8] = uVar5;\n            puVar18[9] = uVar8;\n            *(undefined4 *)(puVar18 + 10) = uVar1;\n            puVar18[0xb] = uVar7;\n            puVar18[0xc] = uVar6;\n            puVar18[0xf] = puVar14;\n            puVar18[0x10] = uVar17;\n            puVar18[0x11] = uVar2;\n            FUN_00230080(param_2,puVar18);\n            return uVar13;\n          }" if (parenthesized_expression "(bVar11 == 0)" ( (binary_expression "bVar11 == 0" identifier == number_literal) )) (compound_statement "{\n            puVar18 = (undefined8 *)FUN_00275550(0x90);\n            uVar2 = *(undefined8 *)(param_1 + 0x88);\n            uVar17 = *(undefined8 *)(param_1 + 0x80);\n            uVar4 = *(undefined8 *)(param_1 + 0x68);\n            uVar5 = *(undefined8 *)(param_1 + 0x70);\n            *(undefined1 *)(puVar18 + 4) = 0;\n            uVar6 = *(undefined8 *)(param_1 + 0x60);\n            uVar7 = *(undefined8 *)(param_1 + 0x38);\n            puVar18[2] = puVar18 + 4;\n            uVar1 = *(undefined4 *)(param_1 + 0x58);\n            uVar8 = *(undefined8 *)(param_1 + 0x50);\n            puVar18[0xd] = uVar5;\n            uVar5 = *(undefined8 *)(param_1 + 0x48);\n            uVar9 = *(undefined8 *)(param_1 + 0x40);\n            puVar18[0xe] = uVar4;\n            puVar18[1] = 0;\n            puVar18[3] = 0;\n            *(undefined1 *)(puVar18 + 6) = 0;\n            *puVar18 = &PTR_FUN_003ad080;\n            puVar18[7] = uVar9;\n            puVar18[8] = uVar5;\n            puVar18[9] = uVar8;\n            *(undefined4 *)(puVar18 + 10) = uVar1;\n            puVar18[0xb] = uVar7;\n            puVar18[0xc] = uVar6;\n            puVar18[0xf] = puVar14;\n            puVar18[0x10] = uVar17;\n            puVar18[0x11] = uVar2;\n            FUN_00230080(param_2,puVar18);\n            return uVar13;\n          }" { (expression_statement "puVar18 = (undefined8 *)FUN_00275550(0x90);" (assignment_expression "puVar18 = (undefined8 *)FUN_00275550(0x90)" identifier = (cast_expression "(undefined8 *)FUN_00275550(0x90)" ( (type_descriptor "undefined8 *" type_identifier (abstract_pointer_declarator "*" *)) ) (call_expression "FUN_00275550(0x90)" identifier (argument_list "(0x90)" ( number_literal ))))) ;) (expression_statement "uVar2 = *(undefined8 *)(param_1 + 0x88);" (assignment_expression "uVar2 = *(undefined8 *)(param_1 + 0x88)" identifier = (pointer_expression "*(undefined8 *)(param_1 + 0x88)" * (cast_expression "(undefined8 *)(param_1 + 0x88)" ( (type_descriptor "undefined8 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x88)" ( (binary_expression "param_1 + 0x88" identifier + number_literal) ))))) ;) (expression_statement "uVar17 = *(undefined8 *)(param_1 + 0x80);" (assignment_expression "uVar17 = *(undefined8 *)(param_1 + 0x80)" identifier = (pointer_expression "*(undefined8 *)(param_1 + 0x80)" * (cast_expression "(undefined8 *)(param_1 + 0x80)" ( (type_descriptor "undefined8 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x80)" ( (binary_expression "param_1 + 0x80" identifier + number_literal) ))))) ;) (expression_statement "uVar4 = *(undefined8 *)(param_1 + 0x68);" (assignment_expression "uVar4 = *(undefined8 *)(param_1 + 0x68)" identifier = (pointer_expression "*(undefined8 *)(param_1 + 0x68)" * (cast_expression "(undefined8 *)(param_1 + 0x68)" ( (type_descriptor "undefined8 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x68)" ( (binary_expression "param_1 + 0x68" identifier + number_literal) ))))) ;) (expression_statement "uVar5 = *(undefined8 *)(param_1 + 0x70);" (assignment_expression "uVar5 = *(undefined8 *)(param_1 + 0x70)" identifier = (pointer_expression "*(undefined8 *)(param_1 + 0x70)" * (cast_expression "(undefined8 *)(param_1 + 0x70)" ( (type_descriptor "undefined8 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x70)" ( (binary_expression "param_1 + 0x70" identifier + number_literal) ))))) ;) (expression_statement "*(undefined1 *)(puVar18 + 4) = 0;" (assignment_expression "*(undefined1 *)(puVar18 + 4) = 0" (pointer_expression "*(undefined1 *)(puVar18 + 4)" * (cast_expression "(undefined1 *)(puVar18 + 4)" ( (type_descriptor "undefined1 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar18 + 4)" ( (binary_expression "puVar18 + 4" identifier + number_literal) )))) = number_literal) ;) (expression_statement "uVar6 = *(undefined8 *)(param_1 + 0x60);" (assignment_expression "uVar6 = *(undefined8 *)(param_1 + 0x60)" identifier = (pointer_expression "*(undefined8 *)(param_1 + 0x60)" * (cast_expression "(undefined8 *)(param_1 + 0x60)" ( (type_descriptor "undefined8 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x60)" ( (binary_expression "param_1 + 0x60" identifier + number_literal) ))))) ;) (expression_statement "uVar7 = *(undefined8 *)(param_1 + 0x38);" (assignment_expression "uVar7 = *(undefined8 *)(param_1 + 0x38)" identifier = (pointer_expression "*(undefined8 *)(param_1 + 0x38)" * (cast_expression "(undefined8 *)(param_1 + 0x38)" ( (type_descriptor "undefined8 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x38)" ( (binary_expression "param_1 + 0x38" identifier + number_literal) ))))) ;) (expression_statement "puVar18[2] = puVar18 + 4;" (assignment_expression "puVar18[2] = puVar18 + 4" (subscript_expression "puVar18[2]" identifier [ number_literal ]) = (binary_expression "puVar18 + 4" identifier + number_literal)) ;) (expression_statement "uVar1 = *(undefined4 *)(param_1 + 0x58);" (assignment_expression "uVar1 = *(undefined4 *)(param_1 + 0x58)" identifier = (pointer_expression "*(undefined4 *)(param_1 + 0x58)" * (cast_expression "(undefined4 *)(param_1 + 0x58)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x58)" ( (binary_expression "param_1 + 0x58" identifier + number_literal) ))))) ;) (expression_statement "uVar8 = *(undefined8 *)(param_1 + 0x50);" (assignment_expression "uVar8 = *(undefined8 *)(param_1 + 0x50)" identifier = (pointer_expression "*(undefined8 *)(param_1 + 0x50)" * (cast_expression "(undefined8 *)(param_1 + 0x50)" ( (type_descriptor "undefined8 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x50)" ( (binary_expression "param_1 + 0x50" identifier + number_literal) ))))) ;) (expression_statement "puVar18[0xd] = uVar5;" (assignment_expression "puVar18[0xd] = uVar5" (subscript_expression "puVar18[0xd]" identifier [ number_literal ]) = identifier) ;) (expression_statement "uVar5 = *(undefined8 *)(param_1 + 0x48);" (assignment_expression "uVar5 = *(undefined8 *)(param_1 + 0x48)" identifier = (pointer_expression "*(undefined8 *)(param_1 + 0x48)" * (cast_expression "(undefined8 *)(param_1 + 0x48)" ( (type_descriptor "undefined8 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x48)" ( (binary_expression "param_1 + 0x48" identifier + number_literal) ))))) ;) (expression_statement "uVar9 = *(undefined8 *)(param_1 + 0x40);" (assignment_expression "uVar9 = *(undefined8 *)(param_1 + 0x40)" identifier = (pointer_expression "*(undefined8 *)(param_1 + 0x40)" * (cast_expression "(undefined8 *)(param_1 + 0x40)" ( (type_descriptor "undefined8 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x40)" ( (binary_expression "param_1 + 0x40" identifier + number_literal) ))))) ;) (expression_statement "puVar18[0xe] = uVar4;" (assignment_expression "puVar18[0xe] = uVar4" (subscript_expression "puVar18[0xe]" identifier [ number_literal ]) = identifier) ;) (expression_statement "puVar18[1] = 0;" (assignment_expression "puVar18[1] = 0" (subscript_expression "puVar18[1]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "puVar18[3] = 0;" (assignment_expression "puVar18[3] = 0" (subscript_expression "puVar18[3]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "*(undefined1 *)(puVar18 + 6) = 0;" (assignment_expression "*(undefined1 *)(puVar18 + 6) = 0" (pointer_expression "*(undefined1 *)(puVar18 + 6)" * (cast_expression "(undefined1 *)(puVar18 + 6)" ( (type_descriptor "undefined1 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar18 + 6)" ( (binary_expression "puVar18 + 6" identifier + number_literal) )))) = number_literal) ;) (expression_statement "*puVar18 = &PTR_FUN_003ad080;" (assignment_expression "*puVar18 = &PTR_FUN_003ad080" (pointer_expression "*puVar18" * identifier) = (pointer_expression "&PTR_FUN_003ad080" & identifier)) ;) (expression_statement "puVar18[7] = uVar9;" (assignment_expression "puVar18[7] = uVar9" (subscript_expression "puVar18[7]" identifier [ number_literal ]) = identifier) ;) (expression_statement "puVar18[8] = uVar5;" (assignment_expression "puVar18[8] = uVar5" (subscript_expression "puVar18[8]" identifier [ number_literal ]) = identifier) ;) (expression_statement "puVar18[9] = uVar8;" (assignment_expression "puVar18[9] = uVar8" (subscript_expression "puVar18[9]" identifier [ number_literal ]) = identifier) ;) (expression_statement "*(undefined4 *)(puVar18 + 10) = uVar1;" (assignment_expression "*(undefined4 *)(puVar18 + 10) = uVar1" (pointer_expression "*(undefined4 *)(puVar18 + 10)" * (cast_expression "(undefined4 *)(puVar18 + 10)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar18 + 10)" ( (binary_expression "puVar18 + 10" identifier + number_literal) )))) = identifier) ;) (expression_statement "puVar18[0xb] = uVar7;" (assignment_expression "puVar18[0xb] = uVar7" (subscript_expression "puVar18[0xb]" identifier [ number_literal ]) = identifier) ;) (expression_statement "puVar18[0xc] = uVar6;" (assignment_expression "puVar18[0xc] = uVar6" (subscript_expression "puVar18[0xc]" identifier [ number_literal ]) = identifier) ;) (expression_statement "puVar18[0xf] = puVar14;" (assignment_expression "puVar18[0xf] = puVar14" (subscript_expression "puVar18[0xf]" identifier [ number_literal ]) = identifier) ;) (expression_statement "puVar18[0x10] = uVar17;" (assignment_expression "puVar18[0x10] = uVar17" (subscript_expression "puVar18[0x10]" identifier [ number_literal ]) = identifier) ;) (expression_statement "puVar18[0x11] = uVar2;" (assignment_expression "puVar18[0x11] = uVar2" (subscript_expression "puVar18[0x11]" identifier [ number_literal ]) = identifier) ;) (expression_statement "FUN_00230080(param_2,puVar18);" (call_expression "FUN_00230080(param_2,puVar18)" identifier (argument_list "(param_2,puVar18)" ( identifier , identifier ))) ;) (return_statement "return uVar13;" return identifier ;) })) (if_statement "if (plVar19 == (long *)0x0) {\n            if ((char)local_58[0] == '\0') {\n              return 0;\n            }\n            puVar18 = puVar14 + 5;\n            FUN_001f51c0(*(undefined8 *)(param_1 + 0x68),puVar14);\n            FUN_0016ad00(puVar18);\n            FUN_0016ae30(puVar18,param_1);\n            FUN_0016b0b0(puVar18);\n            if (puVar14 + 3 != (undefined8 *)puVar14[1]) {\n              FUN_00276d20();\n            }\n            thunk_FUN_00276d20(puVar14,0xe8);\n            *(int *)(param_1 + 0x58) = *(int *)(param_1 + 0x58) + 1;\n            uVar13 = FUN_001f5c10(param_1,param_2);\n            return uVar13;\n          }" if (parenthesized_expression "(plVar19 == (long *)0x0)" ( (binary_expression "plVar19 == (long *)0x0" identifier == (cast_expression "(long *)0x0" ( (type_descriptor "long *" (sized_type_specifier "long" long) (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n            if ((char)local_58[0] == '\0') {\n              return 0;\n            }\n            puVar18 = puVar14 + 5;\n            FUN_001f51c0(*(undefined8 *)(param_1 + 0x68),puVar14);\n            FUN_0016ad00(puVar18);\n            FUN_0016ae30(puVar18,param_1);\n            FUN_0016b0b0(puVar18);\n            if (puVar14 + 3 != (undefined8 *)puVar14[1]) {\n              FUN_00276d20();\n            }\n            thunk_FUN_00276d20(puVar14,0xe8);\n            *(int *)(param_1 + 0x58) = *(int *)(param_1 + 0x58) + 1;\n            uVar13 = FUN_001f5c10(param_1,param_2);\n            return uVar13;\n          }" { (if_statement "if ((char)local_58[0] == '\0') {\n              return 0;\n            }" if (parenthesized_expression "((char)local_58[0] == '\0')" ( (binary_expression "(char)local_58[0] == '\0'" (cast_expression "(char)local_58[0]" ( (type_descriptor "char" primitive_type) ) (subscript_expression "local_58[0]" identifier [ number_literal ])) == (char_literal "'\0'" ' escape_sequence ')) )) (compound_statement "{\n              return 0;\n            }" { (return_statement "return 0;" return number_literal ;) })) (expression_statement "puVar18 = puVar14 + 5;" (assignment_expression "puVar18 = puVar14 + 5" identifier = (binary_expression "puVar14 + 5" identifier + number_literal)) ;) (expression_statement "FUN_001f51c0(*(undefined8 *)(param_1 + 0x68),puVar14);" (call_expression "FUN_001f51c0(*(undefined8 *)(param_1 + 0x68),puVar14)" identifier (argument_list "(*(undefined8 *)(param_1 + 0x68),puVar14)" ( (pointer_expression "*(undefined8 *)(param_1 + 0x68)" * (cast_expression "(undefined8 *)(param_1 + 0x68)" ( (type_descriptor "undefined8 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x68)" ( (binary_expression "param_1 + 0x68" identifier + number_literal) )))) , identifier ))) ;) (expression_statement "FUN_0016ad00(puVar18);" (call_expression "FUN_0016ad00(puVar18)" identifier (argument_list "(puVar18)" ( identifier ))) ;) (expression_statement "FUN_0016ae30(puVar18,param_1);" (call_expression "FUN_0016ae30(puVar18,param_1)" identifier (argument_list "(puVar18,param_1)" ( identifier , identifier ))) ;) (expression_statement "FUN_0016b0b0(puVar18);" (call_expression "FUN_0016b0b0(puVar18)" identifier (argument_list "(puVar18)" ( identifier ))) ;) (if_statement "if (puVar14 + 3 != (undefined8 *)puVar14[1]) {\n              FUN_00276d20();\n            }" if (parenthesized_expression "(puVar14 + 3 != (undefined8 *)puVar14[1])" ( (binary_expression "puVar14 + 3 != (undefined8 *)puVar14[1]" (binary_expression "puVar14 + 3" identifier + number_literal) != (cast_expression "(undefined8 *)puVar14[1]" ( (type_descriptor "undefined8 *" type_identifier (abstract_pointer_declarator "*" *)) ) (subscript_expression "puVar14[1]" identifier [ number_literal ]))) )) (compound_statement "{\n              FUN_00276d20();\n            }" { (expression_statement "FUN_00276d20();" (call_expression "FUN_00276d20()" identifier (argument_list "()" ( ))) ;) })) (expression_statement "thunk_FUN_00276d20(puVar14,0xe8);" (call_expression "thunk_FUN_00276d20(puVar14,0xe8)" identifier (argument_list "(puVar14,0xe8)" ( identifier , number_literal ))) ;) (expression_statement "*(int *)(param_1 + 0x58) = *(int *)(param_1 + 0x58) + 1;" (assignment_expression "*(int *)(param_1 + 0x58) = *(int *)(param_1 + 0x58) + 1" (pointer_expression "*(int *)(param_1 + 0x58)" * (cast_expression "(int *)(param_1 + 0x58)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x58)" ( (binary_expression "param_1 + 0x58" identifier + number_literal) )))) = (binary_expression "*(int *)(param_1 + 0x58) + 1" (pointer_expression "*(int *)(param_1 + 0x58)" * (cast_expression "(int *)(param_1 + 0x58)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x58)" ( (binary_expression "param_1 + 0x58" identifier + number_literal) )))) + number_literal)) ;) (expression_statement "uVar13 = FUN_001f5c10(param_1,param_2);" (assignment_expression "uVar13 = FUN_001f5c10(param_1,param_2)" identifier = (call_expression "FUN_001f5c10(param_1,param_2)" identifier (argument_list "(param_1,param_2)" ( identifier , identifier )))) ;) (return_statement "return uVar13;" return identifier ;) })) (expression_statement "puVar18 = (undefined8 *)FUN_00275550(0x80);" (assignment_expression "puVar18 = (undefined8 *)FUN_00275550(0x80)" identifier = (cast_expression "(undefined8 *)FUN_00275550(0x80)" ( (type_descriptor "undefined8 *" type_identifier (abstract_pointer_declarator "*" *)) ) (call_expression "FUN_00275550(0x80)" identifier (argument_list "(0x80)" ( number_literal ))))) ;) (expression_statement "*puVar18 = 0;" (assignment_expression "*puVar18 = 0" (pointer_expression "*puVar18" * identifier) = number_literal) ;) (expression_statement "puVar18[1] = 0;" (assignment_expression "puVar18[1] = 0" (subscript_expression "puVar18[1]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "puVar18[3] = 0;" (assignment_expression "puVar18[3] = 0" (subscript_expression "puVar18[3]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "puVar18[6] = 0;" (assignment_expression "puVar18[6] = 0" (subscript_expression "puVar18[6]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "puVar18[8] = 0;" (assignment_expression "puVar18[8] = 0" (subscript_expression "puVar18[8]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "puVar18[10] = 0;" (assignment_expression "puVar18[10] = 0" (subscript_expression "puVar18[10]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "puVar18[0xd] = 0;" (assignment_expression "puVar18[0xd] = 0" (subscript_expression "puVar18[0xd]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "(**(code **)(*plVar19 + 0x40))(plVar19,puVar18);" (call_expression "(**(code **)(*plVar19 + 0x40))(plVar19,puVar18)" (parenthesized_expression "(**(code **)(*plVar19 + 0x40))" ( (pointer_expression "**(code **)(*plVar19 + 0x40)" * (pointer_expression "*(code **)(*plVar19 + 0x40)" * (cast_expression "(code **)(*plVar19 + 0x40)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(*plVar19 + 0x40)" ( (binary_expression "*plVar19 + 0x40" (pointer_expression "*plVar19" * identifier) + number_literal) ))))) )) (argument_list "(plVar19,puVar18)" ( identifier , identifier ))) ;) (expression_statement "FUN_0016ae30(puVar14 + 5,param_1);" (call_expression "FUN_0016ae30(puVar14 + 5,param_1)" identifier (argument_list "(puVar14 + 5,param_1)" ( (binary_expression "puVar14 + 5" identifier + number_literal) , identifier ))) ;) (expression_statement "puVar14 = *(undefined8 **)(param_1 + 0x78);" (assignment_expression "puVar14 = *(undefined8 **)(param_1 + 0x78)" identifier = (pointer_expression "*(undefined8 **)(param_1 + 0x78)" * (cast_expression "(undefined8 **)(param_1 + 0x78)" ( (type_descriptor "undefined8 **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(param_1 + 0x78)" ( (binary_expression "param_1 + 0x78" identifier + number_literal) ))))) ;) (if_statement "if (puVar14 == (undefined8 *)0x0) {\n            puVar14 = (undefined8 *)FUN_00275550(0x80);\n            uVar2 = *(undefined8 *)(param_1 + 0x68);\n            uVar17 = *(undefined8 *)(param_1 + 0x48);\n            uVar4 = *(undefined8 *)(param_1 + 0x40);\n            uVar5 = *(undefined8 *)(param_1 + 0x38);\n            puVar14[0xd] = puVar18;\n            uVar6 = *(undefined8 *)(param_1 + 0x88);\n            uVar7 = *(undefined8 *)(param_1 + 0x80);\n            puVar14[2] = puVar14 + 4;\n            puVar14[9] = uVar17;\n            puVar14[10] = uVar2;\n            puVar14[1] = 0;\n            puVar14[3] = 0;\n            *(undefined1 *)(puVar14 + 4) = 0;\n            *(undefined1 *)(puVar14 + 6) = 0;\n            *puVar14 = &PTR_FUN_003acf00;\n            puVar14[7] = uVar5;\n            puVar14[8] = uVar4;\n            puVar14[0xb] = plVar19;\n            puVar14[0xc] = 0;\n            puVar14[0xe] = uVar7;\n            puVar14[0xf] = uVar6;\n            FUN_002300a0(param_2,puVar14);\n            return (uint)bVar11;\n          }" if (parenthesized_expression "(puVar14 == (undefined8 *)0x0)" ( (binary_expression "puVar14 == (undefined8 *)0x0" identifier == (cast_expression "(undefined8 *)0x0" ( (type_descriptor "undefined8 *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n            puVar14 = (undefined8 *)FUN_00275550(0x80);\n            uVar2 = *(undefined8 *)(param_1 + 0x68);\n            uVar17 = *(undefined8 *)(param_1 + 0x48);\n            uVar4 = *(undefined8 *)(param_1 + 0x40);\n            uVar5 = *(undefined8 *)(param_1 + 0x38);\n            puVar14[0xd] = puVar18;\n            uVar6 = *(undefined8 *)(param_1 + 0x88);\n            uVar7 = *(undefined8 *)(param_1 + 0x80);\n            puVar14[2] = puVar14 + 4;\n            puVar14[9] = uVar17;\n            puVar14[10] = uVar2;\n            puVar14[1] = 0;\n            puVar14[3] = 0;\n            *(undefined1 *)(puVar14 + 4) = 0;\n            *(undefined1 *)(puVar14 + 6) = 0;\n            *puVar14 = &PTR_FUN_003acf00;\n            puVar14[7] = uVar5;\n            puVar14[8] = uVar4;\n            puVar14[0xb] = plVar19;\n            puVar14[0xc] = 0;\n            puVar14[0xe] = uVar7;\n            puVar14[0xf] = uVar6;\n            FUN_002300a0(param_2,puVar14);\n            return (uint)bVar11;\n          }" { (expression_statement "puVar14 = (undefined8 *)FUN_00275550(0x80);" (assignment_expression "puVar14 = (undefined8 *)FUN_00275550(0x80)" identifier = (cast_expression "(undefined8 *)FUN_00275550(0x80)" ( (type_descriptor "undefined8 *" type_identifier (abstract_pointer_declarator "*" *)) ) (call_expression "FUN_00275550(0x80)" identifier (argument_list "(0x80)" ( number_literal ))))) ;) (expression_statement "uVar2 = *(undefined8 *)(param_1 + 0x68);" (assignment_expression "uVar2 = *(undefined8 *)(param_1 + 0x68)" identifier = (pointer_expression "*(undefined8 *)(param_1 + 0x68)" * (cast_expression "(undefined8 *)(param_1 + 0x68)" ( (type_descriptor "undefined8 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x68)" ( (binary_expression "param_1 + 0x68" identifier + number_literal) ))))) ;) (expression_statement "uVar17 = *(undefined8 *)(param_1 + 0x48);" (assignment_expression "uVar17 = *(undefined8 *)(param_1 + 0x48)" identifier = (pointer_expression "*(undefined8 *)(param_1 + 0x48)" * (cast_expression "(undefined8 *)(param_1 + 0x48)" ( (type_descriptor "undefined8 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x48)" ( (binary_expression "param_1 + 0x48" identifier + number_literal) ))))) ;) (expression_statement "uVar4 = *(undefined8 *)(param_1 + 0x40);" (assignment_expression "uVar4 = *(undefined8 *)(param_1 + 0x40)" identifier = (pointer_expression "*(undefined8 *)(param_1 + 0x40)" * (cast_expression "(undefined8 *)(param_1 + 0x40)" ( (type_descriptor "undefined8 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x40)" ( (binary_expression "param_1 + 0x40" identifier + number_literal) ))))) ;) (expression_statement "uVar5 = *(undefined8 *)(param_1 + 0x38);" (assignment_expression "uVar5 = *(undefined8 *)(param_1 + 0x38)" identifier = (pointer_expression "*(undefined8 *)(param_1 + 0x38)" * (cast_expression "(undefined8 *)(param_1 + 0x38)" ( (type_descriptor "undefined8 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x38)" ( (binary_expression "param_1 + 0x38" identifier + number_literal) ))))) ;) (expression_statement "puVar14[0xd] = puVar18;" (assignment_expression "puVar14[0xd] = puVar18" (subscript_expression "puVar14[0xd]" identifier [ number_literal ]) = identifier) ;) (expression_statement "uVar6 = *(undefined8 *)(param_1 + 0x88);" (assignment_expression "uVar6 = *(undefined8 *)(param_1 + 0x88)" identifier = (pointer_expression "*(undefined8 *)(param_1 + 0x88)" * (cast_expression "(undefined8 *)(param_1 + 0x88)" ( (type_descriptor "undefined8 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x88)" ( (binary_expression "param_1 + 0x88" identifier + number_literal) ))))) ;) (expression_statement "uVar7 = *(undefined8 *)(param_1 + 0x80);" (assignment_expression "uVar7 = *(undefined8 *)(param_1 + 0x80)" identifier = (pointer_expression "*(undefined8 *)(param_1 + 0x80)" * (cast_expression "(undefined8 *)(param_1 + 0x80)" ( (type_descriptor "undefined8 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x80)" ( (binary_expression "param_1 + 0x80" identifier + number_literal) ))))) ;) (expression_statement "puVar14[2] = puVar14 + 4;" (assignment_expression "puVar14[2] = puVar14 + 4" (subscript_expression "puVar14[2]" identifier [ number_literal ]) = (binary_expression "puVar14 + 4" identifier + number_literal)) ;) (expression_statement "puVar14[9] = uVar17;" (assignment_expression "puVar14[9] = uVar17" (subscript_expression "puVar14[9]" identifier [ number_literal ]) = identifier) ;) (expression_statement "puVar14[10] = uVar2;" (assignment_expression "puVar14[10] = uVar2" (subscript_expression "puVar14[10]" identifier [ number_literal ]) = identifier) ;) (expression_statement "puVar14[1] = 0;" (assignment_expression "puVar14[1] = 0" (subscript_expression "puVar14[1]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "puVar14[3] = 0;" (assignment_expression "puVar14[3] = 0" (subscript_expression "puVar14[3]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "*(undefined1 *)(puVar14 + 4) = 0;" (assignment_expression "*(undefined1 *)(puVar14 + 4) = 0" (pointer_expression "*(undefined1 *)(puVar14 + 4)" * (cast_expression "(undefined1 *)(puVar14 + 4)" ( (type_descriptor "undefined1 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar14 + 4)" ( (binary_expression "puVar14 + 4" identifier + number_literal) )))) = number_literal) ;) (expression_statement "*(undefined1 *)(puVar14 + 6) = 0;" (assignment_expression "*(undefined1 *)(puVar14 + 6) = 0" (pointer_expression "*(undefined1 *)(puVar14 + 6)" * (cast_expression "(undefined1 *)(puVar14 + 6)" ( (type_descriptor "undefined1 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar14 + 6)" ( (binary_expression "puVar14 + 6" identifier + number_literal) )))) = number_literal) ;) (expression_statement "*puVar14 = &PTR_FUN_003acf00;" (assignment_expression "*puVar14 = &PTR_FUN_003acf00" (pointer_expression "*puVar14" * identifier) = (pointer_expression "&PTR_FUN_003acf00" & identifier)) ;) (expression_statement "puVar14[7] = uVar5;" (assignment_expression "puVar14[7] = uVar5" (subscript_expression "puVar14[7]" identifier [ number_literal ]) = identifier) ;) (expression_statement "puVar14[8] = uVar4;" (assignment_expression "puVar14[8] = uVar4" (subscript_expression "puVar14[8]" identifier [ number_literal ]) = identifier) ;) (expression_statement "puVar14[0xb] = plVar19;" (assignment_expression "puVar14[0xb] = plVar19" (subscript_expression "puVar14[0xb]" identifier [ number_literal ]) = identifier) ;) (expression_statement "puVar14[0xc] = 0;" (assignment_expression "puVar14[0xc] = 0" (subscript_expression "puVar14[0xc]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "puVar14[0xe] = uVar7;" (assignment_expression "puVar14[0xe] = uVar7" (subscript_expression "puVar14[0xe]" identifier [ number_literal ]) = identifier) ;) (expression_statement "puVar14[0xf] = uVar6;" (assignment_expression "puVar14[0xf] = uVar6" (subscript_expression "puVar14[0xf]" identifier [ number_literal ]) = identifier) ;) (expression_statement "FUN_002300a0(param_2,puVar14);" (call_expression "FUN_002300a0(param_2,puVar14)" identifier (argument_list "(param_2,puVar14)" ( identifier , identifier ))) ;) (return_statement "return (uint)bVar11;" return (cast_expression "(uint)bVar11" ( (type_descriptor "uint" type_identifier) ) identifier) ;) })) (expression_statement "pbVar10 = *(byte **)(param_1 + 0x68);" (assignment_expression "pbVar10 = *(byte **)(param_1 + 0x68)" identifier = (pointer_expression "*(byte **)(param_1 + 0x68)" * (cast_expression "(byte **)(param_1 + 0x68)" ( (type_descriptor "byte **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(param_1 + 0x68)" ( (binary_expression "param_1 + 0x68" identifier + number_literal) ))))) ;) (expression_statement "puVar14[1] = puVar18;" (assignment_expression "puVar14[1] = puVar18" (subscript_expression "puVar14[1]" identifier [ number_literal ]) = identifier) ;) (expression_statement "*puVar14 = plVar19;" (assignment_expression "*puVar14 = plVar19" (pointer_expression "*puVar14" * identifier) = identifier) ;) (expression_statement "bVar11 = *pbVar10;" (assignment_expression "bVar11 = *pbVar10" identifier = (pointer_expression "*pbVar10" * identifier)) ;) (if_statement "if (bVar11 != 0) {\n            *(undefined4 *)(puVar14 + 2) = *(undefined4 *)(pbVar10 + 100);\n            return (uint)bVar11;\n          }" if (parenthesized_expression "(bVar11 != 0)" ( (binary_expression "bVar11 != 0" identifier != number_literal) )) (compound_statement "{\n            *(undefined4 *)(puVar14 + 2) = *(undefined4 *)(pbVar10 + 100);\n            return (uint)bVar11;\n          }" { (expression_statement "*(undefined4 *)(puVar14 + 2) = *(undefined4 *)(pbVar10 + 100);" (assignment_expression "*(undefined4 *)(puVar14 + 2) = *(undefined4 *)(pbVar10 + 100)" (pointer_expression "*(undefined4 *)(puVar14 + 2)" * (cast_expression "(undefined4 *)(puVar14 + 2)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar14 + 2)" ( (binary_expression "puVar14 + 2" identifier + number_literal) )))) = (pointer_expression "*(undefined4 *)(pbVar10 + 100)" * (cast_expression "(undefined4 *)(pbVar10 + 100)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pbVar10 + 100)" ( (binary_expression "pbVar10 + 100" identifier + number_literal) ))))) ;) (return_statement "return (uint)bVar11;" return (cast_expression "(uint)bVar11" ( (type_descriptor "uint" type_identifier) ) identifier) ;) })) }) (else_clause "else {\n          bVar11 = **(byte **)(param_1 + 0x68);\n          if (bVar11 != 0) {\n            __s = *(char **)(*(byte **)(param_1 + 0x68) + 8);\n            pcVar20 = (char *)0xffffffffffffffff;\n            local_58[0] = local_48;\n            if (__s != (char *)0x0) {\n              sVar15 = strlen(__s);\n              pcVar20 = __s + sVar15;\n            }\n            FUN_0015cbe0(local_58,__s,pcVar20);\n                    \n            lVar16 = FUN_00275550(0x178);\n                    \n            FUN_00234b40(lVar16,local_58,puVar14,\n                         lVar3 == s__<thin>__<arch>_N4gold7ArchiveE_00322e50._0_8_,\n                         *(undefined8 *)(param_1 + 0x50),param_1);\n            if (local_58[0] != local_48) {\n              FUN_00276d20();\n            }\n            FUN_00235c40(lVar16);\n            FUN_0016ae30(*(long *)(lVar16 + 0x38) + 0x28,param_1);\n            puVar14 = (undefined8 *)FUN_00275550(0x90);\n            uVar2 = *(undefined8 *)(param_1 + 0x88);\n            uVar17 = *(undefined8 *)(param_1 + 0x80);\n            uVar4 = *(undefined8 *)(param_1 + 0x70);\n            uVar5 = *(undefined8 *)(param_1 + 0x68);\n            *(undefined1 *)(puVar14 + 4) = 0;\n            uVar6 = *(undefined8 *)(param_1 + 0x60);\n            uVar1 = *(undefined4 *)(param_1 + 0x58);\n            puVar14[2] = puVar14 + 4;\n            uVar7 = *(undefined8 *)(param_1 + 0x50);\n            uVar8 = *(undefined8 *)(param_1 + 0x38);\n            puVar14[0xd] = uVar5;\n            uVar5 = *(undefined8 *)(param_1 + 0x48);\n            uVar9 = *(undefined8 *)(param_1 + 0x40);\n            puVar14[0xf] = uVar4;\n            puVar14[1] = 0;\n            puVar14[3] = 0;\n            *(undefined1 *)(puVar14 + 6) = 0;\n            *puVar14 = &PTR_FUN_003ae430;\n            puVar14[7] = uVar9;\n            puVar14[8] = uVar5;\n            puVar14[9] = uVar8;\n            puVar14[10] = uVar7;\n            *(undefined4 *)(puVar14 + 0xb) = uVar1;\n            puVar14[0xc] = uVar6;\n            puVar14[0xe] = lVar16;\n            puVar14[0x10] = uVar17;\n            puVar14[0x11] = uVar2;\n            FUN_002300a0(param_2,puVar14);\n            return (uint)bVar11;\n          }\n        }" else (compound_statement "{\n          bVar11 = **(byte **)(param_1 + 0x68);\n          if (bVar11 != 0) {\n            __s = *(char **)(*(byte **)(param_1 + 0x68) + 8);\n            pcVar20 = (char *)0xffffffffffffffff;\n            local_58[0] = local_48;\n            if (__s != (char *)0x0) {\n              sVar15 = strlen(__s);\n              pcVar20 = __s + sVar15;\n            }\n            FUN_0015cbe0(local_58,__s,pcVar20);\n                    \n            lVar16 = FUN_00275550(0x178);\n                    \n            FUN_00234b40(lVar16,local_58,puVar14,\n                         lVar3 == s__<thin>__<arch>_N4gold7ArchiveE_00322e50._0_8_,\n                         *(undefined8 *)(param_1 + 0x50),param_1);\n            if (local_58[0] != local_48) {\n              FUN_00276d20();\n            }\n            FUN_00235c40(lVar16);\n            FUN_0016ae30(*(long *)(lVar16 + 0x38) + 0x28,param_1);\n            puVar14 = (undefined8 *)FUN_00275550(0x90);\n            uVar2 = *(undefined8 *)(param_1 + 0x88);\n            uVar17 = *(undefined8 *)(param_1 + 0x80);\n            uVar4 = *(undefined8 *)(param_1 + 0x70);\n            uVar5 = *(undefined8 *)(param_1 + 0x68);\n            *(undefined1 *)(puVar14 + 4) = 0;\n            uVar6 = *(undefined8 *)(param_1 + 0x60);\n            uVar1 = *(undefined4 *)(param_1 + 0x58);\n            puVar14[2] = puVar14 + 4;\n            uVar7 = *(undefined8 *)(param_1 + 0x50);\n            uVar8 = *(undefined8 *)(param_1 + 0x38);\n            puVar14[0xd] = uVar5;\n            uVar5 = *(undefined8 *)(param_1 + 0x48);\n            uVar9 = *(undefined8 *)(param_1 + 0x40);\n            puVar14[0xf] = uVar4;\n            puVar14[1] = 0;\n            puVar14[3] = 0;\n            *(undefined1 *)(puVar14 + 6) = 0;\n            *puVar14 = &PTR_FUN_003ae430;\n            puVar14[7] = uVar9;\n            puVar14[8] = uVar5;\n            puVar14[9] = uVar8;\n            puVar14[10] = uVar7;\n            *(undefined4 *)(puVar14 + 0xb) = uVar1;\n            puVar14[0xc] = uVar6;\n            puVar14[0xe] = lVar16;\n            puVar14[0x10] = uVar17;\n            puVar14[0x11] = uVar2;\n            FUN_002300a0(param_2,puVar14);\n            return (uint)bVar11;\n          }\n        }" { (expression_statement "bVar11 = **(byte **)(param_1 + 0x68);" (assignment_expression "bVar11 = **(byte **)(param_1 + 0x68)" identifier = (pointer_expression "**(byte **)(param_1 + 0x68)" * (pointer_expression "*(byte **)(param_1 + 0x68)" * (cast_expression "(byte **)(param_1 + 0x68)" ( (type_descriptor "byte **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(param_1 + 0x68)" ( (binary_expression "param_1 + 0x68" identifier + number_literal) )))))) ;) (if_statement "if (bVar11 != 0) {\n            __s = *(char **)(*(byte **)(param_1 + 0x68) + 8);\n            pcVar20 = (char *)0xffffffffffffffff;\n            local_58[0] = local_48;\n            if (__s != (char *)0x0) {\n              sVar15 = strlen(__s);\n              pcVar20 = __s + sVar15;\n            }\n            FUN_0015cbe0(local_58,__s,pcVar20);\n                    \n            lVar16 = FUN_00275550(0x178);\n                    \n            FUN_00234b40(lVar16,local_58,puVar14,\n                         lVar3 == s__<thin>__<arch>_N4gold7ArchiveE_00322e50._0_8_,\n                         *(undefined8 *)(param_1 + 0x50),param_1);\n            if (local_58[0] != local_48) {\n              FUN_00276d20();\n            }\n            FUN_00235c40(lVar16);\n            FUN_0016ae30(*(long *)(lVar16 + 0x38) + 0x28,param_1);\n            puVar14 = (undefined8 *)FUN_00275550(0x90);\n            uVar2 = *(undefined8 *)(param_1 + 0x88);\n            uVar17 = *(undefined8 *)(param_1 + 0x80);\n            uVar4 = *(undefined8 *)(param_1 + 0x70);\n            uVar5 = *(undefined8 *)(param_1 + 0x68);\n            *(undefined1 *)(puVar14 + 4) = 0;\n            uVar6 = *(undefined8 *)(param_1 + 0x60);\n            uVar1 = *(undefined4 *)(param_1 + 0x58);\n            puVar14[2] = puVar14 + 4;\n            uVar7 = *(undefined8 *)(param_1 + 0x50);\n            uVar8 = *(undefined8 *)(param_1 + 0x38);\n            puVar14[0xd] = uVar5;\n            uVar5 = *(undefined8 *)(param_1 + 0x48);\n            uVar9 = *(undefined8 *)(param_1 + 0x40);\n            puVar14[0xf] = uVar4;\n            puVar14[1] = 0;\n            puVar14[3] = 0;\n            *(undefined1 *)(puVar14 + 6) = 0;\n            *puVar14 = &PTR_FUN_003ae430;\n            puVar14[7] = uVar9;\n            puVar14[8] = uVar5;\n            puVar14[9] = uVar8;\n            puVar14[10] = uVar7;\n            *(undefined4 *)(puVar14 + 0xb) = uVar1;\n            puVar14[0xc] = uVar6;\n            puVar14[0xe] = lVar16;\n            puVar14[0x10] = uVar17;\n            puVar14[0x11] = uVar2;\n            FUN_002300a0(param_2,puVar14);\n            return (uint)bVar11;\n          }" if (parenthesized_expression "(bVar11 != 0)" ( (binary_expression "bVar11 != 0" identifier != number_literal) )) (compound_statement "{\n            __s = *(char **)(*(byte **)(param_1 + 0x68) + 8);\n            pcVar20 = (char *)0xffffffffffffffff;\n            local_58[0] = local_48;\n            if (__s != (char *)0x0) {\n              sVar15 = strlen(__s);\n              pcVar20 = __s + sVar15;\n            }\n            FUN_0015cbe0(local_58,__s,pcVar20);\n                    \n            lVar16 = FUN_00275550(0x178);\n                    \n            FUN_00234b40(lVar16,local_58,puVar14,\n                         lVar3 == s__<thin>__<arch>_N4gold7ArchiveE_00322e50._0_8_,\n                         *(undefined8 *)(param_1 + 0x50),param_1);\n            if (local_58[0] != local_48) {\n              FUN_00276d20();\n            }\n            FUN_00235c40(lVar16);\n            FUN_0016ae30(*(long *)(lVar16 + 0x38) + 0x28,param_1);\n            puVar14 = (undefined8 *)FUN_00275550(0x90);\n            uVar2 = *(undefined8 *)(param_1 + 0x88);\n            uVar17 = *(undefined8 *)(param_1 + 0x80);\n            uVar4 = *(undefined8 *)(param_1 + 0x70);\n            uVar5 = *(undefined8 *)(param_1 + 0x68);\n            *(undefined1 *)(puVar14 + 4) = 0;\n            uVar6 = *(undefined8 *)(param_1 + 0x60);\n            uVar1 = *(undefined4 *)(param_1 + 0x58);\n            puVar14[2] = puVar14 + 4;\n            uVar7 = *(undefined8 *)(param_1 + 0x50);\n            uVar8 = *(undefined8 *)(param_1 + 0x38);\n            puVar14[0xd] = uVar5;\n            uVar5 = *(undefined8 *)(param_1 + 0x48);\n            uVar9 = *(undefined8 *)(param_1 + 0x40);\n            puVar14[0xf] = uVar4;\n            puVar14[1] = 0;\n            puVar14[3] = 0;\n            *(undefined1 *)(puVar14 + 6) = 0;\n            *puVar14 = &PTR_FUN_003ae430;\n            puVar14[7] = uVar9;\n            puVar14[8] = uVar5;\n            puVar14[9] = uVar8;\n            puVar14[10] = uVar7;\n            *(undefined4 *)(puVar14 + 0xb) = uVar1;\n            puVar14[0xc] = uVar6;\n            puVar14[0xe] = lVar16;\n            puVar14[0x10] = uVar17;\n            puVar14[0x11] = uVar2;\n            FUN_002300a0(param_2,puVar14);\n            return (uint)bVar11;\n          }" { (expression_statement "__s = *(char **)(*(byte **)(param_1 + 0x68) + 8);" (assignment_expression "__s = *(char **)(*(byte **)(param_1 + 0x68) + 8)" identifier = (pointer_expression "*(char **)(*(byte **)(param_1 + 0x68) + 8)" * (cast_expression "(char **)(*(byte **)(param_1 + 0x68) + 8)" ( (type_descriptor "char **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(*(byte **)(param_1 + 0x68) + 8)" ( (binary_expression "*(byte **)(param_1 + 0x68) + 8" (pointer_expression "*(byte **)(param_1 + 0x68)" * (cast_expression "(byte **)(param_1 + 0x68)" ( (type_descriptor "byte **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(param_1 + 0x68)" ( (binary_expression "param_1 + 0x68" identifier + number_literal) )))) + number_literal) ))))) ;) (expression_statement "pcVar20 = (char *)0xffffffffffffffff;" (assignment_expression "pcVar20 = (char *)0xffffffffffffffff" identifier = (cast_expression "(char *)0xffffffffffffffff" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (expression_statement "local_58[0] = local_48;" (assignment_expression "local_58[0] = local_48" (subscript_expression "local_58[0]" identifier [ number_literal ]) = identifier) ;) (if_statement "if (__s != (char *)0x0) {\n              sVar15 = strlen(__s);\n              pcVar20 = __s + sVar15;\n            }" if (parenthesized_expression "(__s != (char *)0x0)" ( (binary_expression "__s != (char *)0x0" identifier != (cast_expression "(char *)0x0" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n              sVar15 = strlen(__s);\n              pcVar20 = __s + sVar15;\n            }" { (expression_statement "sVar15 = strlen(__s);" (assignment_expression "sVar15 = strlen(__s)" identifier = (call_expression "strlen(__s)" identifier (argument_list "(__s)" ( identifier )))) ;) (expression_statement "pcVar20 = __s + sVar15;" (assignment_expression "pcVar20 = __s + sVar15" identifier = (binary_expression "__s + sVar15" identifier + identifier)) ;) })) (expression_statement "FUN_0015cbe0(local_58,__s,pcVar20);" (call_expression "FUN_0015cbe0(local_58,__s,pcVar20)" identifier (argument_list "(local_58,__s,pcVar20)" ( identifier , identifier , identifier ))) ;) (expression_statement "lVar16 = FUN_00275550(0x178);" (assignment_expression "lVar16 = FUN_00275550(0x178)" identifier = (call_expression "FUN_00275550(0x178)" identifier (argument_list "(0x178)" ( number_literal )))) ;) (expression_statement "FUN_00234b40(lVar16,local_58,puVar14,\n                         lVar3 == s__<thin>__<arch>_N4gold7ArchiveE_00322e50._0_8_,\n                         *(undefined8 *)(param_1 + 0x50),param_1);" (call_expression "FUN_00234b40(lVar16,local_58,puVar14,\n                         lVar3 == s__<thin>__<arch>_N4gold7ArchiveE_00322e50._0_8_,\n                         *(undefined8 *)(param_1 + 0x50),param_1)" identifier (argument_list "(lVar16,local_58,puVar14,\n                         lVar3 == s__<thin>__<arch>_N4gold7ArchiveE_00322e50._0_8_,\n                         *(undefined8 *)(param_1 + 0x50),param_1)" ( identifier , identifier , identifier , (binary_expression "lVar3 == s__<thin>__<arch>_N4gold7ArchiveE_00322e50._0_8_" identifier == (binary_expression "s__<thin>__<arch>_N4gold7ArchiveE_00322e50._0_8_" (binary_expression "s__<thin>__<arch" (binary_expression "s__<thin>__" (binary_expression "s__<thin" identifier < identifier) > identifier) < identifier) > (field_expression "_N4gold7ArchiveE_00322e50._0_8_" identifier . field_identifier))) , (pointer_expression "*(undefined8 *)(param_1 + 0x50)" * (cast_expression "(undefined8 *)(param_1 + 0x50)" ( (type_descriptor "undefined8 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x50)" ( (binary_expression "param_1 + 0x50" identifier + number_literal) )))) , identifier ))) ;) (if_statement "if (local_58[0] != local_48) {\n              FUN_00276d20();\n            }" if (parenthesized_expression "(local_58[0] != local_48)" ( (binary_expression "local_58[0] != local_48" (subscript_expression "local_58[0]" identifier [ number_literal ]) != identifier) )) (compound_statement "{\n              FUN_00276d20();\n            }" { (expression_statement "FUN_00276d20();" (call_expression "FUN_00276d20()" identifier (argument_list "()" ( ))) ;) })) (expression_statement "FUN_00235c40(lVar16);" (call_expression "FUN_00235c40(lVar16)" identifier (argument_list "(lVar16)" ( identifier ))) ;) (expression_statement "FUN_0016ae30(*(long *)(lVar16 + 0x38) + 0x28,param_1);" (call_expression "FUN_0016ae30(*(long *)(lVar16 + 0x38) + 0x28,param_1)" identifier (argument_list "(*(long *)(lVar16 + 0x38) + 0x28,param_1)" ( (binary_expression "*(long *)(lVar16 + 0x38) + 0x28" (pointer_expression "*(long *)(lVar16 + 0x38)" * (cast_expression "(long *)(lVar16 + 0x38)" ( (type_descriptor "long *" (sized_type_specifier "long" long) (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(lVar16 + 0x38)" ( (binary_expression "lVar16 + 0x38" identifier + number_literal) )))) + number_literal) , identifier ))) ;) (expression_statement "puVar14 = (undefined8 *)FUN_00275550(0x90);" (assignment_expression "puVar14 = (undefined8 *)FUN_00275550(0x90)" identifier = (cast_expression "(undefined8 *)FUN_00275550(0x90)" ( (type_descriptor "undefined8 *" type_identifier (abstract_pointer_declarator "*" *)) ) (call_expression "FUN_00275550(0x90)" identifier (argument_list "(0x90)" ( number_literal ))))) ;) (expression_statement "uVar2 = *(undefined8 *)(param_1 + 0x88);" (assignment_expression "uVar2 = *(undefined8 *)(param_1 + 0x88)" identifier = (pointer_expression "*(undefined8 *)(param_1 + 0x88)" * (cast_expression "(undefined8 *)(param_1 + 0x88)" ( (type_descriptor "undefined8 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x88)" ( (binary_expression "param_1 + 0x88" identifier + number_literal) ))))) ;) (expression_statement "uVar17 = *(undefined8 *)(param_1 + 0x80);" (assignment_expression "uVar17 = *(undefined8 *)(param_1 + 0x80)" identifier = (pointer_expression "*(undefined8 *)(param_1 + 0x80)" * (cast_expression "(undefined8 *)(param_1 + 0x80)" ( (type_descriptor "undefined8 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x80)" ( (binary_expression "param_1 + 0x80" identifier + number_literal) ))))) ;) (expression_statement "uVar4 = *(undefined8 *)(param_1 + 0x70);" (assignment_expression "uVar4 = *(undefined8 *)(param_1 + 0x70)" identifier = (pointer_expression "*(undefined8 *)(param_1 + 0x70)" * (cast_expression "(undefined8 *)(param_1 + 0x70)" ( (type_descriptor "undefined8 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x70)" ( (binary_expression "param_1 + 0x70" identifier + number_literal) ))))) ;) (expression_statement "uVar5 = *(undefined8 *)(param_1 + 0x68);" (assignment_expression "uVar5 = *(undefined8 *)(param_1 + 0x68)" identifier = (pointer_expression "*(undefined8 *)(param_1 + 0x68)" * (cast_expression "(undefined8 *)(param_1 + 0x68)" ( (type_descriptor "undefined8 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x68)" ( (binary_expression "param_1 + 0x68" identifier + number_literal) ))))) ;) (expression_statement "*(undefined1 *)(puVar14 + 4) = 0;" (assignment_expression "*(undefined1 *)(puVar14 + 4) = 0" (pointer_expression "*(undefined1 *)(puVar14 + 4)" * (cast_expression "(undefined1 *)(puVar14 + 4)" ( (type_descriptor "undefined1 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar14 + 4)" ( (binary_expression "puVar14 + 4" identifier + number_literal) )))) = number_literal) ;) (expression_statement "uVar6 = *(undefined8 *)(param_1 + 0x60);" (assignment_expression "uVar6 = *(undefined8 *)(param_1 + 0x60)" identifier = (pointer_expression "*(undefined8 *)(param_1 + 0x60)" * (cast_expression "(undefined8 *)(param_1 + 0x60)" ( (type_descriptor "undefined8 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x60)" ( (binary_expression "param_1 + 0x60" identifier + number_literal) ))))) ;) (expression_statement "uVar1 = *(undefined4 *)(param_1 + 0x58);" (assignment_expression "uVar1 = *(undefined4 *)(param_1 + 0x58)" identifier = (pointer_expression "*(undefined4 *)(param_1 + 0x58)" * (cast_expression "(undefined4 *)(param_1 + 0x58)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x58)" ( (binary_expression "param_1 + 0x58" identifier + number_literal) ))))) ;) (expression_statement "puVar14[2] = puVar14 + 4;" (assignment_expression "puVar14[2] = puVar14 + 4" (subscript_expression "puVar14[2]" identifier [ number_literal ]) = (binary_expression "puVar14 + 4" identifier + number_literal)) ;) (expression_statement "uVar7 = *(undefined8 *)(param_1 + 0x50);" (assignment_expression "uVar7 = *(undefined8 *)(param_1 + 0x50)" identifier = (pointer_expression "*(undefined8 *)(param_1 + 0x50)" * (cast_expression "(undefined8 *)(param_1 + 0x50)" ( (type_descriptor "undefined8 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x50)" ( (binary_expression "param_1 + 0x50" identifier + number_literal) ))))) ;) (expression_statement "uVar8 = *(undefined8 *)(param_1 + 0x38);" (assignment_expression "uVar8 = *(undefined8 *)(param_1 + 0x38)" identifier = (pointer_expression "*(undefined8 *)(param_1 + 0x38)" * (cast_expression "(undefined8 *)(param_1 + 0x38)" ( (type_descriptor "undefined8 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x38)" ( (binary_expression "param_1 + 0x38" identifier + number_literal) ))))) ;) (expression_statement "puVar14[0xd] = uVar5;" (assignment_expression "puVar14[0xd] = uVar5" (subscript_expression "puVar14[0xd]" identifier [ number_literal ]) = identifier) ;) (expression_statement "uVar5 = *(undefined8 *)(param_1 + 0x48);" (assignment_expression "uVar5 = *(undefined8 *)(param_1 + 0x48)" identifier = (pointer_expression "*(undefined8 *)(param_1 + 0x48)" * (cast_expression "(undefined8 *)(param_1 + 0x48)" ( (type_descriptor "undefined8 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x48)" ( (binary_expression "param_1 + 0x48" identifier + number_literal) ))))) ;) (expression_statement "uVar9 = *(undefined8 *)(param_1 + 0x40);" (assignment_expression "uVar9 = *(undefined8 *)(param_1 + 0x40)" identifier = (pointer_expression "*(undefined8 *)(param_1 + 0x40)" * (cast_expression "(undefined8 *)(param_1 + 0x40)" ( (type_descriptor "undefined8 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x40)" ( (binary_expression "param_1 + 0x40" identifier + number_literal) ))))) ;) (expression_statement "puVar14[0xf] = uVar4;" (assignment_expression "puVar14[0xf] = uVar4" (subscript_expression "puVar14[0xf]" identifier [ number_literal ]) = identifier) ;) (expression_statement "puVar14[1] = 0;" (assignment_expression "puVar14[1] = 0" (subscript_expression "puVar14[1]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "puVar14[3] = 0;" (assignment_expression "puVar14[3] = 0" (subscript_expression "puVar14[3]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "*(undefined1 *)(puVar14 + 6) = 0;" (assignment_expression "*(undefined1 *)(puVar14 + 6) = 0" (pointer_expression "*(undefined1 *)(puVar14 + 6)" * (cast_expression "(undefined1 *)(puVar14 + 6)" ( (type_descriptor "undefined1 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar14 + 6)" ( (binary_expression "puVar14 + 6" identifier + number_literal) )))) = number_literal) ;) (expression_statement "*puVar14 = &PTR_FUN_003ae430;" (assignment_expression "*puVar14 = &PTR_FUN_003ae430" (pointer_expression "*puVar14" * identifier) = (pointer_expression "&PTR_FUN_003ae430" & identifier)) ;) (expression_statement "puVar14[7] = uVar9;" (assignment_expression "puVar14[7] = uVar9" (subscript_expression "puVar14[7]" identifier [ number_literal ]) = identifier) ;) (expression_statement "puVar14[8] = uVar5;" (assignment_expression "puVar14[8] = uVar5" (subscript_expression "puVar14[8]" identifier [ number_literal ]) = identifier) ;) (expression_statement "puVar14[9] = uVar8;" (assignment_expression "puVar14[9] = uVar8" (subscript_expression "puVar14[9]" identifier [ number_literal ]) = identifier) ;) (expression_statement "puVar14[10] = uVar7;" (assignment_expression "puVar14[10] = uVar7" (subscript_expression "puVar14[10]" identifier [ number_literal ]) = identifier) ;) (expression_statement "*(undefined4 *)(puVar14 + 0xb) = uVar1;" (assignment_expression "*(undefined4 *)(puVar14 + 0xb) = uVar1" (pointer_expression "*(undefined4 *)(puVar14 + 0xb)" * (cast_expression "(undefined4 *)(puVar14 + 0xb)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar14 + 0xb)" ( (binary_expression "puVar14 + 0xb" identifier + number_literal) )))) = identifier) ;) (expression_statement "puVar14[0xc] = uVar6;" (assignment_expression "puVar14[0xc] = uVar6" (subscript_expression "puVar14[0xc]" identifier [ number_literal ]) = identifier) ;) (expression_statement "puVar14[0xe] = lVar16;" (assignment_expression "puVar14[0xe] = lVar16" (subscript_expression "puVar14[0xe]" identifier [ number_literal ]) = identifier) ;) (expression_statement "puVar14[0x10] = uVar17;" (assignment_expression "puVar14[0x10] = uVar17" (subscript_expression "puVar14[0x10]" identifier [ number_literal ]) = identifier) ;) (expression_statement "puVar14[0x11] = uVar2;" (assignment_expression "puVar14[0x11] = uVar2" (subscript_expression "puVar14[0x11]" identifier [ number_literal ]) = identifier) ;) (expression_statement "FUN_002300a0(param_2,puVar14);" (call_expression "FUN_002300a0(param_2,puVar14)" identifier (argument_list "(param_2,puVar14)" ( identifier , identifier ))) ;) (return_statement "return (uint)bVar11;" return (cast_expression "(uint)bVar11" ( (type_descriptor "uint" type_identifier) ) identifier) ;) })) }))) (expression_statement "FUN_0016cdf0("../../gold/options.h",0x828,&DAT_0031b73b);" (call_expression "FUN_0016cdf0("../../gold/options.h",0x828,&DAT_0031b73b)" identifier (argument_list "("../../gold/options.h",0x828,&DAT_0031b73b)" ( (string_literal ""../../gold/options.h"" " string_content ") , number_literal , (pointer_expression "&DAT_0031b73b" & identifier) ))) ;) })) (expression_statement "uVar2 = puVar14[5];" (assignment_expression "uVar2 = puVar14[5]" identifier = (subscript_expression "puVar14[5]" identifier [ number_literal ])) ;) (expression_statement "uVar17 = gettext("%s: file is empty");" (assignment_expression "uVar17 = gettext("%s: file is empty")" identifier = (call_expression "gettext("%s: file is empty")" identifier (argument_list "("%s: file is empty")" ( (string_literal ""%s: file is empty"" " string_content ") )))) ;) (expression_statement "FUN_001690a0(uVar17,uVar2);" (call_expression "FUN_001690a0(uVar17,uVar2)" identifier (argument_list "(uVar17,uVar2)" ( identifier , identifier ))) ;) })) (return_statement "return 0;" return number_literal ;) })))) (expression_statement "uVar13 = FUN_001f54c0(param_1,param_2);" (assignment_expression "uVar13 = FUN_001f54c0(param_1,param_2)" identifier = (call_expression "FUN_001f54c0(param_1,param_2)" identifier (argument_list "(param_1,param_2)" ( identifier , identifier )))) ;) (return_statement "return uVar13;" return identifier ;) })))
(translation_unit (function_definition TYPE (function_declarator IDENT (parameter_list ( (parameter_declaration (sized_type_specifier long) IDENT) , (parameter_declaration TYPE IDENT) ))) (compound_statement { (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration (sized_type_specifier long) IDENT ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE IDENT ;) (declaration (sized_type_specifier long) IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration (sized_type_specifier long) (pointer_declarator * IDENT) ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE (pointer_declarator * (pointer_declarator * IDENT)) ;) (declaration TYPE IDENT ;) (declaration (sized_type_specifier long) (pointer_declarator * IDENT) ;) (declaration TYPE (pointer_declarator * (array_declarator IDENT [ LIT ])) ;) (declaration TYPE (array_declarator IDENT [ LIT ]) ;) (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) (if_statement if (parenthesized_expression ( (binary_expression (pointer_expression * IDENT) == (char_literal ' escape_sequence ')) )) (compound_statement { (if_statement if (parenthesized_expression ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor (sized_type_specifier long) (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) == LIT) )) (compound_statement { (if_statement if (parenthesized_expression ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor (sized_type_specifier long) (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) != LIT) )) (compound_statement { (expression_statement (call_expression IDENT (argument_list ( (string_literal " string_content ") , LIT , (string_literal " string_content ") ))) ;) })) (expression_statement (call_expression IDENT (argument_list ( ))) ;) (return_statement return LIT ;) })) }) (else_clause else (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 (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (call_expression IDENT (argument_list ( 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 * IDENT) = (binary_expression IDENT + LIT)) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = (binary_expression IDENT + LIT)) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = LIT) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = LIT) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = (binary_expression IDENT + LIT)) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = (binary_expression IDENT + LIT)) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = (binary_expression IDENT + LIT)) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = LIT) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = LIT) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = 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) )))) = LIT) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = LIT) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = LIT) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = LIT) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor (sized_type_specifier long)) ) IDENT) + LIT) )))) = LIT) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = LIT) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = LIT) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = LIT) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = LIT) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = LIT) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = LIT) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = (binary_expression IDENT + LIT)) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = (binary_expression IDENT + LIT)) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = LIT) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = LIT) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = LIT) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = LIT) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = LIT) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor (sized_type_specifier long)) ) IDENT) + LIT) )))) = LIT) ;) (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( IDENT , IDENT , IDENT , (binary_expression IDENT + LIT) )))) ;) (if_statement if (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) != (char_literal ' escape_sequence ')) )) (compound_statement { (expression_statement (assignment_expression IDENT = (subscript_expression IDENT [ LIT ])) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT != LIT) )) (compound_statement { (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( IDENT , LIT , (pointer_expression & IDENT) , (pointer_expression & IDENT) )))) ;) (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression IDENT < LIT) )) || (parenthesized_expression ( (parenthesized_expression ( (comma_expression (assignment_expression IDENT = (pointer_expression * IDENT)) , (binary_expression (binary_expression IDENT != (binary_expression (binary_expression (binary_expression (binary_expression IDENT < IDENT) > IDENT) < IDENT) > (field_expression IDENT . field_identifier))) && (parenthesized_expression ( (binary_expression (binary_expression (binary_expression (binary_expression (binary_expression IDENT < IDENT) > IDENT) < IDENT) > (field_expression IDENT . field_identifier)) != IDENT) )))) )) ))) )) (compound_statement { (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor (sized_type_specifier long) (abstract_pointer_declarator *)) ) LIT)) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT != LIT) )) (compound_statement { (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) (subscript_expression IDENT [ LIT ])) & LIT) )))) ;) (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( IDENT )))) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) LIT)) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT != (char_literal ' escape_sequence ')) )) (compound_statement { (expression_statement (assignment_expression IDENT = IDENT) ;) })) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor (sized_type_specifier long) (abstract_pointer_declarator *)) ) (call_expression IDENT (argument_list ( (binary_expression IDENT + LIT) , IDENT , LIT , IDENT , (cast_expression ( (type_descriptor (sized_type_specifier long)) ) IDENT) , 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 ") ))) ;) })) (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor (sized_type_specifier long) (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) ))))) ;) (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression IDENT != LIT) )) && (parenthesized_expression ( (comma_expression (assignment_expression IDENT = (call_expression IDENT (argument_list ( IDENT , IDENT , LIT , IDENT , IDENT )))) , (binary_expression IDENT != LIT)) ))) )) (compound_statement { (if_statement if (parenthesized_expression ( (binary_expression IDENT != (cast_expression ( (type_descriptor (sized_type_specifier long) (abstract_pointer_declarator *)) ) LIT)) )) (compound_statement { (expression_statement (call_expression (parenthesized_expression ( (pointer_expression * (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression (pointer_expression * IDENT) + LIT) ))))) )) (argument_list ( IDENT ))) ;) })) (if_statement if (parenthesized_expression ( (binary_expression (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 ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor (sized_type_specifier long) (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) + LIT) , IDENT ))) ;) })) (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor (sized_type_specifier long) (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT == (cast_expression ( (type_descriptor (sized_type_specifier long) (abstract_pointer_declarator *)) ) LIT)) )) (compound_statement { (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (call_expression IDENT (argument_list ( LIT ))))) ;) (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) (expression_statement (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 * IDENT) = (pointer_expression & IDENT)) ;) (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = IDENT) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = IDENT) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = LIT) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = (binary_expression IDENT + LIT)) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = LIT) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = LIT) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = LIT) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = IDENT) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = IDENT) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = IDENT) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = LIT) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = LIT) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = IDENT) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = IDENT) ;) (expression_statement (call_expression IDENT (argument_list ( IDENT , IDENT ))) ;) (return_statement return IDENT ;) })) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = LIT) ;) (expression_statement (assignment_expression (pointer_expression * IDENT) = IDENT) ;) (return_statement return IDENT ;) })) (if_statement if (parenthesized_expression ( (binary_expression IDENT == LIT) )) (compound_statement { (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (call_expression IDENT (argument_list ( LIT ))))) ;) (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) (expression_statement (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 IDENT + LIT) )))) = LIT) ;) (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = (binary_expression IDENT + LIT)) ;) (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = IDENT) ;) (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = IDENT) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = LIT) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = LIT) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = LIT) ;) (expression_statement (assignment_expression (pointer_expression * IDENT) = (pointer_expression & IDENT)) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = IDENT) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = IDENT) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = IDENT) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = IDENT) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = IDENT) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = IDENT) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = IDENT) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = IDENT) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = IDENT) ;) (expression_statement (call_expression IDENT (argument_list ( IDENT , IDENT ))) ;) (return_statement return IDENT ;) })) (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 (cast_expression ( (type_descriptor TYPE) ) (subscript_expression IDENT [ LIT ])) == (char_literal ' escape_sequence ')) )) (compound_statement { (return_statement return LIT ;) })) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) (expression_statement (call_expression IDENT (argument_list ( (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) , IDENT ))) ;) (expression_statement (call_expression IDENT (argument_list ( IDENT ))) ;) (expression_statement (call_expression IDENT (argument_list ( IDENT , IDENT ))) ;) (expression_statement (call_expression IDENT (argument_list ( IDENT ))) ;) (if_statement if (parenthesized_expression ( (binary_expression (binary_expression IDENT + LIT) != (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (subscript_expression IDENT [ LIT ]))) )) (compound_statement { (expression_statement (call_expression IDENT (argument_list ( ))) ;) })) (expression_statement (call_expression IDENT (argument_list ( IDENT , LIT ))) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) + LIT)) ;) (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( IDENT , IDENT )))) ;) (return_statement return IDENT ;) })) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (call_expression IDENT (argument_list ( LIT ))))) ;) (expression_statement (assignment_expression (pointer_expression * IDENT) = LIT) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = LIT) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = LIT) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = LIT) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = LIT) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = LIT) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = LIT) ;) (expression_statement (call_expression (parenthesized_expression ( (pointer_expression * (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression (pointer_expression * IDENT) + LIT) ))))) )) (argument_list ( IDENT , IDENT ))) ;) (expression_statement (call_expression IDENT (argument_list ( (binary_expression IDENT + LIT) , IDENT ))) ;) (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT == (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT)) )) (compound_statement { (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (call_expression IDENT (argument_list ( LIT ))))) ;) (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = IDENT) ;) (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = (binary_expression IDENT + LIT)) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = IDENT) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = IDENT) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = LIT) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = LIT) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = LIT) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = LIT) ;) (expression_statement (assignment_expression (pointer_expression * IDENT) = (pointer_expression & IDENT)) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = IDENT) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = IDENT) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = IDENT) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = LIT) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = IDENT) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = IDENT) ;) (expression_statement (call_expression IDENT (argument_list ( IDENT , IDENT ))) ;) (return_statement return (cast_expression ( (type_descriptor TYPE) ) IDENT) ;) })) (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = IDENT) ;) (expression_statement (assignment_expression (pointer_expression * IDENT) = IDENT) ;) (expression_statement (assignment_expression IDENT = (pointer_expression * IDENT)) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT != LIT) )) (compound_statement { (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) (return_statement return (cast_expression ( (type_descriptor TYPE) ) IDENT) ;) })) }) (else_clause else (compound_statement { (expression_statement (assignment_expression IDENT = (pointer_expression * (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))))) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT != LIT) )) (compound_statement { (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) + LIT) ))))) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT)) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = IDENT) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT != (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT)) )) (compound_statement { (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( IDENT )))) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + IDENT)) ;) })) (expression_statement (call_expression IDENT (argument_list ( IDENT , IDENT , IDENT ))) ;) (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( LIT )))) ;) (expression_statement (call_expression IDENT (argument_list ( IDENT , IDENT , IDENT , (binary_expression IDENT == (binary_expression (binary_expression (binary_expression (binary_expression IDENT < IDENT) > IDENT) < IDENT) > (field_expression IDENT . field_identifier))) , (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) , IDENT ))) ;) (if_statement if (parenthesized_expression ( (binary_expression (subscript_expression IDENT [ LIT ]) != IDENT) )) (compound_statement { (expression_statement (call_expression IDENT (argument_list ( ))) ;) })) (expression_statement (call_expression IDENT (argument_list ( IDENT ))) ;) (expression_statement (call_expression IDENT (argument_list ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor (sized_type_specifier long) (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) + LIT) , IDENT ))) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (call_expression IDENT (argument_list ( LIT ))))) ;) (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) (expression_statement (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 IDENT + LIT) )))) = LIT) ;) (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = (binary_expression IDENT + LIT)) ;) (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = IDENT) ;) (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = IDENT) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = LIT) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = LIT) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = LIT) ;) (expression_statement (assignment_expression (pointer_expression * IDENT) = (pointer_expression & IDENT)) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = IDENT) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = IDENT) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = IDENT) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = IDENT) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = IDENT) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = IDENT) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = IDENT) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = IDENT) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = IDENT) ;) (expression_statement (call_expression IDENT (argument_list ( IDENT , IDENT ))) ;) (return_statement return (cast_expression ( (type_descriptor TYPE) ) IDENT) ;) })) }))) (expression_statement (call_expression IDENT (argument_list ( (string_literal " string_content ") , LIT , (pointer_expression & IDENT) ))) ;) })) (expression_statement (assignment_expression IDENT = (subscript_expression IDENT [ LIT ])) ;) (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( (string_literal " string_content ") )))) ;) (expression_statement (call_expression IDENT (argument_list ( IDENT , IDENT ))) ;) })) (return_statement return LIT ;) })))) (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( IDENT , IDENT )))) ;) (return_statement return IDENT ;) })))
(function_definition "uint FUN_001f5c10(long param_1,undefined8 param_2)\n\n{\n  undefined4 uVar1;\n  undefined8 uVar2;\n  long lVar3;\n  char *__s;\n  undefined8 uVar4;\n  undefined8 uVar5;\n  undefined8 uVar6;\n  undefined8 uVar7;\n  undefined8 uVar8;\n  undefined8 uVar9;\n  byte *pbVar10;\n  byte bVar11;\n  char cVar12;\n  uint uVar13;\n  undefined8 *puVar14;\n  size_t sVar15;\n  long lVar16;\n  undefined8 uVar17;\n  undefined8 *puVar18;\n  long *plVar19;\n  char *pcVar20;\n  undefined1 **ppuVar21;\n  int local_64;\n  long *local_60;\n  undefined1 *local_58 [2];\n  undefined1 local_48 [24];\n  \n  pcVar20 = *(char **)(param_1 + 0x68);\n  if (*pcVar20 == '\0') {\n    if (*(long *)(pcVar20 + 0x70) == 0) {\n      if (*(long *)(param_1 + 0x70) != 0) {\n                    \n        FUN_0016cdf0("../../gold/readsyms.cc",0x10b,"do_read_symbols");\n      }\n      FUN_001f5780();\n      return 1;\n    }\n  }\n  else if (*(long *)(pcVar20 + 0x70) == 0) {\n    puVar14 = (undefined8 *)FUN_00275550(0xe8);\n    uVar2 = *(undefined8 *)(param_1 + 0x50);\n    *puVar14 = pcVar20 + 8;\n    puVar14[1] = puVar14 + 3;\n    puVar14[2] = 0;\n    *(undefined1 *)(puVar14 + 3) = 0;\n    puVar14[5] = puVar14 + 7;\n    puVar14[0x13] = puVar14 + 0x11;\n    puVar14[0x14] = puVar14 + 0x11;\n    puVar14[6] = 0;\n    *(undefined1 *)(puVar14 + 7) = 0;\n    *(undefined4 *)(puVar14 + 9) = 0xffffffff;\n    *(undefined1 *)((long)puVar14 + 0x4c) = 0;\n    *(undefined4 *)(puVar14 + 10) = 0;\n    puVar14[0xb] = 0;\n    *(undefined1 *)(puVar14 + 0xc) = 0;\n    *(undefined4 *)((long)puVar14 + 100) = 0;\n    puVar14[0xd] = 0;\n    puVar14[0xe] = 0;\n    puVar14[0xf] = 0;\n    *(undefined4 *)(puVar14 + 0x11) = 0;\n    puVar14[0x12] = 0;\n    puVar14[0x15] = 0;\n    puVar14[0x17] = puVar14 + 0x16;\n    puVar14[0x16] = puVar14 + 0x16;\n    puVar14[0x18] = 0;\n    puVar14[0x19] = 0;\n    *(undefined1 *)(puVar14 + 0x1a) = 1;\n    puVar14[0x1b] = 0;\n    *(undefined1 *)(puVar14 + 0x1c) = 0;\n    *(undefined4 *)((long)puVar14 + 0xe4) = 0;\n    uVar13 = FUN_0016ca50(puVar14,uVar2,param_1,param_1 + 0x58);\n    if ((char)uVar13 != '\0') {\n      lVar16 = puVar14[0xb];\n      if (lVar16 != 0) {\n        bVar11 = FUN_0019b230(puVar14,0,&local_60,&local_64);\n        if ((local_64 < 8) ||\n           ((lVar3 = *local_60, lVar3 != s__<thin>__<arch>_N4gold7ArchiveE_00322e50._0_8_ &&\n            (s__<thin>__<arch>_N4gold7ArchiveE_00322e50._8_8_ != lVar3)))) {\n          plVar19 = (long *)0x0;\n          if (bVar11 != 0) {\n            local_58[0] = (undefined1 *)((ulong)local_58[0] & 0xffffffffffffff00);\n            cVar12 = FUN_0016b000(puVar14);\n            ppuVar21 = (undefined1 **)0x0;\n            if (cVar12 != '\0') {\n              ppuVar21 = local_58;\n            }\n            plVar19 = (long *)FUN_0019b3d0(puVar14 + 5,puVar14,0,local_60,(long)local_64,ppuVar21);\n          }\n          if (*(long *)(PTR_DAT_003be6b0 + 0x10) == 0) {\n                    \n            FUN_0016cdf0("../../gold/parameters.h",0x5c,"options");\n          }\n          lVar3 = *(long *)(*(long *)(PTR_DAT_003be6b0 + 0x10) + 0x9058);\n          if ((lVar3 != 0) && (lVar16 = FUN_001f1940(lVar3,puVar14,0,lVar16,plVar19), lVar16 != 0))\n          {\n            if (plVar19 != (long *)0x0) {\n              (**(code **)(*plVar19 + 8))(plVar19);\n            }\n            if (*(long *)(lVar16 + 0x28) != 0) {\n              FUN_0016ae30(*(long *)(lVar16 + 0x28) + 0x28,param_1);\n            }\n            plVar19 = *(long **)(param_1 + 0x78);\n            if (plVar19 == (long *)0x0) {\n              puVar14 = (undefined8 *)FUN_00275550(0x80);\n              uVar2 = *(undefined8 *)(param_1 + 0x68);\n              uVar17 = *(undefined8 *)(param_1 + 0x48);\n              uVar4 = *(undefined8 *)(param_1 + 0x40);\n              uVar5 = *(undefined8 *)(param_1 + 0x38);\n              *puVar14 = &PTR_FUN_003acf00;\n              uVar6 = *(undefined8 *)(param_1 + 0x88);\n              uVar7 = *(undefined8 *)(param_1 + 0x80);\n              puVar14[9] = uVar17;\n              puVar14[10] = uVar2;\n              puVar14[1] = 0;\n              puVar14[2] = puVar14 + 4;\n              puVar14[3] = 0;\n              *(undefined1 *)(puVar14 + 4) = 0;\n              *(undefined1 *)(puVar14 + 6) = 0;\n              puVar14[7] = uVar5;\n              puVar14[8] = uVar4;\n              puVar14[0xb] = lVar16;\n              puVar14[0xc] = 0;\n              puVar14[0xd] = 0;\n              puVar14[0xe] = uVar7;\n              puVar14[0xf] = uVar6;\n              FUN_002300a0(param_2,puVar14);\n              return uVar13;\n            }\n            plVar19[1] = 0;\n            *plVar19 = lVar16;\n            return uVar13;\n          }\n          if (bVar11 == 0) {\n            puVar18 = (undefined8 *)FUN_00275550(0x90);\n            uVar2 = *(undefined8 *)(param_1 + 0x88);\n            uVar17 = *(undefined8 *)(param_1 + 0x80);\n            uVar4 = *(undefined8 *)(param_1 + 0x68);\n            uVar5 = *(undefined8 *)(param_1 + 0x70);\n            *(undefined1 *)(puVar18 + 4) = 0;\n            uVar6 = *(undefined8 *)(param_1 + 0x60);\n            uVar7 = *(undefined8 *)(param_1 + 0x38);\n            puVar18[2] = puVar18 + 4;\n            uVar1 = *(undefined4 *)(param_1 + 0x58);\n            uVar8 = *(undefined8 *)(param_1 + 0x50);\n            puVar18[0xd] = uVar5;\n            uVar5 = *(undefined8 *)(param_1 + 0x48);\n            uVar9 = *(undefined8 *)(param_1 + 0x40);\n            puVar18[0xe] = uVar4;\n            puVar18[1] = 0;\n            puVar18[3] = 0;\n            *(undefined1 *)(puVar18 + 6) = 0;\n            *puVar18 = &PTR_FUN_003ad080;\n            puVar18[7] = uVar9;\n            puVar18[8] = uVar5;\n            puVar18[9] = uVar8;\n            *(undefined4 *)(puVar18 + 10) = uVar1;\n            puVar18[0xb] = uVar7;\n            puVar18[0xc] = uVar6;\n            puVar18[0xf] = puVar14;\n            puVar18[0x10] = uVar17;\n            puVar18[0x11] = uVar2;\n            FUN_00230080(param_2,puVar18);\n            return uVar13;\n          }\n          if (plVar19 == (long *)0x0) {\n            if ((char)local_58[0] == '\0') {\n              return 0;\n            }\n            puVar18 = puVar14 + 5;\n            FUN_001f51c0(*(undefined8 *)(param_1 + 0x68),puVar14);\n            FUN_0016ad00(puVar18);\n            FUN_0016ae30(puVar18,param_1);\n            FUN_0016b0b0(puVar18);\n            if (puVar14 + 3 != (undefined8 *)puVar14[1]) {\n              FUN_00276d20();\n            }\n            thunk_FUN_00276d20(puVar14,0xe8);\n            *(int *)(param_1 + 0x58) = *(int *)(param_1 + 0x58) + 1;\n            uVar13 = FUN_001f5c10(param_1,param_2);\n            return uVar13;\n          }\n          puVar18 = (undefined8 *)FUN_00275550(0x80);\n          *puVar18 = 0;\n          puVar18[1] = 0;\n          puVar18[3] = 0;\n          puVar18[6] = 0;\n          puVar18[8] = 0;\n          puVar18[10] = 0;\n          puVar18[0xd] = 0;\n          (**(code **)(*plVar19 + 0x40))(plVar19,puVar18);\n          FUN_0016ae30(puVar14 + 5,param_1);\n          puVar14 = *(undefined8 **)(param_1 + 0x78);\n          if (puVar14 == (undefined8 *)0x0) {\n            puVar14 = (undefined8 *)FUN_00275550(0x80);\n            uVar2 = *(undefined8 *)(param_1 + 0x68);\n            uVar17 = *(undefined8 *)(param_1 + 0x48);\n            uVar4 = *(undefined8 *)(param_1 + 0x40);\n            uVar5 = *(undefined8 *)(param_1 + 0x38);\n            puVar14[0xd] = puVar18;\n            uVar6 = *(undefined8 *)(param_1 + 0x88);\n            uVar7 = *(undefined8 *)(param_1 + 0x80);\n            puVar14[2] = puVar14 + 4;\n            puVar14[9] = uVar17;\n            puVar14[10] = uVar2;\n            puVar14[1] = 0;\n            puVar14[3] = 0;\n            *(undefined1 *)(puVar14 + 4) = 0;\n            *(undefined1 *)(puVar14 + 6) = 0;\n            *puVar14 = &PTR_FUN_003acf00;\n            puVar14[7] = uVar5;\n            puVar14[8] = uVar4;\n            puVar14[0xb] = plVar19;\n            puVar14[0xc] = 0;\n            puVar14[0xe] = uVar7;\n            puVar14[0xf] = uVar6;\n            FUN_002300a0(param_2,puVar14);\n            return (uint)bVar11;\n          }\n          pbVar10 = *(byte **)(param_1 + 0x68);\n          puVar14[1] = puVar18;\n          *puVar14 = plVar19;\n          bVar11 = *pbVar10;\n          if (bVar11 != 0) {\n            *(undefined4 *)(puVar14 + 2) = *(undefined4 *)(pbVar10 + 100);\n            return (uint)bVar11;\n          }\n        }\n        else {\n          bVar11 = **(byte **)(param_1 + 0x68);\n          if (bVar11 != 0) {\n            __s = *(char **)(*(byte **)(param_1 + 0x68) + 8);\n            pcVar20 = (char *)0xffffffffffffffff;\n            local_58[0] = local_48;\n            if (__s != (char *)0x0) {\n              sVar15 = strlen(__s);\n              pcVar20 = __s + sVar15;\n            }\n            FUN_0015cbe0(local_58,__s,pcVar20);\n                    \n            lVar16 = FUN_00275550(0x178);\n                    \n            FUN_00234b40(lVar16,local_58,puVar14,\n                         lVar3 == s__<thin>__<arch>_N4gold7ArchiveE_00322e50._0_8_,\n                         *(undefined8 *)(param_1 + 0x50),param_1);\n            if (local_58[0] != local_48) {\n              FUN_00276d20();\n            }\n            FUN_00235c40(lVar16);\n            FUN_0016ae30(*(long *)(lVar16 + 0x38) + 0x28,param_1);\n            puVar14 = (undefined8 *)FUN_00275550(0x90);\n            uVar2 = *(undefined8 *)(param_1 + 0x88);\n            uVar17 = *(undefined8 *)(param_1 + 0x80);\n            uVar4 = *(undefined8 *)(param_1 + 0x70);\n            uVar5 = *(undefined8 *)(param_1 + 0x68);\n            *(undefined1 *)(puVar14 + 4) = 0;\n            uVar6 = *(undefined8 *)(param_1 + 0x60);\n            uVar1 = *(undefined4 *)(param_1 + 0x58);\n            puVar14[2] = puVar14 + 4;\n            uVar7 = *(undefined8 *)(param_1 + 0x50);\n            uVar8 = *(undefined8 *)(param_1 + 0x38);\n            puVar14[0xd] = uVar5;\n            uVar5 = *(undefined8 *)(param_1 + 0x48);\n            uVar9 = *(undefined8 *)(param_1 + 0x40);\n            puVar14[0xf] = uVar4;\n            puVar14[1] = 0;\n            puVar14[3] = 0;\n            *(undefined1 *)(puVar14 + 6) = 0;\n            *puVar14 = &PTR_FUN_003ae430;\n            puVar14[7] = uVar9;\n            puVar14[8] = uVar5;\n            puVar14[9] = uVar8;\n            puVar14[10] = uVar7;\n            *(undefined4 *)(puVar14 + 0xb) = uVar1;\n            puVar14[0xc] = uVar6;\n            puVar14[0xe] = lVar16;\n            puVar14[0x10] = uVar17;\n            puVar14[0x11] = uVar2;\n            FUN_002300a0(param_2,puVar14);\n            return (uint)bVar11;\n          }\n        }\n                    \n        FUN_0016cdf0("../../gold/options.h",0x828,&DAT_0031b73b);\n      }\n      uVar2 = puVar14[5];\n      uVar17 = gettext("%s: file is empty");\n      FUN_001690a0(uVar17,uVar2);\n    }\n    return 0;\n  }\n  uVar13 = FUN_001f54c0(param_1,param_2);\n  return uVar13;\n}" (type_identifier "uint") (function_declarator "FUN_001f5c10(long param_1,undefined8 param_2)" (identifier "FUN_001f5c10") (parameter_list "(long param_1,undefined8 param_2)" (( "(") (parameter_declaration "long param_1" (sized_type_specifier "long" (long "long")) (identifier "param_1")) (, ",") (parameter_declaration "undefined8 param_2" (type_identifier "undefined8") (identifier "param_2")) () ")"))) (compound_statement "{\n  undefined4 uVar1;\n  undefined8 uVar2;\n  long lVar3;\n  char *__s;\n  undefined8 uVar4;\n  undefined8 uVar5;\n  undefined8 uVar6;\n  undefined8 uVar7;\n  undefined8 uVar8;\n  undefined8 uVar9;\n  byte *pbVar10;\n  byte bVar11;\n  char cVar12;\n  uint uVar13;\n  undefined8 *puVar14;\n  size_t sVar15;\n  long lVar16;\n  undefined8 uVar17;\n  undefined8 *puVar18;\n  long *plVar19;\n  char *pcVar20;\n  undefined1 **ppuVar21;\n  int local_64;\n  long *local_60;\n  undefined1 *local_58 [2];\n  undefined1 local_48 [24];\n  \n  pcVar20 = *(char **)(param_1 + 0x68);\n  if (*pcVar20 == '\0') {\n    if (*(long *)(pcVar20 + 0x70) == 0) {\n      if (*(long *)(param_1 + 0x70) != 0) {\n                    \n        FUN_0016cdf0("../../gold/readsyms.cc",0x10b,"do_read_symbols");\n      }\n      FUN_001f5780();\n      return 1;\n    }\n  }\n  else if (*(long *)(pcVar20 + 0x70) == 0) {\n    puVar14 = (undefined8 *)FUN_00275550(0xe8);\n    uVar2 = *(undefined8 *)(param_1 + 0x50);\n    *puVar14 = pcVar20 + 8;\n    puVar14[1] = puVar14 + 3;\n    puVar14[2] = 0;\n    *(undefined1 *)(puVar14 + 3) = 0;\n    puVar14[5] = puVar14 + 7;\n    puVar14[0x13] = puVar14 + 0x11;\n    puVar14[0x14] = puVar14 + 0x11;\n    puVar14[6] = 0;\n    *(undefined1 *)(puVar14 + 7) = 0;\n    *(undefined4 *)(puVar14 + 9) = 0xffffffff;\n    *(undefined1 *)((long)puVar14 + 0x4c) = 0;\n    *(undefined4 *)(puVar14 + 10) = 0;\n    puVar14[0xb] = 0;\n    *(undefined1 *)(puVar14 + 0xc) = 0;\n    *(undefined4 *)((long)puVar14 + 100) = 0;\n    puVar14[0xd] = 0;\n    puVar14[0xe] = 0;\n    puVar14[0xf] = 0;\n    *(undefined4 *)(puVar14 + 0x11) = 0;\n    puVar14[0x12] = 0;\n    puVar14[0x15] = 0;\n    puVar14[0x17] = puVar14 + 0x16;\n    puVar14[0x16] = puVar14 + 0x16;\n    puVar14[0x18] = 0;\n    puVar14[0x19] = 0;\n    *(undefined1 *)(puVar14 + 0x1a) = 1;\n    puVar14[0x1b] = 0;\n    *(undefined1 *)(puVar14 + 0x1c) = 0;\n    *(undefined4 *)((long)puVar14 + 0xe4) = 0;\n    uVar13 = FUN_0016ca50(puVar14,uVar2,param_1,param_1 + 0x58);\n    if ((char)uVar13 != '\0') {\n      lVar16 = puVar14[0xb];\n      if (lVar16 != 0) {\n        bVar11 = FUN_0019b230(puVar14,0,&local_60,&local_64);\n        if ((local_64 < 8) ||\n           ((lVar3 = *local_60, lVar3 != s__<thin>__<arch>_N4gold7ArchiveE_00322e50._0_8_ &&\n            (s__<thin>__<arch>_N4gold7ArchiveE_00322e50._8_8_ != lVar3)))) {\n          plVar19 = (long *)0x0;\n          if (bVar11 != 0) {\n            local_58[0] = (undefined1 *)((ulong)local_58[0] & 0xffffffffffffff00);\n            cVar12 = FUN_0016b000(puVar14);\n            ppuVar21 = (undefined1 **)0x0;\n            if (cVar12 != '\0') {\n              ppuVar21 = local_58;\n            }\n            plVar19 = (long *)FUN_0019b3d0(puVar14 + 5,puVar14,0,local_60,(long)local_64,ppuVar21);\n          }\n          if (*(long *)(PTR_DAT_003be6b0 + 0x10) == 0) {\n                    \n            FUN_0016cdf0("../../gold/parameters.h",0x5c,"options");\n          }\n          lVar3 = *(long *)(*(long *)(PTR_DAT_003be6b0 + 0x10) + 0x9058);\n          if ((lVar3 != 0) && (lVar16 = FUN_001f1940(lVar3,puVar14,0,lVar16,plVar19), lVar16 != 0))\n          {\n            if (plVar19 != (long *)0x0) {\n              (**(code **)(*plVar19 + 8))(plVar19);\n            }\n            if (*(long *)(lVar16 + 0x28) != 0) {\n              FUN_0016ae30(*(long *)(lVar16 + 0x28) + 0x28,param_1);\n            }\n            plVar19 = *(long **)(param_1 + 0x78);\n            if (plVar19 == (long *)0x0) {\n              puVar14 = (undefined8 *)FUN_00275550(0x80);\n              uVar2 = *(undefined8 *)(param_1 + 0x68);\n              uVar17 = *(undefined8 *)(param_1 + 0x48);\n              uVar4 = *(undefined8 *)(param_1 + 0x40);\n              uVar5 = *(undefined8 *)(param_1 + 0x38);\n              *puVar14 = &PTR_FUN_003acf00;\n              uVar6 = *(undefined8 *)(param_1 + 0x88);\n              uVar7 = *(undefined8 *)(param_1 + 0x80);\n              puVar14[9] = uVar17;\n              puVar14[10] = uVar2;\n              puVar14[1] = 0;\n              puVar14[2] = puVar14 + 4;\n              puVar14[3] = 0;\n              *(undefined1 *)(puVar14 + 4) = 0;\n              *(undefined1 *)(puVar14 + 6) = 0;\n              puVar14[7] = uVar5;\n              puVar14[8] = uVar4;\n              puVar14[0xb] = lVar16;\n              puVar14[0xc] = 0;\n              puVar14[0xd] = 0;\n              puVar14[0xe] = uVar7;\n              puVar14[0xf] = uVar6;\n              FUN_002300a0(param_2,puVar14);\n              return uVar13;\n            }\n            plVar19[1] = 0;\n            *plVar19 = lVar16;\n            return uVar13;\n          }\n          if (bVar11 == 0) {\n            puVar18 = (undefined8 *)FUN_00275550(0x90);\n            uVar2 = *(undefined8 *)(param_1 + 0x88);\n            uVar17 = *(undefined8 *)(param_1 + 0x80);\n            uVar4 = *(undefined8 *)(param_1 + 0x68);\n            uVar5 = *(undefined8 *)(param_1 + 0x70);\n            *(undefined1 *)(puVar18 + 4) = 0;\n            uVar6 = *(undefined8 *)(param_1 + 0x60);\n            uVar7 = *(undefined8 *)(param_1 + 0x38);\n            puVar18[2] = puVar18 + 4;\n            uVar1 = *(undefined4 *)(param_1 + 0x58);\n            uVar8 = *(undefined8 *)(param_1 + 0x50);\n            puVar18[0xd] = uVar5;\n            uVar5 = *(undefined8 *)(param_1 + 0x48);\n            uVar9 = *(undefined8 *)(param_1 + 0x40);\n            puVar18[0xe] = uVar4;\n            puVar18[1] = 0;\n            puVar18[3] = 0;\n            *(undefined1 *)(puVar18 + 6) = 0;\n            *puVar18 = &PTR_FUN_003ad080;\n            puVar18[7] = uVar9;\n            puVar18[8] = uVar5;\n            puVar18[9] = uVar8;\n            *(undefined4 *)(puVar18 + 10) = uVar1;\n            puVar18[0xb] = uVar7;\n            puVar18[0xc] = uVar6;\n            puVar18[0xf] = puVar14;\n            puVar18[0x10] = uVar17;\n            puVar18[0x11] = uVar2;\n            FUN_00230080(param_2,puVar18);\n            return uVar13;\n          }\n          if (plVar19 == (long *)0x0) {\n            if ((char)local_58[0] == '\0') {\n              return 0;\n            }\n            puVar18 = puVar14 + 5;\n            FUN_001f51c0(*(undefined8 *)(param_1 + 0x68),puVar14);\n            FUN_0016ad00(puVar18);\n            FUN_0016ae30(puVar18,param_1);\n            FUN_0016b0b0(puVar18);\n            if (puVar14 + 3 != (undefined8 *)puVar14[1]) {\n              FUN_00276d20();\n            }\n            thunk_FUN_00276d20(puVar14,0xe8);\n            *(int *)(param_1 + 0x58) = *(int *)(param_1 + 0x58) + 1;\n            uVar13 = FUN_001f5c10(param_1,param_2);\n            return uVar13;\n          }\n          puVar18 = (undefined8 *)FUN_00275550(0x80);\n          *puVar18 = 0;\n          puVar18[1] = 0;\n          puVar18[3] = 0;\n          puVar18[6] = 0;\n          puVar18[8] = 0;\n          puVar18[10] = 0;\n          puVar18[0xd] = 0;\n          (**(code **)(*plVar19 + 0x40))(plVar19,puVar18);\n          FUN_0016ae30(puVar14 + 5,param_1);\n          puVar14 = *(undefined8 **)(param_1 + 0x78);\n          if (puVar14 == (undefined8 *)0x0) {\n            puVar14 = (undefined8 *)FUN_00275550(0x80);\n            uVar2 = *(undefined8 *)(param_1 + 0x68);\n            uVar17 = *(undefined8 *)(param_1 + 0x48);\n            uVar4 = *(undefined8 *)(param_1 + 0x40);\n            uVar5 = *(undefined8 *)(param_1 + 0x38);\n            puVar14[0xd] = puVar18;\n            uVar6 = *(undefined8 *)(param_1 + 0x88);\n            uVar7 = *(undefined8 *)(param_1 + 0x80);\n            puVar14[2] = puVar14 + 4;\n            puVar14[9] = uVar17;\n            puVar14[10] = uVar2;\n            puVar14[1] = 0;\n            puVar14[3] = 0;\n            *(undefined1 *)(puVar14 + 4) = 0;\n            *(undefined1 *)(puVar14 + 6) = 0;\n            *puVar14 = &PTR_FUN_003acf00;\n            puVar14[7] = uVar5;\n            puVar14[8] = uVar4;\n            puVar14[0xb] = plVar19;\n            puVar14[0xc] = 0;\n            puVar14[0xe] = uVar7;\n            puVar14[0xf] = uVar6;\n            FUN_002300a0(param_2,puVar14);\n            return (uint)bVar11;\n          }\n          pbVar10 = *(byte **)(param_1 + 0x68);\n          puVar14[1] = puVar18;\n          *puVar14 = plVar19;\n          bVar11 = *pbVar10;\n          if (bVar11 != 0) {\n            *(undefined4 *)(puVar14 + 2) = *(undefined4 *)(pbVar10 + 100);\n            return (uint)bVar11;\n          }\n        }\n        else {\n          bVar11 = **(byte **)(param_1 + 0x68);\n          if (bVar11 != 0) {\n            __s = *(char **)(*(byte **)(param_1 + 0x68) + 8);\n            pcVar20 = (char *)0xffffffffffffffff;\n            local_58[0] = local_48;\n            if (__s != (char *)0x0) {\n              sVar15 = strlen(__s);\n              pcVar20 = __s + sVar15;\n            }\n            FUN_0015cbe0(local_58,__s,pcVar20);\n                    \n            lVar16 = FUN_00275550(0x178);\n                    \n            FUN_00234b40(lVar16,local_58,puVar14,\n                         lVar3 == s__<thin>__<arch>_N4gold7ArchiveE_00322e50._0_8_,\n                         *(undefined8 *)(param_1 + 0x50),param_1);\n            if (local_58[0] != local_48) {\n              FUN_00276d20();\n            }\n            FUN_00235c40(lVar16);\n            FUN_0016ae30(*(long *)(lVar16 + 0x38) + 0x28,param_1);\n            puVar14 = (undefined8 *)FUN_00275550(0x90);\n            uVar2 = *(undefined8 *)(param_1 + 0x88);\n            uVar17 = *(undefined8 *)(param_1 + 0x80);\n            uVar4 = *(undefined8 *)(param_1 + 0x70);\n            uVar5 = *(undefined8 *)(param_1 + 0x68);\n            *(undefined1 *)(puVar14 + 4) = 0;\n            uVar6 = *(undefined8 *)(param_1 + 0x60);\n            uVar1 = *(undefined4 *)(param_1 + 0x58);\n            puVar14[2] = puVar14 + 4;\n            uVar7 = *(undefined8 *)(param_1 + 0x50);\n            uVar8 = *(undefined8 *)(param_1 + 0x38);\n            puVar14[0xd] = uVar5;\n            uVar5 = *(undefined8 *)(param_1 + 0x48);\n            uVar9 = *(undefined8 *)(param_1 + 0x40);\n            puVar14[0xf] = uVar4;\n            puVar14[1] = 0;\n            puVar14[3] = 0;\n            *(undefined1 *)(puVar14 + 6) = 0;\n            *puVar14 = &PTR_FUN_003ae430;\n            puVar14[7] = uVar9;\n            puVar14[8] = uVar5;\n            puVar14[9] = uVar8;\n            puVar14[10] = uVar7;\n            *(undefined4 *)(puVar14 + 0xb) = uVar1;\n            puVar14[0xc] = uVar6;\n            puVar14[0xe] = lVar16;\n            puVar14[0x10] = uVar17;\n            puVar14[0x11] = uVar2;\n            FUN_002300a0(param_2,puVar14);\n            return (uint)bVar11;\n          }\n        }\n                    \n        FUN_0016cdf0("../../gold/options.h",0x828,&DAT_0031b73b);\n      }\n      uVar2 = puVar14[5];\n      uVar17 = gettext("%s: file is empty");\n      FUN_001690a0(uVar17,uVar2);\n    }\n    return 0;\n  }\n  uVar13 = FUN_001f54c0(param_1,param_2);\n  return uVar13;\n}" ({ "{") (declaration "undefined4 uVar1;" (type_identifier "undefined4") (identifier "uVar1") (; ";")) (declaration "undefined8 uVar2;" (type_identifier "undefined8") (identifier "uVar2") (; ";")) (declaration "long lVar3;" (sized_type_specifier "long" (long "long")) (identifier "lVar3") (; ";")) (declaration "char *__s;" (primitive_type "char") (pointer_declarator "*__s" (* "*") (identifier "__s")) (; ";")) (declaration "undefined8 uVar4;" (type_identifier "undefined8") (identifier "uVar4") (; ";")) (declaration "undefined8 uVar5;" (type_identifier "undefined8") (identifier "uVar5") (; ";")) (declaration "undefined8 uVar6;" (type_identifier "undefined8") (identifier "uVar6") (; ";")) (declaration "undefined8 uVar7;" (type_identifier "undefined8") (identifier "uVar7") (; ";")) (declaration "undefined8 uVar8;" (type_identifier "undefined8") (identifier "uVar8") (; ";")) (declaration "undefined8 uVar9;" (type_identifier "undefined8") (identifier "uVar9") (; ";")) (declaration "byte *pbVar10;" (type_identifier "byte") (pointer_declarator "*pbVar10" (* "*") (identifier "pbVar10")) (; ";")) (declaration "byte bVar11;" (type_identifier "byte") (identifier "bVar11") (; ";")) (declaration "char cVar12;" (primitive_type "char") (identifier "cVar12") (; ";")) (declaration "uint uVar13;" (type_identifier "uint") (identifier "uVar13") (; ";")) (declaration "undefined8 *puVar14;" (type_identifier "undefined8") (pointer_declarator "*puVar14" (* "*") (identifier "puVar14")) (; ";")) (declaration "size_t sVar15;" (primitive_type "size_t") (identifier "sVar15") (; ";")) (declaration "long lVar16;" (sized_type_specifier "long" (long "long")) (identifier "lVar16") (; ";")) (declaration "undefined8 uVar17;" (type_identifier "undefined8") (identifier "uVar17") (; ";")) (declaration "undefined8 *puVar18;" (type_identifier "undefined8") (pointer_declarator "*puVar18" (* "*") (identifier "puVar18")) (; ";")) (declaration "long *plVar19;" (sized_type_specifier "long" (long "long")) (pointer_declarator "*plVar19" (* "*") (identifier "plVar19")) (; ";")) (declaration "char *pcVar20;" (primitive_type "char") (pointer_declarator "*pcVar20" (* "*") (identifier "pcVar20")) (; ";")) (declaration "undefined1 **ppuVar21;" (type_identifier "undefined1") (pointer_declarator "**ppuVar21" (* "*") (pointer_declarator "*ppuVar21" (* "*") (identifier "ppuVar21"))) (; ";")) (declaration "int local_64;" (primitive_type "int") (identifier "local_64") (; ";")) (declaration "long *local_60;" (sized_type_specifier "long" (long "long")) (pointer_declarator "*local_60" (* "*") (identifier "local_60")) (; ";")) (declaration "undefined1 *local_58 [2];" (type_identifier "undefined1") (pointer_declarator "*local_58 [2]" (* "*") (array_declarator "local_58 [2]" (identifier "local_58") ([ "[") (number_literal "2") (] "]"))) (; ";")) (declaration "undefined1 local_48 [24];" (type_identifier "undefined1") (array_declarator "local_48 [24]" (identifier "local_48") ([ "[") (number_literal "24") (] "]")) (; ";")) (expression_statement "pcVar20 = *(char **)(param_1 + 0x68);" (assignment_expression "pcVar20 = *(char **)(param_1 + 0x68)" (identifier "pcVar20") (= "=") (pointer_expression "*(char **)(param_1 + 0x68)" (* "*") (cast_expression "(char **)(param_1 + 0x68)" (( "(") (type_descriptor "char **" (primitive_type "char") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(param_1 + 0x68)" (( "(") (binary_expression "param_1 + 0x68" (identifier "param_1") (+ "+") (number_literal "0x68")) () ")"))))) (; ";")) (if_statement "if (*pcVar20 == '\0') {\n    if (*(long *)(pcVar20 + 0x70) == 0) {\n      if (*(long *)(param_1 + 0x70) != 0) {\n                    \n        FUN_0016cdf0("../../gold/readsyms.cc",0x10b,"do_read_symbols");\n      }\n      FUN_001f5780();\n      return 1;\n    }\n  }\n  else if (*(long *)(pcVar20 + 0x70) == 0) {\n    puVar14 = (undefined8 *)FUN_00275550(0xe8);\n    uVar2 = *(undefined8 *)(param_1 + 0x50);\n    *puVar14 = pcVar20 + 8;\n    puVar14[1] = puVar14 + 3;\n    puVar14[2] = 0;\n    *(undefined1 *)(puVar14 + 3) = 0;\n    puVar14[5] = puVar14 + 7;\n    puVar14[0x13] = puVar14 + 0x11;\n    puVar14[0x14] = puVar14 + 0x11;\n    puVar14[6] = 0;\n    *(undefined1 *)(puVar14 + 7) = 0;\n    *(undefined4 *)(puVar14 + 9) = 0xffffffff;\n    *(undefined1 *)((long)puVar14 + 0x4c) = 0;\n    *(undefined4 *)(puVar14 + 10) = 0;\n    puVar14[0xb] = 0;\n    *(undefined1 *)(puVar14 + 0xc) = 0;\n    *(undefined4 *)((long)puVar14 + 100) = 0;\n    puVar14[0xd] = 0;\n    puVar14[0xe] = 0;\n    puVar14[0xf] = 0;\n    *(undefined4 *)(puVar14 + 0x11) = 0;\n    puVar14[0x12] = 0;\n    puVar14[0x15] = 0;\n    puVar14[0x17] = puVar14 + 0x16;\n    puVar14[0x16] = puVar14 + 0x16;\n    puVar14[0x18] = 0;\n    puVar14[0x19] = 0;\n    *(undefined1 *)(puVar14 + 0x1a) = 1;\n    puVar14[0x1b] = 0;\n    *(undefined1 *)(puVar14 + 0x1c) = 0;\n    *(undefined4 *)((long)puVar14 + 0xe4) = 0;\n    uVar13 = FUN_0016ca50(puVar14,uVar2,param_1,param_1 + 0x58);\n    if ((char)uVar13 != '\0') {\n      lVar16 = puVar14[0xb];\n      if (lVar16 != 0) {\n        bVar11 = FUN_0019b230(puVar14,0,&local_60,&local_64);\n        if ((local_64 < 8) ||\n           ((lVar3 = *local_60, lVar3 != s__<thin>__<arch>_N4gold7ArchiveE_00322e50._0_8_ &&\n            (s__<thin>__<arch>_N4gold7ArchiveE_00322e50._8_8_ != lVar3)))) {\n          plVar19 = (long *)0x0;\n          if (bVar11 != 0) {\n            local_58[0] = (undefined1 *)((ulong)local_58[0] & 0xffffffffffffff00);\n            cVar12 = FUN_0016b000(puVar14);\n            ppuVar21 = (undefined1 **)0x0;\n            if (cVar12 != '\0') {\n              ppuVar21 = local_58;\n            }\n            plVar19 = (long *)FUN_0019b3d0(puVar14 + 5,puVar14,0,local_60,(long)local_64,ppuVar21);\n          }\n          if (*(long *)(PTR_DAT_003be6b0 + 0x10) == 0) {\n                    \n            FUN_0016cdf0("../../gold/parameters.h",0x5c,"options");\n          }\n          lVar3 = *(long *)(*(long *)(PTR_DAT_003be6b0 + 0x10) + 0x9058);\n          if ((lVar3 != 0) && (lVar16 = FUN_001f1940(lVar3,puVar14,0,lVar16,plVar19), lVar16 != 0))\n          {\n            if (plVar19 != (long *)0x0) {\n              (**(code **)(*plVar19 + 8))(plVar19);\n            }\n            if (*(long *)(lVar16 + 0x28) != 0) {\n              FUN_0016ae30(*(long *)(lVar16 + 0x28) + 0x28,param_1);\n            }\n            plVar19 = *(long **)(param_1 + 0x78);\n            if (plVar19 == (long *)0x0) {\n              puVar14 = (undefined8 *)FUN_00275550(0x80);\n              uVar2 = *(undefined8 *)(param_1 + 0x68);\n              uVar17 = *(undefined8 *)(param_1 + 0x48);\n              uVar4 = *(undefined8 *)(param_1 + 0x40);\n              uVar5 = *(undefined8 *)(param_1 + 0x38);\n              *puVar14 = &PTR_FUN_003acf00;\n              uVar6 = *(undefined8 *)(param_1 + 0x88);\n              uVar7 = *(undefined8 *)(param_1 + 0x80);\n              puVar14[9] = uVar17;\n              puVar14[10] = uVar2;\n              puVar14[1] = 0;\n              puVar14[2] = puVar14 + 4;\n              puVar14[3] = 0;\n              *(undefined1 *)(puVar14 + 4) = 0;\n              *(undefined1 *)(puVar14 + 6) = 0;\n              puVar14[7] = uVar5;\n              puVar14[8] = uVar4;\n              puVar14[0xb] = lVar16;\n              puVar14[0xc] = 0;\n              puVar14[0xd] = 0;\n              puVar14[0xe] = uVar7;\n              puVar14[0xf] = uVar6;\n              FUN_002300a0(param_2,puVar14);\n              return uVar13;\n            }\n            plVar19[1] = 0;\n            *plVar19 = lVar16;\n            return uVar13;\n          }\n          if (bVar11 == 0) {\n            puVar18 = (undefined8 *)FUN_00275550(0x90);\n            uVar2 = *(undefined8 *)(param_1 + 0x88);\n            uVar17 = *(undefined8 *)(param_1 + 0x80);\n            uVar4 = *(undefined8 *)(param_1 + 0x68);\n            uVar5 = *(undefined8 *)(param_1 + 0x70);\n            *(undefined1 *)(puVar18 + 4) = 0;\n            uVar6 = *(undefined8 *)(param_1 + 0x60);\n            uVar7 = *(undefined8 *)(param_1 + 0x38);\n            puVar18[2] = puVar18 + 4;\n            uVar1 = *(undefined4 *)(param_1 + 0x58);\n            uVar8 = *(undefined8 *)(param_1 + 0x50);\n            puVar18[0xd] = uVar5;\n            uVar5 = *(undefined8 *)(param_1 + 0x48);\n            uVar9 = *(undefined8 *)(param_1 + 0x40);\n            puVar18[0xe] = uVar4;\n            puVar18[1] = 0;\n            puVar18[3] = 0;\n            *(undefined1 *)(puVar18 + 6) = 0;\n            *puVar18 = &PTR_FUN_003ad080;\n            puVar18[7] = uVar9;\n            puVar18[8] = uVar5;\n            puVar18[9] = uVar8;\n            *(undefined4 *)(puVar18 + 10) = uVar1;\n            puVar18[0xb] = uVar7;\n            puVar18[0xc] = uVar6;\n            puVar18[0xf] = puVar14;\n            puVar18[0x10] = uVar17;\n            puVar18[0x11] = uVar2;\n            FUN_00230080(param_2,puVar18);\n            return uVar13;\n          }\n          if (plVar19 == (long *)0x0) {\n            if ((char)local_58[0] == '\0') {\n              return 0;\n            }\n            puVar18 = puVar14 + 5;\n            FUN_001f51c0(*(undefined8 *)(param_1 + 0x68),puVar14);\n            FUN_0016ad00(puVar18);\n            FUN_0016ae30(puVar18,param_1);\n            FUN_0016b0b0(puVar18);\n            if (puVar14 + 3 != (undefined8 *)puVar14[1]) {\n              FUN_00276d20();\n            }\n            thunk_FUN_00276d20(puVar14,0xe8);\n            *(int *)(param_1 + 0x58) = *(int *)(param_1 + 0x58) + 1;\n            uVar13 = FUN_001f5c10(param_1,param_2);\n            return uVar13;\n          }\n          puVar18 = (undefined8 *)FUN_00275550(0x80);\n          *puVar18 = 0;\n          puVar18[1] = 0;\n          puVar18[3] = 0;\n          puVar18[6] = 0;\n          puVar18[8] = 0;\n          puVar18[10] = 0;\n          puVar18[0xd] = 0;\n          (**(code **)(*plVar19 + 0x40))(plVar19,puVar18);\n          FUN_0016ae30(puVar14 + 5,param_1);\n          puVar14 = *(undefined8 **)(param_1 + 0x78);\n          if (puVar14 == (undefined8 *)0x0) {\n            puVar14 = (undefined8 *)FUN_00275550(0x80);\n            uVar2 = *(undefined8 *)(param_1 + 0x68);\n            uVar17 = *(undefined8 *)(param_1 + 0x48);\n            uVar4 = *(undefined8 *)(param_1 + 0x40);\n            uVar5 = *(undefined8 *)(param_1 + 0x38);\n            puVar14[0xd] = puVar18;\n            uVar6 = *(undefined8 *)(param_1 + 0x88);\n            uVar7 = *(undefined8 *)(param_1 + 0x80);\n            puVar14[2] = puVar14 + 4;\n            puVar14[9] = uVar17;\n            puVar14[10] = uVar2;\n            puVar14[1] = 0;\n            puVar14[3] = 0;\n            *(undefined1 *)(puVar14 + 4) = 0;\n            *(undefined1 *)(puVar14 + 6) = 0;\n            *puVar14 = &PTR_FUN_003acf00;\n            puVar14[7] = uVar5;\n            puVar14[8] = uVar4;\n            puVar14[0xb] = plVar19;\n            puVar14[0xc] = 0;\n            puVar14[0xe] = uVar7;\n            puVar14[0xf] = uVar6;\n            FUN_002300a0(param_2,puVar14);\n            return (uint)bVar11;\n          }\n          pbVar10 = *(byte **)(param_1 + 0x68);\n          puVar14[1] = puVar18;\n          *puVar14 = plVar19;\n          bVar11 = *pbVar10;\n          if (bVar11 != 0) {\n            *(undefined4 *)(puVar14 + 2) = *(undefined4 *)(pbVar10 + 100);\n            return (uint)bVar11;\n          }\n        }\n        else {\n          bVar11 = **(byte **)(param_1 + 0x68);\n          if (bVar11 != 0) {\n            __s = *(char **)(*(byte **)(param_1 + 0x68) + 8);\n            pcVar20 = (char *)0xffffffffffffffff;\n            local_58[0] = local_48;\n            if (__s != (char *)0x0) {\n              sVar15 = strlen(__s);\n              pcVar20 = __s + sVar15;\n            }\n            FUN_0015cbe0(local_58,__s,pcVar20);\n                    \n            lVar16 = FUN_00275550(0x178);\n                    \n            FUN_00234b40(lVar16,local_58,puVar14,\n                         lVar3 == s__<thin>__<arch>_N4gold7ArchiveE_00322e50._0_8_,\n                         *(undefined8 *)(param_1 + 0x50),param_1);\n            if (local_58[0] != local_48) {\n              FUN_00276d20();\n            }\n            FUN_00235c40(lVar16);\n            FUN_0016ae30(*(long *)(lVar16 + 0x38) + 0x28,param_1);\n            puVar14 = (undefined8 *)FUN_00275550(0x90);\n            uVar2 = *(undefined8 *)(param_1 + 0x88);\n            uVar17 = *(undefined8 *)(param_1 + 0x80);\n            uVar4 = *(undefined8 *)(param_1 + 0x70);\n            uVar5 = *(undefined8 *)(param_1 + 0x68);\n            *(undefined1 *)(puVar14 + 4) = 0;\n            uVar6 = *(undefined8 *)(param_1 + 0x60);\n            uVar1 = *(undefined4 *)(param_1 + 0x58);\n            puVar14[2] = puVar14 + 4;\n            uVar7 = *(undefined8 *)(param_1 + 0x50);\n            uVar8 = *(undefined8 *)(param_1 + 0x38);\n            puVar14[0xd] = uVar5;\n            uVar5 = *(undefined8 *)(param_1 + 0x48);\n            uVar9 = *(undefined8 *)(param_1 + 0x40);\n            puVar14[0xf] = uVar4;\n            puVar14[1] = 0;\n            puVar14[3] = 0;\n            *(undefined1 *)(puVar14 + 6) = 0;\n            *puVar14 = &PTR_FUN_003ae430;\n            puVar14[7] = uVar9;\n            puVar14[8] = uVar5;\n            puVar14[9] = uVar8;\n            puVar14[10] = uVar7;\n            *(undefined4 *)(puVar14 + 0xb) = uVar1;\n            puVar14[0xc] = uVar6;\n            puVar14[0xe] = lVar16;\n            puVar14[0x10] = uVar17;\n            puVar14[0x11] = uVar2;\n            FUN_002300a0(param_2,puVar14);\n            return (uint)bVar11;\n          }\n        }\n                    \n        FUN_0016cdf0("../../gold/options.h",0x828,&DAT_0031b73b);\n      }\n      uVar2 = puVar14[5];\n      uVar17 = gettext("%s: file is empty");\n      FUN_001690a0(uVar17,uVar2);\n    }\n    return 0;\n  }" (if "if") (parenthesized_expression "(*pcVar20 == '\0')" (( "(") (binary_expression "*pcVar20 == '\0'" (pointer_expression "*pcVar20" (* "*") (identifier "pcVar20")) (== "==") (char_literal "'\0'" (' "'") (escape_sequence "\0") (' "'"))) () ")")) (compound_statement "{\n    if (*(long *)(pcVar20 + 0x70) == 0) {\n      if (*(long *)(param_1 + 0x70) != 0) {\n                    \n        FUN_0016cdf0("../../gold/readsyms.cc",0x10b,"do_read_symbols");\n      }\n      FUN_001f5780();\n      return 1;\n    }\n  }" ({ "{") (if_statement "if (*(long *)(pcVar20 + 0x70) == 0) {\n      if (*(long *)(param_1 + 0x70) != 0) {\n                    \n        FUN_0016cdf0("../../gold/readsyms.cc",0x10b,"do_read_symbols");\n      }\n      FUN_001f5780();\n      return 1;\n    }" (if "if") (parenthesized_expression "(*(long *)(pcVar20 + 0x70) == 0)" (( "(") (binary_expression "*(long *)(pcVar20 + 0x70) == 0" (pointer_expression "*(long *)(pcVar20 + 0x70)" (* "*") (cast_expression "(long *)(pcVar20 + 0x70)" (( "(") (type_descriptor "long *" (sized_type_specifier "long" (long "long")) (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(pcVar20 + 0x70)" (( "(") (binary_expression "pcVar20 + 0x70" (identifier "pcVar20") (+ "+") (number_literal "0x70")) () ")")))) (== "==") (number_literal "0")) () ")")) (compound_statement "{\n      if (*(long *)(param_1 + 0x70) != 0) {\n                    \n        FUN_0016cdf0("../../gold/readsyms.cc",0x10b,"do_read_symbols");\n      }\n      FUN_001f5780();\n      return 1;\n    }" ({ "{") (if_statement "if (*(long *)(param_1 + 0x70) != 0) {\n                    \n        FUN_0016cdf0("../../gold/readsyms.cc",0x10b,"do_read_symbols");\n      }" (if "if") (parenthesized_expression "(*(long *)(param_1 + 0x70) != 0)" (( "(") (binary_expression "*(long *)(param_1 + 0x70) != 0" (pointer_expression "*(long *)(param_1 + 0x70)" (* "*") (cast_expression "(long *)(param_1 + 0x70)" (( "(") (type_descriptor "long *" (sized_type_specifier "long" (long "long")) (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_1 + 0x70)" (( "(") (binary_expression "param_1 + 0x70" (identifier "param_1") (+ "+") (number_literal "0x70")) () ")")))) (!= "!=") (number_literal "0")) () ")")) (compound_statement "{\n                    \n        FUN_0016cdf0("../../gold/readsyms.cc",0x10b,"do_read_symbols");\n      }" ({ "{") (expression_statement "FUN_0016cdf0("../../gold/readsyms.cc",0x10b,"do_read_symbols");" (call_expression "FUN_0016cdf0("../../gold/readsyms.cc",0x10b,"do_read_symbols")" (identifier "FUN_0016cdf0") (argument_list "("../../gold/readsyms.cc",0x10b,"do_read_symbols")" (( "(") (string_literal ""../../gold/readsyms.cc"" (" """) (string_content "../../gold/readsyms.cc") (" """)) (, ",") (number_literal "0x10b") (, ",") (string_literal ""do_read_symbols"" (" """) (string_content "do_read_symbols") (" """)) () ")"))) (; ";")) (} "}"))) (expression_statement "FUN_001f5780();" (call_expression "FUN_001f5780()" (identifier "FUN_001f5780") (argument_list "()" (( "(") () ")"))) (; ";")) (return_statement "return 1;" (return "return") (number_literal "1") (; ";")) (} "}"))) (} "}")) (else_clause "else if (*(long *)(pcVar20 + 0x70) == 0) {\n    puVar14 = (undefined8 *)FUN_00275550(0xe8);\n    uVar2 = *(undefined8 *)(param_1 + 0x50);\n    *puVar14 = pcVar20 + 8;\n    puVar14[1] = puVar14 + 3;\n    puVar14[2] = 0;\n    *(undefined1 *)(puVar14 + 3) = 0;\n    puVar14[5] = puVar14 + 7;\n    puVar14[0x13] = puVar14 + 0x11;\n    puVar14[0x14] = puVar14 + 0x11;\n    puVar14[6] = 0;\n    *(undefined1 *)(puVar14 + 7) = 0;\n    *(undefined4 *)(puVar14 + 9) = 0xffffffff;\n    *(undefined1 *)((long)puVar14 + 0x4c) = 0;\n    *(undefined4 *)(puVar14 + 10) = 0;\n    puVar14[0xb] = 0;\n    *(undefined1 *)(puVar14 + 0xc) = 0;\n    *(undefined4 *)((long)puVar14 + 100) = 0;\n    puVar14[0xd] = 0;\n    puVar14[0xe] = 0;\n    puVar14[0xf] = 0;\n    *(undefined4 *)(puVar14 + 0x11) = 0;\n    puVar14[0x12] = 0;\n    puVar14[0x15] = 0;\n    puVar14[0x17] = puVar14 + 0x16;\n    puVar14[0x16] = puVar14 + 0x16;\n    puVar14[0x18] = 0;\n    puVar14[0x19] = 0;\n    *(undefined1 *)(puVar14 + 0x1a) = 1;\n    puVar14[0x1b] = 0;\n    *(undefined1 *)(puVar14 + 0x1c) = 0;\n    *(undefined4 *)((long)puVar14 + 0xe4) = 0;\n    uVar13 = FUN_0016ca50(puVar14,uVar2,param_1,param_1 + 0x58);\n    if ((char)uVar13 != '\0') {\n      lVar16 = puVar14[0xb];\n      if (lVar16 != 0) {\n        bVar11 = FUN_0019b230(puVar14,0,&local_60,&local_64);\n        if ((local_64 < 8) ||\n           ((lVar3 = *local_60, lVar3 != s__<thin>__<arch>_N4gold7ArchiveE_00322e50._0_8_ &&\n            (s__<thin>__<arch>_N4gold7ArchiveE_00322e50._8_8_ != lVar3)))) {\n          plVar19 = (long *)0x0;\n          if (bVar11 != 0) {\n            local_58[0] = (undefined1 *)((ulong)local_58[0] & 0xffffffffffffff00);\n            cVar12 = FUN_0016b000(puVar14);\n            ppuVar21 = (undefined1 **)0x0;\n            if (cVar12 != '\0') {\n              ppuVar21 = local_58;\n            }\n            plVar19 = (long *)FUN_0019b3d0(puVar14 + 5,puVar14,0,local_60,(long)local_64,ppuVar21);\n          }\n          if (*(long *)(PTR_DAT_003be6b0 + 0x10) == 0) {\n                    \n            FUN_0016cdf0("../../gold/parameters.h",0x5c,"options");\n          }\n          lVar3 = *(long *)(*(long *)(PTR_DAT_003be6b0 + 0x10) + 0x9058);\n          if ((lVar3 != 0) && (lVar16 = FUN_001f1940(lVar3,puVar14,0,lVar16,plVar19), lVar16 != 0))\n          {\n            if (plVar19 != (long *)0x0) {\n              (**(code **)(*plVar19 + 8))(plVar19);\n            }\n            if (*(long *)(lVar16 + 0x28) != 0) {\n              FUN_0016ae30(*(long *)(lVar16 + 0x28) + 0x28,param_1);\n            }\n            plVar19 = *(long **)(param_1 + 0x78);\n            if (plVar19 == (long *)0x0) {\n              puVar14 = (undefined8 *)FUN_00275550(0x80);\n              uVar2 = *(undefined8 *)(param_1 + 0x68);\n              uVar17 = *(undefined8 *)(param_1 + 0x48);\n              uVar4 = *(undefined8 *)(param_1 + 0x40);\n              uVar5 = *(undefined8 *)(param_1 + 0x38);\n              *puVar14 = &PTR_FUN_003acf00;\n              uVar6 = *(undefined8 *)(param_1 + 0x88);\n              uVar7 = *(undefined8 *)(param_1 + 0x80);\n              puVar14[9] = uVar17;\n              puVar14[10] = uVar2;\n              puVar14[1] = 0;\n              puVar14[2] = puVar14 + 4;\n              puVar14[3] = 0;\n              *(undefined1 *)(puVar14 + 4) = 0;\n              *(undefined1 *)(puVar14 + 6) = 0;\n              puVar14[7] = uVar5;\n              puVar14[8] = uVar4;\n              puVar14[0xb] = lVar16;\n              puVar14[0xc] = 0;\n              puVar14[0xd] = 0;\n              puVar14[0xe] = uVar7;\n              puVar14[0xf] = uVar6;\n              FUN_002300a0(param_2,puVar14);\n              return uVar13;\n            }\n            plVar19[1] = 0;\n            *plVar19 = lVar16;\n            return uVar13;\n          }\n          if (bVar11 == 0) {\n            puVar18 = (undefined8 *)FUN_00275550(0x90);\n            uVar2 = *(undefined8 *)(param_1 + 0x88);\n            uVar17 = *(undefined8 *)(param_1 + 0x80);\n            uVar4 = *(undefined8 *)(param_1 + 0x68);\n            uVar5 = *(undefined8 *)(param_1 + 0x70);\n            *(undefined1 *)(puVar18 + 4) = 0;\n            uVar6 = *(undefined8 *)(param_1 + 0x60);\n            uVar7 = *(undefined8 *)(param_1 + 0x38);\n            puVar18[2] = puVar18 + 4;\n            uVar1 = *(undefined4 *)(param_1 + 0x58);\n            uVar8 = *(undefined8 *)(param_1 + 0x50);\n            puVar18[0xd] = uVar5;\n            uVar5 = *(undefined8 *)(param_1 + 0x48);\n            uVar9 = *(undefined8 *)(param_1 + 0x40);\n            puVar18[0xe] = uVar4;\n            puVar18[1] = 0;\n            puVar18[3] = 0;\n            *(undefined1 *)(puVar18 + 6) = 0;\n            *puVar18 = &PTR_FUN_003ad080;\n            puVar18[7] = uVar9;\n            puVar18[8] = uVar5;\n            puVar18[9] = uVar8;\n            *(undefined4 *)(puVar18 + 10) = uVar1;\n            puVar18[0xb] = uVar7;\n            puVar18[0xc] = uVar6;\n            puVar18[0xf] = puVar14;\n            puVar18[0x10] = uVar17;\n            puVar18[0x11] = uVar2;\n            FUN_00230080(param_2,puVar18);\n            return uVar13;\n          }\n          if (plVar19 == (long *)0x0) {\n            if ((char)local_58[0] == '\0') {\n              return 0;\n            }\n            puVar18 = puVar14 + 5;\n            FUN_001f51c0(*(undefined8 *)(param_1 + 0x68),puVar14);\n            FUN_0016ad00(puVar18);\n            FUN_0016ae30(puVar18,param_1);\n            FUN_0016b0b0(puVar18);\n            if (puVar14 + 3 != (undefined8 *)puVar14[1]) {\n              FUN_00276d20();\n            }\n            thunk_FUN_00276d20(puVar14,0xe8);\n            *(int *)(param_1 + 0x58) = *(int *)(param_1 + 0x58) + 1;\n            uVar13 = FUN_001f5c10(param_1,param_2);\n            return uVar13;\n          }\n          puVar18 = (undefined8 *)FUN_00275550(0x80);\n          *puVar18 = 0;\n          puVar18[1] = 0;\n          puVar18[3] = 0;\n          puVar18[6] = 0;\n          puVar18[8] = 0;\n          puVar18[10] = 0;\n          puVar18[0xd] = 0;\n          (**(code **)(*plVar19 + 0x40))(plVar19,puVar18);\n          FUN_0016ae30(puVar14 + 5,param_1);\n          puVar14 = *(undefined8 **)(param_1 + 0x78);\n          if (puVar14 == (undefined8 *)0x0) {\n            puVar14 = (undefined8 *)FUN_00275550(0x80);\n            uVar2 = *(undefined8 *)(param_1 + 0x68);\n            uVar17 = *(undefined8 *)(param_1 + 0x48);\n            uVar4 = *(undefined8 *)(param_1 + 0x40);\n            uVar5 = *(undefined8 *)(param_1 + 0x38);\n            puVar14[0xd] = puVar18;\n            uVar6 = *(undefined8 *)(param_1 + 0x88);\n            uVar7 = *(undefined8 *)(param_1 + 0x80);\n            puVar14[2] = puVar14 + 4;\n            puVar14[9] = uVar17;\n            puVar14[10] = uVar2;\n            puVar14[1] = 0;\n            puVar14[3] = 0;\n            *(undefined1 *)(puVar14 + 4) = 0;\n            *(undefined1 *)(puVar14 + 6) = 0;\n            *puVar14 = &PTR_FUN_003acf00;\n            puVar14[7] = uVar5;\n            puVar14[8] = uVar4;\n            puVar14[0xb] = plVar19;\n            puVar14[0xc] = 0;\n            puVar14[0xe] = uVar7;\n            puVar14[0xf] = uVar6;\n            FUN_002300a0(param_2,puVar14);\n            return (uint)bVar11;\n          }\n          pbVar10 = *(byte **)(param_1 + 0x68);\n          puVar14[1] = puVar18;\n          *puVar14 = plVar19;\n          bVar11 = *pbVar10;\n          if (bVar11 != 0) {\n            *(undefined4 *)(puVar14 + 2) = *(undefined4 *)(pbVar10 + 100);\n            return (uint)bVar11;\n          }\n        }\n        else {\n          bVar11 = **(byte **)(param_1 + 0x68);\n          if (bVar11 != 0) {\n            __s = *(char **)(*(byte **)(param_1 + 0x68) + 8);\n            pcVar20 = (char *)0xffffffffffffffff;\n            local_58[0] = local_48;\n            if (__s != (char *)0x0) {\n              sVar15 = strlen(__s);\n              pcVar20 = __s + sVar15;\n            }\n            FUN_0015cbe0(local_58,__s,pcVar20);\n                    \n            lVar16 = FUN_00275550(0x178);\n                    \n            FUN_00234b40(lVar16,local_58,puVar14,\n                         lVar3 == s__<thin>__<arch>_N4gold7ArchiveE_00322e50._0_8_,\n                         *(undefined8 *)(param_1 + 0x50),param_1);\n            if (local_58[0] != local_48) {\n              FUN_00276d20();\n            }\n            FUN_00235c40(lVar16);\n            FUN_0016ae30(*(long *)(lVar16 + 0x38) + 0x28,param_1);\n            puVar14 = (undefined8 *)FUN_00275550(0x90);\n            uVar2 = *(undefined8 *)(param_1 + 0x88);\n            uVar17 = *(undefined8 *)(param_1 + 0x80);\n            uVar4 = *(undefined8 *)(param_1 + 0x70);\n            uVar5 = *(undefined8 *)(param_1 + 0x68);\n            *(undefined1 *)(puVar14 + 4) = 0;\n            uVar6 = *(undefined8 *)(param_1 + 0x60);\n            uVar1 = *(undefined4 *)(param_1 + 0x58);\n            puVar14[2] = puVar14 + 4;\n            uVar7 = *(undefined8 *)(param_1 + 0x50);\n            uVar8 = *(undefined8 *)(param_1 + 0x38);\n            puVar14[0xd] = uVar5;\n            uVar5 = *(undefined8 *)(param_1 + 0x48);\n            uVar9 = *(undefined8 *)(param_1 + 0x40);\n            puVar14[0xf] = uVar4;\n            puVar14[1] = 0;\n            puVar14[3] = 0;\n            *(undefined1 *)(puVar14 + 6) = 0;\n            *puVar14 = &PTR_FUN_003ae430;\n            puVar14[7] = uVar9;\n            puVar14[8] = uVar5;\n            puVar14[9] = uVar8;\n            puVar14[10] = uVar7;\n            *(undefined4 *)(puVar14 + 0xb) = uVar1;\n            puVar14[0xc] = uVar6;\n            puVar14[0xe] = lVar16;\n            puVar14[0x10] = uVar17;\n            puVar14[0x11] = uVar2;\n            FUN_002300a0(param_2,puVar14);\n            return (uint)bVar11;\n          }\n        }\n                    \n        FUN_0016cdf0("../../gold/options.h",0x828,&DAT_0031b73b);\n      }\n      uVar2 = puVar14[5];\n      uVar17 = gettext("%s: file is empty");\n      FUN_001690a0(uVar17,uVar2);\n    }\n    return 0;\n  }" (else "else") (if_statement "if (*(long *)(pcVar20 + 0x70) == 0) {\n    puVar14 = (undefined8 *)FUN_00275550(0xe8);\n    uVar2 = *(undefined8 *)(param_1 + 0x50);\n    *puVar14 = pcVar20 + 8;\n    puVar14[1] = puVar14 + 3;\n    puVar14[2] = 0;\n    *(undefined1 *)(puVar14 + 3) = 0;\n    puVar14[5] = puVar14 + 7;\n    puVar14[0x13] = puVar14 + 0x11;\n    puVar14[0x14] = puVar14 + 0x11;\n    puVar14[6] = 0;\n    *(undefined1 *)(puVar14 + 7) = 0;\n    *(undefined4 *)(puVar14 + 9) = 0xffffffff;\n    *(undefined1 *)((long)puVar14 + 0x4c) = 0;\n    *(undefined4 *)(puVar14 + 10) = 0;\n    puVar14[0xb] = 0;\n    *(undefined1 *)(puVar14 + 0xc) = 0;\n    *(undefined4 *)((long)puVar14 + 100) = 0;\n    puVar14[0xd] = 0;\n    puVar14[0xe] = 0;\n    puVar14[0xf] = 0;\n    *(undefined4 *)(puVar14 + 0x11) = 0;\n    puVar14[0x12] = 0;\n    puVar14[0x15] = 0;\n    puVar14[0x17] = puVar14 + 0x16;\n    puVar14[0x16] = puVar14 + 0x16;\n    puVar14[0x18] = 0;\n    puVar14[0x19] = 0;\n    *(undefined1 *)(puVar14 + 0x1a) = 1;\n    puVar14[0x1b] = 0;\n    *(undefined1 *)(puVar14 + 0x1c) = 0;\n    *(undefined4 *)((long)puVar14 + 0xe4) = 0;\n    uVar13 = FUN_0016ca50(puVar14,uVar2,param_1,param_1 + 0x58);\n    if ((char)uVar13 != '\0') {\n      lVar16 = puVar14[0xb];\n      if (lVar16 != 0) {\n        bVar11 = FUN_0019b230(puVar14,0,&local_60,&local_64);\n        if ((local_64 < 8) ||\n           ((lVar3 = *local_60, lVar3 != s__<thin>__<arch>_N4gold7ArchiveE_00322e50._0_8_ &&\n            (s__<thin>__<arch>_N4gold7ArchiveE_00322e50._8_8_ != lVar3)))) {\n          plVar19 = (long *)0x0;\n          if (bVar11 != 0) {\n            local_58[0] = (undefined1 *)((ulong)local_58[0] & 0xffffffffffffff00);\n            cVar12 = FUN_0016b000(puVar14);\n            ppuVar21 = (undefined1 **)0x0;\n            if (cVar12 != '\0') {\n              ppuVar21 = local_58;\n            }\n            plVar19 = (long *)FUN_0019b3d0(puVar14 + 5,puVar14,0,local_60,(long)local_64,ppuVar21);\n          }\n          if (*(long *)(PTR_DAT_003be6b0 + 0x10) == 0) {\n                    \n            FUN_0016cdf0("../../gold/parameters.h",0x5c,"options");\n          }\n          lVar3 = *(long *)(*(long *)(PTR_DAT_003be6b0 + 0x10) + 0x9058);\n          if ((lVar3 != 0) && (lVar16 = FUN_001f1940(lVar3,puVar14,0,lVar16,plVar19), lVar16 != 0))\n          {\n            if (plVar19 != (long *)0x0) {\n              (**(code **)(*plVar19 + 8))(plVar19);\n            }\n            if (*(long *)(lVar16 + 0x28) != 0) {\n              FUN_0016ae30(*(long *)(lVar16 + 0x28) + 0x28,param_1);\n            }\n            plVar19 = *(long **)(param_1 + 0x78);\n            if (plVar19 == (long *)0x0) {\n              puVar14 = (undefined8 *)FUN_00275550(0x80);\n              uVar2 = *(undefined8 *)(param_1 + 0x68);\n              uVar17 = *(undefined8 *)(param_1 + 0x48);\n              uVar4 = *(undefined8 *)(param_1 + 0x40);\n              uVar5 = *(undefined8 *)(param_1 + 0x38);\n              *puVar14 = &PTR_FUN_003acf00;\n              uVar6 = *(undefined8 *)(param_1 + 0x88);\n              uVar7 = *(undefined8 *)(param_1 + 0x80);\n              puVar14[9] = uVar17;\n              puVar14[10] = uVar2;\n              puVar14[1] = 0;\n              puVar14[2] = puVar14 + 4;\n              puVar14[3] = 0;\n              *(undefined1 *)(puVar14 + 4) = 0;\n              *(undefined1 *)(puVar14 + 6) = 0;\n              puVar14[7] = uVar5;\n              puVar14[8] = uVar4;\n              puVar14[0xb] = lVar16;\n              puVar14[0xc] = 0;\n              puVar14[0xd] = 0;\n              puVar14[0xe] = uVar7;\n              puVar14[0xf] = uVar6;\n              FUN_002300a0(param_2,puVar14);\n              return uVar13;\n            }\n            plVar19[1] = 0;\n            *plVar19 = lVar16;\n            return uVar13;\n          }\n          if (bVar11 == 0) {\n            puVar18 = (undefined8 *)FUN_00275550(0x90);\n            uVar2 = *(undefined8 *)(param_1 + 0x88);\n            uVar17 = *(undefined8 *)(param_1 + 0x80);\n            uVar4 = *(undefined8 *)(param_1 + 0x68);\n            uVar5 = *(undefined8 *)(param_1 + 0x70);\n            *(undefined1 *)(puVar18 + 4) = 0;\n            uVar6 = *(undefined8 *)(param_1 + 0x60);\n            uVar7 = *(undefined8 *)(param_1 + 0x38);\n            puVar18[2] = puVar18 + 4;\n            uVar1 = *(undefined4 *)(param_1 + 0x58);\n            uVar8 = *(undefined8 *)(param_1 + 0x50);\n            puVar18[0xd] = uVar5;\n            uVar5 = *(undefined8 *)(param_1 + 0x48);\n            uVar9 = *(undefined8 *)(param_1 + 0x40);\n            puVar18[0xe] = uVar4;\n            puVar18[1] = 0;\n            puVar18[3] = 0;\n            *(undefined1 *)(puVar18 + 6) = 0;\n            *puVar18 = &PTR_FUN_003ad080;\n            puVar18[7] = uVar9;\n            puVar18[8] = uVar5;\n            puVar18[9] = uVar8;\n            *(undefined4 *)(puVar18 + 10) = uVar1;\n            puVar18[0xb] = uVar7;\n            puVar18[0xc] = uVar6;\n            puVar18[0xf] = puVar14;\n            puVar18[0x10] = uVar17;\n            puVar18[0x11] = uVar2;\n            FUN_00230080(param_2,puVar18);\n            return uVar13;\n          }\n          if (plVar19 == (long *)0x0) {\n            if ((char)local_58[0] == '\0') {\n              return 0;\n            }\n            puVar18 = puVar14 + 5;\n            FUN_001f51c0(*(undefined8 *)(param_1 + 0x68),puVar14);\n            FUN_0016ad00(puVar18);\n            FUN_0016ae30(puVar18,param_1);\n            FUN_0016b0b0(puVar18);\n            if (puVar14 + 3 != (undefined8 *)puVar14[1]) {\n              FUN_00276d20();\n            }\n            thunk_FUN_00276d20(puVar14,0xe8);\n            *(int *)(param_1 + 0x58) = *(int *)(param_1 + 0x58) + 1;\n            uVar13 = FUN_001f5c10(param_1,param_2);\n            return uVar13;\n          }\n          puVar18 = (undefined8 *)FUN_00275550(0x80);\n          *puVar18 = 0;\n          puVar18[1] = 0;\n          puVar18[3] = 0;\n          puVar18[6] = 0;\n          puVar18[8] = 0;\n          puVar18[10] = 0;\n          puVar18[0xd] = 0;\n          (**(code **)(*plVar19 + 0x40))(plVar19,puVar18);\n          FUN_0016ae30(puVar14 + 5,param_1);\n          puVar14 = *(undefined8 **)(param_1 + 0x78);\n          if (puVar14 == (undefined8 *)0x0) {\n            puVar14 = (undefined8 *)FUN_00275550(0x80);\n            uVar2 = *(undefined8 *)(param_1 + 0x68);\n            uVar17 = *(undefined8 *)(param_1 + 0x48);\n            uVar4 = *(undefined8 *)(param_1 + 0x40);\n            uVar5 = *(undefined8 *)(param_1 + 0x38);\n            puVar14[0xd] = puVar18;\n            uVar6 = *(undefined8 *)(param_1 + 0x88);\n            uVar7 = *(undefined8 *)(param_1 + 0x80);\n            puVar14[2] = puVar14 + 4;\n            puVar14[9] = uVar17;\n            puVar14[10] = uVar2;\n            puVar14[1] = 0;\n            puVar14[3] = 0;\n            *(undefined1 *)(puVar14 + 4) = 0;\n            *(undefined1 *)(puVar14 + 6) = 0;\n            *puVar14 = &PTR_FUN_003acf00;\n            puVar14[7] = uVar5;\n            puVar14[8] = uVar4;\n            puVar14[0xb] = plVar19;\n            puVar14[0xc] = 0;\n            puVar14[0xe] = uVar7;\n            puVar14[0xf] = uVar6;\n            FUN_002300a0(param_2,puVar14);\n            return (uint)bVar11;\n          }\n          pbVar10 = *(byte **)(param_1 + 0x68);\n          puVar14[1] = puVar18;\n          *puVar14 = plVar19;\n          bVar11 = *pbVar10;\n          if (bVar11 != 0) {\n            *(undefined4 *)(puVar14 + 2) = *(undefined4 *)(pbVar10 + 100);\n            return (uint)bVar11;\n          }\n        }\n        else {\n          bVar11 = **(byte **)(param_1 + 0x68);\n          if (bVar11 != 0) {\n            __s = *(char **)(*(byte **)(param_1 + 0x68) + 8);\n            pcVar20 = (char *)0xffffffffffffffff;\n            local_58[0] = local_48;\n            if (__s != (char *)0x0) {\n              sVar15 = strlen(__s);\n              pcVar20 = __s + sVar15;\n            }\n            FUN_0015cbe0(local_58,__s,pcVar20);\n                    \n            lVar16 = FUN_00275550(0x178);\n                    \n            FUN_00234b40(lVar16,local_58,puVar14,\n                         lVar3 == s__<thin>__<arch>_N4gold7ArchiveE_00322e50._0_8_,\n                         *(undefined8 *)(param_1 + 0x50),param_1);\n            if (local_58[0] != local_48) {\n              FUN_00276d20();\n            }\n            FUN_00235c40(lVar16);\n            FUN_0016ae30(*(long *)(lVar16 + 0x38) + 0x28,param_1);\n            puVar14 = (undefined8 *)FUN_00275550(0x90);\n            uVar2 = *(undefined8 *)(param_1 + 0x88);\n            uVar17 = *(undefined8 *)(param_1 + 0x80);\n            uVar4 = *(undefined8 *)(param_1 + 0x70);\n            uVar5 = *(undefined8 *)(param_1 + 0x68);\n            *(undefined1 *)(puVar14 + 4) = 0;\n            uVar6 = *(undefined8 *)(param_1 + 0x60);\n            uVar1 = *(undefined4 *)(param_1 + 0x58);\n            puVar14[2] = puVar14 + 4;\n            uVar7 = *(undefined8 *)(param_1 + 0x50);\n            uVar8 = *(undefined8 *)(param_1 + 0x38);\n            puVar14[0xd] = uVar5;\n            uVar5 = *(undefined8 *)(param_1 + 0x48);\n            uVar9 = *(undefined8 *)(param_1 + 0x40);\n            puVar14[0xf] = uVar4;\n            puVar14[1] = 0;\n            puVar14[3] = 0;\n            *(undefined1 *)(puVar14 + 6) = 0;\n            *puVar14 = &PTR_FUN_003ae430;\n            puVar14[7] = uVar9;\n            puVar14[8] = uVar5;\n            puVar14[9] = uVar8;\n            puVar14[10] = uVar7;\n            *(undefined4 *)(puVar14 + 0xb) = uVar1;\n            puVar14[0xc] = uVar6;\n            puVar14[0xe] = lVar16;\n            puVar14[0x10] = uVar17;\n            puVar14[0x11] = uVar2;\n            FUN_002300a0(param_2,puVar14);\n            return (uint)bVar11;\n          }\n        }\n                    \n        FUN_0016cdf0("../../gold/options.h",0x828,&DAT_0031b73b);\n      }\n      uVar2 = puVar14[5];\n      uVar17 = gettext("%s: file is empty");\n      FUN_001690a0(uVar17,uVar2);\n    }\n    return 0;\n  }" (if "if") (parenthesized_expression "(*(long *)(pcVar20 + 0x70) == 0)" (( "(") (binary_expression "*(long *)(pcVar20 + 0x70) == 0" (pointer_expression "*(long *)(pcVar20 + 0x70)" (* "*") (cast_expression "(long *)(pcVar20 + 0x70)" (( "(") (type_descriptor "long *" (sized_type_specifier "long" (long "long")) (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(pcVar20 + 0x70)" (( "(") (binary_expression "pcVar20 + 0x70" (identifier "pcVar20") (+ "+") (number_literal "0x70")) () ")")))) (== "==") (number_literal "0")) () ")")) (compound_statement "{\n    puVar14 = (undefined8 *)FUN_00275550(0xe8);\n    uVar2 = *(undefined8 *)(param_1 + 0x50);\n    *puVar14 = pcVar20 + 8;\n    puVar14[1] = puVar14 + 3;\n    puVar14[2] = 0;\n    *(undefined1 *)(puVar14 + 3) = 0;\n    puVar14[5] = puVar14 + 7;\n    puVar14[0x13] = puVar14 + 0x11;\n    puVar14[0x14] = puVar14 + 0x11;\n    puVar14[6] = 0;\n    *(undefined1 *)(puVar14 + 7) = 0;\n    *(undefined4 *)(puVar14 + 9) = 0xffffffff;\n    *(undefined1 *)((long)puVar14 + 0x4c) = 0;\n    *(undefined4 *)(puVar14 + 10) = 0;\n    puVar14[0xb] = 0;\n    *(undefined1 *)(puVar14 + 0xc) = 0;\n    *(undefined4 *)((long)puVar14 + 100) = 0;\n    puVar14[0xd] = 0;\n    puVar14[0xe] = 0;\n    puVar14[0xf] = 0;\n    *(undefined4 *)(puVar14 + 0x11) = 0;\n    puVar14[0x12] = 0;\n    puVar14[0x15] = 0;\n    puVar14[0x17] = puVar14 + 0x16;\n    puVar14[0x16] = puVar14 + 0x16;\n    puVar14[0x18] = 0;\n    puVar14[0x19] = 0;\n    *(undefined1 *)(puVar14 + 0x1a) = 1;\n    puVar14[0x1b] = 0;\n    *(undefined1 *)(puVar14 + 0x1c) = 0;\n    *(undefined4 *)((long)puVar14 + 0xe4) = 0;\n    uVar13 = FUN_0016ca50(puVar14,uVar2,param_1,param_1 + 0x58);\n    if ((char)uVar13 != '\0') {\n      lVar16 = puVar14[0xb];\n      if (lVar16 != 0) {\n        bVar11 = FUN_0019b230(puVar14,0,&local_60,&local_64);\n        if ((local_64 < 8) ||\n           ((lVar3 = *local_60, lVar3 != s__<thin>__<arch>_N4gold7ArchiveE_00322e50._0_8_ &&\n            (s__<thin>__<arch>_N4gold7ArchiveE_00322e50._8_8_ != lVar3)))) {\n          plVar19 = (long *)0x0;\n          if (bVar11 != 0) {\n            local_58[0] = (undefined1 *)((ulong)local_58[0] & 0xffffffffffffff00);\n            cVar12 = FUN_0016b000(puVar14);\n            ppuVar21 = (undefined1 **)0x0;\n            if (cVar12 != '\0') {\n              ppuVar21 = local_58;\n            }\n            plVar19 = (long *)FUN_0019b3d0(puVar14 + 5,puVar14,0,local_60,(long)local_64,ppuVar21);\n          }\n          if (*(long *)(PTR_DAT_003be6b0 + 0x10) == 0) {\n                    \n            FUN_0016cdf0("../../gold/parameters.h",0x5c,"options");\n          }\n          lVar3 = *(long *)(*(long *)(PTR_DAT_003be6b0 + 0x10) + 0x9058);\n          if ((lVar3 != 0) && (lVar16 = FUN_001f1940(lVar3,puVar14,0,lVar16,plVar19), lVar16 != 0))\n          {\n            if (plVar19 != (long *)0x0) {\n              (**(code **)(*plVar19 + 8))(plVar19);\n            }\n            if (*(long *)(lVar16 + 0x28) != 0) {\n              FUN_0016ae30(*(long *)(lVar16 + 0x28) + 0x28,param_1);\n            }\n            plVar19 = *(long **)(param_1 + 0x78);\n            if (plVar19 == (long *)0x0) {\n              puVar14 = (undefined8 *)FUN_00275550(0x80);\n              uVar2 = *(undefined8 *)(param_1 + 0x68);\n              uVar17 = *(undefined8 *)(param_1 + 0x48);\n              uVar4 = *(undefined8 *)(param_1 + 0x40);\n              uVar5 = *(undefined8 *)(param_1 + 0x38);\n              *puVar14 = &PTR_FUN_003acf00;\n              uVar6 = *(undefined8 *)(param_1 + 0x88);\n              uVar7 = *(undefined8 *)(param_1 + 0x80);\n              puVar14[9] = uVar17;\n              puVar14[10] = uVar2;\n              puVar14[1] = 0;\n              puVar14[2] = puVar14 + 4;\n              puVar14[3] = 0;\n              *(undefined1 *)(puVar14 + 4) = 0;\n              *(undefined1 *)(puVar14 + 6) = 0;\n              puVar14[7] = uVar5;\n              puVar14[8] = uVar4;\n              puVar14[0xb] = lVar16;\n              puVar14[0xc] = 0;\n              puVar14[0xd] = 0;\n              puVar14[0xe] = uVar7;\n              puVar14[0xf] = uVar6;\n              FUN_002300a0(param_2,puVar14);\n              return uVar13;\n            }\n            plVar19[1] = 0;\n            *plVar19 = lVar16;\n            return uVar13;\n          }\n          if (bVar11 == 0) {\n            puVar18 = (undefined8 *)FUN_00275550(0x90);\n            uVar2 = *(undefined8 *)(param_1 + 0x88);\n            uVar17 = *(undefined8 *)(param_1 + 0x80);\n            uVar4 = *(undefined8 *)(param_1 + 0x68);\n            uVar5 = *(undefined8 *)(param_1 + 0x70);\n            *(undefined1 *)(puVar18 + 4) = 0;\n            uVar6 = *(undefined8 *)(param_1 + 0x60);\n            uVar7 = *(undefined8 *)(param_1 + 0x38);\n            puVar18[2] = puVar18 + 4;\n            uVar1 = *(undefined4 *)(param_1 + 0x58);\n            uVar8 = *(undefined8 *)(param_1 + 0x50);\n            puVar18[0xd] = uVar5;\n            uVar5 = *(undefined8 *)(param_1 + 0x48);\n            uVar9 = *(undefined8 *)(param_1 + 0x40);\n            puVar18[0xe] = uVar4;\n            puVar18[1] = 0;\n            puVar18[3] = 0;\n            *(undefined1 *)(puVar18 + 6) = 0;\n            *puVar18 = &PTR_FUN_003ad080;\n            puVar18[7] = uVar9;\n            puVar18[8] = uVar5;\n            puVar18[9] = uVar8;\n            *(undefined4 *)(puVar18 + 10) = uVar1;\n            puVar18[0xb] = uVar7;\n            puVar18[0xc] = uVar6;\n            puVar18[0xf] = puVar14;\n            puVar18[0x10] = uVar17;\n            puVar18[0x11] = uVar2;\n            FUN_00230080(param_2,puVar18);\n            return uVar13;\n          }\n          if (plVar19 == (long *)0x0) {\n            if ((char)local_58[0] == '\0') {\n              return 0;\n            }\n            puVar18 = puVar14 + 5;\n            FUN_001f51c0(*(undefined8 *)(param_1 + 0x68),puVar14);\n            FUN_0016ad00(puVar18);\n            FUN_0016ae30(puVar18,param_1);\n            FUN_0016b0b0(puVar18);\n            if (puVar14 + 3 != (undefined8 *)puVar14[1]) {\n              FUN_00276d20();\n            }\n            thunk_FUN_00276d20(puVar14,0xe8);\n            *(int *)(param_1 + 0x58) = *(int *)(param_1 + 0x58) + 1;\n            uVar13 = FUN_001f5c10(param_1,param_2);\n            return uVar13;\n          }\n          puVar18 = (undefined8 *)FUN_00275550(0x80);\n          *puVar18 = 0;\n          puVar18[1] = 0;\n          puVar18[3] = 0;\n          puVar18[6] = 0;\n          puVar18[8] = 0;\n          puVar18[10] = 0;\n          puVar18[0xd] = 0;\n          (**(code **)(*plVar19 + 0x40))(plVar19,puVar18);\n          FUN_0016ae30(puVar14 + 5,param_1);\n          puVar14 = *(undefined8 **)(param_1 + 0x78);\n          if (puVar14 == (undefined8 *)0x0) {\n            puVar14 = (undefined8 *)FUN_00275550(0x80);\n            uVar2 = *(undefined8 *)(param_1 + 0x68);\n            uVar17 = *(undefined8 *)(param_1 + 0x48);\n            uVar4 = *(undefined8 *)(param_1 + 0x40);\n            uVar5 = *(undefined8 *)(param_1 + 0x38);\n            puVar14[0xd] = puVar18;\n            uVar6 = *(undefined8 *)(param_1 + 0x88);\n            uVar7 = *(undefined8 *)(param_1 + 0x80);\n            puVar14[2] = puVar14 + 4;\n            puVar14[9] = uVar17;\n            puVar14[10] = uVar2;\n            puVar14[1] = 0;\n            puVar14[3] = 0;\n            *(undefined1 *)(puVar14 + 4) = 0;\n            *(undefined1 *)(puVar14 + 6) = 0;\n            *puVar14 = &PTR_FUN_003acf00;\n            puVar14[7] = uVar5;\n            puVar14[8] = uVar4;\n            puVar14[0xb] = plVar19;\n            puVar14[0xc] = 0;\n            puVar14[0xe] = uVar7;\n            puVar14[0xf] = uVar6;\n            FUN_002300a0(param_2,puVar14);\n            return (uint)bVar11;\n          }\n          pbVar10 = *(byte **)(param_1 + 0x68);\n          puVar14[1] = puVar18;\n          *puVar14 = plVar19;\n          bVar11 = *pbVar10;\n          if (bVar11 != 0) {\n            *(undefined4 *)(puVar14 + 2) = *(undefined4 *)(pbVar10 + 100);\n            return (uint)bVar11;\n          }\n        }\n        else {\n          bVar11 = **(byte **)(param_1 + 0x68);\n          if (bVar11 != 0) {\n            __s = *(char **)(*(byte **)(param_1 + 0x68) + 8);\n            pcVar20 = (char *)0xffffffffffffffff;\n            local_58[0] = local_48;\n            if (__s != (char *)0x0) {\n              sVar15 = strlen(__s);\n              pcVar20 = __s + sVar15;\n            }\n            FUN_0015cbe0(local_58,__s,pcVar20);\n                    \n            lVar16 = FUN_00275550(0x178);\n                    \n            FUN_00234b40(lVar16,local_58,puVar14,\n                         lVar3 == s__<thin>__<arch>_N4gold7ArchiveE_00322e50._0_8_,\n                         *(undefined8 *)(param_1 + 0x50),param_1);\n            if (local_58[0] != local_48) {\n              FUN_00276d20();\n            }\n            FUN_00235c40(lVar16);\n            FUN_0016ae30(*(long *)(lVar16 + 0x38) + 0x28,param_1);\n            puVar14 = (undefined8 *)FUN_00275550(0x90);\n            uVar2 = *(undefined8 *)(param_1 + 0x88);\n            uVar17 = *(undefined8 *)(param_1 + 0x80);\n            uVar4 = *(undefined8 *)(param_1 + 0x70);\n            uVar5 = *(undefined8 *)(param_1 + 0x68);\n            *(undefined1 *)(puVar14 + 4) = 0;\n            uVar6 = *(undefined8 *)(param_1 + 0x60);\n            uVar1 = *(undefined4 *)(param_1 + 0x58);\n            puVar14[2] = puVar14 + 4;\n            uVar7 = *(undefined8 *)(param_1 + 0x50);\n            uVar8 = *(undefined8 *)(param_1 + 0x38);\n            puVar14[0xd] = uVar5;\n            uVar5 = *(undefined8 *)(param_1 + 0x48);\n            uVar9 = *(undefined8 *)(param_1 + 0x40);\n            puVar14[0xf] = uVar4;\n            puVar14[1] = 0;\n            puVar14[3] = 0;\n            *(undefined1 *)(puVar14 + 6) = 0;\n            *puVar14 = &PTR_FUN_003ae430;\n            puVar14[7] = uVar9;\n            puVar14[8] = uVar5;\n            puVar14[9] = uVar8;\n            puVar14[10] = uVar7;\n            *(undefined4 *)(puVar14 + 0xb) = uVar1;\n            puVar14[0xc] = uVar6;\n            puVar14[0xe] = lVar16;\n            puVar14[0x10] = uVar17;\n            puVar14[0x11] = uVar2;\n            FUN_002300a0(param_2,puVar14);\n            return (uint)bVar11;\n          }\n        }\n                    \n        FUN_0016cdf0("../../gold/options.h",0x828,&DAT_0031b73b);\n      }\n      uVar2 = puVar14[5];\n      uVar17 = gettext("%s: file is empty");\n      FUN_001690a0(uVar17,uVar2);\n    }\n    return 0;\n  }" ({ "{") (expression_statement "puVar14 = (undefined8 *)FUN_00275550(0xe8);" (assignment_expression "puVar14 = (undefined8 *)FUN_00275550(0xe8)" (identifier "puVar14") (= "=") (cast_expression "(undefined8 *)FUN_00275550(0xe8)" (( "(") (type_descriptor "undefined8 *" (type_identifier "undefined8") (abstract_pointer_declarator "*" (* "*"))) () ")") (call_expression "FUN_00275550(0xe8)" (identifier "FUN_00275550") (argument_list "(0xe8)" (( "(") (number_literal "0xe8") () ")"))))) (; ";")) (expression_statement "uVar2 = *(undefined8 *)(param_1 + 0x50);" (assignment_expression "uVar2 = *(undefined8 *)(param_1 + 0x50)" (identifier "uVar2") (= "=") (pointer_expression "*(undefined8 *)(param_1 + 0x50)" (* "*") (cast_expression "(undefined8 *)(param_1 + 0x50)" (( "(") (type_descriptor "undefined8 *" (type_identifier "undefined8") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_1 + 0x50)" (( "(") (binary_expression "param_1 + 0x50" (identifier "param_1") (+ "+") (number_literal "0x50")) () ")"))))) (; ";")) (expression_statement "*puVar14 = pcVar20 + 8;" (assignment_expression "*puVar14 = pcVar20 + 8" (pointer_expression "*puVar14" (* "*") (identifier "puVar14")) (= "=") (binary_expression "pcVar20 + 8" (identifier "pcVar20") (+ "+") (number_literal "8"))) (; ";")) (expression_statement "puVar14[1] = puVar14 + 3;" (assignment_expression "puVar14[1] = puVar14 + 3" (subscript_expression "puVar14[1]" (identifier "puVar14") ([ "[") (number_literal "1") (] "]")) (= "=") (binary_expression "puVar14 + 3" (identifier "puVar14") (+ "+") (number_literal "3"))) (; ";")) (expression_statement "puVar14[2] = 0;" (assignment_expression "puVar14[2] = 0" (subscript_expression "puVar14[2]" (identifier "puVar14") ([ "[") (number_literal "2") (] "]")) (= "=") (number_literal "0")) (; ";")) (expression_statement "*(undefined1 *)(puVar14 + 3) = 0;" (assignment_expression "*(undefined1 *)(puVar14 + 3) = 0" (pointer_expression "*(undefined1 *)(puVar14 + 3)" (* "*") (cast_expression "(undefined1 *)(puVar14 + 3)" (( "(") (type_descriptor "undefined1 *" (type_identifier "undefined1") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar14 + 3)" (( "(") (binary_expression "puVar14 + 3" (identifier "puVar14") (+ "+") (number_literal "3")) () ")")))) (= "=") (number_literal "0")) (; ";")) (expression_statement "puVar14[5] = puVar14 + 7;" (assignment_expression "puVar14[5] = puVar14 + 7" (subscript_expression "puVar14[5]" (identifier "puVar14") ([ "[") (number_literal "5") (] "]")) (= "=") (binary_expression "puVar14 + 7" (identifier "puVar14") (+ "+") (number_literal "7"))) (; ";")) (expression_statement "puVar14[0x13] = puVar14 + 0x11;" (assignment_expression "puVar14[0x13] = puVar14 + 0x11" (subscript_expression "puVar14[0x13]" (identifier "puVar14") ([ "[") (number_literal "0x13") (] "]")) (= "=") (binary_expression "puVar14 + 0x11" (identifier "puVar14") (+ "+") (number_literal "0x11"))) (; ";")) (expression_statement "puVar14[0x14] = puVar14 + 0x11;" (assignment_expression "puVar14[0x14] = puVar14 + 0x11" (subscript_expression "puVar14[0x14]" (identifier "puVar14") ([ "[") (number_literal "0x14") (] "]")) (= "=") (binary_expression "puVar14 + 0x11" (identifier "puVar14") (+ "+") (number_literal "0x11"))) (; ";")) (expression_statement "puVar14[6] = 0;" (assignment_expression "puVar14[6] = 0" (subscript_expression "puVar14[6]" (identifier "puVar14") ([ "[") (number_literal "6") (] "]")) (= "=") (number_literal "0")) (; ";")) (expression_statement "*(undefined1 *)(puVar14 + 7) = 0;" (assignment_expression "*(undefined1 *)(puVar14 + 7) = 0" (pointer_expression "*(undefined1 *)(puVar14 + 7)" (* "*") (cast_expression "(undefined1 *)(puVar14 + 7)" (( "(") (type_descriptor "undefined1 *" (type_identifier "undefined1") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar14 + 7)" (( "(") (binary_expression "puVar14 + 7" (identifier "puVar14") (+ "+") (number_literal "7")) () ")")))) (= "=") (number_literal "0")) (; ";")) (expression_statement "*(undefined4 *)(puVar14 + 9) = 0xffffffff;" (assignment_expression "*(undefined4 *)(puVar14 + 9) = 0xffffffff" (pointer_expression "*(undefined4 *)(puVar14 + 9)" (* "*") (cast_expression "(undefined4 *)(puVar14 + 9)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar14 + 9)" (( "(") (binary_expression "puVar14 + 9" (identifier "puVar14") (+ "+") (number_literal "9")) () ")")))) (= "=") (number_literal "0xffffffff")) (; ";")) (expression_statement "*(undefined1 *)((long)puVar14 + 0x4c) = 0;" (assignment_expression "*(undefined1 *)((long)puVar14 + 0x4c) = 0" (pointer_expression "*(undefined1 *)((long)puVar14 + 0x4c)" (* "*") (cast_expression "(undefined1 *)((long)puVar14 + 0x4c)" (( "(") (type_descriptor "undefined1 *" (type_identifier "undefined1") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "((long)puVar14 + 0x4c)" (( "(") (binary_expression "(long)puVar14 + 0x4c" (cast_expression "(long)puVar14" (( "(") (type_descriptor "long" (sized_type_specifier "long" (long "long"))) () ")") (identifier "puVar14")) (+ "+") (number_literal "0x4c")) () ")")))) (= "=") (number_literal "0")) (; ";")) (expression_statement "*(undefined4 *)(puVar14 + 10) = 0;" (assignment_expression "*(undefined4 *)(puVar14 + 10) = 0" (pointer_expression "*(undefined4 *)(puVar14 + 10)" (* "*") (cast_expression "(undefined4 *)(puVar14 + 10)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar14 + 10)" (( "(") (binary_expression "puVar14 + 10" (identifier "puVar14") (+ "+") (number_literal "10")) () ")")))) (= "=") (number_literal "0")) (; ";")) (expression_statement "puVar14[0xb] = 0;" (assignment_expression "puVar14[0xb] = 0" (subscript_expression "puVar14[0xb]" (identifier "puVar14") ([ "[") (number_literal "0xb") (] "]")) (= "=") (number_literal "0")) (; ";")) (expression_statement "*(undefined1 *)(puVar14 + 0xc) = 0;" (assignment_expression "*(undefined1 *)(puVar14 + 0xc) = 0" (pointer_expression "*(undefined1 *)(puVar14 + 0xc)" (* "*") (cast_expression "(undefined1 *)(puVar14 + 0xc)" (( "(") (type_descriptor "undefined1 *" (type_identifier "undefined1") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar14 + 0xc)" (( "(") (binary_expression "puVar14 + 0xc" (identifier "puVar14") (+ "+") (number_literal "0xc")) () ")")))) (= "=") (number_literal "0")) (; ";")) (expression_statement "*(undefined4 *)((long)puVar14 + 100) = 0;" (assignment_expression "*(undefined4 *)((long)puVar14 + 100) = 0" (pointer_expression "*(undefined4 *)((long)puVar14 + 100)" (* "*") (cast_expression "(undefined4 *)((long)puVar14 + 100)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "((long)puVar14 + 100)" (( "(") (binary_expression "(long)puVar14 + 100" (cast_expression "(long)puVar14" (( "(") (type_descriptor "long" (sized_type_specifier "long" (long "long"))) () ")") (identifier "puVar14")) (+ "+") (number_literal "100")) () ")")))) (= "=") (number_literal "0")) (; ";")) (expression_statement "puVar14[0xd] = 0;" (assignment_expression "puVar14[0xd] = 0" (subscript_expression "puVar14[0xd]" (identifier "puVar14") ([ "[") (number_literal "0xd") (] "]")) (= "=") (number_literal "0")) (; ";")) (expression_statement "puVar14[0xe] = 0;" (assignment_expression "puVar14[0xe] = 0" (subscript_expression "puVar14[0xe]" (identifier "puVar14") ([ "[") (number_literal "0xe") (] "]")) (= "=") (number_literal "0")) (; ";")) (expression_statement "puVar14[0xf] = 0;" (assignment_expression "puVar14[0xf] = 0" (subscript_expression "puVar14[0xf]" (identifier "puVar14") ([ "[") (number_literal "0xf") (] "]")) (= "=") (number_literal "0")) (; ";")) (expression_statement "*(undefined4 *)(puVar14 + 0x11) = 0;" (assignment_expression "*(undefined4 *)(puVar14 + 0x11) = 0" (pointer_expression "*(undefined4 *)(puVar14 + 0x11)" (* "*") (cast_expression "(undefined4 *)(puVar14 + 0x11)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar14 + 0x11)" (( "(") (binary_expression "puVar14 + 0x11" (identifier "puVar14") (+ "+") (number_literal "0x11")) () ")")))) (= "=") (number_literal "0")) (; ";")) (expression_statement "puVar14[0x12] = 0;" (assignment_expression "puVar14[0x12] = 0" (subscript_expression "puVar14[0x12]" (identifier "puVar14") ([ "[") (number_literal "0x12") (] "]")) (= "=") (number_literal "0")) (; ";")) (expression_statement "puVar14[0x15] = 0;" (assignment_expression "puVar14[0x15] = 0" (subscript_expression "puVar14[0x15]" (identifier "puVar14") ([ "[") (number_literal "0x15") (] "]")) (= "=") (number_literal "0")) (; ";")) (expression_statement "puVar14[0x17] = puVar14 + 0x16;" (assignment_expression "puVar14[0x17] = puVar14 + 0x16" (subscript_expression "puVar14[0x17]" (identifier "puVar14") ([ "[") (number_literal "0x17") (] "]")) (= "=") (binary_expression "puVar14 + 0x16" (identifier "puVar14") (+ "+") (number_literal "0x16"))) (; ";")) (expression_statement "puVar14[0x16] = puVar14 + 0x16;" (assignment_expression "puVar14[0x16] = puVar14 + 0x16" (subscript_expression "puVar14[0x16]" (identifier "puVar14") ([ "[") (number_literal "0x16") (] "]")) (= "=") (binary_expression "puVar14 + 0x16" (identifier "puVar14") (+ "+") (number_literal "0x16"))) (; ";")) (expression_statement "puVar14[0x18] = 0;" (assignment_expression "puVar14[0x18] = 0" (subscript_expression "puVar14[0x18]" (identifier "puVar14") ([ "[") (number_literal "0x18") (] "]")) (= "=") (number_literal "0")) (; ";")) (expression_statement "puVar14[0x19] = 0;" (assignment_expression "puVar14[0x19] = 0" (subscript_expression "puVar14[0x19]" (identifier "puVar14") ([ "[") (number_literal "0x19") (] "]")) (= "=") (number_literal "0")) (; ";")) (expression_statement "*(undefined1 *)(puVar14 + 0x1a) = 1;" (assignment_expression "*(undefined1 *)(puVar14 + 0x1a) = 1" (pointer_expression "*(undefined1 *)(puVar14 + 0x1a)" (* "*") (cast_expression "(undefined1 *)(puVar14 + 0x1a)" (( "(") (type_descriptor "undefined1 *" (type_identifier "undefined1") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar14 + 0x1a)" (( "(") (binary_expression "puVar14 + 0x1a" (identifier "puVar14") (+ "+") (number_literal "0x1a")) () ")")))) (= "=") (number_literal "1")) (; ";")) (expression_statement "puVar14[0x1b] = 0;" (assignment_expression "puVar14[0x1b] = 0" (subscript_expression "puVar14[0x1b]" (identifier "puVar14") ([ "[") (number_literal "0x1b") (] "]")) (= "=") (number_literal "0")) (; ";")) (expression_statement "*(undefined1 *)(puVar14 + 0x1c) = 0;" (assignment_expression "*(undefined1 *)(puVar14 + 0x1c) = 0" (pointer_expression "*(undefined1 *)(puVar14 + 0x1c)" (* "*") (cast_expression "(undefined1 *)(puVar14 + 0x1c)" (( "(") (type_descriptor "undefined1 *" (type_identifier "undefined1") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar14 + 0x1c)" (( "(") (binary_expression "puVar14 + 0x1c" (identifier "puVar14") (+ "+") (number_literal "0x1c")) () ")")))) (= "=") (number_literal "0")) (; ";")) (expression_statement "*(undefined4 *)((long)puVar14 + 0xe4) = 0;" (assignment_expression "*(undefined4 *)((long)puVar14 + 0xe4) = 0" (pointer_expression "*(undefined4 *)((long)puVar14 + 0xe4)" (* "*") (cast_expression "(undefined4 *)((long)puVar14 + 0xe4)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "((long)puVar14 + 0xe4)" (( "(") (binary_expression "(long)puVar14 + 0xe4" (cast_expression "(long)puVar14" (( "(") (type_descriptor "long" (sized_type_specifier "long" (long "long"))) () ")") (identifier "puVar14")) (+ "+") (number_literal "0xe4")) () ")")))) (= "=") (number_literal "0")) (; ";")) (expression_statement "uVar13 = FUN_0016ca50(puVar14,uVar2,param_1,param_1 + 0x58);" (assignment_expression "uVar13 = FUN_0016ca50(puVar14,uVar2,param_1,param_1 + 0x58)" (identifier "uVar13") (= "=") (call_expression "FUN_0016ca50(puVar14,uVar2,param_1,param_1 + 0x58)" (identifier "FUN_0016ca50") (argument_list "(puVar14,uVar2,param_1,param_1 + 0x58)" (( "(") (identifier "puVar14") (, ",") (identifier "uVar2") (, ",") (identifier "param_1") (, ",") (binary_expression "param_1 + 0x58" (identifier "param_1") (+ "+") (number_literal "0x58")) () ")")))) (; ";")) (if_statement "if ((char)uVar13 != '\0') {\n      lVar16 = puVar14[0xb];\n      if (lVar16 != 0) {\n        bVar11 = FUN_0019b230(puVar14,0,&local_60,&local_64);\n        if ((local_64 < 8) ||\n           ((lVar3 = *local_60, lVar3 != s__<thin>__<arch>_N4gold7ArchiveE_00322e50._0_8_ &&\n            (s__<thin>__<arch>_N4gold7ArchiveE_00322e50._8_8_ != lVar3)))) {\n          plVar19 = (long *)0x0;\n          if (bVar11 != 0) {\n            local_58[0] = (undefined1 *)((ulong)local_58[0] & 0xffffffffffffff00);\n            cVar12 = FUN_0016b000(puVar14);\n            ppuVar21 = (undefined1 **)0x0;\n            if (cVar12 != '\0') {\n              ppuVar21 = local_58;\n            }\n            plVar19 = (long *)FUN_0019b3d0(puVar14 + 5,puVar14,0,local_60,(long)local_64,ppuVar21);\n          }\n          if (*(long *)(PTR_DAT_003be6b0 + 0x10) == 0) {\n                    \n            FUN_0016cdf0("../../gold/parameters.h",0x5c,"options");\n          }\n          lVar3 = *(long *)(*(long *)(PTR_DAT_003be6b0 + 0x10) + 0x9058);\n          if ((lVar3 != 0) && (lVar16 = FUN_001f1940(lVar3,puVar14,0,lVar16,plVar19), lVar16 != 0))\n          {\n            if (plVar19 != (long *)0x0) {\n              (**(code **)(*plVar19 + 8))(plVar19);\n            }\n            if (*(long *)(lVar16 + 0x28) != 0) {\n              FUN_0016ae30(*(long *)(lVar16 + 0x28) + 0x28,param_1);\n            }\n            plVar19 = *(long **)(param_1 + 0x78);\n            if (plVar19 == (long *)0x0) {\n              puVar14 = (undefined8 *)FUN_00275550(0x80);\n              uVar2 = *(undefined8 *)(param_1 + 0x68);\n              uVar17 = *(undefined8 *)(param_1 + 0x48);\n              uVar4 = *(undefined8 *)(param_1 + 0x40);\n              uVar5 = *(undefined8 *)(param_1 + 0x38);\n              *puVar14 = &PTR_FUN_003acf00;\n              uVar6 = *(undefined8 *)(param_1 + 0x88);\n              uVar7 = *(undefined8 *)(param_1 + 0x80);\n              puVar14[9] = uVar17;\n              puVar14[10] = uVar2;\n              puVar14[1] = 0;\n              puVar14[2] = puVar14 + 4;\n              puVar14[3] = 0;\n              *(undefined1 *)(puVar14 + 4) = 0;\n              *(undefined1 *)(puVar14 + 6) = 0;\n              puVar14[7] = uVar5;\n              puVar14[8] = uVar4;\n              puVar14[0xb] = lVar16;\n              puVar14[0xc] = 0;\n              puVar14[0xd] = 0;\n              puVar14[0xe] = uVar7;\n              puVar14[0xf] = uVar6;\n              FUN_002300a0(param_2,puVar14);\n              return uVar13;\n            }\n            plVar19[1] = 0;\n            *plVar19 = lVar16;\n            return uVar13;\n          }\n          if (bVar11 == 0) {\n            puVar18 = (undefined8 *)FUN_00275550(0x90);\n            uVar2 = *(undefined8 *)(param_1 + 0x88);\n            uVar17 = *(undefined8 *)(param_1 + 0x80);\n            uVar4 = *(undefined8 *)(param_1 + 0x68);\n            uVar5 = *(undefined8 *)(param_1 + 0x70);\n            *(undefined1 *)(puVar18 + 4) = 0;\n            uVar6 = *(undefined8 *)(param_1 + 0x60);\n            uVar7 = *(undefined8 *)(param_1 + 0x38);\n            puVar18[2] = puVar18 + 4;\n            uVar1 = *(undefined4 *)(param_1 + 0x58);\n            uVar8 = *(undefined8 *)(param_1 + 0x50);\n            puVar18[0xd] = uVar5;\n            uVar5 = *(undefined8 *)(param_1 + 0x48);\n            uVar9 = *(undefined8 *)(param_1 + 0x40);\n            puVar18[0xe] = uVar4;\n            puVar18[1] = 0;\n            puVar18[3] = 0;\n            *(undefined1 *)(puVar18 + 6) = 0;\n            *puVar18 = &PTR_FUN_003ad080;\n            puVar18[7] = uVar9;\n            puVar18[8] = uVar5;\n            puVar18[9] = uVar8;\n            *(undefined4 *)(puVar18 + 10) = uVar1;\n            puVar18[0xb] = uVar7;\n            puVar18[0xc] = uVar6;\n            puVar18[0xf] = puVar14;\n            puVar18[0x10] = uVar17;\n            puVar18[0x11] = uVar2;\n            FUN_00230080(param_2,puVar18);\n            return uVar13;\n          }\n          if (plVar19 == (long *)0x0) {\n            if ((char)local_58[0] == '\0') {\n              return 0;\n            }\n            puVar18 = puVar14 + 5;\n            FUN_001f51c0(*(undefined8 *)(param_1 + 0x68),puVar14);\n            FUN_0016ad00(puVar18);\n            FUN_0016ae30(puVar18,param_1);\n            FUN_0016b0b0(puVar18);\n            if (puVar14 + 3 != (undefined8 *)puVar14[1]) {\n              FUN_00276d20();\n            }\n            thunk_FUN_00276d20(puVar14,0xe8);\n            *(int *)(param_1 + 0x58) = *(int *)(param_1 + 0x58) + 1;\n            uVar13 = FUN_001f5c10(param_1,param_2);\n            return uVar13;\n          }\n          puVar18 = (undefined8 *)FUN_00275550(0x80);\n          *puVar18 = 0;\n          puVar18[1] = 0;\n          puVar18[3] = 0;\n          puVar18[6] = 0;\n          puVar18[8] = 0;\n          puVar18[10] = 0;\n          puVar18[0xd] = 0;\n          (**(code **)(*plVar19 + 0x40))(plVar19,puVar18);\n          FUN_0016ae30(puVar14 + 5,param_1);\n          puVar14 = *(undefined8 **)(param_1 + 0x78);\n          if (puVar14 == (undefined8 *)0x0) {\n            puVar14 = (undefined8 *)FUN_00275550(0x80);\n            uVar2 = *(undefined8 *)(param_1 + 0x68);\n            uVar17 = *(undefined8 *)(param_1 + 0x48);\n            uVar4 = *(undefined8 *)(param_1 + 0x40);\n            uVar5 = *(undefined8 *)(param_1 + 0x38);\n            puVar14[0xd] = puVar18;\n            uVar6 = *(undefined8 *)(param_1 + 0x88);\n            uVar7 = *(undefined8 *)(param_1 + 0x80);\n            puVar14[2] = puVar14 + 4;\n            puVar14[9] = uVar17;\n            puVar14[10] = uVar2;\n            puVar14[1] = 0;\n            puVar14[3] = 0;\n            *(undefined1 *)(puVar14 + 4) = 0;\n            *(undefined1 *)(puVar14 + 6) = 0;\n            *puVar14 = &PTR_FUN_003acf00;\n            puVar14[7] = uVar5;\n            puVar14[8] = uVar4;\n            puVar14[0xb] = plVar19;\n            puVar14[0xc] = 0;\n            puVar14[0xe] = uVar7;\n            puVar14[0xf] = uVar6;\n            FUN_002300a0(param_2,puVar14);\n            return (uint)bVar11;\n          }\n          pbVar10 = *(byte **)(param_1 + 0x68);\n          puVar14[1] = puVar18;\n          *puVar14 = plVar19;\n          bVar11 = *pbVar10;\n          if (bVar11 != 0) {\n            *(undefined4 *)(puVar14 + 2) = *(undefined4 *)(pbVar10 + 100);\n            return (uint)bVar11;\n          }\n        }\n        else {\n          bVar11 = **(byte **)(param_1 + 0x68);\n          if (bVar11 != 0) {\n            __s = *(char **)(*(byte **)(param_1 + 0x68) + 8);\n            pcVar20 = (char *)0xffffffffffffffff;\n            local_58[0] = local_48;\n            if (__s != (char *)0x0) {\n              sVar15 = strlen(__s);\n              pcVar20 = __s + sVar15;\n            }\n            FUN_0015cbe0(local_58,__s,pcVar20);\n                    \n            lVar16 = FUN_00275550(0x178);\n                    \n            FUN_00234b40(lVar16,local_58,puVar14,\n                         lVar3 == s__<thin>__<arch>_N4gold7ArchiveE_00322e50._0_8_,\n                         *(undefined8 *)(param_1 + 0x50),param_1);\n            if (local_58[0] != local_48) {\n              FUN_00276d20();\n            }\n            FUN_00235c40(lVar16);\n            FUN_0016ae30(*(long *)(lVar16 + 0x38) + 0x28,param_1);\n            puVar14 = (undefined8 *)FUN_00275550(0x90);\n            uVar2 = *(undefined8 *)(param_1 + 0x88);\n            uVar17 = *(undefined8 *)(param_1 + 0x80);\n            uVar4 = *(undefined8 *)(param_1 + 0x70);\n            uVar5 = *(undefined8 *)(param_1 + 0x68);\n            *(undefined1 *)(puVar14 + 4) = 0;\n            uVar6 = *(undefined8 *)(param_1 + 0x60);\n            uVar1 = *(undefined4 *)(param_1 + 0x58);\n            puVar14[2] = puVar14 + 4;\n            uVar7 = *(undefined8 *)(param_1 + 0x50);\n            uVar8 = *(undefined8 *)(param_1 + 0x38);\n            puVar14[0xd] = uVar5;\n            uVar5 = *(undefined8 *)(param_1 + 0x48);\n            uVar9 = *(undefined8 *)(param_1 + 0x40);\n            puVar14[0xf] = uVar4;\n            puVar14[1] = 0;\n            puVar14[3] = 0;\n            *(undefined1 *)(puVar14 + 6) = 0;\n            *puVar14 = &PTR_FUN_003ae430;\n            puVar14[7] = uVar9;\n            puVar14[8] = uVar5;\n            puVar14[9] = uVar8;\n            puVar14[10] = uVar7;\n            *(undefined4 *)(puVar14 + 0xb) = uVar1;\n            puVar14[0xc] = uVar6;\n            puVar14[0xe] = lVar16;\n            puVar14[0x10] = uVar17;\n            puVar14[0x11] = uVar2;\n            FUN_002300a0(param_2,puVar14);\n            return (uint)bVar11;\n          }\n        }\n                    \n        FUN_0016cdf0("../../gold/options.h",0x828,&DAT_0031b73b);\n      }\n      uVar2 = puVar14[5];\n      uVar17 = gettext("%s: file is empty");\n      FUN_001690a0(uVar17,uVar2);\n    }" (if "if") (parenthesized_expression "((char)uVar13 != '\0')" (( "(") (binary_expression "(char)uVar13 != '\0'" (cast_expression "(char)uVar13" (( "(") (type_descriptor "char" (primitive_type "char")) () ")") (identifier "uVar13")) (!= "!=") (char_literal "'\0'" (' "'") (escape_sequence "\0") (' "'"))) () ")")) (compound_statement "{\n      lVar16 = puVar14[0xb];\n      if (lVar16 != 0) {\n        bVar11 = FUN_0019b230(puVar14,0,&local_60,&local_64);\n        if ((local_64 < 8) ||\n           ((lVar3 = *local_60, lVar3 != s__<thin>__<arch>_N4gold7ArchiveE_00322e50._0_8_ &&\n            (s__<thin>__<arch>_N4gold7ArchiveE_00322e50._8_8_ != lVar3)))) {\n          plVar19 = (long *)0x0;\n          if (bVar11 != 0) {\n            local_58[0] = (undefined1 *)((ulong)local_58[0] & 0xffffffffffffff00);\n            cVar12 = FUN_0016b000(puVar14);\n            ppuVar21 = (undefined1 **)0x0;\n            if (cVar12 != '\0') {\n              ppuVar21 = local_58;\n            }\n            plVar19 = (long *)FUN_0019b3d0(puVar14 + 5,puVar14,0,local_60,(long)local_64,ppuVar21);\n          }\n          if (*(long *)(PTR_DAT_003be6b0 + 0x10) == 0) {\n                    \n            FUN_0016cdf0("../../gold/parameters.h",0x5c,"options");\n          }\n          lVar3 = *(long *)(*(long *)(PTR_DAT_003be6b0 + 0x10) + 0x9058);\n          if ((lVar3 != 0) && (lVar16 = FUN_001f1940(lVar3,puVar14,0,lVar16,plVar19), lVar16 != 0))\n          {\n            if (plVar19 != (long *)0x0) {\n              (**(code **)(*plVar19 + 8))(plVar19);\n            }\n            if (*(long *)(lVar16 + 0x28) != 0) {\n              FUN_0016ae30(*(long *)(lVar16 + 0x28) + 0x28,param_1);\n            }\n            plVar19 = *(long **)(param_1 + 0x78);\n            if (plVar19 == (long *)0x0) {\n              puVar14 = (undefined8 *)FUN_00275550(0x80);\n              uVar2 = *(undefined8 *)(param_1 + 0x68);\n              uVar17 = *(undefined8 *)(param_1 + 0x48);\n              uVar4 = *(undefined8 *)(param_1 + 0x40);\n              uVar5 = *(undefined8 *)(param_1 + 0x38);\n              *puVar14 = &PTR_FUN_003acf00;\n              uVar6 = *(undefined8 *)(param_1 + 0x88);\n              uVar7 = *(undefined8 *)(param_1 + 0x80);\n              puVar14[9] = uVar17;\n              puVar14[10] = uVar2;\n              puVar14[1] = 0;\n              puVar14[2] = puVar14 + 4;\n              puVar14[3] = 0;\n              *(undefined1 *)(puVar14 + 4) = 0;\n              *(undefined1 *)(puVar14 + 6) = 0;\n              puVar14[7] = uVar5;\n              puVar14[8] = uVar4;\n              puVar14[0xb] = lVar16;\n              puVar14[0xc] = 0;\n              puVar14[0xd] = 0;\n              puVar14[0xe] = uVar7;\n              puVar14[0xf] = uVar6;\n              FUN_002300a0(param_2,puVar14);\n              return uVar13;\n            }\n            plVar19[1] = 0;\n            *plVar19 = lVar16;\n            return uVar13;\n          }\n          if (bVar11 == 0) {\n            puVar18 = (undefined8 *)FUN_00275550(0x90);\n            uVar2 = *(undefined8 *)(param_1 + 0x88);\n            uVar17 = *(undefined8 *)(param_1 + 0x80);\n            uVar4 = *(undefined8 *)(param_1 + 0x68);\n            uVar5 = *(undefined8 *)(param_1 + 0x70);\n            *(undefined1 *)(puVar18 + 4) = 0;\n            uVar6 = *(undefined8 *)(param_1 + 0x60);\n            uVar7 = *(undefined8 *)(param_1 + 0x38);\n            puVar18[2] = puVar18 + 4;\n            uVar1 = *(undefined4 *)(param_1 + 0x58);\n            uVar8 = *(undefined8 *)(param_1 + 0x50);\n            puVar18[0xd] = uVar5;\n            uVar5 = *(undefined8 *)(param_1 + 0x48);\n            uVar9 = *(undefined8 *)(param_1 + 0x40);\n            puVar18[0xe] = uVar4;\n            puVar18[1] = 0;\n            puVar18[3] = 0;\n            *(undefined1 *)(puVar18 + 6) = 0;\n            *puVar18 = &PTR_FUN_003ad080;\n            puVar18[7] = uVar9;\n            puVar18[8] = uVar5;\n            puVar18[9] = uVar8;\n            *(undefined4 *)(puVar18 + 10) = uVar1;\n            puVar18[0xb] = uVar7;\n            puVar18[0xc] = uVar6;\n            puVar18[0xf] = puVar14;\n            puVar18[0x10] = uVar17;\n            puVar18[0x11] = uVar2;\n            FUN_00230080(param_2,puVar18);\n            return uVar13;\n          }\n          if (plVar19 == (long *)0x0) {\n            if ((char)local_58[0] == '\0') {\n              return 0;\n            }\n            puVar18 = puVar14 + 5;\n            FUN_001f51c0(*(undefined8 *)(param_1 + 0x68),puVar14);\n            FUN_0016ad00(puVar18);\n            FUN_0016ae30(puVar18,param_1);\n            FUN_0016b0b0(puVar18);\n            if (puVar14 + 3 != (undefined8 *)puVar14[1]) {\n              FUN_00276d20();\n            }\n            thunk_FUN_00276d20(puVar14,0xe8);\n            *(int *)(param_1 + 0x58) = *(int *)(param_1 + 0x58) + 1;\n            uVar13 = FUN_001f5c10(param_1,param_2);\n            return uVar13;\n          }\n          puVar18 = (undefined8 *)FUN_00275550(0x80);\n          *puVar18 = 0;\n          puVar18[1] = 0;\n          puVar18[3] = 0;\n          puVar18[6] = 0;\n          puVar18[8] = 0;\n          puVar18[10] = 0;\n          puVar18[0xd] = 0;\n          (**(code **)(*plVar19 + 0x40))(plVar19,puVar18);\n          FUN_0016ae30(puVar14 + 5,param_1);\n          puVar14 = *(undefined8 **)(param_1 + 0x78);\n          if (puVar14 == (undefined8 *)0x0) {\n            puVar14 = (undefined8 *)FUN_00275550(0x80);\n            uVar2 = *(undefined8 *)(param_1 + 0x68);\n            uVar17 = *(undefined8 *)(param_1 + 0x48);\n            uVar4 = *(undefined8 *)(param_1 + 0x40);\n            uVar5 = *(undefined8 *)(param_1 + 0x38);\n            puVar14[0xd] = puVar18;\n            uVar6 = *(undefined8 *)(param_1 + 0x88);\n            uVar7 = *(undefined8 *)(param_1 + 0x80);\n            puVar14[2] = puVar14 + 4;\n            puVar14[9] = uVar17;\n            puVar14[10] = uVar2;\n            puVar14[1] = 0;\n            puVar14[3] = 0;\n            *(undefined1 *)(puVar14 + 4) = 0;\n            *(undefined1 *)(puVar14 + 6) = 0;\n            *puVar14 = &PTR_FUN_003acf00;\n            puVar14[7] = uVar5;\n            puVar14[8] = uVar4;\n            puVar14[0xb] = plVar19;\n            puVar14[0xc] = 0;\n            puVar14[0xe] = uVar7;\n            puVar14[0xf] = uVar6;\n            FUN_002300a0(param_2,puVar14);\n            return (uint)bVar11;\n          }\n          pbVar10 = *(byte **)(param_1 + 0x68);\n          puVar14[1] = puVar18;\n          *puVar14 = plVar19;\n          bVar11 = *pbVar10;\n          if (bVar11 != 0) {\n            *(undefined4 *)(puVar14 + 2) = *(undefined4 *)(pbVar10 + 100);\n            return (uint)bVar11;\n          }\n        }\n        else {\n          bVar11 = **(byte **)(param_1 + 0x68);\n          if (bVar11 != 0) {\n            __s = *(char **)(*(byte **)(param_1 + 0x68) + 8);\n            pcVar20 = (char *)0xffffffffffffffff;\n            local_58[0] = local_48;\n            if (__s != (char *)0x0) {\n              sVar15 = strlen(__s);\n              pcVar20 = __s + sVar15;\n            }\n            FUN_0015cbe0(local_58,__s,pcVar20);\n                    \n            lVar16 = FUN_00275550(0x178);\n                    \n            FUN_00234b40(lVar16,local_58,puVar14,\n                         lVar3 == s__<thin>__<arch>_N4gold7ArchiveE_00322e50._0_8_,\n                         *(undefined8 *)(param_1 + 0x50),param_1);\n            if (local_58[0] != local_48) {\n              FUN_00276d20();\n            }\n            FUN_00235c40(lVar16);\n            FUN_0016ae30(*(long *)(lVar16 + 0x38) + 0x28,param_1);\n            puVar14 = (undefined8 *)FUN_00275550(0x90);\n            uVar2 = *(undefined8 *)(param_1 + 0x88);\n            uVar17 = *(undefined8 *)(param_1 + 0x80);\n            uVar4 = *(undefined8 *)(param_1 + 0x70);\n            uVar5 = *(undefined8 *)(param_1 + 0x68);\n            *(undefined1 *)(puVar14 + 4) = 0;\n            uVar6 = *(undefined8 *)(param_1 + 0x60);\n            uVar1 = *(undefined4 *)(param_1 + 0x58);\n            puVar14[2] = puVar14 + 4;\n            uVar7 = *(undefined8 *)(param_1 + 0x50);\n            uVar8 = *(undefined8 *)(param_1 + 0x38);\n            puVar14[0xd] = uVar5;\n            uVar5 = *(undefined8 *)(param_1 + 0x48);\n            uVar9 = *(undefined8 *)(param_1 + 0x40);\n            puVar14[0xf] = uVar4;\n            puVar14[1] = 0;\n            puVar14[3] = 0;\n            *(undefined1 *)(puVar14 + 6) = 0;\n            *puVar14 = &PTR_FUN_003ae430;\n            puVar14[7] = uVar9;\n            puVar14[8] = uVar5;\n            puVar14[9] = uVar8;\n            puVar14[10] = uVar7;\n            *(undefined4 *)(puVar14 + 0xb) = uVar1;\n            puVar14[0xc] = uVar6;\n            puVar14[0xe] = lVar16;\n            puVar14[0x10] = uVar17;\n            puVar14[0x11] = uVar2;\n            FUN_002300a0(param_2,puVar14);\n            return (uint)bVar11;\n          }\n        }\n                    \n        FUN_0016cdf0("../../gold/options.h",0x828,&DAT_0031b73b);\n      }\n      uVar2 = puVar14[5];\n      uVar17 = gettext("%s: file is empty");\n      FUN_001690a0(uVar17,uVar2);\n    }" ({ "{") (expression_statement "lVar16 = puVar14[0xb];" (assignment_expression "lVar16 = puVar14[0xb]" (identifier "lVar16") (= "=") (subscript_expression "puVar14[0xb]" (identifier "puVar14") ([ "[") (number_literal "0xb") (] "]"))) (; ";")) (if_statement "if (lVar16 != 0) {\n        bVar11 = FUN_0019b230(puVar14,0,&local_60,&local_64);\n        if ((local_64 < 8) ||\n           ((lVar3 = *local_60, lVar3 != s__<thin>__<arch>_N4gold7ArchiveE_00322e50._0_8_ &&\n            (s__<thin>__<arch>_N4gold7ArchiveE_00322e50._8_8_ != lVar3)))) {\n          plVar19 = (long *)0x0;\n          if (bVar11 != 0) {\n            local_58[0] = (undefined1 *)((ulong)local_58[0] & 0xffffffffffffff00);\n            cVar12 = FUN_0016b000(puVar14);\n            ppuVar21 = (undefined1 **)0x0;\n            if (cVar12 != '\0') {\n              ppuVar21 = local_58;\n            }\n            plVar19 = (long *)FUN_0019b3d0(puVar14 + 5,puVar14,0,local_60,(long)local_64,ppuVar21);\n          }\n          if (*(long *)(PTR_DAT_003be6b0 + 0x10) == 0) {\n                    \n            FUN_0016cdf0("../../gold/parameters.h",0x5c,"options");\n          }\n          lVar3 = *(long *)(*(long *)(PTR_DAT_003be6b0 + 0x10) + 0x9058);\n          if ((lVar3 != 0) && (lVar16 = FUN_001f1940(lVar3,puVar14,0,lVar16,plVar19), lVar16 != 0))\n          {\n            if (plVar19 != (long *)0x0) {\n              (**(code **)(*plVar19 + 8))(plVar19);\n            }\n            if (*(long *)(lVar16 + 0x28) != 0) {\n              FUN_0016ae30(*(long *)(lVar16 + 0x28) + 0x28,param_1);\n            }\n            plVar19 = *(long **)(param_1 + 0x78);\n            if (plVar19 == (long *)0x0) {\n              puVar14 = (undefined8 *)FUN_00275550(0x80);\n              uVar2 = *(undefined8 *)(param_1 + 0x68);\n              uVar17 = *(undefined8 *)(param_1 + 0x48);\n              uVar4 = *(undefined8 *)(param_1 + 0x40);\n              uVar5 = *(undefined8 *)(param_1 + 0x38);\n              *puVar14 = &PTR_FUN_003acf00;\n              uVar6 = *(undefined8 *)(param_1 + 0x88);\n              uVar7 = *(undefined8 *)(param_1 + 0x80);\n              puVar14[9] = uVar17;\n              puVar14[10] = uVar2;\n              puVar14[1] = 0;\n              puVar14[2] = puVar14 + 4;\n              puVar14[3] = 0;\n              *(undefined1 *)(puVar14 + 4) = 0;\n              *(undefined1 *)(puVar14 + 6) = 0;\n              puVar14[7] = uVar5;\n              puVar14[8] = uVar4;\n              puVar14[0xb] = lVar16;\n              puVar14[0xc] = 0;\n              puVar14[0xd] = 0;\n              puVar14[0xe] = uVar7;\n              puVar14[0xf] = uVar6;\n              FUN_002300a0(param_2,puVar14);\n              return uVar13;\n            }\n            plVar19[1] = 0;\n            *plVar19 = lVar16;\n            return uVar13;\n          }\n          if (bVar11 == 0) {\n            puVar18 = (undefined8 *)FUN_00275550(0x90);\n            uVar2 = *(undefined8 *)(param_1 + 0x88);\n            uVar17 = *(undefined8 *)(param_1 + 0x80);\n            uVar4 = *(undefined8 *)(param_1 + 0x68);\n            uVar5 = *(undefined8 *)(param_1 + 0x70);\n            *(undefined1 *)(puVar18 + 4) = 0;\n            uVar6 = *(undefined8 *)(param_1 + 0x60);\n            uVar7 = *(undefined8 *)(param_1 + 0x38);\n            puVar18[2] = puVar18 + 4;\n            uVar1 = *(undefined4 *)(param_1 + 0x58);\n            uVar8 = *(undefined8 *)(param_1 + 0x50);\n            puVar18[0xd] = uVar5;\n            uVar5 = *(undefined8 *)(param_1 + 0x48);\n            uVar9 = *(undefined8 *)(param_1 + 0x40);\n            puVar18[0xe] = uVar4;\n            puVar18[1] = 0;\n            puVar18[3] = 0;\n            *(undefined1 *)(puVar18 + 6) = 0;\n            *puVar18 = &PTR_FUN_003ad080;\n            puVar18[7] = uVar9;\n            puVar18[8] = uVar5;\n            puVar18[9] = uVar8;\n            *(undefined4 *)(puVar18 + 10) = uVar1;\n            puVar18[0xb] = uVar7;\n            puVar18[0xc] = uVar6;\n            puVar18[0xf] = puVar14;\n            puVar18[0x10] = uVar17;\n            puVar18[0x11] = uVar2;\n            FUN_00230080(param_2,puVar18);\n            return uVar13;\n          }\n          if (plVar19 == (long *)0x0) {\n            if ((char)local_58[0] == '\0') {\n              return 0;\n            }\n            puVar18 = puVar14 + 5;\n            FUN_001f51c0(*(undefined8 *)(param_1 + 0x68),puVar14);\n            FUN_0016ad00(puVar18);\n            FUN_0016ae30(puVar18,param_1);\n            FUN_0016b0b0(puVar18);\n            if (puVar14 + 3 != (undefined8 *)puVar14[1]) {\n              FUN_00276d20();\n            }\n            thunk_FUN_00276d20(puVar14,0xe8);\n            *(int *)(param_1 + 0x58) = *(int *)(param_1 + 0x58) + 1;\n            uVar13 = FUN_001f5c10(param_1,param_2);\n            return uVar13;\n          }\n          puVar18 = (undefined8 *)FUN_00275550(0x80);\n          *puVar18 = 0;\n          puVar18[1] = 0;\n          puVar18[3] = 0;\n          puVar18[6] = 0;\n          puVar18[8] = 0;\n          puVar18[10] = 0;\n          puVar18[0xd] = 0;\n          (**(code **)(*plVar19 + 0x40))(plVar19,puVar18);\n          FUN_0016ae30(puVar14 + 5,param_1);\n          puVar14 = *(undefined8 **)(param_1 + 0x78);\n          if (puVar14 == (undefined8 *)0x0) {\n            puVar14 = (undefined8 *)FUN_00275550(0x80);\n            uVar2 = *(undefined8 *)(param_1 + 0x68);\n            uVar17 = *(undefined8 *)(param_1 + 0x48);\n            uVar4 = *(undefined8 *)(param_1 + 0x40);\n            uVar5 = *(undefined8 *)(param_1 + 0x38);\n            puVar14[0xd] = puVar18;\n            uVar6 = *(undefined8 *)(param_1 + 0x88);\n            uVar7 = *(undefined8 *)(param_1 + 0x80);\n            puVar14[2] = puVar14 + 4;\n            puVar14[9] = uVar17;\n            puVar14[10] = uVar2;\n            puVar14[1] = 0;\n            puVar14[3] = 0;\n            *(undefined1 *)(puVar14 + 4) = 0;\n            *(undefined1 *)(puVar14 + 6) = 0;\n            *puVar14 = &PTR_FUN_003acf00;\n            puVar14[7] = uVar5;\n            puVar14[8] = uVar4;\n            puVar14[0xb] = plVar19;\n            puVar14[0xc] = 0;\n            puVar14[0xe] = uVar7;\n            puVar14[0xf] = uVar6;\n            FUN_002300a0(param_2,puVar14);\n            return (uint)bVar11;\n          }\n          pbVar10 = *(byte **)(param_1 + 0x68);\n          puVar14[1] = puVar18;\n          *puVar14 = plVar19;\n          bVar11 = *pbVar10;\n          if (bVar11 != 0) {\n            *(undefined4 *)(puVar14 + 2) = *(undefined4 *)(pbVar10 + 100);\n            return (uint)bVar11;\n          }\n        }\n        else {\n          bVar11 = **(byte **)(param_1 + 0x68);\n          if (bVar11 != 0) {\n            __s = *(char **)(*(byte **)(param_1 + 0x68) + 8);\n            pcVar20 = (char *)0xffffffffffffffff;\n            local_58[0] = local_48;\n            if (__s != (char *)0x0) {\n              sVar15 = strlen(__s);\n              pcVar20 = __s + sVar15;\n            }\n            FUN_0015cbe0(local_58,__s,pcVar20);\n                    \n            lVar16 = FUN_00275550(0x178);\n                    \n            FUN_00234b40(lVar16,local_58,puVar14,\n                         lVar3 == s__<thin>__<arch>_N4gold7ArchiveE_00322e50._0_8_,\n                         *(undefined8 *)(param_1 + 0x50),param_1);\n            if (local_58[0] != local_48) {\n              FUN_00276d20();\n            }\n            FUN_00235c40(lVar16);\n            FUN_0016ae30(*(long *)(lVar16 + 0x38) + 0x28,param_1);\n            puVar14 = (undefined8 *)FUN_00275550(0x90);\n            uVar2 = *(undefined8 *)(param_1 + 0x88);\n            uVar17 = *(undefined8 *)(param_1 + 0x80);\n            uVar4 = *(undefined8 *)(param_1 + 0x70);\n            uVar5 = *(undefined8 *)(param_1 + 0x68);\n            *(undefined1 *)(puVar14 + 4) = 0;\n            uVar6 = *(undefined8 *)(param_1 + 0x60);\n            uVar1 = *(undefined4 *)(param_1 + 0x58);\n            puVar14[2] = puVar14 + 4;\n            uVar7 = *(undefined8 *)(param_1 + 0x50);\n            uVar8 = *(undefined8 *)(param_1 + 0x38);\n            puVar14[0xd] = uVar5;\n            uVar5 = *(undefined8 *)(param_1 + 0x48);\n            uVar9 = *(undefined8 *)(param_1 + 0x40);\n            puVar14[0xf] = uVar4;\n            puVar14[1] = 0;\n            puVar14[3] = 0;\n            *(undefined1 *)(puVar14 + 6) = 0;\n            *puVar14 = &PTR_FUN_003ae430;\n            puVar14[7] = uVar9;\n            puVar14[8] = uVar5;\n            puVar14[9] = uVar8;\n            puVar14[10] = uVar7;\n            *(undefined4 *)(puVar14 + 0xb) = uVar1;\n            puVar14[0xc] = uVar6;\n            puVar14[0xe] = lVar16;\n            puVar14[0x10] = uVar17;\n            puVar14[0x11] = uVar2;\n            FUN_002300a0(param_2,puVar14);\n            return (uint)bVar11;\n          }\n        }\n                    \n        FUN_0016cdf0("../../gold/options.h",0x828,&DAT_0031b73b);\n      }" (if "if") (parenthesized_expression "(lVar16 != 0)" (( "(") (binary_expression "lVar16 != 0" (identifier "lVar16") (!= "!=") (number_literal "0")) () ")")) (compound_statement "{\n        bVar11 = FUN_0019b230(puVar14,0,&local_60,&local_64);\n        if ((local_64 < 8) ||\n           ((lVar3 = *local_60, lVar3 != s__<thin>__<arch>_N4gold7ArchiveE_00322e50._0_8_ &&\n            (s__<thin>__<arch>_N4gold7ArchiveE_00322e50._8_8_ != lVar3)))) {\n          plVar19 = (long *)0x0;\n          if (bVar11 != 0) {\n            local_58[0] = (undefined1 *)((ulong)local_58[0] & 0xffffffffffffff00);\n            cVar12 = FUN_0016b000(puVar14);\n            ppuVar21 = (undefined1 **)0x0;\n            if (cVar12 != '\0') {\n              ppuVar21 = local_58;\n            }\n            plVar19 = (long *)FUN_0019b3d0(puVar14 + 5,puVar14,0,local_60,(long)local_64,ppuVar21);\n          }\n          if (*(long *)(PTR_DAT_003be6b0 + 0x10) == 0) {\n                    \n            FUN_0016cdf0("../../gold/parameters.h",0x5c,"options");\n          }\n          lVar3 = *(long *)(*(long *)(PTR_DAT_003be6b0 + 0x10) + 0x9058);\n          if ((lVar3 != 0) && (lVar16 = FUN_001f1940(lVar3,puVar14,0,lVar16,plVar19), lVar16 != 0))\n          {\n            if (plVar19 != (long *)0x0) {\n              (**(code **)(*plVar19 + 8))(plVar19);\n            }\n            if (*(long *)(lVar16 + 0x28) != 0) {\n              FUN_0016ae30(*(long *)(lVar16 + 0x28) + 0x28,param_1);\n            }\n            plVar19 = *(long **)(param_1 + 0x78);\n            if (plVar19 == (long *)0x0) {\n              puVar14 = (undefined8 *)FUN_00275550(0x80);\n              uVar2 = *(undefined8 *)(param_1 + 0x68);\n              uVar17 = *(undefined8 *)(param_1 + 0x48);\n              uVar4 = *(undefined8 *)(param_1 + 0x40);\n              uVar5 = *(undefined8 *)(param_1 + 0x38);\n              *puVar14 = &PTR_FUN_003acf00;\n              uVar6 = *(undefined8 *)(param_1 + 0x88);\n              uVar7 = *(undefined8 *)(param_1 + 0x80);\n              puVar14[9] = uVar17;\n              puVar14[10] = uVar2;\n              puVar14[1] = 0;\n              puVar14[2] = puVar14 + 4;\n              puVar14[3] = 0;\n              *(undefined1 *)(puVar14 + 4) = 0;\n              *(undefined1 *)(puVar14 + 6) = 0;\n              puVar14[7] = uVar5;\n              puVar14[8] = uVar4;\n              puVar14[0xb] = lVar16;\n              puVar14[0xc] = 0;\n              puVar14[0xd] = 0;\n              puVar14[0xe] = uVar7;\n              puVar14[0xf] = uVar6;\n              FUN_002300a0(param_2,puVar14);\n              return uVar13;\n            }\n            plVar19[1] = 0;\n            *plVar19 = lVar16;\n            return uVar13;\n          }\n          if (bVar11 == 0) {\n            puVar18 = (undefined8 *)FUN_00275550(0x90);\n            uVar2 = *(undefined8 *)(param_1 + 0x88);\n            uVar17 = *(undefined8 *)(param_1 + 0x80);\n            uVar4 = *(undefined8 *)(param_1 + 0x68);\n            uVar5 = *(undefined8 *)(param_1 + 0x70);\n            *(undefined1 *)(puVar18 + 4) = 0;\n            uVar6 = *(undefined8 *)(param_1 + 0x60);\n            uVar7 = *(undefined8 *)(param_1 + 0x38);\n            puVar18[2] = puVar18 + 4;\n            uVar1 = *(undefined4 *)(param_1 + 0x58);\n            uVar8 = *(undefined8 *)(param_1 + 0x50);\n            puVar18[0xd] = uVar5;\n            uVar5 = *(undefined8 *)(param_1 + 0x48);\n            uVar9 = *(undefined8 *)(param_1 + 0x40);\n            puVar18[0xe] = uVar4;\n            puVar18[1] = 0;\n            puVar18[3] = 0;\n            *(undefined1 *)(puVar18 + 6) = 0;\n            *puVar18 = &PTR_FUN_003ad080;\n            puVar18[7] = uVar9;\n            puVar18[8] = uVar5;\n            puVar18[9] = uVar8;\n            *(undefined4 *)(puVar18 + 10) = uVar1;\n            puVar18[0xb] = uVar7;\n            puVar18[0xc] = uVar6;\n            puVar18[0xf] = puVar14;\n            puVar18[0x10] = uVar17;\n            puVar18[0x11] = uVar2;\n            FUN_00230080(param_2,puVar18);\n            return uVar13;\n          }\n          if (plVar19 == (long *)0x0) {\n            if ((char)local_58[0] == '\0') {\n              return 0;\n            }\n            puVar18 = puVar14 + 5;\n            FUN_001f51c0(*(undefined8 *)(param_1 + 0x68),puVar14);\n            FUN_0016ad00(puVar18);\n            FUN_0016ae30(puVar18,param_1);\n            FUN_0016b0b0(puVar18);\n            if (puVar14 + 3 != (undefined8 *)puVar14[1]) {\n              FUN_00276d20();\n            }\n            thunk_FUN_00276d20(puVar14,0xe8);\n            *(int *)(param_1 + 0x58) = *(int *)(param_1 + 0x58) + 1;\n            uVar13 = FUN_001f5c10(param_1,param_2);\n            return uVar13;\n          }\n          puVar18 = (undefined8 *)FUN_00275550(0x80);\n          *puVar18 = 0;\n          puVar18[1] = 0;\n          puVar18[3] = 0;\n          puVar18[6] = 0;\n          puVar18[8] = 0;\n          puVar18[10] = 0;\n          puVar18[0xd] = 0;\n          (**(code **)(*plVar19 + 0x40))(plVar19,puVar18);\n          FUN_0016ae30(puVar14 + 5,param_1);\n          puVar14 = *(undefined8 **)(param_1 + 0x78);\n          if (puVar14 == (undefined8 *)0x0) {\n            puVar14 = (undefined8 *)FUN_00275550(0x80);\n            uVar2 = *(undefined8 *)(param_1 + 0x68);\n            uVar17 = *(undefined8 *)(param_1 + 0x48);\n            uVar4 = *(undefined8 *)(param_1 + 0x40);\n            uVar5 = *(undefined8 *)(param_1 + 0x38);\n            puVar14[0xd] = puVar18;\n            uVar6 = *(undefined8 *)(param_1 + 0x88);\n            uVar7 = *(undefined8 *)(param_1 + 0x80);\n            puVar14[2] = puVar14 + 4;\n            puVar14[9] = uVar17;\n            puVar14[10] = uVar2;\n            puVar14[1] = 0;\n            puVar14[3] = 0;\n            *(undefined1 *)(puVar14 + 4) = 0;\n            *(undefined1 *)(puVar14 + 6) = 0;\n            *puVar14 = &PTR_FUN_003acf00;\n            puVar14[7] = uVar5;\n            puVar14[8] = uVar4;\n            puVar14[0xb] = plVar19;\n            puVar14[0xc] = 0;\n            puVar14[0xe] = uVar7;\n            puVar14[0xf] = uVar6;\n            FUN_002300a0(param_2,puVar14);\n            return (uint)bVar11;\n          }\n          pbVar10 = *(byte **)(param_1 + 0x68);\n          puVar14[1] = puVar18;\n          *puVar14 = plVar19;\n          bVar11 = *pbVar10;\n          if (bVar11 != 0) {\n            *(undefined4 *)(puVar14 + 2) = *(undefined4 *)(pbVar10 + 100);\n            return (uint)bVar11;\n          }\n        }\n        else {\n          bVar11 = **(byte **)(param_1 + 0x68);\n          if (bVar11 != 0) {\n            __s = *(char **)(*(byte **)(param_1 + 0x68) + 8);\n            pcVar20 = (char *)0xffffffffffffffff;\n            local_58[0] = local_48;\n            if (__s != (char *)0x0) {\n              sVar15 = strlen(__s);\n              pcVar20 = __s + sVar15;\n            }\n            FUN_0015cbe0(local_58,__s,pcVar20);\n                    \n            lVar16 = FUN_00275550(0x178);\n                    \n            FUN_00234b40(lVar16,local_58,puVar14,\n                         lVar3 == s__<thin>__<arch>_N4gold7ArchiveE_00322e50._0_8_,\n                         *(undefined8 *)(param_1 + 0x50),param_1);\n            if (local_58[0] != local_48) {\n              FUN_00276d20();\n            }\n            FUN_00235c40(lVar16);\n            FUN_0016ae30(*(long *)(lVar16 + 0x38) + 0x28,param_1);\n            puVar14 = (undefined8 *)FUN_00275550(0x90);\n            uVar2 = *(undefined8 *)(param_1 + 0x88);\n            uVar17 = *(undefined8 *)(param_1 + 0x80);\n            uVar4 = *(undefined8 *)(param_1 + 0x70);\n            uVar5 = *(undefined8 *)(param_1 + 0x68);\n            *(undefined1 *)(puVar14 + 4) = 0;\n            uVar6 = *(undefined8 *)(param_1 + 0x60);\n            uVar1 = *(undefined4 *)(param_1 + 0x58);\n            puVar14[2] = puVar14 + 4;\n            uVar7 = *(undefined8 *)(param_1 + 0x50);\n            uVar8 = *(undefined8 *)(param_1 + 0x38);\n            puVar14[0xd] = uVar5;\n            uVar5 = *(undefined8 *)(param_1 + 0x48);\n            uVar9 = *(undefined8 *)(param_1 + 0x40);\n            puVar14[0xf] = uVar4;\n            puVar14[1] = 0;\n            puVar14[3] = 0;\n            *(undefined1 *)(puVar14 + 6) = 0;\n            *puVar14 = &PTR_FUN_003ae430;\n            puVar14[7] = uVar9;\n            puVar14[8] = uVar5;\n            puVar14[9] = uVar8;\n            puVar14[10] = uVar7;\n            *(undefined4 *)(puVar14 + 0xb) = uVar1;\n            puVar14[0xc] = uVar6;\n            puVar14[0xe] = lVar16;\n            puVar14[0x10] = uVar17;\n            puVar14[0x11] = uVar2;\n            FUN_002300a0(param_2,puVar14);\n            return (uint)bVar11;\n          }\n        }\n                    \n        FUN_0016cdf0("../../gold/options.h",0x828,&DAT_0031b73b);\n      }" ({ "{") (expression_statement "bVar11 = FUN_0019b230(puVar14,0,&local_60,&local_64);" (assignment_expression "bVar11 = FUN_0019b230(puVar14,0,&local_60,&local_64)" (identifier "bVar11") (= "=") (call_expression "FUN_0019b230(puVar14,0,&local_60,&local_64)" (identifier "FUN_0019b230") (argument_list "(puVar14,0,&local_60,&local_64)" (( "(") (identifier "puVar14") (, ",") (number_literal "0") (, ",") (pointer_expression "&local_60" (& "&") (identifier "local_60")) (, ",") (pointer_expression "&local_64" (& "&") (identifier "local_64")) () ")")))) (; ";")) (if_statement "if ((local_64 < 8) ||\n           ((lVar3 = *local_60, lVar3 != s__<thin>__<arch>_N4gold7ArchiveE_00322e50._0_8_ &&\n            (s__<thin>__<arch>_N4gold7ArchiveE_00322e50._8_8_ != lVar3)))) {\n          plVar19 = (long *)0x0;\n          if (bVar11 != 0) {\n            local_58[0] = (undefined1 *)((ulong)local_58[0] & 0xffffffffffffff00);\n            cVar12 = FUN_0016b000(puVar14);\n            ppuVar21 = (undefined1 **)0x0;\n            if (cVar12 != '\0') {\n              ppuVar21 = local_58;\n            }\n            plVar19 = (long *)FUN_0019b3d0(puVar14 + 5,puVar14,0,local_60,(long)local_64,ppuVar21);\n          }\n          if (*(long *)(PTR_DAT_003be6b0 + 0x10) == 0) {\n                    \n            FUN_0016cdf0("../../gold/parameters.h",0x5c,"options");\n          }\n          lVar3 = *(long *)(*(long *)(PTR_DAT_003be6b0 + 0x10) + 0x9058);\n          if ((lVar3 != 0) && (lVar16 = FUN_001f1940(lVar3,puVar14,0,lVar16,plVar19), lVar16 != 0))\n          {\n            if (plVar19 != (long *)0x0) {\n              (**(code **)(*plVar19 + 8))(plVar19);\n            }\n            if (*(long *)(lVar16 + 0x28) != 0) {\n              FUN_0016ae30(*(long *)(lVar16 + 0x28) + 0x28,param_1);\n            }\n            plVar19 = *(long **)(param_1 + 0x78);\n            if (plVar19 == (long *)0x0) {\n              puVar14 = (undefined8 *)FUN_00275550(0x80);\n              uVar2 = *(undefined8 *)(param_1 + 0x68);\n              uVar17 = *(undefined8 *)(param_1 + 0x48);\n              uVar4 = *(undefined8 *)(param_1 + 0x40);\n              uVar5 = *(undefined8 *)(param_1 + 0x38);\n              *puVar14 = &PTR_FUN_003acf00;\n              uVar6 = *(undefined8 *)(param_1 + 0x88);\n              uVar7 = *(undefined8 *)(param_1 + 0x80);\n              puVar14[9] = uVar17;\n              puVar14[10] = uVar2;\n              puVar14[1] = 0;\n              puVar14[2] = puVar14 + 4;\n              puVar14[3] = 0;\n              *(undefined1 *)(puVar14 + 4) = 0;\n              *(undefined1 *)(puVar14 + 6) = 0;\n              puVar14[7] = uVar5;\n              puVar14[8] = uVar4;\n              puVar14[0xb] = lVar16;\n              puVar14[0xc] = 0;\n              puVar14[0xd] = 0;\n              puVar14[0xe] = uVar7;\n              puVar14[0xf] = uVar6;\n              FUN_002300a0(param_2,puVar14);\n              return uVar13;\n            }\n            plVar19[1] = 0;\n            *plVar19 = lVar16;\n            return uVar13;\n          }\n          if (bVar11 == 0) {\n            puVar18 = (undefined8 *)FUN_00275550(0x90);\n            uVar2 = *(undefined8 *)(param_1 + 0x88);\n            uVar17 = *(undefined8 *)(param_1 + 0x80);\n            uVar4 = *(undefined8 *)(param_1 + 0x68);\n            uVar5 = *(undefined8 *)(param_1 + 0x70);\n            *(undefined1 *)(puVar18 + 4) = 0;\n            uVar6 = *(undefined8 *)(param_1 + 0x60);\n            uVar7 = *(undefined8 *)(param_1 + 0x38);\n            puVar18[2] = puVar18 + 4;\n            uVar1 = *(undefined4 *)(param_1 + 0x58);\n            uVar8 = *(undefined8 *)(param_1 + 0x50);\n            puVar18[0xd] = uVar5;\n            uVar5 = *(undefined8 *)(param_1 + 0x48);\n            uVar9 = *(undefined8 *)(param_1 + 0x40);\n            puVar18[0xe] = uVar4;\n            puVar18[1] = 0;\n            puVar18[3] = 0;\n            *(undefined1 *)(puVar18 + 6) = 0;\n            *puVar18 = &PTR_FUN_003ad080;\n            puVar18[7] = uVar9;\n            puVar18[8] = uVar5;\n            puVar18[9] = uVar8;\n            *(undefined4 *)(puVar18 + 10) = uVar1;\n            puVar18[0xb] = uVar7;\n            puVar18[0xc] = uVar6;\n            puVar18[0xf] = puVar14;\n            puVar18[0x10] = uVar17;\n            puVar18[0x11] = uVar2;\n            FUN_00230080(param_2,puVar18);\n            return uVar13;\n          }\n          if (plVar19 == (long *)0x0) {\n            if ((char)local_58[0] == '\0') {\n              return 0;\n            }\n            puVar18 = puVar14 + 5;\n            FUN_001f51c0(*(undefined8 *)(param_1 + 0x68),puVar14);\n            FUN_0016ad00(puVar18);\n            FUN_0016ae30(puVar18,param_1);\n            FUN_0016b0b0(puVar18);\n            if (puVar14 + 3 != (undefined8 *)puVar14[1]) {\n              FUN_00276d20();\n            }\n            thunk_FUN_00276d20(puVar14,0xe8);\n            *(int *)(param_1 + 0x58) = *(int *)(param_1 + 0x58) + 1;\n            uVar13 = FUN_001f5c10(param_1,param_2);\n            return uVar13;\n          }\n          puVar18 = (undefined8 *)FUN_00275550(0x80);\n          *puVar18 = 0;\n          puVar18[1] = 0;\n          puVar18[3] = 0;\n          puVar18[6] = 0;\n          puVar18[8] = 0;\n          puVar18[10] = 0;\n          puVar18[0xd] = 0;\n          (**(code **)(*plVar19 + 0x40))(plVar19,puVar18);\n          FUN_0016ae30(puVar14 + 5,param_1);\n          puVar14 = *(undefined8 **)(param_1 + 0x78);\n          if (puVar14 == (undefined8 *)0x0) {\n            puVar14 = (undefined8 *)FUN_00275550(0x80);\n            uVar2 = *(undefined8 *)(param_1 + 0x68);\n            uVar17 = *(undefined8 *)(param_1 + 0x48);\n            uVar4 = *(undefined8 *)(param_1 + 0x40);\n            uVar5 = *(undefined8 *)(param_1 + 0x38);\n            puVar14[0xd] = puVar18;\n            uVar6 = *(undefined8 *)(param_1 + 0x88);\n            uVar7 = *(undefined8 *)(param_1 + 0x80);\n            puVar14[2] = puVar14 + 4;\n            puVar14[9] = uVar17;\n            puVar14[10] = uVar2;\n            puVar14[1] = 0;\n            puVar14[3] = 0;\n            *(undefined1 *)(puVar14 + 4) = 0;\n            *(undefined1 *)(puVar14 + 6) = 0;\n            *puVar14 = &PTR_FUN_003acf00;\n            puVar14[7] = uVar5;\n            puVar14[8] = uVar4;\n            puVar14[0xb] = plVar19;\n            puVar14[0xc] = 0;\n            puVar14[0xe] = uVar7;\n            puVar14[0xf] = uVar6;\n            FUN_002300a0(param_2,puVar14);\n            return (uint)bVar11;\n          }\n          pbVar10 = *(byte **)(param_1 + 0x68);\n          puVar14[1] = puVar18;\n          *puVar14 = plVar19;\n          bVar11 = *pbVar10;\n          if (bVar11 != 0) {\n            *(undefined4 *)(puVar14 + 2) = *(undefined4 *)(pbVar10 + 100);\n            return (uint)bVar11;\n          }\n        }\n        else {\n          bVar11 = **(byte **)(param_1 + 0x68);\n          if (bVar11 != 0) {\n            __s = *(char **)(*(byte **)(param_1 + 0x68) + 8);\n            pcVar20 = (char *)0xffffffffffffffff;\n            local_58[0] = local_48;\n            if (__s != (char *)0x0) {\n              sVar15 = strlen(__s);\n              pcVar20 = __s + sVar15;\n            }\n            FUN_0015cbe0(local_58,__s,pcVar20);\n                    \n            lVar16 = FUN_00275550(0x178);\n                    \n            FUN_00234b40(lVar16,local_58,puVar14,\n                         lVar3 == s__<thin>__<arch>_N4gold7ArchiveE_00322e50._0_8_,\n                         *(undefined8 *)(param_1 + 0x50),param_1);\n            if (local_58[0] != local_48) {\n              FUN_00276d20();\n            }\n            FUN_00235c40(lVar16);\n            FUN_0016ae30(*(long *)(lVar16 + 0x38) + 0x28,param_1);\n            puVar14 = (undefined8 *)FUN_00275550(0x90);\n            uVar2 = *(undefined8 *)(param_1 + 0x88);\n            uVar17 = *(undefined8 *)(param_1 + 0x80);\n            uVar4 = *(undefined8 *)(param_1 + 0x70);\n            uVar5 = *(undefined8 *)(param_1 + 0x68);\n            *(undefined1 *)(puVar14 + 4) = 0;\n            uVar6 = *(undefined8 *)(param_1 + 0x60);\n            uVar1 = *(undefined4 *)(param_1 + 0x58);\n            puVar14[2] = puVar14 + 4;\n            uVar7 = *(undefined8 *)(param_1 + 0x50);\n            uVar8 = *(undefined8 *)(param_1 + 0x38);\n            puVar14[0xd] = uVar5;\n            uVar5 = *(undefined8 *)(param_1 + 0x48);\n            uVar9 = *(undefined8 *)(param_1 + 0x40);\n            puVar14[0xf] = uVar4;\n            puVar14[1] = 0;\n            puVar14[3] = 0;\n            *(undefined1 *)(puVar14 + 6) = 0;\n            *puVar14 = &PTR_FUN_003ae430;\n            puVar14[7] = uVar9;\n            puVar14[8] = uVar5;\n            puVar14[9] = uVar8;\n            puVar14[10] = uVar7;\n            *(undefined4 *)(puVar14 + 0xb) = uVar1;\n            puVar14[0xc] = uVar6;\n            puVar14[0xe] = lVar16;\n            puVar14[0x10] = uVar17;\n            puVar14[0x11] = uVar2;\n            FUN_002300a0(param_2,puVar14);\n            return (uint)bVar11;\n          }\n        }" (if "if") (parenthesized_expression "((local_64 < 8) ||\n           ((lVar3 = *local_60, lVar3 != s__<thin>__<arch>_N4gold7ArchiveE_00322e50._0_8_ &&\n            (s__<thin>__<arch>_N4gold7ArchiveE_00322e50._8_8_ != lVar3))))" (( "(") (binary_expression "(local_64 < 8) ||\n           ((lVar3 = *local_60, lVar3 != s__<thin>__<arch>_N4gold7ArchiveE_00322e50._0_8_ &&\n            (s__<thin>__<arch>_N4gold7ArchiveE_00322e50._8_8_ != lVar3)))" (parenthesized_expression "(local_64 < 8)" (( "(") (binary_expression "local_64 < 8" (identifier "local_64") (< "<") (number_literal "8")) () ")")) (|| "||") (parenthesized_expression "((lVar3 = *local_60, lVar3 != s__<thin>__<arch>_N4gold7ArchiveE_00322e50._0_8_ &&\n            (s__<thin>__<arch>_N4gold7ArchiveE_00322e50._8_8_ != lVar3)))" (( "(") (parenthesized_expression "(lVar3 = *local_60, lVar3 != s__<thin>__<arch>_N4gold7ArchiveE_00322e50._0_8_ &&\n            (s__<thin>__<arch>_N4gold7ArchiveE_00322e50._8_8_ != lVar3))" (( "(") (comma_expression "lVar3 = *local_60, lVar3 != s__<thin>__<arch>_N4gold7ArchiveE_00322e50._0_8_ &&\n            (s__<thin>__<arch>_N4gold7ArchiveE_00322e50._8_8_ != lVar3)" (assignment_expression "lVar3 = *local_60" (identifier "lVar3") (= "=") (pointer_expression "*local_60" (* "*") (identifier "local_60"))) (, ",") (binary_expression "lVar3 != s__<thin>__<arch>_N4gold7ArchiveE_00322e50._0_8_ &&\n            (s__<thin>__<arch>_N4gold7ArchiveE_00322e50._8_8_ != lVar3)" (binary_expression "lVar3 != s__<thin>__<arch>_N4gold7ArchiveE_00322e50._0_8_" (identifier "lVar3") (!= "!=") (binary_expression "s__<thin>__<arch>_N4gold7ArchiveE_00322e50._0_8_" (binary_expression "s__<thin>__<arch" (binary_expression "s__<thin>__" (binary_expression "s__<thin" (identifier "s__") (< "<") (identifier "thin")) (> ">") (identifier "__")) (< "<") (identifier "arch")) (> ">") (field_expression "_N4gold7ArchiveE_00322e50._0_8_" (identifier "_N4gold7ArchiveE_00322e50") (. ".") (field_identifier "_0_8_")))) (&& "&&") (parenthesized_expression "(s__<thin>__<arch>_N4gold7ArchiveE_00322e50._8_8_ != lVar3)" (( "(") (binary_expression "s__<thin>__<arch>_N4gold7ArchiveE_00322e50._8_8_ != lVar3" (binary_expression "s__<thin>__<arch>_N4gold7ArchiveE_00322e50._8_8_" (binary_expression "s__<thin>__<arch" (binary_expression "s__<thin>__" (binary_expression "s__<thin" (identifier "s__") (< "<") (identifier "thin")) (> ">") (identifier "__")) (< "<") (identifier "arch")) (> ">") (field_expression "_N4gold7ArchiveE_00322e50._8_8_" (identifier "_N4gold7ArchiveE_00322e50") (. ".") (field_identifier "_8_8_"))) (!= "!=") (identifier "lVar3")) () ")")))) () ")")) () ")"))) () ")")) (compound_statement "{\n          plVar19 = (long *)0x0;\n          if (bVar11 != 0) {\n            local_58[0] = (undefined1 *)((ulong)local_58[0] & 0xffffffffffffff00);\n            cVar12 = FUN_0016b000(puVar14);\n            ppuVar21 = (undefined1 **)0x0;\n            if (cVar12 != '\0') {\n              ppuVar21 = local_58;\n            }\n            plVar19 = (long *)FUN_0019b3d0(puVar14 + 5,puVar14,0,local_60,(long)local_64,ppuVar21);\n          }\n          if (*(long *)(PTR_DAT_003be6b0 + 0x10) == 0) {\n                    \n            FUN_0016cdf0("../../gold/parameters.h",0x5c,"options");\n          }\n          lVar3 = *(long *)(*(long *)(PTR_DAT_003be6b0 + 0x10) + 0x9058);\n          if ((lVar3 != 0) && (lVar16 = FUN_001f1940(lVar3,puVar14,0,lVar16,plVar19), lVar16 != 0))\n          {\n            if (plVar19 != (long *)0x0) {\n              (**(code **)(*plVar19 + 8))(plVar19);\n            }\n            if (*(long *)(lVar16 + 0x28) != 0) {\n              FUN_0016ae30(*(long *)(lVar16 + 0x28) + 0x28,param_1);\n            }\n            plVar19 = *(long **)(param_1 + 0x78);\n            if (plVar19 == (long *)0x0) {\n              puVar14 = (undefined8 *)FUN_00275550(0x80);\n              uVar2 = *(undefined8 *)(param_1 + 0x68);\n              uVar17 = *(undefined8 *)(param_1 + 0x48);\n              uVar4 = *(undefined8 *)(param_1 + 0x40);\n              uVar5 = *(undefined8 *)(param_1 + 0x38);\n              *puVar14 = &PTR_FUN_003acf00;\n              uVar6 = *(undefined8 *)(param_1 + 0x88);\n              uVar7 = *(undefined8 *)(param_1 + 0x80);\n              puVar14[9] = uVar17;\n              puVar14[10] = uVar2;\n              puVar14[1] = 0;\n              puVar14[2] = puVar14 + 4;\n              puVar14[3] = 0;\n              *(undefined1 *)(puVar14 + 4) = 0;\n              *(undefined1 *)(puVar14 + 6) = 0;\n              puVar14[7] = uVar5;\n              puVar14[8] = uVar4;\n              puVar14[0xb] = lVar16;\n              puVar14[0xc] = 0;\n              puVar14[0xd] = 0;\n              puVar14[0xe] = uVar7;\n              puVar14[0xf] = uVar6;\n              FUN_002300a0(param_2,puVar14);\n              return uVar13;\n            }\n            plVar19[1] = 0;\n            *plVar19 = lVar16;\n            return uVar13;\n          }\n          if (bVar11 == 0) {\n            puVar18 = (undefined8 *)FUN_00275550(0x90);\n            uVar2 = *(undefined8 *)(param_1 + 0x88);\n            uVar17 = *(undefined8 *)(param_1 + 0x80);\n            uVar4 = *(undefined8 *)(param_1 + 0x68);\n            uVar5 = *(undefined8 *)(param_1 + 0x70);\n            *(undefined1 *)(puVar18 + 4) = 0;\n            uVar6 = *(undefined8 *)(param_1 + 0x60);\n            uVar7 = *(undefined8 *)(param_1 + 0x38);\n            puVar18[2] = puVar18 + 4;\n            uVar1 = *(undefined4 *)(param_1 + 0x58);\n            uVar8 = *(undefined8 *)(param_1 + 0x50);\n            puVar18[0xd] = uVar5;\n            uVar5 = *(undefined8 *)(param_1 + 0x48);\n            uVar9 = *(undefined8 *)(param_1 + 0x40);\n            puVar18[0xe] = uVar4;\n            puVar18[1] = 0;\n            puVar18[3] = 0;\n            *(undefined1 *)(puVar18 + 6) = 0;\n            *puVar18 = &PTR_FUN_003ad080;\n            puVar18[7] = uVar9;\n            puVar18[8] = uVar5;\n            puVar18[9] = uVar8;\n            *(undefined4 *)(puVar18 + 10) = uVar1;\n            puVar18[0xb] = uVar7;\n            puVar18[0xc] = uVar6;\n            puVar18[0xf] = puVar14;\n            puVar18[0x10] = uVar17;\n            puVar18[0x11] = uVar2;\n            FUN_00230080(param_2,puVar18);\n            return uVar13;\n          }\n          if (plVar19 == (long *)0x0) {\n            if ((char)local_58[0] == '\0') {\n              return 0;\n            }\n            puVar18 = puVar14 + 5;\n            FUN_001f51c0(*(undefined8 *)(param_1 + 0x68),puVar14);\n            FUN_0016ad00(puVar18);\n            FUN_0016ae30(puVar18,param_1);\n            FUN_0016b0b0(puVar18);\n            if (puVar14 + 3 != (undefined8 *)puVar14[1]) {\n              FUN_00276d20();\n            }\n            thunk_FUN_00276d20(puVar14,0xe8);\n            *(int *)(param_1 + 0x58) = *(int *)(param_1 + 0x58) + 1;\n            uVar13 = FUN_001f5c10(param_1,param_2);\n            return uVar13;\n          }\n          puVar18 = (undefined8 *)FUN_00275550(0x80);\n          *puVar18 = 0;\n          puVar18[1] = 0;\n          puVar18[3] = 0;\n          puVar18[6] = 0;\n          puVar18[8] = 0;\n          puVar18[10] = 0;\n          puVar18[0xd] = 0;\n          (**(code **)(*plVar19 + 0x40))(plVar19,puVar18);\n          FUN_0016ae30(puVar14 + 5,param_1);\n          puVar14 = *(undefined8 **)(param_1 + 0x78);\n          if (puVar14 == (undefined8 *)0x0) {\n            puVar14 = (undefined8 *)FUN_00275550(0x80);\n            uVar2 = *(undefined8 *)(param_1 + 0x68);\n            uVar17 = *(undefined8 *)(param_1 + 0x48);\n            uVar4 = *(undefined8 *)(param_1 + 0x40);\n            uVar5 = *(undefined8 *)(param_1 + 0x38);\n            puVar14[0xd] = puVar18;\n            uVar6 = *(undefined8 *)(param_1 + 0x88);\n            uVar7 = *(undefined8 *)(param_1 + 0x80);\n            puVar14[2] = puVar14 + 4;\n            puVar14[9] = uVar17;\n            puVar14[10] = uVar2;\n            puVar14[1] = 0;\n            puVar14[3] = 0;\n            *(undefined1 *)(puVar14 + 4) = 0;\n            *(undefined1 *)(puVar14 + 6) = 0;\n            *puVar14 = &PTR_FUN_003acf00;\n            puVar14[7] = uVar5;\n            puVar14[8] = uVar4;\n            puVar14[0xb] = plVar19;\n            puVar14[0xc] = 0;\n            puVar14[0xe] = uVar7;\n            puVar14[0xf] = uVar6;\n            FUN_002300a0(param_2,puVar14);\n            return (uint)bVar11;\n          }\n          pbVar10 = *(byte **)(param_1 + 0x68);\n          puVar14[1] = puVar18;\n          *puVar14 = plVar19;\n          bVar11 = *pbVar10;\n          if (bVar11 != 0) {\n            *(undefined4 *)(puVar14 + 2) = *(undefined4 *)(pbVar10 + 100);\n            return (uint)bVar11;\n          }\n        }" ({ "{") (expression_statement "plVar19 = (long *)0x0;" (assignment_expression "plVar19 = (long *)0x0" (identifier "plVar19") (= "=") (cast_expression "(long *)0x0" (( "(") (type_descriptor "long *" (sized_type_specifier "long" (long "long")) (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0"))) (; ";")) (if_statement "if (bVar11 != 0) {\n            local_58[0] = (undefined1 *)((ulong)local_58[0] & 0xffffffffffffff00);\n            cVar12 = FUN_0016b000(puVar14);\n            ppuVar21 = (undefined1 **)0x0;\n            if (cVar12 != '\0') {\n              ppuVar21 = local_58;\n            }\n            plVar19 = (long *)FUN_0019b3d0(puVar14 + 5,puVar14,0,local_60,(long)local_64,ppuVar21);\n          }" (if "if") (parenthesized_expression "(bVar11 != 0)" (( "(") (binary_expression "bVar11 != 0" (identifier "bVar11") (!= "!=") (number_literal "0")) () ")")) (compound_statement "{\n            local_58[0] = (undefined1 *)((ulong)local_58[0] & 0xffffffffffffff00);\n            cVar12 = FUN_0016b000(puVar14);\n            ppuVar21 = (undefined1 **)0x0;\n            if (cVar12 != '\0') {\n              ppuVar21 = local_58;\n            }\n            plVar19 = (long *)FUN_0019b3d0(puVar14 + 5,puVar14,0,local_60,(long)local_64,ppuVar21);\n          }" ({ "{") (expression_statement "local_58[0] = (undefined1 *)((ulong)local_58[0] & 0xffffffffffffff00);" (assignment_expression "local_58[0] = (undefined1 *)((ulong)local_58[0] & 0xffffffffffffff00)" (subscript_expression "local_58[0]" (identifier "local_58") ([ "[") (number_literal "0") (] "]")) (= "=") (cast_expression "(undefined1 *)((ulong)local_58[0] & 0xffffffffffffff00)" (( "(") (type_descriptor "undefined1 *" (type_identifier "undefined1") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "((ulong)local_58[0] & 0xffffffffffffff00)" (( "(") (binary_expression "(ulong)local_58[0] & 0xffffffffffffff00" (cast_expression "(ulong)local_58[0]" (( "(") (type_descriptor "ulong" (type_identifier "ulong")) () ")") (subscript_expression "local_58[0]" (identifier "local_58") ([ "[") (number_literal "0") (] "]"))) (& "&") (number_literal "0xffffffffffffff00")) () ")")))) (; ";")) (expression_statement "cVar12 = FUN_0016b000(puVar14);" (assignment_expression "cVar12 = FUN_0016b000(puVar14)" (identifier "cVar12") (= "=") (call_expression "FUN_0016b000(puVar14)" (identifier "FUN_0016b000") (argument_list "(puVar14)" (( "(") (identifier "puVar14") () ")")))) (; ";")) (expression_statement "ppuVar21 = (undefined1 **)0x0;" (assignment_expression "ppuVar21 = (undefined1 **)0x0" (identifier "ppuVar21") (= "=") (cast_expression "(undefined1 **)0x0" (( "(") (type_descriptor "undefined1 **" (type_identifier "undefined1") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (number_literal "0x0"))) (; ";")) (if_statement "if (cVar12 != '\0') {\n              ppuVar21 = local_58;\n            }" (if "if") (parenthesized_expression "(cVar12 != '\0')" (( "(") (binary_expression "cVar12 != '\0'" (identifier "cVar12") (!= "!=") (char_literal "'\0'" (' "'") (escape_sequence "\0") (' "'"))) () ")")) (compound_statement "{\n              ppuVar21 = local_58;\n            }" ({ "{") (expression_statement "ppuVar21 = local_58;" (assignment_expression "ppuVar21 = local_58" (identifier "ppuVar21") (= "=") (identifier "local_58")) (; ";")) (} "}"))) (expression_statement "plVar19 = (long *)FUN_0019b3d0(puVar14 + 5,puVar14,0,local_60,(long)local_64,ppuVar21);" (assignment_expression "plVar19 = (long *)FUN_0019b3d0(puVar14 + 5,puVar14,0,local_60,(long)local_64,ppuVar21)" (identifier "plVar19") (= "=") (cast_expression "(long *)FUN_0019b3d0(puVar14 + 5,puVar14,0,local_60,(long)local_64,ppuVar21)" (( "(") (type_descriptor "long *" (sized_type_specifier "long" (long "long")) (abstract_pointer_declarator "*" (* "*"))) () ")") (call_expression "FUN_0019b3d0(puVar14 + 5,puVar14,0,local_60,(long)local_64,ppuVar21)" (identifier "FUN_0019b3d0") (argument_list "(puVar14 + 5,puVar14,0,local_60,(long)local_64,ppuVar21)" (( "(") (binary_expression "puVar14 + 5" (identifier "puVar14") (+ "+") (number_literal "5")) (, ",") (identifier "puVar14") (, ",") (number_literal "0") (, ",") (identifier "local_60") (, ",") (cast_expression "(long)local_64" (( "(") (type_descriptor "long" (sized_type_specifier "long" (long "long"))) () ")") (identifier "local_64")) (, ",") (identifier "ppuVar21") () ")"))))) (; ";")) (} "}"))) (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") (" """)) () ")"))) (; ";")) (} "}"))) (expression_statement "lVar3 = *(long *)(*(long *)(PTR_DAT_003be6b0 + 0x10) + 0x9058);" (assignment_expression "lVar3 = *(long *)(*(long *)(PTR_DAT_003be6b0 + 0x10) + 0x9058)" (identifier "lVar3") (= "=") (pointer_expression "*(long *)(*(long *)(PTR_DAT_003be6b0 + 0x10) + 0x9058)" (* "*") (cast_expression "(long *)(*(long *)(PTR_DAT_003be6b0 + 0x10) + 0x9058)" (( "(") (type_descriptor "long *" (sized_type_specifier "long" (long "long")) (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(*(long *)(PTR_DAT_003be6b0 + 0x10) + 0x9058)" (( "(") (binary_expression "*(long *)(PTR_DAT_003be6b0 + 0x10) + 0x9058" (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 "0x9058")) () ")"))))) (; ";")) (if_statement "if ((lVar3 != 0) && (lVar16 = FUN_001f1940(lVar3,puVar14,0,lVar16,plVar19), lVar16 != 0))\n          {\n            if (plVar19 != (long *)0x0) {\n              (**(code **)(*plVar19 + 8))(plVar19);\n            }\n            if (*(long *)(lVar16 + 0x28) != 0) {\n              FUN_0016ae30(*(long *)(lVar16 + 0x28) + 0x28,param_1);\n            }\n            plVar19 = *(long **)(param_1 + 0x78);\n            if (plVar19 == (long *)0x0) {\n              puVar14 = (undefined8 *)FUN_00275550(0x80);\n              uVar2 = *(undefined8 *)(param_1 + 0x68);\n              uVar17 = *(undefined8 *)(param_1 + 0x48);\n              uVar4 = *(undefined8 *)(param_1 + 0x40);\n              uVar5 = *(undefined8 *)(param_1 + 0x38);\n              *puVar14 = &PTR_FUN_003acf00;\n              uVar6 = *(undefined8 *)(param_1 + 0x88);\n              uVar7 = *(undefined8 *)(param_1 + 0x80);\n              puVar14[9] = uVar17;\n              puVar14[10] = uVar2;\n              puVar14[1] = 0;\n              puVar14[2] = puVar14 + 4;\n              puVar14[3] = 0;\n              *(undefined1 *)(puVar14 + 4) = 0;\n              *(undefined1 *)(puVar14 + 6) = 0;\n              puVar14[7] = uVar5;\n              puVar14[8] = uVar4;\n              puVar14[0xb] = lVar16;\n              puVar14[0xc] = 0;\n              puVar14[0xd] = 0;\n              puVar14[0xe] = uVar7;\n              puVar14[0xf] = uVar6;\n              FUN_002300a0(param_2,puVar14);\n              return uVar13;\n            }\n            plVar19[1] = 0;\n            *plVar19 = lVar16;\n            return uVar13;\n          }" (if "if") (parenthesized_expression "((lVar3 != 0) && (lVar16 = FUN_001f1940(lVar3,puVar14,0,lVar16,plVar19), lVar16 != 0))" (( "(") (binary_expression "(lVar3 != 0) && (lVar16 = FUN_001f1940(lVar3,puVar14,0,lVar16,plVar19), lVar16 != 0)" (parenthesized_expression "(lVar3 != 0)" (( "(") (binary_expression "lVar3 != 0" (identifier "lVar3") (!= "!=") (number_literal "0")) () ")")) (&& "&&") (parenthesized_expression "(lVar16 = FUN_001f1940(lVar3,puVar14,0,lVar16,plVar19), lVar16 != 0)" (( "(") (comma_expression "lVar16 = FUN_001f1940(lVar3,puVar14,0,lVar16,plVar19), lVar16 != 0" (assignment_expression "lVar16 = FUN_001f1940(lVar3,puVar14,0,lVar16,plVar19)" (identifier "lVar16") (= "=") (call_expression "FUN_001f1940(lVar3,puVar14,0,lVar16,plVar19)" (identifier "FUN_001f1940") (argument_list "(lVar3,puVar14,0,lVar16,plVar19)" (( "(") (identifier "lVar3") (, ",") (identifier "puVar14") (, ",") (number_literal "0") (, ",") (identifier "lVar16") (, ",") (identifier "plVar19") () ")")))) (, ",") (binary_expression "lVar16 != 0" (identifier "lVar16") (!= "!=") (number_literal "0"))) () ")"))) () ")")) (compound_statement "{\n            if (plVar19 != (long *)0x0) {\n              (**(code **)(*plVar19 + 8))(plVar19);\n            }\n            if (*(long *)(lVar16 + 0x28) != 0) {\n              FUN_0016ae30(*(long *)(lVar16 + 0x28) + 0x28,param_1);\n            }\n            plVar19 = *(long **)(param_1 + 0x78);\n            if (plVar19 == (long *)0x0) {\n              puVar14 = (undefined8 *)FUN_00275550(0x80);\n              uVar2 = *(undefined8 *)(param_1 + 0x68);\n              uVar17 = *(undefined8 *)(param_1 + 0x48);\n              uVar4 = *(undefined8 *)(param_1 + 0x40);\n              uVar5 = *(undefined8 *)(param_1 + 0x38);\n              *puVar14 = &PTR_FUN_003acf00;\n              uVar6 = *(undefined8 *)(param_1 + 0x88);\n              uVar7 = *(undefined8 *)(param_1 + 0x80);\n              puVar14[9] = uVar17;\n              puVar14[10] = uVar2;\n              puVar14[1] = 0;\n              puVar14[2] = puVar14 + 4;\n              puVar14[3] = 0;\n              *(undefined1 *)(puVar14 + 4) = 0;\n              *(undefined1 *)(puVar14 + 6) = 0;\n              puVar14[7] = uVar5;\n              puVar14[8] = uVar4;\n              puVar14[0xb] = lVar16;\n              puVar14[0xc] = 0;\n              puVar14[0xd] = 0;\n              puVar14[0xe] = uVar7;\n              puVar14[0xf] = uVar6;\n              FUN_002300a0(param_2,puVar14);\n              return uVar13;\n            }\n            plVar19[1] = 0;\n            *plVar19 = lVar16;\n            return uVar13;\n          }" ({ "{") (if_statement "if (plVar19 != (long *)0x0) {\n              (**(code **)(*plVar19 + 8))(plVar19);\n            }" (if "if") (parenthesized_expression "(plVar19 != (long *)0x0)" (( "(") (binary_expression "plVar19 != (long *)0x0" (identifier "plVar19") (!= "!=") (cast_expression "(long *)0x0" (( "(") (type_descriptor "long *" (sized_type_specifier "long" (long "long")) (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0"))) () ")")) (compound_statement "{\n              (**(code **)(*plVar19 + 8))(plVar19);\n            }" ({ "{") (expression_statement "(**(code **)(*plVar19 + 8))(plVar19);" (call_expression "(**(code **)(*plVar19 + 8))(plVar19)" (parenthesized_expression "(**(code **)(*plVar19 + 8))" (( "(") (pointer_expression "**(code **)(*plVar19 + 8)" (* "*") (pointer_expression "*(code **)(*plVar19 + 8)" (* "*") (cast_expression "(code **)(*plVar19 + 8)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(*plVar19 + 8)" (( "(") (binary_expression "*plVar19 + 8" (pointer_expression "*plVar19" (* "*") (identifier "plVar19")) (+ "+") (number_literal "8")) () ")"))))) () ")")) (argument_list "(plVar19)" (( "(") (identifier "plVar19") () ")"))) (; ";")) (} "}"))) (if_statement "if (*(long *)(lVar16 + 0x28) != 0) {\n              FUN_0016ae30(*(long *)(lVar16 + 0x28) + 0x28,param_1);\n            }" (if "if") (parenthesized_expression "(*(long *)(lVar16 + 0x28) != 0)" (( "(") (binary_expression "*(long *)(lVar16 + 0x28) != 0" (pointer_expression "*(long *)(lVar16 + 0x28)" (* "*") (cast_expression "(long *)(lVar16 + 0x28)" (( "(") (type_descriptor "long *" (sized_type_specifier "long" (long "long")) (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(lVar16 + 0x28)" (( "(") (binary_expression "lVar16 + 0x28" (identifier "lVar16") (+ "+") (number_literal "0x28")) () ")")))) (!= "!=") (number_literal "0")) () ")")) (compound_statement "{\n              FUN_0016ae30(*(long *)(lVar16 + 0x28) + 0x28,param_1);\n            }" ({ "{") (expression_statement "FUN_0016ae30(*(long *)(lVar16 + 0x28) + 0x28,param_1);" (call_expression "FUN_0016ae30(*(long *)(lVar16 + 0x28) + 0x28,param_1)" (identifier "FUN_0016ae30") (argument_list "(*(long *)(lVar16 + 0x28) + 0x28,param_1)" (( "(") (binary_expression "*(long *)(lVar16 + 0x28) + 0x28" (pointer_expression "*(long *)(lVar16 + 0x28)" (* "*") (cast_expression "(long *)(lVar16 + 0x28)" (( "(") (type_descriptor "long *" (sized_type_specifier "long" (long "long")) (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(lVar16 + 0x28)" (( "(") (binary_expression "lVar16 + 0x28" (identifier "lVar16") (+ "+") (number_literal "0x28")) () ")")))) (+ "+") (number_literal "0x28")) (, ",") (identifier "param_1") () ")"))) (; ";")) (} "}"))) (expression_statement "plVar19 = *(long **)(param_1 + 0x78);" (assignment_expression "plVar19 = *(long **)(param_1 + 0x78)" (identifier "plVar19") (= "=") (pointer_expression "*(long **)(param_1 + 0x78)" (* "*") (cast_expression "(long **)(param_1 + 0x78)" (( "(") (type_descriptor "long **" (sized_type_specifier "long" (long "long")) (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(param_1 + 0x78)" (( "(") (binary_expression "param_1 + 0x78" (identifier "param_1") (+ "+") (number_literal "0x78")) () ")"))))) (; ";")) (if_statement "if (plVar19 == (long *)0x0) {\n              puVar14 = (undefined8 *)FUN_00275550(0x80);\n              uVar2 = *(undefined8 *)(param_1 + 0x68);\n              uVar17 = *(undefined8 *)(param_1 + 0x48);\n              uVar4 = *(undefined8 *)(param_1 + 0x40);\n              uVar5 = *(undefined8 *)(param_1 + 0x38);\n              *puVar14 = &PTR_FUN_003acf00;\n              uVar6 = *(undefined8 *)(param_1 + 0x88);\n              uVar7 = *(undefined8 *)(param_1 + 0x80);\n              puVar14[9] = uVar17;\n              puVar14[10] = uVar2;\n              puVar14[1] = 0;\n              puVar14[2] = puVar14 + 4;\n              puVar14[3] = 0;\n              *(undefined1 *)(puVar14 + 4) = 0;\n              *(undefined1 *)(puVar14 + 6) = 0;\n              puVar14[7] = uVar5;\n              puVar14[8] = uVar4;\n              puVar14[0xb] = lVar16;\n              puVar14[0xc] = 0;\n              puVar14[0xd] = 0;\n              puVar14[0xe] = uVar7;\n              puVar14[0xf] = uVar6;\n              FUN_002300a0(param_2,puVar14);\n              return uVar13;\n            }" (if "if") (parenthesized_expression "(plVar19 == (long *)0x0)" (( "(") (binary_expression "plVar19 == (long *)0x0" (identifier "plVar19") (== "==") (cast_expression "(long *)0x0" (( "(") (type_descriptor "long *" (sized_type_specifier "long" (long "long")) (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0"))) () ")")) (compound_statement "{\n              puVar14 = (undefined8 *)FUN_00275550(0x80);\n              uVar2 = *(undefined8 *)(param_1 + 0x68);\n              uVar17 = *(undefined8 *)(param_1 + 0x48);\n              uVar4 = *(undefined8 *)(param_1 + 0x40);\n              uVar5 = *(undefined8 *)(param_1 + 0x38);\n              *puVar14 = &PTR_FUN_003acf00;\n              uVar6 = *(undefined8 *)(param_1 + 0x88);\n              uVar7 = *(undefined8 *)(param_1 + 0x80);\n              puVar14[9] = uVar17;\n              puVar14[10] = uVar2;\n              puVar14[1] = 0;\n              puVar14[2] = puVar14 + 4;\n              puVar14[3] = 0;\n              *(undefined1 *)(puVar14 + 4) = 0;\n              *(undefined1 *)(puVar14 + 6) = 0;\n              puVar14[7] = uVar5;\n              puVar14[8] = uVar4;\n              puVar14[0xb] = lVar16;\n              puVar14[0xc] = 0;\n              puVar14[0xd] = 0;\n              puVar14[0xe] = uVar7;\n              puVar14[0xf] = uVar6;\n              FUN_002300a0(param_2,puVar14);\n              return uVar13;\n            }" ({ "{") (expression_statement "puVar14 = (undefined8 *)FUN_00275550(0x80);" (assignment_expression "puVar14 = (undefined8 *)FUN_00275550(0x80)" (identifier "puVar14") (= "=") (cast_expression "(undefined8 *)FUN_00275550(0x80)" (( "(") (type_descriptor "undefined8 *" (type_identifier "undefined8") (abstract_pointer_declarator "*" (* "*"))) () ")") (call_expression "FUN_00275550(0x80)" (identifier "FUN_00275550") (argument_list "(0x80)" (( "(") (number_literal "0x80") () ")"))))) (; ";")) (expression_statement "uVar2 = *(undefined8 *)(param_1 + 0x68);" (assignment_expression "uVar2 = *(undefined8 *)(param_1 + 0x68)" (identifier "uVar2") (= "=") (pointer_expression "*(undefined8 *)(param_1 + 0x68)" (* "*") (cast_expression "(undefined8 *)(param_1 + 0x68)" (( "(") (type_descriptor "undefined8 *" (type_identifier "undefined8") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_1 + 0x68)" (( "(") (binary_expression "param_1 + 0x68" (identifier "param_1") (+ "+") (number_literal "0x68")) () ")"))))) (; ";")) (expression_statement "uVar17 = *(undefined8 *)(param_1 + 0x48);" (assignment_expression "uVar17 = *(undefined8 *)(param_1 + 0x48)" (identifier "uVar17") (= "=") (pointer_expression "*(undefined8 *)(param_1 + 0x48)" (* "*") (cast_expression "(undefined8 *)(param_1 + 0x48)" (( "(") (type_descriptor "undefined8 *" (type_identifier "undefined8") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_1 + 0x48)" (( "(") (binary_expression "param_1 + 0x48" (identifier "param_1") (+ "+") (number_literal "0x48")) () ")"))))) (; ";")) (expression_statement "uVar4 = *(undefined8 *)(param_1 + 0x40);" (assignment_expression "uVar4 = *(undefined8 *)(param_1 + 0x40)" (identifier "uVar4") (= "=") (pointer_expression "*(undefined8 *)(param_1 + 0x40)" (* "*") (cast_expression "(undefined8 *)(param_1 + 0x40)" (( "(") (type_descriptor "undefined8 *" (type_identifier "undefined8") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_1 + 0x40)" (( "(") (binary_expression "param_1 + 0x40" (identifier "param_1") (+ "+") (number_literal "0x40")) () ")"))))) (; ";")) (expression_statement "uVar5 = *(undefined8 *)(param_1 + 0x38);" (assignment_expression "uVar5 = *(undefined8 *)(param_1 + 0x38)" (identifier "uVar5") (= "=") (pointer_expression "*(undefined8 *)(param_1 + 0x38)" (* "*") (cast_expression "(undefined8 *)(param_1 + 0x38)" (( "(") (type_descriptor "undefined8 *" (type_identifier "undefined8") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_1 + 0x38)" (( "(") (binary_expression "param_1 + 0x38" (identifier "param_1") (+ "+") (number_literal "0x38")) () ")"))))) (; ";")) (expression_statement "*puVar14 = &PTR_FUN_003acf00;" (assignment_expression "*puVar14 = &PTR_FUN_003acf00" (pointer_expression "*puVar14" (* "*") (identifier "puVar14")) (= "=") (pointer_expression "&PTR_FUN_003acf00" (& "&") (identifier "PTR_FUN_003acf00"))) (; ";")) (expression_statement "uVar6 = *(undefined8 *)(param_1 + 0x88);" (assignment_expression "uVar6 = *(undefined8 *)(param_1 + 0x88)" (identifier "uVar6") (= "=") (pointer_expression "*(undefined8 *)(param_1 + 0x88)" (* "*") (cast_expression "(undefined8 *)(param_1 + 0x88)" (( "(") (type_descriptor "undefined8 *" (type_identifier "undefined8") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_1 + 0x88)" (( "(") (binary_expression "param_1 + 0x88" (identifier "param_1") (+ "+") (number_literal "0x88")) () ")"))))) (; ";")) (expression_statement "uVar7 = *(undefined8 *)(param_1 + 0x80);" (assignment_expression "uVar7 = *(undefined8 *)(param_1 + 0x80)" (identifier "uVar7") (= "=") (pointer_expression "*(undefined8 *)(param_1 + 0x80)" (* "*") (cast_expression "(undefined8 *)(param_1 + 0x80)" (( "(") (type_descriptor "undefined8 *" (type_identifier "undefined8") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_1 + 0x80)" (( "(") (binary_expression "param_1 + 0x80" (identifier "param_1") (+ "+") (number_literal "0x80")) () ")"))))) (; ";")) (expression_statement "puVar14[9] = uVar17;" (assignment_expression "puVar14[9] = uVar17" (subscript_expression "puVar14[9]" (identifier "puVar14") ([ "[") (number_literal "9") (] "]")) (= "=") (identifier "uVar17")) (; ";")) (expression_statement "puVar14[10] = uVar2;" (assignment_expression "puVar14[10] = uVar2" (subscript_expression "puVar14[10]" (identifier "puVar14") ([ "[") (number_literal "10") (] "]")) (= "=") (identifier "uVar2")) (; ";")) (expression_statement "puVar14[1] = 0;" (assignment_expression "puVar14[1] = 0" (subscript_expression "puVar14[1]" (identifier "puVar14") ([ "[") (number_literal "1") (] "]")) (= "=") (number_literal "0")) (; ";")) (expression_statement "puVar14[2] = puVar14 + 4;" (assignment_expression "puVar14[2] = puVar14 + 4" (subscript_expression "puVar14[2]" (identifier "puVar14") ([ "[") (number_literal "2") (] "]")) (= "=") (binary_expression "puVar14 + 4" (identifier "puVar14") (+ "+") (number_literal "4"))) (; ";")) (expression_statement "puVar14[3] = 0;" (assignment_expression "puVar14[3] = 0" (subscript_expression "puVar14[3]" (identifier "puVar14") ([ "[") (number_literal "3") (] "]")) (= "=") (number_literal "0")) (; ";")) (expression_statement "*(undefined1 *)(puVar14 + 4) = 0;" (assignment_expression "*(undefined1 *)(puVar14 + 4) = 0" (pointer_expression "*(undefined1 *)(puVar14 + 4)" (* "*") (cast_expression "(undefined1 *)(puVar14 + 4)" (( "(") (type_descriptor "undefined1 *" (type_identifier "undefined1") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar14 + 4)" (( "(") (binary_expression "puVar14 + 4" (identifier "puVar14") (+ "+") (number_literal "4")) () ")")))) (= "=") (number_literal "0")) (; ";")) (expression_statement "*(undefined1 *)(puVar14 + 6) = 0;" (assignment_expression "*(undefined1 *)(puVar14 + 6) = 0" (pointer_expression "*(undefined1 *)(puVar14 + 6)" (* "*") (cast_expression "(undefined1 *)(puVar14 + 6)" (( "(") (type_descriptor "undefined1 *" (type_identifier "undefined1") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar14 + 6)" (( "(") (binary_expression "puVar14 + 6" (identifier "puVar14") (+ "+") (number_literal "6")) () ")")))) (= "=") (number_literal "0")) (; ";")) (expression_statement "puVar14[7] = uVar5;" (assignment_expression "puVar14[7] = uVar5" (subscript_expression "puVar14[7]" (identifier "puVar14") ([ "[") (number_literal "7") (] "]")) (= "=") (identifier "uVar5")) (; ";")) (expression_statement "puVar14[8] = uVar4;" (assignment_expression "puVar14[8] = uVar4" (subscript_expression "puVar14[8]" (identifier "puVar14") ([ "[") (number_literal "8") (] "]")) (= "=") (identifier "uVar4")) (; ";")) (expression_statement "puVar14[0xb] = lVar16;" (assignment_expression "puVar14[0xb] = lVar16" (subscript_expression "puVar14[0xb]" (identifier "puVar14") ([ "[") (number_literal "0xb") (] "]")) (= "=") (identifier "lVar16")) (; ";")) (expression_statement "puVar14[0xc] = 0;" (assignment_expression "puVar14[0xc] = 0" (subscript_expression "puVar14[0xc]" (identifier "puVar14") ([ "[") (number_literal "0xc") (] "]")) (= "=") (number_literal "0")) (; ";")) (expression_statement "puVar14[0xd] = 0;" (assignment_expression "puVar14[0xd] = 0" (subscript_expression "puVar14[0xd]" (identifier "puVar14") ([ "[") (number_literal "0xd") (] "]")) (= "=") (number_literal "0")) (; ";")) (expression_statement "puVar14[0xe] = uVar7;" (assignment_expression "puVar14[0xe] = uVar7" (subscript_expression "puVar14[0xe]" (identifier "puVar14") ([ "[") (number_literal "0xe") (] "]")) (= "=") (identifier "uVar7")) (; ";")) (expression_statement "puVar14[0xf] = uVar6;" (assignment_expression "puVar14[0xf] = uVar6" (subscript_expression "puVar14[0xf]" (identifier "puVar14") ([ "[") (number_literal "0xf") (] "]")) (= "=") (identifier "uVar6")) (; ";")) (expression_statement "FUN_002300a0(param_2,puVar14);" (call_expression "FUN_002300a0(param_2,puVar14)" (identifier "FUN_002300a0") (argument_list "(param_2,puVar14)" (( "(") (identifier "param_2") (, ",") (identifier "puVar14") () ")"))) (; ";")) (return_statement "return uVar13;" (return "return") (identifier "uVar13") (; ";")) (} "}"))) (expression_statement "plVar19[1] = 0;" (assignment_expression "plVar19[1] = 0" (subscript_expression "plVar19[1]" (identifier "plVar19") ([ "[") (number_literal "1") (] "]")) (= "=") (number_literal "0")) (; ";")) (expression_statement "*plVar19 = lVar16;" (assignment_expression "*plVar19 = lVar16" (pointer_expression "*plVar19" (* "*") (identifier "plVar19")) (= "=") (identifier "lVar16")) (; ";")) (return_statement "return uVar13;" (return "return") (identifier "uVar13") (; ";")) (} "}"))) (if_statement "if (bVar11 == 0) {\n            puVar18 = (undefined8 *)FUN_00275550(0x90);\n            uVar2 = *(undefined8 *)(param_1 + 0x88);\n            uVar17 = *(undefined8 *)(param_1 + 0x80);\n            uVar4 = *(undefined8 *)(param_1 + 0x68);\n            uVar5 = *(undefined8 *)(param_1 + 0x70);\n            *(undefined1 *)(puVar18 + 4) = 0;\n            uVar6 = *(undefined8 *)(param_1 + 0x60);\n            uVar7 = *(undefined8 *)(param_1 + 0x38);\n            puVar18[2] = puVar18 + 4;\n            uVar1 = *(undefined4 *)(param_1 + 0x58);\n            uVar8 = *(undefined8 *)(param_1 + 0x50);\n            puVar18[0xd] = uVar5;\n            uVar5 = *(undefined8 *)(param_1 + 0x48);\n            uVar9 = *(undefined8 *)(param_1 + 0x40);\n            puVar18[0xe] = uVar4;\n            puVar18[1] = 0;\n            puVar18[3] = 0;\n            *(undefined1 *)(puVar18 + 6) = 0;\n            *puVar18 = &PTR_FUN_003ad080;\n            puVar18[7] = uVar9;\n            puVar18[8] = uVar5;\n            puVar18[9] = uVar8;\n            *(undefined4 *)(puVar18 + 10) = uVar1;\n            puVar18[0xb] = uVar7;\n            puVar18[0xc] = uVar6;\n            puVar18[0xf] = puVar14;\n            puVar18[0x10] = uVar17;\n            puVar18[0x11] = uVar2;\n            FUN_00230080(param_2,puVar18);\n            return uVar13;\n          }" (if "if") (parenthesized_expression "(bVar11 == 0)" (( "(") (binary_expression "bVar11 == 0" (identifier "bVar11") (== "==") (number_literal "0")) () ")")) (compound_statement "{\n            puVar18 = (undefined8 *)FUN_00275550(0x90);\n            uVar2 = *(undefined8 *)(param_1 + 0x88);\n            uVar17 = *(undefined8 *)(param_1 + 0x80);\n            uVar4 = *(undefined8 *)(param_1 + 0x68);\n            uVar5 = *(undefined8 *)(param_1 + 0x70);\n            *(undefined1 *)(puVar18 + 4) = 0;\n            uVar6 = *(undefined8 *)(param_1 + 0x60);\n            uVar7 = *(undefined8 *)(param_1 + 0x38);\n            puVar18[2] = puVar18 + 4;\n            uVar1 = *(undefined4 *)(param_1 + 0x58);\n            uVar8 = *(undefined8 *)(param_1 + 0x50);\n            puVar18[0xd] = uVar5;\n            uVar5 = *(undefined8 *)(param_1 + 0x48);\n            uVar9 = *(undefined8 *)(param_1 + 0x40);\n            puVar18[0xe] = uVar4;\n            puVar18[1] = 0;\n            puVar18[3] = 0;\n            *(undefined1 *)(puVar18 + 6) = 0;\n            *puVar18 = &PTR_FUN_003ad080;\n            puVar18[7] = uVar9;\n            puVar18[8] = uVar5;\n            puVar18[9] = uVar8;\n            *(undefined4 *)(puVar18 + 10) = uVar1;\n            puVar18[0xb] = uVar7;\n            puVar18[0xc] = uVar6;\n            puVar18[0xf] = puVar14;\n            puVar18[0x10] = uVar17;\n            puVar18[0x11] = uVar2;\n            FUN_00230080(param_2,puVar18);\n            return uVar13;\n          }" ({ "{") (expression_statement "puVar18 = (undefined8 *)FUN_00275550(0x90);" (assignment_expression "puVar18 = (undefined8 *)FUN_00275550(0x90)" (identifier "puVar18") (= "=") (cast_expression "(undefined8 *)FUN_00275550(0x90)" (( "(") (type_descriptor "undefined8 *" (type_identifier "undefined8") (abstract_pointer_declarator "*" (* "*"))) () ")") (call_expression "FUN_00275550(0x90)" (identifier "FUN_00275550") (argument_list "(0x90)" (( "(") (number_literal "0x90") () ")"))))) (; ";")) (expression_statement "uVar2 = *(undefined8 *)(param_1 + 0x88);" (assignment_expression "uVar2 = *(undefined8 *)(param_1 + 0x88)" (identifier "uVar2") (= "=") (pointer_expression "*(undefined8 *)(param_1 + 0x88)" (* "*") (cast_expression "(undefined8 *)(param_1 + 0x88)" (( "(") (type_descriptor "undefined8 *" (type_identifier "undefined8") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_1 + 0x88)" (( "(") (binary_expression "param_1 + 0x88" (identifier "param_1") (+ "+") (number_literal "0x88")) () ")"))))) (; ";")) (expression_statement "uVar17 = *(undefined8 *)(param_1 + 0x80);" (assignment_expression "uVar17 = *(undefined8 *)(param_1 + 0x80)" (identifier "uVar17") (= "=") (pointer_expression "*(undefined8 *)(param_1 + 0x80)" (* "*") (cast_expression "(undefined8 *)(param_1 + 0x80)" (( "(") (type_descriptor "undefined8 *" (type_identifier "undefined8") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_1 + 0x80)" (( "(") (binary_expression "param_1 + 0x80" (identifier "param_1") (+ "+") (number_literal "0x80")) () ")"))))) (; ";")) (expression_statement "uVar4 = *(undefined8 *)(param_1 + 0x68);" (assignment_expression "uVar4 = *(undefined8 *)(param_1 + 0x68)" (identifier "uVar4") (= "=") (pointer_expression "*(undefined8 *)(param_1 + 0x68)" (* "*") (cast_expression "(undefined8 *)(param_1 + 0x68)" (( "(") (type_descriptor "undefined8 *" (type_identifier "undefined8") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_1 + 0x68)" (( "(") (binary_expression "param_1 + 0x68" (identifier "param_1") (+ "+") (number_literal "0x68")) () ")"))))) (; ";")) (expression_statement "uVar5 = *(undefined8 *)(param_1 + 0x70);" (assignment_expression "uVar5 = *(undefined8 *)(param_1 + 0x70)" (identifier "uVar5") (= "=") (pointer_expression "*(undefined8 *)(param_1 + 0x70)" (* "*") (cast_expression "(undefined8 *)(param_1 + 0x70)" (( "(") (type_descriptor "undefined8 *" (type_identifier "undefined8") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_1 + 0x70)" (( "(") (binary_expression "param_1 + 0x70" (identifier "param_1") (+ "+") (number_literal "0x70")) () ")"))))) (; ";")) (expression_statement "*(undefined1 *)(puVar18 + 4) = 0;" (assignment_expression "*(undefined1 *)(puVar18 + 4) = 0" (pointer_expression "*(undefined1 *)(puVar18 + 4)" (* "*") (cast_expression "(undefined1 *)(puVar18 + 4)" (( "(") (type_descriptor "undefined1 *" (type_identifier "undefined1") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar18 + 4)" (( "(") (binary_expression "puVar18 + 4" (identifier "puVar18") (+ "+") (number_literal "4")) () ")")))) (= "=") (number_literal "0")) (; ";")) (expression_statement "uVar6 = *(undefined8 *)(param_1 + 0x60);" (assignment_expression "uVar6 = *(undefined8 *)(param_1 + 0x60)" (identifier "uVar6") (= "=") (pointer_expression "*(undefined8 *)(param_1 + 0x60)" (* "*") (cast_expression "(undefined8 *)(param_1 + 0x60)" (( "(") (type_descriptor "undefined8 *" (type_identifier "undefined8") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_1 + 0x60)" (( "(") (binary_expression "param_1 + 0x60" (identifier "param_1") (+ "+") (number_literal "0x60")) () ")"))))) (; ";")) (expression_statement "uVar7 = *(undefined8 *)(param_1 + 0x38);" (assignment_expression "uVar7 = *(undefined8 *)(param_1 + 0x38)" (identifier "uVar7") (= "=") (pointer_expression "*(undefined8 *)(param_1 + 0x38)" (* "*") (cast_expression "(undefined8 *)(param_1 + 0x38)" (( "(") (type_descriptor "undefined8 *" (type_identifier "undefined8") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_1 + 0x38)" (( "(") (binary_expression "param_1 + 0x38" (identifier "param_1") (+ "+") (number_literal "0x38")) () ")"))))) (; ";")) (expression_statement "puVar18[2] = puVar18 + 4;" (assignment_expression "puVar18[2] = puVar18 + 4" (subscript_expression "puVar18[2]" (identifier "puVar18") ([ "[") (number_literal "2") (] "]")) (= "=") (binary_expression "puVar18 + 4" (identifier "puVar18") (+ "+") (number_literal "4"))) (; ";")) (expression_statement "uVar1 = *(undefined4 *)(param_1 + 0x58);" (assignment_expression "uVar1 = *(undefined4 *)(param_1 + 0x58)" (identifier "uVar1") (= "=") (pointer_expression "*(undefined4 *)(param_1 + 0x58)" (* "*") (cast_expression "(undefined4 *)(param_1 + 0x58)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_1 + 0x58)" (( "(") (binary_expression "param_1 + 0x58" (identifier "param_1") (+ "+") (number_literal "0x58")) () ")"))))) (; ";")) (expression_statement "uVar8 = *(undefined8 *)(param_1 + 0x50);" (assignment_expression "uVar8 = *(undefined8 *)(param_1 + 0x50)" (identifier "uVar8") (= "=") (pointer_expression "*(undefined8 *)(param_1 + 0x50)" (* "*") (cast_expression "(undefined8 *)(param_1 + 0x50)" (( "(") (type_descriptor "undefined8 *" (type_identifier "undefined8") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_1 + 0x50)" (( "(") (binary_expression "param_1 + 0x50" (identifier "param_1") (+ "+") (number_literal "0x50")) () ")"))))) (; ";")) (expression_statement "puVar18[0xd] = uVar5;" (assignment_expression "puVar18[0xd] = uVar5" (subscript_expression "puVar18[0xd]" (identifier "puVar18") ([ "[") (number_literal "0xd") (] "]")) (= "=") (identifier "uVar5")) (; ";")) (expression_statement "uVar5 = *(undefined8 *)(param_1 + 0x48);" (assignment_expression "uVar5 = *(undefined8 *)(param_1 + 0x48)" (identifier "uVar5") (= "=") (pointer_expression "*(undefined8 *)(param_1 + 0x48)" (* "*") (cast_expression "(undefined8 *)(param_1 + 0x48)" (( "(") (type_descriptor "undefined8 *" (type_identifier "undefined8") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_1 + 0x48)" (( "(") (binary_expression "param_1 + 0x48" (identifier "param_1") (+ "+") (number_literal "0x48")) () ")"))))) (; ";")) (expression_statement "uVar9 = *(undefined8 *)(param_1 + 0x40);" (assignment_expression "uVar9 = *(undefined8 *)(param_1 + 0x40)" (identifier "uVar9") (= "=") (pointer_expression "*(undefined8 *)(param_1 + 0x40)" (* "*") (cast_expression "(undefined8 *)(param_1 + 0x40)" (( "(") (type_descriptor "undefined8 *" (type_identifier "undefined8") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_1 + 0x40)" (( "(") (binary_expression "param_1 + 0x40" (identifier "param_1") (+ "+") (number_literal "0x40")) () ")"))))) (; ";")) (expression_statement "puVar18[0xe] = uVar4;" (assignment_expression "puVar18[0xe] = uVar4" (subscript_expression "puVar18[0xe]" (identifier "puVar18") ([ "[") (number_literal "0xe") (] "]")) (= "=") (identifier "uVar4")) (; ";")) (expression_statement "puVar18[1] = 0;" (assignment_expression "puVar18[1] = 0" (subscript_expression "puVar18[1]" (identifier "puVar18") ([ "[") (number_literal "1") (] "]")) (= "=") (number_literal "0")) (; ";")) (expression_statement "puVar18[3] = 0;" (assignment_expression "puVar18[3] = 0" (subscript_expression "puVar18[3]" (identifier "puVar18") ([ "[") (number_literal "3") (] "]")) (= "=") (number_literal "0")) (; ";")) (expression_statement "*(undefined1 *)(puVar18 + 6) = 0;" (assignment_expression "*(undefined1 *)(puVar18 + 6) = 0" (pointer_expression "*(undefined1 *)(puVar18 + 6)" (* "*") (cast_expression "(undefined1 *)(puVar18 + 6)" (( "(") (type_descriptor "undefined1 *" (type_identifier "undefined1") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar18 + 6)" (( "(") (binary_expression "puVar18 + 6" (identifier "puVar18") (+ "+") (number_literal "6")) () ")")))) (= "=") (number_literal "0")) (; ";")) (expression_statement "*puVar18 = &PTR_FUN_003ad080;" (assignment_expression "*puVar18 = &PTR_FUN_003ad080" (pointer_expression "*puVar18" (* "*") (identifier "puVar18")) (= "=") (pointer_expression "&PTR_FUN_003ad080" (& "&") (identifier "PTR_FUN_003ad080"))) (; ";")) (expression_statement "puVar18[7] = uVar9;" (assignment_expression "puVar18[7] = uVar9" (subscript_expression "puVar18[7]" (identifier "puVar18") ([ "[") (number_literal "7") (] "]")) (= "=") (identifier "uVar9")) (; ";")) (expression_statement "puVar18[8] = uVar5;" (assignment_expression "puVar18[8] = uVar5" (subscript_expression "puVar18[8]" (identifier "puVar18") ([ "[") (number_literal "8") (] "]")) (= "=") (identifier "uVar5")) (; ";")) (expression_statement "puVar18[9] = uVar8;" (assignment_expression "puVar18[9] = uVar8" (subscript_expression "puVar18[9]" (identifier "puVar18") ([ "[") (number_literal "9") (] "]")) (= "=") (identifier "uVar8")) (; ";")) (expression_statement "*(undefined4 *)(puVar18 + 10) = uVar1;" (assignment_expression "*(undefined4 *)(puVar18 + 10) = uVar1" (pointer_expression "*(undefined4 *)(puVar18 + 10)" (* "*") (cast_expression "(undefined4 *)(puVar18 + 10)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar18 + 10)" (( "(") (binary_expression "puVar18 + 10" (identifier "puVar18") (+ "+") (number_literal "10")) () ")")))) (= "=") (identifier "uVar1")) (; ";")) (expression_statement "puVar18[0xb] = uVar7;" (assignment_expression "puVar18[0xb] = uVar7" (subscript_expression "puVar18[0xb]" (identifier "puVar18") ([ "[") (number_literal "0xb") (] "]")) (= "=") (identifier "uVar7")) (; ";")) (expression_statement "puVar18[0xc] = uVar6;" (assignment_expression "puVar18[0xc] = uVar6" (subscript_expression "puVar18[0xc]" (identifier "puVar18") ([ "[") (number_literal "0xc") (] "]")) (= "=") (identifier "uVar6")) (; ";")) (expression_statement "puVar18[0xf] = puVar14;" (assignment_expression "puVar18[0xf] = puVar14" (subscript_expression "puVar18[0xf]" (identifier "puVar18") ([ "[") (number_literal "0xf") (] "]")) (= "=") (identifier "puVar14")) (; ";")) (expression_statement "puVar18[0x10] = uVar17;" (assignment_expression "puVar18[0x10] = uVar17" (subscript_expression "puVar18[0x10]" (identifier "puVar18") ([ "[") (number_literal "0x10") (] "]")) (= "=") (identifier "uVar17")) (; ";")) (expression_statement "puVar18[0x11] = uVar2;" (assignment_expression "puVar18[0x11] = uVar2" (subscript_expression "puVar18[0x11]" (identifier "puVar18") ([ "[") (number_literal "0x11") (] "]")) (= "=") (identifier "uVar2")) (; ";")) (expression_statement "FUN_00230080(param_2,puVar18);" (call_expression "FUN_00230080(param_2,puVar18)" (identifier "FUN_00230080") (argument_list "(param_2,puVar18)" (( "(") (identifier "param_2") (, ",") (identifier "puVar18") () ")"))) (; ";")) (return_statement "return uVar13;" (return "return") (identifier "uVar13") (; ";")) (} "}"))) (if_statement "if (plVar19 == (long *)0x0) {\n            if ((char)local_58[0] == '\0') {\n              return 0;\n            }\n            puVar18 = puVar14 + 5;\n            FUN_001f51c0(*(undefined8 *)(param_1 + 0x68),puVar14);\n            FUN_0016ad00(puVar18);\n            FUN_0016ae30(puVar18,param_1);\n            FUN_0016b0b0(puVar18);\n            if (puVar14 + 3 != (undefined8 *)puVar14[1]) {\n              FUN_00276d20();\n            }\n            thunk_FUN_00276d20(puVar14,0xe8);\n            *(int *)(param_1 + 0x58) = *(int *)(param_1 + 0x58) + 1;\n            uVar13 = FUN_001f5c10(param_1,param_2);\n            return uVar13;\n          }" (if "if") (parenthesized_expression "(plVar19 == (long *)0x0)" (( "(") (binary_expression "plVar19 == (long *)0x0" (identifier "plVar19") (== "==") (cast_expression "(long *)0x0" (( "(") (type_descriptor "long *" (sized_type_specifier "long" (long "long")) (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0"))) () ")")) (compound_statement "{\n            if ((char)local_58[0] == '\0') {\n              return 0;\n            }\n            puVar18 = puVar14 + 5;\n            FUN_001f51c0(*(undefined8 *)(param_1 + 0x68),puVar14);\n            FUN_0016ad00(puVar18);\n            FUN_0016ae30(puVar18,param_1);\n            FUN_0016b0b0(puVar18);\n            if (puVar14 + 3 != (undefined8 *)puVar14[1]) {\n              FUN_00276d20();\n            }\n            thunk_FUN_00276d20(puVar14,0xe8);\n            *(int *)(param_1 + 0x58) = *(int *)(param_1 + 0x58) + 1;\n            uVar13 = FUN_001f5c10(param_1,param_2);\n            return uVar13;\n          }" ({ "{") (if_statement "if ((char)local_58[0] == '\0') {\n              return 0;\n            }" (if "if") (parenthesized_expression "((char)local_58[0] == '\0')" (( "(") (binary_expression "(char)local_58[0] == '\0'" (cast_expression "(char)local_58[0]" (( "(") (type_descriptor "char" (primitive_type "char")) () ")") (subscript_expression "local_58[0]" (identifier "local_58") ([ "[") (number_literal "0") (] "]"))) (== "==") (char_literal "'\0'" (' "'") (escape_sequence "\0") (' "'"))) () ")")) (compound_statement "{\n              return 0;\n            }" ({ "{") (return_statement "return 0;" (return "return") (number_literal "0") (; ";")) (} "}"))) (expression_statement "puVar18 = puVar14 + 5;" (assignment_expression "puVar18 = puVar14 + 5" (identifier "puVar18") (= "=") (binary_expression "puVar14 + 5" (identifier "puVar14") (+ "+") (number_literal "5"))) (; ";")) (expression_statement "FUN_001f51c0(*(undefined8 *)(param_1 + 0x68),puVar14);" (call_expression "FUN_001f51c0(*(undefined8 *)(param_1 + 0x68),puVar14)" (identifier "FUN_001f51c0") (argument_list "(*(undefined8 *)(param_1 + 0x68),puVar14)" (( "(") (pointer_expression "*(undefined8 *)(param_1 + 0x68)" (* "*") (cast_expression "(undefined8 *)(param_1 + 0x68)" (( "(") (type_descriptor "undefined8 *" (type_identifier "undefined8") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_1 + 0x68)" (( "(") (binary_expression "param_1 + 0x68" (identifier "param_1") (+ "+") (number_literal "0x68")) () ")")))) (, ",") (identifier "puVar14") () ")"))) (; ";")) (expression_statement "FUN_0016ad00(puVar18);" (call_expression "FUN_0016ad00(puVar18)" (identifier "FUN_0016ad00") (argument_list "(puVar18)" (( "(") (identifier "puVar18") () ")"))) (; ";")) (expression_statement "FUN_0016ae30(puVar18,param_1);" (call_expression "FUN_0016ae30(puVar18,param_1)" (identifier "FUN_0016ae30") (argument_list "(puVar18,param_1)" (( "(") (identifier "puVar18") (, ",") (identifier "param_1") () ")"))) (; ";")) (expression_statement "FUN_0016b0b0(puVar18);" (call_expression "FUN_0016b0b0(puVar18)" (identifier "FUN_0016b0b0") (argument_list "(puVar18)" (( "(") (identifier "puVar18") () ")"))) (; ";")) (if_statement "if (puVar14 + 3 != (undefined8 *)puVar14[1]) {\n              FUN_00276d20();\n            }" (if "if") (parenthesized_expression "(puVar14 + 3 != (undefined8 *)puVar14[1])" (( "(") (binary_expression "puVar14 + 3 != (undefined8 *)puVar14[1]" (binary_expression "puVar14 + 3" (identifier "puVar14") (+ "+") (number_literal "3")) (!= "!=") (cast_expression "(undefined8 *)puVar14[1]" (( "(") (type_descriptor "undefined8 *" (type_identifier "undefined8") (abstract_pointer_declarator "*" (* "*"))) () ")") (subscript_expression "puVar14[1]" (identifier "puVar14") ([ "[") (number_literal "1") (] "]")))) () ")")) (compound_statement "{\n              FUN_00276d20();\n            }" ({ "{") (expression_statement "FUN_00276d20();" (call_expression "FUN_00276d20()" (identifier "FUN_00276d20") (argument_list "()" (( "(") () ")"))) (; ";")) (} "}"))) (expression_statement "thunk_FUN_00276d20(puVar14,0xe8);" (call_expression "thunk_FUN_00276d20(puVar14,0xe8)" (identifier "thunk_FUN_00276d20") (argument_list "(puVar14,0xe8)" (( "(") (identifier "puVar14") (, ",") (number_literal "0xe8") () ")"))) (; ";")) (expression_statement "*(int *)(param_1 + 0x58) = *(int *)(param_1 + 0x58) + 1;" (assignment_expression "*(int *)(param_1 + 0x58) = *(int *)(param_1 + 0x58) + 1" (pointer_expression "*(int *)(param_1 + 0x58)" (* "*") (cast_expression "(int *)(param_1 + 0x58)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_1 + 0x58)" (( "(") (binary_expression "param_1 + 0x58" (identifier "param_1") (+ "+") (number_literal "0x58")) () ")")))) (= "=") (binary_expression "*(int *)(param_1 + 0x58) + 1" (pointer_expression "*(int *)(param_1 + 0x58)" (* "*") (cast_expression "(int *)(param_1 + 0x58)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_1 + 0x58)" (( "(") (binary_expression "param_1 + 0x58" (identifier "param_1") (+ "+") (number_literal "0x58")) () ")")))) (+ "+") (number_literal "1"))) (; ";")) (expression_statement "uVar13 = FUN_001f5c10(param_1,param_2);" (assignment_expression "uVar13 = FUN_001f5c10(param_1,param_2)" (identifier "uVar13") (= "=") (call_expression "FUN_001f5c10(param_1,param_2)" (identifier "FUN_001f5c10") (argument_list "(param_1,param_2)" (( "(") (identifier "param_1") (, ",") (identifier "param_2") () ")")))) (; ";")) (return_statement "return uVar13;" (return "return") (identifier "uVar13") (; ";")) (} "}"))) (expression_statement "puVar18 = (undefined8 *)FUN_00275550(0x80);" (assignment_expression "puVar18 = (undefined8 *)FUN_00275550(0x80)" (identifier "puVar18") (= "=") (cast_expression "(undefined8 *)FUN_00275550(0x80)" (( "(") (type_descriptor "undefined8 *" (type_identifier "undefined8") (abstract_pointer_declarator "*" (* "*"))) () ")") (call_expression "FUN_00275550(0x80)" (identifier "FUN_00275550") (argument_list "(0x80)" (( "(") (number_literal "0x80") () ")"))))) (; ";")) (expression_statement "*puVar18 = 0;" (assignment_expression "*puVar18 = 0" (pointer_expression "*puVar18" (* "*") (identifier "puVar18")) (= "=") (number_literal "0")) (; ";")) (expression_statement "puVar18[1] = 0;" (assignment_expression "puVar18[1] = 0" (subscript_expression "puVar18[1]" (identifier "puVar18") ([ "[") (number_literal "1") (] "]")) (= "=") (number_literal "0")) (; ";")) (expression_statement "puVar18[3] = 0;" (assignment_expression "puVar18[3] = 0" (subscript_expression "puVar18[3]" (identifier "puVar18") ([ "[") (number_literal "3") (] "]")) (= "=") (number_literal "0")) (; ";")) (expression_statement "puVar18[6] = 0;" (assignment_expression "puVar18[6] = 0" (subscript_expression "puVar18[6]" (identifier "puVar18") ([ "[") (number_literal "6") (] "]")) (= "=") (number_literal "0")) (; ";")) (expression_statement "puVar18[8] = 0;" (assignment_expression "puVar18[8] = 0" (subscript_expression "puVar18[8]" (identifier "puVar18") ([ "[") (number_literal "8") (] "]")) (= "=") (number_literal "0")) (; ";")) (expression_statement "puVar18[10] = 0;" (assignment_expression "puVar18[10] = 0" (subscript_expression "puVar18[10]" (identifier "puVar18") ([ "[") (number_literal "10") (] "]")) (= "=") (number_literal "0")) (; ";")) (expression_statement "puVar18[0xd] = 0;" (assignment_expression "puVar18[0xd] = 0" (subscript_expression "puVar18[0xd]" (identifier "puVar18") ([ "[") (number_literal "0xd") (] "]")) (= "=") (number_literal "0")) (; ";")) (expression_statement "(**(code **)(*plVar19 + 0x40))(plVar19,puVar18);" (call_expression "(**(code **)(*plVar19 + 0x40))(plVar19,puVar18)" (parenthesized_expression "(**(code **)(*plVar19 + 0x40))" (( "(") (pointer_expression "**(code **)(*plVar19 + 0x40)" (* "*") (pointer_expression "*(code **)(*plVar19 + 0x40)" (* "*") (cast_expression "(code **)(*plVar19 + 0x40)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(*plVar19 + 0x40)" (( "(") (binary_expression "*plVar19 + 0x40" (pointer_expression "*plVar19" (* "*") (identifier "plVar19")) (+ "+") (number_literal "0x40")) () ")"))))) () ")")) (argument_list "(plVar19,puVar18)" (( "(") (identifier "plVar19") (, ",") (identifier "puVar18") () ")"))) (; ";")) (expression_statement "FUN_0016ae30(puVar14 + 5,param_1);" (call_expression "FUN_0016ae30(puVar14 + 5,param_1)" (identifier "FUN_0016ae30") (argument_list "(puVar14 + 5,param_1)" (( "(") (binary_expression "puVar14 + 5" (identifier "puVar14") (+ "+") (number_literal "5")) (, ",") (identifier "param_1") () ")"))) (; ";")) (expression_statement "puVar14 = *(undefined8 **)(param_1 + 0x78);" (assignment_expression "puVar14 = *(undefined8 **)(param_1 + 0x78)" (identifier "puVar14") (= "=") (pointer_expression "*(undefined8 **)(param_1 + 0x78)" (* "*") (cast_expression "(undefined8 **)(param_1 + 0x78)" (( "(") (type_descriptor "undefined8 **" (type_identifier "undefined8") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(param_1 + 0x78)" (( "(") (binary_expression "param_1 + 0x78" (identifier "param_1") (+ "+") (number_literal "0x78")) () ")"))))) (; ";")) (if_statement "if (puVar14 == (undefined8 *)0x0) {\n            puVar14 = (undefined8 *)FUN_00275550(0x80);\n            uVar2 = *(undefined8 *)(param_1 + 0x68);\n            uVar17 = *(undefined8 *)(param_1 + 0x48);\n            uVar4 = *(undefined8 *)(param_1 + 0x40);\n            uVar5 = *(undefined8 *)(param_1 + 0x38);\n            puVar14[0xd] = puVar18;\n            uVar6 = *(undefined8 *)(param_1 + 0x88);\n            uVar7 = *(undefined8 *)(param_1 + 0x80);\n            puVar14[2] = puVar14 + 4;\n            puVar14[9] = uVar17;\n            puVar14[10] = uVar2;\n            puVar14[1] = 0;\n            puVar14[3] = 0;\n            *(undefined1 *)(puVar14 + 4) = 0;\n            *(undefined1 *)(puVar14 + 6) = 0;\n            *puVar14 = &PTR_FUN_003acf00;\n            puVar14[7] = uVar5;\n            puVar14[8] = uVar4;\n            puVar14[0xb] = plVar19;\n            puVar14[0xc] = 0;\n            puVar14[0xe] = uVar7;\n            puVar14[0xf] = uVar6;\n            FUN_002300a0(param_2,puVar14);\n            return (uint)bVar11;\n          }" (if "if") (parenthesized_expression "(puVar14 == (undefined8 *)0x0)" (( "(") (binary_expression "puVar14 == (undefined8 *)0x0" (identifier "puVar14") (== "==") (cast_expression "(undefined8 *)0x0" (( "(") (type_descriptor "undefined8 *" (type_identifier "undefined8") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0"))) () ")")) (compound_statement "{\n            puVar14 = (undefined8 *)FUN_00275550(0x80);\n            uVar2 = *(undefined8 *)(param_1 + 0x68);\n            uVar17 = *(undefined8 *)(param_1 + 0x48);\n            uVar4 = *(undefined8 *)(param_1 + 0x40);\n            uVar5 = *(undefined8 *)(param_1 + 0x38);\n            puVar14[0xd] = puVar18;\n            uVar6 = *(undefined8 *)(param_1 + 0x88);\n            uVar7 = *(undefined8 *)(param_1 + 0x80);\n            puVar14[2] = puVar14 + 4;\n            puVar14[9] = uVar17;\n            puVar14[10] = uVar2;\n            puVar14[1] = 0;\n            puVar14[3] = 0;\n            *(undefined1 *)(puVar14 + 4) = 0;\n            *(undefined1 *)(puVar14 + 6) = 0;\n            *puVar14 = &PTR_FUN_003acf00;\n            puVar14[7] = uVar5;\n            puVar14[8] = uVar4;\n            puVar14[0xb] = plVar19;\n            puVar14[0xc] = 0;\n            puVar14[0xe] = uVar7;\n            puVar14[0xf] = uVar6;\n            FUN_002300a0(param_2,puVar14);\n            return (uint)bVar11;\n          }" ({ "{") (expression_statement "puVar14 = (undefined8 *)FUN_00275550(0x80);" (assignment_expression "puVar14 = (undefined8 *)FUN_00275550(0x80)" (identifier "puVar14") (= "=") (cast_expression "(undefined8 *)FUN_00275550(0x80)" (( "(") (type_descriptor "undefined8 *" (type_identifier "undefined8") (abstract_pointer_declarator "*" (* "*"))) () ")") (call_expression "FUN_00275550(0x80)" (identifier "FUN_00275550") (argument_list "(0x80)" (( "(") (number_literal "0x80") () ")"))))) (; ";")) (expression_statement "uVar2 = *(undefined8 *)(param_1 + 0x68);" (assignment_expression "uVar2 = *(undefined8 *)(param_1 + 0x68)" (identifier "uVar2") (= "=") (pointer_expression "*(undefined8 *)(param_1 + 0x68)" (* "*") (cast_expression "(undefined8 *)(param_1 + 0x68)" (( "(") (type_descriptor "undefined8 *" (type_identifier "undefined8") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_1 + 0x68)" (( "(") (binary_expression "param_1 + 0x68" (identifier "param_1") (+ "+") (number_literal "0x68")) () ")"))))) (; ";")) (expression_statement "uVar17 = *(undefined8 *)(param_1 + 0x48);" (assignment_expression "uVar17 = *(undefined8 *)(param_1 + 0x48)" (identifier "uVar17") (= "=") (pointer_expression "*(undefined8 *)(param_1 + 0x48)" (* "*") (cast_expression "(undefined8 *)(param_1 + 0x48)" (( "(") (type_descriptor "undefined8 *" (type_identifier "undefined8") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_1 + 0x48)" (( "(") (binary_expression "param_1 + 0x48" (identifier "param_1") (+ "+") (number_literal "0x48")) () ")"))))) (; ";")) (expression_statement "uVar4 = *(undefined8 *)(param_1 + 0x40);" (assignment_expression "uVar4 = *(undefined8 *)(param_1 + 0x40)" (identifier "uVar4") (= "=") (pointer_expression "*(undefined8 *)(param_1 + 0x40)" (* "*") (cast_expression "(undefined8 *)(param_1 + 0x40)" (( "(") (type_descriptor "undefined8 *" (type_identifier "undefined8") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_1 + 0x40)" (( "(") (binary_expression "param_1 + 0x40" (identifier "param_1") (+ "+") (number_literal "0x40")) () ")"))))) (; ";")) (expression_statement "uVar5 = *(undefined8 *)(param_1 + 0x38);" (assignment_expression "uVar5 = *(undefined8 *)(param_1 + 0x38)" (identifier "uVar5") (= "=") (pointer_expression "*(undefined8 *)(param_1 + 0x38)" (* "*") (cast_expression "(undefined8 *)(param_1 + 0x38)" (( "(") (type_descriptor "undefined8 *" (type_identifier "undefined8") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_1 + 0x38)" (( "(") (binary_expression "param_1 + 0x38" (identifier "param_1") (+ "+") (number_literal "0x38")) () ")"))))) (; ";")) (expression_statement "puVar14[0xd] = puVar18;" (assignment_expression "puVar14[0xd] = puVar18" (subscript_expression "puVar14[0xd]" (identifier "puVar14") ([ "[") (number_literal "0xd") (] "]")) (= "=") (identifier "puVar18")) (; ";")) (expression_statement "uVar6 = *(undefined8 *)(param_1 + 0x88);" (assignment_expression "uVar6 = *(undefined8 *)(param_1 + 0x88)" (identifier "uVar6") (= "=") (pointer_expression "*(undefined8 *)(param_1 + 0x88)" (* "*") (cast_expression "(undefined8 *)(param_1 + 0x88)" (( "(") (type_descriptor "undefined8 *" (type_identifier "undefined8") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_1 + 0x88)" (( "(") (binary_expression "param_1 + 0x88" (identifier "param_1") (+ "+") (number_literal "0x88")) () ")"))))) (; ";")) (expression_statement "uVar7 = *(undefined8 *)(param_1 + 0x80);" (assignment_expression "uVar7 = *(undefined8 *)(param_1 + 0x80)" (identifier "uVar7") (= "=") (pointer_expression "*(undefined8 *)(param_1 + 0x80)" (* "*") (cast_expression "(undefined8 *)(param_1 + 0x80)" (( "(") (type_descriptor "undefined8 *" (type_identifier "undefined8") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_1 + 0x80)" (( "(") (binary_expression "param_1 + 0x80" (identifier "param_1") (+ "+") (number_literal "0x80")) () ")"))))) (; ";")) (expression_statement "puVar14[2] = puVar14 + 4;" (assignment_expression "puVar14[2] = puVar14 + 4" (subscript_expression "puVar14[2]" (identifier "puVar14") ([ "[") (number_literal "2") (] "]")) (= "=") (binary_expression "puVar14 + 4" (identifier "puVar14") (+ "+") (number_literal "4"))) (; ";")) (expression_statement "puVar14[9] = uVar17;" (assignment_expression "puVar14[9] = uVar17" (subscript_expression "puVar14[9]" (identifier "puVar14") ([ "[") (number_literal "9") (] "]")) (= "=") (identifier "uVar17")) (; ";")) (expression_statement "puVar14[10] = uVar2;" (assignment_expression "puVar14[10] = uVar2" (subscript_expression "puVar14[10]" (identifier "puVar14") ([ "[") (number_literal "10") (] "]")) (= "=") (identifier "uVar2")) (; ";")) (expression_statement "puVar14[1] = 0;" (assignment_expression "puVar14[1] = 0" (subscript_expression "puVar14[1]" (identifier "puVar14") ([ "[") (number_literal "1") (] "]")) (= "=") (number_literal "0")) (; ";")) (expression_statement "puVar14[3] = 0;" (assignment_expression "puVar14[3] = 0" (subscript_expression "puVar14[3]" (identifier "puVar14") ([ "[") (number_literal "3") (] "]")) (= "=") (number_literal "0")) (; ";")) (expression_statement "*(undefined1 *)(puVar14 + 4) = 0;" (assignment_expression "*(undefined1 *)(puVar14 + 4) = 0" (pointer_expression "*(undefined1 *)(puVar14 + 4)" (* "*") (cast_expression "(undefined1 *)(puVar14 + 4)" (( "(") (type_descriptor "undefined1 *" (type_identifier "undefined1") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar14 + 4)" (( "(") (binary_expression "puVar14 + 4" (identifier "puVar14") (+ "+") (number_literal "4")) () ")")))) (= "=") (number_literal "0")) (; ";")) (expression_statement "*(undefined1 *)(puVar14 + 6) = 0;" (assignment_expression "*(undefined1 *)(puVar14 + 6) = 0" (pointer_expression "*(undefined1 *)(puVar14 + 6)" (* "*") (cast_expression "(undefined1 *)(puVar14 + 6)" (( "(") (type_descriptor "undefined1 *" (type_identifier "undefined1") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar14 + 6)" (( "(") (binary_expression "puVar14 + 6" (identifier "puVar14") (+ "+") (number_literal "6")) () ")")))) (= "=") (number_literal "0")) (; ";")) (expression_statement "*puVar14 = &PTR_FUN_003acf00;" (assignment_expression "*puVar14 = &PTR_FUN_003acf00" (pointer_expression "*puVar14" (* "*") (identifier "puVar14")) (= "=") (pointer_expression "&PTR_FUN_003acf00" (& "&") (identifier "PTR_FUN_003acf00"))) (; ";")) (expression_statement "puVar14[7] = uVar5;" (assignment_expression "puVar14[7] = uVar5" (subscript_expression "puVar14[7]" (identifier "puVar14") ([ "[") (number_literal "7") (] "]")) (= "=") (identifier "uVar5")) (; ";")) (expression_statement "puVar14[8] = uVar4;" (assignment_expression "puVar14[8] = uVar4" (subscript_expression "puVar14[8]" (identifier "puVar14") ([ "[") (number_literal "8") (] "]")) (= "=") (identifier "uVar4")) (; ";")) (expression_statement "puVar14[0xb] = plVar19;" (assignment_expression "puVar14[0xb] = plVar19" (subscript_expression "puVar14[0xb]" (identifier "puVar14") ([ "[") (number_literal "0xb") (] "]")) (= "=") (identifier "plVar19")) (; ";")) (expression_statement "puVar14[0xc] = 0;" (assignment_expression "puVar14[0xc] = 0" (subscript_expression "puVar14[0xc]" (identifier "puVar14") ([ "[") (number_literal "0xc") (] "]")) (= "=") (number_literal "0")) (; ";")) (expression_statement "puVar14[0xe] = uVar7;" (assignment_expression "puVar14[0xe] = uVar7" (subscript_expression "puVar14[0xe]" (identifier "puVar14") ([ "[") (number_literal "0xe") (] "]")) (= "=") (identifier "uVar7")) (; ";")) (expression_statement "puVar14[0xf] = uVar6;" (assignment_expression "puVar14[0xf] = uVar6" (subscript_expression "puVar14[0xf]" (identifier "puVar14") ([ "[") (number_literal "0xf") (] "]")) (= "=") (identifier "uVar6")) (; ";")) (expression_statement "FUN_002300a0(param_2,puVar14);" (call_expression "FUN_002300a0(param_2,puVar14)" (identifier "FUN_002300a0") (argument_list "(param_2,puVar14)" (( "(") (identifier "param_2") (, ",") (identifier "puVar14") () ")"))) (; ";")) (return_statement "return (uint)bVar11;" (return "return") (cast_expression "(uint)bVar11" (( "(") (type_descriptor "uint" (type_identifier "uint")) () ")") (identifier "bVar11")) (; ";")) (} "}"))) (expression_statement "pbVar10 = *(byte **)(param_1 + 0x68);" (assignment_expression "pbVar10 = *(byte **)(param_1 + 0x68)" (identifier "pbVar10") (= "=") (pointer_expression "*(byte **)(param_1 + 0x68)" (* "*") (cast_expression "(byte **)(param_1 + 0x68)" (( "(") (type_descriptor "byte **" (type_identifier "byte") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(param_1 + 0x68)" (( "(") (binary_expression "param_1 + 0x68" (identifier "param_1") (+ "+") (number_literal "0x68")) () ")"))))) (; ";")) (expression_statement "puVar14[1] = puVar18;" (assignment_expression "puVar14[1] = puVar18" (subscript_expression "puVar14[1]" (identifier "puVar14") ([ "[") (number_literal "1") (] "]")) (= "=") (identifier "puVar18")) (; ";")) (expression_statement "*puVar14 = plVar19;" (assignment_expression "*puVar14 = plVar19" (pointer_expression "*puVar14" (* "*") (identifier "puVar14")) (= "=") (identifier "plVar19")) (; ";")) (expression_statement "bVar11 = *pbVar10;" (assignment_expression "bVar11 = *pbVar10" (identifier "bVar11") (= "=") (pointer_expression "*pbVar10" (* "*") (identifier "pbVar10"))) (; ";")) (if_statement "if (bVar11 != 0) {\n            *(undefined4 *)(puVar14 + 2) = *(undefined4 *)(pbVar10 + 100);\n            return (uint)bVar11;\n          }" (if "if") (parenthesized_expression "(bVar11 != 0)" (( "(") (binary_expression "bVar11 != 0" (identifier "bVar11") (!= "!=") (number_literal "0")) () ")")) (compound_statement "{\n            *(undefined4 *)(puVar14 + 2) = *(undefined4 *)(pbVar10 + 100);\n            return (uint)bVar11;\n          }" ({ "{") (expression_statement "*(undefined4 *)(puVar14 + 2) = *(undefined4 *)(pbVar10 + 100);" (assignment_expression "*(undefined4 *)(puVar14 + 2) = *(undefined4 *)(pbVar10 + 100)" (pointer_expression "*(undefined4 *)(puVar14 + 2)" (* "*") (cast_expression "(undefined4 *)(puVar14 + 2)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar14 + 2)" (( "(") (binary_expression "puVar14 + 2" (identifier "puVar14") (+ "+") (number_literal "2")) () ")")))) (= "=") (pointer_expression "*(undefined4 *)(pbVar10 + 100)" (* "*") (cast_expression "(undefined4 *)(pbVar10 + 100)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(pbVar10 + 100)" (( "(") (binary_expression "pbVar10 + 100" (identifier "pbVar10") (+ "+") (number_literal "100")) () ")"))))) (; ";")) (return_statement "return (uint)bVar11;" (return "return") (cast_expression "(uint)bVar11" (( "(") (type_descriptor "uint" (type_identifier "uint")) () ")") (identifier "bVar11")) (; ";")) (} "}"))) (} "}")) (else_clause "else {\n          bVar11 = **(byte **)(param_1 + 0x68);\n          if (bVar11 != 0) {\n            __s = *(char **)(*(byte **)(param_1 + 0x68) + 8);\n            pcVar20 = (char *)0xffffffffffffffff;\n            local_58[0] = local_48;\n            if (__s != (char *)0x0) {\n              sVar15 = strlen(__s);\n              pcVar20 = __s + sVar15;\n            }\n            FUN_0015cbe0(local_58,__s,pcVar20);\n                    \n            lVar16 = FUN_00275550(0x178);\n                    \n            FUN_00234b40(lVar16,local_58,puVar14,\n                         lVar3 == s__<thin>__<arch>_N4gold7ArchiveE_00322e50._0_8_,\n                         *(undefined8 *)(param_1 + 0x50),param_1);\n            if (local_58[0] != local_48) {\n              FUN_00276d20();\n            }\n            FUN_00235c40(lVar16);\n            FUN_0016ae30(*(long *)(lVar16 + 0x38) + 0x28,param_1);\n            puVar14 = (undefined8 *)FUN_00275550(0x90);\n            uVar2 = *(undefined8 *)(param_1 + 0x88);\n            uVar17 = *(undefined8 *)(param_1 + 0x80);\n            uVar4 = *(undefined8 *)(param_1 + 0x70);\n            uVar5 = *(undefined8 *)(param_1 + 0x68);\n            *(undefined1 *)(puVar14 + 4) = 0;\n            uVar6 = *(undefined8 *)(param_1 + 0x60);\n            uVar1 = *(undefined4 *)(param_1 + 0x58);\n            puVar14[2] = puVar14 + 4;\n            uVar7 = *(undefined8 *)(param_1 + 0x50);\n            uVar8 = *(undefined8 *)(param_1 + 0x38);\n            puVar14[0xd] = uVar5;\n            uVar5 = *(undefined8 *)(param_1 + 0x48);\n            uVar9 = *(undefined8 *)(param_1 + 0x40);\n            puVar14[0xf] = uVar4;\n            puVar14[1] = 0;\n            puVar14[3] = 0;\n            *(undefined1 *)(puVar14 + 6) = 0;\n            *puVar14 = &PTR_FUN_003ae430;\n            puVar14[7] = uVar9;\n            puVar14[8] = uVar5;\n            puVar14[9] = uVar8;\n            puVar14[10] = uVar7;\n            *(undefined4 *)(puVar14 + 0xb) = uVar1;\n            puVar14[0xc] = uVar6;\n            puVar14[0xe] = lVar16;\n            puVar14[0x10] = uVar17;\n            puVar14[0x11] = uVar2;\n            FUN_002300a0(param_2,puVar14);\n            return (uint)bVar11;\n          }\n        }" (else "else") (compound_statement "{\n          bVar11 = **(byte **)(param_1 + 0x68);\n          if (bVar11 != 0) {\n            __s = *(char **)(*(byte **)(param_1 + 0x68) + 8);\n            pcVar20 = (char *)0xffffffffffffffff;\n            local_58[0] = local_48;\n            if (__s != (char *)0x0) {\n              sVar15 = strlen(__s);\n              pcVar20 = __s + sVar15;\n            }\n            FUN_0015cbe0(local_58,__s,pcVar20);\n                    \n            lVar16 = FUN_00275550(0x178);\n                    \n            FUN_00234b40(lVar16,local_58,puVar14,\n                         lVar3 == s__<thin>__<arch>_N4gold7ArchiveE_00322e50._0_8_,\n                         *(undefined8 *)(param_1 + 0x50),param_1);\n            if (local_58[0] != local_48) {\n              FUN_00276d20();\n            }\n            FUN_00235c40(lVar16);\n            FUN_0016ae30(*(long *)(lVar16 + 0x38) + 0x28,param_1);\n            puVar14 = (undefined8 *)FUN_00275550(0x90);\n            uVar2 = *(undefined8 *)(param_1 + 0x88);\n            uVar17 = *(undefined8 *)(param_1 + 0x80);\n            uVar4 = *(undefined8 *)(param_1 + 0x70);\n            uVar5 = *(undefined8 *)(param_1 + 0x68);\n            *(undefined1 *)(puVar14 + 4) = 0;\n            uVar6 = *(undefined8 *)(param_1 + 0x60);\n            uVar1 = *(undefined4 *)(param_1 + 0x58);\n            puVar14[2] = puVar14 + 4;\n            uVar7 = *(undefined8 *)(param_1 + 0x50);\n            uVar8 = *(undefined8 *)(param_1 + 0x38);\n            puVar14[0xd] = uVar5;\n            uVar5 = *(undefined8 *)(param_1 + 0x48);\n            uVar9 = *(undefined8 *)(param_1 + 0x40);\n            puVar14[0xf] = uVar4;\n            puVar14[1] = 0;\n            puVar14[3] = 0;\n            *(undefined1 *)(puVar14 + 6) = 0;\n            *puVar14 = &PTR_FUN_003ae430;\n            puVar14[7] = uVar9;\n            puVar14[8] = uVar5;\n            puVar14[9] = uVar8;\n            puVar14[10] = uVar7;\n            *(undefined4 *)(puVar14 + 0xb) = uVar1;\n            puVar14[0xc] = uVar6;\n            puVar14[0xe] = lVar16;\n            puVar14[0x10] = uVar17;\n            puVar14[0x11] = uVar2;\n            FUN_002300a0(param_2,puVar14);\n            return (uint)bVar11;\n          }\n        }" ({ "{") (expression_statement "bVar11 = **(byte **)(param_1 + 0x68);" (assignment_expression "bVar11 = **(byte **)(param_1 + 0x68)" (identifier "bVar11") (= "=") (pointer_expression "**(byte **)(param_1 + 0x68)" (* "*") (pointer_expression "*(byte **)(param_1 + 0x68)" (* "*") (cast_expression "(byte **)(param_1 + 0x68)" (( "(") (type_descriptor "byte **" (type_identifier "byte") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(param_1 + 0x68)" (( "(") (binary_expression "param_1 + 0x68" (identifier "param_1") (+ "+") (number_literal "0x68")) () ")")))))) (; ";")) (if_statement "if (bVar11 != 0) {\n            __s = *(char **)(*(byte **)(param_1 + 0x68) + 8);\n            pcVar20 = (char *)0xffffffffffffffff;\n            local_58[0] = local_48;\n            if (__s != (char *)0x0) {\n              sVar15 = strlen(__s);\n              pcVar20 = __s + sVar15;\n            }\n            FUN_0015cbe0(local_58,__s,pcVar20);\n                    \n            lVar16 = FUN_00275550(0x178);\n                    \n            FUN_00234b40(lVar16,local_58,puVar14,\n                         lVar3 == s__<thin>__<arch>_N4gold7ArchiveE_00322e50._0_8_,\n                         *(undefined8 *)(param_1 + 0x50),param_1);\n            if (local_58[0] != local_48) {\n              FUN_00276d20();\n            }\n            FUN_00235c40(lVar16);\n            FUN_0016ae30(*(long *)(lVar16 + 0x38) + 0x28,param_1);\n            puVar14 = (undefined8 *)FUN_00275550(0x90);\n            uVar2 = *(undefined8 *)(param_1 + 0x88);\n            uVar17 = *(undefined8 *)(param_1 + 0x80);\n            uVar4 = *(undefined8 *)(param_1 + 0x70);\n            uVar5 = *(undefined8 *)(param_1 + 0x68);\n            *(undefined1 *)(puVar14 + 4) = 0;\n            uVar6 = *(undefined8 *)(param_1 + 0x60);\n            uVar1 = *(undefined4 *)(param_1 + 0x58);\n            puVar14[2] = puVar14 + 4;\n            uVar7 = *(undefined8 *)(param_1 + 0x50);\n            uVar8 = *(undefined8 *)(param_1 + 0x38);\n            puVar14[0xd] = uVar5;\n            uVar5 = *(undefined8 *)(param_1 + 0x48);\n            uVar9 = *(undefined8 *)(param_1 + 0x40);\n            puVar14[0xf] = uVar4;\n            puVar14[1] = 0;\n            puVar14[3] = 0;\n            *(undefined1 *)(puVar14 + 6) = 0;\n            *puVar14 = &PTR_FUN_003ae430;\n            puVar14[7] = uVar9;\n            puVar14[8] = uVar5;\n            puVar14[9] = uVar8;\n            puVar14[10] = uVar7;\n            *(undefined4 *)(puVar14 + 0xb) = uVar1;\n            puVar14[0xc] = uVar6;\n            puVar14[0xe] = lVar16;\n            puVar14[0x10] = uVar17;\n            puVar14[0x11] = uVar2;\n            FUN_002300a0(param_2,puVar14);\n            return (uint)bVar11;\n          }" (if "if") (parenthesized_expression "(bVar11 != 0)" (( "(") (binary_expression "bVar11 != 0" (identifier "bVar11") (!= "!=") (number_literal "0")) () ")")) (compound_statement "{\n            __s = *(char **)(*(byte **)(param_1 + 0x68) + 8);\n            pcVar20 = (char *)0xffffffffffffffff;\n            local_58[0] = local_48;\n            if (__s != (char *)0x0) {\n              sVar15 = strlen(__s);\n              pcVar20 = __s + sVar15;\n            }\n            FUN_0015cbe0(local_58,__s,pcVar20);\n                    \n            lVar16 = FUN_00275550(0x178);\n                    \n            FUN_00234b40(lVar16,local_58,puVar14,\n                         lVar3 == s__<thin>__<arch>_N4gold7ArchiveE_00322e50._0_8_,\n                         *(undefined8 *)(param_1 + 0x50),param_1);\n            if (local_58[0] != local_48) {\n              FUN_00276d20();\n            }\n            FUN_00235c40(lVar16);\n            FUN_0016ae30(*(long *)(lVar16 + 0x38) + 0x28,param_1);\n            puVar14 = (undefined8 *)FUN_00275550(0x90);\n            uVar2 = *(undefined8 *)(param_1 + 0x88);\n            uVar17 = *(undefined8 *)(param_1 + 0x80);\n            uVar4 = *(undefined8 *)(param_1 + 0x70);\n            uVar5 = *(undefined8 *)(param_1 + 0x68);\n            *(undefined1 *)(puVar14 + 4) = 0;\n            uVar6 = *(undefined8 *)(param_1 + 0x60);\n            uVar1 = *(undefined4 *)(param_1 + 0x58);\n            puVar14[2] = puVar14 + 4;\n            uVar7 = *(undefined8 *)(param_1 + 0x50);\n            uVar8 = *(undefined8 *)(param_1 + 0x38);\n            puVar14[0xd] = uVar5;\n            uVar5 = *(undefined8 *)(param_1 + 0x48);\n            uVar9 = *(undefined8 *)(param_1 + 0x40);\n            puVar14[0xf] = uVar4;\n            puVar14[1] = 0;\n            puVar14[3] = 0;\n            *(undefined1 *)(puVar14 + 6) = 0;\n            *puVar14 = &PTR_FUN_003ae430;\n            puVar14[7] = uVar9;\n            puVar14[8] = uVar5;\n            puVar14[9] = uVar8;\n            puVar14[10] = uVar7;\n            *(undefined4 *)(puVar14 + 0xb) = uVar1;\n            puVar14[0xc] = uVar6;\n            puVar14[0xe] = lVar16;\n            puVar14[0x10] = uVar17;\n            puVar14[0x11] = uVar2;\n            FUN_002300a0(param_2,puVar14);\n            return (uint)bVar11;\n          }" ({ "{") (expression_statement "__s = *(char **)(*(byte **)(param_1 + 0x68) + 8);" (assignment_expression "__s = *(char **)(*(byte **)(param_1 + 0x68) + 8)" (identifier "__s") (= "=") (pointer_expression "*(char **)(*(byte **)(param_1 + 0x68) + 8)" (* "*") (cast_expression "(char **)(*(byte **)(param_1 + 0x68) + 8)" (( "(") (type_descriptor "char **" (primitive_type "char") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(*(byte **)(param_1 + 0x68) + 8)" (( "(") (binary_expression "*(byte **)(param_1 + 0x68) + 8" (pointer_expression "*(byte **)(param_1 + 0x68)" (* "*") (cast_expression "(byte **)(param_1 + 0x68)" (( "(") (type_descriptor "byte **" (type_identifier "byte") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(param_1 + 0x68)" (( "(") (binary_expression "param_1 + 0x68" (identifier "param_1") (+ "+") (number_literal "0x68")) () ")")))) (+ "+") (number_literal "8")) () ")"))))) (; ";")) (expression_statement "pcVar20 = (char *)0xffffffffffffffff;" (assignment_expression "pcVar20 = (char *)0xffffffffffffffff" (identifier "pcVar20") (= "=") (cast_expression "(char *)0xffffffffffffffff" (( "(") (type_descriptor "char *" (primitive_type "char") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0xffffffffffffffff"))) (; ";")) (expression_statement "local_58[0] = local_48;" (assignment_expression "local_58[0] = local_48" (subscript_expression "local_58[0]" (identifier "local_58") ([ "[") (number_literal "0") (] "]")) (= "=") (identifier "local_48")) (; ";")) (if_statement "if (__s != (char *)0x0) {\n              sVar15 = strlen(__s);\n              pcVar20 = __s + sVar15;\n            }" (if "if") (parenthesized_expression "(__s != (char *)0x0)" (( "(") (binary_expression "__s != (char *)0x0" (identifier "__s") (!= "!=") (cast_expression "(char *)0x0" (( "(") (type_descriptor "char *" (primitive_type "char") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0"))) () ")")) (compound_statement "{\n              sVar15 = strlen(__s);\n              pcVar20 = __s + sVar15;\n            }" ({ "{") (expression_statement "sVar15 = strlen(__s);" (assignment_expression "sVar15 = strlen(__s)" (identifier "sVar15") (= "=") (call_expression "strlen(__s)" (identifier "strlen") (argument_list "(__s)" (( "(") (identifier "__s") () ")")))) (; ";")) (expression_statement "pcVar20 = __s + sVar15;" (assignment_expression "pcVar20 = __s + sVar15" (identifier "pcVar20") (= "=") (binary_expression "__s + sVar15" (identifier "__s") (+ "+") (identifier "sVar15"))) (; ";")) (} "}"))) (expression_statement "FUN_0015cbe0(local_58,__s,pcVar20);" (call_expression "FUN_0015cbe0(local_58,__s,pcVar20)" (identifier "FUN_0015cbe0") (argument_list "(local_58,__s,pcVar20)" (( "(") (identifier "local_58") (, ",") (identifier "__s") (, ",") (identifier "pcVar20") () ")"))) (; ";")) (expression_statement "lVar16 = FUN_00275550(0x178);" (assignment_expression "lVar16 = FUN_00275550(0x178)" (identifier "lVar16") (= "=") (call_expression "FUN_00275550(0x178)" (identifier "FUN_00275550") (argument_list "(0x178)" (( "(") (number_literal "0x178") () ")")))) (; ";")) (expression_statement "FUN_00234b40(lVar16,local_58,puVar14,\n                         lVar3 == s__<thin>__<arch>_N4gold7ArchiveE_00322e50._0_8_,\n                         *(undefined8 *)(param_1 + 0x50),param_1);" (call_expression "FUN_00234b40(lVar16,local_58,puVar14,\n                         lVar3 == s__<thin>__<arch>_N4gold7ArchiveE_00322e50._0_8_,\n                         *(undefined8 *)(param_1 + 0x50),param_1)" (identifier "FUN_00234b40") (argument_list "(lVar16,local_58,puVar14,\n                         lVar3 == s__<thin>__<arch>_N4gold7ArchiveE_00322e50._0_8_,\n                         *(undefined8 *)(param_1 + 0x50),param_1)" (( "(") (identifier "lVar16") (, ",") (identifier "local_58") (, ",") (identifier "puVar14") (, ",") (binary_expression "lVar3 == s__<thin>__<arch>_N4gold7ArchiveE_00322e50._0_8_" (identifier "lVar3") (== "==") (binary_expression "s__<thin>__<arch>_N4gold7ArchiveE_00322e50._0_8_" (binary_expression "s__<thin>__<arch" (binary_expression "s__<thin>__" (binary_expression "s__<thin" (identifier "s__") (< "<") (identifier "thin")) (> ">") (identifier "__")) (< "<") (identifier "arch")) (> ">") (field_expression "_N4gold7ArchiveE_00322e50._0_8_" (identifier "_N4gold7ArchiveE_00322e50") (. ".") (field_identifier "_0_8_")))) (, ",") (pointer_expression "*(undefined8 *)(param_1 + 0x50)" (* "*") (cast_expression "(undefined8 *)(param_1 + 0x50)" (( "(") (type_descriptor "undefined8 *" (type_identifier "undefined8") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_1 + 0x50)" (( "(") (binary_expression "param_1 + 0x50" (identifier "param_1") (+ "+") (number_literal "0x50")) () ")")))) (, ",") (identifier "param_1") () ")"))) (; ";")) (if_statement "if (local_58[0] != local_48) {\n              FUN_00276d20();\n            }" (if "if") (parenthesized_expression "(local_58[0] != local_48)" (( "(") (binary_expression "local_58[0] != local_48" (subscript_expression "local_58[0]" (identifier "local_58") ([ "[") (number_literal "0") (] "]")) (!= "!=") (identifier "local_48")) () ")")) (compound_statement "{\n              FUN_00276d20();\n            }" ({ "{") (expression_statement "FUN_00276d20();" (call_expression "FUN_00276d20()" (identifier "FUN_00276d20") (argument_list "()" (( "(") () ")"))) (; ";")) (} "}"))) (expression_statement "FUN_00235c40(lVar16);" (call_expression "FUN_00235c40(lVar16)" (identifier "FUN_00235c40") (argument_list "(lVar16)" (( "(") (identifier "lVar16") () ")"))) (; ";")) (expression_statement "FUN_0016ae30(*(long *)(lVar16 + 0x38) + 0x28,param_1);" (call_expression "FUN_0016ae30(*(long *)(lVar16 + 0x38) + 0x28,param_1)" (identifier "FUN_0016ae30") (argument_list "(*(long *)(lVar16 + 0x38) + 0x28,param_1)" (( "(") (binary_expression "*(long *)(lVar16 + 0x38) + 0x28" (pointer_expression "*(long *)(lVar16 + 0x38)" (* "*") (cast_expression "(long *)(lVar16 + 0x38)" (( "(") (type_descriptor "long *" (sized_type_specifier "long" (long "long")) (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(lVar16 + 0x38)" (( "(") (binary_expression "lVar16 + 0x38" (identifier "lVar16") (+ "+") (number_literal "0x38")) () ")")))) (+ "+") (number_literal "0x28")) (, ",") (identifier "param_1") () ")"))) (; ";")) (expression_statement "puVar14 = (undefined8 *)FUN_00275550(0x90);" (assignment_expression "puVar14 = (undefined8 *)FUN_00275550(0x90)" (identifier "puVar14") (= "=") (cast_expression "(undefined8 *)FUN_00275550(0x90)" (( "(") (type_descriptor "undefined8 *" (type_identifier "undefined8") (abstract_pointer_declarator "*" (* "*"))) () ")") (call_expression "FUN_00275550(0x90)" (identifier "FUN_00275550") (argument_list "(0x90)" (( "(") (number_literal "0x90") () ")"))))) (; ";")) (expression_statement "uVar2 = *(undefined8 *)(param_1 + 0x88);" (assignment_expression "uVar2 = *(undefined8 *)(param_1 + 0x88)" (identifier "uVar2") (= "=") (pointer_expression "*(undefined8 *)(param_1 + 0x88)" (* "*") (cast_expression "(undefined8 *)(param_1 + 0x88)" (( "(") (type_descriptor "undefined8 *" (type_identifier "undefined8") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_1 + 0x88)" (( "(") (binary_expression "param_1 + 0x88" (identifier "param_1") (+ "+") (number_literal "0x88")) () ")"))))) (; ";")) (expression_statement "uVar17 = *(undefined8 *)(param_1 + 0x80);" (assignment_expression "uVar17 = *(undefined8 *)(param_1 + 0x80)" (identifier "uVar17") (= "=") (pointer_expression "*(undefined8 *)(param_1 + 0x80)" (* "*") (cast_expression "(undefined8 *)(param_1 + 0x80)" (( "(") (type_descriptor "undefined8 *" (type_identifier "undefined8") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_1 + 0x80)" (( "(") (binary_expression "param_1 + 0x80" (identifier "param_1") (+ "+") (number_literal "0x80")) () ")"))))) (; ";")) (expression_statement "uVar4 = *(undefined8 *)(param_1 + 0x70);" (assignment_expression "uVar4 = *(undefined8 *)(param_1 + 0x70)" (identifier "uVar4") (= "=") (pointer_expression "*(undefined8 *)(param_1 + 0x70)" (* "*") (cast_expression "(undefined8 *)(param_1 + 0x70)" (( "(") (type_descriptor "undefined8 *" (type_identifier "undefined8") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_1 + 0x70)" (( "(") (binary_expression "param_1 + 0x70" (identifier "param_1") (+ "+") (number_literal "0x70")) () ")"))))) (; ";")) (expression_statement "uVar5 = *(undefined8 *)(param_1 + 0x68);" (assignment_expression "uVar5 = *(undefined8 *)(param_1 + 0x68)" (identifier "uVar5") (= "=") (pointer_expression "*(undefined8 *)(param_1 + 0x68)" (* "*") (cast_expression "(undefined8 *)(param_1 + 0x68)" (( "(") (type_descriptor "undefined8 *" (type_identifier "undefined8") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_1 + 0x68)" (( "(") (binary_expression "param_1 + 0x68" (identifier "param_1") (+ "+") (number_literal "0x68")) () ")"))))) (; ";")) (expression_statement "*(undefined1 *)(puVar14 + 4) = 0;" (assignment_expression "*(undefined1 *)(puVar14 + 4) = 0" (pointer_expression "*(undefined1 *)(puVar14 + 4)" (* "*") (cast_expression "(undefined1 *)(puVar14 + 4)" (( "(") (type_descriptor "undefined1 *" (type_identifier "undefined1") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar14 + 4)" (( "(") (binary_expression "puVar14 + 4" (identifier "puVar14") (+ "+") (number_literal "4")) () ")")))) (= "=") (number_literal "0")) (; ";")) (expression_statement "uVar6 = *(undefined8 *)(param_1 + 0x60);" (assignment_expression "uVar6 = *(undefined8 *)(param_1 + 0x60)" (identifier "uVar6") (= "=") (pointer_expression "*(undefined8 *)(param_1 + 0x60)" (* "*") (cast_expression "(undefined8 *)(param_1 + 0x60)" (( "(") (type_descriptor "undefined8 *" (type_identifier "undefined8") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_1 + 0x60)" (( "(") (binary_expression "param_1 + 0x60" (identifier "param_1") (+ "+") (number_literal "0x60")) () ")"))))) (; ";")) (expression_statement "uVar1 = *(undefined4 *)(param_1 + 0x58);" (assignment_expression "uVar1 = *(undefined4 *)(param_1 + 0x58)" (identifier "uVar1") (= "=") (pointer_expression "*(undefined4 *)(param_1 + 0x58)" (* "*") (cast_expression "(undefined4 *)(param_1 + 0x58)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_1 + 0x58)" (( "(") (binary_expression "param_1 + 0x58" (identifier "param_1") (+ "+") (number_literal "0x58")) () ")"))))) (; ";")) (expression_statement "puVar14[2] = puVar14 + 4;" (assignment_expression "puVar14[2] = puVar14 + 4" (subscript_expression "puVar14[2]" (identifier "puVar14") ([ "[") (number_literal "2") (] "]")) (= "=") (binary_expression "puVar14 + 4" (identifier "puVar14") (+ "+") (number_literal "4"))) (; ";")) (expression_statement "uVar7 = *(undefined8 *)(param_1 + 0x50);" (assignment_expression "uVar7 = *(undefined8 *)(param_1 + 0x50)" (identifier "uVar7") (= "=") (pointer_expression "*(undefined8 *)(param_1 + 0x50)" (* "*") (cast_expression "(undefined8 *)(param_1 + 0x50)" (( "(") (type_descriptor "undefined8 *" (type_identifier "undefined8") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_1 + 0x50)" (( "(") (binary_expression "param_1 + 0x50" (identifier "param_1") (+ "+") (number_literal "0x50")) () ")"))))) (; ";")) (expression_statement "uVar8 = *(undefined8 *)(param_1 + 0x38);" (assignment_expression "uVar8 = *(undefined8 *)(param_1 + 0x38)" (identifier "uVar8") (= "=") (pointer_expression "*(undefined8 *)(param_1 + 0x38)" (* "*") (cast_expression "(undefined8 *)(param_1 + 0x38)" (( "(") (type_descriptor "undefined8 *" (type_identifier "undefined8") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_1 + 0x38)" (( "(") (binary_expression "param_1 + 0x38" (identifier "param_1") (+ "+") (number_literal "0x38")) () ")"))))) (; ";")) (expression_statement "puVar14[0xd] = uVar5;" (assignment_expression "puVar14[0xd] = uVar5" (subscript_expression "puVar14[0xd]" (identifier "puVar14") ([ "[") (number_literal "0xd") (] "]")) (= "=") (identifier "uVar5")) (; ";")) (expression_statement "uVar5 = *(undefined8 *)(param_1 + 0x48);" (assignment_expression "uVar5 = *(undefined8 *)(param_1 + 0x48)" (identifier "uVar5") (= "=") (pointer_expression "*(undefined8 *)(param_1 + 0x48)" (* "*") (cast_expression "(undefined8 *)(param_1 + 0x48)" (( "(") (type_descriptor "undefined8 *" (type_identifier "undefined8") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_1 + 0x48)" (( "(") (binary_expression "param_1 + 0x48" (identifier "param_1") (+ "+") (number_literal "0x48")) () ")"))))) (; ";")) (expression_statement "uVar9 = *(undefined8 *)(param_1 + 0x40);" (assignment_expression "uVar9 = *(undefined8 *)(param_1 + 0x40)" (identifier "uVar9") (= "=") (pointer_expression "*(undefined8 *)(param_1 + 0x40)" (* "*") (cast_expression "(undefined8 *)(param_1 + 0x40)" (( "(") (type_descriptor "undefined8 *" (type_identifier "undefined8") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_1 + 0x40)" (( "(") (binary_expression "param_1 + 0x40" (identifier "param_1") (+ "+") (number_literal "0x40")) () ")"))))) (; ";")) (expression_statement "puVar14[0xf] = uVar4;" (assignment_expression "puVar14[0xf] = uVar4" (subscript_expression "puVar14[0xf]" (identifier "puVar14") ([ "[") (number_literal "0xf") (] "]")) (= "=") (identifier "uVar4")) (; ";")) (expression_statement "puVar14[1] = 0;" (assignment_expression "puVar14[1] = 0" (subscript_expression "puVar14[1]" (identifier "puVar14") ([ "[") (number_literal "1") (] "]")) (= "=") (number_literal "0")) (; ";")) (expression_statement "puVar14[3] = 0;" (assignment_expression "puVar14[3] = 0" (subscript_expression "puVar14[3]" (identifier "puVar14") ([ "[") (number_literal "3") (] "]")) (= "=") (number_literal "0")) (; ";")) (expression_statement "*(undefined1 *)(puVar14 + 6) = 0;" (assignment_expression "*(undefined1 *)(puVar14 + 6) = 0" (pointer_expression "*(undefined1 *)(puVar14 + 6)" (* "*") (cast_expression "(undefined1 *)(puVar14 + 6)" (( "(") (type_descriptor "undefined1 *" (type_identifier "undefined1") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar14 + 6)" (( "(") (binary_expression "puVar14 + 6" (identifier "puVar14") (+ "+") (number_literal "6")) () ")")))) (= "=") (number_literal "0")) (; ";")) (expression_statement "*puVar14 = &PTR_FUN_003ae430;" (assignment_expression "*puVar14 = &PTR_FUN_003ae430" (pointer_expression "*puVar14" (* "*") (identifier "puVar14")) (= "=") (pointer_expression "&PTR_FUN_003ae430" (& "&") (identifier "PTR_FUN_003ae430"))) (; ";")) (expression_statement "puVar14[7] = uVar9;" (assignment_expression "puVar14[7] = uVar9" (subscript_expression "puVar14[7]" (identifier "puVar14") ([ "[") (number_literal "7") (] "]")) (= "=") (identifier "uVar9")) (; ";")) (expression_statement "puVar14[8] = uVar5;" (assignment_expression "puVar14[8] = uVar5" (subscript_expression "puVar14[8]" (identifier "puVar14") ([ "[") (number_literal "8") (] "]")) (= "=") (identifier "uVar5")) (; ";")) (expression_statement "puVar14[9] = uVar8;" (assignment_expression "puVar14[9] = uVar8" (subscript_expression "puVar14[9]" (identifier "puVar14") ([ "[") (number_literal "9") (] "]")) (= "=") (identifier "uVar8")) (; ";")) (expression_statement "puVar14[10] = uVar7;" (assignment_expression "puVar14[10] = uVar7" (subscript_expression "puVar14[10]" (identifier "puVar14") ([ "[") (number_literal "10") (] "]")) (= "=") (identifier "uVar7")) (; ";")) (expression_statement "*(undefined4 *)(puVar14 + 0xb) = uVar1;" (assignment_expression "*(undefined4 *)(puVar14 + 0xb) = uVar1" (pointer_expression "*(undefined4 *)(puVar14 + 0xb)" (* "*") (cast_expression "(undefined4 *)(puVar14 + 0xb)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar14 + 0xb)" (( "(") (binary_expression "puVar14 + 0xb" (identifier "puVar14") (+ "+") (number_literal "0xb")) () ")")))) (= "=") (identifier "uVar1")) (; ";")) (expression_statement "puVar14[0xc] = uVar6;" (assignment_expression "puVar14[0xc] = uVar6" (subscript_expression "puVar14[0xc]" (identifier "puVar14") ([ "[") (number_literal "0xc") (] "]")) (= "=") (identifier "uVar6")) (; ";")) (expression_statement "puVar14[0xe] = lVar16;" (assignment_expression "puVar14[0xe] = lVar16" (subscript_expression "puVar14[0xe]" (identifier "puVar14") ([ "[") (number_literal "0xe") (] "]")) (= "=") (identifier "lVar16")) (; ";")) (expression_statement "puVar14[0x10] = uVar17;" (assignment_expression "puVar14[0x10] = uVar17" (subscript_expression "puVar14[0x10]" (identifier "puVar14") ([ "[") (number_literal "0x10") (] "]")) (= "=") (identifier "uVar17")) (; ";")) (expression_statement "puVar14[0x11] = uVar2;" (assignment_expression "puVar14[0x11] = uVar2" (subscript_expression "puVar14[0x11]" (identifier "puVar14") ([ "[") (number_literal "0x11") (] "]")) (= "=") (identifier "uVar2")) (; ";")) (expression_statement "FUN_002300a0(param_2,puVar14);" (call_expression "FUN_002300a0(param_2,puVar14)" (identifier "FUN_002300a0") (argument_list "(param_2,puVar14)" (( "(") (identifier "param_2") (, ",") (identifier "puVar14") () ")"))) (; ";")) (return_statement "return (uint)bVar11;" (return "return") (cast_expression "(uint)bVar11" (( "(") (type_descriptor "uint" (type_identifier "uint")) () ")") (identifier "bVar11")) (; ";")) (} "}"))) (} "}")))) (expression_statement "FUN_0016cdf0("../../gold/options.h",0x828,&DAT_0031b73b);" (call_expression "FUN_0016cdf0("../../gold/options.h",0x828,&DAT_0031b73b)" (identifier "FUN_0016cdf0") (argument_list "("../../gold/options.h",0x828,&DAT_0031b73b)" (( "(") (string_literal ""../../gold/options.h"" (" """) (string_content "../../gold/options.h") (" """)) (, ",") (number_literal "0x828") (, ",") (pointer_expression "&DAT_0031b73b" (& "&") (identifier "DAT_0031b73b")) () ")"))) (; ";")) (} "}"))) (expression_statement "uVar2 = puVar14[5];" (assignment_expression "uVar2 = puVar14[5]" (identifier "uVar2") (= "=") (subscript_expression "puVar14[5]" (identifier "puVar14") ([ "[") (number_literal "5") (] "]"))) (; ";")) (expression_statement "uVar17 = gettext("%s: file is empty");" (assignment_expression "uVar17 = gettext("%s: file is empty")" (identifier "uVar17") (= "=") (call_expression "gettext("%s: file is empty")" (identifier "gettext") (argument_list "("%s: file is empty")" (( "(") (string_literal ""%s: file is empty"" (" """) (string_content "%s: file is empty") (" """)) () ")")))) (; ";")) (expression_statement "FUN_001690a0(uVar17,uVar2);" (call_expression "FUN_001690a0(uVar17,uVar2)" (identifier "FUN_001690a0") (argument_list "(uVar17,uVar2)" (( "(") (identifier "uVar17") (, ",") (identifier "uVar2") () ")"))) (; ";")) (} "}"))) (return_statement "return 0;" (return "return") (number_literal "0") (; ";")) (} "}"))))) (expression_statement "uVar13 = FUN_001f54c0(param_1,param_2);" (assignment_expression "uVar13 = FUN_001f54c0(param_1,param_2)" (identifier "uVar13") (= "=") (call_expression "FUN_001f54c0(param_1,param_2)" (identifier "FUN_001f54c0") (argument_list "(param_1,param_2)" (( "(") (identifier "param_1") (, ",") (identifier "param_2") () ")")))) (; ";")) (return_statement "return uVar13;" (return "return") (identifier "uVar13") (; ";")) (} "}")))

/* WARNING: Type propagation algorithm not settling */
/* WARNING: Enum "DT": Some values do not have unique names */
/* DWARF original prototype: bool do_read_symbols(Read_symbols * this, Workqueue * workqueue) */

bool __thiscall gold::type_1::function_1(type_1 *this,type_2 *workqueue)

{
  anon_union_16_2_edb7204a_for_basic_string<var_2,_std::char_traits<var_2>,_std::var_1<var_2>var_3>var_4
  *var_5;
  type_3 *this_00;
  type_4 *p_Var2;
  type_5 *pSVar3;
  type_6 *pIVar4;
  type_7 *pDVar5;
  long var_11;
  long var_15;
  char *var_34;
  type_8 *pTVar7;
  type_8 *pTVar8;
  type_9 *pMVar9;
  type_10 *pIVar10;
  type_11 *pLVar11;
  type_12 *pSVar12;
  type_13 *var_19;
  type_14 *var_25;
  type_15 *pIVar14;
  type_16 var_31;
  bool var_33;
  char var_10;
  bool bVar18;
  int iVar19;
  type_17 *var_23;
  size_t var_36;
  type_18 *this_02;
  type_19 *pTVar22;
  type_20 *var_21;
  type_21 *pRVar24;
  type_19 *pTVar25;
  type_22 *var_22;
  char *pcVar26;
  type_1 *pRVar27;
  bool *punconfigured;
  int var_13;
  type_23 *ehdr;
  bool var_28;
  char var_39 [24];
  
  pIVar4 = this->input_argument_;
  if (pIVar4->is_file_ == false) {
    if (pIVar4->lib_ == (type_24 *)0x0) {
      if (this->input_group_ != (type_15 *)0x0) {
                    /* WARNING: Subroutine does not return */
        var_6("../../gold/readsyms.cc",0x10b,"do_read_symbols");
      }
      var_7(this,workqueue);
      return true;
    }
  }
  else if (pIVar4->lib_ == (type_24 *)0x0) {
    var_23 = (type_17 *)var_8(0xe8);
    pDVar5 = this->dirpath_;
    var_5 = &(var_23->found_name_).field_2;
    var_23->input_argument_ = &pIVar4->file_;
    (var_23->found_name_)._M_dataplus._M_p = (type_16)var_5;
    (var_23->found_name_)._M_string_length = 0;
    (var_23->found_name_).field_2._M_local_buf[0] = '\0';
    (var_23->file_).name_._M_dataplus._M_p = (type_16)&(var_23->file_).name_.field_2;
    p_Var2 = &(var_23->file_).views_._M_t._M_impl.super__Rb_tree_header;
    (var_23->file_).views_._M_t._M_impl.super__Rb_tree_header._M_header._M_left =
         &p_Var2->_M_header;
    (var_23->file_).views_._M_t._M_impl.super__Rb_tree_header._M_header._M_right =
         &p_Var2->_M_header;
    pSVar3 = &(var_23->file_).saved_views_;
    (var_23->file_).name_._M_string_length = 0;
    (var_23->file_).name_.field_2._M_local_buf[0] = '\0';
    (var_23->file_).descriptor_ = -1;
    (var_23->file_).is_descriptor_opened_ = false;
    (var_23->file_).object_count_ = 0;
    (var_23->file_).size_ = 0;
    (var_23->file_).token_.is_blocker_ = false;
    (var_23->file_).token_.blockers_ = 0;
    (var_23->file_).token_.writer_ = (type_19 *)0x0;
    (var_23->file_).token_.waiting_.head_ = (type_19 *)0x0;
    (var_23->file_).token_.waiting_.tail_ = (type_19 *)0x0;
    (var_23->file_).views_._M_t._M_impl.super__Rb_tree_header._M_header._M_color = _S_red;
    (var_23->file_).views_._M_t._M_impl.super__Rb_tree_header._M_header._M_parent = (type_25)0x0;
    (var_23->file_).views_._M_t._M_impl.super__Rb_tree_header._M_node_count = 0;
    (var_23->file_).saved_views_.
    super__List_base<gold::type_3::type_27*,_std::var_1<gold::type_3::type_27*>var_3>._M_impl.
    _M_node.super__List_node_base._M_prev = (type_26 *)pSVar3;
    (var_23->file_).saved_views_.
    super__List_base<gold::type_3::type_27*,_std::var_1<gold::type_3::type_27*>var_3>._M_impl.
    _M_node.super__List_node_base._M_next = (type_26 *)pSVar3;
    (var_23->file_).saved_views_.
    super__List_base<gold::type_3::type_27*,_std::var_1<gold::type_3::type_27*>var_3>._M_impl.
    _M_node._M_size = 0;
    (var_23->file_).mapped_bytes_ = 0;
    (var_23->file_).released_ = true;
    (var_23->file_).whole_file_view_ = (type_27 *)0x0;
    var_23->is_in_sysroot_ = false;
    var_23->format_ = FORMAT_NONE;
    iVar19 = type_17::var_9(var_23,(char *)pDVar5,(int)this,&this->dirindex_);
    var_10 = (char)iVar19;
    if (var_10 != '\0') {
      var_11 = (var_23->file_).size_;
      if (var_11 != 0) {
        var_33 = var_12(var_23,0,&ehdr,&var_13);
        if ((var_13 < 8) ||
           ((var_15 = *(long *)ehdr, var_15 != type_18::var_14 && (type_18::armag != var_15)))) {
          var_22 = (type_22 *)0x0;
          if (var_33) {
            var_16 = var_16 & 0xffffffffffffff00;
            bVar18 = type_17::var_17(var_23);
            punconfigured = (bool *)0x0;
            if (bVar18) {
              punconfigured = &var_28;
            }
            var_22 = var_18(&(var_23->file_).name_,var_23,0,ehdr,(long)var_13,
                                         punconfigured);
          }
          if (parameters->options_ == (type_28 *)0x0) {
                    /* WARNING: Subroutine does not return */
            var_6("../../gold/parameters.h",0x5c,"options");
          }
          var_19 = parameters->options_->plugins_;
          if ((var_19 != (type_13 *)0x0) &&
             (var_21 = type_13::var_20(var_19,var_23,0,var_11,var_22),
             var_21 != (type_20 *)0x0)) {
            if (var_22 != (type_22 *)0x0) {
              (*var_22->_vptr_Object[1])(var_22);
            }
            var_23 = (var_21->super_Object).input_file_;
            if (var_23 != (type_17 *)0x0) {
              File_read::var_24(&var_23->file_,&this->super_Task);
            }
            var_25 = this->member_;
            if (var_25 == (type_14 *)0x0) {
              pTVar22 = (type_19 *)var_8(0x80);
              pIVar4 = this->input_argument_;
              pLVar11 = this->layout_;
              pSVar12 = this->symtab_;
              pIVar10 = this->input_objects_;
              pTVar22->_vptr_Task = (type_29 **)&PTR__Add_symbols_003acf00;
              pTVar25 = (type_19 *)this->next_blocker_;
              pTVar7 = this->this_blocker_;
              pTVar22[1].name_._M_dataplus._M_p = (type_16)pLVar11;
              pTVar22[1].name_._M_string_length = (type_30)pIVar4;
              pTVar22->list_next_ = (type_19 *)0x0;
              (pTVar22->name_)._M_dataplus._M_p = (type_16)&(pTVar22->name_).field_2;
              (pTVar22->name_)._M_string_length = 0;
              (pTVar22->name_).field_2._M_local_buf[0] = '\0';
              pTVar22->should_run_soon_ = false;
              pTVar22[1]._vptr_Task = (type_29 **)pIVar10;
              pTVar22[1].list_next_ = (type_19 *)pSVar12;
              pTVar22[1].name_.field_2._M_allocated_capacity = (type_30)var_21;
              *(type_31 *)((long)&pTVar22[1].name_.field_2 + 8) = 0;
              *(type_31 *)&pTVar22[1].should_run_soon_ = 0;
              pTVar22[2]._vptr_Task = (type_29 **)pTVar7;
              pTVar22[2].list_next_ = pTVar25;
              Workqueue::var_26(workqueue,pTVar22);
              return (bool)var_10;
            }
            var_25->sd_ = (type_21 *)0x0;
            var_25->obj_ = &var_21->super_Object;
            return (bool)var_10;
          }
          if (!var_33) {
            pTVar25 = (type_19 *)var_8(0x90);
            pTVar7 = this->next_blocker_;
            pTVar8 = this->this_blocker_;
            pIVar4 = this->input_argument_;
            pIVar14 = this->input_group_;
            (pTVar25->name_).field_2._M_local_buf[0] = '\0';
            pMVar9 = this->mapfile_;
            pIVar10 = this->input_objects_;
            (pTVar25->name_)._M_dataplus._M_p = (type_16)&(pTVar25->name_).field_2;
            iVar19 = this->dirindex_;
            pDVar5 = this->dirpath_;
            *(type_15 **)&pTVar25[1].should_run_soon_ = pIVar14;
            pLVar11 = this->layout_;
            pSVar12 = this->symtab_;
            pTVar25[2]._vptr_Task = (type_29 **)pIVar4;
            pTVar25->list_next_ = (type_19 *)0x0;
            (pTVar25->name_)._M_string_length = 0;
            pTVar25->should_run_soon_ = false;
            pTVar25->_vptr_Task = (type_29 **)&PTR__Read_script_003ad080;
            pTVar25[1]._vptr_Task = (type_29 **)pSVar12;
            pTVar25[1].list_next_ = (type_19 *)pLVar11;
            pTVar25[1].name_._M_dataplus._M_p = (type_16)pDVar5;
            *(int *)&pTVar25[1].name_._M_string_length = iVar19;
            pTVar25[1].name_.field_2._M_allocated_capacity = (type_30)pIVar10;
            *(type_9 **)((long)&pTVar25[1].name_.field_2 + 8) = pMVar9;
            pTVar25[2].list_next_ = (type_19 *)var_23;
            pTVar25[2].name_._M_dataplus._M_p = &pTVar8->is_blocker_;
            pTVar25[2].name_._M_string_length = (type_30)pTVar7;
            Workqueue::var_27(workqueue,pTVar25);
            return (bool)var_10;
          }
          if (var_22 == (type_22 *)0x0) {
            if (var_28 == false) {
              return false;
            }
            this_00 = &var_23->file_;
            var_29(this->input_argument_,var_23);
            File_read::var_30(this_00);
            pRVar27 = this;
            File_read::var_24(this_00,&this->super_Task);
            File_read::~type_3(this_00,(int)pRVar27);
            var_31 = (var_23->found_name_)._M_dataplus._M_p;
            if (var_5 != (anon_union_16_2_edb7204a_for_basic_string<var_2,_std::char_traits<var_2>,_std::var_1<var_2>var_3>var_4
                           *)var_31) {
              var_32(var_31);
            }
            var_32(var_23,0xe8);
            this->dirindex_ = this->dirindex_ + 1;
            var_33 = function_1(this,workqueue);
            return var_33;
          }
          pRVar24 = (type_21 *)var_8(0x80);
          pRVar24->section_headers = (type_32 *)0x0;
          pRVar24->section_names = (type_32 *)0x0;
          pRVar24->symbols = (type_32 *)0x0;
          pRVar24->symbol_names = (type_32 *)0x0;
          pRVar24->versym = (type_32 *)0x0;
          pRVar24->verdef = (type_32 *)0x0;
          pRVar24->verneed = (type_32 *)0x0;
          (*var_22->_vptr_Object[8])(var_22,pRVar24);
          File_read::var_24(&var_23->file_,&this->super_Task);
          var_25 = this->member_;
          if (var_25 == (type_14 *)0x0) {
            pTVar22 = (type_19 *)var_8(0x80);
            pIVar4 = this->input_argument_;
            pLVar11 = this->layout_;
            pSVar12 = this->symtab_;
            pIVar10 = this->input_objects_;
            *(type_21 **)&pTVar22[1].should_run_soon_ = pRVar24;
            pTVar25 = (type_19 *)this->next_blocker_;
            pTVar7 = this->this_blocker_;
            (pTVar22->name_)._M_dataplus._M_p = (type_16)&(pTVar22->name_).field_2;
            pTVar22[1].name_._M_dataplus._M_p = (type_16)pLVar11;
            pTVar22[1].name_._M_string_length = (type_30)pIVar4;
            pTVar22->list_next_ = (type_19 *)0x0;
            (pTVar22->name_)._M_string_length = 0;
            (pTVar22->name_).field_2._M_local_buf[0] = '\0';
            pTVar22->should_run_soon_ = false;
            pTVar22->_vptr_Task = (type_29 **)&PTR__Add_symbols_003acf00;
            pTVar22[1]._vptr_Task = (type_29 **)pIVar10;
            pTVar22[1].list_next_ = (type_19 *)pSVar12;
            *(type_22 **)&pTVar22[1].name_.field_2 = var_22;
            *(type_31 *)((long)&pTVar22[1].name_.field_2 + 8) = 0;
            pTVar22[2]._vptr_Task = (type_29 **)pTVar7;
            pTVar22[2].list_next_ = pTVar25;
            Workqueue::var_26(workqueue,pTVar22);
            return var_33;
          }
          pIVar4 = this->input_argument_;
          var_25->sd_ = pRVar24;
          var_25->obj_ = var_22;
          var_33 = pIVar4->is_file_;
          if (var_33 != false) {
            var_25->arg_serial_ = (pIVar4->file_).arg_serial_;
            return var_33;
          }
        }
        else {
          var_33 = this->input_argument_->is_file_;
          if (var_33 != false) {
            var_34 = (this->input_argument_->file_).name_._M_dataplus._M_p;
            pcVar26 = (char *)0xffffffffffffffff;
            var_16 = var_39;
            if (var_34 != (char *)0x0) {
              var_36 = var_35(var_34);
              pcVar26 = var_34 + var_36;
            }
            std::__cxx11::basic_string<var_2,_std::char_traits<var_2>,_std::var_1<var_2>var_3>::
            var_37<var_38*>((type_33 *)&var_28,var_34,pcVar26);
                    /* try { // try from 001f5e1a to 001f5e1e has its CatchHandler @ 001f63a4 */
            this_02 = (type_18 *)var_8(0x178);
                    /* try { // try from 001f5e42 to 001f5e46 has its CatchHandler @ 001f639c */
            Archive::type_18(this_02,(type_33 *)&var_28,var_23,var_15 == type_18::var_14,
                             this->dirpath_,&this->super_Task);
            if (var_16 != var_39) {
              var_32(var_16);
            }
            Archive::var_40(this_02);
            File_read::var_24(&this_02->input_file_->file_,&this->super_Task);
            pTVar22 = (type_19 *)var_8(0x90);
            pTVar7 = this->next_blocker_;
            pTVar8 = this->this_blocker_;
            pTVar25 = (type_19 *)this->input_group_;
            pIVar4 = this->input_argument_;
            (pTVar22->name_).field_2._M_local_buf[0] = '\0';
            pMVar9 = this->mapfile_;
            iVar19 = this->dirindex_;
            (pTVar22->name_)._M_dataplus._M_p = (type_16)&(pTVar22->name_).field_2;
            pDVar5 = this->dirpath_;
            pIVar10 = this->input_objects_;
            *(type_6 **)&pTVar22[1].should_run_soon_ = pIVar4;
            pLVar11 = this->layout_;
            pSVar12 = this->symtab_;
            pTVar22[2].list_next_ = pTVar25;
            pTVar22->list_next_ = (type_19 *)0x0;
            (pTVar22->name_)._M_string_length = 0;
            pTVar22->should_run_soon_ = false;
            pTVar22->_vptr_Task = (type_29 **)&PTR__Add_archive_symbols_003ae430;
            pTVar22[1]._vptr_Task = (type_29 **)pSVar12;
            pTVar22[1].list_next_ = (type_19 *)pLVar11;
            pTVar22[1].name_._M_dataplus._M_p = (type_16)pIVar10;
            pTVar22[1].name_._M_string_length = (type_30)pDVar5;
            *(int *)&pTVar22[1].name_.field_2 = iVar19;
            *(type_9 **)((long)&pTVar22[1].name_.field_2 + 8) = pMVar9;
            pTVar22[2]._vptr_Task = (type_29 **)this_02;
            pTVar22[2].name_._M_dataplus._M_p = &pTVar8->is_blocker_;
            pTVar22[2].name_._M_string_length = (type_30)pTVar7;
            Workqueue::var_26(workqueue,pTVar22);
            return var_33;
          }
        }
                    /* WARNING: Subroutine does not return */
        var_6("../../gold/options.h",0x828,"file");
      }
      var_31 = (var_23->file_).name_._M_dataplus._M_p;
      pcVar26 = (char *)var_41("%s: file is empty");
      var_42(pcVar26,var_31);
    }
    return false;
  }
  var_33 = var_43(this,workqueue);
  return var_33;
}


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

uint MASKED(long param_1,undefined8 param_2)

{
  undefined4 uVar1;
  undefined8 uVar2;
  long lVar3;
  char *__s;
  undefined8 uVar4;
  undefined8 uVar5;
  undefined8 uVar6;
  undefined8 uVar7;
  undefined8 uVar8;
  undefined8 uVar9;
  byte *pbVar10;
  byte bVar11;
  char cVar12;
  uint uVar13;
  undefined8 *puVar14;
  size_t sVar15;
  long lVar16;
  undefined8 uVar17;
  undefined8 *puVar18;
  long *plVar19;
  char *pcVar20;
  undefined1 **ppuVar21;
  int local_64;
  long *local_60;
  undefined1 *local_58 [2];
  undefined1 local_48 [24];
  
  pcVar20 = *(char **)(param_1 + 0x68);
  if (*pcVar20 == '\0') {
    if (*(long *)(pcVar20 + 0x70) == 0) {
      if (*(long *)(param_1 + 0x70) != 0) {
                    /* WARNING: Subroutine does not return */
        FUN_0016cdf0("../../gold/readsyms.cc",0x10b,"do_read_symbols");
      }
      FUN_001f5780();
      return 1;
    }
  }
  else if (*(long *)(pcVar20 + 0x70) == 0) {
    puVar14 = (undefined8 *)FUN_00275550(0xe8);
    uVar2 = *(undefined8 *)(param_1 + 0x50);
    *puVar14 = pcVar20 + 8;
    puVar14[1] = puVar14 + 3;
    puVar14[2] = 0;
    *(undefined1 *)(puVar14 + 3) = 0;
    puVar14[5] = puVar14 + 7;
    puVar14[0x13] = puVar14 + 0x11;
    puVar14[0x14] = puVar14 + 0x11;
    puVar14[6] = 0;
    *(undefined1 *)(puVar14 + 7) = 0;
    *(undefined4 *)(puVar14 + 9) = 0xffffffff;
    *(undefined1 *)((long)puVar14 + 0x4c) = 0;
    *(undefined4 *)(puVar14 + 10) = 0;
    puVar14[0xb] = 0;
    *(undefined1 *)(puVar14 + 0xc) = 0;
    *(undefined4 *)((long)puVar14 + 100) = 0;
    puVar14[0xd] = 0;
    puVar14[0xe] = 0;
    puVar14[0xf] = 0;
    *(undefined4 *)(puVar14 + 0x11) = 0;
    puVar14[0x12] = 0;
    puVar14[0x15] = 0;
    puVar14[0x17] = puVar14 + 0x16;
    puVar14[0x16] = puVar14 + 0x16;
    puVar14[0x18] = 0;
    puVar14[0x19] = 0;
    *(undefined1 *)(puVar14 + 0x1a) = 1;
    puVar14[0x1b] = 0;
    *(undefined1 *)(puVar14 + 0x1c) = 0;
    *(undefined4 *)((long)puVar14 + 0xe4) = 0;
    uVar13 = FUN_0016ca50(puVar14,uVar2,param_1,param_1 + 0x58);
    if ((char)uVar13 != '\0') {
      lVar16 = puVar14[0xb];
      if (lVar16 != 0) {
        bVar11 = FUN_0019b230(puVar14,0,&local_60,&local_64);
        if ((local_64 < 8) ||
           ((lVar3 = *local_60, lVar3 != s__<thin>__<arch>_N4gold7ArchiveE_00322e50._0_8_ &&
            (s__<thin>__<arch>_N4gold7ArchiveE_00322e50._8_8_ != lVar3)))) {
          plVar19 = (long *)0x0;
          if (bVar11 != 0) {
            local_58[0] = (undefined1 *)((ulong)local_58[0] & 0xffffffffffffff00);
            cVar12 = FUN_0016b000(puVar14);
            ppuVar21 = (undefined1 **)0x0;
            if (cVar12 != '\0') {
              ppuVar21 = local_58;
            }
            plVar19 = (long *)FUN_0019b3d0(puVar14 + 5,puVar14,0,local_60,(long)local_64,ppuVar21);
          }
          if (*(long *)(PTR_DAT_003be6b0 + 0x10) == 0) {
                    /* WARNING: Subroutine does not return */
            FUN_0016cdf0("../../gold/parameters.h",0x5c,"options");
          }
          lVar3 = *(long *)(*(long *)(PTR_DAT_003be6b0 + 0x10) + 0x9058);
          if ((lVar3 != 0) && (lVar16 = FUN_001f1940(lVar3,puVar14,0,lVar16,plVar19), lVar16 != 0))
          {
            if (plVar19 != (long *)0x0) {
              (**(code **)(*plVar19 + 8))(plVar19);
            }
            if (*(long *)(lVar16 + 0x28) != 0) {
              FUN_0016ae30(*(long *)(lVar16 + 0x28) + 0x28,param_1);
            }
            plVar19 = *(long **)(param_1 + 0x78);
            if (plVar19 == (long *)0x0) {
              puVar14 = (undefined8 *)FUN_00275550(0x80);
              uVar2 = *(undefined8 *)(param_1 + 0x68);
              uVar17 = *(undefined8 *)(param_1 + 0x48);
              uVar4 = *(undefined8 *)(param_1 + 0x40);
              uVar5 = *(undefined8 *)(param_1 + 0x38);
              *puVar14 = &PTR_FUN_003acf00;
              uVar6 = *(undefined8 *)(param_1 + 0x88);
              uVar7 = *(undefined8 *)(param_1 + 0x80);
              puVar14[9] = uVar17;
              puVar14[10] = uVar2;
              puVar14[1] = 0;
              puVar14[2] = puVar14 + 4;
              puVar14[3] = 0;
              *(undefined1 *)(puVar14 + 4) = 0;
              *(undefined1 *)(puVar14 + 6) = 0;
              puVar14[7] = uVar5;
              puVar14[8] = uVar4;
              puVar14[0xb] = lVar16;
              puVar14[0xc] = 0;
              puVar14[0xd] = 0;
              puVar14[0xe] = uVar7;
              puVar14[0xf] = uVar6;
              FUN_002300a0(param_2,puVar14);
              return uVar13;
            }
            plVar19[1] = 0;
            *plVar19 = lVar16;
            return uVar13;
          }
          if (bVar11 == 0) {
            puVar18 = (undefined8 *)FUN_00275550(0x90);
            uVar2 = *(undefined8 *)(param_1 + 0x88);
            uVar17 = *(undefined8 *)(param_1 + 0x80);
            uVar4 = *(undefined8 *)(param_1 + 0x68);
            uVar5 = *(undefined8 *)(param_1 + 0x70);
            *(undefined1 *)(puVar18 + 4) = 0;
            uVar6 = *(undefined8 *)(param_1 + 0x60);
            uVar7 = *(undefined8 *)(param_1 + 0x38);
            puVar18[2] = puVar18 + 4;
            uVar1 = *(undefined4 *)(param_1 + 0x58);
            uVar8 = *(undefined8 *)(param_1 + 0x50);
            puVar18[0xd] = uVar5;
            uVar5 = *(undefined8 *)(param_1 + 0x48);
            uVar9 = *(undefined8 *)(param_1 + 0x40);
            puVar18[0xe] = uVar4;
            puVar18[1] = 0;
            puVar18[3] = 0;
            *(undefined1 *)(puVar18 + 6) = 0;
            *puVar18 = &PTR_FUN_003ad080;
            puVar18[7] = uVar9;
            puVar18[8] = uVar5;
            puVar18[9] = uVar8;
            *(undefined4 *)(puVar18 + 10) = uVar1;
            puVar18[0xb] = uVar7;
            puVar18[0xc] = uVar6;
            puVar18[0xf] = puVar14;
            puVar18[0x10] = uVar17;
            puVar18[0x11] = uVar2;
            FUN_00230080(param_2,puVar18);
            return uVar13;
          }
          if (plVar19 == (long *)0x0) {
            if ((char)local_58[0] == '\0') {
              return 0;
            }
            puVar18 = puVar14 + 5;
            FUN_001f51c0(*(undefined8 *)(param_1 + 0x68),puVar14);
            FUN_0016ad00(puVar18);
            FUN_0016ae30(puVar18,param_1);
            FUN_0016b0b0(puVar18);
            if (puVar14 + 3 != (undefined8 *)puVar14[1]) {
              FUN_00276d20();
            }
            thunk_FUN_00276d20(puVar14,0xe8);
            *(int *)(param_1 + 0x58) = *(int *)(param_1 + 0x58) + 1;
            uVar13 = MASKED(param_1,param_2);
            return uVar13;
          }
          puVar18 = (undefined8 *)FUN_00275550(0x80);
          *puVar18 = 0;
          puVar18[1] = 0;
          puVar18[3] = 0;
          puVar18[6] = 0;
          puVar18[8] = 0;
          puVar18[10] = 0;
          puVar18[0xd] = 0;
          (**(code **)(*plVar19 + 0x40))(plVar19,puVar18);
          FUN_0016ae30(puVar14 + 5,param_1);
          puVar14 = *(undefined8 **)(param_1 + 0x78);
          if (puVar14 == (undefined8 *)0x0) {
            puVar14 = (undefined8 *)FUN_00275550(0x80);
            uVar2 = *(undefined8 *)(param_1 + 0x68);
            uVar17 = *(undefined8 *)(param_1 + 0x48);
            uVar4 = *(undefined8 *)(param_1 + 0x40);
            uVar5 = *(undefined8 *)(param_1 + 0x38);
            puVar14[0xd] = puVar18;
            uVar6 = *(undefined8 *)(param_1 + 0x88);
            uVar7 = *(undefined8 *)(param_1 + 0x80);
            puVar14[2] = puVar14 + 4;
            puVar14[9] = uVar17;
            puVar14[10] = uVar2;
            puVar14[1] = 0;
            puVar14[3] = 0;
            *(undefined1 *)(puVar14 + 4) = 0;
            *(undefined1 *)(puVar14 + 6) = 0;
            *puVar14 = &PTR_FUN_003acf00;
            puVar14[7] = uVar5;
            puVar14[8] = uVar4;
            puVar14[0xb] = plVar19;
            puVar14[0xc] = 0;
            puVar14[0xe] = uVar7;
            puVar14[0xf] = uVar6;
            FUN_002300a0(param_2,puVar14);
            return (uint)bVar11;
          }
          pbVar10 = *(byte **)(param_1 + 0x68);
          puVar14[1] = puVar18;
          *puVar14 = plVar19;
          bVar11 = *pbVar10;
          if (bVar11 != 0) {
            *(undefined4 *)(puVar14 + 2) = *(undefined4 *)(pbVar10 + 100);
            return (uint)bVar11;
          }
        }
        else {
          bVar11 = **(byte **)(param_1 + 0x68);
          if (bVar11 != 0) {
            __s = *(char **)(*(byte **)(param_1 + 0x68) + 8);
            pcVar20 = (char *)0xffffffffffffffff;
            local_58[0] = local_48;
            if (__s != (char *)0x0) {
              sVar15 = strlen(__s);
              pcVar20 = __s + sVar15;
            }
            FUN_0015cbe0(local_58,__s,pcVar20);
                    /* try { // try from 001f5e1a to 001f5e1e has its CatchHandler @ 001f63a4 */
            lVar16 = FUN_00275550(0x178);
                    /* try { // try from 001f5e42 to 001f5e46 has its CatchHandler @ 001f639c */
            FUN_00234b40(lVar16,local_58,puVar14,
                         lVar3 == s__<thin>__<arch>_N4gold7ArchiveE_00322e50._0_8_,
                         *(undefined8 *)(param_1 + 0x50),param_1);
            if (local_58[0] != local_48) {
              FUN_00276d20();
            }
            FUN_00235c40(lVar16);
            FUN_0016ae30(*(long *)(lVar16 + 0x38) + 0x28,param_1);
            puVar14 = (undefined8 *)FUN_00275550(0x90);
            uVar2 = *(undefined8 *)(param_1 + 0x88);
            uVar17 = *(undefined8 *)(param_1 + 0x80);
            uVar4 = *(undefined8 *)(param_1 + 0x70);
            uVar5 = *(undefined8 *)(param_1 + 0x68);
            *(undefined1 *)(puVar14 + 4) = 0;
            uVar6 = *(undefined8 *)(param_1 + 0x60);
            uVar1 = *(undefined4 *)(param_1 + 0x58);
            puVar14[2] = puVar14 + 4;
            uVar7 = *(undefined8 *)(param_1 + 0x50);
            uVar8 = *(undefined8 *)(param_1 + 0x38);
            puVar14[0xd] = uVar5;
            uVar5 = *(undefined8 *)(param_1 + 0x48);
            uVar9 = *(undefined8 *)(param_1 + 0x40);
            puVar14[0xf] = uVar4;
            puVar14[1] = 0;
            puVar14[3] = 0;
            *(undefined1 *)(puVar14 + 6) = 0;
            *puVar14 = &PTR_FUN_003ae430;
            puVar14[7] = uVar9;
            puVar14[8] = uVar5;
            puVar14[9] = uVar8;
            puVar14[10] = uVar7;
            *(undefined4 *)(puVar14 + 0xb) = uVar1;
            puVar14[0xc] = uVar6;
            puVar14[0xe] = lVar16;
            puVar14[0x10] = uVar17;
            puVar14[0x11] = uVar2;
            FUN_002300a0(param_2,puVar14);
            return (uint)bVar11;
          }
        }
                    /* WARNING: Subroutine does not return */
        FUN_0016cdf0("../../gold/options.h",0x828,&DAT_0031b73b);
      }
      uVar2 = puVar14[5];
      uVar17 = gettext("%s: file is empty");
      FUN_001690a0(uVar17,uVar2);
    }
    return 0;
  }
  uVar13 = FUN_001f54c0(param_1,param_2);
  return uVar13;
}

