
/* DWARF original prototype: uchar * read_header_tables(Sized_dwarf_line_info<64,_false> * this,
   uchar * lineptr) */

uchar * __thiscall
gold::Sized_dwarf_line_info<64,_false>::read_header_tables
          (Sized_dwarf_line_info<64,_false> *this,uchar *lineptr)

{
  pointer pvVar1;
  pointer pbVar2;
  pointer pvVar3;
  _Alloc_hider _Var4;
  ulong uVar5;
  size_t sVar6;
  byte bVar7;
  int iVar8;
  uint uVar9;
  size_type *psVar10;
  ulong uVar11;
  byte *pbVar12;
  byte *pbVar13;
  pointer pvVar14;
  byte *__s;
  size_t len;
  size_type *local_68;
  basic_string<char,_std::char_traits<char>,_std::allocator<char>_> local_60;
  
  pvVar14 = (this->directories_).
            super__Vector_base<std::vector<std::__cxx11::basic_string<char,_std::char_traits<char>,_std::allocator<char>_>,_std::allocator<std::__cxx11::basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_>_>,_std::allocator<std::vector<std::__cxx11::basic_string<char,_std::char_traits<char>,_std::allocator<char>_>,_std::allocator<std::__cxx11::basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_>_>_>_>
            ._M_impl._M_finish;
  pvVar1 = (this->directories_).
           super__Vector_base<std::vector<std::__cxx11::basic_string<char,_std::char_traits<char>,_std::allocator<char>_>,_std::allocator<std::__cxx11::basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_>_>,_std::allocator<std::vector<std::__cxx11::basic_string<char,_std::char_traits<char>,_std::allocator<char>_>,_std::allocator<std::__cxx11::basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_>_>_>_>
           ._M_impl._M_start;
  iVar8 = this->current_header_index_ + 1;
  this->current_header_index_ = iVar8;
  if (iVar8 != (int)((long)pvVar14 - (long)pvVar1 >> 3) * -0x55555555) {
                    /* WARNING: Subroutine does not return */
    do_gold_unreachable("../../gold/dwarf_reader.cc",0x6b6,"read_header_tables");
  }
  if (iVar8 != (int)((long)(this->files_).
                           super__Vector_base<std::vector<std::pair<int,_std::__cxx11::basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_>,_std::allocator<std::pair<int,_std::__cxx11::basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_>_>_>,_std::allocator<std::vector<std::pair<int,_std::__cxx11::basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_>,_std::allocator<std::pair<int,_std::__cxx11::basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_>_>_>_>_>
                           ._M_impl._M_finish -
                     (long)(this->files_).
                           super__Vector_base<std::vector<std::pair<int,_std::__cxx11::basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_>,_std::allocator<std::pair<int,_std::__cxx11::basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_>_>_>,_std::allocator<std::vector<std::pair<int,_std::__cxx11::basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_>,_std::allocator<std::pair<int,_std::__cxx11::basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_>_>_>_>_>
                           ._M_impl._M_start >> 3) * -0x55555555) {
                    /* WARNING: Subroutine does not return */
    do_gold_unreachable("../../gold/dwarf_reader.cc",0x6b8,"read_header_tables");
  }
  local_68 = (size_type *)0x0;
  local_60._M_dataplus._M_p = (pointer)0x0;
  local_60._M_string_length = 0;
  local_68 = (size_type *)operator_new(0x20);
  ((long *)local_68)[1] = 0;
  local_60._M_dataplus._M_p = (pointer)((long *)local_68 + 4);
  *local_68 = (size_type)((long *)local_68 + 2);
  *(undefined1 *)((long *)local_68 + 2) = 0;
  local_60._M_string_length = (size_type)local_60._M_dataplus._M_p;
                    /* try { // try from 00173433 to 00173437 has its CatchHandler @ 00173804 */
  std::
  vector<std::vector<std::__cxx11::basic_string<char,_std::char_traits<char>,_std::allocator<char>_>,_std::allocator<std::__cxx11::basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_>_>,_std::allocator<std::vector<std::__cxx11::basic_string<char,_std::char_traits<char>,_std::allocator<char>_>,_std::allocator<std::__cxx11::basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_>_>_>_>
  ::
  emplace_back<std::vector<std::__cxx11::basic_string<char,_std::char_traits<char>,_std::allocator<char>_>,_std::allocator<std::__cxx11::basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_>_>_>
            (&this->directories_,
             (vector<std::__cxx11::basic_string<char,_std::char_traits<char>,_std::allocator<char>_>,_std::allocator<std::__cxx11::basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_>_>
              *)&local_68);
  _Var4._M_p = local_60._M_dataplus._M_p;
  for (psVar10 = local_68; (size_type *)_Var4._M_p != psVar10;
      psVar10 = (size_type *)((long *)psVar10 + 4)) {
    if ((long *)*psVar10 != (long *)psVar10 + 2) {
      operator_delete((long *)*psVar10);
    }
  }
  if (local_68 != (size_type *)0x0) {
    operator_delete(local_68);
  }
  local_68 = (size_type *)0x0;
  local_60._M_dataplus._M_p = (pointer)0x0;
  local_60._M_string_length = 0;
  local_68 = (size_type *)operator_new(0x28);
  *(undefined4 *)local_68 = 0;
  local_60._M_dataplus._M_p = (pointer)(local_68 + 5);
  ((anon_union_16_2_edb7204a_for_basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_9
    *)(local_68 + 1))->_M_allocated_capacity = (size_type)(local_68 + 3);
  local_68[2] = 0;
  *(undefined1 *)(local_68 + 3) = 0;
  local_60._M_string_length = (size_type)local_60._M_dataplus._M_p;
                    /* try { // try from 001734d9 to 001734dd has its CatchHandler @ 001737d4 */
  std::
  vector<std::vector<std::pair<int,_std::__cxx11::basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_>,_std::allocator<std::pair<int,_std::__cxx11::basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_>_>_>,_std::allocator<std::vector<std::pair<int,_std::__cxx11::basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_>,_std::allocator<std::pair<int,_std::__cxx11::basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_>_>_>_>_>
  ::
  emplace_back<std::vector<std::pair<int,_std::__cxx11::basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_>,_std::allocator<std::pair<int,_std::__cxx11::basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_>_>_>_>
            (&this->files_,
             (vector<std::pair<int,_std::__cxx11::basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_>,_std::allocator<std::pair<int,_std::__cxx11::basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_>_>_>
              *)&local_68);
  _Var4._M_p = local_60._M_dataplus._M_p;
  for (psVar10 = local_68; (size_type *)_Var4._M_p != psVar10; psVar10 = psVar10 + 5) {
    if ((size_type *)
        ((anon_union_16_2_edb7204a_for_basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_9
          *)(psVar10 + 1))->_M_allocated_capacity != psVar10 + 3) {
      operator_delete((undefined4 *)
                      ((anon_union_16_2_edb7204a_for_basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_9
                        *)(psVar10 + 1))->_M_allocated_capacity);
    }
  }
  if (local_68 != (size_type *)0x0) {
    operator_delete(local_68);
  }
  if (*lineptr != '\0') {
    pvVar14 = (this->directories_).
              super__Vector_base<std::vector<std::__cxx11::basic_string<char,_std::char_traits<char>,_std::allocator<char>_>,_std::allocator<std::__cxx11::basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_>_>,_std::allocator<std::vector<std::__cxx11::basic_string<char,_std::char_traits<char>,_std::allocator<char>_>,_std::allocator<std::__cxx11::basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_>_>_>_>
              ._M_impl._M_finish;
    uVar5 = (long)pvVar14[-1].
                  super__Vector_base<std::__cxx11::basic_string<char,_std::char_traits<char>,_std::allocator<char>_>,_std::allocator<std::__cxx11::basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_>_>
                  ._M_impl._M_finish -
            (long)pvVar14[-1].
                  super__Vector_base<std::__cxx11::basic_string<char,_std::char_traits<char>,_std::allocator<char>_>,_std::allocator<std::__cxx11::basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_>_>
                  ._M_impl._M_start >> 5;
    uVar11 = uVar5 & 0xffffffff;
    if ((int)uVar5 == 1) {
      do {
        local_68 = &local_60._M_string_length;
        sVar6 = strlen((char *)lineptr);
        std::__cxx11::basic_string<char,_std::char_traits<char>,_std::allocator<char>_>::
        _M_construct<char_const*>
                  ((basic_string<char,_std::char_traits<char>,_std::allocator<char>_> *)&local_68,
                   lineptr,lineptr + sVar6);
                    /* try { // try from 00173584 to 00173588 has its CatchHandler @ 001737cf */
        std::
        vector<std::__cxx11::basic_string<char,_std::char_traits<char>,_std::allocator<char>_>,_std::allocator<std::__cxx11::basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_>_>
        ::
        emplace_back<std::__cxx11::basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_>
                  (pvVar14 + -1,
                   (basic_string<char,_std::char_traits<char>,_std::allocator<char>_> *)&local_68);
        if (local_68 != &local_60._M_string_length) {
          operator_delete(local_68);
        }
        pvVar14 = (this->directories_).
                  super__Vector_base<std::vector<std::__cxx11::basic_string<char,_std::char_traits<char>,_std::allocator<char>_>,_std::allocator<std::__cxx11::basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_>_>,_std::allocator<std::vector<std::__cxx11::basic_string<char,_std::char_traits<char>,_std::allocator<char>_>,_std::allocator<std::__cxx11::basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_>_>_>_>
                  ._M_impl._M_finish;
        uVar9 = (int)uVar11 + 1;
        uVar11 = (ulong)uVar9;
        pbVar2 = pvVar14[-1].
                 super__Vector_base<std::__cxx11::basic_string<char,_std::char_traits<char>,_std::allocator<char>_>,_std::allocator<std::__cxx11::basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_>_>
                 ._M_impl._M_finish;
        lineptr = lineptr + pbVar2[-1]._M_string_length + 1;
        if (*lineptr == '\0') goto LAB_001735b7;
      } while (uVar9 == (uint)((long)pbVar2 -
                               (long)pvVar14[-1].
                                     super__Vector_base<std::__cxx11::basic_string<char,_std::char_traits<char>,_std::allocator<char>_>,_std::allocator<std::__cxx11::basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_>_>
                                     ._M_impl._M_start >> 5));
    }
                    /* WARNING: Subroutine does not return */
    do_gold_unreachable("../../gold/dwarf_reader.cc",0x6c4,"read_header_tables");
  }
LAB_001735b7:
  pbVar12 = lineptr + 1;
  if (lineptr[1] != '\0') {
    iVar8 = 1;
    __s = pbVar12;
    do {
      sVar6 = strlen((char *)__s);
      pbVar13 = __s + sVar6 + 1;
      bVar7 = *pbVar13;
      uVar5 = (ulong)bVar7;
      pbVar12 = pbVar13 + 1;
      if ((char)bVar7 < '\0') {
        uVar5 = read_unsigned_LEB_128_x(pbVar12,&len,bVar7);
        pbVar12 = pbVar13 + len;
      }
      else {
        len = 1;
      }
      pvVar14 = (this->directories_).
                super__Vector_base<std::vector<std::__cxx11::basic_string<char,_std::char_traits<char>,_std::allocator<char>_>,_std::allocator<std::__cxx11::basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_>_>,_std::allocator<std::vector<std::__cxx11::basic_string<char,_std::char_traits<char>,_std::allocator<char>_>,_std::allocator<std::__cxx11::basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_>_>_>_>
                ._M_impl._M_finish;
      pbVar13 = pbVar12 + 1;
      if ((ulong)((long)pvVar14[-1].
                        super__Vector_base<std::__cxx11::basic_string<char,_std::char_traits<char>,_std::allocator<char>_>,_std::allocator<std::__cxx11::basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_>_>
                        ._M_impl._M_finish -
                  (long)pvVar14[-1].
                        super__Vector_base<std::__cxx11::basic_string<char,_std::char_traits<char>,_std::allocator<char>_>,_std::allocator<std::__cxx11::basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_>_>
                        ._M_impl._M_start >> 5) <= uVar5) {
        uVar5 = 0;
      }
      if ((char)*pbVar12 < '\0') {
        read_unsigned_LEB_128_x(pbVar13,&len,*pbVar12);
        pbVar13 = pbVar12 + len;
        bVar7 = *pbVar13;
        pbVar12 = pbVar13 + 1;
        if ((char)bVar7 < '\0') goto LAB_0017374d;
LAB_00173644:
        len = 1;
      }
      else {
        bVar7 = *pbVar13;
        pbVar12 = pbVar12 + 2;
        len = 1;
        if (-1 < (char)bVar7) goto LAB_00173644;
LAB_0017374d:
        read_unsigned_LEB_128_x(pbVar12,&len,bVar7);
        pbVar12 = pbVar13 + len;
      }
      pvVar3 = (this->files_).
               super__Vector_base<std::vector<std::pair<int,_std::__cxx11::basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_>,_std::allocator<std::pair<int,_std::__cxx11::basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_>_>_>,_std::allocator<std::vector<std::pair<int,_std::__cxx11::basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_>,_std::allocator<std::pair<int,_std::__cxx11::basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_>_>_>_>_>
               ._M_impl._M_finish;
      if (iVar8 != (int)((long)pvVar3[-1].
                               super__Vector_base<std::pair<int,_std::__cxx11::basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_>,_std::allocator<std::pair<int,_std::__cxx11::basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_>_>_>
                               ._M_impl._M_finish -
                         (long)pvVar3[-1].
                               super__Vector_base<std::pair<int,_std::__cxx11::basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_>,_std::allocator<std::pair<int,_std::__cxx11::basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_>_>_>
                               ._M_impl._M_start >> 3) * -0x33333333) {
                    /* WARNING: Subroutine does not return */
        do_gold_unreachable("../../gold/dwarf_reader.cc",0x6e4,"read_header_tables");
      }
      local_68 = (size_type *)CONCAT44(local_68._4_4_,(int)uVar5);
      local_60._M_dataplus._M_p = (pointer)&local_60.field_2;
      sVar6 = strlen((char *)__s);
      std::__cxx11::basic_string<char,_std::char_traits<char>,_std::allocator<char>_>::
      _M_construct<char_const*>(&local_60,__s,__s + sVar6);
                    /* try { // try from 001736a4 to 001736a8 has its CatchHandler @ 00173809 */
      std::
      vector<std::pair<int,_std::__cxx11::basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_>,_std::allocator<std::pair<int,_std::__cxx11::basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_>_>_>
      ::
      emplace_back<std::pair<int,_std::__cxx11::basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_>_>
                (pvVar3 + -1,
                 (pair<int,_std::__cxx11::basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_>
                  *)&local_68);
      if ((anon_union_16_2_edb7204a_for_basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_9
           *)local_60._M_dataplus._M_p != &local_60.field_2) {
        operator_delete(local_60._M_dataplus._M_p);
      }
      iVar8 = iVar8 + 1;
      __s = pbVar12;
    } while (*pbVar12 != 0);
  }
  return pbVar12 + 1;
}



byte * FUN_00173370(long param_1,char *param_2)

{
  byte bVar1;
  long ****pppplVar2;
  ulong uVar3;
  size_t sVar4;
  int iVar5;
  uint uVar6;
  long ****pppplVar7;
  long *****ppppplVar8;
  ulong uVar9;
  byte *pbVar10;
  byte *pbVar11;
  long lVar12;
  byte *__s;
  long local_70;
  long ****local_68;
  long ****local_60;
  long ****local_58;
  long ***local_50 [4];
  
  iVar5 = *(int *)(param_1 + 200) + 1;
  *(int *)(param_1 + 200) = iVar5;
  if (iVar5 != (int)(*(long *)(param_1 + 0xa0) - *(long *)(param_1 + 0x98) >> 3) * -0x55555555) {
                    /* WARNING: Subroutine does not return */
    FUN_0017c650("../../gold/dwarf_reader.cc",0x6b6,"read_header_tables");
  }
  if (iVar5 != (int)(*(long *)(param_1 + 0xb8) - *(long *)(param_1 + 0xb0) >> 3) * -0x55555555) {
                    /* WARNING: Subroutine does not return */
    FUN_0017c650("../../gold/dwarf_reader.cc",0x6b8,"read_header_tables");
  }
  local_68 = (long ****)0x0;
  local_60 = (long ****)0x0;
  local_58 = (long ****)0x0;
  local_68 = (long ****)FUN_002d94a0(0x20);
  local_68[1] = (long ***)0x0;
  local_60 = local_68 + 4;
  *local_68 = (long ***)(local_68 + 2);
  *(undefined1 *)(local_68 + 2) = 0;
  local_58 = local_60;
                    /* try { // try from 00173433 to 00173437 has its CatchHandler @ 00173804 */
  FUN_00171a10(param_1 + 0x98,&local_68);
  pppplVar2 = local_60;
  for (pppplVar7 = local_68; pppplVar2 != pppplVar7; pppplVar7 = pppplVar7 + 4) {
    if ((long ****)*pppplVar7 != pppplVar7 + 2) {
      FUN_002dac70();
    }
  }
  if (local_68 != (long ****)0x0) {
    FUN_002dac70(local_68);
  }
  local_68 = (long ****)0x0;
  local_60 = (long ****)0x0;
  local_58 = (long ****)0x0;
  local_68 = (long ****)FUN_002d94a0(0x28);
  *(undefined4 *)local_68 = 0;
  local_60 = (long ****)((long *****)local_68 + 5);
  ((long *****)local_68)[1] = (long ****)((long *****)local_68 + 3);
  ((long *****)local_68)[2] = (long ****)0x0;
  *(undefined1 *)((long *****)local_68 + 3) = 0;
  local_58 = local_60;
                    /* try { // try from 001734d9 to 001734dd has its CatchHandler @ 001737d4 */
  FUN_00171d10(param_1 + 0xb0,&local_68);
  pppplVar7 = local_60;
  for (ppppplVar8 = (long *****)local_68; (long *****)pppplVar7 != ppppplVar8;
      ppppplVar8 = ppppplVar8 + 5) {
    if ((long *****)ppppplVar8[1] != ppppplVar8 + 3) {
      FUN_002dac70();
    }
  }
  if ((long *****)local_68 != (long *****)0x0) {
    FUN_002dac70(local_68);
  }
  if (*param_2 != '\0') {
    lVar12 = *(long *)(param_1 + 0xa0);
    uVar3 = *(long *)(lVar12 + -0x10) - *(long *)(lVar12 + -0x18) >> 5;
    uVar9 = uVar3 & 0xffffffff;
    if ((int)uVar3 == 1) {
      do {
        local_68 = (long ****)&local_58;
        sVar4 = strlen(param_2);
        FUN_001665c0(&local_68,param_2,param_2 + sVar4);
                    /* try { // try from 00173584 to 00173588 has its CatchHandler @ 001737cf */
        FUN_0016f840(lVar12 + -0x18,&local_68);
        if ((long *****)local_68 != &local_58) {
          FUN_002dac70();
        }
        lVar12 = *(long *)(param_1 + 0xa0);
        uVar6 = (int)uVar9 + 1;
        uVar9 = (ulong)uVar6;
        param_2 = param_2 + *(long *)(*(long *)(lVar12 + -0x10) + -0x18) + 1;
        if (*param_2 == '\0') goto LAB_001735b7;
      } while (uVar6 == (uint)(*(long *)(lVar12 + -0x10) - *(long *)(lVar12 + -0x18) >> 5));
    }
                    /* WARNING: Subroutine does not return */
    FUN_0017c650("../../gold/dwarf_reader.cc",0x6c4,"read_header_tables");
  }
LAB_001735b7:
  pbVar10 = (byte *)(param_2 + 1);
  if (param_2[1] != '\0') {
    iVar5 = 1;
    __s = pbVar10;
    do {
      sVar4 = strlen((char *)__s);
      pbVar11 = __s + sVar4 + 1;
      bVar1 = *pbVar11;
      uVar3 = (ulong)bVar1;
      pbVar10 = pbVar11 + 1;
      if ((char)bVar1 < '\0') {
        uVar3 = FUN_001a3dc0(pbVar10,&local_70,bVar1);
        pbVar10 = pbVar11 + local_70;
      }
      else {
        local_70 = 1;
      }
      pbVar11 = pbVar10 + 1;
      if ((ulong)(*(long *)(*(long *)(param_1 + 0xa0) + -0x10) -
                  *(long *)(*(long *)(param_1 + 0xa0) + -0x18) >> 5) <= uVar3) {
        uVar3 = 0;
      }
      if ((char)*pbVar10 < '\0') {
        FUN_001a3dc0(pbVar11,&local_70);
        pbVar11 = pbVar10 + local_70;
        pbVar10 = pbVar11 + 1;
        if ((char)*pbVar11 < '\0') goto LAB_0017374d;
LAB_00173644:
        local_70 = 1;
      }
      else {
        pbVar10 = pbVar10 + 2;
        local_70 = 1;
        if (-1 < (char)*pbVar11) goto LAB_00173644;
LAB_0017374d:
        FUN_001a3dc0(pbVar10,&local_70);
        pbVar10 = pbVar11 + local_70;
      }
      lVar12 = *(long *)(param_1 + 0xb8);
      if (iVar5 != (int)(*(long *)(lVar12 + -0x10) - *(long *)(lVar12 + -0x18) >> 3) * -0x33333333)
      {
                    /* WARNING: Subroutine does not return */
        FUN_0017c650("../../gold/dwarf_reader.cc",0x6e4,"read_header_tables");
      }
      local_68 = (long ****)CONCAT44(local_68._4_4_,(int)uVar3);
      local_60 = local_50;
      sVar4 = strlen((char *)__s);
      FUN_001665c0(&local_60,__s,__s + sVar4);
                    /* try { // try from 001736a4 to 001736a8 has its CatchHandler @ 00173809 */
      FUN_00172000(lVar12 + -0x18,&local_68);
      if (local_60 != local_50) {
        FUN_002dac70();
      }
      iVar5 = iVar5 + 1;
      __s = pbVar10;
    } while (*pbVar10 != 0);
  }
  return pbVar10 + 1;
}


PUSH R15
PUSH R14
PUSH R13
PUSH R12
MOV R12,RSI
MOV RSI,-0x5555555555555555
PUSH RBP
PUSH RBX
SUB RSP,0x68
MOV RDX,qword ptr [RDI + 0xa0]
MOV EAX,dword ptr [RDI + 0xc8]
SUB RDX,qword ptr [RDI + 0x98]
SAR RDX,0x3
LEA ECX,[RAX + 0x1]
IMUL RDX,RSI
MOV dword ptr [RDI + 0xc8],ECX
CMP ECX,EDX
JNZ 0x001737b7
MOV RAX,qword ptr [RDI + 0xb8]
SUB RAX,qword ptr [RDI + 0xb0]
MOV RBP,RDI
SAR RAX,0x3
IMUL RAX,RSI
CMP ECX,EAX
JNZ 0x0017379f
MOV EDI,0x20
LEA RBX,[RSP + 0x30]
MOV qword ptr [RSP + 0x30],0x0
MOV qword ptr [RSP + 0x38],0x0
MOV qword ptr [RSP + 0x40],0x0
CALL 0x002d94a0
LEA RDI,[RBP + 0x98]
MOV RSI,RBX
LEA RCX,[RAX + 0x10]
MOV qword ptr [RAX + 0x8],0x0
LEA RDX,[RAX + 0x20]
MOV qword ptr [RAX],RCX
MOV byte ptr [RAX + 0x10],0x0
MOV qword ptr [RSP + 0x30],RAX
MOV qword ptr [RSP + 0x40],RDX
MOV qword ptr [RSP + 0x38],RDX
CALL 0x00171a10
MOV R14,qword ptr [RSP + 0x38]
MOV R13,qword ptr [RSP + 0x30]
CMP R14,R13
JZ 0x00173470
NOP word ptr [RAX + RAX*0x1]
MOV RDI,qword ptr [R13]
LEA RAX,[R13 + 0x10]
CMP RDI,RAX
JZ 0x00173462
CALL 0x002dac70
ADD R13,0x20
CMP R14,R13
JNZ 0x00173450
MOV R13,qword ptr [RSP + 0x30]
TEST R13,R13
JZ 0x0017347d
MOV RDI,R13
CALL 0x002dac70
MOV qword ptr [RSP + 0x30],0x0
MOV EDI,0x28
MOV qword ptr [RSP + 0x38],0x0
MOV qword ptr [RSP + 0x40],0x0
CALL 0x002d94a0
LEA RDI,[RBP + 0xb0]
MOV RSI,RBX
LEA RCX,[RAX + 0x18]
MOV dword ptr [RAX],0x0
LEA RDX,[RAX + 0x28]
MOV qword ptr [RAX + 0x8],RCX
MOV qword ptr [RAX + 0x10],0x0
MOV byte ptr [RAX + 0x18],0x0
MOV qword ptr [RSP + 0x30],RAX
MOV qword ptr [RSP + 0x40],RDX
MOV qword ptr [RSP + 0x38],RDX
CALL 0x00171d10
MOV R14,qword ptr [RSP + 0x38]
MOV R13,qword ptr [RSP + 0x30]
CMP R14,R13
JZ 0x00173510
NOP dword ptr [RAX]
MOV RDI,qword ptr [R13 + 0x8]
LEA RAX,[R13 + 0x18]
CMP RDI,RAX
JZ 0x00173502
CALL 0x002dac70
ADD R13,0x28
CMP R14,R13
JNZ 0x001734f0
MOV R13,qword ptr [RSP + 0x30]
TEST R13,R13
JZ 0x0017351d
MOV RDI,R13
CALL 0x002dac70
CMP byte ptr [R12],0x0
JZ 0x001735b7
MOV R15,qword ptr [RBP + 0xa0]
MOV RAX,qword ptr [R15 + -0x10]
SUB RAX,qword ptr [R15 + -0x18]
SAR RAX,0x5
MOV R13D,EAX
CMP EAX,0x1
JNZ 0x0017376f
LEA R14,[RBX + 0x10]
JMP 0x00173561
SUB RAX,qword ptr [R15 + -0x18]
SAR RAX,0x5
CMP R13D,EAX
JNZ 0x0017376f
MOV RDI,R12
MOV qword ptr [RSP + 0x30],R14
CALL 0x00147490
MOV RSI,R12
MOV RDI,RBX
LEA RDX,[R12 + RAX*0x1]
CALL 0x001665c0
LEA RDI,[R15 + -0x18]
MOV RSI,RBX
CALL 0x0016f840
MOV RDI,qword ptr [RSP + 0x30]
CMP RDI,R14
JZ 0x00173598
CALL 0x002dac70
MOV R15,qword ptr [RBP + 0xa0]
ADD R13D,0x1
MOV RAX,qword ptr [R15 + -0x10]
MOV RDX,qword ptr [RAX + -0x18]
LEA R12,[R12 + RDX*0x1 + 0x1]
CMP byte ptr [R12],0x0
JNZ 0x00173550
CMP byte ptr [R12 + 0x1],0x0
LEA R15,[R12 + 0x1]
JZ 0x00173708
LEA RAX,[RSP + 0x28]
MOV R12D,0x1
MOV qword ptr [RSP + 0x10],RAX
LEA RAX,[RBX + 0x18]
MOV qword ptr [RSP + 0x8],RAX
JMP 0x001736c8
MOV qword ptr [RSP + 0x28],0x1
MOV RCX,qword ptr [RBP + 0xa0]
MOV ESI,0x0
LEA R14,[R13 + 0x1]
MOV RDX,qword ptr [RCX + -0x10]
SUB RDX,qword ptr [RCX + -0x18]
SAR RDX,0x5
CMP RAX,RDX
MOVZX EDX,byte ptr [R13]
CMOVNC RAX,RSI
MOV ECX,EAX
TEST DL,DL
JS 0x00173720
MOVZX EDX,byte ptr [R14]
LEA R13,[R14 + 0x1]
MOV qword ptr [RSP + 0x28],0x1
TEST DL,DL
JS 0x0017374d
MOV qword ptr [RSP + 0x28],0x1
MOV R14,qword ptr [RBP + 0xb8]
MOV RSI,-0x3333333333333333
MOV RAX,qword ptr [R14 + -0x10]
SUB RAX,qword ptr [R14 + -0x18]
SAR RAX,0x3
IMUL RAX,RSI
CMP R12D,EAX
JNZ 0x00173787
MOV RAX,qword ptr [RSP + 0x8]
MOV RDI,R15
MOV dword ptr [RSP + 0x30],ECX
MOV qword ptr [RSP + 0x38],RAX
CALL 0x00147490
LEA RDI,[RBX + 0x8]
MOV RSI,R15
LEA RDX,[R15 + RAX*0x1]
CALL 0x001665c0
LEA RDI,[R14 + -0x18]
MOV RSI,RBX
CALL 0x00172000
MOV RDI,qword ptr [RSP + 0x38]
CMP RDI,qword ptr [RSP + 0x8]
JZ 0x001736ba
CALL 0x002dac70
ADD R12D,0x1
CMP byte ptr [R13],0x0
MOV R15,R13
JZ 0x00173708
MOV RDI,R15
CALL 0x00147490
LEA R14,[R15 + RAX*0x1 + 0x1]
MOVZX EAX,byte ptr [R14]
LEA R13,[R14 + 0x1]
TEST AL,AL
JNS 0x001735f0
MOV RSI,qword ptr [RSP + 0x10]
MOV RDI,R13
MOVZX EDX,AL
CALL 0x001a3dc0
ADD R14,qword ptr [RSP + 0x28]
MOV R13,R14
JMP 0x001735f9
ADD RSP,0x68
LEA RAX,[R15 + 0x1]
POP RBX
POP RBP
POP R12
POP R13
POP R14
POP R15
RET
MOV RSI,qword ptr [RSP + 0x10]
MOV RDI,R14
MOV dword ptr [RSP + 0x1c],EAX
CALL 0x001a3dc0
MOV R14,qword ptr [RSP + 0x28]
MOV ECX,dword ptr [RSP + 0x1c]
ADD R14,R13
MOVZX EDX,byte ptr [R14]
LEA R13,[R14 + 0x1]
TEST DL,DL
JNS 0x00173644
MOV RSI,qword ptr [RSP + 0x10]
MOV RDI,R13
MOV dword ptr [RSP + 0x1c],ECX
CALL 0x001a3dc0
ADD R14,qword ptr [RSP + 0x28]
MOV ECX,dword ptr [RSP + 0x1c]
MOV R13,R14
JMP 0x0017364d
LEA RDX,[0x3721a0]
MOV ESI,0x6c4
LEA RDI,[0x371ee5]
CALL 0x0017c650
LEA RDX,[0x3721a0]
MOV ESI,0x6e4
LEA RDI,[0x371ee5]
CALL 0x0017c650
LEA RDX,[0x3721a0]
MOV ESI,0x6b8
LEA RDI,[0x371ee5]
CALL 0x0017c650
LEA RDX,[0x3721a0]
MOV ESI,0x6b6
LEA RDI,[0x371ee5]
CALL 0x0017c650
(translation_unit "byte * FUN_00173370(long param_1,char *param_2)\n\n{\n  byte bVar1;\n  long ****pppplVar2;\n  ulong uVar3;\n  size_t sVar4;\n  int iVar5;\n  uint uVar6;\n  long ****pppplVar7;\n  long *****ppppplVar8;\n  ulong uVar9;\n  byte *pbVar10;\n  byte *pbVar11;\n  long lVar12;\n  byte *__s;\n  long local_70;\n  long ****local_68;\n  long ****local_60;\n  long ****local_58;\n  long ***local_50 [4];\n  \n  iVar5 = *(int *)(param_1 + 200) + 1;\n  *(int *)(param_1 + 200) = iVar5;\n  if (iVar5 != (int)(*(long *)(param_1 + 0xa0) - *(long *)(param_1 + 0x98) >> 3) * -0x55555555) {\n                    /* WARNING: Subroutine does not return */\n    FUN_0017c650("../../gold/dwarf_reader.cc",0x6b6,"read_header_tables");\n  }\n  if (iVar5 != (int)(*(long *)(param_1 + 0xb8) - *(long *)(param_1 + 0xb0) >> 3) * -0x55555555) {\n                    /* WARNING: Subroutine does not return */\n    FUN_0017c650("../../gold/dwarf_reader.cc",0x6b8,"read_header_tables");\n  }\n  local_68 = (long ****)0x0;\n  local_60 = (long ****)0x0;\n  local_58 = (long ****)0x0;\n  local_68 = (long ****)FUN_002d94a0(0x20);\n  local_68[1] = (long ***)0x0;\n  local_60 = local_68 + 4;\n  *local_68 = (long ***)(local_68 + 2);\n  *(undefined1 *)(local_68 + 2) = 0;\n  local_58 = local_60;\n                    /* try { // try from 00173433 to 00173437 has its CatchHandler @ 00173804 */\n  FUN_00171a10(param_1 + 0x98,&local_68);\n  pppplVar2 = local_60;\n  for (pppplVar7 = local_68; pppplVar2 != pppplVar7; pppplVar7 = pppplVar7 + 4) {\n    if ((long ****)*pppplVar7 != pppplVar7 + 2) {\n      FUN_002dac70();\n    }\n  }\n  if (local_68 != (long ****)0x0) {\n    FUN_002dac70(local_68);\n  }\n  local_68 = (long ****)0x0;\n  local_60 = (long ****)0x0;\n  local_58 = (long ****)0x0;\n  local_68 = (long ****)FUN_002d94a0(0x28);\n  *(undefined4 *)local_68 = 0;\n  local_60 = (long ****)((long *****)local_68 + 5);\n  ((long *****)local_68)[1] = (long ****)((long *****)local_68 + 3);\n  ((long *****)local_68)[2] = (long ****)0x0;\n  *(undefined1 *)((long *****)local_68 + 3) = 0;\n  local_58 = local_60;\n                    /* try { // try from 001734d9 to 001734dd has its CatchHandler @ 001737d4 */\n  FUN_00171d10(param_1 + 0xb0,&local_68);\n  pppplVar7 = local_60;\n  for (ppppplVar8 = (long *****)local_68; (long *****)pppplVar7 != ppppplVar8;\n      ppppplVar8 = ppppplVar8 + 5) {\n    if ((long *****)ppppplVar8[1] != ppppplVar8 + 3) {\n      FUN_002dac70();\n    }\n  }\n  if ((long *****)local_68 != (long *****)0x0) {\n    FUN_002dac70(local_68);\n  }\n  if (*param_2 != '\0') {\n    lVar12 = *(long *)(param_1 + 0xa0);\n    uVar3 = *(long *)(lVar12 + -0x10) - *(long *)(lVar12 + -0x18) >> 5;\n    uVar9 = uVar3 & 0xffffffff;\n    if ((int)uVar3 == 1) {\n      do {\n        local_68 = (long ****)&local_58;\n        sVar4 = strlen(param_2);\n        FUN_001665c0(&local_68,param_2,param_2 + sVar4);\n                    /* try { // try from 00173584 to 00173588 has its CatchHandler @ 001737cf */\n        FUN_0016f840(lVar12 + -0x18,&local_68);\n        if ((long *****)local_68 != &local_58) {\n          FUN_002dac70();\n        }\n        lVar12 = *(long *)(param_1 + 0xa0);\n        uVar6 = (int)uVar9 + 1;\n        uVar9 = (ulong)uVar6;\n        param_2 = param_2 + *(long *)(*(long *)(lVar12 + -0x10) + -0x18) + 1;\n        if (*param_2 == '\0') goto LAB_001735b7;\n      } while (uVar6 == (uint)(*(long *)(lVar12 + -0x10) - *(long *)(lVar12 + -0x18) >> 5));\n    }\n                    /* WARNING: Subroutine does not return */\n    FUN_0017c650("../../gold/dwarf_reader.cc",0x6c4,"read_header_tables");\n  }\nLAB_001735b7:\n  pbVar10 = (byte *)(param_2 + 1);\n  if (param_2[1] != '\0') {\n    iVar5 = 1;\n    __s = pbVar10;\n    do {\n      sVar4 = strlen((char *)__s);\n      pbVar11 = __s + sVar4 + 1;\n      bVar1 = *pbVar11;\n      uVar3 = (ulong)bVar1;\n      pbVar10 = pbVar11 + 1;\n      if ((char)bVar1 < '\0') {\n        uVar3 = FUN_001a3dc0(pbVar10,&local_70,bVar1);\n        pbVar10 = pbVar11 + local_70;\n      }\n      else {\n        local_70 = 1;\n      }\n      pbVar11 = pbVar10 + 1;\n      if ((ulong)(*(long *)(*(long *)(param_1 + 0xa0) + -0x10) -\n                  *(long *)(*(long *)(param_1 + 0xa0) + -0x18) >> 5) <= uVar3) {\n        uVar3 = 0;\n      }\n      if ((char)*pbVar10 < '\0') {\n        FUN_001a3dc0(pbVar11,&local_70);\n        pbVar11 = pbVar10 + local_70;\n        pbVar10 = pbVar11 + 1;\n        if ((char)*pbVar11 < '\0') goto LAB_0017374d;\nLAB_00173644:\n        local_70 = 1;\n      }\n      else {\n        pbVar10 = pbVar10 + 2;\n        local_70 = 1;\n        if (-1 < (char)*pbVar11) goto LAB_00173644;\nLAB_0017374d:\n        FUN_001a3dc0(pbVar10,&local_70);\n        pbVar10 = pbVar11 + local_70;\n      }\n      lVar12 = *(long *)(param_1 + 0xb8);\n      if (iVar5 != (int)(*(long *)(lVar12 + -0x10) - *(long *)(lVar12 + -0x18) >> 3) * -0x33333333)\n      {\n                    /* WARNING: Subroutine does not return */\n        FUN_0017c650("../../gold/dwarf_reader.cc",0x6e4,"read_header_tables");\n      }\n      local_68 = (long ****)CONCAT44(local_68._4_4_,(int)uVar3);\n      local_60 = local_50;\n      sVar4 = strlen((char *)__s);\n      FUN_001665c0(&local_60,__s,__s + sVar4);\n                    /* try { // try from 001736a4 to 001736a8 has its CatchHandler @ 00173809 */\n      FUN_00172000(lVar12 + -0x18,&local_68);\n      if (local_60 != local_50) {\n        FUN_002dac70();\n      }\n      iVar5 = iVar5 + 1;\n      __s = pbVar10;\n    } while (*pbVar10 != 0);\n  }\n  return pbVar10 + 1;\n}\n\n" (function_definition "byte * FUN_00173370(long param_1,char *param_2)\n\n{\n  byte bVar1;\n  long ****pppplVar2;\n  ulong uVar3;\n  size_t sVar4;\n  int iVar5;\n  uint uVar6;\n  long ****pppplVar7;\n  long *****ppppplVar8;\n  ulong uVar9;\n  byte *pbVar10;\n  byte *pbVar11;\n  long lVar12;\n  byte *__s;\n  long local_70;\n  long ****local_68;\n  long ****local_60;\n  long ****local_58;\n  long ***local_50 [4];\n  \n  iVar5 = *(int *)(param_1 + 200) + 1;\n  *(int *)(param_1 + 200) = iVar5;\n  if (iVar5 != (int)(*(long *)(param_1 + 0xa0) - *(long *)(param_1 + 0x98) >> 3) * -0x55555555) {\n                    /* WARNING: Subroutine does not return */\n    FUN_0017c650("../../gold/dwarf_reader.cc",0x6b6,"read_header_tables");\n  }\n  if (iVar5 != (int)(*(long *)(param_1 + 0xb8) - *(long *)(param_1 + 0xb0) >> 3) * -0x55555555) {\n                    /* WARNING: Subroutine does not return */\n    FUN_0017c650("../../gold/dwarf_reader.cc",0x6b8,"read_header_tables");\n  }\n  local_68 = (long ****)0x0;\n  local_60 = (long ****)0x0;\n  local_58 = (long ****)0x0;\n  local_68 = (long ****)FUN_002d94a0(0x20);\n  local_68[1] = (long ***)0x0;\n  local_60 = local_68 + 4;\n  *local_68 = (long ***)(local_68 + 2);\n  *(undefined1 *)(local_68 + 2) = 0;\n  local_58 = local_60;\n                    /* try { // try from 00173433 to 00173437 has its CatchHandler @ 00173804 */\n  FUN_00171a10(param_1 + 0x98,&local_68);\n  pppplVar2 = local_60;\n  for (pppplVar7 = local_68; pppplVar2 != pppplVar7; pppplVar7 = pppplVar7 + 4) {\n    if ((long ****)*pppplVar7 != pppplVar7 + 2) {\n      FUN_002dac70();\n    }\n  }\n  if (local_68 != (long ****)0x0) {\n    FUN_002dac70(local_68);\n  }\n  local_68 = (long ****)0x0;\n  local_60 = (long ****)0x0;\n  local_58 = (long ****)0x0;\n  local_68 = (long ****)FUN_002d94a0(0x28);\n  *(undefined4 *)local_68 = 0;\n  local_60 = (long ****)((long *****)local_68 + 5);\n  ((long *****)local_68)[1] = (long ****)((long *****)local_68 + 3);\n  ((long *****)local_68)[2] = (long ****)0x0;\n  *(undefined1 *)((long *****)local_68 + 3) = 0;\n  local_58 = local_60;\n                    /* try { // try from 001734d9 to 001734dd has its CatchHandler @ 001737d4 */\n  FUN_00171d10(param_1 + 0xb0,&local_68);\n  pppplVar7 = local_60;\n  for (ppppplVar8 = (long *****)local_68; (long *****)pppplVar7 != ppppplVar8;\n      ppppplVar8 = ppppplVar8 + 5) {\n    if ((long *****)ppppplVar8[1] != ppppplVar8 + 3) {\n      FUN_002dac70();\n    }\n  }\n  if ((long *****)local_68 != (long *****)0x0) {\n    FUN_002dac70(local_68);\n  }\n  if (*param_2 != '\0') {\n    lVar12 = *(long *)(param_1 + 0xa0);\n    uVar3 = *(long *)(lVar12 + -0x10) - *(long *)(lVar12 + -0x18) >> 5;\n    uVar9 = uVar3 & 0xffffffff;\n    if ((int)uVar3 == 1) {\n      do {\n        local_68 = (long ****)&local_58;\n        sVar4 = strlen(param_2);\n        FUN_001665c0(&local_68,param_2,param_2 + sVar4);\n                    /* try { // try from 00173584 to 00173588 has its CatchHandler @ 001737cf */\n        FUN_0016f840(lVar12 + -0x18,&local_68);\n        if ((long *****)local_68 != &local_58) {\n          FUN_002dac70();\n        }\n        lVar12 = *(long *)(param_1 + 0xa0);\n        uVar6 = (int)uVar9 + 1;\n        uVar9 = (ulong)uVar6;\n        param_2 = param_2 + *(long *)(*(long *)(lVar12 + -0x10) + -0x18) + 1;\n        if (*param_2 == '\0') goto LAB_001735b7;\n      } while (uVar6 == (uint)(*(long *)(lVar12 + -0x10) - *(long *)(lVar12 + -0x18) >> 5));\n    }\n                    /* WARNING: Subroutine does not return */\n    FUN_0017c650("../../gold/dwarf_reader.cc",0x6c4,"read_header_tables");\n  }\nLAB_001735b7:\n  pbVar10 = (byte *)(param_2 + 1);\n  if (param_2[1] != '\0') {\n    iVar5 = 1;\n    __s = pbVar10;\n    do {\n      sVar4 = strlen((char *)__s);\n      pbVar11 = __s + sVar4 + 1;\n      bVar1 = *pbVar11;\n      uVar3 = (ulong)bVar1;\n      pbVar10 = pbVar11 + 1;\n      if ((char)bVar1 < '\0') {\n        uVar3 = FUN_001a3dc0(pbVar10,&local_70,bVar1);\n        pbVar10 = pbVar11 + local_70;\n      }\n      else {\n        local_70 = 1;\n      }\n      pbVar11 = pbVar10 + 1;\n      if ((ulong)(*(long *)(*(long *)(param_1 + 0xa0) + -0x10) -\n                  *(long *)(*(long *)(param_1 + 0xa0) + -0x18) >> 5) <= uVar3) {\n        uVar3 = 0;\n      }\n      if ((char)*pbVar10 < '\0') {\n        FUN_001a3dc0(pbVar11,&local_70);\n        pbVar11 = pbVar10 + local_70;\n        pbVar10 = pbVar11 + 1;\n        if ((char)*pbVar11 < '\0') goto LAB_0017374d;\nLAB_00173644:\n        local_70 = 1;\n      }\n      else {\n        pbVar10 = pbVar10 + 2;\n        local_70 = 1;\n        if (-1 < (char)*pbVar11) goto LAB_00173644;\nLAB_0017374d:\n        FUN_001a3dc0(pbVar10,&local_70);\n        pbVar10 = pbVar11 + local_70;\n      }\n      lVar12 = *(long *)(param_1 + 0xb8);\n      if (iVar5 != (int)(*(long *)(lVar12 + -0x10) - *(long *)(lVar12 + -0x18) >> 3) * -0x33333333)\n      {\n                    /* WARNING: Subroutine does not return */\n        FUN_0017c650("../../gold/dwarf_reader.cc",0x6e4,"read_header_tables");\n      }\n      local_68 = (long ****)CONCAT44(local_68._4_4_,(int)uVar3);\n      local_60 = local_50;\n      sVar4 = strlen((char *)__s);\n      FUN_001665c0(&local_60,__s,__s + sVar4);\n                    /* try { // try from 001736a4 to 001736a8 has its CatchHandler @ 00173809 */\n      FUN_00172000(lVar12 + -0x18,&local_68);\n      if (local_60 != local_50) {\n        FUN_002dac70();\n      }\n      iVar5 = iVar5 + 1;\n      __s = pbVar10;\n    } while (*pbVar10 != 0);\n  }\n  return pbVar10 + 1;\n}" type_identifier (pointer_declarator "* FUN_00173370(long param_1,char *param_2)" * (function_declarator "FUN_00173370(long param_1,char *param_2)" identifier (parameter_list "(long param_1,char *param_2)" ( (parameter_declaration "long param_1" (sized_type_specifier "long" long) identifier) , (parameter_declaration "char *param_2" primitive_type (pointer_declarator "*param_2" * identifier)) )))) (compound_statement "{\n  byte bVar1;\n  long ****pppplVar2;\n  ulong uVar3;\n  size_t sVar4;\n  int iVar5;\n  uint uVar6;\n  long ****pppplVar7;\n  long *****ppppplVar8;\n  ulong uVar9;\n  byte *pbVar10;\n  byte *pbVar11;\n  long lVar12;\n  byte *__s;\n  long local_70;\n  long ****local_68;\n  long ****local_60;\n  long ****local_58;\n  long ***local_50 [4];\n  \n  iVar5 = *(int *)(param_1 + 200) + 1;\n  *(int *)(param_1 + 200) = iVar5;\n  if (iVar5 != (int)(*(long *)(param_1 + 0xa0) - *(long *)(param_1 + 0x98) >> 3) * -0x55555555) {\n                    /* WARNING: Subroutine does not return */\n    FUN_0017c650("../../gold/dwarf_reader.cc",0x6b6,"read_header_tables");\n  }\n  if (iVar5 != (int)(*(long *)(param_1 + 0xb8) - *(long *)(param_1 + 0xb0) >> 3) * -0x55555555) {\n                    /* WARNING: Subroutine does not return */\n    FUN_0017c650("../../gold/dwarf_reader.cc",0x6b8,"read_header_tables");\n  }\n  local_68 = (long ****)0x0;\n  local_60 = (long ****)0x0;\n  local_58 = (long ****)0x0;\n  local_68 = (long ****)FUN_002d94a0(0x20);\n  local_68[1] = (long ***)0x0;\n  local_60 = local_68 + 4;\n  *local_68 = (long ***)(local_68 + 2);\n  *(undefined1 *)(local_68 + 2) = 0;\n  local_58 = local_60;\n                    /* try { // try from 00173433 to 00173437 has its CatchHandler @ 00173804 */\n  FUN_00171a10(param_1 + 0x98,&local_68);\n  pppplVar2 = local_60;\n  for (pppplVar7 = local_68; pppplVar2 != pppplVar7; pppplVar7 = pppplVar7 + 4) {\n    if ((long ****)*pppplVar7 != pppplVar7 + 2) {\n      FUN_002dac70();\n    }\n  }\n  if (local_68 != (long ****)0x0) {\n    FUN_002dac70(local_68);\n  }\n  local_68 = (long ****)0x0;\n  local_60 = (long ****)0x0;\n  local_58 = (long ****)0x0;\n  local_68 = (long ****)FUN_002d94a0(0x28);\n  *(undefined4 *)local_68 = 0;\n  local_60 = (long ****)((long *****)local_68 + 5);\n  ((long *****)local_68)[1] = (long ****)((long *****)local_68 + 3);\n  ((long *****)local_68)[2] = (long ****)0x0;\n  *(undefined1 *)((long *****)local_68 + 3) = 0;\n  local_58 = local_60;\n                    /* try { // try from 001734d9 to 001734dd has its CatchHandler @ 001737d4 */\n  FUN_00171d10(param_1 + 0xb0,&local_68);\n  pppplVar7 = local_60;\n  for (ppppplVar8 = (long *****)local_68; (long *****)pppplVar7 != ppppplVar8;\n      ppppplVar8 = ppppplVar8 + 5) {\n    if ((long *****)ppppplVar8[1] != ppppplVar8 + 3) {\n      FUN_002dac70();\n    }\n  }\n  if ((long *****)local_68 != (long *****)0x0) {\n    FUN_002dac70(local_68);\n  }\n  if (*param_2 != '\0') {\n    lVar12 = *(long *)(param_1 + 0xa0);\n    uVar3 = *(long *)(lVar12 + -0x10) - *(long *)(lVar12 + -0x18) >> 5;\n    uVar9 = uVar3 & 0xffffffff;\n    if ((int)uVar3 == 1) {\n      do {\n        local_68 = (long ****)&local_58;\n        sVar4 = strlen(param_2);\n        FUN_001665c0(&local_68,param_2,param_2 + sVar4);\n                    /* try { // try from 00173584 to 00173588 has its CatchHandler @ 001737cf */\n        FUN_0016f840(lVar12 + -0x18,&local_68);\n        if ((long *****)local_68 != &local_58) {\n          FUN_002dac70();\n        }\n        lVar12 = *(long *)(param_1 + 0xa0);\n        uVar6 = (int)uVar9 + 1;\n        uVar9 = (ulong)uVar6;\n        param_2 = param_2 + *(long *)(*(long *)(lVar12 + -0x10) + -0x18) + 1;\n        if (*param_2 == '\0') goto LAB_001735b7;\n      } while (uVar6 == (uint)(*(long *)(lVar12 + -0x10) - *(long *)(lVar12 + -0x18) >> 5));\n    }\n                    /* WARNING: Subroutine does not return */\n    FUN_0017c650("../../gold/dwarf_reader.cc",0x6c4,"read_header_tables");\n  }\nLAB_001735b7:\n  pbVar10 = (byte *)(param_2 + 1);\n  if (param_2[1] != '\0') {\n    iVar5 = 1;\n    __s = pbVar10;\n    do {\n      sVar4 = strlen((char *)__s);\n      pbVar11 = __s + sVar4 + 1;\n      bVar1 = *pbVar11;\n      uVar3 = (ulong)bVar1;\n      pbVar10 = pbVar11 + 1;\n      if ((char)bVar1 < '\0') {\n        uVar3 = FUN_001a3dc0(pbVar10,&local_70,bVar1);\n        pbVar10 = pbVar11 + local_70;\n      }\n      else {\n        local_70 = 1;\n      }\n      pbVar11 = pbVar10 + 1;\n      if ((ulong)(*(long *)(*(long *)(param_1 + 0xa0) + -0x10) -\n                  *(long *)(*(long *)(param_1 + 0xa0) + -0x18) >> 5) <= uVar3) {\n        uVar3 = 0;\n      }\n      if ((char)*pbVar10 < '\0') {\n        FUN_001a3dc0(pbVar11,&local_70);\n        pbVar11 = pbVar10 + local_70;\n        pbVar10 = pbVar11 + 1;\n        if ((char)*pbVar11 < '\0') goto LAB_0017374d;\nLAB_00173644:\n        local_70 = 1;\n      }\n      else {\n        pbVar10 = pbVar10 + 2;\n        local_70 = 1;\n        if (-1 < (char)*pbVar11) goto LAB_00173644;\nLAB_0017374d:\n        FUN_001a3dc0(pbVar10,&local_70);\n        pbVar10 = pbVar11 + local_70;\n      }\n      lVar12 = *(long *)(param_1 + 0xb8);\n      if (iVar5 != (int)(*(long *)(lVar12 + -0x10) - *(long *)(lVar12 + -0x18) >> 3) * -0x33333333)\n      {\n                    /* WARNING: Subroutine does not return */\n        FUN_0017c650("../../gold/dwarf_reader.cc",0x6e4,"read_header_tables");\n      }\n      local_68 = (long ****)CONCAT44(local_68._4_4_,(int)uVar3);\n      local_60 = local_50;\n      sVar4 = strlen((char *)__s);\n      FUN_001665c0(&local_60,__s,__s + sVar4);\n                    /* try { // try from 001736a4 to 001736a8 has its CatchHandler @ 00173809 */\n      FUN_00172000(lVar12 + -0x18,&local_68);\n      if (local_60 != local_50) {\n        FUN_002dac70();\n      }\n      iVar5 = iVar5 + 1;\n      __s = pbVar10;\n    } while (*pbVar10 != 0);\n  }\n  return pbVar10 + 1;\n}" { (declaration "byte bVar1;" type_identifier identifier ;) (declaration "long ****pppplVar2;" (sized_type_specifier "long" long) (pointer_declarator "****pppplVar2" * (pointer_declarator "***pppplVar2" * (pointer_declarator "**pppplVar2" * (pointer_declarator "*pppplVar2" * identifier)))) ;) (declaration "ulong uVar3;" type_identifier identifier ;) (declaration "size_t sVar4;" primitive_type identifier ;) (declaration "int iVar5;" primitive_type identifier ;) (declaration "uint uVar6;" type_identifier identifier ;) (declaration "long ****pppplVar7;" (sized_type_specifier "long" long) (pointer_declarator "****pppplVar7" * (pointer_declarator "***pppplVar7" * (pointer_declarator "**pppplVar7" * (pointer_declarator "*pppplVar7" * identifier)))) ;) (declaration "long *****ppppplVar8;" (sized_type_specifier "long" long) (pointer_declarator "*****ppppplVar8" * (pointer_declarator "****ppppplVar8" * (pointer_declarator "***ppppplVar8" * (pointer_declarator "**ppppplVar8" * (pointer_declarator "*ppppplVar8" * identifier))))) ;) (declaration "ulong uVar9;" type_identifier identifier ;) (declaration "byte *pbVar10;" type_identifier (pointer_declarator "*pbVar10" * identifier) ;) (declaration "byte *pbVar11;" type_identifier (pointer_declarator "*pbVar11" * identifier) ;) (declaration "long lVar12;" (sized_type_specifier "long" long) identifier ;) (declaration "byte *__s;" type_identifier (pointer_declarator "*__s" * identifier) ;) (declaration "long local_70;" (sized_type_specifier "long" long) identifier ;) (declaration "long ****local_68;" (sized_type_specifier "long" long) (pointer_declarator "****local_68" * (pointer_declarator "***local_68" * (pointer_declarator "**local_68" * (pointer_declarator "*local_68" * identifier)))) ;) (declaration "long ****local_60;" (sized_type_specifier "long" long) (pointer_declarator "****local_60" * (pointer_declarator "***local_60" * (pointer_declarator "**local_60" * (pointer_declarator "*local_60" * identifier)))) ;) (declaration "long ****local_58;" (sized_type_specifier "long" long) (pointer_declarator "****local_58" * (pointer_declarator "***local_58" * (pointer_declarator "**local_58" * (pointer_declarator "*local_58" * identifier)))) ;) (declaration "long ***local_50 [4];" (sized_type_specifier "long" long) (pointer_declarator "***local_50 [4]" * (pointer_declarator "**local_50 [4]" * (pointer_declarator "*local_50 [4]" * (array_declarator "local_50 [4]" identifier [ number_literal ])))) ;) (expression_statement "iVar5 = *(int *)(param_1 + 200) + 1;" (assignment_expression "iVar5 = *(int *)(param_1 + 200) + 1" identifier = (binary_expression "*(int *)(param_1 + 200) + 1" (pointer_expression "*(int *)(param_1 + 200)" * (cast_expression "(int *)(param_1 + 200)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 200)" ( (binary_expression "param_1 + 200" identifier + number_literal) )))) + number_literal)) ;) (expression_statement "*(int *)(param_1 + 200) = iVar5;" (assignment_expression "*(int *)(param_1 + 200) = iVar5" (pointer_expression "*(int *)(param_1 + 200)" * (cast_expression "(int *)(param_1 + 200)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 200)" ( (binary_expression "param_1 + 200" identifier + number_literal) )))) = identifier) ;) (if_statement "if (iVar5 != (int)(*(long *)(param_1 + 0xa0) - *(long *)(param_1 + 0x98) >> 3) * -0x55555555) {\n                    /* WARNING: Subroutine does not return */\n    FUN_0017c650("../../gold/dwarf_reader.cc",0x6b6,"read_header_tables");\n  }" if (parenthesized_expression "(iVar5 != (int)(*(long *)(param_1 + 0xa0) - *(long *)(param_1 + 0x98) >> 3) * -0x55555555)" ( (binary_expression "iVar5 != (int)(*(long *)(param_1 + 0xa0) - *(long *)(param_1 + 0x98) >> 3) * -0x55555555" identifier != (binary_expression "(int)(*(long *)(param_1 + 0xa0) - *(long *)(param_1 + 0x98) >> 3) * -0x55555555" (cast_expression "(int)(*(long *)(param_1 + 0xa0) - *(long *)(param_1 + 0x98) >> 3)" ( (type_descriptor "int" primitive_type) ) (parenthesized_expression "(*(long *)(param_1 + 0xa0) - *(long *)(param_1 + 0x98) >> 3)" ( (binary_expression "*(long *)(param_1 + 0xa0) - *(long *)(param_1 + 0x98) >> 3" (binary_expression "*(long *)(param_1 + 0xa0) - *(long *)(param_1 + 0x98)" (pointer_expression "*(long *)(param_1 + 0xa0)" * (cast_expression "(long *)(param_1 + 0xa0)" ( (type_descriptor "long *" (sized_type_specifier "long" long) (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0xa0)" ( (binary_expression "param_1 + 0xa0" identifier + number_literal) )))) - (pointer_expression "*(long *)(param_1 + 0x98)" * (cast_expression "(long *)(param_1 + 0x98)" ( (type_descriptor "long *" (sized_type_specifier "long" long) (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x98)" ( (binary_expression "param_1 + 0x98" identifier + number_literal) ))))) >> number_literal) ))) * number_literal)) )) (compound_statement "{\n                    /* WARNING: Subroutine does not return */\n    FUN_0017c650("../../gold/dwarf_reader.cc",0x6b6,"read_header_tables");\n  }" { comment (expression_statement "FUN_0017c650("../../gold/dwarf_reader.cc",0x6b6,"read_header_tables");" (call_expression "FUN_0017c650("../../gold/dwarf_reader.cc",0x6b6,"read_header_tables")" identifier (argument_list "("../../gold/dwarf_reader.cc",0x6b6,"read_header_tables")" ( (string_literal ""../../gold/dwarf_reader.cc"" " string_content ") , number_literal , (string_literal ""read_header_tables"" " string_content ") ))) ;) })) (if_statement "if (iVar5 != (int)(*(long *)(param_1 + 0xb8) - *(long *)(param_1 + 0xb0) >> 3) * -0x55555555) {\n                    /* WARNING: Subroutine does not return */\n    FUN_0017c650("../../gold/dwarf_reader.cc",0x6b8,"read_header_tables");\n  }" if (parenthesized_expression "(iVar5 != (int)(*(long *)(param_1 + 0xb8) - *(long *)(param_1 + 0xb0) >> 3) * -0x55555555)" ( (binary_expression "iVar5 != (int)(*(long *)(param_1 + 0xb8) - *(long *)(param_1 + 0xb0) >> 3) * -0x55555555" identifier != (binary_expression "(int)(*(long *)(param_1 + 0xb8) - *(long *)(param_1 + 0xb0) >> 3) * -0x55555555" (cast_expression "(int)(*(long *)(param_1 + 0xb8) - *(long *)(param_1 + 0xb0) >> 3)" ( (type_descriptor "int" primitive_type) ) (parenthesized_expression "(*(long *)(param_1 + 0xb8) - *(long *)(param_1 + 0xb0) >> 3)" ( (binary_expression "*(long *)(param_1 + 0xb8) - *(long *)(param_1 + 0xb0) >> 3" (binary_expression "*(long *)(param_1 + 0xb8) - *(long *)(param_1 + 0xb0)" (pointer_expression "*(long *)(param_1 + 0xb8)" * (cast_expression "(long *)(param_1 + 0xb8)" ( (type_descriptor "long *" (sized_type_specifier "long" long) (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0xb8)" ( (binary_expression "param_1 + 0xb8" identifier + number_literal) )))) - (pointer_expression "*(long *)(param_1 + 0xb0)" * (cast_expression "(long *)(param_1 + 0xb0)" ( (type_descriptor "long *" (sized_type_specifier "long" long) (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0xb0)" ( (binary_expression "param_1 + 0xb0" identifier + number_literal) ))))) >> number_literal) ))) * number_literal)) )) (compound_statement "{\n                    /* WARNING: Subroutine does not return */\n    FUN_0017c650("../../gold/dwarf_reader.cc",0x6b8,"read_header_tables");\n  }" { comment (expression_statement "FUN_0017c650("../../gold/dwarf_reader.cc",0x6b8,"read_header_tables");" (call_expression "FUN_0017c650("../../gold/dwarf_reader.cc",0x6b8,"read_header_tables")" identifier (argument_list "("../../gold/dwarf_reader.cc",0x6b8,"read_header_tables")" ( (string_literal ""../../gold/dwarf_reader.cc"" " string_content ") , number_literal , (string_literal ""read_header_tables"" " string_content ") ))) ;) })) (expression_statement "local_68 = (long ****)0x0;" (assignment_expression "local_68 = (long ****)0x0" identifier = (cast_expression "(long ****)0x0" ( (type_descriptor "long ****" (sized_type_specifier "long" long) (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))))) ) number_literal)) ;) (expression_statement "local_60 = (long ****)0x0;" (assignment_expression "local_60 = (long ****)0x0" identifier = (cast_expression "(long ****)0x0" ( (type_descriptor "long ****" (sized_type_specifier "long" long) (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))))) ) number_literal)) ;) (expression_statement "local_58 = (long ****)0x0;" (assignment_expression "local_58 = (long ****)0x0" identifier = (cast_expression "(long ****)0x0" ( (type_descriptor "long ****" (sized_type_specifier "long" long) (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))))) ) number_literal)) ;) (expression_statement "local_68 = (long ****)FUN_002d94a0(0x20);" (assignment_expression "local_68 = (long ****)FUN_002d94a0(0x20)" identifier = (cast_expression "(long ****)FUN_002d94a0(0x20)" ( (type_descriptor "long ****" (sized_type_specifier "long" long) (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))))) ) (call_expression "FUN_002d94a0(0x20)" identifier (argument_list "(0x20)" ( number_literal ))))) ;) (expression_statement "local_68[1] = (long ***)0x0;" (assignment_expression "local_68[1] = (long ***)0x0" (subscript_expression "local_68[1]" identifier [ number_literal ]) = (cast_expression "(long ***)0x0" ( (type_descriptor "long ***" (sized_type_specifier "long" long) (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *)))) ) number_literal)) ;) (expression_statement "local_60 = local_68 + 4;" (assignment_expression "local_60 = local_68 + 4" identifier = (binary_expression "local_68 + 4" identifier + number_literal)) ;) (expression_statement "*local_68 = (long ***)(local_68 + 2);" (assignment_expression "*local_68 = (long ***)(local_68 + 2)" (pointer_expression "*local_68" * identifier) = (cast_expression "(long ***)(local_68 + 2)" ( (type_descriptor "long ***" (sized_type_specifier "long" long) (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *)))) ) (parenthesized_expression "(local_68 + 2)" ( (binary_expression "local_68 + 2" identifier + number_literal) )))) ;) (expression_statement "*(undefined1 *)(local_68 + 2) = 0;" (assignment_expression "*(undefined1 *)(local_68 + 2) = 0" (pointer_expression "*(undefined1 *)(local_68 + 2)" * (cast_expression "(undefined1 *)(local_68 + 2)" ( (type_descriptor "undefined1 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(local_68 + 2)" ( (binary_expression "local_68 + 2" identifier + number_literal) )))) = number_literal) ;) (expression_statement "local_58 = local_60;" (assignment_expression "local_58 = local_60" identifier = identifier) ;) comment (expression_statement "FUN_00171a10(param_1 + 0x98,&local_68);" (call_expression "FUN_00171a10(param_1 + 0x98,&local_68)" identifier (argument_list "(param_1 + 0x98,&local_68)" ( (binary_expression "param_1 + 0x98" identifier + number_literal) , (pointer_expression "&local_68" & identifier) ))) ;) (expression_statement "pppplVar2 = local_60;" (assignment_expression "pppplVar2 = local_60" identifier = identifier) ;) (for_statement "for (pppplVar7 = local_68; pppplVar2 != pppplVar7; pppplVar7 = pppplVar7 + 4) {\n    if ((long ****)*pppplVar7 != pppplVar7 + 2) {\n      FUN_002dac70();\n    }\n  }" for ( (assignment_expression "pppplVar7 = local_68" identifier = identifier) ; (binary_expression "pppplVar2 != pppplVar7" identifier != identifier) ; (assignment_expression "pppplVar7 = pppplVar7 + 4" identifier = (binary_expression "pppplVar7 + 4" identifier + number_literal)) ) (compound_statement "{\n    if ((long ****)*pppplVar7 != pppplVar7 + 2) {\n      FUN_002dac70();\n    }\n  }" { (if_statement "if ((long ****)*pppplVar7 != pppplVar7 + 2) {\n      FUN_002dac70();\n    }" if (parenthesized_expression "((long ****)*pppplVar7 != pppplVar7 + 2)" ( (binary_expression "(long ****)*pppplVar7 != pppplVar7 + 2" (cast_expression "(long ****)*pppplVar7" ( (type_descriptor "long ****" (sized_type_specifier "long" long) (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))))) ) (pointer_expression "*pppplVar7" * identifier)) != (binary_expression "pppplVar7 + 2" identifier + number_literal)) )) (compound_statement "{\n      FUN_002dac70();\n    }" { (expression_statement "FUN_002dac70();" (call_expression "FUN_002dac70()" identifier (argument_list "()" ( ))) ;) })) })) (if_statement "if (local_68 != (long ****)0x0) {\n    FUN_002dac70(local_68);\n  }" if (parenthesized_expression "(local_68 != (long ****)0x0)" ( (binary_expression "local_68 != (long ****)0x0" identifier != (cast_expression "(long ****)0x0" ( (type_descriptor "long ****" (sized_type_specifier "long" long) (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))))) ) number_literal)) )) (compound_statement "{\n    FUN_002dac70(local_68);\n  }" { (expression_statement "FUN_002dac70(local_68);" (call_expression "FUN_002dac70(local_68)" identifier (argument_list "(local_68)" ( identifier ))) ;) })) (expression_statement "local_68 = (long ****)0x0;" (assignment_expression "local_68 = (long ****)0x0" identifier = (cast_expression "(long ****)0x0" ( (type_descriptor "long ****" (sized_type_specifier "long" long) (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))))) ) number_literal)) ;) (expression_statement "local_60 = (long ****)0x0;" (assignment_expression "local_60 = (long ****)0x0" identifier = (cast_expression "(long ****)0x0" ( (type_descriptor "long ****" (sized_type_specifier "long" long) (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))))) ) number_literal)) ;) (expression_statement "local_58 = (long ****)0x0;" (assignment_expression "local_58 = (long ****)0x0" identifier = (cast_expression "(long ****)0x0" ( (type_descriptor "long ****" (sized_type_specifier "long" long) (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))))) ) number_literal)) ;) (expression_statement "local_68 = (long ****)FUN_002d94a0(0x28);" (assignment_expression "local_68 = (long ****)FUN_002d94a0(0x28)" identifier = (cast_expression "(long ****)FUN_002d94a0(0x28)" ( (type_descriptor "long ****" (sized_type_specifier "long" long) (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))))) ) (call_expression "FUN_002d94a0(0x28)" identifier (argument_list "(0x28)" ( number_literal ))))) ;) (expression_statement "*(undefined4 *)local_68 = 0;" (assignment_expression "*(undefined4 *)local_68 = 0" (pointer_expression "*(undefined4 *)local_68" * (cast_expression "(undefined4 *)local_68" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) = number_literal) ;) (expression_statement "local_60 = (long ****)((long *****)local_68 + 5);" (assignment_expression "local_60 = (long ****)((long *****)local_68 + 5)" identifier = (cast_expression "(long ****)((long *****)local_68 + 5)" ( (type_descriptor "long ****" (sized_type_specifier "long" long) (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))))) ) (parenthesized_expression "((long *****)local_68 + 5)" ( (binary_expression "(long *****)local_68 + 5" (cast_expression "(long *****)local_68" ( (type_descriptor "long *****" (sized_type_specifier "long" long) (abstract_pointer_declarator "*****" * (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *)))))) ) identifier) + number_literal) )))) ;) (expression_statement "((long *****)local_68)[1] = (long ****)((long *****)local_68 + 3);" (assignment_expression "((long *****)local_68)[1] = (long ****)((long *****)local_68 + 3)" (subscript_expression "((long *****)local_68)[1]" (parenthesized_expression "((long *****)local_68)" ( (cast_expression "(long *****)local_68" ( (type_descriptor "long *****" (sized_type_specifier "long" long) (abstract_pointer_declarator "*****" * (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *)))))) ) identifier) )) [ number_literal ]) = (cast_expression "(long ****)((long *****)local_68 + 3)" ( (type_descriptor "long ****" (sized_type_specifier "long" long) (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))))) ) (parenthesized_expression "((long *****)local_68 + 3)" ( (binary_expression "(long *****)local_68 + 3" (cast_expression "(long *****)local_68" ( (type_descriptor "long *****" (sized_type_specifier "long" long) (abstract_pointer_declarator "*****" * (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *)))))) ) identifier) + number_literal) )))) ;) (expression_statement "((long *****)local_68)[2] = (long ****)0x0;" (assignment_expression "((long *****)local_68)[2] = (long ****)0x0" (subscript_expression "((long *****)local_68)[2]" (parenthesized_expression "((long *****)local_68)" ( (cast_expression "(long *****)local_68" ( (type_descriptor "long *****" (sized_type_specifier "long" long) (abstract_pointer_declarator "*****" * (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *)))))) ) identifier) )) [ number_literal ]) = (cast_expression "(long ****)0x0" ( (type_descriptor "long ****" (sized_type_specifier "long" long) (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))))) ) number_literal)) ;) (expression_statement "*(undefined1 *)((long *****)local_68 + 3) = 0;" (assignment_expression "*(undefined1 *)((long *****)local_68 + 3) = 0" (pointer_expression "*(undefined1 *)((long *****)local_68 + 3)" * (cast_expression "(undefined1 *)((long *****)local_68 + 3)" ( (type_descriptor "undefined1 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((long *****)local_68 + 3)" ( (binary_expression "(long *****)local_68 + 3" (cast_expression "(long *****)local_68" ( (type_descriptor "long *****" (sized_type_specifier "long" long) (abstract_pointer_declarator "*****" * (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *)))))) ) identifier) + number_literal) )))) = number_literal) ;) (expression_statement "local_58 = local_60;" (assignment_expression "local_58 = local_60" identifier = identifier) ;) comment (expression_statement "FUN_00171d10(param_1 + 0xb0,&local_68);" (call_expression "FUN_00171d10(param_1 + 0xb0,&local_68)" identifier (argument_list "(param_1 + 0xb0,&local_68)" ( (binary_expression "param_1 + 0xb0" identifier + number_literal) , (pointer_expression "&local_68" & identifier) ))) ;) (expression_statement "pppplVar7 = local_60;" (assignment_expression "pppplVar7 = local_60" identifier = identifier) ;) (for_statement "for (ppppplVar8 = (long *****)local_68; (long *****)pppplVar7 != ppppplVar8;\n      ppppplVar8 = ppppplVar8 + 5) {\n    if ((long *****)ppppplVar8[1] != ppppplVar8 + 3) {\n      FUN_002dac70();\n    }\n  }" for ( (assignment_expression "ppppplVar8 = (long *****)local_68" identifier = (cast_expression "(long *****)local_68" ( (type_descriptor "long *****" (sized_type_specifier "long" long) (abstract_pointer_declarator "*****" * (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *)))))) ) identifier)) ; (binary_expression "(long *****)pppplVar7 != ppppplVar8" (cast_expression "(long *****)pppplVar7" ( (type_descriptor "long *****" (sized_type_specifier "long" long) (abstract_pointer_declarator "*****" * (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *)))))) ) identifier) != identifier) ; (assignment_expression "ppppplVar8 = ppppplVar8 + 5" identifier = (binary_expression "ppppplVar8 + 5" identifier + number_literal)) ) (compound_statement "{\n    if ((long *****)ppppplVar8[1] != ppppplVar8 + 3) {\n      FUN_002dac70();\n    }\n  }" { (if_statement "if ((long *****)ppppplVar8[1] != ppppplVar8 + 3) {\n      FUN_002dac70();\n    }" if (parenthesized_expression "((long *****)ppppplVar8[1] != ppppplVar8 + 3)" ( (binary_expression "(long *****)ppppplVar8[1] != ppppplVar8 + 3" (cast_expression "(long *****)ppppplVar8[1]" ( (type_descriptor "long *****" (sized_type_specifier "long" long) (abstract_pointer_declarator "*****" * (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *)))))) ) (subscript_expression "ppppplVar8[1]" identifier [ number_literal ])) != (binary_expression "ppppplVar8 + 3" identifier + number_literal)) )) (compound_statement "{\n      FUN_002dac70();\n    }" { (expression_statement "FUN_002dac70();" (call_expression "FUN_002dac70()" identifier (argument_list "()" ( ))) ;) })) })) (if_statement "if ((long *****)local_68 != (long *****)0x0) {\n    FUN_002dac70(local_68);\n  }" if (parenthesized_expression "((long *****)local_68 != (long *****)0x0)" ( (binary_expression "(long *****)local_68 != (long *****)0x0" (cast_expression "(long *****)local_68" ( (type_descriptor "long *****" (sized_type_specifier "long" long) (abstract_pointer_declarator "*****" * (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *)))))) ) identifier) != (cast_expression "(long *****)0x0" ( (type_descriptor "long *****" (sized_type_specifier "long" long) (abstract_pointer_declarator "*****" * (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *)))))) ) number_literal)) )) (compound_statement "{\n    FUN_002dac70(local_68);\n  }" { (expression_statement "FUN_002dac70(local_68);" (call_expression "FUN_002dac70(local_68)" identifier (argument_list "(local_68)" ( identifier ))) ;) })) (if_statement "if (*param_2 != '\0') {\n    lVar12 = *(long *)(param_1 + 0xa0);\n    uVar3 = *(long *)(lVar12 + -0x10) - *(long *)(lVar12 + -0x18) >> 5;\n    uVar9 = uVar3 & 0xffffffff;\n    if ((int)uVar3 == 1) {\n      do {\n        local_68 = (long ****)&local_58;\n        sVar4 = strlen(param_2);\n        FUN_001665c0(&local_68,param_2,param_2 + sVar4);\n                    /* try { // try from 00173584 to 00173588 has its CatchHandler @ 001737cf */\n        FUN_0016f840(lVar12 + -0x18,&local_68);\n        if ((long *****)local_68 != &local_58) {\n          FUN_002dac70();\n        }\n        lVar12 = *(long *)(param_1 + 0xa0);\n        uVar6 = (int)uVar9 + 1;\n        uVar9 = (ulong)uVar6;\n        param_2 = param_2 + *(long *)(*(long *)(lVar12 + -0x10) + -0x18) + 1;\n        if (*param_2 == '\0') goto LAB_001735b7;\n      } while (uVar6 == (uint)(*(long *)(lVar12 + -0x10) - *(long *)(lVar12 + -0x18) >> 5));\n    }\n                    /* WARNING: Subroutine does not return */\n    FUN_0017c650("../../gold/dwarf_reader.cc",0x6c4,"read_header_tables");\n  }" if (parenthesized_expression "(*param_2 != '\0')" ( (binary_expression "*param_2 != '\0'" (pointer_expression "*param_2" * identifier) != (char_literal "'\0'" ' escape_sequence ')) )) (compound_statement "{\n    lVar12 = *(long *)(param_1 + 0xa0);\n    uVar3 = *(long *)(lVar12 + -0x10) - *(long *)(lVar12 + -0x18) >> 5;\n    uVar9 = uVar3 & 0xffffffff;\n    if ((int)uVar3 == 1) {\n      do {\n        local_68 = (long ****)&local_58;\n        sVar4 = strlen(param_2);\n        FUN_001665c0(&local_68,param_2,param_2 + sVar4);\n                    /* try { // try from 00173584 to 00173588 has its CatchHandler @ 001737cf */\n        FUN_0016f840(lVar12 + -0x18,&local_68);\n        if ((long *****)local_68 != &local_58) {\n          FUN_002dac70();\n        }\n        lVar12 = *(long *)(param_1 + 0xa0);\n        uVar6 = (int)uVar9 + 1;\n        uVar9 = (ulong)uVar6;\n        param_2 = param_2 + *(long *)(*(long *)(lVar12 + -0x10) + -0x18) + 1;\n        if (*param_2 == '\0') goto LAB_001735b7;\n      } while (uVar6 == (uint)(*(long *)(lVar12 + -0x10) - *(long *)(lVar12 + -0x18) >> 5));\n    }\n                    /* WARNING: Subroutine does not return */\n    FUN_0017c650("../../gold/dwarf_reader.cc",0x6c4,"read_header_tables");\n  }" { (expression_statement "lVar12 = *(long *)(param_1 + 0xa0);" (assignment_expression "lVar12 = *(long *)(param_1 + 0xa0)" identifier = (pointer_expression "*(long *)(param_1 + 0xa0)" * (cast_expression "(long *)(param_1 + 0xa0)" ( (type_descriptor "long *" (sized_type_specifier "long" long) (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0xa0)" ( (binary_expression "param_1 + 0xa0" identifier + number_literal) ))))) ;) (expression_statement "uVar3 = *(long *)(lVar12 + -0x10) - *(long *)(lVar12 + -0x18) >> 5;" (assignment_expression "uVar3 = *(long *)(lVar12 + -0x10) - *(long *)(lVar12 + -0x18) >> 5" identifier = (binary_expression "*(long *)(lVar12 + -0x10) - *(long *)(lVar12 + -0x18) >> 5" (binary_expression "*(long *)(lVar12 + -0x10) - *(long *)(lVar12 + -0x18)" (pointer_expression "*(long *)(lVar12 + -0x10)" * (cast_expression "(long *)(lVar12 + -0x10)" ( (type_descriptor "long *" (sized_type_specifier "long" long) (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(lVar12 + -0x10)" ( (binary_expression "lVar12 + -0x10" identifier + number_literal) )))) - (pointer_expression "*(long *)(lVar12 + -0x18)" * (cast_expression "(long *)(lVar12 + -0x18)" ( (type_descriptor "long *" (sized_type_specifier "long" long) (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(lVar12 + -0x18)" ( (binary_expression "lVar12 + -0x18" identifier + number_literal) ))))) >> number_literal)) ;) (expression_statement "uVar9 = uVar3 & 0xffffffff;" (assignment_expression "uVar9 = uVar3 & 0xffffffff" identifier = (binary_expression "uVar3 & 0xffffffff" identifier & number_literal)) ;) (if_statement "if ((int)uVar3 == 1) {\n      do {\n        local_68 = (long ****)&local_58;\n        sVar4 = strlen(param_2);\n        FUN_001665c0(&local_68,param_2,param_2 + sVar4);\n                    /* try { // try from 00173584 to 00173588 has its CatchHandler @ 001737cf */\n        FUN_0016f840(lVar12 + -0x18,&local_68);\n        if ((long *****)local_68 != &local_58) {\n          FUN_002dac70();\n        }\n        lVar12 = *(long *)(param_1 + 0xa0);\n        uVar6 = (int)uVar9 + 1;\n        uVar9 = (ulong)uVar6;\n        param_2 = param_2 + *(long *)(*(long *)(lVar12 + -0x10) + -0x18) + 1;\n        if (*param_2 == '\0') goto LAB_001735b7;\n      } while (uVar6 == (uint)(*(long *)(lVar12 + -0x10) - *(long *)(lVar12 + -0x18) >> 5));\n    }" if (parenthesized_expression "((int)uVar3 == 1)" ( (binary_expression "(int)uVar3 == 1" (cast_expression "(int)uVar3" ( (type_descriptor "int" primitive_type) ) identifier) == number_literal) )) (compound_statement "{\n      do {\n        local_68 = (long ****)&local_58;\n        sVar4 = strlen(param_2);\n        FUN_001665c0(&local_68,param_2,param_2 + sVar4);\n                    /* try { // try from 00173584 to 00173588 has its CatchHandler @ 001737cf */\n        FUN_0016f840(lVar12 + -0x18,&local_68);\n        if ((long *****)local_68 != &local_58) {\n          FUN_002dac70();\n        }\n        lVar12 = *(long *)(param_1 + 0xa0);\n        uVar6 = (int)uVar9 + 1;\n        uVar9 = (ulong)uVar6;\n        param_2 = param_2 + *(long *)(*(long *)(lVar12 + -0x10) + -0x18) + 1;\n        if (*param_2 == '\0') goto LAB_001735b7;\n      } while (uVar6 == (uint)(*(long *)(lVar12 + -0x10) - *(long *)(lVar12 + -0x18) >> 5));\n    }" { (do_statement "do {\n        local_68 = (long ****)&local_58;\n        sVar4 = strlen(param_2);\n        FUN_001665c0(&local_68,param_2,param_2 + sVar4);\n                    /* try { // try from 00173584 to 00173588 has its CatchHandler @ 001737cf */\n        FUN_0016f840(lVar12 + -0x18,&local_68);\n        if ((long *****)local_68 != &local_58) {\n          FUN_002dac70();\n        }\n        lVar12 = *(long *)(param_1 + 0xa0);\n        uVar6 = (int)uVar9 + 1;\n        uVar9 = (ulong)uVar6;\n        param_2 = param_2 + *(long *)(*(long *)(lVar12 + -0x10) + -0x18) + 1;\n        if (*param_2 == '\0') goto LAB_001735b7;\n      } while (uVar6 == (uint)(*(long *)(lVar12 + -0x10) - *(long *)(lVar12 + -0x18) >> 5));" do (compound_statement "{\n        local_68 = (long ****)&local_58;\n        sVar4 = strlen(param_2);\n        FUN_001665c0(&local_68,param_2,param_2 + sVar4);\n                    /* try { // try from 00173584 to 00173588 has its CatchHandler @ 001737cf */\n        FUN_0016f840(lVar12 + -0x18,&local_68);\n        if ((long *****)local_68 != &local_58) {\n          FUN_002dac70();\n        }\n        lVar12 = *(long *)(param_1 + 0xa0);\n        uVar6 = (int)uVar9 + 1;\n        uVar9 = (ulong)uVar6;\n        param_2 = param_2 + *(long *)(*(long *)(lVar12 + -0x10) + -0x18) + 1;\n        if (*param_2 == '\0') goto LAB_001735b7;\n      }" { (expression_statement "local_68 = (long ****)&local_58;" (assignment_expression "local_68 = (long ****)&local_58" identifier = (cast_expression "(long ****)&local_58" ( (type_descriptor "long ****" (sized_type_specifier "long" long) (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))))) ) (pointer_expression "&local_58" & identifier))) ;) (expression_statement "sVar4 = strlen(param_2);" (assignment_expression "sVar4 = strlen(param_2)" identifier = (call_expression "strlen(param_2)" identifier (argument_list "(param_2)" ( identifier )))) ;) (expression_statement "FUN_001665c0(&local_68,param_2,param_2 + sVar4);" (call_expression "FUN_001665c0(&local_68,param_2,param_2 + sVar4)" identifier (argument_list "(&local_68,param_2,param_2 + sVar4)" ( (pointer_expression "&local_68" & identifier) , identifier , (binary_expression "param_2 + sVar4" identifier + identifier) ))) ;) comment (expression_statement "FUN_0016f840(lVar12 + -0x18,&local_68);" (call_expression "FUN_0016f840(lVar12 + -0x18,&local_68)" identifier (argument_list "(lVar12 + -0x18,&local_68)" ( (binary_expression "lVar12 + -0x18" identifier + number_literal) , (pointer_expression "&local_68" & identifier) ))) ;) (if_statement "if ((long *****)local_68 != &local_58) {\n          FUN_002dac70();\n        }" if (parenthesized_expression "((long *****)local_68 != &local_58)" ( (binary_expression "(long *****)local_68 != &local_58" (cast_expression "(long *****)local_68" ( (type_descriptor "long *****" (sized_type_specifier "long" long) (abstract_pointer_declarator "*****" * (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *)))))) ) identifier) != (pointer_expression "&local_58" & identifier)) )) (compound_statement "{\n          FUN_002dac70();\n        }" { (expression_statement "FUN_002dac70();" (call_expression "FUN_002dac70()" identifier (argument_list "()" ( ))) ;) })) (expression_statement "lVar12 = *(long *)(param_1 + 0xa0);" (assignment_expression "lVar12 = *(long *)(param_1 + 0xa0)" identifier = (pointer_expression "*(long *)(param_1 + 0xa0)" * (cast_expression "(long *)(param_1 + 0xa0)" ( (type_descriptor "long *" (sized_type_specifier "long" long) (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0xa0)" ( (binary_expression "param_1 + 0xa0" identifier + number_literal) ))))) ;) (expression_statement "uVar6 = (int)uVar9 + 1;" (assignment_expression "uVar6 = (int)uVar9 + 1" identifier = (binary_expression "(int)uVar9 + 1" (cast_expression "(int)uVar9" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal)) ;) (expression_statement "uVar9 = (ulong)uVar6;" (assignment_expression "uVar9 = (ulong)uVar6" identifier = (cast_expression "(ulong)uVar6" ( (type_descriptor "ulong" type_identifier) ) identifier)) ;) (expression_statement "param_2 = param_2 + *(long *)(*(long *)(lVar12 + -0x10) + -0x18) + 1;" (assignment_expression "param_2 = param_2 + *(long *)(*(long *)(lVar12 + -0x10) + -0x18) + 1" identifier = (binary_expression "param_2 + *(long *)(*(long *)(lVar12 + -0x10) + -0x18) + 1" (binary_expression "param_2 + *(long *)(*(long *)(lVar12 + -0x10) + -0x18)" identifier + (pointer_expression "*(long *)(*(long *)(lVar12 + -0x10) + -0x18)" * (cast_expression "(long *)(*(long *)(lVar12 + -0x10) + -0x18)" ( (type_descriptor "long *" (sized_type_specifier "long" long) (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*(long *)(lVar12 + -0x10) + -0x18)" ( (binary_expression "*(long *)(lVar12 + -0x10) + -0x18" (pointer_expression "*(long *)(lVar12 + -0x10)" * (cast_expression "(long *)(lVar12 + -0x10)" ( (type_descriptor "long *" (sized_type_specifier "long" long) (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(lVar12 + -0x10)" ( (binary_expression "lVar12 + -0x10" identifier + number_literal) )))) + number_literal) ))))) + number_literal)) ;) (if_statement "if (*param_2 == '\0') goto LAB_001735b7;" if (parenthesized_expression "(*param_2 == '\0')" ( (binary_expression "*param_2 == '\0'" (pointer_expression "*param_2" * identifier) == (char_literal "'\0'" ' escape_sequence ')) )) (goto_statement "goto LAB_001735b7;" goto statement_identifier ;)) }) while (parenthesized_expression "(uVar6 == (uint)(*(long *)(lVar12 + -0x10) - *(long *)(lVar12 + -0x18) >> 5))" ( (binary_expression "uVar6 == (uint)(*(long *)(lVar12 + -0x10) - *(long *)(lVar12 + -0x18) >> 5)" identifier == (call_expression "(uint)(*(long *)(lVar12 + -0x10) - *(long *)(lVar12 + -0x18) >> 5)" (parenthesized_expression "(uint)" ( identifier )) (argument_list "(*(long *)(lVar12 + -0x10) - *(long *)(lVar12 + -0x18) >> 5)" ( (binary_expression "*(long *)(lVar12 + -0x10) - *(long *)(lVar12 + -0x18) >> 5" (binary_expression "*(long *)(lVar12 + -0x10) - *(long *)(lVar12 + -0x18)" (pointer_expression "*(long *)(lVar12 + -0x10)" * (cast_expression "(long *)(lVar12 + -0x10)" ( (type_descriptor "long *" (sized_type_specifier "long" long) (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(lVar12 + -0x10)" ( (binary_expression "lVar12 + -0x10" identifier + number_literal) )))) - (pointer_expression "*(long *)(lVar12 + -0x18)" * (cast_expression "(long *)(lVar12 + -0x18)" ( (type_descriptor "long *" (sized_type_specifier "long" long) (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(lVar12 + -0x18)" ( (binary_expression "lVar12 + -0x18" identifier + number_literal) ))))) >> number_literal) )))) )) ;) })) comment (expression_statement "FUN_0017c650("../../gold/dwarf_reader.cc",0x6c4,"read_header_tables");" (call_expression "FUN_0017c650("../../gold/dwarf_reader.cc",0x6c4,"read_header_tables")" identifier (argument_list "("../../gold/dwarf_reader.cc",0x6c4,"read_header_tables")" ( (string_literal ""../../gold/dwarf_reader.cc"" " string_content ") , number_literal , (string_literal ""read_header_tables"" " string_content ") ))) ;) })) (labeled_statement "LAB_001735b7:\n  pbVar10 = (byte *)(param_2 + 1);" statement_identifier : (expression_statement "pbVar10 = (byte *)(param_2 + 1);" (assignment_expression "pbVar10 = (byte *)(param_2 + 1)" identifier = (cast_expression "(byte *)(param_2 + 1)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_2 + 1)" ( (binary_expression "param_2 + 1" identifier + number_literal) )))) ;)) (if_statement "if (param_2[1] != '\0') {\n    iVar5 = 1;\n    __s = pbVar10;\n    do {\n      sVar4 = strlen((char *)__s);\n      pbVar11 = __s + sVar4 + 1;\n      bVar1 = *pbVar11;\n      uVar3 = (ulong)bVar1;\n      pbVar10 = pbVar11 + 1;\n      if ((char)bVar1 < '\0') {\n        uVar3 = FUN_001a3dc0(pbVar10,&local_70,bVar1);\n        pbVar10 = pbVar11 + local_70;\n      }\n      else {\n        local_70 = 1;\n      }\n      pbVar11 = pbVar10 + 1;\n      if ((ulong)(*(long *)(*(long *)(param_1 + 0xa0) + -0x10) -\n                  *(long *)(*(long *)(param_1 + 0xa0) + -0x18) >> 5) <= uVar3) {\n        uVar3 = 0;\n      }\n      if ((char)*pbVar10 < '\0') {\n        FUN_001a3dc0(pbVar11,&local_70);\n        pbVar11 = pbVar10 + local_70;\n        pbVar10 = pbVar11 + 1;\n        if ((char)*pbVar11 < '\0') goto LAB_0017374d;\nLAB_00173644:\n        local_70 = 1;\n      }\n      else {\n        pbVar10 = pbVar10 + 2;\n        local_70 = 1;\n        if (-1 < (char)*pbVar11) goto LAB_00173644;\nLAB_0017374d:\n        FUN_001a3dc0(pbVar10,&local_70);\n        pbVar10 = pbVar11 + local_70;\n      }\n      lVar12 = *(long *)(param_1 + 0xb8);\n      if (iVar5 != (int)(*(long *)(lVar12 + -0x10) - *(long *)(lVar12 + -0x18) >> 3) * -0x33333333)\n      {\n                    /* WARNING: Subroutine does not return */\n        FUN_0017c650("../../gold/dwarf_reader.cc",0x6e4,"read_header_tables");\n      }\n      local_68 = (long ****)CONCAT44(local_68._4_4_,(int)uVar3);\n      local_60 = local_50;\n      sVar4 = strlen((char *)__s);\n      FUN_001665c0(&local_60,__s,__s + sVar4);\n                    /* try { // try from 001736a4 to 001736a8 has its CatchHandler @ 00173809 */\n      FUN_00172000(lVar12 + -0x18,&local_68);\n      if (local_60 != local_50) {\n        FUN_002dac70();\n      }\n      iVar5 = iVar5 + 1;\n      __s = pbVar10;\n    } while (*pbVar10 != 0);\n  }" if (parenthesized_expression "(param_2[1] != '\0')" ( (binary_expression "param_2[1] != '\0'" (subscript_expression "param_2[1]" identifier [ number_literal ]) != (char_literal "'\0'" ' escape_sequence ')) )) (compound_statement "{\n    iVar5 = 1;\n    __s = pbVar10;\n    do {\n      sVar4 = strlen((char *)__s);\n      pbVar11 = __s + sVar4 + 1;\n      bVar1 = *pbVar11;\n      uVar3 = (ulong)bVar1;\n      pbVar10 = pbVar11 + 1;\n      if ((char)bVar1 < '\0') {\n        uVar3 = FUN_001a3dc0(pbVar10,&local_70,bVar1);\n        pbVar10 = pbVar11 + local_70;\n      }\n      else {\n        local_70 = 1;\n      }\n      pbVar11 = pbVar10 + 1;\n      if ((ulong)(*(long *)(*(long *)(param_1 + 0xa0) + -0x10) -\n                  *(long *)(*(long *)(param_1 + 0xa0) + -0x18) >> 5) <= uVar3) {\n        uVar3 = 0;\n      }\n      if ((char)*pbVar10 < '\0') {\n        FUN_001a3dc0(pbVar11,&local_70);\n        pbVar11 = pbVar10 + local_70;\n        pbVar10 = pbVar11 + 1;\n        if ((char)*pbVar11 < '\0') goto LAB_0017374d;\nLAB_00173644:\n        local_70 = 1;\n      }\n      else {\n        pbVar10 = pbVar10 + 2;\n        local_70 = 1;\n        if (-1 < (char)*pbVar11) goto LAB_00173644;\nLAB_0017374d:\n        FUN_001a3dc0(pbVar10,&local_70);\n        pbVar10 = pbVar11 + local_70;\n      }\n      lVar12 = *(long *)(param_1 + 0xb8);\n      if (iVar5 != (int)(*(long *)(lVar12 + -0x10) - *(long *)(lVar12 + -0x18) >> 3) * -0x33333333)\n      {\n                    /* WARNING: Subroutine does not return */\n        FUN_0017c650("../../gold/dwarf_reader.cc",0x6e4,"read_header_tables");\n      }\n      local_68 = (long ****)CONCAT44(local_68._4_4_,(int)uVar3);\n      local_60 = local_50;\n      sVar4 = strlen((char *)__s);\n      FUN_001665c0(&local_60,__s,__s + sVar4);\n                    /* try { // try from 001736a4 to 001736a8 has its CatchHandler @ 00173809 */\n      FUN_00172000(lVar12 + -0x18,&local_68);\n      if (local_60 != local_50) {\n        FUN_002dac70();\n      }\n      iVar5 = iVar5 + 1;\n      __s = pbVar10;\n    } while (*pbVar10 != 0);\n  }" { (expression_statement "iVar5 = 1;" (assignment_expression "iVar5 = 1" identifier = number_literal) ;) (expression_statement "__s = pbVar10;" (assignment_expression "__s = pbVar10" identifier = identifier) ;) (do_statement "do {\n      sVar4 = strlen((char *)__s);\n      pbVar11 = __s + sVar4 + 1;\n      bVar1 = *pbVar11;\n      uVar3 = (ulong)bVar1;\n      pbVar10 = pbVar11 + 1;\n      if ((char)bVar1 < '\0') {\n        uVar3 = FUN_001a3dc0(pbVar10,&local_70,bVar1);\n        pbVar10 = pbVar11 + local_70;\n      }\n      else {\n        local_70 = 1;\n      }\n      pbVar11 = pbVar10 + 1;\n      if ((ulong)(*(long *)(*(long *)(param_1 + 0xa0) + -0x10) -\n                  *(long *)(*(long *)(param_1 + 0xa0) + -0x18) >> 5) <= uVar3) {\n        uVar3 = 0;\n      }\n      if ((char)*pbVar10 < '\0') {\n        FUN_001a3dc0(pbVar11,&local_70);\n        pbVar11 = pbVar10 + local_70;\n        pbVar10 = pbVar11 + 1;\n        if ((char)*pbVar11 < '\0') goto LAB_0017374d;\nLAB_00173644:\n        local_70 = 1;\n      }\n      else {\n        pbVar10 = pbVar10 + 2;\n        local_70 = 1;\n        if (-1 < (char)*pbVar11) goto LAB_00173644;\nLAB_0017374d:\n        FUN_001a3dc0(pbVar10,&local_70);\n        pbVar10 = pbVar11 + local_70;\n      }\n      lVar12 = *(long *)(param_1 + 0xb8);\n      if (iVar5 != (int)(*(long *)(lVar12 + -0x10) - *(long *)(lVar12 + -0x18) >> 3) * -0x33333333)\n      {\n                    /* WARNING: Subroutine does not return */\n        FUN_0017c650("../../gold/dwarf_reader.cc",0x6e4,"read_header_tables");\n      }\n      local_68 = (long ****)CONCAT44(local_68._4_4_,(int)uVar3);\n      local_60 = local_50;\n      sVar4 = strlen((char *)__s);\n      FUN_001665c0(&local_60,__s,__s + sVar4);\n                    /* try { // try from 001736a4 to 001736a8 has its CatchHandler @ 00173809 */\n      FUN_00172000(lVar12 + -0x18,&local_68);\n      if (local_60 != local_50) {\n        FUN_002dac70();\n      }\n      iVar5 = iVar5 + 1;\n      __s = pbVar10;\n    } while (*pbVar10 != 0);" do (compound_statement "{\n      sVar4 = strlen((char *)__s);\n      pbVar11 = __s + sVar4 + 1;\n      bVar1 = *pbVar11;\n      uVar3 = (ulong)bVar1;\n      pbVar10 = pbVar11 + 1;\n      if ((char)bVar1 < '\0') {\n        uVar3 = FUN_001a3dc0(pbVar10,&local_70,bVar1);\n        pbVar10 = pbVar11 + local_70;\n      }\n      else {\n        local_70 = 1;\n      }\n      pbVar11 = pbVar10 + 1;\n      if ((ulong)(*(long *)(*(long *)(param_1 + 0xa0) + -0x10) -\n                  *(long *)(*(long *)(param_1 + 0xa0) + -0x18) >> 5) <= uVar3) {\n        uVar3 = 0;\n      }\n      if ((char)*pbVar10 < '\0') {\n        FUN_001a3dc0(pbVar11,&local_70);\n        pbVar11 = pbVar10 + local_70;\n        pbVar10 = pbVar11 + 1;\n        if ((char)*pbVar11 < '\0') goto LAB_0017374d;\nLAB_00173644:\n        local_70 = 1;\n      }\n      else {\n        pbVar10 = pbVar10 + 2;\n        local_70 = 1;\n        if (-1 < (char)*pbVar11) goto LAB_00173644;\nLAB_0017374d:\n        FUN_001a3dc0(pbVar10,&local_70);\n        pbVar10 = pbVar11 + local_70;\n      }\n      lVar12 = *(long *)(param_1 + 0xb8);\n      if (iVar5 != (int)(*(long *)(lVar12 + -0x10) - *(long *)(lVar12 + -0x18) >> 3) * -0x33333333)\n      {\n                    /* WARNING: Subroutine does not return */\n        FUN_0017c650("../../gold/dwarf_reader.cc",0x6e4,"read_header_tables");\n      }\n      local_68 = (long ****)CONCAT44(local_68._4_4_,(int)uVar3);\n      local_60 = local_50;\n      sVar4 = strlen((char *)__s);\n      FUN_001665c0(&local_60,__s,__s + sVar4);\n                    /* try { // try from 001736a4 to 001736a8 has its CatchHandler @ 00173809 */\n      FUN_00172000(lVar12 + -0x18,&local_68);\n      if (local_60 != local_50) {\n        FUN_002dac70();\n      }\n      iVar5 = iVar5 + 1;\n      __s = pbVar10;\n    }" { (expression_statement "sVar4 = strlen((char *)__s);" (assignment_expression "sVar4 = strlen((char *)__s)" identifier = (call_expression "strlen((char *)__s)" identifier (argument_list "((char *)__s)" ( (cast_expression "(char *)__s" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) identifier) )))) ;) (expression_statement "pbVar11 = __s + sVar4 + 1;" (assignment_expression "pbVar11 = __s + sVar4 + 1" identifier = (binary_expression "__s + sVar4 + 1" (binary_expression "__s + sVar4" identifier + identifier) + number_literal)) ;) (expression_statement "bVar1 = *pbVar11;" (assignment_expression "bVar1 = *pbVar11" identifier = (pointer_expression "*pbVar11" * identifier)) ;) (expression_statement "uVar3 = (ulong)bVar1;" (assignment_expression "uVar3 = (ulong)bVar1" identifier = (cast_expression "(ulong)bVar1" ( (type_descriptor "ulong" type_identifier) ) identifier)) ;) (expression_statement "pbVar10 = pbVar11 + 1;" (assignment_expression "pbVar10 = pbVar11 + 1" identifier = (binary_expression "pbVar11 + 1" identifier + number_literal)) ;) (if_statement "if ((char)bVar1 < '\0') {\n        uVar3 = FUN_001a3dc0(pbVar10,&local_70,bVar1);\n        pbVar10 = pbVar11 + local_70;\n      }\n      else {\n        local_70 = 1;\n      }" if (parenthesized_expression "((char)bVar1 < '\0')" ( (binary_expression "(char)bVar1 < '\0'" (cast_expression "(char)bVar1" ( (type_descriptor "char" primitive_type) ) identifier) < (char_literal "'\0'" ' escape_sequence ')) )) (compound_statement "{\n        uVar3 = FUN_001a3dc0(pbVar10,&local_70,bVar1);\n        pbVar10 = pbVar11 + local_70;\n      }" { (expression_statement "uVar3 = FUN_001a3dc0(pbVar10,&local_70,bVar1);" (assignment_expression "uVar3 = FUN_001a3dc0(pbVar10,&local_70,bVar1)" identifier = (call_expression "FUN_001a3dc0(pbVar10,&local_70,bVar1)" identifier (argument_list "(pbVar10,&local_70,bVar1)" ( identifier , (pointer_expression "&local_70" & identifier) , identifier )))) ;) (expression_statement "pbVar10 = pbVar11 + local_70;" (assignment_expression "pbVar10 = pbVar11 + local_70" identifier = (binary_expression "pbVar11 + local_70" identifier + identifier)) ;) }) (else_clause "else {\n        local_70 = 1;\n      }" else (compound_statement "{\n        local_70 = 1;\n      }" { (expression_statement "local_70 = 1;" (assignment_expression "local_70 = 1" identifier = number_literal) ;) }))) (expression_statement "pbVar11 = pbVar10 + 1;" (assignment_expression "pbVar11 = pbVar10 + 1" identifier = (binary_expression "pbVar10 + 1" identifier + number_literal)) ;) (if_statement "if ((ulong)(*(long *)(*(long *)(param_1 + 0xa0) + -0x10) -\n                  *(long *)(*(long *)(param_1 + 0xa0) + -0x18) >> 5) <= uVar3) {\n        uVar3 = 0;\n      }" if (parenthesized_expression "((ulong)(*(long *)(*(long *)(param_1 + 0xa0) + -0x10) -\n                  *(long *)(*(long *)(param_1 + 0xa0) + -0x18) >> 5) <= uVar3)" ( (binary_expression "(ulong)(*(long *)(*(long *)(param_1 + 0xa0) + -0x10) -\n                  *(long *)(*(long *)(param_1 + 0xa0) + -0x18) >> 5) <= uVar3" (call_expression "(ulong)(*(long *)(*(long *)(param_1 + 0xa0) + -0x10) -\n                  *(long *)(*(long *)(param_1 + 0xa0) + -0x18) >> 5)" (parenthesized_expression "(ulong)" ( identifier )) (argument_list "(*(long *)(*(long *)(param_1 + 0xa0) + -0x10) -\n                  *(long *)(*(long *)(param_1 + 0xa0) + -0x18) >> 5)" ( (binary_expression "*(long *)(*(long *)(param_1 + 0xa0) + -0x10) -\n                  *(long *)(*(long *)(param_1 + 0xa0) + -0x18) >> 5" (binary_expression "*(long *)(*(long *)(param_1 + 0xa0) + -0x10) -\n                  *(long *)(*(long *)(param_1 + 0xa0) + -0x18)" (pointer_expression "*(long *)(*(long *)(param_1 + 0xa0) + -0x10)" * (cast_expression "(long *)(*(long *)(param_1 + 0xa0) + -0x10)" ( (type_descriptor "long *" (sized_type_specifier "long" long) (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*(long *)(param_1 + 0xa0) + -0x10)" ( (binary_expression "*(long *)(param_1 + 0xa0) + -0x10" (pointer_expression "*(long *)(param_1 + 0xa0)" * (cast_expression "(long *)(param_1 + 0xa0)" ( (type_descriptor "long *" (sized_type_specifier "long" long) (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0xa0)" ( (binary_expression "param_1 + 0xa0" identifier + number_literal) )))) + number_literal) )))) - (pointer_expression "*(long *)(*(long *)(param_1 + 0xa0) + -0x18)" * (cast_expression "(long *)(*(long *)(param_1 + 0xa0) + -0x18)" ( (type_descriptor "long *" (sized_type_specifier "long" long) (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*(long *)(param_1 + 0xa0) + -0x18)" ( (binary_expression "*(long *)(param_1 + 0xa0) + -0x18" (pointer_expression "*(long *)(param_1 + 0xa0)" * (cast_expression "(long *)(param_1 + 0xa0)" ( (type_descriptor "long *" (sized_type_specifier "long" long) (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0xa0)" ( (binary_expression "param_1 + 0xa0" identifier + number_literal) )))) + number_literal) ))))) >> number_literal) ))) <= identifier) )) (compound_statement "{\n        uVar3 = 0;\n      }" { (expression_statement "uVar3 = 0;" (assignment_expression "uVar3 = 0" identifier = number_literal) ;) })) (if_statement "if ((char)*pbVar10 < '\0') {\n        FUN_001a3dc0(pbVar11,&local_70);\n        pbVar11 = pbVar10 + local_70;\n        pbVar10 = pbVar11 + 1;\n        if ((char)*pbVar11 < '\0') goto LAB_0017374d;\nLAB_00173644:\n        local_70 = 1;\n      }\n      else {\n        pbVar10 = pbVar10 + 2;\n        local_70 = 1;\n        if (-1 < (char)*pbVar11) goto LAB_00173644;\nLAB_0017374d:\n        FUN_001a3dc0(pbVar10,&local_70);\n        pbVar10 = pbVar11 + local_70;\n      }" if (parenthesized_expression "((char)*pbVar10 < '\0')" ( (binary_expression "(char)*pbVar10 < '\0'" (cast_expression "(char)*pbVar10" ( (type_descriptor "char" primitive_type) ) (pointer_expression "*pbVar10" * identifier)) < (char_literal "'\0'" ' escape_sequence ')) )) (compound_statement "{\n        FUN_001a3dc0(pbVar11,&local_70);\n        pbVar11 = pbVar10 + local_70;\n        pbVar10 = pbVar11 + 1;\n        if ((char)*pbVar11 < '\0') goto LAB_0017374d;\nLAB_00173644:\n        local_70 = 1;\n      }" { (expression_statement "FUN_001a3dc0(pbVar11,&local_70);" (call_expression "FUN_001a3dc0(pbVar11,&local_70)" identifier (argument_list "(pbVar11,&local_70)" ( identifier , (pointer_expression "&local_70" & identifier) ))) ;) (expression_statement "pbVar11 = pbVar10 + local_70;" (assignment_expression "pbVar11 = pbVar10 + local_70" identifier = (binary_expression "pbVar10 + local_70" identifier + identifier)) ;) (expression_statement "pbVar10 = pbVar11 + 1;" (assignment_expression "pbVar10 = pbVar11 + 1" identifier = (binary_expression "pbVar11 + 1" identifier + number_literal)) ;) (if_statement "if ((char)*pbVar11 < '\0') goto LAB_0017374d;" if (parenthesized_expression "((char)*pbVar11 < '\0')" ( (binary_expression "(char)*pbVar11 < '\0'" (cast_expression "(char)*pbVar11" ( (type_descriptor "char" primitive_type) ) (pointer_expression "*pbVar11" * identifier)) < (char_literal "'\0'" ' escape_sequence ')) )) (goto_statement "goto LAB_0017374d;" goto statement_identifier ;)) (labeled_statement "LAB_00173644:\n        local_70 = 1;" statement_identifier : (expression_statement "local_70 = 1;" (assignment_expression "local_70 = 1" identifier = number_literal) ;)) }) (else_clause "else {\n        pbVar10 = pbVar10 + 2;\n        local_70 = 1;\n        if (-1 < (char)*pbVar11) goto LAB_00173644;\nLAB_0017374d:\n        FUN_001a3dc0(pbVar10,&local_70);\n        pbVar10 = pbVar11 + local_70;\n      }" else (compound_statement "{\n        pbVar10 = pbVar10 + 2;\n        local_70 = 1;\n        if (-1 < (char)*pbVar11) goto LAB_00173644;\nLAB_0017374d:\n        FUN_001a3dc0(pbVar10,&local_70);\n        pbVar10 = pbVar11 + local_70;\n      }" { (expression_statement "pbVar10 = pbVar10 + 2;" (assignment_expression "pbVar10 = pbVar10 + 2" identifier = (binary_expression "pbVar10 + 2" identifier + number_literal)) ;) (expression_statement "local_70 = 1;" (assignment_expression "local_70 = 1" identifier = number_literal) ;) (if_statement "if (-1 < (char)*pbVar11) goto LAB_00173644;" if (parenthesized_expression "(-1 < (char)*pbVar11)" ( (binary_expression "-1 < (char)*pbVar11" number_literal < (cast_expression "(char)*pbVar11" ( (type_descriptor "char" primitive_type) ) (pointer_expression "*pbVar11" * identifier))) )) (goto_statement "goto LAB_00173644;" goto statement_identifier ;)) (labeled_statement "LAB_0017374d:\n        FUN_001a3dc0(pbVar10,&local_70);" statement_identifier : (expression_statement "FUN_001a3dc0(pbVar10,&local_70);" (call_expression "FUN_001a3dc0(pbVar10,&local_70)" identifier (argument_list "(pbVar10,&local_70)" ( identifier , (pointer_expression "&local_70" & identifier) ))) ;)) (expression_statement "pbVar10 = pbVar11 + local_70;" (assignment_expression "pbVar10 = pbVar11 + local_70" identifier = (binary_expression "pbVar11 + local_70" identifier + identifier)) ;) }))) (expression_statement "lVar12 = *(long *)(param_1 + 0xb8);" (assignment_expression "lVar12 = *(long *)(param_1 + 0xb8)" identifier = (pointer_expression "*(long *)(param_1 + 0xb8)" * (cast_expression "(long *)(param_1 + 0xb8)" ( (type_descriptor "long *" (sized_type_specifier "long" long) (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0xb8)" ( (binary_expression "param_1 + 0xb8" identifier + number_literal) ))))) ;) (if_statement "if (iVar5 != (int)(*(long *)(lVar12 + -0x10) - *(long *)(lVar12 + -0x18) >> 3) * -0x33333333)\n      {\n                    /* WARNING: Subroutine does not return */\n        FUN_0017c650("../../gold/dwarf_reader.cc",0x6e4,"read_header_tables");\n      }" if (parenthesized_expression "(iVar5 != (int)(*(long *)(lVar12 + -0x10) - *(long *)(lVar12 + -0x18) >> 3) * -0x33333333)" ( (binary_expression "iVar5 != (int)(*(long *)(lVar12 + -0x10) - *(long *)(lVar12 + -0x18) >> 3) * -0x33333333" identifier != (binary_expression "(int)(*(long *)(lVar12 + -0x10) - *(long *)(lVar12 + -0x18) >> 3) * -0x33333333" (cast_expression "(int)(*(long *)(lVar12 + -0x10) - *(long *)(lVar12 + -0x18) >> 3)" ( (type_descriptor "int" primitive_type) ) (parenthesized_expression "(*(long *)(lVar12 + -0x10) - *(long *)(lVar12 + -0x18) >> 3)" ( (binary_expression "*(long *)(lVar12 + -0x10) - *(long *)(lVar12 + -0x18) >> 3" (binary_expression "*(long *)(lVar12 + -0x10) - *(long *)(lVar12 + -0x18)" (pointer_expression "*(long *)(lVar12 + -0x10)" * (cast_expression "(long *)(lVar12 + -0x10)" ( (type_descriptor "long *" (sized_type_specifier "long" long) (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(lVar12 + -0x10)" ( (binary_expression "lVar12 + -0x10" identifier + number_literal) )))) - (pointer_expression "*(long *)(lVar12 + -0x18)" * (cast_expression "(long *)(lVar12 + -0x18)" ( (type_descriptor "long *" (sized_type_specifier "long" long) (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(lVar12 + -0x18)" ( (binary_expression "lVar12 + -0x18" identifier + number_literal) ))))) >> number_literal) ))) * number_literal)) )) (compound_statement "{\n                    /* WARNING: Subroutine does not return */\n        FUN_0017c650("../../gold/dwarf_reader.cc",0x6e4,"read_header_tables");\n      }" { comment (expression_statement "FUN_0017c650("../../gold/dwarf_reader.cc",0x6e4,"read_header_tables");" (call_expression "FUN_0017c650("../../gold/dwarf_reader.cc",0x6e4,"read_header_tables")" identifier (argument_list "("../../gold/dwarf_reader.cc",0x6e4,"read_header_tables")" ( (string_literal ""../../gold/dwarf_reader.cc"" " string_content ") , number_literal , (string_literal ""read_header_tables"" " string_content ") ))) ;) })) (expression_statement "local_68 = (long ****)CONCAT44(local_68._4_4_,(int)uVar3);" (assignment_expression "local_68 = (long ****)CONCAT44(local_68._4_4_,(int)uVar3)" identifier = (cast_expression "(long ****)CONCAT44(local_68._4_4_,(int)uVar3)" ( (type_descriptor "long ****" (sized_type_specifier "long" long) (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))))) ) (call_expression "CONCAT44(local_68._4_4_,(int)uVar3)" identifier (argument_list "(local_68._4_4_,(int)uVar3)" ( (field_expression "local_68._4_4_" identifier . field_identifier) , (cast_expression "(int)uVar3" ( (type_descriptor "int" primitive_type) ) identifier) ))))) ;) (expression_statement "local_60 = local_50;" (assignment_expression "local_60 = local_50" identifier = identifier) ;) (expression_statement "sVar4 = strlen((char *)__s);" (assignment_expression "sVar4 = strlen((char *)__s)" identifier = (call_expression "strlen((char *)__s)" identifier (argument_list "((char *)__s)" ( (cast_expression "(char *)__s" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) identifier) )))) ;) (expression_statement "FUN_001665c0(&local_60,__s,__s + sVar4);" (call_expression "FUN_001665c0(&local_60,__s,__s + sVar4)" identifier (argument_list "(&local_60,__s,__s + sVar4)" ( (pointer_expression "&local_60" & identifier) , identifier , (binary_expression "__s + sVar4" identifier + identifier) ))) ;) comment (expression_statement "FUN_00172000(lVar12 + -0x18,&local_68);" (call_expression "FUN_00172000(lVar12 + -0x18,&local_68)" identifier (argument_list "(lVar12 + -0x18,&local_68)" ( (binary_expression "lVar12 + -0x18" identifier + number_literal) , (pointer_expression "&local_68" & identifier) ))) ;) (if_statement "if (local_60 != local_50) {\n        FUN_002dac70();\n      }" if (parenthesized_expression "(local_60 != local_50)" ( (binary_expression "local_60 != local_50" identifier != identifier) )) (compound_statement "{\n        FUN_002dac70();\n      }" { (expression_statement "FUN_002dac70();" (call_expression "FUN_002dac70()" identifier (argument_list "()" ( ))) ;) })) (expression_statement "iVar5 = iVar5 + 1;" (assignment_expression "iVar5 = iVar5 + 1" identifier = (binary_expression "iVar5 + 1" identifier + number_literal)) ;) (expression_statement "__s = pbVar10;" (assignment_expression "__s = pbVar10" identifier = identifier) ;) }) while (parenthesized_expression "(*pbVar10 != 0)" ( (binary_expression "*pbVar10 != 0" (pointer_expression "*pbVar10" * identifier) != number_literal) )) ;) })) (return_statement "return pbVar10 + 1;" return (binary_expression "pbVar10 + 1" identifier + number_literal) ;) })))
(translation_unit "/* DWARF original prototype: uchar * read_header_tables(Sized_dwarf_line_info<64,_false> * this,\n   uchar * lineptr) */\n\nuchar * __thiscall\ngold::Sized_dwarf_line_info<64,_false>::read_header_tables\n          (Sized_dwarf_line_info<64,_false> *this,uchar *lineptr)\n\n{\n  pointer pvVar1;\n  pointer pbVar2;\n  pointer pvVar3;\n  _Alloc_hider _Var4;\n  ulong uVar5;\n  size_t sVar6;\n  byte bVar7;\n  int iVar8;\n  uint uVar9;\n  size_type *psVar10;\n  ulong uVar11;\n  byte *pbVar12;\n  byte *pbVar13;\n  pointer pvVar14;\n  byte *__s;\n  size_t len;\n  size_type *local_68;\n  basic_string<char,_std::char_traits<char>,_std::allocator<char>_> local_60;\n  \n  pvVar14 = (this->directories_).\n            super__Vector_base<std::vector<std::__cxx11::basic_string<char,_std::char_traits<char>,_std::allocator<char>_>,_std::allocator<std::__cxx11::basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_>_>,_std::allocator<std::vector<std::__cxx11::basic_string<char,_std::char_traits<char>,_std::allocator<char>_>,_std::allocator<std::__cxx11::basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_>_>_>_>\n            ._M_impl._M_finish;\n  pvVar1 = (this->directories_).\n           super__Vector_base<std::vector<std::__cxx11::basic_string<char,_std::char_traits<char>,_std::allocator<char>_>,_std::allocator<std::__cxx11::basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_>_>,_std::allocator<std::vector<std::__cxx11::basic_string<char,_std::char_traits<char>,_std::allocator<char>_>,_std::allocator<std::__cxx11::basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_>_>_>_>\n           ._M_impl._M_start;\n  iVar8 = this->current_header_index_ + 1;\n  this->current_header_index_ = iVar8;\n  if (iVar8 != (int)((long)pvVar14 - (long)pvVar1 >> 3) * -0x55555555) {\n                    /* WARNING: Subroutine does not return */\n    do_gold_unreachable("../../gold/dwarf_reader.cc",0x6b6,"read_header_tables");\n  }\n  if (iVar8 != (int)((long)(this->files_).\n                           super__Vector_base<std::vector<std::pair<int,_std::__cxx11::basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_>,_std::allocator<std::pair<int,_std::__cxx11::basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_>_>_>,_std::allocator<std::vector<std::pair<int,_std::__cxx11::basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_>,_std::allocator<std::pair<int,_std::__cxx11::basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_>_>_>_>_>\n                           ._M_impl._M_finish -\n                     (long)(this->files_).\n                           super__Vector_base<std::vector<std::pair<int,_std::__cxx11::basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_>,_std::allocator<std::pair<int,_std::__cxx11::basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_>_>_>,_std::allocator<std::vector<std::pair<int,_std::__cxx11::basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_>,_std::allocator<std::pair<int,_std::__cxx11::basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_>_>_>_>_>\n                           ._M_impl._M_start >> 3) * -0x55555555) {\n                    /* WARNING: Subroutine does not return */\n    do_gold_unreachable("../../gold/dwarf_reader.cc",0x6b8,"read_header_tables");\n  }\n  local_68 = (size_type *)0x0;\n  local_60._M_dataplus._M_p = (pointer)0x0;\n  local_60._M_string_length = 0;\n  local_68 = (size_type *)operator_new(0x20);\n  ((long *)local_68)[1] = 0;\n  local_60._M_dataplus._M_p = (pointer)((long *)local_68 + 4);\n  *local_68 = (size_type)((long *)local_68 + 2);\n  *(undefined1 *)((long *)local_68 + 2) = 0;\n  local_60._M_string_length = (size_type)local_60._M_dataplus._M_p;\n                    /* try { // try from 00173433 to 00173437 has its CatchHandler @ 00173804 */\n  std::\n  vector<std::vector<std::__cxx11::basic_string<char,_std::char_traits<char>,_std::allocator<char>_>,_std::allocator<std::__cxx11::basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_>_>,_std::allocator<std::vector<std::__cxx11::basic_string<char,_std::char_traits<char>,_std::allocator<char>_>,_std::allocator<std::__cxx11::basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_>_>_>_>\n  ::\n  emplace_back<std::vector<std::__cxx11::basic_string<char,_std::char_traits<char>,_std::allocator<char>_>,_std::allocator<std::__cxx11::basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_>_>_>\n            (&this->directories_,\n             (vector<std::__cxx11::basic_string<char,_std::char_traits<char>,_std::allocator<char>_>,_std::allocator<std::__cxx11::basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_>_>\n              *)&local_68);\n  _Var4._M_p = local_60._M_dataplus._M_p;\n  for (psVar10 = local_68; (size_type *)_Var4._M_p != psVar10;\n      psVar10 = (size_type *)((long *)psVar10 + 4)) {\n    if ((long *)*psVar10 != (long *)psVar10 + 2) {\n      operator_delete((long *)*psVar10);\n    }\n  }\n  if (local_68 != (size_type *)0x0) {\n    operator_delete(local_68);\n  }\n  local_68 = (size_type *)0x0;\n  local_60._M_dataplus._M_p = (pointer)0x0;\n  local_60._M_string_length = 0;\n  local_68 = (size_type *)operator_new(0x28);\n  *(undefined4 *)local_68 = 0;\n  local_60._M_dataplus._M_p = (pointer)(local_68 + 5);\n  ((anon_union_16_2_edb7204a_for_basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_9\n    *)(local_68 + 1))->_M_allocated_capacity = (size_type)(local_68 + 3);\n  local_68[2] = 0;\n  *(undefined1 *)(local_68 + 3) = 0;\n  local_60._M_string_length = (size_type)local_60._M_dataplus._M_p;\n                    /* try { // try from 001734d9 to 001734dd has its CatchHandler @ 001737d4 */\n  std::\n  vector<std::vector<std::pair<int,_std::__cxx11::basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_>,_std::allocator<std::pair<int,_std::__cxx11::basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_>_>_>,_std::allocator<std::vector<std::pair<int,_std::__cxx11::basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_>,_std::allocator<std::pair<int,_std::__cxx11::basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_>_>_>_>_>\n  ::\n  emplace_back<std::vector<std::pair<int,_std::__cxx11::basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_>,_std::allocator<std::pair<int,_std::__cxx11::basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_>_>_>_>\n            (&this->files_,\n             (vector<std::pair<int,_std::__cxx11::basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_>,_std::allocator<std::pair<int,_std::__cxx11::basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_>_>_>\n              *)&local_68);\n  _Var4._M_p = local_60._M_dataplus._M_p;\n  for (psVar10 = local_68; (size_type *)_Var4._M_p != psVar10; psVar10 = psVar10 + 5) {\n    if ((size_type *)\n        ((anon_union_16_2_edb7204a_for_basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_9\n          *)(psVar10 + 1))->_M_allocated_capacity != psVar10 + 3) {\n      operator_delete((undefined4 *)\n                      ((anon_union_16_2_edb7204a_for_basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_9\n                        *)(psVar10 + 1))->_M_allocated_capacity);\n    }\n  }\n  if (local_68 != (size_type *)0x0) {\n    operator_delete(local_68);\n  }\n  if (*lineptr != '\0') {\n    pvVar14 = (this->directories_).\n              super__Vector_base<std::vector<std::__cxx11::basic_string<char,_std::char_traits<char>,_std::allocator<char>_>,_std::allocator<std::__cxx11::basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_>_>,_std::allocator<std::vector<std::__cxx11::basic_string<char,_std::char_traits<char>,_std::allocator<char>_>,_std::allocator<std::__cxx11::basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_>_>_>_>\n              ._M_impl._M_finish;\n    uVar5 = (long)pvVar14[-1].\n                  super__Vector_base<std::__cxx11::basic_string<char,_std::char_traits<char>,_std::allocator<char>_>,_std::allocator<std::__cxx11::basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_>_>\n                  ._M_impl._M_finish -\n            (long)pvVar14[-1].\n                  super__Vector_base<std::__cxx11::basic_string<char,_std::char_traits<char>,_std::allocator<char>_>,_std::allocator<std::__cxx11::basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_>_>\n                  ._M_impl._M_start >> 5;\n    uVar11 = uVar5 & 0xffffffff;\n    if ((int)uVar5 == 1) {\n      do {\n        local_68 = &local_60._M_string_length;\n        sVar6 = strlen((char *)lineptr);\n        std::__cxx11::basic_string<char,_std::char_traits<char>,_std::allocator<char>_>::\n        _M_construct<char_const*>\n                  ((basic_string<char,_std::char_traits<char>,_std::allocator<char>_> *)&local_68,\n                   lineptr,lineptr + sVar6);\n                    /* try { // try from 00173584 to 00173588 has its CatchHandler @ 001737cf */\n        std::\n        vector<std::__cxx11::basic_string<char,_std::char_traits<char>,_std::allocator<char>_>,_std::allocator<std::__cxx11::basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_>_>\n        ::\n        emplace_back<std::__cxx11::basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_>\n                  (pvVar14 + -1,\n                   (basic_string<char,_std::char_traits<char>,_std::allocator<char>_> *)&local_68);\n        if (local_68 != &local_60._M_string_length) {\n          operator_delete(local_68);\n        }\n        pvVar14 = (this->directories_).\n                  super__Vector_base<std::vector<std::__cxx11::basic_string<char,_std::char_traits<char>,_std::allocator<char>_>,_std::allocator<std::__cxx11::basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_>_>,_std::allocator<std::vector<std::__cxx11::basic_string<char,_std::char_traits<char>,_std::allocator<char>_>,_std::allocator<std::__cxx11::basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_>_>_>_>\n                  ._M_impl._M_finish;\n        uVar9 = (int)uVar11 + 1;\n        uVar11 = (ulong)uVar9;\n        pbVar2 = pvVar14[-1].\n                 super__Vector_base<std::__cxx11::basic_string<char,_std::char_traits<char>,_std::allocator<char>_>,_std::allocator<std::__cxx11::basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_>_>\n                 ._M_impl._M_finish;\n        lineptr = lineptr + pbVar2[-1]._M_string_length + 1;\n        if (*lineptr == '\0') goto LAB_001735b7;\n      } while (uVar9 == (uint)((long)pbVar2 -\n                               (long)pvVar14[-1].\n                                     super__Vector_base<std::__cxx11::basic_string<char,_std::char_traits<char>,_std::allocator<char>_>,_std::allocator<std::__cxx11::basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_>_>\n                                     ._M_impl._M_start >> 5));\n    }\n                    /* WARNING: Subroutine does not return */\n    do_gold_unreachable("../../gold/dwarf_reader.cc",0x6c4,"read_header_tables");\n  }\nLAB_001735b7:\n  pbVar12 = lineptr + 1;\n  if (lineptr[1] != '\0') {\n    iVar8 = 1;\n    __s = pbVar12;\n    do {\n      sVar6 = strlen((char *)__s);\n      pbVar13 = __s + sVar6 + 1;\n      bVar7 = *pbVar13;\n      uVar5 = (ulong)bVar7;\n      pbVar12 = pbVar13 + 1;\n      if ((char)bVar7 < '\0') {\n        uVar5 = read_unsigned_LEB_128_x(pbVar12,&len,bVar7);\n        pbVar12 = pbVar13 + len;\n      }\n      else {\n        len = 1;\n      }\n      pvVar14 = (this->directories_).\n                super__Vector_base<std::vector<std::__cxx11::basic_string<char,_std::char_traits<char>,_std::allocator<char>_>,_std::allocator<std::__cxx11::basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_>_>,_std::allocator<std::vector<std::__cxx11::basic_string<char,_std::char_traits<char>,_std::allocator<char>_>,_std::allocator<std::__cxx11::basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_>_>_>_>\n                ._M_impl._M_finish;\n      pbVar13 = pbVar12 + 1;\n      if ((ulong)((long)pvVar14[-1].\n                        super__Vector_base<std::__cxx11::basic_string<char,_std::char_traits<char>,_std::allocator<char>_>,_std::allocator<std::__cxx11::basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_>_>\n                        ._M_impl._M_finish -\n                  (long)pvVar14[-1].\n                        super__Vector_base<std::__cxx11::basic_string<char,_std::char_traits<char>,_std::allocator<char>_>,_std::allocator<std::__cxx11::basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_>_>\n                        ._M_impl._M_start >> 5) <= uVar5) {\n        uVar5 = 0;\n      }\n      if ((char)*pbVar12 < '\0') {\n        read_unsigned_LEB_128_x(pbVar13,&len,*pbVar12);\n        pbVar13 = pbVar12 + len;\n        bVar7 = *pbVar13;\n        pbVar12 = pbVar13 + 1;\n        if ((char)bVar7 < '\0') goto LAB_0017374d;\nLAB_00173644:\n        len = 1;\n      }\n      else {\n        bVar7 = *pbVar13;\n        pbVar12 = pbVar12 + 2;\n        len = 1;\n        if (-1 < (char)bVar7) goto LAB_00173644;\nLAB_0017374d:\n        read_unsigned_LEB_128_x(pbVar12,&len,bVar7);\n        pbVar12 = pbVar13 + len;\n      }\n      pvVar3 = (this->files_).\n               super__Vector_base<std::vector<std::pair<int,_std::__cxx11::basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_>,_std::allocator<std::pair<int,_std::__cxx11::basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_>_>_>,_std::allocator<std::vector<std::pair<int,_std::__cxx11::basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_>,_std::allocator<std::pair<int,_std::__cxx11::basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_>_>_>_>_>\n               ._M_impl._M_finish;\n      if (iVar8 != (int)((long)pvVar3[-1].\n                               super__Vector_base<std::pair<int,_std::__cxx11::basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_>,_std::allocator<std::pair<int,_std::__cxx11::basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_>_>_>\n                               ._M_impl._M_finish -\n                         (long)pvVar3[-1].\n                               super__Vector_base<std::pair<int,_std::__cxx11::basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_>,_std::allocator<std::pair<int,_std::__cxx11::basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_>_>_>\n                               ._M_impl._M_start >> 3) * -0x33333333) {\n                    /* WARNING: Subroutine does not return */\n        do_gold_unreachable("../../gold/dwarf_reader.cc",0x6e4,"read_header_tables");\n      }\n      local_68 = (size_type *)CONCAT44(local_68._4_4_,(int)uVar5);\n      local_60._M_dataplus._M_p = (pointer)&local_60.field_2;\n      sVar6 = strlen((char *)__s);\n      std::__cxx11::basic_string<char,_std::char_traits<char>,_std::allocator<char>_>::\n      _M_construct<char_const*>(&local_60,__s,__s + sVar6);\n                    /* try { // try from 001736a4 to 001736a8 has its CatchHandler @ 00173809 */\n      std::\n      vector<std::pair<int,_std::__cxx11::basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_>,_std::allocator<std::pair<int,_std::__cxx11::basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_>_>_>\n      ::\n      emplace_back<std::pair<int,_std::__cxx11::basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_>_>\n                (pvVar3 + -1,\n                 (pair<int,_std::__cxx11::basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_>\n                  *)&local_68);\n      if ((anon_union_16_2_edb7204a_for_basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_9\n           *)local_60._M_dataplus._M_p != &local_60.field_2) {\n        operator_delete(local_60._M_dataplus._M_p);\n      }\n      iVar8 = iVar8 + 1;\n      __s = pbVar12;\n    } while (*pbVar12 != 0);\n  }\n  return pbVar12 + 1;\n}\n\n" comment (ERROR "uchar * __thiscall\ngold::Sized_dwarf_line_info<64,_false>::read_header_tables\n          (Sized_dwarf_line_info<64,_false> *this,uchar *lineptr)" (binary_expression "uchar * __thiscall\ngold::Sized_dwarf_line_info<64,_false>::read_header_tables\n          (Sized_dwarf_line_info<64,_false> *this,uchar *lineptr)" (binary_expression "uchar * __thiscall\ngold::Sized_dwarf_line_info<64" (binary_expression "uchar * __thiscall" identifier * identifier) (ERROR "gold::Sized_dwarf_line_info" identifier : : identifier) < number_literal) (ERROR ",_false" , identifier) > (ERROR "::" : :) (call_expression "read_header_tables\n          (Sized_dwarf_line_info<64,_false> *this,uchar *lineptr)" identifier (argument_list "(Sized_dwarf_line_info<64,_false> *this,uchar *lineptr)" ( (binary_expression "Sized_dwarf_line_info<64" identifier < number_literal) , (binary_expression "_false> *this" identifier > (pointer_expression "*this" * identifier)) , (binary_expression "uchar *lineptr" identifier * identifier) ))))) (compound_statement "{\n  pointer pvVar1;\n  pointer pbVar2;\n  pointer pvVar3;\n  _Alloc_hider _Var4;\n  ulong uVar5;\n  size_t sVar6;\n  byte bVar7;\n  int iVar8;\n  uint uVar9;\n  size_type *psVar10;\n  ulong uVar11;\n  byte *pbVar12;\n  byte *pbVar13;\n  pointer pvVar14;\n  byte *__s;\n  size_t len;\n  size_type *local_68;\n  basic_string<char,_std::char_traits<char>,_std::allocator<char>_> local_60;\n  \n  pvVar14 = (this->directories_).\n            super__Vector_base<std::vector<std::__cxx11::basic_string<char,_std::char_traits<char>,_std::allocator<char>_>,_std::allocator<std::__cxx11::basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_>_>,_std::allocator<std::vector<std::__cxx11::basic_string<char,_std::char_traits<char>,_std::allocator<char>_>,_std::allocator<std::__cxx11::basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_>_>_>_>\n            ._M_impl._M_finish;\n  pvVar1 = (this->directories_).\n           super__Vector_base<std::vector<std::__cxx11::basic_string<char,_std::char_traits<char>,_std::allocator<char>_>,_std::allocator<std::__cxx11::basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_>_>,_std::allocator<std::vector<std::__cxx11::basic_string<char,_std::char_traits<char>,_std::allocator<char>_>,_std::allocator<std::__cxx11::basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_>_>_>_>\n           ._M_impl._M_start;\n  iVar8 = this->current_header_index_ + 1;\n  this->current_header_index_ = iVar8;\n  if (iVar8 != (int)((long)pvVar14 - (long)pvVar1 >> 3) * -0x55555555) {\n                    /* WARNING: Subroutine does not return */\n    do_gold_unreachable("../../gold/dwarf_reader.cc",0x6b6,"read_header_tables");\n  }\n  if (iVar8 != (int)((long)(this->files_).\n                           super__Vector_base<std::vector<std::pair<int,_std::__cxx11::basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_>,_std::allocator<std::pair<int,_std::__cxx11::basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_>_>_>,_std::allocator<std::vector<std::pair<int,_std::__cxx11::basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_>,_std::allocator<std::pair<int,_std::__cxx11::basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_>_>_>_>_>\n                           ._M_impl._M_finish -\n                     (long)(this->files_).\n                           super__Vector_base<std::vector<std::pair<int,_std::__cxx11::basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_>,_std::allocator<std::pair<int,_std::__cxx11::basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_>_>_>,_std::allocator<std::vector<std::pair<int,_std::__cxx11::basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_>,_std::allocator<std::pair<int,_std::__cxx11::basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_>_>_>_>_>\n                           ._M_impl._M_start >> 3) * -0x55555555) {\n                    /* WARNING: Subroutine does not return */\n    do_gold_unreachable("../../gold/dwarf_reader.cc",0x6b8,"read_header_tables");\n  }\n  local_68 = (size_type *)0x0;\n  local_60._M_dataplus._M_p = (pointer)0x0;\n  local_60._M_string_length = 0;\n  local_68 = (size_type *)operator_new(0x20);\n  ((long *)local_68)[1] = 0;\n  local_60._M_dataplus._M_p = (pointer)((long *)local_68 + 4);\n  *local_68 = (size_type)((long *)local_68 + 2);\n  *(undefined1 *)((long *)local_68 + 2) = 0;\n  local_60._M_string_length = (size_type)local_60._M_dataplus._M_p;\n                    /* try { // try from 00173433 to 00173437 has its CatchHandler @ 00173804 */\n  std::\n  vector<std::vector<std::__cxx11::basic_string<char,_std::char_traits<char>,_std::allocator<char>_>,_std::allocator<std::__cxx11::basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_>_>,_std::allocator<std::vector<std::__cxx11::basic_string<char,_std::char_traits<char>,_std::allocator<char>_>,_std::allocator<std::__cxx11::basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_>_>_>_>\n  ::\n  emplace_back<std::vector<std::__cxx11::basic_string<char,_std::char_traits<char>,_std::allocator<char>_>,_std::allocator<std::__cxx11::basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_>_>_>\n            (&this->directories_,\n             (vector<std::__cxx11::basic_string<char,_std::char_traits<char>,_std::allocator<char>_>,_std::allocator<std::__cxx11::basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_>_>\n              *)&local_68);\n  _Var4._M_p = local_60._M_dataplus._M_p;\n  for (psVar10 = local_68; (size_type *)_Var4._M_p != psVar10;\n      psVar10 = (size_type *)((long *)psVar10 + 4)) {\n    if ((long *)*psVar10 != (long *)psVar10 + 2) {\n      operator_delete((long *)*psVar10);\n    }\n  }\n  if (local_68 != (size_type *)0x0) {\n    operator_delete(local_68);\n  }\n  local_68 = (size_type *)0x0;\n  local_60._M_dataplus._M_p = (pointer)0x0;\n  local_60._M_string_length = 0;\n  local_68 = (size_type *)operator_new(0x28);\n  *(undefined4 *)local_68 = 0;\n  local_60._M_dataplus._M_p = (pointer)(local_68 + 5);\n  ((anon_union_16_2_edb7204a_for_basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_9\n    *)(local_68 + 1))->_M_allocated_capacity = (size_type)(local_68 + 3);\n  local_68[2] = 0;\n  *(undefined1 *)(local_68 + 3) = 0;\n  local_60._M_string_length = (size_type)local_60._M_dataplus._M_p;\n                    /* try { // try from 001734d9 to 001734dd has its CatchHandler @ 001737d4 */\n  std::\n  vector<std::vector<std::pair<int,_std::__cxx11::basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_>,_std::allocator<std::pair<int,_std::__cxx11::basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_>_>_>,_std::allocator<std::vector<std::pair<int,_std::__cxx11::basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_>,_std::allocator<std::pair<int,_std::__cxx11::basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_>_>_>_>_>\n  ::\n  emplace_back<std::vector<std::pair<int,_std::__cxx11::basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_>,_std::allocator<std::pair<int,_std::__cxx11::basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_>_>_>_>\n            (&this->files_,\n             (vector<std::pair<int,_std::__cxx11::basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_>,_std::allocator<std::pair<int,_std::__cxx11::basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_>_>_>\n              *)&local_68);\n  _Var4._M_p = local_60._M_dataplus._M_p;\n  for (psVar10 = local_68; (size_type *)_Var4._M_p != psVar10; psVar10 = psVar10 + 5) {\n    if ((size_type *)\n        ((anon_union_16_2_edb7204a_for_basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_9\n          *)(psVar10 + 1))->_M_allocated_capacity != psVar10 + 3) {\n      operator_delete((undefined4 *)\n                      ((anon_union_16_2_edb7204a_for_basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_9\n                        *)(psVar10 + 1))->_M_allocated_capacity);\n    }\n  }\n  if (local_68 != (size_type *)0x0) {\n    operator_delete(local_68);\n  }\n  if (*lineptr != '\0') {\n    pvVar14 = (this->directories_).\n              super__Vector_base<std::vector<std::__cxx11::basic_string<char,_std::char_traits<char>,_std::allocator<char>_>,_std::allocator<std::__cxx11::basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_>_>,_std::allocator<std::vector<std::__cxx11::basic_string<char,_std::char_traits<char>,_std::allocator<char>_>,_std::allocator<std::__cxx11::basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_>_>_>_>\n              ._M_impl._M_finish;\n    uVar5 = (long)pvVar14[-1].\n                  super__Vector_base<std::__cxx11::basic_string<char,_std::char_traits<char>,_std::allocator<char>_>,_std::allocator<std::__cxx11::basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_>_>\n                  ._M_impl._M_finish -\n            (long)pvVar14[-1].\n                  super__Vector_base<std::__cxx11::basic_string<char,_std::char_traits<char>,_std::allocator<char>_>,_std::allocator<std::__cxx11::basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_>_>\n                  ._M_impl._M_start >> 5;\n    uVar11 = uVar5 & 0xffffffff;\n    if ((int)uVar5 == 1) {\n      do {\n        local_68 = &local_60._M_string_length;\n        sVar6 = strlen((char *)lineptr);\n        std::__cxx11::basic_string<char,_std::char_traits<char>,_std::allocator<char>_>::\n        _M_construct<char_const*>\n                  ((basic_string<char,_std::char_traits<char>,_std::allocator<char>_> *)&local_68,\n                   lineptr,lineptr + sVar6);\n                    /* try { // try from 00173584 to 00173588 has its CatchHandler @ 001737cf */\n        std::\n        vector<std::__cxx11::basic_string<char,_std::char_traits<char>,_std::allocator<char>_>,_std::allocator<std::__cxx11::basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_>_>\n        ::\n        emplace_back<std::__cxx11::basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_>\n                  (pvVar14 + -1,\n                   (basic_string<char,_std::char_traits<char>,_std::allocator<char>_> *)&local_68);\n        if (local_68 != &local_60._M_string_length) {\n          operator_delete(local_68);\n        }\n        pvVar14 = (this->directories_).\n                  super__Vector_base<std::vector<std::__cxx11::basic_string<char,_std::char_traits<char>,_std::allocator<char>_>,_std::allocator<std::__cxx11::basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_>_>,_std::allocator<std::vector<std::__cxx11::basic_string<char,_std::char_traits<char>,_std::allocator<char>_>,_std::allocator<std::__cxx11::basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_>_>_>_>\n                  ._M_impl._M_finish;\n        uVar9 = (int)uVar11 + 1;\n        uVar11 = (ulong)uVar9;\n        pbVar2 = pvVar14[-1].\n                 super__Vector_base<std::__cxx11::basic_string<char,_std::char_traits<char>,_std::allocator<char>_>,_std::allocator<std::__cxx11::basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_>_>\n                 ._M_impl._M_finish;\n        lineptr = lineptr + pbVar2[-1]._M_string_length + 1;\n        if (*lineptr == '\0') goto LAB_001735b7;\n      } while (uVar9 == (uint)((long)pbVar2 -\n                               (long)pvVar14[-1].\n                                     super__Vector_base<std::__cxx11::basic_string<char,_std::char_traits<char>,_std::allocator<char>_>,_std::allocator<std::__cxx11::basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_>_>\n                                     ._M_impl._M_start >> 5));\n    }\n                    /* WARNING: Subroutine does not return */\n    do_gold_unreachable("../../gold/dwarf_reader.cc",0x6c4,"read_header_tables");\n  }\nLAB_001735b7:\n  pbVar12 = lineptr + 1;\n  if (lineptr[1] != '\0') {\n    iVar8 = 1;\n    __s = pbVar12;\n    do {\n      sVar6 = strlen((char *)__s);\n      pbVar13 = __s + sVar6 + 1;\n      bVar7 = *pbVar13;\n      uVar5 = (ulong)bVar7;\n      pbVar12 = pbVar13 + 1;\n      if ((char)bVar7 < '\0') {\n        uVar5 = read_unsigned_LEB_128_x(pbVar12,&len,bVar7);\n        pbVar12 = pbVar13 + len;\n      }\n      else {\n        len = 1;\n      }\n      pvVar14 = (this->directories_).\n                super__Vector_base<std::vector<std::__cxx11::basic_string<char,_std::char_traits<char>,_std::allocator<char>_>,_std::allocator<std::__cxx11::basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_>_>,_std::allocator<std::vector<std::__cxx11::basic_string<char,_std::char_traits<char>,_std::allocator<char>_>,_std::allocator<std::__cxx11::basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_>_>_>_>\n                ._M_impl._M_finish;\n      pbVar13 = pbVar12 + 1;\n      if ((ulong)((long)pvVar14[-1].\n                        super__Vector_base<std::__cxx11::basic_string<char,_std::char_traits<char>,_std::allocator<char>_>,_std::allocator<std::__cxx11::basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_>_>\n                        ._M_impl._M_finish -\n                  (long)pvVar14[-1].\n                        super__Vector_base<std::__cxx11::basic_string<char,_std::char_traits<char>,_std::allocator<char>_>,_std::allocator<std::__cxx11::basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_>_>\n                        ._M_impl._M_start >> 5) <= uVar5) {\n        uVar5 = 0;\n      }\n      if ((char)*pbVar12 < '\0') {\n        read_unsigned_LEB_128_x(pbVar13,&len,*pbVar12);\n        pbVar13 = pbVar12 + len;\n        bVar7 = *pbVar13;\n        pbVar12 = pbVar13 + 1;\n        if ((char)bVar7 < '\0') goto LAB_0017374d;\nLAB_00173644:\n        len = 1;\n      }\n      else {\n        bVar7 = *pbVar13;\n        pbVar12 = pbVar12 + 2;\n        len = 1;\n        if (-1 < (char)bVar7) goto LAB_00173644;\nLAB_0017374d:\n        read_unsigned_LEB_128_x(pbVar12,&len,bVar7);\n        pbVar12 = pbVar13 + len;\n      }\n      pvVar3 = (this->files_).\n               super__Vector_base<std::vector<std::pair<int,_std::__cxx11::basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_>,_std::allocator<std::pair<int,_std::__cxx11::basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_>_>_>,_std::allocator<std::vector<std::pair<int,_std::__cxx11::basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_>,_std::allocator<std::pair<int,_std::__cxx11::basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_>_>_>_>_>\n               ._M_impl._M_finish;\n      if (iVar8 != (int)((long)pvVar3[-1].\n                               super__Vector_base<std::pair<int,_std::__cxx11::basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_>,_std::allocator<std::pair<int,_std::__cxx11::basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_>_>_>\n                               ._M_impl._M_finish -\n                         (long)pvVar3[-1].\n                               super__Vector_base<std::pair<int,_std::__cxx11::basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_>,_std::allocator<std::pair<int,_std::__cxx11::basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_>_>_>\n                               ._M_impl._M_start >> 3) * -0x33333333) {\n                    /* WARNING: Subroutine does not return */\n        do_gold_unreachable("../../gold/dwarf_reader.cc",0x6e4,"read_header_tables");\n      }\n      local_68 = (size_type *)CONCAT44(local_68._4_4_,(int)uVar5);\n      local_60._M_dataplus._M_p = (pointer)&local_60.field_2;\n      sVar6 = strlen((char *)__s);\n      std::__cxx11::basic_string<char,_std::char_traits<char>,_std::allocator<char>_>::\n      _M_construct<char_const*>(&local_60,__s,__s + sVar6);\n                    /* try { // try from 001736a4 to 001736a8 has its CatchHandler @ 00173809 */\n      std::\n      vector<std::pair<int,_std::__cxx11::basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_>,_std::allocator<std::pair<int,_std::__cxx11::basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_>_>_>\n      ::\n      emplace_back<std::pair<int,_std::__cxx11::basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_>_>\n                (pvVar3 + -1,\n                 (pair<int,_std::__cxx11::basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_>\n                  *)&local_68);\n      if ((anon_union_16_2_edb7204a_for_basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_9\n           *)local_60._M_dataplus._M_p != &local_60.field_2) {\n        operator_delete(local_60._M_dataplus._M_p);\n      }\n      iVar8 = iVar8 + 1;\n      __s = pbVar12;\n    } while (*pbVar12 != 0);\n  }\n  return pbVar12 + 1;\n}" { (declaration "pointer pvVar1;" type_identifier identifier ;) (declaration "pointer pbVar2;" type_identifier identifier ;) (declaration "pointer pvVar3;" type_identifier identifier ;) (declaration "_Alloc_hider _Var4;" type_identifier identifier ;) (declaration "ulong uVar5;" type_identifier identifier ;) (declaration "size_t sVar6;" primitive_type identifier ;) (declaration "byte bVar7;" type_identifier identifier ;) (declaration "int iVar8;" primitive_type identifier ;) (declaration "uint uVar9;" type_identifier identifier ;) (declaration "size_type *psVar10;" type_identifier (pointer_declarator "*psVar10" * identifier) ;) (declaration "ulong uVar11;" type_identifier identifier ;) (declaration "byte *pbVar12;" type_identifier (pointer_declarator "*pbVar12" * identifier) ;) (declaration "byte *pbVar13;" type_identifier (pointer_declarator "*pbVar13" * identifier) ;) (declaration "pointer pvVar14;" type_identifier identifier ;) (declaration "byte *__s;" type_identifier (pointer_declarator "*__s" * identifier) ;) (declaration "size_t len;" primitive_type identifier ;) (declaration "size_type *local_68;" type_identifier (pointer_declarator "*local_68" * identifier) ;) (ERROR "basic_string<char,_std::char_traits<char>,_std::" (comma_expression "basic_string<char,_std" (binary_expression "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>_> local_60;" (binary_expression "allocator<char>_> local_60" (binary_expression "allocator<char>_" (binary_expression "allocator<char" identifier < identifier) > identifier) > identifier) ;) (ERROR "pvVar14 = (this->directories_).\n            super__Vector_base<std::vector<std::__cxx11::basic_string<char,_std::char_traits<char>,_std::allocator<char>_>,_std::allocator<std::__cxx11::basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_>_>,_std::allocator<std::vector<std::__cxx11::basic_string<char,_std::char_traits<char>,_std::allocator<char>_>,_std::allocator<std::__cxx11::basic_string<char,_std::char_traits<char>,_std::" (comma_expression "pvVar14 = (this->directories_).\n            super__Vector_base<std::vector<std::__cxx11::basic_string<char,_std" (binary_expression "pvVar14 = (this->directories_).\n            super__Vector_base<std::vector<std::__cxx11::basic_string<char" (binary_expression "pvVar14 = (this->directories_).\n            super__Vector_base<std::vector<std" (assignment_expression "pvVar14 = (this->directories_).\n            super__Vector_base<std" identifier = (binary_expression "(this->directories_).\n            super__Vector_base<std" (field_expression "(this->directories_).\n            super__Vector_base" (parenthesized_expression "(this->directories_)" ( (field_expression "this->directories_" identifier -> field_identifier) )) . field_identifier) < identifier)) (ERROR "::vector" : : identifier) < identifier) (ERROR "::__cxx11::basic_string" : : identifier : : identifier) < identifier) , identifier) : : (binary_expression "char_traits<char>,_std" (binary_expression "char_traits<char" identifier < identifier) > (ERROR "," ,) identifier) : : (binary_expression "allocator<char>_>,_std" (binary_expression "allocator<char>_" (binary_expression "allocator<char" identifier < identifier) > identifier) > (ERROR "," ,) identifier) : : (binary_expression "allocator<std" identifier < identifier) : : (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>_>_>_>,_std" (binary_expression "allocator<char>_>_>_" (binary_expression "allocator<char>_>_" (binary_expression "allocator<char>_" (binary_expression "allocator<char" identifier < identifier) > identifier) > identifier) > identifier) > (ERROR "," ,) identifier) : : (binary_expression "allocator<std" identifier < identifier) : : (binary_expression "vector<std" identifier < identifier) : : (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>_>,_std" (binary_expression "allocator<char>_" (binary_expression "allocator<char" identifier < identifier) > identifier) > (ERROR "," ,) identifier) : : (binary_expression "allocator<std" identifier < identifier) : : (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) : :) (expression_statement "allocator<char>_>_>_>_>_>\n            ._M_impl._M_finish;" (field_expression "allocator<char>_>_>_>_>_>\n            ._M_impl._M_finish" (field_expression "allocator<char>_>_>_>_>_>\n            ._M_impl" (binary_expression "allocator<char>_>_>_>_>_" (binary_expression "allocator<char>_>_>_>_" (binary_expression "allocator<char>_>_>_" (binary_expression "allocator<char>_>_" (binary_expression "allocator<char>_" (binary_expression "allocator<char" identifier < identifier) > identifier) > identifier) > identifier) > identifier) > identifier) (ERROR ">" >) . field_identifier) . field_identifier) ;) (ERROR "pvVar1 = (this->directories_).\n           super__Vector_base<std::vector<std::__cxx11::basic_string<char,_std::char_traits<char>,_std::allocator<char>_>,_std::allocator<std::__cxx11::basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_>_>,_std::allocator<std::vector<std::__cxx11::basic_string<char,_std::char_traits<char>,_std::allocator<char>_>,_std::allocator<std::__cxx11::basic_string<char,_std::char_traits<char>,_std::" (binary_expression "pvVar1 = (this->directories_).\n           super__Vector_base<std::vector<std" (assignment_expression "pvVar1 = (this->directories_).\n           super__Vector_base<std" identifier = (binary_expression "(this->directories_).\n           super__Vector_base<std" (field_expression "(this->directories_).\n           super__Vector_base" (parenthesized_expression "(this->directories_)" ( (field_expression "this->directories_" identifier -> field_identifier) )) . field_identifier) < identifier)) (ERROR "::vector" : : identifier) < identifier) : : (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>_>,_std" (binary_expression "allocator<char>_" (binary_expression "allocator<char" identifier < identifier) > identifier) > (ERROR "," ,) identifier) : : (binary_expression "allocator<std" identifier < identifier) : : (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>_>_>_>,_std" (binary_expression "allocator<char>_>_>_" (binary_expression "allocator<char>_>_" (binary_expression "allocator<char>_" (binary_expression "allocator<char" identifier < identifier) > identifier) > identifier) > identifier) > (ERROR "," ,) identifier) : : (binary_expression "allocator<std" identifier < identifier) : : (binary_expression "vector<std" identifier < identifier) : : (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>_>,_std" (binary_expression "allocator<char>_" (binary_expression "allocator<char" identifier < identifier) > identifier) > (ERROR "," ,) identifier) : : (binary_expression "allocator<std" identifier < identifier) : : (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) : :) (expression_statement "allocator<char>_>_>_>_>_>\n           ._M_impl._M_start;" (field_expression "allocator<char>_>_>_>_>_>\n           ._M_impl._M_start" (field_expression "allocator<char>_>_>_>_>_>\n           ._M_impl" (binary_expression "allocator<char>_>_>_>_>_" (binary_expression "allocator<char>_>_>_>_" (binary_expression "allocator<char>_>_>_" (binary_expression "allocator<char>_>_" (binary_expression "allocator<char>_" (binary_expression "allocator<char" identifier < identifier) > identifier) > identifier) > identifier) > identifier) > identifier) (ERROR ">" >) . field_identifier) . field_identifier) ;) (expression_statement "iVar8 = this->current_header_index_ + 1;" (assignment_expression "iVar8 = this->current_header_index_ + 1" identifier = (binary_expression "this->current_header_index_ + 1" (field_expression "this->current_header_index_" identifier -> field_identifier) + number_literal)) ;) (expression_statement "this->current_header_index_ = iVar8;" (assignment_expression "this->current_header_index_ = iVar8" (field_expression "this->current_header_index_" identifier -> field_identifier) = identifier) ;) (if_statement "if (iVar8 != (int)((long)pvVar14 - (long)pvVar1 >> 3) * -0x55555555) {\n                    /* WARNING: Subroutine does not return */\n    do_gold_unreachable("../../gold/dwarf_reader.cc",0x6b6,"read_header_tables");\n  }" if (parenthesized_expression "(iVar8 != (int)((long)pvVar14 - (long)pvVar1 >> 3) * -0x55555555)" ( (binary_expression "iVar8 != (int)((long)pvVar14 - (long)pvVar1 >> 3) * -0x55555555" identifier != (binary_expression "(int)((long)pvVar14 - (long)pvVar1 >> 3) * -0x55555555" (cast_expression "(int)((long)pvVar14 - (long)pvVar1 >> 3)" ( (type_descriptor "int" primitive_type) ) (parenthesized_expression "((long)pvVar14 - (long)pvVar1 >> 3)" ( (binary_expression "(long)pvVar14 - (long)pvVar1 >> 3" (binary_expression "(long)pvVar14 - (long)pvVar1" (cast_expression "(long)pvVar14" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) identifier) - (cast_expression "(long)pvVar1" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) identifier)) >> number_literal) ))) * number_literal)) )) (compound_statement "{\n                    /* WARNING: Subroutine does not return */\n    do_gold_unreachable("../../gold/dwarf_reader.cc",0x6b6,"read_header_tables");\n  }" { comment (expression_statement "do_gold_unreachable("../../gold/dwarf_reader.cc",0x6b6,"read_header_tables");" (call_expression "do_gold_unreachable("../../gold/dwarf_reader.cc",0x6b6,"read_header_tables")" identifier (argument_list "("../../gold/dwarf_reader.cc",0x6b6,"read_header_tables")" ( (string_literal ""../../gold/dwarf_reader.cc"" " string_content ") , number_literal , (string_literal ""read_header_tables"" " string_content ") ))) ;) })) (if_statement "if (iVar8 != (int)((long)(this->files_).\n                           super__Vector_base<std::vector<std::pair<int,_std::__cxx11::basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_>,_std::allocator<std::pair<int,_std::__cxx11::basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_>_>_>,_std::allocator<std::vector<std::pair<int,_std::__cxx11::basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_>,_std::allocator<std::pair<int,_std::__cxx11::basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_>_>_>_>_>\n                           ._M_impl._M_finish -\n                     (long)(this->files_).\n                           super__Vector_base<std::vector<std::pair<int,_std::__cxx11::basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_>,_std::allocator<std::pair<int,_std::__cxx11::basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_>_>_>,_std::allocator<std::vector<std::pair<int,_std::__cxx11::basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_>,_std::allocator<std::pair<int,_std::__cxx11::basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_>_>_>_>_>\n                           ._M_impl._M_start >> 3) * -0x55555555) {\n                    /* WARNING: Subroutine does not return */\n    do_gold_unreachable("../../gold/dwarf_reader.cc",0x6b8,"read_header_tables");\n  }" if (parenthesized_expression "(iVar8 != (int)((long)(this->files_).\n                           super__Vector_base<std::vector<std::pair<int,_std::__cxx11::basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_>,_std::allocator<std::pair<int,_std::__cxx11::basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_>_>_>,_std::allocator<std::vector<std::pair<int,_std::__cxx11::basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_>,_std::allocator<std::pair<int,_std::__cxx11::basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_>_>_>_>_>\n                           ._M_impl._M_finish -\n                     (long)(this->files_).\n                           super__Vector_base<std::vector<std::pair<int,_std::__cxx11::basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_>,_std::allocator<std::pair<int,_std::__cxx11::basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_>_>_>,_std::allocator<std::vector<std::pair<int,_std::__cxx11::basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_>,_std::allocator<std::pair<int,_std::__cxx11::basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_>_>_>_>_>\n                           ._M_impl._M_start >> 3) * -0x55555555)" ( (binary_expression "iVar8 != (int)((long)(this->files_).\n                           super__Vector_base<std::vector<std::pair<int,_std::__cxx11::basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_>,_std::allocator<std::pair<int,_std::__cxx11::basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_>_>_>,_std::allocator<std::vector<std::pair<int,_std::__cxx11::basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_>,_std::allocator<std::pair<int,_std::__cxx11::basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_>_>_>_>_>\n                           ._M_impl._M_finish -\n                     (long)(this->files_).\n                           super__Vector_base<std::vector<std::pair<int,_std::__cxx11::basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_>,_std::allocator<std::pair<int,_std::__cxx11::basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_>_>_>,_std::allocator<std::vector<std::pair<int,_std::__cxx11::basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_>,_std::allocator<std::pair<int,_std::__cxx11::basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_>_>_>_>_>\n                           ._M_impl._M_start >> 3) * -0x55555555" identifier != (binary_expression "(int)((long)(this->files_).\n                           super__Vector_base<std::vector<std::pair<int,_std::__cxx11::basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_>,_std::allocator<std::pair<int,_std::__cxx11::basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_>_>_>,_std::allocator<std::vector<std::pair<int,_std::__cxx11::basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_>,_std::allocator<std::pair<int,_std::__cxx11::basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_>_>_>_>_>\n                           ._M_impl._M_finish -\n                     (long)(this->files_).\n                           super__Vector_base<std::vector<std::pair<int,_std::__cxx11::basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_>,_std::allocator<std::pair<int,_std::__cxx11::basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_>_>_>,_std::allocator<std::vector<std::pair<int,_std::__cxx11::basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_>,_std::allocator<std::pair<int,_std::__cxx11::basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_>_>_>_>_>\n                           ._M_impl._M_start >> 3) * -0x55555555" (cast_expression "(int)((long)(this->files_).\n                           super__Vector_base<std::vector<std::pair<int,_std::__cxx11::basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_>,_std::allocator<std::pair<int,_std::__cxx11::basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_>_>_>,_std::allocator<std::vector<std::pair<int,_std::__cxx11::basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_>,_std::allocator<std::pair<int,_std::__cxx11::basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_>_>_>_>_>\n                           ._M_impl._M_finish -\n                     (long)(this->files_).\n                           super__Vector_base<std::vector<std::pair<int,_std::__cxx11::basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_>,_std::allocator<std::pair<int,_std::__cxx11::basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_>_>_>,_std::allocator<std::vector<std::pair<int,_std::__cxx11::basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_>,_std::allocator<std::pair<int,_std::__cxx11::basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_>_>_>_>_>\n                           ._M_impl._M_start >> 3)" ( (type_descriptor "int" primitive_type) ) (parenthesized_expression "((long)(this->files_).\n                           super__Vector_base<std::vector<std::pair<int,_std::__cxx11::basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_>,_std::allocator<std::pair<int,_std::__cxx11::basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_>_>_>,_std::allocator<std::vector<std::pair<int,_std::__cxx11::basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_>,_std::allocator<std::pair<int,_std::__cxx11::basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_>_>_>_>_>\n                           ._M_impl._M_finish -\n                     (long)(this->files_).\n                           super__Vector_base<std::vector<std::pair<int,_std::__cxx11::basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_>,_std::allocator<std::pair<int,_std::__cxx11::basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_>_>_>,_std::allocator<std::vector<std::pair<int,_std::__cxx11::basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_>,_std::allocator<std::pair<int,_std::__cxx11::basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_>_>_>_>_>\n                           ._M_impl._M_start >> 3)" ( (ERROR "(long)(this->files_).\n                           super__Vector_base<std::vector<std::pair<int,_std::__cxx11::basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_>,_std::allocator<std::pair<int,_std::__cxx11::basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_>_>_>,_std::allocator<std::vector<std::pair<int,_std::__cxx11::basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_>,_std::allocator<std::pair<int,_std::__cxx11::basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_>_>_>_>_>\n                           ._M_impl._M_finish -\n                     (long)(this->files_).\n                           super__Vector_base<std::vector<std::pair<int,_std::__cxx11::basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_>,_std::allocator<std::pair<int,_std::__cxx11::basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_>_>_>,_std::allocator<std::vector<std::pair<int,_std::__cxx11::basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_>,_std::allocator<std::pair<int,_std::__cxx11::basic_string<char,_std::char_traits<char>,_std::" (comma_expression "(long)(this->files_).\n                           super__Vector_base<std::vector<std::pair<int,_std" (binary_expression "(long)(this->files_).\n                           super__Vector_base<std::vector<std::pair<int" (binary_expression "(long)(this->files_).\n                           super__Vector_base<std::vector<std" (binary_expression "(long)(this->files_).\n                           super__Vector_base<std" (cast_expression "(long)(this->files_).\n                           super__Vector_base" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) (field_expression "(this->files_).\n                           super__Vector_base" (parenthesized_expression "(this->files_)" ( (field_expression "this->files_" identifier -> field_identifier) )) . field_identifier)) < identifier) (ERROR "::vector" : : identifier) < identifier) (ERROR "::pair" : : identifier) < identifier) , identifier) : : identifier : : (comma_expression "basic_string<char,_std" (binary_expression "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>_>_>,_std" (binary_expression "allocator<char>_>_" (binary_expression "allocator<char>_" (binary_expression "allocator<char" identifier < identifier) > identifier) > identifier) > (ERROR "," ,) identifier) : : (binary_expression "allocator<std" identifier < identifier) : : (comma_expression "pair<int,_std" (binary_expression "pair<int" identifier < identifier) , identifier) : : identifier : : (comma_expression "basic_string<char,_std" (binary_expression "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>_>_>_>_>,_std" (binary_expression "allocator<char>_>_>_>_" (binary_expression "allocator<char>_>_>_" (binary_expression "allocator<char>_>_" (binary_expression "allocator<char>_" (binary_expression "allocator<char" identifier < identifier) > identifier) > identifier) > identifier) > identifier) > (ERROR "," ,) identifier) : : (binary_expression "allocator<std" identifier < identifier) : : (binary_expression "vector<std" identifier < identifier) : : (comma_expression "pair<int,_std" (binary_expression "pair<int" identifier < identifier) , identifier) : : identifier : : (comma_expression "basic_string<char,_std" (binary_expression "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>_>_>,_std" (binary_expression "allocator<char>_>_" (binary_expression "allocator<char>_" (binary_expression "allocator<char" identifier < identifier) > identifier) > identifier) > (ERROR "," ,) identifier) : : (binary_expression "allocator<std" identifier < identifier) : : (comma_expression "pair<int,_std" (binary_expression "pair<int" identifier < identifier) , identifier) : : identifier : : (comma_expression "basic_string<char,_std" (binary_expression "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>_>_>_>_>_>_>\n                           ._M_impl._M_finish -\n                     (long)(this->files_).\n                           super__Vector_base<std" (binary_expression "allocator<char>_>_>_>_>_>_>\n                           ._M_impl._M_finish -\n                     (long)(this->files_).\n                           super__Vector_base" (field_expression "allocator<char>_>_>_>_>_>_>\n                           ._M_impl._M_finish" (field_expression "allocator<char>_>_>_>_>_>_>\n                           ._M_impl" (binary_expression "allocator<char>_>_>_>_>_>_" (binary_expression "allocator<char>_>_>_>_>_" (binary_expression "allocator<char>_>_>_>_" (binary_expression "allocator<char>_>_>_" (binary_expression "allocator<char>_>_" (binary_expression "allocator<char>_" (binary_expression "allocator<char" identifier < identifier) > identifier) > identifier) > identifier) > identifier) > identifier) > identifier) (ERROR ">" >) . field_identifier) . field_identifier) - (cast_expression "(long)(this->files_).\n                           super__Vector_base" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) (field_expression "(this->files_).\n                           super__Vector_base" (parenthesized_expression "(this->files_)" ( (field_expression "this->files_" identifier -> field_identifier) )) . field_identifier))) < identifier) : : (binary_expression "vector<std" identifier < identifier) : : (comma_expression "pair<int,_std" (binary_expression "pair<int" identifier < identifier) , identifier) : : identifier : : (comma_expression "basic_string<char,_std" (binary_expression "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>_>_>,_std" (binary_expression "allocator<char>_>_" (binary_expression "allocator<char>_" (binary_expression "allocator<char" identifier < identifier) > identifier) > identifier) > (ERROR "," ,) identifier) : : (binary_expression "allocator<std" identifier < identifier) : : (comma_expression "pair<int,_std" (binary_expression "pair<int" identifier < identifier) , identifier) : : identifier : : (comma_expression "basic_string<char,_std" (binary_expression "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>_>_>_>_>,_std" (binary_expression "allocator<char>_>_>_>_" (binary_expression "allocator<char>_>_>_" (binary_expression "allocator<char>_>_" (binary_expression "allocator<char>_" (binary_expression "allocator<char" identifier < identifier) > identifier) > identifier) > identifier) > identifier) > (ERROR "," ,) identifier) : : (binary_expression "allocator<std" identifier < identifier) : : (binary_expression "vector<std" identifier < identifier) : : (comma_expression "pair<int,_std" (binary_expression "pair<int" identifier < identifier) , identifier) : : identifier : : (comma_expression "basic_string<char,_std" (binary_expression "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>_>_>,_std" (binary_expression "allocator<char>_>_" (binary_expression "allocator<char>_" (binary_expression "allocator<char" identifier < identifier) > identifier) > identifier) > (ERROR "," ,) identifier) : : (binary_expression "allocator<std" identifier < identifier) : : (comma_expression "pair<int,_std" (binary_expression "pair<int" identifier < identifier) , identifier) : : identifier : : (comma_expression "basic_string<char,_std" (binary_expression "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>_>_>_>_>_>_>\n                           ._M_impl._M_start >> 3" (field_expression "allocator<char>_>_>_>_>_>_>\n                           ._M_impl._M_start" (field_expression "allocator<char>_>_>_>_>_>_>\n                           ._M_impl" (binary_expression "allocator<char>_>_>_>_>_>_" (binary_expression "allocator<char>_>_>_>_>_" (binary_expression "allocator<char>_>_>_>_" (binary_expression "allocator<char>_>_>_" (binary_expression "allocator<char>_>_" (binary_expression "allocator<char>_" (binary_expression "allocator<char" identifier < identifier) > identifier) > identifier) > identifier) > identifier) > identifier) > identifier) (ERROR ">" >) . field_identifier) . field_identifier) >> number_literal) ))) * number_literal)) )) (compound_statement "{\n                    /* WARNING: Subroutine does not return */\n    do_gold_unreachable("../../gold/dwarf_reader.cc",0x6b8,"read_header_tables");\n  }" { comment (expression_statement "do_gold_unreachable("../../gold/dwarf_reader.cc",0x6b8,"read_header_tables");" (call_expression "do_gold_unreachable("../../gold/dwarf_reader.cc",0x6b8,"read_header_tables")" identifier (argument_list "("../../gold/dwarf_reader.cc",0x6b8,"read_header_tables")" ( (string_literal ""../../gold/dwarf_reader.cc"" " string_content ") , number_literal , (string_literal ""read_header_tables"" " string_content ") ))) ;) })) (expression_statement "local_68 = (size_type *)0x0;" (assignment_expression "local_68 = (size_type *)0x0" identifier = (cast_expression "(size_type *)0x0" ( (type_descriptor "size_type *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (expression_statement "local_60._M_dataplus._M_p = (pointer)0x0;" (assignment_expression "local_60._M_dataplus._M_p = (pointer)0x0" (field_expression "local_60._M_dataplus._M_p" (field_expression "local_60._M_dataplus" identifier . field_identifier) . field_identifier) = (cast_expression "(pointer)0x0" ( (type_descriptor "pointer" type_identifier) ) number_literal)) ;) (expression_statement "local_60._M_string_length = 0;" (assignment_expression "local_60._M_string_length = 0" (field_expression "local_60._M_string_length" identifier . field_identifier) = number_literal) ;) (expression_statement "local_68 = (size_type *)operator_new(0x20);" (assignment_expression "local_68 = (size_type *)operator_new(0x20)" identifier = (cast_expression "(size_type *)operator_new(0x20)" ( (type_descriptor "size_type *" type_identifier (abstract_pointer_declarator "*" *)) ) (call_expression "operator_new(0x20)" identifier (argument_list "(0x20)" ( number_literal ))))) ;) (expression_statement "((long *)local_68)[1] = 0;" (assignment_expression "((long *)local_68)[1] = 0" (subscript_expression "((long *)local_68)[1]" (parenthesized_expression "((long *)local_68)" ( (cast_expression "(long *)local_68" ( (type_descriptor "long *" (sized_type_specifier "long" long) (abstract_pointer_declarator "*" *)) ) identifier) )) [ number_literal ]) = number_literal) ;) (expression_statement "local_60._M_dataplus._M_p = (pointer)((long *)local_68 + 4);" (assignment_expression "local_60._M_dataplus._M_p = (pointer)((long *)local_68 + 4)" (field_expression "local_60._M_dataplus._M_p" (field_expression "local_60._M_dataplus" identifier . field_identifier) . field_identifier) = (call_expression "(pointer)((long *)local_68 + 4)" (parenthesized_expression "(pointer)" ( identifier )) (argument_list "((long *)local_68 + 4)" ( (binary_expression "(long *)local_68 + 4" (cast_expression "(long *)local_68" ( (type_descriptor "long *" (sized_type_specifier "long" long) (abstract_pointer_declarator "*" *)) ) identifier) + number_literal) )))) ;) (expression_statement "*local_68 = (size_type)((long *)local_68 + 2);" (assignment_expression "*local_68 = (size_type)((long *)local_68 + 2)" (pointer_expression "*local_68" * identifier) = (call_expression "(size_type)((long *)local_68 + 2)" (parenthesized_expression "(size_type)" ( identifier )) (argument_list "((long *)local_68 + 2)" ( (binary_expression "(long *)local_68 + 2" (cast_expression "(long *)local_68" ( (type_descriptor "long *" (sized_type_specifier "long" long) (abstract_pointer_declarator "*" *)) ) identifier) + number_literal) )))) ;) (expression_statement "*(undefined1 *)((long *)local_68 + 2) = 0;" (assignment_expression "*(undefined1 *)((long *)local_68 + 2) = 0" (pointer_expression "*(undefined1 *)((long *)local_68 + 2)" * (cast_expression "(undefined1 *)((long *)local_68 + 2)" ( (type_descriptor "undefined1 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((long *)local_68 + 2)" ( (binary_expression "(long *)local_68 + 2" (cast_expression "(long *)local_68" ( (type_descriptor "long *" (sized_type_specifier "long" long) (abstract_pointer_declarator "*" *)) ) identifier) + number_literal) )))) = number_literal) ;) (expression_statement "local_60._M_string_length = (size_type)local_60._M_dataplus._M_p;" (assignment_expression "local_60._M_string_length = (size_type)local_60._M_dataplus._M_p" (field_expression "local_60._M_string_length" identifier . field_identifier) = (cast_expression "(size_type)local_60._M_dataplus._M_p" ( (type_descriptor "size_type" type_identifier) ) (field_expression "local_60._M_dataplus._M_p" (field_expression "local_60._M_dataplus" identifier . field_identifier) . field_identifier))) ;) comment (ERROR "std::\n  vector<std::vector<std::__cxx11::basic_string<char,_std::char_traits<char>,_std::allocator<char>_>,_std::allocator<std::__cxx11::basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_>_>,_std::allocator<std::vector<std::__cxx11::basic_string<char,_std::char_traits<char>,_std::allocator<char>_>,_std::allocator<std::__cxx11::basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_>_>_>_>\n  ::\n  emplace_back<std::vector<std::__cxx11::basic_string<char,_std::char_traits<char>,_std::allocator<char>_>,_std::allocator<std::__cxx11::basic_string<char,_std::char_traits<char>,_std::" (comma_expression "std::\n  vector<std::vector<std::__cxx11::basic_string<char,_std::char_traits<char>,_std::allocator<char>_>,_std" identifier (ERROR "::\n  vector<std::vector<std::__cxx11::basic_string<char,_std::char_traits<char>,_std::allocator<char>_>" : : (binary_expression "vector<std" identifier < identifier) : : (binary_expression "vector<std" identifier < identifier) : : (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) >) , identifier) : : (binary_expression "allocator<std" identifier < identifier) : : (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>_>_>_>,_std" (binary_expression "allocator<char>_>_>_" (binary_expression "allocator<char>_>_" (binary_expression "allocator<char>_" (binary_expression "allocator<char" identifier < identifier) > identifier) > identifier) > identifier) > (ERROR "," ,) identifier) : : (binary_expression "allocator<std" identifier < identifier) : : (binary_expression "vector<std" identifier < identifier) : : (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>_>,_std" (binary_expression "allocator<char>_" (binary_expression "allocator<char" identifier < identifier) > identifier) > (ERROR "," ,) identifier) : : (binary_expression "allocator<std" identifier < identifier) : : (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>_>_>_>_>_>\n  ::\n  emplace_back<std" (binary_expression "allocator<char>_>_>_>_>_>\n  ::\n  emplace_back" (binary_expression "allocator<char>_>_>_>_>_" (binary_expression "allocator<char>_>_>_>_" (binary_expression "allocator<char>_>_>_" (binary_expression "allocator<char>_>_" (binary_expression "allocator<char>_" (binary_expression "allocator<char" identifier < identifier) > identifier) > identifier) > identifier) > identifier) > identifier) > (ERROR "::" : :) identifier) < identifier) : : (binary_expression "vector<std" identifier < identifier) : : (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>_>,_std" (binary_expression "allocator<char>_" (binary_expression "allocator<char" identifier < identifier) > identifier) > (ERROR "," ,) identifier) : : (binary_expression "allocator<std" identifier < identifier) : : (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) : :) (expression_statement "allocator<char>_>_>_>_>\n            (&this->directories_,\n             (vector<std::__cxx11::basic_string<char,_std::char_traits<char>,_std::allocator<char>_>,_std::allocator<std::__cxx11::basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_>_>\n              *)&local_68);" (binary_expression "allocator<char>_>_>_>_>\n            (&this->directories_,\n             (vector<std::__cxx11::basic_string<char,_std::char_traits<char>,_std::allocator<char>_>,_std::allocator<std::__cxx11::basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_>_>\n              *)&local_68)" (binary_expression "allocator<char>_>_>_>_" (binary_expression "allocator<char>_>_>_" (binary_expression "allocator<char>_>_" (binary_expression "allocator<char>_" (binary_expression "allocator<char" identifier < identifier) > identifier) > identifier) > identifier) > identifier) > (parenthesized_expression "(&this->directories_,\n             (vector<std::__cxx11::basic_string<char,_std::char_traits<char>,_std::allocator<char>_>,_std::allocator<std::__cxx11::basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_>_>\n              *)&local_68)" ( (comma_expression "&this->directories_,\n             (vector<std::__cxx11::basic_string<char,_std::char_traits<char>,_std::allocator<char>_>,_std::allocator<std::__cxx11::basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_>_>\n              *)&local_68" (pointer_expression "&this->directories_" & (field_expression "this->directories_" identifier -> field_identifier)) , (binary_expression "(vector<std::__cxx11::basic_string<char,_std::char_traits<char>,_std::allocator<char>_>,_std::allocator<std::__cxx11::basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_>_>\n              *)&local_68" (parenthesized_expression "(vector<std::__cxx11::basic_string<char,_std::char_traits<char>,_std::allocator<char>_>,_std::allocator<std::__cxx11::basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_>_>\n              *)" ( (ERROR "vector<std::__cxx11::basic_string<char,_std::char_traits<char>,_std::allocator<char>_>,_std::allocator<std::__cxx11::basic_string<char,_std::char_traits<char>,_std::" (binary_expression "vector<std" identifier < identifier) : : identifier : : (comma_expression "basic_string<char,_std" (binary_expression "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>_>,_std" (binary_expression "allocator<char>_" (binary_expression "allocator<char" identifier < identifier) > identifier) > (ERROR "," ,) identifier) : : (binary_expression "allocator<std" identifier < identifier) : : identifier : : (comma_expression "basic_string<char,_std" (binary_expression "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>_>_>_>\n              *" (binary_expression "allocator<char>_>_>_" (binary_expression "allocator<char>_>_" (binary_expression "allocator<char>_" (binary_expression "allocator<char" identifier < identifier) > identifier) > identifier) > identifier) > (pointer_expression "*" * identifier)) )) & identifier)) ))) ;) (expression_statement "_Var4._M_p = local_60._M_dataplus._M_p;" (assignment_expression "_Var4._M_p = local_60._M_dataplus._M_p" (field_expression "_Var4._M_p" identifier . field_identifier) = (field_expression "local_60._M_dataplus._M_p" (field_expression "local_60._M_dataplus" identifier . field_identifier) . field_identifier)) ;) (for_statement "for (psVar10 = local_68; (size_type *)_Var4._M_p != psVar10;\n      psVar10 = (size_type *)((long *)psVar10 + 4)) {\n    if ((long *)*psVar10 != (long *)psVar10 + 2) {\n      operator_delete((long *)*psVar10);\n    }\n  }" for ( (assignment_expression "psVar10 = local_68" identifier = identifier) ; (binary_expression "(size_type *)_Var4._M_p != psVar10" (cast_expression "(size_type *)_Var4._M_p" ( (type_descriptor "size_type *" type_identifier (abstract_pointer_declarator "*" *)) ) (field_expression "_Var4._M_p" identifier . field_identifier)) != identifier) ; (assignment_expression "psVar10 = (size_type *)((long *)psVar10 + 4)" identifier = (cast_expression "(size_type *)((long *)psVar10 + 4)" ( (type_descriptor "size_type *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((long *)psVar10 + 4)" ( (binary_expression "(long *)psVar10 + 4" (cast_expression "(long *)psVar10" ( (type_descriptor "long *" (sized_type_specifier "long" long) (abstract_pointer_declarator "*" *)) ) identifier) + number_literal) )))) ) (compound_statement "{\n    if ((long *)*psVar10 != (long *)psVar10 + 2) {\n      operator_delete((long *)*psVar10);\n    }\n  }" { (if_statement "if ((long *)*psVar10 != (long *)psVar10 + 2) {\n      operator_delete((long *)*psVar10);\n    }" if (parenthesized_expression "((long *)*psVar10 != (long *)psVar10 + 2)" ( (binary_expression "(long *)*psVar10 != (long *)psVar10 + 2" (cast_expression "(long *)*psVar10" ( (type_descriptor "long *" (sized_type_specifier "long" long) (abstract_pointer_declarator "*" *)) ) (pointer_expression "*psVar10" * identifier)) != (binary_expression "(long *)psVar10 + 2" (cast_expression "(long *)psVar10" ( (type_descriptor "long *" (sized_type_specifier "long" long) (abstract_pointer_declarator "*" *)) ) identifier) + number_literal)) )) (compound_statement "{\n      operator_delete((long *)*psVar10);\n    }" { (expression_statement "operator_delete((long *)*psVar10);" (call_expression "operator_delete((long *)*psVar10)" identifier (argument_list "((long *)*psVar10)" ( (cast_expression "(long *)*psVar10" ( (type_descriptor "long *" (sized_type_specifier "long" long) (abstract_pointer_declarator "*" *)) ) (pointer_expression "*psVar10" * identifier)) ))) ;) })) })) (if_statement "if (local_68 != (size_type *)0x0) {\n    operator_delete(local_68);\n  }" if (parenthesized_expression "(local_68 != (size_type *)0x0)" ( (binary_expression "local_68 != (size_type *)0x0" identifier != (cast_expression "(size_type *)0x0" ( (type_descriptor "size_type *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n    operator_delete(local_68);\n  }" { (expression_statement "operator_delete(local_68);" (call_expression "operator_delete(local_68)" identifier (argument_list "(local_68)" ( identifier ))) ;) })) (expression_statement "local_68 = (size_type *)0x0;" (assignment_expression "local_68 = (size_type *)0x0" identifier = (cast_expression "(size_type *)0x0" ( (type_descriptor "size_type *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (expression_statement "local_60._M_dataplus._M_p = (pointer)0x0;" (assignment_expression "local_60._M_dataplus._M_p = (pointer)0x0" (field_expression "local_60._M_dataplus._M_p" (field_expression "local_60._M_dataplus" identifier . field_identifier) . field_identifier) = (cast_expression "(pointer)0x0" ( (type_descriptor "pointer" type_identifier) ) number_literal)) ;) (expression_statement "local_60._M_string_length = 0;" (assignment_expression "local_60._M_string_length = 0" (field_expression "local_60._M_string_length" identifier . field_identifier) = number_literal) ;) (expression_statement "local_68 = (size_type *)operator_new(0x28);" (assignment_expression "local_68 = (size_type *)operator_new(0x28)" identifier = (cast_expression "(size_type *)operator_new(0x28)" ( (type_descriptor "size_type *" type_identifier (abstract_pointer_declarator "*" *)) ) (call_expression "operator_new(0x28)" identifier (argument_list "(0x28)" ( number_literal ))))) ;) (expression_statement "*(undefined4 *)local_68 = 0;" (assignment_expression "*(undefined4 *)local_68 = 0" (pointer_expression "*(undefined4 *)local_68" * (cast_expression "(undefined4 *)local_68" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) = number_literal) ;) (expression_statement "local_60._M_dataplus._M_p = (pointer)(local_68 + 5);" (assignment_expression "local_60._M_dataplus._M_p = (pointer)(local_68 + 5)" (field_expression "local_60._M_dataplus._M_p" (field_expression "local_60._M_dataplus" identifier . field_identifier) . field_identifier) = (call_expression "(pointer)(local_68 + 5)" (parenthesized_expression "(pointer)" ( identifier )) (argument_list "(local_68 + 5)" ( (binary_expression "local_68 + 5" identifier + number_literal) )))) ;) (expression_statement "((anon_union_16_2_edb7204a_for_basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_9\n    *)(local_68 + 1))->_M_allocated_capacity = (size_type)(local_68 + 3);" (assignment_expression "((anon_union_16_2_edb7204a_for_basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_9\n    *)(local_68 + 1))->_M_allocated_capacity = (size_type)(local_68 + 3)" (field_expression "((anon_union_16_2_edb7204a_for_basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_9\n    *)(local_68 + 1))->_M_allocated_capacity" (parenthesized_expression "((anon_union_16_2_edb7204a_for_basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_9\n    *)(local_68 + 1))" ( (call_expression "(anon_union_16_2_edb7204a_for_basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_9\n    *)(local_68 + 1)" (parenthesized_expression "(anon_union_16_2_edb7204a_for_basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_9\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) : :) (binary_expression "allocator<char>_>_9" (binary_expression "allocator<char>_" (binary_expression "allocator<char" identifier < identifier) > identifier) > identifier) (ERROR "*" *) )) (argument_list "(local_68 + 1)" ( (binary_expression "local_68 + 1" identifier + number_literal) ))) )) -> field_identifier) = (call_expression "(size_type)(local_68 + 3)" (parenthesized_expression "(size_type)" ( identifier )) (argument_list "(local_68 + 3)" ( (binary_expression "local_68 + 3" identifier + number_literal) )))) ;) (expression_statement "local_68[2] = 0;" (assignment_expression "local_68[2] = 0" (subscript_expression "local_68[2]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "*(undefined1 *)(local_68 + 3) = 0;" (assignment_expression "*(undefined1 *)(local_68 + 3) = 0" (pointer_expression "*(undefined1 *)(local_68 + 3)" * (cast_expression "(undefined1 *)(local_68 + 3)" ( (type_descriptor "undefined1 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(local_68 + 3)" ( (binary_expression "local_68 + 3" identifier + number_literal) )))) = number_literal) ;) (expression_statement "local_60._M_string_length = (size_type)local_60._M_dataplus._M_p;" (assignment_expression "local_60._M_string_length = (size_type)local_60._M_dataplus._M_p" (field_expression "local_60._M_string_length" identifier . field_identifier) = (cast_expression "(size_type)local_60._M_dataplus._M_p" ( (type_descriptor "size_type" type_identifier) ) (field_expression "local_60._M_dataplus._M_p" (field_expression "local_60._M_dataplus" identifier . field_identifier) . field_identifier))) ;) comment (ERROR "std::\n  vector<std::vector<std::pair<int,_std::__cxx11::basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_>,_std::allocator<std::pair<int,_std::__cxx11::basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_>_>_>,_std::allocator<std::vector<std::pair<int,_std::__cxx11::basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_>,_std::allocator<std::pair<int,_std::__cxx11::basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_>_>_>_>_>\n  ::\n  emplace_back<std::vector<std::pair<int,_std::__cxx11::basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_>,_std::allocator<std::pair<int,_std::__cxx11::basic_string<char,_std::char_traits<char>,_std::" (comma_expression "std::\n  vector<std::vector<std::pair<int,_std::__cxx11::basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_>,_std" identifier (ERROR "::\n  vector<std::vector<std::pair<int,_std::__cxx11::basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_>" : : (binary_expression "vector<std" identifier < identifier) : : (binary_expression "vector<std" identifier < identifier) : : (comma_expression "pair<int,_std" (binary_expression "pair<int" identifier < identifier) , identifier) : : (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>_" (binary_expression "allocator<char" identifier < identifier) > identifier) > identifier) >) , identifier) : : (binary_expression "allocator<std" identifier < identifier) : : (comma_expression "pair<int,_std" (binary_expression "pair<int" identifier < identifier) , identifier) : : (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>_>_>_>_>,_std" (binary_expression "allocator<char>_>_>_>_" (binary_expression "allocator<char>_>_>_" (binary_expression "allocator<char>_>_" (binary_expression "allocator<char>_" (binary_expression "allocator<char" identifier < identifier) > identifier) > identifier) > identifier) > identifier) > (ERROR "," ,) identifier) : : (binary_expression "allocator<std" identifier < identifier) : : (binary_expression "vector<std" identifier < identifier) : : (comma_expression "pair<int,_std" (binary_expression "pair<int" identifier < identifier) , identifier) : : (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>_>_>,_std" (binary_expression "allocator<char>_>_" (binary_expression "allocator<char>_" (binary_expression "allocator<char" identifier < identifier) > identifier) > identifier) > (ERROR "," ,) identifier) : : (binary_expression "allocator<std" identifier < identifier) : : (comma_expression "pair<int,_std" (binary_expression "pair<int" identifier < identifier) , identifier) : : (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>_>_>_>_>_>_>\n  ::\n  emplace_back<std" (binary_expression "allocator<char>_>_>_>_>_>_>\n  ::\n  emplace_back" (binary_expression "allocator<char>_>_>_>_>_>_" (binary_expression "allocator<char>_>_>_>_>_" (binary_expression "allocator<char>_>_>_>_" (binary_expression "allocator<char>_>_>_" (binary_expression "allocator<char>_>_" (binary_expression "allocator<char>_" (binary_expression "allocator<char" identifier < identifier) > identifier) > identifier) > identifier) > identifier) > identifier) > identifier) > (ERROR "::" : :) identifier) < identifier) : : (binary_expression "vector<std" identifier < identifier) : : (comma_expression "pair<int,_std" (binary_expression "pair<int" identifier < identifier) , identifier) : : (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>_>_>,_std" (binary_expression "allocator<char>_>_" (binary_expression "allocator<char>_" (binary_expression "allocator<char" identifier < identifier) > identifier) > identifier) > (ERROR "," ,) identifier) : : (binary_expression "allocator<std" identifier < identifier) : : (comma_expression "pair<int,_std" (binary_expression "pair<int" identifier < identifier) , identifier) : : (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) : :) (expression_statement "allocator<char>_>_>_>_>_>\n            (&this->files_,\n             (vector<std::pair<int,_std::__cxx11::basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_>,_std::allocator<std::pair<int,_std::__cxx11::basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_>_>_>\n              *)&local_68);" (binary_expression "allocator<char>_>_>_>_>_>\n            (&this->files_,\n             (vector<std::pair<int,_std::__cxx11::basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_>,_std::allocator<std::pair<int,_std::__cxx11::basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_>_>_>\n              *)&local_68)" (binary_expression "allocator<char>_>_>_>_>_" (binary_expression "allocator<char>_>_>_>_" (binary_expression "allocator<char>_>_>_" (binary_expression "allocator<char>_>_" (binary_expression "allocator<char>_" (binary_expression "allocator<char" identifier < identifier) > identifier) > identifier) > identifier) > identifier) > identifier) > (parenthesized_expression "(&this->files_,\n             (vector<std::pair<int,_std::__cxx11::basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_>,_std::allocator<std::pair<int,_std::__cxx11::basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_>_>_>\n              *)&local_68)" ( (comma_expression "&this->files_,\n             (vector<std::pair<int,_std::__cxx11::basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_>,_std::allocator<std::pair<int,_std::__cxx11::basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_>_>_>\n              *)&local_68" (pointer_expression "&this->files_" & (field_expression "this->files_" identifier -> field_identifier)) , (binary_expression "(vector<std::pair<int,_std::__cxx11::basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_>,_std::allocator<std::pair<int,_std::__cxx11::basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_>_>_>\n              *)&local_68" (parenthesized_expression "(vector<std::pair<int,_std::__cxx11::basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_>,_std::allocator<std::pair<int,_std::__cxx11::basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_>_>_>\n              *)" ( (ERROR "vector<std::pair<int,_std::__cxx11::basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_>,_std::allocator<std::pair<int,_std::__cxx11::basic_string<char,_std::char_traits<char>,_std::" (comma_expression "vector<std::pair<int,_std" (binary_expression "vector<std::pair<int" (binary_expression "vector<std" identifier < identifier) (ERROR "::pair" : : identifier) < identifier) , identifier) : : identifier : : (comma_expression "basic_string<char,_std" (binary_expression "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>_>_>,_std" (binary_expression "allocator<char>_>_" (binary_expression "allocator<char>_" (binary_expression "allocator<char" identifier < identifier) > identifier) > identifier) > (ERROR "," ,) identifier) : : (binary_expression "allocator<std" identifier < identifier) : : (comma_expression "pair<int,_std" (binary_expression "pair<int" identifier < identifier) , identifier) : : identifier : : (comma_expression "basic_string<char,_std" (binary_expression "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>_>_>_>_>\n              *" (binary_expression "allocator<char>_>_>_>_" (binary_expression "allocator<char>_>_>_" (binary_expression "allocator<char>_>_" (binary_expression "allocator<char>_" (binary_expression "allocator<char" identifier < identifier) > identifier) > identifier) > identifier) > identifier) > (pointer_expression "*" * identifier)) )) & identifier)) ))) ;) (expression_statement "_Var4._M_p = local_60._M_dataplus._M_p;" (assignment_expression "_Var4._M_p = local_60._M_dataplus._M_p" (field_expression "_Var4._M_p" identifier . field_identifier) = (field_expression "local_60._M_dataplus._M_p" (field_expression "local_60._M_dataplus" identifier . field_identifier) . field_identifier)) ;) (for_statement "for (psVar10 = local_68; (size_type *)_Var4._M_p != psVar10; psVar10 = psVar10 + 5) {\n    if ((size_type *)\n        ((anon_union_16_2_edb7204a_for_basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_9\n          *)(psVar10 + 1))->_M_allocated_capacity != psVar10 + 3) {\n      operator_delete((undefined4 *)\n                      ((anon_union_16_2_edb7204a_for_basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_9\n                        *)(psVar10 + 1))->_M_allocated_capacity);\n    }\n  }" for ( (assignment_expression "psVar10 = local_68" identifier = identifier) ; (binary_expression "(size_type *)_Var4._M_p != psVar10" (cast_expression "(size_type *)_Var4._M_p" ( (type_descriptor "size_type *" type_identifier (abstract_pointer_declarator "*" *)) ) (field_expression "_Var4._M_p" identifier . field_identifier)) != identifier) ; (assignment_expression "psVar10 = psVar10 + 5" identifier = (binary_expression "psVar10 + 5" identifier + number_literal)) ) (compound_statement "{\n    if ((size_type *)\n        ((anon_union_16_2_edb7204a_for_basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_9\n          *)(psVar10 + 1))->_M_allocated_capacity != psVar10 + 3) {\n      operator_delete((undefined4 *)\n                      ((anon_union_16_2_edb7204a_for_basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_9\n                        *)(psVar10 + 1))->_M_allocated_capacity);\n    }\n  }" { (if_statement "if ((size_type *)\n        ((anon_union_16_2_edb7204a_for_basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_9\n          *)(psVar10 + 1))->_M_allocated_capacity != psVar10 + 3) {\n      operator_delete((undefined4 *)\n                      ((anon_union_16_2_edb7204a_for_basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_9\n                        *)(psVar10 + 1))->_M_allocated_capacity);\n    }" if (parenthesized_expression "((size_type *)\n        ((anon_union_16_2_edb7204a_for_basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_9\n          *)(psVar10 + 1))->_M_allocated_capacity != psVar10 + 3)" ( (binary_expression "(size_type *)\n        ((anon_union_16_2_edb7204a_for_basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_9\n          *)(psVar10 + 1))->_M_allocated_capacity != psVar10 + 3" (cast_expression "(size_type *)\n        ((anon_union_16_2_edb7204a_for_basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_9\n          *)(psVar10 + 1))->_M_allocated_capacity" ( (type_descriptor "size_type *" type_identifier (abstract_pointer_declarator "*" *)) ) (field_expression "((anon_union_16_2_edb7204a_for_basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_9\n          *)(psVar10 + 1))->_M_allocated_capacity" (parenthesized_expression "((anon_union_16_2_edb7204a_for_basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_9\n          *)(psVar10 + 1))" ( (call_expression "(anon_union_16_2_edb7204a_for_basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_9\n          *)(psVar10 + 1)" (parenthesized_expression "(anon_union_16_2_edb7204a_for_basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_9\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) : :) (binary_expression "allocator<char>_>_9" (binary_expression "allocator<char>_" (binary_expression "allocator<char" identifier < identifier) > identifier) > identifier) (ERROR "*" *) )) (argument_list "(psVar10 + 1)" ( (binary_expression "psVar10 + 1" identifier + number_literal) ))) )) -> field_identifier)) != (binary_expression "psVar10 + 3" identifier + number_literal)) )) (compound_statement "{\n      operator_delete((undefined4 *)\n                      ((anon_union_16_2_edb7204a_for_basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_9\n                        *)(psVar10 + 1))->_M_allocated_capacity);\n    }" { (expression_statement "operator_delete((undefined4 *)\n                      ((anon_union_16_2_edb7204a_for_basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_9\n                        *)(psVar10 + 1))->_M_allocated_capacity);" (call_expression "operator_delete((undefined4 *)\n                      ((anon_union_16_2_edb7204a_for_basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_9\n                        *)(psVar10 + 1))->_M_allocated_capacity)" identifier (argument_list "((undefined4 *)\n                      ((anon_union_16_2_edb7204a_for_basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_9\n                        *)(psVar10 + 1))->_M_allocated_capacity)" ( (cast_expression "(undefined4 *)\n                      ((anon_union_16_2_edb7204a_for_basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_9\n                        *)(psVar10 + 1))->_M_allocated_capacity" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (field_expression "((anon_union_16_2_edb7204a_for_basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_9\n                        *)(psVar10 + 1))->_M_allocated_capacity" (parenthesized_expression "((anon_union_16_2_edb7204a_for_basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_9\n                        *)(psVar10 + 1))" ( (call_expression "(anon_union_16_2_edb7204a_for_basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_9\n                        *)(psVar10 + 1)" (parenthesized_expression "(anon_union_16_2_edb7204a_for_basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_9\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) : :) (binary_expression "allocator<char>_>_9" (binary_expression "allocator<char>_" (binary_expression "allocator<char" identifier < identifier) > identifier) > identifier) (ERROR "*" *) )) (argument_list "(psVar10 + 1)" ( (binary_expression "psVar10 + 1" identifier + number_literal) ))) )) -> field_identifier)) ))) ;) })) })) (if_statement "if (local_68 != (size_type *)0x0) {\n    operator_delete(local_68);\n  }" if (parenthesized_expression "(local_68 != (size_type *)0x0)" ( (binary_expression "local_68 != (size_type *)0x0" identifier != (cast_expression "(size_type *)0x0" ( (type_descriptor "size_type *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n    operator_delete(local_68);\n  }" { (expression_statement "operator_delete(local_68);" (call_expression "operator_delete(local_68)" identifier (argument_list "(local_68)" ( identifier ))) ;) })) (if_statement "if (*lineptr != '\0') {\n    pvVar14 = (this->directories_).\n              super__Vector_base<std::vector<std::__cxx11::basic_string<char,_std::char_traits<char>,_std::allocator<char>_>,_std::allocator<std::__cxx11::basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_>_>,_std::allocator<std::vector<std::__cxx11::basic_string<char,_std::char_traits<char>,_std::allocator<char>_>,_std::allocator<std::__cxx11::basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_>_>_>_>\n              ._M_impl._M_finish;\n    uVar5 = (long)pvVar14[-1].\n                  super__Vector_base<std::__cxx11::basic_string<char,_std::char_traits<char>,_std::allocator<char>_>,_std::allocator<std::__cxx11::basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_>_>\n                  ._M_impl._M_finish -\n            (long)pvVar14[-1].\n                  super__Vector_base<std::__cxx11::basic_string<char,_std::char_traits<char>,_std::allocator<char>_>,_std::allocator<std::__cxx11::basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_>_>\n                  ._M_impl._M_start >> 5;\n    uVar11 = uVar5 & 0xffffffff;\n    if ((int)uVar5 == 1) {\n      do {\n        local_68 = &local_60._M_string_length;\n        sVar6 = strlen((char *)lineptr);\n        std::__cxx11::basic_string<char,_std::char_traits<char>,_std::allocator<char>_>::\n        _M_construct<char_const*>\n                  ((basic_string<char,_std::char_traits<char>,_std::allocator<char>_> *)&local_68,\n                   lineptr,lineptr + sVar6);\n                    /* try { // try from 00173584 to 00173588 has its CatchHandler @ 001737cf */\n        std::\n        vector<std::__cxx11::basic_string<char,_std::char_traits<char>,_std::allocator<char>_>,_std::allocator<std::__cxx11::basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_>_>\n        ::\n        emplace_back<std::__cxx11::basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_>\n                  (pvVar14 + -1,\n                   (basic_string<char,_std::char_traits<char>,_std::allocator<char>_> *)&local_68);\n        if (local_68 != &local_60._M_string_length) {\n          operator_delete(local_68);\n        }\n        pvVar14 = (this->directories_).\n                  super__Vector_base<std::vector<std::__cxx11::basic_string<char,_std::char_traits<char>,_std::allocator<char>_>,_std::allocator<std::__cxx11::basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_>_>,_std::allocator<std::vector<std::__cxx11::basic_string<char,_std::char_traits<char>,_std::allocator<char>_>,_std::allocator<std::__cxx11::basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_>_>_>_>\n                  ._M_impl._M_finish;\n        uVar9 = (int)uVar11 + 1;\n        uVar11 = (ulong)uVar9;\n        pbVar2 = pvVar14[-1].\n                 super__Vector_base<std::__cxx11::basic_string<char,_std::char_traits<char>,_std::allocator<char>_>,_std::allocator<std::__cxx11::basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_>_>\n                 ._M_impl._M_finish;\n        lineptr = lineptr + pbVar2[-1]._M_string_length + 1;\n        if (*lineptr == '\0') goto LAB_001735b7;\n      } while (uVar9 == (uint)((long)pbVar2 -\n                               (long)pvVar14[-1].\n                                     super__Vector_base<std::__cxx11::basic_string<char,_std::char_traits<char>,_std::allocator<char>_>,_std::allocator<std::__cxx11::basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_>_>\n                                     ._M_impl._M_start >> 5));\n    }\n                    /* WARNING: Subroutine does not return */\n    do_gold_unreachable("../../gold/dwarf_reader.cc",0x6c4,"read_header_tables");\n  }" if (parenthesized_expression "(*lineptr != '\0')" ( (binary_expression "*lineptr != '\0'" (pointer_expression "*lineptr" * identifier) != (char_literal "'\0'" ' escape_sequence ')) )) (compound_statement "{\n    pvVar14 = (this->directories_).\n              super__Vector_base<std::vector<std::__cxx11::basic_string<char,_std::char_traits<char>,_std::allocator<char>_>,_std::allocator<std::__cxx11::basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_>_>,_std::allocator<std::vector<std::__cxx11::basic_string<char,_std::char_traits<char>,_std::allocator<char>_>,_std::allocator<std::__cxx11::basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_>_>_>_>\n              ._M_impl._M_finish;\n    uVar5 = (long)pvVar14[-1].\n                  super__Vector_base<std::__cxx11::basic_string<char,_std::char_traits<char>,_std::allocator<char>_>,_std::allocator<std::__cxx11::basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_>_>\n                  ._M_impl._M_finish -\n            (long)pvVar14[-1].\n                  super__Vector_base<std::__cxx11::basic_string<char,_std::char_traits<char>,_std::allocator<char>_>,_std::allocator<std::__cxx11::basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_>_>\n                  ._M_impl._M_start >> 5;\n    uVar11 = uVar5 & 0xffffffff;\n    if ((int)uVar5 == 1) {\n      do {\n        local_68 = &local_60._M_string_length;\n        sVar6 = strlen((char *)lineptr);\n        std::__cxx11::basic_string<char,_std::char_traits<char>,_std::allocator<char>_>::\n        _M_construct<char_const*>\n                  ((basic_string<char,_std::char_traits<char>,_std::allocator<char>_> *)&local_68,\n                   lineptr,lineptr + sVar6);\n                    /* try { // try from 00173584 to 00173588 has its CatchHandler @ 001737cf */\n        std::\n        vector<std::__cxx11::basic_string<char,_std::char_traits<char>,_std::allocator<char>_>,_std::allocator<std::__cxx11::basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_>_>\n        ::\n        emplace_back<std::__cxx11::basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_>\n                  (pvVar14 + -1,\n                   (basic_string<char,_std::char_traits<char>,_std::allocator<char>_> *)&local_68);\n        if (local_68 != &local_60._M_string_length) {\n          operator_delete(local_68);\n        }\n        pvVar14 = (this->directories_).\n                  super__Vector_base<std::vector<std::__cxx11::basic_string<char,_std::char_traits<char>,_std::allocator<char>_>,_std::allocator<std::__cxx11::basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_>_>,_std::allocator<std::vector<std::__cxx11::basic_string<char,_std::char_traits<char>,_std::allocator<char>_>,_std::allocator<std::__cxx11::basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_>_>_>_>\n                  ._M_impl._M_finish;\n        uVar9 = (int)uVar11 + 1;\n        uVar11 = (ulong)uVar9;\n        pbVar2 = pvVar14[-1].\n                 super__Vector_base<std::__cxx11::basic_string<char,_std::char_traits<char>,_std::allocator<char>_>,_std::allocator<std::__cxx11::basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_>_>\n                 ._M_impl._M_finish;\n        lineptr = lineptr + pbVar2[-1]._M_string_length + 1;\n        if (*lineptr == '\0') goto LAB_001735b7;\n      } while (uVar9 == (uint)((long)pbVar2 -\n                               (long)pvVar14[-1].\n                                     super__Vector_base<std::__cxx11::basic_string<char,_std::char_traits<char>,_std::allocator<char>_>,_std::allocator<std::__cxx11::basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_>_>\n                                     ._M_impl._M_start >> 5));\n    }\n                    /* WARNING: Subroutine does not return */\n    do_gold_unreachable("../../gold/dwarf_reader.cc",0x6c4,"read_header_tables");\n  }" { (ERROR "pvVar14 = (this->directories_).\n              super__Vector_base<std::vector<std::__cxx11::basic_string<char,_std::char_traits<char>,_std::allocator<char>_>,_std::allocator<std::__cxx11::basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_>_>,_std::allocator<std::vector<std::__cxx11::basic_string<char,_std::char_traits<char>,_std::allocator<char>_>,_std::allocator<std::__cxx11::basic_string<char,_std::char_traits<char>,_std::" (comma_expression "pvVar14 = (this->directories_).\n              super__Vector_base<std::vector<std::__cxx11::basic_string<char,_std" (binary_expression "pvVar14 = (this->directories_).\n              super__Vector_base<std::vector<std::__cxx11::basic_string<char" (binary_expression "pvVar14 = (this->directories_).\n              super__Vector_base<std::vector<std" (assignment_expression "pvVar14 = (this->directories_).\n              super__Vector_base<std" identifier = (binary_expression "(this->directories_).\n              super__Vector_base<std" (field_expression "(this->directories_).\n              super__Vector_base" (parenthesized_expression "(this->directories_)" ( (field_expression "this->directories_" identifier -> field_identifier) )) . field_identifier) < identifier)) (ERROR "::vector" : : identifier) < identifier) (ERROR "::__cxx11::basic_string" : : identifier : : identifier) < identifier) , identifier) : : (binary_expression "char_traits<char>,_std" (binary_expression "char_traits<char" identifier < identifier) > (ERROR "," ,) identifier) : : (binary_expression "allocator<char>_>,_std" (binary_expression "allocator<char>_" (binary_expression "allocator<char" identifier < identifier) > identifier) > (ERROR "," ,) identifier) : : (binary_expression "allocator<std" identifier < identifier) : : (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>_>_>_>,_std" (binary_expression "allocator<char>_>_>_" (binary_expression "allocator<char>_>_" (binary_expression "allocator<char>_" (binary_expression "allocator<char" identifier < identifier) > identifier) > identifier) > identifier) > (ERROR "," ,) identifier) : : (binary_expression "allocator<std" identifier < identifier) : : (binary_expression "vector<std" identifier < identifier) : : (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>_>,_std" (binary_expression "allocator<char>_" (binary_expression "allocator<char" identifier < identifier) > identifier) > (ERROR "," ,) identifier) : : (binary_expression "allocator<std" identifier < identifier) : : (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) : :) (expression_statement "allocator<char>_>_>_>_>_>\n              ._M_impl._M_finish;" (field_expression "allocator<char>_>_>_>_>_>\n              ._M_impl._M_finish" (field_expression "allocator<char>_>_>_>_>_>\n              ._M_impl" (binary_expression "allocator<char>_>_>_>_>_" (binary_expression "allocator<char>_>_>_>_" (binary_expression "allocator<char>_>_>_" (binary_expression "allocator<char>_>_" (binary_expression "allocator<char>_" (binary_expression "allocator<char" identifier < identifier) > identifier) > identifier) > identifier) > identifier) > identifier) (ERROR ">" >) . field_identifier) . field_identifier) ;) (ERROR "uVar5 = (long)pvVar14[-1].\n                  super__Vector_base<std::__cxx11::basic_string<char,_std::char_traits<char>,_std::allocator<char>_>,_std::allocator<std::__cxx11::basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_>_>\n                  ._M_impl._M_finish -\n            (long)pvVar14[-1].\n                  super__Vector_base<std::__cxx11::basic_string<char,_std::char_traits<char>,_std::allocator<char>_>,_std::allocator<std::__cxx11::basic_string<char,_std::char_traits<char>,_std::" (assignment_expression "uVar5 = (long)pvVar14[-1].\n                  super__Vector_base<std" identifier = (binary_expression "(long)pvVar14[-1].\n                  super__Vector_base<std" (cast_expression "(long)pvVar14[-1].\n                  super__Vector_base" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) (field_expression "pvVar14[-1].\n                  super__Vector_base" (subscript_expression "pvVar14[-1]" identifier [ number_literal ]) . field_identifier)) < identifier)) : : (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>_>,_std" (binary_expression "allocator<char>_" (binary_expression "allocator<char" identifier < identifier) > identifier) > (ERROR "," ,) identifier) : : (binary_expression "allocator<std" identifier < identifier) : : (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>_>_>_>\n                  ._M_impl._M_finish -\n            (long)pvVar14[-1].\n                  super__Vector_base<std" (binary_expression "allocator<char>_>_>_>\n                  ._M_impl._M_finish -\n            (long)pvVar14[-1].\n                  super__Vector_base" (field_expression "allocator<char>_>_>_>\n                  ._M_impl._M_finish" (field_expression "allocator<char>_>_>_>\n                  ._M_impl" (binary_expression "allocator<char>_>_>_" (binary_expression "allocator<char>_>_" (binary_expression "allocator<char>_" (binary_expression "allocator<char" identifier < identifier) > identifier) > identifier) > identifier) (ERROR ">" >) . field_identifier) . field_identifier) - (cast_expression "(long)pvVar14[-1].\n                  super__Vector_base" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) (field_expression "pvVar14[-1].\n                  super__Vector_base" (subscript_expression "pvVar14[-1]" identifier [ number_literal ]) . field_identifier))) < identifier) : : (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>_>,_std" (binary_expression "allocator<char>_" (binary_expression "allocator<char" identifier < identifier) > identifier) > (ERROR "," ,) identifier) : : (binary_expression "allocator<std" identifier < identifier) : : (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) : :) (expression_statement "allocator<char>_>_>_>\n                  ._M_impl._M_start >> 5;" (binary_expression "allocator<char>_>_>_>\n                  ._M_impl._M_start >> 5" (field_expression "allocator<char>_>_>_>\n                  ._M_impl._M_start" (field_expression "allocator<char>_>_>_>\n                  ._M_impl" (binary_expression "allocator<char>_>_>_" (binary_expression "allocator<char>_>_" (binary_expression "allocator<char>_" (binary_expression "allocator<char" identifier < identifier) > identifier) > identifier) > identifier) (ERROR ">" >) . field_identifier) . field_identifier) >> number_literal) ;) (expression_statement "uVar11 = uVar5 & 0xffffffff;" (assignment_expression "uVar11 = uVar5 & 0xffffffff" identifier = (binary_expression "uVar5 & 0xffffffff" identifier & number_literal)) ;) (if_statement "if ((int)uVar5 == 1) {\n      do {\n        local_68 = &local_60._M_string_length;\n        sVar6 = strlen((char *)lineptr);\n        std::__cxx11::basic_string<char,_std::char_traits<char>,_std::allocator<char>_>::\n        _M_construct<char_const*>\n                  ((basic_string<char,_std::char_traits<char>,_std::allocator<char>_> *)&local_68,\n                   lineptr,lineptr + sVar6);\n                    /* try { // try from 00173584 to 00173588 has its CatchHandler @ 001737cf */\n        std::\n        vector<std::__cxx11::basic_string<char,_std::char_traits<char>,_std::allocator<char>_>,_std::allocator<std::__cxx11::basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_>_>\n        ::\n        emplace_back<std::__cxx11::basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_>\n                  (pvVar14 + -1,\n                   (basic_string<char,_std::char_traits<char>,_std::allocator<char>_> *)&local_68);\n        if (local_68 != &local_60._M_string_length) {\n          operator_delete(local_68);\n        }\n        pvVar14 = (this->directories_).\n                  super__Vector_base<std::vector<std::__cxx11::basic_string<char,_std::char_traits<char>,_std::allocator<char>_>,_std::allocator<std::__cxx11::basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_>_>,_std::allocator<std::vector<std::__cxx11::basic_string<char,_std::char_traits<char>,_std::allocator<char>_>,_std::allocator<std::__cxx11::basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_>_>_>_>\n                  ._M_impl._M_finish;\n        uVar9 = (int)uVar11 + 1;\n        uVar11 = (ulong)uVar9;\n        pbVar2 = pvVar14[-1].\n                 super__Vector_base<std::__cxx11::basic_string<char,_std::char_traits<char>,_std::allocator<char>_>,_std::allocator<std::__cxx11::basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_>_>\n                 ._M_impl._M_finish;\n        lineptr = lineptr + pbVar2[-1]._M_string_length + 1;\n        if (*lineptr == '\0') goto LAB_001735b7;\n      } while (uVar9 == (uint)((long)pbVar2 -\n                               (long)pvVar14[-1].\n                                     super__Vector_base<std::__cxx11::basic_string<char,_std::char_traits<char>,_std::allocator<char>_>,_std::allocator<std::__cxx11::basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_>_>\n                                     ._M_impl._M_start >> 5));\n    }" if (parenthesized_expression "((int)uVar5 == 1)" ( (binary_expression "(int)uVar5 == 1" (cast_expression "(int)uVar5" ( (type_descriptor "int" primitive_type) ) identifier) == number_literal) )) (compound_statement "{\n      do {\n        local_68 = &local_60._M_string_length;\n        sVar6 = strlen((char *)lineptr);\n        std::__cxx11::basic_string<char,_std::char_traits<char>,_std::allocator<char>_>::\n        _M_construct<char_const*>\n                  ((basic_string<char,_std::char_traits<char>,_std::allocator<char>_> *)&local_68,\n                   lineptr,lineptr + sVar6);\n                    /* try { // try from 00173584 to 00173588 has its CatchHandler @ 001737cf */\n        std::\n        vector<std::__cxx11::basic_string<char,_std::char_traits<char>,_std::allocator<char>_>,_std::allocator<std::__cxx11::basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_>_>\n        ::\n        emplace_back<std::__cxx11::basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_>\n                  (pvVar14 + -1,\n                   (basic_string<char,_std::char_traits<char>,_std::allocator<char>_> *)&local_68);\n        if (local_68 != &local_60._M_string_length) {\n          operator_delete(local_68);\n        }\n        pvVar14 = (this->directories_).\n                  super__Vector_base<std::vector<std::__cxx11::basic_string<char,_std::char_traits<char>,_std::allocator<char>_>,_std::allocator<std::__cxx11::basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_>_>,_std::allocator<std::vector<std::__cxx11::basic_string<char,_std::char_traits<char>,_std::allocator<char>_>,_std::allocator<std::__cxx11::basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_>_>_>_>\n                  ._M_impl._M_finish;\n        uVar9 = (int)uVar11 + 1;\n        uVar11 = (ulong)uVar9;\n        pbVar2 = pvVar14[-1].\n                 super__Vector_base<std::__cxx11::basic_string<char,_std::char_traits<char>,_std::allocator<char>_>,_std::allocator<std::__cxx11::basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_>_>\n                 ._M_impl._M_finish;\n        lineptr = lineptr + pbVar2[-1]._M_string_length + 1;\n        if (*lineptr == '\0') goto LAB_001735b7;\n      } while (uVar9 == (uint)((long)pbVar2 -\n                               (long)pvVar14[-1].\n                                     super__Vector_base<std::__cxx11::basic_string<char,_std::char_traits<char>,_std::allocator<char>_>,_std::allocator<std::__cxx11::basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_>_>\n                                     ._M_impl._M_start >> 5));\n    }" { (do_statement "do {\n        local_68 = &local_60._M_string_length;\n        sVar6 = strlen((char *)lineptr);\n        std::__cxx11::basic_string<char,_std::char_traits<char>,_std::allocator<char>_>::\n        _M_construct<char_const*>\n                  ((basic_string<char,_std::char_traits<char>,_std::allocator<char>_> *)&local_68,\n                   lineptr,lineptr + sVar6);\n                    /* try { // try from 00173584 to 00173588 has its CatchHandler @ 001737cf */\n        std::\n        vector<std::__cxx11::basic_string<char,_std::char_traits<char>,_std::allocator<char>_>,_std::allocator<std::__cxx11::basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_>_>\n        ::\n        emplace_back<std::__cxx11::basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_>\n                  (pvVar14 + -1,\n                   (basic_string<char,_std::char_traits<char>,_std::allocator<char>_> *)&local_68);\n        if (local_68 != &local_60._M_string_length) {\n          operator_delete(local_68);\n        }\n        pvVar14 = (this->directories_).\n                  super__Vector_base<std::vector<std::__cxx11::basic_string<char,_std::char_traits<char>,_std::allocator<char>_>,_std::allocator<std::__cxx11::basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_>_>,_std::allocator<std::vector<std::__cxx11::basic_string<char,_std::char_traits<char>,_std::allocator<char>_>,_std::allocator<std::__cxx11::basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_>_>_>_>\n                  ._M_impl._M_finish;\n        uVar9 = (int)uVar11 + 1;\n        uVar11 = (ulong)uVar9;\n        pbVar2 = pvVar14[-1].\n                 super__Vector_base<std::__cxx11::basic_string<char,_std::char_traits<char>,_std::allocator<char>_>,_std::allocator<std::__cxx11::basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_>_>\n                 ._M_impl._M_finish;\n        lineptr = lineptr + pbVar2[-1]._M_string_length + 1;\n        if (*lineptr == '\0') goto LAB_001735b7;\n      } while (uVar9 == (uint)((long)pbVar2 -\n                               (long)pvVar14[-1].\n                                     super__Vector_base<std::__cxx11::basic_string<char,_std::char_traits<char>,_std::allocator<char>_>,_std::allocator<std::__cxx11::basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_>_>\n                                     ._M_impl._M_start >> 5));" do (compound_statement "{\n        local_68 = &local_60._M_string_length;\n        sVar6 = strlen((char *)lineptr);\n        std::__cxx11::basic_string<char,_std::char_traits<char>,_std::allocator<char>_>::\n        _M_construct<char_const*>\n                  ((basic_string<char,_std::char_traits<char>,_std::allocator<char>_> *)&local_68,\n                   lineptr,lineptr + sVar6);\n                    /* try { // try from 00173584 to 00173588 has its CatchHandler @ 001737cf */\n        std::\n        vector<std::__cxx11::basic_string<char,_std::char_traits<char>,_std::allocator<char>_>,_std::allocator<std::__cxx11::basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_>_>\n        ::\n        emplace_back<std::__cxx11::basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_>\n                  (pvVar14 + -1,\n                   (basic_string<char,_std::char_traits<char>,_std::allocator<char>_> *)&local_68);\n        if (local_68 != &local_60._M_string_length) {\n          operator_delete(local_68);\n        }\n        pvVar14 = (this->directories_).\n                  super__Vector_base<std::vector<std::__cxx11::basic_string<char,_std::char_traits<char>,_std::allocator<char>_>,_std::allocator<std::__cxx11::basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_>_>,_std::allocator<std::vector<std::__cxx11::basic_string<char,_std::char_traits<char>,_std::allocator<char>_>,_std::allocator<std::__cxx11::basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_>_>_>_>\n                  ._M_impl._M_finish;\n        uVar9 = (int)uVar11 + 1;\n        uVar11 = (ulong)uVar9;\n        pbVar2 = pvVar14[-1].\n                 super__Vector_base<std::__cxx11::basic_string<char,_std::char_traits<char>,_std::allocator<char>_>,_std::allocator<std::__cxx11::basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_>_>\n                 ._M_impl._M_finish;\n        lineptr = lineptr + pbVar2[-1]._M_string_length + 1;\n        if (*lineptr == '\0') goto LAB_001735b7;\n      }" { (expression_statement "local_68 = &local_60._M_string_length;" (assignment_expression "local_68 = &local_60._M_string_length" identifier = (pointer_expression "&local_60._M_string_length" & (field_expression "local_60._M_string_length" identifier . field_identifier))) ;) (expression_statement "sVar6 = strlen((char *)lineptr);" (assignment_expression "sVar6 = strlen((char *)lineptr)" identifier = (call_expression "strlen((char *)lineptr)" identifier (argument_list "((char *)lineptr)" ( (cast_expression "(char *)lineptr" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) identifier) )))) ;) (labeled_statement "std::__cxx11::basic_string<char,_std::char_traits<char>,_std::allocator<char>_>::\n        _M_construct<char_const*>\n                  ((basic_string<char,_std::char_traits<char>,_std::allocator<char>_> *)&local_68,\n                   lineptr,lineptr + sVar6);" 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*>\n                  ((basic_string<char,_std::char_traits<char>,_std::allocator<char>_> *)&local_68,\n                   lineptr,lineptr + sVar6);" (binary_expression "_M_construct<char_const*>\n                  ((basic_string<char,_std::char_traits<char>,_std::allocator<char>_> *)&local_68,\n                   lineptr,lineptr + sVar6)" (binary_expression "_M_construct<char_const" identifier < identifier) (ERROR "*" *) > (parenthesized_expression "((basic_string<char,_std::char_traits<char>,_std::allocator<char>_> *)&local_68,\n                   lineptr,lineptr + sVar6)" ( (comma_expression "(basic_string<char,_std::char_traits<char>,_std::allocator<char>_> *)&local_68,\n                   lineptr,lineptr + sVar6" (binary_expression "(basic_string<char,_std::char_traits<char>,_std::allocator<char>_> *)&local_68" (parenthesized_expression "(basic_string<char,_std::char_traits<char>,_std::allocator<char>_> *)" ( (ERROR "basic_string<char,_std::char_traits<char>,_std::" (comma_expression "basic_string<char,_std" (binary_expression "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>_> *" (binary_expression "allocator<char>_" (binary_expression "allocator<char" identifier < identifier) > identifier) > (pointer_expression "*" * identifier)) )) & identifier) , (comma_expression "lineptr,lineptr + sVar6" identifier , (binary_expression "lineptr + sVar6" identifier + identifier))) ))) ;)) comment (ERROR "std::\n        vector<std::__cxx11::basic_string<char,_std::char_traits<char>,_std::allocator<char>_>,_std::allocator<std::__cxx11::basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_>_>\n        ::\n        emplace_back<std::__cxx11::basic_string<char,_std::char_traits<char>,_std::" (comma_expression "std::\n        vector<std::__cxx11::basic_string<char,_std::char_traits<char>,_std::allocator<char>_>,_std" identifier (ERROR "::\n        vector<std::__cxx11::basic_string<char,_std::char_traits<char>,_std::allocator<char>_>" : : (binary_expression "vector<std" identifier < identifier) : : (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) >) , identifier) : : (binary_expression "allocator<std" identifier < identifier) : : (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>_>_>_>\n        ::\n        emplace_back<std" (binary_expression "allocator<char>_>_>_>\n        ::\n        emplace_back" (binary_expression "allocator<char>_>_>_" (binary_expression "allocator<char>_>_" (binary_expression "allocator<char>_" (binary_expression "allocator<char" identifier < identifier) > identifier) > identifier) > identifier) > (ERROR "::" : :) identifier) < identifier) : : (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) : :) (expression_statement "allocator<char>_>_>\n                  (pvVar14 + -1,\n                   (basic_string<char,_std::char_traits<char>,_std::allocator<char>_> *)&local_68);" (binary_expression "allocator<char>_>_>\n                  (pvVar14 + -1,\n                   (basic_string<char,_std::char_traits<char>,_std::allocator<char>_> *)&local_68)" (binary_expression "allocator<char>_>_" (binary_expression "allocator<char>_" (binary_expression "allocator<char" identifier < identifier) > identifier) > identifier) > (parenthesized_expression "(pvVar14 + -1,\n                   (basic_string<char,_std::char_traits<char>,_std::allocator<char>_> *)&local_68)" ( (comma_expression "pvVar14 + -1,\n                   (basic_string<char,_std::char_traits<char>,_std::allocator<char>_> *)&local_68" (binary_expression "pvVar14 + -1" identifier + number_literal) , (binary_expression "(basic_string<char,_std::char_traits<char>,_std::allocator<char>_> *)&local_68" (parenthesized_expression "(basic_string<char,_std::char_traits<char>,_std::allocator<char>_> *)" ( (ERROR "basic_string<char,_std::char_traits<char>,_std::" (comma_expression "basic_string<char,_std" (binary_expression "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>_> *" (binary_expression "allocator<char>_" (binary_expression "allocator<char" identifier < identifier) > identifier) > (pointer_expression "*" * identifier)) )) & identifier)) ))) ;) (if_statement "if (local_68 != &local_60._M_string_length) {\n          operator_delete(local_68);\n        }" if (parenthesized_expression "(local_68 != &local_60._M_string_length)" ( (binary_expression "local_68 != &local_60._M_string_length" identifier != (pointer_expression "&local_60._M_string_length" & (field_expression "local_60._M_string_length" identifier . field_identifier))) )) (compound_statement "{\n          operator_delete(local_68);\n        }" { (expression_statement "operator_delete(local_68);" (call_expression "operator_delete(local_68)" identifier (argument_list "(local_68)" ( identifier ))) ;) })) (ERROR "pvVar14 = (this->directories_).\n                  super__Vector_base<std::vector<std::__cxx11::basic_string<char,_std::char_traits<char>,_std::allocator<char>_>,_std::allocator<std::__cxx11::basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_>_>,_std::allocator<std::vector<std::__cxx11::basic_string<char,_std::char_traits<char>,_std::allocator<char>_>,_std::allocator<std::__cxx11::basic_string<char,_std::char_traits<char>,_std::" (comma_expression "pvVar14 = (this->directories_).\n                  super__Vector_base<std::vector<std::__cxx11::basic_string<char,_std" (binary_expression "pvVar14 = (this->directories_).\n                  super__Vector_base<std::vector<std::__cxx11::basic_string<char" (binary_expression "pvVar14 = (this->directories_).\n                  super__Vector_base<std::vector<std" (assignment_expression "pvVar14 = (this->directories_).\n                  super__Vector_base<std" identifier = (binary_expression "(this->directories_).\n                  super__Vector_base<std" (field_expression "(this->directories_).\n                  super__Vector_base" (parenthesized_expression "(this->directories_)" ( (field_expression "this->directories_" identifier -> field_identifier) )) . field_identifier) < identifier)) (ERROR "::vector" : : identifier) < identifier) (ERROR "::__cxx11::basic_string" : : identifier : : identifier) < identifier) , identifier) : : (binary_expression "char_traits<char>,_std" (binary_expression "char_traits<char" identifier < identifier) > (ERROR "," ,) identifier) : : (binary_expression "allocator<char>_>,_std" (binary_expression "allocator<char>_" (binary_expression "allocator<char" identifier < identifier) > identifier) > (ERROR "," ,) identifier) : : (binary_expression "allocator<std" identifier < identifier) : : (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>_>_>_>,_std" (binary_expression "allocator<char>_>_>_" (binary_expression "allocator<char>_>_" (binary_expression "allocator<char>_" (binary_expression "allocator<char" identifier < identifier) > identifier) > identifier) > identifier) > (ERROR "," ,) identifier) : : (binary_expression "allocator<std" identifier < identifier) : : (binary_expression "vector<std" identifier < identifier) : : (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>_>,_std" (binary_expression "allocator<char>_" (binary_expression "allocator<char" identifier < identifier) > identifier) > (ERROR "," ,) identifier) : : (binary_expression "allocator<std" identifier < identifier) : : (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) : :) (expression_statement "allocator<char>_>_>_>_>_>\n                  ._M_impl._M_finish;" (field_expression "allocator<char>_>_>_>_>_>\n                  ._M_impl._M_finish" (field_expression "allocator<char>_>_>_>_>_>\n                  ._M_impl" (binary_expression "allocator<char>_>_>_>_>_" (binary_expression "allocator<char>_>_>_>_" (binary_expression "allocator<char>_>_>_" (binary_expression "allocator<char>_>_" (binary_expression "allocator<char>_" (binary_expression "allocator<char" identifier < identifier) > identifier) > identifier) > identifier) > identifier) > identifier) (ERROR ">" >) . field_identifier) . field_identifier) ;) (expression_statement "uVar9 = (int)uVar11 + 1;" (assignment_expression "uVar9 = (int)uVar11 + 1" identifier = (binary_expression "(int)uVar11 + 1" (cast_expression "(int)uVar11" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal)) ;) (expression_statement "uVar11 = (ulong)uVar9;" (assignment_expression "uVar11 = (ulong)uVar9" identifier = (cast_expression "(ulong)uVar9" ( (type_descriptor "ulong" type_identifier) ) identifier)) ;) (ERROR "pbVar2 = pvVar14[-1].\n                 super__Vector_base<std::__cxx11::basic_string<char,_std::char_traits<char>,_std::allocator<char>_>,_std::allocator<std::__cxx11::basic_string<char,_std::char_traits<char>,_std::" (assignment_expression "pbVar2 = pvVar14[-1].\n                 super__Vector_base<std" identifier = (binary_expression "pvVar14[-1].\n                 super__Vector_base<std" (field_expression "pvVar14[-1].\n                 super__Vector_base" (subscript_expression "pvVar14[-1]" identifier [ number_literal ]) . field_identifier) < identifier)) : : (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>_>,_std" (binary_expression "allocator<char>_" (binary_expression "allocator<char" identifier < identifier) > identifier) > (ERROR "," ,) identifier) : : (binary_expression "allocator<std" identifier < identifier) : : (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) : :) (expression_statement "allocator<char>_>_>_>\n                 ._M_impl._M_finish;" (field_expression "allocator<char>_>_>_>\n                 ._M_impl._M_finish" (field_expression "allocator<char>_>_>_>\n                 ._M_impl" (binary_expression "allocator<char>_>_>_" (binary_expression "allocator<char>_>_" (binary_expression "allocator<char>_" (binary_expression "allocator<char" identifier < identifier) > identifier) > identifier) > identifier) (ERROR ">" >) . field_identifier) . field_identifier) ;) (expression_statement "lineptr = lineptr + pbVar2[-1]._M_string_length + 1;" (assignment_expression "lineptr = lineptr + pbVar2[-1]._M_string_length + 1" identifier = (binary_expression "lineptr + pbVar2[-1]._M_string_length + 1" (binary_expression "lineptr + pbVar2[-1]._M_string_length" identifier + (field_expression "pbVar2[-1]._M_string_length" (subscript_expression "pbVar2[-1]" identifier [ number_literal ]) . field_identifier)) + number_literal)) ;) (if_statement "if (*lineptr == '\0') goto LAB_001735b7;" if (parenthesized_expression "(*lineptr == '\0')" ( (binary_expression "*lineptr == '\0'" (pointer_expression "*lineptr" * identifier) == (char_literal "'\0'" ' escape_sequence ')) )) (goto_statement "goto LAB_001735b7;" goto statement_identifier ;)) }) while (parenthesized_expression "(uVar9 == (uint)((long)pbVar2 -\n                               (long)pvVar14[-1].\n                                     super__Vector_base<std::__cxx11::basic_string<char,_std::char_traits<char>,_std::allocator<char>_>,_std::allocator<std::__cxx11::basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_>_>\n                                     ._M_impl._M_start >> 5))" ( (binary_expression "uVar9 == (uint)((long)pbVar2 -\n                               (long)pvVar14[-1].\n                                     super__Vector_base<std::__cxx11::basic_string<char,_std::char_traits<char>,_std::allocator<char>_>,_std::allocator<std::__cxx11::basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_>_>\n                                     ._M_impl._M_start >> 5)" identifier == (call_expression "(uint)((long)pbVar2 -\n                               (long)pvVar14[-1].\n                                     super__Vector_base<std::__cxx11::basic_string<char,_std::char_traits<char>,_std::allocator<char>_>,_std::allocator<std::__cxx11::basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_>_>\n                                     ._M_impl._M_start >> 5)" (parenthesized_expression "(uint)" ( identifier )) (argument_list "((long)pbVar2 -\n                               (long)pvVar14[-1].\n                                     super__Vector_base<std::__cxx11::basic_string<char,_std::char_traits<char>,_std::allocator<char>_>,_std::allocator<std::__cxx11::basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_>_>\n                                     ._M_impl._M_start >> 5)" ( (binary_expression "(long)pbVar2 -\n                               (long)pvVar14[-1].\n                                     super__Vector_base<std::__cxx11::basic_string<char" (binary_expression "(long)pbVar2 -\n                               (long)pvVar14[-1].\n                                     super__Vector_base<std" (binary_expression "(long)pbVar2 -\n                               (long)pvVar14[-1].\n                                     super__Vector_base" (cast_expression "(long)pbVar2" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) identifier) - (cast_expression "(long)pvVar14[-1].\n                                     super__Vector_base" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) (field_expression "pvVar14[-1].\n                                     super__Vector_base" (subscript_expression "pvVar14[-1]" identifier [ number_literal ]) . field_identifier))) < identifier) (ERROR "::__cxx11::basic_string" : : identifier : : identifier) < identifier) , (ERROR "_std::" identifier : :) (binary_expression "char_traits<char" identifier < identifier) (ERROR ">" >) , (ERROR "_std::" identifier : :) (binary_expression "allocator<char>_" (binary_expression "allocator<char" identifier < identifier) > identifier) (ERROR ">" >) , (ERROR "_std::allocator<std::__cxx11::" identifier : : (binary_expression "allocator<std" identifier < identifier) : : identifier : :) (binary_expression "basic_string<char" identifier < identifier) , (ERROR "_std::" identifier : :) (binary_expression "char_traits<char" identifier < identifier) (ERROR ">" >) , (ERROR "_std::" identifier : :) (binary_expression "allocator<char>_>_>_>\n                                     ._M_impl._M_start >> 5" (field_expression "allocator<char>_>_>_>\n                                     ._M_impl._M_start" (field_expression "allocator<char>_>_>_>\n                                     ._M_impl" (binary_expression "allocator<char>_>_>_" (binary_expression "allocator<char>_>_" (binary_expression "allocator<char>_" (binary_expression "allocator<char" identifier < identifier) > identifier) > identifier) > identifier) (ERROR ">" >) . field_identifier) . field_identifier) >> number_literal) )))) )) ;) })) comment (expression_statement "do_gold_unreachable("../../gold/dwarf_reader.cc",0x6c4,"read_header_tables");" (call_expression "do_gold_unreachable("../../gold/dwarf_reader.cc",0x6c4,"read_header_tables")" identifier (argument_list "("../../gold/dwarf_reader.cc",0x6c4,"read_header_tables")" ( (string_literal ""../../gold/dwarf_reader.cc"" " string_content ") , number_literal , (string_literal ""read_header_tables"" " string_content ") ))) ;) })) (labeled_statement "LAB_001735b7:\n  pbVar12 = lineptr + 1;" statement_identifier : (expression_statement "pbVar12 = lineptr + 1;" (assignment_expression "pbVar12 = lineptr + 1" identifier = (binary_expression "lineptr + 1" identifier + number_literal)) ;)) (if_statement "if (lineptr[1] != '\0') {\n    iVar8 = 1;\n    __s = pbVar12;\n    do {\n      sVar6 = strlen((char *)__s);\n      pbVar13 = __s + sVar6 + 1;\n      bVar7 = *pbVar13;\n      uVar5 = (ulong)bVar7;\n      pbVar12 = pbVar13 + 1;\n      if ((char)bVar7 < '\0') {\n        uVar5 = read_unsigned_LEB_128_x(pbVar12,&len,bVar7);\n        pbVar12 = pbVar13 + len;\n      }\n      else {\n        len = 1;\n      }\n      pvVar14 = (this->directories_).\n                super__Vector_base<std::vector<std::__cxx11::basic_string<char,_std::char_traits<char>,_std::allocator<char>_>,_std::allocator<std::__cxx11::basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_>_>,_std::allocator<std::vector<std::__cxx11::basic_string<char,_std::char_traits<char>,_std::allocator<char>_>,_std::allocator<std::__cxx11::basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_>_>_>_>\n                ._M_impl._M_finish;\n      pbVar13 = pbVar12 + 1;\n      if ((ulong)((long)pvVar14[-1].\n                        super__Vector_base<std::__cxx11::basic_string<char,_std::char_traits<char>,_std::allocator<char>_>,_std::allocator<std::__cxx11::basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_>_>\n                        ._M_impl._M_finish -\n                  (long)pvVar14[-1].\n                        super__Vector_base<std::__cxx11::basic_string<char,_std::char_traits<char>,_std::allocator<char>_>,_std::allocator<std::__cxx11::basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_>_>\n                        ._M_impl._M_start >> 5) <= uVar5) {\n        uVar5 = 0;\n      }\n      if ((char)*pbVar12 < '\0') {\n        read_unsigned_LEB_128_x(pbVar13,&len,*pbVar12);\n        pbVar13 = pbVar12 + len;\n        bVar7 = *pbVar13;\n        pbVar12 = pbVar13 + 1;\n        if ((char)bVar7 < '\0') goto LAB_0017374d;\nLAB_00173644:\n        len = 1;\n      }\n      else {\n        bVar7 = *pbVar13;\n        pbVar12 = pbVar12 + 2;\n        len = 1;\n        if (-1 < (char)bVar7) goto LAB_00173644;\nLAB_0017374d:\n        read_unsigned_LEB_128_x(pbVar12,&len,bVar7);\n        pbVar12 = pbVar13 + len;\n      }\n      pvVar3 = (this->files_).\n               super__Vector_base<std::vector<std::pair<int,_std::__cxx11::basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_>,_std::allocator<std::pair<int,_std::__cxx11::basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_>_>_>,_std::allocator<std::vector<std::pair<int,_std::__cxx11::basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_>,_std::allocator<std::pair<int,_std::__cxx11::basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_>_>_>_>_>\n               ._M_impl._M_finish;\n      if (iVar8 != (int)((long)pvVar3[-1].\n                               super__Vector_base<std::pair<int,_std::__cxx11::basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_>,_std::allocator<std::pair<int,_std::__cxx11::basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_>_>_>\n                               ._M_impl._M_finish -\n                         (long)pvVar3[-1].\n                               super__Vector_base<std::pair<int,_std::__cxx11::basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_>,_std::allocator<std::pair<int,_std::__cxx11::basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_>_>_>\n                               ._M_impl._M_start >> 3) * -0x33333333) {\n                    /* WARNING: Subroutine does not return */\n        do_gold_unreachable("../../gold/dwarf_reader.cc",0x6e4,"read_header_tables");\n      }\n      local_68 = (size_type *)CONCAT44(local_68._4_4_,(int)uVar5);\n      local_60._M_dataplus._M_p = (pointer)&local_60.field_2;\n      sVar6 = strlen((char *)__s);\n      std::__cxx11::basic_string<char,_std::char_traits<char>,_std::allocator<char>_>::\n      _M_construct<char_const*>(&local_60,__s,__s + sVar6);\n                    /* try { // try from 001736a4 to 001736a8 has its CatchHandler @ 00173809 */\n      std::\n      vector<std::pair<int,_std::__cxx11::basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_>,_std::allocator<std::pair<int,_std::__cxx11::basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_>_>_>\n      ::\n      emplace_back<std::pair<int,_std::__cxx11::basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_>_>\n                (pvVar3 + -1,\n                 (pair<int,_std::__cxx11::basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_>\n                  *)&local_68);\n      if ((anon_union_16_2_edb7204a_for_basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_9\n           *)local_60._M_dataplus._M_p != &local_60.field_2) {\n        operator_delete(local_60._M_dataplus._M_p);\n      }\n      iVar8 = iVar8 + 1;\n      __s = pbVar12;\n    } while (*pbVar12 != 0);\n  }" if (parenthesized_expression "(lineptr[1] != '\0')" ( (binary_expression "lineptr[1] != '\0'" (subscript_expression "lineptr[1]" identifier [ number_literal ]) != (char_literal "'\0'" ' escape_sequence ')) )) (compound_statement "{\n    iVar8 = 1;\n    __s = pbVar12;\n    do {\n      sVar6 = strlen((char *)__s);\n      pbVar13 = __s + sVar6 + 1;\n      bVar7 = *pbVar13;\n      uVar5 = (ulong)bVar7;\n      pbVar12 = pbVar13 + 1;\n      if ((char)bVar7 < '\0') {\n        uVar5 = read_unsigned_LEB_128_x(pbVar12,&len,bVar7);\n        pbVar12 = pbVar13 + len;\n      }\n      else {\n        len = 1;\n      }\n      pvVar14 = (this->directories_).\n                super__Vector_base<std::vector<std::__cxx11::basic_string<char,_std::char_traits<char>,_std::allocator<char>_>,_std::allocator<std::__cxx11::basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_>_>,_std::allocator<std::vector<std::__cxx11::basic_string<char,_std::char_traits<char>,_std::allocator<char>_>,_std::allocator<std::__cxx11::basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_>_>_>_>\n                ._M_impl._M_finish;\n      pbVar13 = pbVar12 + 1;\n      if ((ulong)((long)pvVar14[-1].\n                        super__Vector_base<std::__cxx11::basic_string<char,_std::char_traits<char>,_std::allocator<char>_>,_std::allocator<std::__cxx11::basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_>_>\n                        ._M_impl._M_finish -\n                  (long)pvVar14[-1].\n                        super__Vector_base<std::__cxx11::basic_string<char,_std::char_traits<char>,_std::allocator<char>_>,_std::allocator<std::__cxx11::basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_>_>\n                        ._M_impl._M_start >> 5) <= uVar5) {\n        uVar5 = 0;\n      }\n      if ((char)*pbVar12 < '\0') {\n        read_unsigned_LEB_128_x(pbVar13,&len,*pbVar12);\n        pbVar13 = pbVar12 + len;\n        bVar7 = *pbVar13;\n        pbVar12 = pbVar13 + 1;\n        if ((char)bVar7 < '\0') goto LAB_0017374d;\nLAB_00173644:\n        len = 1;\n      }\n      else {\n        bVar7 = *pbVar13;\n        pbVar12 = pbVar12 + 2;\n        len = 1;\n        if (-1 < (char)bVar7) goto LAB_00173644;\nLAB_0017374d:\n        read_unsigned_LEB_128_x(pbVar12,&len,bVar7);\n        pbVar12 = pbVar13 + len;\n      }\n      pvVar3 = (this->files_).\n               super__Vector_base<std::vector<std::pair<int,_std::__cxx11::basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_>,_std::allocator<std::pair<int,_std::__cxx11::basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_>_>_>,_std::allocator<std::vector<std::pair<int,_std::__cxx11::basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_>,_std::allocator<std::pair<int,_std::__cxx11::basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_>_>_>_>_>\n               ._M_impl._M_finish;\n      if (iVar8 != (int)((long)pvVar3[-1].\n                               super__Vector_base<std::pair<int,_std::__cxx11::basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_>,_std::allocator<std::pair<int,_std::__cxx11::basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_>_>_>\n                               ._M_impl._M_finish -\n                         (long)pvVar3[-1].\n                               super__Vector_base<std::pair<int,_std::__cxx11::basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_>,_std::allocator<std::pair<int,_std::__cxx11::basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_>_>_>\n                               ._M_impl._M_start >> 3) * -0x33333333) {\n                    /* WARNING: Subroutine does not return */\n        do_gold_unreachable("../../gold/dwarf_reader.cc",0x6e4,"read_header_tables");\n      }\n      local_68 = (size_type *)CONCAT44(local_68._4_4_,(int)uVar5);\n      local_60._M_dataplus._M_p = (pointer)&local_60.field_2;\n      sVar6 = strlen((char *)__s);\n      std::__cxx11::basic_string<char,_std::char_traits<char>,_std::allocator<char>_>::\n      _M_construct<char_const*>(&local_60,__s,__s + sVar6);\n                    /* try { // try from 001736a4 to 001736a8 has its CatchHandler @ 00173809 */\n      std::\n      vector<std::pair<int,_std::__cxx11::basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_>,_std::allocator<std::pair<int,_std::__cxx11::basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_>_>_>\n      ::\n      emplace_back<std::pair<int,_std::__cxx11::basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_>_>\n                (pvVar3 + -1,\n                 (pair<int,_std::__cxx11::basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_>\n                  *)&local_68);\n      if ((anon_union_16_2_edb7204a_for_basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_9\n           *)local_60._M_dataplus._M_p != &local_60.field_2) {\n        operator_delete(local_60._M_dataplus._M_p);\n      }\n      iVar8 = iVar8 + 1;\n      __s = pbVar12;\n    } while (*pbVar12 != 0);\n  }" { (expression_statement "iVar8 = 1;" (assignment_expression "iVar8 = 1" identifier = number_literal) ;) (expression_statement "__s = pbVar12;" (assignment_expression "__s = pbVar12" identifier = identifier) ;) (do_statement "do {\n      sVar6 = strlen((char *)__s);\n      pbVar13 = __s + sVar6 + 1;\n      bVar7 = *pbVar13;\n      uVar5 = (ulong)bVar7;\n      pbVar12 = pbVar13 + 1;\n      if ((char)bVar7 < '\0') {\n        uVar5 = read_unsigned_LEB_128_x(pbVar12,&len,bVar7);\n        pbVar12 = pbVar13 + len;\n      }\n      else {\n        len = 1;\n      }\n      pvVar14 = (this->directories_).\n                super__Vector_base<std::vector<std::__cxx11::basic_string<char,_std::char_traits<char>,_std::allocator<char>_>,_std::allocator<std::__cxx11::basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_>_>,_std::allocator<std::vector<std::__cxx11::basic_string<char,_std::char_traits<char>,_std::allocator<char>_>,_std::allocator<std::__cxx11::basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_>_>_>_>\n                ._M_impl._M_finish;\n      pbVar13 = pbVar12 + 1;\n      if ((ulong)((long)pvVar14[-1].\n                        super__Vector_base<std::__cxx11::basic_string<char,_std::char_traits<char>,_std::allocator<char>_>,_std::allocator<std::__cxx11::basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_>_>\n                        ._M_impl._M_finish -\n                  (long)pvVar14[-1].\n                        super__Vector_base<std::__cxx11::basic_string<char,_std::char_traits<char>,_std::allocator<char>_>,_std::allocator<std::__cxx11::basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_>_>\n                        ._M_impl._M_start >> 5) <= uVar5) {\n        uVar5 = 0;\n      }\n      if ((char)*pbVar12 < '\0') {\n        read_unsigned_LEB_128_x(pbVar13,&len,*pbVar12);\n        pbVar13 = pbVar12 + len;\n        bVar7 = *pbVar13;\n        pbVar12 = pbVar13 + 1;\n        if ((char)bVar7 < '\0') goto LAB_0017374d;\nLAB_00173644:\n        len = 1;\n      }\n      else {\n        bVar7 = *pbVar13;\n        pbVar12 = pbVar12 + 2;\n        len = 1;\n        if (-1 < (char)bVar7) goto LAB_00173644;\nLAB_0017374d:\n        read_unsigned_LEB_128_x(pbVar12,&len,bVar7);\n        pbVar12 = pbVar13 + len;\n      }\n      pvVar3 = (this->files_).\n               super__Vector_base<std::vector<std::pair<int,_std::__cxx11::basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_>,_std::allocator<std::pair<int,_std::__cxx11::basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_>_>_>,_std::allocator<std::vector<std::pair<int,_std::__cxx11::basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_>,_std::allocator<std::pair<int,_std::__cxx11::basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_>_>_>_>_>\n               ._M_impl._M_finish;\n      if (iVar8 != (int)((long)pvVar3[-1].\n                               super__Vector_base<std::pair<int,_std::__cxx11::basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_>,_std::allocator<std::pair<int,_std::__cxx11::basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_>_>_>\n                               ._M_impl._M_finish -\n                         (long)pvVar3[-1].\n                               super__Vector_base<std::pair<int,_std::__cxx11::basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_>,_std::allocator<std::pair<int,_std::__cxx11::basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_>_>_>\n                               ._M_impl._M_start >> 3) * -0x33333333) {\n                    /* WARNING: Subroutine does not return */\n        do_gold_unreachable("../../gold/dwarf_reader.cc",0x6e4,"read_header_tables");\n      }\n      local_68 = (size_type *)CONCAT44(local_68._4_4_,(int)uVar5);\n      local_60._M_dataplus._M_p = (pointer)&local_60.field_2;\n      sVar6 = strlen((char *)__s);\n      std::__cxx11::basic_string<char,_std::char_traits<char>,_std::allocator<char>_>::\n      _M_construct<char_const*>(&local_60,__s,__s + sVar6);\n                    /* try { // try from 001736a4 to 001736a8 has its CatchHandler @ 00173809 */\n      std::\n      vector<std::pair<int,_std::__cxx11::basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_>,_std::allocator<std::pair<int,_std::__cxx11::basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_>_>_>\n      ::\n      emplace_back<std::pair<int,_std::__cxx11::basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_>_>\n                (pvVar3 + -1,\n                 (pair<int,_std::__cxx11::basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_>\n                  *)&local_68);\n      if ((anon_union_16_2_edb7204a_for_basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_9\n           *)local_60._M_dataplus._M_p != &local_60.field_2) {\n        operator_delete(local_60._M_dataplus._M_p);\n      }\n      iVar8 = iVar8 + 1;\n      __s = pbVar12;\n    } while (*pbVar12 != 0);" do (compound_statement "{\n      sVar6 = strlen((char *)__s);\n      pbVar13 = __s + sVar6 + 1;\n      bVar7 = *pbVar13;\n      uVar5 = (ulong)bVar7;\n      pbVar12 = pbVar13 + 1;\n      if ((char)bVar7 < '\0') {\n        uVar5 = read_unsigned_LEB_128_x(pbVar12,&len,bVar7);\n        pbVar12 = pbVar13 + len;\n      }\n      else {\n        len = 1;\n      }\n      pvVar14 = (this->directories_).\n                super__Vector_base<std::vector<std::__cxx11::basic_string<char,_std::char_traits<char>,_std::allocator<char>_>,_std::allocator<std::__cxx11::basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_>_>,_std::allocator<std::vector<std::__cxx11::basic_string<char,_std::char_traits<char>,_std::allocator<char>_>,_std::allocator<std::__cxx11::basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_>_>_>_>\n                ._M_impl._M_finish;\n      pbVar13 = pbVar12 + 1;\n      if ((ulong)((long)pvVar14[-1].\n                        super__Vector_base<std::__cxx11::basic_string<char,_std::char_traits<char>,_std::allocator<char>_>,_std::allocator<std::__cxx11::basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_>_>\n                        ._M_impl._M_finish -\n                  (long)pvVar14[-1].\n                        super__Vector_base<std::__cxx11::basic_string<char,_std::char_traits<char>,_std::allocator<char>_>,_std::allocator<std::__cxx11::basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_>_>\n                        ._M_impl._M_start >> 5) <= uVar5) {\n        uVar5 = 0;\n      }\n      if ((char)*pbVar12 < '\0') {\n        read_unsigned_LEB_128_x(pbVar13,&len,*pbVar12);\n        pbVar13 = pbVar12 + len;\n        bVar7 = *pbVar13;\n        pbVar12 = pbVar13 + 1;\n        if ((char)bVar7 < '\0') goto LAB_0017374d;\nLAB_00173644:\n        len = 1;\n      }\n      else {\n        bVar7 = *pbVar13;\n        pbVar12 = pbVar12 + 2;\n        len = 1;\n        if (-1 < (char)bVar7) goto LAB_00173644;\nLAB_0017374d:\n        read_unsigned_LEB_128_x(pbVar12,&len,bVar7);\n        pbVar12 = pbVar13 + len;\n      }\n      pvVar3 = (this->files_).\n               super__Vector_base<std::vector<std::pair<int,_std::__cxx11::basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_>,_std::allocator<std::pair<int,_std::__cxx11::basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_>_>_>,_std::allocator<std::vector<std::pair<int,_std::__cxx11::basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_>,_std::allocator<std::pair<int,_std::__cxx11::basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_>_>_>_>_>\n               ._M_impl._M_finish;\n      if (iVar8 != (int)((long)pvVar3[-1].\n                               super__Vector_base<std::pair<int,_std::__cxx11::basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_>,_std::allocator<std::pair<int,_std::__cxx11::basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_>_>_>\n                               ._M_impl._M_finish -\n                         (long)pvVar3[-1].\n                               super__Vector_base<std::pair<int,_std::__cxx11::basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_>,_std::allocator<std::pair<int,_std::__cxx11::basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_>_>_>\n                               ._M_impl._M_start >> 3) * -0x33333333) {\n                    /* WARNING: Subroutine does not return */\n        do_gold_unreachable("../../gold/dwarf_reader.cc",0x6e4,"read_header_tables");\n      }\n      local_68 = (size_type *)CONCAT44(local_68._4_4_,(int)uVar5);\n      local_60._M_dataplus._M_p = (pointer)&local_60.field_2;\n      sVar6 = strlen((char *)__s);\n      std::__cxx11::basic_string<char,_std::char_traits<char>,_std::allocator<char>_>::\n      _M_construct<char_const*>(&local_60,__s,__s + sVar6);\n                    /* try { // try from 001736a4 to 001736a8 has its CatchHandler @ 00173809 */\n      std::\n      vector<std::pair<int,_std::__cxx11::basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_>,_std::allocator<std::pair<int,_std::__cxx11::basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_>_>_>\n      ::\n      emplace_back<std::pair<int,_std::__cxx11::basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_>_>\n                (pvVar3 + -1,\n                 (pair<int,_std::__cxx11::basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_>\n                  *)&local_68);\n      if ((anon_union_16_2_edb7204a_for_basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_9\n           *)local_60._M_dataplus._M_p != &local_60.field_2) {\n        operator_delete(local_60._M_dataplus._M_p);\n      }\n      iVar8 = iVar8 + 1;\n      __s = pbVar12;\n    }" { (expression_statement "sVar6 = strlen((char *)__s);" (assignment_expression "sVar6 = strlen((char *)__s)" identifier = (call_expression "strlen((char *)__s)" identifier (argument_list "((char *)__s)" ( (cast_expression "(char *)__s" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) identifier) )))) ;) (expression_statement "pbVar13 = __s + sVar6 + 1;" (assignment_expression "pbVar13 = __s + sVar6 + 1" identifier = (binary_expression "__s + sVar6 + 1" (binary_expression "__s + sVar6" identifier + identifier) + number_literal)) ;) (expression_statement "bVar7 = *pbVar13;" (assignment_expression "bVar7 = *pbVar13" identifier = (pointer_expression "*pbVar13" * identifier)) ;) (expression_statement "uVar5 = (ulong)bVar7;" (assignment_expression "uVar5 = (ulong)bVar7" identifier = (cast_expression "(ulong)bVar7" ( (type_descriptor "ulong" type_identifier) ) identifier)) ;) (expression_statement "pbVar12 = pbVar13 + 1;" (assignment_expression "pbVar12 = pbVar13 + 1" identifier = (binary_expression "pbVar13 + 1" identifier + number_literal)) ;) (if_statement "if ((char)bVar7 < '\0') {\n        uVar5 = read_unsigned_LEB_128_x(pbVar12,&len,bVar7);\n        pbVar12 = pbVar13 + len;\n      }\n      else {\n        len = 1;\n      }" if (parenthesized_expression "((char)bVar7 < '\0')" ( (binary_expression "(char)bVar7 < '\0'" (cast_expression "(char)bVar7" ( (type_descriptor "char" primitive_type) ) identifier) < (char_literal "'\0'" ' escape_sequence ')) )) (compound_statement "{\n        uVar5 = read_unsigned_LEB_128_x(pbVar12,&len,bVar7);\n        pbVar12 = pbVar13 + len;\n      }" { (expression_statement "uVar5 = read_unsigned_LEB_128_x(pbVar12,&len,bVar7);" (assignment_expression "uVar5 = read_unsigned_LEB_128_x(pbVar12,&len,bVar7)" identifier = (call_expression "read_unsigned_LEB_128_x(pbVar12,&len,bVar7)" identifier (argument_list "(pbVar12,&len,bVar7)" ( identifier , (pointer_expression "&len" & identifier) , identifier )))) ;) (expression_statement "pbVar12 = pbVar13 + len;" (assignment_expression "pbVar12 = pbVar13 + len" identifier = (binary_expression "pbVar13 + len" identifier + identifier)) ;) }) (else_clause "else {\n        len = 1;\n      }" else (compound_statement "{\n        len = 1;\n      }" { (expression_statement "len = 1;" (assignment_expression "len = 1" identifier = number_literal) ;) }))) (ERROR "pvVar14 = (this->directories_).\n                super__Vector_base<std::vector<std::__cxx11::basic_string<char,_std::char_traits<char>,_std::allocator<char>_>,_std::allocator<std::__cxx11::basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_>_>,_std::allocator<std::vector<std::__cxx11::basic_string<char,_std::char_traits<char>,_std::allocator<char>_>,_std::allocator<std::__cxx11::basic_string<char,_std::char_traits<char>,_std::" (comma_expression "pvVar14 = (this->directories_).\n                super__Vector_base<std::vector<std::__cxx11::basic_string<char,_std" (binary_expression "pvVar14 = (this->directories_).\n                super__Vector_base<std::vector<std::__cxx11::basic_string<char" (binary_expression "pvVar14 = (this->directories_).\n                super__Vector_base<std::vector<std" (assignment_expression "pvVar14 = (this->directories_).\n                super__Vector_base<std" identifier = (binary_expression "(this->directories_).\n                super__Vector_base<std" (field_expression "(this->directories_).\n                super__Vector_base" (parenthesized_expression "(this->directories_)" ( (field_expression "this->directories_" identifier -> field_identifier) )) . field_identifier) < identifier)) (ERROR "::vector" : : identifier) < identifier) (ERROR "::__cxx11::basic_string" : : identifier : : identifier) < identifier) , identifier) : : (binary_expression "char_traits<char>,_std" (binary_expression "char_traits<char" identifier < identifier) > (ERROR "," ,) identifier) : : (binary_expression "allocator<char>_>,_std" (binary_expression "allocator<char>_" (binary_expression "allocator<char" identifier < identifier) > identifier) > (ERROR "," ,) identifier) : : (binary_expression "allocator<std" identifier < identifier) : : (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>_>_>_>,_std" (binary_expression "allocator<char>_>_>_" (binary_expression "allocator<char>_>_" (binary_expression "allocator<char>_" (binary_expression "allocator<char" identifier < identifier) > identifier) > identifier) > identifier) > (ERROR "," ,) identifier) : : (binary_expression "allocator<std" identifier < identifier) : : (binary_expression "vector<std" identifier < identifier) : : (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>_>,_std" (binary_expression "allocator<char>_" (binary_expression "allocator<char" identifier < identifier) > identifier) > (ERROR "," ,) identifier) : : (binary_expression "allocator<std" identifier < identifier) : : (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) : :) (expression_statement "allocator<char>_>_>_>_>_>\n                ._M_impl._M_finish;" (field_expression "allocator<char>_>_>_>_>_>\n                ._M_impl._M_finish" (field_expression "allocator<char>_>_>_>_>_>\n                ._M_impl" (binary_expression "allocator<char>_>_>_>_>_" (binary_expression "allocator<char>_>_>_>_" (binary_expression "allocator<char>_>_>_" (binary_expression "allocator<char>_>_" (binary_expression "allocator<char>_" (binary_expression "allocator<char" identifier < identifier) > identifier) > identifier) > identifier) > identifier) > identifier) (ERROR ">" >) . field_identifier) . field_identifier) ;) (expression_statement "pbVar13 = pbVar12 + 1;" (assignment_expression "pbVar13 = pbVar12 + 1" identifier = (binary_expression "pbVar12 + 1" identifier + number_literal)) ;) (if_statement "if ((ulong)((long)pvVar14[-1].\n                        super__Vector_base<std::__cxx11::basic_string<char,_std::char_traits<char>,_std::allocator<char>_>,_std::allocator<std::__cxx11::basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_>_>\n                        ._M_impl._M_finish -\n                  (long)pvVar14[-1].\n                        super__Vector_base<std::__cxx11::basic_string<char,_std::char_traits<char>,_std::allocator<char>_>,_std::allocator<std::__cxx11::basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_>_>\n                        ._M_impl._M_start >> 5) <= uVar5) {\n        uVar5 = 0;\n      }" if (parenthesized_expression "((ulong)((long)pvVar14[-1].\n                        super__Vector_base<std::__cxx11::basic_string<char,_std::char_traits<char>,_std::allocator<char>_>,_std::allocator<std::__cxx11::basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_>_>\n                        ._M_impl._M_finish -\n                  (long)pvVar14[-1].\n                        super__Vector_base<std::__cxx11::basic_string<char,_std::char_traits<char>,_std::allocator<char>_>,_std::allocator<std::__cxx11::basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_>_>\n                        ._M_impl._M_start >> 5) <= uVar5)" ( (binary_expression "(ulong)((long)pvVar14[-1].\n                        super__Vector_base<std::__cxx11::basic_string<char,_std::char_traits<char>,_std::allocator<char>_>,_std::allocator<std::__cxx11::basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_>_>\n                        ._M_impl._M_finish -\n                  (long)pvVar14[-1].\n                        super__Vector_base<std::__cxx11::basic_string<char,_std::char_traits<char>,_std::allocator<char>_>,_std::allocator<std::__cxx11::basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_>_>\n                        ._M_impl._M_start >> 5) <= uVar5" (call_expression "(ulong)((long)pvVar14[-1].\n                        super__Vector_base<std::__cxx11::basic_string<char,_std::char_traits<char>,_std::allocator<char>_>,_std::allocator<std::__cxx11::basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_>_>\n                        ._M_impl._M_finish -\n                  (long)pvVar14[-1].\n                        super__Vector_base<std::__cxx11::basic_string<char,_std::char_traits<char>,_std::allocator<char>_>,_std::allocator<std::__cxx11::basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_>_>\n                        ._M_impl._M_start >> 5)" (parenthesized_expression "(ulong)" ( identifier )) (argument_list "((long)pvVar14[-1].\n                        super__Vector_base<std::__cxx11::basic_string<char,_std::char_traits<char>,_std::allocator<char>_>,_std::allocator<std::__cxx11::basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_>_>\n                        ._M_impl._M_finish -\n                  (long)pvVar14[-1].\n                        super__Vector_base<std::__cxx11::basic_string<char,_std::char_traits<char>,_std::allocator<char>_>,_std::allocator<std::__cxx11::basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_>_>\n                        ._M_impl._M_start >> 5)" ( (binary_expression "(long)pvVar14[-1].\n                        super__Vector_base<std::__cxx11::basic_string<char" (binary_expression "(long)pvVar14[-1].\n                        super__Vector_base<std" (cast_expression "(long)pvVar14[-1].\n                        super__Vector_base" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) (field_expression "pvVar14[-1].\n                        super__Vector_base" (subscript_expression "pvVar14[-1]" identifier [ number_literal ]) . field_identifier)) < identifier) (ERROR "::__cxx11::basic_string" : : identifier : : identifier) < identifier) , (ERROR "_std::" identifier : :) (binary_expression "char_traits<char" identifier < identifier) (ERROR ">" >) , (ERROR "_std::" identifier : :) (binary_expression "allocator<char>_" (binary_expression "allocator<char" identifier < identifier) > identifier) (ERROR ">" >) , (ERROR "_std::allocator<std::__cxx11::" identifier : : (binary_expression "allocator<std" identifier < identifier) : : identifier : :) (binary_expression "basic_string<char" identifier < identifier) , (ERROR "_std::" identifier : :) (binary_expression "char_traits<char" identifier < identifier) (ERROR ">" >) , (ERROR "_std::allocator<char>_>_>_>\n                        ._M_impl._M_finish -\n                  (long)pvVar14[-1].\n                        super__Vector_base<std::__cxx11::" identifier : : (binary_expression "allocator<char>_>_>_>\n                        ._M_impl._M_finish -\n                  (long)pvVar14[-1].\n                        super__Vector_base<std" (binary_expression "allocator<char>_>_>_>\n                        ._M_impl._M_finish -\n                  (long)pvVar14[-1].\n                        super__Vector_base" (field_expression "allocator<char>_>_>_>\n                        ._M_impl._M_finish" (field_expression "allocator<char>_>_>_>\n                        ._M_impl" (binary_expression "allocator<char>_>_>_" (binary_expression "allocator<char>_>_" (binary_expression "allocator<char>_" (binary_expression "allocator<char" identifier < identifier) > identifier) > identifier) > identifier) (ERROR ">" >) . field_identifier) . field_identifier) - (cast_expression "(long)pvVar14[-1].\n                        super__Vector_base" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) (field_expression "pvVar14[-1].\n                        super__Vector_base" (subscript_expression "pvVar14[-1]" identifier [ number_literal ]) . field_identifier))) < identifier) : : identifier : :) (binary_expression "basic_string<char" identifier < identifier) , (ERROR "_std::" identifier : :) (binary_expression "char_traits<char" identifier < identifier) (ERROR ">" >) , (ERROR "_std::" identifier : :) (binary_expression "allocator<char>_" (binary_expression "allocator<char" identifier < identifier) > identifier) (ERROR ">" >) , (ERROR "_std::allocator<std::__cxx11::" identifier : : (binary_expression "allocator<std" identifier < identifier) : : identifier : :) (binary_expression "basic_string<char" identifier < identifier) , (ERROR "_std::" identifier : :) (binary_expression "char_traits<char" identifier < identifier) (ERROR ">" >) , (ERROR "_std::" identifier : :) (binary_expression "allocator<char>_>_>_>\n                        ._M_impl._M_start >> 5" (field_expression "allocator<char>_>_>_>\n                        ._M_impl._M_start" (field_expression "allocator<char>_>_>_>\n                        ._M_impl" (binary_expression "allocator<char>_>_>_" (binary_expression "allocator<char>_>_" (binary_expression "allocator<char>_" (binary_expression "allocator<char" identifier < identifier) > identifier) > identifier) > identifier) (ERROR ">" >) . field_identifier) . field_identifier) >> number_literal) ))) <= identifier) )) (compound_statement "{\n        uVar5 = 0;\n      }" { (expression_statement "uVar5 = 0;" (assignment_expression "uVar5 = 0" identifier = number_literal) ;) })) (if_statement "if ((char)*pbVar12 < '\0') {\n        read_unsigned_LEB_128_x(pbVar13,&len,*pbVar12);\n        pbVar13 = pbVar12 + len;\n        bVar7 = *pbVar13;\n        pbVar12 = pbVar13 + 1;\n        if ((char)bVar7 < '\0') goto LAB_0017374d;\nLAB_00173644:\n        len = 1;\n      }\n      else {\n        bVar7 = *pbVar13;\n        pbVar12 = pbVar12 + 2;\n        len = 1;\n        if (-1 < (char)bVar7) goto LAB_00173644;\nLAB_0017374d:\n        read_unsigned_LEB_128_x(pbVar12,&len,bVar7);\n        pbVar12 = pbVar13 + len;\n      }" if (parenthesized_expression "((char)*pbVar12 < '\0')" ( (binary_expression "(char)*pbVar12 < '\0'" (cast_expression "(char)*pbVar12" ( (type_descriptor "char" primitive_type) ) (pointer_expression "*pbVar12" * identifier)) < (char_literal "'\0'" ' escape_sequence ')) )) (compound_statement "{\n        read_unsigned_LEB_128_x(pbVar13,&len,*pbVar12);\n        pbVar13 = pbVar12 + len;\n        bVar7 = *pbVar13;\n        pbVar12 = pbVar13 + 1;\n        if ((char)bVar7 < '\0') goto LAB_0017374d;\nLAB_00173644:\n        len = 1;\n      }" { (expression_statement "read_unsigned_LEB_128_x(pbVar13,&len,*pbVar12);" (call_expression "read_unsigned_LEB_128_x(pbVar13,&len,*pbVar12)" identifier (argument_list "(pbVar13,&len,*pbVar12)" ( identifier , (pointer_expression "&len" & identifier) , (pointer_expression "*pbVar12" * identifier) ))) ;) (expression_statement "pbVar13 = pbVar12 + len;" (assignment_expression "pbVar13 = pbVar12 + len" identifier = (binary_expression "pbVar12 + len" identifier + identifier)) ;) (expression_statement "bVar7 = *pbVar13;" (assignment_expression "bVar7 = *pbVar13" identifier = (pointer_expression "*pbVar13" * identifier)) ;) (expression_statement "pbVar12 = pbVar13 + 1;" (assignment_expression "pbVar12 = pbVar13 + 1" identifier = (binary_expression "pbVar13 + 1" identifier + number_literal)) ;) (if_statement "if ((char)bVar7 < '\0') goto LAB_0017374d;" if (parenthesized_expression "((char)bVar7 < '\0')" ( (binary_expression "(char)bVar7 < '\0'" (cast_expression "(char)bVar7" ( (type_descriptor "char" primitive_type) ) identifier) < (char_literal "'\0'" ' escape_sequence ')) )) (goto_statement "goto LAB_0017374d;" goto statement_identifier ;)) (labeled_statement "LAB_00173644:\n        len = 1;" statement_identifier : (expression_statement "len = 1;" (assignment_expression "len = 1" identifier = number_literal) ;)) }) (else_clause "else {\n        bVar7 = *pbVar13;\n        pbVar12 = pbVar12 + 2;\n        len = 1;\n        if (-1 < (char)bVar7) goto LAB_00173644;\nLAB_0017374d:\n        read_unsigned_LEB_128_x(pbVar12,&len,bVar7);\n        pbVar12 = pbVar13 + len;\n      }" else (compound_statement "{\n        bVar7 = *pbVar13;\n        pbVar12 = pbVar12 + 2;\n        len = 1;\n        if (-1 < (char)bVar7) goto LAB_00173644;\nLAB_0017374d:\n        read_unsigned_LEB_128_x(pbVar12,&len,bVar7);\n        pbVar12 = pbVar13 + len;\n      }" { (expression_statement "bVar7 = *pbVar13;" (assignment_expression "bVar7 = *pbVar13" identifier = (pointer_expression "*pbVar13" * identifier)) ;) (expression_statement "pbVar12 = pbVar12 + 2;" (assignment_expression "pbVar12 = pbVar12 + 2" identifier = (binary_expression "pbVar12 + 2" identifier + number_literal)) ;) (expression_statement "len = 1;" (assignment_expression "len = 1" identifier = number_literal) ;) (if_statement "if (-1 < (char)bVar7) goto LAB_00173644;" if (parenthesized_expression "(-1 < (char)bVar7)" ( (binary_expression "-1 < (char)bVar7" number_literal < (cast_expression "(char)bVar7" ( (type_descriptor "char" primitive_type) ) identifier)) )) (goto_statement "goto LAB_00173644;" goto statement_identifier ;)) (labeled_statement "LAB_0017374d:\n        read_unsigned_LEB_128_x(pbVar12,&len,bVar7);" statement_identifier : (expression_statement "read_unsigned_LEB_128_x(pbVar12,&len,bVar7);" (call_expression "read_unsigned_LEB_128_x(pbVar12,&len,bVar7)" identifier (argument_list "(pbVar12,&len,bVar7)" ( identifier , (pointer_expression "&len" & identifier) , identifier ))) ;)) (expression_statement "pbVar12 = pbVar13 + len;" (assignment_expression "pbVar12 = pbVar13 + len" identifier = (binary_expression "pbVar13 + len" identifier + identifier)) ;) }))) (ERROR "pvVar3 = (this->files_).\n               super__Vector_base<std::vector<std::pair<int,_std::__cxx11::basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_>,_std::allocator<std::pair<int,_std::__cxx11::basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_>_>_>,_std::allocator<std::vector<std::pair<int,_std::__cxx11::basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_>,_std::allocator<std::pair<int,_std::__cxx11::basic_string<char,_std::char_traits<char>,_std::" (comma_expression "pvVar3 = (this->files_).\n               super__Vector_base<std::vector<std::pair<int,_std" (binary_expression "pvVar3 = (this->files_).\n               super__Vector_base<std::vector<std::pair<int" (binary_expression "pvVar3 = (this->files_).\n               super__Vector_base<std::vector<std" (assignment_expression "pvVar3 = (this->files_).\n               super__Vector_base<std" identifier = (binary_expression "(this->files_).\n               super__Vector_base<std" (field_expression "(this->files_).\n               super__Vector_base" (parenthesized_expression "(this->files_)" ( (field_expression "this->files_" identifier -> field_identifier) )) . field_identifier) < identifier)) (ERROR "::vector" : : identifier) < identifier) (ERROR "::pair" : : identifier) < identifier) , identifier) : : identifier : : (comma_expression "basic_string<char,_std" (binary_expression "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>_>_>,_std" (binary_expression "allocator<char>_>_" (binary_expression "allocator<char>_" (binary_expression "allocator<char" identifier < identifier) > identifier) > identifier) > (ERROR "," ,) identifier) : : (binary_expression "allocator<std" identifier < identifier) : : (comma_expression "pair<int,_std" (binary_expression "pair<int" identifier < identifier) , identifier) : : (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>_>_>_>_>,_std" (binary_expression "allocator<char>_>_>_>_" (binary_expression "allocator<char>_>_>_" (binary_expression "allocator<char>_>_" (binary_expression "allocator<char>_" (binary_expression "allocator<char" identifier < identifier) > identifier) > identifier) > identifier) > identifier) > (ERROR "," ,) identifier) : : (binary_expression "allocator<std" identifier < identifier) : : (binary_expression "vector<std" identifier < identifier) : : (comma_expression "pair<int,_std" (binary_expression "pair<int" identifier < identifier) , identifier) : : (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>_>_>,_std" (binary_expression "allocator<char>_>_" (binary_expression "allocator<char>_" (binary_expression "allocator<char" identifier < identifier) > identifier) > identifier) > (ERROR "," ,) identifier) : : (binary_expression "allocator<std" identifier < identifier) : : (comma_expression "pair<int,_std" (binary_expression "pair<int" identifier < identifier) , identifier) : : (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) : :) (expression_statement "allocator<char>_>_>_>_>_>_>\n               ._M_impl._M_finish;" (field_expression "allocator<char>_>_>_>_>_>_>\n               ._M_impl._M_finish" (field_expression "allocator<char>_>_>_>_>_>_>\n               ._M_impl" (binary_expression "allocator<char>_>_>_>_>_>_" (binary_expression "allocator<char>_>_>_>_>_" (binary_expression "allocator<char>_>_>_>_" (binary_expression "allocator<char>_>_>_" (binary_expression "allocator<char>_>_" (binary_expression "allocator<char>_" (binary_expression "allocator<char" identifier < identifier) > identifier) > identifier) > identifier) > identifier) > identifier) > identifier) (ERROR ">" >) . field_identifier) . field_identifier) ;) (if_statement "if (iVar8 != (int)((long)pvVar3[-1].\n                               super__Vector_base<std::pair<int,_std::__cxx11::basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_>,_std::allocator<std::pair<int,_std::__cxx11::basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_>_>_>\n                               ._M_impl._M_finish -\n                         (long)pvVar3[-1].\n                               super__Vector_base<std::pair<int,_std::__cxx11::basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_>,_std::allocator<std::pair<int,_std::__cxx11::basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_>_>_>\n                               ._M_impl._M_start >> 3) * -0x33333333) {\n                    /* WARNING: Subroutine does not return */\n        do_gold_unreachable("../../gold/dwarf_reader.cc",0x6e4,"read_header_tables");\n      }" if (parenthesized_expression "(iVar8 != (int)((long)pvVar3[-1].\n                               super__Vector_base<std::pair<int,_std::__cxx11::basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_>,_std::allocator<std::pair<int,_std::__cxx11::basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_>_>_>\n                               ._M_impl._M_finish -\n                         (long)pvVar3[-1].\n                               super__Vector_base<std::pair<int,_std::__cxx11::basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_>,_std::allocator<std::pair<int,_std::__cxx11::basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_>_>_>\n                               ._M_impl._M_start >> 3) * -0x33333333)" ( (binary_expression "iVar8 != (int)((long)pvVar3[-1].\n                               super__Vector_base<std::pair<int,_std::__cxx11::basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_>,_std::allocator<std::pair<int,_std::__cxx11::basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_>_>_>\n                               ._M_impl._M_finish -\n                         (long)pvVar3[-1].\n                               super__Vector_base<std::pair<int,_std::__cxx11::basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_>,_std::allocator<std::pair<int,_std::__cxx11::basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_>_>_>\n                               ._M_impl._M_start >> 3) * -0x33333333" identifier != (binary_expression "(int)((long)pvVar3[-1].\n                               super__Vector_base<std::pair<int,_std::__cxx11::basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_>,_std::allocator<std::pair<int,_std::__cxx11::basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_>_>_>\n                               ._M_impl._M_finish -\n                         (long)pvVar3[-1].\n                               super__Vector_base<std::pair<int,_std::__cxx11::basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_>,_std::allocator<std::pair<int,_std::__cxx11::basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_>_>_>\n                               ._M_impl._M_start >> 3) * -0x33333333" (cast_expression "(int)((long)pvVar3[-1].\n                               super__Vector_base<std::pair<int,_std::__cxx11::basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_>,_std::allocator<std::pair<int,_std::__cxx11::basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_>_>_>\n                               ._M_impl._M_finish -\n                         (long)pvVar3[-1].\n                               super__Vector_base<std::pair<int,_std::__cxx11::basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_>,_std::allocator<std::pair<int,_std::__cxx11::basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_>_>_>\n                               ._M_impl._M_start >> 3)" ( (type_descriptor "int" primitive_type) ) (parenthesized_expression "((long)pvVar3[-1].\n                               super__Vector_base<std::pair<int,_std::__cxx11::basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_>,_std::allocator<std::pair<int,_std::__cxx11::basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_>_>_>\n                               ._M_impl._M_finish -\n                         (long)pvVar3[-1].\n                               super__Vector_base<std::pair<int,_std::__cxx11::basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_>,_std::allocator<std::pair<int,_std::__cxx11::basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_>_>_>\n                               ._M_impl._M_start >> 3)" ( (ERROR "(long)pvVar3[-1].\n                               super__Vector_base<std::pair<int,_std::__cxx11::basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_>,_std::allocator<std::pair<int,_std::__cxx11::basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_>_>_>\n                               ._M_impl._M_finish -\n                         (long)pvVar3[-1].\n                               super__Vector_base<std::pair<int,_std::__cxx11::basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_>,_std::allocator<std::pair<int,_std::__cxx11::basic_string<char,_std::char_traits<char>,_std::" (comma_expression "(long)pvVar3[-1].\n                               super__Vector_base<std::pair<int,_std" (binary_expression "(long)pvVar3[-1].\n                               super__Vector_base<std::pair<int" (binary_expression "(long)pvVar3[-1].\n                               super__Vector_base<std" (cast_expression "(long)pvVar3[-1].\n                               super__Vector_base" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) (field_expression "pvVar3[-1].\n                               super__Vector_base" (subscript_expression "pvVar3[-1]" identifier [ number_literal ]) . field_identifier)) < identifier) (ERROR "::pair" : : identifier) < identifier) , identifier) : : identifier : : (comma_expression "basic_string<char,_std" (binary_expression "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>_>_>,_std" (binary_expression "allocator<char>_>_" (binary_expression "allocator<char>_" (binary_expression "allocator<char" identifier < identifier) > identifier) > identifier) > (ERROR "," ,) identifier) : : (binary_expression "allocator<std" identifier < identifier) : : (comma_expression "pair<int,_std" (binary_expression "pair<int" identifier < identifier) , identifier) : : identifier : : (comma_expression "basic_string<char,_std" (binary_expression "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>_>_>_>_>\n                               ._M_impl._M_finish -\n                         (long)pvVar3[-1].\n                               super__Vector_base<std" (binary_expression "allocator<char>_>_>_>_>\n                               ._M_impl._M_finish -\n                         (long)pvVar3[-1].\n                               super__Vector_base" (field_expression "allocator<char>_>_>_>_>\n                               ._M_impl._M_finish" (field_expression "allocator<char>_>_>_>_>\n                               ._M_impl" (binary_expression "allocator<char>_>_>_>_" (binary_expression "allocator<char>_>_>_" (binary_expression "allocator<char>_>_" (binary_expression "allocator<char>_" (binary_expression "allocator<char" identifier < identifier) > identifier) > identifier) > identifier) > identifier) (ERROR ">" >) . field_identifier) . field_identifier) - (cast_expression "(long)pvVar3[-1].\n                               super__Vector_base" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) (field_expression "pvVar3[-1].\n                               super__Vector_base" (subscript_expression "pvVar3[-1]" identifier [ number_literal ]) . field_identifier))) < identifier) : : (comma_expression "pair<int,_std" (binary_expression "pair<int" identifier < identifier) , identifier) : : identifier : : (comma_expression "basic_string<char,_std" (binary_expression "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>_>_>,_std" (binary_expression "allocator<char>_>_" (binary_expression "allocator<char>_" (binary_expression "allocator<char" identifier < identifier) > identifier) > identifier) > (ERROR "," ,) identifier) : : (binary_expression "allocator<std" identifier < identifier) : : (comma_expression "pair<int,_std" (binary_expression "pair<int" identifier < identifier) , identifier) : : identifier : : (comma_expression "basic_string<char,_std" (binary_expression "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>_>_>_>_>\n                               ._M_impl._M_start >> 3" (field_expression "allocator<char>_>_>_>_>\n                               ._M_impl._M_start" (field_expression "allocator<char>_>_>_>_>\n                               ._M_impl" (binary_expression "allocator<char>_>_>_>_" (binary_expression "allocator<char>_>_>_" (binary_expression "allocator<char>_>_" (binary_expression "allocator<char>_" (binary_expression "allocator<char" identifier < identifier) > identifier) > identifier) > identifier) > identifier) (ERROR ">" >) . field_identifier) . field_identifier) >> number_literal) ))) * number_literal)) )) (compound_statement "{\n                    /* WARNING: Subroutine does not return */\n        do_gold_unreachable("../../gold/dwarf_reader.cc",0x6e4,"read_header_tables");\n      }" { comment (expression_statement "do_gold_unreachable("../../gold/dwarf_reader.cc",0x6e4,"read_header_tables");" (call_expression "do_gold_unreachable("../../gold/dwarf_reader.cc",0x6e4,"read_header_tables")" identifier (argument_list "("../../gold/dwarf_reader.cc",0x6e4,"read_header_tables")" ( (string_literal ""../../gold/dwarf_reader.cc"" " string_content ") , number_literal , (string_literal ""read_header_tables"" " string_content ") ))) ;) })) (expression_statement "local_68 = (size_type *)CONCAT44(local_68._4_4_,(int)uVar5);" (assignment_expression "local_68 = (size_type *)CONCAT44(local_68._4_4_,(int)uVar5)" identifier = (cast_expression "(size_type *)CONCAT44(local_68._4_4_,(int)uVar5)" ( (type_descriptor "size_type *" type_identifier (abstract_pointer_declarator "*" *)) ) (call_expression "CONCAT44(local_68._4_4_,(int)uVar5)" identifier (argument_list "(local_68._4_4_,(int)uVar5)" ( (field_expression "local_68._4_4_" identifier . field_identifier) , (cast_expression "(int)uVar5" ( (type_descriptor "int" primitive_type) ) identifier) ))))) ;) (expression_statement "local_60._M_dataplus._M_p = (pointer)&local_60.field_2;" (assignment_expression "local_60._M_dataplus._M_p = (pointer)&local_60.field_2" (field_expression "local_60._M_dataplus._M_p" (field_expression "local_60._M_dataplus" identifier . field_identifier) . field_identifier) = (binary_expression "(pointer)&local_60.field_2" (parenthesized_expression "(pointer)" ( identifier )) & (field_expression "local_60.field_2" identifier . field_identifier))) ;) (expression_statement "sVar6 = strlen((char *)__s);" (assignment_expression "sVar6 = strlen((char *)__s)" identifier = (call_expression "strlen((char *)__s)" identifier (argument_list "((char *)__s)" ( (cast_expression "(char *)__s" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) identifier) )))) ;) (labeled_statement "std::__cxx11::basic_string<char,_std::char_traits<char>,_std::allocator<char>_>::\n      _M_construct<char_const*>(&local_60,__s,__s + sVar6);" 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*>(&local_60,__s,__s + sVar6);" (binary_expression "_M_construct<char_const*>(&local_60,__s,__s + sVar6)" (binary_expression "_M_construct<char_const" identifier < identifier) (ERROR "*" *) > (parenthesized_expression "(&local_60,__s,__s + sVar6)" ( (comma_expression "&local_60,__s,__s + sVar6" (pointer_expression "&local_60" & identifier) , (comma_expression "__s,__s + sVar6" identifier , (binary_expression "__s + sVar6" identifier + identifier))) ))) ;)) comment (ERROR "std::\n      vector<std::pair<int,_std::__cxx11::basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_>,_std::allocator<std::pair<int,_std::__cxx11::basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_>_>_>\n      ::\n      emplace_back<std::pair<int,_std::__cxx11::basic_string<char,_std::char_traits<char>,_std::" (comma_expression "std::\n      vector<std::pair<int,_std::__cxx11::basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_>,_std" identifier (ERROR "::\n      vector<std::pair<int,_std::__cxx11::basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_>" : : (binary_expression "vector<std" identifier < identifier) : : (comma_expression "pair<int,_std" (binary_expression "pair<int" identifier < identifier) , identifier) : : (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>_" (binary_expression "allocator<char" identifier < identifier) > identifier) > identifier) >) , identifier) : : (binary_expression "allocator<std" identifier < identifier) : : (comma_expression "pair<int,_std" (binary_expression "pair<int" identifier < identifier) , identifier) : : (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>_>_>_>_>\n      ::\n      emplace_back<std" (binary_expression "allocator<char>_>_>_>_>\n      ::\n      emplace_back" (binary_expression "allocator<char>_>_>_>_" (binary_expression "allocator<char>_>_>_" (binary_expression "allocator<char>_>_" (binary_expression "allocator<char>_" (binary_expression "allocator<char" identifier < identifier) > identifier) > identifier) > identifier) > identifier) > (ERROR "::" : :) identifier) < identifier) : : (comma_expression "pair<int,_std" (binary_expression "pair<int" identifier < identifier) , identifier) : : (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) : :) (expression_statement "allocator<char>_>_>_>\n                (pvVar3 + -1,\n                 (pair<int,_std::__cxx11::basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_>\n                  *)&local_68);" (binary_expression "allocator<char>_>_>_>\n                (pvVar3 + -1,\n                 (pair<int,_std::__cxx11::basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_>\n                  *)&local_68)" (binary_expression "allocator<char>_>_>_" (binary_expression "allocator<char>_>_" (binary_expression "allocator<char>_" (binary_expression "allocator<char" identifier < identifier) > identifier) > identifier) > identifier) > (parenthesized_expression "(pvVar3 + -1,\n                 (pair<int,_std::__cxx11::basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_>\n                  *)&local_68)" ( (comma_expression "pvVar3 + -1,\n                 (pair<int,_std::__cxx11::basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_>\n                  *)&local_68" (binary_expression "pvVar3 + -1" identifier + number_literal) , (binary_expression "(pair<int,_std::__cxx11::basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_>\n                  *)&local_68" (parenthesized_expression "(pair<int,_std::__cxx11::basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_>\n                  *)" ( (ERROR "pair<int,_std::__cxx11::basic_string<char,_std::char_traits<char>,_std::" (comma_expression "pair<int,_std" (binary_expression "pair<int" identifier < identifier) , identifier) : : identifier : : (comma_expression "basic_string<char,_std" (binary_expression "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>_>_>\n                  *" (binary_expression "allocator<char>_>_" (binary_expression "allocator<char>_" (binary_expression "allocator<char" identifier < identifier) > identifier) > identifier) > (pointer_expression "*" * identifier)) )) & identifier)) ))) ;) (if_statement "if ((anon_union_16_2_edb7204a_for_basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_9\n           *)local_60._M_dataplus._M_p != &local_60.field_2) {\n        operator_delete(local_60._M_dataplus._M_p);\n      }" if (parenthesized_expression "((anon_union_16_2_edb7204a_for_basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_9\n           *)local_60._M_dataplus._M_p != &local_60.field_2)" ( (parenthesized_expression "(anon_union_16_2_edb7204a_for_basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_9\n           *)local_60._M_dataplus._M_p != &local_60.field_2)" ( (ERROR "anon_union_16_2_edb7204a_for_basic_string<char,_std::char_traits<char>,_std::" (comma_expression "anon_union_16_2_edb7204a_for_basic_string<char,_std" (binary_expression "anon_union_16_2_edb7204a_for_basic_string<char" identifier < identifier) , identifier) : : (binary_expression "char_traits<char>,_std" (binary_expression "char_traits<char" identifier < identifier) > (ERROR "," ,) identifier) : :) (binary_expression "allocator<char>_>_9\n           *)local_60._M_dataplus._M_p != &local_60.field_2" (binary_expression "allocator<char>_>_9\n           *)local_60._M_dataplus._M_p" (binary_expression "allocator<char>_" (binary_expression "allocator<char" identifier < identifier) > identifier) > (binary_expression "_9\n           *)local_60._M_dataplus._M_p" identifier * (ERROR ")" )) (field_expression "local_60._M_dataplus._M_p" (field_expression "local_60._M_dataplus" identifier . field_identifier) . field_identifier))) != (pointer_expression "&local_60.field_2" & (field_expression "local_60.field_2" identifier . field_identifier))) )) )) (compound_statement "{\n        operator_delete(local_60._M_dataplus._M_p);\n      }" { (expression_statement "operator_delete(local_60._M_dataplus._M_p);" (call_expression "operator_delete(local_60._M_dataplus._M_p)" identifier (argument_list "(local_60._M_dataplus._M_p)" ( (field_expression "local_60._M_dataplus._M_p" (field_expression "local_60._M_dataplus" identifier . field_identifier) . field_identifier) ))) ;) })) (expression_statement "iVar8 = iVar8 + 1;" (assignment_expression "iVar8 = iVar8 + 1" identifier = (binary_expression "iVar8 + 1" identifier + number_literal)) ;) (expression_statement "__s = pbVar12;" (assignment_expression "__s = pbVar12" identifier = identifier) ;) }) while (parenthesized_expression "(*pbVar12 != 0)" ( (binary_expression "*pbVar12 != 0" (pointer_expression "*pbVar12" * identifier) != number_literal) )) ;) })) (return_statement "return pbVar12 + 1;" return (binary_expression "pbVar12 + 1" identifier + number_literal) ;) }))
(translation_unit "byte * FUN_00173370(long param_1,char *param_2)\n\n{\n  byte bVar1;\n  long ****pppplVar2;\n  ulong uVar3;\n  size_t sVar4;\n  int iVar5;\n  uint uVar6;\n  long ****pppplVar7;\n  long *****ppppplVar8;\n  ulong uVar9;\n  byte *pbVar10;\n  byte *pbVar11;\n  long lVar12;\n  byte *__s;\n  long local_70;\n  long ****local_68;\n  long ****local_60;\n  long ****local_58;\n  long ***local_50 [4];\n  \n  iVar5 = *(int *)(param_1 + 200) + 1;\n  *(int *)(param_1 + 200) = iVar5;\n  if (iVar5 != (int)(*(long *)(param_1 + 0xa0) - *(long *)(param_1 + 0x98) >> 3) * -0x55555555) {\n                    \n    FUN_0017c650("../../gold/dwarf_reader.cc",0x6b6,"read_header_tables");\n  }\n  if (iVar5 != (int)(*(long *)(param_1 + 0xb8) - *(long *)(param_1 + 0xb0) >> 3) * -0x55555555) {\n                    \n    FUN_0017c650("../../gold/dwarf_reader.cc",0x6b8,"read_header_tables");\n  }\n  local_68 = (long ****)0x0;\n  local_60 = (long ****)0x0;\n  local_58 = (long ****)0x0;\n  local_68 = (long ****)FUN_002d94a0(0x20);\n  local_68[1] = (long ***)0x0;\n  local_60 = local_68 + 4;\n  *local_68 = (long ***)(local_68 + 2);\n  *(undefined1 *)(local_68 + 2) = 0;\n  local_58 = local_60;\n                    \n  FUN_00171a10(param_1 + 0x98,&local_68);\n  pppplVar2 = local_60;\n  for (pppplVar7 = local_68; pppplVar2 != pppplVar7; pppplVar7 = pppplVar7 + 4) {\n    if ((long ****)*pppplVar7 != pppplVar7 + 2) {\n      FUN_002dac70();\n    }\n  }\n  if (local_68 != (long ****)0x0) {\n    FUN_002dac70(local_68);\n  }\n  local_68 = (long ****)0x0;\n  local_60 = (long ****)0x0;\n  local_58 = (long ****)0x0;\n  local_68 = (long ****)FUN_002d94a0(0x28);\n  *(undefined4 *)local_68 = 0;\n  local_60 = (long ****)((long *****)local_68 + 5);\n  ((long *****)local_68)[1] = (long ****)((long *****)local_68 + 3);\n  ((long *****)local_68)[2] = (long ****)0x0;\n  *(undefined1 *)((long *****)local_68 + 3) = 0;\n  local_58 = local_60;\n                    \n  FUN_00171d10(param_1 + 0xb0,&local_68);\n  pppplVar7 = local_60;\n  for (ppppplVar8 = (long *****)local_68; (long *****)pppplVar7 != ppppplVar8;\n      ppppplVar8 = ppppplVar8 + 5) {\n    if ((long *****)ppppplVar8[1] != ppppplVar8 + 3) {\n      FUN_002dac70();\n    }\n  }\n  if ((long *****)local_68 != (long *****)0x0) {\n    FUN_002dac70(local_68);\n  }\n  if (*param_2 != '\0') {\n    lVar12 = *(long *)(param_1 + 0xa0);\n    uVar3 = *(long *)(lVar12 + -0x10) - *(long *)(lVar12 + -0x18) >> 5;\n    uVar9 = uVar3 & 0xffffffff;\n    if ((int)uVar3 == 1) {\n      do {\n        local_68 = (long ****)&local_58;\n        sVar4 = strlen(param_2);\n        FUN_001665c0(&local_68,param_2,param_2 + sVar4);\n                    \n        FUN_0016f840(lVar12 + -0x18,&local_68);\n        if ((long *****)local_68 != &local_58) {\n          FUN_002dac70();\n        }\n        lVar12 = *(long *)(param_1 + 0xa0);\n        uVar6 = (int)uVar9 + 1;\n        uVar9 = (ulong)uVar6;\n        param_2 = param_2 + *(long *)(*(long *)(lVar12 + -0x10) + -0x18) + 1;\n        if (*param_2 == '\0') goto LAB_001735b7;\n      } while (uVar6 == (uint)(*(long *)(lVar12 + -0x10) - *(long *)(lVar12 + -0x18) >> 5));\n    }\n                    \n    FUN_0017c650("../../gold/dwarf_reader.cc",0x6c4,"read_header_tables");\n  }\nLAB_001735b7:\n  pbVar10 = (byte *)(param_2 + 1);\n  if (param_2[1] != '\0') {\n    iVar5 = 1;\n    __s = pbVar10;\n    do {\n      sVar4 = strlen((char *)__s);\n      pbVar11 = __s + sVar4 + 1;\n      bVar1 = *pbVar11;\n      uVar3 = (ulong)bVar1;\n      pbVar10 = pbVar11 + 1;\n      if ((char)bVar1 < '\0') {\n        uVar3 = FUN_001a3dc0(pbVar10,&local_70,bVar1);\n        pbVar10 = pbVar11 + local_70;\n      }\n      else {\n        local_70 = 1;\n      }\n      pbVar11 = pbVar10 + 1;\n      if ((ulong)(*(long *)(*(long *)(param_1 + 0xa0) + -0x10) -\n                  *(long *)(*(long *)(param_1 + 0xa0) + -0x18) >> 5) <= uVar3) {\n        uVar3 = 0;\n      }\n      if ((char)*pbVar10 < '\0') {\n        FUN_001a3dc0(pbVar11,&local_70);\n        pbVar11 = pbVar10 + local_70;\n        pbVar10 = pbVar11 + 1;\n        if ((char)*pbVar11 < '\0') goto LAB_0017374d;\nLAB_00173644:\n        local_70 = 1;\n      }\n      else {\n        pbVar10 = pbVar10 + 2;\n        local_70 = 1;\n        if (-1 < (char)*pbVar11) goto LAB_00173644;\nLAB_0017374d:\n        FUN_001a3dc0(pbVar10,&local_70);\n        pbVar10 = pbVar11 + local_70;\n      }\n      lVar12 = *(long *)(param_1 + 0xb8);\n      if (iVar5 != (int)(*(long *)(lVar12 + -0x10) - *(long *)(lVar12 + -0x18) >> 3) * -0x33333333)\n      {\n                    \n        FUN_0017c650("../../gold/dwarf_reader.cc",0x6e4,"read_header_tables");\n      }\n      local_68 = (long ****)CONCAT44(local_68._4_4_,(int)uVar3);\n      local_60 = local_50;\n      sVar4 = strlen((char *)__s);\n      FUN_001665c0(&local_60,__s,__s + sVar4);\n                    \n      FUN_00172000(lVar12 + -0x18,&local_68);\n      if (local_60 != local_50) {\n        FUN_002dac70();\n      }\n      iVar5 = iVar5 + 1;\n      __s = pbVar10;\n    } while (*pbVar10 != 0);\n  }\n  return pbVar10 + 1;\n}\n\n" (function_definition "byte * FUN_00173370(long param_1,char *param_2)\n\n{\n  byte bVar1;\n  long ****pppplVar2;\n  ulong uVar3;\n  size_t sVar4;\n  int iVar5;\n  uint uVar6;\n  long ****pppplVar7;\n  long *****ppppplVar8;\n  ulong uVar9;\n  byte *pbVar10;\n  byte *pbVar11;\n  long lVar12;\n  byte *__s;\n  long local_70;\n  long ****local_68;\n  long ****local_60;\n  long ****local_58;\n  long ***local_50 [4];\n  \n  iVar5 = *(int *)(param_1 + 200) + 1;\n  *(int *)(param_1 + 200) = iVar5;\n  if (iVar5 != (int)(*(long *)(param_1 + 0xa0) - *(long *)(param_1 + 0x98) >> 3) * -0x55555555) {\n                    \n    FUN_0017c650("../../gold/dwarf_reader.cc",0x6b6,"read_header_tables");\n  }\n  if (iVar5 != (int)(*(long *)(param_1 + 0xb8) - *(long *)(param_1 + 0xb0) >> 3) * -0x55555555) {\n                    \n    FUN_0017c650("../../gold/dwarf_reader.cc",0x6b8,"read_header_tables");\n  }\n  local_68 = (long ****)0x0;\n  local_60 = (long ****)0x0;\n  local_58 = (long ****)0x0;\n  local_68 = (long ****)FUN_002d94a0(0x20);\n  local_68[1] = (long ***)0x0;\n  local_60 = local_68 + 4;\n  *local_68 = (long ***)(local_68 + 2);\n  *(undefined1 *)(local_68 + 2) = 0;\n  local_58 = local_60;\n                    \n  FUN_00171a10(param_1 + 0x98,&local_68);\n  pppplVar2 = local_60;\n  for (pppplVar7 = local_68; pppplVar2 != pppplVar7; pppplVar7 = pppplVar7 + 4) {\n    if ((long ****)*pppplVar7 != pppplVar7 + 2) {\n      FUN_002dac70();\n    }\n  }\n  if (local_68 != (long ****)0x0) {\n    FUN_002dac70(local_68);\n  }\n  local_68 = (long ****)0x0;\n  local_60 = (long ****)0x0;\n  local_58 = (long ****)0x0;\n  local_68 = (long ****)FUN_002d94a0(0x28);\n  *(undefined4 *)local_68 = 0;\n  local_60 = (long ****)((long *****)local_68 + 5);\n  ((long *****)local_68)[1] = (long ****)((long *****)local_68 + 3);\n  ((long *****)local_68)[2] = (long ****)0x0;\n  *(undefined1 *)((long *****)local_68 + 3) = 0;\n  local_58 = local_60;\n                    \n  FUN_00171d10(param_1 + 0xb0,&local_68);\n  pppplVar7 = local_60;\n  for (ppppplVar8 = (long *****)local_68; (long *****)pppplVar7 != ppppplVar8;\n      ppppplVar8 = ppppplVar8 + 5) {\n    if ((long *****)ppppplVar8[1] != ppppplVar8 + 3) {\n      FUN_002dac70();\n    }\n  }\n  if ((long *****)local_68 != (long *****)0x0) {\n    FUN_002dac70(local_68);\n  }\n  if (*param_2 != '\0') {\n    lVar12 = *(long *)(param_1 + 0xa0);\n    uVar3 = *(long *)(lVar12 + -0x10) - *(long *)(lVar12 + -0x18) >> 5;\n    uVar9 = uVar3 & 0xffffffff;\n    if ((int)uVar3 == 1) {\n      do {\n        local_68 = (long ****)&local_58;\n        sVar4 = strlen(param_2);\n        FUN_001665c0(&local_68,param_2,param_2 + sVar4);\n                    \n        FUN_0016f840(lVar12 + -0x18,&local_68);\n        if ((long *****)local_68 != &local_58) {\n          FUN_002dac70();\n        }\n        lVar12 = *(long *)(param_1 + 0xa0);\n        uVar6 = (int)uVar9 + 1;\n        uVar9 = (ulong)uVar6;\n        param_2 = param_2 + *(long *)(*(long *)(lVar12 + -0x10) + -0x18) + 1;\n        if (*param_2 == '\0') goto LAB_001735b7;\n      } while (uVar6 == (uint)(*(long *)(lVar12 + -0x10) - *(long *)(lVar12 + -0x18) >> 5));\n    }\n                    \n    FUN_0017c650("../../gold/dwarf_reader.cc",0x6c4,"read_header_tables");\n  }\nLAB_001735b7:\n  pbVar10 = (byte *)(param_2 + 1);\n  if (param_2[1] != '\0') {\n    iVar5 = 1;\n    __s = pbVar10;\n    do {\n      sVar4 = strlen((char *)__s);\n      pbVar11 = __s + sVar4 + 1;\n      bVar1 = *pbVar11;\n      uVar3 = (ulong)bVar1;\n      pbVar10 = pbVar11 + 1;\n      if ((char)bVar1 < '\0') {\n        uVar3 = FUN_001a3dc0(pbVar10,&local_70,bVar1);\n        pbVar10 = pbVar11 + local_70;\n      }\n      else {\n        local_70 = 1;\n      }\n      pbVar11 = pbVar10 + 1;\n      if ((ulong)(*(long *)(*(long *)(param_1 + 0xa0) + -0x10) -\n                  *(long *)(*(long *)(param_1 + 0xa0) + -0x18) >> 5) <= uVar3) {\n        uVar3 = 0;\n      }\n      if ((char)*pbVar10 < '\0') {\n        FUN_001a3dc0(pbVar11,&local_70);\n        pbVar11 = pbVar10 + local_70;\n        pbVar10 = pbVar11 + 1;\n        if ((char)*pbVar11 < '\0') goto LAB_0017374d;\nLAB_00173644:\n        local_70 = 1;\n      }\n      else {\n        pbVar10 = pbVar10 + 2;\n        local_70 = 1;\n        if (-1 < (char)*pbVar11) goto LAB_00173644;\nLAB_0017374d:\n        FUN_001a3dc0(pbVar10,&local_70);\n        pbVar10 = pbVar11 + local_70;\n      }\n      lVar12 = *(long *)(param_1 + 0xb8);\n      if (iVar5 != (int)(*(long *)(lVar12 + -0x10) - *(long *)(lVar12 + -0x18) >> 3) * -0x33333333)\n      {\n                    \n        FUN_0017c650("../../gold/dwarf_reader.cc",0x6e4,"read_header_tables");\n      }\n      local_68 = (long ****)CONCAT44(local_68._4_4_,(int)uVar3);\n      local_60 = local_50;\n      sVar4 = strlen((char *)__s);\n      FUN_001665c0(&local_60,__s,__s + sVar4);\n                    \n      FUN_00172000(lVar12 + -0x18,&local_68);\n      if (local_60 != local_50) {\n        FUN_002dac70();\n      }\n      iVar5 = iVar5 + 1;\n      __s = pbVar10;\n    } while (*pbVar10 != 0);\n  }\n  return pbVar10 + 1;\n}" type_identifier (pointer_declarator "* FUN_00173370(long param_1,char *param_2)" * (function_declarator "FUN_00173370(long param_1,char *param_2)" identifier (parameter_list "(long param_1,char *param_2)" ( (parameter_declaration "long param_1" (sized_type_specifier "long" long) identifier) , (parameter_declaration "char *param_2" primitive_type (pointer_declarator "*param_2" * identifier)) )))) (compound_statement "{\n  byte bVar1;\n  long ****pppplVar2;\n  ulong uVar3;\n  size_t sVar4;\n  int iVar5;\n  uint uVar6;\n  long ****pppplVar7;\n  long *****ppppplVar8;\n  ulong uVar9;\n  byte *pbVar10;\n  byte *pbVar11;\n  long lVar12;\n  byte *__s;\n  long local_70;\n  long ****local_68;\n  long ****local_60;\n  long ****local_58;\n  long ***local_50 [4];\n  \n  iVar5 = *(int *)(param_1 + 200) + 1;\n  *(int *)(param_1 + 200) = iVar5;\n  if (iVar5 != (int)(*(long *)(param_1 + 0xa0) - *(long *)(param_1 + 0x98) >> 3) * -0x55555555) {\n                    \n    FUN_0017c650("../../gold/dwarf_reader.cc",0x6b6,"read_header_tables");\n  }\n  if (iVar5 != (int)(*(long *)(param_1 + 0xb8) - *(long *)(param_1 + 0xb0) >> 3) * -0x55555555) {\n                    \n    FUN_0017c650("../../gold/dwarf_reader.cc",0x6b8,"read_header_tables");\n  }\n  local_68 = (long ****)0x0;\n  local_60 = (long ****)0x0;\n  local_58 = (long ****)0x0;\n  local_68 = (long ****)FUN_002d94a0(0x20);\n  local_68[1] = (long ***)0x0;\n  local_60 = local_68 + 4;\n  *local_68 = (long ***)(local_68 + 2);\n  *(undefined1 *)(local_68 + 2) = 0;\n  local_58 = local_60;\n                    \n  FUN_00171a10(param_1 + 0x98,&local_68);\n  pppplVar2 = local_60;\n  for (pppplVar7 = local_68; pppplVar2 != pppplVar7; pppplVar7 = pppplVar7 + 4) {\n    if ((long ****)*pppplVar7 != pppplVar7 + 2) {\n      FUN_002dac70();\n    }\n  }\n  if (local_68 != (long ****)0x0) {\n    FUN_002dac70(local_68);\n  }\n  local_68 = (long ****)0x0;\n  local_60 = (long ****)0x0;\n  local_58 = (long ****)0x0;\n  local_68 = (long ****)FUN_002d94a0(0x28);\n  *(undefined4 *)local_68 = 0;\n  local_60 = (long ****)((long *****)local_68 + 5);\n  ((long *****)local_68)[1] = (long ****)((long *****)local_68 + 3);\n  ((long *****)local_68)[2] = (long ****)0x0;\n  *(undefined1 *)((long *****)local_68 + 3) = 0;\n  local_58 = local_60;\n                    \n  FUN_00171d10(param_1 + 0xb0,&local_68);\n  pppplVar7 = local_60;\n  for (ppppplVar8 = (long *****)local_68; (long *****)pppplVar7 != ppppplVar8;\n      ppppplVar8 = ppppplVar8 + 5) {\n    if ((long *****)ppppplVar8[1] != ppppplVar8 + 3) {\n      FUN_002dac70();\n    }\n  }\n  if ((long *****)local_68 != (long *****)0x0) {\n    FUN_002dac70(local_68);\n  }\n  if (*param_2 != '\0') {\n    lVar12 = *(long *)(param_1 + 0xa0);\n    uVar3 = *(long *)(lVar12 + -0x10) - *(long *)(lVar12 + -0x18) >> 5;\n    uVar9 = uVar3 & 0xffffffff;\n    if ((int)uVar3 == 1) {\n      do {\n        local_68 = (long ****)&local_58;\n        sVar4 = strlen(param_2);\n        FUN_001665c0(&local_68,param_2,param_2 + sVar4);\n                    \n        FUN_0016f840(lVar12 + -0x18,&local_68);\n        if ((long *****)local_68 != &local_58) {\n          FUN_002dac70();\n        }\n        lVar12 = *(long *)(param_1 + 0xa0);\n        uVar6 = (int)uVar9 + 1;\n        uVar9 = (ulong)uVar6;\n        param_2 = param_2 + *(long *)(*(long *)(lVar12 + -0x10) + -0x18) + 1;\n        if (*param_2 == '\0') goto LAB_001735b7;\n      } while (uVar6 == (uint)(*(long *)(lVar12 + -0x10) - *(long *)(lVar12 + -0x18) >> 5));\n    }\n                    \n    FUN_0017c650("../../gold/dwarf_reader.cc",0x6c4,"read_header_tables");\n  }\nLAB_001735b7:\n  pbVar10 = (byte *)(param_2 + 1);\n  if (param_2[1] != '\0') {\n    iVar5 = 1;\n    __s = pbVar10;\n    do {\n      sVar4 = strlen((char *)__s);\n      pbVar11 = __s + sVar4 + 1;\n      bVar1 = *pbVar11;\n      uVar3 = (ulong)bVar1;\n      pbVar10 = pbVar11 + 1;\n      if ((char)bVar1 < '\0') {\n        uVar3 = FUN_001a3dc0(pbVar10,&local_70,bVar1);\n        pbVar10 = pbVar11 + local_70;\n      }\n      else {\n        local_70 = 1;\n      }\n      pbVar11 = pbVar10 + 1;\n      if ((ulong)(*(long *)(*(long *)(param_1 + 0xa0) + -0x10) -\n                  *(long *)(*(long *)(param_1 + 0xa0) + -0x18) >> 5) <= uVar3) {\n        uVar3 = 0;\n      }\n      if ((char)*pbVar10 < '\0') {\n        FUN_001a3dc0(pbVar11,&local_70);\n        pbVar11 = pbVar10 + local_70;\n        pbVar10 = pbVar11 + 1;\n        if ((char)*pbVar11 < '\0') goto LAB_0017374d;\nLAB_00173644:\n        local_70 = 1;\n      }\n      else {\n        pbVar10 = pbVar10 + 2;\n        local_70 = 1;\n        if (-1 < (char)*pbVar11) goto LAB_00173644;\nLAB_0017374d:\n        FUN_001a3dc0(pbVar10,&local_70);\n        pbVar10 = pbVar11 + local_70;\n      }\n      lVar12 = *(long *)(param_1 + 0xb8);\n      if (iVar5 != (int)(*(long *)(lVar12 + -0x10) - *(long *)(lVar12 + -0x18) >> 3) * -0x33333333)\n      {\n                    \n        FUN_0017c650("../../gold/dwarf_reader.cc",0x6e4,"read_header_tables");\n      }\n      local_68 = (long ****)CONCAT44(local_68._4_4_,(int)uVar3);\n      local_60 = local_50;\n      sVar4 = strlen((char *)__s);\n      FUN_001665c0(&local_60,__s,__s + sVar4);\n                    \n      FUN_00172000(lVar12 + -0x18,&local_68);\n      if (local_60 != local_50) {\n        FUN_002dac70();\n      }\n      iVar5 = iVar5 + 1;\n      __s = pbVar10;\n    } while (*pbVar10 != 0);\n  }\n  return pbVar10 + 1;\n}" { (declaration "byte bVar1;" type_identifier identifier ;) (declaration "long ****pppplVar2;" (sized_type_specifier "long" long) (pointer_declarator "****pppplVar2" * (pointer_declarator "***pppplVar2" * (pointer_declarator "**pppplVar2" * (pointer_declarator "*pppplVar2" * identifier)))) ;) (declaration "ulong uVar3;" type_identifier identifier ;) (declaration "size_t sVar4;" primitive_type identifier ;) (declaration "int iVar5;" primitive_type identifier ;) (declaration "uint uVar6;" type_identifier identifier ;) (declaration "long ****pppplVar7;" (sized_type_specifier "long" long) (pointer_declarator "****pppplVar7" * (pointer_declarator "***pppplVar7" * (pointer_declarator "**pppplVar7" * (pointer_declarator "*pppplVar7" * identifier)))) ;) (declaration "long *****ppppplVar8;" (sized_type_specifier "long" long) (pointer_declarator "*****ppppplVar8" * (pointer_declarator "****ppppplVar8" * (pointer_declarator "***ppppplVar8" * (pointer_declarator "**ppppplVar8" * (pointer_declarator "*ppppplVar8" * identifier))))) ;) (declaration "ulong uVar9;" type_identifier identifier ;) (declaration "byte *pbVar10;" type_identifier (pointer_declarator "*pbVar10" * identifier) ;) (declaration "byte *pbVar11;" type_identifier (pointer_declarator "*pbVar11" * identifier) ;) (declaration "long lVar12;" (sized_type_specifier "long" long) identifier ;) (declaration "byte *__s;" type_identifier (pointer_declarator "*__s" * identifier) ;) (declaration "long local_70;" (sized_type_specifier "long" long) identifier ;) (declaration "long ****local_68;" (sized_type_specifier "long" long) (pointer_declarator "****local_68" * (pointer_declarator "***local_68" * (pointer_declarator "**local_68" * (pointer_declarator "*local_68" * identifier)))) ;) (declaration "long ****local_60;" (sized_type_specifier "long" long) (pointer_declarator "****local_60" * (pointer_declarator "***local_60" * (pointer_declarator "**local_60" * (pointer_declarator "*local_60" * identifier)))) ;) (declaration "long ****local_58;" (sized_type_specifier "long" long) (pointer_declarator "****local_58" * (pointer_declarator "***local_58" * (pointer_declarator "**local_58" * (pointer_declarator "*local_58" * identifier)))) ;) (declaration "long ***local_50 [4];" (sized_type_specifier "long" long) (pointer_declarator "***local_50 [4]" * (pointer_declarator "**local_50 [4]" * (pointer_declarator "*local_50 [4]" * (array_declarator "local_50 [4]" identifier [ number_literal ])))) ;) (expression_statement "iVar5 = *(int *)(param_1 + 200) + 1;" (assignment_expression "iVar5 = *(int *)(param_1 + 200) + 1" identifier = (binary_expression "*(int *)(param_1 + 200) + 1" (pointer_expression "*(int *)(param_1 + 200)" * (cast_expression "(int *)(param_1 + 200)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 200)" ( (binary_expression "param_1 + 200" identifier + number_literal) )))) + number_literal)) ;) (expression_statement "*(int *)(param_1 + 200) = iVar5;" (assignment_expression "*(int *)(param_1 + 200) = iVar5" (pointer_expression "*(int *)(param_1 + 200)" * (cast_expression "(int *)(param_1 + 200)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 200)" ( (binary_expression "param_1 + 200" identifier + number_literal) )))) = identifier) ;) (if_statement "if (iVar5 != (int)(*(long *)(param_1 + 0xa0) - *(long *)(param_1 + 0x98) >> 3) * -0x55555555) {\n                    \n    FUN_0017c650("../../gold/dwarf_reader.cc",0x6b6,"read_header_tables");\n  }" if (parenthesized_expression "(iVar5 != (int)(*(long *)(param_1 + 0xa0) - *(long *)(param_1 + 0x98) >> 3) * -0x55555555)" ( (binary_expression "iVar5 != (int)(*(long *)(param_1 + 0xa0) - *(long *)(param_1 + 0x98) >> 3) * -0x55555555" identifier != (binary_expression "(int)(*(long *)(param_1 + 0xa0) - *(long *)(param_1 + 0x98) >> 3) * -0x55555555" (cast_expression "(int)(*(long *)(param_1 + 0xa0) - *(long *)(param_1 + 0x98) >> 3)" ( (type_descriptor "int" primitive_type) ) (parenthesized_expression "(*(long *)(param_1 + 0xa0) - *(long *)(param_1 + 0x98) >> 3)" ( (binary_expression "*(long *)(param_1 + 0xa0) - *(long *)(param_1 + 0x98) >> 3" (binary_expression "*(long *)(param_1 + 0xa0) - *(long *)(param_1 + 0x98)" (pointer_expression "*(long *)(param_1 + 0xa0)" * (cast_expression "(long *)(param_1 + 0xa0)" ( (type_descriptor "long *" (sized_type_specifier "long" long) (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0xa0)" ( (binary_expression "param_1 + 0xa0" identifier + number_literal) )))) - (pointer_expression "*(long *)(param_1 + 0x98)" * (cast_expression "(long *)(param_1 + 0x98)" ( (type_descriptor "long *" (sized_type_specifier "long" long) (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x98)" ( (binary_expression "param_1 + 0x98" identifier + number_literal) ))))) >> number_literal) ))) * number_literal)) )) (compound_statement "{\n                    \n    FUN_0017c650("../../gold/dwarf_reader.cc",0x6b6,"read_header_tables");\n  }" { (expression_statement "FUN_0017c650("../../gold/dwarf_reader.cc",0x6b6,"read_header_tables");" (call_expression "FUN_0017c650("../../gold/dwarf_reader.cc",0x6b6,"read_header_tables")" identifier (argument_list "("../../gold/dwarf_reader.cc",0x6b6,"read_header_tables")" ( (string_literal ""../../gold/dwarf_reader.cc"" " string_content ") , number_literal , (string_literal ""read_header_tables"" " string_content ") ))) ;) })) (if_statement "if (iVar5 != (int)(*(long *)(param_1 + 0xb8) - *(long *)(param_1 + 0xb0) >> 3) * -0x55555555) {\n                    \n    FUN_0017c650("../../gold/dwarf_reader.cc",0x6b8,"read_header_tables");\n  }" if (parenthesized_expression "(iVar5 != (int)(*(long *)(param_1 + 0xb8) - *(long *)(param_1 + 0xb0) >> 3) * -0x55555555)" ( (binary_expression "iVar5 != (int)(*(long *)(param_1 + 0xb8) - *(long *)(param_1 + 0xb0) >> 3) * -0x55555555" identifier != (binary_expression "(int)(*(long *)(param_1 + 0xb8) - *(long *)(param_1 + 0xb0) >> 3) * -0x55555555" (cast_expression "(int)(*(long *)(param_1 + 0xb8) - *(long *)(param_1 + 0xb0) >> 3)" ( (type_descriptor "int" primitive_type) ) (parenthesized_expression "(*(long *)(param_1 + 0xb8) - *(long *)(param_1 + 0xb0) >> 3)" ( (binary_expression "*(long *)(param_1 + 0xb8) - *(long *)(param_1 + 0xb0) >> 3" (binary_expression "*(long *)(param_1 + 0xb8) - *(long *)(param_1 + 0xb0)" (pointer_expression "*(long *)(param_1 + 0xb8)" * (cast_expression "(long *)(param_1 + 0xb8)" ( (type_descriptor "long *" (sized_type_specifier "long" long) (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0xb8)" ( (binary_expression "param_1 + 0xb8" identifier + number_literal) )))) - (pointer_expression "*(long *)(param_1 + 0xb0)" * (cast_expression "(long *)(param_1 + 0xb0)" ( (type_descriptor "long *" (sized_type_specifier "long" long) (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0xb0)" ( (binary_expression "param_1 + 0xb0" identifier + number_literal) ))))) >> number_literal) ))) * number_literal)) )) (compound_statement "{\n                    \n    FUN_0017c650("../../gold/dwarf_reader.cc",0x6b8,"read_header_tables");\n  }" { (expression_statement "FUN_0017c650("../../gold/dwarf_reader.cc",0x6b8,"read_header_tables");" (call_expression "FUN_0017c650("../../gold/dwarf_reader.cc",0x6b8,"read_header_tables")" identifier (argument_list "("../../gold/dwarf_reader.cc",0x6b8,"read_header_tables")" ( (string_literal ""../../gold/dwarf_reader.cc"" " string_content ") , number_literal , (string_literal ""read_header_tables"" " string_content ") ))) ;) })) (expression_statement "local_68 = (long ****)0x0;" (assignment_expression "local_68 = (long ****)0x0" identifier = (cast_expression "(long ****)0x0" ( (type_descriptor "long ****" (sized_type_specifier "long" long) (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))))) ) number_literal)) ;) (expression_statement "local_60 = (long ****)0x0;" (assignment_expression "local_60 = (long ****)0x0" identifier = (cast_expression "(long ****)0x0" ( (type_descriptor "long ****" (sized_type_specifier "long" long) (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))))) ) number_literal)) ;) (expression_statement "local_58 = (long ****)0x0;" (assignment_expression "local_58 = (long ****)0x0" identifier = (cast_expression "(long ****)0x0" ( (type_descriptor "long ****" (sized_type_specifier "long" long) (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))))) ) number_literal)) ;) (expression_statement "local_68 = (long ****)FUN_002d94a0(0x20);" (assignment_expression "local_68 = (long ****)FUN_002d94a0(0x20)" identifier = (cast_expression "(long ****)FUN_002d94a0(0x20)" ( (type_descriptor "long ****" (sized_type_specifier "long" long) (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))))) ) (call_expression "FUN_002d94a0(0x20)" identifier (argument_list "(0x20)" ( number_literal ))))) ;) (expression_statement "local_68[1] = (long ***)0x0;" (assignment_expression "local_68[1] = (long ***)0x0" (subscript_expression "local_68[1]" identifier [ number_literal ]) = (cast_expression "(long ***)0x0" ( (type_descriptor "long ***" (sized_type_specifier "long" long) (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *)))) ) number_literal)) ;) (expression_statement "local_60 = local_68 + 4;" (assignment_expression "local_60 = local_68 + 4" identifier = (binary_expression "local_68 + 4" identifier + number_literal)) ;) (expression_statement "*local_68 = (long ***)(local_68 + 2);" (assignment_expression "*local_68 = (long ***)(local_68 + 2)" (pointer_expression "*local_68" * identifier) = (cast_expression "(long ***)(local_68 + 2)" ( (type_descriptor "long ***" (sized_type_specifier "long" long) (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *)))) ) (parenthesized_expression "(local_68 + 2)" ( (binary_expression "local_68 + 2" identifier + number_literal) )))) ;) (expression_statement "*(undefined1 *)(local_68 + 2) = 0;" (assignment_expression "*(undefined1 *)(local_68 + 2) = 0" (pointer_expression "*(undefined1 *)(local_68 + 2)" * (cast_expression "(undefined1 *)(local_68 + 2)" ( (type_descriptor "undefined1 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(local_68 + 2)" ( (binary_expression "local_68 + 2" identifier + number_literal) )))) = number_literal) ;) (expression_statement "local_58 = local_60;" (assignment_expression "local_58 = local_60" identifier = identifier) ;) (expression_statement "FUN_00171a10(param_1 + 0x98,&local_68);" (call_expression "FUN_00171a10(param_1 + 0x98,&local_68)" identifier (argument_list "(param_1 + 0x98,&local_68)" ( (binary_expression "param_1 + 0x98" identifier + number_literal) , (pointer_expression "&local_68" & identifier) ))) ;) (expression_statement "pppplVar2 = local_60;" (assignment_expression "pppplVar2 = local_60" identifier = identifier) ;) (for_statement "for (pppplVar7 = local_68; pppplVar2 != pppplVar7; pppplVar7 = pppplVar7 + 4) {\n    if ((long ****)*pppplVar7 != pppplVar7 + 2) {\n      FUN_002dac70();\n    }\n  }" for ( (assignment_expression "pppplVar7 = local_68" identifier = identifier) ; (binary_expression "pppplVar2 != pppplVar7" identifier != identifier) ; (assignment_expression "pppplVar7 = pppplVar7 + 4" identifier = (binary_expression "pppplVar7 + 4" identifier + number_literal)) ) (compound_statement "{\n    if ((long ****)*pppplVar7 != pppplVar7 + 2) {\n      FUN_002dac70();\n    }\n  }" { (if_statement "if ((long ****)*pppplVar7 != pppplVar7 + 2) {\n      FUN_002dac70();\n    }" if (parenthesized_expression "((long ****)*pppplVar7 != pppplVar7 + 2)" ( (binary_expression "(long ****)*pppplVar7 != pppplVar7 + 2" (cast_expression "(long ****)*pppplVar7" ( (type_descriptor "long ****" (sized_type_specifier "long" long) (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))))) ) (pointer_expression "*pppplVar7" * identifier)) != (binary_expression "pppplVar7 + 2" identifier + number_literal)) )) (compound_statement "{\n      FUN_002dac70();\n    }" { (expression_statement "FUN_002dac70();" (call_expression "FUN_002dac70()" identifier (argument_list "()" ( ))) ;) })) })) (if_statement "if (local_68 != (long ****)0x0) {\n    FUN_002dac70(local_68);\n  }" if (parenthesized_expression "(local_68 != (long ****)0x0)" ( (binary_expression "local_68 != (long ****)0x0" identifier != (cast_expression "(long ****)0x0" ( (type_descriptor "long ****" (sized_type_specifier "long" long) (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))))) ) number_literal)) )) (compound_statement "{\n    FUN_002dac70(local_68);\n  }" { (expression_statement "FUN_002dac70(local_68);" (call_expression "FUN_002dac70(local_68)" identifier (argument_list "(local_68)" ( identifier ))) ;) })) (expression_statement "local_68 = (long ****)0x0;" (assignment_expression "local_68 = (long ****)0x0" identifier = (cast_expression "(long ****)0x0" ( (type_descriptor "long ****" (sized_type_specifier "long" long) (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))))) ) number_literal)) ;) (expression_statement "local_60 = (long ****)0x0;" (assignment_expression "local_60 = (long ****)0x0" identifier = (cast_expression "(long ****)0x0" ( (type_descriptor "long ****" (sized_type_specifier "long" long) (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))))) ) number_literal)) ;) (expression_statement "local_58 = (long ****)0x0;" (assignment_expression "local_58 = (long ****)0x0" identifier = (cast_expression "(long ****)0x0" ( (type_descriptor "long ****" (sized_type_specifier "long" long) (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))))) ) number_literal)) ;) (expression_statement "local_68 = (long ****)FUN_002d94a0(0x28);" (assignment_expression "local_68 = (long ****)FUN_002d94a0(0x28)" identifier = (cast_expression "(long ****)FUN_002d94a0(0x28)" ( (type_descriptor "long ****" (sized_type_specifier "long" long) (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))))) ) (call_expression "FUN_002d94a0(0x28)" identifier (argument_list "(0x28)" ( number_literal ))))) ;) (expression_statement "*(undefined4 *)local_68 = 0;" (assignment_expression "*(undefined4 *)local_68 = 0" (pointer_expression "*(undefined4 *)local_68" * (cast_expression "(undefined4 *)local_68" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) = number_literal) ;) (expression_statement "local_60 = (long ****)((long *****)local_68 + 5);" (assignment_expression "local_60 = (long ****)((long *****)local_68 + 5)" identifier = (cast_expression "(long ****)((long *****)local_68 + 5)" ( (type_descriptor "long ****" (sized_type_specifier "long" long) (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))))) ) (parenthesized_expression "((long *****)local_68 + 5)" ( (binary_expression "(long *****)local_68 + 5" (cast_expression "(long *****)local_68" ( (type_descriptor "long *****" (sized_type_specifier "long" long) (abstract_pointer_declarator "*****" * (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *)))))) ) identifier) + number_literal) )))) ;) (expression_statement "((long *****)local_68)[1] = (long ****)((long *****)local_68 + 3);" (assignment_expression "((long *****)local_68)[1] = (long ****)((long *****)local_68 + 3)" (subscript_expression "((long *****)local_68)[1]" (parenthesized_expression "((long *****)local_68)" ( (cast_expression "(long *****)local_68" ( (type_descriptor "long *****" (sized_type_specifier "long" long) (abstract_pointer_declarator "*****" * (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *)))))) ) identifier) )) [ number_literal ]) = (cast_expression "(long ****)((long *****)local_68 + 3)" ( (type_descriptor "long ****" (sized_type_specifier "long" long) (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))))) ) (parenthesized_expression "((long *****)local_68 + 3)" ( (binary_expression "(long *****)local_68 + 3" (cast_expression "(long *****)local_68" ( (type_descriptor "long *****" (sized_type_specifier "long" long) (abstract_pointer_declarator "*****" * (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *)))))) ) identifier) + number_literal) )))) ;) (expression_statement "((long *****)local_68)[2] = (long ****)0x0;" (assignment_expression "((long *****)local_68)[2] = (long ****)0x0" (subscript_expression "((long *****)local_68)[2]" (parenthesized_expression "((long *****)local_68)" ( (cast_expression "(long *****)local_68" ( (type_descriptor "long *****" (sized_type_specifier "long" long) (abstract_pointer_declarator "*****" * (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *)))))) ) identifier) )) [ number_literal ]) = (cast_expression "(long ****)0x0" ( (type_descriptor "long ****" (sized_type_specifier "long" long) (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))))) ) number_literal)) ;) (expression_statement "*(undefined1 *)((long *****)local_68 + 3) = 0;" (assignment_expression "*(undefined1 *)((long *****)local_68 + 3) = 0" (pointer_expression "*(undefined1 *)((long *****)local_68 + 3)" * (cast_expression "(undefined1 *)((long *****)local_68 + 3)" ( (type_descriptor "undefined1 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((long *****)local_68 + 3)" ( (binary_expression "(long *****)local_68 + 3" (cast_expression "(long *****)local_68" ( (type_descriptor "long *****" (sized_type_specifier "long" long) (abstract_pointer_declarator "*****" * (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *)))))) ) identifier) + number_literal) )))) = number_literal) ;) (expression_statement "local_58 = local_60;" (assignment_expression "local_58 = local_60" identifier = identifier) ;) (expression_statement "FUN_00171d10(param_1 + 0xb0,&local_68);" (call_expression "FUN_00171d10(param_1 + 0xb0,&local_68)" identifier (argument_list "(param_1 + 0xb0,&local_68)" ( (binary_expression "param_1 + 0xb0" identifier + number_literal) , (pointer_expression "&local_68" & identifier) ))) ;) (expression_statement "pppplVar7 = local_60;" (assignment_expression "pppplVar7 = local_60" identifier = identifier) ;) (for_statement "for (ppppplVar8 = (long *****)local_68; (long *****)pppplVar7 != ppppplVar8;\n      ppppplVar8 = ppppplVar8 + 5) {\n    if ((long *****)ppppplVar8[1] != ppppplVar8 + 3) {\n      FUN_002dac70();\n    }\n  }" for ( (assignment_expression "ppppplVar8 = (long *****)local_68" identifier = (cast_expression "(long *****)local_68" ( (type_descriptor "long *****" (sized_type_specifier "long" long) (abstract_pointer_declarator "*****" * (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *)))))) ) identifier)) ; (binary_expression "(long *****)pppplVar7 != ppppplVar8" (cast_expression "(long *****)pppplVar7" ( (type_descriptor "long *****" (sized_type_specifier "long" long) (abstract_pointer_declarator "*****" * (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *)))))) ) identifier) != identifier) ; (assignment_expression "ppppplVar8 = ppppplVar8 + 5" identifier = (binary_expression "ppppplVar8 + 5" identifier + number_literal)) ) (compound_statement "{\n    if ((long *****)ppppplVar8[1] != ppppplVar8 + 3) {\n      FUN_002dac70();\n    }\n  }" { (if_statement "if ((long *****)ppppplVar8[1] != ppppplVar8 + 3) {\n      FUN_002dac70();\n    }" if (parenthesized_expression "((long *****)ppppplVar8[1] != ppppplVar8 + 3)" ( (binary_expression "(long *****)ppppplVar8[1] != ppppplVar8 + 3" (cast_expression "(long *****)ppppplVar8[1]" ( (type_descriptor "long *****" (sized_type_specifier "long" long) (abstract_pointer_declarator "*****" * (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *)))))) ) (subscript_expression "ppppplVar8[1]" identifier [ number_literal ])) != (binary_expression "ppppplVar8 + 3" identifier + number_literal)) )) (compound_statement "{\n      FUN_002dac70();\n    }" { (expression_statement "FUN_002dac70();" (call_expression "FUN_002dac70()" identifier (argument_list "()" ( ))) ;) })) })) (if_statement "if ((long *****)local_68 != (long *****)0x0) {\n    FUN_002dac70(local_68);\n  }" if (parenthesized_expression "((long *****)local_68 != (long *****)0x0)" ( (binary_expression "(long *****)local_68 != (long *****)0x0" (cast_expression "(long *****)local_68" ( (type_descriptor "long *****" (sized_type_specifier "long" long) (abstract_pointer_declarator "*****" * (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *)))))) ) identifier) != (cast_expression "(long *****)0x0" ( (type_descriptor "long *****" (sized_type_specifier "long" long) (abstract_pointer_declarator "*****" * (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *)))))) ) number_literal)) )) (compound_statement "{\n    FUN_002dac70(local_68);\n  }" { (expression_statement "FUN_002dac70(local_68);" (call_expression "FUN_002dac70(local_68)" identifier (argument_list "(local_68)" ( identifier ))) ;) })) (if_statement "if (*param_2 != '\0') {\n    lVar12 = *(long *)(param_1 + 0xa0);\n    uVar3 = *(long *)(lVar12 + -0x10) - *(long *)(lVar12 + -0x18) >> 5;\n    uVar9 = uVar3 & 0xffffffff;\n    if ((int)uVar3 == 1) {\n      do {\n        local_68 = (long ****)&local_58;\n        sVar4 = strlen(param_2);\n        FUN_001665c0(&local_68,param_2,param_2 + sVar4);\n                    \n        FUN_0016f840(lVar12 + -0x18,&local_68);\n        if ((long *****)local_68 != &local_58) {\n          FUN_002dac70();\n        }\n        lVar12 = *(long *)(param_1 + 0xa0);\n        uVar6 = (int)uVar9 + 1;\n        uVar9 = (ulong)uVar6;\n        param_2 = param_2 + *(long *)(*(long *)(lVar12 + -0x10) + -0x18) + 1;\n        if (*param_2 == '\0') goto LAB_001735b7;\n      } while (uVar6 == (uint)(*(long *)(lVar12 + -0x10) - *(long *)(lVar12 + -0x18) >> 5));\n    }\n                    \n    FUN_0017c650("../../gold/dwarf_reader.cc",0x6c4,"read_header_tables");\n  }" if (parenthesized_expression "(*param_2 != '\0')" ( (binary_expression "*param_2 != '\0'" (pointer_expression "*param_2" * identifier) != (char_literal "'\0'" ' escape_sequence ')) )) (compound_statement "{\n    lVar12 = *(long *)(param_1 + 0xa0);\n    uVar3 = *(long *)(lVar12 + -0x10) - *(long *)(lVar12 + -0x18) >> 5;\n    uVar9 = uVar3 & 0xffffffff;\n    if ((int)uVar3 == 1) {\n      do {\n        local_68 = (long ****)&local_58;\n        sVar4 = strlen(param_2);\n        FUN_001665c0(&local_68,param_2,param_2 + sVar4);\n                    \n        FUN_0016f840(lVar12 + -0x18,&local_68);\n        if ((long *****)local_68 != &local_58) {\n          FUN_002dac70();\n        }\n        lVar12 = *(long *)(param_1 + 0xa0);\n        uVar6 = (int)uVar9 + 1;\n        uVar9 = (ulong)uVar6;\n        param_2 = param_2 + *(long *)(*(long *)(lVar12 + -0x10) + -0x18) + 1;\n        if (*param_2 == '\0') goto LAB_001735b7;\n      } while (uVar6 == (uint)(*(long *)(lVar12 + -0x10) - *(long *)(lVar12 + -0x18) >> 5));\n    }\n                    \n    FUN_0017c650("../../gold/dwarf_reader.cc",0x6c4,"read_header_tables");\n  }" { (expression_statement "lVar12 = *(long *)(param_1 + 0xa0);" (assignment_expression "lVar12 = *(long *)(param_1 + 0xa0)" identifier = (pointer_expression "*(long *)(param_1 + 0xa0)" * (cast_expression "(long *)(param_1 + 0xa0)" ( (type_descriptor "long *" (sized_type_specifier "long" long) (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0xa0)" ( (binary_expression "param_1 + 0xa0" identifier + number_literal) ))))) ;) (expression_statement "uVar3 = *(long *)(lVar12 + -0x10) - *(long *)(lVar12 + -0x18) >> 5;" (assignment_expression "uVar3 = *(long *)(lVar12 + -0x10) - *(long *)(lVar12 + -0x18) >> 5" identifier = (binary_expression "*(long *)(lVar12 + -0x10) - *(long *)(lVar12 + -0x18) >> 5" (binary_expression "*(long *)(lVar12 + -0x10) - *(long *)(lVar12 + -0x18)" (pointer_expression "*(long *)(lVar12 + -0x10)" * (cast_expression "(long *)(lVar12 + -0x10)" ( (type_descriptor "long *" (sized_type_specifier "long" long) (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(lVar12 + -0x10)" ( (binary_expression "lVar12 + -0x10" identifier + number_literal) )))) - (pointer_expression "*(long *)(lVar12 + -0x18)" * (cast_expression "(long *)(lVar12 + -0x18)" ( (type_descriptor "long *" (sized_type_specifier "long" long) (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(lVar12 + -0x18)" ( (binary_expression "lVar12 + -0x18" identifier + number_literal) ))))) >> number_literal)) ;) (expression_statement "uVar9 = uVar3 & 0xffffffff;" (assignment_expression "uVar9 = uVar3 & 0xffffffff" identifier = (binary_expression "uVar3 & 0xffffffff" identifier & number_literal)) ;) (if_statement "if ((int)uVar3 == 1) {\n      do {\n        local_68 = (long ****)&local_58;\n        sVar4 = strlen(param_2);\n        FUN_001665c0(&local_68,param_2,param_2 + sVar4);\n                    \n        FUN_0016f840(lVar12 + -0x18,&local_68);\n        if ((long *****)local_68 != &local_58) {\n          FUN_002dac70();\n        }\n        lVar12 = *(long *)(param_1 + 0xa0);\n        uVar6 = (int)uVar9 + 1;\n        uVar9 = (ulong)uVar6;\n        param_2 = param_2 + *(long *)(*(long *)(lVar12 + -0x10) + -0x18) + 1;\n        if (*param_2 == '\0') goto LAB_001735b7;\n      } while (uVar6 == (uint)(*(long *)(lVar12 + -0x10) - *(long *)(lVar12 + -0x18) >> 5));\n    }" if (parenthesized_expression "((int)uVar3 == 1)" ( (binary_expression "(int)uVar3 == 1" (cast_expression "(int)uVar3" ( (type_descriptor "int" primitive_type) ) identifier) == number_literal) )) (compound_statement "{\n      do {\n        local_68 = (long ****)&local_58;\n        sVar4 = strlen(param_2);\n        FUN_001665c0(&local_68,param_2,param_2 + sVar4);\n                    \n        FUN_0016f840(lVar12 + -0x18,&local_68);\n        if ((long *****)local_68 != &local_58) {\n          FUN_002dac70();\n        }\n        lVar12 = *(long *)(param_1 + 0xa0);\n        uVar6 = (int)uVar9 + 1;\n        uVar9 = (ulong)uVar6;\n        param_2 = param_2 + *(long *)(*(long *)(lVar12 + -0x10) + -0x18) + 1;\n        if (*param_2 == '\0') goto LAB_001735b7;\n      } while (uVar6 == (uint)(*(long *)(lVar12 + -0x10) - *(long *)(lVar12 + -0x18) >> 5));\n    }" { (do_statement "do {\n        local_68 = (long ****)&local_58;\n        sVar4 = strlen(param_2);\n        FUN_001665c0(&local_68,param_2,param_2 + sVar4);\n                    \n        FUN_0016f840(lVar12 + -0x18,&local_68);\n        if ((long *****)local_68 != &local_58) {\n          FUN_002dac70();\n        }\n        lVar12 = *(long *)(param_1 + 0xa0);\n        uVar6 = (int)uVar9 + 1;\n        uVar9 = (ulong)uVar6;\n        param_2 = param_2 + *(long *)(*(long *)(lVar12 + -0x10) + -0x18) + 1;\n        if (*param_2 == '\0') goto LAB_001735b7;\n      } while (uVar6 == (uint)(*(long *)(lVar12 + -0x10) - *(long *)(lVar12 + -0x18) >> 5));" do (compound_statement "{\n        local_68 = (long ****)&local_58;\n        sVar4 = strlen(param_2);\n        FUN_001665c0(&local_68,param_2,param_2 + sVar4);\n                    \n        FUN_0016f840(lVar12 + -0x18,&local_68);\n        if ((long *****)local_68 != &local_58) {\n          FUN_002dac70();\n        }\n        lVar12 = *(long *)(param_1 + 0xa0);\n        uVar6 = (int)uVar9 + 1;\n        uVar9 = (ulong)uVar6;\n        param_2 = param_2 + *(long *)(*(long *)(lVar12 + -0x10) + -0x18) + 1;\n        if (*param_2 == '\0') goto LAB_001735b7;\n      }" { (expression_statement "local_68 = (long ****)&local_58;" (assignment_expression "local_68 = (long ****)&local_58" identifier = (cast_expression "(long ****)&local_58" ( (type_descriptor "long ****" (sized_type_specifier "long" long) (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))))) ) (pointer_expression "&local_58" & identifier))) ;) (expression_statement "sVar4 = strlen(param_2);" (assignment_expression "sVar4 = strlen(param_2)" identifier = (call_expression "strlen(param_2)" identifier (argument_list "(param_2)" ( identifier )))) ;) (expression_statement "FUN_001665c0(&local_68,param_2,param_2 + sVar4);" (call_expression "FUN_001665c0(&local_68,param_2,param_2 + sVar4)" identifier (argument_list "(&local_68,param_2,param_2 + sVar4)" ( (pointer_expression "&local_68" & identifier) , identifier , (binary_expression "param_2 + sVar4" identifier + identifier) ))) ;) (expression_statement "FUN_0016f840(lVar12 + -0x18,&local_68);" (call_expression "FUN_0016f840(lVar12 + -0x18,&local_68)" identifier (argument_list "(lVar12 + -0x18,&local_68)" ( (binary_expression "lVar12 + -0x18" identifier + number_literal) , (pointer_expression "&local_68" & identifier) ))) ;) (if_statement "if ((long *****)local_68 != &local_58) {\n          FUN_002dac70();\n        }" if (parenthesized_expression "((long *****)local_68 != &local_58)" ( (binary_expression "(long *****)local_68 != &local_58" (cast_expression "(long *****)local_68" ( (type_descriptor "long *****" (sized_type_specifier "long" long) (abstract_pointer_declarator "*****" * (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *)))))) ) identifier) != (pointer_expression "&local_58" & identifier)) )) (compound_statement "{\n          FUN_002dac70();\n        }" { (expression_statement "FUN_002dac70();" (call_expression "FUN_002dac70()" identifier (argument_list "()" ( ))) ;) })) (expression_statement "lVar12 = *(long *)(param_1 + 0xa0);" (assignment_expression "lVar12 = *(long *)(param_1 + 0xa0)" identifier = (pointer_expression "*(long *)(param_1 + 0xa0)" * (cast_expression "(long *)(param_1 + 0xa0)" ( (type_descriptor "long *" (sized_type_specifier "long" long) (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0xa0)" ( (binary_expression "param_1 + 0xa0" identifier + number_literal) ))))) ;) (expression_statement "uVar6 = (int)uVar9 + 1;" (assignment_expression "uVar6 = (int)uVar9 + 1" identifier = (binary_expression "(int)uVar9 + 1" (cast_expression "(int)uVar9" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal)) ;) (expression_statement "uVar9 = (ulong)uVar6;" (assignment_expression "uVar9 = (ulong)uVar6" identifier = (cast_expression "(ulong)uVar6" ( (type_descriptor "ulong" type_identifier) ) identifier)) ;) (expression_statement "param_2 = param_2 + *(long *)(*(long *)(lVar12 + -0x10) + -0x18) + 1;" (assignment_expression "param_2 = param_2 + *(long *)(*(long *)(lVar12 + -0x10) + -0x18) + 1" identifier = (binary_expression "param_2 + *(long *)(*(long *)(lVar12 + -0x10) + -0x18) + 1" (binary_expression "param_2 + *(long *)(*(long *)(lVar12 + -0x10) + -0x18)" identifier + (pointer_expression "*(long *)(*(long *)(lVar12 + -0x10) + -0x18)" * (cast_expression "(long *)(*(long *)(lVar12 + -0x10) + -0x18)" ( (type_descriptor "long *" (sized_type_specifier "long" long) (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*(long *)(lVar12 + -0x10) + -0x18)" ( (binary_expression "*(long *)(lVar12 + -0x10) + -0x18" (pointer_expression "*(long *)(lVar12 + -0x10)" * (cast_expression "(long *)(lVar12 + -0x10)" ( (type_descriptor "long *" (sized_type_specifier "long" long) (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(lVar12 + -0x10)" ( (binary_expression "lVar12 + -0x10" identifier + number_literal) )))) + number_literal) ))))) + number_literal)) ;) (if_statement "if (*param_2 == '\0') goto LAB_001735b7;" if (parenthesized_expression "(*param_2 == '\0')" ( (binary_expression "*param_2 == '\0'" (pointer_expression "*param_2" * identifier) == (char_literal "'\0'" ' escape_sequence ')) )) (goto_statement "goto LAB_001735b7;" goto statement_identifier ;)) }) while (parenthesized_expression "(uVar6 == (uint)(*(long *)(lVar12 + -0x10) - *(long *)(lVar12 + -0x18) >> 5))" ( (binary_expression "uVar6 == (uint)(*(long *)(lVar12 + -0x10) - *(long *)(lVar12 + -0x18) >> 5)" identifier == (call_expression "(uint)(*(long *)(lVar12 + -0x10) - *(long *)(lVar12 + -0x18) >> 5)" (parenthesized_expression "(uint)" ( identifier )) (argument_list "(*(long *)(lVar12 + -0x10) - *(long *)(lVar12 + -0x18) >> 5)" ( (binary_expression "*(long *)(lVar12 + -0x10) - *(long *)(lVar12 + -0x18) >> 5" (binary_expression "*(long *)(lVar12 + -0x10) - *(long *)(lVar12 + -0x18)" (pointer_expression "*(long *)(lVar12 + -0x10)" * (cast_expression "(long *)(lVar12 + -0x10)" ( (type_descriptor "long *" (sized_type_specifier "long" long) (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(lVar12 + -0x10)" ( (binary_expression "lVar12 + -0x10" identifier + number_literal) )))) - (pointer_expression "*(long *)(lVar12 + -0x18)" * (cast_expression "(long *)(lVar12 + -0x18)" ( (type_descriptor "long *" (sized_type_specifier "long" long) (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(lVar12 + -0x18)" ( (binary_expression "lVar12 + -0x18" identifier + number_literal) ))))) >> number_literal) )))) )) ;) })) (expression_statement "FUN_0017c650("../../gold/dwarf_reader.cc",0x6c4,"read_header_tables");" (call_expression "FUN_0017c650("../../gold/dwarf_reader.cc",0x6c4,"read_header_tables")" identifier (argument_list "("../../gold/dwarf_reader.cc",0x6c4,"read_header_tables")" ( (string_literal ""../../gold/dwarf_reader.cc"" " string_content ") , number_literal , (string_literal ""read_header_tables"" " string_content ") ))) ;) })) (labeled_statement "LAB_001735b7:\n  pbVar10 = (byte *)(param_2 + 1);" statement_identifier : (expression_statement "pbVar10 = (byte *)(param_2 + 1);" (assignment_expression "pbVar10 = (byte *)(param_2 + 1)" identifier = (cast_expression "(byte *)(param_2 + 1)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_2 + 1)" ( (binary_expression "param_2 + 1" identifier + number_literal) )))) ;)) (if_statement "if (param_2[1] != '\0') {\n    iVar5 = 1;\n    __s = pbVar10;\n    do {\n      sVar4 = strlen((char *)__s);\n      pbVar11 = __s + sVar4 + 1;\n      bVar1 = *pbVar11;\n      uVar3 = (ulong)bVar1;\n      pbVar10 = pbVar11 + 1;\n      if ((char)bVar1 < '\0') {\n        uVar3 = FUN_001a3dc0(pbVar10,&local_70,bVar1);\n        pbVar10 = pbVar11 + local_70;\n      }\n      else {\n        local_70 = 1;\n      }\n      pbVar11 = pbVar10 + 1;\n      if ((ulong)(*(long *)(*(long *)(param_1 + 0xa0) + -0x10) -\n                  *(long *)(*(long *)(param_1 + 0xa0) + -0x18) >> 5) <= uVar3) {\n        uVar3 = 0;\n      }\n      if ((char)*pbVar10 < '\0') {\n        FUN_001a3dc0(pbVar11,&local_70);\n        pbVar11 = pbVar10 + local_70;\n        pbVar10 = pbVar11 + 1;\n        if ((char)*pbVar11 < '\0') goto LAB_0017374d;\nLAB_00173644:\n        local_70 = 1;\n      }\n      else {\n        pbVar10 = pbVar10 + 2;\n        local_70 = 1;\n        if (-1 < (char)*pbVar11) goto LAB_00173644;\nLAB_0017374d:\n        FUN_001a3dc0(pbVar10,&local_70);\n        pbVar10 = pbVar11 + local_70;\n      }\n      lVar12 = *(long *)(param_1 + 0xb8);\n      if (iVar5 != (int)(*(long *)(lVar12 + -0x10) - *(long *)(lVar12 + -0x18) >> 3) * -0x33333333)\n      {\n                    \n        FUN_0017c650("../../gold/dwarf_reader.cc",0x6e4,"read_header_tables");\n      }\n      local_68 = (long ****)CONCAT44(local_68._4_4_,(int)uVar3);\n      local_60 = local_50;\n      sVar4 = strlen((char *)__s);\n      FUN_001665c0(&local_60,__s,__s + sVar4);\n                    \n      FUN_00172000(lVar12 + -0x18,&local_68);\n      if (local_60 != local_50) {\n        FUN_002dac70();\n      }\n      iVar5 = iVar5 + 1;\n      __s = pbVar10;\n    } while (*pbVar10 != 0);\n  }" if (parenthesized_expression "(param_2[1] != '\0')" ( (binary_expression "param_2[1] != '\0'" (subscript_expression "param_2[1]" identifier [ number_literal ]) != (char_literal "'\0'" ' escape_sequence ')) )) (compound_statement "{\n    iVar5 = 1;\n    __s = pbVar10;\n    do {\n      sVar4 = strlen((char *)__s);\n      pbVar11 = __s + sVar4 + 1;\n      bVar1 = *pbVar11;\n      uVar3 = (ulong)bVar1;\n      pbVar10 = pbVar11 + 1;\n      if ((char)bVar1 < '\0') {\n        uVar3 = FUN_001a3dc0(pbVar10,&local_70,bVar1);\n        pbVar10 = pbVar11 + local_70;\n      }\n      else {\n        local_70 = 1;\n      }\n      pbVar11 = pbVar10 + 1;\n      if ((ulong)(*(long *)(*(long *)(param_1 + 0xa0) + -0x10) -\n                  *(long *)(*(long *)(param_1 + 0xa0) + -0x18) >> 5) <= uVar3) {\n        uVar3 = 0;\n      }\n      if ((char)*pbVar10 < '\0') {\n        FUN_001a3dc0(pbVar11,&local_70);\n        pbVar11 = pbVar10 + local_70;\n        pbVar10 = pbVar11 + 1;\n        if ((char)*pbVar11 < '\0') goto LAB_0017374d;\nLAB_00173644:\n        local_70 = 1;\n      }\n      else {\n        pbVar10 = pbVar10 + 2;\n        local_70 = 1;\n        if (-1 < (char)*pbVar11) goto LAB_00173644;\nLAB_0017374d:\n        FUN_001a3dc0(pbVar10,&local_70);\n        pbVar10 = pbVar11 + local_70;\n      }\n      lVar12 = *(long *)(param_1 + 0xb8);\n      if (iVar5 != (int)(*(long *)(lVar12 + -0x10) - *(long *)(lVar12 + -0x18) >> 3) * -0x33333333)\n      {\n                    \n        FUN_0017c650("../../gold/dwarf_reader.cc",0x6e4,"read_header_tables");\n      }\n      local_68 = (long ****)CONCAT44(local_68._4_4_,(int)uVar3);\n      local_60 = local_50;\n      sVar4 = strlen((char *)__s);\n      FUN_001665c0(&local_60,__s,__s + sVar4);\n                    \n      FUN_00172000(lVar12 + -0x18,&local_68);\n      if (local_60 != local_50) {\n        FUN_002dac70();\n      }\n      iVar5 = iVar5 + 1;\n      __s = pbVar10;\n    } while (*pbVar10 != 0);\n  }" { (expression_statement "iVar5 = 1;" (assignment_expression "iVar5 = 1" identifier = number_literal) ;) (expression_statement "__s = pbVar10;" (assignment_expression "__s = pbVar10" identifier = identifier) ;) (do_statement "do {\n      sVar4 = strlen((char *)__s);\n      pbVar11 = __s + sVar4 + 1;\n      bVar1 = *pbVar11;\n      uVar3 = (ulong)bVar1;\n      pbVar10 = pbVar11 + 1;\n      if ((char)bVar1 < '\0') {\n        uVar3 = FUN_001a3dc0(pbVar10,&local_70,bVar1);\n        pbVar10 = pbVar11 + local_70;\n      }\n      else {\n        local_70 = 1;\n      }\n      pbVar11 = pbVar10 + 1;\n      if ((ulong)(*(long *)(*(long *)(param_1 + 0xa0) + -0x10) -\n                  *(long *)(*(long *)(param_1 + 0xa0) + -0x18) >> 5) <= uVar3) {\n        uVar3 = 0;\n      }\n      if ((char)*pbVar10 < '\0') {\n        FUN_001a3dc0(pbVar11,&local_70);\n        pbVar11 = pbVar10 + local_70;\n        pbVar10 = pbVar11 + 1;\n        if ((char)*pbVar11 < '\0') goto LAB_0017374d;\nLAB_00173644:\n        local_70 = 1;\n      }\n      else {\n        pbVar10 = pbVar10 + 2;\n        local_70 = 1;\n        if (-1 < (char)*pbVar11) goto LAB_00173644;\nLAB_0017374d:\n        FUN_001a3dc0(pbVar10,&local_70);\n        pbVar10 = pbVar11 + local_70;\n      }\n      lVar12 = *(long *)(param_1 + 0xb8);\n      if (iVar5 != (int)(*(long *)(lVar12 + -0x10) - *(long *)(lVar12 + -0x18) >> 3) * -0x33333333)\n      {\n                    \n        FUN_0017c650("../../gold/dwarf_reader.cc",0x6e4,"read_header_tables");\n      }\n      local_68 = (long ****)CONCAT44(local_68._4_4_,(int)uVar3);\n      local_60 = local_50;\n      sVar4 = strlen((char *)__s);\n      FUN_001665c0(&local_60,__s,__s + sVar4);\n                    \n      FUN_00172000(lVar12 + -0x18,&local_68);\n      if (local_60 != local_50) {\n        FUN_002dac70();\n      }\n      iVar5 = iVar5 + 1;\n      __s = pbVar10;\n    } while (*pbVar10 != 0);" do (compound_statement "{\n      sVar4 = strlen((char *)__s);\n      pbVar11 = __s + sVar4 + 1;\n      bVar1 = *pbVar11;\n      uVar3 = (ulong)bVar1;\n      pbVar10 = pbVar11 + 1;\n      if ((char)bVar1 < '\0') {\n        uVar3 = FUN_001a3dc0(pbVar10,&local_70,bVar1);\n        pbVar10 = pbVar11 + local_70;\n      }\n      else {\n        local_70 = 1;\n      }\n      pbVar11 = pbVar10 + 1;\n      if ((ulong)(*(long *)(*(long *)(param_1 + 0xa0) + -0x10) -\n                  *(long *)(*(long *)(param_1 + 0xa0) + -0x18) >> 5) <= uVar3) {\n        uVar3 = 0;\n      }\n      if ((char)*pbVar10 < '\0') {\n        FUN_001a3dc0(pbVar11,&local_70);\n        pbVar11 = pbVar10 + local_70;\n        pbVar10 = pbVar11 + 1;\n        if ((char)*pbVar11 < '\0') goto LAB_0017374d;\nLAB_00173644:\n        local_70 = 1;\n      }\n      else {\n        pbVar10 = pbVar10 + 2;\n        local_70 = 1;\n        if (-1 < (char)*pbVar11) goto LAB_00173644;\nLAB_0017374d:\n        FUN_001a3dc0(pbVar10,&local_70);\n        pbVar10 = pbVar11 + local_70;\n      }\n      lVar12 = *(long *)(param_1 + 0xb8);\n      if (iVar5 != (int)(*(long *)(lVar12 + -0x10) - *(long *)(lVar12 + -0x18) >> 3) * -0x33333333)\n      {\n                    \n        FUN_0017c650("../../gold/dwarf_reader.cc",0x6e4,"read_header_tables");\n      }\n      local_68 = (long ****)CONCAT44(local_68._4_4_,(int)uVar3);\n      local_60 = local_50;\n      sVar4 = strlen((char *)__s);\n      FUN_001665c0(&local_60,__s,__s + sVar4);\n                    \n      FUN_00172000(lVar12 + -0x18,&local_68);\n      if (local_60 != local_50) {\n        FUN_002dac70();\n      }\n      iVar5 = iVar5 + 1;\n      __s = pbVar10;\n    }" { (expression_statement "sVar4 = strlen((char *)__s);" (assignment_expression "sVar4 = strlen((char *)__s)" identifier = (call_expression "strlen((char *)__s)" identifier (argument_list "((char *)__s)" ( (cast_expression "(char *)__s" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) identifier) )))) ;) (expression_statement "pbVar11 = __s + sVar4 + 1;" (assignment_expression "pbVar11 = __s + sVar4 + 1" identifier = (binary_expression "__s + sVar4 + 1" (binary_expression "__s + sVar4" identifier + identifier) + number_literal)) ;) (expression_statement "bVar1 = *pbVar11;" (assignment_expression "bVar1 = *pbVar11" identifier = (pointer_expression "*pbVar11" * identifier)) ;) (expression_statement "uVar3 = (ulong)bVar1;" (assignment_expression "uVar3 = (ulong)bVar1" identifier = (cast_expression "(ulong)bVar1" ( (type_descriptor "ulong" type_identifier) ) identifier)) ;) (expression_statement "pbVar10 = pbVar11 + 1;" (assignment_expression "pbVar10 = pbVar11 + 1" identifier = (binary_expression "pbVar11 + 1" identifier + number_literal)) ;) (if_statement "if ((char)bVar1 < '\0') {\n        uVar3 = FUN_001a3dc0(pbVar10,&local_70,bVar1);\n        pbVar10 = pbVar11 + local_70;\n      }\n      else {\n        local_70 = 1;\n      }" if (parenthesized_expression "((char)bVar1 < '\0')" ( (binary_expression "(char)bVar1 < '\0'" (cast_expression "(char)bVar1" ( (type_descriptor "char" primitive_type) ) identifier) < (char_literal "'\0'" ' escape_sequence ')) )) (compound_statement "{\n        uVar3 = FUN_001a3dc0(pbVar10,&local_70,bVar1);\n        pbVar10 = pbVar11 + local_70;\n      }" { (expression_statement "uVar3 = FUN_001a3dc0(pbVar10,&local_70,bVar1);" (assignment_expression "uVar3 = FUN_001a3dc0(pbVar10,&local_70,bVar1)" identifier = (call_expression "FUN_001a3dc0(pbVar10,&local_70,bVar1)" identifier (argument_list "(pbVar10,&local_70,bVar1)" ( identifier , (pointer_expression "&local_70" & identifier) , identifier )))) ;) (expression_statement "pbVar10 = pbVar11 + local_70;" (assignment_expression "pbVar10 = pbVar11 + local_70" identifier = (binary_expression "pbVar11 + local_70" identifier + identifier)) ;) }) (else_clause "else {\n        local_70 = 1;\n      }" else (compound_statement "{\n        local_70 = 1;\n      }" { (expression_statement "local_70 = 1;" (assignment_expression "local_70 = 1" identifier = number_literal) ;) }))) (expression_statement "pbVar11 = pbVar10 + 1;" (assignment_expression "pbVar11 = pbVar10 + 1" identifier = (binary_expression "pbVar10 + 1" identifier + number_literal)) ;) (if_statement "if ((ulong)(*(long *)(*(long *)(param_1 + 0xa0) + -0x10) -\n                  *(long *)(*(long *)(param_1 + 0xa0) + -0x18) >> 5) <= uVar3) {\n        uVar3 = 0;\n      }" if (parenthesized_expression "((ulong)(*(long *)(*(long *)(param_1 + 0xa0) + -0x10) -\n                  *(long *)(*(long *)(param_1 + 0xa0) + -0x18) >> 5) <= uVar3)" ( (binary_expression "(ulong)(*(long *)(*(long *)(param_1 + 0xa0) + -0x10) -\n                  *(long *)(*(long *)(param_1 + 0xa0) + -0x18) >> 5) <= uVar3" (call_expression "(ulong)(*(long *)(*(long *)(param_1 + 0xa0) + -0x10) -\n                  *(long *)(*(long *)(param_1 + 0xa0) + -0x18) >> 5)" (parenthesized_expression "(ulong)" ( identifier )) (argument_list "(*(long *)(*(long *)(param_1 + 0xa0) + -0x10) -\n                  *(long *)(*(long *)(param_1 + 0xa0) + -0x18) >> 5)" ( (binary_expression "*(long *)(*(long *)(param_1 + 0xa0) + -0x10) -\n                  *(long *)(*(long *)(param_1 + 0xa0) + -0x18) >> 5" (binary_expression "*(long *)(*(long *)(param_1 + 0xa0) + -0x10) -\n                  *(long *)(*(long *)(param_1 + 0xa0) + -0x18)" (pointer_expression "*(long *)(*(long *)(param_1 + 0xa0) + -0x10)" * (cast_expression "(long *)(*(long *)(param_1 + 0xa0) + -0x10)" ( (type_descriptor "long *" (sized_type_specifier "long" long) (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*(long *)(param_1 + 0xa0) + -0x10)" ( (binary_expression "*(long *)(param_1 + 0xa0) + -0x10" (pointer_expression "*(long *)(param_1 + 0xa0)" * (cast_expression "(long *)(param_1 + 0xa0)" ( (type_descriptor "long *" (sized_type_specifier "long" long) (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0xa0)" ( (binary_expression "param_1 + 0xa0" identifier + number_literal) )))) + number_literal) )))) - (pointer_expression "*(long *)(*(long *)(param_1 + 0xa0) + -0x18)" * (cast_expression "(long *)(*(long *)(param_1 + 0xa0) + -0x18)" ( (type_descriptor "long *" (sized_type_specifier "long" long) (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*(long *)(param_1 + 0xa0) + -0x18)" ( (binary_expression "*(long *)(param_1 + 0xa0) + -0x18" (pointer_expression "*(long *)(param_1 + 0xa0)" * (cast_expression "(long *)(param_1 + 0xa0)" ( (type_descriptor "long *" (sized_type_specifier "long" long) (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0xa0)" ( (binary_expression "param_1 + 0xa0" identifier + number_literal) )))) + number_literal) ))))) >> number_literal) ))) <= identifier) )) (compound_statement "{\n        uVar3 = 0;\n      }" { (expression_statement "uVar3 = 0;" (assignment_expression "uVar3 = 0" identifier = number_literal) ;) })) (if_statement "if ((char)*pbVar10 < '\0') {\n        FUN_001a3dc0(pbVar11,&local_70);\n        pbVar11 = pbVar10 + local_70;\n        pbVar10 = pbVar11 + 1;\n        if ((char)*pbVar11 < '\0') goto LAB_0017374d;\nLAB_00173644:\n        local_70 = 1;\n      }\n      else {\n        pbVar10 = pbVar10 + 2;\n        local_70 = 1;\n        if (-1 < (char)*pbVar11) goto LAB_00173644;\nLAB_0017374d:\n        FUN_001a3dc0(pbVar10,&local_70);\n        pbVar10 = pbVar11 + local_70;\n      }" if (parenthesized_expression "((char)*pbVar10 < '\0')" ( (binary_expression "(char)*pbVar10 < '\0'" (cast_expression "(char)*pbVar10" ( (type_descriptor "char" primitive_type) ) (pointer_expression "*pbVar10" * identifier)) < (char_literal "'\0'" ' escape_sequence ')) )) (compound_statement "{\n        FUN_001a3dc0(pbVar11,&local_70);\n        pbVar11 = pbVar10 + local_70;\n        pbVar10 = pbVar11 + 1;\n        if ((char)*pbVar11 < '\0') goto LAB_0017374d;\nLAB_00173644:\n        local_70 = 1;\n      }" { (expression_statement "FUN_001a3dc0(pbVar11,&local_70);" (call_expression "FUN_001a3dc0(pbVar11,&local_70)" identifier (argument_list "(pbVar11,&local_70)" ( identifier , (pointer_expression "&local_70" & identifier) ))) ;) (expression_statement "pbVar11 = pbVar10 + local_70;" (assignment_expression "pbVar11 = pbVar10 + local_70" identifier = (binary_expression "pbVar10 + local_70" identifier + identifier)) ;) (expression_statement "pbVar10 = pbVar11 + 1;" (assignment_expression "pbVar10 = pbVar11 + 1" identifier = (binary_expression "pbVar11 + 1" identifier + number_literal)) ;) (if_statement "if ((char)*pbVar11 < '\0') goto LAB_0017374d;" if (parenthesized_expression "((char)*pbVar11 < '\0')" ( (binary_expression "(char)*pbVar11 < '\0'" (cast_expression "(char)*pbVar11" ( (type_descriptor "char" primitive_type) ) (pointer_expression "*pbVar11" * identifier)) < (char_literal "'\0'" ' escape_sequence ')) )) (goto_statement "goto LAB_0017374d;" goto statement_identifier ;)) (labeled_statement "LAB_00173644:\n        local_70 = 1;" statement_identifier : (expression_statement "local_70 = 1;" (assignment_expression "local_70 = 1" identifier = number_literal) ;)) }) (else_clause "else {\n        pbVar10 = pbVar10 + 2;\n        local_70 = 1;\n        if (-1 < (char)*pbVar11) goto LAB_00173644;\nLAB_0017374d:\n        FUN_001a3dc0(pbVar10,&local_70);\n        pbVar10 = pbVar11 + local_70;\n      }" else (compound_statement "{\n        pbVar10 = pbVar10 + 2;\n        local_70 = 1;\n        if (-1 < (char)*pbVar11) goto LAB_00173644;\nLAB_0017374d:\n        FUN_001a3dc0(pbVar10,&local_70);\n        pbVar10 = pbVar11 + local_70;\n      }" { (expression_statement "pbVar10 = pbVar10 + 2;" (assignment_expression "pbVar10 = pbVar10 + 2" identifier = (binary_expression "pbVar10 + 2" identifier + number_literal)) ;) (expression_statement "local_70 = 1;" (assignment_expression "local_70 = 1" identifier = number_literal) ;) (if_statement "if (-1 < (char)*pbVar11) goto LAB_00173644;" if (parenthesized_expression "(-1 < (char)*pbVar11)" ( (binary_expression "-1 < (char)*pbVar11" number_literal < (cast_expression "(char)*pbVar11" ( (type_descriptor "char" primitive_type) ) (pointer_expression "*pbVar11" * identifier))) )) (goto_statement "goto LAB_00173644;" goto statement_identifier ;)) (labeled_statement "LAB_0017374d:\n        FUN_001a3dc0(pbVar10,&local_70);" statement_identifier : (expression_statement "FUN_001a3dc0(pbVar10,&local_70);" (call_expression "FUN_001a3dc0(pbVar10,&local_70)" identifier (argument_list "(pbVar10,&local_70)" ( identifier , (pointer_expression "&local_70" & identifier) ))) ;)) (expression_statement "pbVar10 = pbVar11 + local_70;" (assignment_expression "pbVar10 = pbVar11 + local_70" identifier = (binary_expression "pbVar11 + local_70" identifier + identifier)) ;) }))) (expression_statement "lVar12 = *(long *)(param_1 + 0xb8);" (assignment_expression "lVar12 = *(long *)(param_1 + 0xb8)" identifier = (pointer_expression "*(long *)(param_1 + 0xb8)" * (cast_expression "(long *)(param_1 + 0xb8)" ( (type_descriptor "long *" (sized_type_specifier "long" long) (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0xb8)" ( (binary_expression "param_1 + 0xb8" identifier + number_literal) ))))) ;) (if_statement "if (iVar5 != (int)(*(long *)(lVar12 + -0x10) - *(long *)(lVar12 + -0x18) >> 3) * -0x33333333)\n      {\n                    \n        FUN_0017c650("../../gold/dwarf_reader.cc",0x6e4,"read_header_tables");\n      }" if (parenthesized_expression "(iVar5 != (int)(*(long *)(lVar12 + -0x10) - *(long *)(lVar12 + -0x18) >> 3) * -0x33333333)" ( (binary_expression "iVar5 != (int)(*(long *)(lVar12 + -0x10) - *(long *)(lVar12 + -0x18) >> 3) * -0x33333333" identifier != (binary_expression "(int)(*(long *)(lVar12 + -0x10) - *(long *)(lVar12 + -0x18) >> 3) * -0x33333333" (cast_expression "(int)(*(long *)(lVar12 + -0x10) - *(long *)(lVar12 + -0x18) >> 3)" ( (type_descriptor "int" primitive_type) ) (parenthesized_expression "(*(long *)(lVar12 + -0x10) - *(long *)(lVar12 + -0x18) >> 3)" ( (binary_expression "*(long *)(lVar12 + -0x10) - *(long *)(lVar12 + -0x18) >> 3" (binary_expression "*(long *)(lVar12 + -0x10) - *(long *)(lVar12 + -0x18)" (pointer_expression "*(long *)(lVar12 + -0x10)" * (cast_expression "(long *)(lVar12 + -0x10)" ( (type_descriptor "long *" (sized_type_specifier "long" long) (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(lVar12 + -0x10)" ( (binary_expression "lVar12 + -0x10" identifier + number_literal) )))) - (pointer_expression "*(long *)(lVar12 + -0x18)" * (cast_expression "(long *)(lVar12 + -0x18)" ( (type_descriptor "long *" (sized_type_specifier "long" long) (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(lVar12 + -0x18)" ( (binary_expression "lVar12 + -0x18" identifier + number_literal) ))))) >> number_literal) ))) * number_literal)) )) (compound_statement "{\n                    \n        FUN_0017c650("../../gold/dwarf_reader.cc",0x6e4,"read_header_tables");\n      }" { (expression_statement "FUN_0017c650("../../gold/dwarf_reader.cc",0x6e4,"read_header_tables");" (call_expression "FUN_0017c650("../../gold/dwarf_reader.cc",0x6e4,"read_header_tables")" identifier (argument_list "("../../gold/dwarf_reader.cc",0x6e4,"read_header_tables")" ( (string_literal ""../../gold/dwarf_reader.cc"" " string_content ") , number_literal , (string_literal ""read_header_tables"" " string_content ") ))) ;) })) (expression_statement "local_68 = (long ****)CONCAT44(local_68._4_4_,(int)uVar3);" (assignment_expression "local_68 = (long ****)CONCAT44(local_68._4_4_,(int)uVar3)" identifier = (cast_expression "(long ****)CONCAT44(local_68._4_4_,(int)uVar3)" ( (type_descriptor "long ****" (sized_type_specifier "long" long) (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))))) ) (call_expression "CONCAT44(local_68._4_4_,(int)uVar3)" identifier (argument_list "(local_68._4_4_,(int)uVar3)" ( (field_expression "local_68._4_4_" identifier . field_identifier) , (cast_expression "(int)uVar3" ( (type_descriptor "int" primitive_type) ) identifier) ))))) ;) (expression_statement "local_60 = local_50;" (assignment_expression "local_60 = local_50" identifier = identifier) ;) (expression_statement "sVar4 = strlen((char *)__s);" (assignment_expression "sVar4 = strlen((char *)__s)" identifier = (call_expression "strlen((char *)__s)" identifier (argument_list "((char *)__s)" ( (cast_expression "(char *)__s" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) identifier) )))) ;) (expression_statement "FUN_001665c0(&local_60,__s,__s + sVar4);" (call_expression "FUN_001665c0(&local_60,__s,__s + sVar4)" identifier (argument_list "(&local_60,__s,__s + sVar4)" ( (pointer_expression "&local_60" & identifier) , identifier , (binary_expression "__s + sVar4" identifier + identifier) ))) ;) (expression_statement "FUN_00172000(lVar12 + -0x18,&local_68);" (call_expression "FUN_00172000(lVar12 + -0x18,&local_68)" identifier (argument_list "(lVar12 + -0x18,&local_68)" ( (binary_expression "lVar12 + -0x18" identifier + number_literal) , (pointer_expression "&local_68" & identifier) ))) ;) (if_statement "if (local_60 != local_50) {\n        FUN_002dac70();\n      }" if (parenthesized_expression "(local_60 != local_50)" ( (binary_expression "local_60 != local_50" identifier != identifier) )) (compound_statement "{\n        FUN_002dac70();\n      }" { (expression_statement "FUN_002dac70();" (call_expression "FUN_002dac70()" identifier (argument_list "()" ( ))) ;) })) (expression_statement "iVar5 = iVar5 + 1;" (assignment_expression "iVar5 = iVar5 + 1" identifier = (binary_expression "iVar5 + 1" identifier + number_literal)) ;) (expression_statement "__s = pbVar10;" (assignment_expression "__s = pbVar10" identifier = identifier) ;) }) while (parenthesized_expression "(*pbVar10 != 0)" ( (binary_expression "*pbVar10 != 0" (pointer_expression "*pbVar10" * identifier) != number_literal) )) ;) })) (return_statement "return pbVar10 + 1;" return (binary_expression "pbVar10 + 1" identifier + number_literal) ;) })))
(translation_unit (function_definition TYPE (pointer_declarator * (function_declarator IDENT (parameter_list ( (parameter_declaration (sized_type_specifier long) IDENT) , (parameter_declaration TYPE (pointer_declarator * IDENT)) )))) (compound_statement { (declaration TYPE IDENT ;) (declaration (sized_type_specifier long) (pointer_declarator * (pointer_declarator * (pointer_declarator * (pointer_declarator * IDENT)))) ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration (sized_type_specifier long) (pointer_declarator * (pointer_declarator * (pointer_declarator * (pointer_declarator * IDENT)))) ;) (declaration (sized_type_specifier long) (pointer_declarator * (pointer_declarator * (pointer_declarator * (pointer_declarator * (pointer_declarator * IDENT))))) ;) (declaration TYPE IDENT ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration (sized_type_specifier long) IDENT ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration (sized_type_specifier long) IDENT ;) (declaration (sized_type_specifier long) (pointer_declarator * (pointer_declarator * (pointer_declarator * (pointer_declarator * IDENT)))) ;) (declaration (sized_type_specifier long) (pointer_declarator * (pointer_declarator * (pointer_declarator * (pointer_declarator * IDENT)))) ;) (declaration (sized_type_specifier long) (pointer_declarator * (pointer_declarator * (pointer_declarator * (pointer_declarator * IDENT)))) ;) (declaration (sized_type_specifier long) (pointer_declarator * (pointer_declarator * (pointer_declarator * (array_declarator IDENT [ LIT ])))) ;) (expression_statement (assignment_expression IDENT = (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) + LIT)) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = IDENT) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT != (binary_expression (cast_expression ( (type_descriptor TYPE) ) (parenthesized_expression ( (binary_expression (binary_expression (pointer_expression * (cast_expression ( (type_descriptor (sized_type_specifier long) (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) - (pointer_expression * (cast_expression ( (type_descriptor (sized_type_specifier long) (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) >> LIT) ))) * LIT)) )) (compound_statement { (expression_statement (call_expression IDENT (argument_list ( (string_literal " string_content ") , LIT , (string_literal " string_content ") ))) ;) })) (if_statement if (parenthesized_expression ( (binary_expression IDENT != (binary_expression (cast_expression ( (type_descriptor TYPE) ) (parenthesized_expression ( (binary_expression (binary_expression (pointer_expression * (cast_expression ( (type_descriptor (sized_type_specifier long) (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) - (pointer_expression * (cast_expression ( (type_descriptor (sized_type_specifier long) (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) >> LIT) ))) * LIT)) )) (compound_statement { (expression_statement (call_expression IDENT (argument_list ( (string_literal " string_content ") , LIT , (string_literal " string_content ") ))) ;) })) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor (sized_type_specifier long) (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator *))))) ) LIT)) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor (sized_type_specifier long) (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator *))))) ) LIT)) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor (sized_type_specifier long) (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator *))))) ) LIT)) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor (sized_type_specifier long) (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator *))))) ) (call_expression IDENT (argument_list ( LIT ))))) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = (cast_expression ( (type_descriptor (sized_type_specifier long) (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator *)))) ) LIT)) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) (expression_statement (assignment_expression (pointer_expression * IDENT) = (cast_expression ( (type_descriptor (sized_type_specifier long) (abstract_pointer_declarator * (abstract_pointer_declarator * (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 = IDENT) ;) (expression_statement (call_expression IDENT (argument_list ( (binary_expression IDENT + LIT) , (pointer_expression & IDENT) ))) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (for_statement for ( (assignment_expression IDENT = IDENT) ; (binary_expression IDENT != IDENT) ; (assignment_expression IDENT = (binary_expression IDENT + LIT)) ) (compound_statement { (if_statement if (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor (sized_type_specifier long) (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator *))))) ) (pointer_expression * IDENT)) != (binary_expression IDENT + LIT)) )) (compound_statement { (expression_statement (call_expression IDENT (argument_list ( ))) ;) })) })) (if_statement if (parenthesized_expression ( (binary_expression IDENT != (cast_expression ( (type_descriptor (sized_type_specifier long) (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator *))))) ) LIT)) )) (compound_statement { (expression_statement (call_expression IDENT (argument_list ( IDENT ))) ;) })) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor (sized_type_specifier long) (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator *))))) ) LIT)) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor (sized_type_specifier long) (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator *))))) ) LIT)) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor (sized_type_specifier long) (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator *))))) ) LIT)) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor (sized_type_specifier long) (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator *))))) ) (call_expression IDENT (argument_list ( LIT ))))) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) IDENT)) = LIT) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor (sized_type_specifier long) (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator *))))) ) (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor (sized_type_specifier long) (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator *)))))) ) IDENT) + LIT) )))) ;) (expression_statement (assignment_expression (subscript_expression (parenthesized_expression ( (cast_expression ( (type_descriptor (sized_type_specifier long) (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator *)))))) ) IDENT) )) [ LIT ]) = (cast_expression ( (type_descriptor (sized_type_specifier long) (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator *))))) ) (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor (sized_type_specifier long) (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator *)))))) ) IDENT) + LIT) )))) ;) (expression_statement (assignment_expression (subscript_expression (parenthesized_expression ( (cast_expression ( (type_descriptor (sized_type_specifier long) (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator *)))))) ) IDENT) )) [ LIT ]) = (cast_expression ( (type_descriptor (sized_type_specifier long) (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator *))))) ) 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) (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator *)))))) ) IDENT) + LIT) )))) = LIT) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (call_expression IDENT (argument_list ( (binary_expression IDENT + LIT) , (pointer_expression & IDENT) ))) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (for_statement for ( (assignment_expression IDENT = (cast_expression ( (type_descriptor (sized_type_specifier long) (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator *)))))) ) IDENT)) ; (binary_expression (cast_expression ( (type_descriptor (sized_type_specifier long) (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator *)))))) ) IDENT) != IDENT) ; (assignment_expression IDENT = (binary_expression IDENT + LIT)) ) (compound_statement { (if_statement if (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor (sized_type_specifier long) (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator *)))))) ) (subscript_expression IDENT [ LIT ])) != (binary_expression IDENT + LIT)) )) (compound_statement { (expression_statement (call_expression IDENT (argument_list ( ))) ;) })) })) (if_statement if (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor (sized_type_specifier long) (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator *)))))) ) IDENT) != (cast_expression ( (type_descriptor (sized_type_specifier long) (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator *)))))) ) LIT)) )) (compound_statement { (expression_statement (call_expression IDENT (argument_list ( IDENT ))) ;) })) (if_statement if (parenthesized_expression ( (binary_expression (pointer_expression * IDENT) != (char_literal ' escape_sequence ')) )) (compound_statement { (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor (sized_type_specifier long) (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) (expression_statement (assignment_expression IDENT = (binary_expression (binary_expression (pointer_expression * (cast_expression ( (type_descriptor (sized_type_specifier long) (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) - (pointer_expression * (cast_expression ( (type_descriptor (sized_type_specifier long) (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) >> LIT)) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT & LIT)) ;) (if_statement if (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) == LIT) )) (compound_statement { (do_statement do (compound_statement { (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor (sized_type_specifier long) (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator *))))) ) (pointer_expression & IDENT))) ;) (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( IDENT )))) ;) (expression_statement (call_expression IDENT (argument_list ( (pointer_expression & IDENT) , IDENT , (binary_expression IDENT + IDENT) ))) ;) (expression_statement (call_expression IDENT (argument_list ( (binary_expression IDENT + LIT) , (pointer_expression & IDENT) ))) ;) (if_statement if (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor (sized_type_specifier long) (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator *)))))) ) IDENT) != (pointer_expression & IDENT)) )) (compound_statement { (expression_statement (call_expression IDENT (argument_list ( ))) ;) })) (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor (sized_type_specifier long) (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) (expression_statement (assignment_expression IDENT = (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) + LIT)) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE) ) IDENT)) ;) (expression_statement (assignment_expression IDENT = (binary_expression (binary_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) ))))) + LIT)) ;) (if_statement if (parenthesized_expression ( (binary_expression (pointer_expression * IDENT) == (char_literal ' escape_sequence ')) )) (goto_statement goto statement_identifier ;)) }) while (parenthesized_expression ( (binary_expression IDENT == (call_expression (parenthesized_expression ( IDENT )) (argument_list ( (binary_expression (binary_expression (pointer_expression * (cast_expression ( (type_descriptor (sized_type_specifier long) (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) - (pointer_expression * (cast_expression ( (type_descriptor (sized_type_specifier long) (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) >> LIT) )))) )) ;) })) (expression_statement (call_expression IDENT (argument_list ( (string_literal " string_content ") , LIT , (string_literal " string_content ") ))) ;) })) (labeled_statement statement_identifier : (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) ;)) (if_statement if (parenthesized_expression ( (binary_expression (subscript_expression IDENT [ LIT ]) != (char_literal ' escape_sequence ')) )) (compound_statement { (expression_statement (assignment_expression IDENT = LIT) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (do_statement do (compound_statement { (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) IDENT) )))) ;) (expression_statement (assignment_expression IDENT = (binary_expression (binary_expression IDENT + IDENT) + LIT)) ;) (expression_statement (assignment_expression IDENT = (pointer_expression * IDENT)) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE) ) IDENT)) ;) (expression_statement (assignment_expression 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 = (call_expression IDENT (argument_list ( IDENT , (pointer_expression & IDENT) , IDENT )))) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + IDENT)) ;) }) (else_clause else (compound_statement { (expression_statement (assignment_expression IDENT = LIT) ;) }))) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) (if_statement if (parenthesized_expression ( (binary_expression (call_expression (parenthesized_expression ( IDENT )) (argument_list ( (binary_expression (binary_expression (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) )))) - (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) ))))) >> LIT) ))) <= IDENT) )) (compound_statement { (expression_statement (assignment_expression IDENT = LIT) ;) })) (if_statement if (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) (pointer_expression * IDENT)) < (char_literal ' escape_sequence ')) )) (compound_statement { (expression_statement (call_expression IDENT (argument_list ( IDENT , (pointer_expression & IDENT) ))) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + IDENT)) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) (if_statement if (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) (pointer_expression * IDENT)) < (char_literal ' escape_sequence ')) )) (goto_statement goto statement_identifier ;)) (labeled_statement statement_identifier : (expression_statement (assignment_expression IDENT = LIT) ;)) }) (else_clause else (compound_statement { (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) (expression_statement (assignment_expression IDENT = LIT) ;) (if_statement if (parenthesized_expression ( (binary_expression LIT < (cast_expression ( (type_descriptor TYPE) ) (pointer_expression * IDENT))) )) (goto_statement goto statement_identifier ;)) (labeled_statement statement_identifier : (expression_statement (call_expression IDENT (argument_list ( IDENT , (pointer_expression & IDENT) ))) ;)) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + IDENT)) ;) }))) (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor (sized_type_specifier long) (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT != (binary_expression (cast_expression ( (type_descriptor TYPE) ) (parenthesized_expression ( (binary_expression (binary_expression (pointer_expression * (cast_expression ( (type_descriptor (sized_type_specifier long) (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) - (pointer_expression * (cast_expression ( (type_descriptor (sized_type_specifier long) (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) >> LIT) ))) * LIT)) )) (compound_statement { (expression_statement (call_expression IDENT (argument_list ( (string_literal " string_content ") , LIT , (string_literal " string_content ") ))) ;) })) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor (sized_type_specifier long) (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator *))))) ) (call_expression IDENT (argument_list ( (field_expression IDENT . field_identifier) , (cast_expression ( (type_descriptor TYPE) ) IDENT) ))))) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) IDENT) )))) ;) (expression_statement (call_expression IDENT (argument_list ( (pointer_expression & IDENT) , IDENT , (binary_expression IDENT + IDENT) ))) ;) (expression_statement (call_expression IDENT (argument_list ( (binary_expression IDENT + LIT) , (pointer_expression & IDENT) ))) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT != IDENT) )) (compound_statement { (expression_statement (call_expression IDENT (argument_list ( ))) ;) })) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) }) while (parenthesized_expression ( (binary_expression (pointer_expression * IDENT) != LIT) )) ;) })) (return_statement return (binary_expression IDENT + LIT) ;) })))
(function_definition "byte * FUN_00173370(long param_1,char *param_2)\n\n{\n  byte bVar1;\n  long ****pppplVar2;\n  ulong uVar3;\n  size_t sVar4;\n  int iVar5;\n  uint uVar6;\n  long ****pppplVar7;\n  long *****ppppplVar8;\n  ulong uVar9;\n  byte *pbVar10;\n  byte *pbVar11;\n  long lVar12;\n  byte *__s;\n  long local_70;\n  long ****local_68;\n  long ****local_60;\n  long ****local_58;\n  long ***local_50 [4];\n  \n  iVar5 = *(int *)(param_1 + 200) + 1;\n  *(int *)(param_1 + 200) = iVar5;\n  if (iVar5 != (int)(*(long *)(param_1 + 0xa0) - *(long *)(param_1 + 0x98) >> 3) * -0x55555555) {\n                    \n    FUN_0017c650("../../gold/dwarf_reader.cc",0x6b6,"read_header_tables");\n  }\n  if (iVar5 != (int)(*(long *)(param_1 + 0xb8) - *(long *)(param_1 + 0xb0) >> 3) * -0x55555555) {\n                    \n    FUN_0017c650("../../gold/dwarf_reader.cc",0x6b8,"read_header_tables");\n  }\n  local_68 = (long ****)0x0;\n  local_60 = (long ****)0x0;\n  local_58 = (long ****)0x0;\n  local_68 = (long ****)FUN_002d94a0(0x20);\n  local_68[1] = (long ***)0x0;\n  local_60 = local_68 + 4;\n  *local_68 = (long ***)(local_68 + 2);\n  *(undefined1 *)(local_68 + 2) = 0;\n  local_58 = local_60;\n                    \n  FUN_00171a10(param_1 + 0x98,&local_68);\n  pppplVar2 = local_60;\n  for (pppplVar7 = local_68; pppplVar2 != pppplVar7; pppplVar7 = pppplVar7 + 4) {\n    if ((long ****)*pppplVar7 != pppplVar7 + 2) {\n      FUN_002dac70();\n    }\n  }\n  if (local_68 != (long ****)0x0) {\n    FUN_002dac70(local_68);\n  }\n  local_68 = (long ****)0x0;\n  local_60 = (long ****)0x0;\n  local_58 = (long ****)0x0;\n  local_68 = (long ****)FUN_002d94a0(0x28);\n  *(undefined4 *)local_68 = 0;\n  local_60 = (long ****)((long *****)local_68 + 5);\n  ((long *****)local_68)[1] = (long ****)((long *****)local_68 + 3);\n  ((long *****)local_68)[2] = (long ****)0x0;\n  *(undefined1 *)((long *****)local_68 + 3) = 0;\n  local_58 = local_60;\n                    \n  FUN_00171d10(param_1 + 0xb0,&local_68);\n  pppplVar7 = local_60;\n  for (ppppplVar8 = (long *****)local_68; (long *****)pppplVar7 != ppppplVar8;\n      ppppplVar8 = ppppplVar8 + 5) {\n    if ((long *****)ppppplVar8[1] != ppppplVar8 + 3) {\n      FUN_002dac70();\n    }\n  }\n  if ((long *****)local_68 != (long *****)0x0) {\n    FUN_002dac70(local_68);\n  }\n  if (*param_2 != '\0') {\n    lVar12 = *(long *)(param_1 + 0xa0);\n    uVar3 = *(long *)(lVar12 + -0x10) - *(long *)(lVar12 + -0x18) >> 5;\n    uVar9 = uVar3 & 0xffffffff;\n    if ((int)uVar3 == 1) {\n      do {\n        local_68 = (long ****)&local_58;\n        sVar4 = strlen(param_2);\n        FUN_001665c0(&local_68,param_2,param_2 + sVar4);\n                    \n        FUN_0016f840(lVar12 + -0x18,&local_68);\n        if ((long *****)local_68 != &local_58) {\n          FUN_002dac70();\n        }\n        lVar12 = *(long *)(param_1 + 0xa0);\n        uVar6 = (int)uVar9 + 1;\n        uVar9 = (ulong)uVar6;\n        param_2 = param_2 + *(long *)(*(long *)(lVar12 + -0x10) + -0x18) + 1;\n        if (*param_2 == '\0') goto LAB_001735b7;\n      } while (uVar6 == (uint)(*(long *)(lVar12 + -0x10) - *(long *)(lVar12 + -0x18) >> 5));\n    }\n                    \n    FUN_0017c650("../../gold/dwarf_reader.cc",0x6c4,"read_header_tables");\n  }\nLAB_001735b7:\n  pbVar10 = (byte *)(param_2 + 1);\n  if (param_2[1] != '\0') {\n    iVar5 = 1;\n    __s = pbVar10;\n    do {\n      sVar4 = strlen((char *)__s);\n      pbVar11 = __s + sVar4 + 1;\n      bVar1 = *pbVar11;\n      uVar3 = (ulong)bVar1;\n      pbVar10 = pbVar11 + 1;\n      if ((char)bVar1 < '\0') {\n        uVar3 = FUN_001a3dc0(pbVar10,&local_70,bVar1);\n        pbVar10 = pbVar11 + local_70;\n      }\n      else {\n        local_70 = 1;\n      }\n      pbVar11 = pbVar10 + 1;\n      if ((ulong)(*(long *)(*(long *)(param_1 + 0xa0) + -0x10) -\n                  *(long *)(*(long *)(param_1 + 0xa0) + -0x18) >> 5) <= uVar3) {\n        uVar3 = 0;\n      }\n      if ((char)*pbVar10 < '\0') {\n        FUN_001a3dc0(pbVar11,&local_70);\n        pbVar11 = pbVar10 + local_70;\n        pbVar10 = pbVar11 + 1;\n        if ((char)*pbVar11 < '\0') goto LAB_0017374d;\nLAB_00173644:\n        local_70 = 1;\n      }\n      else {\n        pbVar10 = pbVar10 + 2;\n        local_70 = 1;\n        if (-1 < (char)*pbVar11) goto LAB_00173644;\nLAB_0017374d:\n        FUN_001a3dc0(pbVar10,&local_70);\n        pbVar10 = pbVar11 + local_70;\n      }\n      lVar12 = *(long *)(param_1 + 0xb8);\n      if (iVar5 != (int)(*(long *)(lVar12 + -0x10) - *(long *)(lVar12 + -0x18) >> 3) * -0x33333333)\n      {\n                    \n        FUN_0017c650("../../gold/dwarf_reader.cc",0x6e4,"read_header_tables");\n      }\n      local_68 = (long ****)CONCAT44(local_68._4_4_,(int)uVar3);\n      local_60 = local_50;\n      sVar4 = strlen((char *)__s);\n      FUN_001665c0(&local_60,__s,__s + sVar4);\n                    \n      FUN_00172000(lVar12 + -0x18,&local_68);\n      if (local_60 != local_50) {\n        FUN_002dac70();\n      }\n      iVar5 = iVar5 + 1;\n      __s = pbVar10;\n    } while (*pbVar10 != 0);\n  }\n  return pbVar10 + 1;\n}" (type_identifier "byte") (pointer_declarator "* FUN_00173370(long param_1,char *param_2)" (* "*") (function_declarator "FUN_00173370(long param_1,char *param_2)" (identifier "FUN_00173370") (parameter_list "(long param_1,char *param_2)" (( "(") (parameter_declaration "long param_1" (sized_type_specifier "long" (long "long")) (identifier "param_1")) (, ",") (parameter_declaration "char *param_2" (primitive_type "char") (pointer_declarator "*param_2" (* "*") (identifier "param_2"))) () ")")))) (compound_statement "{\n  byte bVar1;\n  long ****pppplVar2;\n  ulong uVar3;\n  size_t sVar4;\n  int iVar5;\n  uint uVar6;\n  long ****pppplVar7;\n  long *****ppppplVar8;\n  ulong uVar9;\n  byte *pbVar10;\n  byte *pbVar11;\n  long lVar12;\n  byte *__s;\n  long local_70;\n  long ****local_68;\n  long ****local_60;\n  long ****local_58;\n  long ***local_50 [4];\n  \n  iVar5 = *(int *)(param_1 + 200) + 1;\n  *(int *)(param_1 + 200) = iVar5;\n  if (iVar5 != (int)(*(long *)(param_1 + 0xa0) - *(long *)(param_1 + 0x98) >> 3) * -0x55555555) {\n                    \n    FUN_0017c650("../../gold/dwarf_reader.cc",0x6b6,"read_header_tables");\n  }\n  if (iVar5 != (int)(*(long *)(param_1 + 0xb8) - *(long *)(param_1 + 0xb0) >> 3) * -0x55555555) {\n                    \n    FUN_0017c650("../../gold/dwarf_reader.cc",0x6b8,"read_header_tables");\n  }\n  local_68 = (long ****)0x0;\n  local_60 = (long ****)0x0;\n  local_58 = (long ****)0x0;\n  local_68 = (long ****)FUN_002d94a0(0x20);\n  local_68[1] = (long ***)0x0;\n  local_60 = local_68 + 4;\n  *local_68 = (long ***)(local_68 + 2);\n  *(undefined1 *)(local_68 + 2) = 0;\n  local_58 = local_60;\n                    \n  FUN_00171a10(param_1 + 0x98,&local_68);\n  pppplVar2 = local_60;\n  for (pppplVar7 = local_68; pppplVar2 != pppplVar7; pppplVar7 = pppplVar7 + 4) {\n    if ((long ****)*pppplVar7 != pppplVar7 + 2) {\n      FUN_002dac70();\n    }\n  }\n  if (local_68 != (long ****)0x0) {\n    FUN_002dac70(local_68);\n  }\n  local_68 = (long ****)0x0;\n  local_60 = (long ****)0x0;\n  local_58 = (long ****)0x0;\n  local_68 = (long ****)FUN_002d94a0(0x28);\n  *(undefined4 *)local_68 = 0;\n  local_60 = (long ****)((long *****)local_68 + 5);\n  ((long *****)local_68)[1] = (long ****)((long *****)local_68 + 3);\n  ((long *****)local_68)[2] = (long ****)0x0;\n  *(undefined1 *)((long *****)local_68 + 3) = 0;\n  local_58 = local_60;\n                    \n  FUN_00171d10(param_1 + 0xb0,&local_68);\n  pppplVar7 = local_60;\n  for (ppppplVar8 = (long *****)local_68; (long *****)pppplVar7 != ppppplVar8;\n      ppppplVar8 = ppppplVar8 + 5) {\n    if ((long *****)ppppplVar8[1] != ppppplVar8 + 3) {\n      FUN_002dac70();\n    }\n  }\n  if ((long *****)local_68 != (long *****)0x0) {\n    FUN_002dac70(local_68);\n  }\n  if (*param_2 != '\0') {\n    lVar12 = *(long *)(param_1 + 0xa0);\n    uVar3 = *(long *)(lVar12 + -0x10) - *(long *)(lVar12 + -0x18) >> 5;\n    uVar9 = uVar3 & 0xffffffff;\n    if ((int)uVar3 == 1) {\n      do {\n        local_68 = (long ****)&local_58;\n        sVar4 = strlen(param_2);\n        FUN_001665c0(&local_68,param_2,param_2 + sVar4);\n                    \n        FUN_0016f840(lVar12 + -0x18,&local_68);\n        if ((long *****)local_68 != &local_58) {\n          FUN_002dac70();\n        }\n        lVar12 = *(long *)(param_1 + 0xa0);\n        uVar6 = (int)uVar9 + 1;\n        uVar9 = (ulong)uVar6;\n        param_2 = param_2 + *(long *)(*(long *)(lVar12 + -0x10) + -0x18) + 1;\n        if (*param_2 == '\0') goto LAB_001735b7;\n      } while (uVar6 == (uint)(*(long *)(lVar12 + -0x10) - *(long *)(lVar12 + -0x18) >> 5));\n    }\n                    \n    FUN_0017c650("../../gold/dwarf_reader.cc",0x6c4,"read_header_tables");\n  }\nLAB_001735b7:\n  pbVar10 = (byte *)(param_2 + 1);\n  if (param_2[1] != '\0') {\n    iVar5 = 1;\n    __s = pbVar10;\n    do {\n      sVar4 = strlen((char *)__s);\n      pbVar11 = __s + sVar4 + 1;\n      bVar1 = *pbVar11;\n      uVar3 = (ulong)bVar1;\n      pbVar10 = pbVar11 + 1;\n      if ((char)bVar1 < '\0') {\n        uVar3 = FUN_001a3dc0(pbVar10,&local_70,bVar1);\n        pbVar10 = pbVar11 + local_70;\n      }\n      else {\n        local_70 = 1;\n      }\n      pbVar11 = pbVar10 + 1;\n      if ((ulong)(*(long *)(*(long *)(param_1 + 0xa0) + -0x10) -\n                  *(long *)(*(long *)(param_1 + 0xa0) + -0x18) >> 5) <= uVar3) {\n        uVar3 = 0;\n      }\n      if ((char)*pbVar10 < '\0') {\n        FUN_001a3dc0(pbVar11,&local_70);\n        pbVar11 = pbVar10 + local_70;\n        pbVar10 = pbVar11 + 1;\n        if ((char)*pbVar11 < '\0') goto LAB_0017374d;\nLAB_00173644:\n        local_70 = 1;\n      }\n      else {\n        pbVar10 = pbVar10 + 2;\n        local_70 = 1;\n        if (-1 < (char)*pbVar11) goto LAB_00173644;\nLAB_0017374d:\n        FUN_001a3dc0(pbVar10,&local_70);\n        pbVar10 = pbVar11 + local_70;\n      }\n      lVar12 = *(long *)(param_1 + 0xb8);\n      if (iVar5 != (int)(*(long *)(lVar12 + -0x10) - *(long *)(lVar12 + -0x18) >> 3) * -0x33333333)\n      {\n                    \n        FUN_0017c650("../../gold/dwarf_reader.cc",0x6e4,"read_header_tables");\n      }\n      local_68 = (long ****)CONCAT44(local_68._4_4_,(int)uVar3);\n      local_60 = local_50;\n      sVar4 = strlen((char *)__s);\n      FUN_001665c0(&local_60,__s,__s + sVar4);\n                    \n      FUN_00172000(lVar12 + -0x18,&local_68);\n      if (local_60 != local_50) {\n        FUN_002dac70();\n      }\n      iVar5 = iVar5 + 1;\n      __s = pbVar10;\n    } while (*pbVar10 != 0);\n  }\n  return pbVar10 + 1;\n}" ({ "{") (declaration "byte bVar1;" (type_identifier "byte") (identifier "bVar1") (; ";")) (declaration "long ****pppplVar2;" (sized_type_specifier "long" (long "long")) (pointer_declarator "****pppplVar2" (* "*") (pointer_declarator "***pppplVar2" (* "*") (pointer_declarator "**pppplVar2" (* "*") (pointer_declarator "*pppplVar2" (* "*") (identifier "pppplVar2"))))) (; ";")) (declaration "ulong uVar3;" (type_identifier "ulong") (identifier "uVar3") (; ";")) (declaration "size_t sVar4;" (primitive_type "size_t") (identifier "sVar4") (; ";")) (declaration "int iVar5;" (primitive_type "int") (identifier "iVar5") (; ";")) (declaration "uint uVar6;" (type_identifier "uint") (identifier "uVar6") (; ";")) (declaration "long ****pppplVar7;" (sized_type_specifier "long" (long "long")) (pointer_declarator "****pppplVar7" (* "*") (pointer_declarator "***pppplVar7" (* "*") (pointer_declarator "**pppplVar7" (* "*") (pointer_declarator "*pppplVar7" (* "*") (identifier "pppplVar7"))))) (; ";")) (declaration "long *****ppppplVar8;" (sized_type_specifier "long" (long "long")) (pointer_declarator "*****ppppplVar8" (* "*") (pointer_declarator "****ppppplVar8" (* "*") (pointer_declarator "***ppppplVar8" (* "*") (pointer_declarator "**ppppplVar8" (* "*") (pointer_declarator "*ppppplVar8" (* "*") (identifier "ppppplVar8")))))) (; ";")) (declaration "ulong uVar9;" (type_identifier "ulong") (identifier "uVar9") (; ";")) (declaration "byte *pbVar10;" (type_identifier "byte") (pointer_declarator "*pbVar10" (* "*") (identifier "pbVar10")) (; ";")) (declaration "byte *pbVar11;" (type_identifier "byte") (pointer_declarator "*pbVar11" (* "*") (identifier "pbVar11")) (; ";")) (declaration "long lVar12;" (sized_type_specifier "long" (long "long")) (identifier "lVar12") (; ";")) (declaration "byte *__s;" (type_identifier "byte") (pointer_declarator "*__s" (* "*") (identifier "__s")) (; ";")) (declaration "long local_70;" (sized_type_specifier "long" (long "long")) (identifier "local_70") (; ";")) (declaration "long ****local_68;" (sized_type_specifier "long" (long "long")) (pointer_declarator "****local_68" (* "*") (pointer_declarator "***local_68" (* "*") (pointer_declarator "**local_68" (* "*") (pointer_declarator "*local_68" (* "*") (identifier "local_68"))))) (; ";")) (declaration "long ****local_60;" (sized_type_specifier "long" (long "long")) (pointer_declarator "****local_60" (* "*") (pointer_declarator "***local_60" (* "*") (pointer_declarator "**local_60" (* "*") (pointer_declarator "*local_60" (* "*") (identifier "local_60"))))) (; ";")) (declaration "long ****local_58;" (sized_type_specifier "long" (long "long")) (pointer_declarator "****local_58" (* "*") (pointer_declarator "***local_58" (* "*") (pointer_declarator "**local_58" (* "*") (pointer_declarator "*local_58" (* "*") (identifier "local_58"))))) (; ";")) (declaration "long ***local_50 [4];" (sized_type_specifier "long" (long "long")) (pointer_declarator "***local_50 [4]" (* "*") (pointer_declarator "**local_50 [4]" (* "*") (pointer_declarator "*local_50 [4]" (* "*") (array_declarator "local_50 [4]" (identifier "local_50") ([ "[") (number_literal "4") (] "]"))))) (; ";")) (expression_statement "iVar5 = *(int *)(param_1 + 200) + 1;" (assignment_expression "iVar5 = *(int *)(param_1 + 200) + 1" (identifier "iVar5") (= "=") (binary_expression "*(int *)(param_1 + 200) + 1" (pointer_expression "*(int *)(param_1 + 200)" (* "*") (cast_expression "(int *)(param_1 + 200)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_1 + 200)" (( "(") (binary_expression "param_1 + 200" (identifier "param_1") (+ "+") (number_literal "200")) () ")")))) (+ "+") (number_literal "1"))) (; ";")) (expression_statement "*(int *)(param_1 + 200) = iVar5;" (assignment_expression "*(int *)(param_1 + 200) = iVar5" (pointer_expression "*(int *)(param_1 + 200)" (* "*") (cast_expression "(int *)(param_1 + 200)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_1 + 200)" (( "(") (binary_expression "param_1 + 200" (identifier "param_1") (+ "+") (number_literal "200")) () ")")))) (= "=") (identifier "iVar5")) (; ";")) (if_statement "if (iVar5 != (int)(*(long *)(param_1 + 0xa0) - *(long *)(param_1 + 0x98) >> 3) * -0x55555555) {\n                    \n    FUN_0017c650("../../gold/dwarf_reader.cc",0x6b6,"read_header_tables");\n  }" (if "if") (parenthesized_expression "(iVar5 != (int)(*(long *)(param_1 + 0xa0) - *(long *)(param_1 + 0x98) >> 3) * -0x55555555)" (( "(") (binary_expression "iVar5 != (int)(*(long *)(param_1 + 0xa0) - *(long *)(param_1 + 0x98) >> 3) * -0x55555555" (identifier "iVar5") (!= "!=") (binary_expression "(int)(*(long *)(param_1 + 0xa0) - *(long *)(param_1 + 0x98) >> 3) * -0x55555555" (cast_expression "(int)(*(long *)(param_1 + 0xa0) - *(long *)(param_1 + 0x98) >> 3)" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (parenthesized_expression "(*(long *)(param_1 + 0xa0) - *(long *)(param_1 + 0x98) >> 3)" (( "(") (binary_expression "*(long *)(param_1 + 0xa0) - *(long *)(param_1 + 0x98) >> 3" (binary_expression "*(long *)(param_1 + 0xa0) - *(long *)(param_1 + 0x98)" (pointer_expression "*(long *)(param_1 + 0xa0)" (* "*") (cast_expression "(long *)(param_1 + 0xa0)" (( "(") (type_descriptor "long *" (sized_type_specifier "long" (long "long")) (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_1 + 0xa0)" (( "(") (binary_expression "param_1 + 0xa0" (identifier "param_1") (+ "+") (number_literal "0xa0")) () ")")))) (- "-") (pointer_expression "*(long *)(param_1 + 0x98)" (* "*") (cast_expression "(long *)(param_1 + 0x98)" (( "(") (type_descriptor "long *" (sized_type_specifier "long" (long "long")) (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_1 + 0x98)" (( "(") (binary_expression "param_1 + 0x98" (identifier "param_1") (+ "+") (number_literal "0x98")) () ")"))))) (>> ">>") (number_literal "3")) () ")"))) (* "*") (number_literal "-0x55555555"))) () ")")) (compound_statement "{\n                    \n    FUN_0017c650("../../gold/dwarf_reader.cc",0x6b6,"read_header_tables");\n  }" ({ "{") (expression_statement "FUN_0017c650("../../gold/dwarf_reader.cc",0x6b6,"read_header_tables");" (call_expression "FUN_0017c650("../../gold/dwarf_reader.cc",0x6b6,"read_header_tables")" (identifier "FUN_0017c650") (argument_list "("../../gold/dwarf_reader.cc",0x6b6,"read_header_tables")" (( "(") (string_literal ""../../gold/dwarf_reader.cc"" (" """) (string_content "../../gold/dwarf_reader.cc") (" """)) (, ",") (number_literal "0x6b6") (, ",") (string_literal ""read_header_tables"" (" """) (string_content "read_header_tables") (" """)) () ")"))) (; ";")) (} "}"))) (if_statement "if (iVar5 != (int)(*(long *)(param_1 + 0xb8) - *(long *)(param_1 + 0xb0) >> 3) * -0x55555555) {\n                    \n    FUN_0017c650("../../gold/dwarf_reader.cc",0x6b8,"read_header_tables");\n  }" (if "if") (parenthesized_expression "(iVar5 != (int)(*(long *)(param_1 + 0xb8) - *(long *)(param_1 + 0xb0) >> 3) * -0x55555555)" (( "(") (binary_expression "iVar5 != (int)(*(long *)(param_1 + 0xb8) - *(long *)(param_1 + 0xb0) >> 3) * -0x55555555" (identifier "iVar5") (!= "!=") (binary_expression "(int)(*(long *)(param_1 + 0xb8) - *(long *)(param_1 + 0xb0) >> 3) * -0x55555555" (cast_expression "(int)(*(long *)(param_1 + 0xb8) - *(long *)(param_1 + 0xb0) >> 3)" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (parenthesized_expression "(*(long *)(param_1 + 0xb8) - *(long *)(param_1 + 0xb0) >> 3)" (( "(") (binary_expression "*(long *)(param_1 + 0xb8) - *(long *)(param_1 + 0xb0) >> 3" (binary_expression "*(long *)(param_1 + 0xb8) - *(long *)(param_1 + 0xb0)" (pointer_expression "*(long *)(param_1 + 0xb8)" (* "*") (cast_expression "(long *)(param_1 + 0xb8)" (( "(") (type_descriptor "long *" (sized_type_specifier "long" (long "long")) (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_1 + 0xb8)" (( "(") (binary_expression "param_1 + 0xb8" (identifier "param_1") (+ "+") (number_literal "0xb8")) () ")")))) (- "-") (pointer_expression "*(long *)(param_1 + 0xb0)" (* "*") (cast_expression "(long *)(param_1 + 0xb0)" (( "(") (type_descriptor "long *" (sized_type_specifier "long" (long "long")) (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_1 + 0xb0)" (( "(") (binary_expression "param_1 + 0xb0" (identifier "param_1") (+ "+") (number_literal "0xb0")) () ")"))))) (>> ">>") (number_literal "3")) () ")"))) (* "*") (number_literal "-0x55555555"))) () ")")) (compound_statement "{\n                    \n    FUN_0017c650("../../gold/dwarf_reader.cc",0x6b8,"read_header_tables");\n  }" ({ "{") (expression_statement "FUN_0017c650("../../gold/dwarf_reader.cc",0x6b8,"read_header_tables");" (call_expression "FUN_0017c650("../../gold/dwarf_reader.cc",0x6b8,"read_header_tables")" (identifier "FUN_0017c650") (argument_list "("../../gold/dwarf_reader.cc",0x6b8,"read_header_tables")" (( "(") (string_literal ""../../gold/dwarf_reader.cc"" (" """) (string_content "../../gold/dwarf_reader.cc") (" """)) (, ",") (number_literal "0x6b8") (, ",") (string_literal ""read_header_tables"" (" """) (string_content "read_header_tables") (" """)) () ")"))) (; ";")) (} "}"))) (expression_statement "local_68 = (long ****)0x0;" (assignment_expression "local_68 = (long ****)0x0" (identifier "local_68") (= "=") (cast_expression "(long ****)0x0" (( "(") (type_descriptor "long ****" (sized_type_specifier "long" (long "long")) (abstract_pointer_declarator "****" (* "*") (abstract_pointer_declarator "***" (* "*") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))))) () ")") (number_literal "0x0"))) (; ";")) (expression_statement "local_60 = (long ****)0x0;" (assignment_expression "local_60 = (long ****)0x0" (identifier "local_60") (= "=") (cast_expression "(long ****)0x0" (( "(") (type_descriptor "long ****" (sized_type_specifier "long" (long "long")) (abstract_pointer_declarator "****" (* "*") (abstract_pointer_declarator "***" (* "*") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))))) () ")") (number_literal "0x0"))) (; ";")) (expression_statement "local_58 = (long ****)0x0;" (assignment_expression "local_58 = (long ****)0x0" (identifier "local_58") (= "=") (cast_expression "(long ****)0x0" (( "(") (type_descriptor "long ****" (sized_type_specifier "long" (long "long")) (abstract_pointer_declarator "****" (* "*") (abstract_pointer_declarator "***" (* "*") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))))) () ")") (number_literal "0x0"))) (; ";")) (expression_statement "local_68 = (long ****)FUN_002d94a0(0x20);" (assignment_expression "local_68 = (long ****)FUN_002d94a0(0x20)" (identifier "local_68") (= "=") (cast_expression "(long ****)FUN_002d94a0(0x20)" (( "(") (type_descriptor "long ****" (sized_type_specifier "long" (long "long")) (abstract_pointer_declarator "****" (* "*") (abstract_pointer_declarator "***" (* "*") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))))) () ")") (call_expression "FUN_002d94a0(0x20)" (identifier "FUN_002d94a0") (argument_list "(0x20)" (( "(") (number_literal "0x20") () ")"))))) (; ";")) (expression_statement "local_68[1] = (long ***)0x0;" (assignment_expression "local_68[1] = (long ***)0x0" (subscript_expression "local_68[1]" (identifier "local_68") ([ "[") (number_literal "1") (] "]")) (= "=") (cast_expression "(long ***)0x0" (( "(") (type_descriptor "long ***" (sized_type_specifier "long" (long "long")) (abstract_pointer_declarator "***" (* "*") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*"))))) () ")") (number_literal "0x0"))) (; ";")) (expression_statement "local_60 = local_68 + 4;" (assignment_expression "local_60 = local_68 + 4" (identifier "local_60") (= "=") (binary_expression "local_68 + 4" (identifier "local_68") (+ "+") (number_literal "4"))) (; ";")) (expression_statement "*local_68 = (long ***)(local_68 + 2);" (assignment_expression "*local_68 = (long ***)(local_68 + 2)" (pointer_expression "*local_68" (* "*") (identifier "local_68")) (= "=") (cast_expression "(long ***)(local_68 + 2)" (( "(") (type_descriptor "long ***" (sized_type_specifier "long" (long "long")) (abstract_pointer_declarator "***" (* "*") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*"))))) () ")") (parenthesized_expression "(local_68 + 2)" (( "(") (binary_expression "local_68 + 2" (identifier "local_68") (+ "+") (number_literal "2")) () ")")))) (; ";")) (expression_statement "*(undefined1 *)(local_68 + 2) = 0;" (assignment_expression "*(undefined1 *)(local_68 + 2) = 0" (pointer_expression "*(undefined1 *)(local_68 + 2)" (* "*") (cast_expression "(undefined1 *)(local_68 + 2)" (( "(") (type_descriptor "undefined1 *" (type_identifier "undefined1") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(local_68 + 2)" (( "(") (binary_expression "local_68 + 2" (identifier "local_68") (+ "+") (number_literal "2")) () ")")))) (= "=") (number_literal "0")) (; ";")) (expression_statement "local_58 = local_60;" (assignment_expression "local_58 = local_60" (identifier "local_58") (= "=") (identifier "local_60")) (; ";")) (expression_statement "FUN_00171a10(param_1 + 0x98,&local_68);" (call_expression "FUN_00171a10(param_1 + 0x98,&local_68)" (identifier "FUN_00171a10") (argument_list "(param_1 + 0x98,&local_68)" (( "(") (binary_expression "param_1 + 0x98" (identifier "param_1") (+ "+") (number_literal "0x98")) (, ",") (pointer_expression "&local_68" (& "&") (identifier "local_68")) () ")"))) (; ";")) (expression_statement "pppplVar2 = local_60;" (assignment_expression "pppplVar2 = local_60" (identifier "pppplVar2") (= "=") (identifier "local_60")) (; ";")) (for_statement "for (pppplVar7 = local_68; pppplVar2 != pppplVar7; pppplVar7 = pppplVar7 + 4) {\n    if ((long ****)*pppplVar7 != pppplVar7 + 2) {\n      FUN_002dac70();\n    }\n  }" (for "for") (( "(") (assignment_expression "pppplVar7 = local_68" (identifier "pppplVar7") (= "=") (identifier "local_68")) (; ";") (binary_expression "pppplVar2 != pppplVar7" (identifier "pppplVar2") (!= "!=") (identifier "pppplVar7")) (; ";") (assignment_expression "pppplVar7 = pppplVar7 + 4" (identifier "pppplVar7") (= "=") (binary_expression "pppplVar7 + 4" (identifier "pppplVar7") (+ "+") (number_literal "4"))) () ")") (compound_statement "{\n    if ((long ****)*pppplVar7 != pppplVar7 + 2) {\n      FUN_002dac70();\n    }\n  }" ({ "{") (if_statement "if ((long ****)*pppplVar7 != pppplVar7 + 2) {\n      FUN_002dac70();\n    }" (if "if") (parenthesized_expression "((long ****)*pppplVar7 != pppplVar7 + 2)" (( "(") (binary_expression "(long ****)*pppplVar7 != pppplVar7 + 2" (cast_expression "(long ****)*pppplVar7" (( "(") (type_descriptor "long ****" (sized_type_specifier "long" (long "long")) (abstract_pointer_declarator "****" (* "*") (abstract_pointer_declarator "***" (* "*") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))))) () ")") (pointer_expression "*pppplVar7" (* "*") (identifier "pppplVar7"))) (!= "!=") (binary_expression "pppplVar7 + 2" (identifier "pppplVar7") (+ "+") (number_literal "2"))) () ")")) (compound_statement "{\n      FUN_002dac70();\n    }" ({ "{") (expression_statement "FUN_002dac70();" (call_expression "FUN_002dac70()" (identifier "FUN_002dac70") (argument_list "()" (( "(") () ")"))) (; ";")) (} "}"))) (} "}"))) (if_statement "if (local_68 != (long ****)0x0) {\n    FUN_002dac70(local_68);\n  }" (if "if") (parenthesized_expression "(local_68 != (long ****)0x0)" (( "(") (binary_expression "local_68 != (long ****)0x0" (identifier "local_68") (!= "!=") (cast_expression "(long ****)0x0" (( "(") (type_descriptor "long ****" (sized_type_specifier "long" (long "long")) (abstract_pointer_declarator "****" (* "*") (abstract_pointer_declarator "***" (* "*") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))))) () ")") (number_literal "0x0"))) () ")")) (compound_statement "{\n    FUN_002dac70(local_68);\n  }" ({ "{") (expression_statement "FUN_002dac70(local_68);" (call_expression "FUN_002dac70(local_68)" (identifier "FUN_002dac70") (argument_list "(local_68)" (( "(") (identifier "local_68") () ")"))) (; ";")) (} "}"))) (expression_statement "local_68 = (long ****)0x0;" (assignment_expression "local_68 = (long ****)0x0" (identifier "local_68") (= "=") (cast_expression "(long ****)0x0" (( "(") (type_descriptor "long ****" (sized_type_specifier "long" (long "long")) (abstract_pointer_declarator "****" (* "*") (abstract_pointer_declarator "***" (* "*") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))))) () ")") (number_literal "0x0"))) (; ";")) (expression_statement "local_60 = (long ****)0x0;" (assignment_expression "local_60 = (long ****)0x0" (identifier "local_60") (= "=") (cast_expression "(long ****)0x0" (( "(") (type_descriptor "long ****" (sized_type_specifier "long" (long "long")) (abstract_pointer_declarator "****" (* "*") (abstract_pointer_declarator "***" (* "*") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))))) () ")") (number_literal "0x0"))) (; ";")) (expression_statement "local_58 = (long ****)0x0;" (assignment_expression "local_58 = (long ****)0x0" (identifier "local_58") (= "=") (cast_expression "(long ****)0x0" (( "(") (type_descriptor "long ****" (sized_type_specifier "long" (long "long")) (abstract_pointer_declarator "****" (* "*") (abstract_pointer_declarator "***" (* "*") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))))) () ")") (number_literal "0x0"))) (; ";")) (expression_statement "local_68 = (long ****)FUN_002d94a0(0x28);" (assignment_expression "local_68 = (long ****)FUN_002d94a0(0x28)" (identifier "local_68") (= "=") (cast_expression "(long ****)FUN_002d94a0(0x28)" (( "(") (type_descriptor "long ****" (sized_type_specifier "long" (long "long")) (abstract_pointer_declarator "****" (* "*") (abstract_pointer_declarator "***" (* "*") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))))) () ")") (call_expression "FUN_002d94a0(0x28)" (identifier "FUN_002d94a0") (argument_list "(0x28)" (( "(") (number_literal "0x28") () ")"))))) (; ";")) (expression_statement "*(undefined4 *)local_68 = 0;" (assignment_expression "*(undefined4 *)local_68 = 0" (pointer_expression "*(undefined4 *)local_68" (* "*") (cast_expression "(undefined4 *)local_68" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "local_68"))) (= "=") (number_literal "0")) (; ";")) (expression_statement "local_60 = (long ****)((long *****)local_68 + 5);" (assignment_expression "local_60 = (long ****)((long *****)local_68 + 5)" (identifier "local_60") (= "=") (cast_expression "(long ****)((long *****)local_68 + 5)" (( "(") (type_descriptor "long ****" (sized_type_specifier "long" (long "long")) (abstract_pointer_declarator "****" (* "*") (abstract_pointer_declarator "***" (* "*") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))))) () ")") (parenthesized_expression "((long *****)local_68 + 5)" (( "(") (binary_expression "(long *****)local_68 + 5" (cast_expression "(long *****)local_68" (( "(") (type_descriptor "long *****" (sized_type_specifier "long" (long "long")) (abstract_pointer_declarator "*****" (* "*") (abstract_pointer_declarator "****" (* "*") (abstract_pointer_declarator "***" (* "*") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*"))))))) () ")") (identifier "local_68")) (+ "+") (number_literal "5")) () ")")))) (; ";")) (expression_statement "((long *****)local_68)[1] = (long ****)((long *****)local_68 + 3);" (assignment_expression "((long *****)local_68)[1] = (long ****)((long *****)local_68 + 3)" (subscript_expression "((long *****)local_68)[1]" (parenthesized_expression "((long *****)local_68)" (( "(") (cast_expression "(long *****)local_68" (( "(") (type_descriptor "long *****" (sized_type_specifier "long" (long "long")) (abstract_pointer_declarator "*****" (* "*") (abstract_pointer_declarator "****" (* "*") (abstract_pointer_declarator "***" (* "*") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*"))))))) () ")") (identifier "local_68")) () ")")) ([ "[") (number_literal "1") (] "]")) (= "=") (cast_expression "(long ****)((long *****)local_68 + 3)" (( "(") (type_descriptor "long ****" (sized_type_specifier "long" (long "long")) (abstract_pointer_declarator "****" (* "*") (abstract_pointer_declarator "***" (* "*") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))))) () ")") (parenthesized_expression "((long *****)local_68 + 3)" (( "(") (binary_expression "(long *****)local_68 + 3" (cast_expression "(long *****)local_68" (( "(") (type_descriptor "long *****" (sized_type_specifier "long" (long "long")) (abstract_pointer_declarator "*****" (* "*") (abstract_pointer_declarator "****" (* "*") (abstract_pointer_declarator "***" (* "*") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*"))))))) () ")") (identifier "local_68")) (+ "+") (number_literal "3")) () ")")))) (; ";")) (expression_statement "((long *****)local_68)[2] = (long ****)0x0;" (assignment_expression "((long *****)local_68)[2] = (long ****)0x0" (subscript_expression "((long *****)local_68)[2]" (parenthesized_expression "((long *****)local_68)" (( "(") (cast_expression "(long *****)local_68" (( "(") (type_descriptor "long *****" (sized_type_specifier "long" (long "long")) (abstract_pointer_declarator "*****" (* "*") (abstract_pointer_declarator "****" (* "*") (abstract_pointer_declarator "***" (* "*") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*"))))))) () ")") (identifier "local_68")) () ")")) ([ "[") (number_literal "2") (] "]")) (= "=") (cast_expression "(long ****)0x0" (( "(") (type_descriptor "long ****" (sized_type_specifier "long" (long "long")) (abstract_pointer_declarator "****" (* "*") (abstract_pointer_declarator "***" (* "*") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))))) () ")") (number_literal "0x0"))) (; ";")) (expression_statement "*(undefined1 *)((long *****)local_68 + 3) = 0;" (assignment_expression "*(undefined1 *)((long *****)local_68 + 3) = 0" (pointer_expression "*(undefined1 *)((long *****)local_68 + 3)" (* "*") (cast_expression "(undefined1 *)((long *****)local_68 + 3)" (( "(") (type_descriptor "undefined1 *" (type_identifier "undefined1") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "((long *****)local_68 + 3)" (( "(") (binary_expression "(long *****)local_68 + 3" (cast_expression "(long *****)local_68" (( "(") (type_descriptor "long *****" (sized_type_specifier "long" (long "long")) (abstract_pointer_declarator "*****" (* "*") (abstract_pointer_declarator "****" (* "*") (abstract_pointer_declarator "***" (* "*") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*"))))))) () ")") (identifier "local_68")) (+ "+") (number_literal "3")) () ")")))) (= "=") (number_literal "0")) (; ";")) (expression_statement "local_58 = local_60;" (assignment_expression "local_58 = local_60" (identifier "local_58") (= "=") (identifier "local_60")) (; ";")) (expression_statement "FUN_00171d10(param_1 + 0xb0,&local_68);" (call_expression "FUN_00171d10(param_1 + 0xb0,&local_68)" (identifier "FUN_00171d10") (argument_list "(param_1 + 0xb0,&local_68)" (( "(") (binary_expression "param_1 + 0xb0" (identifier "param_1") (+ "+") (number_literal "0xb0")) (, ",") (pointer_expression "&local_68" (& "&") (identifier "local_68")) () ")"))) (; ";")) (expression_statement "pppplVar7 = local_60;" (assignment_expression "pppplVar7 = local_60" (identifier "pppplVar7") (= "=") (identifier "local_60")) (; ";")) (for_statement "for (ppppplVar8 = (long *****)local_68; (long *****)pppplVar7 != ppppplVar8;\n      ppppplVar8 = ppppplVar8 + 5) {\n    if ((long *****)ppppplVar8[1] != ppppplVar8 + 3) {\n      FUN_002dac70();\n    }\n  }" (for "for") (( "(") (assignment_expression "ppppplVar8 = (long *****)local_68" (identifier "ppppplVar8") (= "=") (cast_expression "(long *****)local_68" (( "(") (type_descriptor "long *****" (sized_type_specifier "long" (long "long")) (abstract_pointer_declarator "*****" (* "*") (abstract_pointer_declarator "****" (* "*") (abstract_pointer_declarator "***" (* "*") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*"))))))) () ")") (identifier "local_68"))) (; ";") (binary_expression "(long *****)pppplVar7 != ppppplVar8" (cast_expression "(long *****)pppplVar7" (( "(") (type_descriptor "long *****" (sized_type_specifier "long" (long "long")) (abstract_pointer_declarator "*****" (* "*") (abstract_pointer_declarator "****" (* "*") (abstract_pointer_declarator "***" (* "*") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*"))))))) () ")") (identifier "pppplVar7")) (!= "!=") (identifier "ppppplVar8")) (; ";") (assignment_expression "ppppplVar8 = ppppplVar8 + 5" (identifier "ppppplVar8") (= "=") (binary_expression "ppppplVar8 + 5" (identifier "ppppplVar8") (+ "+") (number_literal "5"))) () ")") (compound_statement "{\n    if ((long *****)ppppplVar8[1] != ppppplVar8 + 3) {\n      FUN_002dac70();\n    }\n  }" ({ "{") (if_statement "if ((long *****)ppppplVar8[1] != ppppplVar8 + 3) {\n      FUN_002dac70();\n    }" (if "if") (parenthesized_expression "((long *****)ppppplVar8[1] != ppppplVar8 + 3)" (( "(") (binary_expression "(long *****)ppppplVar8[1] != ppppplVar8 + 3" (cast_expression "(long *****)ppppplVar8[1]" (( "(") (type_descriptor "long *****" (sized_type_specifier "long" (long "long")) (abstract_pointer_declarator "*****" (* "*") (abstract_pointer_declarator "****" (* "*") (abstract_pointer_declarator "***" (* "*") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*"))))))) () ")") (subscript_expression "ppppplVar8[1]" (identifier "ppppplVar8") ([ "[") (number_literal "1") (] "]"))) (!= "!=") (binary_expression "ppppplVar8 + 3" (identifier "ppppplVar8") (+ "+") (number_literal "3"))) () ")")) (compound_statement "{\n      FUN_002dac70();\n    }" ({ "{") (expression_statement "FUN_002dac70();" (call_expression "FUN_002dac70()" (identifier "FUN_002dac70") (argument_list "()" (( "(") () ")"))) (; ";")) (} "}"))) (} "}"))) (if_statement "if ((long *****)local_68 != (long *****)0x0) {\n    FUN_002dac70(local_68);\n  }" (if "if") (parenthesized_expression "((long *****)local_68 != (long *****)0x0)" (( "(") (binary_expression "(long *****)local_68 != (long *****)0x0" (cast_expression "(long *****)local_68" (( "(") (type_descriptor "long *****" (sized_type_specifier "long" (long "long")) (abstract_pointer_declarator "*****" (* "*") (abstract_pointer_declarator "****" (* "*") (abstract_pointer_declarator "***" (* "*") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*"))))))) () ")") (identifier "local_68")) (!= "!=") (cast_expression "(long *****)0x0" (( "(") (type_descriptor "long *****" (sized_type_specifier "long" (long "long")) (abstract_pointer_declarator "*****" (* "*") (abstract_pointer_declarator "****" (* "*") (abstract_pointer_declarator "***" (* "*") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*"))))))) () ")") (number_literal "0x0"))) () ")")) (compound_statement "{\n    FUN_002dac70(local_68);\n  }" ({ "{") (expression_statement "FUN_002dac70(local_68);" (call_expression "FUN_002dac70(local_68)" (identifier "FUN_002dac70") (argument_list "(local_68)" (( "(") (identifier "local_68") () ")"))) (; ";")) (} "}"))) (if_statement "if (*param_2 != '\0') {\n    lVar12 = *(long *)(param_1 + 0xa0);\n    uVar3 = *(long *)(lVar12 + -0x10) - *(long *)(lVar12 + -0x18) >> 5;\n    uVar9 = uVar3 & 0xffffffff;\n    if ((int)uVar3 == 1) {\n      do {\n        local_68 = (long ****)&local_58;\n        sVar4 = strlen(param_2);\n        FUN_001665c0(&local_68,param_2,param_2 + sVar4);\n                    \n        FUN_0016f840(lVar12 + -0x18,&local_68);\n        if ((long *****)local_68 != &local_58) {\n          FUN_002dac70();\n        }\n        lVar12 = *(long *)(param_1 + 0xa0);\n        uVar6 = (int)uVar9 + 1;\n        uVar9 = (ulong)uVar6;\n        param_2 = param_2 + *(long *)(*(long *)(lVar12 + -0x10) + -0x18) + 1;\n        if (*param_2 == '\0') goto LAB_001735b7;\n      } while (uVar6 == (uint)(*(long *)(lVar12 + -0x10) - *(long *)(lVar12 + -0x18) >> 5));\n    }\n                    \n    FUN_0017c650("../../gold/dwarf_reader.cc",0x6c4,"read_header_tables");\n  }" (if "if") (parenthesized_expression "(*param_2 != '\0')" (( "(") (binary_expression "*param_2 != '\0'" (pointer_expression "*param_2" (* "*") (identifier "param_2")) (!= "!=") (char_literal "'\0'" (' "'") (escape_sequence "\0") (' "'"))) () ")")) (compound_statement "{\n    lVar12 = *(long *)(param_1 + 0xa0);\n    uVar3 = *(long *)(lVar12 + -0x10) - *(long *)(lVar12 + -0x18) >> 5;\n    uVar9 = uVar3 & 0xffffffff;\n    if ((int)uVar3 == 1) {\n      do {\n        local_68 = (long ****)&local_58;\n        sVar4 = strlen(param_2);\n        FUN_001665c0(&local_68,param_2,param_2 + sVar4);\n                    \n        FUN_0016f840(lVar12 + -0x18,&local_68);\n        if ((long *****)local_68 != &local_58) {\n          FUN_002dac70();\n        }\n        lVar12 = *(long *)(param_1 + 0xa0);\n        uVar6 = (int)uVar9 + 1;\n        uVar9 = (ulong)uVar6;\n        param_2 = param_2 + *(long *)(*(long *)(lVar12 + -0x10) + -0x18) + 1;\n        if (*param_2 == '\0') goto LAB_001735b7;\n      } while (uVar6 == (uint)(*(long *)(lVar12 + -0x10) - *(long *)(lVar12 + -0x18) >> 5));\n    }\n                    \n    FUN_0017c650("../../gold/dwarf_reader.cc",0x6c4,"read_header_tables");\n  }" ({ "{") (expression_statement "lVar12 = *(long *)(param_1 + 0xa0);" (assignment_expression "lVar12 = *(long *)(param_1 + 0xa0)" (identifier "lVar12") (= "=") (pointer_expression "*(long *)(param_1 + 0xa0)" (* "*") (cast_expression "(long *)(param_1 + 0xa0)" (( "(") (type_descriptor "long *" (sized_type_specifier "long" (long "long")) (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_1 + 0xa0)" (( "(") (binary_expression "param_1 + 0xa0" (identifier "param_1") (+ "+") (number_literal "0xa0")) () ")"))))) (; ";")) (expression_statement "uVar3 = *(long *)(lVar12 + -0x10) - *(long *)(lVar12 + -0x18) >> 5;" (assignment_expression "uVar3 = *(long *)(lVar12 + -0x10) - *(long *)(lVar12 + -0x18) >> 5" (identifier "uVar3") (= "=") (binary_expression "*(long *)(lVar12 + -0x10) - *(long *)(lVar12 + -0x18) >> 5" (binary_expression "*(long *)(lVar12 + -0x10) - *(long *)(lVar12 + -0x18)" (pointer_expression "*(long *)(lVar12 + -0x10)" (* "*") (cast_expression "(long *)(lVar12 + -0x10)" (( "(") (type_descriptor "long *" (sized_type_specifier "long" (long "long")) (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(lVar12 + -0x10)" (( "(") (binary_expression "lVar12 + -0x10" (identifier "lVar12") (+ "+") (number_literal "-0x10")) () ")")))) (- "-") (pointer_expression "*(long *)(lVar12 + -0x18)" (* "*") (cast_expression "(long *)(lVar12 + -0x18)" (( "(") (type_descriptor "long *" (sized_type_specifier "long" (long "long")) (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(lVar12 + -0x18)" (( "(") (binary_expression "lVar12 + -0x18" (identifier "lVar12") (+ "+") (number_literal "-0x18")) () ")"))))) (>> ">>") (number_literal "5"))) (; ";")) (expression_statement "uVar9 = uVar3 & 0xffffffff;" (assignment_expression "uVar9 = uVar3 & 0xffffffff" (identifier "uVar9") (= "=") (binary_expression "uVar3 & 0xffffffff" (identifier "uVar3") (& "&") (number_literal "0xffffffff"))) (; ";")) (if_statement "if ((int)uVar3 == 1) {\n      do {\n        local_68 = (long ****)&local_58;\n        sVar4 = strlen(param_2);\n        FUN_001665c0(&local_68,param_2,param_2 + sVar4);\n                    \n        FUN_0016f840(lVar12 + -0x18,&local_68);\n        if ((long *****)local_68 != &local_58) {\n          FUN_002dac70();\n        }\n        lVar12 = *(long *)(param_1 + 0xa0);\n        uVar6 = (int)uVar9 + 1;\n        uVar9 = (ulong)uVar6;\n        param_2 = param_2 + *(long *)(*(long *)(lVar12 + -0x10) + -0x18) + 1;\n        if (*param_2 == '\0') goto LAB_001735b7;\n      } while (uVar6 == (uint)(*(long *)(lVar12 + -0x10) - *(long *)(lVar12 + -0x18) >> 5));\n    }" (if "if") (parenthesized_expression "((int)uVar3 == 1)" (( "(") (binary_expression "(int)uVar3 == 1" (cast_expression "(int)uVar3" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "uVar3")) (== "==") (number_literal "1")) () ")")) (compound_statement "{\n      do {\n        local_68 = (long ****)&local_58;\n        sVar4 = strlen(param_2);\n        FUN_001665c0(&local_68,param_2,param_2 + sVar4);\n                    \n        FUN_0016f840(lVar12 + -0x18,&local_68);\n        if ((long *****)local_68 != &local_58) {\n          FUN_002dac70();\n        }\n        lVar12 = *(long *)(param_1 + 0xa0);\n        uVar6 = (int)uVar9 + 1;\n        uVar9 = (ulong)uVar6;\n        param_2 = param_2 + *(long *)(*(long *)(lVar12 + -0x10) + -0x18) + 1;\n        if (*param_2 == '\0') goto LAB_001735b7;\n      } while (uVar6 == (uint)(*(long *)(lVar12 + -0x10) - *(long *)(lVar12 + -0x18) >> 5));\n    }" ({ "{") (do_statement "do {\n        local_68 = (long ****)&local_58;\n        sVar4 = strlen(param_2);\n        FUN_001665c0(&local_68,param_2,param_2 + sVar4);\n                    \n        FUN_0016f840(lVar12 + -0x18,&local_68);\n        if ((long *****)local_68 != &local_58) {\n          FUN_002dac70();\n        }\n        lVar12 = *(long *)(param_1 + 0xa0);\n        uVar6 = (int)uVar9 + 1;\n        uVar9 = (ulong)uVar6;\n        param_2 = param_2 + *(long *)(*(long *)(lVar12 + -0x10) + -0x18) + 1;\n        if (*param_2 == '\0') goto LAB_001735b7;\n      } while (uVar6 == (uint)(*(long *)(lVar12 + -0x10) - *(long *)(lVar12 + -0x18) >> 5));" (do "do") (compound_statement "{\n        local_68 = (long ****)&local_58;\n        sVar4 = strlen(param_2);\n        FUN_001665c0(&local_68,param_2,param_2 + sVar4);\n                    \n        FUN_0016f840(lVar12 + -0x18,&local_68);\n        if ((long *****)local_68 != &local_58) {\n          FUN_002dac70();\n        }\n        lVar12 = *(long *)(param_1 + 0xa0);\n        uVar6 = (int)uVar9 + 1;\n        uVar9 = (ulong)uVar6;\n        param_2 = param_2 + *(long *)(*(long *)(lVar12 + -0x10) + -0x18) + 1;\n        if (*param_2 == '\0') goto LAB_001735b7;\n      }" ({ "{") (expression_statement "local_68 = (long ****)&local_58;" (assignment_expression "local_68 = (long ****)&local_58" (identifier "local_68") (= "=") (cast_expression "(long ****)&local_58" (( "(") (type_descriptor "long ****" (sized_type_specifier "long" (long "long")) (abstract_pointer_declarator "****" (* "*") (abstract_pointer_declarator "***" (* "*") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))))) () ")") (pointer_expression "&local_58" (& "&") (identifier "local_58")))) (; ";")) (expression_statement "sVar4 = strlen(param_2);" (assignment_expression "sVar4 = strlen(param_2)" (identifier "sVar4") (= "=") (call_expression "strlen(param_2)" (identifier "strlen") (argument_list "(param_2)" (( "(") (identifier "param_2") () ")")))) (; ";")) (expression_statement "FUN_001665c0(&local_68,param_2,param_2 + sVar4);" (call_expression "FUN_001665c0(&local_68,param_2,param_2 + sVar4)" (identifier "FUN_001665c0") (argument_list "(&local_68,param_2,param_2 + sVar4)" (( "(") (pointer_expression "&local_68" (& "&") (identifier "local_68")) (, ",") (identifier "param_2") (, ",") (binary_expression "param_2 + sVar4" (identifier "param_2") (+ "+") (identifier "sVar4")) () ")"))) (; ";")) (expression_statement "FUN_0016f840(lVar12 + -0x18,&local_68);" (call_expression "FUN_0016f840(lVar12 + -0x18,&local_68)" (identifier "FUN_0016f840") (argument_list "(lVar12 + -0x18,&local_68)" (( "(") (binary_expression "lVar12 + -0x18" (identifier "lVar12") (+ "+") (number_literal "-0x18")) (, ",") (pointer_expression "&local_68" (& "&") (identifier "local_68")) () ")"))) (; ";")) (if_statement "if ((long *****)local_68 != &local_58) {\n          FUN_002dac70();\n        }" (if "if") (parenthesized_expression "((long *****)local_68 != &local_58)" (( "(") (binary_expression "(long *****)local_68 != &local_58" (cast_expression "(long *****)local_68" (( "(") (type_descriptor "long *****" (sized_type_specifier "long" (long "long")) (abstract_pointer_declarator "*****" (* "*") (abstract_pointer_declarator "****" (* "*") (abstract_pointer_declarator "***" (* "*") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*"))))))) () ")") (identifier "local_68")) (!= "!=") (pointer_expression "&local_58" (& "&") (identifier "local_58"))) () ")")) (compound_statement "{\n          FUN_002dac70();\n        }" ({ "{") (expression_statement "FUN_002dac70();" (call_expression "FUN_002dac70()" (identifier "FUN_002dac70") (argument_list "()" (( "(") () ")"))) (; ";")) (} "}"))) (expression_statement "lVar12 = *(long *)(param_1 + 0xa0);" (assignment_expression "lVar12 = *(long *)(param_1 + 0xa0)" (identifier "lVar12") (= "=") (pointer_expression "*(long *)(param_1 + 0xa0)" (* "*") (cast_expression "(long *)(param_1 + 0xa0)" (( "(") (type_descriptor "long *" (sized_type_specifier "long" (long "long")) (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_1 + 0xa0)" (( "(") (binary_expression "param_1 + 0xa0" (identifier "param_1") (+ "+") (number_literal "0xa0")) () ")"))))) (; ";")) (expression_statement "uVar6 = (int)uVar9 + 1;" (assignment_expression "uVar6 = (int)uVar9 + 1" (identifier "uVar6") (= "=") (binary_expression "(int)uVar9 + 1" (cast_expression "(int)uVar9" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "uVar9")) (+ "+") (number_literal "1"))) (; ";")) (expression_statement "uVar9 = (ulong)uVar6;" (assignment_expression "uVar9 = (ulong)uVar6" (identifier "uVar9") (= "=") (cast_expression "(ulong)uVar6" (( "(") (type_descriptor "ulong" (type_identifier "ulong")) () ")") (identifier "uVar6"))) (; ";")) (expression_statement "param_2 = param_2 + *(long *)(*(long *)(lVar12 + -0x10) + -0x18) + 1;" (assignment_expression "param_2 = param_2 + *(long *)(*(long *)(lVar12 + -0x10) + -0x18) + 1" (identifier "param_2") (= "=") (binary_expression "param_2 + *(long *)(*(long *)(lVar12 + -0x10) + -0x18) + 1" (binary_expression "param_2 + *(long *)(*(long *)(lVar12 + -0x10) + -0x18)" (identifier "param_2") (+ "+") (pointer_expression "*(long *)(*(long *)(lVar12 + -0x10) + -0x18)" (* "*") (cast_expression "(long *)(*(long *)(lVar12 + -0x10) + -0x18)" (( "(") (type_descriptor "long *" (sized_type_specifier "long" (long "long")) (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(*(long *)(lVar12 + -0x10) + -0x18)" (( "(") (binary_expression "*(long *)(lVar12 + -0x10) + -0x18" (pointer_expression "*(long *)(lVar12 + -0x10)" (* "*") (cast_expression "(long *)(lVar12 + -0x10)" (( "(") (type_descriptor "long *" (sized_type_specifier "long" (long "long")) (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(lVar12 + -0x10)" (( "(") (binary_expression "lVar12 + -0x10" (identifier "lVar12") (+ "+") (number_literal "-0x10")) () ")")))) (+ "+") (number_literal "-0x18")) () ")"))))) (+ "+") (number_literal "1"))) (; ";")) (if_statement "if (*param_2 == '\0') goto LAB_001735b7;" (if "if") (parenthesized_expression "(*param_2 == '\0')" (( "(") (binary_expression "*param_2 == '\0'" (pointer_expression "*param_2" (* "*") (identifier "param_2")) (== "==") (char_literal "'\0'" (' "'") (escape_sequence "\0") (' "'"))) () ")")) (goto_statement "goto LAB_001735b7;" (goto "goto") (statement_identifier "LAB_001735b7") (; ";"))) (} "}")) (while "while") (parenthesized_expression "(uVar6 == (uint)(*(long *)(lVar12 + -0x10) - *(long *)(lVar12 + -0x18) >> 5))" (( "(") (binary_expression "uVar6 == (uint)(*(long *)(lVar12 + -0x10) - *(long *)(lVar12 + -0x18) >> 5)" (identifier "uVar6") (== "==") (call_expression "(uint)(*(long *)(lVar12 + -0x10) - *(long *)(lVar12 + -0x18) >> 5)" (parenthesized_expression "(uint)" (( "(") (identifier "uint") () ")")) (argument_list "(*(long *)(lVar12 + -0x10) - *(long *)(lVar12 + -0x18) >> 5)" (( "(") (binary_expression "*(long *)(lVar12 + -0x10) - *(long *)(lVar12 + -0x18) >> 5" (binary_expression "*(long *)(lVar12 + -0x10) - *(long *)(lVar12 + -0x18)" (pointer_expression "*(long *)(lVar12 + -0x10)" (* "*") (cast_expression "(long *)(lVar12 + -0x10)" (( "(") (type_descriptor "long *" (sized_type_specifier "long" (long "long")) (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(lVar12 + -0x10)" (( "(") (binary_expression "lVar12 + -0x10" (identifier "lVar12") (+ "+") (number_literal "-0x10")) () ")")))) (- "-") (pointer_expression "*(long *)(lVar12 + -0x18)" (* "*") (cast_expression "(long *)(lVar12 + -0x18)" (( "(") (type_descriptor "long *" (sized_type_specifier "long" (long "long")) (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(lVar12 + -0x18)" (( "(") (binary_expression "lVar12 + -0x18" (identifier "lVar12") (+ "+") (number_literal "-0x18")) () ")"))))) (>> ">>") (number_literal "5")) () ")")))) () ")")) (; ";")) (} "}"))) (expression_statement "FUN_0017c650("../../gold/dwarf_reader.cc",0x6c4,"read_header_tables");" (call_expression "FUN_0017c650("../../gold/dwarf_reader.cc",0x6c4,"read_header_tables")" (identifier "FUN_0017c650") (argument_list "("../../gold/dwarf_reader.cc",0x6c4,"read_header_tables")" (( "(") (string_literal ""../../gold/dwarf_reader.cc"" (" """) (string_content "../../gold/dwarf_reader.cc") (" """)) (, ",") (number_literal "0x6c4") (, ",") (string_literal ""read_header_tables"" (" """) (string_content "read_header_tables") (" """)) () ")"))) (; ";")) (} "}"))) (labeled_statement "LAB_001735b7:\n  pbVar10 = (byte *)(param_2 + 1);" (statement_identifier "LAB_001735b7") (: ":") (expression_statement "pbVar10 = (byte *)(param_2 + 1);" (assignment_expression "pbVar10 = (byte *)(param_2 + 1)" (identifier "pbVar10") (= "=") (cast_expression "(byte *)(param_2 + 1)" (( "(") (type_descriptor "byte *" (type_identifier "byte") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_2 + 1)" (( "(") (binary_expression "param_2 + 1" (identifier "param_2") (+ "+") (number_literal "1")) () ")")))) (; ";"))) (if_statement "if (param_2[1] != '\0') {\n    iVar5 = 1;\n    __s = pbVar10;\n    do {\n      sVar4 = strlen((char *)__s);\n      pbVar11 = __s + sVar4 + 1;\n      bVar1 = *pbVar11;\n      uVar3 = (ulong)bVar1;\n      pbVar10 = pbVar11 + 1;\n      if ((char)bVar1 < '\0') {\n        uVar3 = FUN_001a3dc0(pbVar10,&local_70,bVar1);\n        pbVar10 = pbVar11 + local_70;\n      }\n      else {\n        local_70 = 1;\n      }\n      pbVar11 = pbVar10 + 1;\n      if ((ulong)(*(long *)(*(long *)(param_1 + 0xa0) + -0x10) -\n                  *(long *)(*(long *)(param_1 + 0xa0) + -0x18) >> 5) <= uVar3) {\n        uVar3 = 0;\n      }\n      if ((char)*pbVar10 < '\0') {\n        FUN_001a3dc0(pbVar11,&local_70);\n        pbVar11 = pbVar10 + local_70;\n        pbVar10 = pbVar11 + 1;\n        if ((char)*pbVar11 < '\0') goto LAB_0017374d;\nLAB_00173644:\n        local_70 = 1;\n      }\n      else {\n        pbVar10 = pbVar10 + 2;\n        local_70 = 1;\n        if (-1 < (char)*pbVar11) goto LAB_00173644;\nLAB_0017374d:\n        FUN_001a3dc0(pbVar10,&local_70);\n        pbVar10 = pbVar11 + local_70;\n      }\n      lVar12 = *(long *)(param_1 + 0xb8);\n      if (iVar5 != (int)(*(long *)(lVar12 + -0x10) - *(long *)(lVar12 + -0x18) >> 3) * -0x33333333)\n      {\n                    \n        FUN_0017c650("../../gold/dwarf_reader.cc",0x6e4,"read_header_tables");\n      }\n      local_68 = (long ****)CONCAT44(local_68._4_4_,(int)uVar3);\n      local_60 = local_50;\n      sVar4 = strlen((char *)__s);\n      FUN_001665c0(&local_60,__s,__s + sVar4);\n                    \n      FUN_00172000(lVar12 + -0x18,&local_68);\n      if (local_60 != local_50) {\n        FUN_002dac70();\n      }\n      iVar5 = iVar5 + 1;\n      __s = pbVar10;\n    } while (*pbVar10 != 0);\n  }" (if "if") (parenthesized_expression "(param_2[1] != '\0')" (( "(") (binary_expression "param_2[1] != '\0'" (subscript_expression "param_2[1]" (identifier "param_2") ([ "[") (number_literal "1") (] "]")) (!= "!=") (char_literal "'\0'" (' "'") (escape_sequence "\0") (' "'"))) () ")")) (compound_statement "{\n    iVar5 = 1;\n    __s = pbVar10;\n    do {\n      sVar4 = strlen((char *)__s);\n      pbVar11 = __s + sVar4 + 1;\n      bVar1 = *pbVar11;\n      uVar3 = (ulong)bVar1;\n      pbVar10 = pbVar11 + 1;\n      if ((char)bVar1 < '\0') {\n        uVar3 = FUN_001a3dc0(pbVar10,&local_70,bVar1);\n        pbVar10 = pbVar11 + local_70;\n      }\n      else {\n        local_70 = 1;\n      }\n      pbVar11 = pbVar10 + 1;\n      if ((ulong)(*(long *)(*(long *)(param_1 + 0xa0) + -0x10) -\n                  *(long *)(*(long *)(param_1 + 0xa0) + -0x18) >> 5) <= uVar3) {\n        uVar3 = 0;\n      }\n      if ((char)*pbVar10 < '\0') {\n        FUN_001a3dc0(pbVar11,&local_70);\n        pbVar11 = pbVar10 + local_70;\n        pbVar10 = pbVar11 + 1;\n        if ((char)*pbVar11 < '\0') goto LAB_0017374d;\nLAB_00173644:\n        local_70 = 1;\n      }\n      else {\n        pbVar10 = pbVar10 + 2;\n        local_70 = 1;\n        if (-1 < (char)*pbVar11) goto LAB_00173644;\nLAB_0017374d:\n        FUN_001a3dc0(pbVar10,&local_70);\n        pbVar10 = pbVar11 + local_70;\n      }\n      lVar12 = *(long *)(param_1 + 0xb8);\n      if (iVar5 != (int)(*(long *)(lVar12 + -0x10) - *(long *)(lVar12 + -0x18) >> 3) * -0x33333333)\n      {\n                    \n        FUN_0017c650("../../gold/dwarf_reader.cc",0x6e4,"read_header_tables");\n      }\n      local_68 = (long ****)CONCAT44(local_68._4_4_,(int)uVar3);\n      local_60 = local_50;\n      sVar4 = strlen((char *)__s);\n      FUN_001665c0(&local_60,__s,__s + sVar4);\n                    \n      FUN_00172000(lVar12 + -0x18,&local_68);\n      if (local_60 != local_50) {\n        FUN_002dac70();\n      }\n      iVar5 = iVar5 + 1;\n      __s = pbVar10;\n    } while (*pbVar10 != 0);\n  }" ({ "{") (expression_statement "iVar5 = 1;" (assignment_expression "iVar5 = 1" (identifier "iVar5") (= "=") (number_literal "1")) (; ";")) (expression_statement "__s = pbVar10;" (assignment_expression "__s = pbVar10" (identifier "__s") (= "=") (identifier "pbVar10")) (; ";")) (do_statement "do {\n      sVar4 = strlen((char *)__s);\n      pbVar11 = __s + sVar4 + 1;\n      bVar1 = *pbVar11;\n      uVar3 = (ulong)bVar1;\n      pbVar10 = pbVar11 + 1;\n      if ((char)bVar1 < '\0') {\n        uVar3 = FUN_001a3dc0(pbVar10,&local_70,bVar1);\n        pbVar10 = pbVar11 + local_70;\n      }\n      else {\n        local_70 = 1;\n      }\n      pbVar11 = pbVar10 + 1;\n      if ((ulong)(*(long *)(*(long *)(param_1 + 0xa0) + -0x10) -\n                  *(long *)(*(long *)(param_1 + 0xa0) + -0x18) >> 5) <= uVar3) {\n        uVar3 = 0;\n      }\n      if ((char)*pbVar10 < '\0') {\n        FUN_001a3dc0(pbVar11,&local_70);\n        pbVar11 = pbVar10 + local_70;\n        pbVar10 = pbVar11 + 1;\n        if ((char)*pbVar11 < '\0') goto LAB_0017374d;\nLAB_00173644:\n        local_70 = 1;\n      }\n      else {\n        pbVar10 = pbVar10 + 2;\n        local_70 = 1;\n        if (-1 < (char)*pbVar11) goto LAB_00173644;\nLAB_0017374d:\n        FUN_001a3dc0(pbVar10,&local_70);\n        pbVar10 = pbVar11 + local_70;\n      }\n      lVar12 = *(long *)(param_1 + 0xb8);\n      if (iVar5 != (int)(*(long *)(lVar12 + -0x10) - *(long *)(lVar12 + -0x18) >> 3) * -0x33333333)\n      {\n                    \n        FUN_0017c650("../../gold/dwarf_reader.cc",0x6e4,"read_header_tables");\n      }\n      local_68 = (long ****)CONCAT44(local_68._4_4_,(int)uVar3);\n      local_60 = local_50;\n      sVar4 = strlen((char *)__s);\n      FUN_001665c0(&local_60,__s,__s + sVar4);\n                    \n      FUN_00172000(lVar12 + -0x18,&local_68);\n      if (local_60 != local_50) {\n        FUN_002dac70();\n      }\n      iVar5 = iVar5 + 1;\n      __s = pbVar10;\n    } while (*pbVar10 != 0);" (do "do") (compound_statement "{\n      sVar4 = strlen((char *)__s);\n      pbVar11 = __s + sVar4 + 1;\n      bVar1 = *pbVar11;\n      uVar3 = (ulong)bVar1;\n      pbVar10 = pbVar11 + 1;\n      if ((char)bVar1 < '\0') {\n        uVar3 = FUN_001a3dc0(pbVar10,&local_70,bVar1);\n        pbVar10 = pbVar11 + local_70;\n      }\n      else {\n        local_70 = 1;\n      }\n      pbVar11 = pbVar10 + 1;\n      if ((ulong)(*(long *)(*(long *)(param_1 + 0xa0) + -0x10) -\n                  *(long *)(*(long *)(param_1 + 0xa0) + -0x18) >> 5) <= uVar3) {\n        uVar3 = 0;\n      }\n      if ((char)*pbVar10 < '\0') {\n        FUN_001a3dc0(pbVar11,&local_70);\n        pbVar11 = pbVar10 + local_70;\n        pbVar10 = pbVar11 + 1;\n        if ((char)*pbVar11 < '\0') goto LAB_0017374d;\nLAB_00173644:\n        local_70 = 1;\n      }\n      else {\n        pbVar10 = pbVar10 + 2;\n        local_70 = 1;\n        if (-1 < (char)*pbVar11) goto LAB_00173644;\nLAB_0017374d:\n        FUN_001a3dc0(pbVar10,&local_70);\n        pbVar10 = pbVar11 + local_70;\n      }\n      lVar12 = *(long *)(param_1 + 0xb8);\n      if (iVar5 != (int)(*(long *)(lVar12 + -0x10) - *(long *)(lVar12 + -0x18) >> 3) * -0x33333333)\n      {\n                    \n        FUN_0017c650("../../gold/dwarf_reader.cc",0x6e4,"read_header_tables");\n      }\n      local_68 = (long ****)CONCAT44(local_68._4_4_,(int)uVar3);\n      local_60 = local_50;\n      sVar4 = strlen((char *)__s);\n      FUN_001665c0(&local_60,__s,__s + sVar4);\n                    \n      FUN_00172000(lVar12 + -0x18,&local_68);\n      if (local_60 != local_50) {\n        FUN_002dac70();\n      }\n      iVar5 = iVar5 + 1;\n      __s = pbVar10;\n    }" ({ "{") (expression_statement "sVar4 = strlen((char *)__s);" (assignment_expression "sVar4 = strlen((char *)__s)" (identifier "sVar4") (= "=") (call_expression "strlen((char *)__s)" (identifier "strlen") (argument_list "((char *)__s)" (( "(") (cast_expression "(char *)__s" (( "(") (type_descriptor "char *" (primitive_type "char") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "__s")) () ")")))) (; ";")) (expression_statement "pbVar11 = __s + sVar4 + 1;" (assignment_expression "pbVar11 = __s + sVar4 + 1" (identifier "pbVar11") (= "=") (binary_expression "__s + sVar4 + 1" (binary_expression "__s + sVar4" (identifier "__s") (+ "+") (identifier "sVar4")) (+ "+") (number_literal "1"))) (; ";")) (expression_statement "bVar1 = *pbVar11;" (assignment_expression "bVar1 = *pbVar11" (identifier "bVar1") (= "=") (pointer_expression "*pbVar11" (* "*") (identifier "pbVar11"))) (; ";")) (expression_statement "uVar3 = (ulong)bVar1;" (assignment_expression "uVar3 = (ulong)bVar1" (identifier "uVar3") (= "=") (cast_expression "(ulong)bVar1" (( "(") (type_descriptor "ulong" (type_identifier "ulong")) () ")") (identifier "bVar1"))) (; ";")) (expression_statement "pbVar10 = pbVar11 + 1;" (assignment_expression "pbVar10 = pbVar11 + 1" (identifier "pbVar10") (= "=") (binary_expression "pbVar11 + 1" (identifier "pbVar11") (+ "+") (number_literal "1"))) (; ";")) (if_statement "if ((char)bVar1 < '\0') {\n        uVar3 = FUN_001a3dc0(pbVar10,&local_70,bVar1);\n        pbVar10 = pbVar11 + local_70;\n      }\n      else {\n        local_70 = 1;\n      }" (if "if") (parenthesized_expression "((char)bVar1 < '\0')" (( "(") (binary_expression "(char)bVar1 < '\0'" (cast_expression "(char)bVar1" (( "(") (type_descriptor "char" (primitive_type "char")) () ")") (identifier "bVar1")) (< "<") (char_literal "'\0'" (' "'") (escape_sequence "\0") (' "'"))) () ")")) (compound_statement "{\n        uVar3 = FUN_001a3dc0(pbVar10,&local_70,bVar1);\n        pbVar10 = pbVar11 + local_70;\n      }" ({ "{") (expression_statement "uVar3 = FUN_001a3dc0(pbVar10,&local_70,bVar1);" (assignment_expression "uVar3 = FUN_001a3dc0(pbVar10,&local_70,bVar1)" (identifier "uVar3") (= "=") (call_expression "FUN_001a3dc0(pbVar10,&local_70,bVar1)" (identifier "FUN_001a3dc0") (argument_list "(pbVar10,&local_70,bVar1)" (( "(") (identifier "pbVar10") (, ",") (pointer_expression "&local_70" (& "&") (identifier "local_70")) (, ",") (identifier "bVar1") () ")")))) (; ";")) (expression_statement "pbVar10 = pbVar11 + local_70;" (assignment_expression "pbVar10 = pbVar11 + local_70" (identifier "pbVar10") (= "=") (binary_expression "pbVar11 + local_70" (identifier "pbVar11") (+ "+") (identifier "local_70"))) (; ";")) (} "}")) (else_clause "else {\n        local_70 = 1;\n      }" (else "else") (compound_statement "{\n        local_70 = 1;\n      }" ({ "{") (expression_statement "local_70 = 1;" (assignment_expression "local_70 = 1" (identifier "local_70") (= "=") (number_literal "1")) (; ";")) (} "}")))) (expression_statement "pbVar11 = pbVar10 + 1;" (assignment_expression "pbVar11 = pbVar10 + 1" (identifier "pbVar11") (= "=") (binary_expression "pbVar10 + 1" (identifier "pbVar10") (+ "+") (number_literal "1"))) (; ";")) (if_statement "if ((ulong)(*(long *)(*(long *)(param_1 + 0xa0) + -0x10) -\n                  *(long *)(*(long *)(param_1 + 0xa0) + -0x18) >> 5) <= uVar3) {\n        uVar3 = 0;\n      }" (if "if") (parenthesized_expression "((ulong)(*(long *)(*(long *)(param_1 + 0xa0) + -0x10) -\n                  *(long *)(*(long *)(param_1 + 0xa0) + -0x18) >> 5) <= uVar3)" (( "(") (binary_expression "(ulong)(*(long *)(*(long *)(param_1 + 0xa0) + -0x10) -\n                  *(long *)(*(long *)(param_1 + 0xa0) + -0x18) >> 5) <= uVar3" (call_expression "(ulong)(*(long *)(*(long *)(param_1 + 0xa0) + -0x10) -\n                  *(long *)(*(long *)(param_1 + 0xa0) + -0x18) >> 5)" (parenthesized_expression "(ulong)" (( "(") (identifier "ulong") () ")")) (argument_list "(*(long *)(*(long *)(param_1 + 0xa0) + -0x10) -\n                  *(long *)(*(long *)(param_1 + 0xa0) + -0x18) >> 5)" (( "(") (binary_expression "*(long *)(*(long *)(param_1 + 0xa0) + -0x10) -\n                  *(long *)(*(long *)(param_1 + 0xa0) + -0x18) >> 5" (binary_expression "*(long *)(*(long *)(param_1 + 0xa0) + -0x10) -\n                  *(long *)(*(long *)(param_1 + 0xa0) + -0x18)" (pointer_expression "*(long *)(*(long *)(param_1 + 0xa0) + -0x10)" (* "*") (cast_expression "(long *)(*(long *)(param_1 + 0xa0) + -0x10)" (( "(") (type_descriptor "long *" (sized_type_specifier "long" (long "long")) (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(*(long *)(param_1 + 0xa0) + -0x10)" (( "(") (binary_expression "*(long *)(param_1 + 0xa0) + -0x10" (pointer_expression "*(long *)(param_1 + 0xa0)" (* "*") (cast_expression "(long *)(param_1 + 0xa0)" (( "(") (type_descriptor "long *" (sized_type_specifier "long" (long "long")) (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_1 + 0xa0)" (( "(") (binary_expression "param_1 + 0xa0" (identifier "param_1") (+ "+") (number_literal "0xa0")) () ")")))) (+ "+") (number_literal "-0x10")) () ")")))) (- "-") (pointer_expression "*(long *)(*(long *)(param_1 + 0xa0) + -0x18)" (* "*") (cast_expression "(long *)(*(long *)(param_1 + 0xa0) + -0x18)" (( "(") (type_descriptor "long *" (sized_type_specifier "long" (long "long")) (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(*(long *)(param_1 + 0xa0) + -0x18)" (( "(") (binary_expression "*(long *)(param_1 + 0xa0) + -0x18" (pointer_expression "*(long *)(param_1 + 0xa0)" (* "*") (cast_expression "(long *)(param_1 + 0xa0)" (( "(") (type_descriptor "long *" (sized_type_specifier "long" (long "long")) (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_1 + 0xa0)" (( "(") (binary_expression "param_1 + 0xa0" (identifier "param_1") (+ "+") (number_literal "0xa0")) () ")")))) (+ "+") (number_literal "-0x18")) () ")"))))) (>> ">>") (number_literal "5")) () ")"))) (<= "<=") (identifier "uVar3")) () ")")) (compound_statement "{\n        uVar3 = 0;\n      }" ({ "{") (expression_statement "uVar3 = 0;" (assignment_expression "uVar3 = 0" (identifier "uVar3") (= "=") (number_literal "0")) (; ";")) (} "}"))) (if_statement "if ((char)*pbVar10 < '\0') {\n        FUN_001a3dc0(pbVar11,&local_70);\n        pbVar11 = pbVar10 + local_70;\n        pbVar10 = pbVar11 + 1;\n        if ((char)*pbVar11 < '\0') goto LAB_0017374d;\nLAB_00173644:\n        local_70 = 1;\n      }\n      else {\n        pbVar10 = pbVar10 + 2;\n        local_70 = 1;\n        if (-1 < (char)*pbVar11) goto LAB_00173644;\nLAB_0017374d:\n        FUN_001a3dc0(pbVar10,&local_70);\n        pbVar10 = pbVar11 + local_70;\n      }" (if "if") (parenthesized_expression "((char)*pbVar10 < '\0')" (( "(") (binary_expression "(char)*pbVar10 < '\0'" (cast_expression "(char)*pbVar10" (( "(") (type_descriptor "char" (primitive_type "char")) () ")") (pointer_expression "*pbVar10" (* "*") (identifier "pbVar10"))) (< "<") (char_literal "'\0'" (' "'") (escape_sequence "\0") (' "'"))) () ")")) (compound_statement "{\n        FUN_001a3dc0(pbVar11,&local_70);\n        pbVar11 = pbVar10 + local_70;\n        pbVar10 = pbVar11 + 1;\n        if ((char)*pbVar11 < '\0') goto LAB_0017374d;\nLAB_00173644:\n        local_70 = 1;\n      }" ({ "{") (expression_statement "FUN_001a3dc0(pbVar11,&local_70);" (call_expression "FUN_001a3dc0(pbVar11,&local_70)" (identifier "FUN_001a3dc0") (argument_list "(pbVar11,&local_70)" (( "(") (identifier "pbVar11") (, ",") (pointer_expression "&local_70" (& "&") (identifier "local_70")) () ")"))) (; ";")) (expression_statement "pbVar11 = pbVar10 + local_70;" (assignment_expression "pbVar11 = pbVar10 + local_70" (identifier "pbVar11") (= "=") (binary_expression "pbVar10 + local_70" (identifier "pbVar10") (+ "+") (identifier "local_70"))) (; ";")) (expression_statement "pbVar10 = pbVar11 + 1;" (assignment_expression "pbVar10 = pbVar11 + 1" (identifier "pbVar10") (= "=") (binary_expression "pbVar11 + 1" (identifier "pbVar11") (+ "+") (number_literal "1"))) (; ";")) (if_statement "if ((char)*pbVar11 < '\0') goto LAB_0017374d;" (if "if") (parenthesized_expression "((char)*pbVar11 < '\0')" (( "(") (binary_expression "(char)*pbVar11 < '\0'" (cast_expression "(char)*pbVar11" (( "(") (type_descriptor "char" (primitive_type "char")) () ")") (pointer_expression "*pbVar11" (* "*") (identifier "pbVar11"))) (< "<") (char_literal "'\0'" (' "'") (escape_sequence "\0") (' "'"))) () ")")) (goto_statement "goto LAB_0017374d;" (goto "goto") (statement_identifier "LAB_0017374d") (; ";"))) (labeled_statement "LAB_00173644:\n        local_70 = 1;" (statement_identifier "LAB_00173644") (: ":") (expression_statement "local_70 = 1;" (assignment_expression "local_70 = 1" (identifier "local_70") (= "=") (number_literal "1")) (; ";"))) (} "}")) (else_clause "else {\n        pbVar10 = pbVar10 + 2;\n        local_70 = 1;\n        if (-1 < (char)*pbVar11) goto LAB_00173644;\nLAB_0017374d:\n        FUN_001a3dc0(pbVar10,&local_70);\n        pbVar10 = pbVar11 + local_70;\n      }" (else "else") (compound_statement "{\n        pbVar10 = pbVar10 + 2;\n        local_70 = 1;\n        if (-1 < (char)*pbVar11) goto LAB_00173644;\nLAB_0017374d:\n        FUN_001a3dc0(pbVar10,&local_70);\n        pbVar10 = pbVar11 + local_70;\n      }" ({ "{") (expression_statement "pbVar10 = pbVar10 + 2;" (assignment_expression "pbVar10 = pbVar10 + 2" (identifier "pbVar10") (= "=") (binary_expression "pbVar10 + 2" (identifier "pbVar10") (+ "+") (number_literal "2"))) (; ";")) (expression_statement "local_70 = 1;" (assignment_expression "local_70 = 1" (identifier "local_70") (= "=") (number_literal "1")) (; ";")) (if_statement "if (-1 < (char)*pbVar11) goto LAB_00173644;" (if "if") (parenthesized_expression "(-1 < (char)*pbVar11)" (( "(") (binary_expression "-1 < (char)*pbVar11" (number_literal "-1") (< "<") (cast_expression "(char)*pbVar11" (( "(") (type_descriptor "char" (primitive_type "char")) () ")") (pointer_expression "*pbVar11" (* "*") (identifier "pbVar11")))) () ")")) (goto_statement "goto LAB_00173644;" (goto "goto") (statement_identifier "LAB_00173644") (; ";"))) (labeled_statement "LAB_0017374d:\n        FUN_001a3dc0(pbVar10,&local_70);" (statement_identifier "LAB_0017374d") (: ":") (expression_statement "FUN_001a3dc0(pbVar10,&local_70);" (call_expression "FUN_001a3dc0(pbVar10,&local_70)" (identifier "FUN_001a3dc0") (argument_list "(pbVar10,&local_70)" (( "(") (identifier "pbVar10") (, ",") (pointer_expression "&local_70" (& "&") (identifier "local_70")) () ")"))) (; ";"))) (expression_statement "pbVar10 = pbVar11 + local_70;" (assignment_expression "pbVar10 = pbVar11 + local_70" (identifier "pbVar10") (= "=") (binary_expression "pbVar11 + local_70" (identifier "pbVar11") (+ "+") (identifier "local_70"))) (; ";")) (} "}")))) (expression_statement "lVar12 = *(long *)(param_1 + 0xb8);" (assignment_expression "lVar12 = *(long *)(param_1 + 0xb8)" (identifier "lVar12") (= "=") (pointer_expression "*(long *)(param_1 + 0xb8)" (* "*") (cast_expression "(long *)(param_1 + 0xb8)" (( "(") (type_descriptor "long *" (sized_type_specifier "long" (long "long")) (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_1 + 0xb8)" (( "(") (binary_expression "param_1 + 0xb8" (identifier "param_1") (+ "+") (number_literal "0xb8")) () ")"))))) (; ";")) (if_statement "if (iVar5 != (int)(*(long *)(lVar12 + -0x10) - *(long *)(lVar12 + -0x18) >> 3) * -0x33333333)\n      {\n                    \n        FUN_0017c650("../../gold/dwarf_reader.cc",0x6e4,"read_header_tables");\n      }" (if "if") (parenthesized_expression "(iVar5 != (int)(*(long *)(lVar12 + -0x10) - *(long *)(lVar12 + -0x18) >> 3) * -0x33333333)" (( "(") (binary_expression "iVar5 != (int)(*(long *)(lVar12 + -0x10) - *(long *)(lVar12 + -0x18) >> 3) * -0x33333333" (identifier "iVar5") (!= "!=") (binary_expression "(int)(*(long *)(lVar12 + -0x10) - *(long *)(lVar12 + -0x18) >> 3) * -0x33333333" (cast_expression "(int)(*(long *)(lVar12 + -0x10) - *(long *)(lVar12 + -0x18) >> 3)" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (parenthesized_expression "(*(long *)(lVar12 + -0x10) - *(long *)(lVar12 + -0x18) >> 3)" (( "(") (binary_expression "*(long *)(lVar12 + -0x10) - *(long *)(lVar12 + -0x18) >> 3" (binary_expression "*(long *)(lVar12 + -0x10) - *(long *)(lVar12 + -0x18)" (pointer_expression "*(long *)(lVar12 + -0x10)" (* "*") (cast_expression "(long *)(lVar12 + -0x10)" (( "(") (type_descriptor "long *" (sized_type_specifier "long" (long "long")) (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(lVar12 + -0x10)" (( "(") (binary_expression "lVar12 + -0x10" (identifier "lVar12") (+ "+") (number_literal "-0x10")) () ")")))) (- "-") (pointer_expression "*(long *)(lVar12 + -0x18)" (* "*") (cast_expression "(long *)(lVar12 + -0x18)" (( "(") (type_descriptor "long *" (sized_type_specifier "long" (long "long")) (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(lVar12 + -0x18)" (( "(") (binary_expression "lVar12 + -0x18" (identifier "lVar12") (+ "+") (number_literal "-0x18")) () ")"))))) (>> ">>") (number_literal "3")) () ")"))) (* "*") (number_literal "-0x33333333"))) () ")")) (compound_statement "{\n                    \n        FUN_0017c650("../../gold/dwarf_reader.cc",0x6e4,"read_header_tables");\n      }" ({ "{") (expression_statement "FUN_0017c650("../../gold/dwarf_reader.cc",0x6e4,"read_header_tables");" (call_expression "FUN_0017c650("../../gold/dwarf_reader.cc",0x6e4,"read_header_tables")" (identifier "FUN_0017c650") (argument_list "("../../gold/dwarf_reader.cc",0x6e4,"read_header_tables")" (( "(") (string_literal ""../../gold/dwarf_reader.cc"" (" """) (string_content "../../gold/dwarf_reader.cc") (" """)) (, ",") (number_literal "0x6e4") (, ",") (string_literal ""read_header_tables"" (" """) (string_content "read_header_tables") (" """)) () ")"))) (; ";")) (} "}"))) (expression_statement "local_68 = (long ****)CONCAT44(local_68._4_4_,(int)uVar3);" (assignment_expression "local_68 = (long ****)CONCAT44(local_68._4_4_,(int)uVar3)" (identifier "local_68") (= "=") (cast_expression "(long ****)CONCAT44(local_68._4_4_,(int)uVar3)" (( "(") (type_descriptor "long ****" (sized_type_specifier "long" (long "long")) (abstract_pointer_declarator "****" (* "*") (abstract_pointer_declarator "***" (* "*") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))))) () ")") (call_expression "CONCAT44(local_68._4_4_,(int)uVar3)" (identifier "CONCAT44") (argument_list "(local_68._4_4_,(int)uVar3)" (( "(") (field_expression "local_68._4_4_" (identifier "local_68") (. ".") (field_identifier "_4_4_")) (, ",") (cast_expression "(int)uVar3" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "uVar3")) () ")"))))) (; ";")) (expression_statement "local_60 = local_50;" (assignment_expression "local_60 = local_50" (identifier "local_60") (= "=") (identifier "local_50")) (; ";")) (expression_statement "sVar4 = strlen((char *)__s);" (assignment_expression "sVar4 = strlen((char *)__s)" (identifier "sVar4") (= "=") (call_expression "strlen((char *)__s)" (identifier "strlen") (argument_list "((char *)__s)" (( "(") (cast_expression "(char *)__s" (( "(") (type_descriptor "char *" (primitive_type "char") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "__s")) () ")")))) (; ";")) (expression_statement "FUN_001665c0(&local_60,__s,__s + sVar4);" (call_expression "FUN_001665c0(&local_60,__s,__s + sVar4)" (identifier "FUN_001665c0") (argument_list "(&local_60,__s,__s + sVar4)" (( "(") (pointer_expression "&local_60" (& "&") (identifier "local_60")) (, ",") (identifier "__s") (, ",") (binary_expression "__s + sVar4" (identifier "__s") (+ "+") (identifier "sVar4")) () ")"))) (; ";")) (expression_statement "FUN_00172000(lVar12 + -0x18,&local_68);" (call_expression "FUN_00172000(lVar12 + -0x18,&local_68)" (identifier "FUN_00172000") (argument_list "(lVar12 + -0x18,&local_68)" (( "(") (binary_expression "lVar12 + -0x18" (identifier "lVar12") (+ "+") (number_literal "-0x18")) (, ",") (pointer_expression "&local_68" (& "&") (identifier "local_68")) () ")"))) (; ";")) (if_statement "if (local_60 != local_50) {\n        FUN_002dac70();\n      }" (if "if") (parenthesized_expression "(local_60 != local_50)" (( "(") (binary_expression "local_60 != local_50" (identifier "local_60") (!= "!=") (identifier "local_50")) () ")")) (compound_statement "{\n        FUN_002dac70();\n      }" ({ "{") (expression_statement "FUN_002dac70();" (call_expression "FUN_002dac70()" (identifier "FUN_002dac70") (argument_list "()" (( "(") () ")"))) (; ";")) (} "}"))) (expression_statement "iVar5 = iVar5 + 1;" (assignment_expression "iVar5 = iVar5 + 1" (identifier "iVar5") (= "=") (binary_expression "iVar5 + 1" (identifier "iVar5") (+ "+") (number_literal "1"))) (; ";")) (expression_statement "__s = pbVar10;" (assignment_expression "__s = pbVar10" (identifier "__s") (= "=") (identifier "pbVar10")) (; ";")) (} "}")) (while "while") (parenthesized_expression "(*pbVar10 != 0)" (( "(") (binary_expression "*pbVar10 != 0" (pointer_expression "*pbVar10" (* "*") (identifier "pbVar10")) (!= "!=") (number_literal "0")) () ")")) (; ";")) (} "}"))) (return_statement "return pbVar10 + 1;" (return "return") (binary_expression "pbVar10 + 1" (identifier "pbVar10") (+ "+") (number_literal "1")) (; ";")) (} "}")))

/* DWARF original prototype: uchar * read_header_tables(Sized_dwarf_line_info<64,_false> * this,
   uchar * lineptr) */

uchar * __thiscall
gold::Sized_dwarf_line_info<64,_false>::read_header_tables
          (Sized_dwarf_line_info<64,_false> *this,uchar *var_16)

{
  type_1 pvVar1;
  type_1 pbVar2;
  type_1 var_29;
  type_2 _Var4;
  type_3 var_12;
  size_t var_17;
  type_4 bVar7;
  int var_5;
  type_5 var_19;
  type_6 *var_9;
  type_3 uVar11;
  type_4 *var_27;
  type_4 *var_24;
  type_1 var_18;
  type_4 *var_23;
  size_t var_26;
  type_6 *var_8;
  var_22<var_2,_std::var_21<var_2>,_std::var_1<var_2>var_3> var_4;
  
  var_18 = (this->directories_).
            super__Vector_base<var_20::vector<var_20::__cxx11::var_22<var_2,_std::var_21<var_2>,_std::var_1<var_2>var_3>,_std::var_1<var_20::__cxx11::var_22<var_2,_std::var_21<var_2>,_std::var_1<var_2>var_3>var_3>var_3>,_std::var_1<var_20::vector<var_20::__cxx11::var_22<var_2,_std::var_21<var_2>,_std::var_1<var_2>var_3>,_std::var_1<var_20::__cxx11::var_22<var_2,_std::var_21<var_2>,_std::var_1<var_2>var_3>var_3>var_3>var_3>var_3>
            ._M_impl._M_finish;
  pvVar1 = (this->directories_).
           super__Vector_base<var_20::vector<var_20::__cxx11::var_22<var_2,_std::var_21<var_2>,_std::var_1<var_2>var_3>,_std::var_1<var_20::__cxx11::var_22<var_2,_std::var_21<var_2>,_std::var_1<var_2>var_3>var_3>var_3>,_std::var_1<var_20::vector<var_20::__cxx11::var_22<var_2,_std::var_21<var_2>,_std::var_1<var_2>var_3>,_std::var_1<var_20::__cxx11::var_22<var_2,_std::var_21<var_2>,_std::var_1<var_2>var_3>var_3>var_3>var_3>var_3>
           ._M_impl._M_start;
  var_5 = this->current_header_index_ + 1;
  this->current_header_index_ = var_5;
  if (var_5 != (int)((long)var_18 - (long)pvVar1 >> 3) * -0x55555555) {
                    /* WARNING: Subroutine does not return */
    var_6("../../gold/dwarf_reader.cc",0x6b6,"read_header_tables");
  }
  if (var_5 != (int)((long)(this->files_).
                           super__Vector_base<var_20::vector<var_20::pair<int,_std::__cxx11::var_22<var_2,_std::var_21<var_2>,_std::var_1<var_2>var_3>var_3>,_std::var_1<var_20::pair<int,_std::__cxx11::var_22<var_2,_std::var_21<var_2>,_std::var_1<var_2>var_3>var_3>var_3>var_3>,_std::var_1<var_20::vector<var_20::pair<int,_std::__cxx11::var_22<var_2,_std::var_21<var_2>,_std::var_1<var_2>var_3>var_3>,_std::var_1<var_20::pair<int,_std::__cxx11::var_22<var_2,_std::var_21<var_2>,_std::var_1<var_2>var_3>var_3>var_3>var_3>var_3>var_3>
                           ._M_impl._M_finish -
                     (long)(this->files_).
                           super__Vector_base<var_20::vector<var_20::pair<int,_std::__cxx11::var_22<var_2,_std::var_21<var_2>,_std::var_1<var_2>var_3>var_3>,_std::var_1<var_20::pair<int,_std::__cxx11::var_22<var_2,_std::var_21<var_2>,_std::var_1<var_2>var_3>var_3>var_3>var_3>,_std::var_1<var_20::vector<var_20::pair<int,_std::__cxx11::var_22<var_2,_std::var_21<var_2>,_std::var_1<var_2>var_3>var_3>,_std::var_1<var_20::pair<int,_std::__cxx11::var_22<var_2,_std::var_21<var_2>,_std::var_1<var_2>var_3>var_3>var_3>var_3>var_3>var_3>
                           ._M_impl._M_start >> 3) * -0x55555555) {
                    /* WARNING: Subroutine does not return */
    var_6("../../gold/dwarf_reader.cc",0x6b8,"read_header_tables");
  }
  var_8 = (type_6 *)0x0;
  var_4._M_dataplus._M_p = (type_1)0x0;
  var_4._M_string_length = 0;
  var_8 = (type_6 *)var_7(0x20);
  ((long *)var_8)[1] = 0;
  var_4._M_dataplus._M_p = (type_1)((long *)var_8 + 4);
  *var_8 = (type_6)((long *)var_8 + 2);
  *(type_7 *)((long *)var_8 + 2) = 0;
  var_4._M_string_length = (type_6)var_4._M_dataplus._M_p;
                    /* try { // try from 00173433 to 00173437 has its CatchHandler @ 00173804 */
  var_20::
  vector<var_20::vector<var_20::__cxx11::var_22<var_2,_std::var_21<var_2>,_std::var_1<var_2>var_3>,_std::var_1<var_20::__cxx11::var_22<var_2,_std::var_21<var_2>,_std::var_1<var_2>var_3>var_3>var_3>,_std::var_1<var_20::vector<var_20::__cxx11::var_22<var_2,_std::var_21<var_2>,_std::var_1<var_2>var_3>,_std::var_1<var_20::__cxx11::var_22<var_2,_std::var_21<var_2>,_std::var_1<var_2>var_3>var_3>var_3>var_3>var_3>
  ::
  emplace_back<var_20::vector<var_20::__cxx11::var_22<var_2,_std::var_21<var_2>,_std::var_1<var_2>var_3>,_std::var_1<var_20::__cxx11::var_22<var_2,_std::var_21<var_2>,_std::var_1<var_2>var_3>var_3>var_3>var_3>
            (&this->directories_,
             (vector<var_20::__cxx11::var_22<var_2,_std::var_21<var_2>,_std::var_1<var_2>var_3>,_std::var_1<var_20::__cxx11::var_22<var_2,_std::var_21<var_2>,_std::var_1<var_2>var_3>var_3>var_3>
              *)&var_8);
  _Var4._M_p = var_4._M_dataplus._M_p;
  for (var_9 = var_8; (type_6 *)_Var4._M_p != var_9;
      var_9 = (type_6 *)((long *)var_9 + 4)) {
    if ((long *)*var_9 != (long *)var_9 + 2) {
      var_10((long *)*var_9);
    }
  }
  if (var_8 != (type_6 *)0x0) {
    var_10(var_8);
  }
  var_8 = (type_6 *)0x0;
  var_4._M_dataplus._M_p = (type_1)0x0;
  var_4._M_string_length = 0;
  var_8 = (type_6 *)var_7(0x28);
  *(type_8 *)var_8 = 0;
  var_4._M_dataplus._M_p = (type_1)(var_8 + 5);
  ((anon_union_16_2_edb7204a_for_basic_string<var_2,_std::var_21<var_2>,_std::var_1<var_2>var_3>var_11
    *)(var_8 + 1))->_M_allocated_capacity = (type_6)(var_8 + 3);
  var_8[2] = 0;
  *(type_7 *)(var_8 + 3) = 0;
  var_4._M_string_length = (type_6)var_4._M_dataplus._M_p;
                    /* try { // try from 001734d9 to 001734dd has its CatchHandler @ 001737d4 */
  var_20::
  vector<var_20::vector<var_20::pair<int,_std::__cxx11::var_22<var_2,_std::var_21<var_2>,_std::var_1<var_2>var_3>var_3>,_std::var_1<var_20::pair<int,_std::__cxx11::var_22<var_2,_std::var_21<var_2>,_std::var_1<var_2>var_3>var_3>var_3>var_3>,_std::var_1<var_20::vector<var_20::pair<int,_std::__cxx11::var_22<var_2,_std::var_21<var_2>,_std::var_1<var_2>var_3>var_3>,_std::var_1<var_20::pair<int,_std::__cxx11::var_22<var_2,_std::var_21<var_2>,_std::var_1<var_2>var_3>var_3>var_3>var_3>var_3>var_3>
  ::
  emplace_back<var_20::vector<var_20::pair<int,_std::__cxx11::var_22<var_2,_std::var_21<var_2>,_std::var_1<var_2>var_3>var_3>,_std::var_1<var_20::pair<int,_std::__cxx11::var_22<var_2,_std::var_21<var_2>,_std::var_1<var_2>var_3>var_3>var_3>var_3>var_3>
            (&this->files_,
             (vector<var_20::pair<int,_std::__cxx11::var_22<var_2,_std::var_21<var_2>,_std::var_1<var_2>var_3>var_3>,_std::var_1<var_20::pair<int,_std::__cxx11::var_22<var_2,_std::var_21<var_2>,_std::var_1<var_2>var_3>var_3>var_3>var_3>
              *)&var_8);
  _Var4._M_p = var_4._M_dataplus._M_p;
  for (var_9 = var_8; (type_6 *)_Var4._M_p != var_9; var_9 = var_9 + 5) {
    if ((type_6 *)
        ((anon_union_16_2_edb7204a_for_basic_string<var_2,_std::var_21<var_2>,_std::var_1<var_2>var_3>var_11
          *)(var_9 + 1))->_M_allocated_capacity != var_9 + 3) {
      var_10((type_8 *)
                      ((anon_union_16_2_edb7204a_for_basic_string<var_2,_std::var_21<var_2>,_std::var_1<var_2>var_3>var_11
                        *)(var_9 + 1))->_M_allocated_capacity);
    }
  }
  if (var_8 != (type_6 *)0x0) {
    var_10(var_8);
  }
  if (*var_16 != '\0') {
    var_18 = (this->directories_).
              super__Vector_base<var_20::vector<var_20::__cxx11::var_22<var_2,_std::var_21<var_2>,_std::var_1<var_2>var_3>,_std::var_1<var_20::__cxx11::var_22<var_2,_std::var_21<var_2>,_std::var_1<var_2>var_3>var_3>var_3>,_std::var_1<var_20::vector<var_20::__cxx11::var_22<var_2,_std::var_21<var_2>,_std::var_1<var_2>var_3>,_std::var_1<var_20::__cxx11::var_22<var_2,_std::var_21<var_2>,_std::var_1<var_2>var_3>var_3>var_3>var_3>var_3>
              ._M_impl._M_finish;
    var_12 = (long)var_18[-1].
                  super__Vector_base<var_20::__cxx11::var_22<var_2,_std::var_21<var_2>,_std::var_1<var_2>var_3>,_std::var_1<var_20::__cxx11::var_22<var_2,_std::var_21<var_2>,_std::var_1<var_2>var_3>var_3>var_3>
                  ._M_impl._M_finish -
            (long)var_18[-1].
                  super__Vector_base<var_20::__cxx11::var_22<var_2,_std::var_21<var_2>,_std::var_1<var_2>var_3>,_std::var_1<var_20::__cxx11::var_22<var_2,_std::var_21<var_2>,_std::var_1<var_2>var_3>var_3>var_3>
                  ._M_impl._M_start >> 5;
    uVar11 = var_12 & 0xffffffff;
    if ((int)var_12 == 1) {
      do {
        var_8 = &var_4._M_string_length;
        var_17 = var_13((char *)var_16);
        std::__cxx11::var_22<var_2,_std::var_21<var_2>,_std::var_1<var_2>var_3>::
        var_14<var_15*>
                  ((var_22<var_2,_std::var_21<var_2>,_std::var_1<var_2>var_3> *)&var_8,
                   var_16,var_16 + var_17);
                    /* try { // try from 00173584 to 00173588 has its CatchHandler @ 001737cf */
        var_20::
        vector<var_20::__cxx11::var_22<var_2,_std::var_21<var_2>,_std::var_1<var_2>var_3>,_std::var_1<var_20::__cxx11::var_22<var_2,_std::var_21<var_2>,_std::var_1<var_2>var_3>var_3>var_3>
        ::
        emplace_back<var_20::__cxx11::var_22<var_2,_std::var_21<var_2>,_std::var_1<var_2>var_3>var_3>
                  (var_18 + -1,
                   (var_22<var_2,_std::var_21<var_2>,_std::var_1<var_2>var_3> *)&var_8);
        if (var_8 != &var_4._M_string_length) {
          var_10(var_8);
        }
        var_18 = (this->directories_).
                  super__Vector_base<var_20::vector<var_20::__cxx11::var_22<var_2,_std::var_21<var_2>,_std::var_1<var_2>var_3>,_std::var_1<var_20::__cxx11::var_22<var_2,_std::var_21<var_2>,_std::var_1<var_2>var_3>var_3>var_3>,_std::var_1<var_20::vector<var_20::__cxx11::var_22<var_2,_std::var_21<var_2>,_std::var_1<var_2>var_3>,_std::var_1<var_20::__cxx11::var_22<var_2,_std::var_21<var_2>,_std::var_1<var_2>var_3>var_3>var_3>var_3>var_3>
                  ._M_impl._M_finish;
        var_19 = (int)uVar11 + 1;
        uVar11 = (type_3)var_19;
        pbVar2 = var_18[-1].
                 super__Vector_base<var_20::__cxx11::var_22<var_2,_std::var_21<var_2>,_std::var_1<var_2>var_3>,_std::var_1<var_20::__cxx11::var_22<var_2,_std::var_21<var_2>,_std::var_1<var_2>var_3>var_3>var_3>
                 ._M_impl._M_finish;
        var_16 = var_16 + pbVar2[-1]._M_string_length + 1;
        if (*var_16 == '\0') goto LAB_001735b7;
      } while (var_19 == (type_5)((long)pbVar2 -
                               (long)var_18[-1].
                                     super__Vector_base<var_20::__cxx11::var_22<var_2,_std::var_21<var_2>,_std::var_1<var_2>var_3>,_std::var_1<var_20::__cxx11::var_22<var_2,_std::var_21<var_2>,_std::var_1<var_2>var_3>var_3>var_3>
                                     ._M_impl._M_start >> 5));
    }
                    /* WARNING: Subroutine does not return */
    var_6("../../gold/dwarf_reader.cc",0x6c4,"read_header_tables");
  }
LAB_001735b7:
  var_27 = var_16 + 1;
  if (var_16[1] != '\0') {
    var_5 = 1;
    var_23 = var_27;
    do {
      var_17 = var_13((char *)var_23);
      var_24 = var_23 + var_17 + 1;
      bVar7 = *var_24;
      var_12 = (type_3)bVar7;
      var_27 = var_24 + 1;
      if ((char)bVar7 < '\0') {
        var_12 = var_25(var_27,&var_26,bVar7);
        var_27 = var_24 + var_26;
      }
      else {
        var_26 = 1;
      }
      var_18 = (this->directories_).
                super__Vector_base<var_20::vector<var_20::__cxx11::var_22<var_2,_std::var_21<var_2>,_std::var_1<var_2>var_3>,_std::var_1<var_20::__cxx11::var_22<var_2,_std::var_21<var_2>,_std::var_1<var_2>var_3>var_3>var_3>,_std::var_1<var_20::vector<var_20::__cxx11::var_22<var_2,_std::var_21<var_2>,_std::var_1<var_2>var_3>,_std::var_1<var_20::__cxx11::var_22<var_2,_std::var_21<var_2>,_std::var_1<var_2>var_3>var_3>var_3>var_3>var_3>
                ._M_impl._M_finish;
      var_24 = var_27 + 1;
      if ((type_3)((long)var_18[-1].
                        super__Vector_base<var_20::__cxx11::var_22<var_2,_std::var_21<var_2>,_std::var_1<var_2>var_3>,_std::var_1<var_20::__cxx11::var_22<var_2,_std::var_21<var_2>,_std::var_1<var_2>var_3>var_3>var_3>
                        ._M_impl._M_finish -
                  (long)var_18[-1].
                        super__Vector_base<var_20::__cxx11::var_22<var_2,_std::var_21<var_2>,_std::var_1<var_2>var_3>,_std::var_1<var_20::__cxx11::var_22<var_2,_std::var_21<var_2>,_std::var_1<var_2>var_3>var_3>var_3>
                        ._M_impl._M_start >> 5) <= var_12) {
        var_12 = 0;
      }
      if ((char)*var_27 < '\0') {
        var_25(var_24,&var_26,*var_27);
        var_24 = var_27 + var_26;
        bVar7 = *var_24;
        var_27 = var_24 + 1;
        if ((char)bVar7 < '\0') goto LAB_0017374d;
LAB_00173644:
        var_26 = 1;
      }
      else {
        bVar7 = *var_24;
        var_27 = var_27 + 2;
        var_26 = 1;
        if (-1 < (char)bVar7) goto LAB_00173644;
LAB_0017374d:
        var_25(var_27,&var_26,bVar7);
        var_27 = var_24 + var_26;
      }
      var_29 = (this->files_).
               super__Vector_base<var_20::vector<var_20::pair<int,_std::__cxx11::var_22<var_2,_std::var_21<var_2>,_std::var_1<var_2>var_3>var_3>,_std::var_1<var_20::pair<int,_std::__cxx11::var_22<var_2,_std::var_21<var_2>,_std::var_1<var_2>var_3>var_3>var_3>var_3>,_std::var_1<var_20::vector<var_20::pair<int,_std::__cxx11::var_22<var_2,_std::var_21<var_2>,_std::var_1<var_2>var_3>var_3>,_std::var_1<var_20::pair<int,_std::__cxx11::var_22<var_2,_std::var_21<var_2>,_std::var_1<var_2>var_3>var_3>var_3>var_3>var_3>var_3>
               ._M_impl._M_finish;
      if (var_5 != (int)((long)var_29[-1].
                               super__Vector_base<var_20::pair<int,_std::__cxx11::var_22<var_2,_std::var_21<var_2>,_std::var_1<var_2>var_3>var_3>,_std::var_1<var_20::pair<int,_std::__cxx11::var_22<var_2,_std::var_21<var_2>,_std::var_1<var_2>var_3>var_3>var_3>var_3>
                               ._M_impl._M_finish -
                         (long)var_29[-1].
                               super__Vector_base<var_20::pair<int,_std::__cxx11::var_22<var_2,_std::var_21<var_2>,_std::var_1<var_2>var_3>var_3>,_std::var_1<var_20::pair<int,_std::__cxx11::var_22<var_2,_std::var_21<var_2>,_std::var_1<var_2>var_3>var_3>var_3>var_3>
                               ._M_impl._M_start >> 3) * -0x33333333) {
                    /* WARNING: Subroutine does not return */
        var_6("../../gold/dwarf_reader.cc",0x6e4,"read_header_tables");
      }
      var_8 = (type_6 *)var_28(var_8._4_4_,(int)var_12);
      var_4._M_dataplus._M_p = (type_1)&var_4.field_2;
      var_17 = var_13((char *)var_23);
      std::__cxx11::var_22<var_2,_std::var_21<var_2>,_std::var_1<var_2>var_3>::
      var_14<var_15*>(&var_4,var_23,var_23 + var_17);
                    /* try { // try from 001736a4 to 001736a8 has its CatchHandler @ 00173809 */
      var_20::
      vector<var_20::pair<int,_std::__cxx11::var_22<var_2,_std::var_21<var_2>,_std::var_1<var_2>var_3>var_3>,_std::var_1<var_20::pair<int,_std::__cxx11::var_22<var_2,_std::var_21<var_2>,_std::var_1<var_2>var_3>var_3>var_3>var_3>
      ::
      emplace_back<var_20::pair<int,_std::__cxx11::var_22<var_2,_std::var_21<var_2>,_std::var_1<var_2>var_3>var_3>var_3>
                (var_29 + -1,
                 (pair<int,_std::__cxx11::var_22<var_2,_std::var_21<var_2>,_std::var_1<var_2>var_3>var_3>
                  *)&var_8);
      if ((anon_union_16_2_edb7204a_for_basic_string<var_2,_std::var_21<var_2>,_std::var_1<var_2>var_3>var_11
           *)var_4._M_dataplus._M_p != &var_4.field_2) {
        var_10(var_4._M_dataplus._M_p);
      }
      var_5 = var_5 + 1;
      var_23 = var_27;
    } while (*var_27 != 0);
  }
  return var_27 + 1;
}


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

byte * MASKED(long param_1,char *param_2)

{
  byte bVar1;
  long ****pppplVar2;
  ulong uVar3;
  size_t sVar4;
  int iVar5;
  uint uVar6;
  long ****pppplVar7;
  long *****ppppplVar8;
  ulong uVar9;
  byte *pbVar10;
  byte *pbVar11;
  long lVar12;
  byte *__s;
  long local_70;
  long ****local_68;
  long ****local_60;
  long ****local_58;
  long ***local_50 [4];
  
  iVar5 = *(int *)(param_1 + 200) + 1;
  *(int *)(param_1 + 200) = iVar5;
  if (iVar5 != (int)(*(long *)(param_1 + 0xa0) - *(long *)(param_1 + 0x98) >> 3) * -0x55555555) {
                    /* WARNING: Subroutine does not return */
    FUN_0017c650("../../gold/dwarf_reader.cc",0x6b6,"read_header_tables");
  }
  if (iVar5 != (int)(*(long *)(param_1 + 0xb8) - *(long *)(param_1 + 0xb0) >> 3) * -0x55555555) {
                    /* WARNING: Subroutine does not return */
    FUN_0017c650("../../gold/dwarf_reader.cc",0x6b8,"read_header_tables");
  }
  local_68 = (long ****)0x0;
  local_60 = (long ****)0x0;
  local_58 = (long ****)0x0;
  local_68 = (long ****)FUN_002d94a0(0x20);
  local_68[1] = (long ***)0x0;
  local_60 = local_68 + 4;
  *local_68 = (long ***)(local_68 + 2);
  *(undefined1 *)(local_68 + 2) = 0;
  local_58 = local_60;
                    /* try { // try from 00173433 to 00173437 has its CatchHandler @ 00173804 */
  FUN_00171a10(param_1 + 0x98,&local_68);
  pppplVar2 = local_60;
  for (pppplVar7 = local_68; pppplVar2 != pppplVar7; pppplVar7 = pppplVar7 + 4) {
    if ((long ****)*pppplVar7 != pppplVar7 + 2) {
      FUN_002dac70();
    }
  }
  if (local_68 != (long ****)0x0) {
    FUN_002dac70(local_68);
  }
  local_68 = (long ****)0x0;
  local_60 = (long ****)0x0;
  local_58 = (long ****)0x0;
  local_68 = (long ****)FUN_002d94a0(0x28);
  *(undefined4 *)local_68 = 0;
  local_60 = (long ****)((long *****)local_68 + 5);
  ((long *****)local_68)[1] = (long ****)((long *****)local_68 + 3);
  ((long *****)local_68)[2] = (long ****)0x0;
  *(undefined1 *)((long *****)local_68 + 3) = 0;
  local_58 = local_60;
                    /* try { // try from 001734d9 to 001734dd has its CatchHandler @ 001737d4 */
  FUN_00171d10(param_1 + 0xb0,&local_68);
  pppplVar7 = local_60;
  for (ppppplVar8 = (long *****)local_68; (long *****)pppplVar7 != ppppplVar8;
      ppppplVar8 = ppppplVar8 + 5) {
    if ((long *****)ppppplVar8[1] != ppppplVar8 + 3) {
      FUN_002dac70();
    }
  }
  if ((long *****)local_68 != (long *****)0x0) {
    FUN_002dac70(local_68);
  }
  if (*param_2 != '\0') {
    lVar12 = *(long *)(param_1 + 0xa0);
    uVar3 = *(long *)(lVar12 + -0x10) - *(long *)(lVar12 + -0x18) >> 5;
    uVar9 = uVar3 & 0xffffffff;
    if ((int)uVar3 == 1) {
      do {
        local_68 = (long ****)&local_58;
        sVar4 = strlen(param_2);
        FUN_001665c0(&local_68,param_2,param_2 + sVar4);
                    /* try { // try from 00173584 to 00173588 has its CatchHandler @ 001737cf */
        FUN_0016f840(lVar12 + -0x18,&local_68);
        if ((long *****)local_68 != &local_58) {
          FUN_002dac70();
        }
        lVar12 = *(long *)(param_1 + 0xa0);
        uVar6 = (int)uVar9 + 1;
        uVar9 = (ulong)uVar6;
        param_2 = param_2 + *(long *)(*(long *)(lVar12 + -0x10) + -0x18) + 1;
        if (*param_2 == '\0') goto LAB_001735b7;
      } while (uVar6 == (uint)(*(long *)(lVar12 + -0x10) - *(long *)(lVar12 + -0x18) >> 5));
    }
                    /* WARNING: Subroutine does not return */
    FUN_0017c650("../../gold/dwarf_reader.cc",0x6c4,"read_header_tables");
  }
LAB_001735b7:
  pbVar10 = (byte *)(param_2 + 1);
  if (param_2[1] != '\0') {
    iVar5 = 1;
    __s = pbVar10;
    do {
      sVar4 = strlen((char *)__s);
      pbVar11 = __s + sVar4 + 1;
      bVar1 = *pbVar11;
      uVar3 = (ulong)bVar1;
      pbVar10 = pbVar11 + 1;
      if ((char)bVar1 < '\0') {
        uVar3 = FUN_001a3dc0(pbVar10,&local_70,bVar1);
        pbVar10 = pbVar11 + local_70;
      }
      else {
        local_70 = 1;
      }
      pbVar11 = pbVar10 + 1;
      if ((ulong)(*(long *)(*(long *)(param_1 + 0xa0) + -0x10) -
                  *(long *)(*(long *)(param_1 + 0xa0) + -0x18) >> 5) <= uVar3) {
        uVar3 = 0;
      }
      if ((char)*pbVar10 < '\0') {
        FUN_001a3dc0(pbVar11,&local_70);
        pbVar11 = pbVar10 + local_70;
        pbVar10 = pbVar11 + 1;
        if ((char)*pbVar11 < '\0') goto LAB_0017374d;
LAB_00173644:
        local_70 = 1;
      }
      else {
        pbVar10 = pbVar10 + 2;
        local_70 = 1;
        if (-1 < (char)*pbVar11) goto LAB_00173644;
LAB_0017374d:
        FUN_001a3dc0(pbVar10,&local_70);
        pbVar10 = pbVar11 + local_70;
      }
      lVar12 = *(long *)(param_1 + 0xb8);
      if (iVar5 != (int)(*(long *)(lVar12 + -0x10) - *(long *)(lVar12 + -0x18) >> 3) * -0x33333333)
      {
                    /* WARNING: Subroutine does not return */
        FUN_0017c650("../../gold/dwarf_reader.cc",0x6e4,"read_header_tables");
      }
      local_68 = (long ****)CONCAT44(local_68._4_4_,(int)uVar3);
      local_60 = local_50;
      sVar4 = strlen((char *)__s);
      FUN_001665c0(&local_60,__s,__s + sVar4);
                    /* try { // try from 001736a4 to 001736a8 has its CatchHandler @ 00173809 */
      FUN_00172000(lVar12 + -0x18,&local_68);
      if (local_60 != local_50) {
        FUN_002dac70();
      }
      iVar5 = iVar5 + 1;
      __s = pbVar10;
    } while (*pbVar10 != 0);
  }
  return pbVar10 + 1;
}

