
/* WARNING: Type propagation algorithm not settling */
/* DWARF original prototype: bool read_attributes(Dwarf_die * this) */

bool __thiscall gold::Dwarf_die::read_attributes(Dwarf_die *this)

{
  byte bVar1;
  uint uVar2;
  uint uVar3;
  pointer __src;
  _func_int_varargs **pp_Var4;
  _func_int_varargs *p_Var5;
  pointer pAVar6;
  ushort uVar7;
  char cVar8;
  anon_union_4_3_97895b06_for_aux aVar10;
  uint uVar11;
  Valtype VVar12;
  Abbrev_code *pAVar13;
  anon_union_8_5_56ef6665_for_val aVar14;
  anon_union_8_5_56ef6665_for_val aVar15;
  pointer __dest;
  uint64_t uVar16;
  uint *puVar17;
  Valtype return_value;
  uchar *puVar18;
  int iVar19;
  ulong uVar20;
  uchar *attr_off;
  iterator __position;
  Dwarf_info_reader *pDVar21;
  Relobj *pRVar22;
  uchar *puVar23;
  pointer pAVar24;
  size_t __n;
  long lVar25;
  uchar *pattr;
  size_t len;
  off_t str_off;
  Attribute_value attr_value;
  int iVar9;
  
  pAVar13 = this->abbrev_code_;
  if (pAVar13 == (Abbrev_code *)0x0) {
                    /* WARNING: Subroutine does not return */
    do_gold_unreachable("../../gold/dwarf_reader.cc",0x2a9,"read_attributes");
  }
  pDVar21 = this->dwinfo_;
  lVar25 = this->die_offset_;
  puVar18 = pDVar21->buffer_ + pDVar21->cu_offset_ + lVar25;
  if (pDVar21->buffer_ + pDVar21->cu_offset_ + pDVar21->cu_length_ < puVar18 + 1) {
    Dwarf_info_reader::warn_corrupt_debug_section(pDVar21);
    return false;
  }
  if (puVar18 == (uchar *)0x0) {
    return false;
  }
  __src = (this->attributes_).
          super__Vector_base<gold::Dwarf_die::Attribute_value,_std::allocator<gold::Dwarf_die::Attribute_value>_>
          ._M_impl._M_start;
  pattr = puVar18 + this->attr_offset_;
  uVar20 = (long)(pAVar13->attributes).
                 super__Vector_base<gold::Dwarf_abbrev_table::Attribute,_std::allocator<gold::Dwarf_abbrev_table::Attribute>_>
                 ._M_impl._M_finish -
           (long)(pAVar13->attributes).
                 super__Vector_base<gold::Dwarf_abbrev_table::Attribute,_std::allocator<gold::Dwarf_abbrev_table::Attribute>_>
                 ._M_impl._M_start >> 3;
  iVar19 = (int)uVar20;
  uVar20 = uVar20 & 0xffffffff;
  if ((ulong)(((long)(this->attributes_).
                     super__Vector_base<gold::Dwarf_die::Attribute_value,_std::allocator<gold::Dwarf_die::Attribute_value>_>
                     ._M_impl._M_end_of_storage - (long)__src >> 3) * -0x5555555555555555) < uVar20)
  {
    pAVar6 = (this->attributes_).
             super__Vector_base<gold::Dwarf_die::Attribute_value,_std::allocator<gold::Dwarf_die::Attribute_value>_>
             ._M_impl._M_finish;
    __n = (long)pAVar6 - (long)__src;
    if (uVar20 == 0) {
      __dest = (pointer)0x0;
      pAVar24 = __src;
    }
    else {
      __dest = (pointer)operator_new(uVar20 * 0x18);
      pAVar24 = (this->attributes_).
                super__Vector_base<gold::Dwarf_die::Attribute_value,_std::allocator<gold::Dwarf_die::Attribute_value>_>
                ._M_impl._M_start;
    }
    if (__src != pAVar6) {
      __dest = (pointer)memmove(__dest,__src,__n);
    }
    if (pAVar24 != (pointer)0x0) {
      operator_delete(pAVar24);
    }
    (this->attributes_).
    super__Vector_base<gold::Dwarf_die::Attribute_value,_std::allocator<gold::Dwarf_die::Attribute_value>_>
    ._M_impl._M_start = __dest;
    pAVar13 = this->abbrev_code_;
    (this->attributes_).
    super__Vector_base<gold::Dwarf_die::Attribute_value,_std::allocator<gold::Dwarf_die::Attribute_value>_>
    ._M_impl._M_finish = (pointer)(__n + (long)__dest);
    (this->attributes_).
    super__Vector_base<gold::Dwarf_die::Attribute_value,_std::allocator<gold::Dwarf_die::Attribute_value>_>
    ._M_impl._M_end_of_storage = __dest + uVar20;
    if (iVar19 != 0) goto LAB_00302642;
  }
  else {
    if (iVar19 == 0) goto LAB_00302797;
LAB_00302642:
    lVar25 = 0;
    do {
      puVar17 = (uint *)((long)&((pAVar13->attributes).
                                 super__Vector_base<gold::Dwarf_abbrev_table::Attribute,_std::allocator<gold::Dwarf_abbrev_table::Attribute>_>
                                 ._M_impl._M_start)->attr + lVar25);
      uVar11 = puVar17[1];
      uVar2 = *puVar17;
      if (uVar11 == 0x16) {
        bVar1 = *pattr;
        uVar11 = (uint)bVar1;
        if ((char)bVar1 < '\0') {
          uVar16 = read_unsigned_LEB_128_x(pattr + 1,&len,bVar1);
          uVar11 = (uint)uVar16;
          pattr = pattr + len;
        }
        else {
          len = 1;
          pattr = pattr + 1;
        }
      }
      puVar23 = pattr;
      attr_off = pattr + (this->die_offset_ - (long)puVar18);
      attr_value.aux.shndx = 0;
      attr_value.attr = uVar2;
      attr_value.form = uVar11;
      if (uVar11 == 0xe) {
        pDVar21 = this->dwinfo_;
        if (pDVar21->offset_size_ == 4) {
          VVar12 = Dwarf_info_reader::read_from_pointer<32>(pDVar21,&pattr);
          str_off = (off_t)VVar12;
        }
        else {
          pp_Var4 = (pDVar21->object_->super_Object)._vptr_Object;
          p_Var5 = pp_Var4[3];
          if (p_Var5 == Relobj::is_big_endian) {
            iVar9 = (*pp_Var4[0x3a])();
            cVar8 = (char)iVar9;
          }
          else {
            iVar9 = (*p_Var5)();
            cVar8 = (char)iVar9;
          }
          str_off = *(off_t *)pattr;
          if (cVar8 != '\0') {
            str_off = (ulong)str_off >> 0x38 | (str_off & 0xff000000000000U) >> 0x28 |
                      (str_off & 0xff0000000000U) >> 0x18 | (str_off & 0xff00000000U) >> 8 |
                      (str_off & 0xff000000U) << 8 | (str_off & 0xff0000U) << 0x18 |
                      (str_off & 0xff00U) << 0x28 | str_off << 0x38;
          }
          pattr = pattr + 8;
        }
        attr_value.aux.shndx =
             Dwarf_info_reader::lookup_reloc(this->dwinfo_,(off_t)attr_off,&str_off);
        attr_value.val.refval = str_off;
        if (uVar2 != 0x31) {
          if (uVar2 < 0x32) {
            if ((uVar2 != 1) && (uVar2 == 3)) {
LAB_00302f64:
              this->string_shndx_ = (uint)attr_value.aux;
              this->name_off_ = (off_t)attr_value.val;
            }
          }
          else if ((uVar2 == 0x6e) || (uVar2 == 0x2007)) {
LAB_00302fd0:
            this->string_shndx_ = (uint)attr_value.aux;
            this->linkage_name_off_ = (off_t)attr_value.val;
          }
        }
LAB_00302750:
        __position._M_current =
             (this->attributes_).
             super__Vector_base<gold::Dwarf_die::Attribute_value,_std::allocator<gold::Dwarf_die::Attribute_value>_>
             ._M_impl._M_finish;
        if (__position._M_current !=
            (this->attributes_).
            super__Vector_base<gold::Dwarf_die::Attribute_value,_std::allocator<gold::Dwarf_die::Attribute_value>_>
            ._M_impl._M_end_of_storage) goto LAB_0030275e;
LAB_003028c0:
        std::
        vector<gold::Dwarf_die::Attribute_value,_std::allocator<gold::Dwarf_die::Attribute_value>_>
        ::_M_realloc_insert<const_gold::Dwarf_die::Attribute_value&>
                  (&this->attributes_,__position,&attr_value);
      }
      else {
        if (0xe < uVar11) {
          if (uVar11 == 0x15) {
            bVar1 = *pattr;
            aVar15.intval._1_7_ = 0;
            aVar15.uintval._0_1_ = bVar1;
            if ((char)bVar1 < '\0') {
              attr_value.val.uintval = read_unsigned_LEB_128_x(pattr + 1,&len,bVar1);
              pattr = pattr + len;
            }
            else {
              len = 1;
              pattr = pattr + 1;
              attr_value.val = aVar15;
            }
joined_r0x00303052:
            if (uVar2 != 0x31) {
              if (uVar2 < 0x32) {
LAB_00302c20:
                if ((uVar2 == 1) && (attr_value.aux.shndx == 0)) {
                  this->sibling_offset_ = (off_t)attr_value.val;
                }
                goto LAB_00302750;
              }
              if ((uVar2 != 0x6e) && (uVar2 != 0x2007)) {
joined_r0x00302ce3:
                if (uVar2 == 0x47) {
                  this->specification_ = (off_t)attr_value.val;
                }
                goto LAB_00302750;
              }
LAB_00302fb5:
              if (uVar11 == 8) {
LAB_003029eb:
                this->linkage_name_ = (char *)attr_value.val;
              }
              else {
LAB_00302fbe:
                if (uVar11 == 0xe) goto LAB_00302fd0;
              }
              goto LAB_00302750;
            }
          }
          else {
            if (0x15 < uVar11) {
              if (uVar11 != 0x19) {
                if (uVar11 < 0x1a) {
                  if (uVar11 == 0x17) {
                    pDVar21 = this->dwinfo_;
                    if (pDVar21->offset_size_ == 4) {
                      VVar12 = Dwarf_info_reader::read_from_pointer<32>(pDVar21,&pattr);
                      str_off = (off_t)VVar12;
                    }
                    else {
                      pRVar22 = pDVar21->object_;
LAB_00302fe7:
                      pp_Var4 = (pRVar22->super_Object)._vptr_Object;
                      p_Var5 = pp_Var4[3];
                      if (p_Var5 == Relobj::is_big_endian) {
                        iVar9 = (*pp_Var4[0x3a])();
                        cVar8 = (char)iVar9;
                      }
                      else {
                        iVar9 = (*p_Var5)();
                        cVar8 = (char)iVar9;
                      }
                      str_off = *(off_t *)pattr;
                      if (cVar8 != '\0') {
                        str_off = (ulong)str_off >> 0x38 | (str_off & 0xff000000000000U) >> 0x28 |
                                  (str_off & 0xff0000000000U) >> 0x18 |
                                  (str_off & 0xff00000000U) >> 8 | (str_off & 0xff000000U) << 8 |
                                  (str_off & 0xff0000U) << 0x18 | (str_off & 0xff00U) << 0x28 |
                                  str_off << 0x38;
                      }
                      pattr = pattr + 8;
                    }
LAB_00303035:
                    attr_value.aux.shndx =
                         Dwarf_info_reader::lookup_reloc(this->dwinfo_,(off_t)attr_off,&str_off);
                    attr_value.val.refval = str_off;
                    goto joined_r0x00303052;
                  }
                  if (uVar11 != 0x18) {
                    return false;
                  }
LAB_00302a09:
                  bVar1 = *pattr;
                  aVar10.shndx._1_3_ = 0;
                  aVar10.shndx._0_1_ = bVar1;
                  aVar15.stringval = (char *)(pattr + 1);
                  if ((char)bVar1 < '\0') {
                    uVar16 = read_unsigned_LEB_128_x(aVar15.blockval,&len,bVar1);
                    aVar10.shndx = (uint)uVar16;
                    aVar15.stringval = (char *)(pattr + len);
                  }
                  else {
                    len = 1;
                  }
                  pattr = pattr + aVar10.shndx + len;
                  attr_value.val = aVar15;
                  attr_value.aux = aVar10;
                }
                else {
                  if (uVar11 == 0x20) {
                    pp_Var4 = (this->dwinfo_->object_->super_Object)._vptr_Object;
                    p_Var5 = pp_Var4[3];
                    if (p_Var5 == Relobj::is_big_endian) {
                      iVar9 = (*pp_Var4[0x3a])();
                      cVar8 = (char)iVar9;
                    }
                    else {
                      iVar9 = (*p_Var5)();
                      cVar8 = (char)iVar9;
                    }
                    /* WARNING: Load size is inaccurate */
                    attr_value.val.blockval = *pattr;
                    if (cVar8 != '\0') {
                      attr_value.val.uintval =
                           attr_value.val.uintval >> 0x38 |
                           (attr_value.val.uintval & 0xff000000000000) >> 0x28 |
                           (attr_value.val.uintval & 0xff0000000000) >> 0x18 |
                           (attr_value.val.uintval & 0xff00000000) >> 8 |
                           (attr_value.val.uintval & 0xff000000) << 8 |
                           (attr_value.val.uintval & 0xff0000) << 0x18 |
                           (attr_value.val.uintval & 0xff00) << 0x28 |
                           attr_value.val.uintval << 0x38;
                    }
                    pattr = pattr + 8;
                    goto LAB_00302ea9;
                  }
                  if (uVar11 < 0x20) {
                    return false;
                  }
                  if (1 < uVar11 - 0x1f01) {
                    return false;
                  }
LAB_00302bcd:
                  bVar1 = *pattr;
                  aVar14.intval._1_7_ = 0;
                  aVar14.uintval._0_1_ = bVar1;
                  if ((char)bVar1 < '\0') {
                    attr_value.val.uintval = read_unsigned_LEB_128_x(pattr + 1,&len,bVar1);
                    pattr = pattr + len;
                  }
                  else {
                    len = 1;
                    pattr = pattr + 1;
                    attr_value.val = aVar14;
                  }
                }
LAB_00302f92:
                if (uVar2 == 0x31) goto LAB_00302750;
                if (0x31 < uVar2) {
                  if ((uVar2 == 0x6e) || (uVar2 == 0x2007)) goto LAB_00302fb5;
                  goto LAB_00302750;
                }
                goto LAB_00302e3e;
              }
              attr_value.val.intval = 1;
LAB_00302ea9:
              if (((uVar2 == 0x31) || (0x31 < uVar2)) || (uVar2 != 3)) goto LAB_00302750;
LAB_00302e52:
              if (uVar11 == 8) {
LAB_003029c7:
                this->name_ = (char *)attr_value.val;
              }
              else if (uVar11 == 0xe) goto LAB_00302f64;
              goto LAB_00302750;
            }
            if (uVar11 != 0x11) {
              if (0x11 < uVar11) {
                if (uVar11 == 0x13) {
                  VVar12 = Dwarf_info_reader::read_from_pointer<32>(this->dwinfo_,&pattr);
                  str_off = (off_t)VVar12;
                  goto LAB_00303035;
                }
                if (0x13 < uVar11) {
                  pRVar22 = this->dwinfo_->object_;
                  goto LAB_00302fe7;
                }
                pp_Var4 = (this->dwinfo_->object_->super_Object)._vptr_Object;
                p_Var5 = pp_Var4[3];
                if (p_Var5 == Relobj::is_big_endian) {
                  iVar9 = (*pp_Var4[0x3a])();
                  cVar8 = (char)iVar9;
                }
                else {
                  iVar9 = (*p_Var5)();
                  cVar8 = (char)iVar9;
                }
                uVar7 = *(ushort *)pattr;
                if (cVar8 != '\0') {
                  uVar7 = CONCAT11(*pattr,pattr[1]);
                }
                attr_value.val.intval._2_6_ = 0;
                attr_value.val.intval._0_2_ = uVar7;
                pattr = pattr + 2;
                goto joined_r0x00303052;
              }
              if (uVar11 == 0xf) goto LAB_00302bcd;
              if (uVar11 != 0x10) {
                return false;
              }
              pDVar21 = this->dwinfo_;
              uVar11 = pDVar21->address_size_;
              if (2 < pDVar21->cu_version_) {
                uVar11 = pDVar21->offset_size_;
              }
              if (uVar11 != 4) goto LAB_00302a71;
LAB_00302e7d:
              VVar12 = Dwarf_info_reader::read_from_pointer<32>(pDVar21,&pattr);
              str_off = (off_t)VVar12;
LAB_00302abe:
              attr_value.aux.shndx =
                   Dwarf_info_reader::lookup_reloc(this->dwinfo_,(off_t)attr_off,&str_off);
              attr_value.val.refval = str_off;
              if (uVar2 == 0x31) goto LAB_00302965;
              if (0x31 < uVar2) goto joined_r0x00302ccc;
              goto LAB_00302c20;
            }
            puVar23 = pattr + 1;
            attr_value.val.intval._1_7_ = 0;
            attr_value.val.uintval._0_1_ = *pattr;
            pattr = puVar23;
            if (uVar2 != 0x31) {
              if (uVar2 < 0x32) {
                if (uVar2 == 1) {
                  this->sibling_offset_ = (off_t)attr_value.val;
                }
                goto LAB_00302750;
              }
joined_r0x00302ccc:
              if ((uVar2 == 0x6e) || (uVar2 == 0x2007)) goto LAB_00302750;
              goto joined_r0x00302ce3;
            }
          }
LAB_00302965:
          this->abstract_origin_ = (off_t)attr_value.val;
          goto LAB_00302750;
        }
        if (uVar11 == 7) {
          pp_Var4 = (this->dwinfo_->object_->super_Object)._vptr_Object;
          p_Var5 = pp_Var4[3];
          if (p_Var5 == Relobj::is_big_endian) {
            iVar9 = (*pp_Var4[0x3a])();
            cVar8 = (char)iVar9;
          }
          else {
            iVar9 = (*p_Var5)();
            cVar8 = (char)iVar9;
          }
          str_off = *(off_t *)pattr;
          if (cVar8 != '\0') {
            str_off = (ulong)str_off >> 0x38 | (str_off & 0xff000000000000U) >> 0x28 |
                      (str_off & 0xff0000000000U) >> 0x18 | (str_off & 0xff00000000U) >> 8 |
                      (str_off & 0xff000000U) << 8 | (str_off & 0xff0000U) << 0x18 |
                      (str_off & 0xff00U) << 0x28 | str_off << 0x38;
          }
          pattr = pattr + 8;
LAB_00302d40:
          attr_value.aux.shndx =
               Dwarf_info_reader::lookup_reloc(this->dwinfo_,(off_t)attr_off,&str_off);
          attr_value.val.refval = str_off;
joined_r0x00302748:
          if ((uVar2 != 0x31) && (uVar2 < 0x32)) {
LAB_00302e3e:
            if ((uVar2 != 1) && (uVar2 == 3)) goto LAB_00302e52;
          }
          goto LAB_00302750;
        }
        if (uVar11 < 8) {
          if (uVar11 == 4) {
            pp_Var4 = (this->dwinfo_->object_->super_Object)._vptr_Object;
            p_Var5 = pp_Var4[3];
            if (p_Var5 == Relobj::is_big_endian) {
              iVar9 = (*pp_Var4[0x3a])();
              cVar8 = (char)iVar9;
            }
            else {
              iVar9 = (*p_Var5)();
              cVar8 = (char)iVar9;
            }
            attr_value.aux.shndx = *(uint *)pattr;
            if (cVar8 != '\0') {
              attr_value.aux.shndx =
                   attr_value.aux.shndx >> 0x18 | (attr_value.aux.shndx & 0xff0000) >> 8 |
                   (attr_value.aux.shndx & 0xff00) << 8 | attr_value.aux.shndx << 0x18;
            }
            attr_value.val.stringval = (char *)(pattr + 4);
            pattr = (uchar *)(attr_value.val.stringval + attr_value.aux.shndx);
          }
          else if (uVar11 < 5) {
            if (uVar11 == 1) {
              pDVar21 = this->dwinfo_;
              if (pDVar21->address_size_ == 4) goto LAB_00302e7d;
LAB_00302a71:
              pp_Var4 = (pDVar21->object_->super_Object)._vptr_Object;
              p_Var5 = pp_Var4[3];
              if (p_Var5 == Relobj::is_big_endian) {
                iVar9 = (*pp_Var4[0x3a])();
                cVar8 = (char)iVar9;
              }
              else {
                iVar9 = (*p_Var5)();
                cVar8 = (char)iVar9;
              }
              str_off = *(off_t *)pattr;
              if (cVar8 != '\0') {
                str_off = (ulong)str_off >> 0x38 | (str_off & 0xff000000000000U) >> 0x28 |
                          (str_off & 0xff0000000000U) >> 0x18 | (str_off & 0xff00000000U) >> 8 |
                          (str_off & 0xff000000U) << 8 | (str_off & 0xff0000U) << 0x18 |
                          (str_off & 0xff00U) << 0x28 | str_off << 0x38;
              }
              pattr = pattr + 8;
              goto LAB_00302abe;
            }
            if (uVar11 != 3) {
              return false;
            }
            pp_Var4 = (this->dwinfo_->object_->super_Object)._vptr_Object;
            p_Var5 = pp_Var4[3];
            if (p_Var5 == Relobj::is_big_endian) {
              iVar9 = (*pp_Var4[0x3a])();
              cVar8 = (char)iVar9;
            }
            else {
              iVar9 = (*p_Var5)();
              cVar8 = (char)iVar9;
            }
            uVar7 = *(ushort *)pattr;
            if (cVar8 != '\0') {
              uVar7 = CONCAT11(*pattr,pattr[1]);
            }
            attr_value.aux.shndx._2_2_ = 0;
            attr_value.aux.shndx._0_2_ = uVar7;
            attr_value.val.stringval = (char *)(pattr + 2);
            pattr = (uchar *)(attr_value.val.stringval + attr_value.aux.shndx);
          }
          else {
            if (uVar11 != 5) {
              if (uVar11 != 6) {
                return false;
              }
              pp_Var4 = (this->dwinfo_->object_->super_Object)._vptr_Object;
              p_Var5 = pp_Var4[3];
              if (p_Var5 == Relobj::is_big_endian) {
                iVar9 = (*pp_Var4[0x3a])();
                cVar8 = (char)iVar9;
              }
              else {
                iVar9 = (*p_Var5)();
                cVar8 = (char)iVar9;
              }
              uVar3 = *(uint *)pattr;
              if (cVar8 != '\0') {
                uVar3 = uVar3 >> 0x18 | (uVar3 & 0xff0000) >> 8 | (uVar3 & 0xff00) << 8 |
                        uVar3 << 0x18;
              }
              str_off = (off_t)uVar3;
              pattr = pattr + 4;
              goto LAB_00302d40;
            }
            pp_Var4 = (this->dwinfo_->object_->super_Object)._vptr_Object;
            p_Var5 = pp_Var4[3];
            if (p_Var5 == Relobj::is_big_endian) {
              iVar9 = (*pp_Var4[0x3a])();
              cVar8 = (char)iVar9;
            }
            else {
              iVar9 = (*p_Var5)();
              cVar8 = (char)iVar9;
            }
            uVar7 = *(ushort *)pattr;
            if (cVar8 != '\0') {
              uVar7 = CONCAT11(*pattr,pattr[1]);
            }
            pattr = pattr + 2;
            attr_value.val.intval._2_6_ = 0;
            attr_value.val.intval._0_2_ = uVar7;
          }
          goto joined_r0x00302748;
        }
        if (uVar11 == 10) {
          attr_value.val.stringval = (char *)(pattr + 1);
          bVar1 = *pattr;
          pattr = (uchar *)(attr_value.val.stringval + bVar1);
          attr_value.aux.shndx._1_3_ = 0;
          attr_value.aux.shndx._0_1_ = bVar1;
          goto joined_r0x00302748;
        }
        if (uVar11 < 0xb) {
          if (uVar11 != 8) {
            if (uVar11 != 9) {
              return false;
            }
            goto LAB_00302a09;
          }
          attr_value.val.blockval = pattr;
          len = strlen((char *)pattr);
          pattr = puVar23 + len + 1;
          if (uVar2 == 0x31) goto LAB_00302750;
          if (0x31 < uVar2) {
            if ((uVar2 != 0x6e) && (uVar2 != 0x2007)) goto LAB_00302750;
            goto LAB_003029eb;
          }
          if ((uVar2 == 1) || (uVar2 != 3)) goto LAB_00302750;
          goto LAB_003029c7;
        }
        if (uVar11 < 0xd) {
          attr_value.val.intval._1_7_ = 0;
          attr_value.val.uintval._0_1_ = *pattr;
          pattr = pattr + 1;
          goto LAB_00302f92;
        }
        bVar1 = *pattr;
        puVar23 = pattr + 1;
        if ((char)bVar1 < '\0') {
          attr_value.val.intval = read_signed_LEB_128_x(puVar23,&len,bVar1);
          puVar23 = pattr + len;
        }
        else {
          len = 1;
          attr_value.val.intval._1_7_ = 0;
          attr_value.val.uintval._0_1_ = bVar1;
          if ((bVar1 & 0x40) != 0) {
            attr_value.val.uintval = attr_value.val.uintval | 0xffffffffffffff80;
          }
        }
        pattr = puVar23;
        if ((uVar2 == 0x31) || (uVar2 < 0x32)) goto LAB_00302750;
        if ((uVar2 == 0x6e) || (uVar2 == 0x2007)) goto LAB_00302fbe;
        __position._M_current =
             (this->attributes_).
             super__Vector_base<gold::Dwarf_die::Attribute_value,_std::allocator<gold::Dwarf_die::Attribute_value>_>
             ._M_impl._M_finish;
        if (__position._M_current ==
            (this->attributes_).
            super__Vector_base<gold::Dwarf_die::Attribute_value,_std::allocator<gold::Dwarf_die::Attribute_value>_>
            ._M_impl._M_end_of_storage) goto LAB_003028c0;
LAB_0030275e:
        (__position._M_current)->attr = (int)CONCAT44(attr_value.form,attr_value.attr);
        (__position._M_current)->form = (int)(CONCAT44(attr_value.form,attr_value.attr) >> 0x20);
        (__position._M_current)->val = attr_value.val;
        *(ulong *)&(__position._M_current)->aux = CONCAT44(attr_value._20_4_,attr_value.aux.shndx);
        (this->attributes_).
        super__Vector_base<gold::Dwarf_die::Attribute_value,_std::allocator<gold::Dwarf_die::Attribute_value>_>
        ._M_impl._M_finish = __position._M_current + 1;
      }
      lVar25 = lVar25 + 8;
      pAVar13 = this->abbrev_code_;
    } while (lVar25 != (ulong)(iVar19 - 1) * 8 + 8);
  }
  if (pAVar13 == (Abbrev_code *)0x0) {
                    /* WARNING: Subroutine does not return */
    do_gold_unreachable("../../gold/dwarf_reader.h",0x206,"has_children");
  }
  lVar25 = this->die_offset_;
LAB_00302797:
  if ((pAVar13->field_0x4 & 1) == 0) {
    this->sibling_offset_ = (off_t)(pattr + (lVar25 - (long)puVar18));
  }
  else {
    this->child_offset_ = (off_t)(pattr + (lVar25 - (long)puVar18));
  }
  this->attributes_read_ = true;
  return true;
}



undefined8 FUN_003025a0(long *param_1)

{
  byte bVar1;
  uint uVar2;
  void *__src;
  code *pcVar3;
  void *pvVar4;
  ushort uVar5;
  char cVar6;
  int iVar7;
  uint uVar8;
  uint uVar9;
  long lVar10;
  void *__dest;
  uint *puVar11;
  long lVar12;
  int iVar13;
  ulong uVar14;
  byte *pbVar15;
  undefined8 *puVar16;
  long *plVar17;
  long lVar18;
  void *pvVar19;
  size_t __n;
  long lVar20;
  uint *local_70;
  size_t local_68;
  uint *local_60;
  uint local_58;
  uint uStack_54;
  uint *puStack_50;
  uint local_48;
  undefined4 uStack_44;
  
  lVar10 = param_1[6];
  if (lVar10 == 0) {
                    /* WARNING: Subroutine does not return */
    FUN_001e9890("../../gold/dwarf_reader.cc",0x2a9,"read_attributes");
  }
  lVar20 = *param_1;
  lVar18 = param_1[2];
  lVar12 = *(long *)(lVar20 + 0x50) + lVar18 + *(long *)(lVar20 + 0x40);
  if ((ulong)(*(long *)(lVar20 + 0x40) + *(long *)(lVar20 + 0x50) + *(long *)(lVar20 + 0x58)) <
      lVar12 + 1U) {
    FUN_00301e70();
    return 0;
  }
  if (lVar12 == 0) {
    return 0;
  }
  __src = (void *)param_1[7];
  local_70 = (uint *)(param_1[3] + lVar12);
  uVar14 = *(long *)(lVar10 + 0x10) - *(long *)(lVar10 + 8) >> 3;
  iVar13 = (int)uVar14;
  uVar14 = uVar14 & 0xffffffff;
  if ((ulong)((param_1[9] - (long)__src >> 3) * -0x5555555555555555) < uVar14) {
    pvVar4 = (void *)param_1[8];
    __n = (long)pvVar4 - (long)__src;
    if (uVar14 == 0) {
      __dest = (void *)0x0;
      pvVar19 = __src;
    }
    else {
      __dest = (void *)FUN_00337280(uVar14 * 0x18);
      pvVar19 = (void *)param_1[7];
    }
    if (__src != pvVar4) {
      __dest = memmove(__dest,__src,__n);
    }
    if (pvVar19 != (void *)0x0) {
      FUN_00338a50(pvVar19);
    }
    param_1[7] = (long)__dest;
    lVar10 = param_1[6];
    param_1[8] = __n + (long)__dest;
    param_1[9] = (long)(uVar14 * 0x18 + (long)__dest);
    if (iVar13 != 0) goto LAB_00302642;
  }
  else {
    if (iVar13 == 0) goto LAB_00302797;
LAB_00302642:
    lVar20 = 0;
    do {
      puVar11 = (uint *)(*(long *)(lVar10 + 8) + lVar20);
      uVar8 = puVar11[1];
      uVar2 = *puVar11;
      if (uVar8 == 0x16) {
        bVar1 = (byte)*local_70;
        uVar8 = (uint)bVar1;
        if ((char)bVar1 < '\0') {
          uVar8 = FUN_002112d0((uint *)((long)local_70 + 1),&local_68,bVar1);
          local_70 = (uint *)(local_68 + (long)local_70);
        }
        else {
          local_68 = 1;
          local_70 = (uint *)((long)local_70 + 1);
        }
      }
      puVar11 = local_70;
      pbVar15 = (byte *)((long)local_70 + (param_1[2] - lVar12));
      local_48 = 0;
      local_58 = uVar2;
      uStack_54 = uVar8;
      if (uVar8 == 0xe) {
        lVar10 = *param_1;
        if (*(int *)(lVar10 + 0x60) == 4) {
          uVar8 = FUN_00305610(lVar10,&local_70);
          local_60 = (uint *)(ulong)uVar8;
        }
        else {
          pcVar3 = *(code **)(**(long **)(lVar10 + 0x10) + 0x18);
          if (pcVar3 == FUN_001b8d10) {
            cVar6 = (**(code **)(**(long **)(lVar10 + 0x10) + 0x1d0))();
          }
          else {
            cVar6 = (*pcVar3)();
          }
          local_60 = *(uint **)local_70;
          if (cVar6 != '\0') {
            local_60 = (uint *)((ulong)local_60 >> 0x38 |
                                ((ulong)local_60 & 0xff000000000000) >> 0x28 |
                                ((ulong)local_60 & 0xff0000000000) >> 0x18 |
                                ((ulong)local_60 & 0xff00000000) >> 8 |
                                ((ulong)local_60 & 0xff000000) << 8 |
                                ((ulong)local_60 & 0xff0000) << 0x18 |
                                ((ulong)local_60 & 0xff00) << 0x28 | (long)local_60 << 0x38);
          }
          local_70 = local_70 + 2;
        }
        local_48 = FUN_00301dc0(*param_1,pbVar15,&local_60);
        puStack_50 = local_60;
        if (uVar2 != 0x31) {
          if (uVar2 < 0x32) {
            if ((uVar2 != 1) && (uVar2 == 3)) {
LAB_00302f64:
              *(uint *)(param_1 + 0xf) = local_48;
              param_1[0xc] = (long)puStack_50;
            }
          }
          else if ((uVar2 == 0x6e) || (uVar2 == 0x2007)) {
LAB_00302fd0:
            *(uint *)(param_1 + 0xf) = local_48;
            param_1[0xe] = (long)puStack_50;
          }
        }
LAB_00302750:
        puVar16 = (undefined8 *)param_1[8];
        if (puVar16 != (undefined8 *)param_1[9]) goto LAB_0030275e;
LAB_003028c0:
        FUN_00305860(param_1 + 7,puVar16,&local_58);
      }
      else {
        if (0xe < uVar8) {
          if (uVar8 == 0x15) {
            bVar1 = (byte)*local_70;
            if ((char)bVar1 < '\0') {
              puStack_50 = (uint *)FUN_002112d0((uint *)((long)local_70 + 1),&local_68,bVar1);
              local_70 = (uint *)(local_68 + (long)local_70);
            }
            else {
              local_68 = 1;
              local_70 = (uint *)((long)local_70 + 1);
              puStack_50 = (uint *)(ulong)bVar1;
            }
joined_r0x00303052:
            if (uVar2 != 0x31) {
              if (uVar2 < 0x32) {
LAB_00302c20:
                if ((uVar2 == 1) && (local_48 == 0)) {
                  param_1[5] = (long)puStack_50;
                }
                goto LAB_00302750;
              }
              if ((uVar2 != 0x6e) && (uVar2 != 0x2007)) {
joined_r0x00302ce3:
                if (uVar2 == 0x47) {
                  param_1[0x10] = (long)puStack_50;
                }
                goto LAB_00302750;
              }
LAB_00302fb5:
              if (uVar8 == 8) {
LAB_003029eb:
                param_1[0xd] = (long)puStack_50;
              }
              else {
LAB_00302fbe:
                if (uVar8 == 0xe) goto LAB_00302fd0;
              }
              goto LAB_00302750;
            }
          }
          else {
            if (0x15 < uVar8) {
              if (uVar8 != 0x19) {
                if (uVar8 < 0x1a) {
                  if (uVar8 == 0x17) {
                    lVar10 = *param_1;
                    if (*(int *)(lVar10 + 0x60) == 4) {
                      uVar9 = FUN_00305610(lVar10,&local_70);
                      local_60 = (uint *)(ulong)uVar9;
                    }
                    else {
                      plVar17 = *(long **)(lVar10 + 0x10);
LAB_00302fe7:
                      pcVar3 = *(code **)(*plVar17 + 0x18);
                      if (pcVar3 == FUN_001b8d10) {
                        cVar6 = (**(code **)(*plVar17 + 0x1d0))();
                      }
                      else {
                        cVar6 = (*pcVar3)();
                      }
                      local_60 = *(uint **)local_70;
                      if (cVar6 != '\0') {
                        local_60 = (uint *)((ulong)local_60 >> 0x38 |
                                            ((ulong)local_60 & 0xff000000000000) >> 0x28 |
                                            ((ulong)local_60 & 0xff0000000000) >> 0x18 |
                                            ((ulong)local_60 & 0xff00000000) >> 8 |
                                            ((ulong)local_60 & 0xff000000) << 8 |
                                            ((ulong)local_60 & 0xff0000) << 0x18 |
                                            ((ulong)local_60 & 0xff00) << 0x28 |
                                           (long)local_60 << 0x38);
                      }
                      local_70 = local_70 + 2;
                    }
LAB_00303035:
                    local_48 = FUN_00301dc0(*param_1,pbVar15,&local_60);
                    puStack_50 = local_60;
                    goto joined_r0x00303052;
                  }
                  if (uVar8 != 0x18) {
                    return 0;
                  }
LAB_00302a09:
                  bVar1 = (byte)*local_70;
                  uVar9 = (uint)bVar1;
                  puVar11 = (uint *)((long)local_70 + 1);
                  if ((char)bVar1 < '\0') {
                    uVar9 = FUN_002112d0(puVar11,&local_68,bVar1);
                    puVar11 = (uint *)((long)local_70 + local_68);
                  }
                  else {
                    local_68 = 1;
                  }
                  local_70 = (uint *)((long)local_70 + uVar9 + local_68);
                  puStack_50 = puVar11;
                  local_48 = uVar9;
                }
                else {
                  if (uVar8 == 0x20) {
                    pcVar3 = *(code **)(**(long **)(*param_1 + 0x10) + 0x18);
                    if (pcVar3 == FUN_001b8d10) {
                      cVar6 = (**(code **)(**(long **)(*param_1 + 0x10) + 0x1d0))();
                    }
                    else {
                      cVar6 = (*pcVar3)();
                    }
                    puStack_50 = *(uint **)local_70;
                    if (cVar6 != '\0') {
                      puStack_50 = (uint *)((ulong)puStack_50 >> 0x38 |
                                            ((ulong)puStack_50 & 0xff000000000000) >> 0x28 |
                                            ((ulong)puStack_50 & 0xff0000000000) >> 0x18 |
                                            ((ulong)puStack_50 & 0xff00000000) >> 8 |
                                            ((ulong)puStack_50 & 0xff000000) << 8 |
                                            ((ulong)puStack_50 & 0xff0000) << 0x18 |
                                            ((ulong)puStack_50 & 0xff00) << 0x28 |
                                           (long)puStack_50 << 0x38);
                    }
                    local_70 = local_70 + 2;
                    goto LAB_00302ea9;
                  }
                  if (uVar8 < 0x20) {
                    return 0;
                  }
                  if (1 < uVar8 - 0x1f01) {
                    return 0;
                  }
LAB_00302bcd:
                  bVar1 = (byte)*local_70;
                  if ((char)bVar1 < '\0') {
                    puStack_50 = (uint *)FUN_002112d0((uint *)((long)local_70 + 1),&local_68,bVar1);
                    local_70 = (uint *)(local_68 + (long)local_70);
                  }
                  else {
                    local_68 = 1;
                    local_70 = (uint *)((long)local_70 + 1);
                    puStack_50 = (uint *)(ulong)bVar1;
                  }
                }
LAB_00302f92:
                if (uVar2 == 0x31) goto LAB_00302750;
                if (0x31 < uVar2) {
                  if ((uVar2 == 0x6e) || (uVar2 == 0x2007)) goto LAB_00302fb5;
                  goto LAB_00302750;
                }
                goto LAB_00302e3e;
              }
              puStack_50 = (uint *)0x1;
LAB_00302ea9:
              if (((uVar2 == 0x31) || (0x31 < uVar2)) || (uVar2 != 3)) goto LAB_00302750;
LAB_00302e52:
              if (uVar8 == 8) {
LAB_003029c7:
                param_1[0xb] = (long)puStack_50;
              }
              else if (uVar8 == 0xe) goto LAB_00302f64;
              goto LAB_00302750;
            }
            if (uVar8 != 0x11) {
              if (0x11 < uVar8) {
                if (uVar8 == 0x13) {
                  uVar9 = FUN_00305610(*param_1,&local_70);
                  local_60 = (uint *)(ulong)uVar9;
                  goto LAB_00303035;
                }
                if (0x13 < uVar8) {
                  plVar17 = *(long **)(*param_1 + 0x10);
                  goto LAB_00302fe7;
                }
                pcVar3 = *(code **)(**(long **)(*param_1 + 0x10) + 0x18);
                if (pcVar3 == FUN_001b8d10) {
                  cVar6 = (**(code **)(**(long **)(*param_1 + 0x10) + 0x1d0))();
                }
                else {
                  cVar6 = (*pcVar3)();
                }
                uVar5 = (ushort)*local_70;
                if (cVar6 != '\0') {
                  uVar5 = CONCAT11((byte)*local_70,*(byte *)((long)local_70 + 1));
                }
                local_70 = (uint *)((long)local_70 + 2);
                puStack_50 = (uint *)(ulong)uVar5;
                goto joined_r0x00303052;
              }
              if (uVar8 == 0xf) goto LAB_00302bcd;
              if (uVar8 != 0x10) {
                return 0;
              }
              lVar10 = *param_1;
              iVar7 = *(int *)(lVar10 + 100);
              if (2 < *(uint *)(lVar10 + 0x68)) {
                iVar7 = *(int *)(lVar10 + 0x60);
              }
              if (iVar7 != 4) goto LAB_00302a71;
LAB_00302e7d:
              uVar8 = FUN_00305610(lVar10,&local_70);
              local_60 = (uint *)(ulong)uVar8;
LAB_00302abe:
              local_48 = FUN_00301dc0(*param_1,pbVar15,&local_60);
              puStack_50 = local_60;
              if (uVar2 == 0x31) goto LAB_00302965;
              if (0x31 < uVar2) goto joined_r0x00302ccc;
              goto LAB_00302c20;
            }
            puVar11 = (uint *)((long)local_70 + 1);
            puStack_50 = (uint *)(ulong)(byte)*local_70;
            local_70 = puVar11;
            if (uVar2 != 0x31) {
              if (uVar2 < 0x32) {
                if (uVar2 == 1) {
                  param_1[5] = (long)puStack_50;
                }
                goto LAB_00302750;
              }
joined_r0x00302ccc:
              if ((uVar2 == 0x6e) || (uVar2 == 0x2007)) goto LAB_00302750;
              goto joined_r0x00302ce3;
            }
          }
LAB_00302965:
          param_1[0x11] = (long)puStack_50;
          goto LAB_00302750;
        }
        if (uVar8 == 7) {
          pcVar3 = *(code **)(**(long **)(*param_1 + 0x10) + 0x18);
          if (pcVar3 == FUN_001b8d10) {
            cVar6 = (**(code **)(**(long **)(*param_1 + 0x10) + 0x1d0))();
          }
          else {
            cVar6 = (*pcVar3)();
          }
          local_60 = *(uint **)local_70;
          if (cVar6 != '\0') {
            local_60 = (uint *)((ulong)local_60 >> 0x38 |
                                ((ulong)local_60 & 0xff000000000000) >> 0x28 |
                                ((ulong)local_60 & 0xff0000000000) >> 0x18 |
                                ((ulong)local_60 & 0xff00000000) >> 8 |
                                ((ulong)local_60 & 0xff000000) << 8 |
                                ((ulong)local_60 & 0xff0000) << 0x18 |
                                ((ulong)local_60 & 0xff00) << 0x28 | (long)local_60 << 0x38);
          }
          local_70 = local_70 + 2;
LAB_00302d40:
          local_48 = FUN_00301dc0(*param_1,pbVar15,&local_60);
          puStack_50 = local_60;
joined_r0x00302748:
          if ((uVar2 != 0x31) && (uVar2 < 0x32)) {
LAB_00302e3e:
            if ((uVar2 != 1) && (uVar2 == 3)) goto LAB_00302e52;
          }
          goto LAB_00302750;
        }
        if (uVar8 < 8) {
          if (uVar8 == 4) {
            pcVar3 = *(code **)(**(long **)(*param_1 + 0x10) + 0x18);
            if (pcVar3 == FUN_001b8d10) {
              cVar6 = (**(code **)(**(long **)(*param_1 + 0x10) + 0x1d0))();
            }
            else {
              cVar6 = (*pcVar3)();
            }
            local_48 = *local_70;
            if (cVar6 != '\0') {
              local_48 = local_48 >> 0x18 | (local_48 & 0xff0000) >> 8 | (local_48 & 0xff00) << 8 |
                         local_48 << 0x18;
            }
            puStack_50 = local_70 + 1;
            local_70 = (uint *)((long)puStack_50 + (ulong)local_48);
          }
          else if (uVar8 < 5) {
            if (uVar8 == 1) {
              lVar10 = *param_1;
              if (*(int *)(lVar10 + 100) == 4) goto LAB_00302e7d;
LAB_00302a71:
              pcVar3 = *(code **)(**(long **)(lVar10 + 0x10) + 0x18);
              if (pcVar3 == FUN_001b8d10) {
                cVar6 = (**(code **)(**(long **)(lVar10 + 0x10) + 0x1d0))();
              }
              else {
                cVar6 = (*pcVar3)();
              }
              local_60 = *(uint **)local_70;
              if (cVar6 != '\0') {
                local_60 = (uint *)((ulong)local_60 >> 0x38 |
                                    ((ulong)local_60 & 0xff000000000000) >> 0x28 |
                                    ((ulong)local_60 & 0xff0000000000) >> 0x18 |
                                    ((ulong)local_60 & 0xff00000000) >> 8 |
                                    ((ulong)local_60 & 0xff000000) << 8 |
                                    ((ulong)local_60 & 0xff0000) << 0x18 |
                                    ((ulong)local_60 & 0xff00) << 0x28 | (long)local_60 << 0x38);
              }
              local_70 = local_70 + 2;
              goto LAB_00302abe;
            }
            if (uVar8 != 3) {
              return 0;
            }
            pcVar3 = *(code **)(**(long **)(*param_1 + 0x10) + 0x18);
            if (pcVar3 == FUN_001b8d10) {
              cVar6 = (**(code **)(**(long **)(*param_1 + 0x10) + 0x1d0))();
            }
            else {
              cVar6 = (*pcVar3)();
            }
            uVar5 = (ushort)*local_70;
            if (cVar6 != '\0') {
              uVar5 = CONCAT11((byte)*local_70,*(byte *)((long)local_70 + 1));
            }
            local_48 = (uint)uVar5;
            puStack_50 = (uint *)((long)local_70 + 2);
            local_70 = (uint *)((long)puStack_50 + (ulong)local_48);
          }
          else {
            if (uVar8 != 5) {
              if (uVar8 != 6) {
                return 0;
              }
              pcVar3 = *(code **)(**(long **)(*param_1 + 0x10) + 0x18);
              if (pcVar3 == FUN_001b8d10) {
                cVar6 = (**(code **)(**(long **)(*param_1 + 0x10) + 0x1d0))();
              }
              else {
                cVar6 = (*pcVar3)();
              }
              uVar9 = *local_70;
              if (cVar6 != '\0') {
                uVar9 = uVar9 >> 0x18 | (uVar9 & 0xff0000) >> 8 | (uVar9 & 0xff00) << 8 |
                        uVar9 << 0x18;
              }
              local_60 = (uint *)(ulong)uVar9;
              local_70 = local_70 + 1;
              goto LAB_00302d40;
            }
            pcVar3 = *(code **)(**(long **)(*param_1 + 0x10) + 0x18);
            if (pcVar3 == FUN_001b8d10) {
              cVar6 = (**(code **)(**(long **)(*param_1 + 0x10) + 0x1d0))();
            }
            else {
              cVar6 = (*pcVar3)();
            }
            uVar5 = (ushort)*local_70;
            if (cVar6 != '\0') {
              uVar5 = CONCAT11((byte)*local_70,*(byte *)((long)local_70 + 1));
            }
            local_70 = (uint *)((long)local_70 + 2);
            puStack_50 = (uint *)(ulong)uVar5;
          }
          goto joined_r0x00302748;
        }
        if (uVar8 == 10) {
          puStack_50 = (uint *)((long)local_70 + 1);
          uVar9 = *local_70;
          local_70 = (uint *)((long)puStack_50 + (ulong)(byte)uVar9);
          local_48 = (uint)(byte)uVar9;
          goto joined_r0x00302748;
        }
        if (uVar8 < 0xb) {
          if (uVar8 != 8) {
            if (uVar8 != 9) {
              return 0;
            }
            goto LAB_00302a09;
          }
          puStack_50 = local_70;
          local_68 = strlen((char *)local_70);
          local_70 = (uint *)((long)puVar11 + local_68 + 1);
          if (uVar2 == 0x31) goto LAB_00302750;
          if (0x31 < uVar2) {
            if ((uVar2 != 0x6e) && (uVar2 != 0x2007)) goto LAB_00302750;
            goto LAB_003029eb;
          }
          if ((uVar2 == 1) || (uVar2 != 3)) goto LAB_00302750;
          goto LAB_003029c7;
        }
        if (uVar8 < 0xd) {
          uVar9 = *local_70;
          local_70 = (uint *)((long)local_70 + 1);
          puStack_50 = (uint *)(ulong)(byte)uVar9;
          goto LAB_00302f92;
        }
        bVar1 = (byte)*local_70;
        puVar11 = (uint *)((long)local_70 + 1);
        if ((char)bVar1 < '\0') {
          puStack_50 = (uint *)FUN_00211340(puVar11,&local_68);
          puVar11 = (uint *)(local_68 + (long)local_70);
        }
        else {
          local_68 = 1;
          puStack_50 = (uint *)(ulong)bVar1;
          if ((bVar1 & 0x40) != 0) {
            puStack_50 = (uint *)((ulong)bVar1 | 0xffffffffffffff80);
          }
        }
        local_70 = puVar11;
        if ((uVar2 == 0x31) || (uVar2 < 0x32)) goto LAB_00302750;
        if ((uVar2 == 0x6e) || (uVar2 == 0x2007)) goto LAB_00302fbe;
        puVar16 = (undefined8 *)param_1[8];
        if (puVar16 == (undefined8 *)param_1[9]) goto LAB_003028c0;
LAB_0030275e:
        *puVar16 = CONCAT44(uStack_54,local_58);
        puVar16[1] = puStack_50;
        puVar16[2] = CONCAT44(uStack_44,local_48);
        param_1[8] = (long)(puVar16 + 3);
      }
      lVar20 = lVar20 + 8;
      lVar10 = param_1[6];
    } while (lVar20 != (ulong)(iVar13 - 1) * 8 + 8);
  }
  if (lVar10 == 0) {
                    /* WARNING: Subroutine does not return */
    FUN_001e9890("../../gold/dwarf_reader.h",0x206,"has_children");
  }
  lVar18 = param_1[2];
LAB_00302797:
  pbVar15 = (byte *)((long)local_70 + (lVar18 - lVar12));
  if ((*(byte *)(lVar10 + 4) & 1) == 0) {
    param_1[5] = (long)pbVar15;
  }
  else {
    param_1[4] = (long)pbVar15;
  }
  *(undefined1 *)(param_1 + 10) = 1;
  return 1;
}


PUSH R15
PUSH R14
PUSH R13
PUSH R12
PUSH RBP
PUSH RBX
SUB RSP,0x78
MOV RAX,qword ptr [RDI + 0x30]
TEST RAX,RAX
JZ 0x003032dd
MOV R14,RDI
MOV RDI,qword ptr [RDI]
MOV R9,qword ptr [R14 + 0x10]
MOV RCX,qword ptr [RDI + 0x50]
MOV RDX,qword ptr [RDI + 0x40]
LEA RBX,[RCX + R9*0x1]
ADD RCX,qword ptr [RDI + 0x58]
ADD RBX,RDX
ADD RDX,RCX
LEA RSI,[RBX + 0x1]
CMP RSI,RDX
JA 0x003030a8
TEST RBX,RBX
JZ 0x00302ba9
MOV RDX,qword ptr [R14 + 0x18]
MOV R15,qword ptr [R14 + 0x38]
LEA RCX,[R14 + 0x38]
MOV RSI,-0x5555555555555555
MOV RBP,qword ptr [RAX + 0x10]
SUB RBP,qword ptr [RAX + 0x8]
MOV qword ptr [RSP + 0x10],RCX
ADD RDX,RBX
SAR RBP,0x3
MOV qword ptr [RSP + 0x38],RDX
MOV RDX,qword ptr [R14 + 0x48]
MOV ECX,EBP
SUB RDX,R15
SAR RDX,0x3
IMUL RDX,RSI
CMP RCX,RDX
JA 0x003030c0
TEST EBP,EBP
JZ 0x00302797
LEA RCX,[RSP + 0x40]
LEA EDX,[RBP + -0x1]
XOR R15D,R15D
MOV qword ptr [RSP + 0x18],RCX
LEA RCX,[RSP + 0x48]
LEA R12,[0x8 + RDX*0x8]
MOV qword ptr [RSP + 0x8],RCX
LEA RCX,[RSP + 0x38]
MOV qword ptr [RSP + 0x20],RCX
NOP
MOV RCX,qword ptr [RAX + 0x8]
MOV R9,qword ptr [RSP + 0x38]
ADD RCX,R15
MOV EBP,dword ptr [RCX + 0x4]
MOV R13D,dword ptr [RCX]
CMP EBP,0x16
JZ 0x00302bf8
MOV RSI,R9
MOV dword ptr [RSP + 0x50],R13D
SUB RSI,RBX
ADD RSI,qword ptr [R14 + 0x10]
MOV dword ptr [RSP + 0x54],EBP
MOV R10,RSI
MOV dword ptr [RSP + 0x60],0x0
CMP EBP,0xe
JZ 0x00302ec8
JA 0x003028d8
CMP EBP,0x7
JZ 0x00302cf0
JA 0x00302838
CMP EBP,0x4
JZ 0x00302dc0
JA 0x003027d0
CMP EBP,0x1
JZ 0x00302e70
CMP EBP,0x3
JNZ 0x00302ba9
MOV RAX,qword ptr [R14]
LEA RCX,[0x1b8d10]
MOV RDI,qword ptr [RAX + 0x10]
MOV RAX,qword ptr [RDI]
MOV RDX,qword ptr [RAX + 0x18]
CMP RDX,RCX
JNZ 0x003032b2
CALL qword ptr [RAX + 0x1d0]
MOV RDX,qword ptr [RSP + 0x38]
MOVZX ESI,byte ptr [RDX + 0x1]
MOVZX EDI,byte ptr [RDX]
TEST AL,AL
JZ 0x00303250
SHL EDI,0x8
MOVZX EAX,SIL
OR EAX,EDI
ADD RDX,0x2
MOVZX ESI,AX
MOVZX EAX,AX
MOV qword ptr [RSP + 0x58],RDX
ADD RDX,RAX
MOV dword ptr [RSP + 0x60],ESI
MOV qword ptr [RSP + 0x38],RDX
CMP R13D,0x31
JNZ 0x00302e38
NOP
MOV RSI,qword ptr [R14 + 0x40]
CMP RSI,qword ptr [R14 + 0x48]
JZ 0x003028c0
MOVDQA XMM0,xmmword ptr [RSP + 0x50]
ADD RSI,0x18
MOVUPS xmmword ptr [RSI + -0x18],XMM0
MOV RAX,qword ptr [RSP + 0x60]
MOV qword ptr [RSI + -0x8],RAX
MOV qword ptr [R14 + 0x40],RSI
ADD R15,0x8
MOV RAX,qword ptr [R14 + 0x30]
CMP R15,R12
JNZ 0x00302670
TEST RAX,RAX
JZ 0x003032f5
MOV R9,qword ptr [R14 + 0x10]
MOV RDX,qword ptr [RSP + 0x38]
SUB RDX,RBX
ADD R9,RDX
TEST byte ptr [RAX + 0x4],0x1
JNZ 0x00303150
MOV qword ptr [R14 + 0x28],R9
MOV byte ptr [R14 + 0x50],0x1
ADD RSP,0x78
MOV EAX,0x1
POP RBX
POP RBP
POP R12
POP R13
POP R14
POP R15
RET
CMP EBP,0x5
JZ 0x00302d68
CMP EBP,0x6
JNZ 0x00302ba9
MOV RAX,qword ptr [R14]
LEA RCX,[0x1b8d10]
MOV qword ptr [RSP + 0x28],RSI
MOV RDI,qword ptr [RAX + 0x10]
MOV RAX,qword ptr [RDI]
MOV RDX,qword ptr [RAX + 0x18]
CMP RDX,RCX
JNZ 0x003032b9
CALL qword ptr [RAX + 0x1d0]
MOV R10,qword ptr [RSP + 0x28]
MOV RSI,qword ptr [RSP + 0x38]
TEST AL,AL
MOV EDX,dword ptr [RSI]
MOV EDI,EDX
BSWAP EDI
CMOVNZ EDX,EDI
ADD RSI,0x4
MOV qword ptr [RSP + 0x38],RSI
MOV EAX,EDX
MOV qword ptr [RSP + 0x48],RAX
JMP 0x00302d40
CMP EBP,0xa
JZ 0x00302e10
JBE 0x00302978
CMP EBP,0xc
JBE 0x00302f80
MOVZX EDX,byte ptr [R9]
LEA RDI,[R9 + 0x1]
TEST DL,DL
JS 0x003031c0
MOV qword ptr [RSP + 0x40],0x1
MOVZX EAX,DL
MOV RSI,RAX
OR RSI,-0x80
AND EDX,0x40
CMOVNZ RAX,RSI
MOV qword ptr [RSP + 0x58],RAX
MOV qword ptr [RSP + 0x38],RDI
CMP R13D,0x31
JZ 0x00302750
JBE 0x00302750
CMP R13D,0x6e
JZ 0x00302fbe
CMP R13D,0x2007
JZ 0x00302fbe
MOV RSI,qword ptr [R14 + 0x40]
CMP RSI,qword ptr [R14 + 0x48]
JNZ 0x0030275e
NOP dword ptr [RAX]
MOV RDI,qword ptr [RSP + 0x10]
LEA RDX,[RSP + 0x50]
CALL 0x00305860
JMP 0x00302779
CMP EBP,0x15
JZ 0x00302c68
JA 0x00302b20
CMP EBP,0x11
JZ 0x00302c90
JBE 0x00302a48
CMP EBP,0x13
JZ 0x00303080
JA 0x00302fe0
MOV RAX,qword ptr [R14]
LEA RCX,[0x1b8d10]
MOV RDI,qword ptr [RAX + 0x10]
MOV RAX,qword ptr [RDI]
MOV RDX,qword ptr [RAX + 0x18]
CMP RDX,RCX
JNZ 0x0030329d
CALL qword ptr [RAX + 0x1d0]
MOV RSI,qword ptr [RSP + 0x38]
MOVZX EDX,byte ptr [RSI + 0x1]
MOVZX EDI,byte ptr [RSI]
TEST AL,AL
JZ 0x00303240
MOV EAX,EDI
SHL EAX,0x8
OR EDX,EAX
ADD RSI,0x2
MOVZX EAX,DX
MOV qword ptr [RSP + 0x38],RSI
MOV qword ptr [RSP + 0x58],RAX
CMP R13D,0x31
JNZ 0x00303058
NOP
MOV RAX,qword ptr [RSP + 0x58]
MOV qword ptr [R14 + 0x88],RAX
JMP 0x00302750
CMP EBP,0x8
JNZ 0x00302a00
MOV RDI,R9
MOV qword ptr [RSP + 0x58],R9
MOV qword ptr [RSP + 0x28],R9
CALL 0x00150490
MOV R9,qword ptr [RSP + 0x28]
MOV qword ptr [RSP + 0x40],RAX
LEA RAX,[R9 + RAX*0x1 + 0x1]
MOV qword ptr [RSP + 0x38],RAX
CMP R13D,0x31
JZ 0x00302750
JA 0x003029d8
CMP R13D,0x1
JZ 0x00302750
CMP R13D,0x3
JNZ 0x00302750
MOV RAX,qword ptr [RSP + 0x58]
MOV qword ptr [R14 + 0x58],RAX
JMP 0x00302750
CMP R13D,0x6e
JZ 0x003029eb
CMP R13D,0x2007
JNZ 0x00302750
MOV RAX,qword ptr [RSP + 0x58]
MOV qword ptr [R14 + 0x68],RAX
JMP 0x00302750
CMP EBP,0x9
JNZ 0x00302ba9
MOVZX EAX,byte ptr [R9]
LEA RDI,[R9 + 0x1]
TEST AL,AL
JS 0x003031e0
MOV qword ptr [RSP + 0x40],0x1
MOV EDX,0x1
MOV dword ptr [RSP + 0x60],EAX
MOV EAX,EAX
ADD RAX,RDX
MOV qword ptr [RSP + 0x58],RDI
ADD R9,RAX
MOV qword ptr [RSP + 0x38],R9
JMP 0x00302f92
CMP EBP,0xf
JZ 0x00302bcd
CMP EBP,0x10
JNZ 0x00302ba9
MOV RDI,qword ptr [R14]
MOV EAX,dword ptr [RDI + 0x64]
CMP dword ptr [RDI + 0x68],0x2
CMOVA EAX,dword ptr [RDI + 0x60]
CMP EAX,0x4
JZ 0x00302e7d
MOV RDI,qword ptr [RDI + 0x10]
LEA RCX,[0x1b8d10]
MOV RAX,qword ptr [RDI]
MOV RDX,qword ptr [RAX + 0x18]
MOV qword ptr [RSP + 0x28],R10
CMP RDX,RCX
JNZ 0x00303280
CALL qword ptr [RAX + 0x1d0]
MOV R10,qword ptr [RSP + 0x28]
MOV RSI,qword ptr [RSP + 0x38]
TEST AL,AL
MOV RDX,qword ptr [RSI]
MOV RDI,RDX
BSWAP RDI
CMOVNZ RDX,RDI
ADD RSI,0x8
MOV qword ptr [RSP + 0x38],RSI
MOV qword ptr [RSP + 0x48],RDX
MOV RDX,qword ptr [RSP + 0x8]
MOV RDI,qword ptr [R14]
MOV RSI,R10
CALL 0x00301dc0
MOV dword ptr [RSP + 0x60],EAX
MOV RAX,qword ptr [RSP + 0x48]
MOV qword ptr [RSP + 0x58],RAX
CMP R13D,0x31
JZ 0x00302960
JBE 0x00302c20
CMP R13D,0x6e
JZ 0x00302750
CMP R13D,0x2007
JZ 0x00302750
MOV RAX,qword ptr [RSP + 0x58]
CMP R13D,0x47
JNZ 0x00302750
MOV qword ptr [R14 + 0x80],RAX
JMP 0x00302750
CMP EBP,0x19
JZ 0x00302ea0
JA 0x00302b50
CMP EBP,0x17
JNZ 0x00302ba0
MOV RDI,qword ptr [R14]
CMP dword ptr [RDI + 0x60],0x4
JZ 0x00303160
MOV RDI,qword ptr [RDI + 0x10]
JMP 0x00302fe7
CMP EBP,0x20
JNZ 0x00302bc0
MOV RAX,qword ptr [R14]
LEA RCX,[0x1b8d10]
MOV RDI,qword ptr [RAX + 0x10]
MOV RAX,qword ptr [RDI]
MOV RDX,qword ptr [RAX + 0x18]
CMP RDX,RCX
JNZ 0x00303296
CALL qword ptr [RAX + 0x1d0]
MOV RSI,qword ptr [RSP + 0x38]
TEST AL,AL
MOV RDX,qword ptr [RSI]
MOV RDI,RDX
BSWAP RDI
CMOVNZ RDX,RDI
ADD RSI,0x8
MOV qword ptr [RSP + 0x38],RSI
MOV qword ptr [RSP + 0x58],RDX
JMP 0x00302ea9
CMP EBP,0x18
JZ 0x00302a09
ADD RSP,0x78
XOR EAX,EAX
POP RBX
POP RBP
POP R12
POP R13
POP R14
POP R15
RET
JC 0x00302ba9
LEA EAX,[RBP + -0x1f01]
CMP EAX,0x1
JA 0x00302ba9
MOVZX EAX,byte ptr [R9]
LEA RDI,[R9 + 0x1]
TEST AL,AL
JS 0x003031a0
MOV qword ptr [RSP + 0x40],0x1
MOV qword ptr [RSP + 0x58],RAX
MOV qword ptr [RSP + 0x38],RDI
JMP 0x00302f92
MOVZX EBP,byte ptr [R9]
LEA RDI,[R9 + 0x1]
TEST BPL,BPL
JS 0x00302c48
MOV qword ptr [RSP + 0x40],0x1
MOV R9,RDI
MOV qword ptr [RSP + 0x38],R9
JMP 0x0030268b
CMP R13D,0x1
JNZ 0x00302750
MOV EAX,dword ptr [RSP + 0x60]
TEST EAX,EAX
JNZ 0x00302750
MOV RAX,qword ptr [RSP + 0x58]
MOV qword ptr [R14 + 0x28],RAX
JMP 0x00302750
MOV RSI,qword ptr [RSP + 0x18]
MOVZX EDX,BPL
CALL 0x002112d0
MOV R9,qword ptr [RSP + 0x40]
ADD R9,qword ptr [RSP + 0x38]
MOV RBP,RAX
JMP 0x00302c11
MOVZX EAX,byte ptr [R9]
LEA RDI,[R9 + 0x1]
TEST AL,AL
JS 0x00303200
MOV qword ptr [RSP + 0x40],0x1
MOV qword ptr [RSP + 0x58],RAX
MOV qword ptr [RSP + 0x38],RDI
JMP 0x0030304e
LEA RAX,[R9 + 0x1]
MOV qword ptr [RSP + 0x38],RAX
MOVZX EAX,byte ptr [R9]
MOV qword ptr [RSP + 0x58],RAX
CMP R13D,0x31
JZ 0x00302965
JA 0x00302cc8
CMP R13D,0x1
JNZ 0x00302750
MOV qword ptr [R14 + 0x28],RAX
JMP 0x00302750
CMP R13D,0x6e
JZ 0x00302750
CMP R13D,0x2007
JZ 0x00302750
CMP R13D,0x47
JNZ 0x00302750
JMP 0x00302b12
MOV RAX,qword ptr [R14]
LEA RCX,[0x1b8d10]
MOV qword ptr [RSP + 0x28],RSI
MOV RDI,qword ptr [RAX + 0x10]
MOV RAX,qword ptr [RDI]
MOV RDX,qword ptr [RAX + 0x18]
CMP RDX,RCX
JNZ 0x003032c5
CALL qword ptr [RAX + 0x1d0]
MOV R10,qword ptr [RSP + 0x28]
MOV RSI,qword ptr [RSP + 0x38]
TEST AL,AL
MOV RDX,qword ptr [RSI]
MOV RDI,RDX
BSWAP RDI
CMOVNZ RDX,RDI
ADD RSI,0x8
MOV qword ptr [RSP + 0x38],RSI
MOV qword ptr [RSP + 0x48],RDX
MOV RDX,qword ptr [RSP + 0x8]
MOV RDI,qword ptr [R14]
MOV RSI,R10
CALL 0x00301dc0
MOV dword ptr [RSP + 0x60],EAX
MOV RAX,qword ptr [RSP + 0x48]
MOV qword ptr [RSP + 0x58],RAX
JMP 0x00302e2e
MOV RAX,qword ptr [R14]
LEA RCX,[0x1b8d10]
MOV RDI,qword ptr [RAX + 0x10]
MOV RAX,qword ptr [RDI]
MOV RDX,qword ptr [RAX + 0x18]
CMP RDX,RCX
JNZ 0x003032ab
CALL qword ptr [RAX + 0x1d0]
MOV RSI,qword ptr [RSP + 0x38]
MOVZX EDX,byte ptr [RSI + 0x1]
MOVZX EDI,byte ptr [RSI]
TEST AL,AL
JZ 0x00303260
MOV EAX,EDI
SHL EAX,0x8
OR EDX,EAX
ADD RSI,0x2
MOVZX EAX,DX
MOV qword ptr [RSP + 0x38],RSI
MOV qword ptr [RSP + 0x58],RAX
JMP 0x00302e2e
MOV RAX,qword ptr [R14]
LEA RCX,[0x1b8d10]
MOV RDI,qword ptr [RAX + 0x10]
MOV RAX,qword ptr [RDI]
MOV RDX,qword ptr [RAX + 0x18]
CMP RDX,RCX
JNZ 0x003032a4
CALL qword ptr [RAX + 0x1d0]
MOV RDX,qword ptr [RSP + 0x38]
TEST AL,AL
MOV ESI,dword ptr [RDX]
MOV EDI,ESI
BSWAP EDI
CMOVNZ ESI,EDI
ADD RDX,0x4
MOV qword ptr [RSP + 0x58],RDX
MOV dword ptr [RSP + 0x60],ESI
MOV ESI,ESI
ADD RDX,RSI
MOV qword ptr [RSP + 0x38],RDX
JMP 0x00302e2e
LEA RAX,[R9 + 0x1]
MOV qword ptr [RSP + 0x38],RAX
MOVZX ESI,byte ptr [R9]
MOV qword ptr [RSP + 0x58],RAX
ADD RAX,RSI
MOV dword ptr [RSP + 0x60],ESI
MOV qword ptr [RSP + 0x38],RAX
CMP R13D,0x31
JZ 0x00302750
JA 0x00302750
CMP R13D,0x1
JZ 0x00302750
CMP R13D,0x3
JNZ 0x00302750
CMP EBP,0x8
JZ 0x003029c7
CMP EBP,0xe
JNZ 0x00302750
JMP 0x00302f64
MOV RDI,qword ptr [R14]
CMP dword ptr [RDI + 0x64],0x4
JNZ 0x00302a71
MOV RSI,qword ptr [RSP + 0x20]
MOV qword ptr [RSP + 0x28],R10
CALL 0x00305610
MOV R10,qword ptr [RSP + 0x28]
MOV EAX,EAX
MOV qword ptr [RSP + 0x48],RAX
JMP 0x00302abe
MOV qword ptr [RSP + 0x58],0x1
CMP R13D,0x31
JZ 0x00302750
JA 0x00302750
CMP R13D,0x3
JNZ 0x00302750
JMP 0x00302e52
MOV RDI,qword ptr [R14]
CMP dword ptr [RDI + 0x60],0x4
JZ 0x00303180
MOV RDI,qword ptr [RDI + 0x10]
LEA RCX,[0x1b8d10]
MOV qword ptr [RSP + 0x28],RSI
MOV RAX,qword ptr [RDI]
MOV RDX,qword ptr [RAX + 0x18]
CMP RDX,RCX
JNZ 0x003032d1
CALL qword ptr [RAX + 0x1d0]
MOV R10,qword ptr [RSP + 0x28]
MOV RSI,qword ptr [RSP + 0x38]
TEST AL,AL
MOV RDX,qword ptr [RSI]
MOV RDI,RDX
BSWAP RDI
CMOVNZ RDX,RDI
ADD RSI,0x8
MOV qword ptr [RSP + 0x38],RSI
MOV qword ptr [RSP + 0x48],RDX
MOV RDX,qword ptr [RSP + 0x8]
MOV RDI,qword ptr [R14]
MOV RSI,R10
CALL 0x00301dc0
MOV RDX,qword ptr [RSP + 0x48]
MOV dword ptr [RSP + 0x60],EAX
MOV qword ptr [RSP + 0x58],RDX
CMP R13D,0x31
JZ 0x00302750
JA 0x00303220
CMP R13D,0x1
JZ 0x00302750
CMP R13D,0x3
JNZ 0x00302750
MOV EAX,dword ptr [RSP + 0x60]
MOV dword ptr [R14 + 0x78],EAX
MOV RAX,qword ptr [RSP + 0x58]
MOV qword ptr [R14 + 0x60],RAX
JMP 0x00302750
LEA RAX,[R9 + 0x1]
MOV qword ptr [RSP + 0x38],RAX
MOVZX EAX,byte ptr [R9]
MOV qword ptr [RSP + 0x58],RAX
CMP R13D,0x31
JZ 0x00302750
JBE 0x00302e3e
CMP R13D,0x6e
JZ 0x00302fb5
CMP R13D,0x2007
JNZ 0x00302750
CMP EBP,0x8
JZ 0x003029eb
CMP EBP,0xe
JNZ 0x00302750
MOV EAX,dword ptr [RSP + 0x60]
MOV RDX,qword ptr [RSP + 0x58]
MOV dword ptr [R14 + 0x78],EAX
MOV qword ptr [R14 + 0x70],RDX
JMP 0x00302750
MOV RAX,qword ptr [R14]
MOV RDI,qword ptr [RAX + 0x10]
MOV RAX,qword ptr [RDI]
LEA RCX,[0x1b8d10]
MOV RDX,qword ptr [RAX + 0x18]
MOV qword ptr [RSP + 0x28],R10
CMP RDX,RCX
JNZ 0x00303270
CALL qword ptr [RAX + 0x1d0]
MOV R10,qword ptr [RSP + 0x28]
MOV RSI,qword ptr [RSP + 0x38]
TEST AL,AL
MOV RDX,qword ptr [RSI]
MOV RDI,RDX
BSWAP RDI
CMOVNZ RDX,RDI
ADD RSI,0x8
MOV qword ptr [RSP + 0x38],RSI
MOV qword ptr [RSP + 0x48],RDX
MOV RDX,qword ptr [RSP + 0x8]
MOV RDI,qword ptr [R14]
MOV RSI,R10
CALL 0x00301dc0
MOV dword ptr [RSP + 0x60],EAX
MOV RAX,qword ptr [RSP + 0x48]
MOV qword ptr [RSP + 0x58],RAX
CMP R13D,0x31
JZ 0x00302960
JBE 0x00302c20
CMP R13D,0x6e
JZ 0x00302fb5
CMP R13D,0x2007
JNZ 0x00302b03
JMP 0x00302fb5
MOV qword ptr [RSP + 0x28],RSI
MOV RDI,qword ptr [R14]
MOV RSI,qword ptr [RSP + 0x20]
CALL 0x00305610
MOV RDX,qword ptr [RSP + 0x8]
MOV R10,qword ptr [RSP + 0x28]
MOV EAX,EAX
MOV qword ptr [RSP + 0x48],RAX
JMP 0x00303035
CALL 0x00301e70
ADD RSP,0x78
XOR EAX,EAX
POP RBX
POP RBP
POP R12
POP R13
POP R14
POP R15
RET
MOV RDX,qword ptr [R14 + 0x40]
LEA R12,[RCX + RCX*0x2]
SHL R12,0x3
MOV R13,RDX
SUB R13,R15
TEST RCX,RCX
JZ 0x0030328c
MOV RDI,R12
MOV qword ptr [RSP + 0x8],RDX
CALL 0x00337280
MOV R9,qword ptr [R14 + 0x38]
MOV RDX,qword ptr [RSP + 0x8]
MOV RCX,RAX
CMP R15,RDX
JZ 0x00303114
MOV RDI,RCX
MOV RDX,R13
MOV RSI,R15
MOV qword ptr [RSP + 0x8],R9
CALL 0x001506d0
MOV R9,qword ptr [RSP + 0x8]
MOV RCX,RAX
TEST R9,R9
JZ 0x0030312b
MOV RDI,R9
MOV qword ptr [RSP + 0x8],RCX
CALL 0x00338a50
MOV RCX,qword ptr [RSP + 0x8]
ADD R13,RCX
ADD R12,RCX
MOV qword ptr [R14 + 0x38],RCX
MOV RAX,qword ptr [R14 + 0x30]
MOV qword ptr [R14 + 0x40],R13
MOV qword ptr [R14 + 0x48],R12
TEST EBP,EBP
JNZ 0x00302642
JMP 0x0030278a
MOV qword ptr [R14 + 0x20],R9
JMP 0x003027b0
MOV qword ptr [RSP + 0x28],RSI
MOV RSI,qword ptr [RSP + 0x20]
CALL 0x00305610
MOV R10,qword ptr [RSP + 0x28]
MOV EAX,EAX
MOV qword ptr [RSP + 0x48],RAX
JMP 0x00303030
MOV qword ptr [RSP + 0x28],RSI
MOV RSI,qword ptr [RSP + 0x20]
CALL 0x00305610
MOV R10,qword ptr [RSP + 0x28]
MOV EAX,EAX
MOV qword ptr [RSP + 0x48],RAX
JMP 0x00302f22
MOV RSI,qword ptr [RSP + 0x18]
MOVZX EDX,AL
CALL 0x002112d0
MOV RDI,qword ptr [RSP + 0x40]
ADD RDI,qword ptr [RSP + 0x38]
JMP 0x00302be6
MOV RSI,qword ptr [RSP + 0x18]
CALL 0x00211340
MOV RDI,qword ptr [RSP + 0x40]
ADD RDI,qword ptr [RSP + 0x38]
JMP 0x0030287a
MOV RSI,qword ptr [RSP + 0x18]
MOVZX EDX,AL
CALL 0x002112d0
MOV R9,qword ptr [RSP + 0x38]
MOV RDX,qword ptr [RSP + 0x40]
LEA RDI,[R9 + RDX*0x1]
JMP 0x00302a27
MOV RSI,qword ptr [RSP + 0x18]
MOVZX EDX,AL
CALL 0x002112d0
MOV RDI,qword ptr [RSP + 0x40]
ADD RDI,qword ptr [RSP + 0x38]
JMP 0x00302c81
CMP R13D,0x6e
JZ 0x00302fd0
CMP R13D,0x2007
JNZ 0x00302750
JMP 0x00302fd0
SHL EDX,0x8
MOVZX EAX,DIL
OR EDX,EAX
JMP 0x00302944
MOV EAX,ESI
SHL EAX,0x8
OR EAX,EDI
JMP 0x00302729
SHL EDX,0x8
MOVZX EAX,DIL
OR EDX,EAX
JMP 0x00302da7
CALL RDX
MOV R10,qword ptr [RSP + 0x28]
JMP 0x0030300e
CALL RDX
MOV R10,qword ptr [RSP + 0x28]
JMP 0x00302a9c
MOV R9,R15
XOR ECX,ECX
JMP 0x003030f4
CALL RDX
JMP 0x00302b79
CALL RDX
JMP 0x00302929
CALL RDX
JMP 0x00302de4
CALL RDX
JMP 0x00302d8c
CALL RDX
JMP 0x0030270c
CALL RDX
MOV R10,qword ptr [RSP + 0x28]
JMP 0x00302810
CALL RDX
MOV R10,qword ptr [RSP + 0x28]
JMP 0x00302d1e
CALL RDX
MOV R10,qword ptr [RSP + 0x28]
JMP 0x00302f00
LEA RDX,[0x3fad80]
MOV ESI,0x2a9
LEA RDI,[0x3fa945]
CALL 0x001e9890
LEA RDX,[0x3fad70]
MOV ESI,0x206
LEA RDI,[0x3fa9b5]
CALL 0x001e9890
(translation_unit "undefined8 FUN_003025a0(long *param_1)\n\n{\n  byte bVar1;\n  uint uVar2;\n  void *__src;\n  code *pcVar3;\n  void *pvVar4;\n  ushort uVar5;\n  char cVar6;\n  int iVar7;\n  uint uVar8;\n  uint uVar9;\n  long lVar10;\n  void *__dest;\n  uint *puVar11;\n  long lVar12;\n  int iVar13;\n  ulong uVar14;\n  byte *pbVar15;\n  undefined8 *puVar16;\n  long *plVar17;\n  long lVar18;\n  void *pvVar19;\n  size_t __n;\n  long lVar20;\n  uint *local_70;\n  size_t local_68;\n  uint *local_60;\n  uint local_58;\n  uint uStack_54;\n  uint *puStack_50;\n  uint local_48;\n  undefined4 uStack_44;\n  \n  lVar10 = param_1[6];\n  if (lVar10 == 0) {\n                    /* WARNING: Subroutine does not return */\n    FUN_001e9890("../../gold/dwarf_reader.cc",0x2a9,"read_attributes");\n  }\n  lVar20 = *param_1;\n  lVar18 = param_1[2];\n  lVar12 = *(long *)(lVar20 + 0x50) + lVar18 + *(long *)(lVar20 + 0x40);\n  if ((ulong)(*(long *)(lVar20 + 0x40) + *(long *)(lVar20 + 0x50) + *(long *)(lVar20 + 0x58)) <\n      lVar12 + 1U) {\n    FUN_00301e70();\n    return 0;\n  }\n  if (lVar12 == 0) {\n    return 0;\n  }\n  __src = (void *)param_1[7];\n  local_70 = (uint *)(param_1[3] + lVar12);\n  uVar14 = *(long *)(lVar10 + 0x10) - *(long *)(lVar10 + 8) >> 3;\n  iVar13 = (int)uVar14;\n  uVar14 = uVar14 & 0xffffffff;\n  if ((ulong)((param_1[9] - (long)__src >> 3) * -0x5555555555555555) < uVar14) {\n    pvVar4 = (void *)param_1[8];\n    __n = (long)pvVar4 - (long)__src;\n    if (uVar14 == 0) {\n      __dest = (void *)0x0;\n      pvVar19 = __src;\n    }\n    else {\n      __dest = (void *)FUN_00337280(uVar14 * 0x18);\n      pvVar19 = (void *)param_1[7];\n    }\n    if (__src != pvVar4) {\n      __dest = memmove(__dest,__src,__n);\n    }\n    if (pvVar19 != (void *)0x0) {\n      FUN_00338a50(pvVar19);\n    }\n    param_1[7] = (long)__dest;\n    lVar10 = param_1[6];\n    param_1[8] = __n + (long)__dest;\n    param_1[9] = (long)(uVar14 * 0x18 + (long)__dest);\n    if (iVar13 != 0) goto LAB_00302642;\n  }\n  else {\n    if (iVar13 == 0) goto LAB_00302797;\nLAB_00302642:\n    lVar20 = 0;\n    do {\n      puVar11 = (uint *)(*(long *)(lVar10 + 8) + lVar20);\n      uVar8 = puVar11[1];\n      uVar2 = *puVar11;\n      if (uVar8 == 0x16) {\n        bVar1 = (byte)*local_70;\n        uVar8 = (uint)bVar1;\n        if ((char)bVar1 < '\0') {\n          uVar8 = FUN_002112d0((uint *)((long)local_70 + 1),&local_68,bVar1);\n          local_70 = (uint *)(local_68 + (long)local_70);\n        }\n        else {\n          local_68 = 1;\n          local_70 = (uint *)((long)local_70 + 1);\n        }\n      }\n      puVar11 = local_70;\n      pbVar15 = (byte *)((long)local_70 + (param_1[2] - lVar12));\n      local_48 = 0;\n      local_58 = uVar2;\n      uStack_54 = uVar8;\n      if (uVar8 == 0xe) {\n        lVar10 = *param_1;\n        if (*(int *)(lVar10 + 0x60) == 4) {\n          uVar8 = FUN_00305610(lVar10,&local_70);\n          local_60 = (uint *)(ulong)uVar8;\n        }\n        else {\n          pcVar3 = *(code **)(**(long **)(lVar10 + 0x10) + 0x18);\n          if (pcVar3 == FUN_001b8d10) {\n            cVar6 = (**(code **)(**(long **)(lVar10 + 0x10) + 0x1d0))();\n          }\n          else {\n            cVar6 = (*pcVar3)();\n          }\n          local_60 = *(uint **)local_70;\n          if (cVar6 != '\0') {\n            local_60 = (uint *)((ulong)local_60 >> 0x38 |\n                                ((ulong)local_60 & 0xff000000000000) >> 0x28 |\n                                ((ulong)local_60 & 0xff0000000000) >> 0x18 |\n                                ((ulong)local_60 & 0xff00000000) >> 8 |\n                                ((ulong)local_60 & 0xff000000) << 8 |\n                                ((ulong)local_60 & 0xff0000) << 0x18 |\n                                ((ulong)local_60 & 0xff00) << 0x28 | (long)local_60 << 0x38);\n          }\n          local_70 = local_70 + 2;\n        }\n        local_48 = FUN_00301dc0(*param_1,pbVar15,&local_60);\n        puStack_50 = local_60;\n        if (uVar2 != 0x31) {\n          if (uVar2 < 0x32) {\n            if ((uVar2 != 1) && (uVar2 == 3)) {\nLAB_00302f64:\n              *(uint *)(param_1 + 0xf) = local_48;\n              param_1[0xc] = (long)puStack_50;\n            }\n          }\n          else if ((uVar2 == 0x6e) || (uVar2 == 0x2007)) {\nLAB_00302fd0:\n            *(uint *)(param_1 + 0xf) = local_48;\n            param_1[0xe] = (long)puStack_50;\n          }\n        }\nLAB_00302750:\n        puVar16 = (undefined8 *)param_1[8];\n        if (puVar16 != (undefined8 *)param_1[9]) goto LAB_0030275e;\nLAB_003028c0:\n        FUN_00305860(param_1 + 7,puVar16,&local_58);\n      }\n      else {\n        if (0xe < uVar8) {\n          if (uVar8 == 0x15) {\n            bVar1 = (byte)*local_70;\n            if ((char)bVar1 < '\0') {\n              puStack_50 = (uint *)FUN_002112d0((uint *)((long)local_70 + 1),&local_68,bVar1);\n              local_70 = (uint *)(local_68 + (long)local_70);\n            }\n            else {\n              local_68 = 1;\n              local_70 = (uint *)((long)local_70 + 1);\n              puStack_50 = (uint *)(ulong)bVar1;\n            }\njoined_r0x00303052:\n            if (uVar2 != 0x31) {\n              if (uVar2 < 0x32) {\nLAB_00302c20:\n                if ((uVar2 == 1) && (local_48 == 0)) {\n                  param_1[5] = (long)puStack_50;\n                }\n                goto LAB_00302750;\n              }\n              if ((uVar2 != 0x6e) && (uVar2 != 0x2007)) {\njoined_r0x00302ce3:\n                if (uVar2 == 0x47) {\n                  param_1[0x10] = (long)puStack_50;\n                }\n                goto LAB_00302750;\n              }\nLAB_00302fb5:\n              if (uVar8 == 8) {\nLAB_003029eb:\n                param_1[0xd] = (long)puStack_50;\n              }\n              else {\nLAB_00302fbe:\n                if (uVar8 == 0xe) goto LAB_00302fd0;\n              }\n              goto LAB_00302750;\n            }\n          }\n          else {\n            if (0x15 < uVar8) {\n              if (uVar8 != 0x19) {\n                if (uVar8 < 0x1a) {\n                  if (uVar8 == 0x17) {\n                    lVar10 = *param_1;\n                    if (*(int *)(lVar10 + 0x60) == 4) {\n                      uVar9 = FUN_00305610(lVar10,&local_70);\n                      local_60 = (uint *)(ulong)uVar9;\n                    }\n                    else {\n                      plVar17 = *(long **)(lVar10 + 0x10);\nLAB_00302fe7:\n                      pcVar3 = *(code **)(*plVar17 + 0x18);\n                      if (pcVar3 == FUN_001b8d10) {\n                        cVar6 = (**(code **)(*plVar17 + 0x1d0))();\n                      }\n                      else {\n                        cVar6 = (*pcVar3)();\n                      }\n                      local_60 = *(uint **)local_70;\n                      if (cVar6 != '\0') {\n                        local_60 = (uint *)((ulong)local_60 >> 0x38 |\n                                            ((ulong)local_60 & 0xff000000000000) >> 0x28 |\n                                            ((ulong)local_60 & 0xff0000000000) >> 0x18 |\n                                            ((ulong)local_60 & 0xff00000000) >> 8 |\n                                            ((ulong)local_60 & 0xff000000) << 8 |\n                                            ((ulong)local_60 & 0xff0000) << 0x18 |\n                                            ((ulong)local_60 & 0xff00) << 0x28 |\n                                           (long)local_60 << 0x38);\n                      }\n                      local_70 = local_70 + 2;\n                    }\nLAB_00303035:\n                    local_48 = FUN_00301dc0(*param_1,pbVar15,&local_60);\n                    puStack_50 = local_60;\n                    goto joined_r0x00303052;\n                  }\n                  if (uVar8 != 0x18) {\n                    return 0;\n                  }\nLAB_00302a09:\n                  bVar1 = (byte)*local_70;\n                  uVar9 = (uint)bVar1;\n                  puVar11 = (uint *)((long)local_70 + 1);\n                  if ((char)bVar1 < '\0') {\n                    uVar9 = FUN_002112d0(puVar11,&local_68,bVar1);\n                    puVar11 = (uint *)((long)local_70 + local_68);\n                  }\n                  else {\n                    local_68 = 1;\n                  }\n                  local_70 = (uint *)((long)local_70 + uVar9 + local_68);\n                  puStack_50 = puVar11;\n                  local_48 = uVar9;\n                }\n                else {\n                  if (uVar8 == 0x20) {\n                    pcVar3 = *(code **)(**(long **)(*param_1 + 0x10) + 0x18);\n                    if (pcVar3 == FUN_001b8d10) {\n                      cVar6 = (**(code **)(**(long **)(*param_1 + 0x10) + 0x1d0))();\n                    }\n                    else {\n                      cVar6 = (*pcVar3)();\n                    }\n                    puStack_50 = *(uint **)local_70;\n                    if (cVar6 != '\0') {\n                      puStack_50 = (uint *)((ulong)puStack_50 >> 0x38 |\n                                            ((ulong)puStack_50 & 0xff000000000000) >> 0x28 |\n                                            ((ulong)puStack_50 & 0xff0000000000) >> 0x18 |\n                                            ((ulong)puStack_50 & 0xff00000000) >> 8 |\n                                            ((ulong)puStack_50 & 0xff000000) << 8 |\n                                            ((ulong)puStack_50 & 0xff0000) << 0x18 |\n                                            ((ulong)puStack_50 & 0xff00) << 0x28 |\n                                           (long)puStack_50 << 0x38);\n                    }\n                    local_70 = local_70 + 2;\n                    goto LAB_00302ea9;\n                  }\n                  if (uVar8 < 0x20) {\n                    return 0;\n                  }\n                  if (1 < uVar8 - 0x1f01) {\n                    return 0;\n                  }\nLAB_00302bcd:\n                  bVar1 = (byte)*local_70;\n                  if ((char)bVar1 < '\0') {\n                    puStack_50 = (uint *)FUN_002112d0((uint *)((long)local_70 + 1),&local_68,bVar1);\n                    local_70 = (uint *)(local_68 + (long)local_70);\n                  }\n                  else {\n                    local_68 = 1;\n                    local_70 = (uint *)((long)local_70 + 1);\n                    puStack_50 = (uint *)(ulong)bVar1;\n                  }\n                }\nLAB_00302f92:\n                if (uVar2 == 0x31) goto LAB_00302750;\n                if (0x31 < uVar2) {\n                  if ((uVar2 == 0x6e) || (uVar2 == 0x2007)) goto LAB_00302fb5;\n                  goto LAB_00302750;\n                }\n                goto LAB_00302e3e;\n              }\n              puStack_50 = (uint *)0x1;\nLAB_00302ea9:\n              if (((uVar2 == 0x31) || (0x31 < uVar2)) || (uVar2 != 3)) goto LAB_00302750;\nLAB_00302e52:\n              if (uVar8 == 8) {\nLAB_003029c7:\n                param_1[0xb] = (long)puStack_50;\n              }\n              else if (uVar8 == 0xe) goto LAB_00302f64;\n              goto LAB_00302750;\n            }\n            if (uVar8 != 0x11) {\n              if (0x11 < uVar8) {\n                if (uVar8 == 0x13) {\n                  uVar9 = FUN_00305610(*param_1,&local_70);\n                  local_60 = (uint *)(ulong)uVar9;\n                  goto LAB_00303035;\n                }\n                if (0x13 < uVar8) {\n                  plVar17 = *(long **)(*param_1 + 0x10);\n                  goto LAB_00302fe7;\n                }\n                pcVar3 = *(code **)(**(long **)(*param_1 + 0x10) + 0x18);\n                if (pcVar3 == FUN_001b8d10) {\n                  cVar6 = (**(code **)(**(long **)(*param_1 + 0x10) + 0x1d0))();\n                }\n                else {\n                  cVar6 = (*pcVar3)();\n                }\n                uVar5 = (ushort)*local_70;\n                if (cVar6 != '\0') {\n                  uVar5 = CONCAT11((byte)*local_70,*(byte *)((long)local_70 + 1));\n                }\n                local_70 = (uint *)((long)local_70 + 2);\n                puStack_50 = (uint *)(ulong)uVar5;\n                goto joined_r0x00303052;\n              }\n              if (uVar8 == 0xf) goto LAB_00302bcd;\n              if (uVar8 != 0x10) {\n                return 0;\n              }\n              lVar10 = *param_1;\n              iVar7 = *(int *)(lVar10 + 100);\n              if (2 < *(uint *)(lVar10 + 0x68)) {\n                iVar7 = *(int *)(lVar10 + 0x60);\n              }\n              if (iVar7 != 4) goto LAB_00302a71;\nLAB_00302e7d:\n              uVar8 = FUN_00305610(lVar10,&local_70);\n              local_60 = (uint *)(ulong)uVar8;\nLAB_00302abe:\n              local_48 = FUN_00301dc0(*param_1,pbVar15,&local_60);\n              puStack_50 = local_60;\n              if (uVar2 == 0x31) goto LAB_00302965;\n              if (0x31 < uVar2) goto joined_r0x00302ccc;\n              goto LAB_00302c20;\n            }\n            puVar11 = (uint *)((long)local_70 + 1);\n            puStack_50 = (uint *)(ulong)(byte)*local_70;\n            local_70 = puVar11;\n            if (uVar2 != 0x31) {\n              if (uVar2 < 0x32) {\n                if (uVar2 == 1) {\n                  param_1[5] = (long)puStack_50;\n                }\n                goto LAB_00302750;\n              }\njoined_r0x00302ccc:\n              if ((uVar2 == 0x6e) || (uVar2 == 0x2007)) goto LAB_00302750;\n              goto joined_r0x00302ce3;\n            }\n          }\nLAB_00302965:\n          param_1[0x11] = (long)puStack_50;\n          goto LAB_00302750;\n        }\n        if (uVar8 == 7) {\n          pcVar3 = *(code **)(**(long **)(*param_1 + 0x10) + 0x18);\n          if (pcVar3 == FUN_001b8d10) {\n            cVar6 = (**(code **)(**(long **)(*param_1 + 0x10) + 0x1d0))();\n          }\n          else {\n            cVar6 = (*pcVar3)();\n          }\n          local_60 = *(uint **)local_70;\n          if (cVar6 != '\0') {\n            local_60 = (uint *)((ulong)local_60 >> 0x38 |\n                                ((ulong)local_60 & 0xff000000000000) >> 0x28 |\n                                ((ulong)local_60 & 0xff0000000000) >> 0x18 |\n                                ((ulong)local_60 & 0xff00000000) >> 8 |\n                                ((ulong)local_60 & 0xff000000) << 8 |\n                                ((ulong)local_60 & 0xff0000) << 0x18 |\n                                ((ulong)local_60 & 0xff00) << 0x28 | (long)local_60 << 0x38);\n          }\n          local_70 = local_70 + 2;\nLAB_00302d40:\n          local_48 = FUN_00301dc0(*param_1,pbVar15,&local_60);\n          puStack_50 = local_60;\njoined_r0x00302748:\n          if ((uVar2 != 0x31) && (uVar2 < 0x32)) {\nLAB_00302e3e:\n            if ((uVar2 != 1) && (uVar2 == 3)) goto LAB_00302e52;\n          }\n          goto LAB_00302750;\n        }\n        if (uVar8 < 8) {\n          if (uVar8 == 4) {\n            pcVar3 = *(code **)(**(long **)(*param_1 + 0x10) + 0x18);\n            if (pcVar3 == FUN_001b8d10) {\n              cVar6 = (**(code **)(**(long **)(*param_1 + 0x10) + 0x1d0))();\n            }\n            else {\n              cVar6 = (*pcVar3)();\n            }\n            local_48 = *local_70;\n            if (cVar6 != '\0') {\n              local_48 = local_48 >> 0x18 | (local_48 & 0xff0000) >> 8 | (local_48 & 0xff00) << 8 |\n                         local_48 << 0x18;\n            }\n            puStack_50 = local_70 + 1;\n            local_70 = (uint *)((long)puStack_50 + (ulong)local_48);\n          }\n          else if (uVar8 < 5) {\n            if (uVar8 == 1) {\n              lVar10 = *param_1;\n              if (*(int *)(lVar10 + 100) == 4) goto LAB_00302e7d;\nLAB_00302a71:\n              pcVar3 = *(code **)(**(long **)(lVar10 + 0x10) + 0x18);\n              if (pcVar3 == FUN_001b8d10) {\n                cVar6 = (**(code **)(**(long **)(lVar10 + 0x10) + 0x1d0))();\n              }\n              else {\n                cVar6 = (*pcVar3)();\n              }\n              local_60 = *(uint **)local_70;\n              if (cVar6 != '\0') {\n                local_60 = (uint *)((ulong)local_60 >> 0x38 |\n                                    ((ulong)local_60 & 0xff000000000000) >> 0x28 |\n                                    ((ulong)local_60 & 0xff0000000000) >> 0x18 |\n                                    ((ulong)local_60 & 0xff00000000) >> 8 |\n                                    ((ulong)local_60 & 0xff000000) << 8 |\n                                    ((ulong)local_60 & 0xff0000) << 0x18 |\n                                    ((ulong)local_60 & 0xff00) << 0x28 | (long)local_60 << 0x38);\n              }\n              local_70 = local_70 + 2;\n              goto LAB_00302abe;\n            }\n            if (uVar8 != 3) {\n              return 0;\n            }\n            pcVar3 = *(code **)(**(long **)(*param_1 + 0x10) + 0x18);\n            if (pcVar3 == FUN_001b8d10) {\n              cVar6 = (**(code **)(**(long **)(*param_1 + 0x10) + 0x1d0))();\n            }\n            else {\n              cVar6 = (*pcVar3)();\n            }\n            uVar5 = (ushort)*local_70;\n            if (cVar6 != '\0') {\n              uVar5 = CONCAT11((byte)*local_70,*(byte *)((long)local_70 + 1));\n            }\n            local_48 = (uint)uVar5;\n            puStack_50 = (uint *)((long)local_70 + 2);\n            local_70 = (uint *)((long)puStack_50 + (ulong)local_48);\n          }\n          else {\n            if (uVar8 != 5) {\n              if (uVar8 != 6) {\n                return 0;\n              }\n              pcVar3 = *(code **)(**(long **)(*param_1 + 0x10) + 0x18);\n              if (pcVar3 == FUN_001b8d10) {\n                cVar6 = (**(code **)(**(long **)(*param_1 + 0x10) + 0x1d0))();\n              }\n              else {\n                cVar6 = (*pcVar3)();\n              }\n              uVar9 = *local_70;\n              if (cVar6 != '\0') {\n                uVar9 = uVar9 >> 0x18 | (uVar9 & 0xff0000) >> 8 | (uVar9 & 0xff00) << 8 |\n                        uVar9 << 0x18;\n              }\n              local_60 = (uint *)(ulong)uVar9;\n              local_70 = local_70 + 1;\n              goto LAB_00302d40;\n            }\n            pcVar3 = *(code **)(**(long **)(*param_1 + 0x10) + 0x18);\n            if (pcVar3 == FUN_001b8d10) {\n              cVar6 = (**(code **)(**(long **)(*param_1 + 0x10) + 0x1d0))();\n            }\n            else {\n              cVar6 = (*pcVar3)();\n            }\n            uVar5 = (ushort)*local_70;\n            if (cVar6 != '\0') {\n              uVar5 = CONCAT11((byte)*local_70,*(byte *)((long)local_70 + 1));\n            }\n            local_70 = (uint *)((long)local_70 + 2);\n            puStack_50 = (uint *)(ulong)uVar5;\n          }\n          goto joined_r0x00302748;\n        }\n        if (uVar8 == 10) {\n          puStack_50 = (uint *)((long)local_70 + 1);\n          uVar9 = *local_70;\n          local_70 = (uint *)((long)puStack_50 + (ulong)(byte)uVar9);\n          local_48 = (uint)(byte)uVar9;\n          goto joined_r0x00302748;\n        }\n        if (uVar8 < 0xb) {\n          if (uVar8 != 8) {\n            if (uVar8 != 9) {\n              return 0;\n            }\n            goto LAB_00302a09;\n          }\n          puStack_50 = local_70;\n          local_68 = strlen((char *)local_70);\n          local_70 = (uint *)((long)puVar11 + local_68 + 1);\n          if (uVar2 == 0x31) goto LAB_00302750;\n          if (0x31 < uVar2) {\n            if ((uVar2 != 0x6e) && (uVar2 != 0x2007)) goto LAB_00302750;\n            goto LAB_003029eb;\n          }\n          if ((uVar2 == 1) || (uVar2 != 3)) goto LAB_00302750;\n          goto LAB_003029c7;\n        }\n        if (uVar8 < 0xd) {\n          uVar9 = *local_70;\n          local_70 = (uint *)((long)local_70 + 1);\n          puStack_50 = (uint *)(ulong)(byte)uVar9;\n          goto LAB_00302f92;\n        }\n        bVar1 = (byte)*local_70;\n        puVar11 = (uint *)((long)local_70 + 1);\n        if ((char)bVar1 < '\0') {\n          puStack_50 = (uint *)FUN_00211340(puVar11,&local_68);\n          puVar11 = (uint *)(local_68 + (long)local_70);\n        }\n        else {\n          local_68 = 1;\n          puStack_50 = (uint *)(ulong)bVar1;\n          if ((bVar1 & 0x40) != 0) {\n            puStack_50 = (uint *)((ulong)bVar1 | 0xffffffffffffff80);\n          }\n        }\n        local_70 = puVar11;\n        if ((uVar2 == 0x31) || (uVar2 < 0x32)) goto LAB_00302750;\n        if ((uVar2 == 0x6e) || (uVar2 == 0x2007)) goto LAB_00302fbe;\n        puVar16 = (undefined8 *)param_1[8];\n        if (puVar16 == (undefined8 *)param_1[9]) goto LAB_003028c0;\nLAB_0030275e:\n        *puVar16 = CONCAT44(uStack_54,local_58);\n        puVar16[1] = puStack_50;\n        puVar16[2] = CONCAT44(uStack_44,local_48);\n        param_1[8] = (long)(puVar16 + 3);\n      }\n      lVar20 = lVar20 + 8;\n      lVar10 = param_1[6];\n    } while (lVar20 != (ulong)(iVar13 - 1) * 8 + 8);\n  }\n  if (lVar10 == 0) {\n                    /* WARNING: Subroutine does not return */\n    FUN_001e9890("../../gold/dwarf_reader.h",0x206,"has_children");\n  }\n  lVar18 = param_1[2];\nLAB_00302797:\n  pbVar15 = (byte *)((long)local_70 + (lVar18 - lVar12));\n  if ((*(byte *)(lVar10 + 4) & 1) == 0) {\n    param_1[5] = (long)pbVar15;\n  }\n  else {\n    param_1[4] = (long)pbVar15;\n  }\n  *(undefined1 *)(param_1 + 10) = 1;\n  return 1;\n}\n\n" (function_definition "undefined8 FUN_003025a0(long *param_1)\n\n{\n  byte bVar1;\n  uint uVar2;\n  void *__src;\n  code *pcVar3;\n  void *pvVar4;\n  ushort uVar5;\n  char cVar6;\n  int iVar7;\n  uint uVar8;\n  uint uVar9;\n  long lVar10;\n  void *__dest;\n  uint *puVar11;\n  long lVar12;\n  int iVar13;\n  ulong uVar14;\n  byte *pbVar15;\n  undefined8 *puVar16;\n  long *plVar17;\n  long lVar18;\n  void *pvVar19;\n  size_t __n;\n  long lVar20;\n  uint *local_70;\n  size_t local_68;\n  uint *local_60;\n  uint local_58;\n  uint uStack_54;\n  uint *puStack_50;\n  uint local_48;\n  undefined4 uStack_44;\n  \n  lVar10 = param_1[6];\n  if (lVar10 == 0) {\n                    /* WARNING: Subroutine does not return */\n    FUN_001e9890("../../gold/dwarf_reader.cc",0x2a9,"read_attributes");\n  }\n  lVar20 = *param_1;\n  lVar18 = param_1[2];\n  lVar12 = *(long *)(lVar20 + 0x50) + lVar18 + *(long *)(lVar20 + 0x40);\n  if ((ulong)(*(long *)(lVar20 + 0x40) + *(long *)(lVar20 + 0x50) + *(long *)(lVar20 + 0x58)) <\n      lVar12 + 1U) {\n    FUN_00301e70();\n    return 0;\n  }\n  if (lVar12 == 0) {\n    return 0;\n  }\n  __src = (void *)param_1[7];\n  local_70 = (uint *)(param_1[3] + lVar12);\n  uVar14 = *(long *)(lVar10 + 0x10) - *(long *)(lVar10 + 8) >> 3;\n  iVar13 = (int)uVar14;\n  uVar14 = uVar14 & 0xffffffff;\n  if ((ulong)((param_1[9] - (long)__src >> 3) * -0x5555555555555555) < uVar14) {\n    pvVar4 = (void *)param_1[8];\n    __n = (long)pvVar4 - (long)__src;\n    if (uVar14 == 0) {\n      __dest = (void *)0x0;\n      pvVar19 = __src;\n    }\n    else {\n      __dest = (void *)FUN_00337280(uVar14 * 0x18);\n      pvVar19 = (void *)param_1[7];\n    }\n    if (__src != pvVar4) {\n      __dest = memmove(__dest,__src,__n);\n    }\n    if (pvVar19 != (void *)0x0) {\n      FUN_00338a50(pvVar19);\n    }\n    param_1[7] = (long)__dest;\n    lVar10 = param_1[6];\n    param_1[8] = __n + (long)__dest;\n    param_1[9] = (long)(uVar14 * 0x18 + (long)__dest);\n    if (iVar13 != 0) goto LAB_00302642;\n  }\n  else {\n    if (iVar13 == 0) goto LAB_00302797;\nLAB_00302642:\n    lVar20 = 0;\n    do {\n      puVar11 = (uint *)(*(long *)(lVar10 + 8) + lVar20);\n      uVar8 = puVar11[1];\n      uVar2 = *puVar11;\n      if (uVar8 == 0x16) {\n        bVar1 = (byte)*local_70;\n        uVar8 = (uint)bVar1;\n        if ((char)bVar1 < '\0') {\n          uVar8 = FUN_002112d0((uint *)((long)local_70 + 1),&local_68,bVar1);\n          local_70 = (uint *)(local_68 + (long)local_70);\n        }\n        else {\n          local_68 = 1;\n          local_70 = (uint *)((long)local_70 + 1);\n        }\n      }\n      puVar11 = local_70;\n      pbVar15 = (byte *)((long)local_70 + (param_1[2] - lVar12));\n      local_48 = 0;\n      local_58 = uVar2;\n      uStack_54 = uVar8;\n      if (uVar8 == 0xe) {\n        lVar10 = *param_1;\n        if (*(int *)(lVar10 + 0x60) == 4) {\n          uVar8 = FUN_00305610(lVar10,&local_70);\n          local_60 = (uint *)(ulong)uVar8;\n        }\n        else {\n          pcVar3 = *(code **)(**(long **)(lVar10 + 0x10) + 0x18);\n          if (pcVar3 == FUN_001b8d10) {\n            cVar6 = (**(code **)(**(long **)(lVar10 + 0x10) + 0x1d0))();\n          }\n          else {\n            cVar6 = (*pcVar3)();\n          }\n          local_60 = *(uint **)local_70;\n          if (cVar6 != '\0') {\n            local_60 = (uint *)((ulong)local_60 >> 0x38 |\n                                ((ulong)local_60 & 0xff000000000000) >> 0x28 |\n                                ((ulong)local_60 & 0xff0000000000) >> 0x18 |\n                                ((ulong)local_60 & 0xff00000000) >> 8 |\n                                ((ulong)local_60 & 0xff000000) << 8 |\n                                ((ulong)local_60 & 0xff0000) << 0x18 |\n                                ((ulong)local_60 & 0xff00) << 0x28 | (long)local_60 << 0x38);\n          }\n          local_70 = local_70 + 2;\n        }\n        local_48 = FUN_00301dc0(*param_1,pbVar15,&local_60);\n        puStack_50 = local_60;\n        if (uVar2 != 0x31) {\n          if (uVar2 < 0x32) {\n            if ((uVar2 != 1) && (uVar2 == 3)) {\nLAB_00302f64:\n              *(uint *)(param_1 + 0xf) = local_48;\n              param_1[0xc] = (long)puStack_50;\n            }\n          }\n          else if ((uVar2 == 0x6e) || (uVar2 == 0x2007)) {\nLAB_00302fd0:\n            *(uint *)(param_1 + 0xf) = local_48;\n            param_1[0xe] = (long)puStack_50;\n          }\n        }\nLAB_00302750:\n        puVar16 = (undefined8 *)param_1[8];\n        if (puVar16 != (undefined8 *)param_1[9]) goto LAB_0030275e;\nLAB_003028c0:\n        FUN_00305860(param_1 + 7,puVar16,&local_58);\n      }\n      else {\n        if (0xe < uVar8) {\n          if (uVar8 == 0x15) {\n            bVar1 = (byte)*local_70;\n            if ((char)bVar1 < '\0') {\n              puStack_50 = (uint *)FUN_002112d0((uint *)((long)local_70 + 1),&local_68,bVar1);\n              local_70 = (uint *)(local_68 + (long)local_70);\n            }\n            else {\n              local_68 = 1;\n              local_70 = (uint *)((long)local_70 + 1);\n              puStack_50 = (uint *)(ulong)bVar1;\n            }\njoined_r0x00303052:\n            if (uVar2 != 0x31) {\n              if (uVar2 < 0x32) {\nLAB_00302c20:\n                if ((uVar2 == 1) && (local_48 == 0)) {\n                  param_1[5] = (long)puStack_50;\n                }\n                goto LAB_00302750;\n              }\n              if ((uVar2 != 0x6e) && (uVar2 != 0x2007)) {\njoined_r0x00302ce3:\n                if (uVar2 == 0x47) {\n                  param_1[0x10] = (long)puStack_50;\n                }\n                goto LAB_00302750;\n              }\nLAB_00302fb5:\n              if (uVar8 == 8) {\nLAB_003029eb:\n                param_1[0xd] = (long)puStack_50;\n              }\n              else {\nLAB_00302fbe:\n                if (uVar8 == 0xe) goto LAB_00302fd0;\n              }\n              goto LAB_00302750;\n            }\n          }\n          else {\n            if (0x15 < uVar8) {\n              if (uVar8 != 0x19) {\n                if (uVar8 < 0x1a) {\n                  if (uVar8 == 0x17) {\n                    lVar10 = *param_1;\n                    if (*(int *)(lVar10 + 0x60) == 4) {\n                      uVar9 = FUN_00305610(lVar10,&local_70);\n                      local_60 = (uint *)(ulong)uVar9;\n                    }\n                    else {\n                      plVar17 = *(long **)(lVar10 + 0x10);\nLAB_00302fe7:\n                      pcVar3 = *(code **)(*plVar17 + 0x18);\n                      if (pcVar3 == FUN_001b8d10) {\n                        cVar6 = (**(code **)(*plVar17 + 0x1d0))();\n                      }\n                      else {\n                        cVar6 = (*pcVar3)();\n                      }\n                      local_60 = *(uint **)local_70;\n                      if (cVar6 != '\0') {\n                        local_60 = (uint *)((ulong)local_60 >> 0x38 |\n                                            ((ulong)local_60 & 0xff000000000000) >> 0x28 |\n                                            ((ulong)local_60 & 0xff0000000000) >> 0x18 |\n                                            ((ulong)local_60 & 0xff00000000) >> 8 |\n                                            ((ulong)local_60 & 0xff000000) << 8 |\n                                            ((ulong)local_60 & 0xff0000) << 0x18 |\n                                            ((ulong)local_60 & 0xff00) << 0x28 |\n                                           (long)local_60 << 0x38);\n                      }\n                      local_70 = local_70 + 2;\n                    }\nLAB_00303035:\n                    local_48 = FUN_00301dc0(*param_1,pbVar15,&local_60);\n                    puStack_50 = local_60;\n                    goto joined_r0x00303052;\n                  }\n                  if (uVar8 != 0x18) {\n                    return 0;\n                  }\nLAB_00302a09:\n                  bVar1 = (byte)*local_70;\n                  uVar9 = (uint)bVar1;\n                  puVar11 = (uint *)((long)local_70 + 1);\n                  if ((char)bVar1 < '\0') {\n                    uVar9 = FUN_002112d0(puVar11,&local_68,bVar1);\n                    puVar11 = (uint *)((long)local_70 + local_68);\n                  }\n                  else {\n                    local_68 = 1;\n                  }\n                  local_70 = (uint *)((long)local_70 + uVar9 + local_68);\n                  puStack_50 = puVar11;\n                  local_48 = uVar9;\n                }\n                else {\n                  if (uVar8 == 0x20) {\n                    pcVar3 = *(code **)(**(long **)(*param_1 + 0x10) + 0x18);\n                    if (pcVar3 == FUN_001b8d10) {\n                      cVar6 = (**(code **)(**(long **)(*param_1 + 0x10) + 0x1d0))();\n                    }\n                    else {\n                      cVar6 = (*pcVar3)();\n                    }\n                    puStack_50 = *(uint **)local_70;\n                    if (cVar6 != '\0') {\n                      puStack_50 = (uint *)((ulong)puStack_50 >> 0x38 |\n                                            ((ulong)puStack_50 & 0xff000000000000) >> 0x28 |\n                                            ((ulong)puStack_50 & 0xff0000000000) >> 0x18 |\n                                            ((ulong)puStack_50 & 0xff00000000) >> 8 |\n                                            ((ulong)puStack_50 & 0xff000000) << 8 |\n                                            ((ulong)puStack_50 & 0xff0000) << 0x18 |\n                                            ((ulong)puStack_50 & 0xff00) << 0x28 |\n                                           (long)puStack_50 << 0x38);\n                    }\n                    local_70 = local_70 + 2;\n                    goto LAB_00302ea9;\n                  }\n                  if (uVar8 < 0x20) {\n                    return 0;\n                  }\n                  if (1 < uVar8 - 0x1f01) {\n                    return 0;\n                  }\nLAB_00302bcd:\n                  bVar1 = (byte)*local_70;\n                  if ((char)bVar1 < '\0') {\n                    puStack_50 = (uint *)FUN_002112d0((uint *)((long)local_70 + 1),&local_68,bVar1);\n                    local_70 = (uint *)(local_68 + (long)local_70);\n                  }\n                  else {\n                    local_68 = 1;\n                    local_70 = (uint *)((long)local_70 + 1);\n                    puStack_50 = (uint *)(ulong)bVar1;\n                  }\n                }\nLAB_00302f92:\n                if (uVar2 == 0x31) goto LAB_00302750;\n                if (0x31 < uVar2) {\n                  if ((uVar2 == 0x6e) || (uVar2 == 0x2007)) goto LAB_00302fb5;\n                  goto LAB_00302750;\n                }\n                goto LAB_00302e3e;\n              }\n              puStack_50 = (uint *)0x1;\nLAB_00302ea9:\n              if (((uVar2 == 0x31) || (0x31 < uVar2)) || (uVar2 != 3)) goto LAB_00302750;\nLAB_00302e52:\n              if (uVar8 == 8) {\nLAB_003029c7:\n                param_1[0xb] = (long)puStack_50;\n              }\n              else if (uVar8 == 0xe) goto LAB_00302f64;\n              goto LAB_00302750;\n            }\n            if (uVar8 != 0x11) {\n              if (0x11 < uVar8) {\n                if (uVar8 == 0x13) {\n                  uVar9 = FUN_00305610(*param_1,&local_70);\n                  local_60 = (uint *)(ulong)uVar9;\n                  goto LAB_00303035;\n                }\n                if (0x13 < uVar8) {\n                  plVar17 = *(long **)(*param_1 + 0x10);\n                  goto LAB_00302fe7;\n                }\n                pcVar3 = *(code **)(**(long **)(*param_1 + 0x10) + 0x18);\n                if (pcVar3 == FUN_001b8d10) {\n                  cVar6 = (**(code **)(**(long **)(*param_1 + 0x10) + 0x1d0))();\n                }\n                else {\n                  cVar6 = (*pcVar3)();\n                }\n                uVar5 = (ushort)*local_70;\n                if (cVar6 != '\0') {\n                  uVar5 = CONCAT11((byte)*local_70,*(byte *)((long)local_70 + 1));\n                }\n                local_70 = (uint *)((long)local_70 + 2);\n                puStack_50 = (uint *)(ulong)uVar5;\n                goto joined_r0x00303052;\n              }\n              if (uVar8 == 0xf) goto LAB_00302bcd;\n              if (uVar8 != 0x10) {\n                return 0;\n              }\n              lVar10 = *param_1;\n              iVar7 = *(int *)(lVar10 + 100);\n              if (2 < *(uint *)(lVar10 + 0x68)) {\n                iVar7 = *(int *)(lVar10 + 0x60);\n              }\n              if (iVar7 != 4) goto LAB_00302a71;\nLAB_00302e7d:\n              uVar8 = FUN_00305610(lVar10,&local_70);\n              local_60 = (uint *)(ulong)uVar8;\nLAB_00302abe:\n              local_48 = FUN_00301dc0(*param_1,pbVar15,&local_60);\n              puStack_50 = local_60;\n              if (uVar2 == 0x31) goto LAB_00302965;\n              if (0x31 < uVar2) goto joined_r0x00302ccc;\n              goto LAB_00302c20;\n            }\n            puVar11 = (uint *)((long)local_70 + 1);\n            puStack_50 = (uint *)(ulong)(byte)*local_70;\n            local_70 = puVar11;\n            if (uVar2 != 0x31) {\n              if (uVar2 < 0x32) {\n                if (uVar2 == 1) {\n                  param_1[5] = (long)puStack_50;\n                }\n                goto LAB_00302750;\n              }\njoined_r0x00302ccc:\n              if ((uVar2 == 0x6e) || (uVar2 == 0x2007)) goto LAB_00302750;\n              goto joined_r0x00302ce3;\n            }\n          }\nLAB_00302965:\n          param_1[0x11] = (long)puStack_50;\n          goto LAB_00302750;\n        }\n        if (uVar8 == 7) {\n          pcVar3 = *(code **)(**(long **)(*param_1 + 0x10) + 0x18);\n          if (pcVar3 == FUN_001b8d10) {\n            cVar6 = (**(code **)(**(long **)(*param_1 + 0x10) + 0x1d0))();\n          }\n          else {\n            cVar6 = (*pcVar3)();\n          }\n          local_60 = *(uint **)local_70;\n          if (cVar6 != '\0') {\n            local_60 = (uint *)((ulong)local_60 >> 0x38 |\n                                ((ulong)local_60 & 0xff000000000000) >> 0x28 |\n                                ((ulong)local_60 & 0xff0000000000) >> 0x18 |\n                                ((ulong)local_60 & 0xff00000000) >> 8 |\n                                ((ulong)local_60 & 0xff000000) << 8 |\n                                ((ulong)local_60 & 0xff0000) << 0x18 |\n                                ((ulong)local_60 & 0xff00) << 0x28 | (long)local_60 << 0x38);\n          }\n          local_70 = local_70 + 2;\nLAB_00302d40:\n          local_48 = FUN_00301dc0(*param_1,pbVar15,&local_60);\n          puStack_50 = local_60;\njoined_r0x00302748:\n          if ((uVar2 != 0x31) && (uVar2 < 0x32)) {\nLAB_00302e3e:\n            if ((uVar2 != 1) && (uVar2 == 3)) goto LAB_00302e52;\n          }\n          goto LAB_00302750;\n        }\n        if (uVar8 < 8) {\n          if (uVar8 == 4) {\n            pcVar3 = *(code **)(**(long **)(*param_1 + 0x10) + 0x18);\n            if (pcVar3 == FUN_001b8d10) {\n              cVar6 = (**(code **)(**(long **)(*param_1 + 0x10) + 0x1d0))();\n            }\n            else {\n              cVar6 = (*pcVar3)();\n            }\n            local_48 = *local_70;\n            if (cVar6 != '\0') {\n              local_48 = local_48 >> 0x18 | (local_48 & 0xff0000) >> 8 | (local_48 & 0xff00) << 8 |\n                         local_48 << 0x18;\n            }\n            puStack_50 = local_70 + 1;\n            local_70 = (uint *)((long)puStack_50 + (ulong)local_48);\n          }\n          else if (uVar8 < 5) {\n            if (uVar8 == 1) {\n              lVar10 = *param_1;\n              if (*(int *)(lVar10 + 100) == 4) goto LAB_00302e7d;\nLAB_00302a71:\n              pcVar3 = *(code **)(**(long **)(lVar10 + 0x10) + 0x18);\n              if (pcVar3 == FUN_001b8d10) {\n                cVar6 = (**(code **)(**(long **)(lVar10 + 0x10) + 0x1d0))();\n              }\n              else {\n                cVar6 = (*pcVar3)();\n              }\n              local_60 = *(uint **)local_70;\n              if (cVar6 != '\0') {\n                local_60 = (uint *)((ulong)local_60 >> 0x38 |\n                                    ((ulong)local_60 & 0xff000000000000) >> 0x28 |\n                                    ((ulong)local_60 & 0xff0000000000) >> 0x18 |\n                                    ((ulong)local_60 & 0xff00000000) >> 8 |\n                                    ((ulong)local_60 & 0xff000000) << 8 |\n                                    ((ulong)local_60 & 0xff0000) << 0x18 |\n                                    ((ulong)local_60 & 0xff00) << 0x28 | (long)local_60 << 0x38);\n              }\n              local_70 = local_70 + 2;\n              goto LAB_00302abe;\n            }\n            if (uVar8 != 3) {\n              return 0;\n            }\n            pcVar3 = *(code **)(**(long **)(*param_1 + 0x10) + 0x18);\n            if (pcVar3 == FUN_001b8d10) {\n              cVar6 = (**(code **)(**(long **)(*param_1 + 0x10) + 0x1d0))();\n            }\n            else {\n              cVar6 = (*pcVar3)();\n            }\n            uVar5 = (ushort)*local_70;\n            if (cVar6 != '\0') {\n              uVar5 = CONCAT11((byte)*local_70,*(byte *)((long)local_70 + 1));\n            }\n            local_48 = (uint)uVar5;\n            puStack_50 = (uint *)((long)local_70 + 2);\n            local_70 = (uint *)((long)puStack_50 + (ulong)local_48);\n          }\n          else {\n            if (uVar8 != 5) {\n              if (uVar8 != 6) {\n                return 0;\n              }\n              pcVar3 = *(code **)(**(long **)(*param_1 + 0x10) + 0x18);\n              if (pcVar3 == FUN_001b8d10) {\n                cVar6 = (**(code **)(**(long **)(*param_1 + 0x10) + 0x1d0))();\n              }\n              else {\n                cVar6 = (*pcVar3)();\n              }\n              uVar9 = *local_70;\n              if (cVar6 != '\0') {\n                uVar9 = uVar9 >> 0x18 | (uVar9 & 0xff0000) >> 8 | (uVar9 & 0xff00) << 8 |\n                        uVar9 << 0x18;\n              }\n              local_60 = (uint *)(ulong)uVar9;\n              local_70 = local_70 + 1;\n              goto LAB_00302d40;\n            }\n            pcVar3 = *(code **)(**(long **)(*param_1 + 0x10) + 0x18);\n            if (pcVar3 == FUN_001b8d10) {\n              cVar6 = (**(code **)(**(long **)(*param_1 + 0x10) + 0x1d0))();\n            }\n            else {\n              cVar6 = (*pcVar3)();\n            }\n            uVar5 = (ushort)*local_70;\n            if (cVar6 != '\0') {\n              uVar5 = CONCAT11((byte)*local_70,*(byte *)((long)local_70 + 1));\n            }\n            local_70 = (uint *)((long)local_70 + 2);\n            puStack_50 = (uint *)(ulong)uVar5;\n          }\n          goto joined_r0x00302748;\n        }\n        if (uVar8 == 10) {\n          puStack_50 = (uint *)((long)local_70 + 1);\n          uVar9 = *local_70;\n          local_70 = (uint *)((long)puStack_50 + (ulong)(byte)uVar9);\n          local_48 = (uint)(byte)uVar9;\n          goto joined_r0x00302748;\n        }\n        if (uVar8 < 0xb) {\n          if (uVar8 != 8) {\n            if (uVar8 != 9) {\n              return 0;\n            }\n            goto LAB_00302a09;\n          }\n          puStack_50 = local_70;\n          local_68 = strlen((char *)local_70);\n          local_70 = (uint *)((long)puVar11 + local_68 + 1);\n          if (uVar2 == 0x31) goto LAB_00302750;\n          if (0x31 < uVar2) {\n            if ((uVar2 != 0x6e) && (uVar2 != 0x2007)) goto LAB_00302750;\n            goto LAB_003029eb;\n          }\n          if ((uVar2 == 1) || (uVar2 != 3)) goto LAB_00302750;\n          goto LAB_003029c7;\n        }\n        if (uVar8 < 0xd) {\n          uVar9 = *local_70;\n          local_70 = (uint *)((long)local_70 + 1);\n          puStack_50 = (uint *)(ulong)(byte)uVar9;\n          goto LAB_00302f92;\n        }\n        bVar1 = (byte)*local_70;\n        puVar11 = (uint *)((long)local_70 + 1);\n        if ((char)bVar1 < '\0') {\n          puStack_50 = (uint *)FUN_00211340(puVar11,&local_68);\n          puVar11 = (uint *)(local_68 + (long)local_70);\n        }\n        else {\n          local_68 = 1;\n          puStack_50 = (uint *)(ulong)bVar1;\n          if ((bVar1 & 0x40) != 0) {\n            puStack_50 = (uint *)((ulong)bVar1 | 0xffffffffffffff80);\n          }\n        }\n        local_70 = puVar11;\n        if ((uVar2 == 0x31) || (uVar2 < 0x32)) goto LAB_00302750;\n        if ((uVar2 == 0x6e) || (uVar2 == 0x2007)) goto LAB_00302fbe;\n        puVar16 = (undefined8 *)param_1[8];\n        if (puVar16 == (undefined8 *)param_1[9]) goto LAB_003028c0;\nLAB_0030275e:\n        *puVar16 = CONCAT44(uStack_54,local_58);\n        puVar16[1] = puStack_50;\n        puVar16[2] = CONCAT44(uStack_44,local_48);\n        param_1[8] = (long)(puVar16 + 3);\n      }\n      lVar20 = lVar20 + 8;\n      lVar10 = param_1[6];\n    } while (lVar20 != (ulong)(iVar13 - 1) * 8 + 8);\n  }\n  if (lVar10 == 0) {\n                    /* WARNING: Subroutine does not return */\n    FUN_001e9890("../../gold/dwarf_reader.h",0x206,"has_children");\n  }\n  lVar18 = param_1[2];\nLAB_00302797:\n  pbVar15 = (byte *)((long)local_70 + (lVar18 - lVar12));\n  if ((*(byte *)(lVar10 + 4) & 1) == 0) {\n    param_1[5] = (long)pbVar15;\n  }\n  else {\n    param_1[4] = (long)pbVar15;\n  }\n  *(undefined1 *)(param_1 + 10) = 1;\n  return 1;\n}" type_identifier (function_declarator "FUN_003025a0(long *param_1)" identifier (parameter_list "(long *param_1)" ( (parameter_declaration "long *param_1" (sized_type_specifier "long" long) (pointer_declarator "*param_1" * identifier)) ))) (compound_statement "{\n  byte bVar1;\n  uint uVar2;\n  void *__src;\n  code *pcVar3;\n  void *pvVar4;\n  ushort uVar5;\n  char cVar6;\n  int iVar7;\n  uint uVar8;\n  uint uVar9;\n  long lVar10;\n  void *__dest;\n  uint *puVar11;\n  long lVar12;\n  int iVar13;\n  ulong uVar14;\n  byte *pbVar15;\n  undefined8 *puVar16;\n  long *plVar17;\n  long lVar18;\n  void *pvVar19;\n  size_t __n;\n  long lVar20;\n  uint *local_70;\n  size_t local_68;\n  uint *local_60;\n  uint local_58;\n  uint uStack_54;\n  uint *puStack_50;\n  uint local_48;\n  undefined4 uStack_44;\n  \n  lVar10 = param_1[6];\n  if (lVar10 == 0) {\n                    /* WARNING: Subroutine does not return */\n    FUN_001e9890("../../gold/dwarf_reader.cc",0x2a9,"read_attributes");\n  }\n  lVar20 = *param_1;\n  lVar18 = param_1[2];\n  lVar12 = *(long *)(lVar20 + 0x50) + lVar18 + *(long *)(lVar20 + 0x40);\n  if ((ulong)(*(long *)(lVar20 + 0x40) + *(long *)(lVar20 + 0x50) + *(long *)(lVar20 + 0x58)) <\n      lVar12 + 1U) {\n    FUN_00301e70();\n    return 0;\n  }\n  if (lVar12 == 0) {\n    return 0;\n  }\n  __src = (void *)param_1[7];\n  local_70 = (uint *)(param_1[3] + lVar12);\n  uVar14 = *(long *)(lVar10 + 0x10) - *(long *)(lVar10 + 8) >> 3;\n  iVar13 = (int)uVar14;\n  uVar14 = uVar14 & 0xffffffff;\n  if ((ulong)((param_1[9] - (long)__src >> 3) * -0x5555555555555555) < uVar14) {\n    pvVar4 = (void *)param_1[8];\n    __n = (long)pvVar4 - (long)__src;\n    if (uVar14 == 0) {\n      __dest = (void *)0x0;\n      pvVar19 = __src;\n    }\n    else {\n      __dest = (void *)FUN_00337280(uVar14 * 0x18);\n      pvVar19 = (void *)param_1[7];\n    }\n    if (__src != pvVar4) {\n      __dest = memmove(__dest,__src,__n);\n    }\n    if (pvVar19 != (void *)0x0) {\n      FUN_00338a50(pvVar19);\n    }\n    param_1[7] = (long)__dest;\n    lVar10 = param_1[6];\n    param_1[8] = __n + (long)__dest;\n    param_1[9] = (long)(uVar14 * 0x18 + (long)__dest);\n    if (iVar13 != 0) goto LAB_00302642;\n  }\n  else {\n    if (iVar13 == 0) goto LAB_00302797;\nLAB_00302642:\n    lVar20 = 0;\n    do {\n      puVar11 = (uint *)(*(long *)(lVar10 + 8) + lVar20);\n      uVar8 = puVar11[1];\n      uVar2 = *puVar11;\n      if (uVar8 == 0x16) {\n        bVar1 = (byte)*local_70;\n        uVar8 = (uint)bVar1;\n        if ((char)bVar1 < '\0') {\n          uVar8 = FUN_002112d0((uint *)((long)local_70 + 1),&local_68,bVar1);\n          local_70 = (uint *)(local_68 + (long)local_70);\n        }\n        else {\n          local_68 = 1;\n          local_70 = (uint *)((long)local_70 + 1);\n        }\n      }\n      puVar11 = local_70;\n      pbVar15 = (byte *)((long)local_70 + (param_1[2] - lVar12));\n      local_48 = 0;\n      local_58 = uVar2;\n      uStack_54 = uVar8;\n      if (uVar8 == 0xe) {\n        lVar10 = *param_1;\n        if (*(int *)(lVar10 + 0x60) == 4) {\n          uVar8 = FUN_00305610(lVar10,&local_70);\n          local_60 = (uint *)(ulong)uVar8;\n        }\n        else {\n          pcVar3 = *(code **)(**(long **)(lVar10 + 0x10) + 0x18);\n          if (pcVar3 == FUN_001b8d10) {\n            cVar6 = (**(code **)(**(long **)(lVar10 + 0x10) + 0x1d0))();\n          }\n          else {\n            cVar6 = (*pcVar3)();\n          }\n          local_60 = *(uint **)local_70;\n          if (cVar6 != '\0') {\n            local_60 = (uint *)((ulong)local_60 >> 0x38 |\n                                ((ulong)local_60 & 0xff000000000000) >> 0x28 |\n                                ((ulong)local_60 & 0xff0000000000) >> 0x18 |\n                                ((ulong)local_60 & 0xff00000000) >> 8 |\n                                ((ulong)local_60 & 0xff000000) << 8 |\n                                ((ulong)local_60 & 0xff0000) << 0x18 |\n                                ((ulong)local_60 & 0xff00) << 0x28 | (long)local_60 << 0x38);\n          }\n          local_70 = local_70 + 2;\n        }\n        local_48 = FUN_00301dc0(*param_1,pbVar15,&local_60);\n        puStack_50 = local_60;\n        if (uVar2 != 0x31) {\n          if (uVar2 < 0x32) {\n            if ((uVar2 != 1) && (uVar2 == 3)) {\nLAB_00302f64:\n              *(uint *)(param_1 + 0xf) = local_48;\n              param_1[0xc] = (long)puStack_50;\n            }\n          }\n          else if ((uVar2 == 0x6e) || (uVar2 == 0x2007)) {\nLAB_00302fd0:\n            *(uint *)(param_1 + 0xf) = local_48;\n            param_1[0xe] = (long)puStack_50;\n          }\n        }\nLAB_00302750:\n        puVar16 = (undefined8 *)param_1[8];\n        if (puVar16 != (undefined8 *)param_1[9]) goto LAB_0030275e;\nLAB_003028c0:\n        FUN_00305860(param_1 + 7,puVar16,&local_58);\n      }\n      else {\n        if (0xe < uVar8) {\n          if (uVar8 == 0x15) {\n            bVar1 = (byte)*local_70;\n            if ((char)bVar1 < '\0') {\n              puStack_50 = (uint *)FUN_002112d0((uint *)((long)local_70 + 1),&local_68,bVar1);\n              local_70 = (uint *)(local_68 + (long)local_70);\n            }\n            else {\n              local_68 = 1;\n              local_70 = (uint *)((long)local_70 + 1);\n              puStack_50 = (uint *)(ulong)bVar1;\n            }\njoined_r0x00303052:\n            if (uVar2 != 0x31) {\n              if (uVar2 < 0x32) {\nLAB_00302c20:\n                if ((uVar2 == 1) && (local_48 == 0)) {\n                  param_1[5] = (long)puStack_50;\n                }\n                goto LAB_00302750;\n              }\n              if ((uVar2 != 0x6e) && (uVar2 != 0x2007)) {\njoined_r0x00302ce3:\n                if (uVar2 == 0x47) {\n                  param_1[0x10] = (long)puStack_50;\n                }\n                goto LAB_00302750;\n              }\nLAB_00302fb5:\n              if (uVar8 == 8) {\nLAB_003029eb:\n                param_1[0xd] = (long)puStack_50;\n              }\n              else {\nLAB_00302fbe:\n                if (uVar8 == 0xe) goto LAB_00302fd0;\n              }\n              goto LAB_00302750;\n            }\n          }\n          else {\n            if (0x15 < uVar8) {\n              if (uVar8 != 0x19) {\n                if (uVar8 < 0x1a) {\n                  if (uVar8 == 0x17) {\n                    lVar10 = *param_1;\n                    if (*(int *)(lVar10 + 0x60) == 4) {\n                      uVar9 = FUN_00305610(lVar10,&local_70);\n                      local_60 = (uint *)(ulong)uVar9;\n                    }\n                    else {\n                      plVar17 = *(long **)(lVar10 + 0x10);\nLAB_00302fe7:\n                      pcVar3 = *(code **)(*plVar17 + 0x18);\n                      if (pcVar3 == FUN_001b8d10) {\n                        cVar6 = (**(code **)(*plVar17 + 0x1d0))();\n                      }\n                      else {\n                        cVar6 = (*pcVar3)();\n                      }\n                      local_60 = *(uint **)local_70;\n                      if (cVar6 != '\0') {\n                        local_60 = (uint *)((ulong)local_60 >> 0x38 |\n                                            ((ulong)local_60 & 0xff000000000000) >> 0x28 |\n                                            ((ulong)local_60 & 0xff0000000000) >> 0x18 |\n                                            ((ulong)local_60 & 0xff00000000) >> 8 |\n                                            ((ulong)local_60 & 0xff000000) << 8 |\n                                            ((ulong)local_60 & 0xff0000) << 0x18 |\n                                            ((ulong)local_60 & 0xff00) << 0x28 |\n                                           (long)local_60 << 0x38);\n                      }\n                      local_70 = local_70 + 2;\n                    }\nLAB_00303035:\n                    local_48 = FUN_00301dc0(*param_1,pbVar15,&local_60);\n                    puStack_50 = local_60;\n                    goto joined_r0x00303052;\n                  }\n                  if (uVar8 != 0x18) {\n                    return 0;\n                  }\nLAB_00302a09:\n                  bVar1 = (byte)*local_70;\n                  uVar9 = (uint)bVar1;\n                  puVar11 = (uint *)((long)local_70 + 1);\n                  if ((char)bVar1 < '\0') {\n                    uVar9 = FUN_002112d0(puVar11,&local_68,bVar1);\n                    puVar11 = (uint *)((long)local_70 + local_68);\n                  }\n                  else {\n                    local_68 = 1;\n                  }\n                  local_70 = (uint *)((long)local_70 + uVar9 + local_68);\n                  puStack_50 = puVar11;\n                  local_48 = uVar9;\n                }\n                else {\n                  if (uVar8 == 0x20) {\n                    pcVar3 = *(code **)(**(long **)(*param_1 + 0x10) + 0x18);\n                    if (pcVar3 == FUN_001b8d10) {\n                      cVar6 = (**(code **)(**(long **)(*param_1 + 0x10) + 0x1d0))();\n                    }\n                    else {\n                      cVar6 = (*pcVar3)();\n                    }\n                    puStack_50 = *(uint **)local_70;\n                    if (cVar6 != '\0') {\n                      puStack_50 = (uint *)((ulong)puStack_50 >> 0x38 |\n                                            ((ulong)puStack_50 & 0xff000000000000) >> 0x28 |\n                                            ((ulong)puStack_50 & 0xff0000000000) >> 0x18 |\n                                            ((ulong)puStack_50 & 0xff00000000) >> 8 |\n                                            ((ulong)puStack_50 & 0xff000000) << 8 |\n                                            ((ulong)puStack_50 & 0xff0000) << 0x18 |\n                                            ((ulong)puStack_50 & 0xff00) << 0x28 |\n                                           (long)puStack_50 << 0x38);\n                    }\n                    local_70 = local_70 + 2;\n                    goto LAB_00302ea9;\n                  }\n                  if (uVar8 < 0x20) {\n                    return 0;\n                  }\n                  if (1 < uVar8 - 0x1f01) {\n                    return 0;\n                  }\nLAB_00302bcd:\n                  bVar1 = (byte)*local_70;\n                  if ((char)bVar1 < '\0') {\n                    puStack_50 = (uint *)FUN_002112d0((uint *)((long)local_70 + 1),&local_68,bVar1);\n                    local_70 = (uint *)(local_68 + (long)local_70);\n                  }\n                  else {\n                    local_68 = 1;\n                    local_70 = (uint *)((long)local_70 + 1);\n                    puStack_50 = (uint *)(ulong)bVar1;\n                  }\n                }\nLAB_00302f92:\n                if (uVar2 == 0x31) goto LAB_00302750;\n                if (0x31 < uVar2) {\n                  if ((uVar2 == 0x6e) || (uVar2 == 0x2007)) goto LAB_00302fb5;\n                  goto LAB_00302750;\n                }\n                goto LAB_00302e3e;\n              }\n              puStack_50 = (uint *)0x1;\nLAB_00302ea9:\n              if (((uVar2 == 0x31) || (0x31 < uVar2)) || (uVar2 != 3)) goto LAB_00302750;\nLAB_00302e52:\n              if (uVar8 == 8) {\nLAB_003029c7:\n                param_1[0xb] = (long)puStack_50;\n              }\n              else if (uVar8 == 0xe) goto LAB_00302f64;\n              goto LAB_00302750;\n            }\n            if (uVar8 != 0x11) {\n              if (0x11 < uVar8) {\n                if (uVar8 == 0x13) {\n                  uVar9 = FUN_00305610(*param_1,&local_70);\n                  local_60 = (uint *)(ulong)uVar9;\n                  goto LAB_00303035;\n                }\n                if (0x13 < uVar8) {\n                  plVar17 = *(long **)(*param_1 + 0x10);\n                  goto LAB_00302fe7;\n                }\n                pcVar3 = *(code **)(**(long **)(*param_1 + 0x10) + 0x18);\n                if (pcVar3 == FUN_001b8d10) {\n                  cVar6 = (**(code **)(**(long **)(*param_1 + 0x10) + 0x1d0))();\n                }\n                else {\n                  cVar6 = (*pcVar3)();\n                }\n                uVar5 = (ushort)*local_70;\n                if (cVar6 != '\0') {\n                  uVar5 = CONCAT11((byte)*local_70,*(byte *)((long)local_70 + 1));\n                }\n                local_70 = (uint *)((long)local_70 + 2);\n                puStack_50 = (uint *)(ulong)uVar5;\n                goto joined_r0x00303052;\n              }\n              if (uVar8 == 0xf) goto LAB_00302bcd;\n              if (uVar8 != 0x10) {\n                return 0;\n              }\n              lVar10 = *param_1;\n              iVar7 = *(int *)(lVar10 + 100);\n              if (2 < *(uint *)(lVar10 + 0x68)) {\n                iVar7 = *(int *)(lVar10 + 0x60);\n              }\n              if (iVar7 != 4) goto LAB_00302a71;\nLAB_00302e7d:\n              uVar8 = FUN_00305610(lVar10,&local_70);\n              local_60 = (uint *)(ulong)uVar8;\nLAB_00302abe:\n              local_48 = FUN_00301dc0(*param_1,pbVar15,&local_60);\n              puStack_50 = local_60;\n              if (uVar2 == 0x31) goto LAB_00302965;\n              if (0x31 < uVar2) goto joined_r0x00302ccc;\n              goto LAB_00302c20;\n            }\n            puVar11 = (uint *)((long)local_70 + 1);\n            puStack_50 = (uint *)(ulong)(byte)*local_70;\n            local_70 = puVar11;\n            if (uVar2 != 0x31) {\n              if (uVar2 < 0x32) {\n                if (uVar2 == 1) {\n                  param_1[5] = (long)puStack_50;\n                }\n                goto LAB_00302750;\n              }\njoined_r0x00302ccc:\n              if ((uVar2 == 0x6e) || (uVar2 == 0x2007)) goto LAB_00302750;\n              goto joined_r0x00302ce3;\n            }\n          }\nLAB_00302965:\n          param_1[0x11] = (long)puStack_50;\n          goto LAB_00302750;\n        }\n        if (uVar8 == 7) {\n          pcVar3 = *(code **)(**(long **)(*param_1 + 0x10) + 0x18);\n          if (pcVar3 == FUN_001b8d10) {\n            cVar6 = (**(code **)(**(long **)(*param_1 + 0x10) + 0x1d0))();\n          }\n          else {\n            cVar6 = (*pcVar3)();\n          }\n          local_60 = *(uint **)local_70;\n          if (cVar6 != '\0') {\n            local_60 = (uint *)((ulong)local_60 >> 0x38 |\n                                ((ulong)local_60 & 0xff000000000000) >> 0x28 |\n                                ((ulong)local_60 & 0xff0000000000) >> 0x18 |\n                                ((ulong)local_60 & 0xff00000000) >> 8 |\n                                ((ulong)local_60 & 0xff000000) << 8 |\n                                ((ulong)local_60 & 0xff0000) << 0x18 |\n                                ((ulong)local_60 & 0xff00) << 0x28 | (long)local_60 << 0x38);\n          }\n          local_70 = local_70 + 2;\nLAB_00302d40:\n          local_48 = FUN_00301dc0(*param_1,pbVar15,&local_60);\n          puStack_50 = local_60;\njoined_r0x00302748:\n          if ((uVar2 != 0x31) && (uVar2 < 0x32)) {\nLAB_00302e3e:\n            if ((uVar2 != 1) && (uVar2 == 3)) goto LAB_00302e52;\n          }\n          goto LAB_00302750;\n        }\n        if (uVar8 < 8) {\n          if (uVar8 == 4) {\n            pcVar3 = *(code **)(**(long **)(*param_1 + 0x10) + 0x18);\n            if (pcVar3 == FUN_001b8d10) {\n              cVar6 = (**(code **)(**(long **)(*param_1 + 0x10) + 0x1d0))();\n            }\n            else {\n              cVar6 = (*pcVar3)();\n            }\n            local_48 = *local_70;\n            if (cVar6 != '\0') {\n              local_48 = local_48 >> 0x18 | (local_48 & 0xff0000) >> 8 | (local_48 & 0xff00) << 8 |\n                         local_48 << 0x18;\n            }\n            puStack_50 = local_70 + 1;\n            local_70 = (uint *)((long)puStack_50 + (ulong)local_48);\n          }\n          else if (uVar8 < 5) {\n            if (uVar8 == 1) {\n              lVar10 = *param_1;\n              if (*(int *)(lVar10 + 100) == 4) goto LAB_00302e7d;\nLAB_00302a71:\n              pcVar3 = *(code **)(**(long **)(lVar10 + 0x10) + 0x18);\n              if (pcVar3 == FUN_001b8d10) {\n                cVar6 = (**(code **)(**(long **)(lVar10 + 0x10) + 0x1d0))();\n              }\n              else {\n                cVar6 = (*pcVar3)();\n              }\n              local_60 = *(uint **)local_70;\n              if (cVar6 != '\0') {\n                local_60 = (uint *)((ulong)local_60 >> 0x38 |\n                                    ((ulong)local_60 & 0xff000000000000) >> 0x28 |\n                                    ((ulong)local_60 & 0xff0000000000) >> 0x18 |\n                                    ((ulong)local_60 & 0xff00000000) >> 8 |\n                                    ((ulong)local_60 & 0xff000000) << 8 |\n                                    ((ulong)local_60 & 0xff0000) << 0x18 |\n                                    ((ulong)local_60 & 0xff00) << 0x28 | (long)local_60 << 0x38);\n              }\n              local_70 = local_70 + 2;\n              goto LAB_00302abe;\n            }\n            if (uVar8 != 3) {\n              return 0;\n            }\n            pcVar3 = *(code **)(**(long **)(*param_1 + 0x10) + 0x18);\n            if (pcVar3 == FUN_001b8d10) {\n              cVar6 = (**(code **)(**(long **)(*param_1 + 0x10) + 0x1d0))();\n            }\n            else {\n              cVar6 = (*pcVar3)();\n            }\n            uVar5 = (ushort)*local_70;\n            if (cVar6 != '\0') {\n              uVar5 = CONCAT11((byte)*local_70,*(byte *)((long)local_70 + 1));\n            }\n            local_48 = (uint)uVar5;\n            puStack_50 = (uint *)((long)local_70 + 2);\n            local_70 = (uint *)((long)puStack_50 + (ulong)local_48);\n          }\n          else {\n            if (uVar8 != 5) {\n              if (uVar8 != 6) {\n                return 0;\n              }\n              pcVar3 = *(code **)(**(long **)(*param_1 + 0x10) + 0x18);\n              if (pcVar3 == FUN_001b8d10) {\n                cVar6 = (**(code **)(**(long **)(*param_1 + 0x10) + 0x1d0))();\n              }\n              else {\n                cVar6 = (*pcVar3)();\n              }\n              uVar9 = *local_70;\n              if (cVar6 != '\0') {\n                uVar9 = uVar9 >> 0x18 | (uVar9 & 0xff0000) >> 8 | (uVar9 & 0xff00) << 8 |\n                        uVar9 << 0x18;\n              }\n              local_60 = (uint *)(ulong)uVar9;\n              local_70 = local_70 + 1;\n              goto LAB_00302d40;\n            }\n            pcVar3 = *(code **)(**(long **)(*param_1 + 0x10) + 0x18);\n            if (pcVar3 == FUN_001b8d10) {\n              cVar6 = (**(code **)(**(long **)(*param_1 + 0x10) + 0x1d0))();\n            }\n            else {\n              cVar6 = (*pcVar3)();\n            }\n            uVar5 = (ushort)*local_70;\n            if (cVar6 != '\0') {\n              uVar5 = CONCAT11((byte)*local_70,*(byte *)((long)local_70 + 1));\n            }\n            local_70 = (uint *)((long)local_70 + 2);\n            puStack_50 = (uint *)(ulong)uVar5;\n          }\n          goto joined_r0x00302748;\n        }\n        if (uVar8 == 10) {\n          puStack_50 = (uint *)((long)local_70 + 1);\n          uVar9 = *local_70;\n          local_70 = (uint *)((long)puStack_50 + (ulong)(byte)uVar9);\n          local_48 = (uint)(byte)uVar9;\n          goto joined_r0x00302748;\n        }\n        if (uVar8 < 0xb) {\n          if (uVar8 != 8) {\n            if (uVar8 != 9) {\n              return 0;\n            }\n            goto LAB_00302a09;\n          }\n          puStack_50 = local_70;\n          local_68 = strlen((char *)local_70);\n          local_70 = (uint *)((long)puVar11 + local_68 + 1);\n          if (uVar2 == 0x31) goto LAB_00302750;\n          if (0x31 < uVar2) {\n            if ((uVar2 != 0x6e) && (uVar2 != 0x2007)) goto LAB_00302750;\n            goto LAB_003029eb;\n          }\n          if ((uVar2 == 1) || (uVar2 != 3)) goto LAB_00302750;\n          goto LAB_003029c7;\n        }\n        if (uVar8 < 0xd) {\n          uVar9 = *local_70;\n          local_70 = (uint *)((long)local_70 + 1);\n          puStack_50 = (uint *)(ulong)(byte)uVar9;\n          goto LAB_00302f92;\n        }\n        bVar1 = (byte)*local_70;\n        puVar11 = (uint *)((long)local_70 + 1);\n        if ((char)bVar1 < '\0') {\n          puStack_50 = (uint *)FUN_00211340(puVar11,&local_68);\n          puVar11 = (uint *)(local_68 + (long)local_70);\n        }\n        else {\n          local_68 = 1;\n          puStack_50 = (uint *)(ulong)bVar1;\n          if ((bVar1 & 0x40) != 0) {\n            puStack_50 = (uint *)((ulong)bVar1 | 0xffffffffffffff80);\n          }\n        }\n        local_70 = puVar11;\n        if ((uVar2 == 0x31) || (uVar2 < 0x32)) goto LAB_00302750;\n        if ((uVar2 == 0x6e) || (uVar2 == 0x2007)) goto LAB_00302fbe;\n        puVar16 = (undefined8 *)param_1[8];\n        if (puVar16 == (undefined8 *)param_1[9]) goto LAB_003028c0;\nLAB_0030275e:\n        *puVar16 = CONCAT44(uStack_54,local_58);\n        puVar16[1] = puStack_50;\n        puVar16[2] = CONCAT44(uStack_44,local_48);\n        param_1[8] = (long)(puVar16 + 3);\n      }\n      lVar20 = lVar20 + 8;\n      lVar10 = param_1[6];\n    } while (lVar20 != (ulong)(iVar13 - 1) * 8 + 8);\n  }\n  if (lVar10 == 0) {\n                    /* WARNING: Subroutine does not return */\n    FUN_001e9890("../../gold/dwarf_reader.h",0x206,"has_children");\n  }\n  lVar18 = param_1[2];\nLAB_00302797:\n  pbVar15 = (byte *)((long)local_70 + (lVar18 - lVar12));\n  if ((*(byte *)(lVar10 + 4) & 1) == 0) {\n    param_1[5] = (long)pbVar15;\n  }\n  else {\n    param_1[4] = (long)pbVar15;\n  }\n  *(undefined1 *)(param_1 + 10) = 1;\n  return 1;\n}" { (declaration "byte bVar1;" type_identifier identifier ;) (declaration "uint uVar2;" type_identifier identifier ;) (declaration "void *__src;" primitive_type (pointer_declarator "*__src" * identifier) ;) (declaration "code *pcVar3;" type_identifier (pointer_declarator "*pcVar3" * identifier) ;) (declaration "void *pvVar4;" primitive_type (pointer_declarator "*pvVar4" * identifier) ;) (declaration "ushort uVar5;" type_identifier identifier ;) (declaration "char cVar6;" primitive_type identifier ;) (declaration "int iVar7;" primitive_type identifier ;) (declaration "uint uVar8;" type_identifier identifier ;) (declaration "uint uVar9;" type_identifier identifier ;) (declaration "long lVar10;" (sized_type_specifier "long" long) identifier ;) (declaration "void *__dest;" primitive_type (pointer_declarator "*__dest" * identifier) ;) (declaration "uint *puVar11;" type_identifier (pointer_declarator "*puVar11" * identifier) ;) (declaration "long lVar12;" (sized_type_specifier "long" long) identifier ;) (declaration "int iVar13;" primitive_type identifier ;) (declaration "ulong uVar14;" type_identifier identifier ;) (declaration "byte *pbVar15;" type_identifier (pointer_declarator "*pbVar15" * identifier) ;) (declaration "undefined8 *puVar16;" type_identifier (pointer_declarator "*puVar16" * identifier) ;) (declaration "long *plVar17;" (sized_type_specifier "long" long) (pointer_declarator "*plVar17" * identifier) ;) (declaration "long lVar18;" (sized_type_specifier "long" long) identifier ;) (declaration "void *pvVar19;" primitive_type (pointer_declarator "*pvVar19" * identifier) ;) (declaration "size_t __n;" primitive_type identifier ;) (declaration "long lVar20;" (sized_type_specifier "long" long) identifier ;) (declaration "uint *local_70;" type_identifier (pointer_declarator "*local_70" * identifier) ;) (declaration "size_t local_68;" primitive_type identifier ;) (declaration "uint *local_60;" type_identifier (pointer_declarator "*local_60" * identifier) ;) (declaration "uint local_58;" type_identifier identifier ;) (declaration "uint uStack_54;" type_identifier identifier ;) (declaration "uint *puStack_50;" type_identifier (pointer_declarator "*puStack_50" * identifier) ;) (declaration "uint local_48;" type_identifier identifier ;) (declaration "undefined4 uStack_44;" type_identifier identifier ;) (expression_statement "lVar10 = param_1[6];" (assignment_expression "lVar10 = param_1[6]" identifier = (subscript_expression "param_1[6]" identifier [ number_literal ])) ;) (if_statement "if (lVar10 == 0) {\n                    /* WARNING: Subroutine does not return */\n    FUN_001e9890("../../gold/dwarf_reader.cc",0x2a9,"read_attributes");\n  }" if (parenthesized_expression "(lVar10 == 0)" ( (binary_expression "lVar10 == 0" identifier == number_literal) )) (compound_statement "{\n                    /* WARNING: Subroutine does not return */\n    FUN_001e9890("../../gold/dwarf_reader.cc",0x2a9,"read_attributes");\n  }" { comment (expression_statement "FUN_001e9890("../../gold/dwarf_reader.cc",0x2a9,"read_attributes");" (call_expression "FUN_001e9890("../../gold/dwarf_reader.cc",0x2a9,"read_attributes")" identifier (argument_list "("../../gold/dwarf_reader.cc",0x2a9,"read_attributes")" ( (string_literal ""../../gold/dwarf_reader.cc"" " string_content ") , number_literal , (string_literal ""read_attributes"" " string_content ") ))) ;) })) (expression_statement "lVar20 = *param_1;" (assignment_expression "lVar20 = *param_1" identifier = (pointer_expression "*param_1" * identifier)) ;) (expression_statement "lVar18 = param_1[2];" (assignment_expression "lVar18 = param_1[2]" identifier = (subscript_expression "param_1[2]" identifier [ number_literal ])) ;) (expression_statement "lVar12 = *(long *)(lVar20 + 0x50) + lVar18 + *(long *)(lVar20 + 0x40);" (assignment_expression "lVar12 = *(long *)(lVar20 + 0x50) + lVar18 + *(long *)(lVar20 + 0x40)" identifier = (binary_expression "*(long *)(lVar20 + 0x50) + lVar18 + *(long *)(lVar20 + 0x40)" (binary_expression "*(long *)(lVar20 + 0x50) + lVar18" (pointer_expression "*(long *)(lVar20 + 0x50)" * (cast_expression "(long *)(lVar20 + 0x50)" ( (type_descriptor "long *" (sized_type_specifier "long" long) (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(lVar20 + 0x50)" ( (binary_expression "lVar20 + 0x50" identifier + number_literal) )))) + identifier) + (pointer_expression "*(long *)(lVar20 + 0x40)" * (cast_expression "(long *)(lVar20 + 0x40)" ( (type_descriptor "long *" (sized_type_specifier "long" long) (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(lVar20 + 0x40)" ( (binary_expression "lVar20 + 0x40" identifier + number_literal) )))))) ;) (if_statement "if ((ulong)(*(long *)(lVar20 + 0x40) + *(long *)(lVar20 + 0x50) + *(long *)(lVar20 + 0x58)) <\n      lVar12 + 1U) {\n    FUN_00301e70();\n    return 0;\n  }" if (parenthesized_expression "((ulong)(*(long *)(lVar20 + 0x40) + *(long *)(lVar20 + 0x50) + *(long *)(lVar20 + 0x58)) <\n      lVar12 + 1U)" ( (binary_expression "(ulong)(*(long *)(lVar20 + 0x40) + *(long *)(lVar20 + 0x50) + *(long *)(lVar20 + 0x58)) <\n      lVar12 + 1U" (call_expression "(ulong)(*(long *)(lVar20 + 0x40) + *(long *)(lVar20 + 0x50) + *(long *)(lVar20 + 0x58))" (parenthesized_expression "(ulong)" ( identifier )) (argument_list "(*(long *)(lVar20 + 0x40) + *(long *)(lVar20 + 0x50) + *(long *)(lVar20 + 0x58))" ( (binary_expression "*(long *)(lVar20 + 0x40) + *(long *)(lVar20 + 0x50) + *(long *)(lVar20 + 0x58)" (binary_expression "*(long *)(lVar20 + 0x40) + *(long *)(lVar20 + 0x50)" (pointer_expression "*(long *)(lVar20 + 0x40)" * (cast_expression "(long *)(lVar20 + 0x40)" ( (type_descriptor "long *" (sized_type_specifier "long" long) (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(lVar20 + 0x40)" ( (binary_expression "lVar20 + 0x40" identifier + number_literal) )))) + (pointer_expression "*(long *)(lVar20 + 0x50)" * (cast_expression "(long *)(lVar20 + 0x50)" ( (type_descriptor "long *" (sized_type_specifier "long" long) (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(lVar20 + 0x50)" ( (binary_expression "lVar20 + 0x50" identifier + number_literal) ))))) + (pointer_expression "*(long *)(lVar20 + 0x58)" * (cast_expression "(long *)(lVar20 + 0x58)" ( (type_descriptor "long *" (sized_type_specifier "long" long) (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(lVar20 + 0x58)" ( (binary_expression "lVar20 + 0x58" identifier + number_literal) ))))) ))) < (binary_expression "lVar12 + 1U" identifier + number_literal)) )) (compound_statement "{\n    FUN_00301e70();\n    return 0;\n  }" { (expression_statement "FUN_00301e70();" (call_expression "FUN_00301e70()" identifier (argument_list "()" ( ))) ;) (return_statement "return 0;" return number_literal ;) })) (if_statement "if (lVar12 == 0) {\n    return 0;\n  }" if (parenthesized_expression "(lVar12 == 0)" ( (binary_expression "lVar12 == 0" identifier == number_literal) )) (compound_statement "{\n    return 0;\n  }" { (return_statement "return 0;" return number_literal ;) })) (expression_statement "__src = (void *)param_1[7];" (assignment_expression "__src = (void *)param_1[7]" identifier = (cast_expression "(void *)param_1[7]" ( (type_descriptor "void *" primitive_type (abstract_pointer_declarator "*" *)) ) (subscript_expression "param_1[7]" identifier [ number_literal ]))) ;) (expression_statement "local_70 = (uint *)(param_1[3] + lVar12);" (assignment_expression "local_70 = (uint *)(param_1[3] + lVar12)" identifier = (cast_expression "(uint *)(param_1[3] + lVar12)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1[3] + lVar12)" ( (binary_expression "param_1[3] + lVar12" (subscript_expression "param_1[3]" identifier [ number_literal ]) + identifier) )))) ;) (expression_statement "uVar14 = *(long *)(lVar10 + 0x10) - *(long *)(lVar10 + 8) >> 3;" (assignment_expression "uVar14 = *(long *)(lVar10 + 0x10) - *(long *)(lVar10 + 8) >> 3" identifier = (binary_expression "*(long *)(lVar10 + 0x10) - *(long *)(lVar10 + 8) >> 3" (binary_expression "*(long *)(lVar10 + 0x10) - *(long *)(lVar10 + 8)" (pointer_expression "*(long *)(lVar10 + 0x10)" * (cast_expression "(long *)(lVar10 + 0x10)" ( (type_descriptor "long *" (sized_type_specifier "long" long) (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(lVar10 + 0x10)" ( (binary_expression "lVar10 + 0x10" identifier + number_literal) )))) - (pointer_expression "*(long *)(lVar10 + 8)" * (cast_expression "(long *)(lVar10 + 8)" ( (type_descriptor "long *" (sized_type_specifier "long" long) (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(lVar10 + 8)" ( (binary_expression "lVar10 + 8" identifier + number_literal) ))))) >> number_literal)) ;) (expression_statement "iVar13 = (int)uVar14;" (assignment_expression "iVar13 = (int)uVar14" identifier = (cast_expression "(int)uVar14" ( (type_descriptor "int" primitive_type) ) identifier)) ;) (expression_statement "uVar14 = uVar14 & 0xffffffff;" (assignment_expression "uVar14 = uVar14 & 0xffffffff" identifier = (binary_expression "uVar14 & 0xffffffff" identifier & number_literal)) ;) (if_statement "if ((ulong)((param_1[9] - (long)__src >> 3) * -0x5555555555555555) < uVar14) {\n    pvVar4 = (void *)param_1[8];\n    __n = (long)pvVar4 - (long)__src;\n    if (uVar14 == 0) {\n      __dest = (void *)0x0;\n      pvVar19 = __src;\n    }\n    else {\n      __dest = (void *)FUN_00337280(uVar14 * 0x18);\n      pvVar19 = (void *)param_1[7];\n    }\n    if (__src != pvVar4) {\n      __dest = memmove(__dest,__src,__n);\n    }\n    if (pvVar19 != (void *)0x0) {\n      FUN_00338a50(pvVar19);\n    }\n    param_1[7] = (long)__dest;\n    lVar10 = param_1[6];\n    param_1[8] = __n + (long)__dest;\n    param_1[9] = (long)(uVar14 * 0x18 + (long)__dest);\n    if (iVar13 != 0) goto LAB_00302642;\n  }\n  else {\n    if (iVar13 == 0) goto LAB_00302797;\nLAB_00302642:\n    lVar20 = 0;\n    do {\n      puVar11 = (uint *)(*(long *)(lVar10 + 8) + lVar20);\n      uVar8 = puVar11[1];\n      uVar2 = *puVar11;\n      if (uVar8 == 0x16) {\n        bVar1 = (byte)*local_70;\n        uVar8 = (uint)bVar1;\n        if ((char)bVar1 < '\0') {\n          uVar8 = FUN_002112d0((uint *)((long)local_70 + 1),&local_68,bVar1);\n          local_70 = (uint *)(local_68 + (long)local_70);\n        }\n        else {\n          local_68 = 1;\n          local_70 = (uint *)((long)local_70 + 1);\n        }\n      }\n      puVar11 = local_70;\n      pbVar15 = (byte *)((long)local_70 + (param_1[2] - lVar12));\n      local_48 = 0;\n      local_58 = uVar2;\n      uStack_54 = uVar8;\n      if (uVar8 == 0xe) {\n        lVar10 = *param_1;\n        if (*(int *)(lVar10 + 0x60) == 4) {\n          uVar8 = FUN_00305610(lVar10,&local_70);\n          local_60 = (uint *)(ulong)uVar8;\n        }\n        else {\n          pcVar3 = *(code **)(**(long **)(lVar10 + 0x10) + 0x18);\n          if (pcVar3 == FUN_001b8d10) {\n            cVar6 = (**(code **)(**(long **)(lVar10 + 0x10) + 0x1d0))();\n          }\n          else {\n            cVar6 = (*pcVar3)();\n          }\n          local_60 = *(uint **)local_70;\n          if (cVar6 != '\0') {\n            local_60 = (uint *)((ulong)local_60 >> 0x38 |\n                                ((ulong)local_60 & 0xff000000000000) >> 0x28 |\n                                ((ulong)local_60 & 0xff0000000000) >> 0x18 |\n                                ((ulong)local_60 & 0xff00000000) >> 8 |\n                                ((ulong)local_60 & 0xff000000) << 8 |\n                                ((ulong)local_60 & 0xff0000) << 0x18 |\n                                ((ulong)local_60 & 0xff00) << 0x28 | (long)local_60 << 0x38);\n          }\n          local_70 = local_70 + 2;\n        }\n        local_48 = FUN_00301dc0(*param_1,pbVar15,&local_60);\n        puStack_50 = local_60;\n        if (uVar2 != 0x31) {\n          if (uVar2 < 0x32) {\n            if ((uVar2 != 1) && (uVar2 == 3)) {\nLAB_00302f64:\n              *(uint *)(param_1 + 0xf) = local_48;\n              param_1[0xc] = (long)puStack_50;\n            }\n          }\n          else if ((uVar2 == 0x6e) || (uVar2 == 0x2007)) {\nLAB_00302fd0:\n            *(uint *)(param_1 + 0xf) = local_48;\n            param_1[0xe] = (long)puStack_50;\n          }\n        }\nLAB_00302750:\n        puVar16 = (undefined8 *)param_1[8];\n        if (puVar16 != (undefined8 *)param_1[9]) goto LAB_0030275e;\nLAB_003028c0:\n        FUN_00305860(param_1 + 7,puVar16,&local_58);\n      }\n      else {\n        if (0xe < uVar8) {\n          if (uVar8 == 0x15) {\n            bVar1 = (byte)*local_70;\n            if ((char)bVar1 < '\0') {\n              puStack_50 = (uint *)FUN_002112d0((uint *)((long)local_70 + 1),&local_68,bVar1);\n              local_70 = (uint *)(local_68 + (long)local_70);\n            }\n            else {\n              local_68 = 1;\n              local_70 = (uint *)((long)local_70 + 1);\n              puStack_50 = (uint *)(ulong)bVar1;\n            }\njoined_r0x00303052:\n            if (uVar2 != 0x31) {\n              if (uVar2 < 0x32) {\nLAB_00302c20:\n                if ((uVar2 == 1) && (local_48 == 0)) {\n                  param_1[5] = (long)puStack_50;\n                }\n                goto LAB_00302750;\n              }\n              if ((uVar2 != 0x6e) && (uVar2 != 0x2007)) {\njoined_r0x00302ce3:\n                if (uVar2 == 0x47) {\n                  param_1[0x10] = (long)puStack_50;\n                }\n                goto LAB_00302750;\n              }\nLAB_00302fb5:\n              if (uVar8 == 8) {\nLAB_003029eb:\n                param_1[0xd] = (long)puStack_50;\n              }\n              else {\nLAB_00302fbe:\n                if (uVar8 == 0xe) goto LAB_00302fd0;\n              }\n              goto LAB_00302750;\n            }\n          }\n          else {\n            if (0x15 < uVar8) {\n              if (uVar8 != 0x19) {\n                if (uVar8 < 0x1a) {\n                  if (uVar8 == 0x17) {\n                    lVar10 = *param_1;\n                    if (*(int *)(lVar10 + 0x60) == 4) {\n                      uVar9 = FUN_00305610(lVar10,&local_70);\n                      local_60 = (uint *)(ulong)uVar9;\n                    }\n                    else {\n                      plVar17 = *(long **)(lVar10 + 0x10);\nLAB_00302fe7:\n                      pcVar3 = *(code **)(*plVar17 + 0x18);\n                      if (pcVar3 == FUN_001b8d10) {\n                        cVar6 = (**(code **)(*plVar17 + 0x1d0))();\n                      }\n                      else {\n                        cVar6 = (*pcVar3)();\n                      }\n                      local_60 = *(uint **)local_70;\n                      if (cVar6 != '\0') {\n                        local_60 = (uint *)((ulong)local_60 >> 0x38 |\n                                            ((ulong)local_60 & 0xff000000000000) >> 0x28 |\n                                            ((ulong)local_60 & 0xff0000000000) >> 0x18 |\n                                            ((ulong)local_60 & 0xff00000000) >> 8 |\n                                            ((ulong)local_60 & 0xff000000) << 8 |\n                                            ((ulong)local_60 & 0xff0000) << 0x18 |\n                                            ((ulong)local_60 & 0xff00) << 0x28 |\n                                           (long)local_60 << 0x38);\n                      }\n                      local_70 = local_70 + 2;\n                    }\nLAB_00303035:\n                    local_48 = FUN_00301dc0(*param_1,pbVar15,&local_60);\n                    puStack_50 = local_60;\n                    goto joined_r0x00303052;\n                  }\n                  if (uVar8 != 0x18) {\n                    return 0;\n                  }\nLAB_00302a09:\n                  bVar1 = (byte)*local_70;\n                  uVar9 = (uint)bVar1;\n                  puVar11 = (uint *)((long)local_70 + 1);\n                  if ((char)bVar1 < '\0') {\n                    uVar9 = FUN_002112d0(puVar11,&local_68,bVar1);\n                    puVar11 = (uint *)((long)local_70 + local_68);\n                  }\n                  else {\n                    local_68 = 1;\n                  }\n                  local_70 = (uint *)((long)local_70 + uVar9 + local_68);\n                  puStack_50 = puVar11;\n                  local_48 = uVar9;\n                }\n                else {\n                  if (uVar8 == 0x20) {\n                    pcVar3 = *(code **)(**(long **)(*param_1 + 0x10) + 0x18);\n                    if (pcVar3 == FUN_001b8d10) {\n                      cVar6 = (**(code **)(**(long **)(*param_1 + 0x10) + 0x1d0))();\n                    }\n                    else {\n                      cVar6 = (*pcVar3)();\n                    }\n                    puStack_50 = *(uint **)local_70;\n                    if (cVar6 != '\0') {\n                      puStack_50 = (uint *)((ulong)puStack_50 >> 0x38 |\n                                            ((ulong)puStack_50 & 0xff000000000000) >> 0x28 |\n                                            ((ulong)puStack_50 & 0xff0000000000) >> 0x18 |\n                                            ((ulong)puStack_50 & 0xff00000000) >> 8 |\n                                            ((ulong)puStack_50 & 0xff000000) << 8 |\n                                            ((ulong)puStack_50 & 0xff0000) << 0x18 |\n                                            ((ulong)puStack_50 & 0xff00) << 0x28 |\n                                           (long)puStack_50 << 0x38);\n                    }\n                    local_70 = local_70 + 2;\n                    goto LAB_00302ea9;\n                  }\n                  if (uVar8 < 0x20) {\n                    return 0;\n                  }\n                  if (1 < uVar8 - 0x1f01) {\n                    return 0;\n                  }\nLAB_00302bcd:\n                  bVar1 = (byte)*local_70;\n                  if ((char)bVar1 < '\0') {\n                    puStack_50 = (uint *)FUN_002112d0((uint *)((long)local_70 + 1),&local_68,bVar1);\n                    local_70 = (uint *)(local_68 + (long)local_70);\n                  }\n                  else {\n                    local_68 = 1;\n                    local_70 = (uint *)((long)local_70 + 1);\n                    puStack_50 = (uint *)(ulong)bVar1;\n                  }\n                }\nLAB_00302f92:\n                if (uVar2 == 0x31) goto LAB_00302750;\n                if (0x31 < uVar2) {\n                  if ((uVar2 == 0x6e) || (uVar2 == 0x2007)) goto LAB_00302fb5;\n                  goto LAB_00302750;\n                }\n                goto LAB_00302e3e;\n              }\n              puStack_50 = (uint *)0x1;\nLAB_00302ea9:\n              if (((uVar2 == 0x31) || (0x31 < uVar2)) || (uVar2 != 3)) goto LAB_00302750;\nLAB_00302e52:\n              if (uVar8 == 8) {\nLAB_003029c7:\n                param_1[0xb] = (long)puStack_50;\n              }\n              else if (uVar8 == 0xe) goto LAB_00302f64;\n              goto LAB_00302750;\n            }\n            if (uVar8 != 0x11) {\n              if (0x11 < uVar8) {\n                if (uVar8 == 0x13) {\n                  uVar9 = FUN_00305610(*param_1,&local_70);\n                  local_60 = (uint *)(ulong)uVar9;\n                  goto LAB_00303035;\n                }\n                if (0x13 < uVar8) {\n                  plVar17 = *(long **)(*param_1 + 0x10);\n                  goto LAB_00302fe7;\n                }\n                pcVar3 = *(code **)(**(long **)(*param_1 + 0x10) + 0x18);\n                if (pcVar3 == FUN_001b8d10) {\n                  cVar6 = (**(code **)(**(long **)(*param_1 + 0x10) + 0x1d0))();\n                }\n                else {\n                  cVar6 = (*pcVar3)();\n                }\n                uVar5 = (ushort)*local_70;\n                if (cVar6 != '\0') {\n                  uVar5 = CONCAT11((byte)*local_70,*(byte *)((long)local_70 + 1));\n                }\n                local_70 = (uint *)((long)local_70 + 2);\n                puStack_50 = (uint *)(ulong)uVar5;\n                goto joined_r0x00303052;\n              }\n              if (uVar8 == 0xf) goto LAB_00302bcd;\n              if (uVar8 != 0x10) {\n                return 0;\n              }\n              lVar10 = *param_1;\n              iVar7 = *(int *)(lVar10 + 100);\n              if (2 < *(uint *)(lVar10 + 0x68)) {\n                iVar7 = *(int *)(lVar10 + 0x60);\n              }\n              if (iVar7 != 4) goto LAB_00302a71;\nLAB_00302e7d:\n              uVar8 = FUN_00305610(lVar10,&local_70);\n              local_60 = (uint *)(ulong)uVar8;\nLAB_00302abe:\n              local_48 = FUN_00301dc0(*param_1,pbVar15,&local_60);\n              puStack_50 = local_60;\n              if (uVar2 == 0x31) goto LAB_00302965;\n              if (0x31 < uVar2) goto joined_r0x00302ccc;\n              goto LAB_00302c20;\n            }\n            puVar11 = (uint *)((long)local_70 + 1);\n            puStack_50 = (uint *)(ulong)(byte)*local_70;\n            local_70 = puVar11;\n            if (uVar2 != 0x31) {\n              if (uVar2 < 0x32) {\n                if (uVar2 == 1) {\n                  param_1[5] = (long)puStack_50;\n                }\n                goto LAB_00302750;\n              }\njoined_r0x00302ccc:\n              if ((uVar2 == 0x6e) || (uVar2 == 0x2007)) goto LAB_00302750;\n              goto joined_r0x00302ce3;\n            }\n          }\nLAB_00302965:\n          param_1[0x11] = (long)puStack_50;\n          goto LAB_00302750;\n        }\n        if (uVar8 == 7) {\n          pcVar3 = *(code **)(**(long **)(*param_1 + 0x10) + 0x18);\n          if (pcVar3 == FUN_001b8d10) {\n            cVar6 = (**(code **)(**(long **)(*param_1 + 0x10) + 0x1d0))();\n          }\n          else {\n            cVar6 = (*pcVar3)();\n          }\n          local_60 = *(uint **)local_70;\n          if (cVar6 != '\0') {\n            local_60 = (uint *)((ulong)local_60 >> 0x38 |\n                                ((ulong)local_60 & 0xff000000000000) >> 0x28 |\n                                ((ulong)local_60 & 0xff0000000000) >> 0x18 |\n                                ((ulong)local_60 & 0xff00000000) >> 8 |\n                                ((ulong)local_60 & 0xff000000) << 8 |\n                                ((ulong)local_60 & 0xff0000) << 0x18 |\n                                ((ulong)local_60 & 0xff00) << 0x28 | (long)local_60 << 0x38);\n          }\n          local_70 = local_70 + 2;\nLAB_00302d40:\n          local_48 = FUN_00301dc0(*param_1,pbVar15,&local_60);\n          puStack_50 = local_60;\njoined_r0x00302748:\n          if ((uVar2 != 0x31) && (uVar2 < 0x32)) {\nLAB_00302e3e:\n            if ((uVar2 != 1) && (uVar2 == 3)) goto LAB_00302e52;\n          }\n          goto LAB_00302750;\n        }\n        if (uVar8 < 8) {\n          if (uVar8 == 4) {\n            pcVar3 = *(code **)(**(long **)(*param_1 + 0x10) + 0x18);\n            if (pcVar3 == FUN_001b8d10) {\n              cVar6 = (**(code **)(**(long **)(*param_1 + 0x10) + 0x1d0))();\n            }\n            else {\n              cVar6 = (*pcVar3)();\n            }\n            local_48 = *local_70;\n            if (cVar6 != '\0') {\n              local_48 = local_48 >> 0x18 | (local_48 & 0xff0000) >> 8 | (local_48 & 0xff00) << 8 |\n                         local_48 << 0x18;\n            }\n            puStack_50 = local_70 + 1;\n            local_70 = (uint *)((long)puStack_50 + (ulong)local_48);\n          }\n          else if (uVar8 < 5) {\n            if (uVar8 == 1) {\n              lVar10 = *param_1;\n              if (*(int *)(lVar10 + 100) == 4) goto LAB_00302e7d;\nLAB_00302a71:\n              pcVar3 = *(code **)(**(long **)(lVar10 + 0x10) + 0x18);\n              if (pcVar3 == FUN_001b8d10) {\n                cVar6 = (**(code **)(**(long **)(lVar10 + 0x10) + 0x1d0))();\n              }\n              else {\n                cVar6 = (*pcVar3)();\n              }\n              local_60 = *(uint **)local_70;\n              if (cVar6 != '\0') {\n                local_60 = (uint *)((ulong)local_60 >> 0x38 |\n                                    ((ulong)local_60 & 0xff000000000000) >> 0x28 |\n                                    ((ulong)local_60 & 0xff0000000000) >> 0x18 |\n                                    ((ulong)local_60 & 0xff00000000) >> 8 |\n                                    ((ulong)local_60 & 0xff000000) << 8 |\n                                    ((ulong)local_60 & 0xff0000) << 0x18 |\n                                    ((ulong)local_60 & 0xff00) << 0x28 | (long)local_60 << 0x38);\n              }\n              local_70 = local_70 + 2;\n              goto LAB_00302abe;\n            }\n            if (uVar8 != 3) {\n              return 0;\n            }\n            pcVar3 = *(code **)(**(long **)(*param_1 + 0x10) + 0x18);\n            if (pcVar3 == FUN_001b8d10) {\n              cVar6 = (**(code **)(**(long **)(*param_1 + 0x10) + 0x1d0))();\n            }\n            else {\n              cVar6 = (*pcVar3)();\n            }\n            uVar5 = (ushort)*local_70;\n            if (cVar6 != '\0') {\n              uVar5 = CONCAT11((byte)*local_70,*(byte *)((long)local_70 + 1));\n            }\n            local_48 = (uint)uVar5;\n            puStack_50 = (uint *)((long)local_70 + 2);\n            local_70 = (uint *)((long)puStack_50 + (ulong)local_48);\n          }\n          else {\n            if (uVar8 != 5) {\n              if (uVar8 != 6) {\n                return 0;\n              }\n              pcVar3 = *(code **)(**(long **)(*param_1 + 0x10) + 0x18);\n              if (pcVar3 == FUN_001b8d10) {\n                cVar6 = (**(code **)(**(long **)(*param_1 + 0x10) + 0x1d0))();\n              }\n              else {\n                cVar6 = (*pcVar3)();\n              }\n              uVar9 = *local_70;\n              if (cVar6 != '\0') {\n                uVar9 = uVar9 >> 0x18 | (uVar9 & 0xff0000) >> 8 | (uVar9 & 0xff00) << 8 |\n                        uVar9 << 0x18;\n              }\n              local_60 = (uint *)(ulong)uVar9;\n              local_70 = local_70 + 1;\n              goto LAB_00302d40;\n            }\n            pcVar3 = *(code **)(**(long **)(*param_1 + 0x10) + 0x18);\n            if (pcVar3 == FUN_001b8d10) {\n              cVar6 = (**(code **)(**(long **)(*param_1 + 0x10) + 0x1d0))();\n            }\n            else {\n              cVar6 = (*pcVar3)();\n            }\n            uVar5 = (ushort)*local_70;\n            if (cVar6 != '\0') {\n              uVar5 = CONCAT11((byte)*local_70,*(byte *)((long)local_70 + 1));\n            }\n            local_70 = (uint *)((long)local_70 + 2);\n            puStack_50 = (uint *)(ulong)uVar5;\n          }\n          goto joined_r0x00302748;\n        }\n        if (uVar8 == 10) {\n          puStack_50 = (uint *)((long)local_70 + 1);\n          uVar9 = *local_70;\n          local_70 = (uint *)((long)puStack_50 + (ulong)(byte)uVar9);\n          local_48 = (uint)(byte)uVar9;\n          goto joined_r0x00302748;\n        }\n        if (uVar8 < 0xb) {\n          if (uVar8 != 8) {\n            if (uVar8 != 9) {\n              return 0;\n            }\n            goto LAB_00302a09;\n          }\n          puStack_50 = local_70;\n          local_68 = strlen((char *)local_70);\n          local_70 = (uint *)((long)puVar11 + local_68 + 1);\n          if (uVar2 == 0x31) goto LAB_00302750;\n          if (0x31 < uVar2) {\n            if ((uVar2 != 0x6e) && (uVar2 != 0x2007)) goto LAB_00302750;\n            goto LAB_003029eb;\n          }\n          if ((uVar2 == 1) || (uVar2 != 3)) goto LAB_00302750;\n          goto LAB_003029c7;\n        }\n        if (uVar8 < 0xd) {\n          uVar9 = *local_70;\n          local_70 = (uint *)((long)local_70 + 1);\n          puStack_50 = (uint *)(ulong)(byte)uVar9;\n          goto LAB_00302f92;\n        }\n        bVar1 = (byte)*local_70;\n        puVar11 = (uint *)((long)local_70 + 1);\n        if ((char)bVar1 < '\0') {\n          puStack_50 = (uint *)FUN_00211340(puVar11,&local_68);\n          puVar11 = (uint *)(local_68 + (long)local_70);\n        }\n        else {\n          local_68 = 1;\n          puStack_50 = (uint *)(ulong)bVar1;\n          if ((bVar1 & 0x40) != 0) {\n            puStack_50 = (uint *)((ulong)bVar1 | 0xffffffffffffff80);\n          }\n        }\n        local_70 = puVar11;\n        if ((uVar2 == 0x31) || (uVar2 < 0x32)) goto LAB_00302750;\n        if ((uVar2 == 0x6e) || (uVar2 == 0x2007)) goto LAB_00302fbe;\n        puVar16 = (undefined8 *)param_1[8];\n        if (puVar16 == (undefined8 *)param_1[9]) goto LAB_003028c0;\nLAB_0030275e:\n        *puVar16 = CONCAT44(uStack_54,local_58);\n        puVar16[1] = puStack_50;\n        puVar16[2] = CONCAT44(uStack_44,local_48);\n        param_1[8] = (long)(puVar16 + 3);\n      }\n      lVar20 = lVar20 + 8;\n      lVar10 = param_1[6];\n    } while (lVar20 != (ulong)(iVar13 - 1) * 8 + 8);\n  }" if (parenthesized_expression "((ulong)((param_1[9] - (long)__src >> 3) * -0x5555555555555555) < uVar14)" ( (binary_expression "(ulong)((param_1[9] - (long)__src >> 3) * -0x5555555555555555) < uVar14" (call_expression "(ulong)((param_1[9] - (long)__src >> 3) * -0x5555555555555555)" (parenthesized_expression "(ulong)" ( identifier )) (argument_list "((param_1[9] - (long)__src >> 3) * -0x5555555555555555)" ( (binary_expression "(param_1[9] - (long)__src >> 3) * -0x5555555555555555" (parenthesized_expression "(param_1[9] - (long)__src >> 3)" ( (binary_expression "param_1[9] - (long)__src >> 3" (binary_expression "param_1[9] - (long)__src" (subscript_expression "param_1[9]" identifier [ number_literal ]) - (cast_expression "(long)__src" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) identifier)) >> number_literal) )) * number_literal) ))) < identifier) )) (compound_statement "{\n    pvVar4 = (void *)param_1[8];\n    __n = (long)pvVar4 - (long)__src;\n    if (uVar14 == 0) {\n      __dest = (void *)0x0;\n      pvVar19 = __src;\n    }\n    else {\n      __dest = (void *)FUN_00337280(uVar14 * 0x18);\n      pvVar19 = (void *)param_1[7];\n    }\n    if (__src != pvVar4) {\n      __dest = memmove(__dest,__src,__n);\n    }\n    if (pvVar19 != (void *)0x0) {\n      FUN_00338a50(pvVar19);\n    }\n    param_1[7] = (long)__dest;\n    lVar10 = param_1[6];\n    param_1[8] = __n + (long)__dest;\n    param_1[9] = (long)(uVar14 * 0x18 + (long)__dest);\n    if (iVar13 != 0) goto LAB_00302642;\n  }" { (expression_statement "pvVar4 = (void *)param_1[8];" (assignment_expression "pvVar4 = (void *)param_1[8]" identifier = (cast_expression "(void *)param_1[8]" ( (type_descriptor "void *" primitive_type (abstract_pointer_declarator "*" *)) ) (subscript_expression "param_1[8]" identifier [ number_literal ]))) ;) (expression_statement "__n = (long)pvVar4 - (long)__src;" (assignment_expression "__n = (long)pvVar4 - (long)__src" identifier = (binary_expression "(long)pvVar4 - (long)__src" (cast_expression "(long)pvVar4" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) identifier) - (cast_expression "(long)__src" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) identifier))) ;) (if_statement "if (uVar14 == 0) {\n      __dest = (void *)0x0;\n      pvVar19 = __src;\n    }\n    else {\n      __dest = (void *)FUN_00337280(uVar14 * 0x18);\n      pvVar19 = (void *)param_1[7];\n    }" if (parenthesized_expression "(uVar14 == 0)" ( (binary_expression "uVar14 == 0" identifier == number_literal) )) (compound_statement "{\n      __dest = (void *)0x0;\n      pvVar19 = __src;\n    }" { (expression_statement "__dest = (void *)0x0;" (assignment_expression "__dest = (void *)0x0" identifier = (cast_expression "(void *)0x0" ( (type_descriptor "void *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (expression_statement "pvVar19 = __src;" (assignment_expression "pvVar19 = __src" identifier = identifier) ;) }) (else_clause "else {\n      __dest = (void *)FUN_00337280(uVar14 * 0x18);\n      pvVar19 = (void *)param_1[7];\n    }" else (compound_statement "{\n      __dest = (void *)FUN_00337280(uVar14 * 0x18);\n      pvVar19 = (void *)param_1[7];\n    }" { (expression_statement "__dest = (void *)FUN_00337280(uVar14 * 0x18);" (assignment_expression "__dest = (void *)FUN_00337280(uVar14 * 0x18)" identifier = (cast_expression "(void *)FUN_00337280(uVar14 * 0x18)" ( (type_descriptor "void *" primitive_type (abstract_pointer_declarator "*" *)) ) (call_expression "FUN_00337280(uVar14 * 0x18)" identifier (argument_list "(uVar14 * 0x18)" ( (binary_expression "uVar14 * 0x18" identifier * number_literal) ))))) ;) (expression_statement "pvVar19 = (void *)param_1[7];" (assignment_expression "pvVar19 = (void *)param_1[7]" identifier = (cast_expression "(void *)param_1[7]" ( (type_descriptor "void *" primitive_type (abstract_pointer_declarator "*" *)) ) (subscript_expression "param_1[7]" identifier [ number_literal ]))) ;) }))) (if_statement "if (__src != pvVar4) {\n      __dest = memmove(__dest,__src,__n);\n    }" if (parenthesized_expression "(__src != pvVar4)" ( (binary_expression "__src != pvVar4" identifier != identifier) )) (compound_statement "{\n      __dest = memmove(__dest,__src,__n);\n    }" { (expression_statement "__dest = memmove(__dest,__src,__n);" (assignment_expression "__dest = memmove(__dest,__src,__n)" identifier = (call_expression "memmove(__dest,__src,__n)" identifier (argument_list "(__dest,__src,__n)" ( identifier , identifier , identifier )))) ;) })) (if_statement "if (pvVar19 != (void *)0x0) {\n      FUN_00338a50(pvVar19);\n    }" if (parenthesized_expression "(pvVar19 != (void *)0x0)" ( (binary_expression "pvVar19 != (void *)0x0" identifier != (cast_expression "(void *)0x0" ( (type_descriptor "void *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n      FUN_00338a50(pvVar19);\n    }" { (expression_statement "FUN_00338a50(pvVar19);" (call_expression "FUN_00338a50(pvVar19)" identifier (argument_list "(pvVar19)" ( identifier ))) ;) })) (expression_statement "param_1[7] = (long)__dest;" (assignment_expression "param_1[7] = (long)__dest" (subscript_expression "param_1[7]" identifier [ number_literal ]) = (cast_expression "(long)__dest" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) identifier)) ;) (expression_statement "lVar10 = param_1[6];" (assignment_expression "lVar10 = param_1[6]" identifier = (subscript_expression "param_1[6]" identifier [ number_literal ])) ;) (expression_statement "param_1[8] = __n + (long)__dest;" (assignment_expression "param_1[8] = __n + (long)__dest" (subscript_expression "param_1[8]" identifier [ number_literal ]) = (binary_expression "__n + (long)__dest" identifier + (cast_expression "(long)__dest" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) identifier))) ;) (expression_statement "param_1[9] = (long)(uVar14 * 0x18 + (long)__dest);" (assignment_expression "param_1[9] = (long)(uVar14 * 0x18 + (long)__dest)" (subscript_expression "param_1[9]" identifier [ number_literal ]) = (cast_expression "(long)(uVar14 * 0x18 + (long)__dest)" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) (parenthesized_expression "(uVar14 * 0x18 + (long)__dest)" ( (binary_expression "uVar14 * 0x18 + (long)__dest" (binary_expression "uVar14 * 0x18" identifier * number_literal) + (cast_expression "(long)__dest" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) identifier)) )))) ;) (if_statement "if (iVar13 != 0) goto LAB_00302642;" if (parenthesized_expression "(iVar13 != 0)" ( (binary_expression "iVar13 != 0" identifier != number_literal) )) (goto_statement "goto LAB_00302642;" goto statement_identifier ;)) }) (else_clause "else {\n    if (iVar13 == 0) goto LAB_00302797;\nLAB_00302642:\n    lVar20 = 0;\n    do {\n      puVar11 = (uint *)(*(long *)(lVar10 + 8) + lVar20);\n      uVar8 = puVar11[1];\n      uVar2 = *puVar11;\n      if (uVar8 == 0x16) {\n        bVar1 = (byte)*local_70;\n        uVar8 = (uint)bVar1;\n        if ((char)bVar1 < '\0') {\n          uVar8 = FUN_002112d0((uint *)((long)local_70 + 1),&local_68,bVar1);\n          local_70 = (uint *)(local_68 + (long)local_70);\n        }\n        else {\n          local_68 = 1;\n          local_70 = (uint *)((long)local_70 + 1);\n        }\n      }\n      puVar11 = local_70;\n      pbVar15 = (byte *)((long)local_70 + (param_1[2] - lVar12));\n      local_48 = 0;\n      local_58 = uVar2;\n      uStack_54 = uVar8;\n      if (uVar8 == 0xe) {\n        lVar10 = *param_1;\n        if (*(int *)(lVar10 + 0x60) == 4) {\n          uVar8 = FUN_00305610(lVar10,&local_70);\n          local_60 = (uint *)(ulong)uVar8;\n        }\n        else {\n          pcVar3 = *(code **)(**(long **)(lVar10 + 0x10) + 0x18);\n          if (pcVar3 == FUN_001b8d10) {\n            cVar6 = (**(code **)(**(long **)(lVar10 + 0x10) + 0x1d0))();\n          }\n          else {\n            cVar6 = (*pcVar3)();\n          }\n          local_60 = *(uint **)local_70;\n          if (cVar6 != '\0') {\n            local_60 = (uint *)((ulong)local_60 >> 0x38 |\n                                ((ulong)local_60 & 0xff000000000000) >> 0x28 |\n                                ((ulong)local_60 & 0xff0000000000) >> 0x18 |\n                                ((ulong)local_60 & 0xff00000000) >> 8 |\n                                ((ulong)local_60 & 0xff000000) << 8 |\n                                ((ulong)local_60 & 0xff0000) << 0x18 |\n                                ((ulong)local_60 & 0xff00) << 0x28 | (long)local_60 << 0x38);\n          }\n          local_70 = local_70 + 2;\n        }\n        local_48 = FUN_00301dc0(*param_1,pbVar15,&local_60);\n        puStack_50 = local_60;\n        if (uVar2 != 0x31) {\n          if (uVar2 < 0x32) {\n            if ((uVar2 != 1) && (uVar2 == 3)) {\nLAB_00302f64:\n              *(uint *)(param_1 + 0xf) = local_48;\n              param_1[0xc] = (long)puStack_50;\n            }\n          }\n          else if ((uVar2 == 0x6e) || (uVar2 == 0x2007)) {\nLAB_00302fd0:\n            *(uint *)(param_1 + 0xf) = local_48;\n            param_1[0xe] = (long)puStack_50;\n          }\n        }\nLAB_00302750:\n        puVar16 = (undefined8 *)param_1[8];\n        if (puVar16 != (undefined8 *)param_1[9]) goto LAB_0030275e;\nLAB_003028c0:\n        FUN_00305860(param_1 + 7,puVar16,&local_58);\n      }\n      else {\n        if (0xe < uVar8) {\n          if (uVar8 == 0x15) {\n            bVar1 = (byte)*local_70;\n            if ((char)bVar1 < '\0') {\n              puStack_50 = (uint *)FUN_002112d0((uint *)((long)local_70 + 1),&local_68,bVar1);\n              local_70 = (uint *)(local_68 + (long)local_70);\n            }\n            else {\n              local_68 = 1;\n              local_70 = (uint *)((long)local_70 + 1);\n              puStack_50 = (uint *)(ulong)bVar1;\n            }\njoined_r0x00303052:\n            if (uVar2 != 0x31) {\n              if (uVar2 < 0x32) {\nLAB_00302c20:\n                if ((uVar2 == 1) && (local_48 == 0)) {\n                  param_1[5] = (long)puStack_50;\n                }\n                goto LAB_00302750;\n              }\n              if ((uVar2 != 0x6e) && (uVar2 != 0x2007)) {\njoined_r0x00302ce3:\n                if (uVar2 == 0x47) {\n                  param_1[0x10] = (long)puStack_50;\n                }\n                goto LAB_00302750;\n              }\nLAB_00302fb5:\n              if (uVar8 == 8) {\nLAB_003029eb:\n                param_1[0xd] = (long)puStack_50;\n              }\n              else {\nLAB_00302fbe:\n                if (uVar8 == 0xe) goto LAB_00302fd0;\n              }\n              goto LAB_00302750;\n            }\n          }\n          else {\n            if (0x15 < uVar8) {\n              if (uVar8 != 0x19) {\n                if (uVar8 < 0x1a) {\n                  if (uVar8 == 0x17) {\n                    lVar10 = *param_1;\n                    if (*(int *)(lVar10 + 0x60) == 4) {\n                      uVar9 = FUN_00305610(lVar10,&local_70);\n                      local_60 = (uint *)(ulong)uVar9;\n                    }\n                    else {\n                      plVar17 = *(long **)(lVar10 + 0x10);\nLAB_00302fe7:\n                      pcVar3 = *(code **)(*plVar17 + 0x18);\n                      if (pcVar3 == FUN_001b8d10) {\n                        cVar6 = (**(code **)(*plVar17 + 0x1d0))();\n                      }\n                      else {\n                        cVar6 = (*pcVar3)();\n                      }\n                      local_60 = *(uint **)local_70;\n                      if (cVar6 != '\0') {\n                        local_60 = (uint *)((ulong)local_60 >> 0x38 |\n                                            ((ulong)local_60 & 0xff000000000000) >> 0x28 |\n                                            ((ulong)local_60 & 0xff0000000000) >> 0x18 |\n                                            ((ulong)local_60 & 0xff00000000) >> 8 |\n                                            ((ulong)local_60 & 0xff000000) << 8 |\n                                            ((ulong)local_60 & 0xff0000) << 0x18 |\n                                            ((ulong)local_60 & 0xff00) << 0x28 |\n                                           (long)local_60 << 0x38);\n                      }\n                      local_70 = local_70 + 2;\n                    }\nLAB_00303035:\n                    local_48 = FUN_00301dc0(*param_1,pbVar15,&local_60);\n                    puStack_50 = local_60;\n                    goto joined_r0x00303052;\n                  }\n                  if (uVar8 != 0x18) {\n                    return 0;\n                  }\nLAB_00302a09:\n                  bVar1 = (byte)*local_70;\n                  uVar9 = (uint)bVar1;\n                  puVar11 = (uint *)((long)local_70 + 1);\n                  if ((char)bVar1 < '\0') {\n                    uVar9 = FUN_002112d0(puVar11,&local_68,bVar1);\n                    puVar11 = (uint *)((long)local_70 + local_68);\n                  }\n                  else {\n                    local_68 = 1;\n                  }\n                  local_70 = (uint *)((long)local_70 + uVar9 + local_68);\n                  puStack_50 = puVar11;\n                  local_48 = uVar9;\n                }\n                else {\n                  if (uVar8 == 0x20) {\n                    pcVar3 = *(code **)(**(long **)(*param_1 + 0x10) + 0x18);\n                    if (pcVar3 == FUN_001b8d10) {\n                      cVar6 = (**(code **)(**(long **)(*param_1 + 0x10) + 0x1d0))();\n                    }\n                    else {\n                      cVar6 = (*pcVar3)();\n                    }\n                    puStack_50 = *(uint **)local_70;\n                    if (cVar6 != '\0') {\n                      puStack_50 = (uint *)((ulong)puStack_50 >> 0x38 |\n                                            ((ulong)puStack_50 & 0xff000000000000) >> 0x28 |\n                                            ((ulong)puStack_50 & 0xff0000000000) >> 0x18 |\n                                            ((ulong)puStack_50 & 0xff00000000) >> 8 |\n                                            ((ulong)puStack_50 & 0xff000000) << 8 |\n                                            ((ulong)puStack_50 & 0xff0000) << 0x18 |\n                                            ((ulong)puStack_50 & 0xff00) << 0x28 |\n                                           (long)puStack_50 << 0x38);\n                    }\n                    local_70 = local_70 + 2;\n                    goto LAB_00302ea9;\n                  }\n                  if (uVar8 < 0x20) {\n                    return 0;\n                  }\n                  if (1 < uVar8 - 0x1f01) {\n                    return 0;\n                  }\nLAB_00302bcd:\n                  bVar1 = (byte)*local_70;\n                  if ((char)bVar1 < '\0') {\n                    puStack_50 = (uint *)FUN_002112d0((uint *)((long)local_70 + 1),&local_68,bVar1);\n                    local_70 = (uint *)(local_68 + (long)local_70);\n                  }\n                  else {\n                    local_68 = 1;\n                    local_70 = (uint *)((long)local_70 + 1);\n                    puStack_50 = (uint *)(ulong)bVar1;\n                  }\n                }\nLAB_00302f92:\n                if (uVar2 == 0x31) goto LAB_00302750;\n                if (0x31 < uVar2) {\n                  if ((uVar2 == 0x6e) || (uVar2 == 0x2007)) goto LAB_00302fb5;\n                  goto LAB_00302750;\n                }\n                goto LAB_00302e3e;\n              }\n              puStack_50 = (uint *)0x1;\nLAB_00302ea9:\n              if (((uVar2 == 0x31) || (0x31 < uVar2)) || (uVar2 != 3)) goto LAB_00302750;\nLAB_00302e52:\n              if (uVar8 == 8) {\nLAB_003029c7:\n                param_1[0xb] = (long)puStack_50;\n              }\n              else if (uVar8 == 0xe) goto LAB_00302f64;\n              goto LAB_00302750;\n            }\n            if (uVar8 != 0x11) {\n              if (0x11 < uVar8) {\n                if (uVar8 == 0x13) {\n                  uVar9 = FUN_00305610(*param_1,&local_70);\n                  local_60 = (uint *)(ulong)uVar9;\n                  goto LAB_00303035;\n                }\n                if (0x13 < uVar8) {\n                  plVar17 = *(long **)(*param_1 + 0x10);\n                  goto LAB_00302fe7;\n                }\n                pcVar3 = *(code **)(**(long **)(*param_1 + 0x10) + 0x18);\n                if (pcVar3 == FUN_001b8d10) {\n                  cVar6 = (**(code **)(**(long **)(*param_1 + 0x10) + 0x1d0))();\n                }\n                else {\n                  cVar6 = (*pcVar3)();\n                }\n                uVar5 = (ushort)*local_70;\n                if (cVar6 != '\0') {\n                  uVar5 = CONCAT11((byte)*local_70,*(byte *)((long)local_70 + 1));\n                }\n                local_70 = (uint *)((long)local_70 + 2);\n                puStack_50 = (uint *)(ulong)uVar5;\n                goto joined_r0x00303052;\n              }\n              if (uVar8 == 0xf) goto LAB_00302bcd;\n              if (uVar8 != 0x10) {\n                return 0;\n              }\n              lVar10 = *param_1;\n              iVar7 = *(int *)(lVar10 + 100);\n              if (2 < *(uint *)(lVar10 + 0x68)) {\n                iVar7 = *(int *)(lVar10 + 0x60);\n              }\n              if (iVar7 != 4) goto LAB_00302a71;\nLAB_00302e7d:\n              uVar8 = FUN_00305610(lVar10,&local_70);\n              local_60 = (uint *)(ulong)uVar8;\nLAB_00302abe:\n              local_48 = FUN_00301dc0(*param_1,pbVar15,&local_60);\n              puStack_50 = local_60;\n              if (uVar2 == 0x31) goto LAB_00302965;\n              if (0x31 < uVar2) goto joined_r0x00302ccc;\n              goto LAB_00302c20;\n            }\n            puVar11 = (uint *)((long)local_70 + 1);\n            puStack_50 = (uint *)(ulong)(byte)*local_70;\n            local_70 = puVar11;\n            if (uVar2 != 0x31) {\n              if (uVar2 < 0x32) {\n                if (uVar2 == 1) {\n                  param_1[5] = (long)puStack_50;\n                }\n                goto LAB_00302750;\n              }\njoined_r0x00302ccc:\n              if ((uVar2 == 0x6e) || (uVar2 == 0x2007)) goto LAB_00302750;\n              goto joined_r0x00302ce3;\n            }\n          }\nLAB_00302965:\n          param_1[0x11] = (long)puStack_50;\n          goto LAB_00302750;\n        }\n        if (uVar8 == 7) {\n          pcVar3 = *(code **)(**(long **)(*param_1 + 0x10) + 0x18);\n          if (pcVar3 == FUN_001b8d10) {\n            cVar6 = (**(code **)(**(long **)(*param_1 + 0x10) + 0x1d0))();\n          }\n          else {\n            cVar6 = (*pcVar3)();\n          }\n          local_60 = *(uint **)local_70;\n          if (cVar6 != '\0') {\n            local_60 = (uint *)((ulong)local_60 >> 0x38 |\n                                ((ulong)local_60 & 0xff000000000000) >> 0x28 |\n                                ((ulong)local_60 & 0xff0000000000) >> 0x18 |\n                                ((ulong)local_60 & 0xff00000000) >> 8 |\n                                ((ulong)local_60 & 0xff000000) << 8 |\n                                ((ulong)local_60 & 0xff0000) << 0x18 |\n                                ((ulong)local_60 & 0xff00) << 0x28 | (long)local_60 << 0x38);\n          }\n          local_70 = local_70 + 2;\nLAB_00302d40:\n          local_48 = FUN_00301dc0(*param_1,pbVar15,&local_60);\n          puStack_50 = local_60;\njoined_r0x00302748:\n          if ((uVar2 != 0x31) && (uVar2 < 0x32)) {\nLAB_00302e3e:\n            if ((uVar2 != 1) && (uVar2 == 3)) goto LAB_00302e52;\n          }\n          goto LAB_00302750;\n        }\n        if (uVar8 < 8) {\n          if (uVar8 == 4) {\n            pcVar3 = *(code **)(**(long **)(*param_1 + 0x10) + 0x18);\n            if (pcVar3 == FUN_001b8d10) {\n              cVar6 = (**(code **)(**(long **)(*param_1 + 0x10) + 0x1d0))();\n            }\n            else {\n              cVar6 = (*pcVar3)();\n            }\n            local_48 = *local_70;\n            if (cVar6 != '\0') {\n              local_48 = local_48 >> 0x18 | (local_48 & 0xff0000) >> 8 | (local_48 & 0xff00) << 8 |\n                         local_48 << 0x18;\n            }\n            puStack_50 = local_70 + 1;\n            local_70 = (uint *)((long)puStack_50 + (ulong)local_48);\n          }\n          else if (uVar8 < 5) {\n            if (uVar8 == 1) {\n              lVar10 = *param_1;\n              if (*(int *)(lVar10 + 100) == 4) goto LAB_00302e7d;\nLAB_00302a71:\n              pcVar3 = *(code **)(**(long **)(lVar10 + 0x10) + 0x18);\n              if (pcVar3 == FUN_001b8d10) {\n                cVar6 = (**(code **)(**(long **)(lVar10 + 0x10) + 0x1d0))();\n              }\n              else {\n                cVar6 = (*pcVar3)();\n              }\n              local_60 = *(uint **)local_70;\n              if (cVar6 != '\0') {\n                local_60 = (uint *)((ulong)local_60 >> 0x38 |\n                                    ((ulong)local_60 & 0xff000000000000) >> 0x28 |\n                                    ((ulong)local_60 & 0xff0000000000) >> 0x18 |\n                                    ((ulong)local_60 & 0xff00000000) >> 8 |\n                                    ((ulong)local_60 & 0xff000000) << 8 |\n                                    ((ulong)local_60 & 0xff0000) << 0x18 |\n                                    ((ulong)local_60 & 0xff00) << 0x28 | (long)local_60 << 0x38);\n              }\n              local_70 = local_70 + 2;\n              goto LAB_00302abe;\n            }\n            if (uVar8 != 3) {\n              return 0;\n            }\n            pcVar3 = *(code **)(**(long **)(*param_1 + 0x10) + 0x18);\n            if (pcVar3 == FUN_001b8d10) {\n              cVar6 = (**(code **)(**(long **)(*param_1 + 0x10) + 0x1d0))();\n            }\n            else {\n              cVar6 = (*pcVar3)();\n            }\n            uVar5 = (ushort)*local_70;\n            if (cVar6 != '\0') {\n              uVar5 = CONCAT11((byte)*local_70,*(byte *)((long)local_70 + 1));\n            }\n            local_48 = (uint)uVar5;\n            puStack_50 = (uint *)((long)local_70 + 2);\n            local_70 = (uint *)((long)puStack_50 + (ulong)local_48);\n          }\n          else {\n            if (uVar8 != 5) {\n              if (uVar8 != 6) {\n                return 0;\n              }\n              pcVar3 = *(code **)(**(long **)(*param_1 + 0x10) + 0x18);\n              if (pcVar3 == FUN_001b8d10) {\n                cVar6 = (**(code **)(**(long **)(*param_1 + 0x10) + 0x1d0))();\n              }\n              else {\n                cVar6 = (*pcVar3)();\n              }\n              uVar9 = *local_70;\n              if (cVar6 != '\0') {\n                uVar9 = uVar9 >> 0x18 | (uVar9 & 0xff0000) >> 8 | (uVar9 & 0xff00) << 8 |\n                        uVar9 << 0x18;\n              }\n              local_60 = (uint *)(ulong)uVar9;\n              local_70 = local_70 + 1;\n              goto LAB_00302d40;\n            }\n            pcVar3 = *(code **)(**(long **)(*param_1 + 0x10) + 0x18);\n            if (pcVar3 == FUN_001b8d10) {\n              cVar6 = (**(code **)(**(long **)(*param_1 + 0x10) + 0x1d0))();\n            }\n            else {\n              cVar6 = (*pcVar3)();\n            }\n            uVar5 = (ushort)*local_70;\n            if (cVar6 != '\0') {\n              uVar5 = CONCAT11((byte)*local_70,*(byte *)((long)local_70 + 1));\n            }\n            local_70 = (uint *)((long)local_70 + 2);\n            puStack_50 = (uint *)(ulong)uVar5;\n          }\n          goto joined_r0x00302748;\n        }\n        if (uVar8 == 10) {\n          puStack_50 = (uint *)((long)local_70 + 1);\n          uVar9 = *local_70;\n          local_70 = (uint *)((long)puStack_50 + (ulong)(byte)uVar9);\n          local_48 = (uint)(byte)uVar9;\n          goto joined_r0x00302748;\n        }\n        if (uVar8 < 0xb) {\n          if (uVar8 != 8) {\n            if (uVar8 != 9) {\n              return 0;\n            }\n            goto LAB_00302a09;\n          }\n          puStack_50 = local_70;\n          local_68 = strlen((char *)local_70);\n          local_70 = (uint *)((long)puVar11 + local_68 + 1);\n          if (uVar2 == 0x31) goto LAB_00302750;\n          if (0x31 < uVar2) {\n            if ((uVar2 != 0x6e) && (uVar2 != 0x2007)) goto LAB_00302750;\n            goto LAB_003029eb;\n          }\n          if ((uVar2 == 1) || (uVar2 != 3)) goto LAB_00302750;\n          goto LAB_003029c7;\n        }\n        if (uVar8 < 0xd) {\n          uVar9 = *local_70;\n          local_70 = (uint *)((long)local_70 + 1);\n          puStack_50 = (uint *)(ulong)(byte)uVar9;\n          goto LAB_00302f92;\n        }\n        bVar1 = (byte)*local_70;\n        puVar11 = (uint *)((long)local_70 + 1);\n        if ((char)bVar1 < '\0') {\n          puStack_50 = (uint *)FUN_00211340(puVar11,&local_68);\n          puVar11 = (uint *)(local_68 + (long)local_70);\n        }\n        else {\n          local_68 = 1;\n          puStack_50 = (uint *)(ulong)bVar1;\n          if ((bVar1 & 0x40) != 0) {\n            puStack_50 = (uint *)((ulong)bVar1 | 0xffffffffffffff80);\n          }\n        }\n        local_70 = puVar11;\n        if ((uVar2 == 0x31) || (uVar2 < 0x32)) goto LAB_00302750;\n        if ((uVar2 == 0x6e) || (uVar2 == 0x2007)) goto LAB_00302fbe;\n        puVar16 = (undefined8 *)param_1[8];\n        if (puVar16 == (undefined8 *)param_1[9]) goto LAB_003028c0;\nLAB_0030275e:\n        *puVar16 = CONCAT44(uStack_54,local_58);\n        puVar16[1] = puStack_50;\n        puVar16[2] = CONCAT44(uStack_44,local_48);\n        param_1[8] = (long)(puVar16 + 3);\n      }\n      lVar20 = lVar20 + 8;\n      lVar10 = param_1[6];\n    } while (lVar20 != (ulong)(iVar13 - 1) * 8 + 8);\n  }" else (compound_statement "{\n    if (iVar13 == 0) goto LAB_00302797;\nLAB_00302642:\n    lVar20 = 0;\n    do {\n      puVar11 = (uint *)(*(long *)(lVar10 + 8) + lVar20);\n      uVar8 = puVar11[1];\n      uVar2 = *puVar11;\n      if (uVar8 == 0x16) {\n        bVar1 = (byte)*local_70;\n        uVar8 = (uint)bVar1;\n        if ((char)bVar1 < '\0') {\n          uVar8 = FUN_002112d0((uint *)((long)local_70 + 1),&local_68,bVar1);\n          local_70 = (uint *)(local_68 + (long)local_70);\n        }\n        else {\n          local_68 = 1;\n          local_70 = (uint *)((long)local_70 + 1);\n        }\n      }\n      puVar11 = local_70;\n      pbVar15 = (byte *)((long)local_70 + (param_1[2] - lVar12));\n      local_48 = 0;\n      local_58 = uVar2;\n      uStack_54 = uVar8;\n      if (uVar8 == 0xe) {\n        lVar10 = *param_1;\n        if (*(int *)(lVar10 + 0x60) == 4) {\n          uVar8 = FUN_00305610(lVar10,&local_70);\n          local_60 = (uint *)(ulong)uVar8;\n        }\n        else {\n          pcVar3 = *(code **)(**(long **)(lVar10 + 0x10) + 0x18);\n          if (pcVar3 == FUN_001b8d10) {\n            cVar6 = (**(code **)(**(long **)(lVar10 + 0x10) + 0x1d0))();\n          }\n          else {\n            cVar6 = (*pcVar3)();\n          }\n          local_60 = *(uint **)local_70;\n          if (cVar6 != '\0') {\n            local_60 = (uint *)((ulong)local_60 >> 0x38 |\n                                ((ulong)local_60 & 0xff000000000000) >> 0x28 |\n                                ((ulong)local_60 & 0xff0000000000) >> 0x18 |\n                                ((ulong)local_60 & 0xff00000000) >> 8 |\n                                ((ulong)local_60 & 0xff000000) << 8 |\n                                ((ulong)local_60 & 0xff0000) << 0x18 |\n                                ((ulong)local_60 & 0xff00) << 0x28 | (long)local_60 << 0x38);\n          }\n          local_70 = local_70 + 2;\n        }\n        local_48 = FUN_00301dc0(*param_1,pbVar15,&local_60);\n        puStack_50 = local_60;\n        if (uVar2 != 0x31) {\n          if (uVar2 < 0x32) {\n            if ((uVar2 != 1) && (uVar2 == 3)) {\nLAB_00302f64:\n              *(uint *)(param_1 + 0xf) = local_48;\n              param_1[0xc] = (long)puStack_50;\n            }\n          }\n          else if ((uVar2 == 0x6e) || (uVar2 == 0x2007)) {\nLAB_00302fd0:\n            *(uint *)(param_1 + 0xf) = local_48;\n            param_1[0xe] = (long)puStack_50;\n          }\n        }\nLAB_00302750:\n        puVar16 = (undefined8 *)param_1[8];\n        if (puVar16 != (undefined8 *)param_1[9]) goto LAB_0030275e;\nLAB_003028c0:\n        FUN_00305860(param_1 + 7,puVar16,&local_58);\n      }\n      else {\n        if (0xe < uVar8) {\n          if (uVar8 == 0x15) {\n            bVar1 = (byte)*local_70;\n            if ((char)bVar1 < '\0') {\n              puStack_50 = (uint *)FUN_002112d0((uint *)((long)local_70 + 1),&local_68,bVar1);\n              local_70 = (uint *)(local_68 + (long)local_70);\n            }\n            else {\n              local_68 = 1;\n              local_70 = (uint *)((long)local_70 + 1);\n              puStack_50 = (uint *)(ulong)bVar1;\n            }\njoined_r0x00303052:\n            if (uVar2 != 0x31) {\n              if (uVar2 < 0x32) {\nLAB_00302c20:\n                if ((uVar2 == 1) && (local_48 == 0)) {\n                  param_1[5] = (long)puStack_50;\n                }\n                goto LAB_00302750;\n              }\n              if ((uVar2 != 0x6e) && (uVar2 != 0x2007)) {\njoined_r0x00302ce3:\n                if (uVar2 == 0x47) {\n                  param_1[0x10] = (long)puStack_50;\n                }\n                goto LAB_00302750;\n              }\nLAB_00302fb5:\n              if (uVar8 == 8) {\nLAB_003029eb:\n                param_1[0xd] = (long)puStack_50;\n              }\n              else {\nLAB_00302fbe:\n                if (uVar8 == 0xe) goto LAB_00302fd0;\n              }\n              goto LAB_00302750;\n            }\n          }\n          else {\n            if (0x15 < uVar8) {\n              if (uVar8 != 0x19) {\n                if (uVar8 < 0x1a) {\n                  if (uVar8 == 0x17) {\n                    lVar10 = *param_1;\n                    if (*(int *)(lVar10 + 0x60) == 4) {\n                      uVar9 = FUN_00305610(lVar10,&local_70);\n                      local_60 = (uint *)(ulong)uVar9;\n                    }\n                    else {\n                      plVar17 = *(long **)(lVar10 + 0x10);\nLAB_00302fe7:\n                      pcVar3 = *(code **)(*plVar17 + 0x18);\n                      if (pcVar3 == FUN_001b8d10) {\n                        cVar6 = (**(code **)(*plVar17 + 0x1d0))();\n                      }\n                      else {\n                        cVar6 = (*pcVar3)();\n                      }\n                      local_60 = *(uint **)local_70;\n                      if (cVar6 != '\0') {\n                        local_60 = (uint *)((ulong)local_60 >> 0x38 |\n                                            ((ulong)local_60 & 0xff000000000000) >> 0x28 |\n                                            ((ulong)local_60 & 0xff0000000000) >> 0x18 |\n                                            ((ulong)local_60 & 0xff00000000) >> 8 |\n                                            ((ulong)local_60 & 0xff000000) << 8 |\n                                            ((ulong)local_60 & 0xff0000) << 0x18 |\n                                            ((ulong)local_60 & 0xff00) << 0x28 |\n                                           (long)local_60 << 0x38);\n                      }\n                      local_70 = local_70 + 2;\n                    }\nLAB_00303035:\n                    local_48 = FUN_00301dc0(*param_1,pbVar15,&local_60);\n                    puStack_50 = local_60;\n                    goto joined_r0x00303052;\n                  }\n                  if (uVar8 != 0x18) {\n                    return 0;\n                  }\nLAB_00302a09:\n                  bVar1 = (byte)*local_70;\n                  uVar9 = (uint)bVar1;\n                  puVar11 = (uint *)((long)local_70 + 1);\n                  if ((char)bVar1 < '\0') {\n                    uVar9 = FUN_002112d0(puVar11,&local_68,bVar1);\n                    puVar11 = (uint *)((long)local_70 + local_68);\n                  }\n                  else {\n                    local_68 = 1;\n                  }\n                  local_70 = (uint *)((long)local_70 + uVar9 + local_68);\n                  puStack_50 = puVar11;\n                  local_48 = uVar9;\n                }\n                else {\n                  if (uVar8 == 0x20) {\n                    pcVar3 = *(code **)(**(long **)(*param_1 + 0x10) + 0x18);\n                    if (pcVar3 == FUN_001b8d10) {\n                      cVar6 = (**(code **)(**(long **)(*param_1 + 0x10) + 0x1d0))();\n                    }\n                    else {\n                      cVar6 = (*pcVar3)();\n                    }\n                    puStack_50 = *(uint **)local_70;\n                    if (cVar6 != '\0') {\n                      puStack_50 = (uint *)((ulong)puStack_50 >> 0x38 |\n                                            ((ulong)puStack_50 & 0xff000000000000) >> 0x28 |\n                                            ((ulong)puStack_50 & 0xff0000000000) >> 0x18 |\n                                            ((ulong)puStack_50 & 0xff00000000) >> 8 |\n                                            ((ulong)puStack_50 & 0xff000000) << 8 |\n                                            ((ulong)puStack_50 & 0xff0000) << 0x18 |\n                                            ((ulong)puStack_50 & 0xff00) << 0x28 |\n                                           (long)puStack_50 << 0x38);\n                    }\n                    local_70 = local_70 + 2;\n                    goto LAB_00302ea9;\n                  }\n                  if (uVar8 < 0x20) {\n                    return 0;\n                  }\n                  if (1 < uVar8 - 0x1f01) {\n                    return 0;\n                  }\nLAB_00302bcd:\n                  bVar1 = (byte)*local_70;\n                  if ((char)bVar1 < '\0') {\n                    puStack_50 = (uint *)FUN_002112d0((uint *)((long)local_70 + 1),&local_68,bVar1);\n                    local_70 = (uint *)(local_68 + (long)local_70);\n                  }\n                  else {\n                    local_68 = 1;\n                    local_70 = (uint *)((long)local_70 + 1);\n                    puStack_50 = (uint *)(ulong)bVar1;\n                  }\n                }\nLAB_00302f92:\n                if (uVar2 == 0x31) goto LAB_00302750;\n                if (0x31 < uVar2) {\n                  if ((uVar2 == 0x6e) || (uVar2 == 0x2007)) goto LAB_00302fb5;\n                  goto LAB_00302750;\n                }\n                goto LAB_00302e3e;\n              }\n              puStack_50 = (uint *)0x1;\nLAB_00302ea9:\n              if (((uVar2 == 0x31) || (0x31 < uVar2)) || (uVar2 != 3)) goto LAB_00302750;\nLAB_00302e52:\n              if (uVar8 == 8) {\nLAB_003029c7:\n                param_1[0xb] = (long)puStack_50;\n              }\n              else if (uVar8 == 0xe) goto LAB_00302f64;\n              goto LAB_00302750;\n            }\n            if (uVar8 != 0x11) {\n              if (0x11 < uVar8) {\n                if (uVar8 == 0x13) {\n                  uVar9 = FUN_00305610(*param_1,&local_70);\n                  local_60 = (uint *)(ulong)uVar9;\n                  goto LAB_00303035;\n                }\n                if (0x13 < uVar8) {\n                  plVar17 = *(long **)(*param_1 + 0x10);\n                  goto LAB_00302fe7;\n                }\n                pcVar3 = *(code **)(**(long **)(*param_1 + 0x10) + 0x18);\n                if (pcVar3 == FUN_001b8d10) {\n                  cVar6 = (**(code **)(**(long **)(*param_1 + 0x10) + 0x1d0))();\n                }\n                else {\n                  cVar6 = (*pcVar3)();\n                }\n                uVar5 = (ushort)*local_70;\n                if (cVar6 != '\0') {\n                  uVar5 = CONCAT11((byte)*local_70,*(byte *)((long)local_70 + 1));\n                }\n                local_70 = (uint *)((long)local_70 + 2);\n                puStack_50 = (uint *)(ulong)uVar5;\n                goto joined_r0x00303052;\n              }\n              if (uVar8 == 0xf) goto LAB_00302bcd;\n              if (uVar8 != 0x10) {\n                return 0;\n              }\n              lVar10 = *param_1;\n              iVar7 = *(int *)(lVar10 + 100);\n              if (2 < *(uint *)(lVar10 + 0x68)) {\n                iVar7 = *(int *)(lVar10 + 0x60);\n              }\n              if (iVar7 != 4) goto LAB_00302a71;\nLAB_00302e7d:\n              uVar8 = FUN_00305610(lVar10,&local_70);\n              local_60 = (uint *)(ulong)uVar8;\nLAB_00302abe:\n              local_48 = FUN_00301dc0(*param_1,pbVar15,&local_60);\n              puStack_50 = local_60;\n              if (uVar2 == 0x31) goto LAB_00302965;\n              if (0x31 < uVar2) goto joined_r0x00302ccc;\n              goto LAB_00302c20;\n            }\n            puVar11 = (uint *)((long)local_70 + 1);\n            puStack_50 = (uint *)(ulong)(byte)*local_70;\n            local_70 = puVar11;\n            if (uVar2 != 0x31) {\n              if (uVar2 < 0x32) {\n                if (uVar2 == 1) {\n                  param_1[5] = (long)puStack_50;\n                }\n                goto LAB_00302750;\n              }\njoined_r0x00302ccc:\n              if ((uVar2 == 0x6e) || (uVar2 == 0x2007)) goto LAB_00302750;\n              goto joined_r0x00302ce3;\n            }\n          }\nLAB_00302965:\n          param_1[0x11] = (long)puStack_50;\n          goto LAB_00302750;\n        }\n        if (uVar8 == 7) {\n          pcVar3 = *(code **)(**(long **)(*param_1 + 0x10) + 0x18);\n          if (pcVar3 == FUN_001b8d10) {\n            cVar6 = (**(code **)(**(long **)(*param_1 + 0x10) + 0x1d0))();\n          }\n          else {\n            cVar6 = (*pcVar3)();\n          }\n          local_60 = *(uint **)local_70;\n          if (cVar6 != '\0') {\n            local_60 = (uint *)((ulong)local_60 >> 0x38 |\n                                ((ulong)local_60 & 0xff000000000000) >> 0x28 |\n                                ((ulong)local_60 & 0xff0000000000) >> 0x18 |\n                                ((ulong)local_60 & 0xff00000000) >> 8 |\n                                ((ulong)local_60 & 0xff000000) << 8 |\n                                ((ulong)local_60 & 0xff0000) << 0x18 |\n                                ((ulong)local_60 & 0xff00) << 0x28 | (long)local_60 << 0x38);\n          }\n          local_70 = local_70 + 2;\nLAB_00302d40:\n          local_48 = FUN_00301dc0(*param_1,pbVar15,&local_60);\n          puStack_50 = local_60;\njoined_r0x00302748:\n          if ((uVar2 != 0x31) && (uVar2 < 0x32)) {\nLAB_00302e3e:\n            if ((uVar2 != 1) && (uVar2 == 3)) goto LAB_00302e52;\n          }\n          goto LAB_00302750;\n        }\n        if (uVar8 < 8) {\n          if (uVar8 == 4) {\n            pcVar3 = *(code **)(**(long **)(*param_1 + 0x10) + 0x18);\n            if (pcVar3 == FUN_001b8d10) {\n              cVar6 = (**(code **)(**(long **)(*param_1 + 0x10) + 0x1d0))();\n            }\n            else {\n              cVar6 = (*pcVar3)();\n            }\n            local_48 = *local_70;\n            if (cVar6 != '\0') {\n              local_48 = local_48 >> 0x18 | (local_48 & 0xff0000) >> 8 | (local_48 & 0xff00) << 8 |\n                         local_48 << 0x18;\n            }\n            puStack_50 = local_70 + 1;\n            local_70 = (uint *)((long)puStack_50 + (ulong)local_48);\n          }\n          else if (uVar8 < 5) {\n            if (uVar8 == 1) {\n              lVar10 = *param_1;\n              if (*(int *)(lVar10 + 100) == 4) goto LAB_00302e7d;\nLAB_00302a71:\n              pcVar3 = *(code **)(**(long **)(lVar10 + 0x10) + 0x18);\n              if (pcVar3 == FUN_001b8d10) {\n                cVar6 = (**(code **)(**(long **)(lVar10 + 0x10) + 0x1d0))();\n              }\n              else {\n                cVar6 = (*pcVar3)();\n              }\n              local_60 = *(uint **)local_70;\n              if (cVar6 != '\0') {\n                local_60 = (uint *)((ulong)local_60 >> 0x38 |\n                                    ((ulong)local_60 & 0xff000000000000) >> 0x28 |\n                                    ((ulong)local_60 & 0xff0000000000) >> 0x18 |\n                                    ((ulong)local_60 & 0xff00000000) >> 8 |\n                                    ((ulong)local_60 & 0xff000000) << 8 |\n                                    ((ulong)local_60 & 0xff0000) << 0x18 |\n                                    ((ulong)local_60 & 0xff00) << 0x28 | (long)local_60 << 0x38);\n              }\n              local_70 = local_70 + 2;\n              goto LAB_00302abe;\n            }\n            if (uVar8 != 3) {\n              return 0;\n            }\n            pcVar3 = *(code **)(**(long **)(*param_1 + 0x10) + 0x18);\n            if (pcVar3 == FUN_001b8d10) {\n              cVar6 = (**(code **)(**(long **)(*param_1 + 0x10) + 0x1d0))();\n            }\n            else {\n              cVar6 = (*pcVar3)();\n            }\n            uVar5 = (ushort)*local_70;\n            if (cVar6 != '\0') {\n              uVar5 = CONCAT11((byte)*local_70,*(byte *)((long)local_70 + 1));\n            }\n            local_48 = (uint)uVar5;\n            puStack_50 = (uint *)((long)local_70 + 2);\n            local_70 = (uint *)((long)puStack_50 + (ulong)local_48);\n          }\n          else {\n            if (uVar8 != 5) {\n              if (uVar8 != 6) {\n                return 0;\n              }\n              pcVar3 = *(code **)(**(long **)(*param_1 + 0x10) + 0x18);\n              if (pcVar3 == FUN_001b8d10) {\n                cVar6 = (**(code **)(**(long **)(*param_1 + 0x10) + 0x1d0))();\n              }\n              else {\n                cVar6 = (*pcVar3)();\n              }\n              uVar9 = *local_70;\n              if (cVar6 != '\0') {\n                uVar9 = uVar9 >> 0x18 | (uVar9 & 0xff0000) >> 8 | (uVar9 & 0xff00) << 8 |\n                        uVar9 << 0x18;\n              }\n              local_60 = (uint *)(ulong)uVar9;\n              local_70 = local_70 + 1;\n              goto LAB_00302d40;\n            }\n            pcVar3 = *(code **)(**(long **)(*param_1 + 0x10) + 0x18);\n            if (pcVar3 == FUN_001b8d10) {\n              cVar6 = (**(code **)(**(long **)(*param_1 + 0x10) + 0x1d0))();\n            }\n            else {\n              cVar6 = (*pcVar3)();\n            }\n            uVar5 = (ushort)*local_70;\n            if (cVar6 != '\0') {\n              uVar5 = CONCAT11((byte)*local_70,*(byte *)((long)local_70 + 1));\n            }\n            local_70 = (uint *)((long)local_70 + 2);\n            puStack_50 = (uint *)(ulong)uVar5;\n          }\n          goto joined_r0x00302748;\n        }\n        if (uVar8 == 10) {\n          puStack_50 = (uint *)((long)local_70 + 1);\n          uVar9 = *local_70;\n          local_70 = (uint *)((long)puStack_50 + (ulong)(byte)uVar9);\n          local_48 = (uint)(byte)uVar9;\n          goto joined_r0x00302748;\n        }\n        if (uVar8 < 0xb) {\n          if (uVar8 != 8) {\n            if (uVar8 != 9) {\n              return 0;\n            }\n            goto LAB_00302a09;\n          }\n          puStack_50 = local_70;\n          local_68 = strlen((char *)local_70);\n          local_70 = (uint *)((long)puVar11 + local_68 + 1);\n          if (uVar2 == 0x31) goto LAB_00302750;\n          if (0x31 < uVar2) {\n            if ((uVar2 != 0x6e) && (uVar2 != 0x2007)) goto LAB_00302750;\n            goto LAB_003029eb;\n          }\n          if ((uVar2 == 1) || (uVar2 != 3)) goto LAB_00302750;\n          goto LAB_003029c7;\n        }\n        if (uVar8 < 0xd) {\n          uVar9 = *local_70;\n          local_70 = (uint *)((long)local_70 + 1);\n          puStack_50 = (uint *)(ulong)(byte)uVar9;\n          goto LAB_00302f92;\n        }\n        bVar1 = (byte)*local_70;\n        puVar11 = (uint *)((long)local_70 + 1);\n        if ((char)bVar1 < '\0') {\n          puStack_50 = (uint *)FUN_00211340(puVar11,&local_68);\n          puVar11 = (uint *)(local_68 + (long)local_70);\n        }\n        else {\n          local_68 = 1;\n          puStack_50 = (uint *)(ulong)bVar1;\n          if ((bVar1 & 0x40) != 0) {\n            puStack_50 = (uint *)((ulong)bVar1 | 0xffffffffffffff80);\n          }\n        }\n        local_70 = puVar11;\n        if ((uVar2 == 0x31) || (uVar2 < 0x32)) goto LAB_00302750;\n        if ((uVar2 == 0x6e) || (uVar2 == 0x2007)) goto LAB_00302fbe;\n        puVar16 = (undefined8 *)param_1[8];\n        if (puVar16 == (undefined8 *)param_1[9]) goto LAB_003028c0;\nLAB_0030275e:\n        *puVar16 = CONCAT44(uStack_54,local_58);\n        puVar16[1] = puStack_50;\n        puVar16[2] = CONCAT44(uStack_44,local_48);\n        param_1[8] = (long)(puVar16 + 3);\n      }\n      lVar20 = lVar20 + 8;\n      lVar10 = param_1[6];\n    } while (lVar20 != (ulong)(iVar13 - 1) * 8 + 8);\n  }" { (if_statement "if (iVar13 == 0) goto LAB_00302797;" if (parenthesized_expression "(iVar13 == 0)" ( (binary_expression "iVar13 == 0" identifier == number_literal) )) (goto_statement "goto LAB_00302797;" goto statement_identifier ;)) (labeled_statement "LAB_00302642:\n    lVar20 = 0;" statement_identifier : (expression_statement "lVar20 = 0;" (assignment_expression "lVar20 = 0" identifier = number_literal) ;)) (do_statement "do {\n      puVar11 = (uint *)(*(long *)(lVar10 + 8) + lVar20);\n      uVar8 = puVar11[1];\n      uVar2 = *puVar11;\n      if (uVar8 == 0x16) {\n        bVar1 = (byte)*local_70;\n        uVar8 = (uint)bVar1;\n        if ((char)bVar1 < '\0') {\n          uVar8 = FUN_002112d0((uint *)((long)local_70 + 1),&local_68,bVar1);\n          local_70 = (uint *)(local_68 + (long)local_70);\n        }\n        else {\n          local_68 = 1;\n          local_70 = (uint *)((long)local_70 + 1);\n        }\n      }\n      puVar11 = local_70;\n      pbVar15 = (byte *)((long)local_70 + (param_1[2] - lVar12));\n      local_48 = 0;\n      local_58 = uVar2;\n      uStack_54 = uVar8;\n      if (uVar8 == 0xe) {\n        lVar10 = *param_1;\n        if (*(int *)(lVar10 + 0x60) == 4) {\n          uVar8 = FUN_00305610(lVar10,&local_70);\n          local_60 = (uint *)(ulong)uVar8;\n        }\n        else {\n          pcVar3 = *(code **)(**(long **)(lVar10 + 0x10) + 0x18);\n          if (pcVar3 == FUN_001b8d10) {\n            cVar6 = (**(code **)(**(long **)(lVar10 + 0x10) + 0x1d0))();\n          }\n          else {\n            cVar6 = (*pcVar3)();\n          }\n          local_60 = *(uint **)local_70;\n          if (cVar6 != '\0') {\n            local_60 = (uint *)((ulong)local_60 >> 0x38 |\n                                ((ulong)local_60 & 0xff000000000000) >> 0x28 |\n                                ((ulong)local_60 & 0xff0000000000) >> 0x18 |\n                                ((ulong)local_60 & 0xff00000000) >> 8 |\n                                ((ulong)local_60 & 0xff000000) << 8 |\n                                ((ulong)local_60 & 0xff0000) << 0x18 |\n                                ((ulong)local_60 & 0xff00) << 0x28 | (long)local_60 << 0x38);\n          }\n          local_70 = local_70 + 2;\n        }\n        local_48 = FUN_00301dc0(*param_1,pbVar15,&local_60);\n        puStack_50 = local_60;\n        if (uVar2 != 0x31) {\n          if (uVar2 < 0x32) {\n            if ((uVar2 != 1) && (uVar2 == 3)) {\nLAB_00302f64:\n              *(uint *)(param_1 + 0xf) = local_48;\n              param_1[0xc] = (long)puStack_50;\n            }\n          }\n          else if ((uVar2 == 0x6e) || (uVar2 == 0x2007)) {\nLAB_00302fd0:\n            *(uint *)(param_1 + 0xf) = local_48;\n            param_1[0xe] = (long)puStack_50;\n          }\n        }\nLAB_00302750:\n        puVar16 = (undefined8 *)param_1[8];\n        if (puVar16 != (undefined8 *)param_1[9]) goto LAB_0030275e;\nLAB_003028c0:\n        FUN_00305860(param_1 + 7,puVar16,&local_58);\n      }\n      else {\n        if (0xe < uVar8) {\n          if (uVar8 == 0x15) {\n            bVar1 = (byte)*local_70;\n            if ((char)bVar1 < '\0') {\n              puStack_50 = (uint *)FUN_002112d0((uint *)((long)local_70 + 1),&local_68,bVar1);\n              local_70 = (uint *)(local_68 + (long)local_70);\n            }\n            else {\n              local_68 = 1;\n              local_70 = (uint *)((long)local_70 + 1);\n              puStack_50 = (uint *)(ulong)bVar1;\n            }\njoined_r0x00303052:\n            if (uVar2 != 0x31) {\n              if (uVar2 < 0x32) {\nLAB_00302c20:\n                if ((uVar2 == 1) && (local_48 == 0)) {\n                  param_1[5] = (long)puStack_50;\n                }\n                goto LAB_00302750;\n              }\n              if ((uVar2 != 0x6e) && (uVar2 != 0x2007)) {\njoined_r0x00302ce3:\n                if (uVar2 == 0x47) {\n                  param_1[0x10] = (long)puStack_50;\n                }\n                goto LAB_00302750;\n              }\nLAB_00302fb5:\n              if (uVar8 == 8) {\nLAB_003029eb:\n                param_1[0xd] = (long)puStack_50;\n              }\n              else {\nLAB_00302fbe:\n                if (uVar8 == 0xe) goto LAB_00302fd0;\n              }\n              goto LAB_00302750;\n            }\n          }\n          else {\n            if (0x15 < uVar8) {\n              if (uVar8 != 0x19) {\n                if (uVar8 < 0x1a) {\n                  if (uVar8 == 0x17) {\n                    lVar10 = *param_1;\n                    if (*(int *)(lVar10 + 0x60) == 4) {\n                      uVar9 = FUN_00305610(lVar10,&local_70);\n                      local_60 = (uint *)(ulong)uVar9;\n                    }\n                    else {\n                      plVar17 = *(long **)(lVar10 + 0x10);\nLAB_00302fe7:\n                      pcVar3 = *(code **)(*plVar17 + 0x18);\n                      if (pcVar3 == FUN_001b8d10) {\n                        cVar6 = (**(code **)(*plVar17 + 0x1d0))();\n                      }\n                      else {\n                        cVar6 = (*pcVar3)();\n                      }\n                      local_60 = *(uint **)local_70;\n                      if (cVar6 != '\0') {\n                        local_60 = (uint *)((ulong)local_60 >> 0x38 |\n                                            ((ulong)local_60 & 0xff000000000000) >> 0x28 |\n                                            ((ulong)local_60 & 0xff0000000000) >> 0x18 |\n                                            ((ulong)local_60 & 0xff00000000) >> 8 |\n                                            ((ulong)local_60 & 0xff000000) << 8 |\n                                            ((ulong)local_60 & 0xff0000) << 0x18 |\n                                            ((ulong)local_60 & 0xff00) << 0x28 |\n                                           (long)local_60 << 0x38);\n                      }\n                      local_70 = local_70 + 2;\n                    }\nLAB_00303035:\n                    local_48 = FUN_00301dc0(*param_1,pbVar15,&local_60);\n                    puStack_50 = local_60;\n                    goto joined_r0x00303052;\n                  }\n                  if (uVar8 != 0x18) {\n                    return 0;\n                  }\nLAB_00302a09:\n                  bVar1 = (byte)*local_70;\n                  uVar9 = (uint)bVar1;\n                  puVar11 = (uint *)((long)local_70 + 1);\n                  if ((char)bVar1 < '\0') {\n                    uVar9 = FUN_002112d0(puVar11,&local_68,bVar1);\n                    puVar11 = (uint *)((long)local_70 + local_68);\n                  }\n                  else {\n                    local_68 = 1;\n                  }\n                  local_70 = (uint *)((long)local_70 + uVar9 + local_68);\n                  puStack_50 = puVar11;\n                  local_48 = uVar9;\n                }\n                else {\n                  if (uVar8 == 0x20) {\n                    pcVar3 = *(code **)(**(long **)(*param_1 + 0x10) + 0x18);\n                    if (pcVar3 == FUN_001b8d10) {\n                      cVar6 = (**(code **)(**(long **)(*param_1 + 0x10) + 0x1d0))();\n                    }\n                    else {\n                      cVar6 = (*pcVar3)();\n                    }\n                    puStack_50 = *(uint **)local_70;\n                    if (cVar6 != '\0') {\n                      puStack_50 = (uint *)((ulong)puStack_50 >> 0x38 |\n                                            ((ulong)puStack_50 & 0xff000000000000) >> 0x28 |\n                                            ((ulong)puStack_50 & 0xff0000000000) >> 0x18 |\n                                            ((ulong)puStack_50 & 0xff00000000) >> 8 |\n                                            ((ulong)puStack_50 & 0xff000000) << 8 |\n                                            ((ulong)puStack_50 & 0xff0000) << 0x18 |\n                                            ((ulong)puStack_50 & 0xff00) << 0x28 |\n                                           (long)puStack_50 << 0x38);\n                    }\n                    local_70 = local_70 + 2;\n                    goto LAB_00302ea9;\n                  }\n                  if (uVar8 < 0x20) {\n                    return 0;\n                  }\n                  if (1 < uVar8 - 0x1f01) {\n                    return 0;\n                  }\nLAB_00302bcd:\n                  bVar1 = (byte)*local_70;\n                  if ((char)bVar1 < '\0') {\n                    puStack_50 = (uint *)FUN_002112d0((uint *)((long)local_70 + 1),&local_68,bVar1);\n                    local_70 = (uint *)(local_68 + (long)local_70);\n                  }\n                  else {\n                    local_68 = 1;\n                    local_70 = (uint *)((long)local_70 + 1);\n                    puStack_50 = (uint *)(ulong)bVar1;\n                  }\n                }\nLAB_00302f92:\n                if (uVar2 == 0x31) goto LAB_00302750;\n                if (0x31 < uVar2) {\n                  if ((uVar2 == 0x6e) || (uVar2 == 0x2007)) goto LAB_00302fb5;\n                  goto LAB_00302750;\n                }\n                goto LAB_00302e3e;\n              }\n              puStack_50 = (uint *)0x1;\nLAB_00302ea9:\n              if (((uVar2 == 0x31) || (0x31 < uVar2)) || (uVar2 != 3)) goto LAB_00302750;\nLAB_00302e52:\n              if (uVar8 == 8) {\nLAB_003029c7:\n                param_1[0xb] = (long)puStack_50;\n              }\n              else if (uVar8 == 0xe) goto LAB_00302f64;\n              goto LAB_00302750;\n            }\n            if (uVar8 != 0x11) {\n              if (0x11 < uVar8) {\n                if (uVar8 == 0x13) {\n                  uVar9 = FUN_00305610(*param_1,&local_70);\n                  local_60 = (uint *)(ulong)uVar9;\n                  goto LAB_00303035;\n                }\n                if (0x13 < uVar8) {\n                  plVar17 = *(long **)(*param_1 + 0x10);\n                  goto LAB_00302fe7;\n                }\n                pcVar3 = *(code **)(**(long **)(*param_1 + 0x10) + 0x18);\n                if (pcVar3 == FUN_001b8d10) {\n                  cVar6 = (**(code **)(**(long **)(*param_1 + 0x10) + 0x1d0))();\n                }\n                else {\n                  cVar6 = (*pcVar3)();\n                }\n                uVar5 = (ushort)*local_70;\n                if (cVar6 != '\0') {\n                  uVar5 = CONCAT11((byte)*local_70,*(byte *)((long)local_70 + 1));\n                }\n                local_70 = (uint *)((long)local_70 + 2);\n                puStack_50 = (uint *)(ulong)uVar5;\n                goto joined_r0x00303052;\n              }\n              if (uVar8 == 0xf) goto LAB_00302bcd;\n              if (uVar8 != 0x10) {\n                return 0;\n              }\n              lVar10 = *param_1;\n              iVar7 = *(int *)(lVar10 + 100);\n              if (2 < *(uint *)(lVar10 + 0x68)) {\n                iVar7 = *(int *)(lVar10 + 0x60);\n              }\n              if (iVar7 != 4) goto LAB_00302a71;\nLAB_00302e7d:\n              uVar8 = FUN_00305610(lVar10,&local_70);\n              local_60 = (uint *)(ulong)uVar8;\nLAB_00302abe:\n              local_48 = FUN_00301dc0(*param_1,pbVar15,&local_60);\n              puStack_50 = local_60;\n              if (uVar2 == 0x31) goto LAB_00302965;\n              if (0x31 < uVar2) goto joined_r0x00302ccc;\n              goto LAB_00302c20;\n            }\n            puVar11 = (uint *)((long)local_70 + 1);\n            puStack_50 = (uint *)(ulong)(byte)*local_70;\n            local_70 = puVar11;\n            if (uVar2 != 0x31) {\n              if (uVar2 < 0x32) {\n                if (uVar2 == 1) {\n                  param_1[5] = (long)puStack_50;\n                }\n                goto LAB_00302750;\n              }\njoined_r0x00302ccc:\n              if ((uVar2 == 0x6e) || (uVar2 == 0x2007)) goto LAB_00302750;\n              goto joined_r0x00302ce3;\n            }\n          }\nLAB_00302965:\n          param_1[0x11] = (long)puStack_50;\n          goto LAB_00302750;\n        }\n        if (uVar8 == 7) {\n          pcVar3 = *(code **)(**(long **)(*param_1 + 0x10) + 0x18);\n          if (pcVar3 == FUN_001b8d10) {\n            cVar6 = (**(code **)(**(long **)(*param_1 + 0x10) + 0x1d0))();\n          }\n          else {\n            cVar6 = (*pcVar3)();\n          }\n          local_60 = *(uint **)local_70;\n          if (cVar6 != '\0') {\n            local_60 = (uint *)((ulong)local_60 >> 0x38 |\n                                ((ulong)local_60 & 0xff000000000000) >> 0x28 |\n                                ((ulong)local_60 & 0xff0000000000) >> 0x18 |\n                                ((ulong)local_60 & 0xff00000000) >> 8 |\n                                ((ulong)local_60 & 0xff000000) << 8 |\n                                ((ulong)local_60 & 0xff0000) << 0x18 |\n                                ((ulong)local_60 & 0xff00) << 0x28 | (long)local_60 << 0x38);\n          }\n          local_70 = local_70 + 2;\nLAB_00302d40:\n          local_48 = FUN_00301dc0(*param_1,pbVar15,&local_60);\n          puStack_50 = local_60;\njoined_r0x00302748:\n          if ((uVar2 != 0x31) && (uVar2 < 0x32)) {\nLAB_00302e3e:\n            if ((uVar2 != 1) && (uVar2 == 3)) goto LAB_00302e52;\n          }\n          goto LAB_00302750;\n        }\n        if (uVar8 < 8) {\n          if (uVar8 == 4) {\n            pcVar3 = *(code **)(**(long **)(*param_1 + 0x10) + 0x18);\n            if (pcVar3 == FUN_001b8d10) {\n              cVar6 = (**(code **)(**(long **)(*param_1 + 0x10) + 0x1d0))();\n            }\n            else {\n              cVar6 = (*pcVar3)();\n            }\n            local_48 = *local_70;\n            if (cVar6 != '\0') {\n              local_48 = local_48 >> 0x18 | (local_48 & 0xff0000) >> 8 | (local_48 & 0xff00) << 8 |\n                         local_48 << 0x18;\n            }\n            puStack_50 = local_70 + 1;\n            local_70 = (uint *)((long)puStack_50 + (ulong)local_48);\n          }\n          else if (uVar8 < 5) {\n            if (uVar8 == 1) {\n              lVar10 = *param_1;\n              if (*(int *)(lVar10 + 100) == 4) goto LAB_00302e7d;\nLAB_00302a71:\n              pcVar3 = *(code **)(**(long **)(lVar10 + 0x10) + 0x18);\n              if (pcVar3 == FUN_001b8d10) {\n                cVar6 = (**(code **)(**(long **)(lVar10 + 0x10) + 0x1d0))();\n              }\n              else {\n                cVar6 = (*pcVar3)();\n              }\n              local_60 = *(uint **)local_70;\n              if (cVar6 != '\0') {\n                local_60 = (uint *)((ulong)local_60 >> 0x38 |\n                                    ((ulong)local_60 & 0xff000000000000) >> 0x28 |\n                                    ((ulong)local_60 & 0xff0000000000) >> 0x18 |\n                                    ((ulong)local_60 & 0xff00000000) >> 8 |\n                                    ((ulong)local_60 & 0xff000000) << 8 |\n                                    ((ulong)local_60 & 0xff0000) << 0x18 |\n                                    ((ulong)local_60 & 0xff00) << 0x28 | (long)local_60 << 0x38);\n              }\n              local_70 = local_70 + 2;\n              goto LAB_00302abe;\n            }\n            if (uVar8 != 3) {\n              return 0;\n            }\n            pcVar3 = *(code **)(**(long **)(*param_1 + 0x10) + 0x18);\n            if (pcVar3 == FUN_001b8d10) {\n              cVar6 = (**(code **)(**(long **)(*param_1 + 0x10) + 0x1d0))();\n            }\n            else {\n              cVar6 = (*pcVar3)();\n            }\n            uVar5 = (ushort)*local_70;\n            if (cVar6 != '\0') {\n              uVar5 = CONCAT11((byte)*local_70,*(byte *)((long)local_70 + 1));\n            }\n            local_48 = (uint)uVar5;\n            puStack_50 = (uint *)((long)local_70 + 2);\n            local_70 = (uint *)((long)puStack_50 + (ulong)local_48);\n          }\n          else {\n            if (uVar8 != 5) {\n              if (uVar8 != 6) {\n                return 0;\n              }\n              pcVar3 = *(code **)(**(long **)(*param_1 + 0x10) + 0x18);\n              if (pcVar3 == FUN_001b8d10) {\n                cVar6 = (**(code **)(**(long **)(*param_1 + 0x10) + 0x1d0))();\n              }\n              else {\n                cVar6 = (*pcVar3)();\n              }\n              uVar9 = *local_70;\n              if (cVar6 != '\0') {\n                uVar9 = uVar9 >> 0x18 | (uVar9 & 0xff0000) >> 8 | (uVar9 & 0xff00) << 8 |\n                        uVar9 << 0x18;\n              }\n              local_60 = (uint *)(ulong)uVar9;\n              local_70 = local_70 + 1;\n              goto LAB_00302d40;\n            }\n            pcVar3 = *(code **)(**(long **)(*param_1 + 0x10) + 0x18);\n            if (pcVar3 == FUN_001b8d10) {\n              cVar6 = (**(code **)(**(long **)(*param_1 + 0x10) + 0x1d0))();\n            }\n            else {\n              cVar6 = (*pcVar3)();\n            }\n            uVar5 = (ushort)*local_70;\n            if (cVar6 != '\0') {\n              uVar5 = CONCAT11((byte)*local_70,*(byte *)((long)local_70 + 1));\n            }\n            local_70 = (uint *)((long)local_70 + 2);\n            puStack_50 = (uint *)(ulong)uVar5;\n          }\n          goto joined_r0x00302748;\n        }\n        if (uVar8 == 10) {\n          puStack_50 = (uint *)((long)local_70 + 1);\n          uVar9 = *local_70;\n          local_70 = (uint *)((long)puStack_50 + (ulong)(byte)uVar9);\n          local_48 = (uint)(byte)uVar9;\n          goto joined_r0x00302748;\n        }\n        if (uVar8 < 0xb) {\n          if (uVar8 != 8) {\n            if (uVar8 != 9) {\n              return 0;\n            }\n            goto LAB_00302a09;\n          }\n          puStack_50 = local_70;\n          local_68 = strlen((char *)local_70);\n          local_70 = (uint *)((long)puVar11 + local_68 + 1);\n          if (uVar2 == 0x31) goto LAB_00302750;\n          if (0x31 < uVar2) {\n            if ((uVar2 != 0x6e) && (uVar2 != 0x2007)) goto LAB_00302750;\n            goto LAB_003029eb;\n          }\n          if ((uVar2 == 1) || (uVar2 != 3)) goto LAB_00302750;\n          goto LAB_003029c7;\n        }\n        if (uVar8 < 0xd) {\n          uVar9 = *local_70;\n          local_70 = (uint *)((long)local_70 + 1);\n          puStack_50 = (uint *)(ulong)(byte)uVar9;\n          goto LAB_00302f92;\n        }\n        bVar1 = (byte)*local_70;\n        puVar11 = (uint *)((long)local_70 + 1);\n        if ((char)bVar1 < '\0') {\n          puStack_50 = (uint *)FUN_00211340(puVar11,&local_68);\n          puVar11 = (uint *)(local_68 + (long)local_70);\n        }\n        else {\n          local_68 = 1;\n          puStack_50 = (uint *)(ulong)bVar1;\n          if ((bVar1 & 0x40) != 0) {\n            puStack_50 = (uint *)((ulong)bVar1 | 0xffffffffffffff80);\n          }\n        }\n        local_70 = puVar11;\n        if ((uVar2 == 0x31) || (uVar2 < 0x32)) goto LAB_00302750;\n        if ((uVar2 == 0x6e) || (uVar2 == 0x2007)) goto LAB_00302fbe;\n        puVar16 = (undefined8 *)param_1[8];\n        if (puVar16 == (undefined8 *)param_1[9]) goto LAB_003028c0;\nLAB_0030275e:\n        *puVar16 = CONCAT44(uStack_54,local_58);\n        puVar16[1] = puStack_50;\n        puVar16[2] = CONCAT44(uStack_44,local_48);\n        param_1[8] = (long)(puVar16 + 3);\n      }\n      lVar20 = lVar20 + 8;\n      lVar10 = param_1[6];\n    } while (lVar20 != (ulong)(iVar13 - 1) * 8 + 8);" do (compound_statement "{\n      puVar11 = (uint *)(*(long *)(lVar10 + 8) + lVar20);\n      uVar8 = puVar11[1];\n      uVar2 = *puVar11;\n      if (uVar8 == 0x16) {\n        bVar1 = (byte)*local_70;\n        uVar8 = (uint)bVar1;\n        if ((char)bVar1 < '\0') {\n          uVar8 = FUN_002112d0((uint *)((long)local_70 + 1),&local_68,bVar1);\n          local_70 = (uint *)(local_68 + (long)local_70);\n        }\n        else {\n          local_68 = 1;\n          local_70 = (uint *)((long)local_70 + 1);\n        }\n      }\n      puVar11 = local_70;\n      pbVar15 = (byte *)((long)local_70 + (param_1[2] - lVar12));\n      local_48 = 0;\n      local_58 = uVar2;\n      uStack_54 = uVar8;\n      if (uVar8 == 0xe) {\n        lVar10 = *param_1;\n        if (*(int *)(lVar10 + 0x60) == 4) {\n          uVar8 = FUN_00305610(lVar10,&local_70);\n          local_60 = (uint *)(ulong)uVar8;\n        }\n        else {\n          pcVar3 = *(code **)(**(long **)(lVar10 + 0x10) + 0x18);\n          if (pcVar3 == FUN_001b8d10) {\n            cVar6 = (**(code **)(**(long **)(lVar10 + 0x10) + 0x1d0))();\n          }\n          else {\n            cVar6 = (*pcVar3)();\n          }\n          local_60 = *(uint **)local_70;\n          if (cVar6 != '\0') {\n            local_60 = (uint *)((ulong)local_60 >> 0x38 |\n                                ((ulong)local_60 & 0xff000000000000) >> 0x28 |\n                                ((ulong)local_60 & 0xff0000000000) >> 0x18 |\n                                ((ulong)local_60 & 0xff00000000) >> 8 |\n                                ((ulong)local_60 & 0xff000000) << 8 |\n                                ((ulong)local_60 & 0xff0000) << 0x18 |\n                                ((ulong)local_60 & 0xff00) << 0x28 | (long)local_60 << 0x38);\n          }\n          local_70 = local_70 + 2;\n        }\n        local_48 = FUN_00301dc0(*param_1,pbVar15,&local_60);\n        puStack_50 = local_60;\n        if (uVar2 != 0x31) {\n          if (uVar2 < 0x32) {\n            if ((uVar2 != 1) && (uVar2 == 3)) {\nLAB_00302f64:\n              *(uint *)(param_1 + 0xf) = local_48;\n              param_1[0xc] = (long)puStack_50;\n            }\n          }\n          else if ((uVar2 == 0x6e) || (uVar2 == 0x2007)) {\nLAB_00302fd0:\n            *(uint *)(param_1 + 0xf) = local_48;\n            param_1[0xe] = (long)puStack_50;\n          }\n        }\nLAB_00302750:\n        puVar16 = (undefined8 *)param_1[8];\n        if (puVar16 != (undefined8 *)param_1[9]) goto LAB_0030275e;\nLAB_003028c0:\n        FUN_00305860(param_1 + 7,puVar16,&local_58);\n      }\n      else {\n        if (0xe < uVar8) {\n          if (uVar8 == 0x15) {\n            bVar1 = (byte)*local_70;\n            if ((char)bVar1 < '\0') {\n              puStack_50 = (uint *)FUN_002112d0((uint *)((long)local_70 + 1),&local_68,bVar1);\n              local_70 = (uint *)(local_68 + (long)local_70);\n            }\n            else {\n              local_68 = 1;\n              local_70 = (uint *)((long)local_70 + 1);\n              puStack_50 = (uint *)(ulong)bVar1;\n            }\njoined_r0x00303052:\n            if (uVar2 != 0x31) {\n              if (uVar2 < 0x32) {\nLAB_00302c20:\n                if ((uVar2 == 1) && (local_48 == 0)) {\n                  param_1[5] = (long)puStack_50;\n                }\n                goto LAB_00302750;\n              }\n              if ((uVar2 != 0x6e) && (uVar2 != 0x2007)) {\njoined_r0x00302ce3:\n                if (uVar2 == 0x47) {\n                  param_1[0x10] = (long)puStack_50;\n                }\n                goto LAB_00302750;\n              }\nLAB_00302fb5:\n              if (uVar8 == 8) {\nLAB_003029eb:\n                param_1[0xd] = (long)puStack_50;\n              }\n              else {\nLAB_00302fbe:\n                if (uVar8 == 0xe) goto LAB_00302fd0;\n              }\n              goto LAB_00302750;\n            }\n          }\n          else {\n            if (0x15 < uVar8) {\n              if (uVar8 != 0x19) {\n                if (uVar8 < 0x1a) {\n                  if (uVar8 == 0x17) {\n                    lVar10 = *param_1;\n                    if (*(int *)(lVar10 + 0x60) == 4) {\n                      uVar9 = FUN_00305610(lVar10,&local_70);\n                      local_60 = (uint *)(ulong)uVar9;\n                    }\n                    else {\n                      plVar17 = *(long **)(lVar10 + 0x10);\nLAB_00302fe7:\n                      pcVar3 = *(code **)(*plVar17 + 0x18);\n                      if (pcVar3 == FUN_001b8d10) {\n                        cVar6 = (**(code **)(*plVar17 + 0x1d0))();\n                      }\n                      else {\n                        cVar6 = (*pcVar3)();\n                      }\n                      local_60 = *(uint **)local_70;\n                      if (cVar6 != '\0') {\n                        local_60 = (uint *)((ulong)local_60 >> 0x38 |\n                                            ((ulong)local_60 & 0xff000000000000) >> 0x28 |\n                                            ((ulong)local_60 & 0xff0000000000) >> 0x18 |\n                                            ((ulong)local_60 & 0xff00000000) >> 8 |\n                                            ((ulong)local_60 & 0xff000000) << 8 |\n                                            ((ulong)local_60 & 0xff0000) << 0x18 |\n                                            ((ulong)local_60 & 0xff00) << 0x28 |\n                                           (long)local_60 << 0x38);\n                      }\n                      local_70 = local_70 + 2;\n                    }\nLAB_00303035:\n                    local_48 = FUN_00301dc0(*param_1,pbVar15,&local_60);\n                    puStack_50 = local_60;\n                    goto joined_r0x00303052;\n                  }\n                  if (uVar8 != 0x18) {\n                    return 0;\n                  }\nLAB_00302a09:\n                  bVar1 = (byte)*local_70;\n                  uVar9 = (uint)bVar1;\n                  puVar11 = (uint *)((long)local_70 + 1);\n                  if ((char)bVar1 < '\0') {\n                    uVar9 = FUN_002112d0(puVar11,&local_68,bVar1);\n                    puVar11 = (uint *)((long)local_70 + local_68);\n                  }\n                  else {\n                    local_68 = 1;\n                  }\n                  local_70 = (uint *)((long)local_70 + uVar9 + local_68);\n                  puStack_50 = puVar11;\n                  local_48 = uVar9;\n                }\n                else {\n                  if (uVar8 == 0x20) {\n                    pcVar3 = *(code **)(**(long **)(*param_1 + 0x10) + 0x18);\n                    if (pcVar3 == FUN_001b8d10) {\n                      cVar6 = (**(code **)(**(long **)(*param_1 + 0x10) + 0x1d0))();\n                    }\n                    else {\n                      cVar6 = (*pcVar3)();\n                    }\n                    puStack_50 = *(uint **)local_70;\n                    if (cVar6 != '\0') {\n                      puStack_50 = (uint *)((ulong)puStack_50 >> 0x38 |\n                                            ((ulong)puStack_50 & 0xff000000000000) >> 0x28 |\n                                            ((ulong)puStack_50 & 0xff0000000000) >> 0x18 |\n                                            ((ulong)puStack_50 & 0xff00000000) >> 8 |\n                                            ((ulong)puStack_50 & 0xff000000) << 8 |\n                                            ((ulong)puStack_50 & 0xff0000) << 0x18 |\n                                            ((ulong)puStack_50 & 0xff00) << 0x28 |\n                                           (long)puStack_50 << 0x38);\n                    }\n                    local_70 = local_70 + 2;\n                    goto LAB_00302ea9;\n                  }\n                  if (uVar8 < 0x20) {\n                    return 0;\n                  }\n                  if (1 < uVar8 - 0x1f01) {\n                    return 0;\n                  }\nLAB_00302bcd:\n                  bVar1 = (byte)*local_70;\n                  if ((char)bVar1 < '\0') {\n                    puStack_50 = (uint *)FUN_002112d0((uint *)((long)local_70 + 1),&local_68,bVar1);\n                    local_70 = (uint *)(local_68 + (long)local_70);\n                  }\n                  else {\n                    local_68 = 1;\n                    local_70 = (uint *)((long)local_70 + 1);\n                    puStack_50 = (uint *)(ulong)bVar1;\n                  }\n                }\nLAB_00302f92:\n                if (uVar2 == 0x31) goto LAB_00302750;\n                if (0x31 < uVar2) {\n                  if ((uVar2 == 0x6e) || (uVar2 == 0x2007)) goto LAB_00302fb5;\n                  goto LAB_00302750;\n                }\n                goto LAB_00302e3e;\n              }\n              puStack_50 = (uint *)0x1;\nLAB_00302ea9:\n              if (((uVar2 == 0x31) || (0x31 < uVar2)) || (uVar2 != 3)) goto LAB_00302750;\nLAB_00302e52:\n              if (uVar8 == 8) {\nLAB_003029c7:\n                param_1[0xb] = (long)puStack_50;\n              }\n              else if (uVar8 == 0xe) goto LAB_00302f64;\n              goto LAB_00302750;\n            }\n            if (uVar8 != 0x11) {\n              if (0x11 < uVar8) {\n                if (uVar8 == 0x13) {\n                  uVar9 = FUN_00305610(*param_1,&local_70);\n                  local_60 = (uint *)(ulong)uVar9;\n                  goto LAB_00303035;\n                }\n                if (0x13 < uVar8) {\n                  plVar17 = *(long **)(*param_1 + 0x10);\n                  goto LAB_00302fe7;\n                }\n                pcVar3 = *(code **)(**(long **)(*param_1 + 0x10) + 0x18);\n                if (pcVar3 == FUN_001b8d10) {\n                  cVar6 = (**(code **)(**(long **)(*param_1 + 0x10) + 0x1d0))();\n                }\n                else {\n                  cVar6 = (*pcVar3)();\n                }\n                uVar5 = (ushort)*local_70;\n                if (cVar6 != '\0') {\n                  uVar5 = CONCAT11((byte)*local_70,*(byte *)((long)local_70 + 1));\n                }\n                local_70 = (uint *)((long)local_70 + 2);\n                puStack_50 = (uint *)(ulong)uVar5;\n                goto joined_r0x00303052;\n              }\n              if (uVar8 == 0xf) goto LAB_00302bcd;\n              if (uVar8 != 0x10) {\n                return 0;\n              }\n              lVar10 = *param_1;\n              iVar7 = *(int *)(lVar10 + 100);\n              if (2 < *(uint *)(lVar10 + 0x68)) {\n                iVar7 = *(int *)(lVar10 + 0x60);\n              }\n              if (iVar7 != 4) goto LAB_00302a71;\nLAB_00302e7d:\n              uVar8 = FUN_00305610(lVar10,&local_70);\n              local_60 = (uint *)(ulong)uVar8;\nLAB_00302abe:\n              local_48 = FUN_00301dc0(*param_1,pbVar15,&local_60);\n              puStack_50 = local_60;\n              if (uVar2 == 0x31) goto LAB_00302965;\n              if (0x31 < uVar2) goto joined_r0x00302ccc;\n              goto LAB_00302c20;\n            }\n            puVar11 = (uint *)((long)local_70 + 1);\n            puStack_50 = (uint *)(ulong)(byte)*local_70;\n            local_70 = puVar11;\n            if (uVar2 != 0x31) {\n              if (uVar2 < 0x32) {\n                if (uVar2 == 1) {\n                  param_1[5] = (long)puStack_50;\n                }\n                goto LAB_00302750;\n              }\njoined_r0x00302ccc:\n              if ((uVar2 == 0x6e) || (uVar2 == 0x2007)) goto LAB_00302750;\n              goto joined_r0x00302ce3;\n            }\n          }\nLAB_00302965:\n          param_1[0x11] = (long)puStack_50;\n          goto LAB_00302750;\n        }\n        if (uVar8 == 7) {\n          pcVar3 = *(code **)(**(long **)(*param_1 + 0x10) + 0x18);\n          if (pcVar3 == FUN_001b8d10) {\n            cVar6 = (**(code **)(**(long **)(*param_1 + 0x10) + 0x1d0))();\n          }\n          else {\n            cVar6 = (*pcVar3)();\n          }\n          local_60 = *(uint **)local_70;\n          if (cVar6 != '\0') {\n            local_60 = (uint *)((ulong)local_60 >> 0x38 |\n                                ((ulong)local_60 & 0xff000000000000) >> 0x28 |\n                                ((ulong)local_60 & 0xff0000000000) >> 0x18 |\n                                ((ulong)local_60 & 0xff00000000) >> 8 |\n                                ((ulong)local_60 & 0xff000000) << 8 |\n                                ((ulong)local_60 & 0xff0000) << 0x18 |\n                                ((ulong)local_60 & 0xff00) << 0x28 | (long)local_60 << 0x38);\n          }\n          local_70 = local_70 + 2;\nLAB_00302d40:\n          local_48 = FUN_00301dc0(*param_1,pbVar15,&local_60);\n          puStack_50 = local_60;\njoined_r0x00302748:\n          if ((uVar2 != 0x31) && (uVar2 < 0x32)) {\nLAB_00302e3e:\n            if ((uVar2 != 1) && (uVar2 == 3)) goto LAB_00302e52;\n          }\n          goto LAB_00302750;\n        }\n        if (uVar8 < 8) {\n          if (uVar8 == 4) {\n            pcVar3 = *(code **)(**(long **)(*param_1 + 0x10) + 0x18);\n            if (pcVar3 == FUN_001b8d10) {\n              cVar6 = (**(code **)(**(long **)(*param_1 + 0x10) + 0x1d0))();\n            }\n            else {\n              cVar6 = (*pcVar3)();\n            }\n            local_48 = *local_70;\n            if (cVar6 != '\0') {\n              local_48 = local_48 >> 0x18 | (local_48 & 0xff0000) >> 8 | (local_48 & 0xff00) << 8 |\n                         local_48 << 0x18;\n            }\n            puStack_50 = local_70 + 1;\n            local_70 = (uint *)((long)puStack_50 + (ulong)local_48);\n          }\n          else if (uVar8 < 5) {\n            if (uVar8 == 1) {\n              lVar10 = *param_1;\n              if (*(int *)(lVar10 + 100) == 4) goto LAB_00302e7d;\nLAB_00302a71:\n              pcVar3 = *(code **)(**(long **)(lVar10 + 0x10) + 0x18);\n              if (pcVar3 == FUN_001b8d10) {\n                cVar6 = (**(code **)(**(long **)(lVar10 + 0x10) + 0x1d0))();\n              }\n              else {\n                cVar6 = (*pcVar3)();\n              }\n              local_60 = *(uint **)local_70;\n              if (cVar6 != '\0') {\n                local_60 = (uint *)((ulong)local_60 >> 0x38 |\n                                    ((ulong)local_60 & 0xff000000000000) >> 0x28 |\n                                    ((ulong)local_60 & 0xff0000000000) >> 0x18 |\n                                    ((ulong)local_60 & 0xff00000000) >> 8 |\n                                    ((ulong)local_60 & 0xff000000) << 8 |\n                                    ((ulong)local_60 & 0xff0000) << 0x18 |\n                                    ((ulong)local_60 & 0xff00) << 0x28 | (long)local_60 << 0x38);\n              }\n              local_70 = local_70 + 2;\n              goto LAB_00302abe;\n            }\n            if (uVar8 != 3) {\n              return 0;\n            }\n            pcVar3 = *(code **)(**(long **)(*param_1 + 0x10) + 0x18);\n            if (pcVar3 == FUN_001b8d10) {\n              cVar6 = (**(code **)(**(long **)(*param_1 + 0x10) + 0x1d0))();\n            }\n            else {\n              cVar6 = (*pcVar3)();\n            }\n            uVar5 = (ushort)*local_70;\n            if (cVar6 != '\0') {\n              uVar5 = CONCAT11((byte)*local_70,*(byte *)((long)local_70 + 1));\n            }\n            local_48 = (uint)uVar5;\n            puStack_50 = (uint *)((long)local_70 + 2);\n            local_70 = (uint *)((long)puStack_50 + (ulong)local_48);\n          }\n          else {\n            if (uVar8 != 5) {\n              if (uVar8 != 6) {\n                return 0;\n              }\n              pcVar3 = *(code **)(**(long **)(*param_1 + 0x10) + 0x18);\n              if (pcVar3 == FUN_001b8d10) {\n                cVar6 = (**(code **)(**(long **)(*param_1 + 0x10) + 0x1d0))();\n              }\n              else {\n                cVar6 = (*pcVar3)();\n              }\n              uVar9 = *local_70;\n              if (cVar6 != '\0') {\n                uVar9 = uVar9 >> 0x18 | (uVar9 & 0xff0000) >> 8 | (uVar9 & 0xff00) << 8 |\n                        uVar9 << 0x18;\n              }\n              local_60 = (uint *)(ulong)uVar9;\n              local_70 = local_70 + 1;\n              goto LAB_00302d40;\n            }\n            pcVar3 = *(code **)(**(long **)(*param_1 + 0x10) + 0x18);\n            if (pcVar3 == FUN_001b8d10) {\n              cVar6 = (**(code **)(**(long **)(*param_1 + 0x10) + 0x1d0))();\n            }\n            else {\n              cVar6 = (*pcVar3)();\n            }\n            uVar5 = (ushort)*local_70;\n            if (cVar6 != '\0') {\n              uVar5 = CONCAT11((byte)*local_70,*(byte *)((long)local_70 + 1));\n            }\n            local_70 = (uint *)((long)local_70 + 2);\n            puStack_50 = (uint *)(ulong)uVar5;\n          }\n          goto joined_r0x00302748;\n        }\n        if (uVar8 == 10) {\n          puStack_50 = (uint *)((long)local_70 + 1);\n          uVar9 = *local_70;\n          local_70 = (uint *)((long)puStack_50 + (ulong)(byte)uVar9);\n          local_48 = (uint)(byte)uVar9;\n          goto joined_r0x00302748;\n        }\n        if (uVar8 < 0xb) {\n          if (uVar8 != 8) {\n            if (uVar8 != 9) {\n              return 0;\n            }\n            goto LAB_00302a09;\n          }\n          puStack_50 = local_70;\n          local_68 = strlen((char *)local_70);\n          local_70 = (uint *)((long)puVar11 + local_68 + 1);\n          if (uVar2 == 0x31) goto LAB_00302750;\n          if (0x31 < uVar2) {\n            if ((uVar2 != 0x6e) && (uVar2 != 0x2007)) goto LAB_00302750;\n            goto LAB_003029eb;\n          }\n          if ((uVar2 == 1) || (uVar2 != 3)) goto LAB_00302750;\n          goto LAB_003029c7;\n        }\n        if (uVar8 < 0xd) {\n          uVar9 = *local_70;\n          local_70 = (uint *)((long)local_70 + 1);\n          puStack_50 = (uint *)(ulong)(byte)uVar9;\n          goto LAB_00302f92;\n        }\n        bVar1 = (byte)*local_70;\n        puVar11 = (uint *)((long)local_70 + 1);\n        if ((char)bVar1 < '\0') {\n          puStack_50 = (uint *)FUN_00211340(puVar11,&local_68);\n          puVar11 = (uint *)(local_68 + (long)local_70);\n        }\n        else {\n          local_68 = 1;\n          puStack_50 = (uint *)(ulong)bVar1;\n          if ((bVar1 & 0x40) != 0) {\n            puStack_50 = (uint *)((ulong)bVar1 | 0xffffffffffffff80);\n          }\n        }\n        local_70 = puVar11;\n        if ((uVar2 == 0x31) || (uVar2 < 0x32)) goto LAB_00302750;\n        if ((uVar2 == 0x6e) || (uVar2 == 0x2007)) goto LAB_00302fbe;\n        puVar16 = (undefined8 *)param_1[8];\n        if (puVar16 == (undefined8 *)param_1[9]) goto LAB_003028c0;\nLAB_0030275e:\n        *puVar16 = CONCAT44(uStack_54,local_58);\n        puVar16[1] = puStack_50;\n        puVar16[2] = CONCAT44(uStack_44,local_48);\n        param_1[8] = (long)(puVar16 + 3);\n      }\n      lVar20 = lVar20 + 8;\n      lVar10 = param_1[6];\n    }" { (expression_statement "puVar11 = (uint *)(*(long *)(lVar10 + 8) + lVar20);" (assignment_expression "puVar11 = (uint *)(*(long *)(lVar10 + 8) + lVar20)" identifier = (cast_expression "(uint *)(*(long *)(lVar10 + 8) + lVar20)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*(long *)(lVar10 + 8) + lVar20)" ( (binary_expression "*(long *)(lVar10 + 8) + lVar20" (pointer_expression "*(long *)(lVar10 + 8)" * (cast_expression "(long *)(lVar10 + 8)" ( (type_descriptor "long *" (sized_type_specifier "long" long) (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(lVar10 + 8)" ( (binary_expression "lVar10 + 8" identifier + number_literal) )))) + identifier) )))) ;) (expression_statement "uVar8 = puVar11[1];" (assignment_expression "uVar8 = puVar11[1]" identifier = (subscript_expression "puVar11[1]" identifier [ number_literal ])) ;) (expression_statement "uVar2 = *puVar11;" (assignment_expression "uVar2 = *puVar11" identifier = (pointer_expression "*puVar11" * identifier)) ;) (if_statement "if (uVar8 == 0x16) {\n        bVar1 = (byte)*local_70;\n        uVar8 = (uint)bVar1;\n        if ((char)bVar1 < '\0') {\n          uVar8 = FUN_002112d0((uint *)((long)local_70 + 1),&local_68,bVar1);\n          local_70 = (uint *)(local_68 + (long)local_70);\n        }\n        else {\n          local_68 = 1;\n          local_70 = (uint *)((long)local_70 + 1);\n        }\n      }" if (parenthesized_expression "(uVar8 == 0x16)" ( (binary_expression "uVar8 == 0x16" identifier == number_literal) )) (compound_statement "{\n        bVar1 = (byte)*local_70;\n        uVar8 = (uint)bVar1;\n        if ((char)bVar1 < '\0') {\n          uVar8 = FUN_002112d0((uint *)((long)local_70 + 1),&local_68,bVar1);\n          local_70 = (uint *)(local_68 + (long)local_70);\n        }\n        else {\n          local_68 = 1;\n          local_70 = (uint *)((long)local_70 + 1);\n        }\n      }" { (expression_statement "bVar1 = (byte)*local_70;" (assignment_expression "bVar1 = (byte)*local_70" identifier = (binary_expression "(byte)*local_70" (parenthesized_expression "(byte)" ( identifier )) * identifier)) ;) (expression_statement "uVar8 = (uint)bVar1;" (assignment_expression "uVar8 = (uint)bVar1" identifier = (cast_expression "(uint)bVar1" ( (type_descriptor "uint" type_identifier) ) identifier)) ;) (if_statement "if ((char)bVar1 < '\0') {\n          uVar8 = FUN_002112d0((uint *)((long)local_70 + 1),&local_68,bVar1);\n          local_70 = (uint *)(local_68 + (long)local_70);\n        }\n        else {\n          local_68 = 1;\n          local_70 = (uint *)((long)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          uVar8 = FUN_002112d0((uint *)((long)local_70 + 1),&local_68,bVar1);\n          local_70 = (uint *)(local_68 + (long)local_70);\n        }" { (expression_statement "uVar8 = FUN_002112d0((uint *)((long)local_70 + 1),&local_68,bVar1);" (assignment_expression "uVar8 = FUN_002112d0((uint *)((long)local_70 + 1),&local_68,bVar1)" identifier = (call_expression "FUN_002112d0((uint *)((long)local_70 + 1),&local_68,bVar1)" identifier (argument_list "((uint *)((long)local_70 + 1),&local_68,bVar1)" ( (cast_expression "(uint *)((long)local_70 + 1)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((long)local_70 + 1)" ( (binary_expression "(long)local_70 + 1" (cast_expression "(long)local_70" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) identifier) + number_literal) ))) , (pointer_expression "&local_68" & identifier) , identifier )))) ;) (expression_statement "local_70 = (uint *)(local_68 + (long)local_70);" (assignment_expression "local_70 = (uint *)(local_68 + (long)local_70)" identifier = (cast_expression "(uint *)(local_68 + (long)local_70)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(local_68 + (long)local_70)" ( (binary_expression "local_68 + (long)local_70" identifier + (cast_expression "(long)local_70" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) identifier)) )))) ;) }) (else_clause "else {\n          local_68 = 1;\n          local_70 = (uint *)((long)local_70 + 1);\n        }" else (compound_statement "{\n          local_68 = 1;\n          local_70 = (uint *)((long)local_70 + 1);\n        }" { (expression_statement "local_68 = 1;" (assignment_expression "local_68 = 1" identifier = number_literal) ;) (expression_statement "local_70 = (uint *)((long)local_70 + 1);" (assignment_expression "local_70 = (uint *)((long)local_70 + 1)" identifier = (cast_expression "(uint *)((long)local_70 + 1)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((long)local_70 + 1)" ( (binary_expression "(long)local_70 + 1" (cast_expression "(long)local_70" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) identifier) + number_literal) )))) ;) }))) })) (expression_statement "puVar11 = local_70;" (assignment_expression "puVar11 = local_70" identifier = identifier) ;) (expression_statement "pbVar15 = (byte *)((long)local_70 + (param_1[2] - lVar12));" (assignment_expression "pbVar15 = (byte *)((long)local_70 + (param_1[2] - lVar12))" identifier = (cast_expression "(byte *)((long)local_70 + (param_1[2] - lVar12))" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((long)local_70 + (param_1[2] - lVar12))" ( (binary_expression "(long)local_70 + (param_1[2] - lVar12)" (cast_expression "(long)local_70" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) identifier) + (parenthesized_expression "(param_1[2] - lVar12)" ( (binary_expression "param_1[2] - lVar12" (subscript_expression "param_1[2]" identifier [ number_literal ]) - identifier) ))) )))) ;) (expression_statement "local_48 = 0;" (assignment_expression "local_48 = 0" identifier = number_literal) ;) (expression_statement "local_58 = uVar2;" (assignment_expression "local_58 = uVar2" identifier = identifier) ;) (expression_statement "uStack_54 = uVar8;" (assignment_expression "uStack_54 = uVar8" identifier = identifier) ;) (if_statement "if (uVar8 == 0xe) {\n        lVar10 = *param_1;\n        if (*(int *)(lVar10 + 0x60) == 4) {\n          uVar8 = FUN_00305610(lVar10,&local_70);\n          local_60 = (uint *)(ulong)uVar8;\n        }\n        else {\n          pcVar3 = *(code **)(**(long **)(lVar10 + 0x10) + 0x18);\n          if (pcVar3 == FUN_001b8d10) {\n            cVar6 = (**(code **)(**(long **)(lVar10 + 0x10) + 0x1d0))();\n          }\n          else {\n            cVar6 = (*pcVar3)();\n          }\n          local_60 = *(uint **)local_70;\n          if (cVar6 != '\0') {\n            local_60 = (uint *)((ulong)local_60 >> 0x38 |\n                                ((ulong)local_60 & 0xff000000000000) >> 0x28 |\n                                ((ulong)local_60 & 0xff0000000000) >> 0x18 |\n                                ((ulong)local_60 & 0xff00000000) >> 8 |\n                                ((ulong)local_60 & 0xff000000) << 8 |\n                                ((ulong)local_60 & 0xff0000) << 0x18 |\n                                ((ulong)local_60 & 0xff00) << 0x28 | (long)local_60 << 0x38);\n          }\n          local_70 = local_70 + 2;\n        }\n        local_48 = FUN_00301dc0(*param_1,pbVar15,&local_60);\n        puStack_50 = local_60;\n        if (uVar2 != 0x31) {\n          if (uVar2 < 0x32) {\n            if ((uVar2 != 1) && (uVar2 == 3)) {\nLAB_00302f64:\n              *(uint *)(param_1 + 0xf) = local_48;\n              param_1[0xc] = (long)puStack_50;\n            }\n          }\n          else if ((uVar2 == 0x6e) || (uVar2 == 0x2007)) {\nLAB_00302fd0:\n            *(uint *)(param_1 + 0xf) = local_48;\n            param_1[0xe] = (long)puStack_50;\n          }\n        }\nLAB_00302750:\n        puVar16 = (undefined8 *)param_1[8];\n        if (puVar16 != (undefined8 *)param_1[9]) goto LAB_0030275e;\nLAB_003028c0:\n        FUN_00305860(param_1 + 7,puVar16,&local_58);\n      }\n      else {\n        if (0xe < uVar8) {\n          if (uVar8 == 0x15) {\n            bVar1 = (byte)*local_70;\n            if ((char)bVar1 < '\0') {\n              puStack_50 = (uint *)FUN_002112d0((uint *)((long)local_70 + 1),&local_68,bVar1);\n              local_70 = (uint *)(local_68 + (long)local_70);\n            }\n            else {\n              local_68 = 1;\n              local_70 = (uint *)((long)local_70 + 1);\n              puStack_50 = (uint *)(ulong)bVar1;\n            }\njoined_r0x00303052:\n            if (uVar2 != 0x31) {\n              if (uVar2 < 0x32) {\nLAB_00302c20:\n                if ((uVar2 == 1) && (local_48 == 0)) {\n                  param_1[5] = (long)puStack_50;\n                }\n                goto LAB_00302750;\n              }\n              if ((uVar2 != 0x6e) && (uVar2 != 0x2007)) {\njoined_r0x00302ce3:\n                if (uVar2 == 0x47) {\n                  param_1[0x10] = (long)puStack_50;\n                }\n                goto LAB_00302750;\n              }\nLAB_00302fb5:\n              if (uVar8 == 8) {\nLAB_003029eb:\n                param_1[0xd] = (long)puStack_50;\n              }\n              else {\nLAB_00302fbe:\n                if (uVar8 == 0xe) goto LAB_00302fd0;\n              }\n              goto LAB_00302750;\n            }\n          }\n          else {\n            if (0x15 < uVar8) {\n              if (uVar8 != 0x19) {\n                if (uVar8 < 0x1a) {\n                  if (uVar8 == 0x17) {\n                    lVar10 = *param_1;\n                    if (*(int *)(lVar10 + 0x60) == 4) {\n                      uVar9 = FUN_00305610(lVar10,&local_70);\n                      local_60 = (uint *)(ulong)uVar9;\n                    }\n                    else {\n                      plVar17 = *(long **)(lVar10 + 0x10);\nLAB_00302fe7:\n                      pcVar3 = *(code **)(*plVar17 + 0x18);\n                      if (pcVar3 == FUN_001b8d10) {\n                        cVar6 = (**(code **)(*plVar17 + 0x1d0))();\n                      }\n                      else {\n                        cVar6 = (*pcVar3)();\n                      }\n                      local_60 = *(uint **)local_70;\n                      if (cVar6 != '\0') {\n                        local_60 = (uint *)((ulong)local_60 >> 0x38 |\n                                            ((ulong)local_60 & 0xff000000000000) >> 0x28 |\n                                            ((ulong)local_60 & 0xff0000000000) >> 0x18 |\n                                            ((ulong)local_60 & 0xff00000000) >> 8 |\n                                            ((ulong)local_60 & 0xff000000) << 8 |\n                                            ((ulong)local_60 & 0xff0000) << 0x18 |\n                                            ((ulong)local_60 & 0xff00) << 0x28 |\n                                           (long)local_60 << 0x38);\n                      }\n                      local_70 = local_70 + 2;\n                    }\nLAB_00303035:\n                    local_48 = FUN_00301dc0(*param_1,pbVar15,&local_60);\n                    puStack_50 = local_60;\n                    goto joined_r0x00303052;\n                  }\n                  if (uVar8 != 0x18) {\n                    return 0;\n                  }\nLAB_00302a09:\n                  bVar1 = (byte)*local_70;\n                  uVar9 = (uint)bVar1;\n                  puVar11 = (uint *)((long)local_70 + 1);\n                  if ((char)bVar1 < '\0') {\n                    uVar9 = FUN_002112d0(puVar11,&local_68,bVar1);\n                    puVar11 = (uint *)((long)local_70 + local_68);\n                  }\n                  else {\n                    local_68 = 1;\n                  }\n                  local_70 = (uint *)((long)local_70 + uVar9 + local_68);\n                  puStack_50 = puVar11;\n                  local_48 = uVar9;\n                }\n                else {\n                  if (uVar8 == 0x20) {\n                    pcVar3 = *(code **)(**(long **)(*param_1 + 0x10) + 0x18);\n                    if (pcVar3 == FUN_001b8d10) {\n                      cVar6 = (**(code **)(**(long **)(*param_1 + 0x10) + 0x1d0))();\n                    }\n                    else {\n                      cVar6 = (*pcVar3)();\n                    }\n                    puStack_50 = *(uint **)local_70;\n                    if (cVar6 != '\0') {\n                      puStack_50 = (uint *)((ulong)puStack_50 >> 0x38 |\n                                            ((ulong)puStack_50 & 0xff000000000000) >> 0x28 |\n                                            ((ulong)puStack_50 & 0xff0000000000) >> 0x18 |\n                                            ((ulong)puStack_50 & 0xff00000000) >> 8 |\n                                            ((ulong)puStack_50 & 0xff000000) << 8 |\n                                            ((ulong)puStack_50 & 0xff0000) << 0x18 |\n                                            ((ulong)puStack_50 & 0xff00) << 0x28 |\n                                           (long)puStack_50 << 0x38);\n                    }\n                    local_70 = local_70 + 2;\n                    goto LAB_00302ea9;\n                  }\n                  if (uVar8 < 0x20) {\n                    return 0;\n                  }\n                  if (1 < uVar8 - 0x1f01) {\n                    return 0;\n                  }\nLAB_00302bcd:\n                  bVar1 = (byte)*local_70;\n                  if ((char)bVar1 < '\0') {\n                    puStack_50 = (uint *)FUN_002112d0((uint *)((long)local_70 + 1),&local_68,bVar1);\n                    local_70 = (uint *)(local_68 + (long)local_70);\n                  }\n                  else {\n                    local_68 = 1;\n                    local_70 = (uint *)((long)local_70 + 1);\n                    puStack_50 = (uint *)(ulong)bVar1;\n                  }\n                }\nLAB_00302f92:\n                if (uVar2 == 0x31) goto LAB_00302750;\n                if (0x31 < uVar2) {\n                  if ((uVar2 == 0x6e) || (uVar2 == 0x2007)) goto LAB_00302fb5;\n                  goto LAB_00302750;\n                }\n                goto LAB_00302e3e;\n              }\n              puStack_50 = (uint *)0x1;\nLAB_00302ea9:\n              if (((uVar2 == 0x31) || (0x31 < uVar2)) || (uVar2 != 3)) goto LAB_00302750;\nLAB_00302e52:\n              if (uVar8 == 8) {\nLAB_003029c7:\n                param_1[0xb] = (long)puStack_50;\n              }\n              else if (uVar8 == 0xe) goto LAB_00302f64;\n              goto LAB_00302750;\n            }\n            if (uVar8 != 0x11) {\n              if (0x11 < uVar8) {\n                if (uVar8 == 0x13) {\n                  uVar9 = FUN_00305610(*param_1,&local_70);\n                  local_60 = (uint *)(ulong)uVar9;\n                  goto LAB_00303035;\n                }\n                if (0x13 < uVar8) {\n                  plVar17 = *(long **)(*param_1 + 0x10);\n                  goto LAB_00302fe7;\n                }\n                pcVar3 = *(code **)(**(long **)(*param_1 + 0x10) + 0x18);\n                if (pcVar3 == FUN_001b8d10) {\n                  cVar6 = (**(code **)(**(long **)(*param_1 + 0x10) + 0x1d0))();\n                }\n                else {\n                  cVar6 = (*pcVar3)();\n                }\n                uVar5 = (ushort)*local_70;\n                if (cVar6 != '\0') {\n                  uVar5 = CONCAT11((byte)*local_70,*(byte *)((long)local_70 + 1));\n                }\n                local_70 = (uint *)((long)local_70 + 2);\n                puStack_50 = (uint *)(ulong)uVar5;\n                goto joined_r0x00303052;\n              }\n              if (uVar8 == 0xf) goto LAB_00302bcd;\n              if (uVar8 != 0x10) {\n                return 0;\n              }\n              lVar10 = *param_1;\n              iVar7 = *(int *)(lVar10 + 100);\n              if (2 < *(uint *)(lVar10 + 0x68)) {\n                iVar7 = *(int *)(lVar10 + 0x60);\n              }\n              if (iVar7 != 4) goto LAB_00302a71;\nLAB_00302e7d:\n              uVar8 = FUN_00305610(lVar10,&local_70);\n              local_60 = (uint *)(ulong)uVar8;\nLAB_00302abe:\n              local_48 = FUN_00301dc0(*param_1,pbVar15,&local_60);\n              puStack_50 = local_60;\n              if (uVar2 == 0x31) goto LAB_00302965;\n              if (0x31 < uVar2) goto joined_r0x00302ccc;\n              goto LAB_00302c20;\n            }\n            puVar11 = (uint *)((long)local_70 + 1);\n            puStack_50 = (uint *)(ulong)(byte)*local_70;\n            local_70 = puVar11;\n            if (uVar2 != 0x31) {\n              if (uVar2 < 0x32) {\n                if (uVar2 == 1) {\n                  param_1[5] = (long)puStack_50;\n                }\n                goto LAB_00302750;\n              }\njoined_r0x00302ccc:\n              if ((uVar2 == 0x6e) || (uVar2 == 0x2007)) goto LAB_00302750;\n              goto joined_r0x00302ce3;\n            }\n          }\nLAB_00302965:\n          param_1[0x11] = (long)puStack_50;\n          goto LAB_00302750;\n        }\n        if (uVar8 == 7) {\n          pcVar3 = *(code **)(**(long **)(*param_1 + 0x10) + 0x18);\n          if (pcVar3 == FUN_001b8d10) {\n            cVar6 = (**(code **)(**(long **)(*param_1 + 0x10) + 0x1d0))();\n          }\n          else {\n            cVar6 = (*pcVar3)();\n          }\n          local_60 = *(uint **)local_70;\n          if (cVar6 != '\0') {\n            local_60 = (uint *)((ulong)local_60 >> 0x38 |\n                                ((ulong)local_60 & 0xff000000000000) >> 0x28 |\n                                ((ulong)local_60 & 0xff0000000000) >> 0x18 |\n                                ((ulong)local_60 & 0xff00000000) >> 8 |\n                                ((ulong)local_60 & 0xff000000) << 8 |\n                                ((ulong)local_60 & 0xff0000) << 0x18 |\n                                ((ulong)local_60 & 0xff00) << 0x28 | (long)local_60 << 0x38);\n          }\n          local_70 = local_70 + 2;\nLAB_00302d40:\n          local_48 = FUN_00301dc0(*param_1,pbVar15,&local_60);\n          puStack_50 = local_60;\njoined_r0x00302748:\n          if ((uVar2 != 0x31) && (uVar2 < 0x32)) {\nLAB_00302e3e:\n            if ((uVar2 != 1) && (uVar2 == 3)) goto LAB_00302e52;\n          }\n          goto LAB_00302750;\n        }\n        if (uVar8 < 8) {\n          if (uVar8 == 4) {\n            pcVar3 = *(code **)(**(long **)(*param_1 + 0x10) + 0x18);\n            if (pcVar3 == FUN_001b8d10) {\n              cVar6 = (**(code **)(**(long **)(*param_1 + 0x10) + 0x1d0))();\n            }\n            else {\n              cVar6 = (*pcVar3)();\n            }\n            local_48 = *local_70;\n            if (cVar6 != '\0') {\n              local_48 = local_48 >> 0x18 | (local_48 & 0xff0000) >> 8 | (local_48 & 0xff00) << 8 |\n                         local_48 << 0x18;\n            }\n            puStack_50 = local_70 + 1;\n            local_70 = (uint *)((long)puStack_50 + (ulong)local_48);\n          }\n          else if (uVar8 < 5) {\n            if (uVar8 == 1) {\n              lVar10 = *param_1;\n              if (*(int *)(lVar10 + 100) == 4) goto LAB_00302e7d;\nLAB_00302a71:\n              pcVar3 = *(code **)(**(long **)(lVar10 + 0x10) + 0x18);\n              if (pcVar3 == FUN_001b8d10) {\n                cVar6 = (**(code **)(**(long **)(lVar10 + 0x10) + 0x1d0))();\n              }\n              else {\n                cVar6 = (*pcVar3)();\n              }\n              local_60 = *(uint **)local_70;\n              if (cVar6 != '\0') {\n                local_60 = (uint *)((ulong)local_60 >> 0x38 |\n                                    ((ulong)local_60 & 0xff000000000000) >> 0x28 |\n                                    ((ulong)local_60 & 0xff0000000000) >> 0x18 |\n                                    ((ulong)local_60 & 0xff00000000) >> 8 |\n                                    ((ulong)local_60 & 0xff000000) << 8 |\n                                    ((ulong)local_60 & 0xff0000) << 0x18 |\n                                    ((ulong)local_60 & 0xff00) << 0x28 | (long)local_60 << 0x38);\n              }\n              local_70 = local_70 + 2;\n              goto LAB_00302abe;\n            }\n            if (uVar8 != 3) {\n              return 0;\n            }\n            pcVar3 = *(code **)(**(long **)(*param_1 + 0x10) + 0x18);\n            if (pcVar3 == FUN_001b8d10) {\n              cVar6 = (**(code **)(**(long **)(*param_1 + 0x10) + 0x1d0))();\n            }\n            else {\n              cVar6 = (*pcVar3)();\n            }\n            uVar5 = (ushort)*local_70;\n            if (cVar6 != '\0') {\n              uVar5 = CONCAT11((byte)*local_70,*(byte *)((long)local_70 + 1));\n            }\n            local_48 = (uint)uVar5;\n            puStack_50 = (uint *)((long)local_70 + 2);\n            local_70 = (uint *)((long)puStack_50 + (ulong)local_48);\n          }\n          else {\n            if (uVar8 != 5) {\n              if (uVar8 != 6) {\n                return 0;\n              }\n              pcVar3 = *(code **)(**(long **)(*param_1 + 0x10) + 0x18);\n              if (pcVar3 == FUN_001b8d10) {\n                cVar6 = (**(code **)(**(long **)(*param_1 + 0x10) + 0x1d0))();\n              }\n              else {\n                cVar6 = (*pcVar3)();\n              }\n              uVar9 = *local_70;\n              if (cVar6 != '\0') {\n                uVar9 = uVar9 >> 0x18 | (uVar9 & 0xff0000) >> 8 | (uVar9 & 0xff00) << 8 |\n                        uVar9 << 0x18;\n              }\n              local_60 = (uint *)(ulong)uVar9;\n              local_70 = local_70 + 1;\n              goto LAB_00302d40;\n            }\n            pcVar3 = *(code **)(**(long **)(*param_1 + 0x10) + 0x18);\n            if (pcVar3 == FUN_001b8d10) {\n              cVar6 = (**(code **)(**(long **)(*param_1 + 0x10) + 0x1d0))();\n            }\n            else {\n              cVar6 = (*pcVar3)();\n            }\n            uVar5 = (ushort)*local_70;\n            if (cVar6 != '\0') {\n              uVar5 = CONCAT11((byte)*local_70,*(byte *)((long)local_70 + 1));\n            }\n            local_70 = (uint *)((long)local_70 + 2);\n            puStack_50 = (uint *)(ulong)uVar5;\n          }\n          goto joined_r0x00302748;\n        }\n        if (uVar8 == 10) {\n          puStack_50 = (uint *)((long)local_70 + 1);\n          uVar9 = *local_70;\n          local_70 = (uint *)((long)puStack_50 + (ulong)(byte)uVar9);\n          local_48 = (uint)(byte)uVar9;\n          goto joined_r0x00302748;\n        }\n        if (uVar8 < 0xb) {\n          if (uVar8 != 8) {\n            if (uVar8 != 9) {\n              return 0;\n            }\n            goto LAB_00302a09;\n          }\n          puStack_50 = local_70;\n          local_68 = strlen((char *)local_70);\n          local_70 = (uint *)((long)puVar11 + local_68 + 1);\n          if (uVar2 == 0x31) goto LAB_00302750;\n          if (0x31 < uVar2) {\n            if ((uVar2 != 0x6e) && (uVar2 != 0x2007)) goto LAB_00302750;\n            goto LAB_003029eb;\n          }\n          if ((uVar2 == 1) || (uVar2 != 3)) goto LAB_00302750;\n          goto LAB_003029c7;\n        }\n        if (uVar8 < 0xd) {\n          uVar9 = *local_70;\n          local_70 = (uint *)((long)local_70 + 1);\n          puStack_50 = (uint *)(ulong)(byte)uVar9;\n          goto LAB_00302f92;\n        }\n        bVar1 = (byte)*local_70;\n        puVar11 = (uint *)((long)local_70 + 1);\n        if ((char)bVar1 < '\0') {\n          puStack_50 = (uint *)FUN_00211340(puVar11,&local_68);\n          puVar11 = (uint *)(local_68 + (long)local_70);\n        }\n        else {\n          local_68 = 1;\n          puStack_50 = (uint *)(ulong)bVar1;\n          if ((bVar1 & 0x40) != 0) {\n            puStack_50 = (uint *)((ulong)bVar1 | 0xffffffffffffff80);\n          }\n        }\n        local_70 = puVar11;\n        if ((uVar2 == 0x31) || (uVar2 < 0x32)) goto LAB_00302750;\n        if ((uVar2 == 0x6e) || (uVar2 == 0x2007)) goto LAB_00302fbe;\n        puVar16 = (undefined8 *)param_1[8];\n        if (puVar16 == (undefined8 *)param_1[9]) goto LAB_003028c0;\nLAB_0030275e:\n        *puVar16 = CONCAT44(uStack_54,local_58);\n        puVar16[1] = puStack_50;\n        puVar16[2] = CONCAT44(uStack_44,local_48);\n        param_1[8] = (long)(puVar16 + 3);\n      }" if (parenthesized_expression "(uVar8 == 0xe)" ( (binary_expression "uVar8 == 0xe" identifier == number_literal) )) (compound_statement "{\n        lVar10 = *param_1;\n        if (*(int *)(lVar10 + 0x60) == 4) {\n          uVar8 = FUN_00305610(lVar10,&local_70);\n          local_60 = (uint *)(ulong)uVar8;\n        }\n        else {\n          pcVar3 = *(code **)(**(long **)(lVar10 + 0x10) + 0x18);\n          if (pcVar3 == FUN_001b8d10) {\n            cVar6 = (**(code **)(**(long **)(lVar10 + 0x10) + 0x1d0))();\n          }\n          else {\n            cVar6 = (*pcVar3)();\n          }\n          local_60 = *(uint **)local_70;\n          if (cVar6 != '\0') {\n            local_60 = (uint *)((ulong)local_60 >> 0x38 |\n                                ((ulong)local_60 & 0xff000000000000) >> 0x28 |\n                                ((ulong)local_60 & 0xff0000000000) >> 0x18 |\n                                ((ulong)local_60 & 0xff00000000) >> 8 |\n                                ((ulong)local_60 & 0xff000000) << 8 |\n                                ((ulong)local_60 & 0xff0000) << 0x18 |\n                                ((ulong)local_60 & 0xff00) << 0x28 | (long)local_60 << 0x38);\n          }\n          local_70 = local_70 + 2;\n        }\n        local_48 = FUN_00301dc0(*param_1,pbVar15,&local_60);\n        puStack_50 = local_60;\n        if (uVar2 != 0x31) {\n          if (uVar2 < 0x32) {\n            if ((uVar2 != 1) && (uVar2 == 3)) {\nLAB_00302f64:\n              *(uint *)(param_1 + 0xf) = local_48;\n              param_1[0xc] = (long)puStack_50;\n            }\n          }\n          else if ((uVar2 == 0x6e) || (uVar2 == 0x2007)) {\nLAB_00302fd0:\n            *(uint *)(param_1 + 0xf) = local_48;\n            param_1[0xe] = (long)puStack_50;\n          }\n        }\nLAB_00302750:\n        puVar16 = (undefined8 *)param_1[8];\n        if (puVar16 != (undefined8 *)param_1[9]) goto LAB_0030275e;\nLAB_003028c0:\n        FUN_00305860(param_1 + 7,puVar16,&local_58);\n      }" { (expression_statement "lVar10 = *param_1;" (assignment_expression "lVar10 = *param_1" identifier = (pointer_expression "*param_1" * identifier)) ;) (if_statement "if (*(int *)(lVar10 + 0x60) == 4) {\n          uVar8 = FUN_00305610(lVar10,&local_70);\n          local_60 = (uint *)(ulong)uVar8;\n        }\n        else {\n          pcVar3 = *(code **)(**(long **)(lVar10 + 0x10) + 0x18);\n          if (pcVar3 == FUN_001b8d10) {\n            cVar6 = (**(code **)(**(long **)(lVar10 + 0x10) + 0x1d0))();\n          }\n          else {\n            cVar6 = (*pcVar3)();\n          }\n          local_60 = *(uint **)local_70;\n          if (cVar6 != '\0') {\n            local_60 = (uint *)((ulong)local_60 >> 0x38 |\n                                ((ulong)local_60 & 0xff000000000000) >> 0x28 |\n                                ((ulong)local_60 & 0xff0000000000) >> 0x18 |\n                                ((ulong)local_60 & 0xff00000000) >> 8 |\n                                ((ulong)local_60 & 0xff000000) << 8 |\n                                ((ulong)local_60 & 0xff0000) << 0x18 |\n                                ((ulong)local_60 & 0xff00) << 0x28 | (long)local_60 << 0x38);\n          }\n          local_70 = local_70 + 2;\n        }" if (parenthesized_expression "(*(int *)(lVar10 + 0x60) == 4)" ( (binary_expression "*(int *)(lVar10 + 0x60) == 4" (pointer_expression "*(int *)(lVar10 + 0x60)" * (cast_expression "(int *)(lVar10 + 0x60)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(lVar10 + 0x60)" ( (binary_expression "lVar10 + 0x60" identifier + number_literal) )))) == number_literal) )) (compound_statement "{\n          uVar8 = FUN_00305610(lVar10,&local_70);\n          local_60 = (uint *)(ulong)uVar8;\n        }" { (expression_statement "uVar8 = FUN_00305610(lVar10,&local_70);" (assignment_expression "uVar8 = FUN_00305610(lVar10,&local_70)" identifier = (call_expression "FUN_00305610(lVar10,&local_70)" identifier (argument_list "(lVar10,&local_70)" ( identifier , (pointer_expression "&local_70" & identifier) )))) ;) (expression_statement "local_60 = (uint *)(ulong)uVar8;" (assignment_expression "local_60 = (uint *)(ulong)uVar8" identifier = (cast_expression "(uint *)(ulong)uVar8" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (cast_expression "(ulong)uVar8" ( (type_descriptor "ulong" type_identifier) ) identifier))) ;) }) (else_clause "else {\n          pcVar3 = *(code **)(**(long **)(lVar10 + 0x10) + 0x18);\n          if (pcVar3 == FUN_001b8d10) {\n            cVar6 = (**(code **)(**(long **)(lVar10 + 0x10) + 0x1d0))();\n          }\n          else {\n            cVar6 = (*pcVar3)();\n          }\n          local_60 = *(uint **)local_70;\n          if (cVar6 != '\0') {\n            local_60 = (uint *)((ulong)local_60 >> 0x38 |\n                                ((ulong)local_60 & 0xff000000000000) >> 0x28 |\n                                ((ulong)local_60 & 0xff0000000000) >> 0x18 |\n                                ((ulong)local_60 & 0xff00000000) >> 8 |\n                                ((ulong)local_60 & 0xff000000) << 8 |\n                                ((ulong)local_60 & 0xff0000) << 0x18 |\n                                ((ulong)local_60 & 0xff00) << 0x28 | (long)local_60 << 0x38);\n          }\n          local_70 = local_70 + 2;\n        }" else (compound_statement "{\n          pcVar3 = *(code **)(**(long **)(lVar10 + 0x10) + 0x18);\n          if (pcVar3 == FUN_001b8d10) {\n            cVar6 = (**(code **)(**(long **)(lVar10 + 0x10) + 0x1d0))();\n          }\n          else {\n            cVar6 = (*pcVar3)();\n          }\n          local_60 = *(uint **)local_70;\n          if (cVar6 != '\0') {\n            local_60 = (uint *)((ulong)local_60 >> 0x38 |\n                                ((ulong)local_60 & 0xff000000000000) >> 0x28 |\n                                ((ulong)local_60 & 0xff0000000000) >> 0x18 |\n                                ((ulong)local_60 & 0xff00000000) >> 8 |\n                                ((ulong)local_60 & 0xff000000) << 8 |\n                                ((ulong)local_60 & 0xff0000) << 0x18 |\n                                ((ulong)local_60 & 0xff00) << 0x28 | (long)local_60 << 0x38);\n          }\n          local_70 = local_70 + 2;\n        }" { (expression_statement "pcVar3 = *(code **)(**(long **)(lVar10 + 0x10) + 0x18);" (assignment_expression "pcVar3 = *(code **)(**(long **)(lVar10 + 0x10) + 0x18)" identifier = (pointer_expression "*(code **)(**(long **)(lVar10 + 0x10) + 0x18)" * (cast_expression "(code **)(**(long **)(lVar10 + 0x10) + 0x18)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(**(long **)(lVar10 + 0x10) + 0x18)" ( (binary_expression "**(long **)(lVar10 + 0x10) + 0x18" (pointer_expression "**(long **)(lVar10 + 0x10)" * (pointer_expression "*(long **)(lVar10 + 0x10)" * (cast_expression "(long **)(lVar10 + 0x10)" ( (type_descriptor "long **" (sized_type_specifier "long" long) (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(lVar10 + 0x10)" ( (binary_expression "lVar10 + 0x10" identifier + number_literal) ))))) + number_literal) ))))) ;) (if_statement "if (pcVar3 == FUN_001b8d10) {\n            cVar6 = (**(code **)(**(long **)(lVar10 + 0x10) + 0x1d0))();\n          }\n          else {\n            cVar6 = (*pcVar3)();\n          }" if (parenthesized_expression "(pcVar3 == FUN_001b8d10)" ( (binary_expression "pcVar3 == FUN_001b8d10" identifier == identifier) )) (compound_statement "{\n            cVar6 = (**(code **)(**(long **)(lVar10 + 0x10) + 0x1d0))();\n          }" { (expression_statement "cVar6 = (**(code **)(**(long **)(lVar10 + 0x10) + 0x1d0))();" (assignment_expression "cVar6 = (**(code **)(**(long **)(lVar10 + 0x10) + 0x1d0))()" identifier = (call_expression "(**(code **)(**(long **)(lVar10 + 0x10) + 0x1d0))()" (parenthesized_expression "(**(code **)(**(long **)(lVar10 + 0x10) + 0x1d0))" ( (pointer_expression "**(code **)(**(long **)(lVar10 + 0x10) + 0x1d0)" * (pointer_expression "*(code **)(**(long **)(lVar10 + 0x10) + 0x1d0)" * (cast_expression "(code **)(**(long **)(lVar10 + 0x10) + 0x1d0)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(**(long **)(lVar10 + 0x10) + 0x1d0)" ( (binary_expression "**(long **)(lVar10 + 0x10) + 0x1d0" (pointer_expression "**(long **)(lVar10 + 0x10)" * (pointer_expression "*(long **)(lVar10 + 0x10)" * (cast_expression "(long **)(lVar10 + 0x10)" ( (type_descriptor "long **" (sized_type_specifier "long" long) (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(lVar10 + 0x10)" ( (binary_expression "lVar10 + 0x10" identifier + number_literal) ))))) + number_literal) ))))) )) (argument_list "()" ( )))) ;) }) (else_clause "else {\n            cVar6 = (*pcVar3)();\n          }" else (compound_statement "{\n            cVar6 = (*pcVar3)();\n          }" { (expression_statement "cVar6 = (*pcVar3)();" (assignment_expression "cVar6 = (*pcVar3)()" identifier = (call_expression "(*pcVar3)()" (parenthesized_expression "(*pcVar3)" ( (pointer_expression "*pcVar3" * identifier) )) (argument_list "()" ( )))) ;) }))) (expression_statement "local_60 = *(uint **)local_70;" (assignment_expression "local_60 = *(uint **)local_70" identifier = (pointer_expression "*(uint **)local_70" * (cast_expression "(uint **)local_70" ( (type_descriptor "uint **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) identifier))) ;) (if_statement "if (cVar6 != '\0') {\n            local_60 = (uint *)((ulong)local_60 >> 0x38 |\n                                ((ulong)local_60 & 0xff000000000000) >> 0x28 |\n                                ((ulong)local_60 & 0xff0000000000) >> 0x18 |\n                                ((ulong)local_60 & 0xff00000000) >> 8 |\n                                ((ulong)local_60 & 0xff000000) << 8 |\n                                ((ulong)local_60 & 0xff0000) << 0x18 |\n                                ((ulong)local_60 & 0xff00) << 0x28 | (long)local_60 << 0x38);\n          }" if (parenthesized_expression "(cVar6 != '\0')" ( (binary_expression "cVar6 != '\0'" identifier != (char_literal "'\0'" ' escape_sequence ')) )) (compound_statement "{\n            local_60 = (uint *)((ulong)local_60 >> 0x38 |\n                                ((ulong)local_60 & 0xff000000000000) >> 0x28 |\n                                ((ulong)local_60 & 0xff0000000000) >> 0x18 |\n                                ((ulong)local_60 & 0xff00000000) >> 8 |\n                                ((ulong)local_60 & 0xff000000) << 8 |\n                                ((ulong)local_60 & 0xff0000) << 0x18 |\n                                ((ulong)local_60 & 0xff00) << 0x28 | (long)local_60 << 0x38);\n          }" { (expression_statement "local_60 = (uint *)((ulong)local_60 >> 0x38 |\n                                ((ulong)local_60 & 0xff000000000000) >> 0x28 |\n                                ((ulong)local_60 & 0xff0000000000) >> 0x18 |\n                                ((ulong)local_60 & 0xff00000000) >> 8 |\n                                ((ulong)local_60 & 0xff000000) << 8 |\n                                ((ulong)local_60 & 0xff0000) << 0x18 |\n                                ((ulong)local_60 & 0xff00) << 0x28 | (long)local_60 << 0x38);" (assignment_expression "local_60 = (uint *)((ulong)local_60 >> 0x38 |\n                                ((ulong)local_60 & 0xff000000000000) >> 0x28 |\n                                ((ulong)local_60 & 0xff0000000000) >> 0x18 |\n                                ((ulong)local_60 & 0xff00000000) >> 8 |\n                                ((ulong)local_60 & 0xff000000) << 8 |\n                                ((ulong)local_60 & 0xff0000) << 0x18 |\n                                ((ulong)local_60 & 0xff00) << 0x28 | (long)local_60 << 0x38)" identifier = (cast_expression "(uint *)((ulong)local_60 >> 0x38 |\n                                ((ulong)local_60 & 0xff000000000000) >> 0x28 |\n                                ((ulong)local_60 & 0xff0000000000) >> 0x18 |\n                                ((ulong)local_60 & 0xff00000000) >> 8 |\n                                ((ulong)local_60 & 0xff000000) << 8 |\n                                ((ulong)local_60 & 0xff0000) << 0x18 |\n                                ((ulong)local_60 & 0xff00) << 0x28 | (long)local_60 << 0x38)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((ulong)local_60 >> 0x38 |\n                                ((ulong)local_60 & 0xff000000000000) >> 0x28 |\n                                ((ulong)local_60 & 0xff0000000000) >> 0x18 |\n                                ((ulong)local_60 & 0xff00000000) >> 8 |\n                                ((ulong)local_60 & 0xff000000) << 8 |\n                                ((ulong)local_60 & 0xff0000) << 0x18 |\n                                ((ulong)local_60 & 0xff00) << 0x28 | (long)local_60 << 0x38)" ( (binary_expression "(ulong)local_60 >> 0x38 |\n                                ((ulong)local_60 & 0xff000000000000) >> 0x28 |\n                                ((ulong)local_60 & 0xff0000000000) >> 0x18 |\n                                ((ulong)local_60 & 0xff00000000) >> 8 |\n                                ((ulong)local_60 & 0xff000000) << 8 |\n                                ((ulong)local_60 & 0xff0000) << 0x18 |\n                                ((ulong)local_60 & 0xff00) << 0x28 | (long)local_60 << 0x38" (binary_expression "(ulong)local_60 >> 0x38 |\n                                ((ulong)local_60 & 0xff000000000000) >> 0x28 |\n                                ((ulong)local_60 & 0xff0000000000) >> 0x18 |\n                                ((ulong)local_60 & 0xff00000000) >> 8 |\n                                ((ulong)local_60 & 0xff000000) << 8 |\n                                ((ulong)local_60 & 0xff0000) << 0x18 |\n                                ((ulong)local_60 & 0xff00) << 0x28" (binary_expression "(ulong)local_60 >> 0x38 |\n                                ((ulong)local_60 & 0xff000000000000) >> 0x28 |\n                                ((ulong)local_60 & 0xff0000000000) >> 0x18 |\n                                ((ulong)local_60 & 0xff00000000) >> 8 |\n                                ((ulong)local_60 & 0xff000000) << 8 |\n                                ((ulong)local_60 & 0xff0000) << 0x18" (binary_expression "(ulong)local_60 >> 0x38 |\n                                ((ulong)local_60 & 0xff000000000000) >> 0x28 |\n                                ((ulong)local_60 & 0xff0000000000) >> 0x18 |\n                                ((ulong)local_60 & 0xff00000000) >> 8 |\n                                ((ulong)local_60 & 0xff000000) << 8" (binary_expression "(ulong)local_60 >> 0x38 |\n                                ((ulong)local_60 & 0xff000000000000) >> 0x28 |\n                                ((ulong)local_60 & 0xff0000000000) >> 0x18 |\n                                ((ulong)local_60 & 0xff00000000) >> 8" (binary_expression "(ulong)local_60 >> 0x38 |\n                                ((ulong)local_60 & 0xff000000000000) >> 0x28 |\n                                ((ulong)local_60 & 0xff0000000000) >> 0x18" (binary_expression "(ulong)local_60 >> 0x38 |\n                                ((ulong)local_60 & 0xff000000000000) >> 0x28" (binary_expression "(ulong)local_60 >> 0x38" (cast_expression "(ulong)local_60" ( (type_descriptor "ulong" type_identifier) ) identifier) >> number_literal) | (binary_expression "((ulong)local_60 & 0xff000000000000) >> 0x28" (parenthesized_expression "((ulong)local_60 & 0xff000000000000)" ( (binary_expression "(ulong)local_60 & 0xff000000000000" (cast_expression "(ulong)local_60" ( (type_descriptor "ulong" type_identifier) ) identifier) & number_literal) )) >> number_literal)) | (binary_expression "((ulong)local_60 & 0xff0000000000) >> 0x18" (parenthesized_expression "((ulong)local_60 & 0xff0000000000)" ( (binary_expression "(ulong)local_60 & 0xff0000000000" (cast_expression "(ulong)local_60" ( (type_descriptor "ulong" type_identifier) ) identifier) & number_literal) )) >> number_literal)) | (binary_expression "((ulong)local_60 & 0xff00000000) >> 8" (parenthesized_expression "((ulong)local_60 & 0xff00000000)" ( (binary_expression "(ulong)local_60 & 0xff00000000" (cast_expression "(ulong)local_60" ( (type_descriptor "ulong" type_identifier) ) identifier) & number_literal) )) >> number_literal)) | (binary_expression "((ulong)local_60 & 0xff000000) << 8" (parenthesized_expression "((ulong)local_60 & 0xff000000)" ( (binary_expression "(ulong)local_60 & 0xff000000" (cast_expression "(ulong)local_60" ( (type_descriptor "ulong" type_identifier) ) identifier) & number_literal) )) << number_literal)) | (binary_expression "((ulong)local_60 & 0xff0000) << 0x18" (parenthesized_expression "((ulong)local_60 & 0xff0000)" ( (binary_expression "(ulong)local_60 & 0xff0000" (cast_expression "(ulong)local_60" ( (type_descriptor "ulong" type_identifier) ) identifier) & number_literal) )) << number_literal)) | (binary_expression "((ulong)local_60 & 0xff00) << 0x28" (parenthesized_expression "((ulong)local_60 & 0xff00)" ( (binary_expression "(ulong)local_60 & 0xff00" (cast_expression "(ulong)local_60" ( (type_descriptor "ulong" type_identifier) ) identifier) & number_literal) )) << number_literal)) | (binary_expression "(long)local_60 << 0x38" (cast_expression "(long)local_60" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) identifier) << number_literal)) )))) ;) })) (expression_statement "local_70 = local_70 + 2;" (assignment_expression "local_70 = local_70 + 2" identifier = (binary_expression "local_70 + 2" identifier + number_literal)) ;) }))) (expression_statement "local_48 = FUN_00301dc0(*param_1,pbVar15,&local_60);" (assignment_expression "local_48 = FUN_00301dc0(*param_1,pbVar15,&local_60)" identifier = (call_expression "FUN_00301dc0(*param_1,pbVar15,&local_60)" identifier (argument_list "(*param_1,pbVar15,&local_60)" ( (pointer_expression "*param_1" * identifier) , identifier , (pointer_expression "&local_60" & identifier) )))) ;) (expression_statement "puStack_50 = local_60;" (assignment_expression "puStack_50 = local_60" identifier = identifier) ;) (if_statement "if (uVar2 != 0x31) {\n          if (uVar2 < 0x32) {\n            if ((uVar2 != 1) && (uVar2 == 3)) {\nLAB_00302f64:\n              *(uint *)(param_1 + 0xf) = local_48;\n              param_1[0xc] = (long)puStack_50;\n            }\n          }\n          else if ((uVar2 == 0x6e) || (uVar2 == 0x2007)) {\nLAB_00302fd0:\n            *(uint *)(param_1 + 0xf) = local_48;\n            param_1[0xe] = (long)puStack_50;\n          }\n        }" if (parenthesized_expression "(uVar2 != 0x31)" ( (binary_expression "uVar2 != 0x31" identifier != number_literal) )) (compound_statement "{\n          if (uVar2 < 0x32) {\n            if ((uVar2 != 1) && (uVar2 == 3)) {\nLAB_00302f64:\n              *(uint *)(param_1 + 0xf) = local_48;\n              param_1[0xc] = (long)puStack_50;\n            }\n          }\n          else if ((uVar2 == 0x6e) || (uVar2 == 0x2007)) {\nLAB_00302fd0:\n            *(uint *)(param_1 + 0xf) = local_48;\n            param_1[0xe] = (long)puStack_50;\n          }\n        }" { (if_statement "if (uVar2 < 0x32) {\n            if ((uVar2 != 1) && (uVar2 == 3)) {\nLAB_00302f64:\n              *(uint *)(param_1 + 0xf) = local_48;\n              param_1[0xc] = (long)puStack_50;\n            }\n          }\n          else if ((uVar2 == 0x6e) || (uVar2 == 0x2007)) {\nLAB_00302fd0:\n            *(uint *)(param_1 + 0xf) = local_48;\n            param_1[0xe] = (long)puStack_50;\n          }" if (parenthesized_expression "(uVar2 < 0x32)" ( (binary_expression "uVar2 < 0x32" identifier < number_literal) )) (compound_statement "{\n            if ((uVar2 != 1) && (uVar2 == 3)) {\nLAB_00302f64:\n              *(uint *)(param_1 + 0xf) = local_48;\n              param_1[0xc] = (long)puStack_50;\n            }\n          }" { (if_statement "if ((uVar2 != 1) && (uVar2 == 3)) {\nLAB_00302f64:\n              *(uint *)(param_1 + 0xf) = local_48;\n              param_1[0xc] = (long)puStack_50;\n            }" if (parenthesized_expression "((uVar2 != 1) && (uVar2 == 3))" ( (binary_expression "(uVar2 != 1) && (uVar2 == 3)" (parenthesized_expression "(uVar2 != 1)" ( (binary_expression "uVar2 != 1" identifier != number_literal) )) && (parenthesized_expression "(uVar2 == 3)" ( (binary_expression "uVar2 == 3" identifier == number_literal) ))) )) (compound_statement "{\nLAB_00302f64:\n              *(uint *)(param_1 + 0xf) = local_48;\n              param_1[0xc] = (long)puStack_50;\n            }" { (labeled_statement "LAB_00302f64:\n              *(uint *)(param_1 + 0xf) = local_48;" statement_identifier : (expression_statement "*(uint *)(param_1 + 0xf) = local_48;" (assignment_expression "*(uint *)(param_1 + 0xf) = local_48" (pointer_expression "*(uint *)(param_1 + 0xf)" * (cast_expression "(uint *)(param_1 + 0xf)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0xf)" ( (binary_expression "param_1 + 0xf" identifier + number_literal) )))) = identifier) ;)) (expression_statement "param_1[0xc] = (long)puStack_50;" (assignment_expression "param_1[0xc] = (long)puStack_50" (subscript_expression "param_1[0xc]" identifier [ number_literal ]) = (cast_expression "(long)puStack_50" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) identifier)) ;) })) }) (else_clause "else if ((uVar2 == 0x6e) || (uVar2 == 0x2007)) {\nLAB_00302fd0:\n            *(uint *)(param_1 + 0xf) = local_48;\n            param_1[0xe] = (long)puStack_50;\n          }" else (if_statement "if ((uVar2 == 0x6e) || (uVar2 == 0x2007)) {\nLAB_00302fd0:\n            *(uint *)(param_1 + 0xf) = local_48;\n            param_1[0xe] = (long)puStack_50;\n          }" if (parenthesized_expression "((uVar2 == 0x6e) || (uVar2 == 0x2007))" ( (binary_expression "(uVar2 == 0x6e) || (uVar2 == 0x2007)" (parenthesized_expression "(uVar2 == 0x6e)" ( (binary_expression "uVar2 == 0x6e" identifier == number_literal) )) || (parenthesized_expression "(uVar2 == 0x2007)" ( (binary_expression "uVar2 == 0x2007" identifier == number_literal) ))) )) (compound_statement "{\nLAB_00302fd0:\n            *(uint *)(param_1 + 0xf) = local_48;\n            param_1[0xe] = (long)puStack_50;\n          }" { (labeled_statement "LAB_00302fd0:\n            *(uint *)(param_1 + 0xf) = local_48;" statement_identifier : (expression_statement "*(uint *)(param_1 + 0xf) = local_48;" (assignment_expression "*(uint *)(param_1 + 0xf) = local_48" (pointer_expression "*(uint *)(param_1 + 0xf)" * (cast_expression "(uint *)(param_1 + 0xf)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0xf)" ( (binary_expression "param_1 + 0xf" identifier + number_literal) )))) = identifier) ;)) (expression_statement "param_1[0xe] = (long)puStack_50;" (assignment_expression "param_1[0xe] = (long)puStack_50" (subscript_expression "param_1[0xe]" identifier [ number_literal ]) = (cast_expression "(long)puStack_50" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) identifier)) ;) })))) })) (labeled_statement "LAB_00302750:\n        puVar16 = (undefined8 *)param_1[8];" statement_identifier : (expression_statement "puVar16 = (undefined8 *)param_1[8];" (assignment_expression "puVar16 = (undefined8 *)param_1[8]" identifier = (cast_expression "(undefined8 *)param_1[8]" ( (type_descriptor "undefined8 *" type_identifier (abstract_pointer_declarator "*" *)) ) (subscript_expression "param_1[8]" identifier [ number_literal ]))) ;)) (if_statement "if (puVar16 != (undefined8 *)param_1[9]) goto LAB_0030275e;" if (parenthesized_expression "(puVar16 != (undefined8 *)param_1[9])" ( (binary_expression "puVar16 != (undefined8 *)param_1[9]" identifier != (cast_expression "(undefined8 *)param_1[9]" ( (type_descriptor "undefined8 *" type_identifier (abstract_pointer_declarator "*" *)) ) (subscript_expression "param_1[9]" identifier [ number_literal ]))) )) (goto_statement "goto LAB_0030275e;" goto statement_identifier ;)) (labeled_statement "LAB_003028c0:\n        FUN_00305860(param_1 + 7,puVar16,&local_58);" statement_identifier : (expression_statement "FUN_00305860(param_1 + 7,puVar16,&local_58);" (call_expression "FUN_00305860(param_1 + 7,puVar16,&local_58)" identifier (argument_list "(param_1 + 7,puVar16,&local_58)" ( (binary_expression "param_1 + 7" identifier + number_literal) , identifier , (pointer_expression "&local_58" & identifier) ))) ;)) }) (else_clause "else {\n        if (0xe < uVar8) {\n          if (uVar8 == 0x15) {\n            bVar1 = (byte)*local_70;\n            if ((char)bVar1 < '\0') {\n              puStack_50 = (uint *)FUN_002112d0((uint *)((long)local_70 + 1),&local_68,bVar1);\n              local_70 = (uint *)(local_68 + (long)local_70);\n            }\n            else {\n              local_68 = 1;\n              local_70 = (uint *)((long)local_70 + 1);\n              puStack_50 = (uint *)(ulong)bVar1;\n            }\njoined_r0x00303052:\n            if (uVar2 != 0x31) {\n              if (uVar2 < 0x32) {\nLAB_00302c20:\n                if ((uVar2 == 1) && (local_48 == 0)) {\n                  param_1[5] = (long)puStack_50;\n                }\n                goto LAB_00302750;\n              }\n              if ((uVar2 != 0x6e) && (uVar2 != 0x2007)) {\njoined_r0x00302ce3:\n                if (uVar2 == 0x47) {\n                  param_1[0x10] = (long)puStack_50;\n                }\n                goto LAB_00302750;\n              }\nLAB_00302fb5:\n              if (uVar8 == 8) {\nLAB_003029eb:\n                param_1[0xd] = (long)puStack_50;\n              }\n              else {\nLAB_00302fbe:\n                if (uVar8 == 0xe) goto LAB_00302fd0;\n              }\n              goto LAB_00302750;\n            }\n          }\n          else {\n            if (0x15 < uVar8) {\n              if (uVar8 != 0x19) {\n                if (uVar8 < 0x1a) {\n                  if (uVar8 == 0x17) {\n                    lVar10 = *param_1;\n                    if (*(int *)(lVar10 + 0x60) == 4) {\n                      uVar9 = FUN_00305610(lVar10,&local_70);\n                      local_60 = (uint *)(ulong)uVar9;\n                    }\n                    else {\n                      plVar17 = *(long **)(lVar10 + 0x10);\nLAB_00302fe7:\n                      pcVar3 = *(code **)(*plVar17 + 0x18);\n                      if (pcVar3 == FUN_001b8d10) {\n                        cVar6 = (**(code **)(*plVar17 + 0x1d0))();\n                      }\n                      else {\n                        cVar6 = (*pcVar3)();\n                      }\n                      local_60 = *(uint **)local_70;\n                      if (cVar6 != '\0') {\n                        local_60 = (uint *)((ulong)local_60 >> 0x38 |\n                                            ((ulong)local_60 & 0xff000000000000) >> 0x28 |\n                                            ((ulong)local_60 & 0xff0000000000) >> 0x18 |\n                                            ((ulong)local_60 & 0xff00000000) >> 8 |\n                                            ((ulong)local_60 & 0xff000000) << 8 |\n                                            ((ulong)local_60 & 0xff0000) << 0x18 |\n                                            ((ulong)local_60 & 0xff00) << 0x28 |\n                                           (long)local_60 << 0x38);\n                      }\n                      local_70 = local_70 + 2;\n                    }\nLAB_00303035:\n                    local_48 = FUN_00301dc0(*param_1,pbVar15,&local_60);\n                    puStack_50 = local_60;\n                    goto joined_r0x00303052;\n                  }\n                  if (uVar8 != 0x18) {\n                    return 0;\n                  }\nLAB_00302a09:\n                  bVar1 = (byte)*local_70;\n                  uVar9 = (uint)bVar1;\n                  puVar11 = (uint *)((long)local_70 + 1);\n                  if ((char)bVar1 < '\0') {\n                    uVar9 = FUN_002112d0(puVar11,&local_68,bVar1);\n                    puVar11 = (uint *)((long)local_70 + local_68);\n                  }\n                  else {\n                    local_68 = 1;\n                  }\n                  local_70 = (uint *)((long)local_70 + uVar9 + local_68);\n                  puStack_50 = puVar11;\n                  local_48 = uVar9;\n                }\n                else {\n                  if (uVar8 == 0x20) {\n                    pcVar3 = *(code **)(**(long **)(*param_1 + 0x10) + 0x18);\n                    if (pcVar3 == FUN_001b8d10) {\n                      cVar6 = (**(code **)(**(long **)(*param_1 + 0x10) + 0x1d0))();\n                    }\n                    else {\n                      cVar6 = (*pcVar3)();\n                    }\n                    puStack_50 = *(uint **)local_70;\n                    if (cVar6 != '\0') {\n                      puStack_50 = (uint *)((ulong)puStack_50 >> 0x38 |\n                                            ((ulong)puStack_50 & 0xff000000000000) >> 0x28 |\n                                            ((ulong)puStack_50 & 0xff0000000000) >> 0x18 |\n                                            ((ulong)puStack_50 & 0xff00000000) >> 8 |\n                                            ((ulong)puStack_50 & 0xff000000) << 8 |\n                                            ((ulong)puStack_50 & 0xff0000) << 0x18 |\n                                            ((ulong)puStack_50 & 0xff00) << 0x28 |\n                                           (long)puStack_50 << 0x38);\n                    }\n                    local_70 = local_70 + 2;\n                    goto LAB_00302ea9;\n                  }\n                  if (uVar8 < 0x20) {\n                    return 0;\n                  }\n                  if (1 < uVar8 - 0x1f01) {\n                    return 0;\n                  }\nLAB_00302bcd:\n                  bVar1 = (byte)*local_70;\n                  if ((char)bVar1 < '\0') {\n                    puStack_50 = (uint *)FUN_002112d0((uint *)((long)local_70 + 1),&local_68,bVar1);\n                    local_70 = (uint *)(local_68 + (long)local_70);\n                  }\n                  else {\n                    local_68 = 1;\n                    local_70 = (uint *)((long)local_70 + 1);\n                    puStack_50 = (uint *)(ulong)bVar1;\n                  }\n                }\nLAB_00302f92:\n                if (uVar2 == 0x31) goto LAB_00302750;\n                if (0x31 < uVar2) {\n                  if ((uVar2 == 0x6e) || (uVar2 == 0x2007)) goto LAB_00302fb5;\n                  goto LAB_00302750;\n                }\n                goto LAB_00302e3e;\n              }\n              puStack_50 = (uint *)0x1;\nLAB_00302ea9:\n              if (((uVar2 == 0x31) || (0x31 < uVar2)) || (uVar2 != 3)) goto LAB_00302750;\nLAB_00302e52:\n              if (uVar8 == 8) {\nLAB_003029c7:\n                param_1[0xb] = (long)puStack_50;\n              }\n              else if (uVar8 == 0xe) goto LAB_00302f64;\n              goto LAB_00302750;\n            }\n            if (uVar8 != 0x11) {\n              if (0x11 < uVar8) {\n                if (uVar8 == 0x13) {\n                  uVar9 = FUN_00305610(*param_1,&local_70);\n                  local_60 = (uint *)(ulong)uVar9;\n                  goto LAB_00303035;\n                }\n                if (0x13 < uVar8) {\n                  plVar17 = *(long **)(*param_1 + 0x10);\n                  goto LAB_00302fe7;\n                }\n                pcVar3 = *(code **)(**(long **)(*param_1 + 0x10) + 0x18);\n                if (pcVar3 == FUN_001b8d10) {\n                  cVar6 = (**(code **)(**(long **)(*param_1 + 0x10) + 0x1d0))();\n                }\n                else {\n                  cVar6 = (*pcVar3)();\n                }\n                uVar5 = (ushort)*local_70;\n                if (cVar6 != '\0') {\n                  uVar5 = CONCAT11((byte)*local_70,*(byte *)((long)local_70 + 1));\n                }\n                local_70 = (uint *)((long)local_70 + 2);\n                puStack_50 = (uint *)(ulong)uVar5;\n                goto joined_r0x00303052;\n              }\n              if (uVar8 == 0xf) goto LAB_00302bcd;\n              if (uVar8 != 0x10) {\n                return 0;\n              }\n              lVar10 = *param_1;\n              iVar7 = *(int *)(lVar10 + 100);\n              if (2 < *(uint *)(lVar10 + 0x68)) {\n                iVar7 = *(int *)(lVar10 + 0x60);\n              }\n              if (iVar7 != 4) goto LAB_00302a71;\nLAB_00302e7d:\n              uVar8 = FUN_00305610(lVar10,&local_70);\n              local_60 = (uint *)(ulong)uVar8;\nLAB_00302abe:\n              local_48 = FUN_00301dc0(*param_1,pbVar15,&local_60);\n              puStack_50 = local_60;\n              if (uVar2 == 0x31) goto LAB_00302965;\n              if (0x31 < uVar2) goto joined_r0x00302ccc;\n              goto LAB_00302c20;\n            }\n            puVar11 = (uint *)((long)local_70 + 1);\n            puStack_50 = (uint *)(ulong)(byte)*local_70;\n            local_70 = puVar11;\n            if (uVar2 != 0x31) {\n              if (uVar2 < 0x32) {\n                if (uVar2 == 1) {\n                  param_1[5] = (long)puStack_50;\n                }\n                goto LAB_00302750;\n              }\njoined_r0x00302ccc:\n              if ((uVar2 == 0x6e) || (uVar2 == 0x2007)) goto LAB_00302750;\n              goto joined_r0x00302ce3;\n            }\n          }\nLAB_00302965:\n          param_1[0x11] = (long)puStack_50;\n          goto LAB_00302750;\n        }\n        if (uVar8 == 7) {\n          pcVar3 = *(code **)(**(long **)(*param_1 + 0x10) + 0x18);\n          if (pcVar3 == FUN_001b8d10) {\n            cVar6 = (**(code **)(**(long **)(*param_1 + 0x10) + 0x1d0))();\n          }\n          else {\n            cVar6 = (*pcVar3)();\n          }\n          local_60 = *(uint **)local_70;\n          if (cVar6 != '\0') {\n            local_60 = (uint *)((ulong)local_60 >> 0x38 |\n                                ((ulong)local_60 & 0xff000000000000) >> 0x28 |\n                                ((ulong)local_60 & 0xff0000000000) >> 0x18 |\n                                ((ulong)local_60 & 0xff00000000) >> 8 |\n                                ((ulong)local_60 & 0xff000000) << 8 |\n                                ((ulong)local_60 & 0xff0000) << 0x18 |\n                                ((ulong)local_60 & 0xff00) << 0x28 | (long)local_60 << 0x38);\n          }\n          local_70 = local_70 + 2;\nLAB_00302d40:\n          local_48 = FUN_00301dc0(*param_1,pbVar15,&local_60);\n          puStack_50 = local_60;\njoined_r0x00302748:\n          if ((uVar2 != 0x31) && (uVar2 < 0x32)) {\nLAB_00302e3e:\n            if ((uVar2 != 1) && (uVar2 == 3)) goto LAB_00302e52;\n          }\n          goto LAB_00302750;\n        }\n        if (uVar8 < 8) {\n          if (uVar8 == 4) {\n            pcVar3 = *(code **)(**(long **)(*param_1 + 0x10) + 0x18);\n            if (pcVar3 == FUN_001b8d10) {\n              cVar6 = (**(code **)(**(long **)(*param_1 + 0x10) + 0x1d0))();\n            }\n            else {\n              cVar6 = (*pcVar3)();\n            }\n            local_48 = *local_70;\n            if (cVar6 != '\0') {\n              local_48 = local_48 >> 0x18 | (local_48 & 0xff0000) >> 8 | (local_48 & 0xff00) << 8 |\n                         local_48 << 0x18;\n            }\n            puStack_50 = local_70 + 1;\n            local_70 = (uint *)((long)puStack_50 + (ulong)local_48);\n          }\n          else if (uVar8 < 5) {\n            if (uVar8 == 1) {\n              lVar10 = *param_1;\n              if (*(int *)(lVar10 + 100) == 4) goto LAB_00302e7d;\nLAB_00302a71:\n              pcVar3 = *(code **)(**(long **)(lVar10 + 0x10) + 0x18);\n              if (pcVar3 == FUN_001b8d10) {\n                cVar6 = (**(code **)(**(long **)(lVar10 + 0x10) + 0x1d0))();\n              }\n              else {\n                cVar6 = (*pcVar3)();\n              }\n              local_60 = *(uint **)local_70;\n              if (cVar6 != '\0') {\n                local_60 = (uint *)((ulong)local_60 >> 0x38 |\n                                    ((ulong)local_60 & 0xff000000000000) >> 0x28 |\n                                    ((ulong)local_60 & 0xff0000000000) >> 0x18 |\n                                    ((ulong)local_60 & 0xff00000000) >> 8 |\n                                    ((ulong)local_60 & 0xff000000) << 8 |\n                                    ((ulong)local_60 & 0xff0000) << 0x18 |\n                                    ((ulong)local_60 & 0xff00) << 0x28 | (long)local_60 << 0x38);\n              }\n              local_70 = local_70 + 2;\n              goto LAB_00302abe;\n            }\n            if (uVar8 != 3) {\n              return 0;\n            }\n            pcVar3 = *(code **)(**(long **)(*param_1 + 0x10) + 0x18);\n            if (pcVar3 == FUN_001b8d10) {\n              cVar6 = (**(code **)(**(long **)(*param_1 + 0x10) + 0x1d0))();\n            }\n            else {\n              cVar6 = (*pcVar3)();\n            }\n            uVar5 = (ushort)*local_70;\n            if (cVar6 != '\0') {\n              uVar5 = CONCAT11((byte)*local_70,*(byte *)((long)local_70 + 1));\n            }\n            local_48 = (uint)uVar5;\n            puStack_50 = (uint *)((long)local_70 + 2);\n            local_70 = (uint *)((long)puStack_50 + (ulong)local_48);\n          }\n          else {\n            if (uVar8 != 5) {\n              if (uVar8 != 6) {\n                return 0;\n              }\n              pcVar3 = *(code **)(**(long **)(*param_1 + 0x10) + 0x18);\n              if (pcVar3 == FUN_001b8d10) {\n                cVar6 = (**(code **)(**(long **)(*param_1 + 0x10) + 0x1d0))();\n              }\n              else {\n                cVar6 = (*pcVar3)();\n              }\n              uVar9 = *local_70;\n              if (cVar6 != '\0') {\n                uVar9 = uVar9 >> 0x18 | (uVar9 & 0xff0000) >> 8 | (uVar9 & 0xff00) << 8 |\n                        uVar9 << 0x18;\n              }\n              local_60 = (uint *)(ulong)uVar9;\n              local_70 = local_70 + 1;\n              goto LAB_00302d40;\n            }\n            pcVar3 = *(code **)(**(long **)(*param_1 + 0x10) + 0x18);\n            if (pcVar3 == FUN_001b8d10) {\n              cVar6 = (**(code **)(**(long **)(*param_1 + 0x10) + 0x1d0))();\n            }\n            else {\n              cVar6 = (*pcVar3)();\n            }\n            uVar5 = (ushort)*local_70;\n            if (cVar6 != '\0') {\n              uVar5 = CONCAT11((byte)*local_70,*(byte *)((long)local_70 + 1));\n            }\n            local_70 = (uint *)((long)local_70 + 2);\n            puStack_50 = (uint *)(ulong)uVar5;\n          }\n          goto joined_r0x00302748;\n        }\n        if (uVar8 == 10) {\n          puStack_50 = (uint *)((long)local_70 + 1);\n          uVar9 = *local_70;\n          local_70 = (uint *)((long)puStack_50 + (ulong)(byte)uVar9);\n          local_48 = (uint)(byte)uVar9;\n          goto joined_r0x00302748;\n        }\n        if (uVar8 < 0xb) {\n          if (uVar8 != 8) {\n            if (uVar8 != 9) {\n              return 0;\n            }\n            goto LAB_00302a09;\n          }\n          puStack_50 = local_70;\n          local_68 = strlen((char *)local_70);\n          local_70 = (uint *)((long)puVar11 + local_68 + 1);\n          if (uVar2 == 0x31) goto LAB_00302750;\n          if (0x31 < uVar2) {\n            if ((uVar2 != 0x6e) && (uVar2 != 0x2007)) goto LAB_00302750;\n            goto LAB_003029eb;\n          }\n          if ((uVar2 == 1) || (uVar2 != 3)) goto LAB_00302750;\n          goto LAB_003029c7;\n        }\n        if (uVar8 < 0xd) {\n          uVar9 = *local_70;\n          local_70 = (uint *)((long)local_70 + 1);\n          puStack_50 = (uint *)(ulong)(byte)uVar9;\n          goto LAB_00302f92;\n        }\n        bVar1 = (byte)*local_70;\n        puVar11 = (uint *)((long)local_70 + 1);\n        if ((char)bVar1 < '\0') {\n          puStack_50 = (uint *)FUN_00211340(puVar11,&local_68);\n          puVar11 = (uint *)(local_68 + (long)local_70);\n        }\n        else {\n          local_68 = 1;\n          puStack_50 = (uint *)(ulong)bVar1;\n          if ((bVar1 & 0x40) != 0) {\n            puStack_50 = (uint *)((ulong)bVar1 | 0xffffffffffffff80);\n          }\n        }\n        local_70 = puVar11;\n        if ((uVar2 == 0x31) || (uVar2 < 0x32)) goto LAB_00302750;\n        if ((uVar2 == 0x6e) || (uVar2 == 0x2007)) goto LAB_00302fbe;\n        puVar16 = (undefined8 *)param_1[8];\n        if (puVar16 == (undefined8 *)param_1[9]) goto LAB_003028c0;\nLAB_0030275e:\n        *puVar16 = CONCAT44(uStack_54,local_58);\n        puVar16[1] = puStack_50;\n        puVar16[2] = CONCAT44(uStack_44,local_48);\n        param_1[8] = (long)(puVar16 + 3);\n      }" else (compound_statement "{\n        if (0xe < uVar8) {\n          if (uVar8 == 0x15) {\n            bVar1 = (byte)*local_70;\n            if ((char)bVar1 < '\0') {\n              puStack_50 = (uint *)FUN_002112d0((uint *)((long)local_70 + 1),&local_68,bVar1);\n              local_70 = (uint *)(local_68 + (long)local_70);\n            }\n            else {\n              local_68 = 1;\n              local_70 = (uint *)((long)local_70 + 1);\n              puStack_50 = (uint *)(ulong)bVar1;\n            }\njoined_r0x00303052:\n            if (uVar2 != 0x31) {\n              if (uVar2 < 0x32) {\nLAB_00302c20:\n                if ((uVar2 == 1) && (local_48 == 0)) {\n                  param_1[5] = (long)puStack_50;\n                }\n                goto LAB_00302750;\n              }\n              if ((uVar2 != 0x6e) && (uVar2 != 0x2007)) {\njoined_r0x00302ce3:\n                if (uVar2 == 0x47) {\n                  param_1[0x10] = (long)puStack_50;\n                }\n                goto LAB_00302750;\n              }\nLAB_00302fb5:\n              if (uVar8 == 8) {\nLAB_003029eb:\n                param_1[0xd] = (long)puStack_50;\n              }\n              else {\nLAB_00302fbe:\n                if (uVar8 == 0xe) goto LAB_00302fd0;\n              }\n              goto LAB_00302750;\n            }\n          }\n          else {\n            if (0x15 < uVar8) {\n              if (uVar8 != 0x19) {\n                if (uVar8 < 0x1a) {\n                  if (uVar8 == 0x17) {\n                    lVar10 = *param_1;\n                    if (*(int *)(lVar10 + 0x60) == 4) {\n                      uVar9 = FUN_00305610(lVar10,&local_70);\n                      local_60 = (uint *)(ulong)uVar9;\n                    }\n                    else {\n                      plVar17 = *(long **)(lVar10 + 0x10);\nLAB_00302fe7:\n                      pcVar3 = *(code **)(*plVar17 + 0x18);\n                      if (pcVar3 == FUN_001b8d10) {\n                        cVar6 = (**(code **)(*plVar17 + 0x1d0))();\n                      }\n                      else {\n                        cVar6 = (*pcVar3)();\n                      }\n                      local_60 = *(uint **)local_70;\n                      if (cVar6 != '\0') {\n                        local_60 = (uint *)((ulong)local_60 >> 0x38 |\n                                            ((ulong)local_60 & 0xff000000000000) >> 0x28 |\n                                            ((ulong)local_60 & 0xff0000000000) >> 0x18 |\n                                            ((ulong)local_60 & 0xff00000000) >> 8 |\n                                            ((ulong)local_60 & 0xff000000) << 8 |\n                                            ((ulong)local_60 & 0xff0000) << 0x18 |\n                                            ((ulong)local_60 & 0xff00) << 0x28 |\n                                           (long)local_60 << 0x38);\n                      }\n                      local_70 = local_70 + 2;\n                    }\nLAB_00303035:\n                    local_48 = FUN_00301dc0(*param_1,pbVar15,&local_60);\n                    puStack_50 = local_60;\n                    goto joined_r0x00303052;\n                  }\n                  if (uVar8 != 0x18) {\n                    return 0;\n                  }\nLAB_00302a09:\n                  bVar1 = (byte)*local_70;\n                  uVar9 = (uint)bVar1;\n                  puVar11 = (uint *)((long)local_70 + 1);\n                  if ((char)bVar1 < '\0') {\n                    uVar9 = FUN_002112d0(puVar11,&local_68,bVar1);\n                    puVar11 = (uint *)((long)local_70 + local_68);\n                  }\n                  else {\n                    local_68 = 1;\n                  }\n                  local_70 = (uint *)((long)local_70 + uVar9 + local_68);\n                  puStack_50 = puVar11;\n                  local_48 = uVar9;\n                }\n                else {\n                  if (uVar8 == 0x20) {\n                    pcVar3 = *(code **)(**(long **)(*param_1 + 0x10) + 0x18);\n                    if (pcVar3 == FUN_001b8d10) {\n                      cVar6 = (**(code **)(**(long **)(*param_1 + 0x10) + 0x1d0))();\n                    }\n                    else {\n                      cVar6 = (*pcVar3)();\n                    }\n                    puStack_50 = *(uint **)local_70;\n                    if (cVar6 != '\0') {\n                      puStack_50 = (uint *)((ulong)puStack_50 >> 0x38 |\n                                            ((ulong)puStack_50 & 0xff000000000000) >> 0x28 |\n                                            ((ulong)puStack_50 & 0xff0000000000) >> 0x18 |\n                                            ((ulong)puStack_50 & 0xff00000000) >> 8 |\n                                            ((ulong)puStack_50 & 0xff000000) << 8 |\n                                            ((ulong)puStack_50 & 0xff0000) << 0x18 |\n                                            ((ulong)puStack_50 & 0xff00) << 0x28 |\n                                           (long)puStack_50 << 0x38);\n                    }\n                    local_70 = local_70 + 2;\n                    goto LAB_00302ea9;\n                  }\n                  if (uVar8 < 0x20) {\n                    return 0;\n                  }\n                  if (1 < uVar8 - 0x1f01) {\n                    return 0;\n                  }\nLAB_00302bcd:\n                  bVar1 = (byte)*local_70;\n                  if ((char)bVar1 < '\0') {\n                    puStack_50 = (uint *)FUN_002112d0((uint *)((long)local_70 + 1),&local_68,bVar1);\n                    local_70 = (uint *)(local_68 + (long)local_70);\n                  }\n                  else {\n                    local_68 = 1;\n                    local_70 = (uint *)((long)local_70 + 1);\n                    puStack_50 = (uint *)(ulong)bVar1;\n                  }\n                }\nLAB_00302f92:\n                if (uVar2 == 0x31) goto LAB_00302750;\n                if (0x31 < uVar2) {\n                  if ((uVar2 == 0x6e) || (uVar2 == 0x2007)) goto LAB_00302fb5;\n                  goto LAB_00302750;\n                }\n                goto LAB_00302e3e;\n              }\n              puStack_50 = (uint *)0x1;\nLAB_00302ea9:\n              if (((uVar2 == 0x31) || (0x31 < uVar2)) || (uVar2 != 3)) goto LAB_00302750;\nLAB_00302e52:\n              if (uVar8 == 8) {\nLAB_003029c7:\n                param_1[0xb] = (long)puStack_50;\n              }\n              else if (uVar8 == 0xe) goto LAB_00302f64;\n              goto LAB_00302750;\n            }\n            if (uVar8 != 0x11) {\n              if (0x11 < uVar8) {\n                if (uVar8 == 0x13) {\n                  uVar9 = FUN_00305610(*param_1,&local_70);\n                  local_60 = (uint *)(ulong)uVar9;\n                  goto LAB_00303035;\n                }\n                if (0x13 < uVar8) {\n                  plVar17 = *(long **)(*param_1 + 0x10);\n                  goto LAB_00302fe7;\n                }\n                pcVar3 = *(code **)(**(long **)(*param_1 + 0x10) + 0x18);\n                if (pcVar3 == FUN_001b8d10) {\n                  cVar6 = (**(code **)(**(long **)(*param_1 + 0x10) + 0x1d0))();\n                }\n                else {\n                  cVar6 = (*pcVar3)();\n                }\n                uVar5 = (ushort)*local_70;\n                if (cVar6 != '\0') {\n                  uVar5 = CONCAT11((byte)*local_70,*(byte *)((long)local_70 + 1));\n                }\n                local_70 = (uint *)((long)local_70 + 2);\n                puStack_50 = (uint *)(ulong)uVar5;\n                goto joined_r0x00303052;\n              }\n              if (uVar8 == 0xf) goto LAB_00302bcd;\n              if (uVar8 != 0x10) {\n                return 0;\n              }\n              lVar10 = *param_1;\n              iVar7 = *(int *)(lVar10 + 100);\n              if (2 < *(uint *)(lVar10 + 0x68)) {\n                iVar7 = *(int *)(lVar10 + 0x60);\n              }\n              if (iVar7 != 4) goto LAB_00302a71;\nLAB_00302e7d:\n              uVar8 = FUN_00305610(lVar10,&local_70);\n              local_60 = (uint *)(ulong)uVar8;\nLAB_00302abe:\n              local_48 = FUN_00301dc0(*param_1,pbVar15,&local_60);\n              puStack_50 = local_60;\n              if (uVar2 == 0x31) goto LAB_00302965;\n              if (0x31 < uVar2) goto joined_r0x00302ccc;\n              goto LAB_00302c20;\n            }\n            puVar11 = (uint *)((long)local_70 + 1);\n            puStack_50 = (uint *)(ulong)(byte)*local_70;\n            local_70 = puVar11;\n            if (uVar2 != 0x31) {\n              if (uVar2 < 0x32) {\n                if (uVar2 == 1) {\n                  param_1[5] = (long)puStack_50;\n                }\n                goto LAB_00302750;\n              }\njoined_r0x00302ccc:\n              if ((uVar2 == 0x6e) || (uVar2 == 0x2007)) goto LAB_00302750;\n              goto joined_r0x00302ce3;\n            }\n          }\nLAB_00302965:\n          param_1[0x11] = (long)puStack_50;\n          goto LAB_00302750;\n        }\n        if (uVar8 == 7) {\n          pcVar3 = *(code **)(**(long **)(*param_1 + 0x10) + 0x18);\n          if (pcVar3 == FUN_001b8d10) {\n            cVar6 = (**(code **)(**(long **)(*param_1 + 0x10) + 0x1d0))();\n          }\n          else {\n            cVar6 = (*pcVar3)();\n          }\n          local_60 = *(uint **)local_70;\n          if (cVar6 != '\0') {\n            local_60 = (uint *)((ulong)local_60 >> 0x38 |\n                                ((ulong)local_60 & 0xff000000000000) >> 0x28 |\n                                ((ulong)local_60 & 0xff0000000000) >> 0x18 |\n                                ((ulong)local_60 & 0xff00000000) >> 8 |\n                                ((ulong)local_60 & 0xff000000) << 8 |\n                                ((ulong)local_60 & 0xff0000) << 0x18 |\n                                ((ulong)local_60 & 0xff00) << 0x28 | (long)local_60 << 0x38);\n          }\n          local_70 = local_70 + 2;\nLAB_00302d40:\n          local_48 = FUN_00301dc0(*param_1,pbVar15,&local_60);\n          puStack_50 = local_60;\njoined_r0x00302748:\n          if ((uVar2 != 0x31) && (uVar2 < 0x32)) {\nLAB_00302e3e:\n            if ((uVar2 != 1) && (uVar2 == 3)) goto LAB_00302e52;\n          }\n          goto LAB_00302750;\n        }\n        if (uVar8 < 8) {\n          if (uVar8 == 4) {\n            pcVar3 = *(code **)(**(long **)(*param_1 + 0x10) + 0x18);\n            if (pcVar3 == FUN_001b8d10) {\n              cVar6 = (**(code **)(**(long **)(*param_1 + 0x10) + 0x1d0))();\n            }\n            else {\n              cVar6 = (*pcVar3)();\n            }\n            local_48 = *local_70;\n            if (cVar6 != '\0') {\n              local_48 = local_48 >> 0x18 | (local_48 & 0xff0000) >> 8 | (local_48 & 0xff00) << 8 |\n                         local_48 << 0x18;\n            }\n            puStack_50 = local_70 + 1;\n            local_70 = (uint *)((long)puStack_50 + (ulong)local_48);\n          }\n          else if (uVar8 < 5) {\n            if (uVar8 == 1) {\n              lVar10 = *param_1;\n              if (*(int *)(lVar10 + 100) == 4) goto LAB_00302e7d;\nLAB_00302a71:\n              pcVar3 = *(code **)(**(long **)(lVar10 + 0x10) + 0x18);\n              if (pcVar3 == FUN_001b8d10) {\n                cVar6 = (**(code **)(**(long **)(lVar10 + 0x10) + 0x1d0))();\n              }\n              else {\n                cVar6 = (*pcVar3)();\n              }\n              local_60 = *(uint **)local_70;\n              if (cVar6 != '\0') {\n                local_60 = (uint *)((ulong)local_60 >> 0x38 |\n                                    ((ulong)local_60 & 0xff000000000000) >> 0x28 |\n                                    ((ulong)local_60 & 0xff0000000000) >> 0x18 |\n                                    ((ulong)local_60 & 0xff00000000) >> 8 |\n                                    ((ulong)local_60 & 0xff000000) << 8 |\n                                    ((ulong)local_60 & 0xff0000) << 0x18 |\n                                    ((ulong)local_60 & 0xff00) << 0x28 | (long)local_60 << 0x38);\n              }\n              local_70 = local_70 + 2;\n              goto LAB_00302abe;\n            }\n            if (uVar8 != 3) {\n              return 0;\n            }\n            pcVar3 = *(code **)(**(long **)(*param_1 + 0x10) + 0x18);\n            if (pcVar3 == FUN_001b8d10) {\n              cVar6 = (**(code **)(**(long **)(*param_1 + 0x10) + 0x1d0))();\n            }\n            else {\n              cVar6 = (*pcVar3)();\n            }\n            uVar5 = (ushort)*local_70;\n            if (cVar6 != '\0') {\n              uVar5 = CONCAT11((byte)*local_70,*(byte *)((long)local_70 + 1));\n            }\n            local_48 = (uint)uVar5;\n            puStack_50 = (uint *)((long)local_70 + 2);\n            local_70 = (uint *)((long)puStack_50 + (ulong)local_48);\n          }\n          else {\n            if (uVar8 != 5) {\n              if (uVar8 != 6) {\n                return 0;\n              }\n              pcVar3 = *(code **)(**(long **)(*param_1 + 0x10) + 0x18);\n              if (pcVar3 == FUN_001b8d10) {\n                cVar6 = (**(code **)(**(long **)(*param_1 + 0x10) + 0x1d0))();\n              }\n              else {\n                cVar6 = (*pcVar3)();\n              }\n              uVar9 = *local_70;\n              if (cVar6 != '\0') {\n                uVar9 = uVar9 >> 0x18 | (uVar9 & 0xff0000) >> 8 | (uVar9 & 0xff00) << 8 |\n                        uVar9 << 0x18;\n              }\n              local_60 = (uint *)(ulong)uVar9;\n              local_70 = local_70 + 1;\n              goto LAB_00302d40;\n            }\n            pcVar3 = *(code **)(**(long **)(*param_1 + 0x10) + 0x18);\n            if (pcVar3 == FUN_001b8d10) {\n              cVar6 = (**(code **)(**(long **)(*param_1 + 0x10) + 0x1d0))();\n            }\n            else {\n              cVar6 = (*pcVar3)();\n            }\n            uVar5 = (ushort)*local_70;\n            if (cVar6 != '\0') {\n              uVar5 = CONCAT11((byte)*local_70,*(byte *)((long)local_70 + 1));\n            }\n            local_70 = (uint *)((long)local_70 + 2);\n            puStack_50 = (uint *)(ulong)uVar5;\n          }\n          goto joined_r0x00302748;\n        }\n        if (uVar8 == 10) {\n          puStack_50 = (uint *)((long)local_70 + 1);\n          uVar9 = *local_70;\n          local_70 = (uint *)((long)puStack_50 + (ulong)(byte)uVar9);\n          local_48 = (uint)(byte)uVar9;\n          goto joined_r0x00302748;\n        }\n        if (uVar8 < 0xb) {\n          if (uVar8 != 8) {\n            if (uVar8 != 9) {\n              return 0;\n            }\n            goto LAB_00302a09;\n          }\n          puStack_50 = local_70;\n          local_68 = strlen((char *)local_70);\n          local_70 = (uint *)((long)puVar11 + local_68 + 1);\n          if (uVar2 == 0x31) goto LAB_00302750;\n          if (0x31 < uVar2) {\n            if ((uVar2 != 0x6e) && (uVar2 != 0x2007)) goto LAB_00302750;\n            goto LAB_003029eb;\n          }\n          if ((uVar2 == 1) || (uVar2 != 3)) goto LAB_00302750;\n          goto LAB_003029c7;\n        }\n        if (uVar8 < 0xd) {\n          uVar9 = *local_70;\n          local_70 = (uint *)((long)local_70 + 1);\n          puStack_50 = (uint *)(ulong)(byte)uVar9;\n          goto LAB_00302f92;\n        }\n        bVar1 = (byte)*local_70;\n        puVar11 = (uint *)((long)local_70 + 1);\n        if ((char)bVar1 < '\0') {\n          puStack_50 = (uint *)FUN_00211340(puVar11,&local_68);\n          puVar11 = (uint *)(local_68 + (long)local_70);\n        }\n        else {\n          local_68 = 1;\n          puStack_50 = (uint *)(ulong)bVar1;\n          if ((bVar1 & 0x40) != 0) {\n            puStack_50 = (uint *)((ulong)bVar1 | 0xffffffffffffff80);\n          }\n        }\n        local_70 = puVar11;\n        if ((uVar2 == 0x31) || (uVar2 < 0x32)) goto LAB_00302750;\n        if ((uVar2 == 0x6e) || (uVar2 == 0x2007)) goto LAB_00302fbe;\n        puVar16 = (undefined8 *)param_1[8];\n        if (puVar16 == (undefined8 *)param_1[9]) goto LAB_003028c0;\nLAB_0030275e:\n        *puVar16 = CONCAT44(uStack_54,local_58);\n        puVar16[1] = puStack_50;\n        puVar16[2] = CONCAT44(uStack_44,local_48);\n        param_1[8] = (long)(puVar16 + 3);\n      }" { (if_statement "if (0xe < uVar8) {\n          if (uVar8 == 0x15) {\n            bVar1 = (byte)*local_70;\n            if ((char)bVar1 < '\0') {\n              puStack_50 = (uint *)FUN_002112d0((uint *)((long)local_70 + 1),&local_68,bVar1);\n              local_70 = (uint *)(local_68 + (long)local_70);\n            }\n            else {\n              local_68 = 1;\n              local_70 = (uint *)((long)local_70 + 1);\n              puStack_50 = (uint *)(ulong)bVar1;\n            }\njoined_r0x00303052:\n            if (uVar2 != 0x31) {\n              if (uVar2 < 0x32) {\nLAB_00302c20:\n                if ((uVar2 == 1) && (local_48 == 0)) {\n                  param_1[5] = (long)puStack_50;\n                }\n                goto LAB_00302750;\n              }\n              if ((uVar2 != 0x6e) && (uVar2 != 0x2007)) {\njoined_r0x00302ce3:\n                if (uVar2 == 0x47) {\n                  param_1[0x10] = (long)puStack_50;\n                }\n                goto LAB_00302750;\n              }\nLAB_00302fb5:\n              if (uVar8 == 8) {\nLAB_003029eb:\n                param_1[0xd] = (long)puStack_50;\n              }\n              else {\nLAB_00302fbe:\n                if (uVar8 == 0xe) goto LAB_00302fd0;\n              }\n              goto LAB_00302750;\n            }\n          }\n          else {\n            if (0x15 < uVar8) {\n              if (uVar8 != 0x19) {\n                if (uVar8 < 0x1a) {\n                  if (uVar8 == 0x17) {\n                    lVar10 = *param_1;\n                    if (*(int *)(lVar10 + 0x60) == 4) {\n                      uVar9 = FUN_00305610(lVar10,&local_70);\n                      local_60 = (uint *)(ulong)uVar9;\n                    }\n                    else {\n                      plVar17 = *(long **)(lVar10 + 0x10);\nLAB_00302fe7:\n                      pcVar3 = *(code **)(*plVar17 + 0x18);\n                      if (pcVar3 == FUN_001b8d10) {\n                        cVar6 = (**(code **)(*plVar17 + 0x1d0))();\n                      }\n                      else {\n                        cVar6 = (*pcVar3)();\n                      }\n                      local_60 = *(uint **)local_70;\n                      if (cVar6 != '\0') {\n                        local_60 = (uint *)((ulong)local_60 >> 0x38 |\n                                            ((ulong)local_60 & 0xff000000000000) >> 0x28 |\n                                            ((ulong)local_60 & 0xff0000000000) >> 0x18 |\n                                            ((ulong)local_60 & 0xff00000000) >> 8 |\n                                            ((ulong)local_60 & 0xff000000) << 8 |\n                                            ((ulong)local_60 & 0xff0000) << 0x18 |\n                                            ((ulong)local_60 & 0xff00) << 0x28 |\n                                           (long)local_60 << 0x38);\n                      }\n                      local_70 = local_70 + 2;\n                    }\nLAB_00303035:\n                    local_48 = FUN_00301dc0(*param_1,pbVar15,&local_60);\n                    puStack_50 = local_60;\n                    goto joined_r0x00303052;\n                  }\n                  if (uVar8 != 0x18) {\n                    return 0;\n                  }\nLAB_00302a09:\n                  bVar1 = (byte)*local_70;\n                  uVar9 = (uint)bVar1;\n                  puVar11 = (uint *)((long)local_70 + 1);\n                  if ((char)bVar1 < '\0') {\n                    uVar9 = FUN_002112d0(puVar11,&local_68,bVar1);\n                    puVar11 = (uint *)((long)local_70 + local_68);\n                  }\n                  else {\n                    local_68 = 1;\n                  }\n                  local_70 = (uint *)((long)local_70 + uVar9 + local_68);\n                  puStack_50 = puVar11;\n                  local_48 = uVar9;\n                }\n                else {\n                  if (uVar8 == 0x20) {\n                    pcVar3 = *(code **)(**(long **)(*param_1 + 0x10) + 0x18);\n                    if (pcVar3 == FUN_001b8d10) {\n                      cVar6 = (**(code **)(**(long **)(*param_1 + 0x10) + 0x1d0))();\n                    }\n                    else {\n                      cVar6 = (*pcVar3)();\n                    }\n                    puStack_50 = *(uint **)local_70;\n                    if (cVar6 != '\0') {\n                      puStack_50 = (uint *)((ulong)puStack_50 >> 0x38 |\n                                            ((ulong)puStack_50 & 0xff000000000000) >> 0x28 |\n                                            ((ulong)puStack_50 & 0xff0000000000) >> 0x18 |\n                                            ((ulong)puStack_50 & 0xff00000000) >> 8 |\n                                            ((ulong)puStack_50 & 0xff000000) << 8 |\n                                            ((ulong)puStack_50 & 0xff0000) << 0x18 |\n                                            ((ulong)puStack_50 & 0xff00) << 0x28 |\n                                           (long)puStack_50 << 0x38);\n                    }\n                    local_70 = local_70 + 2;\n                    goto LAB_00302ea9;\n                  }\n                  if (uVar8 < 0x20) {\n                    return 0;\n                  }\n                  if (1 < uVar8 - 0x1f01) {\n                    return 0;\n                  }\nLAB_00302bcd:\n                  bVar1 = (byte)*local_70;\n                  if ((char)bVar1 < '\0') {\n                    puStack_50 = (uint *)FUN_002112d0((uint *)((long)local_70 + 1),&local_68,bVar1);\n                    local_70 = (uint *)(local_68 + (long)local_70);\n                  }\n                  else {\n                    local_68 = 1;\n                    local_70 = (uint *)((long)local_70 + 1);\n                    puStack_50 = (uint *)(ulong)bVar1;\n                  }\n                }\nLAB_00302f92:\n                if (uVar2 == 0x31) goto LAB_00302750;\n                if (0x31 < uVar2) {\n                  if ((uVar2 == 0x6e) || (uVar2 == 0x2007)) goto LAB_00302fb5;\n                  goto LAB_00302750;\n                }\n                goto LAB_00302e3e;\n              }\n              puStack_50 = (uint *)0x1;\nLAB_00302ea9:\n              if (((uVar2 == 0x31) || (0x31 < uVar2)) || (uVar2 != 3)) goto LAB_00302750;\nLAB_00302e52:\n              if (uVar8 == 8) {\nLAB_003029c7:\n                param_1[0xb] = (long)puStack_50;\n              }\n              else if (uVar8 == 0xe) goto LAB_00302f64;\n              goto LAB_00302750;\n            }\n            if (uVar8 != 0x11) {\n              if (0x11 < uVar8) {\n                if (uVar8 == 0x13) {\n                  uVar9 = FUN_00305610(*param_1,&local_70);\n                  local_60 = (uint *)(ulong)uVar9;\n                  goto LAB_00303035;\n                }\n                if (0x13 < uVar8) {\n                  plVar17 = *(long **)(*param_1 + 0x10);\n                  goto LAB_00302fe7;\n                }\n                pcVar3 = *(code **)(**(long **)(*param_1 + 0x10) + 0x18);\n                if (pcVar3 == FUN_001b8d10) {\n                  cVar6 = (**(code **)(**(long **)(*param_1 + 0x10) + 0x1d0))();\n                }\n                else {\n                  cVar6 = (*pcVar3)();\n                }\n                uVar5 = (ushort)*local_70;\n                if (cVar6 != '\0') {\n                  uVar5 = CONCAT11((byte)*local_70,*(byte *)((long)local_70 + 1));\n                }\n                local_70 = (uint *)((long)local_70 + 2);\n                puStack_50 = (uint *)(ulong)uVar5;\n                goto joined_r0x00303052;\n              }\n              if (uVar8 == 0xf) goto LAB_00302bcd;\n              if (uVar8 != 0x10) {\n                return 0;\n              }\n              lVar10 = *param_1;\n              iVar7 = *(int *)(lVar10 + 100);\n              if (2 < *(uint *)(lVar10 + 0x68)) {\n                iVar7 = *(int *)(lVar10 + 0x60);\n              }\n              if (iVar7 != 4) goto LAB_00302a71;\nLAB_00302e7d:\n              uVar8 = FUN_00305610(lVar10,&local_70);\n              local_60 = (uint *)(ulong)uVar8;\nLAB_00302abe:\n              local_48 = FUN_00301dc0(*param_1,pbVar15,&local_60);\n              puStack_50 = local_60;\n              if (uVar2 == 0x31) goto LAB_00302965;\n              if (0x31 < uVar2) goto joined_r0x00302ccc;\n              goto LAB_00302c20;\n            }\n            puVar11 = (uint *)((long)local_70 + 1);\n            puStack_50 = (uint *)(ulong)(byte)*local_70;\n            local_70 = puVar11;\n            if (uVar2 != 0x31) {\n              if (uVar2 < 0x32) {\n                if (uVar2 == 1) {\n                  param_1[5] = (long)puStack_50;\n                }\n                goto LAB_00302750;\n              }\njoined_r0x00302ccc:\n              if ((uVar2 == 0x6e) || (uVar2 == 0x2007)) goto LAB_00302750;\n              goto joined_r0x00302ce3;\n            }\n          }\nLAB_00302965:\n          param_1[0x11] = (long)puStack_50;\n          goto LAB_00302750;\n        }" if (parenthesized_expression "(0xe < uVar8)" ( (binary_expression "0xe < uVar8" number_literal < identifier) )) (compound_statement "{\n          if (uVar8 == 0x15) {\n            bVar1 = (byte)*local_70;\n            if ((char)bVar1 < '\0') {\n              puStack_50 = (uint *)FUN_002112d0((uint *)((long)local_70 + 1),&local_68,bVar1);\n              local_70 = (uint *)(local_68 + (long)local_70);\n            }\n            else {\n              local_68 = 1;\n              local_70 = (uint *)((long)local_70 + 1);\n              puStack_50 = (uint *)(ulong)bVar1;\n            }\njoined_r0x00303052:\n            if (uVar2 != 0x31) {\n              if (uVar2 < 0x32) {\nLAB_00302c20:\n                if ((uVar2 == 1) && (local_48 == 0)) {\n                  param_1[5] = (long)puStack_50;\n                }\n                goto LAB_00302750;\n              }\n              if ((uVar2 != 0x6e) && (uVar2 != 0x2007)) {\njoined_r0x00302ce3:\n                if (uVar2 == 0x47) {\n                  param_1[0x10] = (long)puStack_50;\n                }\n                goto LAB_00302750;\n              }\nLAB_00302fb5:\n              if (uVar8 == 8) {\nLAB_003029eb:\n                param_1[0xd] = (long)puStack_50;\n              }\n              else {\nLAB_00302fbe:\n                if (uVar8 == 0xe) goto LAB_00302fd0;\n              }\n              goto LAB_00302750;\n            }\n          }\n          else {\n            if (0x15 < uVar8) {\n              if (uVar8 != 0x19) {\n                if (uVar8 < 0x1a) {\n                  if (uVar8 == 0x17) {\n                    lVar10 = *param_1;\n                    if (*(int *)(lVar10 + 0x60) == 4) {\n                      uVar9 = FUN_00305610(lVar10,&local_70);\n                      local_60 = (uint *)(ulong)uVar9;\n                    }\n                    else {\n                      plVar17 = *(long **)(lVar10 + 0x10);\nLAB_00302fe7:\n                      pcVar3 = *(code **)(*plVar17 + 0x18);\n                      if (pcVar3 == FUN_001b8d10) {\n                        cVar6 = (**(code **)(*plVar17 + 0x1d0))();\n                      }\n                      else {\n                        cVar6 = (*pcVar3)();\n                      }\n                      local_60 = *(uint **)local_70;\n                      if (cVar6 != '\0') {\n                        local_60 = (uint *)((ulong)local_60 >> 0x38 |\n                                            ((ulong)local_60 & 0xff000000000000) >> 0x28 |\n                                            ((ulong)local_60 & 0xff0000000000) >> 0x18 |\n                                            ((ulong)local_60 & 0xff00000000) >> 8 |\n                                            ((ulong)local_60 & 0xff000000) << 8 |\n                                            ((ulong)local_60 & 0xff0000) << 0x18 |\n                                            ((ulong)local_60 & 0xff00) << 0x28 |\n                                           (long)local_60 << 0x38);\n                      }\n                      local_70 = local_70 + 2;\n                    }\nLAB_00303035:\n                    local_48 = FUN_00301dc0(*param_1,pbVar15,&local_60);\n                    puStack_50 = local_60;\n                    goto joined_r0x00303052;\n                  }\n                  if (uVar8 != 0x18) {\n                    return 0;\n                  }\nLAB_00302a09:\n                  bVar1 = (byte)*local_70;\n                  uVar9 = (uint)bVar1;\n                  puVar11 = (uint *)((long)local_70 + 1);\n                  if ((char)bVar1 < '\0') {\n                    uVar9 = FUN_002112d0(puVar11,&local_68,bVar1);\n                    puVar11 = (uint *)((long)local_70 + local_68);\n                  }\n                  else {\n                    local_68 = 1;\n                  }\n                  local_70 = (uint *)((long)local_70 + uVar9 + local_68);\n                  puStack_50 = puVar11;\n                  local_48 = uVar9;\n                }\n                else {\n                  if (uVar8 == 0x20) {\n                    pcVar3 = *(code **)(**(long **)(*param_1 + 0x10) + 0x18);\n                    if (pcVar3 == FUN_001b8d10) {\n                      cVar6 = (**(code **)(**(long **)(*param_1 + 0x10) + 0x1d0))();\n                    }\n                    else {\n                      cVar6 = (*pcVar3)();\n                    }\n                    puStack_50 = *(uint **)local_70;\n                    if (cVar6 != '\0') {\n                      puStack_50 = (uint *)((ulong)puStack_50 >> 0x38 |\n                                            ((ulong)puStack_50 & 0xff000000000000) >> 0x28 |\n                                            ((ulong)puStack_50 & 0xff0000000000) >> 0x18 |\n                                            ((ulong)puStack_50 & 0xff00000000) >> 8 |\n                                            ((ulong)puStack_50 & 0xff000000) << 8 |\n                                            ((ulong)puStack_50 & 0xff0000) << 0x18 |\n                                            ((ulong)puStack_50 & 0xff00) << 0x28 |\n                                           (long)puStack_50 << 0x38);\n                    }\n                    local_70 = local_70 + 2;\n                    goto LAB_00302ea9;\n                  }\n                  if (uVar8 < 0x20) {\n                    return 0;\n                  }\n                  if (1 < uVar8 - 0x1f01) {\n                    return 0;\n                  }\nLAB_00302bcd:\n                  bVar1 = (byte)*local_70;\n                  if ((char)bVar1 < '\0') {\n                    puStack_50 = (uint *)FUN_002112d0((uint *)((long)local_70 + 1),&local_68,bVar1);\n                    local_70 = (uint *)(local_68 + (long)local_70);\n                  }\n                  else {\n                    local_68 = 1;\n                    local_70 = (uint *)((long)local_70 + 1);\n                    puStack_50 = (uint *)(ulong)bVar1;\n                  }\n                }\nLAB_00302f92:\n                if (uVar2 == 0x31) goto LAB_00302750;\n                if (0x31 < uVar2) {\n                  if ((uVar2 == 0x6e) || (uVar2 == 0x2007)) goto LAB_00302fb5;\n                  goto LAB_00302750;\n                }\n                goto LAB_00302e3e;\n              }\n              puStack_50 = (uint *)0x1;\nLAB_00302ea9:\n              if (((uVar2 == 0x31) || (0x31 < uVar2)) || (uVar2 != 3)) goto LAB_00302750;\nLAB_00302e52:\n              if (uVar8 == 8) {\nLAB_003029c7:\n                param_1[0xb] = (long)puStack_50;\n              }\n              else if (uVar8 == 0xe) goto LAB_00302f64;\n              goto LAB_00302750;\n            }\n            if (uVar8 != 0x11) {\n              if (0x11 < uVar8) {\n                if (uVar8 == 0x13) {\n                  uVar9 = FUN_00305610(*param_1,&local_70);\n                  local_60 = (uint *)(ulong)uVar9;\n                  goto LAB_00303035;\n                }\n                if (0x13 < uVar8) {\n                  plVar17 = *(long **)(*param_1 + 0x10);\n                  goto LAB_00302fe7;\n                }\n                pcVar3 = *(code **)(**(long **)(*param_1 + 0x10) + 0x18);\n                if (pcVar3 == FUN_001b8d10) {\n                  cVar6 = (**(code **)(**(long **)(*param_1 + 0x10) + 0x1d0))();\n                }\n                else {\n                  cVar6 = (*pcVar3)();\n                }\n                uVar5 = (ushort)*local_70;\n                if (cVar6 != '\0') {\n                  uVar5 = CONCAT11((byte)*local_70,*(byte *)((long)local_70 + 1));\n                }\n                local_70 = (uint *)((long)local_70 + 2);\n                puStack_50 = (uint *)(ulong)uVar5;\n                goto joined_r0x00303052;\n              }\n              if (uVar8 == 0xf) goto LAB_00302bcd;\n              if (uVar8 != 0x10) {\n                return 0;\n              }\n              lVar10 = *param_1;\n              iVar7 = *(int *)(lVar10 + 100);\n              if (2 < *(uint *)(lVar10 + 0x68)) {\n                iVar7 = *(int *)(lVar10 + 0x60);\n              }\n              if (iVar7 != 4) goto LAB_00302a71;\nLAB_00302e7d:\n              uVar8 = FUN_00305610(lVar10,&local_70);\n              local_60 = (uint *)(ulong)uVar8;\nLAB_00302abe:\n              local_48 = FUN_00301dc0(*param_1,pbVar15,&local_60);\n              puStack_50 = local_60;\n              if (uVar2 == 0x31) goto LAB_00302965;\n              if (0x31 < uVar2) goto joined_r0x00302ccc;\n              goto LAB_00302c20;\n            }\n            puVar11 = (uint *)((long)local_70 + 1);\n            puStack_50 = (uint *)(ulong)(byte)*local_70;\n            local_70 = puVar11;\n            if (uVar2 != 0x31) {\n              if (uVar2 < 0x32) {\n                if (uVar2 == 1) {\n                  param_1[5] = (long)puStack_50;\n                }\n                goto LAB_00302750;\n              }\njoined_r0x00302ccc:\n              if ((uVar2 == 0x6e) || (uVar2 == 0x2007)) goto LAB_00302750;\n              goto joined_r0x00302ce3;\n            }\n          }\nLAB_00302965:\n          param_1[0x11] = (long)puStack_50;\n          goto LAB_00302750;\n        }" { (if_statement "if (uVar8 == 0x15) {\n            bVar1 = (byte)*local_70;\n            if ((char)bVar1 < '\0') {\n              puStack_50 = (uint *)FUN_002112d0((uint *)((long)local_70 + 1),&local_68,bVar1);\n              local_70 = (uint *)(local_68 + (long)local_70);\n            }\n            else {\n              local_68 = 1;\n              local_70 = (uint *)((long)local_70 + 1);\n              puStack_50 = (uint *)(ulong)bVar1;\n            }\njoined_r0x00303052:\n            if (uVar2 != 0x31) {\n              if (uVar2 < 0x32) {\nLAB_00302c20:\n                if ((uVar2 == 1) && (local_48 == 0)) {\n                  param_1[5] = (long)puStack_50;\n                }\n                goto LAB_00302750;\n              }\n              if ((uVar2 != 0x6e) && (uVar2 != 0x2007)) {\njoined_r0x00302ce3:\n                if (uVar2 == 0x47) {\n                  param_1[0x10] = (long)puStack_50;\n                }\n                goto LAB_00302750;\n              }\nLAB_00302fb5:\n              if (uVar8 == 8) {\nLAB_003029eb:\n                param_1[0xd] = (long)puStack_50;\n              }\n              else {\nLAB_00302fbe:\n                if (uVar8 == 0xe) goto LAB_00302fd0;\n              }\n              goto LAB_00302750;\n            }\n          }\n          else {\n            if (0x15 < uVar8) {\n              if (uVar8 != 0x19) {\n                if (uVar8 < 0x1a) {\n                  if (uVar8 == 0x17) {\n                    lVar10 = *param_1;\n                    if (*(int *)(lVar10 + 0x60) == 4) {\n                      uVar9 = FUN_00305610(lVar10,&local_70);\n                      local_60 = (uint *)(ulong)uVar9;\n                    }\n                    else {\n                      plVar17 = *(long **)(lVar10 + 0x10);\nLAB_00302fe7:\n                      pcVar3 = *(code **)(*plVar17 + 0x18);\n                      if (pcVar3 == FUN_001b8d10) {\n                        cVar6 = (**(code **)(*plVar17 + 0x1d0))();\n                      }\n                      else {\n                        cVar6 = (*pcVar3)();\n                      }\n                      local_60 = *(uint **)local_70;\n                      if (cVar6 != '\0') {\n                        local_60 = (uint *)((ulong)local_60 >> 0x38 |\n                                            ((ulong)local_60 & 0xff000000000000) >> 0x28 |\n                                            ((ulong)local_60 & 0xff0000000000) >> 0x18 |\n                                            ((ulong)local_60 & 0xff00000000) >> 8 |\n                                            ((ulong)local_60 & 0xff000000) << 8 |\n                                            ((ulong)local_60 & 0xff0000) << 0x18 |\n                                            ((ulong)local_60 & 0xff00) << 0x28 |\n                                           (long)local_60 << 0x38);\n                      }\n                      local_70 = local_70 + 2;\n                    }\nLAB_00303035:\n                    local_48 = FUN_00301dc0(*param_1,pbVar15,&local_60);\n                    puStack_50 = local_60;\n                    goto joined_r0x00303052;\n                  }\n                  if (uVar8 != 0x18) {\n                    return 0;\n                  }\nLAB_00302a09:\n                  bVar1 = (byte)*local_70;\n                  uVar9 = (uint)bVar1;\n                  puVar11 = (uint *)((long)local_70 + 1);\n                  if ((char)bVar1 < '\0') {\n                    uVar9 = FUN_002112d0(puVar11,&local_68,bVar1);\n                    puVar11 = (uint *)((long)local_70 + local_68);\n                  }\n                  else {\n                    local_68 = 1;\n                  }\n                  local_70 = (uint *)((long)local_70 + uVar9 + local_68);\n                  puStack_50 = puVar11;\n                  local_48 = uVar9;\n                }\n                else {\n                  if (uVar8 == 0x20) {\n                    pcVar3 = *(code **)(**(long **)(*param_1 + 0x10) + 0x18);\n                    if (pcVar3 == FUN_001b8d10) {\n                      cVar6 = (**(code **)(**(long **)(*param_1 + 0x10) + 0x1d0))();\n                    }\n                    else {\n                      cVar6 = (*pcVar3)();\n                    }\n                    puStack_50 = *(uint **)local_70;\n                    if (cVar6 != '\0') {\n                      puStack_50 = (uint *)((ulong)puStack_50 >> 0x38 |\n                                            ((ulong)puStack_50 & 0xff000000000000) >> 0x28 |\n                                            ((ulong)puStack_50 & 0xff0000000000) >> 0x18 |\n                                            ((ulong)puStack_50 & 0xff00000000) >> 8 |\n                                            ((ulong)puStack_50 & 0xff000000) << 8 |\n                                            ((ulong)puStack_50 & 0xff0000) << 0x18 |\n                                            ((ulong)puStack_50 & 0xff00) << 0x28 |\n                                           (long)puStack_50 << 0x38);\n                    }\n                    local_70 = local_70 + 2;\n                    goto LAB_00302ea9;\n                  }\n                  if (uVar8 < 0x20) {\n                    return 0;\n                  }\n                  if (1 < uVar8 - 0x1f01) {\n                    return 0;\n                  }\nLAB_00302bcd:\n                  bVar1 = (byte)*local_70;\n                  if ((char)bVar1 < '\0') {\n                    puStack_50 = (uint *)FUN_002112d0((uint *)((long)local_70 + 1),&local_68,bVar1);\n                    local_70 = (uint *)(local_68 + (long)local_70);\n                  }\n                  else {\n                    local_68 = 1;\n                    local_70 = (uint *)((long)local_70 + 1);\n                    puStack_50 = (uint *)(ulong)bVar1;\n                  }\n                }\nLAB_00302f92:\n                if (uVar2 == 0x31) goto LAB_00302750;\n                if (0x31 < uVar2) {\n                  if ((uVar2 == 0x6e) || (uVar2 == 0x2007)) goto LAB_00302fb5;\n                  goto LAB_00302750;\n                }\n                goto LAB_00302e3e;\n              }\n              puStack_50 = (uint *)0x1;\nLAB_00302ea9:\n              if (((uVar2 == 0x31) || (0x31 < uVar2)) || (uVar2 != 3)) goto LAB_00302750;\nLAB_00302e52:\n              if (uVar8 == 8) {\nLAB_003029c7:\n                param_1[0xb] = (long)puStack_50;\n              }\n              else if (uVar8 == 0xe) goto LAB_00302f64;\n              goto LAB_00302750;\n            }\n            if (uVar8 != 0x11) {\n              if (0x11 < uVar8) {\n                if (uVar8 == 0x13) {\n                  uVar9 = FUN_00305610(*param_1,&local_70);\n                  local_60 = (uint *)(ulong)uVar9;\n                  goto LAB_00303035;\n                }\n                if (0x13 < uVar8) {\n                  plVar17 = *(long **)(*param_1 + 0x10);\n                  goto LAB_00302fe7;\n                }\n                pcVar3 = *(code **)(**(long **)(*param_1 + 0x10) + 0x18);\n                if (pcVar3 == FUN_001b8d10) {\n                  cVar6 = (**(code **)(**(long **)(*param_1 + 0x10) + 0x1d0))();\n                }\n                else {\n                  cVar6 = (*pcVar3)();\n                }\n                uVar5 = (ushort)*local_70;\n                if (cVar6 != '\0') {\n                  uVar5 = CONCAT11((byte)*local_70,*(byte *)((long)local_70 + 1));\n                }\n                local_70 = (uint *)((long)local_70 + 2);\n                puStack_50 = (uint *)(ulong)uVar5;\n                goto joined_r0x00303052;\n              }\n              if (uVar8 == 0xf) goto LAB_00302bcd;\n              if (uVar8 != 0x10) {\n                return 0;\n              }\n              lVar10 = *param_1;\n              iVar7 = *(int *)(lVar10 + 100);\n              if (2 < *(uint *)(lVar10 + 0x68)) {\n                iVar7 = *(int *)(lVar10 + 0x60);\n              }\n              if (iVar7 != 4) goto LAB_00302a71;\nLAB_00302e7d:\n              uVar8 = FUN_00305610(lVar10,&local_70);\n              local_60 = (uint *)(ulong)uVar8;\nLAB_00302abe:\n              local_48 = FUN_00301dc0(*param_1,pbVar15,&local_60);\n              puStack_50 = local_60;\n              if (uVar2 == 0x31) goto LAB_00302965;\n              if (0x31 < uVar2) goto joined_r0x00302ccc;\n              goto LAB_00302c20;\n            }\n            puVar11 = (uint *)((long)local_70 + 1);\n            puStack_50 = (uint *)(ulong)(byte)*local_70;\n            local_70 = puVar11;\n            if (uVar2 != 0x31) {\n              if (uVar2 < 0x32) {\n                if (uVar2 == 1) {\n                  param_1[5] = (long)puStack_50;\n                }\n                goto LAB_00302750;\n              }\njoined_r0x00302ccc:\n              if ((uVar2 == 0x6e) || (uVar2 == 0x2007)) goto LAB_00302750;\n              goto joined_r0x00302ce3;\n            }\n          }" if (parenthesized_expression "(uVar8 == 0x15)" ( (binary_expression "uVar8 == 0x15" identifier == number_literal) )) (compound_statement "{\n            bVar1 = (byte)*local_70;\n            if ((char)bVar1 < '\0') {\n              puStack_50 = (uint *)FUN_002112d0((uint *)((long)local_70 + 1),&local_68,bVar1);\n              local_70 = (uint *)(local_68 + (long)local_70);\n            }\n            else {\n              local_68 = 1;\n              local_70 = (uint *)((long)local_70 + 1);\n              puStack_50 = (uint *)(ulong)bVar1;\n            }\njoined_r0x00303052:\n            if (uVar2 != 0x31) {\n              if (uVar2 < 0x32) {\nLAB_00302c20:\n                if ((uVar2 == 1) && (local_48 == 0)) {\n                  param_1[5] = (long)puStack_50;\n                }\n                goto LAB_00302750;\n              }\n              if ((uVar2 != 0x6e) && (uVar2 != 0x2007)) {\njoined_r0x00302ce3:\n                if (uVar2 == 0x47) {\n                  param_1[0x10] = (long)puStack_50;\n                }\n                goto LAB_00302750;\n              }\nLAB_00302fb5:\n              if (uVar8 == 8) {\nLAB_003029eb:\n                param_1[0xd] = (long)puStack_50;\n              }\n              else {\nLAB_00302fbe:\n                if (uVar8 == 0xe) goto LAB_00302fd0;\n              }\n              goto LAB_00302750;\n            }\n          }" { (expression_statement "bVar1 = (byte)*local_70;" (assignment_expression "bVar1 = (byte)*local_70" identifier = (binary_expression "(byte)*local_70" (parenthesized_expression "(byte)" ( identifier )) * identifier)) ;) (if_statement "if ((char)bVar1 < '\0') {\n              puStack_50 = (uint *)FUN_002112d0((uint *)((long)local_70 + 1),&local_68,bVar1);\n              local_70 = (uint *)(local_68 + (long)local_70);\n            }\n            else {\n              local_68 = 1;\n              local_70 = (uint *)((long)local_70 + 1);\n              puStack_50 = (uint *)(ulong)bVar1;\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              puStack_50 = (uint *)FUN_002112d0((uint *)((long)local_70 + 1),&local_68,bVar1);\n              local_70 = (uint *)(local_68 + (long)local_70);\n            }" { (expression_statement "puStack_50 = (uint *)FUN_002112d0((uint *)((long)local_70 + 1),&local_68,bVar1);" (assignment_expression "puStack_50 = (uint *)FUN_002112d0((uint *)((long)local_70 + 1),&local_68,bVar1)" identifier = (cast_expression "(uint *)FUN_002112d0((uint *)((long)local_70 + 1),&local_68,bVar1)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (call_expression "FUN_002112d0((uint *)((long)local_70 + 1),&local_68,bVar1)" identifier (argument_list "((uint *)((long)local_70 + 1),&local_68,bVar1)" ( (cast_expression "(uint *)((long)local_70 + 1)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((long)local_70 + 1)" ( (binary_expression "(long)local_70 + 1" (cast_expression "(long)local_70" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) identifier) + number_literal) ))) , (pointer_expression "&local_68" & identifier) , identifier ))))) ;) (expression_statement "local_70 = (uint *)(local_68 + (long)local_70);" (assignment_expression "local_70 = (uint *)(local_68 + (long)local_70)" identifier = (cast_expression "(uint *)(local_68 + (long)local_70)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(local_68 + (long)local_70)" ( (binary_expression "local_68 + (long)local_70" identifier + (cast_expression "(long)local_70" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) identifier)) )))) ;) }) (else_clause "else {\n              local_68 = 1;\n              local_70 = (uint *)((long)local_70 + 1);\n              puStack_50 = (uint *)(ulong)bVar1;\n            }" else (compound_statement "{\n              local_68 = 1;\n              local_70 = (uint *)((long)local_70 + 1);\n              puStack_50 = (uint *)(ulong)bVar1;\n            }" { (expression_statement "local_68 = 1;" (assignment_expression "local_68 = 1" identifier = number_literal) ;) (expression_statement "local_70 = (uint *)((long)local_70 + 1);" (assignment_expression "local_70 = (uint *)((long)local_70 + 1)" identifier = (cast_expression "(uint *)((long)local_70 + 1)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((long)local_70 + 1)" ( (binary_expression "(long)local_70 + 1" (cast_expression "(long)local_70" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) identifier) + number_literal) )))) ;) (expression_statement "puStack_50 = (uint *)(ulong)bVar1;" (assignment_expression "puStack_50 = (uint *)(ulong)bVar1" identifier = (cast_expression "(uint *)(ulong)bVar1" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (cast_expression "(ulong)bVar1" ( (type_descriptor "ulong" type_identifier) ) identifier))) ;) }))) (labeled_statement "joined_r0x00303052:\n            if (uVar2 != 0x31) {\n              if (uVar2 < 0x32) {\nLAB_00302c20:\n                if ((uVar2 == 1) && (local_48 == 0)) {\n                  param_1[5] = (long)puStack_50;\n                }\n                goto LAB_00302750;\n              }\n              if ((uVar2 != 0x6e) && (uVar2 != 0x2007)) {\njoined_r0x00302ce3:\n                if (uVar2 == 0x47) {\n                  param_1[0x10] = (long)puStack_50;\n                }\n                goto LAB_00302750;\n              }\nLAB_00302fb5:\n              if (uVar8 == 8) {\nLAB_003029eb:\n                param_1[0xd] = (long)puStack_50;\n              }\n              else {\nLAB_00302fbe:\n                if (uVar8 == 0xe) goto LAB_00302fd0;\n              }\n              goto LAB_00302750;\n            }" statement_identifier : (if_statement "if (uVar2 != 0x31) {\n              if (uVar2 < 0x32) {\nLAB_00302c20:\n                if ((uVar2 == 1) && (local_48 == 0)) {\n                  param_1[5] = (long)puStack_50;\n                }\n                goto LAB_00302750;\n              }\n              if ((uVar2 != 0x6e) && (uVar2 != 0x2007)) {\njoined_r0x00302ce3:\n                if (uVar2 == 0x47) {\n                  param_1[0x10] = (long)puStack_50;\n                }\n                goto LAB_00302750;\n              }\nLAB_00302fb5:\n              if (uVar8 == 8) {\nLAB_003029eb:\n                param_1[0xd] = (long)puStack_50;\n              }\n              else {\nLAB_00302fbe:\n                if (uVar8 == 0xe) goto LAB_00302fd0;\n              }\n              goto LAB_00302750;\n            }" if (parenthesized_expression "(uVar2 != 0x31)" ( (binary_expression "uVar2 != 0x31" identifier != number_literal) )) (compound_statement "{\n              if (uVar2 < 0x32) {\nLAB_00302c20:\n                if ((uVar2 == 1) && (local_48 == 0)) {\n                  param_1[5] = (long)puStack_50;\n                }\n                goto LAB_00302750;\n              }\n              if ((uVar2 != 0x6e) && (uVar2 != 0x2007)) {\njoined_r0x00302ce3:\n                if (uVar2 == 0x47) {\n                  param_1[0x10] = (long)puStack_50;\n                }\n                goto LAB_00302750;\n              }\nLAB_00302fb5:\n              if (uVar8 == 8) {\nLAB_003029eb:\n                param_1[0xd] = (long)puStack_50;\n              }\n              else {\nLAB_00302fbe:\n                if (uVar8 == 0xe) goto LAB_00302fd0;\n              }\n              goto LAB_00302750;\n            }" { (if_statement "if (uVar2 < 0x32) {\nLAB_00302c20:\n                if ((uVar2 == 1) && (local_48 == 0)) {\n                  param_1[5] = (long)puStack_50;\n                }\n                goto LAB_00302750;\n              }" if (parenthesized_expression "(uVar2 < 0x32)" ( (binary_expression "uVar2 < 0x32" identifier < number_literal) )) (compound_statement "{\nLAB_00302c20:\n                if ((uVar2 == 1) && (local_48 == 0)) {\n                  param_1[5] = (long)puStack_50;\n                }\n                goto LAB_00302750;\n              }" { (labeled_statement "LAB_00302c20:\n                if ((uVar2 == 1) && (local_48 == 0)) {\n                  param_1[5] = (long)puStack_50;\n                }" statement_identifier : (if_statement "if ((uVar2 == 1) && (local_48 == 0)) {\n                  param_1[5] = (long)puStack_50;\n                }" if (parenthesized_expression "((uVar2 == 1) && (local_48 == 0))" ( (binary_expression "(uVar2 == 1) && (local_48 == 0)" (parenthesized_expression "(uVar2 == 1)" ( (binary_expression "uVar2 == 1" identifier == number_literal) )) && (parenthesized_expression "(local_48 == 0)" ( (binary_expression "local_48 == 0" identifier == number_literal) ))) )) (compound_statement "{\n                  param_1[5] = (long)puStack_50;\n                }" { (expression_statement "param_1[5] = (long)puStack_50;" (assignment_expression "param_1[5] = (long)puStack_50" (subscript_expression "param_1[5]" identifier [ number_literal ]) = (cast_expression "(long)puStack_50" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) identifier)) ;) }))) (goto_statement "goto LAB_00302750;" goto statement_identifier ;) })) (if_statement "if ((uVar2 != 0x6e) && (uVar2 != 0x2007)) {\njoined_r0x00302ce3:\n                if (uVar2 == 0x47) {\n                  param_1[0x10] = (long)puStack_50;\n                }\n                goto LAB_00302750;\n              }" if (parenthesized_expression "((uVar2 != 0x6e) && (uVar2 != 0x2007))" ( (binary_expression "(uVar2 != 0x6e) && (uVar2 != 0x2007)" (parenthesized_expression "(uVar2 != 0x6e)" ( (binary_expression "uVar2 != 0x6e" identifier != number_literal) )) && (parenthesized_expression "(uVar2 != 0x2007)" ( (binary_expression "uVar2 != 0x2007" identifier != number_literal) ))) )) (compound_statement "{\njoined_r0x00302ce3:\n                if (uVar2 == 0x47) {\n                  param_1[0x10] = (long)puStack_50;\n                }\n                goto LAB_00302750;\n              }" { (labeled_statement "joined_r0x00302ce3:\n                if (uVar2 == 0x47) {\n                  param_1[0x10] = (long)puStack_50;\n                }" statement_identifier : (if_statement "if (uVar2 == 0x47) {\n                  param_1[0x10] = (long)puStack_50;\n                }" if (parenthesized_expression "(uVar2 == 0x47)" ( (binary_expression "uVar2 == 0x47" identifier == number_literal) )) (compound_statement "{\n                  param_1[0x10] = (long)puStack_50;\n                }" { (expression_statement "param_1[0x10] = (long)puStack_50;" (assignment_expression "param_1[0x10] = (long)puStack_50" (subscript_expression "param_1[0x10]" identifier [ number_literal ]) = (cast_expression "(long)puStack_50" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) identifier)) ;) }))) (goto_statement "goto LAB_00302750;" goto statement_identifier ;) })) (labeled_statement "LAB_00302fb5:\n              if (uVar8 == 8) {\nLAB_003029eb:\n                param_1[0xd] = (long)puStack_50;\n              }\n              else {\nLAB_00302fbe:\n                if (uVar8 == 0xe) goto LAB_00302fd0;\n              }" statement_identifier : (if_statement "if (uVar8 == 8) {\nLAB_003029eb:\n                param_1[0xd] = (long)puStack_50;\n              }\n              else {\nLAB_00302fbe:\n                if (uVar8 == 0xe) goto LAB_00302fd0;\n              }" if (parenthesized_expression "(uVar8 == 8)" ( (binary_expression "uVar8 == 8" identifier == number_literal) )) (compound_statement "{\nLAB_003029eb:\n                param_1[0xd] = (long)puStack_50;\n              }" { (labeled_statement "LAB_003029eb:\n                param_1[0xd] = (long)puStack_50;" statement_identifier : (expression_statement "param_1[0xd] = (long)puStack_50;" (assignment_expression "param_1[0xd] = (long)puStack_50" (subscript_expression "param_1[0xd]" identifier [ number_literal ]) = (cast_expression "(long)puStack_50" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) identifier)) ;)) }) (else_clause "else {\nLAB_00302fbe:\n                if (uVar8 == 0xe) goto LAB_00302fd0;\n              }" else (compound_statement "{\nLAB_00302fbe:\n                if (uVar8 == 0xe) goto LAB_00302fd0;\n              }" { (labeled_statement "LAB_00302fbe:\n                if (uVar8 == 0xe) goto LAB_00302fd0;" statement_identifier : (if_statement "if (uVar8 == 0xe) goto LAB_00302fd0;" if (parenthesized_expression "(uVar8 == 0xe)" ( (binary_expression "uVar8 == 0xe" identifier == number_literal) )) (goto_statement "goto LAB_00302fd0;" goto statement_identifier ;))) })))) (goto_statement "goto LAB_00302750;" goto statement_identifier ;) }))) }) (else_clause "else {\n            if (0x15 < uVar8) {\n              if (uVar8 != 0x19) {\n                if (uVar8 < 0x1a) {\n                  if (uVar8 == 0x17) {\n                    lVar10 = *param_1;\n                    if (*(int *)(lVar10 + 0x60) == 4) {\n                      uVar9 = FUN_00305610(lVar10,&local_70);\n                      local_60 = (uint *)(ulong)uVar9;\n                    }\n                    else {\n                      plVar17 = *(long **)(lVar10 + 0x10);\nLAB_00302fe7:\n                      pcVar3 = *(code **)(*plVar17 + 0x18);\n                      if (pcVar3 == FUN_001b8d10) {\n                        cVar6 = (**(code **)(*plVar17 + 0x1d0))();\n                      }\n                      else {\n                        cVar6 = (*pcVar3)();\n                      }\n                      local_60 = *(uint **)local_70;\n                      if (cVar6 != '\0') {\n                        local_60 = (uint *)((ulong)local_60 >> 0x38 |\n                                            ((ulong)local_60 & 0xff000000000000) >> 0x28 |\n                                            ((ulong)local_60 & 0xff0000000000) >> 0x18 |\n                                            ((ulong)local_60 & 0xff00000000) >> 8 |\n                                            ((ulong)local_60 & 0xff000000) << 8 |\n                                            ((ulong)local_60 & 0xff0000) << 0x18 |\n                                            ((ulong)local_60 & 0xff00) << 0x28 |\n                                           (long)local_60 << 0x38);\n                      }\n                      local_70 = local_70 + 2;\n                    }\nLAB_00303035:\n                    local_48 = FUN_00301dc0(*param_1,pbVar15,&local_60);\n                    puStack_50 = local_60;\n                    goto joined_r0x00303052;\n                  }\n                  if (uVar8 != 0x18) {\n                    return 0;\n                  }\nLAB_00302a09:\n                  bVar1 = (byte)*local_70;\n                  uVar9 = (uint)bVar1;\n                  puVar11 = (uint *)((long)local_70 + 1);\n                  if ((char)bVar1 < '\0') {\n                    uVar9 = FUN_002112d0(puVar11,&local_68,bVar1);\n                    puVar11 = (uint *)((long)local_70 + local_68);\n                  }\n                  else {\n                    local_68 = 1;\n                  }\n                  local_70 = (uint *)((long)local_70 + uVar9 + local_68);\n                  puStack_50 = puVar11;\n                  local_48 = uVar9;\n                }\n                else {\n                  if (uVar8 == 0x20) {\n                    pcVar3 = *(code **)(**(long **)(*param_1 + 0x10) + 0x18);\n                    if (pcVar3 == FUN_001b8d10) {\n                      cVar6 = (**(code **)(**(long **)(*param_1 + 0x10) + 0x1d0))();\n                    }\n                    else {\n                      cVar6 = (*pcVar3)();\n                    }\n                    puStack_50 = *(uint **)local_70;\n                    if (cVar6 != '\0') {\n                      puStack_50 = (uint *)((ulong)puStack_50 >> 0x38 |\n                                            ((ulong)puStack_50 & 0xff000000000000) >> 0x28 |\n                                            ((ulong)puStack_50 & 0xff0000000000) >> 0x18 |\n                                            ((ulong)puStack_50 & 0xff00000000) >> 8 |\n                                            ((ulong)puStack_50 & 0xff000000) << 8 |\n                                            ((ulong)puStack_50 & 0xff0000) << 0x18 |\n                                            ((ulong)puStack_50 & 0xff00) << 0x28 |\n                                           (long)puStack_50 << 0x38);\n                    }\n                    local_70 = local_70 + 2;\n                    goto LAB_00302ea9;\n                  }\n                  if (uVar8 < 0x20) {\n                    return 0;\n                  }\n                  if (1 < uVar8 - 0x1f01) {\n                    return 0;\n                  }\nLAB_00302bcd:\n                  bVar1 = (byte)*local_70;\n                  if ((char)bVar1 < '\0') {\n                    puStack_50 = (uint *)FUN_002112d0((uint *)((long)local_70 + 1),&local_68,bVar1);\n                    local_70 = (uint *)(local_68 + (long)local_70);\n                  }\n                  else {\n                    local_68 = 1;\n                    local_70 = (uint *)((long)local_70 + 1);\n                    puStack_50 = (uint *)(ulong)bVar1;\n                  }\n                }\nLAB_00302f92:\n                if (uVar2 == 0x31) goto LAB_00302750;\n                if (0x31 < uVar2) {\n                  if ((uVar2 == 0x6e) || (uVar2 == 0x2007)) goto LAB_00302fb5;\n                  goto LAB_00302750;\n                }\n                goto LAB_00302e3e;\n              }\n              puStack_50 = (uint *)0x1;\nLAB_00302ea9:\n              if (((uVar2 == 0x31) || (0x31 < uVar2)) || (uVar2 != 3)) goto LAB_00302750;\nLAB_00302e52:\n              if (uVar8 == 8) {\nLAB_003029c7:\n                param_1[0xb] = (long)puStack_50;\n              }\n              else if (uVar8 == 0xe) goto LAB_00302f64;\n              goto LAB_00302750;\n            }\n            if (uVar8 != 0x11) {\n              if (0x11 < uVar8) {\n                if (uVar8 == 0x13) {\n                  uVar9 = FUN_00305610(*param_1,&local_70);\n                  local_60 = (uint *)(ulong)uVar9;\n                  goto LAB_00303035;\n                }\n                if (0x13 < uVar8) {\n                  plVar17 = *(long **)(*param_1 + 0x10);\n                  goto LAB_00302fe7;\n                }\n                pcVar3 = *(code **)(**(long **)(*param_1 + 0x10) + 0x18);\n                if (pcVar3 == FUN_001b8d10) {\n                  cVar6 = (**(code **)(**(long **)(*param_1 + 0x10) + 0x1d0))();\n                }\n                else {\n                  cVar6 = (*pcVar3)();\n                }\n                uVar5 = (ushort)*local_70;\n                if (cVar6 != '\0') {\n                  uVar5 = CONCAT11((byte)*local_70,*(byte *)((long)local_70 + 1));\n                }\n                local_70 = (uint *)((long)local_70 + 2);\n                puStack_50 = (uint *)(ulong)uVar5;\n                goto joined_r0x00303052;\n              }\n              if (uVar8 == 0xf) goto LAB_00302bcd;\n              if (uVar8 != 0x10) {\n                return 0;\n              }\n              lVar10 = *param_1;\n              iVar7 = *(int *)(lVar10 + 100);\n              if (2 < *(uint *)(lVar10 + 0x68)) {\n                iVar7 = *(int *)(lVar10 + 0x60);\n              }\n              if (iVar7 != 4) goto LAB_00302a71;\nLAB_00302e7d:\n              uVar8 = FUN_00305610(lVar10,&local_70);\n              local_60 = (uint *)(ulong)uVar8;\nLAB_00302abe:\n              local_48 = FUN_00301dc0(*param_1,pbVar15,&local_60);\n              puStack_50 = local_60;\n              if (uVar2 == 0x31) goto LAB_00302965;\n              if (0x31 < uVar2) goto joined_r0x00302ccc;\n              goto LAB_00302c20;\n            }\n            puVar11 = (uint *)((long)local_70 + 1);\n            puStack_50 = (uint *)(ulong)(byte)*local_70;\n            local_70 = puVar11;\n            if (uVar2 != 0x31) {\n              if (uVar2 < 0x32) {\n                if (uVar2 == 1) {\n                  param_1[5] = (long)puStack_50;\n                }\n                goto LAB_00302750;\n              }\njoined_r0x00302ccc:\n              if ((uVar2 == 0x6e) || (uVar2 == 0x2007)) goto LAB_00302750;\n              goto joined_r0x00302ce3;\n            }\n          }" else (compound_statement "{\n            if (0x15 < uVar8) {\n              if (uVar8 != 0x19) {\n                if (uVar8 < 0x1a) {\n                  if (uVar8 == 0x17) {\n                    lVar10 = *param_1;\n                    if (*(int *)(lVar10 + 0x60) == 4) {\n                      uVar9 = FUN_00305610(lVar10,&local_70);\n                      local_60 = (uint *)(ulong)uVar9;\n                    }\n                    else {\n                      plVar17 = *(long **)(lVar10 + 0x10);\nLAB_00302fe7:\n                      pcVar3 = *(code **)(*plVar17 + 0x18);\n                      if (pcVar3 == FUN_001b8d10) {\n                        cVar6 = (**(code **)(*plVar17 + 0x1d0))();\n                      }\n                      else {\n                        cVar6 = (*pcVar3)();\n                      }\n                      local_60 = *(uint **)local_70;\n                      if (cVar6 != '\0') {\n                        local_60 = (uint *)((ulong)local_60 >> 0x38 |\n                                            ((ulong)local_60 & 0xff000000000000) >> 0x28 |\n                                            ((ulong)local_60 & 0xff0000000000) >> 0x18 |\n                                            ((ulong)local_60 & 0xff00000000) >> 8 |\n                                            ((ulong)local_60 & 0xff000000) << 8 |\n                                            ((ulong)local_60 & 0xff0000) << 0x18 |\n                                            ((ulong)local_60 & 0xff00) << 0x28 |\n                                           (long)local_60 << 0x38);\n                      }\n                      local_70 = local_70 + 2;\n                    }\nLAB_00303035:\n                    local_48 = FUN_00301dc0(*param_1,pbVar15,&local_60);\n                    puStack_50 = local_60;\n                    goto joined_r0x00303052;\n                  }\n                  if (uVar8 != 0x18) {\n                    return 0;\n                  }\nLAB_00302a09:\n                  bVar1 = (byte)*local_70;\n                  uVar9 = (uint)bVar1;\n                  puVar11 = (uint *)((long)local_70 + 1);\n                  if ((char)bVar1 < '\0') {\n                    uVar9 = FUN_002112d0(puVar11,&local_68,bVar1);\n                    puVar11 = (uint *)((long)local_70 + local_68);\n                  }\n                  else {\n                    local_68 = 1;\n                  }\n                  local_70 = (uint *)((long)local_70 + uVar9 + local_68);\n                  puStack_50 = puVar11;\n                  local_48 = uVar9;\n                }\n                else {\n                  if (uVar8 == 0x20) {\n                    pcVar3 = *(code **)(**(long **)(*param_1 + 0x10) + 0x18);\n                    if (pcVar3 == FUN_001b8d10) {\n                      cVar6 = (**(code **)(**(long **)(*param_1 + 0x10) + 0x1d0))();\n                    }\n                    else {\n                      cVar6 = (*pcVar3)();\n                    }\n                    puStack_50 = *(uint **)local_70;\n                    if (cVar6 != '\0') {\n                      puStack_50 = (uint *)((ulong)puStack_50 >> 0x38 |\n                                            ((ulong)puStack_50 & 0xff000000000000) >> 0x28 |\n                                            ((ulong)puStack_50 & 0xff0000000000) >> 0x18 |\n                                            ((ulong)puStack_50 & 0xff00000000) >> 8 |\n                                            ((ulong)puStack_50 & 0xff000000) << 8 |\n                                            ((ulong)puStack_50 & 0xff0000) << 0x18 |\n                                            ((ulong)puStack_50 & 0xff00) << 0x28 |\n                                           (long)puStack_50 << 0x38);\n                    }\n                    local_70 = local_70 + 2;\n                    goto LAB_00302ea9;\n                  }\n                  if (uVar8 < 0x20) {\n                    return 0;\n                  }\n                  if (1 < uVar8 - 0x1f01) {\n                    return 0;\n                  }\nLAB_00302bcd:\n                  bVar1 = (byte)*local_70;\n                  if ((char)bVar1 < '\0') {\n                    puStack_50 = (uint *)FUN_002112d0((uint *)((long)local_70 + 1),&local_68,bVar1);\n                    local_70 = (uint *)(local_68 + (long)local_70);\n                  }\n                  else {\n                    local_68 = 1;\n                    local_70 = (uint *)((long)local_70 + 1);\n                    puStack_50 = (uint *)(ulong)bVar1;\n                  }\n                }\nLAB_00302f92:\n                if (uVar2 == 0x31) goto LAB_00302750;\n                if (0x31 < uVar2) {\n                  if ((uVar2 == 0x6e) || (uVar2 == 0x2007)) goto LAB_00302fb5;\n                  goto LAB_00302750;\n                }\n                goto LAB_00302e3e;\n              }\n              puStack_50 = (uint *)0x1;\nLAB_00302ea9:\n              if (((uVar2 == 0x31) || (0x31 < uVar2)) || (uVar2 != 3)) goto LAB_00302750;\nLAB_00302e52:\n              if (uVar8 == 8) {\nLAB_003029c7:\n                param_1[0xb] = (long)puStack_50;\n              }\n              else if (uVar8 == 0xe) goto LAB_00302f64;\n              goto LAB_00302750;\n            }\n            if (uVar8 != 0x11) {\n              if (0x11 < uVar8) {\n                if (uVar8 == 0x13) {\n                  uVar9 = FUN_00305610(*param_1,&local_70);\n                  local_60 = (uint *)(ulong)uVar9;\n                  goto LAB_00303035;\n                }\n                if (0x13 < uVar8) {\n                  plVar17 = *(long **)(*param_1 + 0x10);\n                  goto LAB_00302fe7;\n                }\n                pcVar3 = *(code **)(**(long **)(*param_1 + 0x10) + 0x18);\n                if (pcVar3 == FUN_001b8d10) {\n                  cVar6 = (**(code **)(**(long **)(*param_1 + 0x10) + 0x1d0))();\n                }\n                else {\n                  cVar6 = (*pcVar3)();\n                }\n                uVar5 = (ushort)*local_70;\n                if (cVar6 != '\0') {\n                  uVar5 = CONCAT11((byte)*local_70,*(byte *)((long)local_70 + 1));\n                }\n                local_70 = (uint *)((long)local_70 + 2);\n                puStack_50 = (uint *)(ulong)uVar5;\n                goto joined_r0x00303052;\n              }\n              if (uVar8 == 0xf) goto LAB_00302bcd;\n              if (uVar8 != 0x10) {\n                return 0;\n              }\n              lVar10 = *param_1;\n              iVar7 = *(int *)(lVar10 + 100);\n              if (2 < *(uint *)(lVar10 + 0x68)) {\n                iVar7 = *(int *)(lVar10 + 0x60);\n              }\n              if (iVar7 != 4) goto LAB_00302a71;\nLAB_00302e7d:\n              uVar8 = FUN_00305610(lVar10,&local_70);\n              local_60 = (uint *)(ulong)uVar8;\nLAB_00302abe:\n              local_48 = FUN_00301dc0(*param_1,pbVar15,&local_60);\n              puStack_50 = local_60;\n              if (uVar2 == 0x31) goto LAB_00302965;\n              if (0x31 < uVar2) goto joined_r0x00302ccc;\n              goto LAB_00302c20;\n            }\n            puVar11 = (uint *)((long)local_70 + 1);\n            puStack_50 = (uint *)(ulong)(byte)*local_70;\n            local_70 = puVar11;\n            if (uVar2 != 0x31) {\n              if (uVar2 < 0x32) {\n                if (uVar2 == 1) {\n                  param_1[5] = (long)puStack_50;\n                }\n                goto LAB_00302750;\n              }\njoined_r0x00302ccc:\n              if ((uVar2 == 0x6e) || (uVar2 == 0x2007)) goto LAB_00302750;\n              goto joined_r0x00302ce3;\n            }\n          }" { (if_statement "if (0x15 < uVar8) {\n              if (uVar8 != 0x19) {\n                if (uVar8 < 0x1a) {\n                  if (uVar8 == 0x17) {\n                    lVar10 = *param_1;\n                    if (*(int *)(lVar10 + 0x60) == 4) {\n                      uVar9 = FUN_00305610(lVar10,&local_70);\n                      local_60 = (uint *)(ulong)uVar9;\n                    }\n                    else {\n                      plVar17 = *(long **)(lVar10 + 0x10);\nLAB_00302fe7:\n                      pcVar3 = *(code **)(*plVar17 + 0x18);\n                      if (pcVar3 == FUN_001b8d10) {\n                        cVar6 = (**(code **)(*plVar17 + 0x1d0))();\n                      }\n                      else {\n                        cVar6 = (*pcVar3)();\n                      }\n                      local_60 = *(uint **)local_70;\n                      if (cVar6 != '\0') {\n                        local_60 = (uint *)((ulong)local_60 >> 0x38 |\n                                            ((ulong)local_60 & 0xff000000000000) >> 0x28 |\n                                            ((ulong)local_60 & 0xff0000000000) >> 0x18 |\n                                            ((ulong)local_60 & 0xff00000000) >> 8 |\n                                            ((ulong)local_60 & 0xff000000) << 8 |\n                                            ((ulong)local_60 & 0xff0000) << 0x18 |\n                                            ((ulong)local_60 & 0xff00) << 0x28 |\n                                           (long)local_60 << 0x38);\n                      }\n                      local_70 = local_70 + 2;\n                    }\nLAB_00303035:\n                    local_48 = FUN_00301dc0(*param_1,pbVar15,&local_60);\n                    puStack_50 = local_60;\n                    goto joined_r0x00303052;\n                  }\n                  if (uVar8 != 0x18) {\n                    return 0;\n                  }\nLAB_00302a09:\n                  bVar1 = (byte)*local_70;\n                  uVar9 = (uint)bVar1;\n                  puVar11 = (uint *)((long)local_70 + 1);\n                  if ((char)bVar1 < '\0') {\n                    uVar9 = FUN_002112d0(puVar11,&local_68,bVar1);\n                    puVar11 = (uint *)((long)local_70 + local_68);\n                  }\n                  else {\n                    local_68 = 1;\n                  }\n                  local_70 = (uint *)((long)local_70 + uVar9 + local_68);\n                  puStack_50 = puVar11;\n                  local_48 = uVar9;\n                }\n                else {\n                  if (uVar8 == 0x20) {\n                    pcVar3 = *(code **)(**(long **)(*param_1 + 0x10) + 0x18);\n                    if (pcVar3 == FUN_001b8d10) {\n                      cVar6 = (**(code **)(**(long **)(*param_1 + 0x10) + 0x1d0))();\n                    }\n                    else {\n                      cVar6 = (*pcVar3)();\n                    }\n                    puStack_50 = *(uint **)local_70;\n                    if (cVar6 != '\0') {\n                      puStack_50 = (uint *)((ulong)puStack_50 >> 0x38 |\n                                            ((ulong)puStack_50 & 0xff000000000000) >> 0x28 |\n                                            ((ulong)puStack_50 & 0xff0000000000) >> 0x18 |\n                                            ((ulong)puStack_50 & 0xff00000000) >> 8 |\n                                            ((ulong)puStack_50 & 0xff000000) << 8 |\n                                            ((ulong)puStack_50 & 0xff0000) << 0x18 |\n                                            ((ulong)puStack_50 & 0xff00) << 0x28 |\n                                           (long)puStack_50 << 0x38);\n                    }\n                    local_70 = local_70 + 2;\n                    goto LAB_00302ea9;\n                  }\n                  if (uVar8 < 0x20) {\n                    return 0;\n                  }\n                  if (1 < uVar8 - 0x1f01) {\n                    return 0;\n                  }\nLAB_00302bcd:\n                  bVar1 = (byte)*local_70;\n                  if ((char)bVar1 < '\0') {\n                    puStack_50 = (uint *)FUN_002112d0((uint *)((long)local_70 + 1),&local_68,bVar1);\n                    local_70 = (uint *)(local_68 + (long)local_70);\n                  }\n                  else {\n                    local_68 = 1;\n                    local_70 = (uint *)((long)local_70 + 1);\n                    puStack_50 = (uint *)(ulong)bVar1;\n                  }\n                }\nLAB_00302f92:\n                if (uVar2 == 0x31) goto LAB_00302750;\n                if (0x31 < uVar2) {\n                  if ((uVar2 == 0x6e) || (uVar2 == 0x2007)) goto LAB_00302fb5;\n                  goto LAB_00302750;\n                }\n                goto LAB_00302e3e;\n              }\n              puStack_50 = (uint *)0x1;\nLAB_00302ea9:\n              if (((uVar2 == 0x31) || (0x31 < uVar2)) || (uVar2 != 3)) goto LAB_00302750;\nLAB_00302e52:\n              if (uVar8 == 8) {\nLAB_003029c7:\n                param_1[0xb] = (long)puStack_50;\n              }\n              else if (uVar8 == 0xe) goto LAB_00302f64;\n              goto LAB_00302750;\n            }" if (parenthesized_expression "(0x15 < uVar8)" ( (binary_expression "0x15 < uVar8" number_literal < identifier) )) (compound_statement "{\n              if (uVar8 != 0x19) {\n                if (uVar8 < 0x1a) {\n                  if (uVar8 == 0x17) {\n                    lVar10 = *param_1;\n                    if (*(int *)(lVar10 + 0x60) == 4) {\n                      uVar9 = FUN_00305610(lVar10,&local_70);\n                      local_60 = (uint *)(ulong)uVar9;\n                    }\n                    else {\n                      plVar17 = *(long **)(lVar10 + 0x10);\nLAB_00302fe7:\n                      pcVar3 = *(code **)(*plVar17 + 0x18);\n                      if (pcVar3 == FUN_001b8d10) {\n                        cVar6 = (**(code **)(*plVar17 + 0x1d0))();\n                      }\n                      else {\n                        cVar6 = (*pcVar3)();\n                      }\n                      local_60 = *(uint **)local_70;\n                      if (cVar6 != '\0') {\n                        local_60 = (uint *)((ulong)local_60 >> 0x38 |\n                                            ((ulong)local_60 & 0xff000000000000) >> 0x28 |\n                                            ((ulong)local_60 & 0xff0000000000) >> 0x18 |\n                                            ((ulong)local_60 & 0xff00000000) >> 8 |\n                                            ((ulong)local_60 & 0xff000000) << 8 |\n                                            ((ulong)local_60 & 0xff0000) << 0x18 |\n                                            ((ulong)local_60 & 0xff00) << 0x28 |\n                                           (long)local_60 << 0x38);\n                      }\n                      local_70 = local_70 + 2;\n                    }\nLAB_00303035:\n                    local_48 = FUN_00301dc0(*param_1,pbVar15,&local_60);\n                    puStack_50 = local_60;\n                    goto joined_r0x00303052;\n                  }\n                  if (uVar8 != 0x18) {\n                    return 0;\n                  }\nLAB_00302a09:\n                  bVar1 = (byte)*local_70;\n                  uVar9 = (uint)bVar1;\n                  puVar11 = (uint *)((long)local_70 + 1);\n                  if ((char)bVar1 < '\0') {\n                    uVar9 = FUN_002112d0(puVar11,&local_68,bVar1);\n                    puVar11 = (uint *)((long)local_70 + local_68);\n                  }\n                  else {\n                    local_68 = 1;\n                  }\n                  local_70 = (uint *)((long)local_70 + uVar9 + local_68);\n                  puStack_50 = puVar11;\n                  local_48 = uVar9;\n                }\n                else {\n                  if (uVar8 == 0x20) {\n                    pcVar3 = *(code **)(**(long **)(*param_1 + 0x10) + 0x18);\n                    if (pcVar3 == FUN_001b8d10) {\n                      cVar6 = (**(code **)(**(long **)(*param_1 + 0x10) + 0x1d0))();\n                    }\n                    else {\n                      cVar6 = (*pcVar3)();\n                    }\n                    puStack_50 = *(uint **)local_70;\n                    if (cVar6 != '\0') {\n                      puStack_50 = (uint *)((ulong)puStack_50 >> 0x38 |\n                                            ((ulong)puStack_50 & 0xff000000000000) >> 0x28 |\n                                            ((ulong)puStack_50 & 0xff0000000000) >> 0x18 |\n                                            ((ulong)puStack_50 & 0xff00000000) >> 8 |\n                                            ((ulong)puStack_50 & 0xff000000) << 8 |\n                                            ((ulong)puStack_50 & 0xff0000) << 0x18 |\n                                            ((ulong)puStack_50 & 0xff00) << 0x28 |\n                                           (long)puStack_50 << 0x38);\n                    }\n                    local_70 = local_70 + 2;\n                    goto LAB_00302ea9;\n                  }\n                  if (uVar8 < 0x20) {\n                    return 0;\n                  }\n                  if (1 < uVar8 - 0x1f01) {\n                    return 0;\n                  }\nLAB_00302bcd:\n                  bVar1 = (byte)*local_70;\n                  if ((char)bVar1 < '\0') {\n                    puStack_50 = (uint *)FUN_002112d0((uint *)((long)local_70 + 1),&local_68,bVar1);\n                    local_70 = (uint *)(local_68 + (long)local_70);\n                  }\n                  else {\n                    local_68 = 1;\n                    local_70 = (uint *)((long)local_70 + 1);\n                    puStack_50 = (uint *)(ulong)bVar1;\n                  }\n                }\nLAB_00302f92:\n                if (uVar2 == 0x31) goto LAB_00302750;\n                if (0x31 < uVar2) {\n                  if ((uVar2 == 0x6e) || (uVar2 == 0x2007)) goto LAB_00302fb5;\n                  goto LAB_00302750;\n                }\n                goto LAB_00302e3e;\n              }\n              puStack_50 = (uint *)0x1;\nLAB_00302ea9:\n              if (((uVar2 == 0x31) || (0x31 < uVar2)) || (uVar2 != 3)) goto LAB_00302750;\nLAB_00302e52:\n              if (uVar8 == 8) {\nLAB_003029c7:\n                param_1[0xb] = (long)puStack_50;\n              }\n              else if (uVar8 == 0xe) goto LAB_00302f64;\n              goto LAB_00302750;\n            }" { (if_statement "if (uVar8 != 0x19) {\n                if (uVar8 < 0x1a) {\n                  if (uVar8 == 0x17) {\n                    lVar10 = *param_1;\n                    if (*(int *)(lVar10 + 0x60) == 4) {\n                      uVar9 = FUN_00305610(lVar10,&local_70);\n                      local_60 = (uint *)(ulong)uVar9;\n                    }\n                    else {\n                      plVar17 = *(long **)(lVar10 + 0x10);\nLAB_00302fe7:\n                      pcVar3 = *(code **)(*plVar17 + 0x18);\n                      if (pcVar3 == FUN_001b8d10) {\n                        cVar6 = (**(code **)(*plVar17 + 0x1d0))();\n                      }\n                      else {\n                        cVar6 = (*pcVar3)();\n                      }\n                      local_60 = *(uint **)local_70;\n                      if (cVar6 != '\0') {\n                        local_60 = (uint *)((ulong)local_60 >> 0x38 |\n                                            ((ulong)local_60 & 0xff000000000000) >> 0x28 |\n                                            ((ulong)local_60 & 0xff0000000000) >> 0x18 |\n                                            ((ulong)local_60 & 0xff00000000) >> 8 |\n                                            ((ulong)local_60 & 0xff000000) << 8 |\n                                            ((ulong)local_60 & 0xff0000) << 0x18 |\n                                            ((ulong)local_60 & 0xff00) << 0x28 |\n                                           (long)local_60 << 0x38);\n                      }\n                      local_70 = local_70 + 2;\n                    }\nLAB_00303035:\n                    local_48 = FUN_00301dc0(*param_1,pbVar15,&local_60);\n                    puStack_50 = local_60;\n                    goto joined_r0x00303052;\n                  }\n                  if (uVar8 != 0x18) {\n                    return 0;\n                  }\nLAB_00302a09:\n                  bVar1 = (byte)*local_70;\n                  uVar9 = (uint)bVar1;\n                  puVar11 = (uint *)((long)local_70 + 1);\n                  if ((char)bVar1 < '\0') {\n                    uVar9 = FUN_002112d0(puVar11,&local_68,bVar1);\n                    puVar11 = (uint *)((long)local_70 + local_68);\n                  }\n                  else {\n                    local_68 = 1;\n                  }\n                  local_70 = (uint *)((long)local_70 + uVar9 + local_68);\n                  puStack_50 = puVar11;\n                  local_48 = uVar9;\n                }\n                else {\n                  if (uVar8 == 0x20) {\n                    pcVar3 = *(code **)(**(long **)(*param_1 + 0x10) + 0x18);\n                    if (pcVar3 == FUN_001b8d10) {\n                      cVar6 = (**(code **)(**(long **)(*param_1 + 0x10) + 0x1d0))();\n                    }\n                    else {\n                      cVar6 = (*pcVar3)();\n                    }\n                    puStack_50 = *(uint **)local_70;\n                    if (cVar6 != '\0') {\n                      puStack_50 = (uint *)((ulong)puStack_50 >> 0x38 |\n                                            ((ulong)puStack_50 & 0xff000000000000) >> 0x28 |\n                                            ((ulong)puStack_50 & 0xff0000000000) >> 0x18 |\n                                            ((ulong)puStack_50 & 0xff00000000) >> 8 |\n                                            ((ulong)puStack_50 & 0xff000000) << 8 |\n                                            ((ulong)puStack_50 & 0xff0000) << 0x18 |\n                                            ((ulong)puStack_50 & 0xff00) << 0x28 |\n                                           (long)puStack_50 << 0x38);\n                    }\n                    local_70 = local_70 + 2;\n                    goto LAB_00302ea9;\n                  }\n                  if (uVar8 < 0x20) {\n                    return 0;\n                  }\n                  if (1 < uVar8 - 0x1f01) {\n                    return 0;\n                  }\nLAB_00302bcd:\n                  bVar1 = (byte)*local_70;\n                  if ((char)bVar1 < '\0') {\n                    puStack_50 = (uint *)FUN_002112d0((uint *)((long)local_70 + 1),&local_68,bVar1);\n                    local_70 = (uint *)(local_68 + (long)local_70);\n                  }\n                  else {\n                    local_68 = 1;\n                    local_70 = (uint *)((long)local_70 + 1);\n                    puStack_50 = (uint *)(ulong)bVar1;\n                  }\n                }\nLAB_00302f92:\n                if (uVar2 == 0x31) goto LAB_00302750;\n                if (0x31 < uVar2) {\n                  if ((uVar2 == 0x6e) || (uVar2 == 0x2007)) goto LAB_00302fb5;\n                  goto LAB_00302750;\n                }\n                goto LAB_00302e3e;\n              }" if (parenthesized_expression "(uVar8 != 0x19)" ( (binary_expression "uVar8 != 0x19" identifier != number_literal) )) (compound_statement "{\n                if (uVar8 < 0x1a) {\n                  if (uVar8 == 0x17) {\n                    lVar10 = *param_1;\n                    if (*(int *)(lVar10 + 0x60) == 4) {\n                      uVar9 = FUN_00305610(lVar10,&local_70);\n                      local_60 = (uint *)(ulong)uVar9;\n                    }\n                    else {\n                      plVar17 = *(long **)(lVar10 + 0x10);\nLAB_00302fe7:\n                      pcVar3 = *(code **)(*plVar17 + 0x18);\n                      if (pcVar3 == FUN_001b8d10) {\n                        cVar6 = (**(code **)(*plVar17 + 0x1d0))();\n                      }\n                      else {\n                        cVar6 = (*pcVar3)();\n                      }\n                      local_60 = *(uint **)local_70;\n                      if (cVar6 != '\0') {\n                        local_60 = (uint *)((ulong)local_60 >> 0x38 |\n                                            ((ulong)local_60 & 0xff000000000000) >> 0x28 |\n                                            ((ulong)local_60 & 0xff0000000000) >> 0x18 |\n                                            ((ulong)local_60 & 0xff00000000) >> 8 |\n                                            ((ulong)local_60 & 0xff000000) << 8 |\n                                            ((ulong)local_60 & 0xff0000) << 0x18 |\n                                            ((ulong)local_60 & 0xff00) << 0x28 |\n                                           (long)local_60 << 0x38);\n                      }\n                      local_70 = local_70 + 2;\n                    }\nLAB_00303035:\n                    local_48 = FUN_00301dc0(*param_1,pbVar15,&local_60);\n                    puStack_50 = local_60;\n                    goto joined_r0x00303052;\n                  }\n                  if (uVar8 != 0x18) {\n                    return 0;\n                  }\nLAB_00302a09:\n                  bVar1 = (byte)*local_70;\n                  uVar9 = (uint)bVar1;\n                  puVar11 = (uint *)((long)local_70 + 1);\n                  if ((char)bVar1 < '\0') {\n                    uVar9 = FUN_002112d0(puVar11,&local_68,bVar1);\n                    puVar11 = (uint *)((long)local_70 + local_68);\n                  }\n                  else {\n                    local_68 = 1;\n                  }\n                  local_70 = (uint *)((long)local_70 + uVar9 + local_68);\n                  puStack_50 = puVar11;\n                  local_48 = uVar9;\n                }\n                else {\n                  if (uVar8 == 0x20) {\n                    pcVar3 = *(code **)(**(long **)(*param_1 + 0x10) + 0x18);\n                    if (pcVar3 == FUN_001b8d10) {\n                      cVar6 = (**(code **)(**(long **)(*param_1 + 0x10) + 0x1d0))();\n                    }\n                    else {\n                      cVar6 = (*pcVar3)();\n                    }\n                    puStack_50 = *(uint **)local_70;\n                    if (cVar6 != '\0') {\n                      puStack_50 = (uint *)((ulong)puStack_50 >> 0x38 |\n                                            ((ulong)puStack_50 & 0xff000000000000) >> 0x28 |\n                                            ((ulong)puStack_50 & 0xff0000000000) >> 0x18 |\n                                            ((ulong)puStack_50 & 0xff00000000) >> 8 |\n                                            ((ulong)puStack_50 & 0xff000000) << 8 |\n                                            ((ulong)puStack_50 & 0xff0000) << 0x18 |\n                                            ((ulong)puStack_50 & 0xff00) << 0x28 |\n                                           (long)puStack_50 << 0x38);\n                    }\n                    local_70 = local_70 + 2;\n                    goto LAB_00302ea9;\n                  }\n                  if (uVar8 < 0x20) {\n                    return 0;\n                  }\n                  if (1 < uVar8 - 0x1f01) {\n                    return 0;\n                  }\nLAB_00302bcd:\n                  bVar1 = (byte)*local_70;\n                  if ((char)bVar1 < '\0') {\n                    puStack_50 = (uint *)FUN_002112d0((uint *)((long)local_70 + 1),&local_68,bVar1);\n                    local_70 = (uint *)(local_68 + (long)local_70);\n                  }\n                  else {\n                    local_68 = 1;\n                    local_70 = (uint *)((long)local_70 + 1);\n                    puStack_50 = (uint *)(ulong)bVar1;\n                  }\n                }\nLAB_00302f92:\n                if (uVar2 == 0x31) goto LAB_00302750;\n                if (0x31 < uVar2) {\n                  if ((uVar2 == 0x6e) || (uVar2 == 0x2007)) goto LAB_00302fb5;\n                  goto LAB_00302750;\n                }\n                goto LAB_00302e3e;\n              }" { (if_statement "if (uVar8 < 0x1a) {\n                  if (uVar8 == 0x17) {\n                    lVar10 = *param_1;\n                    if (*(int *)(lVar10 + 0x60) == 4) {\n                      uVar9 = FUN_00305610(lVar10,&local_70);\n                      local_60 = (uint *)(ulong)uVar9;\n                    }\n                    else {\n                      plVar17 = *(long **)(lVar10 + 0x10);\nLAB_00302fe7:\n                      pcVar3 = *(code **)(*plVar17 + 0x18);\n                      if (pcVar3 == FUN_001b8d10) {\n                        cVar6 = (**(code **)(*plVar17 + 0x1d0))();\n                      }\n                      else {\n                        cVar6 = (*pcVar3)();\n                      }\n                      local_60 = *(uint **)local_70;\n                      if (cVar6 != '\0') {\n                        local_60 = (uint *)((ulong)local_60 >> 0x38 |\n                                            ((ulong)local_60 & 0xff000000000000) >> 0x28 |\n                                            ((ulong)local_60 & 0xff0000000000) >> 0x18 |\n                                            ((ulong)local_60 & 0xff00000000) >> 8 |\n                                            ((ulong)local_60 & 0xff000000) << 8 |\n                                            ((ulong)local_60 & 0xff0000) << 0x18 |\n                                            ((ulong)local_60 & 0xff00) << 0x28 |\n                                           (long)local_60 << 0x38);\n                      }\n                      local_70 = local_70 + 2;\n                    }\nLAB_00303035:\n                    local_48 = FUN_00301dc0(*param_1,pbVar15,&local_60);\n                    puStack_50 = local_60;\n                    goto joined_r0x00303052;\n                  }\n                  if (uVar8 != 0x18) {\n                    return 0;\n                  }\nLAB_00302a09:\n                  bVar1 = (byte)*local_70;\n                  uVar9 = (uint)bVar1;\n                  puVar11 = (uint *)((long)local_70 + 1);\n                  if ((char)bVar1 < '\0') {\n                    uVar9 = FUN_002112d0(puVar11,&local_68,bVar1);\n                    puVar11 = (uint *)((long)local_70 + local_68);\n                  }\n                  else {\n                    local_68 = 1;\n                  }\n                  local_70 = (uint *)((long)local_70 + uVar9 + local_68);\n                  puStack_50 = puVar11;\n                  local_48 = uVar9;\n                }\n                else {\n                  if (uVar8 == 0x20) {\n                    pcVar3 = *(code **)(**(long **)(*param_1 + 0x10) + 0x18);\n                    if (pcVar3 == FUN_001b8d10) {\n                      cVar6 = (**(code **)(**(long **)(*param_1 + 0x10) + 0x1d0))();\n                    }\n                    else {\n                      cVar6 = (*pcVar3)();\n                    }\n                    puStack_50 = *(uint **)local_70;\n                    if (cVar6 != '\0') {\n                      puStack_50 = (uint *)((ulong)puStack_50 >> 0x38 |\n                                            ((ulong)puStack_50 & 0xff000000000000) >> 0x28 |\n                                            ((ulong)puStack_50 & 0xff0000000000) >> 0x18 |\n                                            ((ulong)puStack_50 & 0xff00000000) >> 8 |\n                                            ((ulong)puStack_50 & 0xff000000) << 8 |\n                                            ((ulong)puStack_50 & 0xff0000) << 0x18 |\n                                            ((ulong)puStack_50 & 0xff00) << 0x28 |\n                                           (long)puStack_50 << 0x38);\n                    }\n                    local_70 = local_70 + 2;\n                    goto LAB_00302ea9;\n                  }\n                  if (uVar8 < 0x20) {\n                    return 0;\n                  }\n                  if (1 < uVar8 - 0x1f01) {\n                    return 0;\n                  }\nLAB_00302bcd:\n                  bVar1 = (byte)*local_70;\n                  if ((char)bVar1 < '\0') {\n                    puStack_50 = (uint *)FUN_002112d0((uint *)((long)local_70 + 1),&local_68,bVar1);\n                    local_70 = (uint *)(local_68 + (long)local_70);\n                  }\n                  else {\n                    local_68 = 1;\n                    local_70 = (uint *)((long)local_70 + 1);\n                    puStack_50 = (uint *)(ulong)bVar1;\n                  }\n                }" if (parenthesized_expression "(uVar8 < 0x1a)" ( (binary_expression "uVar8 < 0x1a" identifier < number_literal) )) (compound_statement "{\n                  if (uVar8 == 0x17) {\n                    lVar10 = *param_1;\n                    if (*(int *)(lVar10 + 0x60) == 4) {\n                      uVar9 = FUN_00305610(lVar10,&local_70);\n                      local_60 = (uint *)(ulong)uVar9;\n                    }\n                    else {\n                      plVar17 = *(long **)(lVar10 + 0x10);\nLAB_00302fe7:\n                      pcVar3 = *(code **)(*plVar17 + 0x18);\n                      if (pcVar3 == FUN_001b8d10) {\n                        cVar6 = (**(code **)(*plVar17 + 0x1d0))();\n                      }\n                      else {\n                        cVar6 = (*pcVar3)();\n                      }\n                      local_60 = *(uint **)local_70;\n                      if (cVar6 != '\0') {\n                        local_60 = (uint *)((ulong)local_60 >> 0x38 |\n                                            ((ulong)local_60 & 0xff000000000000) >> 0x28 |\n                                            ((ulong)local_60 & 0xff0000000000) >> 0x18 |\n                                            ((ulong)local_60 & 0xff00000000) >> 8 |\n                                            ((ulong)local_60 & 0xff000000) << 8 |\n                                            ((ulong)local_60 & 0xff0000) << 0x18 |\n                                            ((ulong)local_60 & 0xff00) << 0x28 |\n                                           (long)local_60 << 0x38);\n                      }\n                      local_70 = local_70 + 2;\n                    }\nLAB_00303035:\n                    local_48 = FUN_00301dc0(*param_1,pbVar15,&local_60);\n                    puStack_50 = local_60;\n                    goto joined_r0x00303052;\n                  }\n                  if (uVar8 != 0x18) {\n                    return 0;\n                  }\nLAB_00302a09:\n                  bVar1 = (byte)*local_70;\n                  uVar9 = (uint)bVar1;\n                  puVar11 = (uint *)((long)local_70 + 1);\n                  if ((char)bVar1 < '\0') {\n                    uVar9 = FUN_002112d0(puVar11,&local_68,bVar1);\n                    puVar11 = (uint *)((long)local_70 + local_68);\n                  }\n                  else {\n                    local_68 = 1;\n                  }\n                  local_70 = (uint *)((long)local_70 + uVar9 + local_68);\n                  puStack_50 = puVar11;\n                  local_48 = uVar9;\n                }" { (if_statement "if (uVar8 == 0x17) {\n                    lVar10 = *param_1;\n                    if (*(int *)(lVar10 + 0x60) == 4) {\n                      uVar9 = FUN_00305610(lVar10,&local_70);\n                      local_60 = (uint *)(ulong)uVar9;\n                    }\n                    else {\n                      plVar17 = *(long **)(lVar10 + 0x10);\nLAB_00302fe7:\n                      pcVar3 = *(code **)(*plVar17 + 0x18);\n                      if (pcVar3 == FUN_001b8d10) {\n                        cVar6 = (**(code **)(*plVar17 + 0x1d0))();\n                      }\n                      else {\n                        cVar6 = (*pcVar3)();\n                      }\n                      local_60 = *(uint **)local_70;\n                      if (cVar6 != '\0') {\n                        local_60 = (uint *)((ulong)local_60 >> 0x38 |\n                                            ((ulong)local_60 & 0xff000000000000) >> 0x28 |\n                                            ((ulong)local_60 & 0xff0000000000) >> 0x18 |\n                                            ((ulong)local_60 & 0xff00000000) >> 8 |\n                                            ((ulong)local_60 & 0xff000000) << 8 |\n                                            ((ulong)local_60 & 0xff0000) << 0x18 |\n                                            ((ulong)local_60 & 0xff00) << 0x28 |\n                                           (long)local_60 << 0x38);\n                      }\n                      local_70 = local_70 + 2;\n                    }\nLAB_00303035:\n                    local_48 = FUN_00301dc0(*param_1,pbVar15,&local_60);\n                    puStack_50 = local_60;\n                    goto joined_r0x00303052;\n                  }" if (parenthesized_expression "(uVar8 == 0x17)" ( (binary_expression "uVar8 == 0x17" identifier == number_literal) )) (compound_statement "{\n                    lVar10 = *param_1;\n                    if (*(int *)(lVar10 + 0x60) == 4) {\n                      uVar9 = FUN_00305610(lVar10,&local_70);\n                      local_60 = (uint *)(ulong)uVar9;\n                    }\n                    else {\n                      plVar17 = *(long **)(lVar10 + 0x10);\nLAB_00302fe7:\n                      pcVar3 = *(code **)(*plVar17 + 0x18);\n                      if (pcVar3 == FUN_001b8d10) {\n                        cVar6 = (**(code **)(*plVar17 + 0x1d0))();\n                      }\n                      else {\n                        cVar6 = (*pcVar3)();\n                      }\n                      local_60 = *(uint **)local_70;\n                      if (cVar6 != '\0') {\n                        local_60 = (uint *)((ulong)local_60 >> 0x38 |\n                                            ((ulong)local_60 & 0xff000000000000) >> 0x28 |\n                                            ((ulong)local_60 & 0xff0000000000) >> 0x18 |\n                                            ((ulong)local_60 & 0xff00000000) >> 8 |\n                                            ((ulong)local_60 & 0xff000000) << 8 |\n                                            ((ulong)local_60 & 0xff0000) << 0x18 |\n                                            ((ulong)local_60 & 0xff00) << 0x28 |\n                                           (long)local_60 << 0x38);\n                      }\n                      local_70 = local_70 + 2;\n                    }\nLAB_00303035:\n                    local_48 = FUN_00301dc0(*param_1,pbVar15,&local_60);\n                    puStack_50 = local_60;\n                    goto joined_r0x00303052;\n                  }" { (expression_statement "lVar10 = *param_1;" (assignment_expression "lVar10 = *param_1" identifier = (pointer_expression "*param_1" * identifier)) ;) (if_statement "if (*(int *)(lVar10 + 0x60) == 4) {\n                      uVar9 = FUN_00305610(lVar10,&local_70);\n                      local_60 = (uint *)(ulong)uVar9;\n                    }\n                    else {\n                      plVar17 = *(long **)(lVar10 + 0x10);\nLAB_00302fe7:\n                      pcVar3 = *(code **)(*plVar17 + 0x18);\n                      if (pcVar3 == FUN_001b8d10) {\n                        cVar6 = (**(code **)(*plVar17 + 0x1d0))();\n                      }\n                      else {\n                        cVar6 = (*pcVar3)();\n                      }\n                      local_60 = *(uint **)local_70;\n                      if (cVar6 != '\0') {\n                        local_60 = (uint *)((ulong)local_60 >> 0x38 |\n                                            ((ulong)local_60 & 0xff000000000000) >> 0x28 |\n                                            ((ulong)local_60 & 0xff0000000000) >> 0x18 |\n                                            ((ulong)local_60 & 0xff00000000) >> 8 |\n                                            ((ulong)local_60 & 0xff000000) << 8 |\n                                            ((ulong)local_60 & 0xff0000) << 0x18 |\n                                            ((ulong)local_60 & 0xff00) << 0x28 |\n                                           (long)local_60 << 0x38);\n                      }\n                      local_70 = local_70 + 2;\n                    }" if (parenthesized_expression "(*(int *)(lVar10 + 0x60) == 4)" ( (binary_expression "*(int *)(lVar10 + 0x60) == 4" (pointer_expression "*(int *)(lVar10 + 0x60)" * (cast_expression "(int *)(lVar10 + 0x60)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(lVar10 + 0x60)" ( (binary_expression "lVar10 + 0x60" identifier + number_literal) )))) == number_literal) )) (compound_statement "{\n                      uVar9 = FUN_00305610(lVar10,&local_70);\n                      local_60 = (uint *)(ulong)uVar9;\n                    }" { (expression_statement "uVar9 = FUN_00305610(lVar10,&local_70);" (assignment_expression "uVar9 = FUN_00305610(lVar10,&local_70)" identifier = (call_expression "FUN_00305610(lVar10,&local_70)" identifier (argument_list "(lVar10,&local_70)" ( identifier , (pointer_expression "&local_70" & identifier) )))) ;) (expression_statement "local_60 = (uint *)(ulong)uVar9;" (assignment_expression "local_60 = (uint *)(ulong)uVar9" identifier = (cast_expression "(uint *)(ulong)uVar9" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (cast_expression "(ulong)uVar9" ( (type_descriptor "ulong" type_identifier) ) identifier))) ;) }) (else_clause "else {\n                      plVar17 = *(long **)(lVar10 + 0x10);\nLAB_00302fe7:\n                      pcVar3 = *(code **)(*plVar17 + 0x18);\n                      if (pcVar3 == FUN_001b8d10) {\n                        cVar6 = (**(code **)(*plVar17 + 0x1d0))();\n                      }\n                      else {\n                        cVar6 = (*pcVar3)();\n                      }\n                      local_60 = *(uint **)local_70;\n                      if (cVar6 != '\0') {\n                        local_60 = (uint *)((ulong)local_60 >> 0x38 |\n                                            ((ulong)local_60 & 0xff000000000000) >> 0x28 |\n                                            ((ulong)local_60 & 0xff0000000000) >> 0x18 |\n                                            ((ulong)local_60 & 0xff00000000) >> 8 |\n                                            ((ulong)local_60 & 0xff000000) << 8 |\n                                            ((ulong)local_60 & 0xff0000) << 0x18 |\n                                            ((ulong)local_60 & 0xff00) << 0x28 |\n                                           (long)local_60 << 0x38);\n                      }\n                      local_70 = local_70 + 2;\n                    }" else (compound_statement "{\n                      plVar17 = *(long **)(lVar10 + 0x10);\nLAB_00302fe7:\n                      pcVar3 = *(code **)(*plVar17 + 0x18);\n                      if (pcVar3 == FUN_001b8d10) {\n                        cVar6 = (**(code **)(*plVar17 + 0x1d0))();\n                      }\n                      else {\n                        cVar6 = (*pcVar3)();\n                      }\n                      local_60 = *(uint **)local_70;\n                      if (cVar6 != '\0') {\n                        local_60 = (uint *)((ulong)local_60 >> 0x38 |\n                                            ((ulong)local_60 & 0xff000000000000) >> 0x28 |\n                                            ((ulong)local_60 & 0xff0000000000) >> 0x18 |\n                                            ((ulong)local_60 & 0xff00000000) >> 8 |\n                                            ((ulong)local_60 & 0xff000000) << 8 |\n                                            ((ulong)local_60 & 0xff0000) << 0x18 |\n                                            ((ulong)local_60 & 0xff00) << 0x28 |\n                                           (long)local_60 << 0x38);\n                      }\n                      local_70 = local_70 + 2;\n                    }" { (expression_statement "plVar17 = *(long **)(lVar10 + 0x10);" (assignment_expression "plVar17 = *(long **)(lVar10 + 0x10)" identifier = (pointer_expression "*(long **)(lVar10 + 0x10)" * (cast_expression "(long **)(lVar10 + 0x10)" ( (type_descriptor "long **" (sized_type_specifier "long" long) (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(lVar10 + 0x10)" ( (binary_expression "lVar10 + 0x10" identifier + number_literal) ))))) ;) (labeled_statement "LAB_00302fe7:\n                      pcVar3 = *(code **)(*plVar17 + 0x18);" statement_identifier : (expression_statement "pcVar3 = *(code **)(*plVar17 + 0x18);" (assignment_expression "pcVar3 = *(code **)(*plVar17 + 0x18)" identifier = (pointer_expression "*(code **)(*plVar17 + 0x18)" * (cast_expression "(code **)(*plVar17 + 0x18)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(*plVar17 + 0x18)" ( (binary_expression "*plVar17 + 0x18" (pointer_expression "*plVar17" * identifier) + number_literal) ))))) ;)) (if_statement "if (pcVar3 == FUN_001b8d10) {\n                        cVar6 = (**(code **)(*plVar17 + 0x1d0))();\n                      }\n                      else {\n                        cVar6 = (*pcVar3)();\n                      }" if (parenthesized_expression "(pcVar3 == FUN_001b8d10)" ( (binary_expression "pcVar3 == FUN_001b8d10" identifier == identifier) )) (compound_statement "{\n                        cVar6 = (**(code **)(*plVar17 + 0x1d0))();\n                      }" { (expression_statement "cVar6 = (**(code **)(*plVar17 + 0x1d0))();" (assignment_expression "cVar6 = (**(code **)(*plVar17 + 0x1d0))()" identifier = (call_expression "(**(code **)(*plVar17 + 0x1d0))()" (parenthesized_expression "(**(code **)(*plVar17 + 0x1d0))" ( (pointer_expression "**(code **)(*plVar17 + 0x1d0)" * (pointer_expression "*(code **)(*plVar17 + 0x1d0)" * (cast_expression "(code **)(*plVar17 + 0x1d0)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(*plVar17 + 0x1d0)" ( (binary_expression "*plVar17 + 0x1d0" (pointer_expression "*plVar17" * identifier) + number_literal) ))))) )) (argument_list "()" ( )))) ;) }) (else_clause "else {\n                        cVar6 = (*pcVar3)();\n                      }" else (compound_statement "{\n                        cVar6 = (*pcVar3)();\n                      }" { (expression_statement "cVar6 = (*pcVar3)();" (assignment_expression "cVar6 = (*pcVar3)()" identifier = (call_expression "(*pcVar3)()" (parenthesized_expression "(*pcVar3)" ( (pointer_expression "*pcVar3" * identifier) )) (argument_list "()" ( )))) ;) }))) (expression_statement "local_60 = *(uint **)local_70;" (assignment_expression "local_60 = *(uint **)local_70" identifier = (pointer_expression "*(uint **)local_70" * (cast_expression "(uint **)local_70" ( (type_descriptor "uint **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) identifier))) ;) (if_statement "if (cVar6 != '\0') {\n                        local_60 = (uint *)((ulong)local_60 >> 0x38 |\n                                            ((ulong)local_60 & 0xff000000000000) >> 0x28 |\n                                            ((ulong)local_60 & 0xff0000000000) >> 0x18 |\n                                            ((ulong)local_60 & 0xff00000000) >> 8 |\n                                            ((ulong)local_60 & 0xff000000) << 8 |\n                                            ((ulong)local_60 & 0xff0000) << 0x18 |\n                                            ((ulong)local_60 & 0xff00) << 0x28 |\n                                           (long)local_60 << 0x38);\n                      }" if (parenthesized_expression "(cVar6 != '\0')" ( (binary_expression "cVar6 != '\0'" identifier != (char_literal "'\0'" ' escape_sequence ')) )) (compound_statement "{\n                        local_60 = (uint *)((ulong)local_60 >> 0x38 |\n                                            ((ulong)local_60 & 0xff000000000000) >> 0x28 |\n                                            ((ulong)local_60 & 0xff0000000000) >> 0x18 |\n                                            ((ulong)local_60 & 0xff00000000) >> 8 |\n                                            ((ulong)local_60 & 0xff000000) << 8 |\n                                            ((ulong)local_60 & 0xff0000) << 0x18 |\n                                            ((ulong)local_60 & 0xff00) << 0x28 |\n                                           (long)local_60 << 0x38);\n                      }" { (expression_statement "local_60 = (uint *)((ulong)local_60 >> 0x38 |\n                                            ((ulong)local_60 & 0xff000000000000) >> 0x28 |\n                                            ((ulong)local_60 & 0xff0000000000) >> 0x18 |\n                                            ((ulong)local_60 & 0xff00000000) >> 8 |\n                                            ((ulong)local_60 & 0xff000000) << 8 |\n                                            ((ulong)local_60 & 0xff0000) << 0x18 |\n                                            ((ulong)local_60 & 0xff00) << 0x28 |\n                                           (long)local_60 << 0x38);" (assignment_expression "local_60 = (uint *)((ulong)local_60 >> 0x38 |\n                                            ((ulong)local_60 & 0xff000000000000) >> 0x28 |\n                                            ((ulong)local_60 & 0xff0000000000) >> 0x18 |\n                                            ((ulong)local_60 & 0xff00000000) >> 8 |\n                                            ((ulong)local_60 & 0xff000000) << 8 |\n                                            ((ulong)local_60 & 0xff0000) << 0x18 |\n                                            ((ulong)local_60 & 0xff00) << 0x28 |\n                                           (long)local_60 << 0x38)" identifier = (cast_expression "(uint *)((ulong)local_60 >> 0x38 |\n                                            ((ulong)local_60 & 0xff000000000000) >> 0x28 |\n                                            ((ulong)local_60 & 0xff0000000000) >> 0x18 |\n                                            ((ulong)local_60 & 0xff00000000) >> 8 |\n                                            ((ulong)local_60 & 0xff000000) << 8 |\n                                            ((ulong)local_60 & 0xff0000) << 0x18 |\n                                            ((ulong)local_60 & 0xff00) << 0x28 |\n                                           (long)local_60 << 0x38)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((ulong)local_60 >> 0x38 |\n                                            ((ulong)local_60 & 0xff000000000000) >> 0x28 |\n                                            ((ulong)local_60 & 0xff0000000000) >> 0x18 |\n                                            ((ulong)local_60 & 0xff00000000) >> 8 |\n                                            ((ulong)local_60 & 0xff000000) << 8 |\n                                            ((ulong)local_60 & 0xff0000) << 0x18 |\n                                            ((ulong)local_60 & 0xff00) << 0x28 |\n                                           (long)local_60 << 0x38)" ( (binary_expression "(ulong)local_60 >> 0x38 |\n                                            ((ulong)local_60 & 0xff000000000000) >> 0x28 |\n                                            ((ulong)local_60 & 0xff0000000000) >> 0x18 |\n                                            ((ulong)local_60 & 0xff00000000) >> 8 |\n                                            ((ulong)local_60 & 0xff000000) << 8 |\n                                            ((ulong)local_60 & 0xff0000) << 0x18 |\n                                            ((ulong)local_60 & 0xff00) << 0x28 |\n                                           (long)local_60 << 0x38" (binary_expression "(ulong)local_60 >> 0x38 |\n                                            ((ulong)local_60 & 0xff000000000000) >> 0x28 |\n                                            ((ulong)local_60 & 0xff0000000000) >> 0x18 |\n                                            ((ulong)local_60 & 0xff00000000) >> 8 |\n                                            ((ulong)local_60 & 0xff000000) << 8 |\n                                            ((ulong)local_60 & 0xff0000) << 0x18 |\n                                            ((ulong)local_60 & 0xff00) << 0x28" (binary_expression "(ulong)local_60 >> 0x38 |\n                                            ((ulong)local_60 & 0xff000000000000) >> 0x28 |\n                                            ((ulong)local_60 & 0xff0000000000) >> 0x18 |\n                                            ((ulong)local_60 & 0xff00000000) >> 8 |\n                                            ((ulong)local_60 & 0xff000000) << 8 |\n                                            ((ulong)local_60 & 0xff0000) << 0x18" (binary_expression "(ulong)local_60 >> 0x38 |\n                                            ((ulong)local_60 & 0xff000000000000) >> 0x28 |\n                                            ((ulong)local_60 & 0xff0000000000) >> 0x18 |\n                                            ((ulong)local_60 & 0xff00000000) >> 8 |\n                                            ((ulong)local_60 & 0xff000000) << 8" (binary_expression "(ulong)local_60 >> 0x38 |\n                                            ((ulong)local_60 & 0xff000000000000) >> 0x28 |\n                                            ((ulong)local_60 & 0xff0000000000) >> 0x18 |\n                                            ((ulong)local_60 & 0xff00000000) >> 8" (binary_expression "(ulong)local_60 >> 0x38 |\n                                            ((ulong)local_60 & 0xff000000000000) >> 0x28 |\n                                            ((ulong)local_60 & 0xff0000000000) >> 0x18" (binary_expression "(ulong)local_60 >> 0x38 |\n                                            ((ulong)local_60 & 0xff000000000000) >> 0x28" (binary_expression "(ulong)local_60 >> 0x38" (cast_expression "(ulong)local_60" ( (type_descriptor "ulong" type_identifier) ) identifier) >> number_literal) | (binary_expression "((ulong)local_60 & 0xff000000000000) >> 0x28" (parenthesized_expression "((ulong)local_60 & 0xff000000000000)" ( (binary_expression "(ulong)local_60 & 0xff000000000000" (cast_expression "(ulong)local_60" ( (type_descriptor "ulong" type_identifier) ) identifier) & number_literal) )) >> number_literal)) | (binary_expression "((ulong)local_60 & 0xff0000000000) >> 0x18" (parenthesized_expression "((ulong)local_60 & 0xff0000000000)" ( (binary_expression "(ulong)local_60 & 0xff0000000000" (cast_expression "(ulong)local_60" ( (type_descriptor "ulong" type_identifier) ) identifier) & number_literal) )) >> number_literal)) | (binary_expression "((ulong)local_60 & 0xff00000000) >> 8" (parenthesized_expression "((ulong)local_60 & 0xff00000000)" ( (binary_expression "(ulong)local_60 & 0xff00000000" (cast_expression "(ulong)local_60" ( (type_descriptor "ulong" type_identifier) ) identifier) & number_literal) )) >> number_literal)) | (binary_expression "((ulong)local_60 & 0xff000000) << 8" (parenthesized_expression "((ulong)local_60 & 0xff000000)" ( (binary_expression "(ulong)local_60 & 0xff000000" (cast_expression "(ulong)local_60" ( (type_descriptor "ulong" type_identifier) ) identifier) & number_literal) )) << number_literal)) | (binary_expression "((ulong)local_60 & 0xff0000) << 0x18" (parenthesized_expression "((ulong)local_60 & 0xff0000)" ( (binary_expression "(ulong)local_60 & 0xff0000" (cast_expression "(ulong)local_60" ( (type_descriptor "ulong" type_identifier) ) identifier) & number_literal) )) << number_literal)) | (binary_expression "((ulong)local_60 & 0xff00) << 0x28" (parenthesized_expression "((ulong)local_60 & 0xff00)" ( (binary_expression "(ulong)local_60 & 0xff00" (cast_expression "(ulong)local_60" ( (type_descriptor "ulong" type_identifier) ) identifier) & number_literal) )) << number_literal)) | (binary_expression "(long)local_60 << 0x38" (cast_expression "(long)local_60" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) identifier) << number_literal)) )))) ;) })) (expression_statement "local_70 = local_70 + 2;" (assignment_expression "local_70 = local_70 + 2" identifier = (binary_expression "local_70 + 2" identifier + number_literal)) ;) }))) (labeled_statement "LAB_00303035:\n                    local_48 = FUN_00301dc0(*param_1,pbVar15,&local_60);" statement_identifier : (expression_statement "local_48 = FUN_00301dc0(*param_1,pbVar15,&local_60);" (assignment_expression "local_48 = FUN_00301dc0(*param_1,pbVar15,&local_60)" identifier = (call_expression "FUN_00301dc0(*param_1,pbVar15,&local_60)" identifier (argument_list "(*param_1,pbVar15,&local_60)" ( (pointer_expression "*param_1" * identifier) , identifier , (pointer_expression "&local_60" & identifier) )))) ;)) (expression_statement "puStack_50 = local_60;" (assignment_expression "puStack_50 = local_60" identifier = identifier) ;) (goto_statement "goto joined_r0x00303052;" goto statement_identifier ;) })) (if_statement "if (uVar8 != 0x18) {\n                    return 0;\n                  }" if (parenthesized_expression "(uVar8 != 0x18)" ( (binary_expression "uVar8 != 0x18" identifier != number_literal) )) (compound_statement "{\n                    return 0;\n                  }" { (return_statement "return 0;" return number_literal ;) })) (labeled_statement "LAB_00302a09:\n                  bVar1 = (byte)*local_70;" statement_identifier : (expression_statement "bVar1 = (byte)*local_70;" (assignment_expression "bVar1 = (byte)*local_70" identifier = (binary_expression "(byte)*local_70" (parenthesized_expression "(byte)" ( identifier )) * identifier)) ;)) (expression_statement "uVar9 = (uint)bVar1;" (assignment_expression "uVar9 = (uint)bVar1" identifier = (cast_expression "(uint)bVar1" ( (type_descriptor "uint" type_identifier) ) identifier)) ;) (expression_statement "puVar11 = (uint *)((long)local_70 + 1);" (assignment_expression "puVar11 = (uint *)((long)local_70 + 1)" identifier = (cast_expression "(uint *)((long)local_70 + 1)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((long)local_70 + 1)" ( (binary_expression "(long)local_70 + 1" (cast_expression "(long)local_70" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) identifier) + number_literal) )))) ;) (if_statement "if ((char)bVar1 < '\0') {\n                    uVar9 = FUN_002112d0(puVar11,&local_68,bVar1);\n                    puVar11 = (uint *)((long)local_70 + local_68);\n                  }\n                  else {\n                    local_68 = 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                    uVar9 = FUN_002112d0(puVar11,&local_68,bVar1);\n                    puVar11 = (uint *)((long)local_70 + local_68);\n                  }" { (expression_statement "uVar9 = FUN_002112d0(puVar11,&local_68,bVar1);" (assignment_expression "uVar9 = FUN_002112d0(puVar11,&local_68,bVar1)" identifier = (call_expression "FUN_002112d0(puVar11,&local_68,bVar1)" identifier (argument_list "(puVar11,&local_68,bVar1)" ( identifier , (pointer_expression "&local_68" & identifier) , identifier )))) ;) (expression_statement "puVar11 = (uint *)((long)local_70 + local_68);" (assignment_expression "puVar11 = (uint *)((long)local_70 + local_68)" identifier = (cast_expression "(uint *)((long)local_70 + local_68)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((long)local_70 + local_68)" ( (binary_expression "(long)local_70 + local_68" (cast_expression "(long)local_70" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) identifier) + identifier) )))) ;) }) (else_clause "else {\n                    local_68 = 1;\n                  }" else (compound_statement "{\n                    local_68 = 1;\n                  }" { (expression_statement "local_68 = 1;" (assignment_expression "local_68 = 1" identifier = number_literal) ;) }))) (expression_statement "local_70 = (uint *)((long)local_70 + uVar9 + local_68);" (assignment_expression "local_70 = (uint *)((long)local_70 + uVar9 + local_68)" identifier = (cast_expression "(uint *)((long)local_70 + uVar9 + local_68)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((long)local_70 + uVar9 + local_68)" ( (binary_expression "(long)local_70 + uVar9 + local_68" (binary_expression "(long)local_70 + uVar9" (cast_expression "(long)local_70" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) identifier) + identifier) + identifier) )))) ;) (expression_statement "puStack_50 = puVar11;" (assignment_expression "puStack_50 = puVar11" identifier = identifier) ;) (expression_statement "local_48 = uVar9;" (assignment_expression "local_48 = uVar9" identifier = identifier) ;) }) (else_clause "else {\n                  if (uVar8 == 0x20) {\n                    pcVar3 = *(code **)(**(long **)(*param_1 + 0x10) + 0x18);\n                    if (pcVar3 == FUN_001b8d10) {\n                      cVar6 = (**(code **)(**(long **)(*param_1 + 0x10) + 0x1d0))();\n                    }\n                    else {\n                      cVar6 = (*pcVar3)();\n                    }\n                    puStack_50 = *(uint **)local_70;\n                    if (cVar6 != '\0') {\n                      puStack_50 = (uint *)((ulong)puStack_50 >> 0x38 |\n                                            ((ulong)puStack_50 & 0xff000000000000) >> 0x28 |\n                                            ((ulong)puStack_50 & 0xff0000000000) >> 0x18 |\n                                            ((ulong)puStack_50 & 0xff00000000) >> 8 |\n                                            ((ulong)puStack_50 & 0xff000000) << 8 |\n                                            ((ulong)puStack_50 & 0xff0000) << 0x18 |\n                                            ((ulong)puStack_50 & 0xff00) << 0x28 |\n                                           (long)puStack_50 << 0x38);\n                    }\n                    local_70 = local_70 + 2;\n                    goto LAB_00302ea9;\n                  }\n                  if (uVar8 < 0x20) {\n                    return 0;\n                  }\n                  if (1 < uVar8 - 0x1f01) {\n                    return 0;\n                  }\nLAB_00302bcd:\n                  bVar1 = (byte)*local_70;\n                  if ((char)bVar1 < '\0') {\n                    puStack_50 = (uint *)FUN_002112d0((uint *)((long)local_70 + 1),&local_68,bVar1);\n                    local_70 = (uint *)(local_68 + (long)local_70);\n                  }\n                  else {\n                    local_68 = 1;\n                    local_70 = (uint *)((long)local_70 + 1);\n                    puStack_50 = (uint *)(ulong)bVar1;\n                  }\n                }" else (compound_statement "{\n                  if (uVar8 == 0x20) {\n                    pcVar3 = *(code **)(**(long **)(*param_1 + 0x10) + 0x18);\n                    if (pcVar3 == FUN_001b8d10) {\n                      cVar6 = (**(code **)(**(long **)(*param_1 + 0x10) + 0x1d0))();\n                    }\n                    else {\n                      cVar6 = (*pcVar3)();\n                    }\n                    puStack_50 = *(uint **)local_70;\n                    if (cVar6 != '\0') {\n                      puStack_50 = (uint *)((ulong)puStack_50 >> 0x38 |\n                                            ((ulong)puStack_50 & 0xff000000000000) >> 0x28 |\n                                            ((ulong)puStack_50 & 0xff0000000000) >> 0x18 |\n                                            ((ulong)puStack_50 & 0xff00000000) >> 8 |\n                                            ((ulong)puStack_50 & 0xff000000) << 8 |\n                                            ((ulong)puStack_50 & 0xff0000) << 0x18 |\n                                            ((ulong)puStack_50 & 0xff00) << 0x28 |\n                                           (long)puStack_50 << 0x38);\n                    }\n                    local_70 = local_70 + 2;\n                    goto LAB_00302ea9;\n                  }\n                  if (uVar8 < 0x20) {\n                    return 0;\n                  }\n                  if (1 < uVar8 - 0x1f01) {\n                    return 0;\n                  }\nLAB_00302bcd:\n                  bVar1 = (byte)*local_70;\n                  if ((char)bVar1 < '\0') {\n                    puStack_50 = (uint *)FUN_002112d0((uint *)((long)local_70 + 1),&local_68,bVar1);\n                    local_70 = (uint *)(local_68 + (long)local_70);\n                  }\n                  else {\n                    local_68 = 1;\n                    local_70 = (uint *)((long)local_70 + 1);\n                    puStack_50 = (uint *)(ulong)bVar1;\n                  }\n                }" { (if_statement "if (uVar8 == 0x20) {\n                    pcVar3 = *(code **)(**(long **)(*param_1 + 0x10) + 0x18);\n                    if (pcVar3 == FUN_001b8d10) {\n                      cVar6 = (**(code **)(**(long **)(*param_1 + 0x10) + 0x1d0))();\n                    }\n                    else {\n                      cVar6 = (*pcVar3)();\n                    }\n                    puStack_50 = *(uint **)local_70;\n                    if (cVar6 != '\0') {\n                      puStack_50 = (uint *)((ulong)puStack_50 >> 0x38 |\n                                            ((ulong)puStack_50 & 0xff000000000000) >> 0x28 |\n                                            ((ulong)puStack_50 & 0xff0000000000) >> 0x18 |\n                                            ((ulong)puStack_50 & 0xff00000000) >> 8 |\n                                            ((ulong)puStack_50 & 0xff000000) << 8 |\n                                            ((ulong)puStack_50 & 0xff0000) << 0x18 |\n                                            ((ulong)puStack_50 & 0xff00) << 0x28 |\n                                           (long)puStack_50 << 0x38);\n                    }\n                    local_70 = local_70 + 2;\n                    goto LAB_00302ea9;\n                  }" if (parenthesized_expression "(uVar8 == 0x20)" ( (binary_expression "uVar8 == 0x20" identifier == number_literal) )) (compound_statement "{\n                    pcVar3 = *(code **)(**(long **)(*param_1 + 0x10) + 0x18);\n                    if (pcVar3 == FUN_001b8d10) {\n                      cVar6 = (**(code **)(**(long **)(*param_1 + 0x10) + 0x1d0))();\n                    }\n                    else {\n                      cVar6 = (*pcVar3)();\n                    }\n                    puStack_50 = *(uint **)local_70;\n                    if (cVar6 != '\0') {\n                      puStack_50 = (uint *)((ulong)puStack_50 >> 0x38 |\n                                            ((ulong)puStack_50 & 0xff000000000000) >> 0x28 |\n                                            ((ulong)puStack_50 & 0xff0000000000) >> 0x18 |\n                                            ((ulong)puStack_50 & 0xff00000000) >> 8 |\n                                            ((ulong)puStack_50 & 0xff000000) << 8 |\n                                            ((ulong)puStack_50 & 0xff0000) << 0x18 |\n                                            ((ulong)puStack_50 & 0xff00) << 0x28 |\n                                           (long)puStack_50 << 0x38);\n                    }\n                    local_70 = local_70 + 2;\n                    goto LAB_00302ea9;\n                  }" { (expression_statement "pcVar3 = *(code **)(**(long **)(*param_1 + 0x10) + 0x18);" (assignment_expression "pcVar3 = *(code **)(**(long **)(*param_1 + 0x10) + 0x18)" identifier = (pointer_expression "*(code **)(**(long **)(*param_1 + 0x10) + 0x18)" * (cast_expression "(code **)(**(long **)(*param_1 + 0x10) + 0x18)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(**(long **)(*param_1 + 0x10) + 0x18)" ( (binary_expression "**(long **)(*param_1 + 0x10) + 0x18" (pointer_expression "**(long **)(*param_1 + 0x10)" * (pointer_expression "*(long **)(*param_1 + 0x10)" * (cast_expression "(long **)(*param_1 + 0x10)" ( (type_descriptor "long **" (sized_type_specifier "long" long) (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(*param_1 + 0x10)" ( (binary_expression "*param_1 + 0x10" (pointer_expression "*param_1" * identifier) + number_literal) ))))) + number_literal) ))))) ;) (if_statement "if (pcVar3 == FUN_001b8d10) {\n                      cVar6 = (**(code **)(**(long **)(*param_1 + 0x10) + 0x1d0))();\n                    }\n                    else {\n                      cVar6 = (*pcVar3)();\n                    }" if (parenthesized_expression "(pcVar3 == FUN_001b8d10)" ( (binary_expression "pcVar3 == FUN_001b8d10" identifier == identifier) )) (compound_statement "{\n                      cVar6 = (**(code **)(**(long **)(*param_1 + 0x10) + 0x1d0))();\n                    }" { (expression_statement "cVar6 = (**(code **)(**(long **)(*param_1 + 0x10) + 0x1d0))();" (assignment_expression "cVar6 = (**(code **)(**(long **)(*param_1 + 0x10) + 0x1d0))()" identifier = (call_expression "(**(code **)(**(long **)(*param_1 + 0x10) + 0x1d0))()" (parenthesized_expression "(**(code **)(**(long **)(*param_1 + 0x10) + 0x1d0))" ( (pointer_expression "**(code **)(**(long **)(*param_1 + 0x10) + 0x1d0)" * (pointer_expression "*(code **)(**(long **)(*param_1 + 0x10) + 0x1d0)" * (cast_expression "(code **)(**(long **)(*param_1 + 0x10) + 0x1d0)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(**(long **)(*param_1 + 0x10) + 0x1d0)" ( (binary_expression "**(long **)(*param_1 + 0x10) + 0x1d0" (pointer_expression "**(long **)(*param_1 + 0x10)" * (pointer_expression "*(long **)(*param_1 + 0x10)" * (cast_expression "(long **)(*param_1 + 0x10)" ( (type_descriptor "long **" (sized_type_specifier "long" long) (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(*param_1 + 0x10)" ( (binary_expression "*param_1 + 0x10" (pointer_expression "*param_1" * identifier) + number_literal) ))))) + number_literal) ))))) )) (argument_list "()" ( )))) ;) }) (else_clause "else {\n                      cVar6 = (*pcVar3)();\n                    }" else (compound_statement "{\n                      cVar6 = (*pcVar3)();\n                    }" { (expression_statement "cVar6 = (*pcVar3)();" (assignment_expression "cVar6 = (*pcVar3)()" identifier = (call_expression "(*pcVar3)()" (parenthesized_expression "(*pcVar3)" ( (pointer_expression "*pcVar3" * identifier) )) (argument_list "()" ( )))) ;) }))) (expression_statement "puStack_50 = *(uint **)local_70;" (assignment_expression "puStack_50 = *(uint **)local_70" identifier = (pointer_expression "*(uint **)local_70" * (cast_expression "(uint **)local_70" ( (type_descriptor "uint **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) identifier))) ;) (if_statement "if (cVar6 != '\0') {\n                      puStack_50 = (uint *)((ulong)puStack_50 >> 0x38 |\n                                            ((ulong)puStack_50 & 0xff000000000000) >> 0x28 |\n                                            ((ulong)puStack_50 & 0xff0000000000) >> 0x18 |\n                                            ((ulong)puStack_50 & 0xff00000000) >> 8 |\n                                            ((ulong)puStack_50 & 0xff000000) << 8 |\n                                            ((ulong)puStack_50 & 0xff0000) << 0x18 |\n                                            ((ulong)puStack_50 & 0xff00) << 0x28 |\n                                           (long)puStack_50 << 0x38);\n                    }" if (parenthesized_expression "(cVar6 != '\0')" ( (binary_expression "cVar6 != '\0'" identifier != (char_literal "'\0'" ' escape_sequence ')) )) (compound_statement "{\n                      puStack_50 = (uint *)((ulong)puStack_50 >> 0x38 |\n                                            ((ulong)puStack_50 & 0xff000000000000) >> 0x28 |\n                                            ((ulong)puStack_50 & 0xff0000000000) >> 0x18 |\n                                            ((ulong)puStack_50 & 0xff00000000) >> 8 |\n                                            ((ulong)puStack_50 & 0xff000000) << 8 |\n                                            ((ulong)puStack_50 & 0xff0000) << 0x18 |\n                                            ((ulong)puStack_50 & 0xff00) << 0x28 |\n                                           (long)puStack_50 << 0x38);\n                    }" { (expression_statement "puStack_50 = (uint *)((ulong)puStack_50 >> 0x38 |\n                                            ((ulong)puStack_50 & 0xff000000000000) >> 0x28 |\n                                            ((ulong)puStack_50 & 0xff0000000000) >> 0x18 |\n                                            ((ulong)puStack_50 & 0xff00000000) >> 8 |\n                                            ((ulong)puStack_50 & 0xff000000) << 8 |\n                                            ((ulong)puStack_50 & 0xff0000) << 0x18 |\n                                            ((ulong)puStack_50 & 0xff00) << 0x28 |\n                                           (long)puStack_50 << 0x38);" (assignment_expression "puStack_50 = (uint *)((ulong)puStack_50 >> 0x38 |\n                                            ((ulong)puStack_50 & 0xff000000000000) >> 0x28 |\n                                            ((ulong)puStack_50 & 0xff0000000000) >> 0x18 |\n                                            ((ulong)puStack_50 & 0xff00000000) >> 8 |\n                                            ((ulong)puStack_50 & 0xff000000) << 8 |\n                                            ((ulong)puStack_50 & 0xff0000) << 0x18 |\n                                            ((ulong)puStack_50 & 0xff00) << 0x28 |\n                                           (long)puStack_50 << 0x38)" identifier = (cast_expression "(uint *)((ulong)puStack_50 >> 0x38 |\n                                            ((ulong)puStack_50 & 0xff000000000000) >> 0x28 |\n                                            ((ulong)puStack_50 & 0xff0000000000) >> 0x18 |\n                                            ((ulong)puStack_50 & 0xff00000000) >> 8 |\n                                            ((ulong)puStack_50 & 0xff000000) << 8 |\n                                            ((ulong)puStack_50 & 0xff0000) << 0x18 |\n                                            ((ulong)puStack_50 & 0xff00) << 0x28 |\n                                           (long)puStack_50 << 0x38)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((ulong)puStack_50 >> 0x38 |\n                                            ((ulong)puStack_50 & 0xff000000000000) >> 0x28 |\n                                            ((ulong)puStack_50 & 0xff0000000000) >> 0x18 |\n                                            ((ulong)puStack_50 & 0xff00000000) >> 8 |\n                                            ((ulong)puStack_50 & 0xff000000) << 8 |\n                                            ((ulong)puStack_50 & 0xff0000) << 0x18 |\n                                            ((ulong)puStack_50 & 0xff00) << 0x28 |\n                                           (long)puStack_50 << 0x38)" ( (binary_expression "(ulong)puStack_50 >> 0x38 |\n                                            ((ulong)puStack_50 & 0xff000000000000) >> 0x28 |\n                                            ((ulong)puStack_50 & 0xff0000000000) >> 0x18 |\n                                            ((ulong)puStack_50 & 0xff00000000) >> 8 |\n                                            ((ulong)puStack_50 & 0xff000000) << 8 |\n                                            ((ulong)puStack_50 & 0xff0000) << 0x18 |\n                                            ((ulong)puStack_50 & 0xff00) << 0x28 |\n                                           (long)puStack_50 << 0x38" (binary_expression "(ulong)puStack_50 >> 0x38 |\n                                            ((ulong)puStack_50 & 0xff000000000000) >> 0x28 |\n                                            ((ulong)puStack_50 & 0xff0000000000) >> 0x18 |\n                                            ((ulong)puStack_50 & 0xff00000000) >> 8 |\n                                            ((ulong)puStack_50 & 0xff000000) << 8 |\n                                            ((ulong)puStack_50 & 0xff0000) << 0x18 |\n                                            ((ulong)puStack_50 & 0xff00) << 0x28" (binary_expression "(ulong)puStack_50 >> 0x38 |\n                                            ((ulong)puStack_50 & 0xff000000000000) >> 0x28 |\n                                            ((ulong)puStack_50 & 0xff0000000000) >> 0x18 |\n                                            ((ulong)puStack_50 & 0xff00000000) >> 8 |\n                                            ((ulong)puStack_50 & 0xff000000) << 8 |\n                                            ((ulong)puStack_50 & 0xff0000) << 0x18" (binary_expression "(ulong)puStack_50 >> 0x38 |\n                                            ((ulong)puStack_50 & 0xff000000000000) >> 0x28 |\n                                            ((ulong)puStack_50 & 0xff0000000000) >> 0x18 |\n                                            ((ulong)puStack_50 & 0xff00000000) >> 8 |\n                                            ((ulong)puStack_50 & 0xff000000) << 8" (binary_expression "(ulong)puStack_50 >> 0x38 |\n                                            ((ulong)puStack_50 & 0xff000000000000) >> 0x28 |\n                                            ((ulong)puStack_50 & 0xff0000000000) >> 0x18 |\n                                            ((ulong)puStack_50 & 0xff00000000) >> 8" (binary_expression "(ulong)puStack_50 >> 0x38 |\n                                            ((ulong)puStack_50 & 0xff000000000000) >> 0x28 |\n                                            ((ulong)puStack_50 & 0xff0000000000) >> 0x18" (binary_expression "(ulong)puStack_50 >> 0x38 |\n                                            ((ulong)puStack_50 & 0xff000000000000) >> 0x28" (binary_expression "(ulong)puStack_50 >> 0x38" (cast_expression "(ulong)puStack_50" ( (type_descriptor "ulong" type_identifier) ) identifier) >> number_literal) | (binary_expression "((ulong)puStack_50 & 0xff000000000000) >> 0x28" (parenthesized_expression "((ulong)puStack_50 & 0xff000000000000)" ( (binary_expression "(ulong)puStack_50 & 0xff000000000000" (cast_expression "(ulong)puStack_50" ( (type_descriptor "ulong" type_identifier) ) identifier) & number_literal) )) >> number_literal)) | (binary_expression "((ulong)puStack_50 & 0xff0000000000) >> 0x18" (parenthesized_expression "((ulong)puStack_50 & 0xff0000000000)" ( (binary_expression "(ulong)puStack_50 & 0xff0000000000" (cast_expression "(ulong)puStack_50" ( (type_descriptor "ulong" type_identifier) ) identifier) & number_literal) )) >> number_literal)) | (binary_expression "((ulong)puStack_50 & 0xff00000000) >> 8" (parenthesized_expression "((ulong)puStack_50 & 0xff00000000)" ( (binary_expression "(ulong)puStack_50 & 0xff00000000" (cast_expression "(ulong)puStack_50" ( (type_descriptor "ulong" type_identifier) ) identifier) & number_literal) )) >> number_literal)) | (binary_expression "((ulong)puStack_50 & 0xff000000) << 8" (parenthesized_expression "((ulong)puStack_50 & 0xff000000)" ( (binary_expression "(ulong)puStack_50 & 0xff000000" (cast_expression "(ulong)puStack_50" ( (type_descriptor "ulong" type_identifier) ) identifier) & number_literal) )) << number_literal)) | (binary_expression "((ulong)puStack_50 & 0xff0000) << 0x18" (parenthesized_expression "((ulong)puStack_50 & 0xff0000)" ( (binary_expression "(ulong)puStack_50 & 0xff0000" (cast_expression "(ulong)puStack_50" ( (type_descriptor "ulong" type_identifier) ) identifier) & number_literal) )) << number_literal)) | (binary_expression "((ulong)puStack_50 & 0xff00) << 0x28" (parenthesized_expression "((ulong)puStack_50 & 0xff00)" ( (binary_expression "(ulong)puStack_50 & 0xff00" (cast_expression "(ulong)puStack_50" ( (type_descriptor "ulong" type_identifier) ) identifier) & number_literal) )) << number_literal)) | (binary_expression "(long)puStack_50 << 0x38" (cast_expression "(long)puStack_50" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) identifier) << number_literal)) )))) ;) })) (expression_statement "local_70 = local_70 + 2;" (assignment_expression "local_70 = local_70 + 2" identifier = (binary_expression "local_70 + 2" identifier + number_literal)) ;) (goto_statement "goto LAB_00302ea9;" goto statement_identifier ;) })) (if_statement "if (uVar8 < 0x20) {\n                    return 0;\n                  }" if (parenthesized_expression "(uVar8 < 0x20)" ( (binary_expression "uVar8 < 0x20" identifier < number_literal) )) (compound_statement "{\n                    return 0;\n                  }" { (return_statement "return 0;" return number_literal ;) })) (if_statement "if (1 < uVar8 - 0x1f01) {\n                    return 0;\n                  }" if (parenthesized_expression "(1 < uVar8 - 0x1f01)" ( (binary_expression "1 < uVar8 - 0x1f01" number_literal < (binary_expression "uVar8 - 0x1f01" identifier - number_literal)) )) (compound_statement "{\n                    return 0;\n                  }" { (return_statement "return 0;" return number_literal ;) })) (labeled_statement "LAB_00302bcd:\n                  bVar1 = (byte)*local_70;" statement_identifier : (expression_statement "bVar1 = (byte)*local_70;" (assignment_expression "bVar1 = (byte)*local_70" identifier = (binary_expression "(byte)*local_70" (parenthesized_expression "(byte)" ( identifier )) * identifier)) ;)) (if_statement "if ((char)bVar1 < '\0') {\n                    puStack_50 = (uint *)FUN_002112d0((uint *)((long)local_70 + 1),&local_68,bVar1);\n                    local_70 = (uint *)(local_68 + (long)local_70);\n                  }\n                  else {\n                    local_68 = 1;\n                    local_70 = (uint *)((long)local_70 + 1);\n                    puStack_50 = (uint *)(ulong)bVar1;\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                    puStack_50 = (uint *)FUN_002112d0((uint *)((long)local_70 + 1),&local_68,bVar1);\n                    local_70 = (uint *)(local_68 + (long)local_70);\n                  }" { (expression_statement "puStack_50 = (uint *)FUN_002112d0((uint *)((long)local_70 + 1),&local_68,bVar1);" (assignment_expression "puStack_50 = (uint *)FUN_002112d0((uint *)((long)local_70 + 1),&local_68,bVar1)" identifier = (cast_expression "(uint *)FUN_002112d0((uint *)((long)local_70 + 1),&local_68,bVar1)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (call_expression "FUN_002112d0((uint *)((long)local_70 + 1),&local_68,bVar1)" identifier (argument_list "((uint *)((long)local_70 + 1),&local_68,bVar1)" ( (cast_expression "(uint *)((long)local_70 + 1)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((long)local_70 + 1)" ( (binary_expression "(long)local_70 + 1" (cast_expression "(long)local_70" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) identifier) + number_literal) ))) , (pointer_expression "&local_68" & identifier) , identifier ))))) ;) (expression_statement "local_70 = (uint *)(local_68 + (long)local_70);" (assignment_expression "local_70 = (uint *)(local_68 + (long)local_70)" identifier = (cast_expression "(uint *)(local_68 + (long)local_70)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(local_68 + (long)local_70)" ( (binary_expression "local_68 + (long)local_70" identifier + (cast_expression "(long)local_70" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) identifier)) )))) ;) }) (else_clause "else {\n                    local_68 = 1;\n                    local_70 = (uint *)((long)local_70 + 1);\n                    puStack_50 = (uint *)(ulong)bVar1;\n                  }" else (compound_statement "{\n                    local_68 = 1;\n                    local_70 = (uint *)((long)local_70 + 1);\n                    puStack_50 = (uint *)(ulong)bVar1;\n                  }" { (expression_statement "local_68 = 1;" (assignment_expression "local_68 = 1" identifier = number_literal) ;) (expression_statement "local_70 = (uint *)((long)local_70 + 1);" (assignment_expression "local_70 = (uint *)((long)local_70 + 1)" identifier = (cast_expression "(uint *)((long)local_70 + 1)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((long)local_70 + 1)" ( (binary_expression "(long)local_70 + 1" (cast_expression "(long)local_70" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) identifier) + number_literal) )))) ;) (expression_statement "puStack_50 = (uint *)(ulong)bVar1;" (assignment_expression "puStack_50 = (uint *)(ulong)bVar1" identifier = (cast_expression "(uint *)(ulong)bVar1" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (cast_expression "(ulong)bVar1" ( (type_descriptor "ulong" type_identifier) ) identifier))) ;) }))) }))) (labeled_statement "LAB_00302f92:\n                if (uVar2 == 0x31) goto LAB_00302750;" statement_identifier : (if_statement "if (uVar2 == 0x31) goto LAB_00302750;" if (parenthesized_expression "(uVar2 == 0x31)" ( (binary_expression "uVar2 == 0x31" identifier == number_literal) )) (goto_statement "goto LAB_00302750;" goto statement_identifier ;))) (if_statement "if (0x31 < uVar2) {\n                  if ((uVar2 == 0x6e) || (uVar2 == 0x2007)) goto LAB_00302fb5;\n                  goto LAB_00302750;\n                }" if (parenthesized_expression "(0x31 < uVar2)" ( (binary_expression "0x31 < uVar2" number_literal < identifier) )) (compound_statement "{\n                  if ((uVar2 == 0x6e) || (uVar2 == 0x2007)) goto LAB_00302fb5;\n                  goto LAB_00302750;\n                }" { (if_statement "if ((uVar2 == 0x6e) || (uVar2 == 0x2007)) goto LAB_00302fb5;" if (parenthesized_expression "((uVar2 == 0x6e) || (uVar2 == 0x2007))" ( (binary_expression "(uVar2 == 0x6e) || (uVar2 == 0x2007)" (parenthesized_expression "(uVar2 == 0x6e)" ( (binary_expression "uVar2 == 0x6e" identifier == number_literal) )) || (parenthesized_expression "(uVar2 == 0x2007)" ( (binary_expression "uVar2 == 0x2007" identifier == number_literal) ))) )) (goto_statement "goto LAB_00302fb5;" goto statement_identifier ;)) (goto_statement "goto LAB_00302750;" goto statement_identifier ;) })) (goto_statement "goto LAB_00302e3e;" goto statement_identifier ;) })) (expression_statement "puStack_50 = (uint *)0x1;" (assignment_expression "puStack_50 = (uint *)0x1" identifier = (cast_expression "(uint *)0x1" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (labeled_statement "LAB_00302ea9:\n              if (((uVar2 == 0x31) || (0x31 < uVar2)) || (uVar2 != 3)) goto LAB_00302750;" statement_identifier : (if_statement "if (((uVar2 == 0x31) || (0x31 < uVar2)) || (uVar2 != 3)) goto LAB_00302750;" if (parenthesized_expression "(((uVar2 == 0x31) || (0x31 < uVar2)) || (uVar2 != 3))" ( (binary_expression "((uVar2 == 0x31) || (0x31 < uVar2)) || (uVar2 != 3)" (parenthesized_expression "((uVar2 == 0x31) || (0x31 < uVar2))" ( (binary_expression "(uVar2 == 0x31) || (0x31 < uVar2)" (parenthesized_expression "(uVar2 == 0x31)" ( (binary_expression "uVar2 == 0x31" identifier == number_literal) )) || (parenthesized_expression "(0x31 < uVar2)" ( (binary_expression "0x31 < uVar2" number_literal < identifier) ))) )) || (parenthesized_expression "(uVar2 != 3)" ( (binary_expression "uVar2 != 3" identifier != number_literal) ))) )) (goto_statement "goto LAB_00302750;" goto statement_identifier ;))) (labeled_statement "LAB_00302e52:\n              if (uVar8 == 8) {\nLAB_003029c7:\n                param_1[0xb] = (long)puStack_50;\n              }\n              else if (uVar8 == 0xe) goto LAB_00302f64;" statement_identifier : (if_statement "if (uVar8 == 8) {\nLAB_003029c7:\n                param_1[0xb] = (long)puStack_50;\n              }\n              else if (uVar8 == 0xe) goto LAB_00302f64;" if (parenthesized_expression "(uVar8 == 8)" ( (binary_expression "uVar8 == 8" identifier == number_literal) )) (compound_statement "{\nLAB_003029c7:\n                param_1[0xb] = (long)puStack_50;\n              }" { (labeled_statement "LAB_003029c7:\n                param_1[0xb] = (long)puStack_50;" statement_identifier : (expression_statement "param_1[0xb] = (long)puStack_50;" (assignment_expression "param_1[0xb] = (long)puStack_50" (subscript_expression "param_1[0xb]" identifier [ number_literal ]) = (cast_expression "(long)puStack_50" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) identifier)) ;)) }) (else_clause "else if (uVar8 == 0xe) goto LAB_00302f64;" else (if_statement "if (uVar8 == 0xe) goto LAB_00302f64;" if (parenthesized_expression "(uVar8 == 0xe)" ( (binary_expression "uVar8 == 0xe" identifier == number_literal) )) (goto_statement "goto LAB_00302f64;" goto statement_identifier ;))))) (goto_statement "goto LAB_00302750;" goto statement_identifier ;) })) (if_statement "if (uVar8 != 0x11) {\n              if (0x11 < uVar8) {\n                if (uVar8 == 0x13) {\n                  uVar9 = FUN_00305610(*param_1,&local_70);\n                  local_60 = (uint *)(ulong)uVar9;\n                  goto LAB_00303035;\n                }\n                if (0x13 < uVar8) {\n                  plVar17 = *(long **)(*param_1 + 0x10);\n                  goto LAB_00302fe7;\n                }\n                pcVar3 = *(code **)(**(long **)(*param_1 + 0x10) + 0x18);\n                if (pcVar3 == FUN_001b8d10) {\n                  cVar6 = (**(code **)(**(long **)(*param_1 + 0x10) + 0x1d0))();\n                }\n                else {\n                  cVar6 = (*pcVar3)();\n                }\n                uVar5 = (ushort)*local_70;\n                if (cVar6 != '\0') {\n                  uVar5 = CONCAT11((byte)*local_70,*(byte *)((long)local_70 + 1));\n                }\n                local_70 = (uint *)((long)local_70 + 2);\n                puStack_50 = (uint *)(ulong)uVar5;\n                goto joined_r0x00303052;\n              }\n              if (uVar8 == 0xf) goto LAB_00302bcd;\n              if (uVar8 != 0x10) {\n                return 0;\n              }\n              lVar10 = *param_1;\n              iVar7 = *(int *)(lVar10 + 100);\n              if (2 < *(uint *)(lVar10 + 0x68)) {\n                iVar7 = *(int *)(lVar10 + 0x60);\n              }\n              if (iVar7 != 4) goto LAB_00302a71;\nLAB_00302e7d:\n              uVar8 = FUN_00305610(lVar10,&local_70);\n              local_60 = (uint *)(ulong)uVar8;\nLAB_00302abe:\n              local_48 = FUN_00301dc0(*param_1,pbVar15,&local_60);\n              puStack_50 = local_60;\n              if (uVar2 == 0x31) goto LAB_00302965;\n              if (0x31 < uVar2) goto joined_r0x00302ccc;\n              goto LAB_00302c20;\n            }" if (parenthesized_expression "(uVar8 != 0x11)" ( (binary_expression "uVar8 != 0x11" identifier != number_literal) )) (compound_statement "{\n              if (0x11 < uVar8) {\n                if (uVar8 == 0x13) {\n                  uVar9 = FUN_00305610(*param_1,&local_70);\n                  local_60 = (uint *)(ulong)uVar9;\n                  goto LAB_00303035;\n                }\n                if (0x13 < uVar8) {\n                  plVar17 = *(long **)(*param_1 + 0x10);\n                  goto LAB_00302fe7;\n                }\n                pcVar3 = *(code **)(**(long **)(*param_1 + 0x10) + 0x18);\n                if (pcVar3 == FUN_001b8d10) {\n                  cVar6 = (**(code **)(**(long **)(*param_1 + 0x10) + 0x1d0))();\n                }\n                else {\n                  cVar6 = (*pcVar3)();\n                }\n                uVar5 = (ushort)*local_70;\n                if (cVar6 != '\0') {\n                  uVar5 = CONCAT11((byte)*local_70,*(byte *)((long)local_70 + 1));\n                }\n                local_70 = (uint *)((long)local_70 + 2);\n                puStack_50 = (uint *)(ulong)uVar5;\n                goto joined_r0x00303052;\n              }\n              if (uVar8 == 0xf) goto LAB_00302bcd;\n              if (uVar8 != 0x10) {\n                return 0;\n              }\n              lVar10 = *param_1;\n              iVar7 = *(int *)(lVar10 + 100);\n              if (2 < *(uint *)(lVar10 + 0x68)) {\n                iVar7 = *(int *)(lVar10 + 0x60);\n              }\n              if (iVar7 != 4) goto LAB_00302a71;\nLAB_00302e7d:\n              uVar8 = FUN_00305610(lVar10,&local_70);\n              local_60 = (uint *)(ulong)uVar8;\nLAB_00302abe:\n              local_48 = FUN_00301dc0(*param_1,pbVar15,&local_60);\n              puStack_50 = local_60;\n              if (uVar2 == 0x31) goto LAB_00302965;\n              if (0x31 < uVar2) goto joined_r0x00302ccc;\n              goto LAB_00302c20;\n            }" { (if_statement "if (0x11 < uVar8) {\n                if (uVar8 == 0x13) {\n                  uVar9 = FUN_00305610(*param_1,&local_70);\n                  local_60 = (uint *)(ulong)uVar9;\n                  goto LAB_00303035;\n                }\n                if (0x13 < uVar8) {\n                  plVar17 = *(long **)(*param_1 + 0x10);\n                  goto LAB_00302fe7;\n                }\n                pcVar3 = *(code **)(**(long **)(*param_1 + 0x10) + 0x18);\n                if (pcVar3 == FUN_001b8d10) {\n                  cVar6 = (**(code **)(**(long **)(*param_1 + 0x10) + 0x1d0))();\n                }\n                else {\n                  cVar6 = (*pcVar3)();\n                }\n                uVar5 = (ushort)*local_70;\n                if (cVar6 != '\0') {\n                  uVar5 = CONCAT11((byte)*local_70,*(byte *)((long)local_70 + 1));\n                }\n                local_70 = (uint *)((long)local_70 + 2);\n                puStack_50 = (uint *)(ulong)uVar5;\n                goto joined_r0x00303052;\n              }" if (parenthesized_expression "(0x11 < uVar8)" ( (binary_expression "0x11 < uVar8" number_literal < identifier) )) (compound_statement "{\n                if (uVar8 == 0x13) {\n                  uVar9 = FUN_00305610(*param_1,&local_70);\n                  local_60 = (uint *)(ulong)uVar9;\n                  goto LAB_00303035;\n                }\n                if (0x13 < uVar8) {\n                  plVar17 = *(long **)(*param_1 + 0x10);\n                  goto LAB_00302fe7;\n                }\n                pcVar3 = *(code **)(**(long **)(*param_1 + 0x10) + 0x18);\n                if (pcVar3 == FUN_001b8d10) {\n                  cVar6 = (**(code **)(**(long **)(*param_1 + 0x10) + 0x1d0))();\n                }\n                else {\n                  cVar6 = (*pcVar3)();\n                }\n                uVar5 = (ushort)*local_70;\n                if (cVar6 != '\0') {\n                  uVar5 = CONCAT11((byte)*local_70,*(byte *)((long)local_70 + 1));\n                }\n                local_70 = (uint *)((long)local_70 + 2);\n                puStack_50 = (uint *)(ulong)uVar5;\n                goto joined_r0x00303052;\n              }" { (if_statement "if (uVar8 == 0x13) {\n                  uVar9 = FUN_00305610(*param_1,&local_70);\n                  local_60 = (uint *)(ulong)uVar9;\n                  goto LAB_00303035;\n                }" if (parenthesized_expression "(uVar8 == 0x13)" ( (binary_expression "uVar8 == 0x13" identifier == number_literal) )) (compound_statement "{\n                  uVar9 = FUN_00305610(*param_1,&local_70);\n                  local_60 = (uint *)(ulong)uVar9;\n                  goto LAB_00303035;\n                }" { (expression_statement "uVar9 = FUN_00305610(*param_1,&local_70);" (assignment_expression "uVar9 = FUN_00305610(*param_1,&local_70)" identifier = (call_expression "FUN_00305610(*param_1,&local_70)" identifier (argument_list "(*param_1,&local_70)" ( (pointer_expression "*param_1" * identifier) , (pointer_expression "&local_70" & identifier) )))) ;) (expression_statement "local_60 = (uint *)(ulong)uVar9;" (assignment_expression "local_60 = (uint *)(ulong)uVar9" identifier = (cast_expression "(uint *)(ulong)uVar9" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (cast_expression "(ulong)uVar9" ( (type_descriptor "ulong" type_identifier) ) identifier))) ;) (goto_statement "goto LAB_00303035;" goto statement_identifier ;) })) (if_statement "if (0x13 < uVar8) {\n                  plVar17 = *(long **)(*param_1 + 0x10);\n                  goto LAB_00302fe7;\n                }" if (parenthesized_expression "(0x13 < uVar8)" ( (binary_expression "0x13 < uVar8" number_literal < identifier) )) (compound_statement "{\n                  plVar17 = *(long **)(*param_1 + 0x10);\n                  goto LAB_00302fe7;\n                }" { (expression_statement "plVar17 = *(long **)(*param_1 + 0x10);" (assignment_expression "plVar17 = *(long **)(*param_1 + 0x10)" identifier = (pointer_expression "*(long **)(*param_1 + 0x10)" * (cast_expression "(long **)(*param_1 + 0x10)" ( (type_descriptor "long **" (sized_type_specifier "long" long) (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(*param_1 + 0x10)" ( (binary_expression "*param_1 + 0x10" (pointer_expression "*param_1" * identifier) + number_literal) ))))) ;) (goto_statement "goto LAB_00302fe7;" goto statement_identifier ;) })) (expression_statement "pcVar3 = *(code **)(**(long **)(*param_1 + 0x10) + 0x18);" (assignment_expression "pcVar3 = *(code **)(**(long **)(*param_1 + 0x10) + 0x18)" identifier = (pointer_expression "*(code **)(**(long **)(*param_1 + 0x10) + 0x18)" * (cast_expression "(code **)(**(long **)(*param_1 + 0x10) + 0x18)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(**(long **)(*param_1 + 0x10) + 0x18)" ( (binary_expression "**(long **)(*param_1 + 0x10) + 0x18" (pointer_expression "**(long **)(*param_1 + 0x10)" * (pointer_expression "*(long **)(*param_1 + 0x10)" * (cast_expression "(long **)(*param_1 + 0x10)" ( (type_descriptor "long **" (sized_type_specifier "long" long) (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(*param_1 + 0x10)" ( (binary_expression "*param_1 + 0x10" (pointer_expression "*param_1" * identifier) + number_literal) ))))) + number_literal) ))))) ;) (if_statement "if (pcVar3 == FUN_001b8d10) {\n                  cVar6 = (**(code **)(**(long **)(*param_1 + 0x10) + 0x1d0))();\n                }\n                else {\n                  cVar6 = (*pcVar3)();\n                }" if (parenthesized_expression "(pcVar3 == FUN_001b8d10)" ( (binary_expression "pcVar3 == FUN_001b8d10" identifier == identifier) )) (compound_statement "{\n                  cVar6 = (**(code **)(**(long **)(*param_1 + 0x10) + 0x1d0))();\n                }" { (expression_statement "cVar6 = (**(code **)(**(long **)(*param_1 + 0x10) + 0x1d0))();" (assignment_expression "cVar6 = (**(code **)(**(long **)(*param_1 + 0x10) + 0x1d0))()" identifier = (call_expression "(**(code **)(**(long **)(*param_1 + 0x10) + 0x1d0))()" (parenthesized_expression "(**(code **)(**(long **)(*param_1 + 0x10) + 0x1d0))" ( (pointer_expression "**(code **)(**(long **)(*param_1 + 0x10) + 0x1d0)" * (pointer_expression "*(code **)(**(long **)(*param_1 + 0x10) + 0x1d0)" * (cast_expression "(code **)(**(long **)(*param_1 + 0x10) + 0x1d0)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(**(long **)(*param_1 + 0x10) + 0x1d0)" ( (binary_expression "**(long **)(*param_1 + 0x10) + 0x1d0" (pointer_expression "**(long **)(*param_1 + 0x10)" * (pointer_expression "*(long **)(*param_1 + 0x10)" * (cast_expression "(long **)(*param_1 + 0x10)" ( (type_descriptor "long **" (sized_type_specifier "long" long) (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(*param_1 + 0x10)" ( (binary_expression "*param_1 + 0x10" (pointer_expression "*param_1" * identifier) + number_literal) ))))) + number_literal) ))))) )) (argument_list "()" ( )))) ;) }) (else_clause "else {\n                  cVar6 = (*pcVar3)();\n                }" else (compound_statement "{\n                  cVar6 = (*pcVar3)();\n                }" { (expression_statement "cVar6 = (*pcVar3)();" (assignment_expression "cVar6 = (*pcVar3)()" identifier = (call_expression "(*pcVar3)()" (parenthesized_expression "(*pcVar3)" ( (pointer_expression "*pcVar3" * identifier) )) (argument_list "()" ( )))) ;) }))) (expression_statement "uVar5 = (ushort)*local_70;" (assignment_expression "uVar5 = (ushort)*local_70" identifier = (binary_expression "(ushort)*local_70" (parenthesized_expression "(ushort)" ( identifier )) * identifier)) ;) (if_statement "if (cVar6 != '\0') {\n                  uVar5 = CONCAT11((byte)*local_70,*(byte *)((long)local_70 + 1));\n                }" if (parenthesized_expression "(cVar6 != '\0')" ( (binary_expression "cVar6 != '\0'" identifier != (char_literal "'\0'" ' escape_sequence ')) )) (compound_statement "{\n                  uVar5 = CONCAT11((byte)*local_70,*(byte *)((long)local_70 + 1));\n                }" { (expression_statement "uVar5 = CONCAT11((byte)*local_70,*(byte *)((long)local_70 + 1));" (assignment_expression "uVar5 = CONCAT11((byte)*local_70,*(byte *)((long)local_70 + 1))" identifier = (call_expression "CONCAT11((byte)*local_70,*(byte *)((long)local_70 + 1))" identifier (argument_list "((byte)*local_70,*(byte *)((long)local_70 + 1))" ( (binary_expression "(byte)*local_70" (parenthesized_expression "(byte)" ( identifier )) * identifier) , (pointer_expression "*(byte *)((long)local_70 + 1)" * (cast_expression "(byte *)((long)local_70 + 1)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((long)local_70 + 1)" ( (binary_expression "(long)local_70 + 1" (cast_expression "(long)local_70" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) identifier) + number_literal) )))) )))) ;) })) (expression_statement "local_70 = (uint *)((long)local_70 + 2);" (assignment_expression "local_70 = (uint *)((long)local_70 + 2)" identifier = (cast_expression "(uint *)((long)local_70 + 2)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((long)local_70 + 2)" ( (binary_expression "(long)local_70 + 2" (cast_expression "(long)local_70" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) identifier) + number_literal) )))) ;) (expression_statement "puStack_50 = (uint *)(ulong)uVar5;" (assignment_expression "puStack_50 = (uint *)(ulong)uVar5" identifier = (cast_expression "(uint *)(ulong)uVar5" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (cast_expression "(ulong)uVar5" ( (type_descriptor "ulong" type_identifier) ) identifier))) ;) (goto_statement "goto joined_r0x00303052;" goto statement_identifier ;) })) (if_statement "if (uVar8 == 0xf) goto LAB_00302bcd;" if (parenthesized_expression "(uVar8 == 0xf)" ( (binary_expression "uVar8 == 0xf" identifier == number_literal) )) (goto_statement "goto LAB_00302bcd;" goto statement_identifier ;)) (if_statement "if (uVar8 != 0x10) {\n                return 0;\n              }" if (parenthesized_expression "(uVar8 != 0x10)" ( (binary_expression "uVar8 != 0x10" identifier != number_literal) )) (compound_statement "{\n                return 0;\n              }" { (return_statement "return 0;" return number_literal ;) })) (expression_statement "lVar10 = *param_1;" (assignment_expression "lVar10 = *param_1" identifier = (pointer_expression "*param_1" * identifier)) ;) (expression_statement "iVar7 = *(int *)(lVar10 + 100);" (assignment_expression "iVar7 = *(int *)(lVar10 + 100)" identifier = (pointer_expression "*(int *)(lVar10 + 100)" * (cast_expression "(int *)(lVar10 + 100)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(lVar10 + 100)" ( (binary_expression "lVar10 + 100" identifier + number_literal) ))))) ;) (if_statement "if (2 < *(uint *)(lVar10 + 0x68)) {\n                iVar7 = *(int *)(lVar10 + 0x60);\n              }" if (parenthesized_expression "(2 < *(uint *)(lVar10 + 0x68))" ( (binary_expression "2 < *(uint *)(lVar10 + 0x68)" number_literal < (pointer_expression "*(uint *)(lVar10 + 0x68)" * (cast_expression "(uint *)(lVar10 + 0x68)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(lVar10 + 0x68)" ( (binary_expression "lVar10 + 0x68" identifier + number_literal) ))))) )) (compound_statement "{\n                iVar7 = *(int *)(lVar10 + 0x60);\n              }" { (expression_statement "iVar7 = *(int *)(lVar10 + 0x60);" (assignment_expression "iVar7 = *(int *)(lVar10 + 0x60)" identifier = (pointer_expression "*(int *)(lVar10 + 0x60)" * (cast_expression "(int *)(lVar10 + 0x60)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(lVar10 + 0x60)" ( (binary_expression "lVar10 + 0x60" identifier + number_literal) ))))) ;) })) (if_statement "if (iVar7 != 4) goto LAB_00302a71;" if (parenthesized_expression "(iVar7 != 4)" ( (binary_expression "iVar7 != 4" identifier != number_literal) )) (goto_statement "goto LAB_00302a71;" goto statement_identifier ;)) (labeled_statement "LAB_00302e7d:\n              uVar8 = FUN_00305610(lVar10,&local_70);" statement_identifier : (expression_statement "uVar8 = FUN_00305610(lVar10,&local_70);" (assignment_expression "uVar8 = FUN_00305610(lVar10,&local_70)" identifier = (call_expression "FUN_00305610(lVar10,&local_70)" identifier (argument_list "(lVar10,&local_70)" ( identifier , (pointer_expression "&local_70" & identifier) )))) ;)) (expression_statement "local_60 = (uint *)(ulong)uVar8;" (assignment_expression "local_60 = (uint *)(ulong)uVar8" identifier = (cast_expression "(uint *)(ulong)uVar8" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (cast_expression "(ulong)uVar8" ( (type_descriptor "ulong" type_identifier) ) identifier))) ;) (labeled_statement "LAB_00302abe:\n              local_48 = FUN_00301dc0(*param_1,pbVar15,&local_60);" statement_identifier : (expression_statement "local_48 = FUN_00301dc0(*param_1,pbVar15,&local_60);" (assignment_expression "local_48 = FUN_00301dc0(*param_1,pbVar15,&local_60)" identifier = (call_expression "FUN_00301dc0(*param_1,pbVar15,&local_60)" identifier (argument_list "(*param_1,pbVar15,&local_60)" ( (pointer_expression "*param_1" * identifier) , identifier , (pointer_expression "&local_60" & identifier) )))) ;)) (expression_statement "puStack_50 = local_60;" (assignment_expression "puStack_50 = local_60" identifier = identifier) ;) (if_statement "if (uVar2 == 0x31) goto LAB_00302965;" if (parenthesized_expression "(uVar2 == 0x31)" ( (binary_expression "uVar2 == 0x31" identifier == number_literal) )) (goto_statement "goto LAB_00302965;" goto statement_identifier ;)) (if_statement "if (0x31 < uVar2) goto joined_r0x00302ccc;" if (parenthesized_expression "(0x31 < uVar2)" ( (binary_expression "0x31 < uVar2" number_literal < identifier) )) (goto_statement "goto joined_r0x00302ccc;" goto statement_identifier ;)) (goto_statement "goto LAB_00302c20;" goto statement_identifier ;) })) (expression_statement "puVar11 = (uint *)((long)local_70 + 1);" (assignment_expression "puVar11 = (uint *)((long)local_70 + 1)" identifier = (cast_expression "(uint *)((long)local_70 + 1)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((long)local_70 + 1)" ( (binary_expression "(long)local_70 + 1" (cast_expression "(long)local_70" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) identifier) + number_literal) )))) ;) (expression_statement "puStack_50 = (uint *)(ulong)(byte)*local_70;" (assignment_expression "puStack_50 = (uint *)(ulong)(byte)*local_70" identifier = (binary_expression "(uint *)(ulong)(byte)*local_70" (cast_expression "(uint *)(ulong)(byte)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (call_expression "(ulong)(byte)" (parenthesized_expression "(ulong)" ( identifier )) (argument_list "(byte)" ( identifier )))) * identifier)) ;) (expression_statement "local_70 = puVar11;" (assignment_expression "local_70 = puVar11" identifier = identifier) ;) (if_statement "if (uVar2 != 0x31) {\n              if (uVar2 < 0x32) {\n                if (uVar2 == 1) {\n                  param_1[5] = (long)puStack_50;\n                }\n                goto LAB_00302750;\n              }\njoined_r0x00302ccc:\n              if ((uVar2 == 0x6e) || (uVar2 == 0x2007)) goto LAB_00302750;\n              goto joined_r0x00302ce3;\n            }" if (parenthesized_expression "(uVar2 != 0x31)" ( (binary_expression "uVar2 != 0x31" identifier != number_literal) )) (compound_statement "{\n              if (uVar2 < 0x32) {\n                if (uVar2 == 1) {\n                  param_1[5] = (long)puStack_50;\n                }\n                goto LAB_00302750;\n              }\njoined_r0x00302ccc:\n              if ((uVar2 == 0x6e) || (uVar2 == 0x2007)) goto LAB_00302750;\n              goto joined_r0x00302ce3;\n            }" { (if_statement "if (uVar2 < 0x32) {\n                if (uVar2 == 1) {\n                  param_1[5] = (long)puStack_50;\n                }\n                goto LAB_00302750;\n              }" if (parenthesized_expression "(uVar2 < 0x32)" ( (binary_expression "uVar2 < 0x32" identifier < number_literal) )) (compound_statement "{\n                if (uVar2 == 1) {\n                  param_1[5] = (long)puStack_50;\n                }\n                goto LAB_00302750;\n              }" { (if_statement "if (uVar2 == 1) {\n                  param_1[5] = (long)puStack_50;\n                }" if (parenthesized_expression "(uVar2 == 1)" ( (binary_expression "uVar2 == 1" identifier == number_literal) )) (compound_statement "{\n                  param_1[5] = (long)puStack_50;\n                }" { (expression_statement "param_1[5] = (long)puStack_50;" (assignment_expression "param_1[5] = (long)puStack_50" (subscript_expression "param_1[5]" identifier [ number_literal ]) = (cast_expression "(long)puStack_50" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) identifier)) ;) })) (goto_statement "goto LAB_00302750;" goto statement_identifier ;) })) (labeled_statement "joined_r0x00302ccc:\n              if ((uVar2 == 0x6e) || (uVar2 == 0x2007)) goto LAB_00302750;" statement_identifier : (if_statement "if ((uVar2 == 0x6e) || (uVar2 == 0x2007)) goto LAB_00302750;" if (parenthesized_expression "((uVar2 == 0x6e) || (uVar2 == 0x2007))" ( (binary_expression "(uVar2 == 0x6e) || (uVar2 == 0x2007)" (parenthesized_expression "(uVar2 == 0x6e)" ( (binary_expression "uVar2 == 0x6e" identifier == number_literal) )) || (parenthesized_expression "(uVar2 == 0x2007)" ( (binary_expression "uVar2 == 0x2007" identifier == number_literal) ))) )) (goto_statement "goto LAB_00302750;" goto statement_identifier ;))) (goto_statement "goto joined_r0x00302ce3;" goto statement_identifier ;) })) }))) (labeled_statement "LAB_00302965:\n          param_1[0x11] = (long)puStack_50;" statement_identifier : (expression_statement "param_1[0x11] = (long)puStack_50;" (assignment_expression "param_1[0x11] = (long)puStack_50" (subscript_expression "param_1[0x11]" identifier [ number_literal ]) = (cast_expression "(long)puStack_50" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) identifier)) ;)) (goto_statement "goto LAB_00302750;" goto statement_identifier ;) })) (if_statement "if (uVar8 == 7) {\n          pcVar3 = *(code **)(**(long **)(*param_1 + 0x10) + 0x18);\n          if (pcVar3 == FUN_001b8d10) {\n            cVar6 = (**(code **)(**(long **)(*param_1 + 0x10) + 0x1d0))();\n          }\n          else {\n            cVar6 = (*pcVar3)();\n          }\n          local_60 = *(uint **)local_70;\n          if (cVar6 != '\0') {\n            local_60 = (uint *)((ulong)local_60 >> 0x38 |\n                                ((ulong)local_60 & 0xff000000000000) >> 0x28 |\n                                ((ulong)local_60 & 0xff0000000000) >> 0x18 |\n                                ((ulong)local_60 & 0xff00000000) >> 8 |\n                                ((ulong)local_60 & 0xff000000) << 8 |\n                                ((ulong)local_60 & 0xff0000) << 0x18 |\n                                ((ulong)local_60 & 0xff00) << 0x28 | (long)local_60 << 0x38);\n          }\n          local_70 = local_70 + 2;\nLAB_00302d40:\n          local_48 = FUN_00301dc0(*param_1,pbVar15,&local_60);\n          puStack_50 = local_60;\njoined_r0x00302748:\n          if ((uVar2 != 0x31) && (uVar2 < 0x32)) {\nLAB_00302e3e:\n            if ((uVar2 != 1) && (uVar2 == 3)) goto LAB_00302e52;\n          }\n          goto LAB_00302750;\n        }" if (parenthesized_expression "(uVar8 == 7)" ( (binary_expression "uVar8 == 7" identifier == number_literal) )) (compound_statement "{\n          pcVar3 = *(code **)(**(long **)(*param_1 + 0x10) + 0x18);\n          if (pcVar3 == FUN_001b8d10) {\n            cVar6 = (**(code **)(**(long **)(*param_1 + 0x10) + 0x1d0))();\n          }\n          else {\n            cVar6 = (*pcVar3)();\n          }\n          local_60 = *(uint **)local_70;\n          if (cVar6 != '\0') {\n            local_60 = (uint *)((ulong)local_60 >> 0x38 |\n                                ((ulong)local_60 & 0xff000000000000) >> 0x28 |\n                                ((ulong)local_60 & 0xff0000000000) >> 0x18 |\n                                ((ulong)local_60 & 0xff00000000) >> 8 |\n                                ((ulong)local_60 & 0xff000000) << 8 |\n                                ((ulong)local_60 & 0xff0000) << 0x18 |\n                                ((ulong)local_60 & 0xff00) << 0x28 | (long)local_60 << 0x38);\n          }\n          local_70 = local_70 + 2;\nLAB_00302d40:\n          local_48 = FUN_00301dc0(*param_1,pbVar15,&local_60);\n          puStack_50 = local_60;\njoined_r0x00302748:\n          if ((uVar2 != 0x31) && (uVar2 < 0x32)) {\nLAB_00302e3e:\n            if ((uVar2 != 1) && (uVar2 == 3)) goto LAB_00302e52;\n          }\n          goto LAB_00302750;\n        }" { (expression_statement "pcVar3 = *(code **)(**(long **)(*param_1 + 0x10) + 0x18);" (assignment_expression "pcVar3 = *(code **)(**(long **)(*param_1 + 0x10) + 0x18)" identifier = (pointer_expression "*(code **)(**(long **)(*param_1 + 0x10) + 0x18)" * (cast_expression "(code **)(**(long **)(*param_1 + 0x10) + 0x18)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(**(long **)(*param_1 + 0x10) + 0x18)" ( (binary_expression "**(long **)(*param_1 + 0x10) + 0x18" (pointer_expression "**(long **)(*param_1 + 0x10)" * (pointer_expression "*(long **)(*param_1 + 0x10)" * (cast_expression "(long **)(*param_1 + 0x10)" ( (type_descriptor "long **" (sized_type_specifier "long" long) (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(*param_1 + 0x10)" ( (binary_expression "*param_1 + 0x10" (pointer_expression "*param_1" * identifier) + number_literal) ))))) + number_literal) ))))) ;) (if_statement "if (pcVar3 == FUN_001b8d10) {\n            cVar6 = (**(code **)(**(long **)(*param_1 + 0x10) + 0x1d0))();\n          }\n          else {\n            cVar6 = (*pcVar3)();\n          }" if (parenthesized_expression "(pcVar3 == FUN_001b8d10)" ( (binary_expression "pcVar3 == FUN_001b8d10" identifier == identifier) )) (compound_statement "{\n            cVar6 = (**(code **)(**(long **)(*param_1 + 0x10) + 0x1d0))();\n          }" { (expression_statement "cVar6 = (**(code **)(**(long **)(*param_1 + 0x10) + 0x1d0))();" (assignment_expression "cVar6 = (**(code **)(**(long **)(*param_1 + 0x10) + 0x1d0))()" identifier = (call_expression "(**(code **)(**(long **)(*param_1 + 0x10) + 0x1d0))()" (parenthesized_expression "(**(code **)(**(long **)(*param_1 + 0x10) + 0x1d0))" ( (pointer_expression "**(code **)(**(long **)(*param_1 + 0x10) + 0x1d0)" * (pointer_expression "*(code **)(**(long **)(*param_1 + 0x10) + 0x1d0)" * (cast_expression "(code **)(**(long **)(*param_1 + 0x10) + 0x1d0)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(**(long **)(*param_1 + 0x10) + 0x1d0)" ( (binary_expression "**(long **)(*param_1 + 0x10) + 0x1d0" (pointer_expression "**(long **)(*param_1 + 0x10)" * (pointer_expression "*(long **)(*param_1 + 0x10)" * (cast_expression "(long **)(*param_1 + 0x10)" ( (type_descriptor "long **" (sized_type_specifier "long" long) (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(*param_1 + 0x10)" ( (binary_expression "*param_1 + 0x10" (pointer_expression "*param_1" * identifier) + number_literal) ))))) + number_literal) ))))) )) (argument_list "()" ( )))) ;) }) (else_clause "else {\n            cVar6 = (*pcVar3)();\n          }" else (compound_statement "{\n            cVar6 = (*pcVar3)();\n          }" { (expression_statement "cVar6 = (*pcVar3)();" (assignment_expression "cVar6 = (*pcVar3)()" identifier = (call_expression "(*pcVar3)()" (parenthesized_expression "(*pcVar3)" ( (pointer_expression "*pcVar3" * identifier) )) (argument_list "()" ( )))) ;) }))) (expression_statement "local_60 = *(uint **)local_70;" (assignment_expression "local_60 = *(uint **)local_70" identifier = (pointer_expression "*(uint **)local_70" * (cast_expression "(uint **)local_70" ( (type_descriptor "uint **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) identifier))) ;) (if_statement "if (cVar6 != '\0') {\n            local_60 = (uint *)((ulong)local_60 >> 0x38 |\n                                ((ulong)local_60 & 0xff000000000000) >> 0x28 |\n                                ((ulong)local_60 & 0xff0000000000) >> 0x18 |\n                                ((ulong)local_60 & 0xff00000000) >> 8 |\n                                ((ulong)local_60 & 0xff000000) << 8 |\n                                ((ulong)local_60 & 0xff0000) << 0x18 |\n                                ((ulong)local_60 & 0xff00) << 0x28 | (long)local_60 << 0x38);\n          }" if (parenthesized_expression "(cVar6 != '\0')" ( (binary_expression "cVar6 != '\0'" identifier != (char_literal "'\0'" ' escape_sequence ')) )) (compound_statement "{\n            local_60 = (uint *)((ulong)local_60 >> 0x38 |\n                                ((ulong)local_60 & 0xff000000000000) >> 0x28 |\n                                ((ulong)local_60 & 0xff0000000000) >> 0x18 |\n                                ((ulong)local_60 & 0xff00000000) >> 8 |\n                                ((ulong)local_60 & 0xff000000) << 8 |\n                                ((ulong)local_60 & 0xff0000) << 0x18 |\n                                ((ulong)local_60 & 0xff00) << 0x28 | (long)local_60 << 0x38);\n          }" { (expression_statement "local_60 = (uint *)((ulong)local_60 >> 0x38 |\n                                ((ulong)local_60 & 0xff000000000000) >> 0x28 |\n                                ((ulong)local_60 & 0xff0000000000) >> 0x18 |\n                                ((ulong)local_60 & 0xff00000000) >> 8 |\n                                ((ulong)local_60 & 0xff000000) << 8 |\n                                ((ulong)local_60 & 0xff0000) << 0x18 |\n                                ((ulong)local_60 & 0xff00) << 0x28 | (long)local_60 << 0x38);" (assignment_expression "local_60 = (uint *)((ulong)local_60 >> 0x38 |\n                                ((ulong)local_60 & 0xff000000000000) >> 0x28 |\n                                ((ulong)local_60 & 0xff0000000000) >> 0x18 |\n                                ((ulong)local_60 & 0xff00000000) >> 8 |\n                                ((ulong)local_60 & 0xff000000) << 8 |\n                                ((ulong)local_60 & 0xff0000) << 0x18 |\n                                ((ulong)local_60 & 0xff00) << 0x28 | (long)local_60 << 0x38)" identifier = (cast_expression "(uint *)((ulong)local_60 >> 0x38 |\n                                ((ulong)local_60 & 0xff000000000000) >> 0x28 |\n                                ((ulong)local_60 & 0xff0000000000) >> 0x18 |\n                                ((ulong)local_60 & 0xff00000000) >> 8 |\n                                ((ulong)local_60 & 0xff000000) << 8 |\n                                ((ulong)local_60 & 0xff0000) << 0x18 |\n                                ((ulong)local_60 & 0xff00) << 0x28 | (long)local_60 << 0x38)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((ulong)local_60 >> 0x38 |\n                                ((ulong)local_60 & 0xff000000000000) >> 0x28 |\n                                ((ulong)local_60 & 0xff0000000000) >> 0x18 |\n                                ((ulong)local_60 & 0xff00000000) >> 8 |\n                                ((ulong)local_60 & 0xff000000) << 8 |\n                                ((ulong)local_60 & 0xff0000) << 0x18 |\n                                ((ulong)local_60 & 0xff00) << 0x28 | (long)local_60 << 0x38)" ( (binary_expression "(ulong)local_60 >> 0x38 |\n                                ((ulong)local_60 & 0xff000000000000) >> 0x28 |\n                                ((ulong)local_60 & 0xff0000000000) >> 0x18 |\n                                ((ulong)local_60 & 0xff00000000) >> 8 |\n                                ((ulong)local_60 & 0xff000000) << 8 |\n                                ((ulong)local_60 & 0xff0000) << 0x18 |\n                                ((ulong)local_60 & 0xff00) << 0x28 | (long)local_60 << 0x38" (binary_expression "(ulong)local_60 >> 0x38 |\n                                ((ulong)local_60 & 0xff000000000000) >> 0x28 |\n                                ((ulong)local_60 & 0xff0000000000) >> 0x18 |\n                                ((ulong)local_60 & 0xff00000000) >> 8 |\n                                ((ulong)local_60 & 0xff000000) << 8 |\n                                ((ulong)local_60 & 0xff0000) << 0x18 |\n                                ((ulong)local_60 & 0xff00) << 0x28" (binary_expression "(ulong)local_60 >> 0x38 |\n                                ((ulong)local_60 & 0xff000000000000) >> 0x28 |\n                                ((ulong)local_60 & 0xff0000000000) >> 0x18 |\n                                ((ulong)local_60 & 0xff00000000) >> 8 |\n                                ((ulong)local_60 & 0xff000000) << 8 |\n                                ((ulong)local_60 & 0xff0000) << 0x18" (binary_expression "(ulong)local_60 >> 0x38 |\n                                ((ulong)local_60 & 0xff000000000000) >> 0x28 |\n                                ((ulong)local_60 & 0xff0000000000) >> 0x18 |\n                                ((ulong)local_60 & 0xff00000000) >> 8 |\n                                ((ulong)local_60 & 0xff000000) << 8" (binary_expression "(ulong)local_60 >> 0x38 |\n                                ((ulong)local_60 & 0xff000000000000) >> 0x28 |\n                                ((ulong)local_60 & 0xff0000000000) >> 0x18 |\n                                ((ulong)local_60 & 0xff00000000) >> 8" (binary_expression "(ulong)local_60 >> 0x38 |\n                                ((ulong)local_60 & 0xff000000000000) >> 0x28 |\n                                ((ulong)local_60 & 0xff0000000000) >> 0x18" (binary_expression "(ulong)local_60 >> 0x38 |\n                                ((ulong)local_60 & 0xff000000000000) >> 0x28" (binary_expression "(ulong)local_60 >> 0x38" (cast_expression "(ulong)local_60" ( (type_descriptor "ulong" type_identifier) ) identifier) >> number_literal) | (binary_expression "((ulong)local_60 & 0xff000000000000) >> 0x28" (parenthesized_expression "((ulong)local_60 & 0xff000000000000)" ( (binary_expression "(ulong)local_60 & 0xff000000000000" (cast_expression "(ulong)local_60" ( (type_descriptor "ulong" type_identifier) ) identifier) & number_literal) )) >> number_literal)) | (binary_expression "((ulong)local_60 & 0xff0000000000) >> 0x18" (parenthesized_expression "((ulong)local_60 & 0xff0000000000)" ( (binary_expression "(ulong)local_60 & 0xff0000000000" (cast_expression "(ulong)local_60" ( (type_descriptor "ulong" type_identifier) ) identifier) & number_literal) )) >> number_literal)) | (binary_expression "((ulong)local_60 & 0xff00000000) >> 8" (parenthesized_expression "((ulong)local_60 & 0xff00000000)" ( (binary_expression "(ulong)local_60 & 0xff00000000" (cast_expression "(ulong)local_60" ( (type_descriptor "ulong" type_identifier) ) identifier) & number_literal) )) >> number_literal)) | (binary_expression "((ulong)local_60 & 0xff000000) << 8" (parenthesized_expression "((ulong)local_60 & 0xff000000)" ( (binary_expression "(ulong)local_60 & 0xff000000" (cast_expression "(ulong)local_60" ( (type_descriptor "ulong" type_identifier) ) identifier) & number_literal) )) << number_literal)) | (binary_expression "((ulong)local_60 & 0xff0000) << 0x18" (parenthesized_expression "((ulong)local_60 & 0xff0000)" ( (binary_expression "(ulong)local_60 & 0xff0000" (cast_expression "(ulong)local_60" ( (type_descriptor "ulong" type_identifier) ) identifier) & number_literal) )) << number_literal)) | (binary_expression "((ulong)local_60 & 0xff00) << 0x28" (parenthesized_expression "((ulong)local_60 & 0xff00)" ( (binary_expression "(ulong)local_60 & 0xff00" (cast_expression "(ulong)local_60" ( (type_descriptor "ulong" type_identifier) ) identifier) & number_literal) )) << number_literal)) | (binary_expression "(long)local_60 << 0x38" (cast_expression "(long)local_60" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) identifier) << number_literal)) )))) ;) })) (expression_statement "local_70 = local_70 + 2;" (assignment_expression "local_70 = local_70 + 2" identifier = (binary_expression "local_70 + 2" identifier + number_literal)) ;) (labeled_statement "LAB_00302d40:\n          local_48 = FUN_00301dc0(*param_1,pbVar15,&local_60);" statement_identifier : (expression_statement "local_48 = FUN_00301dc0(*param_1,pbVar15,&local_60);" (assignment_expression "local_48 = FUN_00301dc0(*param_1,pbVar15,&local_60)" identifier = (call_expression "FUN_00301dc0(*param_1,pbVar15,&local_60)" identifier (argument_list "(*param_1,pbVar15,&local_60)" ( (pointer_expression "*param_1" * identifier) , identifier , (pointer_expression "&local_60" & identifier) )))) ;)) (expression_statement "puStack_50 = local_60;" (assignment_expression "puStack_50 = local_60" identifier = identifier) ;) (labeled_statement "joined_r0x00302748:\n          if ((uVar2 != 0x31) && (uVar2 < 0x32)) {\nLAB_00302e3e:\n            if ((uVar2 != 1) && (uVar2 == 3)) goto LAB_00302e52;\n          }" statement_identifier : (if_statement "if ((uVar2 != 0x31) && (uVar2 < 0x32)) {\nLAB_00302e3e:\n            if ((uVar2 != 1) && (uVar2 == 3)) goto LAB_00302e52;\n          }" if (parenthesized_expression "((uVar2 != 0x31) && (uVar2 < 0x32))" ( (binary_expression "(uVar2 != 0x31) && (uVar2 < 0x32)" (parenthesized_expression "(uVar2 != 0x31)" ( (binary_expression "uVar2 != 0x31" identifier != number_literal) )) && (parenthesized_expression "(uVar2 < 0x32)" ( (binary_expression "uVar2 < 0x32" identifier < number_literal) ))) )) (compound_statement "{\nLAB_00302e3e:\n            if ((uVar2 != 1) && (uVar2 == 3)) goto LAB_00302e52;\n          }" { (labeled_statement "LAB_00302e3e:\n            if ((uVar2 != 1) && (uVar2 == 3)) goto LAB_00302e52;" statement_identifier : (if_statement "if ((uVar2 != 1) && (uVar2 == 3)) goto LAB_00302e52;" if (parenthesized_expression "((uVar2 != 1) && (uVar2 == 3))" ( (binary_expression "(uVar2 != 1) && (uVar2 == 3)" (parenthesized_expression "(uVar2 != 1)" ( (binary_expression "uVar2 != 1" identifier != number_literal) )) && (parenthesized_expression "(uVar2 == 3)" ( (binary_expression "uVar2 == 3" identifier == number_literal) ))) )) (goto_statement "goto LAB_00302e52;" goto statement_identifier ;))) }))) (goto_statement "goto LAB_00302750;" goto statement_identifier ;) })) (if_statement "if (uVar8 < 8) {\n          if (uVar8 == 4) {\n            pcVar3 = *(code **)(**(long **)(*param_1 + 0x10) + 0x18);\n            if (pcVar3 == FUN_001b8d10) {\n              cVar6 = (**(code **)(**(long **)(*param_1 + 0x10) + 0x1d0))();\n            }\n            else {\n              cVar6 = (*pcVar3)();\n            }\n            local_48 = *local_70;\n            if (cVar6 != '\0') {\n              local_48 = local_48 >> 0x18 | (local_48 & 0xff0000) >> 8 | (local_48 & 0xff00) << 8 |\n                         local_48 << 0x18;\n            }\n            puStack_50 = local_70 + 1;\n            local_70 = (uint *)((long)puStack_50 + (ulong)local_48);\n          }\n          else if (uVar8 < 5) {\n            if (uVar8 == 1) {\n              lVar10 = *param_1;\n              if (*(int *)(lVar10 + 100) == 4) goto LAB_00302e7d;\nLAB_00302a71:\n              pcVar3 = *(code **)(**(long **)(lVar10 + 0x10) + 0x18);\n              if (pcVar3 == FUN_001b8d10) {\n                cVar6 = (**(code **)(**(long **)(lVar10 + 0x10) + 0x1d0))();\n              }\n              else {\n                cVar6 = (*pcVar3)();\n              }\n              local_60 = *(uint **)local_70;\n              if (cVar6 != '\0') {\n                local_60 = (uint *)((ulong)local_60 >> 0x38 |\n                                    ((ulong)local_60 & 0xff000000000000) >> 0x28 |\n                                    ((ulong)local_60 & 0xff0000000000) >> 0x18 |\n                                    ((ulong)local_60 & 0xff00000000) >> 8 |\n                                    ((ulong)local_60 & 0xff000000) << 8 |\n                                    ((ulong)local_60 & 0xff0000) << 0x18 |\n                                    ((ulong)local_60 & 0xff00) << 0x28 | (long)local_60 << 0x38);\n              }\n              local_70 = local_70 + 2;\n              goto LAB_00302abe;\n            }\n            if (uVar8 != 3) {\n              return 0;\n            }\n            pcVar3 = *(code **)(**(long **)(*param_1 + 0x10) + 0x18);\n            if (pcVar3 == FUN_001b8d10) {\n              cVar6 = (**(code **)(**(long **)(*param_1 + 0x10) + 0x1d0))();\n            }\n            else {\n              cVar6 = (*pcVar3)();\n            }\n            uVar5 = (ushort)*local_70;\n            if (cVar6 != '\0') {\n              uVar5 = CONCAT11((byte)*local_70,*(byte *)((long)local_70 + 1));\n            }\n            local_48 = (uint)uVar5;\n            puStack_50 = (uint *)((long)local_70 + 2);\n            local_70 = (uint *)((long)puStack_50 + (ulong)local_48);\n          }\n          else {\n            if (uVar8 != 5) {\n              if (uVar8 != 6) {\n                return 0;\n              }\n              pcVar3 = *(code **)(**(long **)(*param_1 + 0x10) + 0x18);\n              if (pcVar3 == FUN_001b8d10) {\n                cVar6 = (**(code **)(**(long **)(*param_1 + 0x10) + 0x1d0))();\n              }\n              else {\n                cVar6 = (*pcVar3)();\n              }\n              uVar9 = *local_70;\n              if (cVar6 != '\0') {\n                uVar9 = uVar9 >> 0x18 | (uVar9 & 0xff0000) >> 8 | (uVar9 & 0xff00) << 8 |\n                        uVar9 << 0x18;\n              }\n              local_60 = (uint *)(ulong)uVar9;\n              local_70 = local_70 + 1;\n              goto LAB_00302d40;\n            }\n            pcVar3 = *(code **)(**(long **)(*param_1 + 0x10) + 0x18);\n            if (pcVar3 == FUN_001b8d10) {\n              cVar6 = (**(code **)(**(long **)(*param_1 + 0x10) + 0x1d0))();\n            }\n            else {\n              cVar6 = (*pcVar3)();\n            }\n            uVar5 = (ushort)*local_70;\n            if (cVar6 != '\0') {\n              uVar5 = CONCAT11((byte)*local_70,*(byte *)((long)local_70 + 1));\n            }\n            local_70 = (uint *)((long)local_70 + 2);\n            puStack_50 = (uint *)(ulong)uVar5;\n          }\n          goto joined_r0x00302748;\n        }" if (parenthesized_expression "(uVar8 < 8)" ( (binary_expression "uVar8 < 8" identifier < number_literal) )) (compound_statement "{\n          if (uVar8 == 4) {\n            pcVar3 = *(code **)(**(long **)(*param_1 + 0x10) + 0x18);\n            if (pcVar3 == FUN_001b8d10) {\n              cVar6 = (**(code **)(**(long **)(*param_1 + 0x10) + 0x1d0))();\n            }\n            else {\n              cVar6 = (*pcVar3)();\n            }\n            local_48 = *local_70;\n            if (cVar6 != '\0') {\n              local_48 = local_48 >> 0x18 | (local_48 & 0xff0000) >> 8 | (local_48 & 0xff00) << 8 |\n                         local_48 << 0x18;\n            }\n            puStack_50 = local_70 + 1;\n            local_70 = (uint *)((long)puStack_50 + (ulong)local_48);\n          }\n          else if (uVar8 < 5) {\n            if (uVar8 == 1) {\n              lVar10 = *param_1;\n              if (*(int *)(lVar10 + 100) == 4) goto LAB_00302e7d;\nLAB_00302a71:\n              pcVar3 = *(code **)(**(long **)(lVar10 + 0x10) + 0x18);\n              if (pcVar3 == FUN_001b8d10) {\n                cVar6 = (**(code **)(**(long **)(lVar10 + 0x10) + 0x1d0))();\n              }\n              else {\n                cVar6 = (*pcVar3)();\n              }\n              local_60 = *(uint **)local_70;\n              if (cVar6 != '\0') {\n                local_60 = (uint *)((ulong)local_60 >> 0x38 |\n                                    ((ulong)local_60 & 0xff000000000000) >> 0x28 |\n                                    ((ulong)local_60 & 0xff0000000000) >> 0x18 |\n                                    ((ulong)local_60 & 0xff00000000) >> 8 |\n                                    ((ulong)local_60 & 0xff000000) << 8 |\n                                    ((ulong)local_60 & 0xff0000) << 0x18 |\n                                    ((ulong)local_60 & 0xff00) << 0x28 | (long)local_60 << 0x38);\n              }\n              local_70 = local_70 + 2;\n              goto LAB_00302abe;\n            }\n            if (uVar8 != 3) {\n              return 0;\n            }\n            pcVar3 = *(code **)(**(long **)(*param_1 + 0x10) + 0x18);\n            if (pcVar3 == FUN_001b8d10) {\n              cVar6 = (**(code **)(**(long **)(*param_1 + 0x10) + 0x1d0))();\n            }\n            else {\n              cVar6 = (*pcVar3)();\n            }\n            uVar5 = (ushort)*local_70;\n            if (cVar6 != '\0') {\n              uVar5 = CONCAT11((byte)*local_70,*(byte *)((long)local_70 + 1));\n            }\n            local_48 = (uint)uVar5;\n            puStack_50 = (uint *)((long)local_70 + 2);\n            local_70 = (uint *)((long)puStack_50 + (ulong)local_48);\n          }\n          else {\n            if (uVar8 != 5) {\n              if (uVar8 != 6) {\n                return 0;\n              }\n              pcVar3 = *(code **)(**(long **)(*param_1 + 0x10) + 0x18);\n              if (pcVar3 == FUN_001b8d10) {\n                cVar6 = (**(code **)(**(long **)(*param_1 + 0x10) + 0x1d0))();\n              }\n              else {\n                cVar6 = (*pcVar3)();\n              }\n              uVar9 = *local_70;\n              if (cVar6 != '\0') {\n                uVar9 = uVar9 >> 0x18 | (uVar9 & 0xff0000) >> 8 | (uVar9 & 0xff00) << 8 |\n                        uVar9 << 0x18;\n              }\n              local_60 = (uint *)(ulong)uVar9;\n              local_70 = local_70 + 1;\n              goto LAB_00302d40;\n            }\n            pcVar3 = *(code **)(**(long **)(*param_1 + 0x10) + 0x18);\n            if (pcVar3 == FUN_001b8d10) {\n              cVar6 = (**(code **)(**(long **)(*param_1 + 0x10) + 0x1d0))();\n            }\n            else {\n              cVar6 = (*pcVar3)();\n            }\n            uVar5 = (ushort)*local_70;\n            if (cVar6 != '\0') {\n              uVar5 = CONCAT11((byte)*local_70,*(byte *)((long)local_70 + 1));\n            }\n            local_70 = (uint *)((long)local_70 + 2);\n            puStack_50 = (uint *)(ulong)uVar5;\n          }\n          goto joined_r0x00302748;\n        }" { (if_statement "if (uVar8 == 4) {\n            pcVar3 = *(code **)(**(long **)(*param_1 + 0x10) + 0x18);\n            if (pcVar3 == FUN_001b8d10) {\n              cVar6 = (**(code **)(**(long **)(*param_1 + 0x10) + 0x1d0))();\n            }\n            else {\n              cVar6 = (*pcVar3)();\n            }\n            local_48 = *local_70;\n            if (cVar6 != '\0') {\n              local_48 = local_48 >> 0x18 | (local_48 & 0xff0000) >> 8 | (local_48 & 0xff00) << 8 |\n                         local_48 << 0x18;\n            }\n            puStack_50 = local_70 + 1;\n            local_70 = (uint *)((long)puStack_50 + (ulong)local_48);\n          }\n          else if (uVar8 < 5) {\n            if (uVar8 == 1) {\n              lVar10 = *param_1;\n              if (*(int *)(lVar10 + 100) == 4) goto LAB_00302e7d;\nLAB_00302a71:\n              pcVar3 = *(code **)(**(long **)(lVar10 + 0x10) + 0x18);\n              if (pcVar3 == FUN_001b8d10) {\n                cVar6 = (**(code **)(**(long **)(lVar10 + 0x10) + 0x1d0))();\n              }\n              else {\n                cVar6 = (*pcVar3)();\n              }\n              local_60 = *(uint **)local_70;\n              if (cVar6 != '\0') {\n                local_60 = (uint *)((ulong)local_60 >> 0x38 |\n                                    ((ulong)local_60 & 0xff000000000000) >> 0x28 |\n                                    ((ulong)local_60 & 0xff0000000000) >> 0x18 |\n                                    ((ulong)local_60 & 0xff00000000) >> 8 |\n                                    ((ulong)local_60 & 0xff000000) << 8 |\n                                    ((ulong)local_60 & 0xff0000) << 0x18 |\n                                    ((ulong)local_60 & 0xff00) << 0x28 | (long)local_60 << 0x38);\n              }\n              local_70 = local_70 + 2;\n              goto LAB_00302abe;\n            }\n            if (uVar8 != 3) {\n              return 0;\n            }\n            pcVar3 = *(code **)(**(long **)(*param_1 + 0x10) + 0x18);\n            if (pcVar3 == FUN_001b8d10) {\n              cVar6 = (**(code **)(**(long **)(*param_1 + 0x10) + 0x1d0))();\n            }\n            else {\n              cVar6 = (*pcVar3)();\n            }\n            uVar5 = (ushort)*local_70;\n            if (cVar6 != '\0') {\n              uVar5 = CONCAT11((byte)*local_70,*(byte *)((long)local_70 + 1));\n            }\n            local_48 = (uint)uVar5;\n            puStack_50 = (uint *)((long)local_70 + 2);\n            local_70 = (uint *)((long)puStack_50 + (ulong)local_48);\n          }\n          else {\n            if (uVar8 != 5) {\n              if (uVar8 != 6) {\n                return 0;\n              }\n              pcVar3 = *(code **)(**(long **)(*param_1 + 0x10) + 0x18);\n              if (pcVar3 == FUN_001b8d10) {\n                cVar6 = (**(code **)(**(long **)(*param_1 + 0x10) + 0x1d0))();\n              }\n              else {\n                cVar6 = (*pcVar3)();\n              }\n              uVar9 = *local_70;\n              if (cVar6 != '\0') {\n                uVar9 = uVar9 >> 0x18 | (uVar9 & 0xff0000) >> 8 | (uVar9 & 0xff00) << 8 |\n                        uVar9 << 0x18;\n              }\n              local_60 = (uint *)(ulong)uVar9;\n              local_70 = local_70 + 1;\n              goto LAB_00302d40;\n            }\n            pcVar3 = *(code **)(**(long **)(*param_1 + 0x10) + 0x18);\n            if (pcVar3 == FUN_001b8d10) {\n              cVar6 = (**(code **)(**(long **)(*param_1 + 0x10) + 0x1d0))();\n            }\n            else {\n              cVar6 = (*pcVar3)();\n            }\n            uVar5 = (ushort)*local_70;\n            if (cVar6 != '\0') {\n              uVar5 = CONCAT11((byte)*local_70,*(byte *)((long)local_70 + 1));\n            }\n            local_70 = (uint *)((long)local_70 + 2);\n            puStack_50 = (uint *)(ulong)uVar5;\n          }" if (parenthesized_expression "(uVar8 == 4)" ( (binary_expression "uVar8 == 4" identifier == number_literal) )) (compound_statement "{\n            pcVar3 = *(code **)(**(long **)(*param_1 + 0x10) + 0x18);\n            if (pcVar3 == FUN_001b8d10) {\n              cVar6 = (**(code **)(**(long **)(*param_1 + 0x10) + 0x1d0))();\n            }\n            else {\n              cVar6 = (*pcVar3)();\n            }\n            local_48 = *local_70;\n            if (cVar6 != '\0') {\n              local_48 = local_48 >> 0x18 | (local_48 & 0xff0000) >> 8 | (local_48 & 0xff00) << 8 |\n                         local_48 << 0x18;\n            }\n            puStack_50 = local_70 + 1;\n            local_70 = (uint *)((long)puStack_50 + (ulong)local_48);\n          }" { (expression_statement "pcVar3 = *(code **)(**(long **)(*param_1 + 0x10) + 0x18);" (assignment_expression "pcVar3 = *(code **)(**(long **)(*param_1 + 0x10) + 0x18)" identifier = (pointer_expression "*(code **)(**(long **)(*param_1 + 0x10) + 0x18)" * (cast_expression "(code **)(**(long **)(*param_1 + 0x10) + 0x18)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(**(long **)(*param_1 + 0x10) + 0x18)" ( (binary_expression "**(long **)(*param_1 + 0x10) + 0x18" (pointer_expression "**(long **)(*param_1 + 0x10)" * (pointer_expression "*(long **)(*param_1 + 0x10)" * (cast_expression "(long **)(*param_1 + 0x10)" ( (type_descriptor "long **" (sized_type_specifier "long" long) (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(*param_1 + 0x10)" ( (binary_expression "*param_1 + 0x10" (pointer_expression "*param_1" * identifier) + number_literal) ))))) + number_literal) ))))) ;) (if_statement "if (pcVar3 == FUN_001b8d10) {\n              cVar6 = (**(code **)(**(long **)(*param_1 + 0x10) + 0x1d0))();\n            }\n            else {\n              cVar6 = (*pcVar3)();\n            }" if (parenthesized_expression "(pcVar3 == FUN_001b8d10)" ( (binary_expression "pcVar3 == FUN_001b8d10" identifier == identifier) )) (compound_statement "{\n              cVar6 = (**(code **)(**(long **)(*param_1 + 0x10) + 0x1d0))();\n            }" { (expression_statement "cVar6 = (**(code **)(**(long **)(*param_1 + 0x10) + 0x1d0))();" (assignment_expression "cVar6 = (**(code **)(**(long **)(*param_1 + 0x10) + 0x1d0))()" identifier = (call_expression "(**(code **)(**(long **)(*param_1 + 0x10) + 0x1d0))()" (parenthesized_expression "(**(code **)(**(long **)(*param_1 + 0x10) + 0x1d0))" ( (pointer_expression "**(code **)(**(long **)(*param_1 + 0x10) + 0x1d0)" * (pointer_expression "*(code **)(**(long **)(*param_1 + 0x10) + 0x1d0)" * (cast_expression "(code **)(**(long **)(*param_1 + 0x10) + 0x1d0)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(**(long **)(*param_1 + 0x10) + 0x1d0)" ( (binary_expression "**(long **)(*param_1 + 0x10) + 0x1d0" (pointer_expression "**(long **)(*param_1 + 0x10)" * (pointer_expression "*(long **)(*param_1 + 0x10)" * (cast_expression "(long **)(*param_1 + 0x10)" ( (type_descriptor "long **" (sized_type_specifier "long" long) (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(*param_1 + 0x10)" ( (binary_expression "*param_1 + 0x10" (pointer_expression "*param_1" * identifier) + number_literal) ))))) + number_literal) ))))) )) (argument_list "()" ( )))) ;) }) (else_clause "else {\n              cVar6 = (*pcVar3)();\n            }" else (compound_statement "{\n              cVar6 = (*pcVar3)();\n            }" { (expression_statement "cVar6 = (*pcVar3)();" (assignment_expression "cVar6 = (*pcVar3)()" identifier = (call_expression "(*pcVar3)()" (parenthesized_expression "(*pcVar3)" ( (pointer_expression "*pcVar3" * identifier) )) (argument_list "()" ( )))) ;) }))) (expression_statement "local_48 = *local_70;" (assignment_expression "local_48 = *local_70" identifier = (pointer_expression "*local_70" * identifier)) ;) (if_statement "if (cVar6 != '\0') {\n              local_48 = local_48 >> 0x18 | (local_48 & 0xff0000) >> 8 | (local_48 & 0xff00) << 8 |\n                         local_48 << 0x18;\n            }" if (parenthesized_expression "(cVar6 != '\0')" ( (binary_expression "cVar6 != '\0'" identifier != (char_literal "'\0'" ' escape_sequence ')) )) (compound_statement "{\n              local_48 = local_48 >> 0x18 | (local_48 & 0xff0000) >> 8 | (local_48 & 0xff00) << 8 |\n                         local_48 << 0x18;\n            }" { (expression_statement "local_48 = local_48 >> 0x18 | (local_48 & 0xff0000) >> 8 | (local_48 & 0xff00) << 8 |\n                         local_48 << 0x18;" (assignment_expression "local_48 = local_48 >> 0x18 | (local_48 & 0xff0000) >> 8 | (local_48 & 0xff00) << 8 |\n                         local_48 << 0x18" identifier = (binary_expression "local_48 >> 0x18 | (local_48 & 0xff0000) >> 8 | (local_48 & 0xff00) << 8 |\n                         local_48 << 0x18" (binary_expression "local_48 >> 0x18 | (local_48 & 0xff0000) >> 8 | (local_48 & 0xff00) << 8" (binary_expression "local_48 >> 0x18 | (local_48 & 0xff0000) >> 8" (binary_expression "local_48 >> 0x18" identifier >> number_literal) | (binary_expression "(local_48 & 0xff0000) >> 8" (parenthesized_expression "(local_48 & 0xff0000)" ( (binary_expression "local_48 & 0xff0000" identifier & number_literal) )) >> number_literal)) | (binary_expression "(local_48 & 0xff00) << 8" (parenthesized_expression "(local_48 & 0xff00)" ( (binary_expression "local_48 & 0xff00" identifier & number_literal) )) << number_literal)) | (binary_expression "local_48 << 0x18" identifier << number_literal))) ;) })) (expression_statement "puStack_50 = local_70 + 1;" (assignment_expression "puStack_50 = local_70 + 1" identifier = (binary_expression "local_70 + 1" identifier + number_literal)) ;) (expression_statement "local_70 = (uint *)((long)puStack_50 + (ulong)local_48);" (assignment_expression "local_70 = (uint *)((long)puStack_50 + (ulong)local_48)" identifier = (cast_expression "(uint *)((long)puStack_50 + (ulong)local_48)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((long)puStack_50 + (ulong)local_48)" ( (binary_expression "(long)puStack_50 + (ulong)local_48" (cast_expression "(long)puStack_50" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) identifier) + (cast_expression "(ulong)local_48" ( (type_descriptor "ulong" type_identifier) ) identifier)) )))) ;) }) (else_clause "else if (uVar8 < 5) {\n            if (uVar8 == 1) {\n              lVar10 = *param_1;\n              if (*(int *)(lVar10 + 100) == 4) goto LAB_00302e7d;\nLAB_00302a71:\n              pcVar3 = *(code **)(**(long **)(lVar10 + 0x10) + 0x18);\n              if (pcVar3 == FUN_001b8d10) {\n                cVar6 = (**(code **)(**(long **)(lVar10 + 0x10) + 0x1d0))();\n              }\n              else {\n                cVar6 = (*pcVar3)();\n              }\n              local_60 = *(uint **)local_70;\n              if (cVar6 != '\0') {\n                local_60 = (uint *)((ulong)local_60 >> 0x38 |\n                                    ((ulong)local_60 & 0xff000000000000) >> 0x28 |\n                                    ((ulong)local_60 & 0xff0000000000) >> 0x18 |\n                                    ((ulong)local_60 & 0xff00000000) >> 8 |\n                                    ((ulong)local_60 & 0xff000000) << 8 |\n                                    ((ulong)local_60 & 0xff0000) << 0x18 |\n                                    ((ulong)local_60 & 0xff00) << 0x28 | (long)local_60 << 0x38);\n              }\n              local_70 = local_70 + 2;\n              goto LAB_00302abe;\n            }\n            if (uVar8 != 3) {\n              return 0;\n            }\n            pcVar3 = *(code **)(**(long **)(*param_1 + 0x10) + 0x18);\n            if (pcVar3 == FUN_001b8d10) {\n              cVar6 = (**(code **)(**(long **)(*param_1 + 0x10) + 0x1d0))();\n            }\n            else {\n              cVar6 = (*pcVar3)();\n            }\n            uVar5 = (ushort)*local_70;\n            if (cVar6 != '\0') {\n              uVar5 = CONCAT11((byte)*local_70,*(byte *)((long)local_70 + 1));\n            }\n            local_48 = (uint)uVar5;\n            puStack_50 = (uint *)((long)local_70 + 2);\n            local_70 = (uint *)((long)puStack_50 + (ulong)local_48);\n          }\n          else {\n            if (uVar8 != 5) {\n              if (uVar8 != 6) {\n                return 0;\n              }\n              pcVar3 = *(code **)(**(long **)(*param_1 + 0x10) + 0x18);\n              if (pcVar3 == FUN_001b8d10) {\n                cVar6 = (**(code **)(**(long **)(*param_1 + 0x10) + 0x1d0))();\n              }\n              else {\n                cVar6 = (*pcVar3)();\n              }\n              uVar9 = *local_70;\n              if (cVar6 != '\0') {\n                uVar9 = uVar9 >> 0x18 | (uVar9 & 0xff0000) >> 8 | (uVar9 & 0xff00) << 8 |\n                        uVar9 << 0x18;\n              }\n              local_60 = (uint *)(ulong)uVar9;\n              local_70 = local_70 + 1;\n              goto LAB_00302d40;\n            }\n            pcVar3 = *(code **)(**(long **)(*param_1 + 0x10) + 0x18);\n            if (pcVar3 == FUN_001b8d10) {\n              cVar6 = (**(code **)(**(long **)(*param_1 + 0x10) + 0x1d0))();\n            }\n            else {\n              cVar6 = (*pcVar3)();\n            }\n            uVar5 = (ushort)*local_70;\n            if (cVar6 != '\0') {\n              uVar5 = CONCAT11((byte)*local_70,*(byte *)((long)local_70 + 1));\n            }\n            local_70 = (uint *)((long)local_70 + 2);\n            puStack_50 = (uint *)(ulong)uVar5;\n          }" else (if_statement "if (uVar8 < 5) {\n            if (uVar8 == 1) {\n              lVar10 = *param_1;\n              if (*(int *)(lVar10 + 100) == 4) goto LAB_00302e7d;\nLAB_00302a71:\n              pcVar3 = *(code **)(**(long **)(lVar10 + 0x10) + 0x18);\n              if (pcVar3 == FUN_001b8d10) {\n                cVar6 = (**(code **)(**(long **)(lVar10 + 0x10) + 0x1d0))();\n              }\n              else {\n                cVar6 = (*pcVar3)();\n              }\n              local_60 = *(uint **)local_70;\n              if (cVar6 != '\0') {\n                local_60 = (uint *)((ulong)local_60 >> 0x38 |\n                                    ((ulong)local_60 & 0xff000000000000) >> 0x28 |\n                                    ((ulong)local_60 & 0xff0000000000) >> 0x18 |\n                                    ((ulong)local_60 & 0xff00000000) >> 8 |\n                                    ((ulong)local_60 & 0xff000000) << 8 |\n                                    ((ulong)local_60 & 0xff0000) << 0x18 |\n                                    ((ulong)local_60 & 0xff00) << 0x28 | (long)local_60 << 0x38);\n              }\n              local_70 = local_70 + 2;\n              goto LAB_00302abe;\n            }\n            if (uVar8 != 3) {\n              return 0;\n            }\n            pcVar3 = *(code **)(**(long **)(*param_1 + 0x10) + 0x18);\n            if (pcVar3 == FUN_001b8d10) {\n              cVar6 = (**(code **)(**(long **)(*param_1 + 0x10) + 0x1d0))();\n            }\n            else {\n              cVar6 = (*pcVar3)();\n            }\n            uVar5 = (ushort)*local_70;\n            if (cVar6 != '\0') {\n              uVar5 = CONCAT11((byte)*local_70,*(byte *)((long)local_70 + 1));\n            }\n            local_48 = (uint)uVar5;\n            puStack_50 = (uint *)((long)local_70 + 2);\n            local_70 = (uint *)((long)puStack_50 + (ulong)local_48);\n          }\n          else {\n            if (uVar8 != 5) {\n              if (uVar8 != 6) {\n                return 0;\n              }\n              pcVar3 = *(code **)(**(long **)(*param_1 + 0x10) + 0x18);\n              if (pcVar3 == FUN_001b8d10) {\n                cVar6 = (**(code **)(**(long **)(*param_1 + 0x10) + 0x1d0))();\n              }\n              else {\n                cVar6 = (*pcVar3)();\n              }\n              uVar9 = *local_70;\n              if (cVar6 != '\0') {\n                uVar9 = uVar9 >> 0x18 | (uVar9 & 0xff0000) >> 8 | (uVar9 & 0xff00) << 8 |\n                        uVar9 << 0x18;\n              }\n              local_60 = (uint *)(ulong)uVar9;\n              local_70 = local_70 + 1;\n              goto LAB_00302d40;\n            }\n            pcVar3 = *(code **)(**(long **)(*param_1 + 0x10) + 0x18);\n            if (pcVar3 == FUN_001b8d10) {\n              cVar6 = (**(code **)(**(long **)(*param_1 + 0x10) + 0x1d0))();\n            }\n            else {\n              cVar6 = (*pcVar3)();\n            }\n            uVar5 = (ushort)*local_70;\n            if (cVar6 != '\0') {\n              uVar5 = CONCAT11((byte)*local_70,*(byte *)((long)local_70 + 1));\n            }\n            local_70 = (uint *)((long)local_70 + 2);\n            puStack_50 = (uint *)(ulong)uVar5;\n          }" if (parenthesized_expression "(uVar8 < 5)" ( (binary_expression "uVar8 < 5" identifier < number_literal) )) (compound_statement "{\n            if (uVar8 == 1) {\n              lVar10 = *param_1;\n              if (*(int *)(lVar10 + 100) == 4) goto LAB_00302e7d;\nLAB_00302a71:\n              pcVar3 = *(code **)(**(long **)(lVar10 + 0x10) + 0x18);\n              if (pcVar3 == FUN_001b8d10) {\n                cVar6 = (**(code **)(**(long **)(lVar10 + 0x10) + 0x1d0))();\n              }\n              else {\n                cVar6 = (*pcVar3)();\n              }\n              local_60 = *(uint **)local_70;\n              if (cVar6 != '\0') {\n                local_60 = (uint *)((ulong)local_60 >> 0x38 |\n                                    ((ulong)local_60 & 0xff000000000000) >> 0x28 |\n                                    ((ulong)local_60 & 0xff0000000000) >> 0x18 |\n                                    ((ulong)local_60 & 0xff00000000) >> 8 |\n                                    ((ulong)local_60 & 0xff000000) << 8 |\n                                    ((ulong)local_60 & 0xff0000) << 0x18 |\n                                    ((ulong)local_60 & 0xff00) << 0x28 | (long)local_60 << 0x38);\n              }\n              local_70 = local_70 + 2;\n              goto LAB_00302abe;\n            }\n            if (uVar8 != 3) {\n              return 0;\n            }\n            pcVar3 = *(code **)(**(long **)(*param_1 + 0x10) + 0x18);\n            if (pcVar3 == FUN_001b8d10) {\n              cVar6 = (**(code **)(**(long **)(*param_1 + 0x10) + 0x1d0))();\n            }\n            else {\n              cVar6 = (*pcVar3)();\n            }\n            uVar5 = (ushort)*local_70;\n            if (cVar6 != '\0') {\n              uVar5 = CONCAT11((byte)*local_70,*(byte *)((long)local_70 + 1));\n            }\n            local_48 = (uint)uVar5;\n            puStack_50 = (uint *)((long)local_70 + 2);\n            local_70 = (uint *)((long)puStack_50 + (ulong)local_48);\n          }" { (if_statement "if (uVar8 == 1) {\n              lVar10 = *param_1;\n              if (*(int *)(lVar10 + 100) == 4) goto LAB_00302e7d;\nLAB_00302a71:\n              pcVar3 = *(code **)(**(long **)(lVar10 + 0x10) + 0x18);\n              if (pcVar3 == FUN_001b8d10) {\n                cVar6 = (**(code **)(**(long **)(lVar10 + 0x10) + 0x1d0))();\n              }\n              else {\n                cVar6 = (*pcVar3)();\n              }\n              local_60 = *(uint **)local_70;\n              if (cVar6 != '\0') {\n                local_60 = (uint *)((ulong)local_60 >> 0x38 |\n                                    ((ulong)local_60 & 0xff000000000000) >> 0x28 |\n                                    ((ulong)local_60 & 0xff0000000000) >> 0x18 |\n                                    ((ulong)local_60 & 0xff00000000) >> 8 |\n                                    ((ulong)local_60 & 0xff000000) << 8 |\n                                    ((ulong)local_60 & 0xff0000) << 0x18 |\n                                    ((ulong)local_60 & 0xff00) << 0x28 | (long)local_60 << 0x38);\n              }\n              local_70 = local_70 + 2;\n              goto LAB_00302abe;\n            }" if (parenthesized_expression "(uVar8 == 1)" ( (binary_expression "uVar8 == 1" identifier == number_literal) )) (compound_statement "{\n              lVar10 = *param_1;\n              if (*(int *)(lVar10 + 100) == 4) goto LAB_00302e7d;\nLAB_00302a71:\n              pcVar3 = *(code **)(**(long **)(lVar10 + 0x10) + 0x18);\n              if (pcVar3 == FUN_001b8d10) {\n                cVar6 = (**(code **)(**(long **)(lVar10 + 0x10) + 0x1d0))();\n              }\n              else {\n                cVar6 = (*pcVar3)();\n              }\n              local_60 = *(uint **)local_70;\n              if (cVar6 != '\0') {\n                local_60 = (uint *)((ulong)local_60 >> 0x38 |\n                                    ((ulong)local_60 & 0xff000000000000) >> 0x28 |\n                                    ((ulong)local_60 & 0xff0000000000) >> 0x18 |\n                                    ((ulong)local_60 & 0xff00000000) >> 8 |\n                                    ((ulong)local_60 & 0xff000000) << 8 |\n                                    ((ulong)local_60 & 0xff0000) << 0x18 |\n                                    ((ulong)local_60 & 0xff00) << 0x28 | (long)local_60 << 0x38);\n              }\n              local_70 = local_70 + 2;\n              goto LAB_00302abe;\n            }" { (expression_statement "lVar10 = *param_1;" (assignment_expression "lVar10 = *param_1" identifier = (pointer_expression "*param_1" * identifier)) ;) (if_statement "if (*(int *)(lVar10 + 100) == 4) goto LAB_00302e7d;" if (parenthesized_expression "(*(int *)(lVar10 + 100) == 4)" ( (binary_expression "*(int *)(lVar10 + 100) == 4" (pointer_expression "*(int *)(lVar10 + 100)" * (cast_expression "(int *)(lVar10 + 100)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(lVar10 + 100)" ( (binary_expression "lVar10 + 100" identifier + number_literal) )))) == number_literal) )) (goto_statement "goto LAB_00302e7d;" goto statement_identifier ;)) (labeled_statement "LAB_00302a71:\n              pcVar3 = *(code **)(**(long **)(lVar10 + 0x10) + 0x18);" statement_identifier : (expression_statement "pcVar3 = *(code **)(**(long **)(lVar10 + 0x10) + 0x18);" (assignment_expression "pcVar3 = *(code **)(**(long **)(lVar10 + 0x10) + 0x18)" identifier = (pointer_expression "*(code **)(**(long **)(lVar10 + 0x10) + 0x18)" * (cast_expression "(code **)(**(long **)(lVar10 + 0x10) + 0x18)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(**(long **)(lVar10 + 0x10) + 0x18)" ( (binary_expression "**(long **)(lVar10 + 0x10) + 0x18" (pointer_expression "**(long **)(lVar10 + 0x10)" * (pointer_expression "*(long **)(lVar10 + 0x10)" * (cast_expression "(long **)(lVar10 + 0x10)" ( (type_descriptor "long **" (sized_type_specifier "long" long) (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(lVar10 + 0x10)" ( (binary_expression "lVar10 + 0x10" identifier + number_literal) ))))) + number_literal) ))))) ;)) (if_statement "if (pcVar3 == FUN_001b8d10) {\n                cVar6 = (**(code **)(**(long **)(lVar10 + 0x10) + 0x1d0))();\n              }\n              else {\n                cVar6 = (*pcVar3)();\n              }" if (parenthesized_expression "(pcVar3 == FUN_001b8d10)" ( (binary_expression "pcVar3 == FUN_001b8d10" identifier == identifier) )) (compound_statement "{\n                cVar6 = (**(code **)(**(long **)(lVar10 + 0x10) + 0x1d0))();\n              }" { (expression_statement "cVar6 = (**(code **)(**(long **)(lVar10 + 0x10) + 0x1d0))();" (assignment_expression "cVar6 = (**(code **)(**(long **)(lVar10 + 0x10) + 0x1d0))()" identifier = (call_expression "(**(code **)(**(long **)(lVar10 + 0x10) + 0x1d0))()" (parenthesized_expression "(**(code **)(**(long **)(lVar10 + 0x10) + 0x1d0))" ( (pointer_expression "**(code **)(**(long **)(lVar10 + 0x10) + 0x1d0)" * (pointer_expression "*(code **)(**(long **)(lVar10 + 0x10) + 0x1d0)" * (cast_expression "(code **)(**(long **)(lVar10 + 0x10) + 0x1d0)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(**(long **)(lVar10 + 0x10) + 0x1d0)" ( (binary_expression "**(long **)(lVar10 + 0x10) + 0x1d0" (pointer_expression "**(long **)(lVar10 + 0x10)" * (pointer_expression "*(long **)(lVar10 + 0x10)" * (cast_expression "(long **)(lVar10 + 0x10)" ( (type_descriptor "long **" (sized_type_specifier "long" long) (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(lVar10 + 0x10)" ( (binary_expression "lVar10 + 0x10" identifier + number_literal) ))))) + number_literal) ))))) )) (argument_list "()" ( )))) ;) }) (else_clause "else {\n                cVar6 = (*pcVar3)();\n              }" else (compound_statement "{\n                cVar6 = (*pcVar3)();\n              }" { (expression_statement "cVar6 = (*pcVar3)();" (assignment_expression "cVar6 = (*pcVar3)()" identifier = (call_expression "(*pcVar3)()" (parenthesized_expression "(*pcVar3)" ( (pointer_expression "*pcVar3" * identifier) )) (argument_list "()" ( )))) ;) }))) (expression_statement "local_60 = *(uint **)local_70;" (assignment_expression "local_60 = *(uint **)local_70" identifier = (pointer_expression "*(uint **)local_70" * (cast_expression "(uint **)local_70" ( (type_descriptor "uint **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) identifier))) ;) (if_statement "if (cVar6 != '\0') {\n                local_60 = (uint *)((ulong)local_60 >> 0x38 |\n                                    ((ulong)local_60 & 0xff000000000000) >> 0x28 |\n                                    ((ulong)local_60 & 0xff0000000000) >> 0x18 |\n                                    ((ulong)local_60 & 0xff00000000) >> 8 |\n                                    ((ulong)local_60 & 0xff000000) << 8 |\n                                    ((ulong)local_60 & 0xff0000) << 0x18 |\n                                    ((ulong)local_60 & 0xff00) << 0x28 | (long)local_60 << 0x38);\n              }" if (parenthesized_expression "(cVar6 != '\0')" ( (binary_expression "cVar6 != '\0'" identifier != (char_literal "'\0'" ' escape_sequence ')) )) (compound_statement "{\n                local_60 = (uint *)((ulong)local_60 >> 0x38 |\n                                    ((ulong)local_60 & 0xff000000000000) >> 0x28 |\n                                    ((ulong)local_60 & 0xff0000000000) >> 0x18 |\n                                    ((ulong)local_60 & 0xff00000000) >> 8 |\n                                    ((ulong)local_60 & 0xff000000) << 8 |\n                                    ((ulong)local_60 & 0xff0000) << 0x18 |\n                                    ((ulong)local_60 & 0xff00) << 0x28 | (long)local_60 << 0x38);\n              }" { (expression_statement "local_60 = (uint *)((ulong)local_60 >> 0x38 |\n                                    ((ulong)local_60 & 0xff000000000000) >> 0x28 |\n                                    ((ulong)local_60 & 0xff0000000000) >> 0x18 |\n                                    ((ulong)local_60 & 0xff00000000) >> 8 |\n                                    ((ulong)local_60 & 0xff000000) << 8 |\n                                    ((ulong)local_60 & 0xff0000) << 0x18 |\n                                    ((ulong)local_60 & 0xff00) << 0x28 | (long)local_60 << 0x38);" (assignment_expression "local_60 = (uint *)((ulong)local_60 >> 0x38 |\n                                    ((ulong)local_60 & 0xff000000000000) >> 0x28 |\n                                    ((ulong)local_60 & 0xff0000000000) >> 0x18 |\n                                    ((ulong)local_60 & 0xff00000000) >> 8 |\n                                    ((ulong)local_60 & 0xff000000) << 8 |\n                                    ((ulong)local_60 & 0xff0000) << 0x18 |\n                                    ((ulong)local_60 & 0xff00) << 0x28 | (long)local_60 << 0x38)" identifier = (cast_expression "(uint *)((ulong)local_60 >> 0x38 |\n                                    ((ulong)local_60 & 0xff000000000000) >> 0x28 |\n                                    ((ulong)local_60 & 0xff0000000000) >> 0x18 |\n                                    ((ulong)local_60 & 0xff00000000) >> 8 |\n                                    ((ulong)local_60 & 0xff000000) << 8 |\n                                    ((ulong)local_60 & 0xff0000) << 0x18 |\n                                    ((ulong)local_60 & 0xff00) << 0x28 | (long)local_60 << 0x38)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((ulong)local_60 >> 0x38 |\n                                    ((ulong)local_60 & 0xff000000000000) >> 0x28 |\n                                    ((ulong)local_60 & 0xff0000000000) >> 0x18 |\n                                    ((ulong)local_60 & 0xff00000000) >> 8 |\n                                    ((ulong)local_60 & 0xff000000) << 8 |\n                                    ((ulong)local_60 & 0xff0000) << 0x18 |\n                                    ((ulong)local_60 & 0xff00) << 0x28 | (long)local_60 << 0x38)" ( (binary_expression "(ulong)local_60 >> 0x38 |\n                                    ((ulong)local_60 & 0xff000000000000) >> 0x28 |\n                                    ((ulong)local_60 & 0xff0000000000) >> 0x18 |\n                                    ((ulong)local_60 & 0xff00000000) >> 8 |\n                                    ((ulong)local_60 & 0xff000000) << 8 |\n                                    ((ulong)local_60 & 0xff0000) << 0x18 |\n                                    ((ulong)local_60 & 0xff00) << 0x28 | (long)local_60 << 0x38" (binary_expression "(ulong)local_60 >> 0x38 |\n                                    ((ulong)local_60 & 0xff000000000000) >> 0x28 |\n                                    ((ulong)local_60 & 0xff0000000000) >> 0x18 |\n                                    ((ulong)local_60 & 0xff00000000) >> 8 |\n                                    ((ulong)local_60 & 0xff000000) << 8 |\n                                    ((ulong)local_60 & 0xff0000) << 0x18 |\n                                    ((ulong)local_60 & 0xff00) << 0x28" (binary_expression "(ulong)local_60 >> 0x38 |\n                                    ((ulong)local_60 & 0xff000000000000) >> 0x28 |\n                                    ((ulong)local_60 & 0xff0000000000) >> 0x18 |\n                                    ((ulong)local_60 & 0xff00000000) >> 8 |\n                                    ((ulong)local_60 & 0xff000000) << 8 |\n                                    ((ulong)local_60 & 0xff0000) << 0x18" (binary_expression "(ulong)local_60 >> 0x38 |\n                                    ((ulong)local_60 & 0xff000000000000) >> 0x28 |\n                                    ((ulong)local_60 & 0xff0000000000) >> 0x18 |\n                                    ((ulong)local_60 & 0xff00000000) >> 8 |\n                                    ((ulong)local_60 & 0xff000000) << 8" (binary_expression "(ulong)local_60 >> 0x38 |\n                                    ((ulong)local_60 & 0xff000000000000) >> 0x28 |\n                                    ((ulong)local_60 & 0xff0000000000) >> 0x18 |\n                                    ((ulong)local_60 & 0xff00000000) >> 8" (binary_expression "(ulong)local_60 >> 0x38 |\n                                    ((ulong)local_60 & 0xff000000000000) >> 0x28 |\n                                    ((ulong)local_60 & 0xff0000000000) >> 0x18" (binary_expression "(ulong)local_60 >> 0x38 |\n                                    ((ulong)local_60 & 0xff000000000000) >> 0x28" (binary_expression "(ulong)local_60 >> 0x38" (cast_expression "(ulong)local_60" ( (type_descriptor "ulong" type_identifier) ) identifier) >> number_literal) | (binary_expression "((ulong)local_60 & 0xff000000000000) >> 0x28" (parenthesized_expression "((ulong)local_60 & 0xff000000000000)" ( (binary_expression "(ulong)local_60 & 0xff000000000000" (cast_expression "(ulong)local_60" ( (type_descriptor "ulong" type_identifier) ) identifier) & number_literal) )) >> number_literal)) | (binary_expression "((ulong)local_60 & 0xff0000000000) >> 0x18" (parenthesized_expression "((ulong)local_60 & 0xff0000000000)" ( (binary_expression "(ulong)local_60 & 0xff0000000000" (cast_expression "(ulong)local_60" ( (type_descriptor "ulong" type_identifier) ) identifier) & number_literal) )) >> number_literal)) | (binary_expression "((ulong)local_60 & 0xff00000000) >> 8" (parenthesized_expression "((ulong)local_60 & 0xff00000000)" ( (binary_expression "(ulong)local_60 & 0xff00000000" (cast_expression "(ulong)local_60" ( (type_descriptor "ulong" type_identifier) ) identifier) & number_literal) )) >> number_literal)) | (binary_expression "((ulong)local_60 & 0xff000000) << 8" (parenthesized_expression "((ulong)local_60 & 0xff000000)" ( (binary_expression "(ulong)local_60 & 0xff000000" (cast_expression "(ulong)local_60" ( (type_descriptor "ulong" type_identifier) ) identifier) & number_literal) )) << number_literal)) | (binary_expression "((ulong)local_60 & 0xff0000) << 0x18" (parenthesized_expression "((ulong)local_60 & 0xff0000)" ( (binary_expression "(ulong)local_60 & 0xff0000" (cast_expression "(ulong)local_60" ( (type_descriptor "ulong" type_identifier) ) identifier) & number_literal) )) << number_literal)) | (binary_expression "((ulong)local_60 & 0xff00) << 0x28" (parenthesized_expression "((ulong)local_60 & 0xff00)" ( (binary_expression "(ulong)local_60 & 0xff00" (cast_expression "(ulong)local_60" ( (type_descriptor "ulong" type_identifier) ) identifier) & number_literal) )) << number_literal)) | (binary_expression "(long)local_60 << 0x38" (cast_expression "(long)local_60" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) identifier) << number_literal)) )))) ;) })) (expression_statement "local_70 = local_70 + 2;" (assignment_expression "local_70 = local_70 + 2" identifier = (binary_expression "local_70 + 2" identifier + number_literal)) ;) (goto_statement "goto LAB_00302abe;" goto statement_identifier ;) })) (if_statement "if (uVar8 != 3) {\n              return 0;\n            }" if (parenthesized_expression "(uVar8 != 3)" ( (binary_expression "uVar8 != 3" identifier != number_literal) )) (compound_statement "{\n              return 0;\n            }" { (return_statement "return 0;" return number_literal ;) })) (expression_statement "pcVar3 = *(code **)(**(long **)(*param_1 + 0x10) + 0x18);" (assignment_expression "pcVar3 = *(code **)(**(long **)(*param_1 + 0x10) + 0x18)" identifier = (pointer_expression "*(code **)(**(long **)(*param_1 + 0x10) + 0x18)" * (cast_expression "(code **)(**(long **)(*param_1 + 0x10) + 0x18)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(**(long **)(*param_1 + 0x10) + 0x18)" ( (binary_expression "**(long **)(*param_1 + 0x10) + 0x18" (pointer_expression "**(long **)(*param_1 + 0x10)" * (pointer_expression "*(long **)(*param_1 + 0x10)" * (cast_expression "(long **)(*param_1 + 0x10)" ( (type_descriptor "long **" (sized_type_specifier "long" long) (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(*param_1 + 0x10)" ( (binary_expression "*param_1 + 0x10" (pointer_expression "*param_1" * identifier) + number_literal) ))))) + number_literal) ))))) ;) (if_statement "if (pcVar3 == FUN_001b8d10) {\n              cVar6 = (**(code **)(**(long **)(*param_1 + 0x10) + 0x1d0))();\n            }\n            else {\n              cVar6 = (*pcVar3)();\n            }" if (parenthesized_expression "(pcVar3 == FUN_001b8d10)" ( (binary_expression "pcVar3 == FUN_001b8d10" identifier == identifier) )) (compound_statement "{\n              cVar6 = (**(code **)(**(long **)(*param_1 + 0x10) + 0x1d0))();\n            }" { (expression_statement "cVar6 = (**(code **)(**(long **)(*param_1 + 0x10) + 0x1d0))();" (assignment_expression "cVar6 = (**(code **)(**(long **)(*param_1 + 0x10) + 0x1d0))()" identifier = (call_expression "(**(code **)(**(long **)(*param_1 + 0x10) + 0x1d0))()" (parenthesized_expression "(**(code **)(**(long **)(*param_1 + 0x10) + 0x1d0))" ( (pointer_expression "**(code **)(**(long **)(*param_1 + 0x10) + 0x1d0)" * (pointer_expression "*(code **)(**(long **)(*param_1 + 0x10) + 0x1d0)" * (cast_expression "(code **)(**(long **)(*param_1 + 0x10) + 0x1d0)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(**(long **)(*param_1 + 0x10) + 0x1d0)" ( (binary_expression "**(long **)(*param_1 + 0x10) + 0x1d0" (pointer_expression "**(long **)(*param_1 + 0x10)" * (pointer_expression "*(long **)(*param_1 + 0x10)" * (cast_expression "(long **)(*param_1 + 0x10)" ( (type_descriptor "long **" (sized_type_specifier "long" long) (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(*param_1 + 0x10)" ( (binary_expression "*param_1 + 0x10" (pointer_expression "*param_1" * identifier) + number_literal) ))))) + number_literal) ))))) )) (argument_list "()" ( )))) ;) }) (else_clause "else {\n              cVar6 = (*pcVar3)();\n            }" else (compound_statement "{\n              cVar6 = (*pcVar3)();\n            }" { (expression_statement "cVar6 = (*pcVar3)();" (assignment_expression "cVar6 = (*pcVar3)()" identifier = (call_expression "(*pcVar3)()" (parenthesized_expression "(*pcVar3)" ( (pointer_expression "*pcVar3" * identifier) )) (argument_list "()" ( )))) ;) }))) (expression_statement "uVar5 = (ushort)*local_70;" (assignment_expression "uVar5 = (ushort)*local_70" identifier = (binary_expression "(ushort)*local_70" (parenthesized_expression "(ushort)" ( identifier )) * identifier)) ;) (if_statement "if (cVar6 != '\0') {\n              uVar5 = CONCAT11((byte)*local_70,*(byte *)((long)local_70 + 1));\n            }" if (parenthesized_expression "(cVar6 != '\0')" ( (binary_expression "cVar6 != '\0'" identifier != (char_literal "'\0'" ' escape_sequence ')) )) (compound_statement "{\n              uVar5 = CONCAT11((byte)*local_70,*(byte *)((long)local_70 + 1));\n            }" { (expression_statement "uVar5 = CONCAT11((byte)*local_70,*(byte *)((long)local_70 + 1));" (assignment_expression "uVar5 = CONCAT11((byte)*local_70,*(byte *)((long)local_70 + 1))" identifier = (call_expression "CONCAT11((byte)*local_70,*(byte *)((long)local_70 + 1))" identifier (argument_list "((byte)*local_70,*(byte *)((long)local_70 + 1))" ( (binary_expression "(byte)*local_70" (parenthesized_expression "(byte)" ( identifier )) * identifier) , (pointer_expression "*(byte *)((long)local_70 + 1)" * (cast_expression "(byte *)((long)local_70 + 1)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((long)local_70 + 1)" ( (binary_expression "(long)local_70 + 1" (cast_expression "(long)local_70" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) identifier) + number_literal) )))) )))) ;) })) (expression_statement "local_48 = (uint)uVar5;" (assignment_expression "local_48 = (uint)uVar5" identifier = (cast_expression "(uint)uVar5" ( (type_descriptor "uint" type_identifier) ) identifier)) ;) (expression_statement "puStack_50 = (uint *)((long)local_70 + 2);" (assignment_expression "puStack_50 = (uint *)((long)local_70 + 2)" identifier = (cast_expression "(uint *)((long)local_70 + 2)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((long)local_70 + 2)" ( (binary_expression "(long)local_70 + 2" (cast_expression "(long)local_70" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) identifier) + number_literal) )))) ;) (expression_statement "local_70 = (uint *)((long)puStack_50 + (ulong)local_48);" (assignment_expression "local_70 = (uint *)((long)puStack_50 + (ulong)local_48)" identifier = (cast_expression "(uint *)((long)puStack_50 + (ulong)local_48)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((long)puStack_50 + (ulong)local_48)" ( (binary_expression "(long)puStack_50 + (ulong)local_48" (cast_expression "(long)puStack_50" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) identifier) + (cast_expression "(ulong)local_48" ( (type_descriptor "ulong" type_identifier) ) identifier)) )))) ;) }) (else_clause "else {\n            if (uVar8 != 5) {\n              if (uVar8 != 6) {\n                return 0;\n              }\n              pcVar3 = *(code **)(**(long **)(*param_1 + 0x10) + 0x18);\n              if (pcVar3 == FUN_001b8d10) {\n                cVar6 = (**(code **)(**(long **)(*param_1 + 0x10) + 0x1d0))();\n              }\n              else {\n                cVar6 = (*pcVar3)();\n              }\n              uVar9 = *local_70;\n              if (cVar6 != '\0') {\n                uVar9 = uVar9 >> 0x18 | (uVar9 & 0xff0000) >> 8 | (uVar9 & 0xff00) << 8 |\n                        uVar9 << 0x18;\n              }\n              local_60 = (uint *)(ulong)uVar9;\n              local_70 = local_70 + 1;\n              goto LAB_00302d40;\n            }\n            pcVar3 = *(code **)(**(long **)(*param_1 + 0x10) + 0x18);\n            if (pcVar3 == FUN_001b8d10) {\n              cVar6 = (**(code **)(**(long **)(*param_1 + 0x10) + 0x1d0))();\n            }\n            else {\n              cVar6 = (*pcVar3)();\n            }\n            uVar5 = (ushort)*local_70;\n            if (cVar6 != '\0') {\n              uVar5 = CONCAT11((byte)*local_70,*(byte *)((long)local_70 + 1));\n            }\n            local_70 = (uint *)((long)local_70 + 2);\n            puStack_50 = (uint *)(ulong)uVar5;\n          }" else (compound_statement "{\n            if (uVar8 != 5) {\n              if (uVar8 != 6) {\n                return 0;\n              }\n              pcVar3 = *(code **)(**(long **)(*param_1 + 0x10) + 0x18);\n              if (pcVar3 == FUN_001b8d10) {\n                cVar6 = (**(code **)(**(long **)(*param_1 + 0x10) + 0x1d0))();\n              }\n              else {\n                cVar6 = (*pcVar3)();\n              }\n              uVar9 = *local_70;\n              if (cVar6 != '\0') {\n                uVar9 = uVar9 >> 0x18 | (uVar9 & 0xff0000) >> 8 | (uVar9 & 0xff00) << 8 |\n                        uVar9 << 0x18;\n              }\n              local_60 = (uint *)(ulong)uVar9;\n              local_70 = local_70 + 1;\n              goto LAB_00302d40;\n            }\n            pcVar3 = *(code **)(**(long **)(*param_1 + 0x10) + 0x18);\n            if (pcVar3 == FUN_001b8d10) {\n              cVar6 = (**(code **)(**(long **)(*param_1 + 0x10) + 0x1d0))();\n            }\n            else {\n              cVar6 = (*pcVar3)();\n            }\n            uVar5 = (ushort)*local_70;\n            if (cVar6 != '\0') {\n              uVar5 = CONCAT11((byte)*local_70,*(byte *)((long)local_70 + 1));\n            }\n            local_70 = (uint *)((long)local_70 + 2);\n            puStack_50 = (uint *)(ulong)uVar5;\n          }" { (if_statement "if (uVar8 != 5) {\n              if (uVar8 != 6) {\n                return 0;\n              }\n              pcVar3 = *(code **)(**(long **)(*param_1 + 0x10) + 0x18);\n              if (pcVar3 == FUN_001b8d10) {\n                cVar6 = (**(code **)(**(long **)(*param_1 + 0x10) + 0x1d0))();\n              }\n              else {\n                cVar6 = (*pcVar3)();\n              }\n              uVar9 = *local_70;\n              if (cVar6 != '\0') {\n                uVar9 = uVar9 >> 0x18 | (uVar9 & 0xff0000) >> 8 | (uVar9 & 0xff00) << 8 |\n                        uVar9 << 0x18;\n              }\n              local_60 = (uint *)(ulong)uVar9;\n              local_70 = local_70 + 1;\n              goto LAB_00302d40;\n            }" if (parenthesized_expression "(uVar8 != 5)" ( (binary_expression "uVar8 != 5" identifier != number_literal) )) (compound_statement "{\n              if (uVar8 != 6) {\n                return 0;\n              }\n              pcVar3 = *(code **)(**(long **)(*param_1 + 0x10) + 0x18);\n              if (pcVar3 == FUN_001b8d10) {\n                cVar6 = (**(code **)(**(long **)(*param_1 + 0x10) + 0x1d0))();\n              }\n              else {\n                cVar6 = (*pcVar3)();\n              }\n              uVar9 = *local_70;\n              if (cVar6 != '\0') {\n                uVar9 = uVar9 >> 0x18 | (uVar9 & 0xff0000) >> 8 | (uVar9 & 0xff00) << 8 |\n                        uVar9 << 0x18;\n              }\n              local_60 = (uint *)(ulong)uVar9;\n              local_70 = local_70 + 1;\n              goto LAB_00302d40;\n            }" { (if_statement "if (uVar8 != 6) {\n                return 0;\n              }" if (parenthesized_expression "(uVar8 != 6)" ( (binary_expression "uVar8 != 6" identifier != number_literal) )) (compound_statement "{\n                return 0;\n              }" { (return_statement "return 0;" return number_literal ;) })) (expression_statement "pcVar3 = *(code **)(**(long **)(*param_1 + 0x10) + 0x18);" (assignment_expression "pcVar3 = *(code **)(**(long **)(*param_1 + 0x10) + 0x18)" identifier = (pointer_expression "*(code **)(**(long **)(*param_1 + 0x10) + 0x18)" * (cast_expression "(code **)(**(long **)(*param_1 + 0x10) + 0x18)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(**(long **)(*param_1 + 0x10) + 0x18)" ( (binary_expression "**(long **)(*param_1 + 0x10) + 0x18" (pointer_expression "**(long **)(*param_1 + 0x10)" * (pointer_expression "*(long **)(*param_1 + 0x10)" * (cast_expression "(long **)(*param_1 + 0x10)" ( (type_descriptor "long **" (sized_type_specifier "long" long) (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(*param_1 + 0x10)" ( (binary_expression "*param_1 + 0x10" (pointer_expression "*param_1" * identifier) + number_literal) ))))) + number_literal) ))))) ;) (if_statement "if (pcVar3 == FUN_001b8d10) {\n                cVar6 = (**(code **)(**(long **)(*param_1 + 0x10) + 0x1d0))();\n              }\n              else {\n                cVar6 = (*pcVar3)();\n              }" if (parenthesized_expression "(pcVar3 == FUN_001b8d10)" ( (binary_expression "pcVar3 == FUN_001b8d10" identifier == identifier) )) (compound_statement "{\n                cVar6 = (**(code **)(**(long **)(*param_1 + 0x10) + 0x1d0))();\n              }" { (expression_statement "cVar6 = (**(code **)(**(long **)(*param_1 + 0x10) + 0x1d0))();" (assignment_expression "cVar6 = (**(code **)(**(long **)(*param_1 + 0x10) + 0x1d0))()" identifier = (call_expression "(**(code **)(**(long **)(*param_1 + 0x10) + 0x1d0))()" (parenthesized_expression "(**(code **)(**(long **)(*param_1 + 0x10) + 0x1d0))" ( (pointer_expression "**(code **)(**(long **)(*param_1 + 0x10) + 0x1d0)" * (pointer_expression "*(code **)(**(long **)(*param_1 + 0x10) + 0x1d0)" * (cast_expression "(code **)(**(long **)(*param_1 + 0x10) + 0x1d0)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(**(long **)(*param_1 + 0x10) + 0x1d0)" ( (binary_expression "**(long **)(*param_1 + 0x10) + 0x1d0" (pointer_expression "**(long **)(*param_1 + 0x10)" * (pointer_expression "*(long **)(*param_1 + 0x10)" * (cast_expression "(long **)(*param_1 + 0x10)" ( (type_descriptor "long **" (sized_type_specifier "long" long) (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(*param_1 + 0x10)" ( (binary_expression "*param_1 + 0x10" (pointer_expression "*param_1" * identifier) + number_literal) ))))) + number_literal) ))))) )) (argument_list "()" ( )))) ;) }) (else_clause "else {\n                cVar6 = (*pcVar3)();\n              }" else (compound_statement "{\n                cVar6 = (*pcVar3)();\n              }" { (expression_statement "cVar6 = (*pcVar3)();" (assignment_expression "cVar6 = (*pcVar3)()" identifier = (call_expression "(*pcVar3)()" (parenthesized_expression "(*pcVar3)" ( (pointer_expression "*pcVar3" * identifier) )) (argument_list "()" ( )))) ;) }))) (expression_statement "uVar9 = *local_70;" (assignment_expression "uVar9 = *local_70" identifier = (pointer_expression "*local_70" * identifier)) ;) (if_statement "if (cVar6 != '\0') {\n                uVar9 = uVar9 >> 0x18 | (uVar9 & 0xff0000) >> 8 | (uVar9 & 0xff00) << 8 |\n                        uVar9 << 0x18;\n              }" if (parenthesized_expression "(cVar6 != '\0')" ( (binary_expression "cVar6 != '\0'" identifier != (char_literal "'\0'" ' escape_sequence ')) )) (compound_statement "{\n                uVar9 = uVar9 >> 0x18 | (uVar9 & 0xff0000) >> 8 | (uVar9 & 0xff00) << 8 |\n                        uVar9 << 0x18;\n              }" { (expression_statement "uVar9 = uVar9 >> 0x18 | (uVar9 & 0xff0000) >> 8 | (uVar9 & 0xff00) << 8 |\n                        uVar9 << 0x18;" (assignment_expression "uVar9 = uVar9 >> 0x18 | (uVar9 & 0xff0000) >> 8 | (uVar9 & 0xff00) << 8 |\n                        uVar9 << 0x18" identifier = (binary_expression "uVar9 >> 0x18 | (uVar9 & 0xff0000) >> 8 | (uVar9 & 0xff00) << 8 |\n                        uVar9 << 0x18" (binary_expression "uVar9 >> 0x18 | (uVar9 & 0xff0000) >> 8 | (uVar9 & 0xff00) << 8" (binary_expression "uVar9 >> 0x18 | (uVar9 & 0xff0000) >> 8" (binary_expression "uVar9 >> 0x18" identifier >> number_literal) | (binary_expression "(uVar9 & 0xff0000) >> 8" (parenthesized_expression "(uVar9 & 0xff0000)" ( (binary_expression "uVar9 & 0xff0000" identifier & number_literal) )) >> number_literal)) | (binary_expression "(uVar9 & 0xff00) << 8" (parenthesized_expression "(uVar9 & 0xff00)" ( (binary_expression "uVar9 & 0xff00" identifier & number_literal) )) << number_literal)) | (binary_expression "uVar9 << 0x18" identifier << number_literal))) ;) })) (expression_statement "local_60 = (uint *)(ulong)uVar9;" (assignment_expression "local_60 = (uint *)(ulong)uVar9" identifier = (cast_expression "(uint *)(ulong)uVar9" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (cast_expression "(ulong)uVar9" ( (type_descriptor "ulong" type_identifier) ) identifier))) ;) (expression_statement "local_70 = local_70 + 1;" (assignment_expression "local_70 = local_70 + 1" identifier = (binary_expression "local_70 + 1" identifier + number_literal)) ;) (goto_statement "goto LAB_00302d40;" goto statement_identifier ;) })) (expression_statement "pcVar3 = *(code **)(**(long **)(*param_1 + 0x10) + 0x18);" (assignment_expression "pcVar3 = *(code **)(**(long **)(*param_1 + 0x10) + 0x18)" identifier = (pointer_expression "*(code **)(**(long **)(*param_1 + 0x10) + 0x18)" * (cast_expression "(code **)(**(long **)(*param_1 + 0x10) + 0x18)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(**(long **)(*param_1 + 0x10) + 0x18)" ( (binary_expression "**(long **)(*param_1 + 0x10) + 0x18" (pointer_expression "**(long **)(*param_1 + 0x10)" * (pointer_expression "*(long **)(*param_1 + 0x10)" * (cast_expression "(long **)(*param_1 + 0x10)" ( (type_descriptor "long **" (sized_type_specifier "long" long) (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(*param_1 + 0x10)" ( (binary_expression "*param_1 + 0x10" (pointer_expression "*param_1" * identifier) + number_literal) ))))) + number_literal) ))))) ;) (if_statement "if (pcVar3 == FUN_001b8d10) {\n              cVar6 = (**(code **)(**(long **)(*param_1 + 0x10) + 0x1d0))();\n            }\n            else {\n              cVar6 = (*pcVar3)();\n            }" if (parenthesized_expression "(pcVar3 == FUN_001b8d10)" ( (binary_expression "pcVar3 == FUN_001b8d10" identifier == identifier) )) (compound_statement "{\n              cVar6 = (**(code **)(**(long **)(*param_1 + 0x10) + 0x1d0))();\n            }" { (expression_statement "cVar6 = (**(code **)(**(long **)(*param_1 + 0x10) + 0x1d0))();" (assignment_expression "cVar6 = (**(code **)(**(long **)(*param_1 + 0x10) + 0x1d0))()" identifier = (call_expression "(**(code **)(**(long **)(*param_1 + 0x10) + 0x1d0))()" (parenthesized_expression "(**(code **)(**(long **)(*param_1 + 0x10) + 0x1d0))" ( (pointer_expression "**(code **)(**(long **)(*param_1 + 0x10) + 0x1d0)" * (pointer_expression "*(code **)(**(long **)(*param_1 + 0x10) + 0x1d0)" * (cast_expression "(code **)(**(long **)(*param_1 + 0x10) + 0x1d0)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(**(long **)(*param_1 + 0x10) + 0x1d0)" ( (binary_expression "**(long **)(*param_1 + 0x10) + 0x1d0" (pointer_expression "**(long **)(*param_1 + 0x10)" * (pointer_expression "*(long **)(*param_1 + 0x10)" * (cast_expression "(long **)(*param_1 + 0x10)" ( (type_descriptor "long **" (sized_type_specifier "long" long) (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(*param_1 + 0x10)" ( (binary_expression "*param_1 + 0x10" (pointer_expression "*param_1" * identifier) + number_literal) ))))) + number_literal) ))))) )) (argument_list "()" ( )))) ;) }) (else_clause "else {\n              cVar6 = (*pcVar3)();\n            }" else (compound_statement "{\n              cVar6 = (*pcVar3)();\n            }" { (expression_statement "cVar6 = (*pcVar3)();" (assignment_expression "cVar6 = (*pcVar3)()" identifier = (call_expression "(*pcVar3)()" (parenthesized_expression "(*pcVar3)" ( (pointer_expression "*pcVar3" * identifier) )) (argument_list "()" ( )))) ;) }))) (expression_statement "uVar5 = (ushort)*local_70;" (assignment_expression "uVar5 = (ushort)*local_70" identifier = (binary_expression "(ushort)*local_70" (parenthesized_expression "(ushort)" ( identifier )) * identifier)) ;) (if_statement "if (cVar6 != '\0') {\n              uVar5 = CONCAT11((byte)*local_70,*(byte *)((long)local_70 + 1));\n            }" if (parenthesized_expression "(cVar6 != '\0')" ( (binary_expression "cVar6 != '\0'" identifier != (char_literal "'\0'" ' escape_sequence ')) )) (compound_statement "{\n              uVar5 = CONCAT11((byte)*local_70,*(byte *)((long)local_70 + 1));\n            }" { (expression_statement "uVar5 = CONCAT11((byte)*local_70,*(byte *)((long)local_70 + 1));" (assignment_expression "uVar5 = CONCAT11((byte)*local_70,*(byte *)((long)local_70 + 1))" identifier = (call_expression "CONCAT11((byte)*local_70,*(byte *)((long)local_70 + 1))" identifier (argument_list "((byte)*local_70,*(byte *)((long)local_70 + 1))" ( (binary_expression "(byte)*local_70" (parenthesized_expression "(byte)" ( identifier )) * identifier) , (pointer_expression "*(byte *)((long)local_70 + 1)" * (cast_expression "(byte *)((long)local_70 + 1)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((long)local_70 + 1)" ( (binary_expression "(long)local_70 + 1" (cast_expression "(long)local_70" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) identifier) + number_literal) )))) )))) ;) })) (expression_statement "local_70 = (uint *)((long)local_70 + 2);" (assignment_expression "local_70 = (uint *)((long)local_70 + 2)" identifier = (cast_expression "(uint *)((long)local_70 + 2)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((long)local_70 + 2)" ( (binary_expression "(long)local_70 + 2" (cast_expression "(long)local_70" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) identifier) + number_literal) )))) ;) (expression_statement "puStack_50 = (uint *)(ulong)uVar5;" (assignment_expression "puStack_50 = (uint *)(ulong)uVar5" identifier = (cast_expression "(uint *)(ulong)uVar5" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (cast_expression "(ulong)uVar5" ( (type_descriptor "ulong" type_identifier) ) identifier))) ;) }))))) (goto_statement "goto joined_r0x00302748;" goto statement_identifier ;) })) (if_statement "if (uVar8 == 10) {\n          puStack_50 = (uint *)((long)local_70 + 1);\n          uVar9 = *local_70;\n          local_70 = (uint *)((long)puStack_50 + (ulong)(byte)uVar9);\n          local_48 = (uint)(byte)uVar9;\n          goto joined_r0x00302748;\n        }" if (parenthesized_expression "(uVar8 == 10)" ( (binary_expression "uVar8 == 10" identifier == number_literal) )) (compound_statement "{\n          puStack_50 = (uint *)((long)local_70 + 1);\n          uVar9 = *local_70;\n          local_70 = (uint *)((long)puStack_50 + (ulong)(byte)uVar9);\n          local_48 = (uint)(byte)uVar9;\n          goto joined_r0x00302748;\n        }" { (expression_statement "puStack_50 = (uint *)((long)local_70 + 1);" (assignment_expression "puStack_50 = (uint *)((long)local_70 + 1)" identifier = (cast_expression "(uint *)((long)local_70 + 1)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((long)local_70 + 1)" ( (binary_expression "(long)local_70 + 1" (cast_expression "(long)local_70" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) identifier) + number_literal) )))) ;) (expression_statement "uVar9 = *local_70;" (assignment_expression "uVar9 = *local_70" identifier = (pointer_expression "*local_70" * identifier)) ;) (expression_statement "local_70 = (uint *)((long)puStack_50 + (ulong)(byte)uVar9);" (assignment_expression "local_70 = (uint *)((long)puStack_50 + (ulong)(byte)uVar9)" identifier = (cast_expression "(uint *)((long)puStack_50 + (ulong)(byte)uVar9)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((long)puStack_50 + (ulong)(byte)uVar9)" ( (binary_expression "(long)puStack_50 + (ulong)(byte)uVar9" (cast_expression "(long)puStack_50" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) identifier) + (cast_expression "(ulong)(byte)uVar9" ( (type_descriptor "ulong" type_identifier) ) (cast_expression "(byte)uVar9" ( (type_descriptor "byte" type_identifier) ) identifier))) )))) ;) (expression_statement "local_48 = (uint)(byte)uVar9;" (assignment_expression "local_48 = (uint)(byte)uVar9" identifier = (cast_expression "(uint)(byte)uVar9" ( (type_descriptor "uint" type_identifier) ) (cast_expression "(byte)uVar9" ( (type_descriptor "byte" type_identifier) ) identifier))) ;) (goto_statement "goto joined_r0x00302748;" goto statement_identifier ;) })) (if_statement "if (uVar8 < 0xb) {\n          if (uVar8 != 8) {\n            if (uVar8 != 9) {\n              return 0;\n            }\n            goto LAB_00302a09;\n          }\n          puStack_50 = local_70;\n          local_68 = strlen((char *)local_70);\n          local_70 = (uint *)((long)puVar11 + local_68 + 1);\n          if (uVar2 == 0x31) goto LAB_00302750;\n          if (0x31 < uVar2) {\n            if ((uVar2 != 0x6e) && (uVar2 != 0x2007)) goto LAB_00302750;\n            goto LAB_003029eb;\n          }\n          if ((uVar2 == 1) || (uVar2 != 3)) goto LAB_00302750;\n          goto LAB_003029c7;\n        }" if (parenthesized_expression "(uVar8 < 0xb)" ( (binary_expression "uVar8 < 0xb" identifier < number_literal) )) (compound_statement "{\n          if (uVar8 != 8) {\n            if (uVar8 != 9) {\n              return 0;\n            }\n            goto LAB_00302a09;\n          }\n          puStack_50 = local_70;\n          local_68 = strlen((char *)local_70);\n          local_70 = (uint *)((long)puVar11 + local_68 + 1);\n          if (uVar2 == 0x31) goto LAB_00302750;\n          if (0x31 < uVar2) {\n            if ((uVar2 != 0x6e) && (uVar2 != 0x2007)) goto LAB_00302750;\n            goto LAB_003029eb;\n          }\n          if ((uVar2 == 1) || (uVar2 != 3)) goto LAB_00302750;\n          goto LAB_003029c7;\n        }" { (if_statement "if (uVar8 != 8) {\n            if (uVar8 != 9) {\n              return 0;\n            }\n            goto LAB_00302a09;\n          }" if (parenthesized_expression "(uVar8 != 8)" ( (binary_expression "uVar8 != 8" identifier != number_literal) )) (compound_statement "{\n            if (uVar8 != 9) {\n              return 0;\n            }\n            goto LAB_00302a09;\n          }" { (if_statement "if (uVar8 != 9) {\n              return 0;\n            }" if (parenthesized_expression "(uVar8 != 9)" ( (binary_expression "uVar8 != 9" identifier != number_literal) )) (compound_statement "{\n              return 0;\n            }" { (return_statement "return 0;" return number_literal ;) })) (goto_statement "goto LAB_00302a09;" goto statement_identifier ;) })) (expression_statement "puStack_50 = local_70;" (assignment_expression "puStack_50 = local_70" identifier = identifier) ;) (expression_statement "local_68 = strlen((char *)local_70);" (assignment_expression "local_68 = strlen((char *)local_70)" identifier = (call_expression "strlen((char *)local_70)" identifier (argument_list "((char *)local_70)" ( (cast_expression "(char *)local_70" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) identifier) )))) ;) (expression_statement "local_70 = (uint *)((long)puVar11 + local_68 + 1);" (assignment_expression "local_70 = (uint *)((long)puVar11 + local_68 + 1)" identifier = (cast_expression "(uint *)((long)puVar11 + local_68 + 1)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((long)puVar11 + local_68 + 1)" ( (binary_expression "(long)puVar11 + local_68 + 1" (binary_expression "(long)puVar11 + local_68" (cast_expression "(long)puVar11" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) identifier) + identifier) + number_literal) )))) ;) (if_statement "if (uVar2 == 0x31) goto LAB_00302750;" if (parenthesized_expression "(uVar2 == 0x31)" ( (binary_expression "uVar2 == 0x31" identifier == number_literal) )) (goto_statement "goto LAB_00302750;" goto statement_identifier ;)) (if_statement "if (0x31 < uVar2) {\n            if ((uVar2 != 0x6e) && (uVar2 != 0x2007)) goto LAB_00302750;\n            goto LAB_003029eb;\n          }" if (parenthesized_expression "(0x31 < uVar2)" ( (binary_expression "0x31 < uVar2" number_literal < identifier) )) (compound_statement "{\n            if ((uVar2 != 0x6e) && (uVar2 != 0x2007)) goto LAB_00302750;\n            goto LAB_003029eb;\n          }" { (if_statement "if ((uVar2 != 0x6e) && (uVar2 != 0x2007)) goto LAB_00302750;" if (parenthesized_expression "((uVar2 != 0x6e) && (uVar2 != 0x2007))" ( (binary_expression "(uVar2 != 0x6e) && (uVar2 != 0x2007)" (parenthesized_expression "(uVar2 != 0x6e)" ( (binary_expression "uVar2 != 0x6e" identifier != number_literal) )) && (parenthesized_expression "(uVar2 != 0x2007)" ( (binary_expression "uVar2 != 0x2007" identifier != number_literal) ))) )) (goto_statement "goto LAB_00302750;" goto statement_identifier ;)) (goto_statement "goto LAB_003029eb;" goto statement_identifier ;) })) (if_statement "if ((uVar2 == 1) || (uVar2 != 3)) goto LAB_00302750;" if (parenthesized_expression "((uVar2 == 1) || (uVar2 != 3))" ( (binary_expression "(uVar2 == 1) || (uVar2 != 3)" (parenthesized_expression "(uVar2 == 1)" ( (binary_expression "uVar2 == 1" identifier == number_literal) )) || (parenthesized_expression "(uVar2 != 3)" ( (binary_expression "uVar2 != 3" identifier != number_literal) ))) )) (goto_statement "goto LAB_00302750;" goto statement_identifier ;)) (goto_statement "goto LAB_003029c7;" goto statement_identifier ;) })) (if_statement "if (uVar8 < 0xd) {\n          uVar9 = *local_70;\n          local_70 = (uint *)((long)local_70 + 1);\n          puStack_50 = (uint *)(ulong)(byte)uVar9;\n          goto LAB_00302f92;\n        }" if (parenthesized_expression "(uVar8 < 0xd)" ( (binary_expression "uVar8 < 0xd" identifier < number_literal) )) (compound_statement "{\n          uVar9 = *local_70;\n          local_70 = (uint *)((long)local_70 + 1);\n          puStack_50 = (uint *)(ulong)(byte)uVar9;\n          goto LAB_00302f92;\n        }" { (expression_statement "uVar9 = *local_70;" (assignment_expression "uVar9 = *local_70" identifier = (pointer_expression "*local_70" * identifier)) ;) (expression_statement "local_70 = (uint *)((long)local_70 + 1);" (assignment_expression "local_70 = (uint *)((long)local_70 + 1)" identifier = (cast_expression "(uint *)((long)local_70 + 1)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((long)local_70 + 1)" ( (binary_expression "(long)local_70 + 1" (cast_expression "(long)local_70" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) identifier) + number_literal) )))) ;) (expression_statement "puStack_50 = (uint *)(ulong)(byte)uVar9;" (assignment_expression "puStack_50 = (uint *)(ulong)(byte)uVar9" identifier = (cast_expression "(uint *)(ulong)(byte)uVar9" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (cast_expression "(ulong)(byte)uVar9" ( (type_descriptor "ulong" type_identifier) ) (cast_expression "(byte)uVar9" ( (type_descriptor "byte" type_identifier) ) identifier)))) ;) (goto_statement "goto LAB_00302f92;" goto statement_identifier ;) })) (expression_statement "bVar1 = (byte)*local_70;" (assignment_expression "bVar1 = (byte)*local_70" identifier = (binary_expression "(byte)*local_70" (parenthesized_expression "(byte)" ( identifier )) * identifier)) ;) (expression_statement "puVar11 = (uint *)((long)local_70 + 1);" (assignment_expression "puVar11 = (uint *)((long)local_70 + 1)" identifier = (cast_expression "(uint *)((long)local_70 + 1)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((long)local_70 + 1)" ( (binary_expression "(long)local_70 + 1" (cast_expression "(long)local_70" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) identifier) + number_literal) )))) ;) (if_statement "if ((char)bVar1 < '\0') {\n          puStack_50 = (uint *)FUN_00211340(puVar11,&local_68);\n          puVar11 = (uint *)(local_68 + (long)local_70);\n        }\n        else {\n          local_68 = 1;\n          puStack_50 = (uint *)(ulong)bVar1;\n          if ((bVar1 & 0x40) != 0) {\n            puStack_50 = (uint *)((ulong)bVar1 | 0xffffffffffffff80);\n          }\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          puStack_50 = (uint *)FUN_00211340(puVar11,&local_68);\n          puVar11 = (uint *)(local_68 + (long)local_70);\n        }" { (expression_statement "puStack_50 = (uint *)FUN_00211340(puVar11,&local_68);" (assignment_expression "puStack_50 = (uint *)FUN_00211340(puVar11,&local_68)" identifier = (cast_expression "(uint *)FUN_00211340(puVar11,&local_68)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (call_expression "FUN_00211340(puVar11,&local_68)" identifier (argument_list "(puVar11,&local_68)" ( identifier , (pointer_expression "&local_68" & identifier) ))))) ;) (expression_statement "puVar11 = (uint *)(local_68 + (long)local_70);" (assignment_expression "puVar11 = (uint *)(local_68 + (long)local_70)" identifier = (cast_expression "(uint *)(local_68 + (long)local_70)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(local_68 + (long)local_70)" ( (binary_expression "local_68 + (long)local_70" identifier + (cast_expression "(long)local_70" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) identifier)) )))) ;) }) (else_clause "else {\n          local_68 = 1;\n          puStack_50 = (uint *)(ulong)bVar1;\n          if ((bVar1 & 0x40) != 0) {\n            puStack_50 = (uint *)((ulong)bVar1 | 0xffffffffffffff80);\n          }\n        }" else (compound_statement "{\n          local_68 = 1;\n          puStack_50 = (uint *)(ulong)bVar1;\n          if ((bVar1 & 0x40) != 0) {\n            puStack_50 = (uint *)((ulong)bVar1 | 0xffffffffffffff80);\n          }\n        }" { (expression_statement "local_68 = 1;" (assignment_expression "local_68 = 1" identifier = number_literal) ;) (expression_statement "puStack_50 = (uint *)(ulong)bVar1;" (assignment_expression "puStack_50 = (uint *)(ulong)bVar1" identifier = (cast_expression "(uint *)(ulong)bVar1" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (cast_expression "(ulong)bVar1" ( (type_descriptor "ulong" type_identifier) ) identifier))) ;) (if_statement "if ((bVar1 & 0x40) != 0) {\n            puStack_50 = (uint *)((ulong)bVar1 | 0xffffffffffffff80);\n          }" if (parenthesized_expression "((bVar1 & 0x40) != 0)" ( (binary_expression "(bVar1 & 0x40) != 0" (parenthesized_expression "(bVar1 & 0x40)" ( (binary_expression "bVar1 & 0x40" identifier & number_literal) )) != number_literal) )) (compound_statement "{\n            puStack_50 = (uint *)((ulong)bVar1 | 0xffffffffffffff80);\n          }" { (expression_statement "puStack_50 = (uint *)((ulong)bVar1 | 0xffffffffffffff80);" (assignment_expression "puStack_50 = (uint *)((ulong)bVar1 | 0xffffffffffffff80)" identifier = (cast_expression "(uint *)((ulong)bVar1 | 0xffffffffffffff80)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((ulong)bVar1 | 0xffffffffffffff80)" ( (binary_expression "(ulong)bVar1 | 0xffffffffffffff80" (cast_expression "(ulong)bVar1" ( (type_descriptor "ulong" type_identifier) ) identifier) | number_literal) )))) ;) })) }))) (expression_statement "local_70 = puVar11;" (assignment_expression "local_70 = puVar11" identifier = identifier) ;) (if_statement "if ((uVar2 == 0x31) || (uVar2 < 0x32)) goto LAB_00302750;" if (parenthesized_expression "((uVar2 == 0x31) || (uVar2 < 0x32))" ( (binary_expression "(uVar2 == 0x31) || (uVar2 < 0x32)" (parenthesized_expression "(uVar2 == 0x31)" ( (binary_expression "uVar2 == 0x31" identifier == number_literal) )) || (parenthesized_expression "(uVar2 < 0x32)" ( (binary_expression "uVar2 < 0x32" identifier < number_literal) ))) )) (goto_statement "goto LAB_00302750;" goto statement_identifier ;)) (if_statement "if ((uVar2 == 0x6e) || (uVar2 == 0x2007)) goto LAB_00302fbe;" if (parenthesized_expression "((uVar2 == 0x6e) || (uVar2 == 0x2007))" ( (binary_expression "(uVar2 == 0x6e) || (uVar2 == 0x2007)" (parenthesized_expression "(uVar2 == 0x6e)" ( (binary_expression "uVar2 == 0x6e" identifier == number_literal) )) || (parenthesized_expression "(uVar2 == 0x2007)" ( (binary_expression "uVar2 == 0x2007" identifier == number_literal) ))) )) (goto_statement "goto LAB_00302fbe;" goto statement_identifier ;)) (expression_statement "puVar16 = (undefined8 *)param_1[8];" (assignment_expression "puVar16 = (undefined8 *)param_1[8]" identifier = (cast_expression "(undefined8 *)param_1[8]" ( (type_descriptor "undefined8 *" type_identifier (abstract_pointer_declarator "*" *)) ) (subscript_expression "param_1[8]" identifier [ number_literal ]))) ;) (if_statement "if (puVar16 == (undefined8 *)param_1[9]) goto LAB_003028c0;" if (parenthesized_expression "(puVar16 == (undefined8 *)param_1[9])" ( (binary_expression "puVar16 == (undefined8 *)param_1[9]" identifier == (cast_expression "(undefined8 *)param_1[9]" ( (type_descriptor "undefined8 *" type_identifier (abstract_pointer_declarator "*" *)) ) (subscript_expression "param_1[9]" identifier [ number_literal ]))) )) (goto_statement "goto LAB_003028c0;" goto statement_identifier ;)) (labeled_statement "LAB_0030275e:\n        *puVar16 = CONCAT44(uStack_54,local_58);" statement_identifier : (expression_statement "*puVar16 = CONCAT44(uStack_54,local_58);" (assignment_expression "*puVar16 = CONCAT44(uStack_54,local_58)" (pointer_expression "*puVar16" * identifier) = (call_expression "CONCAT44(uStack_54,local_58)" identifier (argument_list "(uStack_54,local_58)" ( identifier , identifier )))) ;)) (expression_statement "puVar16[1] = puStack_50;" (assignment_expression "puVar16[1] = puStack_50" (subscript_expression "puVar16[1]" identifier [ number_literal ]) = identifier) ;) (expression_statement "puVar16[2] = CONCAT44(uStack_44,local_48);" (assignment_expression "puVar16[2] = CONCAT44(uStack_44,local_48)" (subscript_expression "puVar16[2]" identifier [ number_literal ]) = (call_expression "CONCAT44(uStack_44,local_48)" identifier (argument_list "(uStack_44,local_48)" ( identifier , identifier )))) ;) (expression_statement "param_1[8] = (long)(puVar16 + 3);" (assignment_expression "param_1[8] = (long)(puVar16 + 3)" (subscript_expression "param_1[8]" identifier [ number_literal ]) = (cast_expression "(long)(puVar16 + 3)" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) (parenthesized_expression "(puVar16 + 3)" ( (binary_expression "puVar16 + 3" identifier + number_literal) )))) ;) }))) (expression_statement "lVar20 = lVar20 + 8;" (assignment_expression "lVar20 = lVar20 + 8" identifier = (binary_expression "lVar20 + 8" identifier + number_literal)) ;) (expression_statement "lVar10 = param_1[6];" (assignment_expression "lVar10 = param_1[6]" identifier = (subscript_expression "param_1[6]" identifier [ number_literal ])) ;) }) while (parenthesized_expression "(lVar20 != (ulong)(iVar13 - 1) * 8 + 8)" ( (binary_expression "lVar20 != (ulong)(iVar13 - 1) * 8 + 8" identifier != (binary_expression "(ulong)(iVar13 - 1) * 8 + 8" (binary_expression "(ulong)(iVar13 - 1) * 8" (call_expression "(ulong)(iVar13 - 1)" (parenthesized_expression "(ulong)" ( identifier )) (argument_list "(iVar13 - 1)" ( (binary_expression "iVar13 - 1" identifier - number_literal) ))) * number_literal) + number_literal)) )) ;) }))) (if_statement "if (lVar10 == 0) {\n                    /* WARNING: Subroutine does not return */\n    FUN_001e9890("../../gold/dwarf_reader.h",0x206,"has_children");\n  }" if (parenthesized_expression "(lVar10 == 0)" ( (binary_expression "lVar10 == 0" identifier == number_literal) )) (compound_statement "{\n                    /* WARNING: Subroutine does not return */\n    FUN_001e9890("../../gold/dwarf_reader.h",0x206,"has_children");\n  }" { comment (expression_statement "FUN_001e9890("../../gold/dwarf_reader.h",0x206,"has_children");" (call_expression "FUN_001e9890("../../gold/dwarf_reader.h",0x206,"has_children")" identifier (argument_list "("../../gold/dwarf_reader.h",0x206,"has_children")" ( (string_literal ""../../gold/dwarf_reader.h"" " string_content ") , number_literal , (string_literal ""has_children"" " string_content ") ))) ;) })) (expression_statement "lVar18 = param_1[2];" (assignment_expression "lVar18 = param_1[2]" identifier = (subscript_expression "param_1[2]" identifier [ number_literal ])) ;) (labeled_statement "LAB_00302797:\n  pbVar15 = (byte *)((long)local_70 + (lVar18 - lVar12));" statement_identifier : (expression_statement "pbVar15 = (byte *)((long)local_70 + (lVar18 - lVar12));" (assignment_expression "pbVar15 = (byte *)((long)local_70 + (lVar18 - lVar12))" identifier = (cast_expression "(byte *)((long)local_70 + (lVar18 - lVar12))" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((long)local_70 + (lVar18 - lVar12))" ( (binary_expression "(long)local_70 + (lVar18 - lVar12)" (cast_expression "(long)local_70" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) identifier) + (parenthesized_expression "(lVar18 - lVar12)" ( (binary_expression "lVar18 - lVar12" identifier - identifier) ))) )))) ;)) (if_statement "if ((*(byte *)(lVar10 + 4) & 1) == 0) {\n    param_1[5] = (long)pbVar15;\n  }\n  else {\n    param_1[4] = (long)pbVar15;\n  }" if (parenthesized_expression "((*(byte *)(lVar10 + 4) & 1) == 0)" ( (binary_expression "(*(byte *)(lVar10 + 4) & 1) == 0" (parenthesized_expression "(*(byte *)(lVar10 + 4) & 1)" ( (binary_expression "*(byte *)(lVar10 + 4) & 1" (pointer_expression "*(byte *)(lVar10 + 4)" * (cast_expression "(byte *)(lVar10 + 4)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(lVar10 + 4)" ( (binary_expression "lVar10 + 4" identifier + number_literal) )))) & number_literal) )) == number_literal) )) (compound_statement "{\n    param_1[5] = (long)pbVar15;\n  }" { (expression_statement "param_1[5] = (long)pbVar15;" (assignment_expression "param_1[5] = (long)pbVar15" (subscript_expression "param_1[5]" identifier [ number_literal ]) = (cast_expression "(long)pbVar15" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) identifier)) ;) }) (else_clause "else {\n    param_1[4] = (long)pbVar15;\n  }" else (compound_statement "{\n    param_1[4] = (long)pbVar15;\n  }" { (expression_statement "param_1[4] = (long)pbVar15;" (assignment_expression "param_1[4] = (long)pbVar15" (subscript_expression "param_1[4]" identifier [ number_literal ]) = (cast_expression "(long)pbVar15" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) identifier)) ;) }))) (expression_statement "*(undefined1 *)(param_1 + 10) = 1;" (assignment_expression "*(undefined1 *)(param_1 + 10) = 1" (pointer_expression "*(undefined1 *)(param_1 + 10)" * (cast_expression "(undefined1 *)(param_1 + 10)" ( (type_descriptor "undefined1 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 10)" ( (binary_expression "param_1 + 10" identifier + number_literal) )))) = number_literal) ;) (return_statement "return 1;" return number_literal ;) })))
(translation_unit "/* WARNING: Type propagation algorithm not settling */\n/* DWARF original prototype: bool read_attributes(Dwarf_die * this) */\n\nbool __thiscall gold::Dwarf_die::read_attributes(Dwarf_die *this)\n\n{\n  byte bVar1;\n  uint uVar2;\n  uint uVar3;\n  pointer __src;\n  _func_int_varargs **pp_Var4;\n  _func_int_varargs *p_Var5;\n  pointer pAVar6;\n  ushort uVar7;\n  char cVar8;\n  anon_union_4_3_97895b06_for_aux aVar10;\n  uint uVar11;\n  Valtype VVar12;\n  Abbrev_code *pAVar13;\n  anon_union_8_5_56ef6665_for_val aVar14;\n  anon_union_8_5_56ef6665_for_val aVar15;\n  pointer __dest;\n  uint64_t uVar16;\n  uint *puVar17;\n  Valtype return_value;\n  uchar *puVar18;\n  int iVar19;\n  ulong uVar20;\n  uchar *attr_off;\n  iterator __position;\n  Dwarf_info_reader *pDVar21;\n  Relobj *pRVar22;\n  uchar *puVar23;\n  pointer pAVar24;\n  size_t __n;\n  long lVar25;\n  uchar *pattr;\n  size_t len;\n  off_t str_off;\n  Attribute_value attr_value;\n  int iVar9;\n  \n  pAVar13 = this->abbrev_code_;\n  if (pAVar13 == (Abbrev_code *)0x0) {\n                    /* WARNING: Subroutine does not return */\n    do_gold_unreachable("../../gold/dwarf_reader.cc",0x2a9,"read_attributes");\n  }\n  pDVar21 = this->dwinfo_;\n  lVar25 = this->die_offset_;\n  puVar18 = pDVar21->buffer_ + pDVar21->cu_offset_ + lVar25;\n  if (pDVar21->buffer_ + pDVar21->cu_offset_ + pDVar21->cu_length_ < puVar18 + 1) {\n    Dwarf_info_reader::warn_corrupt_debug_section(pDVar21);\n    return false;\n  }\n  if (puVar18 == (uchar *)0x0) {\n    return false;\n  }\n  __src = (this->attributes_).\n          super__Vector_base<gold::Dwarf_die::Attribute_value,_std::allocator<gold::Dwarf_die::Attribute_value>_>\n          ._M_impl._M_start;\n  pattr = puVar18 + this->attr_offset_;\n  uVar20 = (long)(pAVar13->attributes).\n                 super__Vector_base<gold::Dwarf_abbrev_table::Attribute,_std::allocator<gold::Dwarf_abbrev_table::Attribute>_>\n                 ._M_impl._M_finish -\n           (long)(pAVar13->attributes).\n                 super__Vector_base<gold::Dwarf_abbrev_table::Attribute,_std::allocator<gold::Dwarf_abbrev_table::Attribute>_>\n                 ._M_impl._M_start >> 3;\n  iVar19 = (int)uVar20;\n  uVar20 = uVar20 & 0xffffffff;\n  if ((ulong)(((long)(this->attributes_).\n                     super__Vector_base<gold::Dwarf_die::Attribute_value,_std::allocator<gold::Dwarf_die::Attribute_value>_>\n                     ._M_impl._M_end_of_storage - (long)__src >> 3) * -0x5555555555555555) < uVar20)\n  {\n    pAVar6 = (this->attributes_).\n             super__Vector_base<gold::Dwarf_die::Attribute_value,_std::allocator<gold::Dwarf_die::Attribute_value>_>\n             ._M_impl._M_finish;\n    __n = (long)pAVar6 - (long)__src;\n    if (uVar20 == 0) {\n      __dest = (pointer)0x0;\n      pAVar24 = __src;\n    }\n    else {\n      __dest = (pointer)operator_new(uVar20 * 0x18);\n      pAVar24 = (this->attributes_).\n                super__Vector_base<gold::Dwarf_die::Attribute_value,_std::allocator<gold::Dwarf_die::Attribute_value>_>\n                ._M_impl._M_start;\n    }\n    if (__src != pAVar6) {\n      __dest = (pointer)memmove(__dest,__src,__n);\n    }\n    if (pAVar24 != (pointer)0x0) {\n      operator_delete(pAVar24);\n    }\n    (this->attributes_).\n    super__Vector_base<gold::Dwarf_die::Attribute_value,_std::allocator<gold::Dwarf_die::Attribute_value>_>\n    ._M_impl._M_start = __dest;\n    pAVar13 = this->abbrev_code_;\n    (this->attributes_).\n    super__Vector_base<gold::Dwarf_die::Attribute_value,_std::allocator<gold::Dwarf_die::Attribute_value>_>\n    ._M_impl._M_finish = (pointer)(__n + (long)__dest);\n    (this->attributes_).\n    super__Vector_base<gold::Dwarf_die::Attribute_value,_std::allocator<gold::Dwarf_die::Attribute_value>_>\n    ._M_impl._M_end_of_storage = __dest + uVar20;\n    if (iVar19 != 0) goto LAB_00302642;\n  }\n  else {\n    if (iVar19 == 0) goto LAB_00302797;\nLAB_00302642:\n    lVar25 = 0;\n    do {\n      puVar17 = (uint *)((long)&((pAVar13->attributes).\n                                 super__Vector_base<gold::Dwarf_abbrev_table::Attribute,_std::allocator<gold::Dwarf_abbrev_table::Attribute>_>\n                                 ._M_impl._M_start)->attr + lVar25);\n      uVar11 = puVar17[1];\n      uVar2 = *puVar17;\n      if (uVar11 == 0x16) {\n        bVar1 = *pattr;\n        uVar11 = (uint)bVar1;\n        if ((char)bVar1 < '\0') {\n          uVar16 = read_unsigned_LEB_128_x(pattr + 1,&len,bVar1);\n          uVar11 = (uint)uVar16;\n          pattr = pattr + len;\n        }\n        else {\n          len = 1;\n          pattr = pattr + 1;\n        }\n      }\n      puVar23 = pattr;\n      attr_off = pattr + (this->die_offset_ - (long)puVar18);\n      attr_value.aux.shndx = 0;\n      attr_value.attr = uVar2;\n      attr_value.form = uVar11;\n      if (uVar11 == 0xe) {\n        pDVar21 = this->dwinfo_;\n        if (pDVar21->offset_size_ == 4) {\n          VVar12 = Dwarf_info_reader::read_from_pointer<32>(pDVar21,&pattr);\n          str_off = (off_t)VVar12;\n        }\n        else {\n          pp_Var4 = (pDVar21->object_->super_Object)._vptr_Object;\n          p_Var5 = pp_Var4[3];\n          if (p_Var5 == Relobj::is_big_endian) {\n            iVar9 = (*pp_Var4[0x3a])();\n            cVar8 = (char)iVar9;\n          }\n          else {\n            iVar9 = (*p_Var5)();\n            cVar8 = (char)iVar9;\n          }\n          str_off = *(off_t *)pattr;\n          if (cVar8 != '\0') {\n            str_off = (ulong)str_off >> 0x38 | (str_off & 0xff000000000000U) >> 0x28 |\n                      (str_off & 0xff0000000000U) >> 0x18 | (str_off & 0xff00000000U) >> 8 |\n                      (str_off & 0xff000000U) << 8 | (str_off & 0xff0000U) << 0x18 |\n                      (str_off & 0xff00U) << 0x28 | str_off << 0x38;\n          }\n          pattr = pattr + 8;\n        }\n        attr_value.aux.shndx =\n             Dwarf_info_reader::lookup_reloc(this->dwinfo_,(off_t)attr_off,&str_off);\n        attr_value.val.refval = str_off;\n        if (uVar2 != 0x31) {\n          if (uVar2 < 0x32) {\n            if ((uVar2 != 1) && (uVar2 == 3)) {\nLAB_00302f64:\n              this->string_shndx_ = (uint)attr_value.aux;\n              this->name_off_ = (off_t)attr_value.val;\n            }\n          }\n          else if ((uVar2 == 0x6e) || (uVar2 == 0x2007)) {\nLAB_00302fd0:\n            this->string_shndx_ = (uint)attr_value.aux;\n            this->linkage_name_off_ = (off_t)attr_value.val;\n          }\n        }\nLAB_00302750:\n        __position._M_current =\n             (this->attributes_).\n             super__Vector_base<gold::Dwarf_die::Attribute_value,_std::allocator<gold::Dwarf_die::Attribute_value>_>\n             ._M_impl._M_finish;\n        if (__position._M_current !=\n            (this->attributes_).\n            super__Vector_base<gold::Dwarf_die::Attribute_value,_std::allocator<gold::Dwarf_die::Attribute_value>_>\n            ._M_impl._M_end_of_storage) goto LAB_0030275e;\nLAB_003028c0:\n        std::\n        vector<gold::Dwarf_die::Attribute_value,_std::allocator<gold::Dwarf_die::Attribute_value>_>\n        ::_M_realloc_insert<const_gold::Dwarf_die::Attribute_value&>\n                  (&this->attributes_,__position,&attr_value);\n      }\n      else {\n        if (0xe < uVar11) {\n          if (uVar11 == 0x15) {\n            bVar1 = *pattr;\n            aVar15.intval._1_7_ = 0;\n            aVar15.uintval._0_1_ = bVar1;\n            if ((char)bVar1 < '\0') {\n              attr_value.val.uintval = read_unsigned_LEB_128_x(pattr + 1,&len,bVar1);\n              pattr = pattr + len;\n            }\n            else {\n              len = 1;\n              pattr = pattr + 1;\n              attr_value.val = aVar15;\n            }\njoined_r0x00303052:\n            if (uVar2 != 0x31) {\n              if (uVar2 < 0x32) {\nLAB_00302c20:\n                if ((uVar2 == 1) && (attr_value.aux.shndx == 0)) {\n                  this->sibling_offset_ = (off_t)attr_value.val;\n                }\n                goto LAB_00302750;\n              }\n              if ((uVar2 != 0x6e) && (uVar2 != 0x2007)) {\njoined_r0x00302ce3:\n                if (uVar2 == 0x47) {\n                  this->specification_ = (off_t)attr_value.val;\n                }\n                goto LAB_00302750;\n              }\nLAB_00302fb5:\n              if (uVar11 == 8) {\nLAB_003029eb:\n                this->linkage_name_ = (char *)attr_value.val;\n              }\n              else {\nLAB_00302fbe:\n                if (uVar11 == 0xe) goto LAB_00302fd0;\n              }\n              goto LAB_00302750;\n            }\n          }\n          else {\n            if (0x15 < uVar11) {\n              if (uVar11 != 0x19) {\n                if (uVar11 < 0x1a) {\n                  if (uVar11 == 0x17) {\n                    pDVar21 = this->dwinfo_;\n                    if (pDVar21->offset_size_ == 4) {\n                      VVar12 = Dwarf_info_reader::read_from_pointer<32>(pDVar21,&pattr);\n                      str_off = (off_t)VVar12;\n                    }\n                    else {\n                      pRVar22 = pDVar21->object_;\nLAB_00302fe7:\n                      pp_Var4 = (pRVar22->super_Object)._vptr_Object;\n                      p_Var5 = pp_Var4[3];\n                      if (p_Var5 == Relobj::is_big_endian) {\n                        iVar9 = (*pp_Var4[0x3a])();\n                        cVar8 = (char)iVar9;\n                      }\n                      else {\n                        iVar9 = (*p_Var5)();\n                        cVar8 = (char)iVar9;\n                      }\n                      str_off = *(off_t *)pattr;\n                      if (cVar8 != '\0') {\n                        str_off = (ulong)str_off >> 0x38 | (str_off & 0xff000000000000U) >> 0x28 |\n                                  (str_off & 0xff0000000000U) >> 0x18 |\n                                  (str_off & 0xff00000000U) >> 8 | (str_off & 0xff000000U) << 8 |\n                                  (str_off & 0xff0000U) << 0x18 | (str_off & 0xff00U) << 0x28 |\n                                  str_off << 0x38;\n                      }\n                      pattr = pattr + 8;\n                    }\nLAB_00303035:\n                    attr_value.aux.shndx =\n                         Dwarf_info_reader::lookup_reloc(this->dwinfo_,(off_t)attr_off,&str_off);\n                    attr_value.val.refval = str_off;\n                    goto joined_r0x00303052;\n                  }\n                  if (uVar11 != 0x18) {\n                    return false;\n                  }\nLAB_00302a09:\n                  bVar1 = *pattr;\n                  aVar10.shndx._1_3_ = 0;\n                  aVar10.shndx._0_1_ = bVar1;\n                  aVar15.stringval = (char *)(pattr + 1);\n                  if ((char)bVar1 < '\0') {\n                    uVar16 = read_unsigned_LEB_128_x(aVar15.blockval,&len,bVar1);\n                    aVar10.shndx = (uint)uVar16;\n                    aVar15.stringval = (char *)(pattr + len);\n                  }\n                  else {\n                    len = 1;\n                  }\n                  pattr = pattr + aVar10.shndx + len;\n                  attr_value.val = aVar15;\n                  attr_value.aux = aVar10;\n                }\n                else {\n                  if (uVar11 == 0x20) {\n                    pp_Var4 = (this->dwinfo_->object_->super_Object)._vptr_Object;\n                    p_Var5 = pp_Var4[3];\n                    if (p_Var5 == Relobj::is_big_endian) {\n                      iVar9 = (*pp_Var4[0x3a])();\n                      cVar8 = (char)iVar9;\n                    }\n                    else {\n                      iVar9 = (*p_Var5)();\n                      cVar8 = (char)iVar9;\n                    }\n                    /* WARNING: Load size is inaccurate */\n                    attr_value.val.blockval = *pattr;\n                    if (cVar8 != '\0') {\n                      attr_value.val.uintval =\n                           attr_value.val.uintval >> 0x38 |\n                           (attr_value.val.uintval & 0xff000000000000) >> 0x28 |\n                           (attr_value.val.uintval & 0xff0000000000) >> 0x18 |\n                           (attr_value.val.uintval & 0xff00000000) >> 8 |\n                           (attr_value.val.uintval & 0xff000000) << 8 |\n                           (attr_value.val.uintval & 0xff0000) << 0x18 |\n                           (attr_value.val.uintval & 0xff00) << 0x28 |\n                           attr_value.val.uintval << 0x38;\n                    }\n                    pattr = pattr + 8;\n                    goto LAB_00302ea9;\n                  }\n                  if (uVar11 < 0x20) {\n                    return false;\n                  }\n                  if (1 < uVar11 - 0x1f01) {\n                    return false;\n                  }\nLAB_00302bcd:\n                  bVar1 = *pattr;\n                  aVar14.intval._1_7_ = 0;\n                  aVar14.uintval._0_1_ = bVar1;\n                  if ((char)bVar1 < '\0') {\n                    attr_value.val.uintval = read_unsigned_LEB_128_x(pattr + 1,&len,bVar1);\n                    pattr = pattr + len;\n                  }\n                  else {\n                    len = 1;\n                    pattr = pattr + 1;\n                    attr_value.val = aVar14;\n                  }\n                }\nLAB_00302f92:\n                if (uVar2 == 0x31) goto LAB_00302750;\n                if (0x31 < uVar2) {\n                  if ((uVar2 == 0x6e) || (uVar2 == 0x2007)) goto LAB_00302fb5;\n                  goto LAB_00302750;\n                }\n                goto LAB_00302e3e;\n              }\n              attr_value.val.intval = 1;\nLAB_00302ea9:\n              if (((uVar2 == 0x31) || (0x31 < uVar2)) || (uVar2 != 3)) goto LAB_00302750;\nLAB_00302e52:\n              if (uVar11 == 8) {\nLAB_003029c7:\n                this->name_ = (char *)attr_value.val;\n              }\n              else if (uVar11 == 0xe) goto LAB_00302f64;\n              goto LAB_00302750;\n            }\n            if (uVar11 != 0x11) {\n              if (0x11 < uVar11) {\n                if (uVar11 == 0x13) {\n                  VVar12 = Dwarf_info_reader::read_from_pointer<32>(this->dwinfo_,&pattr);\n                  str_off = (off_t)VVar12;\n                  goto LAB_00303035;\n                }\n                if (0x13 < uVar11) {\n                  pRVar22 = this->dwinfo_->object_;\n                  goto LAB_00302fe7;\n                }\n                pp_Var4 = (this->dwinfo_->object_->super_Object)._vptr_Object;\n                p_Var5 = pp_Var4[3];\n                if (p_Var5 == Relobj::is_big_endian) {\n                  iVar9 = (*pp_Var4[0x3a])();\n                  cVar8 = (char)iVar9;\n                }\n                else {\n                  iVar9 = (*p_Var5)();\n                  cVar8 = (char)iVar9;\n                }\n                uVar7 = *(ushort *)pattr;\n                if (cVar8 != '\0') {\n                  uVar7 = CONCAT11(*pattr,pattr[1]);\n                }\n                attr_value.val.intval._2_6_ = 0;\n                attr_value.val.intval._0_2_ = uVar7;\n                pattr = pattr + 2;\n                goto joined_r0x00303052;\n              }\n              if (uVar11 == 0xf) goto LAB_00302bcd;\n              if (uVar11 != 0x10) {\n                return false;\n              }\n              pDVar21 = this->dwinfo_;\n              uVar11 = pDVar21->address_size_;\n              if (2 < pDVar21->cu_version_) {\n                uVar11 = pDVar21->offset_size_;\n              }\n              if (uVar11 != 4) goto LAB_00302a71;\nLAB_00302e7d:\n              VVar12 = Dwarf_info_reader::read_from_pointer<32>(pDVar21,&pattr);\n              str_off = (off_t)VVar12;\nLAB_00302abe:\n              attr_value.aux.shndx =\n                   Dwarf_info_reader::lookup_reloc(this->dwinfo_,(off_t)attr_off,&str_off);\n              attr_value.val.refval = str_off;\n              if (uVar2 == 0x31) goto LAB_00302965;\n              if (0x31 < uVar2) goto joined_r0x00302ccc;\n              goto LAB_00302c20;\n            }\n            puVar23 = pattr + 1;\n            attr_value.val.intval._1_7_ = 0;\n            attr_value.val.uintval._0_1_ = *pattr;\n            pattr = puVar23;\n            if (uVar2 != 0x31) {\n              if (uVar2 < 0x32) {\n                if (uVar2 == 1) {\n                  this->sibling_offset_ = (off_t)attr_value.val;\n                }\n                goto LAB_00302750;\n              }\njoined_r0x00302ccc:\n              if ((uVar2 == 0x6e) || (uVar2 == 0x2007)) goto LAB_00302750;\n              goto joined_r0x00302ce3;\n            }\n          }\nLAB_00302965:\n          this->abstract_origin_ = (off_t)attr_value.val;\n          goto LAB_00302750;\n        }\n        if (uVar11 == 7) {\n          pp_Var4 = (this->dwinfo_->object_->super_Object)._vptr_Object;\n          p_Var5 = pp_Var4[3];\n          if (p_Var5 == Relobj::is_big_endian) {\n            iVar9 = (*pp_Var4[0x3a])();\n            cVar8 = (char)iVar9;\n          }\n          else {\n            iVar9 = (*p_Var5)();\n            cVar8 = (char)iVar9;\n          }\n          str_off = *(off_t *)pattr;\n          if (cVar8 != '\0') {\n            str_off = (ulong)str_off >> 0x38 | (str_off & 0xff000000000000U) >> 0x28 |\n                      (str_off & 0xff0000000000U) >> 0x18 | (str_off & 0xff00000000U) >> 8 |\n                      (str_off & 0xff000000U) << 8 | (str_off & 0xff0000U) << 0x18 |\n                      (str_off & 0xff00U) << 0x28 | str_off << 0x38;\n          }\n          pattr = pattr + 8;\nLAB_00302d40:\n          attr_value.aux.shndx =\n               Dwarf_info_reader::lookup_reloc(this->dwinfo_,(off_t)attr_off,&str_off);\n          attr_value.val.refval = str_off;\njoined_r0x00302748:\n          if ((uVar2 != 0x31) && (uVar2 < 0x32)) {\nLAB_00302e3e:\n            if ((uVar2 != 1) && (uVar2 == 3)) goto LAB_00302e52;\n          }\n          goto LAB_00302750;\n        }\n        if (uVar11 < 8) {\n          if (uVar11 == 4) {\n            pp_Var4 = (this->dwinfo_->object_->super_Object)._vptr_Object;\n            p_Var5 = pp_Var4[3];\n            if (p_Var5 == Relobj::is_big_endian) {\n              iVar9 = (*pp_Var4[0x3a])();\n              cVar8 = (char)iVar9;\n            }\n            else {\n              iVar9 = (*p_Var5)();\n              cVar8 = (char)iVar9;\n            }\n            attr_value.aux.shndx = *(uint *)pattr;\n            if (cVar8 != '\0') {\n              attr_value.aux.shndx =\n                   attr_value.aux.shndx >> 0x18 | (attr_value.aux.shndx & 0xff0000) >> 8 |\n                   (attr_value.aux.shndx & 0xff00) << 8 | attr_value.aux.shndx << 0x18;\n            }\n            attr_value.val.stringval = (char *)(pattr + 4);\n            pattr = (uchar *)(attr_value.val.stringval + attr_value.aux.shndx);\n          }\n          else if (uVar11 < 5) {\n            if (uVar11 == 1) {\n              pDVar21 = this->dwinfo_;\n              if (pDVar21->address_size_ == 4) goto LAB_00302e7d;\nLAB_00302a71:\n              pp_Var4 = (pDVar21->object_->super_Object)._vptr_Object;\n              p_Var5 = pp_Var4[3];\n              if (p_Var5 == Relobj::is_big_endian) {\n                iVar9 = (*pp_Var4[0x3a])();\n                cVar8 = (char)iVar9;\n              }\n              else {\n                iVar9 = (*p_Var5)();\n                cVar8 = (char)iVar9;\n              }\n              str_off = *(off_t *)pattr;\n              if (cVar8 != '\0') {\n                str_off = (ulong)str_off >> 0x38 | (str_off & 0xff000000000000U) >> 0x28 |\n                          (str_off & 0xff0000000000U) >> 0x18 | (str_off & 0xff00000000U) >> 8 |\n                          (str_off & 0xff000000U) << 8 | (str_off & 0xff0000U) << 0x18 |\n                          (str_off & 0xff00U) << 0x28 | str_off << 0x38;\n              }\n              pattr = pattr + 8;\n              goto LAB_00302abe;\n            }\n            if (uVar11 != 3) {\n              return false;\n            }\n            pp_Var4 = (this->dwinfo_->object_->super_Object)._vptr_Object;\n            p_Var5 = pp_Var4[3];\n            if (p_Var5 == Relobj::is_big_endian) {\n              iVar9 = (*pp_Var4[0x3a])();\n              cVar8 = (char)iVar9;\n            }\n            else {\n              iVar9 = (*p_Var5)();\n              cVar8 = (char)iVar9;\n            }\n            uVar7 = *(ushort *)pattr;\n            if (cVar8 != '\0') {\n              uVar7 = CONCAT11(*pattr,pattr[1]);\n            }\n            attr_value.aux.shndx._2_2_ = 0;\n            attr_value.aux.shndx._0_2_ = uVar7;\n            attr_value.val.stringval = (char *)(pattr + 2);\n            pattr = (uchar *)(attr_value.val.stringval + attr_value.aux.shndx);\n          }\n          else {\n            if (uVar11 != 5) {\n              if (uVar11 != 6) {\n                return false;\n              }\n              pp_Var4 = (this->dwinfo_->object_->super_Object)._vptr_Object;\n              p_Var5 = pp_Var4[3];\n              if (p_Var5 == Relobj::is_big_endian) {\n                iVar9 = (*pp_Var4[0x3a])();\n                cVar8 = (char)iVar9;\n              }\n              else {\n                iVar9 = (*p_Var5)();\n                cVar8 = (char)iVar9;\n              }\n              uVar3 = *(uint *)pattr;\n              if (cVar8 != '\0') {\n                uVar3 = uVar3 >> 0x18 | (uVar3 & 0xff0000) >> 8 | (uVar3 & 0xff00) << 8 |\n                        uVar3 << 0x18;\n              }\n              str_off = (off_t)uVar3;\n              pattr = pattr + 4;\n              goto LAB_00302d40;\n            }\n            pp_Var4 = (this->dwinfo_->object_->super_Object)._vptr_Object;\n            p_Var5 = pp_Var4[3];\n            if (p_Var5 == Relobj::is_big_endian) {\n              iVar9 = (*pp_Var4[0x3a])();\n              cVar8 = (char)iVar9;\n            }\n            else {\n              iVar9 = (*p_Var5)();\n              cVar8 = (char)iVar9;\n            }\n            uVar7 = *(ushort *)pattr;\n            if (cVar8 != '\0') {\n              uVar7 = CONCAT11(*pattr,pattr[1]);\n            }\n            pattr = pattr + 2;\n            attr_value.val.intval._2_6_ = 0;\n            attr_value.val.intval._0_2_ = uVar7;\n          }\n          goto joined_r0x00302748;\n        }\n        if (uVar11 == 10) {\n          attr_value.val.stringval = (char *)(pattr + 1);\n          bVar1 = *pattr;\n          pattr = (uchar *)(attr_value.val.stringval + bVar1);\n          attr_value.aux.shndx._1_3_ = 0;\n          attr_value.aux.shndx._0_1_ = bVar1;\n          goto joined_r0x00302748;\n        }\n        if (uVar11 < 0xb) {\n          if (uVar11 != 8) {\n            if (uVar11 != 9) {\n              return false;\n            }\n            goto LAB_00302a09;\n          }\n          attr_value.val.blockval = pattr;\n          len = strlen((char *)pattr);\n          pattr = puVar23 + len + 1;\n          if (uVar2 == 0x31) goto LAB_00302750;\n          if (0x31 < uVar2) {\n            if ((uVar2 != 0x6e) && (uVar2 != 0x2007)) goto LAB_00302750;\n            goto LAB_003029eb;\n          }\n          if ((uVar2 == 1) || (uVar2 != 3)) goto LAB_00302750;\n          goto LAB_003029c7;\n        }\n        if (uVar11 < 0xd) {\n          attr_value.val.intval._1_7_ = 0;\n          attr_value.val.uintval._0_1_ = *pattr;\n          pattr = pattr + 1;\n          goto LAB_00302f92;\n        }\n        bVar1 = *pattr;\n        puVar23 = pattr + 1;\n        if ((char)bVar1 < '\0') {\n          attr_value.val.intval = read_signed_LEB_128_x(puVar23,&len,bVar1);\n          puVar23 = pattr + len;\n        }\n        else {\n          len = 1;\n          attr_value.val.intval._1_7_ = 0;\n          attr_value.val.uintval._0_1_ = bVar1;\n          if ((bVar1 & 0x40) != 0) {\n            attr_value.val.uintval = attr_value.val.uintval | 0xffffffffffffff80;\n          }\n        }\n        pattr = puVar23;\n        if ((uVar2 == 0x31) || (uVar2 < 0x32)) goto LAB_00302750;\n        if ((uVar2 == 0x6e) || (uVar2 == 0x2007)) goto LAB_00302fbe;\n        __position._M_current =\n             (this->attributes_).\n             super__Vector_base<gold::Dwarf_die::Attribute_value,_std::allocator<gold::Dwarf_die::Attribute_value>_>\n             ._M_impl._M_finish;\n        if (__position._M_current ==\n            (this->attributes_).\n            super__Vector_base<gold::Dwarf_die::Attribute_value,_std::allocator<gold::Dwarf_die::Attribute_value>_>\n            ._M_impl._M_end_of_storage) goto LAB_003028c0;\nLAB_0030275e:\n        (__position._M_current)->attr = (int)CONCAT44(attr_value.form,attr_value.attr);\n        (__position._M_current)->form = (int)(CONCAT44(attr_value.form,attr_value.attr) >> 0x20);\n        (__position._M_current)->val = attr_value.val;\n        *(ulong *)&(__position._M_current)->aux = CONCAT44(attr_value._20_4_,attr_value.aux.shndx);\n        (this->attributes_).\n        super__Vector_base<gold::Dwarf_die::Attribute_value,_std::allocator<gold::Dwarf_die::Attribute_value>_>\n        ._M_impl._M_finish = __position._M_current + 1;\n      }\n      lVar25 = lVar25 + 8;\n      pAVar13 = this->abbrev_code_;\n    } while (lVar25 != (ulong)(iVar19 - 1) * 8 + 8);\n  }\n  if (pAVar13 == (Abbrev_code *)0x0) {\n                    /* WARNING: Subroutine does not return */\n    do_gold_unreachable("../../gold/dwarf_reader.h",0x206,"has_children");\n  }\n  lVar25 = this->die_offset_;\nLAB_00302797:\n  if ((pAVar13->field_0x4 & 1) == 0) {\n    this->sibling_offset_ = (off_t)(pattr + (lVar25 - (long)puVar18));\n  }\n  else {\n    this->child_offset_ = (off_t)(pattr + (lVar25 - (long)puVar18));\n  }\n  this->attributes_read_ = true;\n  return true;\n}\n\n" comment comment (function_definition "bool __thiscall gold::Dwarf_die::read_attributes(Dwarf_die *this)\n\n{\n  byte bVar1;\n  uint uVar2;\n  uint uVar3;\n  pointer __src;\n  _func_int_varargs **pp_Var4;\n  _func_int_varargs *p_Var5;\n  pointer pAVar6;\n  ushort uVar7;\n  char cVar8;\n  anon_union_4_3_97895b06_for_aux aVar10;\n  uint uVar11;\n  Valtype VVar12;\n  Abbrev_code *pAVar13;\n  anon_union_8_5_56ef6665_for_val aVar14;\n  anon_union_8_5_56ef6665_for_val aVar15;\n  pointer __dest;\n  uint64_t uVar16;\n  uint *puVar17;\n  Valtype return_value;\n  uchar *puVar18;\n  int iVar19;\n  ulong uVar20;\n  uchar *attr_off;\n  iterator __position;\n  Dwarf_info_reader *pDVar21;\n  Relobj *pRVar22;\n  uchar *puVar23;\n  pointer pAVar24;\n  size_t __n;\n  long lVar25;\n  uchar *pattr;\n  size_t len;\n  off_t str_off;\n  Attribute_value attr_value;\n  int iVar9;\n  \n  pAVar13 = this->abbrev_code_;\n  if (pAVar13 == (Abbrev_code *)0x0) {\n                    /* WARNING: Subroutine does not return */\n    do_gold_unreachable("../../gold/dwarf_reader.cc",0x2a9,"read_attributes");\n  }\n  pDVar21 = this->dwinfo_;\n  lVar25 = this->die_offset_;\n  puVar18 = pDVar21->buffer_ + pDVar21->cu_offset_ + lVar25;\n  if (pDVar21->buffer_ + pDVar21->cu_offset_ + pDVar21->cu_length_ < puVar18 + 1) {\n    Dwarf_info_reader::warn_corrupt_debug_section(pDVar21);\n    return false;\n  }\n  if (puVar18 == (uchar *)0x0) {\n    return false;\n  }\n  __src = (this->attributes_).\n          super__Vector_base<gold::Dwarf_die::Attribute_value,_std::allocator<gold::Dwarf_die::Attribute_value>_>\n          ._M_impl._M_start;\n  pattr = puVar18 + this->attr_offset_;\n  uVar20 = (long)(pAVar13->attributes).\n                 super__Vector_base<gold::Dwarf_abbrev_table::Attribute,_std::allocator<gold::Dwarf_abbrev_table::Attribute>_>\n                 ._M_impl._M_finish -\n           (long)(pAVar13->attributes).\n                 super__Vector_base<gold::Dwarf_abbrev_table::Attribute,_std::allocator<gold::Dwarf_abbrev_table::Attribute>_>\n                 ._M_impl._M_start >> 3;\n  iVar19 = (int)uVar20;\n  uVar20 = uVar20 & 0xffffffff;\n  if ((ulong)(((long)(this->attributes_).\n                     super__Vector_base<gold::Dwarf_die::Attribute_value,_std::allocator<gold::Dwarf_die::Attribute_value>_>\n                     ._M_impl._M_end_of_storage - (long)__src >> 3) * -0x5555555555555555) < uVar20)\n  {\n    pAVar6 = (this->attributes_).\n             super__Vector_base<gold::Dwarf_die::Attribute_value,_std::allocator<gold::Dwarf_die::Attribute_value>_>\n             ._M_impl._M_finish;\n    __n = (long)pAVar6 - (long)__src;\n    if (uVar20 == 0) {\n      __dest = (pointer)0x0;\n      pAVar24 = __src;\n    }\n    else {\n      __dest = (pointer)operator_new(uVar20 * 0x18);\n      pAVar24 = (this->attributes_).\n                super__Vector_base<gold::Dwarf_die::Attribute_value,_std::allocator<gold::Dwarf_die::Attribute_value>_>\n                ._M_impl._M_start;\n    }\n    if (__src != pAVar6) {\n      __dest = (pointer)memmove(__dest,__src,__n);\n    }\n    if (pAVar24 != (pointer)0x0) {\n      operator_delete(pAVar24);\n    }\n    (this->attributes_).\n    super__Vector_base<gold::Dwarf_die::Attribute_value,_std::allocator<gold::Dwarf_die::Attribute_value>_>\n    ._M_impl._M_start = __dest;\n    pAVar13 = this->abbrev_code_;\n    (this->attributes_).\n    super__Vector_base<gold::Dwarf_die::Attribute_value,_std::allocator<gold::Dwarf_die::Attribute_value>_>\n    ._M_impl._M_finish = (pointer)(__n + (long)__dest);\n    (this->attributes_).\n    super__Vector_base<gold::Dwarf_die::Attribute_value,_std::allocator<gold::Dwarf_die::Attribute_value>_>\n    ._M_impl._M_end_of_storage = __dest + uVar20;\n    if (iVar19 != 0) goto LAB_00302642;\n  }\n  else {\n    if (iVar19 == 0) goto LAB_00302797;\nLAB_00302642:\n    lVar25 = 0;\n    do {\n      puVar17 = (uint *)((long)&((pAVar13->attributes).\n                                 super__Vector_base<gold::Dwarf_abbrev_table::Attribute,_std::allocator<gold::Dwarf_abbrev_table::Attribute>_>\n                                 ._M_impl._M_start)->attr + lVar25);\n      uVar11 = puVar17[1];\n      uVar2 = *puVar17;\n      if (uVar11 == 0x16) {\n        bVar1 = *pattr;\n        uVar11 = (uint)bVar1;\n        if ((char)bVar1 < '\0') {\n          uVar16 = read_unsigned_LEB_128_x(pattr + 1,&len,bVar1);\n          uVar11 = (uint)uVar16;\n          pattr = pattr + len;\n        }\n        else {\n          len = 1;\n          pattr = pattr + 1;\n        }\n      }\n      puVar23 = pattr;\n      attr_off = pattr + (this->die_offset_ - (long)puVar18);\n      attr_value.aux.shndx = 0;\n      attr_value.attr = uVar2;\n      attr_value.form = uVar11;\n      if (uVar11 == 0xe) {\n        pDVar21 = this->dwinfo_;\n        if (pDVar21->offset_size_ == 4) {\n          VVar12 = Dwarf_info_reader::read_from_pointer<32>(pDVar21,&pattr);\n          str_off = (off_t)VVar12;\n        }\n        else {\n          pp_Var4 = (pDVar21->object_->super_Object)._vptr_Object;\n          p_Var5 = pp_Var4[3];\n          if (p_Var5 == Relobj::is_big_endian) {\n            iVar9 = (*pp_Var4[0x3a])();\n            cVar8 = (char)iVar9;\n          }\n          else {\n            iVar9 = (*p_Var5)();\n            cVar8 = (char)iVar9;\n          }\n          str_off = *(off_t *)pattr;\n          if (cVar8 != '\0') {\n            str_off = (ulong)str_off >> 0x38 | (str_off & 0xff000000000000U) >> 0x28 |\n                      (str_off & 0xff0000000000U) >> 0x18 | (str_off & 0xff00000000U) >> 8 |\n                      (str_off & 0xff000000U) << 8 | (str_off & 0xff0000U) << 0x18 |\n                      (str_off & 0xff00U) << 0x28 | str_off << 0x38;\n          }\n          pattr = pattr + 8;\n        }\n        attr_value.aux.shndx =\n             Dwarf_info_reader::lookup_reloc(this->dwinfo_,(off_t)attr_off,&str_off);\n        attr_value.val.refval = str_off;\n        if (uVar2 != 0x31) {\n          if (uVar2 < 0x32) {\n            if ((uVar2 != 1) && (uVar2 == 3)) {\nLAB_00302f64:\n              this->string_shndx_ = (uint)attr_value.aux;\n              this->name_off_ = (off_t)attr_value.val;\n            }\n          }\n          else if ((uVar2 == 0x6e) || (uVar2 == 0x2007)) {\nLAB_00302fd0:\n            this->string_shndx_ = (uint)attr_value.aux;\n            this->linkage_name_off_ = (off_t)attr_value.val;\n          }\n        }\nLAB_00302750:\n        __position._M_current =\n             (this->attributes_).\n             super__Vector_base<gold::Dwarf_die::Attribute_value,_std::allocator<gold::Dwarf_die::Attribute_value>_>\n             ._M_impl._M_finish;\n        if (__position._M_current !=\n            (this->attributes_).\n            super__Vector_base<gold::Dwarf_die::Attribute_value,_std::allocator<gold::Dwarf_die::Attribute_value>_>\n            ._M_impl._M_end_of_storage) goto LAB_0030275e;\nLAB_003028c0:\n        std::\n        vector<gold::Dwarf_die::Attribute_value,_std::allocator<gold::Dwarf_die::Attribute_value>_>\n        ::_M_realloc_insert<const_gold::Dwarf_die::Attribute_value&>\n                  (&this->attributes_,__position,&attr_value);\n      }\n      else {\n        if (0xe < uVar11) {\n          if (uVar11 == 0x15) {\n            bVar1 = *pattr;\n            aVar15.intval._1_7_ = 0;\n            aVar15.uintval._0_1_ = bVar1;\n            if ((char)bVar1 < '\0') {\n              attr_value.val.uintval = read_unsigned_LEB_128_x(pattr + 1,&len,bVar1);\n              pattr = pattr + len;\n            }\n            else {\n              len = 1;\n              pattr = pattr + 1;\n              attr_value.val = aVar15;\n            }\njoined_r0x00303052:\n            if (uVar2 != 0x31) {\n              if (uVar2 < 0x32) {\nLAB_00302c20:\n                if ((uVar2 == 1) && (attr_value.aux.shndx == 0)) {\n                  this->sibling_offset_ = (off_t)attr_value.val;\n                }\n                goto LAB_00302750;\n              }\n              if ((uVar2 != 0x6e) && (uVar2 != 0x2007)) {\njoined_r0x00302ce3:\n                if (uVar2 == 0x47) {\n                  this->specification_ = (off_t)attr_value.val;\n                }\n                goto LAB_00302750;\n              }\nLAB_00302fb5:\n              if (uVar11 == 8) {\nLAB_003029eb:\n                this->linkage_name_ = (char *)attr_value.val;\n              }\n              else {\nLAB_00302fbe:\n                if (uVar11 == 0xe) goto LAB_00302fd0;\n              }\n              goto LAB_00302750;\n            }\n          }\n          else {\n            if (0x15 < uVar11) {\n              if (uVar11 != 0x19) {\n                if (uVar11 < 0x1a) {\n                  if (uVar11 == 0x17) {\n                    pDVar21 = this->dwinfo_;\n                    if (pDVar21->offset_size_ == 4) {\n                      VVar12 = Dwarf_info_reader::read_from_pointer<32>(pDVar21,&pattr);\n                      str_off = (off_t)VVar12;\n                    }\n                    else {\n                      pRVar22 = pDVar21->object_;\nLAB_00302fe7:\n                      pp_Var4 = (pRVar22->super_Object)._vptr_Object;\n                      p_Var5 = pp_Var4[3];\n                      if (p_Var5 == Relobj::is_big_endian) {\n                        iVar9 = (*pp_Var4[0x3a])();\n                        cVar8 = (char)iVar9;\n                      }\n                      else {\n                        iVar9 = (*p_Var5)();\n                        cVar8 = (char)iVar9;\n                      }\n                      str_off = *(off_t *)pattr;\n                      if (cVar8 != '\0') {\n                        str_off = (ulong)str_off >> 0x38 | (str_off & 0xff000000000000U) >> 0x28 |\n                                  (str_off & 0xff0000000000U) >> 0x18 |\n                                  (str_off & 0xff00000000U) >> 8 | (str_off & 0xff000000U) << 8 |\n                                  (str_off & 0xff0000U) << 0x18 | (str_off & 0xff00U) << 0x28 |\n                                  str_off << 0x38;\n                      }\n                      pattr = pattr + 8;\n                    }\nLAB_00303035:\n                    attr_value.aux.shndx =\n                         Dwarf_info_reader::lookup_reloc(this->dwinfo_,(off_t)attr_off,&str_off);\n                    attr_value.val.refval = str_off;\n                    goto joined_r0x00303052;\n                  }\n                  if (uVar11 != 0x18) {\n                    return false;\n                  }\nLAB_00302a09:\n                  bVar1 = *pattr;\n                  aVar10.shndx._1_3_ = 0;\n                  aVar10.shndx._0_1_ = bVar1;\n                  aVar15.stringval = (char *)(pattr + 1);\n                  if ((char)bVar1 < '\0') {\n                    uVar16 = read_unsigned_LEB_128_x(aVar15.blockval,&len,bVar1);\n                    aVar10.shndx = (uint)uVar16;\n                    aVar15.stringval = (char *)(pattr + len);\n                  }\n                  else {\n                    len = 1;\n                  }\n                  pattr = pattr + aVar10.shndx + len;\n                  attr_value.val = aVar15;\n                  attr_value.aux = aVar10;\n                }\n                else {\n                  if (uVar11 == 0x20) {\n                    pp_Var4 = (this->dwinfo_->object_->super_Object)._vptr_Object;\n                    p_Var5 = pp_Var4[3];\n                    if (p_Var5 == Relobj::is_big_endian) {\n                      iVar9 = (*pp_Var4[0x3a])();\n                      cVar8 = (char)iVar9;\n                    }\n                    else {\n                      iVar9 = (*p_Var5)();\n                      cVar8 = (char)iVar9;\n                    }\n                    /* WARNING: Load size is inaccurate */\n                    attr_value.val.blockval = *pattr;\n                    if (cVar8 != '\0') {\n                      attr_value.val.uintval =\n                           attr_value.val.uintval >> 0x38 |\n                           (attr_value.val.uintval & 0xff000000000000) >> 0x28 |\n                           (attr_value.val.uintval & 0xff0000000000) >> 0x18 |\n                           (attr_value.val.uintval & 0xff00000000) >> 8 |\n                           (attr_value.val.uintval & 0xff000000) << 8 |\n                           (attr_value.val.uintval & 0xff0000) << 0x18 |\n                           (attr_value.val.uintval & 0xff00) << 0x28 |\n                           attr_value.val.uintval << 0x38;\n                    }\n                    pattr = pattr + 8;\n                    goto LAB_00302ea9;\n                  }\n                  if (uVar11 < 0x20) {\n                    return false;\n                  }\n                  if (1 < uVar11 - 0x1f01) {\n                    return false;\n                  }\nLAB_00302bcd:\n                  bVar1 = *pattr;\n                  aVar14.intval._1_7_ = 0;\n                  aVar14.uintval._0_1_ = bVar1;\n                  if ((char)bVar1 < '\0') {\n                    attr_value.val.uintval = read_unsigned_LEB_128_x(pattr + 1,&len,bVar1);\n                    pattr = pattr + len;\n                  }\n                  else {\n                    len = 1;\n                    pattr = pattr + 1;\n                    attr_value.val = aVar14;\n                  }\n                }\nLAB_00302f92:\n                if (uVar2 == 0x31) goto LAB_00302750;\n                if (0x31 < uVar2) {\n                  if ((uVar2 == 0x6e) || (uVar2 == 0x2007)) goto LAB_00302fb5;\n                  goto LAB_00302750;\n                }\n                goto LAB_00302e3e;\n              }\n              attr_value.val.intval = 1;\nLAB_00302ea9:\n              if (((uVar2 == 0x31) || (0x31 < uVar2)) || (uVar2 != 3)) goto LAB_00302750;\nLAB_00302e52:\n              if (uVar11 == 8) {\nLAB_003029c7:\n                this->name_ = (char *)attr_value.val;\n              }\n              else if (uVar11 == 0xe) goto LAB_00302f64;\n              goto LAB_00302750;\n            }\n            if (uVar11 != 0x11) {\n              if (0x11 < uVar11) {\n                if (uVar11 == 0x13) {\n                  VVar12 = Dwarf_info_reader::read_from_pointer<32>(this->dwinfo_,&pattr);\n                  str_off = (off_t)VVar12;\n                  goto LAB_00303035;\n                }\n                if (0x13 < uVar11) {\n                  pRVar22 = this->dwinfo_->object_;\n                  goto LAB_00302fe7;\n                }\n                pp_Var4 = (this->dwinfo_->object_->super_Object)._vptr_Object;\n                p_Var5 = pp_Var4[3];\n                if (p_Var5 == Relobj::is_big_endian) {\n                  iVar9 = (*pp_Var4[0x3a])();\n                  cVar8 = (char)iVar9;\n                }\n                else {\n                  iVar9 = (*p_Var5)();\n                  cVar8 = (char)iVar9;\n                }\n                uVar7 = *(ushort *)pattr;\n                if (cVar8 != '\0') {\n                  uVar7 = CONCAT11(*pattr,pattr[1]);\n                }\n                attr_value.val.intval._2_6_ = 0;\n                attr_value.val.intval._0_2_ = uVar7;\n                pattr = pattr + 2;\n                goto joined_r0x00303052;\n              }\n              if (uVar11 == 0xf) goto LAB_00302bcd;\n              if (uVar11 != 0x10) {\n                return false;\n              }\n              pDVar21 = this->dwinfo_;\n              uVar11 = pDVar21->address_size_;\n              if (2 < pDVar21->cu_version_) {\n                uVar11 = pDVar21->offset_size_;\n              }\n              if (uVar11 != 4) goto LAB_00302a71;\nLAB_00302e7d:\n              VVar12 = Dwarf_info_reader::read_from_pointer<32>(pDVar21,&pattr);\n              str_off = (off_t)VVar12;\nLAB_00302abe:\n              attr_value.aux.shndx =\n                   Dwarf_info_reader::lookup_reloc(this->dwinfo_,(off_t)attr_off,&str_off);\n              attr_value.val.refval = str_off;\n              if (uVar2 == 0x31) goto LAB_00302965;\n              if (0x31 < uVar2) goto joined_r0x00302ccc;\n              goto LAB_00302c20;\n            }\n            puVar23 = pattr + 1;\n            attr_value.val.intval._1_7_ = 0;\n            attr_value.val.uintval._0_1_ = *pattr;\n            pattr = puVar23;\n            if (uVar2 != 0x31) {\n              if (uVar2 < 0x32) {\n                if (uVar2 == 1) {\n                  this->sibling_offset_ = (off_t)attr_value.val;\n                }\n                goto LAB_00302750;\n              }\njoined_r0x00302ccc:\n              if ((uVar2 == 0x6e) || (uVar2 == 0x2007)) goto LAB_00302750;\n              goto joined_r0x00302ce3;\n            }\n          }\nLAB_00302965:\n          this->abstract_origin_ = (off_t)attr_value.val;\n          goto LAB_00302750;\n        }\n        if (uVar11 == 7) {\n          pp_Var4 = (this->dwinfo_->object_->super_Object)._vptr_Object;\n          p_Var5 = pp_Var4[3];\n          if (p_Var5 == Relobj::is_big_endian) {\n            iVar9 = (*pp_Var4[0x3a])();\n            cVar8 = (char)iVar9;\n          }\n          else {\n            iVar9 = (*p_Var5)();\n            cVar8 = (char)iVar9;\n          }\n          str_off = *(off_t *)pattr;\n          if (cVar8 != '\0') {\n            str_off = (ulong)str_off >> 0x38 | (str_off & 0xff000000000000U) >> 0x28 |\n                      (str_off & 0xff0000000000U) >> 0x18 | (str_off & 0xff00000000U) >> 8 |\n                      (str_off & 0xff000000U) << 8 | (str_off & 0xff0000U) << 0x18 |\n                      (str_off & 0xff00U) << 0x28 | str_off << 0x38;\n          }\n          pattr = pattr + 8;\nLAB_00302d40:\n          attr_value.aux.shndx =\n               Dwarf_info_reader::lookup_reloc(this->dwinfo_,(off_t)attr_off,&str_off);\n          attr_value.val.refval = str_off;\njoined_r0x00302748:\n          if ((uVar2 != 0x31) && (uVar2 < 0x32)) {\nLAB_00302e3e:\n            if ((uVar2 != 1) && (uVar2 == 3)) goto LAB_00302e52;\n          }\n          goto LAB_00302750;\n        }\n        if (uVar11 < 8) {\n          if (uVar11 == 4) {\n            pp_Var4 = (this->dwinfo_->object_->super_Object)._vptr_Object;\n            p_Var5 = pp_Var4[3];\n            if (p_Var5 == Relobj::is_big_endian) {\n              iVar9 = (*pp_Var4[0x3a])();\n              cVar8 = (char)iVar9;\n            }\n            else {\n              iVar9 = (*p_Var5)();\n              cVar8 = (char)iVar9;\n            }\n            attr_value.aux.shndx = *(uint *)pattr;\n            if (cVar8 != '\0') {\n              attr_value.aux.shndx =\n                   attr_value.aux.shndx >> 0x18 | (attr_value.aux.shndx & 0xff0000) >> 8 |\n                   (attr_value.aux.shndx & 0xff00) << 8 | attr_value.aux.shndx << 0x18;\n            }\n            attr_value.val.stringval = (char *)(pattr + 4);\n            pattr = (uchar *)(attr_value.val.stringval + attr_value.aux.shndx);\n          }\n          else if (uVar11 < 5) {\n            if (uVar11 == 1) {\n              pDVar21 = this->dwinfo_;\n              if (pDVar21->address_size_ == 4) goto LAB_00302e7d;\nLAB_00302a71:\n              pp_Var4 = (pDVar21->object_->super_Object)._vptr_Object;\n              p_Var5 = pp_Var4[3];\n              if (p_Var5 == Relobj::is_big_endian) {\n                iVar9 = (*pp_Var4[0x3a])();\n                cVar8 = (char)iVar9;\n              }\n              else {\n                iVar9 = (*p_Var5)();\n                cVar8 = (char)iVar9;\n              }\n              str_off = *(off_t *)pattr;\n              if (cVar8 != '\0') {\n                str_off = (ulong)str_off >> 0x38 | (str_off & 0xff000000000000U) >> 0x28 |\n                          (str_off & 0xff0000000000U) >> 0x18 | (str_off & 0xff00000000U) >> 8 |\n                          (str_off & 0xff000000U) << 8 | (str_off & 0xff0000U) << 0x18 |\n                          (str_off & 0xff00U) << 0x28 | str_off << 0x38;\n              }\n              pattr = pattr + 8;\n              goto LAB_00302abe;\n            }\n            if (uVar11 != 3) {\n              return false;\n            }\n            pp_Var4 = (this->dwinfo_->object_->super_Object)._vptr_Object;\n            p_Var5 = pp_Var4[3];\n            if (p_Var5 == Relobj::is_big_endian) {\n              iVar9 = (*pp_Var4[0x3a])();\n              cVar8 = (char)iVar9;\n            }\n            else {\n              iVar9 = (*p_Var5)();\n              cVar8 = (char)iVar9;\n            }\n            uVar7 = *(ushort *)pattr;\n            if (cVar8 != '\0') {\n              uVar7 = CONCAT11(*pattr,pattr[1]);\n            }\n            attr_value.aux.shndx._2_2_ = 0;\n            attr_value.aux.shndx._0_2_ = uVar7;\n            attr_value.val.stringval = (char *)(pattr + 2);\n            pattr = (uchar *)(attr_value.val.stringval + attr_value.aux.shndx);\n          }\n          else {\n            if (uVar11 != 5) {\n              if (uVar11 != 6) {\n                return false;\n              }\n              pp_Var4 = (this->dwinfo_->object_->super_Object)._vptr_Object;\n              p_Var5 = pp_Var4[3];\n              if (p_Var5 == Relobj::is_big_endian) {\n                iVar9 = (*pp_Var4[0x3a])();\n                cVar8 = (char)iVar9;\n              }\n              else {\n                iVar9 = (*p_Var5)();\n                cVar8 = (char)iVar9;\n              }\n              uVar3 = *(uint *)pattr;\n              if (cVar8 != '\0') {\n                uVar3 = uVar3 >> 0x18 | (uVar3 & 0xff0000) >> 8 | (uVar3 & 0xff00) << 8 |\n                        uVar3 << 0x18;\n              }\n              str_off = (off_t)uVar3;\n              pattr = pattr + 4;\n              goto LAB_00302d40;\n            }\n            pp_Var4 = (this->dwinfo_->object_->super_Object)._vptr_Object;\n            p_Var5 = pp_Var4[3];\n            if (p_Var5 == Relobj::is_big_endian) {\n              iVar9 = (*pp_Var4[0x3a])();\n              cVar8 = (char)iVar9;\n            }\n            else {\n              iVar9 = (*p_Var5)();\n              cVar8 = (char)iVar9;\n            }\n            uVar7 = *(ushort *)pattr;\n            if (cVar8 != '\0') {\n              uVar7 = CONCAT11(*pattr,pattr[1]);\n            }\n            pattr = pattr + 2;\n            attr_value.val.intval._2_6_ = 0;\n            attr_value.val.intval._0_2_ = uVar7;\n          }\n          goto joined_r0x00302748;\n        }\n        if (uVar11 == 10) {\n          attr_value.val.stringval = (char *)(pattr + 1);\n          bVar1 = *pattr;\n          pattr = (uchar *)(attr_value.val.stringval + bVar1);\n          attr_value.aux.shndx._1_3_ = 0;\n          attr_value.aux.shndx._0_1_ = bVar1;\n          goto joined_r0x00302748;\n        }\n        if (uVar11 < 0xb) {\n          if (uVar11 != 8) {\n            if (uVar11 != 9) {\n              return false;\n            }\n            goto LAB_00302a09;\n          }\n          attr_value.val.blockval = pattr;\n          len = strlen((char *)pattr);\n          pattr = puVar23 + len + 1;\n          if (uVar2 == 0x31) goto LAB_00302750;\n          if (0x31 < uVar2) {\n            if ((uVar2 != 0x6e) && (uVar2 != 0x2007)) goto LAB_00302750;\n            goto LAB_003029eb;\n          }\n          if ((uVar2 == 1) || (uVar2 != 3)) goto LAB_00302750;\n          goto LAB_003029c7;\n        }\n        if (uVar11 < 0xd) {\n          attr_value.val.intval._1_7_ = 0;\n          attr_value.val.uintval._0_1_ = *pattr;\n          pattr = pattr + 1;\n          goto LAB_00302f92;\n        }\n        bVar1 = *pattr;\n        puVar23 = pattr + 1;\n        if ((char)bVar1 < '\0') {\n          attr_value.val.intval = read_signed_LEB_128_x(puVar23,&len,bVar1);\n          puVar23 = pattr + len;\n        }\n        else {\n          len = 1;\n          attr_value.val.intval._1_7_ = 0;\n          attr_value.val.uintval._0_1_ = bVar1;\n          if ((bVar1 & 0x40) != 0) {\n            attr_value.val.uintval = attr_value.val.uintval | 0xffffffffffffff80;\n          }\n        }\n        pattr = puVar23;\n        if ((uVar2 == 0x31) || (uVar2 < 0x32)) goto LAB_00302750;\n        if ((uVar2 == 0x6e) || (uVar2 == 0x2007)) goto LAB_00302fbe;\n        __position._M_current =\n             (this->attributes_).\n             super__Vector_base<gold::Dwarf_die::Attribute_value,_std::allocator<gold::Dwarf_die::Attribute_value>_>\n             ._M_impl._M_finish;\n        if (__position._M_current ==\n            (this->attributes_).\n            super__Vector_base<gold::Dwarf_die::Attribute_value,_std::allocator<gold::Dwarf_die::Attribute_value>_>\n            ._M_impl._M_end_of_storage) goto LAB_003028c0;\nLAB_0030275e:\n        (__position._M_current)->attr = (int)CONCAT44(attr_value.form,attr_value.attr);\n        (__position._M_current)->form = (int)(CONCAT44(attr_value.form,attr_value.attr) >> 0x20);\n        (__position._M_current)->val = attr_value.val;\n        *(ulong *)&(__position._M_current)->aux = CONCAT44(attr_value._20_4_,attr_value.aux.shndx);\n        (this->attributes_).\n        super__Vector_base<gold::Dwarf_die::Attribute_value,_std::allocator<gold::Dwarf_die::Attribute_value>_>\n        ._M_impl._M_finish = __position._M_current + 1;\n      }\n      lVar25 = lVar25 + 8;\n      pAVar13 = this->abbrev_code_;\n    } while (lVar25 != (ulong)(iVar19 - 1) * 8 + 8);\n  }\n  if (pAVar13 == (Abbrev_code *)0x0) {\n                    /* WARNING: Subroutine does not return */\n    do_gold_unreachable("../../gold/dwarf_reader.h",0x206,"has_children");\n  }\n  lVar25 = this->die_offset_;\nLAB_00302797:\n  if ((pAVar13->field_0x4 & 1) == 0) {\n    this->sibling_offset_ = (off_t)(pattr + (lVar25 - (long)puVar18));\n  }\n  else {\n    this->child_offset_ = (off_t)(pattr + (lVar25 - (long)puVar18));\n  }\n  this->attributes_read_ = true;\n  return true;\n}" primitive_type (ms_call_modifier "__thiscall" __thiscall) (ERROR "gold::Dwarf_die::" identifier : : identifier : :) (function_declarator "read_attributes(Dwarf_die *this)" identifier (parameter_list "(Dwarf_die *this)" ( (parameter_declaration "Dwarf_die *this" type_identifier (pointer_declarator "*this" * identifier)) ))) (compound_statement "{\n  byte bVar1;\n  uint uVar2;\n  uint uVar3;\n  pointer __src;\n  _func_int_varargs **pp_Var4;\n  _func_int_varargs *p_Var5;\n  pointer pAVar6;\n  ushort uVar7;\n  char cVar8;\n  anon_union_4_3_97895b06_for_aux aVar10;\n  uint uVar11;\n  Valtype VVar12;\n  Abbrev_code *pAVar13;\n  anon_union_8_5_56ef6665_for_val aVar14;\n  anon_union_8_5_56ef6665_for_val aVar15;\n  pointer __dest;\n  uint64_t uVar16;\n  uint *puVar17;\n  Valtype return_value;\n  uchar *puVar18;\n  int iVar19;\n  ulong uVar20;\n  uchar *attr_off;\n  iterator __position;\n  Dwarf_info_reader *pDVar21;\n  Relobj *pRVar22;\n  uchar *puVar23;\n  pointer pAVar24;\n  size_t __n;\n  long lVar25;\n  uchar *pattr;\n  size_t len;\n  off_t str_off;\n  Attribute_value attr_value;\n  int iVar9;\n  \n  pAVar13 = this->abbrev_code_;\n  if (pAVar13 == (Abbrev_code *)0x0) {\n                    /* WARNING: Subroutine does not return */\n    do_gold_unreachable("../../gold/dwarf_reader.cc",0x2a9,"read_attributes");\n  }\n  pDVar21 = this->dwinfo_;\n  lVar25 = this->die_offset_;\n  puVar18 = pDVar21->buffer_ + pDVar21->cu_offset_ + lVar25;\n  if (pDVar21->buffer_ + pDVar21->cu_offset_ + pDVar21->cu_length_ < puVar18 + 1) {\n    Dwarf_info_reader::warn_corrupt_debug_section(pDVar21);\n    return false;\n  }\n  if (puVar18 == (uchar *)0x0) {\n    return false;\n  }\n  __src = (this->attributes_).\n          super__Vector_base<gold::Dwarf_die::Attribute_value,_std::allocator<gold::Dwarf_die::Attribute_value>_>\n          ._M_impl._M_start;\n  pattr = puVar18 + this->attr_offset_;\n  uVar20 = (long)(pAVar13->attributes).\n                 super__Vector_base<gold::Dwarf_abbrev_table::Attribute,_std::allocator<gold::Dwarf_abbrev_table::Attribute>_>\n                 ._M_impl._M_finish -\n           (long)(pAVar13->attributes).\n                 super__Vector_base<gold::Dwarf_abbrev_table::Attribute,_std::allocator<gold::Dwarf_abbrev_table::Attribute>_>\n                 ._M_impl._M_start >> 3;\n  iVar19 = (int)uVar20;\n  uVar20 = uVar20 & 0xffffffff;\n  if ((ulong)(((long)(this->attributes_).\n                     super__Vector_base<gold::Dwarf_die::Attribute_value,_std::allocator<gold::Dwarf_die::Attribute_value>_>\n                     ._M_impl._M_end_of_storage - (long)__src >> 3) * -0x5555555555555555) < uVar20)\n  {\n    pAVar6 = (this->attributes_).\n             super__Vector_base<gold::Dwarf_die::Attribute_value,_std::allocator<gold::Dwarf_die::Attribute_value>_>\n             ._M_impl._M_finish;\n    __n = (long)pAVar6 - (long)__src;\n    if (uVar20 == 0) {\n      __dest = (pointer)0x0;\n      pAVar24 = __src;\n    }\n    else {\n      __dest = (pointer)operator_new(uVar20 * 0x18);\n      pAVar24 = (this->attributes_).\n                super__Vector_base<gold::Dwarf_die::Attribute_value,_std::allocator<gold::Dwarf_die::Attribute_value>_>\n                ._M_impl._M_start;\n    }\n    if (__src != pAVar6) {\n      __dest = (pointer)memmove(__dest,__src,__n);\n    }\n    if (pAVar24 != (pointer)0x0) {\n      operator_delete(pAVar24);\n    }\n    (this->attributes_).\n    super__Vector_base<gold::Dwarf_die::Attribute_value,_std::allocator<gold::Dwarf_die::Attribute_value>_>\n    ._M_impl._M_start = __dest;\n    pAVar13 = this->abbrev_code_;\n    (this->attributes_).\n    super__Vector_base<gold::Dwarf_die::Attribute_value,_std::allocator<gold::Dwarf_die::Attribute_value>_>\n    ._M_impl._M_finish = (pointer)(__n + (long)__dest);\n    (this->attributes_).\n    super__Vector_base<gold::Dwarf_die::Attribute_value,_std::allocator<gold::Dwarf_die::Attribute_value>_>\n    ._M_impl._M_end_of_storage = __dest + uVar20;\n    if (iVar19 != 0) goto LAB_00302642;\n  }\n  else {\n    if (iVar19 == 0) goto LAB_00302797;\nLAB_00302642:\n    lVar25 = 0;\n    do {\n      puVar17 = (uint *)((long)&((pAVar13->attributes).\n                                 super__Vector_base<gold::Dwarf_abbrev_table::Attribute,_std::allocator<gold::Dwarf_abbrev_table::Attribute>_>\n                                 ._M_impl._M_start)->attr + lVar25);\n      uVar11 = puVar17[1];\n      uVar2 = *puVar17;\n      if (uVar11 == 0x16) {\n        bVar1 = *pattr;\n        uVar11 = (uint)bVar1;\n        if ((char)bVar1 < '\0') {\n          uVar16 = read_unsigned_LEB_128_x(pattr + 1,&len,bVar1);\n          uVar11 = (uint)uVar16;\n          pattr = pattr + len;\n        }\n        else {\n          len = 1;\n          pattr = pattr + 1;\n        }\n      }\n      puVar23 = pattr;\n      attr_off = pattr + (this->die_offset_ - (long)puVar18);\n      attr_value.aux.shndx = 0;\n      attr_value.attr = uVar2;\n      attr_value.form = uVar11;\n      if (uVar11 == 0xe) {\n        pDVar21 = this->dwinfo_;\n        if (pDVar21->offset_size_ == 4) {\n          VVar12 = Dwarf_info_reader::read_from_pointer<32>(pDVar21,&pattr);\n          str_off = (off_t)VVar12;\n        }\n        else {\n          pp_Var4 = (pDVar21->object_->super_Object)._vptr_Object;\n          p_Var5 = pp_Var4[3];\n          if (p_Var5 == Relobj::is_big_endian) {\n            iVar9 = (*pp_Var4[0x3a])();\n            cVar8 = (char)iVar9;\n          }\n          else {\n            iVar9 = (*p_Var5)();\n            cVar8 = (char)iVar9;\n          }\n          str_off = *(off_t *)pattr;\n          if (cVar8 != '\0') {\n            str_off = (ulong)str_off >> 0x38 | (str_off & 0xff000000000000U) >> 0x28 |\n                      (str_off & 0xff0000000000U) >> 0x18 | (str_off & 0xff00000000U) >> 8 |\n                      (str_off & 0xff000000U) << 8 | (str_off & 0xff0000U) << 0x18 |\n                      (str_off & 0xff00U) << 0x28 | str_off << 0x38;\n          }\n          pattr = pattr + 8;\n        }\n        attr_value.aux.shndx =\n             Dwarf_info_reader::lookup_reloc(this->dwinfo_,(off_t)attr_off,&str_off);\n        attr_value.val.refval = str_off;\n        if (uVar2 != 0x31) {\n          if (uVar2 < 0x32) {\n            if ((uVar2 != 1) && (uVar2 == 3)) {\nLAB_00302f64:\n              this->string_shndx_ = (uint)attr_value.aux;\n              this->name_off_ = (off_t)attr_value.val;\n            }\n          }\n          else if ((uVar2 == 0x6e) || (uVar2 == 0x2007)) {\nLAB_00302fd0:\n            this->string_shndx_ = (uint)attr_value.aux;\n            this->linkage_name_off_ = (off_t)attr_value.val;\n          }\n        }\nLAB_00302750:\n        __position._M_current =\n             (this->attributes_).\n             super__Vector_base<gold::Dwarf_die::Attribute_value,_std::allocator<gold::Dwarf_die::Attribute_value>_>\n             ._M_impl._M_finish;\n        if (__position._M_current !=\n            (this->attributes_).\n            super__Vector_base<gold::Dwarf_die::Attribute_value,_std::allocator<gold::Dwarf_die::Attribute_value>_>\n            ._M_impl._M_end_of_storage) goto LAB_0030275e;\nLAB_003028c0:\n        std::\n        vector<gold::Dwarf_die::Attribute_value,_std::allocator<gold::Dwarf_die::Attribute_value>_>\n        ::_M_realloc_insert<const_gold::Dwarf_die::Attribute_value&>\n                  (&this->attributes_,__position,&attr_value);\n      }\n      else {\n        if (0xe < uVar11) {\n          if (uVar11 == 0x15) {\n            bVar1 = *pattr;\n            aVar15.intval._1_7_ = 0;\n            aVar15.uintval._0_1_ = bVar1;\n            if ((char)bVar1 < '\0') {\n              attr_value.val.uintval = read_unsigned_LEB_128_x(pattr + 1,&len,bVar1);\n              pattr = pattr + len;\n            }\n            else {\n              len = 1;\n              pattr = pattr + 1;\n              attr_value.val = aVar15;\n            }\njoined_r0x00303052:\n            if (uVar2 != 0x31) {\n              if (uVar2 < 0x32) {\nLAB_00302c20:\n                if ((uVar2 == 1) && (attr_value.aux.shndx == 0)) {\n                  this->sibling_offset_ = (off_t)attr_value.val;\n                }\n                goto LAB_00302750;\n              }\n              if ((uVar2 != 0x6e) && (uVar2 != 0x2007)) {\njoined_r0x00302ce3:\n                if (uVar2 == 0x47) {\n                  this->specification_ = (off_t)attr_value.val;\n                }\n                goto LAB_00302750;\n              }\nLAB_00302fb5:\n              if (uVar11 == 8) {\nLAB_003029eb:\n                this->linkage_name_ = (char *)attr_value.val;\n              }\n              else {\nLAB_00302fbe:\n                if (uVar11 == 0xe) goto LAB_00302fd0;\n              }\n              goto LAB_00302750;\n            }\n          }\n          else {\n            if (0x15 < uVar11) {\n              if (uVar11 != 0x19) {\n                if (uVar11 < 0x1a) {\n                  if (uVar11 == 0x17) {\n                    pDVar21 = this->dwinfo_;\n                    if (pDVar21->offset_size_ == 4) {\n                      VVar12 = Dwarf_info_reader::read_from_pointer<32>(pDVar21,&pattr);\n                      str_off = (off_t)VVar12;\n                    }\n                    else {\n                      pRVar22 = pDVar21->object_;\nLAB_00302fe7:\n                      pp_Var4 = (pRVar22->super_Object)._vptr_Object;\n                      p_Var5 = pp_Var4[3];\n                      if (p_Var5 == Relobj::is_big_endian) {\n                        iVar9 = (*pp_Var4[0x3a])();\n                        cVar8 = (char)iVar9;\n                      }\n                      else {\n                        iVar9 = (*p_Var5)();\n                        cVar8 = (char)iVar9;\n                      }\n                      str_off = *(off_t *)pattr;\n                      if (cVar8 != '\0') {\n                        str_off = (ulong)str_off >> 0x38 | (str_off & 0xff000000000000U) >> 0x28 |\n                                  (str_off & 0xff0000000000U) >> 0x18 |\n                                  (str_off & 0xff00000000U) >> 8 | (str_off & 0xff000000U) << 8 |\n                                  (str_off & 0xff0000U) << 0x18 | (str_off & 0xff00U) << 0x28 |\n                                  str_off << 0x38;\n                      }\n                      pattr = pattr + 8;\n                    }\nLAB_00303035:\n                    attr_value.aux.shndx =\n                         Dwarf_info_reader::lookup_reloc(this->dwinfo_,(off_t)attr_off,&str_off);\n                    attr_value.val.refval = str_off;\n                    goto joined_r0x00303052;\n                  }\n                  if (uVar11 != 0x18) {\n                    return false;\n                  }\nLAB_00302a09:\n                  bVar1 = *pattr;\n                  aVar10.shndx._1_3_ = 0;\n                  aVar10.shndx._0_1_ = bVar1;\n                  aVar15.stringval = (char *)(pattr + 1);\n                  if ((char)bVar1 < '\0') {\n                    uVar16 = read_unsigned_LEB_128_x(aVar15.blockval,&len,bVar1);\n                    aVar10.shndx = (uint)uVar16;\n                    aVar15.stringval = (char *)(pattr + len);\n                  }\n                  else {\n                    len = 1;\n                  }\n                  pattr = pattr + aVar10.shndx + len;\n                  attr_value.val = aVar15;\n                  attr_value.aux = aVar10;\n                }\n                else {\n                  if (uVar11 == 0x20) {\n                    pp_Var4 = (this->dwinfo_->object_->super_Object)._vptr_Object;\n                    p_Var5 = pp_Var4[3];\n                    if (p_Var5 == Relobj::is_big_endian) {\n                      iVar9 = (*pp_Var4[0x3a])();\n                      cVar8 = (char)iVar9;\n                    }\n                    else {\n                      iVar9 = (*p_Var5)();\n                      cVar8 = (char)iVar9;\n                    }\n                    /* WARNING: Load size is inaccurate */\n                    attr_value.val.blockval = *pattr;\n                    if (cVar8 != '\0') {\n                      attr_value.val.uintval =\n                           attr_value.val.uintval >> 0x38 |\n                           (attr_value.val.uintval & 0xff000000000000) >> 0x28 |\n                           (attr_value.val.uintval & 0xff0000000000) >> 0x18 |\n                           (attr_value.val.uintval & 0xff00000000) >> 8 |\n                           (attr_value.val.uintval & 0xff000000) << 8 |\n                           (attr_value.val.uintval & 0xff0000) << 0x18 |\n                           (attr_value.val.uintval & 0xff00) << 0x28 |\n                           attr_value.val.uintval << 0x38;\n                    }\n                    pattr = pattr + 8;\n                    goto LAB_00302ea9;\n                  }\n                  if (uVar11 < 0x20) {\n                    return false;\n                  }\n                  if (1 < uVar11 - 0x1f01) {\n                    return false;\n                  }\nLAB_00302bcd:\n                  bVar1 = *pattr;\n                  aVar14.intval._1_7_ = 0;\n                  aVar14.uintval._0_1_ = bVar1;\n                  if ((char)bVar1 < '\0') {\n                    attr_value.val.uintval = read_unsigned_LEB_128_x(pattr + 1,&len,bVar1);\n                    pattr = pattr + len;\n                  }\n                  else {\n                    len = 1;\n                    pattr = pattr + 1;\n                    attr_value.val = aVar14;\n                  }\n                }\nLAB_00302f92:\n                if (uVar2 == 0x31) goto LAB_00302750;\n                if (0x31 < uVar2) {\n                  if ((uVar2 == 0x6e) || (uVar2 == 0x2007)) goto LAB_00302fb5;\n                  goto LAB_00302750;\n                }\n                goto LAB_00302e3e;\n              }\n              attr_value.val.intval = 1;\nLAB_00302ea9:\n              if (((uVar2 == 0x31) || (0x31 < uVar2)) || (uVar2 != 3)) goto LAB_00302750;\nLAB_00302e52:\n              if (uVar11 == 8) {\nLAB_003029c7:\n                this->name_ = (char *)attr_value.val;\n              }\n              else if (uVar11 == 0xe) goto LAB_00302f64;\n              goto LAB_00302750;\n            }\n            if (uVar11 != 0x11) {\n              if (0x11 < uVar11) {\n                if (uVar11 == 0x13) {\n                  VVar12 = Dwarf_info_reader::read_from_pointer<32>(this->dwinfo_,&pattr);\n                  str_off = (off_t)VVar12;\n                  goto LAB_00303035;\n                }\n                if (0x13 < uVar11) {\n                  pRVar22 = this->dwinfo_->object_;\n                  goto LAB_00302fe7;\n                }\n                pp_Var4 = (this->dwinfo_->object_->super_Object)._vptr_Object;\n                p_Var5 = pp_Var4[3];\n                if (p_Var5 == Relobj::is_big_endian) {\n                  iVar9 = (*pp_Var4[0x3a])();\n                  cVar8 = (char)iVar9;\n                }\n                else {\n                  iVar9 = (*p_Var5)();\n                  cVar8 = (char)iVar9;\n                }\n                uVar7 = *(ushort *)pattr;\n                if (cVar8 != '\0') {\n                  uVar7 = CONCAT11(*pattr,pattr[1]);\n                }\n                attr_value.val.intval._2_6_ = 0;\n                attr_value.val.intval._0_2_ = uVar7;\n                pattr = pattr + 2;\n                goto joined_r0x00303052;\n              }\n              if (uVar11 == 0xf) goto LAB_00302bcd;\n              if (uVar11 != 0x10) {\n                return false;\n              }\n              pDVar21 = this->dwinfo_;\n              uVar11 = pDVar21->address_size_;\n              if (2 < pDVar21->cu_version_) {\n                uVar11 = pDVar21->offset_size_;\n              }\n              if (uVar11 != 4) goto LAB_00302a71;\nLAB_00302e7d:\n              VVar12 = Dwarf_info_reader::read_from_pointer<32>(pDVar21,&pattr);\n              str_off = (off_t)VVar12;\nLAB_00302abe:\n              attr_value.aux.shndx =\n                   Dwarf_info_reader::lookup_reloc(this->dwinfo_,(off_t)attr_off,&str_off);\n              attr_value.val.refval = str_off;\n              if (uVar2 == 0x31) goto LAB_00302965;\n              if (0x31 < uVar2) goto joined_r0x00302ccc;\n              goto LAB_00302c20;\n            }\n            puVar23 = pattr + 1;\n            attr_value.val.intval._1_7_ = 0;\n            attr_value.val.uintval._0_1_ = *pattr;\n            pattr = puVar23;\n            if (uVar2 != 0x31) {\n              if (uVar2 < 0x32) {\n                if (uVar2 == 1) {\n                  this->sibling_offset_ = (off_t)attr_value.val;\n                }\n                goto LAB_00302750;\n              }\njoined_r0x00302ccc:\n              if ((uVar2 == 0x6e) || (uVar2 == 0x2007)) goto LAB_00302750;\n              goto joined_r0x00302ce3;\n            }\n          }\nLAB_00302965:\n          this->abstract_origin_ = (off_t)attr_value.val;\n          goto LAB_00302750;\n        }\n        if (uVar11 == 7) {\n          pp_Var4 = (this->dwinfo_->object_->super_Object)._vptr_Object;\n          p_Var5 = pp_Var4[3];\n          if (p_Var5 == Relobj::is_big_endian) {\n            iVar9 = (*pp_Var4[0x3a])();\n            cVar8 = (char)iVar9;\n          }\n          else {\n            iVar9 = (*p_Var5)();\n            cVar8 = (char)iVar9;\n          }\n          str_off = *(off_t *)pattr;\n          if (cVar8 != '\0') {\n            str_off = (ulong)str_off >> 0x38 | (str_off & 0xff000000000000U) >> 0x28 |\n                      (str_off & 0xff0000000000U) >> 0x18 | (str_off & 0xff00000000U) >> 8 |\n                      (str_off & 0xff000000U) << 8 | (str_off & 0xff0000U) << 0x18 |\n                      (str_off & 0xff00U) << 0x28 | str_off << 0x38;\n          }\n          pattr = pattr + 8;\nLAB_00302d40:\n          attr_value.aux.shndx =\n               Dwarf_info_reader::lookup_reloc(this->dwinfo_,(off_t)attr_off,&str_off);\n          attr_value.val.refval = str_off;\njoined_r0x00302748:\n          if ((uVar2 != 0x31) && (uVar2 < 0x32)) {\nLAB_00302e3e:\n            if ((uVar2 != 1) && (uVar2 == 3)) goto LAB_00302e52;\n          }\n          goto LAB_00302750;\n        }\n        if (uVar11 < 8) {\n          if (uVar11 == 4) {\n            pp_Var4 = (this->dwinfo_->object_->super_Object)._vptr_Object;\n            p_Var5 = pp_Var4[3];\n            if (p_Var5 == Relobj::is_big_endian) {\n              iVar9 = (*pp_Var4[0x3a])();\n              cVar8 = (char)iVar9;\n            }\n            else {\n              iVar9 = (*p_Var5)();\n              cVar8 = (char)iVar9;\n            }\n            attr_value.aux.shndx = *(uint *)pattr;\n            if (cVar8 != '\0') {\n              attr_value.aux.shndx =\n                   attr_value.aux.shndx >> 0x18 | (attr_value.aux.shndx & 0xff0000) >> 8 |\n                   (attr_value.aux.shndx & 0xff00) << 8 | attr_value.aux.shndx << 0x18;\n            }\n            attr_value.val.stringval = (char *)(pattr + 4);\n            pattr = (uchar *)(attr_value.val.stringval + attr_value.aux.shndx);\n          }\n          else if (uVar11 < 5) {\n            if (uVar11 == 1) {\n              pDVar21 = this->dwinfo_;\n              if (pDVar21->address_size_ == 4) goto LAB_00302e7d;\nLAB_00302a71:\n              pp_Var4 = (pDVar21->object_->super_Object)._vptr_Object;\n              p_Var5 = pp_Var4[3];\n              if (p_Var5 == Relobj::is_big_endian) {\n                iVar9 = (*pp_Var4[0x3a])();\n                cVar8 = (char)iVar9;\n              }\n              else {\n                iVar9 = (*p_Var5)();\n                cVar8 = (char)iVar9;\n              }\n              str_off = *(off_t *)pattr;\n              if (cVar8 != '\0') {\n                str_off = (ulong)str_off >> 0x38 | (str_off & 0xff000000000000U) >> 0x28 |\n                          (str_off & 0xff0000000000U) >> 0x18 | (str_off & 0xff00000000U) >> 8 |\n                          (str_off & 0xff000000U) << 8 | (str_off & 0xff0000U) << 0x18 |\n                          (str_off & 0xff00U) << 0x28 | str_off << 0x38;\n              }\n              pattr = pattr + 8;\n              goto LAB_00302abe;\n            }\n            if (uVar11 != 3) {\n              return false;\n            }\n            pp_Var4 = (this->dwinfo_->object_->super_Object)._vptr_Object;\n            p_Var5 = pp_Var4[3];\n            if (p_Var5 == Relobj::is_big_endian) {\n              iVar9 = (*pp_Var4[0x3a])();\n              cVar8 = (char)iVar9;\n            }\n            else {\n              iVar9 = (*p_Var5)();\n              cVar8 = (char)iVar9;\n            }\n            uVar7 = *(ushort *)pattr;\n            if (cVar8 != '\0') {\n              uVar7 = CONCAT11(*pattr,pattr[1]);\n            }\n            attr_value.aux.shndx._2_2_ = 0;\n            attr_value.aux.shndx._0_2_ = uVar7;\n            attr_value.val.stringval = (char *)(pattr + 2);\n            pattr = (uchar *)(attr_value.val.stringval + attr_value.aux.shndx);\n          }\n          else {\n            if (uVar11 != 5) {\n              if (uVar11 != 6) {\n                return false;\n              }\n              pp_Var4 = (this->dwinfo_->object_->super_Object)._vptr_Object;\n              p_Var5 = pp_Var4[3];\n              if (p_Var5 == Relobj::is_big_endian) {\n                iVar9 = (*pp_Var4[0x3a])();\n                cVar8 = (char)iVar9;\n              }\n              else {\n                iVar9 = (*p_Var5)();\n                cVar8 = (char)iVar9;\n              }\n              uVar3 = *(uint *)pattr;\n              if (cVar8 != '\0') {\n                uVar3 = uVar3 >> 0x18 | (uVar3 & 0xff0000) >> 8 | (uVar3 & 0xff00) << 8 |\n                        uVar3 << 0x18;\n              }\n              str_off = (off_t)uVar3;\n              pattr = pattr + 4;\n              goto LAB_00302d40;\n            }\n            pp_Var4 = (this->dwinfo_->object_->super_Object)._vptr_Object;\n            p_Var5 = pp_Var4[3];\n            if (p_Var5 == Relobj::is_big_endian) {\n              iVar9 = (*pp_Var4[0x3a])();\n              cVar8 = (char)iVar9;\n            }\n            else {\n              iVar9 = (*p_Var5)();\n              cVar8 = (char)iVar9;\n            }\n            uVar7 = *(ushort *)pattr;\n            if (cVar8 != '\0') {\n              uVar7 = CONCAT11(*pattr,pattr[1]);\n            }\n            pattr = pattr + 2;\n            attr_value.val.intval._2_6_ = 0;\n            attr_value.val.intval._0_2_ = uVar7;\n          }\n          goto joined_r0x00302748;\n        }\n        if (uVar11 == 10) {\n          attr_value.val.stringval = (char *)(pattr + 1);\n          bVar1 = *pattr;\n          pattr = (uchar *)(attr_value.val.stringval + bVar1);\n          attr_value.aux.shndx._1_3_ = 0;\n          attr_value.aux.shndx._0_1_ = bVar1;\n          goto joined_r0x00302748;\n        }\n        if (uVar11 < 0xb) {\n          if (uVar11 != 8) {\n            if (uVar11 != 9) {\n              return false;\n            }\n            goto LAB_00302a09;\n          }\n          attr_value.val.blockval = pattr;\n          len = strlen((char *)pattr);\n          pattr = puVar23 + len + 1;\n          if (uVar2 == 0x31) goto LAB_00302750;\n          if (0x31 < uVar2) {\n            if ((uVar2 != 0x6e) && (uVar2 != 0x2007)) goto LAB_00302750;\n            goto LAB_003029eb;\n          }\n          if ((uVar2 == 1) || (uVar2 != 3)) goto LAB_00302750;\n          goto LAB_003029c7;\n        }\n        if (uVar11 < 0xd) {\n          attr_value.val.intval._1_7_ = 0;\n          attr_value.val.uintval._0_1_ = *pattr;\n          pattr = pattr + 1;\n          goto LAB_00302f92;\n        }\n        bVar1 = *pattr;\n        puVar23 = pattr + 1;\n        if ((char)bVar1 < '\0') {\n          attr_value.val.intval = read_signed_LEB_128_x(puVar23,&len,bVar1);\n          puVar23 = pattr + len;\n        }\n        else {\n          len = 1;\n          attr_value.val.intval._1_7_ = 0;\n          attr_value.val.uintval._0_1_ = bVar1;\n          if ((bVar1 & 0x40) != 0) {\n            attr_value.val.uintval = attr_value.val.uintval | 0xffffffffffffff80;\n          }\n        }\n        pattr = puVar23;\n        if ((uVar2 == 0x31) || (uVar2 < 0x32)) goto LAB_00302750;\n        if ((uVar2 == 0x6e) || (uVar2 == 0x2007)) goto LAB_00302fbe;\n        __position._M_current =\n             (this->attributes_).\n             super__Vector_base<gold::Dwarf_die::Attribute_value,_std::allocator<gold::Dwarf_die::Attribute_value>_>\n             ._M_impl._M_finish;\n        if (__position._M_current ==\n            (this->attributes_).\n            super__Vector_base<gold::Dwarf_die::Attribute_value,_std::allocator<gold::Dwarf_die::Attribute_value>_>\n            ._M_impl._M_end_of_storage) goto LAB_003028c0;\nLAB_0030275e:\n        (__position._M_current)->attr = (int)CONCAT44(attr_value.form,attr_value.attr);\n        (__position._M_current)->form = (int)(CONCAT44(attr_value.form,attr_value.attr) >> 0x20);\n        (__position._M_current)->val = attr_value.val;\n        *(ulong *)&(__position._M_current)->aux = CONCAT44(attr_value._20_4_,attr_value.aux.shndx);\n        (this->attributes_).\n        super__Vector_base<gold::Dwarf_die::Attribute_value,_std::allocator<gold::Dwarf_die::Attribute_value>_>\n        ._M_impl._M_finish = __position._M_current + 1;\n      }\n      lVar25 = lVar25 + 8;\n      pAVar13 = this->abbrev_code_;\n    } while (lVar25 != (ulong)(iVar19 - 1) * 8 + 8);\n  }\n  if (pAVar13 == (Abbrev_code *)0x0) {\n                    /* WARNING: Subroutine does not return */\n    do_gold_unreachable("../../gold/dwarf_reader.h",0x206,"has_children");\n  }\n  lVar25 = this->die_offset_;\nLAB_00302797:\n  if ((pAVar13->field_0x4 & 1) == 0) {\n    this->sibling_offset_ = (off_t)(pattr + (lVar25 - (long)puVar18));\n  }\n  else {\n    this->child_offset_ = (off_t)(pattr + (lVar25 - (long)puVar18));\n  }\n  this->attributes_read_ = true;\n  return true;\n}" { (declaration "byte bVar1;" type_identifier identifier ;) (declaration "uint uVar2;" type_identifier identifier ;) (declaration "uint uVar3;" type_identifier identifier ;) (declaration "pointer __src;" type_identifier identifier ;) (declaration "_func_int_varargs **pp_Var4;" type_identifier (pointer_declarator "**pp_Var4" * (pointer_declarator "*pp_Var4" * identifier)) ;) (declaration "_func_int_varargs *p_Var5;" type_identifier (pointer_declarator "*p_Var5" * identifier) ;) (declaration "pointer pAVar6;" type_identifier identifier ;) (declaration "ushort uVar7;" type_identifier identifier ;) (declaration "char cVar8;" primitive_type identifier ;) (declaration "anon_union_4_3_97895b06_for_aux aVar10;" type_identifier identifier ;) (declaration "uint uVar11;" type_identifier identifier ;) (declaration "Valtype VVar12;" type_identifier identifier ;) (declaration "Abbrev_code *pAVar13;" type_identifier (pointer_declarator "*pAVar13" * identifier) ;) (declaration "anon_union_8_5_56ef6665_for_val aVar14;" type_identifier identifier ;) (declaration "anon_union_8_5_56ef6665_for_val aVar15;" type_identifier identifier ;) (declaration "pointer __dest;" type_identifier identifier ;) (declaration "uint64_t uVar16;" primitive_type identifier ;) (declaration "uint *puVar17;" type_identifier (pointer_declarator "*puVar17" * identifier) ;) (declaration "Valtype return_value;" type_identifier identifier ;) (declaration "uchar *puVar18;" type_identifier (pointer_declarator "*puVar18" * identifier) ;) (declaration "int iVar19;" primitive_type identifier ;) (declaration "ulong uVar20;" type_identifier identifier ;) (declaration "uchar *attr_off;" type_identifier (pointer_declarator "*attr_off" * identifier) ;) (declaration "iterator __position;" type_identifier identifier ;) (declaration "Dwarf_info_reader *pDVar21;" type_identifier (pointer_declarator "*pDVar21" * identifier) ;) (declaration "Relobj *pRVar22;" type_identifier (pointer_declarator "*pRVar22" * identifier) ;) (declaration "uchar *puVar23;" type_identifier (pointer_declarator "*puVar23" * identifier) ;) (declaration "pointer pAVar24;" type_identifier identifier ;) (declaration "size_t __n;" primitive_type identifier ;) (declaration "long lVar25;" (sized_type_specifier "long" long) identifier ;) (declaration "uchar *pattr;" type_identifier (pointer_declarator "*pattr" * identifier) ;) (declaration "size_t len;" primitive_type identifier ;) (declaration "off_t str_off;" type_identifier identifier ;) (declaration "Attribute_value attr_value;" type_identifier identifier ;) (declaration "int iVar9;" primitive_type identifier ;) (expression_statement "pAVar13 = this->abbrev_code_;" (assignment_expression "pAVar13 = this->abbrev_code_" identifier = (field_expression "this->abbrev_code_" identifier -> field_identifier)) ;) (if_statement "if (pAVar13 == (Abbrev_code *)0x0) {\n                    /* WARNING: Subroutine does not return */\n    do_gold_unreachable("../../gold/dwarf_reader.cc",0x2a9,"read_attributes");\n  }" if (parenthesized_expression "(pAVar13 == (Abbrev_code *)0x0)" ( (binary_expression "pAVar13 == (Abbrev_code *)0x0" identifier == (cast_expression "(Abbrev_code *)0x0" ( (type_descriptor "Abbrev_code *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n                    /* WARNING: Subroutine does not return */\n    do_gold_unreachable("../../gold/dwarf_reader.cc",0x2a9,"read_attributes");\n  }" { comment (expression_statement "do_gold_unreachable("../../gold/dwarf_reader.cc",0x2a9,"read_attributes");" (call_expression "do_gold_unreachable("../../gold/dwarf_reader.cc",0x2a9,"read_attributes")" identifier (argument_list "("../../gold/dwarf_reader.cc",0x2a9,"read_attributes")" ( (string_literal ""../../gold/dwarf_reader.cc"" " string_content ") , number_literal , (string_literal ""read_attributes"" " string_content ") ))) ;) })) (expression_statement "pDVar21 = this->dwinfo_;" (assignment_expression "pDVar21 = this->dwinfo_" identifier = (field_expression "this->dwinfo_" identifier -> field_identifier)) ;) (expression_statement "lVar25 = this->die_offset_;" (assignment_expression "lVar25 = this->die_offset_" identifier = (field_expression "this->die_offset_" identifier -> field_identifier)) ;) (expression_statement "puVar18 = pDVar21->buffer_ + pDVar21->cu_offset_ + lVar25;" (assignment_expression "puVar18 = pDVar21->buffer_ + pDVar21->cu_offset_ + lVar25" identifier = (binary_expression "pDVar21->buffer_ + pDVar21->cu_offset_ + lVar25" (binary_expression "pDVar21->buffer_ + pDVar21->cu_offset_" (field_expression "pDVar21->buffer_" identifier -> field_identifier) + (field_expression "pDVar21->cu_offset_" identifier -> field_identifier)) + identifier)) ;) (if_statement "if (pDVar21->buffer_ + pDVar21->cu_offset_ + pDVar21->cu_length_ < puVar18 + 1) {\n    Dwarf_info_reader::warn_corrupt_debug_section(pDVar21);\n    return false;\n  }" if (parenthesized_expression "(pDVar21->buffer_ + pDVar21->cu_offset_ + pDVar21->cu_length_ < puVar18 + 1)" ( (binary_expression "pDVar21->buffer_ + pDVar21->cu_offset_ + pDVar21->cu_length_ < puVar18 + 1" (binary_expression "pDVar21->buffer_ + pDVar21->cu_offset_ + pDVar21->cu_length_" (binary_expression "pDVar21->buffer_ + pDVar21->cu_offset_" (field_expression "pDVar21->buffer_" identifier -> field_identifier) + (field_expression "pDVar21->cu_offset_" identifier -> field_identifier)) + (field_expression "pDVar21->cu_length_" identifier -> field_identifier)) < (binary_expression "puVar18 + 1" identifier + number_literal)) )) (compound_statement "{\n    Dwarf_info_reader::warn_corrupt_debug_section(pDVar21);\n    return false;\n  }" { (labeled_statement "Dwarf_info_reader::warn_corrupt_debug_section(pDVar21);" statement_identifier : (ERROR ":" :) (expression_statement "warn_corrupt_debug_section(pDVar21);" (call_expression "warn_corrupt_debug_section(pDVar21)" identifier (argument_list "(pDVar21)" ( identifier ))) ;)) (return_statement "return false;" return false ;) })) (if_statement "if (puVar18 == (uchar *)0x0) {\n    return false;\n  }" if (parenthesized_expression "(puVar18 == (uchar *)0x0)" ( (binary_expression "puVar18 == (uchar *)0x0" identifier == (cast_expression "(uchar *)0x0" ( (type_descriptor "uchar *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n    return false;\n  }" { (return_statement "return false;" return false ;) })) (ERROR "__src = (this->attributes_).\n          super__Vector_base<gold::" (assignment_expression "__src = (this->attributes_).\n          super__Vector_base<gold" identifier = (binary_expression "(this->attributes_).\n          super__Vector_base<gold" (field_expression "(this->attributes_).\n          super__Vector_base" (parenthesized_expression "(this->attributes_)" ( (field_expression "this->attributes_" identifier -> field_identifier) )) . field_identifier) < identifier)) : :) (labeled_statement "Dwarf_die::Attribute_value,_std::allocator<gold::Dwarf_die::Attribute_value>_>\n          ._M_impl._M_start;" statement_identifier (ERROR "::Attribute_value,_std::allocator<gold:" : : (comma_expression "Attribute_value,_std" identifier , identifier) : : (binary_expression "allocator<gold" identifier < identifier) :) : (labeled_statement "Dwarf_die::Attribute_value>_>\n          ._M_impl._M_start;" statement_identifier : (ERROR ":" :) (expression_statement "Attribute_value>_>\n          ._M_impl._M_start;" (field_expression "Attribute_value>_>\n          ._M_impl._M_start" (field_expression "Attribute_value>_>\n          ._M_impl" (binary_expression "Attribute_value>_" identifier > identifier) (ERROR ">" >) . field_identifier) . field_identifier) ;))) (expression_statement "pattr = puVar18 + this->attr_offset_;" (assignment_expression "pattr = puVar18 + this->attr_offset_" identifier = (binary_expression "puVar18 + this->attr_offset_" identifier + (field_expression "this->attr_offset_" identifier -> field_identifier))) ;) (ERROR "uVar20 = (long)(pAVar13->attributes).\n                 super__Vector_base<gold::" (assignment_expression "uVar20 = (long)(pAVar13->attributes).\n                 super__Vector_base<gold" identifier = (binary_expression "(long)(pAVar13->attributes).\n                 super__Vector_base<gold" (cast_expression "(long)(pAVar13->attributes).\n                 super__Vector_base" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) (field_expression "(pAVar13->attributes).\n                 super__Vector_base" (parenthesized_expression "(pAVar13->attributes)" ( (field_expression "pAVar13->attributes" identifier -> field_identifier) )) . field_identifier)) < identifier)) : :) (labeled_statement "Dwarf_abbrev_table::Attribute,_std::allocator<gold::Dwarf_abbrev_table::Attribute>_>\n                 ._M_impl._M_finish -\n           (long)(pAVar13->attributes).\n                 super__Vector_base<gold::Dwarf_abbrev_table::Attribute,_std::allocator<gold::Dwarf_abbrev_table::Attribute>_>\n                 ._M_impl._M_start >> 3;" statement_identifier (ERROR "::Attribute,_std::allocator<gold:" : : (comma_expression "Attribute,_std" identifier , identifier) : : (binary_expression "allocator<gold" identifier < identifier) :) : (labeled_statement "Dwarf_abbrev_table::Attribute>_>\n                 ._M_impl._M_finish -\n           (long)(pAVar13->attributes).\n                 super__Vector_base<gold::Dwarf_abbrev_table::Attribute,_std::allocator<gold::Dwarf_abbrev_table::Attribute>_>\n                 ._M_impl._M_start >> 3;" statement_identifier (ERROR "::Attribute>_>\n                 ._M_impl._M_finish -\n           (long)(pAVar13->attributes).\n                 super__Vector_base<gold:" : : (binary_expression "Attribute>_>\n                 ._M_impl._M_finish -\n           (long)(pAVar13->attributes).\n                 super__Vector_base<gold" (binary_expression "Attribute>_>\n                 ._M_impl._M_finish -\n           (long)(pAVar13->attributes).\n                 super__Vector_base" (field_expression "Attribute>_>\n                 ._M_impl._M_finish" (field_expression "Attribute>_>\n                 ._M_impl" (binary_expression "Attribute>_" identifier > identifier) (ERROR ">" >) . field_identifier) . field_identifier) - (cast_expression "(long)(pAVar13->attributes).\n                 super__Vector_base" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) (field_expression "(pAVar13->attributes).\n                 super__Vector_base" (parenthesized_expression "(pAVar13->attributes)" ( (field_expression "pAVar13->attributes" identifier -> field_identifier) )) . field_identifier))) < identifier) :) : (labeled_statement "Dwarf_abbrev_table::Attribute,_std::allocator<gold::Dwarf_abbrev_table::Attribute>_>\n                 ._M_impl._M_start >> 3;" statement_identifier (ERROR "::Attribute,_std::allocator<gold:" : : (comma_expression "Attribute,_std" identifier , identifier) : : (binary_expression "allocator<gold" identifier < identifier) :) : (labeled_statement "Dwarf_abbrev_table::Attribute>_>\n                 ._M_impl._M_start >> 3;" statement_identifier : (ERROR ":" :) (expression_statement "Attribute>_>\n                 ._M_impl._M_start >> 3;" (binary_expression "Attribute>_>\n                 ._M_impl._M_start >> 3" (field_expression "Attribute>_>\n                 ._M_impl._M_start" (field_expression "Attribute>_>\n                 ._M_impl" (binary_expression "Attribute>_" identifier > identifier) (ERROR ">" >) . field_identifier) . field_identifier) >> number_literal) ;))))) (expression_statement "iVar19 = (int)uVar20;" (assignment_expression "iVar19 = (int)uVar20" identifier = (cast_expression "(int)uVar20" ( (type_descriptor "int" primitive_type) ) identifier)) ;) (expression_statement "uVar20 = uVar20 & 0xffffffff;" (assignment_expression "uVar20 = uVar20 & 0xffffffff" identifier = (binary_expression "uVar20 & 0xffffffff" identifier & number_literal)) ;) (if_statement "if ((ulong)(((long)(this->attributes_).\n                     super__Vector_base<gold::Dwarf_die::Attribute_value,_std::allocator<gold::Dwarf_die::Attribute_value>_>\n                     ._M_impl._M_end_of_storage - (long)__src >> 3) * -0x5555555555555555) < uVar20)\n  {\n    pAVar6 = (this->attributes_).\n             super__Vector_base<gold::Dwarf_die::Attribute_value,_std::allocator<gold::Dwarf_die::Attribute_value>_>\n             ._M_impl._M_finish;\n    __n = (long)pAVar6 - (long)__src;\n    if (uVar20 == 0) {\n      __dest = (pointer)0x0;\n      pAVar24 = __src;\n    }\n    else {\n      __dest = (pointer)operator_new(uVar20 * 0x18);\n      pAVar24 = (this->attributes_).\n                super__Vector_base<gold::Dwarf_die::Attribute_value,_std::allocator<gold::Dwarf_die::Attribute_value>_>\n                ._M_impl._M_start;\n    }\n    if (__src != pAVar6) {\n      __dest = (pointer)memmove(__dest,__src,__n);\n    }\n    if (pAVar24 != (pointer)0x0) {\n      operator_delete(pAVar24);\n    }\n    (this->attributes_).\n    super__Vector_base<gold::Dwarf_die::Attribute_value,_std::allocator<gold::Dwarf_die::Attribute_value>_>\n    ._M_impl._M_start = __dest;\n    pAVar13 = this->abbrev_code_;\n    (this->attributes_).\n    super__Vector_base<gold::Dwarf_die::Attribute_value,_std::allocator<gold::Dwarf_die::Attribute_value>_>\n    ._M_impl._M_finish = (pointer)(__n + (long)__dest);\n    (this->attributes_).\n    super__Vector_base<gold::Dwarf_die::Attribute_value,_std::allocator<gold::Dwarf_die::Attribute_value>_>\n    ._M_impl._M_end_of_storage = __dest + uVar20;\n    if (iVar19 != 0) goto LAB_00302642;\n  }\n  else {\n    if (iVar19 == 0) goto LAB_00302797;\nLAB_00302642:\n    lVar25 = 0;\n    do {\n      puVar17 = (uint *)((long)&((pAVar13->attributes).\n                                 super__Vector_base<gold::Dwarf_abbrev_table::Attribute,_std::allocator<gold::Dwarf_abbrev_table::Attribute>_>\n                                 ._M_impl._M_start)->attr + lVar25);\n      uVar11 = puVar17[1];\n      uVar2 = *puVar17;\n      if (uVar11 == 0x16) {\n        bVar1 = *pattr;\n        uVar11 = (uint)bVar1;\n        if ((char)bVar1 < '\0') {\n          uVar16 = read_unsigned_LEB_128_x(pattr + 1,&len,bVar1);\n          uVar11 = (uint)uVar16;\n          pattr = pattr + len;\n        }\n        else {\n          len = 1;\n          pattr = pattr + 1;\n        }\n      }\n      puVar23 = pattr;\n      attr_off = pattr + (this->die_offset_ - (long)puVar18);\n      attr_value.aux.shndx = 0;\n      attr_value.attr = uVar2;\n      attr_value.form = uVar11;\n      if (uVar11 == 0xe) {\n        pDVar21 = this->dwinfo_;\n        if (pDVar21->offset_size_ == 4) {\n          VVar12 = Dwarf_info_reader::read_from_pointer<32>(pDVar21,&pattr);\n          str_off = (off_t)VVar12;\n        }\n        else {\n          pp_Var4 = (pDVar21->object_->super_Object)._vptr_Object;\n          p_Var5 = pp_Var4[3];\n          if (p_Var5 == Relobj::is_big_endian) {\n            iVar9 = (*pp_Var4[0x3a])();\n            cVar8 = (char)iVar9;\n          }\n          else {\n            iVar9 = (*p_Var5)();\n            cVar8 = (char)iVar9;\n          }\n          str_off = *(off_t *)pattr;\n          if (cVar8 != '\0') {\n            str_off = (ulong)str_off >> 0x38 | (str_off & 0xff000000000000U) >> 0x28 |\n                      (str_off & 0xff0000000000U) >> 0x18 | (str_off & 0xff00000000U) >> 8 |\n                      (str_off & 0xff000000U) << 8 | (str_off & 0xff0000U) << 0x18 |\n                      (str_off & 0xff00U) << 0x28 | str_off << 0x38;\n          }\n          pattr = pattr + 8;\n        }\n        attr_value.aux.shndx =\n             Dwarf_info_reader::lookup_reloc(this->dwinfo_,(off_t)attr_off,&str_off);\n        attr_value.val.refval = str_off;\n        if (uVar2 != 0x31) {\n          if (uVar2 < 0x32) {\n            if ((uVar2 != 1) && (uVar2 == 3)) {\nLAB_00302f64:\n              this->string_shndx_ = (uint)attr_value.aux;\n              this->name_off_ = (off_t)attr_value.val;\n            }\n          }\n          else if ((uVar2 == 0x6e) || (uVar2 == 0x2007)) {\nLAB_00302fd0:\n            this->string_shndx_ = (uint)attr_value.aux;\n            this->linkage_name_off_ = (off_t)attr_value.val;\n          }\n        }\nLAB_00302750:\n        __position._M_current =\n             (this->attributes_).\n             super__Vector_base<gold::Dwarf_die::Attribute_value,_std::allocator<gold::Dwarf_die::Attribute_value>_>\n             ._M_impl._M_finish;\n        if (__position._M_current !=\n            (this->attributes_).\n            super__Vector_base<gold::Dwarf_die::Attribute_value,_std::allocator<gold::Dwarf_die::Attribute_value>_>\n            ._M_impl._M_end_of_storage) goto LAB_0030275e;\nLAB_003028c0:\n        std::\n        vector<gold::Dwarf_die::Attribute_value,_std::allocator<gold::Dwarf_die::Attribute_value>_>\n        ::_M_realloc_insert<const_gold::Dwarf_die::Attribute_value&>\n                  (&this->attributes_,__position,&attr_value);\n      }\n      else {\n        if (0xe < uVar11) {\n          if (uVar11 == 0x15) {\n            bVar1 = *pattr;\n            aVar15.intval._1_7_ = 0;\n            aVar15.uintval._0_1_ = bVar1;\n            if ((char)bVar1 < '\0') {\n              attr_value.val.uintval = read_unsigned_LEB_128_x(pattr + 1,&len,bVar1);\n              pattr = pattr + len;\n            }\n            else {\n              len = 1;\n              pattr = pattr + 1;\n              attr_value.val = aVar15;\n            }\njoined_r0x00303052:\n            if (uVar2 != 0x31) {\n              if (uVar2 < 0x32) {\nLAB_00302c20:\n                if ((uVar2 == 1) && (attr_value.aux.shndx == 0)) {\n                  this->sibling_offset_ = (off_t)attr_value.val;\n                }\n                goto LAB_00302750;\n              }\n              if ((uVar2 != 0x6e) && (uVar2 != 0x2007)) {\njoined_r0x00302ce3:\n                if (uVar2 == 0x47) {\n                  this->specification_ = (off_t)attr_value.val;\n                }\n                goto LAB_00302750;\n              }\nLAB_00302fb5:\n              if (uVar11 == 8) {\nLAB_003029eb:\n                this->linkage_name_ = (char *)attr_value.val;\n              }\n              else {\nLAB_00302fbe:\n                if (uVar11 == 0xe) goto LAB_00302fd0;\n              }\n              goto LAB_00302750;\n            }\n          }\n          else {\n            if (0x15 < uVar11) {\n              if (uVar11 != 0x19) {\n                if (uVar11 < 0x1a) {\n                  if (uVar11 == 0x17) {\n                    pDVar21 = this->dwinfo_;\n                    if (pDVar21->offset_size_ == 4) {\n                      VVar12 = Dwarf_info_reader::read_from_pointer<32>(pDVar21,&pattr);\n                      str_off = (off_t)VVar12;\n                    }\n                    else {\n                      pRVar22 = pDVar21->object_;\nLAB_00302fe7:\n                      pp_Var4 = (pRVar22->super_Object)._vptr_Object;\n                      p_Var5 = pp_Var4[3];\n                      if (p_Var5 == Relobj::is_big_endian) {\n                        iVar9 = (*pp_Var4[0x3a])();\n                        cVar8 = (char)iVar9;\n                      }\n                      else {\n                        iVar9 = (*p_Var5)();\n                        cVar8 = (char)iVar9;\n                      }\n                      str_off = *(off_t *)pattr;\n                      if (cVar8 != '\0') {\n                        str_off = (ulong)str_off >> 0x38 | (str_off & 0xff000000000000U) >> 0x28 |\n                                  (str_off & 0xff0000000000U) >> 0x18 |\n                                  (str_off & 0xff00000000U) >> 8 | (str_off & 0xff000000U) << 8 |\n                                  (str_off & 0xff0000U) << 0x18 | (str_off & 0xff00U) << 0x28 |\n                                  str_off << 0x38;\n                      }\n                      pattr = pattr + 8;\n                    }\nLAB_00303035:\n                    attr_value.aux.shndx =\n                         Dwarf_info_reader::lookup_reloc(this->dwinfo_,(off_t)attr_off,&str_off);\n                    attr_value.val.refval = str_off;\n                    goto joined_r0x00303052;\n                  }\n                  if (uVar11 != 0x18) {\n                    return false;\n                  }\nLAB_00302a09:\n                  bVar1 = *pattr;\n                  aVar10.shndx._1_3_ = 0;\n                  aVar10.shndx._0_1_ = bVar1;\n                  aVar15.stringval = (char *)(pattr + 1);\n                  if ((char)bVar1 < '\0') {\n                    uVar16 = read_unsigned_LEB_128_x(aVar15.blockval,&len,bVar1);\n                    aVar10.shndx = (uint)uVar16;\n                    aVar15.stringval = (char *)(pattr + len);\n                  }\n                  else {\n                    len = 1;\n                  }\n                  pattr = pattr + aVar10.shndx + len;\n                  attr_value.val = aVar15;\n                  attr_value.aux = aVar10;\n                }\n                else {\n                  if (uVar11 == 0x20) {\n                    pp_Var4 = (this->dwinfo_->object_->super_Object)._vptr_Object;\n                    p_Var5 = pp_Var4[3];\n                    if (p_Var5 == Relobj::is_big_endian) {\n                      iVar9 = (*pp_Var4[0x3a])();\n                      cVar8 = (char)iVar9;\n                    }\n                    else {\n                      iVar9 = (*p_Var5)();\n                      cVar8 = (char)iVar9;\n                    }\n                    /* WARNING: Load size is inaccurate */\n                    attr_value.val.blockval = *pattr;\n                    if (cVar8 != '\0') {\n                      attr_value.val.uintval =\n                           attr_value.val.uintval >> 0x38 |\n                           (attr_value.val.uintval & 0xff000000000000) >> 0x28 |\n                           (attr_value.val.uintval & 0xff0000000000) >> 0x18 |\n                           (attr_value.val.uintval & 0xff00000000) >> 8 |\n                           (attr_value.val.uintval & 0xff000000) << 8 |\n                           (attr_value.val.uintval & 0xff0000) << 0x18 |\n                           (attr_value.val.uintval & 0xff00) << 0x28 |\n                           attr_value.val.uintval << 0x38;\n                    }\n                    pattr = pattr + 8;\n                    goto LAB_00302ea9;\n                  }\n                  if (uVar11 < 0x20) {\n                    return false;\n                  }\n                  if (1 < uVar11 - 0x1f01) {\n                    return false;\n                  }\nLAB_00302bcd:\n                  bVar1 = *pattr;\n                  aVar14.intval._1_7_ = 0;\n                  aVar14.uintval._0_1_ = bVar1;\n                  if ((char)bVar1 < '\0') {\n                    attr_value.val.uintval = read_unsigned_LEB_128_x(pattr + 1,&len,bVar1);\n                    pattr = pattr + len;\n                  }\n                  else {\n                    len = 1;\n                    pattr = pattr + 1;\n                    attr_value.val = aVar14;\n                  }\n                }\nLAB_00302f92:\n                if (uVar2 == 0x31) goto LAB_00302750;\n                if (0x31 < uVar2) {\n                  if ((uVar2 == 0x6e) || (uVar2 == 0x2007)) goto LAB_00302fb5;\n                  goto LAB_00302750;\n                }\n                goto LAB_00302e3e;\n              }\n              attr_value.val.intval = 1;\nLAB_00302ea9:\n              if (((uVar2 == 0x31) || (0x31 < uVar2)) || (uVar2 != 3)) goto LAB_00302750;\nLAB_00302e52:\n              if (uVar11 == 8) {\nLAB_003029c7:\n                this->name_ = (char *)attr_value.val;\n              }\n              else if (uVar11 == 0xe) goto LAB_00302f64;\n              goto LAB_00302750;\n            }\n            if (uVar11 != 0x11) {\n              if (0x11 < uVar11) {\n                if (uVar11 == 0x13) {\n                  VVar12 = Dwarf_info_reader::read_from_pointer<32>(this->dwinfo_,&pattr);\n                  str_off = (off_t)VVar12;\n                  goto LAB_00303035;\n                }\n                if (0x13 < uVar11) {\n                  pRVar22 = this->dwinfo_->object_;\n                  goto LAB_00302fe7;\n                }\n                pp_Var4 = (this->dwinfo_->object_->super_Object)._vptr_Object;\n                p_Var5 = pp_Var4[3];\n                if (p_Var5 == Relobj::is_big_endian) {\n                  iVar9 = (*pp_Var4[0x3a])();\n                  cVar8 = (char)iVar9;\n                }\n                else {\n                  iVar9 = (*p_Var5)();\n                  cVar8 = (char)iVar9;\n                }\n                uVar7 = *(ushort *)pattr;\n                if (cVar8 != '\0') {\n                  uVar7 = CONCAT11(*pattr,pattr[1]);\n                }\n                attr_value.val.intval._2_6_ = 0;\n                attr_value.val.intval._0_2_ = uVar7;\n                pattr = pattr + 2;\n                goto joined_r0x00303052;\n              }\n              if (uVar11 == 0xf) goto LAB_00302bcd;\n              if (uVar11 != 0x10) {\n                return false;\n              }\n              pDVar21 = this->dwinfo_;\n              uVar11 = pDVar21->address_size_;\n              if (2 < pDVar21->cu_version_) {\n                uVar11 = pDVar21->offset_size_;\n              }\n              if (uVar11 != 4) goto LAB_00302a71;\nLAB_00302e7d:\n              VVar12 = Dwarf_info_reader::read_from_pointer<32>(pDVar21,&pattr);\n              str_off = (off_t)VVar12;\nLAB_00302abe:\n              attr_value.aux.shndx =\n                   Dwarf_info_reader::lookup_reloc(this->dwinfo_,(off_t)attr_off,&str_off);\n              attr_value.val.refval = str_off;\n              if (uVar2 == 0x31) goto LAB_00302965;\n              if (0x31 < uVar2) goto joined_r0x00302ccc;\n              goto LAB_00302c20;\n            }\n            puVar23 = pattr + 1;\n            attr_value.val.intval._1_7_ = 0;\n            attr_value.val.uintval._0_1_ = *pattr;\n            pattr = puVar23;\n            if (uVar2 != 0x31) {\n              if (uVar2 < 0x32) {\n                if (uVar2 == 1) {\n                  this->sibling_offset_ = (off_t)attr_value.val;\n                }\n                goto LAB_00302750;\n              }\njoined_r0x00302ccc:\n              if ((uVar2 == 0x6e) || (uVar2 == 0x2007)) goto LAB_00302750;\n              goto joined_r0x00302ce3;\n            }\n          }\nLAB_00302965:\n          this->abstract_origin_ = (off_t)attr_value.val;\n          goto LAB_00302750;\n        }\n        if (uVar11 == 7) {\n          pp_Var4 = (this->dwinfo_->object_->super_Object)._vptr_Object;\n          p_Var5 = pp_Var4[3];\n          if (p_Var5 == Relobj::is_big_endian) {\n            iVar9 = (*pp_Var4[0x3a])();\n            cVar8 = (char)iVar9;\n          }\n          else {\n            iVar9 = (*p_Var5)();\n            cVar8 = (char)iVar9;\n          }\n          str_off = *(off_t *)pattr;\n          if (cVar8 != '\0') {\n            str_off = (ulong)str_off >> 0x38 | (str_off & 0xff000000000000U) >> 0x28 |\n                      (str_off & 0xff0000000000U) >> 0x18 | (str_off & 0xff00000000U) >> 8 |\n                      (str_off & 0xff000000U) << 8 | (str_off & 0xff0000U) << 0x18 |\n                      (str_off & 0xff00U) << 0x28 | str_off << 0x38;\n          }\n          pattr = pattr + 8;\nLAB_00302d40:\n          attr_value.aux.shndx =\n               Dwarf_info_reader::lookup_reloc(this->dwinfo_,(off_t)attr_off,&str_off);\n          attr_value.val.refval = str_off;\njoined_r0x00302748:\n          if ((uVar2 != 0x31) && (uVar2 < 0x32)) {\nLAB_00302e3e:\n            if ((uVar2 != 1) && (uVar2 == 3)) goto LAB_00302e52;\n          }\n          goto LAB_00302750;\n        }\n        if (uVar11 < 8) {\n          if (uVar11 == 4) {\n            pp_Var4 = (this->dwinfo_->object_->super_Object)._vptr_Object;\n            p_Var5 = pp_Var4[3];\n            if (p_Var5 == Relobj::is_big_endian) {\n              iVar9 = (*pp_Var4[0x3a])();\n              cVar8 = (char)iVar9;\n            }\n            else {\n              iVar9 = (*p_Var5)();\n              cVar8 = (char)iVar9;\n            }\n            attr_value.aux.shndx = *(uint *)pattr;\n            if (cVar8 != '\0') {\n              attr_value.aux.shndx =\n                   attr_value.aux.shndx >> 0x18 | (attr_value.aux.shndx & 0xff0000) >> 8 |\n                   (attr_value.aux.shndx & 0xff00) << 8 | attr_value.aux.shndx << 0x18;\n            }\n            attr_value.val.stringval = (char *)(pattr + 4);\n            pattr = (uchar *)(attr_value.val.stringval + attr_value.aux.shndx);\n          }\n          else if (uVar11 < 5) {\n            if (uVar11 == 1) {\n              pDVar21 = this->dwinfo_;\n              if (pDVar21->address_size_ == 4) goto LAB_00302e7d;\nLAB_00302a71:\n              pp_Var4 = (pDVar21->object_->super_Object)._vptr_Object;\n              p_Var5 = pp_Var4[3];\n              if (p_Var5 == Relobj::is_big_endian) {\n                iVar9 = (*pp_Var4[0x3a])();\n                cVar8 = (char)iVar9;\n              }\n              else {\n                iVar9 = (*p_Var5)();\n                cVar8 = (char)iVar9;\n              }\n              str_off = *(off_t *)pattr;\n              if (cVar8 != '\0') {\n                str_off = (ulong)str_off >> 0x38 | (str_off & 0xff000000000000U) >> 0x28 |\n                          (str_off & 0xff0000000000U) >> 0x18 | (str_off & 0xff00000000U) >> 8 |\n                          (str_off & 0xff000000U) << 8 | (str_off & 0xff0000U) << 0x18 |\n                          (str_off & 0xff00U) << 0x28 | str_off << 0x38;\n              }\n              pattr = pattr + 8;\n              goto LAB_00302abe;\n            }\n            if (uVar11 != 3) {\n              return false;\n            }\n            pp_Var4 = (this->dwinfo_->object_->super_Object)._vptr_Object;\n            p_Var5 = pp_Var4[3];\n            if (p_Var5 == Relobj::is_big_endian) {\n              iVar9 = (*pp_Var4[0x3a])();\n              cVar8 = (char)iVar9;\n            }\n            else {\n              iVar9 = (*p_Var5)();\n              cVar8 = (char)iVar9;\n            }\n            uVar7 = *(ushort *)pattr;\n            if (cVar8 != '\0') {\n              uVar7 = CONCAT11(*pattr,pattr[1]);\n            }\n            attr_value.aux.shndx._2_2_ = 0;\n            attr_value.aux.shndx._0_2_ = uVar7;\n            attr_value.val.stringval = (char *)(pattr + 2);\n            pattr = (uchar *)(attr_value.val.stringval + attr_value.aux.shndx);\n          }\n          else {\n            if (uVar11 != 5) {\n              if (uVar11 != 6) {\n                return false;\n              }\n              pp_Var4 = (this->dwinfo_->object_->super_Object)._vptr_Object;\n              p_Var5 = pp_Var4[3];\n              if (p_Var5 == Relobj::is_big_endian) {\n                iVar9 = (*pp_Var4[0x3a])();\n                cVar8 = (char)iVar9;\n              }\n              else {\n                iVar9 = (*p_Var5)();\n                cVar8 = (char)iVar9;\n              }\n              uVar3 = *(uint *)pattr;\n              if (cVar8 != '\0') {\n                uVar3 = uVar3 >> 0x18 | (uVar3 & 0xff0000) >> 8 | (uVar3 & 0xff00) << 8 |\n                        uVar3 << 0x18;\n              }\n              str_off = (off_t)uVar3;\n              pattr = pattr + 4;\n              goto LAB_00302d40;\n            }\n            pp_Var4 = (this->dwinfo_->object_->super_Object)._vptr_Object;\n            p_Var5 = pp_Var4[3];\n            if (p_Var5 == Relobj::is_big_endian) {\n              iVar9 = (*pp_Var4[0x3a])();\n              cVar8 = (char)iVar9;\n            }\n            else {\n              iVar9 = (*p_Var5)();\n              cVar8 = (char)iVar9;\n            }\n            uVar7 = *(ushort *)pattr;\n            if (cVar8 != '\0') {\n              uVar7 = CONCAT11(*pattr,pattr[1]);\n            }\n            pattr = pattr + 2;\n            attr_value.val.intval._2_6_ = 0;\n            attr_value.val.intval._0_2_ = uVar7;\n          }\n          goto joined_r0x00302748;\n        }\n        if (uVar11 == 10) {\n          attr_value.val.stringval = (char *)(pattr + 1);\n          bVar1 = *pattr;\n          pattr = (uchar *)(attr_value.val.stringval + bVar1);\n          attr_value.aux.shndx._1_3_ = 0;\n          attr_value.aux.shndx._0_1_ = bVar1;\n          goto joined_r0x00302748;\n        }\n        if (uVar11 < 0xb) {\n          if (uVar11 != 8) {\n            if (uVar11 != 9) {\n              return false;\n            }\n            goto LAB_00302a09;\n          }\n          attr_value.val.blockval = pattr;\n          len = strlen((char *)pattr);\n          pattr = puVar23 + len + 1;\n          if (uVar2 == 0x31) goto LAB_00302750;\n          if (0x31 < uVar2) {\n            if ((uVar2 != 0x6e) && (uVar2 != 0x2007)) goto LAB_00302750;\n            goto LAB_003029eb;\n          }\n          if ((uVar2 == 1) || (uVar2 != 3)) goto LAB_00302750;\n          goto LAB_003029c7;\n        }\n        if (uVar11 < 0xd) {\n          attr_value.val.intval._1_7_ = 0;\n          attr_value.val.uintval._0_1_ = *pattr;\n          pattr = pattr + 1;\n          goto LAB_00302f92;\n        }\n        bVar1 = *pattr;\n        puVar23 = pattr + 1;\n        if ((char)bVar1 < '\0') {\n          attr_value.val.intval = read_signed_LEB_128_x(puVar23,&len,bVar1);\n          puVar23 = pattr + len;\n        }\n        else {\n          len = 1;\n          attr_value.val.intval._1_7_ = 0;\n          attr_value.val.uintval._0_1_ = bVar1;\n          if ((bVar1 & 0x40) != 0) {\n            attr_value.val.uintval = attr_value.val.uintval | 0xffffffffffffff80;\n          }\n        }\n        pattr = puVar23;\n        if ((uVar2 == 0x31) || (uVar2 < 0x32)) goto LAB_00302750;\n        if ((uVar2 == 0x6e) || (uVar2 == 0x2007)) goto LAB_00302fbe;\n        __position._M_current =\n             (this->attributes_).\n             super__Vector_base<gold::Dwarf_die::Attribute_value,_std::allocator<gold::Dwarf_die::Attribute_value>_>\n             ._M_impl._M_finish;\n        if (__position._M_current ==\n            (this->attributes_).\n            super__Vector_base<gold::Dwarf_die::Attribute_value,_std::allocator<gold::Dwarf_die::Attribute_value>_>\n            ._M_impl._M_end_of_storage) goto LAB_003028c0;\nLAB_0030275e:\n        (__position._M_current)->attr = (int)CONCAT44(attr_value.form,attr_value.attr);\n        (__position._M_current)->form = (int)(CONCAT44(attr_value.form,attr_value.attr) >> 0x20);\n        (__position._M_current)->val = attr_value.val;\n        *(ulong *)&(__position._M_current)->aux = CONCAT44(attr_value._20_4_,attr_value.aux.shndx);\n        (this->attributes_).\n        super__Vector_base<gold::Dwarf_die::Attribute_value,_std::allocator<gold::Dwarf_die::Attribute_value>_>\n        ._M_impl._M_finish = __position._M_current + 1;\n      }\n      lVar25 = lVar25 + 8;\n      pAVar13 = this->abbrev_code_;\n    } while (lVar25 != (ulong)(iVar19 - 1) * 8 + 8);\n  }" if (parenthesized_expression "((ulong)(((long)(this->attributes_).\n                     super__Vector_base<gold::Dwarf_die::Attribute_value,_std::allocator<gold::Dwarf_die::Attribute_value>_>\n                     ._M_impl._M_end_of_storage - (long)__src >> 3) * -0x5555555555555555) < uVar20)" ( (binary_expression "(ulong)(((long)(this->attributes_).\n                     super__Vector_base<gold::Dwarf_die::Attribute_value,_std::allocator<gold::Dwarf_die::Attribute_value>_>\n                     ._M_impl._M_end_of_storage - (long)__src >> 3) * -0x5555555555555555) < uVar20" (call_expression "(ulong)(((long)(this->attributes_).\n                     super__Vector_base<gold::Dwarf_die::Attribute_value,_std::allocator<gold::Dwarf_die::Attribute_value>_>\n                     ._M_impl._M_end_of_storage - (long)__src >> 3) * -0x5555555555555555)" (parenthesized_expression "(ulong)" ( identifier )) (argument_list "(((long)(this->attributes_).\n                     super__Vector_base<gold::Dwarf_die::Attribute_value,_std::allocator<gold::Dwarf_die::Attribute_value>_>\n                     ._M_impl._M_end_of_storage - (long)__src >> 3) * -0x5555555555555555)" ( (binary_expression "((long)(this->attributes_).\n                     super__Vector_base<gold::Dwarf_die::Attribute_value,_std::allocator<gold::Dwarf_die::Attribute_value>_>\n                     ._M_impl._M_end_of_storage - (long)__src >> 3) * -0x5555555555555555" (parenthesized_expression "((long)(this->attributes_).\n                     super__Vector_base<gold::Dwarf_die::Attribute_value,_std::allocator<gold::Dwarf_die::Attribute_value>_>\n                     ._M_impl._M_end_of_storage - (long)__src >> 3)" ( (ERROR "(long)(this->attributes_).\n                     super__Vector_base<gold::Dwarf_die::Attribute_value,_std::allocator<gold::Dwarf_die::" (comma_expression "(long)(this->attributes_).\n                     super__Vector_base<gold::Dwarf_die::Attribute_value,_std" (binary_expression "(long)(this->attributes_).\n                     super__Vector_base<gold" (cast_expression "(long)(this->attributes_).\n                     super__Vector_base" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) (field_expression "(this->attributes_).\n                     super__Vector_base" (parenthesized_expression "(this->attributes_)" ( (field_expression "this->attributes_" identifier -> field_identifier) )) . field_identifier)) < identifier) (ERROR "::Dwarf_die::Attribute_value" : : identifier : : identifier) , identifier) : : (binary_expression "allocator<gold" identifier < identifier) : : identifier : :) (binary_expression "Attribute_value>_>\n                     ._M_impl._M_end_of_storage - (long)__src >> 3" (binary_expression "Attribute_value>_>\n                     ._M_impl._M_end_of_storage - (long)__src" (field_expression "Attribute_value>_>\n                     ._M_impl._M_end_of_storage" (field_expression "Attribute_value>_>\n                     ._M_impl" (binary_expression "Attribute_value>_" identifier > identifier) (ERROR ">" >) . field_identifier) . field_identifier) - (cast_expression "(long)__src" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) identifier)) >> number_literal) )) * number_literal) ))) < identifier) )) (compound_statement "{\n    pAVar6 = (this->attributes_).\n             super__Vector_base<gold::Dwarf_die::Attribute_value,_std::allocator<gold::Dwarf_die::Attribute_value>_>\n             ._M_impl._M_finish;\n    __n = (long)pAVar6 - (long)__src;\n    if (uVar20 == 0) {\n      __dest = (pointer)0x0;\n      pAVar24 = __src;\n    }\n    else {\n      __dest = (pointer)operator_new(uVar20 * 0x18);\n      pAVar24 = (this->attributes_).\n                super__Vector_base<gold::Dwarf_die::Attribute_value,_std::allocator<gold::Dwarf_die::Attribute_value>_>\n                ._M_impl._M_start;\n    }\n    if (__src != pAVar6) {\n      __dest = (pointer)memmove(__dest,__src,__n);\n    }\n    if (pAVar24 != (pointer)0x0) {\n      operator_delete(pAVar24);\n    }\n    (this->attributes_).\n    super__Vector_base<gold::Dwarf_die::Attribute_value,_std::allocator<gold::Dwarf_die::Attribute_value>_>\n    ._M_impl._M_start = __dest;\n    pAVar13 = this->abbrev_code_;\n    (this->attributes_).\n    super__Vector_base<gold::Dwarf_die::Attribute_value,_std::allocator<gold::Dwarf_die::Attribute_value>_>\n    ._M_impl._M_finish = (pointer)(__n + (long)__dest);\n    (this->attributes_).\n    super__Vector_base<gold::Dwarf_die::Attribute_value,_std::allocator<gold::Dwarf_die::Attribute_value>_>\n    ._M_impl._M_end_of_storage = __dest + uVar20;\n    if (iVar19 != 0) goto LAB_00302642;\n  }" { (ERROR "pAVar6 = (this->attributes_).\n             super__Vector_base<gold::" (assignment_expression "pAVar6 = (this->attributes_).\n             super__Vector_base<gold" identifier = (binary_expression "(this->attributes_).\n             super__Vector_base<gold" (field_expression "(this->attributes_).\n             super__Vector_base" (parenthesized_expression "(this->attributes_)" ( (field_expression "this->attributes_" identifier -> field_identifier) )) . field_identifier) < identifier)) : :) (labeled_statement "Dwarf_die::Attribute_value,_std::allocator<gold::Dwarf_die::Attribute_value>_>\n             ._M_impl._M_finish;" statement_identifier (ERROR "::Attribute_value,_std::allocator<gold:" : : (comma_expression "Attribute_value,_std" identifier , identifier) : : (binary_expression "allocator<gold" identifier < identifier) :) : (labeled_statement "Dwarf_die::Attribute_value>_>\n             ._M_impl._M_finish;" statement_identifier : (ERROR ":" :) (expression_statement "Attribute_value>_>\n             ._M_impl._M_finish;" (field_expression "Attribute_value>_>\n             ._M_impl._M_finish" (field_expression "Attribute_value>_>\n             ._M_impl" (binary_expression "Attribute_value>_" identifier > identifier) (ERROR ">" >) . field_identifier) . field_identifier) ;))) (expression_statement "__n = (long)pAVar6 - (long)__src;" (assignment_expression "__n = (long)pAVar6 - (long)__src" identifier = (binary_expression "(long)pAVar6 - (long)__src" (cast_expression "(long)pAVar6" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) identifier) - (cast_expression "(long)__src" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) identifier))) ;) (if_statement "if (uVar20 == 0) {\n      __dest = (pointer)0x0;\n      pAVar24 = __src;\n    }\n    else {\n      __dest = (pointer)operator_new(uVar20 * 0x18);\n      pAVar24 = (this->attributes_).\n                super__Vector_base<gold::Dwarf_die::Attribute_value,_std::allocator<gold::Dwarf_die::Attribute_value>_>\n                ._M_impl._M_start;\n    }" if (parenthesized_expression "(uVar20 == 0)" ( (binary_expression "uVar20 == 0" identifier == number_literal) )) (compound_statement "{\n      __dest = (pointer)0x0;\n      pAVar24 = __src;\n    }" { (expression_statement "__dest = (pointer)0x0;" (assignment_expression "__dest = (pointer)0x0" identifier = (cast_expression "(pointer)0x0" ( (type_descriptor "pointer" type_identifier) ) number_literal)) ;) (expression_statement "pAVar24 = __src;" (assignment_expression "pAVar24 = __src" identifier = identifier) ;) }) (else_clause "else {\n      __dest = (pointer)operator_new(uVar20 * 0x18);\n      pAVar24 = (this->attributes_).\n                super__Vector_base<gold::Dwarf_die::Attribute_value,_std::allocator<gold::Dwarf_die::Attribute_value>_>\n                ._M_impl._M_start;\n    }" else (compound_statement "{\n      __dest = (pointer)operator_new(uVar20 * 0x18);\n      pAVar24 = (this->attributes_).\n                super__Vector_base<gold::Dwarf_die::Attribute_value,_std::allocator<gold::Dwarf_die::Attribute_value>_>\n                ._M_impl._M_start;\n    }" { (expression_statement "__dest = (pointer)operator_new(uVar20 * 0x18);" (assignment_expression "__dest = (pointer)operator_new(uVar20 * 0x18)" identifier = (cast_expression "(pointer)operator_new(uVar20 * 0x18)" ( (type_descriptor "pointer" type_identifier) ) (call_expression "operator_new(uVar20 * 0x18)" identifier (argument_list "(uVar20 * 0x18)" ( (binary_expression "uVar20 * 0x18" identifier * number_literal) ))))) ;) (ERROR "pAVar24 = (this->attributes_).\n                super__Vector_base<gold::" (assignment_expression "pAVar24 = (this->attributes_).\n                super__Vector_base<gold" identifier = (binary_expression "(this->attributes_).\n                super__Vector_base<gold" (field_expression "(this->attributes_).\n                super__Vector_base" (parenthesized_expression "(this->attributes_)" ( (field_expression "this->attributes_" identifier -> field_identifier) )) . field_identifier) < identifier)) : :) (labeled_statement "Dwarf_die::Attribute_value,_std::allocator<gold::Dwarf_die::Attribute_value>_>\n                ._M_impl._M_start;" statement_identifier (ERROR "::Attribute_value,_std::allocator<gold:" : : (comma_expression "Attribute_value,_std" identifier , identifier) : : (binary_expression "allocator<gold" identifier < identifier) :) : (labeled_statement "Dwarf_die::Attribute_value>_>\n                ._M_impl._M_start;" statement_identifier : (ERROR ":" :) (expression_statement "Attribute_value>_>\n                ._M_impl._M_start;" (field_expression "Attribute_value>_>\n                ._M_impl._M_start" (field_expression "Attribute_value>_>\n                ._M_impl" (binary_expression "Attribute_value>_" identifier > identifier) (ERROR ">" >) . field_identifier) . field_identifier) ;))) }))) (if_statement "if (__src != pAVar6) {\n      __dest = (pointer)memmove(__dest,__src,__n);\n    }" if (parenthesized_expression "(__src != pAVar6)" ( (binary_expression "__src != pAVar6" identifier != identifier) )) (compound_statement "{\n      __dest = (pointer)memmove(__dest,__src,__n);\n    }" { (expression_statement "__dest = (pointer)memmove(__dest,__src,__n);" (assignment_expression "__dest = (pointer)memmove(__dest,__src,__n)" identifier = (cast_expression "(pointer)memmove(__dest,__src,__n)" ( (type_descriptor "pointer" type_identifier) ) (call_expression "memmove(__dest,__src,__n)" identifier (argument_list "(__dest,__src,__n)" ( identifier , identifier , identifier ))))) ;) })) (if_statement "if (pAVar24 != (pointer)0x0) {\n      operator_delete(pAVar24);\n    }" if (parenthesized_expression "(pAVar24 != (pointer)0x0)" ( (binary_expression "pAVar24 != (pointer)0x0" identifier != (cast_expression "(pointer)0x0" ( (type_descriptor "pointer" type_identifier) ) number_literal)) )) (compound_statement "{\n      operator_delete(pAVar24);\n    }" { (expression_statement "operator_delete(pAVar24);" (call_expression "operator_delete(pAVar24)" identifier (argument_list "(pAVar24)" ( identifier ))) ;) })) (ERROR "(this->attributes_).\n    super__Vector_base<gold::" (binary_expression "(this->attributes_).\n    super__Vector_base<gold" (field_expression "(this->attributes_).\n    super__Vector_base" (parenthesized_expression "(this->attributes_)" ( (field_expression "this->attributes_" identifier -> field_identifier) )) . field_identifier) < identifier) : :) (labeled_statement "Dwarf_die::Attribute_value,_std::allocator<gold::Dwarf_die::Attribute_value>_>\n    ._M_impl._M_start = __dest;" statement_identifier (ERROR "::Attribute_value,_std::allocator<gold:" : : (comma_expression "Attribute_value,_std" identifier , identifier) : : (binary_expression "allocator<gold" identifier < identifier) :) : (labeled_statement "Dwarf_die::Attribute_value>_>\n    ._M_impl._M_start = __dest;" statement_identifier : (ERROR ":" :) (expression_statement "Attribute_value>_>\n    ._M_impl._M_start = __dest;" (assignment_expression "Attribute_value>_>\n    ._M_impl._M_start = __dest" (field_expression "Attribute_value>_>\n    ._M_impl._M_start" (field_expression "Attribute_value>_>\n    ._M_impl" (binary_expression "Attribute_value>_" identifier > identifier) (ERROR ">" >) . field_identifier) . field_identifier) = identifier) ;))) (expression_statement "pAVar13 = this->abbrev_code_;" (assignment_expression "pAVar13 = this->abbrev_code_" identifier = (field_expression "this->abbrev_code_" identifier -> field_identifier)) ;) (ERROR "(this->attributes_).\n    super__Vector_base<gold::" (binary_expression "(this->attributes_).\n    super__Vector_base<gold" (field_expression "(this->attributes_).\n    super__Vector_base" (parenthesized_expression "(this->attributes_)" ( (field_expression "this->attributes_" identifier -> field_identifier) )) . field_identifier) < identifier) : :) (labeled_statement "Dwarf_die::Attribute_value,_std::allocator<gold::Dwarf_die::Attribute_value>_>\n    ._M_impl._M_finish = (pointer)(__n + (long)__dest);" statement_identifier (ERROR "::Attribute_value,_std::allocator<gold:" : : (comma_expression "Attribute_value,_std" identifier , identifier) : : (binary_expression "allocator<gold" identifier < identifier) :) : (labeled_statement "Dwarf_die::Attribute_value>_>\n    ._M_impl._M_finish = (pointer)(__n + (long)__dest);" statement_identifier : (ERROR ":" :) (expression_statement "Attribute_value>_>\n    ._M_impl._M_finish = (pointer)(__n + (long)__dest);" (assignment_expression "Attribute_value>_>\n    ._M_impl._M_finish = (pointer)(__n + (long)__dest)" (field_expression "Attribute_value>_>\n    ._M_impl._M_finish" (field_expression "Attribute_value>_>\n    ._M_impl" (binary_expression "Attribute_value>_" identifier > identifier) (ERROR ">" >) . field_identifier) . field_identifier) = (call_expression "(pointer)(__n + (long)__dest)" (parenthesized_expression "(pointer)" ( identifier )) (argument_list "(__n + (long)__dest)" ( (binary_expression "__n + (long)__dest" identifier + (cast_expression "(long)__dest" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) identifier)) )))) ;))) (ERROR "(this->attributes_).\n    super__Vector_base<gold::" (binary_expression "(this->attributes_).\n    super__Vector_base<gold" (field_expression "(this->attributes_).\n    super__Vector_base" (parenthesized_expression "(this->attributes_)" ( (field_expression "this->attributes_" identifier -> field_identifier) )) . field_identifier) < identifier) : :) (labeled_statement "Dwarf_die::Attribute_value,_std::allocator<gold::Dwarf_die::Attribute_value>_>\n    ._M_impl._M_end_of_storage = __dest + uVar20;" statement_identifier (ERROR "::Attribute_value,_std::allocator<gold:" : : (comma_expression "Attribute_value,_std" identifier , identifier) : : (binary_expression "allocator<gold" identifier < identifier) :) : (labeled_statement "Dwarf_die::Attribute_value>_>\n    ._M_impl._M_end_of_storage = __dest + uVar20;" statement_identifier : (ERROR ":" :) (expression_statement "Attribute_value>_>\n    ._M_impl._M_end_of_storage = __dest + uVar20;" (assignment_expression "Attribute_value>_>\n    ._M_impl._M_end_of_storage = __dest + uVar20" (field_expression "Attribute_value>_>\n    ._M_impl._M_end_of_storage" (field_expression "Attribute_value>_>\n    ._M_impl" (binary_expression "Attribute_value>_" identifier > identifier) (ERROR ">" >) . field_identifier) . field_identifier) = (binary_expression "__dest + uVar20" identifier + identifier)) ;))) (if_statement "if (iVar19 != 0) goto LAB_00302642;" if (parenthesized_expression "(iVar19 != 0)" ( (binary_expression "iVar19 != 0" identifier != number_literal) )) (goto_statement "goto LAB_00302642;" goto statement_identifier ;)) }) (else_clause "else {\n    if (iVar19 == 0) goto LAB_00302797;\nLAB_00302642:\n    lVar25 = 0;\n    do {\n      puVar17 = (uint *)((long)&((pAVar13->attributes).\n                                 super__Vector_base<gold::Dwarf_abbrev_table::Attribute,_std::allocator<gold::Dwarf_abbrev_table::Attribute>_>\n                                 ._M_impl._M_start)->attr + lVar25);\n      uVar11 = puVar17[1];\n      uVar2 = *puVar17;\n      if (uVar11 == 0x16) {\n        bVar1 = *pattr;\n        uVar11 = (uint)bVar1;\n        if ((char)bVar1 < '\0') {\n          uVar16 = read_unsigned_LEB_128_x(pattr + 1,&len,bVar1);\n          uVar11 = (uint)uVar16;\n          pattr = pattr + len;\n        }\n        else {\n          len = 1;\n          pattr = pattr + 1;\n        }\n      }\n      puVar23 = pattr;\n      attr_off = pattr + (this->die_offset_ - (long)puVar18);\n      attr_value.aux.shndx = 0;\n      attr_value.attr = uVar2;\n      attr_value.form = uVar11;\n      if (uVar11 == 0xe) {\n        pDVar21 = this->dwinfo_;\n        if (pDVar21->offset_size_ == 4) {\n          VVar12 = Dwarf_info_reader::read_from_pointer<32>(pDVar21,&pattr);\n          str_off = (off_t)VVar12;\n        }\n        else {\n          pp_Var4 = (pDVar21->object_->super_Object)._vptr_Object;\n          p_Var5 = pp_Var4[3];\n          if (p_Var5 == Relobj::is_big_endian) {\n            iVar9 = (*pp_Var4[0x3a])();\n            cVar8 = (char)iVar9;\n          }\n          else {\n            iVar9 = (*p_Var5)();\n            cVar8 = (char)iVar9;\n          }\n          str_off = *(off_t *)pattr;\n          if (cVar8 != '\0') {\n            str_off = (ulong)str_off >> 0x38 | (str_off & 0xff000000000000U) >> 0x28 |\n                      (str_off & 0xff0000000000U) >> 0x18 | (str_off & 0xff00000000U) >> 8 |\n                      (str_off & 0xff000000U) << 8 | (str_off & 0xff0000U) << 0x18 |\n                      (str_off & 0xff00U) << 0x28 | str_off << 0x38;\n          }\n          pattr = pattr + 8;\n        }\n        attr_value.aux.shndx =\n             Dwarf_info_reader::lookup_reloc(this->dwinfo_,(off_t)attr_off,&str_off);\n        attr_value.val.refval = str_off;\n        if (uVar2 != 0x31) {\n          if (uVar2 < 0x32) {\n            if ((uVar2 != 1) && (uVar2 == 3)) {\nLAB_00302f64:\n              this->string_shndx_ = (uint)attr_value.aux;\n              this->name_off_ = (off_t)attr_value.val;\n            }\n          }\n          else if ((uVar2 == 0x6e) || (uVar2 == 0x2007)) {\nLAB_00302fd0:\n            this->string_shndx_ = (uint)attr_value.aux;\n            this->linkage_name_off_ = (off_t)attr_value.val;\n          }\n        }\nLAB_00302750:\n        __position._M_current =\n             (this->attributes_).\n             super__Vector_base<gold::Dwarf_die::Attribute_value,_std::allocator<gold::Dwarf_die::Attribute_value>_>\n             ._M_impl._M_finish;\n        if (__position._M_current !=\n            (this->attributes_).\n            super__Vector_base<gold::Dwarf_die::Attribute_value,_std::allocator<gold::Dwarf_die::Attribute_value>_>\n            ._M_impl._M_end_of_storage) goto LAB_0030275e;\nLAB_003028c0:\n        std::\n        vector<gold::Dwarf_die::Attribute_value,_std::allocator<gold::Dwarf_die::Attribute_value>_>\n        ::_M_realloc_insert<const_gold::Dwarf_die::Attribute_value&>\n                  (&this->attributes_,__position,&attr_value);\n      }\n      else {\n        if (0xe < uVar11) {\n          if (uVar11 == 0x15) {\n            bVar1 = *pattr;\n            aVar15.intval._1_7_ = 0;\n            aVar15.uintval._0_1_ = bVar1;\n            if ((char)bVar1 < '\0') {\n              attr_value.val.uintval = read_unsigned_LEB_128_x(pattr + 1,&len,bVar1);\n              pattr = pattr + len;\n            }\n            else {\n              len = 1;\n              pattr = pattr + 1;\n              attr_value.val = aVar15;\n            }\njoined_r0x00303052:\n            if (uVar2 != 0x31) {\n              if (uVar2 < 0x32) {\nLAB_00302c20:\n                if ((uVar2 == 1) && (attr_value.aux.shndx == 0)) {\n                  this->sibling_offset_ = (off_t)attr_value.val;\n                }\n                goto LAB_00302750;\n              }\n              if ((uVar2 != 0x6e) && (uVar2 != 0x2007)) {\njoined_r0x00302ce3:\n                if (uVar2 == 0x47) {\n                  this->specification_ = (off_t)attr_value.val;\n                }\n                goto LAB_00302750;\n              }\nLAB_00302fb5:\n              if (uVar11 == 8) {\nLAB_003029eb:\n                this->linkage_name_ = (char *)attr_value.val;\n              }\n              else {\nLAB_00302fbe:\n                if (uVar11 == 0xe) goto LAB_00302fd0;\n              }\n              goto LAB_00302750;\n            }\n          }\n          else {\n            if (0x15 < uVar11) {\n              if (uVar11 != 0x19) {\n                if (uVar11 < 0x1a) {\n                  if (uVar11 == 0x17) {\n                    pDVar21 = this->dwinfo_;\n                    if (pDVar21->offset_size_ == 4) {\n                      VVar12 = Dwarf_info_reader::read_from_pointer<32>(pDVar21,&pattr);\n                      str_off = (off_t)VVar12;\n                    }\n                    else {\n                      pRVar22 = pDVar21->object_;\nLAB_00302fe7:\n                      pp_Var4 = (pRVar22->super_Object)._vptr_Object;\n                      p_Var5 = pp_Var4[3];\n                      if (p_Var5 == Relobj::is_big_endian) {\n                        iVar9 = (*pp_Var4[0x3a])();\n                        cVar8 = (char)iVar9;\n                      }\n                      else {\n                        iVar9 = (*p_Var5)();\n                        cVar8 = (char)iVar9;\n                      }\n                      str_off = *(off_t *)pattr;\n                      if (cVar8 != '\0') {\n                        str_off = (ulong)str_off >> 0x38 | (str_off & 0xff000000000000U) >> 0x28 |\n                                  (str_off & 0xff0000000000U) >> 0x18 |\n                                  (str_off & 0xff00000000U) >> 8 | (str_off & 0xff000000U) << 8 |\n                                  (str_off & 0xff0000U) << 0x18 | (str_off & 0xff00U) << 0x28 |\n                                  str_off << 0x38;\n                      }\n                      pattr = pattr + 8;\n                    }\nLAB_00303035:\n                    attr_value.aux.shndx =\n                         Dwarf_info_reader::lookup_reloc(this->dwinfo_,(off_t)attr_off,&str_off);\n                    attr_value.val.refval = str_off;\n                    goto joined_r0x00303052;\n                  }\n                  if (uVar11 != 0x18) {\n                    return false;\n                  }\nLAB_00302a09:\n                  bVar1 = *pattr;\n                  aVar10.shndx._1_3_ = 0;\n                  aVar10.shndx._0_1_ = bVar1;\n                  aVar15.stringval = (char *)(pattr + 1);\n                  if ((char)bVar1 < '\0') {\n                    uVar16 = read_unsigned_LEB_128_x(aVar15.blockval,&len,bVar1);\n                    aVar10.shndx = (uint)uVar16;\n                    aVar15.stringval = (char *)(pattr + len);\n                  }\n                  else {\n                    len = 1;\n                  }\n                  pattr = pattr + aVar10.shndx + len;\n                  attr_value.val = aVar15;\n                  attr_value.aux = aVar10;\n                }\n                else {\n                  if (uVar11 == 0x20) {\n                    pp_Var4 = (this->dwinfo_->object_->super_Object)._vptr_Object;\n                    p_Var5 = pp_Var4[3];\n                    if (p_Var5 == Relobj::is_big_endian) {\n                      iVar9 = (*pp_Var4[0x3a])();\n                      cVar8 = (char)iVar9;\n                    }\n                    else {\n                      iVar9 = (*p_Var5)();\n                      cVar8 = (char)iVar9;\n                    }\n                    /* WARNING: Load size is inaccurate */\n                    attr_value.val.blockval = *pattr;\n                    if (cVar8 != '\0') {\n                      attr_value.val.uintval =\n                           attr_value.val.uintval >> 0x38 |\n                           (attr_value.val.uintval & 0xff000000000000) >> 0x28 |\n                           (attr_value.val.uintval & 0xff0000000000) >> 0x18 |\n                           (attr_value.val.uintval & 0xff00000000) >> 8 |\n                           (attr_value.val.uintval & 0xff000000) << 8 |\n                           (attr_value.val.uintval & 0xff0000) << 0x18 |\n                           (attr_value.val.uintval & 0xff00) << 0x28 |\n                           attr_value.val.uintval << 0x38;\n                    }\n                    pattr = pattr + 8;\n                    goto LAB_00302ea9;\n                  }\n                  if (uVar11 < 0x20) {\n                    return false;\n                  }\n                  if (1 < uVar11 - 0x1f01) {\n                    return false;\n                  }\nLAB_00302bcd:\n                  bVar1 = *pattr;\n                  aVar14.intval._1_7_ = 0;\n                  aVar14.uintval._0_1_ = bVar1;\n                  if ((char)bVar1 < '\0') {\n                    attr_value.val.uintval = read_unsigned_LEB_128_x(pattr + 1,&len,bVar1);\n                    pattr = pattr + len;\n                  }\n                  else {\n                    len = 1;\n                    pattr = pattr + 1;\n                    attr_value.val = aVar14;\n                  }\n                }\nLAB_00302f92:\n                if (uVar2 == 0x31) goto LAB_00302750;\n                if (0x31 < uVar2) {\n                  if ((uVar2 == 0x6e) || (uVar2 == 0x2007)) goto LAB_00302fb5;\n                  goto LAB_00302750;\n                }\n                goto LAB_00302e3e;\n              }\n              attr_value.val.intval = 1;\nLAB_00302ea9:\n              if (((uVar2 == 0x31) || (0x31 < uVar2)) || (uVar2 != 3)) goto LAB_00302750;\nLAB_00302e52:\n              if (uVar11 == 8) {\nLAB_003029c7:\n                this->name_ = (char *)attr_value.val;\n              }\n              else if (uVar11 == 0xe) goto LAB_00302f64;\n              goto LAB_00302750;\n            }\n            if (uVar11 != 0x11) {\n              if (0x11 < uVar11) {\n                if (uVar11 == 0x13) {\n                  VVar12 = Dwarf_info_reader::read_from_pointer<32>(this->dwinfo_,&pattr);\n                  str_off = (off_t)VVar12;\n                  goto LAB_00303035;\n                }\n                if (0x13 < uVar11) {\n                  pRVar22 = this->dwinfo_->object_;\n                  goto LAB_00302fe7;\n                }\n                pp_Var4 = (this->dwinfo_->object_->super_Object)._vptr_Object;\n                p_Var5 = pp_Var4[3];\n                if (p_Var5 == Relobj::is_big_endian) {\n                  iVar9 = (*pp_Var4[0x3a])();\n                  cVar8 = (char)iVar9;\n                }\n                else {\n                  iVar9 = (*p_Var5)();\n                  cVar8 = (char)iVar9;\n                }\n                uVar7 = *(ushort *)pattr;\n                if (cVar8 != '\0') {\n                  uVar7 = CONCAT11(*pattr,pattr[1]);\n                }\n                attr_value.val.intval._2_6_ = 0;\n                attr_value.val.intval._0_2_ = uVar7;\n                pattr = pattr + 2;\n                goto joined_r0x00303052;\n              }\n              if (uVar11 == 0xf) goto LAB_00302bcd;\n              if (uVar11 != 0x10) {\n                return false;\n              }\n              pDVar21 = this->dwinfo_;\n              uVar11 = pDVar21->address_size_;\n              if (2 < pDVar21->cu_version_) {\n                uVar11 = pDVar21->offset_size_;\n              }\n              if (uVar11 != 4) goto LAB_00302a71;\nLAB_00302e7d:\n              VVar12 = Dwarf_info_reader::read_from_pointer<32>(pDVar21,&pattr);\n              str_off = (off_t)VVar12;\nLAB_00302abe:\n              attr_value.aux.shndx =\n                   Dwarf_info_reader::lookup_reloc(this->dwinfo_,(off_t)attr_off,&str_off);\n              attr_value.val.refval = str_off;\n              if (uVar2 == 0x31) goto LAB_00302965;\n              if (0x31 < uVar2) goto joined_r0x00302ccc;\n              goto LAB_00302c20;\n            }\n            puVar23 = pattr + 1;\n            attr_value.val.intval._1_7_ = 0;\n            attr_value.val.uintval._0_1_ = *pattr;\n            pattr = puVar23;\n            if (uVar2 != 0x31) {\n              if (uVar2 < 0x32) {\n                if (uVar2 == 1) {\n                  this->sibling_offset_ = (off_t)attr_value.val;\n                }\n                goto LAB_00302750;\n              }\njoined_r0x00302ccc:\n              if ((uVar2 == 0x6e) || (uVar2 == 0x2007)) goto LAB_00302750;\n              goto joined_r0x00302ce3;\n            }\n          }\nLAB_00302965:\n          this->abstract_origin_ = (off_t)attr_value.val;\n          goto LAB_00302750;\n        }\n        if (uVar11 == 7) {\n          pp_Var4 = (this->dwinfo_->object_->super_Object)._vptr_Object;\n          p_Var5 = pp_Var4[3];\n          if (p_Var5 == Relobj::is_big_endian) {\n            iVar9 = (*pp_Var4[0x3a])();\n            cVar8 = (char)iVar9;\n          }\n          else {\n            iVar9 = (*p_Var5)();\n            cVar8 = (char)iVar9;\n          }\n          str_off = *(off_t *)pattr;\n          if (cVar8 != '\0') {\n            str_off = (ulong)str_off >> 0x38 | (str_off & 0xff000000000000U) >> 0x28 |\n                      (str_off & 0xff0000000000U) >> 0x18 | (str_off & 0xff00000000U) >> 8 |\n                      (str_off & 0xff000000U) << 8 | (str_off & 0xff0000U) << 0x18 |\n                      (str_off & 0xff00U) << 0x28 | str_off << 0x38;\n          }\n          pattr = pattr + 8;\nLAB_00302d40:\n          attr_value.aux.shndx =\n               Dwarf_info_reader::lookup_reloc(this->dwinfo_,(off_t)attr_off,&str_off);\n          attr_value.val.refval = str_off;\njoined_r0x00302748:\n          if ((uVar2 != 0x31) && (uVar2 < 0x32)) {\nLAB_00302e3e:\n            if ((uVar2 != 1) && (uVar2 == 3)) goto LAB_00302e52;\n          }\n          goto LAB_00302750;\n        }\n        if (uVar11 < 8) {\n          if (uVar11 == 4) {\n            pp_Var4 = (this->dwinfo_->object_->super_Object)._vptr_Object;\n            p_Var5 = pp_Var4[3];\n            if (p_Var5 == Relobj::is_big_endian) {\n              iVar9 = (*pp_Var4[0x3a])();\n              cVar8 = (char)iVar9;\n            }\n            else {\n              iVar9 = (*p_Var5)();\n              cVar8 = (char)iVar9;\n            }\n            attr_value.aux.shndx = *(uint *)pattr;\n            if (cVar8 != '\0') {\n              attr_value.aux.shndx =\n                   attr_value.aux.shndx >> 0x18 | (attr_value.aux.shndx & 0xff0000) >> 8 |\n                   (attr_value.aux.shndx & 0xff00) << 8 | attr_value.aux.shndx << 0x18;\n            }\n            attr_value.val.stringval = (char *)(pattr + 4);\n            pattr = (uchar *)(attr_value.val.stringval + attr_value.aux.shndx);\n          }\n          else if (uVar11 < 5) {\n            if (uVar11 == 1) {\n              pDVar21 = this->dwinfo_;\n              if (pDVar21->address_size_ == 4) goto LAB_00302e7d;\nLAB_00302a71:\n              pp_Var4 = (pDVar21->object_->super_Object)._vptr_Object;\n              p_Var5 = pp_Var4[3];\n              if (p_Var5 == Relobj::is_big_endian) {\n                iVar9 = (*pp_Var4[0x3a])();\n                cVar8 = (char)iVar9;\n              }\n              else {\n                iVar9 = (*p_Var5)();\n                cVar8 = (char)iVar9;\n              }\n              str_off = *(off_t *)pattr;\n              if (cVar8 != '\0') {\n                str_off = (ulong)str_off >> 0x38 | (str_off & 0xff000000000000U) >> 0x28 |\n                          (str_off & 0xff0000000000U) >> 0x18 | (str_off & 0xff00000000U) >> 8 |\n                          (str_off & 0xff000000U) << 8 | (str_off & 0xff0000U) << 0x18 |\n                          (str_off & 0xff00U) << 0x28 | str_off << 0x38;\n              }\n              pattr = pattr + 8;\n              goto LAB_00302abe;\n            }\n            if (uVar11 != 3) {\n              return false;\n            }\n            pp_Var4 = (this->dwinfo_->object_->super_Object)._vptr_Object;\n            p_Var5 = pp_Var4[3];\n            if (p_Var5 == Relobj::is_big_endian) {\n              iVar9 = (*pp_Var4[0x3a])();\n              cVar8 = (char)iVar9;\n            }\n            else {\n              iVar9 = (*p_Var5)();\n              cVar8 = (char)iVar9;\n            }\n            uVar7 = *(ushort *)pattr;\n            if (cVar8 != '\0') {\n              uVar7 = CONCAT11(*pattr,pattr[1]);\n            }\n            attr_value.aux.shndx._2_2_ = 0;\n            attr_value.aux.shndx._0_2_ = uVar7;\n            attr_value.val.stringval = (char *)(pattr + 2);\n            pattr = (uchar *)(attr_value.val.stringval + attr_value.aux.shndx);\n          }\n          else {\n            if (uVar11 != 5) {\n              if (uVar11 != 6) {\n                return false;\n              }\n              pp_Var4 = (this->dwinfo_->object_->super_Object)._vptr_Object;\n              p_Var5 = pp_Var4[3];\n              if (p_Var5 == Relobj::is_big_endian) {\n                iVar9 = (*pp_Var4[0x3a])();\n                cVar8 = (char)iVar9;\n              }\n              else {\n                iVar9 = (*p_Var5)();\n                cVar8 = (char)iVar9;\n              }\n              uVar3 = *(uint *)pattr;\n              if (cVar8 != '\0') {\n                uVar3 = uVar3 >> 0x18 | (uVar3 & 0xff0000) >> 8 | (uVar3 & 0xff00) << 8 |\n                        uVar3 << 0x18;\n              }\n              str_off = (off_t)uVar3;\n              pattr = pattr + 4;\n              goto LAB_00302d40;\n            }\n            pp_Var4 = (this->dwinfo_->object_->super_Object)._vptr_Object;\n            p_Var5 = pp_Var4[3];\n            if (p_Var5 == Relobj::is_big_endian) {\n              iVar9 = (*pp_Var4[0x3a])();\n              cVar8 = (char)iVar9;\n            }\n            else {\n              iVar9 = (*p_Var5)();\n              cVar8 = (char)iVar9;\n            }\n            uVar7 = *(ushort *)pattr;\n            if (cVar8 != '\0') {\n              uVar7 = CONCAT11(*pattr,pattr[1]);\n            }\n            pattr = pattr + 2;\n            attr_value.val.intval._2_6_ = 0;\n            attr_value.val.intval._0_2_ = uVar7;\n          }\n          goto joined_r0x00302748;\n        }\n        if (uVar11 == 10) {\n          attr_value.val.stringval = (char *)(pattr + 1);\n          bVar1 = *pattr;\n          pattr = (uchar *)(attr_value.val.stringval + bVar1);\n          attr_value.aux.shndx._1_3_ = 0;\n          attr_value.aux.shndx._0_1_ = bVar1;\n          goto joined_r0x00302748;\n        }\n        if (uVar11 < 0xb) {\n          if (uVar11 != 8) {\n            if (uVar11 != 9) {\n              return false;\n            }\n            goto LAB_00302a09;\n          }\n          attr_value.val.blockval = pattr;\n          len = strlen((char *)pattr);\n          pattr = puVar23 + len + 1;\n          if (uVar2 == 0x31) goto LAB_00302750;\n          if (0x31 < uVar2) {\n            if ((uVar2 != 0x6e) && (uVar2 != 0x2007)) goto LAB_00302750;\n            goto LAB_003029eb;\n          }\n          if ((uVar2 == 1) || (uVar2 != 3)) goto LAB_00302750;\n          goto LAB_003029c7;\n        }\n        if (uVar11 < 0xd) {\n          attr_value.val.intval._1_7_ = 0;\n          attr_value.val.uintval._0_1_ = *pattr;\n          pattr = pattr + 1;\n          goto LAB_00302f92;\n        }\n        bVar1 = *pattr;\n        puVar23 = pattr + 1;\n        if ((char)bVar1 < '\0') {\n          attr_value.val.intval = read_signed_LEB_128_x(puVar23,&len,bVar1);\n          puVar23 = pattr + len;\n        }\n        else {\n          len = 1;\n          attr_value.val.intval._1_7_ = 0;\n          attr_value.val.uintval._0_1_ = bVar1;\n          if ((bVar1 & 0x40) != 0) {\n            attr_value.val.uintval = attr_value.val.uintval | 0xffffffffffffff80;\n          }\n        }\n        pattr = puVar23;\n        if ((uVar2 == 0x31) || (uVar2 < 0x32)) goto LAB_00302750;\n        if ((uVar2 == 0x6e) || (uVar2 == 0x2007)) goto LAB_00302fbe;\n        __position._M_current =\n             (this->attributes_).\n             super__Vector_base<gold::Dwarf_die::Attribute_value,_std::allocator<gold::Dwarf_die::Attribute_value>_>\n             ._M_impl._M_finish;\n        if (__position._M_current ==\n            (this->attributes_).\n            super__Vector_base<gold::Dwarf_die::Attribute_value,_std::allocator<gold::Dwarf_die::Attribute_value>_>\n            ._M_impl._M_end_of_storage) goto LAB_003028c0;\nLAB_0030275e:\n        (__position._M_current)->attr = (int)CONCAT44(attr_value.form,attr_value.attr);\n        (__position._M_current)->form = (int)(CONCAT44(attr_value.form,attr_value.attr) >> 0x20);\n        (__position._M_current)->val = attr_value.val;\n        *(ulong *)&(__position._M_current)->aux = CONCAT44(attr_value._20_4_,attr_value.aux.shndx);\n        (this->attributes_).\n        super__Vector_base<gold::Dwarf_die::Attribute_value,_std::allocator<gold::Dwarf_die::Attribute_value>_>\n        ._M_impl._M_finish = __position._M_current + 1;\n      }\n      lVar25 = lVar25 + 8;\n      pAVar13 = this->abbrev_code_;\n    } while (lVar25 != (ulong)(iVar19 - 1) * 8 + 8);\n  }" else (compound_statement "{\n    if (iVar19 == 0) goto LAB_00302797;\nLAB_00302642:\n    lVar25 = 0;\n    do {\n      puVar17 = (uint *)((long)&((pAVar13->attributes).\n                                 super__Vector_base<gold::Dwarf_abbrev_table::Attribute,_std::allocator<gold::Dwarf_abbrev_table::Attribute>_>\n                                 ._M_impl._M_start)->attr + lVar25);\n      uVar11 = puVar17[1];\n      uVar2 = *puVar17;\n      if (uVar11 == 0x16) {\n        bVar1 = *pattr;\n        uVar11 = (uint)bVar1;\n        if ((char)bVar1 < '\0') {\n          uVar16 = read_unsigned_LEB_128_x(pattr + 1,&len,bVar1);\n          uVar11 = (uint)uVar16;\n          pattr = pattr + len;\n        }\n        else {\n          len = 1;\n          pattr = pattr + 1;\n        }\n      }\n      puVar23 = pattr;\n      attr_off = pattr + (this->die_offset_ - (long)puVar18);\n      attr_value.aux.shndx = 0;\n      attr_value.attr = uVar2;\n      attr_value.form = uVar11;\n      if (uVar11 == 0xe) {\n        pDVar21 = this->dwinfo_;\n        if (pDVar21->offset_size_ == 4) {\n          VVar12 = Dwarf_info_reader::read_from_pointer<32>(pDVar21,&pattr);\n          str_off = (off_t)VVar12;\n        }\n        else {\n          pp_Var4 = (pDVar21->object_->super_Object)._vptr_Object;\n          p_Var5 = pp_Var4[3];\n          if (p_Var5 == Relobj::is_big_endian) {\n            iVar9 = (*pp_Var4[0x3a])();\n            cVar8 = (char)iVar9;\n          }\n          else {\n            iVar9 = (*p_Var5)();\n            cVar8 = (char)iVar9;\n          }\n          str_off = *(off_t *)pattr;\n          if (cVar8 != '\0') {\n            str_off = (ulong)str_off >> 0x38 | (str_off & 0xff000000000000U) >> 0x28 |\n                      (str_off & 0xff0000000000U) >> 0x18 | (str_off & 0xff00000000U) >> 8 |\n                      (str_off & 0xff000000U) << 8 | (str_off & 0xff0000U) << 0x18 |\n                      (str_off & 0xff00U) << 0x28 | str_off << 0x38;\n          }\n          pattr = pattr + 8;\n        }\n        attr_value.aux.shndx =\n             Dwarf_info_reader::lookup_reloc(this->dwinfo_,(off_t)attr_off,&str_off);\n        attr_value.val.refval = str_off;\n        if (uVar2 != 0x31) {\n          if (uVar2 < 0x32) {\n            if ((uVar2 != 1) && (uVar2 == 3)) {\nLAB_00302f64:\n              this->string_shndx_ = (uint)attr_value.aux;\n              this->name_off_ = (off_t)attr_value.val;\n            }\n          }\n          else if ((uVar2 == 0x6e) || (uVar2 == 0x2007)) {\nLAB_00302fd0:\n            this->string_shndx_ = (uint)attr_value.aux;\n            this->linkage_name_off_ = (off_t)attr_value.val;\n          }\n        }\nLAB_00302750:\n        __position._M_current =\n             (this->attributes_).\n             super__Vector_base<gold::Dwarf_die::Attribute_value,_std::allocator<gold::Dwarf_die::Attribute_value>_>\n             ._M_impl._M_finish;\n        if (__position._M_current !=\n            (this->attributes_).\n            super__Vector_base<gold::Dwarf_die::Attribute_value,_std::allocator<gold::Dwarf_die::Attribute_value>_>\n            ._M_impl._M_end_of_storage) goto LAB_0030275e;\nLAB_003028c0:\n        std::\n        vector<gold::Dwarf_die::Attribute_value,_std::allocator<gold::Dwarf_die::Attribute_value>_>\n        ::_M_realloc_insert<const_gold::Dwarf_die::Attribute_value&>\n                  (&this->attributes_,__position,&attr_value);\n      }\n      else {\n        if (0xe < uVar11) {\n          if (uVar11 == 0x15) {\n            bVar1 = *pattr;\n            aVar15.intval._1_7_ = 0;\n            aVar15.uintval._0_1_ = bVar1;\n            if ((char)bVar1 < '\0') {\n              attr_value.val.uintval = read_unsigned_LEB_128_x(pattr + 1,&len,bVar1);\n              pattr = pattr + len;\n            }\n            else {\n              len = 1;\n              pattr = pattr + 1;\n              attr_value.val = aVar15;\n            }\njoined_r0x00303052:\n            if (uVar2 != 0x31) {\n              if (uVar2 < 0x32) {\nLAB_00302c20:\n                if ((uVar2 == 1) && (attr_value.aux.shndx == 0)) {\n                  this->sibling_offset_ = (off_t)attr_value.val;\n                }\n                goto LAB_00302750;\n              }\n              if ((uVar2 != 0x6e) && (uVar2 != 0x2007)) {\njoined_r0x00302ce3:\n                if (uVar2 == 0x47) {\n                  this->specification_ = (off_t)attr_value.val;\n                }\n                goto LAB_00302750;\n              }\nLAB_00302fb5:\n              if (uVar11 == 8) {\nLAB_003029eb:\n                this->linkage_name_ = (char *)attr_value.val;\n              }\n              else {\nLAB_00302fbe:\n                if (uVar11 == 0xe) goto LAB_00302fd0;\n              }\n              goto LAB_00302750;\n            }\n          }\n          else {\n            if (0x15 < uVar11) {\n              if (uVar11 != 0x19) {\n                if (uVar11 < 0x1a) {\n                  if (uVar11 == 0x17) {\n                    pDVar21 = this->dwinfo_;\n                    if (pDVar21->offset_size_ == 4) {\n                      VVar12 = Dwarf_info_reader::read_from_pointer<32>(pDVar21,&pattr);\n                      str_off = (off_t)VVar12;\n                    }\n                    else {\n                      pRVar22 = pDVar21->object_;\nLAB_00302fe7:\n                      pp_Var4 = (pRVar22->super_Object)._vptr_Object;\n                      p_Var5 = pp_Var4[3];\n                      if (p_Var5 == Relobj::is_big_endian) {\n                        iVar9 = (*pp_Var4[0x3a])();\n                        cVar8 = (char)iVar9;\n                      }\n                      else {\n                        iVar9 = (*p_Var5)();\n                        cVar8 = (char)iVar9;\n                      }\n                      str_off = *(off_t *)pattr;\n                      if (cVar8 != '\0') {\n                        str_off = (ulong)str_off >> 0x38 | (str_off & 0xff000000000000U) >> 0x28 |\n                                  (str_off & 0xff0000000000U) >> 0x18 |\n                                  (str_off & 0xff00000000U) >> 8 | (str_off & 0xff000000U) << 8 |\n                                  (str_off & 0xff0000U) << 0x18 | (str_off & 0xff00U) << 0x28 |\n                                  str_off << 0x38;\n                      }\n                      pattr = pattr + 8;\n                    }\nLAB_00303035:\n                    attr_value.aux.shndx =\n                         Dwarf_info_reader::lookup_reloc(this->dwinfo_,(off_t)attr_off,&str_off);\n                    attr_value.val.refval = str_off;\n                    goto joined_r0x00303052;\n                  }\n                  if (uVar11 != 0x18) {\n                    return false;\n                  }\nLAB_00302a09:\n                  bVar1 = *pattr;\n                  aVar10.shndx._1_3_ = 0;\n                  aVar10.shndx._0_1_ = bVar1;\n                  aVar15.stringval = (char *)(pattr + 1);\n                  if ((char)bVar1 < '\0') {\n                    uVar16 = read_unsigned_LEB_128_x(aVar15.blockval,&len,bVar1);\n                    aVar10.shndx = (uint)uVar16;\n                    aVar15.stringval = (char *)(pattr + len);\n                  }\n                  else {\n                    len = 1;\n                  }\n                  pattr = pattr + aVar10.shndx + len;\n                  attr_value.val = aVar15;\n                  attr_value.aux = aVar10;\n                }\n                else {\n                  if (uVar11 == 0x20) {\n                    pp_Var4 = (this->dwinfo_->object_->super_Object)._vptr_Object;\n                    p_Var5 = pp_Var4[3];\n                    if (p_Var5 == Relobj::is_big_endian) {\n                      iVar9 = (*pp_Var4[0x3a])();\n                      cVar8 = (char)iVar9;\n                    }\n                    else {\n                      iVar9 = (*p_Var5)();\n                      cVar8 = (char)iVar9;\n                    }\n                    /* WARNING: Load size is inaccurate */\n                    attr_value.val.blockval = *pattr;\n                    if (cVar8 != '\0') {\n                      attr_value.val.uintval =\n                           attr_value.val.uintval >> 0x38 |\n                           (attr_value.val.uintval & 0xff000000000000) >> 0x28 |\n                           (attr_value.val.uintval & 0xff0000000000) >> 0x18 |\n                           (attr_value.val.uintval & 0xff00000000) >> 8 |\n                           (attr_value.val.uintval & 0xff000000) << 8 |\n                           (attr_value.val.uintval & 0xff0000) << 0x18 |\n                           (attr_value.val.uintval & 0xff00) << 0x28 |\n                           attr_value.val.uintval << 0x38;\n                    }\n                    pattr = pattr + 8;\n                    goto LAB_00302ea9;\n                  }\n                  if (uVar11 < 0x20) {\n                    return false;\n                  }\n                  if (1 < uVar11 - 0x1f01) {\n                    return false;\n                  }\nLAB_00302bcd:\n                  bVar1 = *pattr;\n                  aVar14.intval._1_7_ = 0;\n                  aVar14.uintval._0_1_ = bVar1;\n                  if ((char)bVar1 < '\0') {\n                    attr_value.val.uintval = read_unsigned_LEB_128_x(pattr + 1,&len,bVar1);\n                    pattr = pattr + len;\n                  }\n                  else {\n                    len = 1;\n                    pattr = pattr + 1;\n                    attr_value.val = aVar14;\n                  }\n                }\nLAB_00302f92:\n                if (uVar2 == 0x31) goto LAB_00302750;\n                if (0x31 < uVar2) {\n                  if ((uVar2 == 0x6e) || (uVar2 == 0x2007)) goto LAB_00302fb5;\n                  goto LAB_00302750;\n                }\n                goto LAB_00302e3e;\n              }\n              attr_value.val.intval = 1;\nLAB_00302ea9:\n              if (((uVar2 == 0x31) || (0x31 < uVar2)) || (uVar2 != 3)) goto LAB_00302750;\nLAB_00302e52:\n              if (uVar11 == 8) {\nLAB_003029c7:\n                this->name_ = (char *)attr_value.val;\n              }\n              else if (uVar11 == 0xe) goto LAB_00302f64;\n              goto LAB_00302750;\n            }\n            if (uVar11 != 0x11) {\n              if (0x11 < uVar11) {\n                if (uVar11 == 0x13) {\n                  VVar12 = Dwarf_info_reader::read_from_pointer<32>(this->dwinfo_,&pattr);\n                  str_off = (off_t)VVar12;\n                  goto LAB_00303035;\n                }\n                if (0x13 < uVar11) {\n                  pRVar22 = this->dwinfo_->object_;\n                  goto LAB_00302fe7;\n                }\n                pp_Var4 = (this->dwinfo_->object_->super_Object)._vptr_Object;\n                p_Var5 = pp_Var4[3];\n                if (p_Var5 == Relobj::is_big_endian) {\n                  iVar9 = (*pp_Var4[0x3a])();\n                  cVar8 = (char)iVar9;\n                }\n                else {\n                  iVar9 = (*p_Var5)();\n                  cVar8 = (char)iVar9;\n                }\n                uVar7 = *(ushort *)pattr;\n                if (cVar8 != '\0') {\n                  uVar7 = CONCAT11(*pattr,pattr[1]);\n                }\n                attr_value.val.intval._2_6_ = 0;\n                attr_value.val.intval._0_2_ = uVar7;\n                pattr = pattr + 2;\n                goto joined_r0x00303052;\n              }\n              if (uVar11 == 0xf) goto LAB_00302bcd;\n              if (uVar11 != 0x10) {\n                return false;\n              }\n              pDVar21 = this->dwinfo_;\n              uVar11 = pDVar21->address_size_;\n              if (2 < pDVar21->cu_version_) {\n                uVar11 = pDVar21->offset_size_;\n              }\n              if (uVar11 != 4) goto LAB_00302a71;\nLAB_00302e7d:\n              VVar12 = Dwarf_info_reader::read_from_pointer<32>(pDVar21,&pattr);\n              str_off = (off_t)VVar12;\nLAB_00302abe:\n              attr_value.aux.shndx =\n                   Dwarf_info_reader::lookup_reloc(this->dwinfo_,(off_t)attr_off,&str_off);\n              attr_value.val.refval = str_off;\n              if (uVar2 == 0x31) goto LAB_00302965;\n              if (0x31 < uVar2) goto joined_r0x00302ccc;\n              goto LAB_00302c20;\n            }\n            puVar23 = pattr + 1;\n            attr_value.val.intval._1_7_ = 0;\n            attr_value.val.uintval._0_1_ = *pattr;\n            pattr = puVar23;\n            if (uVar2 != 0x31) {\n              if (uVar2 < 0x32) {\n                if (uVar2 == 1) {\n                  this->sibling_offset_ = (off_t)attr_value.val;\n                }\n                goto LAB_00302750;\n              }\njoined_r0x00302ccc:\n              if ((uVar2 == 0x6e) || (uVar2 == 0x2007)) goto LAB_00302750;\n              goto joined_r0x00302ce3;\n            }\n          }\nLAB_00302965:\n          this->abstract_origin_ = (off_t)attr_value.val;\n          goto LAB_00302750;\n        }\n        if (uVar11 == 7) {\n          pp_Var4 = (this->dwinfo_->object_->super_Object)._vptr_Object;\n          p_Var5 = pp_Var4[3];\n          if (p_Var5 == Relobj::is_big_endian) {\n            iVar9 = (*pp_Var4[0x3a])();\n            cVar8 = (char)iVar9;\n          }\n          else {\n            iVar9 = (*p_Var5)();\n            cVar8 = (char)iVar9;\n          }\n          str_off = *(off_t *)pattr;\n          if (cVar8 != '\0') {\n            str_off = (ulong)str_off >> 0x38 | (str_off & 0xff000000000000U) >> 0x28 |\n                      (str_off & 0xff0000000000U) >> 0x18 | (str_off & 0xff00000000U) >> 8 |\n                      (str_off & 0xff000000U) << 8 | (str_off & 0xff0000U) << 0x18 |\n                      (str_off & 0xff00U) << 0x28 | str_off << 0x38;\n          }\n          pattr = pattr + 8;\nLAB_00302d40:\n          attr_value.aux.shndx =\n               Dwarf_info_reader::lookup_reloc(this->dwinfo_,(off_t)attr_off,&str_off);\n          attr_value.val.refval = str_off;\njoined_r0x00302748:\n          if ((uVar2 != 0x31) && (uVar2 < 0x32)) {\nLAB_00302e3e:\n            if ((uVar2 != 1) && (uVar2 == 3)) goto LAB_00302e52;\n          }\n          goto LAB_00302750;\n        }\n        if (uVar11 < 8) {\n          if (uVar11 == 4) {\n            pp_Var4 = (this->dwinfo_->object_->super_Object)._vptr_Object;\n            p_Var5 = pp_Var4[3];\n            if (p_Var5 == Relobj::is_big_endian) {\n              iVar9 = (*pp_Var4[0x3a])();\n              cVar8 = (char)iVar9;\n            }\n            else {\n              iVar9 = (*p_Var5)();\n              cVar8 = (char)iVar9;\n            }\n            attr_value.aux.shndx = *(uint *)pattr;\n            if (cVar8 != '\0') {\n              attr_value.aux.shndx =\n                   attr_value.aux.shndx >> 0x18 | (attr_value.aux.shndx & 0xff0000) >> 8 |\n                   (attr_value.aux.shndx & 0xff00) << 8 | attr_value.aux.shndx << 0x18;\n            }\n            attr_value.val.stringval = (char *)(pattr + 4);\n            pattr = (uchar *)(attr_value.val.stringval + attr_value.aux.shndx);\n          }\n          else if (uVar11 < 5) {\n            if (uVar11 == 1) {\n              pDVar21 = this->dwinfo_;\n              if (pDVar21->address_size_ == 4) goto LAB_00302e7d;\nLAB_00302a71:\n              pp_Var4 = (pDVar21->object_->super_Object)._vptr_Object;\n              p_Var5 = pp_Var4[3];\n              if (p_Var5 == Relobj::is_big_endian) {\n                iVar9 = (*pp_Var4[0x3a])();\n                cVar8 = (char)iVar9;\n              }\n              else {\n                iVar9 = (*p_Var5)();\n                cVar8 = (char)iVar9;\n              }\n              str_off = *(off_t *)pattr;\n              if (cVar8 != '\0') {\n                str_off = (ulong)str_off >> 0x38 | (str_off & 0xff000000000000U) >> 0x28 |\n                          (str_off & 0xff0000000000U) >> 0x18 | (str_off & 0xff00000000U) >> 8 |\n                          (str_off & 0xff000000U) << 8 | (str_off & 0xff0000U) << 0x18 |\n                          (str_off & 0xff00U) << 0x28 | str_off << 0x38;\n              }\n              pattr = pattr + 8;\n              goto LAB_00302abe;\n            }\n            if (uVar11 != 3) {\n              return false;\n            }\n            pp_Var4 = (this->dwinfo_->object_->super_Object)._vptr_Object;\n            p_Var5 = pp_Var4[3];\n            if (p_Var5 == Relobj::is_big_endian) {\n              iVar9 = (*pp_Var4[0x3a])();\n              cVar8 = (char)iVar9;\n            }\n            else {\n              iVar9 = (*p_Var5)();\n              cVar8 = (char)iVar9;\n            }\n            uVar7 = *(ushort *)pattr;\n            if (cVar8 != '\0') {\n              uVar7 = CONCAT11(*pattr,pattr[1]);\n            }\n            attr_value.aux.shndx._2_2_ = 0;\n            attr_value.aux.shndx._0_2_ = uVar7;\n            attr_value.val.stringval = (char *)(pattr + 2);\n            pattr = (uchar *)(attr_value.val.stringval + attr_value.aux.shndx);\n          }\n          else {\n            if (uVar11 != 5) {\n              if (uVar11 != 6) {\n                return false;\n              }\n              pp_Var4 = (this->dwinfo_->object_->super_Object)._vptr_Object;\n              p_Var5 = pp_Var4[3];\n              if (p_Var5 == Relobj::is_big_endian) {\n                iVar9 = (*pp_Var4[0x3a])();\n                cVar8 = (char)iVar9;\n              }\n              else {\n                iVar9 = (*p_Var5)();\n                cVar8 = (char)iVar9;\n              }\n              uVar3 = *(uint *)pattr;\n              if (cVar8 != '\0') {\n                uVar3 = uVar3 >> 0x18 | (uVar3 & 0xff0000) >> 8 | (uVar3 & 0xff00) << 8 |\n                        uVar3 << 0x18;\n              }\n              str_off = (off_t)uVar3;\n              pattr = pattr + 4;\n              goto LAB_00302d40;\n            }\n            pp_Var4 = (this->dwinfo_->object_->super_Object)._vptr_Object;\n            p_Var5 = pp_Var4[3];\n            if (p_Var5 == Relobj::is_big_endian) {\n              iVar9 = (*pp_Var4[0x3a])();\n              cVar8 = (char)iVar9;\n            }\n            else {\n              iVar9 = (*p_Var5)();\n              cVar8 = (char)iVar9;\n            }\n            uVar7 = *(ushort *)pattr;\n            if (cVar8 != '\0') {\n              uVar7 = CONCAT11(*pattr,pattr[1]);\n            }\n            pattr = pattr + 2;\n            attr_value.val.intval._2_6_ = 0;\n            attr_value.val.intval._0_2_ = uVar7;\n          }\n          goto joined_r0x00302748;\n        }\n        if (uVar11 == 10) {\n          attr_value.val.stringval = (char *)(pattr + 1);\n          bVar1 = *pattr;\n          pattr = (uchar *)(attr_value.val.stringval + bVar1);\n          attr_value.aux.shndx._1_3_ = 0;\n          attr_value.aux.shndx._0_1_ = bVar1;\n          goto joined_r0x00302748;\n        }\n        if (uVar11 < 0xb) {\n          if (uVar11 != 8) {\n            if (uVar11 != 9) {\n              return false;\n            }\n            goto LAB_00302a09;\n          }\n          attr_value.val.blockval = pattr;\n          len = strlen((char *)pattr);\n          pattr = puVar23 + len + 1;\n          if (uVar2 == 0x31) goto LAB_00302750;\n          if (0x31 < uVar2) {\n            if ((uVar2 != 0x6e) && (uVar2 != 0x2007)) goto LAB_00302750;\n            goto LAB_003029eb;\n          }\n          if ((uVar2 == 1) || (uVar2 != 3)) goto LAB_00302750;\n          goto LAB_003029c7;\n        }\n        if (uVar11 < 0xd) {\n          attr_value.val.intval._1_7_ = 0;\n          attr_value.val.uintval._0_1_ = *pattr;\n          pattr = pattr + 1;\n          goto LAB_00302f92;\n        }\n        bVar1 = *pattr;\n        puVar23 = pattr + 1;\n        if ((char)bVar1 < '\0') {\n          attr_value.val.intval = read_signed_LEB_128_x(puVar23,&len,bVar1);\n          puVar23 = pattr + len;\n        }\n        else {\n          len = 1;\n          attr_value.val.intval._1_7_ = 0;\n          attr_value.val.uintval._0_1_ = bVar1;\n          if ((bVar1 & 0x40) != 0) {\n            attr_value.val.uintval = attr_value.val.uintval | 0xffffffffffffff80;\n          }\n        }\n        pattr = puVar23;\n        if ((uVar2 == 0x31) || (uVar2 < 0x32)) goto LAB_00302750;\n        if ((uVar2 == 0x6e) || (uVar2 == 0x2007)) goto LAB_00302fbe;\n        __position._M_current =\n             (this->attributes_).\n             super__Vector_base<gold::Dwarf_die::Attribute_value,_std::allocator<gold::Dwarf_die::Attribute_value>_>\n             ._M_impl._M_finish;\n        if (__position._M_current ==\n            (this->attributes_).\n            super__Vector_base<gold::Dwarf_die::Attribute_value,_std::allocator<gold::Dwarf_die::Attribute_value>_>\n            ._M_impl._M_end_of_storage) goto LAB_003028c0;\nLAB_0030275e:\n        (__position._M_current)->attr = (int)CONCAT44(attr_value.form,attr_value.attr);\n        (__position._M_current)->form = (int)(CONCAT44(attr_value.form,attr_value.attr) >> 0x20);\n        (__position._M_current)->val = attr_value.val;\n        *(ulong *)&(__position._M_current)->aux = CONCAT44(attr_value._20_4_,attr_value.aux.shndx);\n        (this->attributes_).\n        super__Vector_base<gold::Dwarf_die::Attribute_value,_std::allocator<gold::Dwarf_die::Attribute_value>_>\n        ._M_impl._M_finish = __position._M_current + 1;\n      }\n      lVar25 = lVar25 + 8;\n      pAVar13 = this->abbrev_code_;\n    } while (lVar25 != (ulong)(iVar19 - 1) * 8 + 8);\n  }" { (if_statement "if (iVar19 == 0) goto LAB_00302797;" if (parenthesized_expression "(iVar19 == 0)" ( (binary_expression "iVar19 == 0" identifier == number_literal) )) (goto_statement "goto LAB_00302797;" goto statement_identifier ;)) (labeled_statement "LAB_00302642:\n    lVar25 = 0;" statement_identifier : (expression_statement "lVar25 = 0;" (assignment_expression "lVar25 = 0" identifier = number_literal) ;)) (do_statement "do {\n      puVar17 = (uint *)((long)&((pAVar13->attributes).\n                                 super__Vector_base<gold::Dwarf_abbrev_table::Attribute,_std::allocator<gold::Dwarf_abbrev_table::Attribute>_>\n                                 ._M_impl._M_start)->attr + lVar25);\n      uVar11 = puVar17[1];\n      uVar2 = *puVar17;\n      if (uVar11 == 0x16) {\n        bVar1 = *pattr;\n        uVar11 = (uint)bVar1;\n        if ((char)bVar1 < '\0') {\n          uVar16 = read_unsigned_LEB_128_x(pattr + 1,&len,bVar1);\n          uVar11 = (uint)uVar16;\n          pattr = pattr + len;\n        }\n        else {\n          len = 1;\n          pattr = pattr + 1;\n        }\n      }\n      puVar23 = pattr;\n      attr_off = pattr + (this->die_offset_ - (long)puVar18);\n      attr_value.aux.shndx = 0;\n      attr_value.attr = uVar2;\n      attr_value.form = uVar11;\n      if (uVar11 == 0xe) {\n        pDVar21 = this->dwinfo_;\n        if (pDVar21->offset_size_ == 4) {\n          VVar12 = Dwarf_info_reader::read_from_pointer<32>(pDVar21,&pattr);\n          str_off = (off_t)VVar12;\n        }\n        else {\n          pp_Var4 = (pDVar21->object_->super_Object)._vptr_Object;\n          p_Var5 = pp_Var4[3];\n          if (p_Var5 == Relobj::is_big_endian) {\n            iVar9 = (*pp_Var4[0x3a])();\n            cVar8 = (char)iVar9;\n          }\n          else {\n            iVar9 = (*p_Var5)();\n            cVar8 = (char)iVar9;\n          }\n          str_off = *(off_t *)pattr;\n          if (cVar8 != '\0') {\n            str_off = (ulong)str_off >> 0x38 | (str_off & 0xff000000000000U) >> 0x28 |\n                      (str_off & 0xff0000000000U) >> 0x18 | (str_off & 0xff00000000U) >> 8 |\n                      (str_off & 0xff000000U) << 8 | (str_off & 0xff0000U) << 0x18 |\n                      (str_off & 0xff00U) << 0x28 | str_off << 0x38;\n          }\n          pattr = pattr + 8;\n        }\n        attr_value.aux.shndx =\n             Dwarf_info_reader::lookup_reloc(this->dwinfo_,(off_t)attr_off,&str_off);\n        attr_value.val.refval = str_off;\n        if (uVar2 != 0x31) {\n          if (uVar2 < 0x32) {\n            if ((uVar2 != 1) && (uVar2 == 3)) {\nLAB_00302f64:\n              this->string_shndx_ = (uint)attr_value.aux;\n              this->name_off_ = (off_t)attr_value.val;\n            }\n          }\n          else if ((uVar2 == 0x6e) || (uVar2 == 0x2007)) {\nLAB_00302fd0:\n            this->string_shndx_ = (uint)attr_value.aux;\n            this->linkage_name_off_ = (off_t)attr_value.val;\n          }\n        }\nLAB_00302750:\n        __position._M_current =\n             (this->attributes_).\n             super__Vector_base<gold::Dwarf_die::Attribute_value,_std::allocator<gold::Dwarf_die::Attribute_value>_>\n             ._M_impl._M_finish;\n        if (__position._M_current !=\n            (this->attributes_).\n            super__Vector_base<gold::Dwarf_die::Attribute_value,_std::allocator<gold::Dwarf_die::Attribute_value>_>\n            ._M_impl._M_end_of_storage) goto LAB_0030275e;\nLAB_003028c0:\n        std::\n        vector<gold::Dwarf_die::Attribute_value,_std::allocator<gold::Dwarf_die::Attribute_value>_>\n        ::_M_realloc_insert<const_gold::Dwarf_die::Attribute_value&>\n                  (&this->attributes_,__position,&attr_value);\n      }\n      else {\n        if (0xe < uVar11) {\n          if (uVar11 == 0x15) {\n            bVar1 = *pattr;\n            aVar15.intval._1_7_ = 0;\n            aVar15.uintval._0_1_ = bVar1;\n            if ((char)bVar1 < '\0') {\n              attr_value.val.uintval = read_unsigned_LEB_128_x(pattr + 1,&len,bVar1);\n              pattr = pattr + len;\n            }\n            else {\n              len = 1;\n              pattr = pattr + 1;\n              attr_value.val = aVar15;\n            }\njoined_r0x00303052:\n            if (uVar2 != 0x31) {\n              if (uVar2 < 0x32) {\nLAB_00302c20:\n                if ((uVar2 == 1) && (attr_value.aux.shndx == 0)) {\n                  this->sibling_offset_ = (off_t)attr_value.val;\n                }\n                goto LAB_00302750;\n              }\n              if ((uVar2 != 0x6e) && (uVar2 != 0x2007)) {\njoined_r0x00302ce3:\n                if (uVar2 == 0x47) {\n                  this->specification_ = (off_t)attr_value.val;\n                }\n                goto LAB_00302750;\n              }\nLAB_00302fb5:\n              if (uVar11 == 8) {\nLAB_003029eb:\n                this->linkage_name_ = (char *)attr_value.val;\n              }\n              else {\nLAB_00302fbe:\n                if (uVar11 == 0xe) goto LAB_00302fd0;\n              }\n              goto LAB_00302750;\n            }\n          }\n          else {\n            if (0x15 < uVar11) {\n              if (uVar11 != 0x19) {\n                if (uVar11 < 0x1a) {\n                  if (uVar11 == 0x17) {\n                    pDVar21 = this->dwinfo_;\n                    if (pDVar21->offset_size_ == 4) {\n                      VVar12 = Dwarf_info_reader::read_from_pointer<32>(pDVar21,&pattr);\n                      str_off = (off_t)VVar12;\n                    }\n                    else {\n                      pRVar22 = pDVar21->object_;\nLAB_00302fe7:\n                      pp_Var4 = (pRVar22->super_Object)._vptr_Object;\n                      p_Var5 = pp_Var4[3];\n                      if (p_Var5 == Relobj::is_big_endian) {\n                        iVar9 = (*pp_Var4[0x3a])();\n                        cVar8 = (char)iVar9;\n                      }\n                      else {\n                        iVar9 = (*p_Var5)();\n                        cVar8 = (char)iVar9;\n                      }\n                      str_off = *(off_t *)pattr;\n                      if (cVar8 != '\0') {\n                        str_off = (ulong)str_off >> 0x38 | (str_off & 0xff000000000000U) >> 0x28 |\n                                  (str_off & 0xff0000000000U) >> 0x18 |\n                                  (str_off & 0xff00000000U) >> 8 | (str_off & 0xff000000U) << 8 |\n                                  (str_off & 0xff0000U) << 0x18 | (str_off & 0xff00U) << 0x28 |\n                                  str_off << 0x38;\n                      }\n                      pattr = pattr + 8;\n                    }\nLAB_00303035:\n                    attr_value.aux.shndx =\n                         Dwarf_info_reader::lookup_reloc(this->dwinfo_,(off_t)attr_off,&str_off);\n                    attr_value.val.refval = str_off;\n                    goto joined_r0x00303052;\n                  }\n                  if (uVar11 != 0x18) {\n                    return false;\n                  }\nLAB_00302a09:\n                  bVar1 = *pattr;\n                  aVar10.shndx._1_3_ = 0;\n                  aVar10.shndx._0_1_ = bVar1;\n                  aVar15.stringval = (char *)(pattr + 1);\n                  if ((char)bVar1 < '\0') {\n                    uVar16 = read_unsigned_LEB_128_x(aVar15.blockval,&len,bVar1);\n                    aVar10.shndx = (uint)uVar16;\n                    aVar15.stringval = (char *)(pattr + len);\n                  }\n                  else {\n                    len = 1;\n                  }\n                  pattr = pattr + aVar10.shndx + len;\n                  attr_value.val = aVar15;\n                  attr_value.aux = aVar10;\n                }\n                else {\n                  if (uVar11 == 0x20) {\n                    pp_Var4 = (this->dwinfo_->object_->super_Object)._vptr_Object;\n                    p_Var5 = pp_Var4[3];\n                    if (p_Var5 == Relobj::is_big_endian) {\n                      iVar9 = (*pp_Var4[0x3a])();\n                      cVar8 = (char)iVar9;\n                    }\n                    else {\n                      iVar9 = (*p_Var5)();\n                      cVar8 = (char)iVar9;\n                    }\n                    /* WARNING: Load size is inaccurate */\n                    attr_value.val.blockval = *pattr;\n                    if (cVar8 != '\0') {\n                      attr_value.val.uintval =\n                           attr_value.val.uintval >> 0x38 |\n                           (attr_value.val.uintval & 0xff000000000000) >> 0x28 |\n                           (attr_value.val.uintval & 0xff0000000000) >> 0x18 |\n                           (attr_value.val.uintval & 0xff00000000) >> 8 |\n                           (attr_value.val.uintval & 0xff000000) << 8 |\n                           (attr_value.val.uintval & 0xff0000) << 0x18 |\n                           (attr_value.val.uintval & 0xff00) << 0x28 |\n                           attr_value.val.uintval << 0x38;\n                    }\n                    pattr = pattr + 8;\n                    goto LAB_00302ea9;\n                  }\n                  if (uVar11 < 0x20) {\n                    return false;\n                  }\n                  if (1 < uVar11 - 0x1f01) {\n                    return false;\n                  }\nLAB_00302bcd:\n                  bVar1 = *pattr;\n                  aVar14.intval._1_7_ = 0;\n                  aVar14.uintval._0_1_ = bVar1;\n                  if ((char)bVar1 < '\0') {\n                    attr_value.val.uintval = read_unsigned_LEB_128_x(pattr + 1,&len,bVar1);\n                    pattr = pattr + len;\n                  }\n                  else {\n                    len = 1;\n                    pattr = pattr + 1;\n                    attr_value.val = aVar14;\n                  }\n                }\nLAB_00302f92:\n                if (uVar2 == 0x31) goto LAB_00302750;\n                if (0x31 < uVar2) {\n                  if ((uVar2 == 0x6e) || (uVar2 == 0x2007)) goto LAB_00302fb5;\n                  goto LAB_00302750;\n                }\n                goto LAB_00302e3e;\n              }\n              attr_value.val.intval = 1;\nLAB_00302ea9:\n              if (((uVar2 == 0x31) || (0x31 < uVar2)) || (uVar2 != 3)) goto LAB_00302750;\nLAB_00302e52:\n              if (uVar11 == 8) {\nLAB_003029c7:\n                this->name_ = (char *)attr_value.val;\n              }\n              else if (uVar11 == 0xe) goto LAB_00302f64;\n              goto LAB_00302750;\n            }\n            if (uVar11 != 0x11) {\n              if (0x11 < uVar11) {\n                if (uVar11 == 0x13) {\n                  VVar12 = Dwarf_info_reader::read_from_pointer<32>(this->dwinfo_,&pattr);\n                  str_off = (off_t)VVar12;\n                  goto LAB_00303035;\n                }\n                if (0x13 < uVar11) {\n                  pRVar22 = this->dwinfo_->object_;\n                  goto LAB_00302fe7;\n                }\n                pp_Var4 = (this->dwinfo_->object_->super_Object)._vptr_Object;\n                p_Var5 = pp_Var4[3];\n                if (p_Var5 == Relobj::is_big_endian) {\n                  iVar9 = (*pp_Var4[0x3a])();\n                  cVar8 = (char)iVar9;\n                }\n                else {\n                  iVar9 = (*p_Var5)();\n                  cVar8 = (char)iVar9;\n                }\n                uVar7 = *(ushort *)pattr;\n                if (cVar8 != '\0') {\n                  uVar7 = CONCAT11(*pattr,pattr[1]);\n                }\n                attr_value.val.intval._2_6_ = 0;\n                attr_value.val.intval._0_2_ = uVar7;\n                pattr = pattr + 2;\n                goto joined_r0x00303052;\n              }\n              if (uVar11 == 0xf) goto LAB_00302bcd;\n              if (uVar11 != 0x10) {\n                return false;\n              }\n              pDVar21 = this->dwinfo_;\n              uVar11 = pDVar21->address_size_;\n              if (2 < pDVar21->cu_version_) {\n                uVar11 = pDVar21->offset_size_;\n              }\n              if (uVar11 != 4) goto LAB_00302a71;\nLAB_00302e7d:\n              VVar12 = Dwarf_info_reader::read_from_pointer<32>(pDVar21,&pattr);\n              str_off = (off_t)VVar12;\nLAB_00302abe:\n              attr_value.aux.shndx =\n                   Dwarf_info_reader::lookup_reloc(this->dwinfo_,(off_t)attr_off,&str_off);\n              attr_value.val.refval = str_off;\n              if (uVar2 == 0x31) goto LAB_00302965;\n              if (0x31 < uVar2) goto joined_r0x00302ccc;\n              goto LAB_00302c20;\n            }\n            puVar23 = pattr + 1;\n            attr_value.val.intval._1_7_ = 0;\n            attr_value.val.uintval._0_1_ = *pattr;\n            pattr = puVar23;\n            if (uVar2 != 0x31) {\n              if (uVar2 < 0x32) {\n                if (uVar2 == 1) {\n                  this->sibling_offset_ = (off_t)attr_value.val;\n                }\n                goto LAB_00302750;\n              }\njoined_r0x00302ccc:\n              if ((uVar2 == 0x6e) || (uVar2 == 0x2007)) goto LAB_00302750;\n              goto joined_r0x00302ce3;\n            }\n          }\nLAB_00302965:\n          this->abstract_origin_ = (off_t)attr_value.val;\n          goto LAB_00302750;\n        }\n        if (uVar11 == 7) {\n          pp_Var4 = (this->dwinfo_->object_->super_Object)._vptr_Object;\n          p_Var5 = pp_Var4[3];\n          if (p_Var5 == Relobj::is_big_endian) {\n            iVar9 = (*pp_Var4[0x3a])();\n            cVar8 = (char)iVar9;\n          }\n          else {\n            iVar9 = (*p_Var5)();\n            cVar8 = (char)iVar9;\n          }\n          str_off = *(off_t *)pattr;\n          if (cVar8 != '\0') {\n            str_off = (ulong)str_off >> 0x38 | (str_off & 0xff000000000000U) >> 0x28 |\n                      (str_off & 0xff0000000000U) >> 0x18 | (str_off & 0xff00000000U) >> 8 |\n                      (str_off & 0xff000000U) << 8 | (str_off & 0xff0000U) << 0x18 |\n                      (str_off & 0xff00U) << 0x28 | str_off << 0x38;\n          }\n          pattr = pattr + 8;\nLAB_00302d40:\n          attr_value.aux.shndx =\n               Dwarf_info_reader::lookup_reloc(this->dwinfo_,(off_t)attr_off,&str_off);\n          attr_value.val.refval = str_off;\njoined_r0x00302748:\n          if ((uVar2 != 0x31) && (uVar2 < 0x32)) {\nLAB_00302e3e:\n            if ((uVar2 != 1) && (uVar2 == 3)) goto LAB_00302e52;\n          }\n          goto LAB_00302750;\n        }\n        if (uVar11 < 8) {\n          if (uVar11 == 4) {\n            pp_Var4 = (this->dwinfo_->object_->super_Object)._vptr_Object;\n            p_Var5 = pp_Var4[3];\n            if (p_Var5 == Relobj::is_big_endian) {\n              iVar9 = (*pp_Var4[0x3a])();\n              cVar8 = (char)iVar9;\n            }\n            else {\n              iVar9 = (*p_Var5)();\n              cVar8 = (char)iVar9;\n            }\n            attr_value.aux.shndx = *(uint *)pattr;\n            if (cVar8 != '\0') {\n              attr_value.aux.shndx =\n                   attr_value.aux.shndx >> 0x18 | (attr_value.aux.shndx & 0xff0000) >> 8 |\n                   (attr_value.aux.shndx & 0xff00) << 8 | attr_value.aux.shndx << 0x18;\n            }\n            attr_value.val.stringval = (char *)(pattr + 4);\n            pattr = (uchar *)(attr_value.val.stringval + attr_value.aux.shndx);\n          }\n          else if (uVar11 < 5) {\n            if (uVar11 == 1) {\n              pDVar21 = this->dwinfo_;\n              if (pDVar21->address_size_ == 4) goto LAB_00302e7d;\nLAB_00302a71:\n              pp_Var4 = (pDVar21->object_->super_Object)._vptr_Object;\n              p_Var5 = pp_Var4[3];\n              if (p_Var5 == Relobj::is_big_endian) {\n                iVar9 = (*pp_Var4[0x3a])();\n                cVar8 = (char)iVar9;\n              }\n              else {\n                iVar9 = (*p_Var5)();\n                cVar8 = (char)iVar9;\n              }\n              str_off = *(off_t *)pattr;\n              if (cVar8 != '\0') {\n                str_off = (ulong)str_off >> 0x38 | (str_off & 0xff000000000000U) >> 0x28 |\n                          (str_off & 0xff0000000000U) >> 0x18 | (str_off & 0xff00000000U) >> 8 |\n                          (str_off & 0xff000000U) << 8 | (str_off & 0xff0000U) << 0x18 |\n                          (str_off & 0xff00U) << 0x28 | str_off << 0x38;\n              }\n              pattr = pattr + 8;\n              goto LAB_00302abe;\n            }\n            if (uVar11 != 3) {\n              return false;\n            }\n            pp_Var4 = (this->dwinfo_->object_->super_Object)._vptr_Object;\n            p_Var5 = pp_Var4[3];\n            if (p_Var5 == Relobj::is_big_endian) {\n              iVar9 = (*pp_Var4[0x3a])();\n              cVar8 = (char)iVar9;\n            }\n            else {\n              iVar9 = (*p_Var5)();\n              cVar8 = (char)iVar9;\n            }\n            uVar7 = *(ushort *)pattr;\n            if (cVar8 != '\0') {\n              uVar7 = CONCAT11(*pattr,pattr[1]);\n            }\n            attr_value.aux.shndx._2_2_ = 0;\n            attr_value.aux.shndx._0_2_ = uVar7;\n            attr_value.val.stringval = (char *)(pattr + 2);\n            pattr = (uchar *)(attr_value.val.stringval + attr_value.aux.shndx);\n          }\n          else {\n            if (uVar11 != 5) {\n              if (uVar11 != 6) {\n                return false;\n              }\n              pp_Var4 = (this->dwinfo_->object_->super_Object)._vptr_Object;\n              p_Var5 = pp_Var4[3];\n              if (p_Var5 == Relobj::is_big_endian) {\n                iVar9 = (*pp_Var4[0x3a])();\n                cVar8 = (char)iVar9;\n              }\n              else {\n                iVar9 = (*p_Var5)();\n                cVar8 = (char)iVar9;\n              }\n              uVar3 = *(uint *)pattr;\n              if (cVar8 != '\0') {\n                uVar3 = uVar3 >> 0x18 | (uVar3 & 0xff0000) >> 8 | (uVar3 & 0xff00) << 8 |\n                        uVar3 << 0x18;\n              }\n              str_off = (off_t)uVar3;\n              pattr = pattr + 4;\n              goto LAB_00302d40;\n            }\n            pp_Var4 = (this->dwinfo_->object_->super_Object)._vptr_Object;\n            p_Var5 = pp_Var4[3];\n            if (p_Var5 == Relobj::is_big_endian) {\n              iVar9 = (*pp_Var4[0x3a])();\n              cVar8 = (char)iVar9;\n            }\n            else {\n              iVar9 = (*p_Var5)();\n              cVar8 = (char)iVar9;\n            }\n            uVar7 = *(ushort *)pattr;\n            if (cVar8 != '\0') {\n              uVar7 = CONCAT11(*pattr,pattr[1]);\n            }\n            pattr = pattr + 2;\n            attr_value.val.intval._2_6_ = 0;\n            attr_value.val.intval._0_2_ = uVar7;\n          }\n          goto joined_r0x00302748;\n        }\n        if (uVar11 == 10) {\n          attr_value.val.stringval = (char *)(pattr + 1);\n          bVar1 = *pattr;\n          pattr = (uchar *)(attr_value.val.stringval + bVar1);\n          attr_value.aux.shndx._1_3_ = 0;\n          attr_value.aux.shndx._0_1_ = bVar1;\n          goto joined_r0x00302748;\n        }\n        if (uVar11 < 0xb) {\n          if (uVar11 != 8) {\n            if (uVar11 != 9) {\n              return false;\n            }\n            goto LAB_00302a09;\n          }\n          attr_value.val.blockval = pattr;\n          len = strlen((char *)pattr);\n          pattr = puVar23 + len + 1;\n          if (uVar2 == 0x31) goto LAB_00302750;\n          if (0x31 < uVar2) {\n            if ((uVar2 != 0x6e) && (uVar2 != 0x2007)) goto LAB_00302750;\n            goto LAB_003029eb;\n          }\n          if ((uVar2 == 1) || (uVar2 != 3)) goto LAB_00302750;\n          goto LAB_003029c7;\n        }\n        if (uVar11 < 0xd) {\n          attr_value.val.intval._1_7_ = 0;\n          attr_value.val.uintval._0_1_ = *pattr;\n          pattr = pattr + 1;\n          goto LAB_00302f92;\n        }\n        bVar1 = *pattr;\n        puVar23 = pattr + 1;\n        if ((char)bVar1 < '\0') {\n          attr_value.val.intval = read_signed_LEB_128_x(puVar23,&len,bVar1);\n          puVar23 = pattr + len;\n        }\n        else {\n          len = 1;\n          attr_value.val.intval._1_7_ = 0;\n          attr_value.val.uintval._0_1_ = bVar1;\n          if ((bVar1 & 0x40) != 0) {\n            attr_value.val.uintval = attr_value.val.uintval | 0xffffffffffffff80;\n          }\n        }\n        pattr = puVar23;\n        if ((uVar2 == 0x31) || (uVar2 < 0x32)) goto LAB_00302750;\n        if ((uVar2 == 0x6e) || (uVar2 == 0x2007)) goto LAB_00302fbe;\n        __position._M_current =\n             (this->attributes_).\n             super__Vector_base<gold::Dwarf_die::Attribute_value,_std::allocator<gold::Dwarf_die::Attribute_value>_>\n             ._M_impl._M_finish;\n        if (__position._M_current ==\n            (this->attributes_).\n            super__Vector_base<gold::Dwarf_die::Attribute_value,_std::allocator<gold::Dwarf_die::Attribute_value>_>\n            ._M_impl._M_end_of_storage) goto LAB_003028c0;\nLAB_0030275e:\n        (__position._M_current)->attr = (int)CONCAT44(attr_value.form,attr_value.attr);\n        (__position._M_current)->form = (int)(CONCAT44(attr_value.form,attr_value.attr) >> 0x20);\n        (__position._M_current)->val = attr_value.val;\n        *(ulong *)&(__position._M_current)->aux = CONCAT44(attr_value._20_4_,attr_value.aux.shndx);\n        (this->attributes_).\n        super__Vector_base<gold::Dwarf_die::Attribute_value,_std::allocator<gold::Dwarf_die::Attribute_value>_>\n        ._M_impl._M_finish = __position._M_current + 1;\n      }\n      lVar25 = lVar25 + 8;\n      pAVar13 = this->abbrev_code_;\n    } while (lVar25 != (ulong)(iVar19 - 1) * 8 + 8);" do (compound_statement "{\n      puVar17 = (uint *)((long)&((pAVar13->attributes).\n                                 super__Vector_base<gold::Dwarf_abbrev_table::Attribute,_std::allocator<gold::Dwarf_abbrev_table::Attribute>_>\n                                 ._M_impl._M_start)->attr + lVar25);\n      uVar11 = puVar17[1];\n      uVar2 = *puVar17;\n      if (uVar11 == 0x16) {\n        bVar1 = *pattr;\n        uVar11 = (uint)bVar1;\n        if ((char)bVar1 < '\0') {\n          uVar16 = read_unsigned_LEB_128_x(pattr + 1,&len,bVar1);\n          uVar11 = (uint)uVar16;\n          pattr = pattr + len;\n        }\n        else {\n          len = 1;\n          pattr = pattr + 1;\n        }\n      }\n      puVar23 = pattr;\n      attr_off = pattr + (this->die_offset_ - (long)puVar18);\n      attr_value.aux.shndx = 0;\n      attr_value.attr = uVar2;\n      attr_value.form = uVar11;\n      if (uVar11 == 0xe) {\n        pDVar21 = this->dwinfo_;\n        if (pDVar21->offset_size_ == 4) {\n          VVar12 = Dwarf_info_reader::read_from_pointer<32>(pDVar21,&pattr);\n          str_off = (off_t)VVar12;\n        }\n        else {\n          pp_Var4 = (pDVar21->object_->super_Object)._vptr_Object;\n          p_Var5 = pp_Var4[3];\n          if (p_Var5 == Relobj::is_big_endian) {\n            iVar9 = (*pp_Var4[0x3a])();\n            cVar8 = (char)iVar9;\n          }\n          else {\n            iVar9 = (*p_Var5)();\n            cVar8 = (char)iVar9;\n          }\n          str_off = *(off_t *)pattr;\n          if (cVar8 != '\0') {\n            str_off = (ulong)str_off >> 0x38 | (str_off & 0xff000000000000U) >> 0x28 |\n                      (str_off & 0xff0000000000U) >> 0x18 | (str_off & 0xff00000000U) >> 8 |\n                      (str_off & 0xff000000U) << 8 | (str_off & 0xff0000U) << 0x18 |\n                      (str_off & 0xff00U) << 0x28 | str_off << 0x38;\n          }\n          pattr = pattr + 8;\n        }\n        attr_value.aux.shndx =\n             Dwarf_info_reader::lookup_reloc(this->dwinfo_,(off_t)attr_off,&str_off);\n        attr_value.val.refval = str_off;\n        if (uVar2 != 0x31) {\n          if (uVar2 < 0x32) {\n            if ((uVar2 != 1) && (uVar2 == 3)) {\nLAB_00302f64:\n              this->string_shndx_ = (uint)attr_value.aux;\n              this->name_off_ = (off_t)attr_value.val;\n            }\n          }\n          else if ((uVar2 == 0x6e) || (uVar2 == 0x2007)) {\nLAB_00302fd0:\n            this->string_shndx_ = (uint)attr_value.aux;\n            this->linkage_name_off_ = (off_t)attr_value.val;\n          }\n        }\nLAB_00302750:\n        __position._M_current =\n             (this->attributes_).\n             super__Vector_base<gold::Dwarf_die::Attribute_value,_std::allocator<gold::Dwarf_die::Attribute_value>_>\n             ._M_impl._M_finish;\n        if (__position._M_current !=\n            (this->attributes_).\n            super__Vector_base<gold::Dwarf_die::Attribute_value,_std::allocator<gold::Dwarf_die::Attribute_value>_>\n            ._M_impl._M_end_of_storage) goto LAB_0030275e;\nLAB_003028c0:\n        std::\n        vector<gold::Dwarf_die::Attribute_value,_std::allocator<gold::Dwarf_die::Attribute_value>_>\n        ::_M_realloc_insert<const_gold::Dwarf_die::Attribute_value&>\n                  (&this->attributes_,__position,&attr_value);\n      }\n      else {\n        if (0xe < uVar11) {\n          if (uVar11 == 0x15) {\n            bVar1 = *pattr;\n            aVar15.intval._1_7_ = 0;\n            aVar15.uintval._0_1_ = bVar1;\n            if ((char)bVar1 < '\0') {\n              attr_value.val.uintval = read_unsigned_LEB_128_x(pattr + 1,&len,bVar1);\n              pattr = pattr + len;\n            }\n            else {\n              len = 1;\n              pattr = pattr + 1;\n              attr_value.val = aVar15;\n            }\njoined_r0x00303052:\n            if (uVar2 != 0x31) {\n              if (uVar2 < 0x32) {\nLAB_00302c20:\n                if ((uVar2 == 1) && (attr_value.aux.shndx == 0)) {\n                  this->sibling_offset_ = (off_t)attr_value.val;\n                }\n                goto LAB_00302750;\n              }\n              if ((uVar2 != 0x6e) && (uVar2 != 0x2007)) {\njoined_r0x00302ce3:\n                if (uVar2 == 0x47) {\n                  this->specification_ = (off_t)attr_value.val;\n                }\n                goto LAB_00302750;\n              }\nLAB_00302fb5:\n              if (uVar11 == 8) {\nLAB_003029eb:\n                this->linkage_name_ = (char *)attr_value.val;\n              }\n              else {\nLAB_00302fbe:\n                if (uVar11 == 0xe) goto LAB_00302fd0;\n              }\n              goto LAB_00302750;\n            }\n          }\n          else {\n            if (0x15 < uVar11) {\n              if (uVar11 != 0x19) {\n                if (uVar11 < 0x1a) {\n                  if (uVar11 == 0x17) {\n                    pDVar21 = this->dwinfo_;\n                    if (pDVar21->offset_size_ == 4) {\n                      VVar12 = Dwarf_info_reader::read_from_pointer<32>(pDVar21,&pattr);\n                      str_off = (off_t)VVar12;\n                    }\n                    else {\n                      pRVar22 = pDVar21->object_;\nLAB_00302fe7:\n                      pp_Var4 = (pRVar22->super_Object)._vptr_Object;\n                      p_Var5 = pp_Var4[3];\n                      if (p_Var5 == Relobj::is_big_endian) {\n                        iVar9 = (*pp_Var4[0x3a])();\n                        cVar8 = (char)iVar9;\n                      }\n                      else {\n                        iVar9 = (*p_Var5)();\n                        cVar8 = (char)iVar9;\n                      }\n                      str_off = *(off_t *)pattr;\n                      if (cVar8 != '\0') {\n                        str_off = (ulong)str_off >> 0x38 | (str_off & 0xff000000000000U) >> 0x28 |\n                                  (str_off & 0xff0000000000U) >> 0x18 |\n                                  (str_off & 0xff00000000U) >> 8 | (str_off & 0xff000000U) << 8 |\n                                  (str_off & 0xff0000U) << 0x18 | (str_off & 0xff00U) << 0x28 |\n                                  str_off << 0x38;\n                      }\n                      pattr = pattr + 8;\n                    }\nLAB_00303035:\n                    attr_value.aux.shndx =\n                         Dwarf_info_reader::lookup_reloc(this->dwinfo_,(off_t)attr_off,&str_off);\n                    attr_value.val.refval = str_off;\n                    goto joined_r0x00303052;\n                  }\n                  if (uVar11 != 0x18) {\n                    return false;\n                  }\nLAB_00302a09:\n                  bVar1 = *pattr;\n                  aVar10.shndx._1_3_ = 0;\n                  aVar10.shndx._0_1_ = bVar1;\n                  aVar15.stringval = (char *)(pattr + 1);\n                  if ((char)bVar1 < '\0') {\n                    uVar16 = read_unsigned_LEB_128_x(aVar15.blockval,&len,bVar1);\n                    aVar10.shndx = (uint)uVar16;\n                    aVar15.stringval = (char *)(pattr + len);\n                  }\n                  else {\n                    len = 1;\n                  }\n                  pattr = pattr + aVar10.shndx + len;\n                  attr_value.val = aVar15;\n                  attr_value.aux = aVar10;\n                }\n                else {\n                  if (uVar11 == 0x20) {\n                    pp_Var4 = (this->dwinfo_->object_->super_Object)._vptr_Object;\n                    p_Var5 = pp_Var4[3];\n                    if (p_Var5 == Relobj::is_big_endian) {\n                      iVar9 = (*pp_Var4[0x3a])();\n                      cVar8 = (char)iVar9;\n                    }\n                    else {\n                      iVar9 = (*p_Var5)();\n                      cVar8 = (char)iVar9;\n                    }\n                    /* WARNING: Load size is inaccurate */\n                    attr_value.val.blockval = *pattr;\n                    if (cVar8 != '\0') {\n                      attr_value.val.uintval =\n                           attr_value.val.uintval >> 0x38 |\n                           (attr_value.val.uintval & 0xff000000000000) >> 0x28 |\n                           (attr_value.val.uintval & 0xff0000000000) >> 0x18 |\n                           (attr_value.val.uintval & 0xff00000000) >> 8 |\n                           (attr_value.val.uintval & 0xff000000) << 8 |\n                           (attr_value.val.uintval & 0xff0000) << 0x18 |\n                           (attr_value.val.uintval & 0xff00) << 0x28 |\n                           attr_value.val.uintval << 0x38;\n                    }\n                    pattr = pattr + 8;\n                    goto LAB_00302ea9;\n                  }\n                  if (uVar11 < 0x20) {\n                    return false;\n                  }\n                  if (1 < uVar11 - 0x1f01) {\n                    return false;\n                  }\nLAB_00302bcd:\n                  bVar1 = *pattr;\n                  aVar14.intval._1_7_ = 0;\n                  aVar14.uintval._0_1_ = bVar1;\n                  if ((char)bVar1 < '\0') {\n                    attr_value.val.uintval = read_unsigned_LEB_128_x(pattr + 1,&len,bVar1);\n                    pattr = pattr + len;\n                  }\n                  else {\n                    len = 1;\n                    pattr = pattr + 1;\n                    attr_value.val = aVar14;\n                  }\n                }\nLAB_00302f92:\n                if (uVar2 == 0x31) goto LAB_00302750;\n                if (0x31 < uVar2) {\n                  if ((uVar2 == 0x6e) || (uVar2 == 0x2007)) goto LAB_00302fb5;\n                  goto LAB_00302750;\n                }\n                goto LAB_00302e3e;\n              }\n              attr_value.val.intval = 1;\nLAB_00302ea9:\n              if (((uVar2 == 0x31) || (0x31 < uVar2)) || (uVar2 != 3)) goto LAB_00302750;\nLAB_00302e52:\n              if (uVar11 == 8) {\nLAB_003029c7:\n                this->name_ = (char *)attr_value.val;\n              }\n              else if (uVar11 == 0xe) goto LAB_00302f64;\n              goto LAB_00302750;\n            }\n            if (uVar11 != 0x11) {\n              if (0x11 < uVar11) {\n                if (uVar11 == 0x13) {\n                  VVar12 = Dwarf_info_reader::read_from_pointer<32>(this->dwinfo_,&pattr);\n                  str_off = (off_t)VVar12;\n                  goto LAB_00303035;\n                }\n                if (0x13 < uVar11) {\n                  pRVar22 = this->dwinfo_->object_;\n                  goto LAB_00302fe7;\n                }\n                pp_Var4 = (this->dwinfo_->object_->super_Object)._vptr_Object;\n                p_Var5 = pp_Var4[3];\n                if (p_Var5 == Relobj::is_big_endian) {\n                  iVar9 = (*pp_Var4[0x3a])();\n                  cVar8 = (char)iVar9;\n                }\n                else {\n                  iVar9 = (*p_Var5)();\n                  cVar8 = (char)iVar9;\n                }\n                uVar7 = *(ushort *)pattr;\n                if (cVar8 != '\0') {\n                  uVar7 = CONCAT11(*pattr,pattr[1]);\n                }\n                attr_value.val.intval._2_6_ = 0;\n                attr_value.val.intval._0_2_ = uVar7;\n                pattr = pattr + 2;\n                goto joined_r0x00303052;\n              }\n              if (uVar11 == 0xf) goto LAB_00302bcd;\n              if (uVar11 != 0x10) {\n                return false;\n              }\n              pDVar21 = this->dwinfo_;\n              uVar11 = pDVar21->address_size_;\n              if (2 < pDVar21->cu_version_) {\n                uVar11 = pDVar21->offset_size_;\n              }\n              if (uVar11 != 4) goto LAB_00302a71;\nLAB_00302e7d:\n              VVar12 = Dwarf_info_reader::read_from_pointer<32>(pDVar21,&pattr);\n              str_off = (off_t)VVar12;\nLAB_00302abe:\n              attr_value.aux.shndx =\n                   Dwarf_info_reader::lookup_reloc(this->dwinfo_,(off_t)attr_off,&str_off);\n              attr_value.val.refval = str_off;\n              if (uVar2 == 0x31) goto LAB_00302965;\n              if (0x31 < uVar2) goto joined_r0x00302ccc;\n              goto LAB_00302c20;\n            }\n            puVar23 = pattr + 1;\n            attr_value.val.intval._1_7_ = 0;\n            attr_value.val.uintval._0_1_ = *pattr;\n            pattr = puVar23;\n            if (uVar2 != 0x31) {\n              if (uVar2 < 0x32) {\n                if (uVar2 == 1) {\n                  this->sibling_offset_ = (off_t)attr_value.val;\n                }\n                goto LAB_00302750;\n              }\njoined_r0x00302ccc:\n              if ((uVar2 == 0x6e) || (uVar2 == 0x2007)) goto LAB_00302750;\n              goto joined_r0x00302ce3;\n            }\n          }\nLAB_00302965:\n          this->abstract_origin_ = (off_t)attr_value.val;\n          goto LAB_00302750;\n        }\n        if (uVar11 == 7) {\n          pp_Var4 = (this->dwinfo_->object_->super_Object)._vptr_Object;\n          p_Var5 = pp_Var4[3];\n          if (p_Var5 == Relobj::is_big_endian) {\n            iVar9 = (*pp_Var4[0x3a])();\n            cVar8 = (char)iVar9;\n          }\n          else {\n            iVar9 = (*p_Var5)();\n            cVar8 = (char)iVar9;\n          }\n          str_off = *(off_t *)pattr;\n          if (cVar8 != '\0') {\n            str_off = (ulong)str_off >> 0x38 | (str_off & 0xff000000000000U) >> 0x28 |\n                      (str_off & 0xff0000000000U) >> 0x18 | (str_off & 0xff00000000U) >> 8 |\n                      (str_off & 0xff000000U) << 8 | (str_off & 0xff0000U) << 0x18 |\n                      (str_off & 0xff00U) << 0x28 | str_off << 0x38;\n          }\n          pattr = pattr + 8;\nLAB_00302d40:\n          attr_value.aux.shndx =\n               Dwarf_info_reader::lookup_reloc(this->dwinfo_,(off_t)attr_off,&str_off);\n          attr_value.val.refval = str_off;\njoined_r0x00302748:\n          if ((uVar2 != 0x31) && (uVar2 < 0x32)) {\nLAB_00302e3e:\n            if ((uVar2 != 1) && (uVar2 == 3)) goto LAB_00302e52;\n          }\n          goto LAB_00302750;\n        }\n        if (uVar11 < 8) {\n          if (uVar11 == 4) {\n            pp_Var4 = (this->dwinfo_->object_->super_Object)._vptr_Object;\n            p_Var5 = pp_Var4[3];\n            if (p_Var5 == Relobj::is_big_endian) {\n              iVar9 = (*pp_Var4[0x3a])();\n              cVar8 = (char)iVar9;\n            }\n            else {\n              iVar9 = (*p_Var5)();\n              cVar8 = (char)iVar9;\n            }\n            attr_value.aux.shndx = *(uint *)pattr;\n            if (cVar8 != '\0') {\n              attr_value.aux.shndx =\n                   attr_value.aux.shndx >> 0x18 | (attr_value.aux.shndx & 0xff0000) >> 8 |\n                   (attr_value.aux.shndx & 0xff00) << 8 | attr_value.aux.shndx << 0x18;\n            }\n            attr_value.val.stringval = (char *)(pattr + 4);\n            pattr = (uchar *)(attr_value.val.stringval + attr_value.aux.shndx);\n          }\n          else if (uVar11 < 5) {\n            if (uVar11 == 1) {\n              pDVar21 = this->dwinfo_;\n              if (pDVar21->address_size_ == 4) goto LAB_00302e7d;\nLAB_00302a71:\n              pp_Var4 = (pDVar21->object_->super_Object)._vptr_Object;\n              p_Var5 = pp_Var4[3];\n              if (p_Var5 == Relobj::is_big_endian) {\n                iVar9 = (*pp_Var4[0x3a])();\n                cVar8 = (char)iVar9;\n              }\n              else {\n                iVar9 = (*p_Var5)();\n                cVar8 = (char)iVar9;\n              }\n              str_off = *(off_t *)pattr;\n              if (cVar8 != '\0') {\n                str_off = (ulong)str_off >> 0x38 | (str_off & 0xff000000000000U) >> 0x28 |\n                          (str_off & 0xff0000000000U) >> 0x18 | (str_off & 0xff00000000U) >> 8 |\n                          (str_off & 0xff000000U) << 8 | (str_off & 0xff0000U) << 0x18 |\n                          (str_off & 0xff00U) << 0x28 | str_off << 0x38;\n              }\n              pattr = pattr + 8;\n              goto LAB_00302abe;\n            }\n            if (uVar11 != 3) {\n              return false;\n            }\n            pp_Var4 = (this->dwinfo_->object_->super_Object)._vptr_Object;\n            p_Var5 = pp_Var4[3];\n            if (p_Var5 == Relobj::is_big_endian) {\n              iVar9 = (*pp_Var4[0x3a])();\n              cVar8 = (char)iVar9;\n            }\n            else {\n              iVar9 = (*p_Var5)();\n              cVar8 = (char)iVar9;\n            }\n            uVar7 = *(ushort *)pattr;\n            if (cVar8 != '\0') {\n              uVar7 = CONCAT11(*pattr,pattr[1]);\n            }\n            attr_value.aux.shndx._2_2_ = 0;\n            attr_value.aux.shndx._0_2_ = uVar7;\n            attr_value.val.stringval = (char *)(pattr + 2);\n            pattr = (uchar *)(attr_value.val.stringval + attr_value.aux.shndx);\n          }\n          else {\n            if (uVar11 != 5) {\n              if (uVar11 != 6) {\n                return false;\n              }\n              pp_Var4 = (this->dwinfo_->object_->super_Object)._vptr_Object;\n              p_Var5 = pp_Var4[3];\n              if (p_Var5 == Relobj::is_big_endian) {\n                iVar9 = (*pp_Var4[0x3a])();\n                cVar8 = (char)iVar9;\n              }\n              else {\n                iVar9 = (*p_Var5)();\n                cVar8 = (char)iVar9;\n              }\n              uVar3 = *(uint *)pattr;\n              if (cVar8 != '\0') {\n                uVar3 = uVar3 >> 0x18 | (uVar3 & 0xff0000) >> 8 | (uVar3 & 0xff00) << 8 |\n                        uVar3 << 0x18;\n              }\n              str_off = (off_t)uVar3;\n              pattr = pattr + 4;\n              goto LAB_00302d40;\n            }\n            pp_Var4 = (this->dwinfo_->object_->super_Object)._vptr_Object;\n            p_Var5 = pp_Var4[3];\n            if (p_Var5 == Relobj::is_big_endian) {\n              iVar9 = (*pp_Var4[0x3a])();\n              cVar8 = (char)iVar9;\n            }\n            else {\n              iVar9 = (*p_Var5)();\n              cVar8 = (char)iVar9;\n            }\n            uVar7 = *(ushort *)pattr;\n            if (cVar8 != '\0') {\n              uVar7 = CONCAT11(*pattr,pattr[1]);\n            }\n            pattr = pattr + 2;\n            attr_value.val.intval._2_6_ = 0;\n            attr_value.val.intval._0_2_ = uVar7;\n          }\n          goto joined_r0x00302748;\n        }\n        if (uVar11 == 10) {\n          attr_value.val.stringval = (char *)(pattr + 1);\n          bVar1 = *pattr;\n          pattr = (uchar *)(attr_value.val.stringval + bVar1);\n          attr_value.aux.shndx._1_3_ = 0;\n          attr_value.aux.shndx._0_1_ = bVar1;\n          goto joined_r0x00302748;\n        }\n        if (uVar11 < 0xb) {\n          if (uVar11 != 8) {\n            if (uVar11 != 9) {\n              return false;\n            }\n            goto LAB_00302a09;\n          }\n          attr_value.val.blockval = pattr;\n          len = strlen((char *)pattr);\n          pattr = puVar23 + len + 1;\n          if (uVar2 == 0x31) goto LAB_00302750;\n          if (0x31 < uVar2) {\n            if ((uVar2 != 0x6e) && (uVar2 != 0x2007)) goto LAB_00302750;\n            goto LAB_003029eb;\n          }\n          if ((uVar2 == 1) || (uVar2 != 3)) goto LAB_00302750;\n          goto LAB_003029c7;\n        }\n        if (uVar11 < 0xd) {\n          attr_value.val.intval._1_7_ = 0;\n          attr_value.val.uintval._0_1_ = *pattr;\n          pattr = pattr + 1;\n          goto LAB_00302f92;\n        }\n        bVar1 = *pattr;\n        puVar23 = pattr + 1;\n        if ((char)bVar1 < '\0') {\n          attr_value.val.intval = read_signed_LEB_128_x(puVar23,&len,bVar1);\n          puVar23 = pattr + len;\n        }\n        else {\n          len = 1;\n          attr_value.val.intval._1_7_ = 0;\n          attr_value.val.uintval._0_1_ = bVar1;\n          if ((bVar1 & 0x40) != 0) {\n            attr_value.val.uintval = attr_value.val.uintval | 0xffffffffffffff80;\n          }\n        }\n        pattr = puVar23;\n        if ((uVar2 == 0x31) || (uVar2 < 0x32)) goto LAB_00302750;\n        if ((uVar2 == 0x6e) || (uVar2 == 0x2007)) goto LAB_00302fbe;\n        __position._M_current =\n             (this->attributes_).\n             super__Vector_base<gold::Dwarf_die::Attribute_value,_std::allocator<gold::Dwarf_die::Attribute_value>_>\n             ._M_impl._M_finish;\n        if (__position._M_current ==\n            (this->attributes_).\n            super__Vector_base<gold::Dwarf_die::Attribute_value,_std::allocator<gold::Dwarf_die::Attribute_value>_>\n            ._M_impl._M_end_of_storage) goto LAB_003028c0;\nLAB_0030275e:\n        (__position._M_current)->attr = (int)CONCAT44(attr_value.form,attr_value.attr);\n        (__position._M_current)->form = (int)(CONCAT44(attr_value.form,attr_value.attr) >> 0x20);\n        (__position._M_current)->val = attr_value.val;\n        *(ulong *)&(__position._M_current)->aux = CONCAT44(attr_value._20_4_,attr_value.aux.shndx);\n        (this->attributes_).\n        super__Vector_base<gold::Dwarf_die::Attribute_value,_std::allocator<gold::Dwarf_die::Attribute_value>_>\n        ._M_impl._M_finish = __position._M_current + 1;\n      }\n      lVar25 = lVar25 + 8;\n      pAVar13 = this->abbrev_code_;\n    }" { (expression_statement "puVar17 = (uint *)((long)&((pAVar13->attributes).\n                                 super__Vector_base<gold::Dwarf_abbrev_table::Attribute,_std::allocator<gold::Dwarf_abbrev_table::Attribute>_>\n                                 ._M_impl._M_start)->attr + lVar25);" (assignment_expression "puVar17 = (uint *)((long)&((pAVar13->attributes).\n                                 super__Vector_base<gold::Dwarf_abbrev_table::Attribute,_std::allocator<gold::Dwarf_abbrev_table::Attribute>_>\n                                 ._M_impl._M_start)->attr + lVar25)" identifier = (cast_expression "(uint *)((long)&((pAVar13->attributes).\n                                 super__Vector_base<gold::Dwarf_abbrev_table::Attribute,_std::allocator<gold::Dwarf_abbrev_table::Attribute>_>\n                                 ._M_impl._M_start)->attr + lVar25)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((long)&((pAVar13->attributes).\n                                 super__Vector_base<gold::Dwarf_abbrev_table::Attribute,_std::allocator<gold::Dwarf_abbrev_table::Attribute>_>\n                                 ._M_impl._M_start)->attr + lVar25)" ( (binary_expression "(long)&((pAVar13->attributes).\n                                 super__Vector_base<gold::Dwarf_abbrev_table::Attribute,_std::allocator<gold::Dwarf_abbrev_table::Attribute>_>\n                                 ._M_impl._M_start)->attr + lVar25" (cast_expression "(long)&((pAVar13->attributes).\n                                 super__Vector_base<gold::Dwarf_abbrev_table::Attribute,_std::allocator<gold::Dwarf_abbrev_table::Attribute>_>\n                                 ._M_impl._M_start)->attr" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) (pointer_expression "&((pAVar13->attributes).\n                                 super__Vector_base<gold::Dwarf_abbrev_table::Attribute,_std::allocator<gold::Dwarf_abbrev_table::Attribute>_>\n                                 ._M_impl._M_start)->attr" & (field_expression "((pAVar13->attributes).\n                                 super__Vector_base<gold::Dwarf_abbrev_table::Attribute,_std::allocator<gold::Dwarf_abbrev_table::Attribute>_>\n                                 ._M_impl._M_start)->attr" (parenthesized_expression "((pAVar13->attributes).\n                                 super__Vector_base<gold::Dwarf_abbrev_table::Attribute,_std::allocator<gold::Dwarf_abbrev_table::Attribute>_>\n                                 ._M_impl._M_start)" ( (ERROR "(pAVar13->attributes).\n                                 super__Vector_base<gold::Dwarf_abbrev_table::Attribute,_std::allocator<gold::Dwarf_abbrev_table::" (comma_expression "(pAVar13->attributes).\n                                 super__Vector_base<gold::Dwarf_abbrev_table::Attribute,_std" (binary_expression "(pAVar13->attributes).\n                                 super__Vector_base<gold" (field_expression "(pAVar13->attributes).\n                                 super__Vector_base" (parenthesized_expression "(pAVar13->attributes)" ( (field_expression "pAVar13->attributes" identifier -> field_identifier) )) . field_identifier) < identifier) (ERROR "::Dwarf_abbrev_table::Attribute" : : identifier : : identifier) , identifier) : : (binary_expression "allocator<gold" identifier < identifier) : : identifier : :) (field_expression "Attribute>_>\n                                 ._M_impl._M_start" (field_expression "Attribute>_>\n                                 ._M_impl" (binary_expression "Attribute>_" identifier > identifier) (ERROR ">" >) . field_identifier) . field_identifier) )) -> field_identifier))) + identifier) )))) ;) (expression_statement "uVar11 = puVar17[1];" (assignment_expression "uVar11 = puVar17[1]" identifier = (subscript_expression "puVar17[1]" identifier [ number_literal ])) ;) (expression_statement "uVar2 = *puVar17;" (assignment_expression "uVar2 = *puVar17" identifier = (pointer_expression "*puVar17" * identifier)) ;) (if_statement "if (uVar11 == 0x16) {\n        bVar1 = *pattr;\n        uVar11 = (uint)bVar1;\n        if ((char)bVar1 < '\0') {\n          uVar16 = read_unsigned_LEB_128_x(pattr + 1,&len,bVar1);\n          uVar11 = (uint)uVar16;\n          pattr = pattr + len;\n        }\n        else {\n          len = 1;\n          pattr = pattr + 1;\n        }\n      }" if (parenthesized_expression "(uVar11 == 0x16)" ( (binary_expression "uVar11 == 0x16" identifier == number_literal) )) (compound_statement "{\n        bVar1 = *pattr;\n        uVar11 = (uint)bVar1;\n        if ((char)bVar1 < '\0') {\n          uVar16 = read_unsigned_LEB_128_x(pattr + 1,&len,bVar1);\n          uVar11 = (uint)uVar16;\n          pattr = pattr + len;\n        }\n        else {\n          len = 1;\n          pattr = pattr + 1;\n        }\n      }" { (expression_statement "bVar1 = *pattr;" (assignment_expression "bVar1 = *pattr" identifier = (pointer_expression "*pattr" * identifier)) ;) (expression_statement "uVar11 = (uint)bVar1;" (assignment_expression "uVar11 = (uint)bVar1" identifier = (cast_expression "(uint)bVar1" ( (type_descriptor "uint" type_identifier) ) identifier)) ;) (if_statement "if ((char)bVar1 < '\0') {\n          uVar16 = read_unsigned_LEB_128_x(pattr + 1,&len,bVar1);\n          uVar11 = (uint)uVar16;\n          pattr = pattr + len;\n        }\n        else {\n          len = 1;\n          pattr = pattr + 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          uVar16 = read_unsigned_LEB_128_x(pattr + 1,&len,bVar1);\n          uVar11 = (uint)uVar16;\n          pattr = pattr + len;\n        }" { (expression_statement "uVar16 = read_unsigned_LEB_128_x(pattr + 1,&len,bVar1);" (assignment_expression "uVar16 = read_unsigned_LEB_128_x(pattr + 1,&len,bVar1)" identifier = (call_expression "read_unsigned_LEB_128_x(pattr + 1,&len,bVar1)" identifier (argument_list "(pattr + 1,&len,bVar1)" ( (binary_expression "pattr + 1" identifier + number_literal) , (pointer_expression "&len" & identifier) , identifier )))) ;) (expression_statement "uVar11 = (uint)uVar16;" (assignment_expression "uVar11 = (uint)uVar16" identifier = (cast_expression "(uint)uVar16" ( (type_descriptor "uint" type_identifier) ) identifier)) ;) (expression_statement "pattr = pattr + len;" (assignment_expression "pattr = pattr + len" identifier = (binary_expression "pattr + len" identifier + identifier)) ;) }) (else_clause "else {\n          len = 1;\n          pattr = pattr + 1;\n        }" else (compound_statement "{\n          len = 1;\n          pattr = pattr + 1;\n        }" { (expression_statement "len = 1;" (assignment_expression "len = 1" identifier = number_literal) ;) (expression_statement "pattr = pattr + 1;" (assignment_expression "pattr = pattr + 1" identifier = (binary_expression "pattr + 1" identifier + number_literal)) ;) }))) })) (expression_statement "puVar23 = pattr;" (assignment_expression "puVar23 = pattr" identifier = identifier) ;) (expression_statement "attr_off = pattr + (this->die_offset_ - (long)puVar18);" (assignment_expression "attr_off = pattr + (this->die_offset_ - (long)puVar18)" identifier = (binary_expression "pattr + (this->die_offset_ - (long)puVar18)" identifier + (parenthesized_expression "(this->die_offset_ - (long)puVar18)" ( (binary_expression "this->die_offset_ - (long)puVar18" (field_expression "this->die_offset_" identifier -> field_identifier) - (cast_expression "(long)puVar18" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) identifier)) )))) ;) (expression_statement "attr_value.aux.shndx = 0;" (assignment_expression "attr_value.aux.shndx = 0" (field_expression "attr_value.aux.shndx" (field_expression "attr_value.aux" identifier . field_identifier) . field_identifier) = number_literal) ;) (expression_statement "attr_value.attr = uVar2;" (assignment_expression "attr_value.attr = uVar2" (field_expression "attr_value.attr" identifier . field_identifier) = identifier) ;) (expression_statement "attr_value.form = uVar11;" (assignment_expression "attr_value.form = uVar11" (field_expression "attr_value.form" identifier . field_identifier) = identifier) ;) (if_statement "if (uVar11 == 0xe) {\n        pDVar21 = this->dwinfo_;\n        if (pDVar21->offset_size_ == 4) {\n          VVar12 = Dwarf_info_reader::read_from_pointer<32>(pDVar21,&pattr);\n          str_off = (off_t)VVar12;\n        }\n        else {\n          pp_Var4 = (pDVar21->object_->super_Object)._vptr_Object;\n          p_Var5 = pp_Var4[3];\n          if (p_Var5 == Relobj::is_big_endian) {\n            iVar9 = (*pp_Var4[0x3a])();\n            cVar8 = (char)iVar9;\n          }\n          else {\n            iVar9 = (*p_Var5)();\n            cVar8 = (char)iVar9;\n          }\n          str_off = *(off_t *)pattr;\n          if (cVar8 != '\0') {\n            str_off = (ulong)str_off >> 0x38 | (str_off & 0xff000000000000U) >> 0x28 |\n                      (str_off & 0xff0000000000U) >> 0x18 | (str_off & 0xff00000000U) >> 8 |\n                      (str_off & 0xff000000U) << 8 | (str_off & 0xff0000U) << 0x18 |\n                      (str_off & 0xff00U) << 0x28 | str_off << 0x38;\n          }\n          pattr = pattr + 8;\n        }\n        attr_value.aux.shndx =\n             Dwarf_info_reader::lookup_reloc(this->dwinfo_,(off_t)attr_off,&str_off);\n        attr_value.val.refval = str_off;\n        if (uVar2 != 0x31) {\n          if (uVar2 < 0x32) {\n            if ((uVar2 != 1) && (uVar2 == 3)) {\nLAB_00302f64:\n              this->string_shndx_ = (uint)attr_value.aux;\n              this->name_off_ = (off_t)attr_value.val;\n            }\n          }\n          else if ((uVar2 == 0x6e) || (uVar2 == 0x2007)) {\nLAB_00302fd0:\n            this->string_shndx_ = (uint)attr_value.aux;\n            this->linkage_name_off_ = (off_t)attr_value.val;\n          }\n        }\nLAB_00302750:\n        __position._M_current =\n             (this->attributes_).\n             super__Vector_base<gold::Dwarf_die::Attribute_value,_std::allocator<gold::Dwarf_die::Attribute_value>_>\n             ._M_impl._M_finish;\n        if (__position._M_current !=\n            (this->attributes_).\n            super__Vector_base<gold::Dwarf_die::Attribute_value,_std::allocator<gold::Dwarf_die::Attribute_value>_>\n            ._M_impl._M_end_of_storage) goto LAB_0030275e;\nLAB_003028c0:\n        std::\n        vector<gold::Dwarf_die::Attribute_value,_std::allocator<gold::Dwarf_die::Attribute_value>_>\n        ::_M_realloc_insert<const_gold::Dwarf_die::Attribute_value&>\n                  (&this->attributes_,__position,&attr_value);\n      }\n      else {\n        if (0xe < uVar11) {\n          if (uVar11 == 0x15) {\n            bVar1 = *pattr;\n            aVar15.intval._1_7_ = 0;\n            aVar15.uintval._0_1_ = bVar1;\n            if ((char)bVar1 < '\0') {\n              attr_value.val.uintval = read_unsigned_LEB_128_x(pattr + 1,&len,bVar1);\n              pattr = pattr + len;\n            }\n            else {\n              len = 1;\n              pattr = pattr + 1;\n              attr_value.val = aVar15;\n            }\njoined_r0x00303052:\n            if (uVar2 != 0x31) {\n              if (uVar2 < 0x32) {\nLAB_00302c20:\n                if ((uVar2 == 1) && (attr_value.aux.shndx == 0)) {\n                  this->sibling_offset_ = (off_t)attr_value.val;\n                }\n                goto LAB_00302750;\n              }\n              if ((uVar2 != 0x6e) && (uVar2 != 0x2007)) {\njoined_r0x00302ce3:\n                if (uVar2 == 0x47) {\n                  this->specification_ = (off_t)attr_value.val;\n                }\n                goto LAB_00302750;\n              }\nLAB_00302fb5:\n              if (uVar11 == 8) {\nLAB_003029eb:\n                this->linkage_name_ = (char *)attr_value.val;\n              }\n              else {\nLAB_00302fbe:\n                if (uVar11 == 0xe) goto LAB_00302fd0;\n              }\n              goto LAB_00302750;\n            }\n          }\n          else {\n            if (0x15 < uVar11) {\n              if (uVar11 != 0x19) {\n                if (uVar11 < 0x1a) {\n                  if (uVar11 == 0x17) {\n                    pDVar21 = this->dwinfo_;\n                    if (pDVar21->offset_size_ == 4) {\n                      VVar12 = Dwarf_info_reader::read_from_pointer<32>(pDVar21,&pattr);\n                      str_off = (off_t)VVar12;\n                    }\n                    else {\n                      pRVar22 = pDVar21->object_;\nLAB_00302fe7:\n                      pp_Var4 = (pRVar22->super_Object)._vptr_Object;\n                      p_Var5 = pp_Var4[3];\n                      if (p_Var5 == Relobj::is_big_endian) {\n                        iVar9 = (*pp_Var4[0x3a])();\n                        cVar8 = (char)iVar9;\n                      }\n                      else {\n                        iVar9 = (*p_Var5)();\n                        cVar8 = (char)iVar9;\n                      }\n                      str_off = *(off_t *)pattr;\n                      if (cVar8 != '\0') {\n                        str_off = (ulong)str_off >> 0x38 | (str_off & 0xff000000000000U) >> 0x28 |\n                                  (str_off & 0xff0000000000U) >> 0x18 |\n                                  (str_off & 0xff00000000U) >> 8 | (str_off & 0xff000000U) << 8 |\n                                  (str_off & 0xff0000U) << 0x18 | (str_off & 0xff00U) << 0x28 |\n                                  str_off << 0x38;\n                      }\n                      pattr = pattr + 8;\n                    }\nLAB_00303035:\n                    attr_value.aux.shndx =\n                         Dwarf_info_reader::lookup_reloc(this->dwinfo_,(off_t)attr_off,&str_off);\n                    attr_value.val.refval = str_off;\n                    goto joined_r0x00303052;\n                  }\n                  if (uVar11 != 0x18) {\n                    return false;\n                  }\nLAB_00302a09:\n                  bVar1 = *pattr;\n                  aVar10.shndx._1_3_ = 0;\n                  aVar10.shndx._0_1_ = bVar1;\n                  aVar15.stringval = (char *)(pattr + 1);\n                  if ((char)bVar1 < '\0') {\n                    uVar16 = read_unsigned_LEB_128_x(aVar15.blockval,&len,bVar1);\n                    aVar10.shndx = (uint)uVar16;\n                    aVar15.stringval = (char *)(pattr + len);\n                  }\n                  else {\n                    len = 1;\n                  }\n                  pattr = pattr + aVar10.shndx + len;\n                  attr_value.val = aVar15;\n                  attr_value.aux = aVar10;\n                }\n                else {\n                  if (uVar11 == 0x20) {\n                    pp_Var4 = (this->dwinfo_->object_->super_Object)._vptr_Object;\n                    p_Var5 = pp_Var4[3];\n                    if (p_Var5 == Relobj::is_big_endian) {\n                      iVar9 = (*pp_Var4[0x3a])();\n                      cVar8 = (char)iVar9;\n                    }\n                    else {\n                      iVar9 = (*p_Var5)();\n                      cVar8 = (char)iVar9;\n                    }\n                    /* WARNING: Load size is inaccurate */\n                    attr_value.val.blockval = *pattr;\n                    if (cVar8 != '\0') {\n                      attr_value.val.uintval =\n                           attr_value.val.uintval >> 0x38 |\n                           (attr_value.val.uintval & 0xff000000000000) >> 0x28 |\n                           (attr_value.val.uintval & 0xff0000000000) >> 0x18 |\n                           (attr_value.val.uintval & 0xff00000000) >> 8 |\n                           (attr_value.val.uintval & 0xff000000) << 8 |\n                           (attr_value.val.uintval & 0xff0000) << 0x18 |\n                           (attr_value.val.uintval & 0xff00) << 0x28 |\n                           attr_value.val.uintval << 0x38;\n                    }\n                    pattr = pattr + 8;\n                    goto LAB_00302ea9;\n                  }\n                  if (uVar11 < 0x20) {\n                    return false;\n                  }\n                  if (1 < uVar11 - 0x1f01) {\n                    return false;\n                  }\nLAB_00302bcd:\n                  bVar1 = *pattr;\n                  aVar14.intval._1_7_ = 0;\n                  aVar14.uintval._0_1_ = bVar1;\n                  if ((char)bVar1 < '\0') {\n                    attr_value.val.uintval = read_unsigned_LEB_128_x(pattr + 1,&len,bVar1);\n                    pattr = pattr + len;\n                  }\n                  else {\n                    len = 1;\n                    pattr = pattr + 1;\n                    attr_value.val = aVar14;\n                  }\n                }\nLAB_00302f92:\n                if (uVar2 == 0x31) goto LAB_00302750;\n                if (0x31 < uVar2) {\n                  if ((uVar2 == 0x6e) || (uVar2 == 0x2007)) goto LAB_00302fb5;\n                  goto LAB_00302750;\n                }\n                goto LAB_00302e3e;\n              }\n              attr_value.val.intval = 1;\nLAB_00302ea9:\n              if (((uVar2 == 0x31) || (0x31 < uVar2)) || (uVar2 != 3)) goto LAB_00302750;\nLAB_00302e52:\n              if (uVar11 == 8) {\nLAB_003029c7:\n                this->name_ = (char *)attr_value.val;\n              }\n              else if (uVar11 == 0xe) goto LAB_00302f64;\n              goto LAB_00302750;\n            }\n            if (uVar11 != 0x11) {\n              if (0x11 < uVar11) {\n                if (uVar11 == 0x13) {\n                  VVar12 = Dwarf_info_reader::read_from_pointer<32>(this->dwinfo_,&pattr);\n                  str_off = (off_t)VVar12;\n                  goto LAB_00303035;\n                }\n                if (0x13 < uVar11) {\n                  pRVar22 = this->dwinfo_->object_;\n                  goto LAB_00302fe7;\n                }\n                pp_Var4 = (this->dwinfo_->object_->super_Object)._vptr_Object;\n                p_Var5 = pp_Var4[3];\n                if (p_Var5 == Relobj::is_big_endian) {\n                  iVar9 = (*pp_Var4[0x3a])();\n                  cVar8 = (char)iVar9;\n                }\n                else {\n                  iVar9 = (*p_Var5)();\n                  cVar8 = (char)iVar9;\n                }\n                uVar7 = *(ushort *)pattr;\n                if (cVar8 != '\0') {\n                  uVar7 = CONCAT11(*pattr,pattr[1]);\n                }\n                attr_value.val.intval._2_6_ = 0;\n                attr_value.val.intval._0_2_ = uVar7;\n                pattr = pattr + 2;\n                goto joined_r0x00303052;\n              }\n              if (uVar11 == 0xf) goto LAB_00302bcd;\n              if (uVar11 != 0x10) {\n                return false;\n              }\n              pDVar21 = this->dwinfo_;\n              uVar11 = pDVar21->address_size_;\n              if (2 < pDVar21->cu_version_) {\n                uVar11 = pDVar21->offset_size_;\n              }\n              if (uVar11 != 4) goto LAB_00302a71;\nLAB_00302e7d:\n              VVar12 = Dwarf_info_reader::read_from_pointer<32>(pDVar21,&pattr);\n              str_off = (off_t)VVar12;\nLAB_00302abe:\n              attr_value.aux.shndx =\n                   Dwarf_info_reader::lookup_reloc(this->dwinfo_,(off_t)attr_off,&str_off);\n              attr_value.val.refval = str_off;\n              if (uVar2 == 0x31) goto LAB_00302965;\n              if (0x31 < uVar2) goto joined_r0x00302ccc;\n              goto LAB_00302c20;\n            }\n            puVar23 = pattr + 1;\n            attr_value.val.intval._1_7_ = 0;\n            attr_value.val.uintval._0_1_ = *pattr;\n            pattr = puVar23;\n            if (uVar2 != 0x31) {\n              if (uVar2 < 0x32) {\n                if (uVar2 == 1) {\n                  this->sibling_offset_ = (off_t)attr_value.val;\n                }\n                goto LAB_00302750;\n              }\njoined_r0x00302ccc:\n              if ((uVar2 == 0x6e) || (uVar2 == 0x2007)) goto LAB_00302750;\n              goto joined_r0x00302ce3;\n            }\n          }\nLAB_00302965:\n          this->abstract_origin_ = (off_t)attr_value.val;\n          goto LAB_00302750;\n        }\n        if (uVar11 == 7) {\n          pp_Var4 = (this->dwinfo_->object_->super_Object)._vptr_Object;\n          p_Var5 = pp_Var4[3];\n          if (p_Var5 == Relobj::is_big_endian) {\n            iVar9 = (*pp_Var4[0x3a])();\n            cVar8 = (char)iVar9;\n          }\n          else {\n            iVar9 = (*p_Var5)();\n            cVar8 = (char)iVar9;\n          }\n          str_off = *(off_t *)pattr;\n          if (cVar8 != '\0') {\n            str_off = (ulong)str_off >> 0x38 | (str_off & 0xff000000000000U) >> 0x28 |\n                      (str_off & 0xff0000000000U) >> 0x18 | (str_off & 0xff00000000U) >> 8 |\n                      (str_off & 0xff000000U) << 8 | (str_off & 0xff0000U) << 0x18 |\n                      (str_off & 0xff00U) << 0x28 | str_off << 0x38;\n          }\n          pattr = pattr + 8;\nLAB_00302d40:\n          attr_value.aux.shndx =\n               Dwarf_info_reader::lookup_reloc(this->dwinfo_,(off_t)attr_off,&str_off);\n          attr_value.val.refval = str_off;\njoined_r0x00302748:\n          if ((uVar2 != 0x31) && (uVar2 < 0x32)) {\nLAB_00302e3e:\n            if ((uVar2 != 1) && (uVar2 == 3)) goto LAB_00302e52;\n          }\n          goto LAB_00302750;\n        }\n        if (uVar11 < 8) {\n          if (uVar11 == 4) {\n            pp_Var4 = (this->dwinfo_->object_->super_Object)._vptr_Object;\n            p_Var5 = pp_Var4[3];\n            if (p_Var5 == Relobj::is_big_endian) {\n              iVar9 = (*pp_Var4[0x3a])();\n              cVar8 = (char)iVar9;\n            }\n            else {\n              iVar9 = (*p_Var5)();\n              cVar8 = (char)iVar9;\n            }\n            attr_value.aux.shndx = *(uint *)pattr;\n            if (cVar8 != '\0') {\n              attr_value.aux.shndx =\n                   attr_value.aux.shndx >> 0x18 | (attr_value.aux.shndx & 0xff0000) >> 8 |\n                   (attr_value.aux.shndx & 0xff00) << 8 | attr_value.aux.shndx << 0x18;\n            }\n            attr_value.val.stringval = (char *)(pattr + 4);\n            pattr = (uchar *)(attr_value.val.stringval + attr_value.aux.shndx);\n          }\n          else if (uVar11 < 5) {\n            if (uVar11 == 1) {\n              pDVar21 = this->dwinfo_;\n              if (pDVar21->address_size_ == 4) goto LAB_00302e7d;\nLAB_00302a71:\n              pp_Var4 = (pDVar21->object_->super_Object)._vptr_Object;\n              p_Var5 = pp_Var4[3];\n              if (p_Var5 == Relobj::is_big_endian) {\n                iVar9 = (*pp_Var4[0x3a])();\n                cVar8 = (char)iVar9;\n              }\n              else {\n                iVar9 = (*p_Var5)();\n                cVar8 = (char)iVar9;\n              }\n              str_off = *(off_t *)pattr;\n              if (cVar8 != '\0') {\n                str_off = (ulong)str_off >> 0x38 | (str_off & 0xff000000000000U) >> 0x28 |\n                          (str_off & 0xff0000000000U) >> 0x18 | (str_off & 0xff00000000U) >> 8 |\n                          (str_off & 0xff000000U) << 8 | (str_off & 0xff0000U) << 0x18 |\n                          (str_off & 0xff00U) << 0x28 | str_off << 0x38;\n              }\n              pattr = pattr + 8;\n              goto LAB_00302abe;\n            }\n            if (uVar11 != 3) {\n              return false;\n            }\n            pp_Var4 = (this->dwinfo_->object_->super_Object)._vptr_Object;\n            p_Var5 = pp_Var4[3];\n            if (p_Var5 == Relobj::is_big_endian) {\n              iVar9 = (*pp_Var4[0x3a])();\n              cVar8 = (char)iVar9;\n            }\n            else {\n              iVar9 = (*p_Var5)();\n              cVar8 = (char)iVar9;\n            }\n            uVar7 = *(ushort *)pattr;\n            if (cVar8 != '\0') {\n              uVar7 = CONCAT11(*pattr,pattr[1]);\n            }\n            attr_value.aux.shndx._2_2_ = 0;\n            attr_value.aux.shndx._0_2_ = uVar7;\n            attr_value.val.stringval = (char *)(pattr + 2);\n            pattr = (uchar *)(attr_value.val.stringval + attr_value.aux.shndx);\n          }\n          else {\n            if (uVar11 != 5) {\n              if (uVar11 != 6) {\n                return false;\n              }\n              pp_Var4 = (this->dwinfo_->object_->super_Object)._vptr_Object;\n              p_Var5 = pp_Var4[3];\n              if (p_Var5 == Relobj::is_big_endian) {\n                iVar9 = (*pp_Var4[0x3a])();\n                cVar8 = (char)iVar9;\n              }\n              else {\n                iVar9 = (*p_Var5)();\n                cVar8 = (char)iVar9;\n              }\n              uVar3 = *(uint *)pattr;\n              if (cVar8 != '\0') {\n                uVar3 = uVar3 >> 0x18 | (uVar3 & 0xff0000) >> 8 | (uVar3 & 0xff00) << 8 |\n                        uVar3 << 0x18;\n              }\n              str_off = (off_t)uVar3;\n              pattr = pattr + 4;\n              goto LAB_00302d40;\n            }\n            pp_Var4 = (this->dwinfo_->object_->super_Object)._vptr_Object;\n            p_Var5 = pp_Var4[3];\n            if (p_Var5 == Relobj::is_big_endian) {\n              iVar9 = (*pp_Var4[0x3a])();\n              cVar8 = (char)iVar9;\n            }\n            else {\n              iVar9 = (*p_Var5)();\n              cVar8 = (char)iVar9;\n            }\n            uVar7 = *(ushort *)pattr;\n            if (cVar8 != '\0') {\n              uVar7 = CONCAT11(*pattr,pattr[1]);\n            }\n            pattr = pattr + 2;\n            attr_value.val.intval._2_6_ = 0;\n            attr_value.val.intval._0_2_ = uVar7;\n          }\n          goto joined_r0x00302748;\n        }\n        if (uVar11 == 10) {\n          attr_value.val.stringval = (char *)(pattr + 1);\n          bVar1 = *pattr;\n          pattr = (uchar *)(attr_value.val.stringval + bVar1);\n          attr_value.aux.shndx._1_3_ = 0;\n          attr_value.aux.shndx._0_1_ = bVar1;\n          goto joined_r0x00302748;\n        }\n        if (uVar11 < 0xb) {\n          if (uVar11 != 8) {\n            if (uVar11 != 9) {\n              return false;\n            }\n            goto LAB_00302a09;\n          }\n          attr_value.val.blockval = pattr;\n          len = strlen((char *)pattr);\n          pattr = puVar23 + len + 1;\n          if (uVar2 == 0x31) goto LAB_00302750;\n          if (0x31 < uVar2) {\n            if ((uVar2 != 0x6e) && (uVar2 != 0x2007)) goto LAB_00302750;\n            goto LAB_003029eb;\n          }\n          if ((uVar2 == 1) || (uVar2 != 3)) goto LAB_00302750;\n          goto LAB_003029c7;\n        }\n        if (uVar11 < 0xd) {\n          attr_value.val.intval._1_7_ = 0;\n          attr_value.val.uintval._0_1_ = *pattr;\n          pattr = pattr + 1;\n          goto LAB_00302f92;\n        }\n        bVar1 = *pattr;\n        puVar23 = pattr + 1;\n        if ((char)bVar1 < '\0') {\n          attr_value.val.intval = read_signed_LEB_128_x(puVar23,&len,bVar1);\n          puVar23 = pattr + len;\n        }\n        else {\n          len = 1;\n          attr_value.val.intval._1_7_ = 0;\n          attr_value.val.uintval._0_1_ = bVar1;\n          if ((bVar1 & 0x40) != 0) {\n            attr_value.val.uintval = attr_value.val.uintval | 0xffffffffffffff80;\n          }\n        }\n        pattr = puVar23;\n        if ((uVar2 == 0x31) || (uVar2 < 0x32)) goto LAB_00302750;\n        if ((uVar2 == 0x6e) || (uVar2 == 0x2007)) goto LAB_00302fbe;\n        __position._M_current =\n             (this->attributes_).\n             super__Vector_base<gold::Dwarf_die::Attribute_value,_std::allocator<gold::Dwarf_die::Attribute_value>_>\n             ._M_impl._M_finish;\n        if (__position._M_current ==\n            (this->attributes_).\n            super__Vector_base<gold::Dwarf_die::Attribute_value,_std::allocator<gold::Dwarf_die::Attribute_value>_>\n            ._M_impl._M_end_of_storage) goto LAB_003028c0;\nLAB_0030275e:\n        (__position._M_current)->attr = (int)CONCAT44(attr_value.form,attr_value.attr);\n        (__position._M_current)->form = (int)(CONCAT44(attr_value.form,attr_value.attr) >> 0x20);\n        (__position._M_current)->val = attr_value.val;\n        *(ulong *)&(__position._M_current)->aux = CONCAT44(attr_value._20_4_,attr_value.aux.shndx);\n        (this->attributes_).\n        super__Vector_base<gold::Dwarf_die::Attribute_value,_std::allocator<gold::Dwarf_die::Attribute_value>_>\n        ._M_impl._M_finish = __position._M_current + 1;\n      }" if (parenthesized_expression "(uVar11 == 0xe)" ( (binary_expression "uVar11 == 0xe" identifier == number_literal) )) (compound_statement "{\n        pDVar21 = this->dwinfo_;\n        if (pDVar21->offset_size_ == 4) {\n          VVar12 = Dwarf_info_reader::read_from_pointer<32>(pDVar21,&pattr);\n          str_off = (off_t)VVar12;\n        }\n        else {\n          pp_Var4 = (pDVar21->object_->super_Object)._vptr_Object;\n          p_Var5 = pp_Var4[3];\n          if (p_Var5 == Relobj::is_big_endian) {\n            iVar9 = (*pp_Var4[0x3a])();\n            cVar8 = (char)iVar9;\n          }\n          else {\n            iVar9 = (*p_Var5)();\n            cVar8 = (char)iVar9;\n          }\n          str_off = *(off_t *)pattr;\n          if (cVar8 != '\0') {\n            str_off = (ulong)str_off >> 0x38 | (str_off & 0xff000000000000U) >> 0x28 |\n                      (str_off & 0xff0000000000U) >> 0x18 | (str_off & 0xff00000000U) >> 8 |\n                      (str_off & 0xff000000U) << 8 | (str_off & 0xff0000U) << 0x18 |\n                      (str_off & 0xff00U) << 0x28 | str_off << 0x38;\n          }\n          pattr = pattr + 8;\n        }\n        attr_value.aux.shndx =\n             Dwarf_info_reader::lookup_reloc(this->dwinfo_,(off_t)attr_off,&str_off);\n        attr_value.val.refval = str_off;\n        if (uVar2 != 0x31) {\n          if (uVar2 < 0x32) {\n            if ((uVar2 != 1) && (uVar2 == 3)) {\nLAB_00302f64:\n              this->string_shndx_ = (uint)attr_value.aux;\n              this->name_off_ = (off_t)attr_value.val;\n            }\n          }\n          else if ((uVar2 == 0x6e) || (uVar2 == 0x2007)) {\nLAB_00302fd0:\n            this->string_shndx_ = (uint)attr_value.aux;\n            this->linkage_name_off_ = (off_t)attr_value.val;\n          }\n        }\nLAB_00302750:\n        __position._M_current =\n             (this->attributes_).\n             super__Vector_base<gold::Dwarf_die::Attribute_value,_std::allocator<gold::Dwarf_die::Attribute_value>_>\n             ._M_impl._M_finish;\n        if (__position._M_current !=\n            (this->attributes_).\n            super__Vector_base<gold::Dwarf_die::Attribute_value,_std::allocator<gold::Dwarf_die::Attribute_value>_>\n            ._M_impl._M_end_of_storage) goto LAB_0030275e;\nLAB_003028c0:\n        std::\n        vector<gold::Dwarf_die::Attribute_value,_std::allocator<gold::Dwarf_die::Attribute_value>_>\n        ::_M_realloc_insert<const_gold::Dwarf_die::Attribute_value&>\n                  (&this->attributes_,__position,&attr_value);\n      }" { (expression_statement "pDVar21 = this->dwinfo_;" (assignment_expression "pDVar21 = this->dwinfo_" identifier = (field_expression "this->dwinfo_" identifier -> field_identifier)) ;) (if_statement "if (pDVar21->offset_size_ == 4) {\n          VVar12 = Dwarf_info_reader::read_from_pointer<32>(pDVar21,&pattr);\n          str_off = (off_t)VVar12;\n        }\n        else {\n          pp_Var4 = (pDVar21->object_->super_Object)._vptr_Object;\n          p_Var5 = pp_Var4[3];\n          if (p_Var5 == Relobj::is_big_endian) {\n            iVar9 = (*pp_Var4[0x3a])();\n            cVar8 = (char)iVar9;\n          }\n          else {\n            iVar9 = (*p_Var5)();\n            cVar8 = (char)iVar9;\n          }\n          str_off = *(off_t *)pattr;\n          if (cVar8 != '\0') {\n            str_off = (ulong)str_off >> 0x38 | (str_off & 0xff000000000000U) >> 0x28 |\n                      (str_off & 0xff0000000000U) >> 0x18 | (str_off & 0xff00000000U) >> 8 |\n                      (str_off & 0xff000000U) << 8 | (str_off & 0xff0000U) << 0x18 |\n                      (str_off & 0xff00U) << 0x28 | str_off << 0x38;\n          }\n          pattr = pattr + 8;\n        }" if (parenthesized_expression "(pDVar21->offset_size_ == 4)" ( (binary_expression "pDVar21->offset_size_ == 4" (field_expression "pDVar21->offset_size_" identifier -> field_identifier) == number_literal) )) (compound_statement "{\n          VVar12 = Dwarf_info_reader::read_from_pointer<32>(pDVar21,&pattr);\n          str_off = (off_t)VVar12;\n        }" { (expression_statement "VVar12 = Dwarf_info_reader::read_from_pointer<32>(pDVar21,&pattr);" (binary_expression "VVar12 = Dwarf_info_reader::read_from_pointer<32>(pDVar21,&pattr)" (binary_expression "VVar12 = Dwarf_info_reader::read_from_pointer<32" (assignment_expression "VVar12 = Dwarf_info_reader" identifier = identifier) (ERROR "::read_from_pointer" : : identifier) < number_literal) > (parenthesized_expression "(pDVar21,&pattr)" ( (comma_expression "pDVar21,&pattr" identifier , (pointer_expression "&pattr" & identifier)) ))) ;) (expression_statement "str_off = (off_t)VVar12;" (assignment_expression "str_off = (off_t)VVar12" identifier = (cast_expression "(off_t)VVar12" ( (type_descriptor "off_t" type_identifier) ) identifier)) ;) }) (else_clause "else {\n          pp_Var4 = (pDVar21->object_->super_Object)._vptr_Object;\n          p_Var5 = pp_Var4[3];\n          if (p_Var5 == Relobj::is_big_endian) {\n            iVar9 = (*pp_Var4[0x3a])();\n            cVar8 = (char)iVar9;\n          }\n          else {\n            iVar9 = (*p_Var5)();\n            cVar8 = (char)iVar9;\n          }\n          str_off = *(off_t *)pattr;\n          if (cVar8 != '\0') {\n            str_off = (ulong)str_off >> 0x38 | (str_off & 0xff000000000000U) >> 0x28 |\n                      (str_off & 0xff0000000000U) >> 0x18 | (str_off & 0xff00000000U) >> 8 |\n                      (str_off & 0xff000000U) << 8 | (str_off & 0xff0000U) << 0x18 |\n                      (str_off & 0xff00U) << 0x28 | str_off << 0x38;\n          }\n          pattr = pattr + 8;\n        }" else (compound_statement "{\n          pp_Var4 = (pDVar21->object_->super_Object)._vptr_Object;\n          p_Var5 = pp_Var4[3];\n          if (p_Var5 == Relobj::is_big_endian) {\n            iVar9 = (*pp_Var4[0x3a])();\n            cVar8 = (char)iVar9;\n          }\n          else {\n            iVar9 = (*p_Var5)();\n            cVar8 = (char)iVar9;\n          }\n          str_off = *(off_t *)pattr;\n          if (cVar8 != '\0') {\n            str_off = (ulong)str_off >> 0x38 | (str_off & 0xff000000000000U) >> 0x28 |\n                      (str_off & 0xff0000000000U) >> 0x18 | (str_off & 0xff00000000U) >> 8 |\n                      (str_off & 0xff000000U) << 8 | (str_off & 0xff0000U) << 0x18 |\n                      (str_off & 0xff00U) << 0x28 | str_off << 0x38;\n          }\n          pattr = pattr + 8;\n        }" { (expression_statement "pp_Var4 = (pDVar21->object_->super_Object)._vptr_Object;" (assignment_expression "pp_Var4 = (pDVar21->object_->super_Object)._vptr_Object" identifier = (field_expression "(pDVar21->object_->super_Object)._vptr_Object" (parenthesized_expression "(pDVar21->object_->super_Object)" ( (field_expression "pDVar21->object_->super_Object" (field_expression "pDVar21->object_" identifier -> field_identifier) -> field_identifier) )) . field_identifier)) ;) (expression_statement "p_Var5 = pp_Var4[3];" (assignment_expression "p_Var5 = pp_Var4[3]" identifier = (subscript_expression "pp_Var4[3]" identifier [ number_literal ])) ;) (if_statement "if (p_Var5 == Relobj::is_big_endian) {\n            iVar9 = (*pp_Var4[0x3a])();\n            cVar8 = (char)iVar9;\n          }\n          else {\n            iVar9 = (*p_Var5)();\n            cVar8 = (char)iVar9;\n          }" if (parenthesized_expression "(p_Var5 == Relobj::is_big_endian)" ( (binary_expression "p_Var5 == Relobj" identifier == identifier) (ERROR "::is_big_endian" : : identifier) )) (compound_statement "{\n            iVar9 = (*pp_Var4[0x3a])();\n            cVar8 = (char)iVar9;\n          }" { (expression_statement "iVar9 = (*pp_Var4[0x3a])();" (assignment_expression "iVar9 = (*pp_Var4[0x3a])()" identifier = (call_expression "(*pp_Var4[0x3a])()" (parenthesized_expression "(*pp_Var4[0x3a])" ( (pointer_expression "*pp_Var4[0x3a]" * (subscript_expression "pp_Var4[0x3a]" identifier [ number_literal ])) )) (argument_list "()" ( )))) ;) (expression_statement "cVar8 = (char)iVar9;" (assignment_expression "cVar8 = (char)iVar9" identifier = (cast_expression "(char)iVar9" ( (type_descriptor "char" primitive_type) ) identifier)) ;) }) (else_clause "else {\n            iVar9 = (*p_Var5)();\n            cVar8 = (char)iVar9;\n          }" else (compound_statement "{\n            iVar9 = (*p_Var5)();\n            cVar8 = (char)iVar9;\n          }" { (expression_statement "iVar9 = (*p_Var5)();" (assignment_expression "iVar9 = (*p_Var5)()" identifier = (call_expression "(*p_Var5)()" (parenthesized_expression "(*p_Var5)" ( (pointer_expression "*p_Var5" * identifier) )) (argument_list "()" ( )))) ;) (expression_statement "cVar8 = (char)iVar9;" (assignment_expression "cVar8 = (char)iVar9" identifier = (cast_expression "(char)iVar9" ( (type_descriptor "char" primitive_type) ) identifier)) ;) }))) (expression_statement "str_off = *(off_t *)pattr;" (assignment_expression "str_off = *(off_t *)pattr" identifier = (pointer_expression "*(off_t *)pattr" * (cast_expression "(off_t *)pattr" ( (type_descriptor "off_t *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier))) ;) (if_statement "if (cVar8 != '\0') {\n            str_off = (ulong)str_off >> 0x38 | (str_off & 0xff000000000000U) >> 0x28 |\n                      (str_off & 0xff0000000000U) >> 0x18 | (str_off & 0xff00000000U) >> 8 |\n                      (str_off & 0xff000000U) << 8 | (str_off & 0xff0000U) << 0x18 |\n                      (str_off & 0xff00U) << 0x28 | str_off << 0x38;\n          }" if (parenthesized_expression "(cVar8 != '\0')" ( (binary_expression "cVar8 != '\0'" identifier != (char_literal "'\0'" ' escape_sequence ')) )) (compound_statement "{\n            str_off = (ulong)str_off >> 0x38 | (str_off & 0xff000000000000U) >> 0x28 |\n                      (str_off & 0xff0000000000U) >> 0x18 | (str_off & 0xff00000000U) >> 8 |\n                      (str_off & 0xff000000U) << 8 | (str_off & 0xff0000U) << 0x18 |\n                      (str_off & 0xff00U) << 0x28 | str_off << 0x38;\n          }" { (expression_statement "str_off = (ulong)str_off >> 0x38 | (str_off & 0xff000000000000U) >> 0x28 |\n                      (str_off & 0xff0000000000U) >> 0x18 | (str_off & 0xff00000000U) >> 8 |\n                      (str_off & 0xff000000U) << 8 | (str_off & 0xff0000U) << 0x18 |\n                      (str_off & 0xff00U) << 0x28 | str_off << 0x38;" (assignment_expression "str_off = (ulong)str_off >> 0x38 | (str_off & 0xff000000000000U) >> 0x28 |\n                      (str_off & 0xff0000000000U) >> 0x18 | (str_off & 0xff00000000U) >> 8 |\n                      (str_off & 0xff000000U) << 8 | (str_off & 0xff0000U) << 0x18 |\n                      (str_off & 0xff00U) << 0x28 | str_off << 0x38" identifier = (binary_expression "(ulong)str_off >> 0x38 | (str_off & 0xff000000000000U) >> 0x28 |\n                      (str_off & 0xff0000000000U) >> 0x18 | (str_off & 0xff00000000U) >> 8 |\n                      (str_off & 0xff000000U) << 8 | (str_off & 0xff0000U) << 0x18 |\n                      (str_off & 0xff00U) << 0x28 | str_off << 0x38" (binary_expression "(ulong)str_off >> 0x38 | (str_off & 0xff000000000000U) >> 0x28 |\n                      (str_off & 0xff0000000000U) >> 0x18 | (str_off & 0xff00000000U) >> 8 |\n                      (str_off & 0xff000000U) << 8 | (str_off & 0xff0000U) << 0x18 |\n                      (str_off & 0xff00U) << 0x28" (binary_expression "(ulong)str_off >> 0x38 | (str_off & 0xff000000000000U) >> 0x28 |\n                      (str_off & 0xff0000000000U) >> 0x18 | (str_off & 0xff00000000U) >> 8 |\n                      (str_off & 0xff000000U) << 8 | (str_off & 0xff0000U) << 0x18" (binary_expression "(ulong)str_off >> 0x38 | (str_off & 0xff000000000000U) >> 0x28 |\n                      (str_off & 0xff0000000000U) >> 0x18 | (str_off & 0xff00000000U) >> 8 |\n                      (str_off & 0xff000000U) << 8" (binary_expression "(ulong)str_off >> 0x38 | (str_off & 0xff000000000000U) >> 0x28 |\n                      (str_off & 0xff0000000000U) >> 0x18 | (str_off & 0xff00000000U) >> 8" (binary_expression "(ulong)str_off >> 0x38 | (str_off & 0xff000000000000U) >> 0x28 |\n                      (str_off & 0xff0000000000U) >> 0x18" (binary_expression "(ulong)str_off >> 0x38 | (str_off & 0xff000000000000U) >> 0x28" (binary_expression "(ulong)str_off >> 0x38" (cast_expression "(ulong)str_off" ( (type_descriptor "ulong" type_identifier) ) identifier) >> number_literal) | (binary_expression "(str_off & 0xff000000000000U) >> 0x28" (parenthesized_expression "(str_off & 0xff000000000000U)" ( (binary_expression "str_off & 0xff000000000000U" identifier & number_literal) )) >> number_literal)) | (binary_expression "(str_off & 0xff0000000000U) >> 0x18" (parenthesized_expression "(str_off & 0xff0000000000U)" ( (binary_expression "str_off & 0xff0000000000U" identifier & number_literal) )) >> number_literal)) | (binary_expression "(str_off & 0xff00000000U) >> 8" (parenthesized_expression "(str_off & 0xff00000000U)" ( (binary_expression "str_off & 0xff00000000U" identifier & number_literal) )) >> number_literal)) | (binary_expression "(str_off & 0xff000000U) << 8" (parenthesized_expression "(str_off & 0xff000000U)" ( (binary_expression "str_off & 0xff000000U" identifier & number_literal) )) << number_literal)) | (binary_expression "(str_off & 0xff0000U) << 0x18" (parenthesized_expression "(str_off & 0xff0000U)" ( (binary_expression "str_off & 0xff0000U" identifier & number_literal) )) << number_literal)) | (binary_expression "(str_off & 0xff00U) << 0x28" (parenthesized_expression "(str_off & 0xff00U)" ( (binary_expression "str_off & 0xff00U" identifier & number_literal) )) << number_literal)) | (binary_expression "str_off << 0x38" identifier << number_literal))) ;) })) (expression_statement "pattr = pattr + 8;" (assignment_expression "pattr = pattr + 8" identifier = (binary_expression "pattr + 8" identifier + number_literal)) ;) }))) (ERROR "attr_value.aux.shndx =\n             Dwarf_info_reader::" (assignment_expression "attr_value.aux.shndx =\n             Dwarf_info_reader" (field_expression "attr_value.aux.shndx" (field_expression "attr_value.aux" identifier . field_identifier) . field_identifier) = identifier) : :) (expression_statement "lookup_reloc(this->dwinfo_,(off_t)attr_off,&str_off);" (call_expression "lookup_reloc(this->dwinfo_,(off_t)attr_off,&str_off)" identifier (argument_list "(this->dwinfo_,(off_t)attr_off,&str_off)" ( (field_expression "this->dwinfo_" identifier -> field_identifier) , (cast_expression "(off_t)attr_off" ( (type_descriptor "off_t" type_identifier) ) identifier) , (pointer_expression "&str_off" & identifier) ))) ;) (expression_statement "attr_value.val.refval = str_off;" (assignment_expression "attr_value.val.refval = str_off" (field_expression "attr_value.val.refval" (field_expression "attr_value.val" identifier . field_identifier) . field_identifier) = identifier) ;) (if_statement "if (uVar2 != 0x31) {\n          if (uVar2 < 0x32) {\n            if ((uVar2 != 1) && (uVar2 == 3)) {\nLAB_00302f64:\n              this->string_shndx_ = (uint)attr_value.aux;\n              this->name_off_ = (off_t)attr_value.val;\n            }\n          }\n          else if ((uVar2 == 0x6e) || (uVar2 == 0x2007)) {\nLAB_00302fd0:\n            this->string_shndx_ = (uint)attr_value.aux;\n            this->linkage_name_off_ = (off_t)attr_value.val;\n          }\n        }" if (parenthesized_expression "(uVar2 != 0x31)" ( (binary_expression "uVar2 != 0x31" identifier != number_literal) )) (compound_statement "{\n          if (uVar2 < 0x32) {\n            if ((uVar2 != 1) && (uVar2 == 3)) {\nLAB_00302f64:\n              this->string_shndx_ = (uint)attr_value.aux;\n              this->name_off_ = (off_t)attr_value.val;\n            }\n          }\n          else if ((uVar2 == 0x6e) || (uVar2 == 0x2007)) {\nLAB_00302fd0:\n            this->string_shndx_ = (uint)attr_value.aux;\n            this->linkage_name_off_ = (off_t)attr_value.val;\n          }\n        }" { (if_statement "if (uVar2 < 0x32) {\n            if ((uVar2 != 1) && (uVar2 == 3)) {\nLAB_00302f64:\n              this->string_shndx_ = (uint)attr_value.aux;\n              this->name_off_ = (off_t)attr_value.val;\n            }\n          }\n          else if ((uVar2 == 0x6e) || (uVar2 == 0x2007)) {\nLAB_00302fd0:\n            this->string_shndx_ = (uint)attr_value.aux;\n            this->linkage_name_off_ = (off_t)attr_value.val;\n          }" if (parenthesized_expression "(uVar2 < 0x32)" ( (binary_expression "uVar2 < 0x32" identifier < number_literal) )) (compound_statement "{\n            if ((uVar2 != 1) && (uVar2 == 3)) {\nLAB_00302f64:\n              this->string_shndx_ = (uint)attr_value.aux;\n              this->name_off_ = (off_t)attr_value.val;\n            }\n          }" { (if_statement "if ((uVar2 != 1) && (uVar2 == 3)) {\nLAB_00302f64:\n              this->string_shndx_ = (uint)attr_value.aux;\n              this->name_off_ = (off_t)attr_value.val;\n            }" if (parenthesized_expression "((uVar2 != 1) && (uVar2 == 3))" ( (binary_expression "(uVar2 != 1) && (uVar2 == 3)" (parenthesized_expression "(uVar2 != 1)" ( (binary_expression "uVar2 != 1" identifier != number_literal) )) && (parenthesized_expression "(uVar2 == 3)" ( (binary_expression "uVar2 == 3" identifier == number_literal) ))) )) (compound_statement "{\nLAB_00302f64:\n              this->string_shndx_ = (uint)attr_value.aux;\n              this->name_off_ = (off_t)attr_value.val;\n            }" { (labeled_statement "LAB_00302f64:\n              this->string_shndx_ = (uint)attr_value.aux;" statement_identifier : (expression_statement "this->string_shndx_ = (uint)attr_value.aux;" (assignment_expression "this->string_shndx_ = (uint)attr_value.aux" (field_expression "this->string_shndx_" identifier -> field_identifier) = (cast_expression "(uint)attr_value.aux" ( (type_descriptor "uint" type_identifier) ) (field_expression "attr_value.aux" identifier . field_identifier))) ;)) (expression_statement "this->name_off_ = (off_t)attr_value.val;" (assignment_expression "this->name_off_ = (off_t)attr_value.val" (field_expression "this->name_off_" identifier -> field_identifier) = (cast_expression "(off_t)attr_value.val" ( (type_descriptor "off_t" type_identifier) ) (field_expression "attr_value.val" identifier . field_identifier))) ;) })) }) (else_clause "else if ((uVar2 == 0x6e) || (uVar2 == 0x2007)) {\nLAB_00302fd0:\n            this->string_shndx_ = (uint)attr_value.aux;\n            this->linkage_name_off_ = (off_t)attr_value.val;\n          }" else (if_statement "if ((uVar2 == 0x6e) || (uVar2 == 0x2007)) {\nLAB_00302fd0:\n            this->string_shndx_ = (uint)attr_value.aux;\n            this->linkage_name_off_ = (off_t)attr_value.val;\n          }" if (parenthesized_expression "((uVar2 == 0x6e) || (uVar2 == 0x2007))" ( (binary_expression "(uVar2 == 0x6e) || (uVar2 == 0x2007)" (parenthesized_expression "(uVar2 == 0x6e)" ( (binary_expression "uVar2 == 0x6e" identifier == number_literal) )) || (parenthesized_expression "(uVar2 == 0x2007)" ( (binary_expression "uVar2 == 0x2007" identifier == number_literal) ))) )) (compound_statement "{\nLAB_00302fd0:\n            this->string_shndx_ = (uint)attr_value.aux;\n            this->linkage_name_off_ = (off_t)attr_value.val;\n          }" { (labeled_statement "LAB_00302fd0:\n            this->string_shndx_ = (uint)attr_value.aux;" statement_identifier : (expression_statement "this->string_shndx_ = (uint)attr_value.aux;" (assignment_expression "this->string_shndx_ = (uint)attr_value.aux" (field_expression "this->string_shndx_" identifier -> field_identifier) = (cast_expression "(uint)attr_value.aux" ( (type_descriptor "uint" type_identifier) ) (field_expression "attr_value.aux" identifier . field_identifier))) ;)) (expression_statement "this->linkage_name_off_ = (off_t)attr_value.val;" (assignment_expression "this->linkage_name_off_ = (off_t)attr_value.val" (field_expression "this->linkage_name_off_" identifier -> field_identifier) = (cast_expression "(off_t)attr_value.val" ( (type_descriptor "off_t" type_identifier) ) (field_expression "attr_value.val" identifier . field_identifier))) ;) })))) })) (labeled_statement "LAB_00302750:\n        __position._M_current =\n             (this->attributes_).\n             super__Vector_base<gold::Dwarf_die::Attribute_value,_std::allocator<gold::Dwarf_die::Attribute_value>_>\n             ._M_impl._M_finish;" statement_identifier : (ERROR "__position._M_current =\n             (this->attributes_).\n             super__Vector_base<gold::Dwarf_die::Attribute_value,_std::allocator<gold::" (comma_expression "__position._M_current =\n             (this->attributes_).\n             super__Vector_base<gold::Dwarf_die::Attribute_value,_std" (assignment_expression "__position._M_current =\n             (this->attributes_).\n             super__Vector_base<gold" (field_expression "__position._M_current" identifier . field_identifier) = (binary_expression "(this->attributes_).\n             super__Vector_base<gold" (field_expression "(this->attributes_).\n             super__Vector_base" (parenthesized_expression "(this->attributes_)" ( (field_expression "this->attributes_" identifier -> field_identifier) )) . field_identifier) < identifier)) (ERROR "::Dwarf_die::Attribute_value" : : identifier : : identifier) , identifier) : : (binary_expression "allocator<gold" identifier < identifier) : :) (labeled_statement "Dwarf_die::Attribute_value>_>\n             ._M_impl._M_finish;" statement_identifier : (ERROR ":" :) (expression_statement "Attribute_value>_>\n             ._M_impl._M_finish;" (field_expression "Attribute_value>_>\n             ._M_impl._M_finish" (field_expression "Attribute_value>_>\n             ._M_impl" (binary_expression "Attribute_value>_" identifier > identifier) (ERROR ">" >) . field_identifier) . field_identifier) ;))) (if_statement "if (__position._M_current !=\n            (this->attributes_).\n            super__Vector_base<gold::Dwarf_die::Attribute_value,_std::allocator<gold::Dwarf_die::Attribute_value>_>\n            ._M_impl._M_end_of_storage) goto LAB_0030275e;" if (parenthesized_expression "(__position._M_current !=\n            (this->attributes_).\n            super__Vector_base<gold::Dwarf_die::Attribute_value,_std::allocator<gold::Dwarf_die::Attribute_value>_>\n            ._M_impl._M_end_of_storage)" ( (ERROR "__position._M_current !=\n            (this->attributes_).\n            super__Vector_base<gold::Dwarf_die::Attribute_value,_std::allocator<gold::Dwarf_die::" (comma_expression "__position._M_current !=\n            (this->attributes_).\n            super__Vector_base<gold::Dwarf_die::Attribute_value,_std" (binary_expression "__position._M_current !=\n            (this->attributes_).\n            super__Vector_base<gold" (field_expression "__position._M_current" identifier . field_identifier) != (binary_expression "(this->attributes_).\n            super__Vector_base<gold" (field_expression "(this->attributes_).\n            super__Vector_base" (parenthesized_expression "(this->attributes_)" ( (field_expression "this->attributes_" identifier -> field_identifier) )) . field_identifier) < identifier)) (ERROR "::Dwarf_die::Attribute_value" : : identifier : : identifier) , identifier) : : (binary_expression "allocator<gold" identifier < identifier) : : identifier : :) (field_expression "Attribute_value>_>\n            ._M_impl._M_end_of_storage" (field_expression "Attribute_value>_>\n            ._M_impl" (binary_expression "Attribute_value>_" identifier > identifier) (ERROR ">" >) . field_identifier) . field_identifier) )) (goto_statement "goto LAB_0030275e;" goto statement_identifier ;)) (labeled_statement "LAB_003028c0:\n        std::\n        vector<gold::Dwarf_die::Attribute_value,_std::allocator<gold::Dwarf_die::Attribute_value>_>\n        ::_M_realloc_insert<const_gold::Dwarf_die::Attribute_value&>\n                  (&this->attributes_,__position,&attr_value);" statement_identifier : (labeled_statement "std::\n        vector<gold::Dwarf_die::Attribute_value,_std::allocator<gold::Dwarf_die::Attribute_value>_>\n        ::_M_realloc_insert<const_gold::Dwarf_die::Attribute_value&>\n                  (&this->attributes_,__position,&attr_value);" statement_identifier (ERROR "::\n        vector<gold:" : : (binary_expression "vector<gold" identifier < identifier) :) : (labeled_statement "Dwarf_die::Attribute_value,_std::allocator<gold::Dwarf_die::Attribute_value>_>\n        ::_M_realloc_insert<const_gold::Dwarf_die::Attribute_value&>\n                  (&this->attributes_,__position,&attr_value);" statement_identifier (ERROR "::Attribute_value,_std::allocator<gold:" : : (comma_expression "Attribute_value,_std" identifier , identifier) : : (binary_expression "allocator<gold" identifier < identifier) :) : (labeled_statement "Dwarf_die::Attribute_value>_>\n        ::_M_realloc_insert<const_gold::Dwarf_die::Attribute_value&>\n                  (&this->attributes_,__position,&attr_value);" statement_identifier (ERROR "::Attribute_value>_>\n        ::_M_realloc_insert<const_gold:" : : (binary_expression "Attribute_value>_" identifier > identifier) > : : (binary_expression "_M_realloc_insert<const_gold" identifier < identifier) :) : (labeled_statement "Dwarf_die::Attribute_value&>\n                  (&this->attributes_,__position,&attr_value);" statement_identifier : (ERROR ":" :) (expression_statement "Attribute_value&>\n                  (&this->attributes_,__position,&attr_value);" (binary_expression "Attribute_value&>\n                  (&this->attributes_,__position,&attr_value)" identifier (ERROR "&" &) > (parenthesized_expression "(&this->attributes_,__position,&attr_value)" ( (comma_expression "&this->attributes_,__position,&attr_value" (pointer_expression "&this->attributes_" & (field_expression "this->attributes_" identifier -> field_identifier)) , (comma_expression "__position,&attr_value" identifier , (pointer_expression "&attr_value" & identifier))) ))) ;)))))) }) (else_clause "else {\n        if (0xe < uVar11) {\n          if (uVar11 == 0x15) {\n            bVar1 = *pattr;\n            aVar15.intval._1_7_ = 0;\n            aVar15.uintval._0_1_ = bVar1;\n            if ((char)bVar1 < '\0') {\n              attr_value.val.uintval = read_unsigned_LEB_128_x(pattr + 1,&len,bVar1);\n              pattr = pattr + len;\n            }\n            else {\n              len = 1;\n              pattr = pattr + 1;\n              attr_value.val = aVar15;\n            }\njoined_r0x00303052:\n            if (uVar2 != 0x31) {\n              if (uVar2 < 0x32) {\nLAB_00302c20:\n                if ((uVar2 == 1) && (attr_value.aux.shndx == 0)) {\n                  this->sibling_offset_ = (off_t)attr_value.val;\n                }\n                goto LAB_00302750;\n              }\n              if ((uVar2 != 0x6e) && (uVar2 != 0x2007)) {\njoined_r0x00302ce3:\n                if (uVar2 == 0x47) {\n                  this->specification_ = (off_t)attr_value.val;\n                }\n                goto LAB_00302750;\n              }\nLAB_00302fb5:\n              if (uVar11 == 8) {\nLAB_003029eb:\n                this->linkage_name_ = (char *)attr_value.val;\n              }\n              else {\nLAB_00302fbe:\n                if (uVar11 == 0xe) goto LAB_00302fd0;\n              }\n              goto LAB_00302750;\n            }\n          }\n          else {\n            if (0x15 < uVar11) {\n              if (uVar11 != 0x19) {\n                if (uVar11 < 0x1a) {\n                  if (uVar11 == 0x17) {\n                    pDVar21 = this->dwinfo_;\n                    if (pDVar21->offset_size_ == 4) {\n                      VVar12 = Dwarf_info_reader::read_from_pointer<32>(pDVar21,&pattr);\n                      str_off = (off_t)VVar12;\n                    }\n                    else {\n                      pRVar22 = pDVar21->object_;\nLAB_00302fe7:\n                      pp_Var4 = (pRVar22->super_Object)._vptr_Object;\n                      p_Var5 = pp_Var4[3];\n                      if (p_Var5 == Relobj::is_big_endian) {\n                        iVar9 = (*pp_Var4[0x3a])();\n                        cVar8 = (char)iVar9;\n                      }\n                      else {\n                        iVar9 = (*p_Var5)();\n                        cVar8 = (char)iVar9;\n                      }\n                      str_off = *(off_t *)pattr;\n                      if (cVar8 != '\0') {\n                        str_off = (ulong)str_off >> 0x38 | (str_off & 0xff000000000000U) >> 0x28 |\n                                  (str_off & 0xff0000000000U) >> 0x18 |\n                                  (str_off & 0xff00000000U) >> 8 | (str_off & 0xff000000U) << 8 |\n                                  (str_off & 0xff0000U) << 0x18 | (str_off & 0xff00U) << 0x28 |\n                                  str_off << 0x38;\n                      }\n                      pattr = pattr + 8;\n                    }\nLAB_00303035:\n                    attr_value.aux.shndx =\n                         Dwarf_info_reader::lookup_reloc(this->dwinfo_,(off_t)attr_off,&str_off);\n                    attr_value.val.refval = str_off;\n                    goto joined_r0x00303052;\n                  }\n                  if (uVar11 != 0x18) {\n                    return false;\n                  }\nLAB_00302a09:\n                  bVar1 = *pattr;\n                  aVar10.shndx._1_3_ = 0;\n                  aVar10.shndx._0_1_ = bVar1;\n                  aVar15.stringval = (char *)(pattr + 1);\n                  if ((char)bVar1 < '\0') {\n                    uVar16 = read_unsigned_LEB_128_x(aVar15.blockval,&len,bVar1);\n                    aVar10.shndx = (uint)uVar16;\n                    aVar15.stringval = (char *)(pattr + len);\n                  }\n                  else {\n                    len = 1;\n                  }\n                  pattr = pattr + aVar10.shndx + len;\n                  attr_value.val = aVar15;\n                  attr_value.aux = aVar10;\n                }\n                else {\n                  if (uVar11 == 0x20) {\n                    pp_Var4 = (this->dwinfo_->object_->super_Object)._vptr_Object;\n                    p_Var5 = pp_Var4[3];\n                    if (p_Var5 == Relobj::is_big_endian) {\n                      iVar9 = (*pp_Var4[0x3a])();\n                      cVar8 = (char)iVar9;\n                    }\n                    else {\n                      iVar9 = (*p_Var5)();\n                      cVar8 = (char)iVar9;\n                    }\n                    /* WARNING: Load size is inaccurate */\n                    attr_value.val.blockval = *pattr;\n                    if (cVar8 != '\0') {\n                      attr_value.val.uintval =\n                           attr_value.val.uintval >> 0x38 |\n                           (attr_value.val.uintval & 0xff000000000000) >> 0x28 |\n                           (attr_value.val.uintval & 0xff0000000000) >> 0x18 |\n                           (attr_value.val.uintval & 0xff00000000) >> 8 |\n                           (attr_value.val.uintval & 0xff000000) << 8 |\n                           (attr_value.val.uintval & 0xff0000) << 0x18 |\n                           (attr_value.val.uintval & 0xff00) << 0x28 |\n                           attr_value.val.uintval << 0x38;\n                    }\n                    pattr = pattr + 8;\n                    goto LAB_00302ea9;\n                  }\n                  if (uVar11 < 0x20) {\n                    return false;\n                  }\n                  if (1 < uVar11 - 0x1f01) {\n                    return false;\n                  }\nLAB_00302bcd:\n                  bVar1 = *pattr;\n                  aVar14.intval._1_7_ = 0;\n                  aVar14.uintval._0_1_ = bVar1;\n                  if ((char)bVar1 < '\0') {\n                    attr_value.val.uintval = read_unsigned_LEB_128_x(pattr + 1,&len,bVar1);\n                    pattr = pattr + len;\n                  }\n                  else {\n                    len = 1;\n                    pattr = pattr + 1;\n                    attr_value.val = aVar14;\n                  }\n                }\nLAB_00302f92:\n                if (uVar2 == 0x31) goto LAB_00302750;\n                if (0x31 < uVar2) {\n                  if ((uVar2 == 0x6e) || (uVar2 == 0x2007)) goto LAB_00302fb5;\n                  goto LAB_00302750;\n                }\n                goto LAB_00302e3e;\n              }\n              attr_value.val.intval = 1;\nLAB_00302ea9:\n              if (((uVar2 == 0x31) || (0x31 < uVar2)) || (uVar2 != 3)) goto LAB_00302750;\nLAB_00302e52:\n              if (uVar11 == 8) {\nLAB_003029c7:\n                this->name_ = (char *)attr_value.val;\n              }\n              else if (uVar11 == 0xe) goto LAB_00302f64;\n              goto LAB_00302750;\n            }\n            if (uVar11 != 0x11) {\n              if (0x11 < uVar11) {\n                if (uVar11 == 0x13) {\n                  VVar12 = Dwarf_info_reader::read_from_pointer<32>(this->dwinfo_,&pattr);\n                  str_off = (off_t)VVar12;\n                  goto LAB_00303035;\n                }\n                if (0x13 < uVar11) {\n                  pRVar22 = this->dwinfo_->object_;\n                  goto LAB_00302fe7;\n                }\n                pp_Var4 = (this->dwinfo_->object_->super_Object)._vptr_Object;\n                p_Var5 = pp_Var4[3];\n                if (p_Var5 == Relobj::is_big_endian) {\n                  iVar9 = (*pp_Var4[0x3a])();\n                  cVar8 = (char)iVar9;\n                }\n                else {\n                  iVar9 = (*p_Var5)();\n                  cVar8 = (char)iVar9;\n                }\n                uVar7 = *(ushort *)pattr;\n                if (cVar8 != '\0') {\n                  uVar7 = CONCAT11(*pattr,pattr[1]);\n                }\n                attr_value.val.intval._2_6_ = 0;\n                attr_value.val.intval._0_2_ = uVar7;\n                pattr = pattr + 2;\n                goto joined_r0x00303052;\n              }\n              if (uVar11 == 0xf) goto LAB_00302bcd;\n              if (uVar11 != 0x10) {\n                return false;\n              }\n              pDVar21 = this->dwinfo_;\n              uVar11 = pDVar21->address_size_;\n              if (2 < pDVar21->cu_version_) {\n                uVar11 = pDVar21->offset_size_;\n              }\n              if (uVar11 != 4) goto LAB_00302a71;\nLAB_00302e7d:\n              VVar12 = Dwarf_info_reader::read_from_pointer<32>(pDVar21,&pattr);\n              str_off = (off_t)VVar12;\nLAB_00302abe:\n              attr_value.aux.shndx =\n                   Dwarf_info_reader::lookup_reloc(this->dwinfo_,(off_t)attr_off,&str_off);\n              attr_value.val.refval = str_off;\n              if (uVar2 == 0x31) goto LAB_00302965;\n              if (0x31 < uVar2) goto joined_r0x00302ccc;\n              goto LAB_00302c20;\n            }\n            puVar23 = pattr + 1;\n            attr_value.val.intval._1_7_ = 0;\n            attr_value.val.uintval._0_1_ = *pattr;\n            pattr = puVar23;\n            if (uVar2 != 0x31) {\n              if (uVar2 < 0x32) {\n                if (uVar2 == 1) {\n                  this->sibling_offset_ = (off_t)attr_value.val;\n                }\n                goto LAB_00302750;\n              }\njoined_r0x00302ccc:\n              if ((uVar2 == 0x6e) || (uVar2 == 0x2007)) goto LAB_00302750;\n              goto joined_r0x00302ce3;\n            }\n          }\nLAB_00302965:\n          this->abstract_origin_ = (off_t)attr_value.val;\n          goto LAB_00302750;\n        }\n        if (uVar11 == 7) {\n          pp_Var4 = (this->dwinfo_->object_->super_Object)._vptr_Object;\n          p_Var5 = pp_Var4[3];\n          if (p_Var5 == Relobj::is_big_endian) {\n            iVar9 = (*pp_Var4[0x3a])();\n            cVar8 = (char)iVar9;\n          }\n          else {\n            iVar9 = (*p_Var5)();\n            cVar8 = (char)iVar9;\n          }\n          str_off = *(off_t *)pattr;\n          if (cVar8 != '\0') {\n            str_off = (ulong)str_off >> 0x38 | (str_off & 0xff000000000000U) >> 0x28 |\n                      (str_off & 0xff0000000000U) >> 0x18 | (str_off & 0xff00000000U) >> 8 |\n                      (str_off & 0xff000000U) << 8 | (str_off & 0xff0000U) << 0x18 |\n                      (str_off & 0xff00U) << 0x28 | str_off << 0x38;\n          }\n          pattr = pattr + 8;\nLAB_00302d40:\n          attr_value.aux.shndx =\n               Dwarf_info_reader::lookup_reloc(this->dwinfo_,(off_t)attr_off,&str_off);\n          attr_value.val.refval = str_off;\njoined_r0x00302748:\n          if ((uVar2 != 0x31) && (uVar2 < 0x32)) {\nLAB_00302e3e:\n            if ((uVar2 != 1) && (uVar2 == 3)) goto LAB_00302e52;\n          }\n          goto LAB_00302750;\n        }\n        if (uVar11 < 8) {\n          if (uVar11 == 4) {\n            pp_Var4 = (this->dwinfo_->object_->super_Object)._vptr_Object;\n            p_Var5 = pp_Var4[3];\n            if (p_Var5 == Relobj::is_big_endian) {\n              iVar9 = (*pp_Var4[0x3a])();\n              cVar8 = (char)iVar9;\n            }\n            else {\n              iVar9 = (*p_Var5)();\n              cVar8 = (char)iVar9;\n            }\n            attr_value.aux.shndx = *(uint *)pattr;\n            if (cVar8 != '\0') {\n              attr_value.aux.shndx =\n                   attr_value.aux.shndx >> 0x18 | (attr_value.aux.shndx & 0xff0000) >> 8 |\n                   (attr_value.aux.shndx & 0xff00) << 8 | attr_value.aux.shndx << 0x18;\n            }\n            attr_value.val.stringval = (char *)(pattr + 4);\n            pattr = (uchar *)(attr_value.val.stringval + attr_value.aux.shndx);\n          }\n          else if (uVar11 < 5) {\n            if (uVar11 == 1) {\n              pDVar21 = this->dwinfo_;\n              if (pDVar21->address_size_ == 4) goto LAB_00302e7d;\nLAB_00302a71:\n              pp_Var4 = (pDVar21->object_->super_Object)._vptr_Object;\n              p_Var5 = pp_Var4[3];\n              if (p_Var5 == Relobj::is_big_endian) {\n                iVar9 = (*pp_Var4[0x3a])();\n                cVar8 = (char)iVar9;\n              }\n              else {\n                iVar9 = (*p_Var5)();\n                cVar8 = (char)iVar9;\n              }\n              str_off = *(off_t *)pattr;\n              if (cVar8 != '\0') {\n                str_off = (ulong)str_off >> 0x38 | (str_off & 0xff000000000000U) >> 0x28 |\n                          (str_off & 0xff0000000000U) >> 0x18 | (str_off & 0xff00000000U) >> 8 |\n                          (str_off & 0xff000000U) << 8 | (str_off & 0xff0000U) << 0x18 |\n                          (str_off & 0xff00U) << 0x28 | str_off << 0x38;\n              }\n              pattr = pattr + 8;\n              goto LAB_00302abe;\n            }\n            if (uVar11 != 3) {\n              return false;\n            }\n            pp_Var4 = (this->dwinfo_->object_->super_Object)._vptr_Object;\n            p_Var5 = pp_Var4[3];\n            if (p_Var5 == Relobj::is_big_endian) {\n              iVar9 = (*pp_Var4[0x3a])();\n              cVar8 = (char)iVar9;\n            }\n            else {\n              iVar9 = (*p_Var5)();\n              cVar8 = (char)iVar9;\n            }\n            uVar7 = *(ushort *)pattr;\n            if (cVar8 != '\0') {\n              uVar7 = CONCAT11(*pattr,pattr[1]);\n            }\n            attr_value.aux.shndx._2_2_ = 0;\n            attr_value.aux.shndx._0_2_ = uVar7;\n            attr_value.val.stringval = (char *)(pattr + 2);\n            pattr = (uchar *)(attr_value.val.stringval + attr_value.aux.shndx);\n          }\n          else {\n            if (uVar11 != 5) {\n              if (uVar11 != 6) {\n                return false;\n              }\n              pp_Var4 = (this->dwinfo_->object_->super_Object)._vptr_Object;\n              p_Var5 = pp_Var4[3];\n              if (p_Var5 == Relobj::is_big_endian) {\n                iVar9 = (*pp_Var4[0x3a])();\n                cVar8 = (char)iVar9;\n              }\n              else {\n                iVar9 = (*p_Var5)();\n                cVar8 = (char)iVar9;\n              }\n              uVar3 = *(uint *)pattr;\n              if (cVar8 != '\0') {\n                uVar3 = uVar3 >> 0x18 | (uVar3 & 0xff0000) >> 8 | (uVar3 & 0xff00) << 8 |\n                        uVar3 << 0x18;\n              }\n              str_off = (off_t)uVar3;\n              pattr = pattr + 4;\n              goto LAB_00302d40;\n            }\n            pp_Var4 = (this->dwinfo_->object_->super_Object)._vptr_Object;\n            p_Var5 = pp_Var4[3];\n            if (p_Var5 == Relobj::is_big_endian) {\n              iVar9 = (*pp_Var4[0x3a])();\n              cVar8 = (char)iVar9;\n            }\n            else {\n              iVar9 = (*p_Var5)();\n              cVar8 = (char)iVar9;\n            }\n            uVar7 = *(ushort *)pattr;\n            if (cVar8 != '\0') {\n              uVar7 = CONCAT11(*pattr,pattr[1]);\n            }\n            pattr = pattr + 2;\n            attr_value.val.intval._2_6_ = 0;\n            attr_value.val.intval._0_2_ = uVar7;\n          }\n          goto joined_r0x00302748;\n        }\n        if (uVar11 == 10) {\n          attr_value.val.stringval = (char *)(pattr + 1);\n          bVar1 = *pattr;\n          pattr = (uchar *)(attr_value.val.stringval + bVar1);\n          attr_value.aux.shndx._1_3_ = 0;\n          attr_value.aux.shndx._0_1_ = bVar1;\n          goto joined_r0x00302748;\n        }\n        if (uVar11 < 0xb) {\n          if (uVar11 != 8) {\n            if (uVar11 != 9) {\n              return false;\n            }\n            goto LAB_00302a09;\n          }\n          attr_value.val.blockval = pattr;\n          len = strlen((char *)pattr);\n          pattr = puVar23 + len + 1;\n          if (uVar2 == 0x31) goto LAB_00302750;\n          if (0x31 < uVar2) {\n            if ((uVar2 != 0x6e) && (uVar2 != 0x2007)) goto LAB_00302750;\n            goto LAB_003029eb;\n          }\n          if ((uVar2 == 1) || (uVar2 != 3)) goto LAB_00302750;\n          goto LAB_003029c7;\n        }\n        if (uVar11 < 0xd) {\n          attr_value.val.intval._1_7_ = 0;\n          attr_value.val.uintval._0_1_ = *pattr;\n          pattr = pattr + 1;\n          goto LAB_00302f92;\n        }\n        bVar1 = *pattr;\n        puVar23 = pattr + 1;\n        if ((char)bVar1 < '\0') {\n          attr_value.val.intval = read_signed_LEB_128_x(puVar23,&len,bVar1);\n          puVar23 = pattr + len;\n        }\n        else {\n          len = 1;\n          attr_value.val.intval._1_7_ = 0;\n          attr_value.val.uintval._0_1_ = bVar1;\n          if ((bVar1 & 0x40) != 0) {\n            attr_value.val.uintval = attr_value.val.uintval | 0xffffffffffffff80;\n          }\n        }\n        pattr = puVar23;\n        if ((uVar2 == 0x31) || (uVar2 < 0x32)) goto LAB_00302750;\n        if ((uVar2 == 0x6e) || (uVar2 == 0x2007)) goto LAB_00302fbe;\n        __position._M_current =\n             (this->attributes_).\n             super__Vector_base<gold::Dwarf_die::Attribute_value,_std::allocator<gold::Dwarf_die::Attribute_value>_>\n             ._M_impl._M_finish;\n        if (__position._M_current ==\n            (this->attributes_).\n            super__Vector_base<gold::Dwarf_die::Attribute_value,_std::allocator<gold::Dwarf_die::Attribute_value>_>\n            ._M_impl._M_end_of_storage) goto LAB_003028c0;\nLAB_0030275e:\n        (__position._M_current)->attr = (int)CONCAT44(attr_value.form,attr_value.attr);\n        (__position._M_current)->form = (int)(CONCAT44(attr_value.form,attr_value.attr) >> 0x20);\n        (__position._M_current)->val = attr_value.val;\n        *(ulong *)&(__position._M_current)->aux = CONCAT44(attr_value._20_4_,attr_value.aux.shndx);\n        (this->attributes_).\n        super__Vector_base<gold::Dwarf_die::Attribute_value,_std::allocator<gold::Dwarf_die::Attribute_value>_>\n        ._M_impl._M_finish = __position._M_current + 1;\n      }" else (compound_statement "{\n        if (0xe < uVar11) {\n          if (uVar11 == 0x15) {\n            bVar1 = *pattr;\n            aVar15.intval._1_7_ = 0;\n            aVar15.uintval._0_1_ = bVar1;\n            if ((char)bVar1 < '\0') {\n              attr_value.val.uintval = read_unsigned_LEB_128_x(pattr + 1,&len,bVar1);\n              pattr = pattr + len;\n            }\n            else {\n              len = 1;\n              pattr = pattr + 1;\n              attr_value.val = aVar15;\n            }\njoined_r0x00303052:\n            if (uVar2 != 0x31) {\n              if (uVar2 < 0x32) {\nLAB_00302c20:\n                if ((uVar2 == 1) && (attr_value.aux.shndx == 0)) {\n                  this->sibling_offset_ = (off_t)attr_value.val;\n                }\n                goto LAB_00302750;\n              }\n              if ((uVar2 != 0x6e) && (uVar2 != 0x2007)) {\njoined_r0x00302ce3:\n                if (uVar2 == 0x47) {\n                  this->specification_ = (off_t)attr_value.val;\n                }\n                goto LAB_00302750;\n              }\nLAB_00302fb5:\n              if (uVar11 == 8) {\nLAB_003029eb:\n                this->linkage_name_ = (char *)attr_value.val;\n              }\n              else {\nLAB_00302fbe:\n                if (uVar11 == 0xe) goto LAB_00302fd0;\n              }\n              goto LAB_00302750;\n            }\n          }\n          else {\n            if (0x15 < uVar11) {\n              if (uVar11 != 0x19) {\n                if (uVar11 < 0x1a) {\n                  if (uVar11 == 0x17) {\n                    pDVar21 = this->dwinfo_;\n                    if (pDVar21->offset_size_ == 4) {\n                      VVar12 = Dwarf_info_reader::read_from_pointer<32>(pDVar21,&pattr);\n                      str_off = (off_t)VVar12;\n                    }\n                    else {\n                      pRVar22 = pDVar21->object_;\nLAB_00302fe7:\n                      pp_Var4 = (pRVar22->super_Object)._vptr_Object;\n                      p_Var5 = pp_Var4[3];\n                      if (p_Var5 == Relobj::is_big_endian) {\n                        iVar9 = (*pp_Var4[0x3a])();\n                        cVar8 = (char)iVar9;\n                      }\n                      else {\n                        iVar9 = (*p_Var5)();\n                        cVar8 = (char)iVar9;\n                      }\n                      str_off = *(off_t *)pattr;\n                      if (cVar8 != '\0') {\n                        str_off = (ulong)str_off >> 0x38 | (str_off & 0xff000000000000U) >> 0x28 |\n                                  (str_off & 0xff0000000000U) >> 0x18 |\n                                  (str_off & 0xff00000000U) >> 8 | (str_off & 0xff000000U) << 8 |\n                                  (str_off & 0xff0000U) << 0x18 | (str_off & 0xff00U) << 0x28 |\n                                  str_off << 0x38;\n                      }\n                      pattr = pattr + 8;\n                    }\nLAB_00303035:\n                    attr_value.aux.shndx =\n                         Dwarf_info_reader::lookup_reloc(this->dwinfo_,(off_t)attr_off,&str_off);\n                    attr_value.val.refval = str_off;\n                    goto joined_r0x00303052;\n                  }\n                  if (uVar11 != 0x18) {\n                    return false;\n                  }\nLAB_00302a09:\n                  bVar1 = *pattr;\n                  aVar10.shndx._1_3_ = 0;\n                  aVar10.shndx._0_1_ = bVar1;\n                  aVar15.stringval = (char *)(pattr + 1);\n                  if ((char)bVar1 < '\0') {\n                    uVar16 = read_unsigned_LEB_128_x(aVar15.blockval,&len,bVar1);\n                    aVar10.shndx = (uint)uVar16;\n                    aVar15.stringval = (char *)(pattr + len);\n                  }\n                  else {\n                    len = 1;\n                  }\n                  pattr = pattr + aVar10.shndx + len;\n                  attr_value.val = aVar15;\n                  attr_value.aux = aVar10;\n                }\n                else {\n                  if (uVar11 == 0x20) {\n                    pp_Var4 = (this->dwinfo_->object_->super_Object)._vptr_Object;\n                    p_Var5 = pp_Var4[3];\n                    if (p_Var5 == Relobj::is_big_endian) {\n                      iVar9 = (*pp_Var4[0x3a])();\n                      cVar8 = (char)iVar9;\n                    }\n                    else {\n                      iVar9 = (*p_Var5)();\n                      cVar8 = (char)iVar9;\n                    }\n                    /* WARNING: Load size is inaccurate */\n                    attr_value.val.blockval = *pattr;\n                    if (cVar8 != '\0') {\n                      attr_value.val.uintval =\n                           attr_value.val.uintval >> 0x38 |\n                           (attr_value.val.uintval & 0xff000000000000) >> 0x28 |\n                           (attr_value.val.uintval & 0xff0000000000) >> 0x18 |\n                           (attr_value.val.uintval & 0xff00000000) >> 8 |\n                           (attr_value.val.uintval & 0xff000000) << 8 |\n                           (attr_value.val.uintval & 0xff0000) << 0x18 |\n                           (attr_value.val.uintval & 0xff00) << 0x28 |\n                           attr_value.val.uintval << 0x38;\n                    }\n                    pattr = pattr + 8;\n                    goto LAB_00302ea9;\n                  }\n                  if (uVar11 < 0x20) {\n                    return false;\n                  }\n                  if (1 < uVar11 - 0x1f01) {\n                    return false;\n                  }\nLAB_00302bcd:\n                  bVar1 = *pattr;\n                  aVar14.intval._1_7_ = 0;\n                  aVar14.uintval._0_1_ = bVar1;\n                  if ((char)bVar1 < '\0') {\n                    attr_value.val.uintval = read_unsigned_LEB_128_x(pattr + 1,&len,bVar1);\n                    pattr = pattr + len;\n                  }\n                  else {\n                    len = 1;\n                    pattr = pattr + 1;\n                    attr_value.val = aVar14;\n                  }\n                }\nLAB_00302f92:\n                if (uVar2 == 0x31) goto LAB_00302750;\n                if (0x31 < uVar2) {\n                  if ((uVar2 == 0x6e) || (uVar2 == 0x2007)) goto LAB_00302fb5;\n                  goto LAB_00302750;\n                }\n                goto LAB_00302e3e;\n              }\n              attr_value.val.intval = 1;\nLAB_00302ea9:\n              if (((uVar2 == 0x31) || (0x31 < uVar2)) || (uVar2 != 3)) goto LAB_00302750;\nLAB_00302e52:\n              if (uVar11 == 8) {\nLAB_003029c7:\n                this->name_ = (char *)attr_value.val;\n              }\n              else if (uVar11 == 0xe) goto LAB_00302f64;\n              goto LAB_00302750;\n            }\n            if (uVar11 != 0x11) {\n              if (0x11 < uVar11) {\n                if (uVar11 == 0x13) {\n                  VVar12 = Dwarf_info_reader::read_from_pointer<32>(this->dwinfo_,&pattr);\n                  str_off = (off_t)VVar12;\n                  goto LAB_00303035;\n                }\n                if (0x13 < uVar11) {\n                  pRVar22 = this->dwinfo_->object_;\n                  goto LAB_00302fe7;\n                }\n                pp_Var4 = (this->dwinfo_->object_->super_Object)._vptr_Object;\n                p_Var5 = pp_Var4[3];\n                if (p_Var5 == Relobj::is_big_endian) {\n                  iVar9 = (*pp_Var4[0x3a])();\n                  cVar8 = (char)iVar9;\n                }\n                else {\n                  iVar9 = (*p_Var5)();\n                  cVar8 = (char)iVar9;\n                }\n                uVar7 = *(ushort *)pattr;\n                if (cVar8 != '\0') {\n                  uVar7 = CONCAT11(*pattr,pattr[1]);\n                }\n                attr_value.val.intval._2_6_ = 0;\n                attr_value.val.intval._0_2_ = uVar7;\n                pattr = pattr + 2;\n                goto joined_r0x00303052;\n              }\n              if (uVar11 == 0xf) goto LAB_00302bcd;\n              if (uVar11 != 0x10) {\n                return false;\n              }\n              pDVar21 = this->dwinfo_;\n              uVar11 = pDVar21->address_size_;\n              if (2 < pDVar21->cu_version_) {\n                uVar11 = pDVar21->offset_size_;\n              }\n              if (uVar11 != 4) goto LAB_00302a71;\nLAB_00302e7d:\n              VVar12 = Dwarf_info_reader::read_from_pointer<32>(pDVar21,&pattr);\n              str_off = (off_t)VVar12;\nLAB_00302abe:\n              attr_value.aux.shndx =\n                   Dwarf_info_reader::lookup_reloc(this->dwinfo_,(off_t)attr_off,&str_off);\n              attr_value.val.refval = str_off;\n              if (uVar2 == 0x31) goto LAB_00302965;\n              if (0x31 < uVar2) goto joined_r0x00302ccc;\n              goto LAB_00302c20;\n            }\n            puVar23 = pattr + 1;\n            attr_value.val.intval._1_7_ = 0;\n            attr_value.val.uintval._0_1_ = *pattr;\n            pattr = puVar23;\n            if (uVar2 != 0x31) {\n              if (uVar2 < 0x32) {\n                if (uVar2 == 1) {\n                  this->sibling_offset_ = (off_t)attr_value.val;\n                }\n                goto LAB_00302750;\n              }\njoined_r0x00302ccc:\n              if ((uVar2 == 0x6e) || (uVar2 == 0x2007)) goto LAB_00302750;\n              goto joined_r0x00302ce3;\n            }\n          }\nLAB_00302965:\n          this->abstract_origin_ = (off_t)attr_value.val;\n          goto LAB_00302750;\n        }\n        if (uVar11 == 7) {\n          pp_Var4 = (this->dwinfo_->object_->super_Object)._vptr_Object;\n          p_Var5 = pp_Var4[3];\n          if (p_Var5 == Relobj::is_big_endian) {\n            iVar9 = (*pp_Var4[0x3a])();\n            cVar8 = (char)iVar9;\n          }\n          else {\n            iVar9 = (*p_Var5)();\n            cVar8 = (char)iVar9;\n          }\n          str_off = *(off_t *)pattr;\n          if (cVar8 != '\0') {\n            str_off = (ulong)str_off >> 0x38 | (str_off & 0xff000000000000U) >> 0x28 |\n                      (str_off & 0xff0000000000U) >> 0x18 | (str_off & 0xff00000000U) >> 8 |\n                      (str_off & 0xff000000U) << 8 | (str_off & 0xff0000U) << 0x18 |\n                      (str_off & 0xff00U) << 0x28 | str_off << 0x38;\n          }\n          pattr = pattr + 8;\nLAB_00302d40:\n          attr_value.aux.shndx =\n               Dwarf_info_reader::lookup_reloc(this->dwinfo_,(off_t)attr_off,&str_off);\n          attr_value.val.refval = str_off;\njoined_r0x00302748:\n          if ((uVar2 != 0x31) && (uVar2 < 0x32)) {\nLAB_00302e3e:\n            if ((uVar2 != 1) && (uVar2 == 3)) goto LAB_00302e52;\n          }\n          goto LAB_00302750;\n        }\n        if (uVar11 < 8) {\n          if (uVar11 == 4) {\n            pp_Var4 = (this->dwinfo_->object_->super_Object)._vptr_Object;\n            p_Var5 = pp_Var4[3];\n            if (p_Var5 == Relobj::is_big_endian) {\n              iVar9 = (*pp_Var4[0x3a])();\n              cVar8 = (char)iVar9;\n            }\n            else {\n              iVar9 = (*p_Var5)();\n              cVar8 = (char)iVar9;\n            }\n            attr_value.aux.shndx = *(uint *)pattr;\n            if (cVar8 != '\0') {\n              attr_value.aux.shndx =\n                   attr_value.aux.shndx >> 0x18 | (attr_value.aux.shndx & 0xff0000) >> 8 |\n                   (attr_value.aux.shndx & 0xff00) << 8 | attr_value.aux.shndx << 0x18;\n            }\n            attr_value.val.stringval = (char *)(pattr + 4);\n            pattr = (uchar *)(attr_value.val.stringval + attr_value.aux.shndx);\n          }\n          else if (uVar11 < 5) {\n            if (uVar11 == 1) {\n              pDVar21 = this->dwinfo_;\n              if (pDVar21->address_size_ == 4) goto LAB_00302e7d;\nLAB_00302a71:\n              pp_Var4 = (pDVar21->object_->super_Object)._vptr_Object;\n              p_Var5 = pp_Var4[3];\n              if (p_Var5 == Relobj::is_big_endian) {\n                iVar9 = (*pp_Var4[0x3a])();\n                cVar8 = (char)iVar9;\n              }\n              else {\n                iVar9 = (*p_Var5)();\n                cVar8 = (char)iVar9;\n              }\n              str_off = *(off_t *)pattr;\n              if (cVar8 != '\0') {\n                str_off = (ulong)str_off >> 0x38 | (str_off & 0xff000000000000U) >> 0x28 |\n                          (str_off & 0xff0000000000U) >> 0x18 | (str_off & 0xff00000000U) >> 8 |\n                          (str_off & 0xff000000U) << 8 | (str_off & 0xff0000U) << 0x18 |\n                          (str_off & 0xff00U) << 0x28 | str_off << 0x38;\n              }\n              pattr = pattr + 8;\n              goto LAB_00302abe;\n            }\n            if (uVar11 != 3) {\n              return false;\n            }\n            pp_Var4 = (this->dwinfo_->object_->super_Object)._vptr_Object;\n            p_Var5 = pp_Var4[3];\n            if (p_Var5 == Relobj::is_big_endian) {\n              iVar9 = (*pp_Var4[0x3a])();\n              cVar8 = (char)iVar9;\n            }\n            else {\n              iVar9 = (*p_Var5)();\n              cVar8 = (char)iVar9;\n            }\n            uVar7 = *(ushort *)pattr;\n            if (cVar8 != '\0') {\n              uVar7 = CONCAT11(*pattr,pattr[1]);\n            }\n            attr_value.aux.shndx._2_2_ = 0;\n            attr_value.aux.shndx._0_2_ = uVar7;\n            attr_value.val.stringval = (char *)(pattr + 2);\n            pattr = (uchar *)(attr_value.val.stringval + attr_value.aux.shndx);\n          }\n          else {\n            if (uVar11 != 5) {\n              if (uVar11 != 6) {\n                return false;\n              }\n              pp_Var4 = (this->dwinfo_->object_->super_Object)._vptr_Object;\n              p_Var5 = pp_Var4[3];\n              if (p_Var5 == Relobj::is_big_endian) {\n                iVar9 = (*pp_Var4[0x3a])();\n                cVar8 = (char)iVar9;\n              }\n              else {\n                iVar9 = (*p_Var5)();\n                cVar8 = (char)iVar9;\n              }\n              uVar3 = *(uint *)pattr;\n              if (cVar8 != '\0') {\n                uVar3 = uVar3 >> 0x18 | (uVar3 & 0xff0000) >> 8 | (uVar3 & 0xff00) << 8 |\n                        uVar3 << 0x18;\n              }\n              str_off = (off_t)uVar3;\n              pattr = pattr + 4;\n              goto LAB_00302d40;\n            }\n            pp_Var4 = (this->dwinfo_->object_->super_Object)._vptr_Object;\n            p_Var5 = pp_Var4[3];\n            if (p_Var5 == Relobj::is_big_endian) {\n              iVar9 = (*pp_Var4[0x3a])();\n              cVar8 = (char)iVar9;\n            }\n            else {\n              iVar9 = (*p_Var5)();\n              cVar8 = (char)iVar9;\n            }\n            uVar7 = *(ushort *)pattr;\n            if (cVar8 != '\0') {\n              uVar7 = CONCAT11(*pattr,pattr[1]);\n            }\n            pattr = pattr + 2;\n            attr_value.val.intval._2_6_ = 0;\n            attr_value.val.intval._0_2_ = uVar7;\n          }\n          goto joined_r0x00302748;\n        }\n        if (uVar11 == 10) {\n          attr_value.val.stringval = (char *)(pattr + 1);\n          bVar1 = *pattr;\n          pattr = (uchar *)(attr_value.val.stringval + bVar1);\n          attr_value.aux.shndx._1_3_ = 0;\n          attr_value.aux.shndx._0_1_ = bVar1;\n          goto joined_r0x00302748;\n        }\n        if (uVar11 < 0xb) {\n          if (uVar11 != 8) {\n            if (uVar11 != 9) {\n              return false;\n            }\n            goto LAB_00302a09;\n          }\n          attr_value.val.blockval = pattr;\n          len = strlen((char *)pattr);\n          pattr = puVar23 + len + 1;\n          if (uVar2 == 0x31) goto LAB_00302750;\n          if (0x31 < uVar2) {\n            if ((uVar2 != 0x6e) && (uVar2 != 0x2007)) goto LAB_00302750;\n            goto LAB_003029eb;\n          }\n          if ((uVar2 == 1) || (uVar2 != 3)) goto LAB_00302750;\n          goto LAB_003029c7;\n        }\n        if (uVar11 < 0xd) {\n          attr_value.val.intval._1_7_ = 0;\n          attr_value.val.uintval._0_1_ = *pattr;\n          pattr = pattr + 1;\n          goto LAB_00302f92;\n        }\n        bVar1 = *pattr;\n        puVar23 = pattr + 1;\n        if ((char)bVar1 < '\0') {\n          attr_value.val.intval = read_signed_LEB_128_x(puVar23,&len,bVar1);\n          puVar23 = pattr + len;\n        }\n        else {\n          len = 1;\n          attr_value.val.intval._1_7_ = 0;\n          attr_value.val.uintval._0_1_ = bVar1;\n          if ((bVar1 & 0x40) != 0) {\n            attr_value.val.uintval = attr_value.val.uintval | 0xffffffffffffff80;\n          }\n        }\n        pattr = puVar23;\n        if ((uVar2 == 0x31) || (uVar2 < 0x32)) goto LAB_00302750;\n        if ((uVar2 == 0x6e) || (uVar2 == 0x2007)) goto LAB_00302fbe;\n        __position._M_current =\n             (this->attributes_).\n             super__Vector_base<gold::Dwarf_die::Attribute_value,_std::allocator<gold::Dwarf_die::Attribute_value>_>\n             ._M_impl._M_finish;\n        if (__position._M_current ==\n            (this->attributes_).\n            super__Vector_base<gold::Dwarf_die::Attribute_value,_std::allocator<gold::Dwarf_die::Attribute_value>_>\n            ._M_impl._M_end_of_storage) goto LAB_003028c0;\nLAB_0030275e:\n        (__position._M_current)->attr = (int)CONCAT44(attr_value.form,attr_value.attr);\n        (__position._M_current)->form = (int)(CONCAT44(attr_value.form,attr_value.attr) >> 0x20);\n        (__position._M_current)->val = attr_value.val;\n        *(ulong *)&(__position._M_current)->aux = CONCAT44(attr_value._20_4_,attr_value.aux.shndx);\n        (this->attributes_).\n        super__Vector_base<gold::Dwarf_die::Attribute_value,_std::allocator<gold::Dwarf_die::Attribute_value>_>\n        ._M_impl._M_finish = __position._M_current + 1;\n      }" { (if_statement "if (0xe < uVar11) {\n          if (uVar11 == 0x15) {\n            bVar1 = *pattr;\n            aVar15.intval._1_7_ = 0;\n            aVar15.uintval._0_1_ = bVar1;\n            if ((char)bVar1 < '\0') {\n              attr_value.val.uintval = read_unsigned_LEB_128_x(pattr + 1,&len,bVar1);\n              pattr = pattr + len;\n            }\n            else {\n              len = 1;\n              pattr = pattr + 1;\n              attr_value.val = aVar15;\n            }\njoined_r0x00303052:\n            if (uVar2 != 0x31) {\n              if (uVar2 < 0x32) {\nLAB_00302c20:\n                if ((uVar2 == 1) && (attr_value.aux.shndx == 0)) {\n                  this->sibling_offset_ = (off_t)attr_value.val;\n                }\n                goto LAB_00302750;\n              }\n              if ((uVar2 != 0x6e) && (uVar2 != 0x2007)) {\njoined_r0x00302ce3:\n                if (uVar2 == 0x47) {\n                  this->specification_ = (off_t)attr_value.val;\n                }\n                goto LAB_00302750;\n              }\nLAB_00302fb5:\n              if (uVar11 == 8) {\nLAB_003029eb:\n                this->linkage_name_ = (char *)attr_value.val;\n              }\n              else {\nLAB_00302fbe:\n                if (uVar11 == 0xe) goto LAB_00302fd0;\n              }\n              goto LAB_00302750;\n            }\n          }\n          else {\n            if (0x15 < uVar11) {\n              if (uVar11 != 0x19) {\n                if (uVar11 < 0x1a) {\n                  if (uVar11 == 0x17) {\n                    pDVar21 = this->dwinfo_;\n                    if (pDVar21->offset_size_ == 4) {\n                      VVar12 = Dwarf_info_reader::read_from_pointer<32>(pDVar21,&pattr);\n                      str_off = (off_t)VVar12;\n                    }\n                    else {\n                      pRVar22 = pDVar21->object_;\nLAB_00302fe7:\n                      pp_Var4 = (pRVar22->super_Object)._vptr_Object;\n                      p_Var5 = pp_Var4[3];\n                      if (p_Var5 == Relobj::is_big_endian) {\n                        iVar9 = (*pp_Var4[0x3a])();\n                        cVar8 = (char)iVar9;\n                      }\n                      else {\n                        iVar9 = (*p_Var5)();\n                        cVar8 = (char)iVar9;\n                      }\n                      str_off = *(off_t *)pattr;\n                      if (cVar8 != '\0') {\n                        str_off = (ulong)str_off >> 0x38 | (str_off & 0xff000000000000U) >> 0x28 |\n                                  (str_off & 0xff0000000000U) >> 0x18 |\n                                  (str_off & 0xff00000000U) >> 8 | (str_off & 0xff000000U) << 8 |\n                                  (str_off & 0xff0000U) << 0x18 | (str_off & 0xff00U) << 0x28 |\n                                  str_off << 0x38;\n                      }\n                      pattr = pattr + 8;\n                    }\nLAB_00303035:\n                    attr_value.aux.shndx =\n                         Dwarf_info_reader::lookup_reloc(this->dwinfo_,(off_t)attr_off,&str_off);\n                    attr_value.val.refval = str_off;\n                    goto joined_r0x00303052;\n                  }\n                  if (uVar11 != 0x18) {\n                    return false;\n                  }\nLAB_00302a09:\n                  bVar1 = *pattr;\n                  aVar10.shndx._1_3_ = 0;\n                  aVar10.shndx._0_1_ = bVar1;\n                  aVar15.stringval = (char *)(pattr + 1);\n                  if ((char)bVar1 < '\0') {\n                    uVar16 = read_unsigned_LEB_128_x(aVar15.blockval,&len,bVar1);\n                    aVar10.shndx = (uint)uVar16;\n                    aVar15.stringval = (char *)(pattr + len);\n                  }\n                  else {\n                    len = 1;\n                  }\n                  pattr = pattr + aVar10.shndx + len;\n                  attr_value.val = aVar15;\n                  attr_value.aux = aVar10;\n                }\n                else {\n                  if (uVar11 == 0x20) {\n                    pp_Var4 = (this->dwinfo_->object_->super_Object)._vptr_Object;\n                    p_Var5 = pp_Var4[3];\n                    if (p_Var5 == Relobj::is_big_endian) {\n                      iVar9 = (*pp_Var4[0x3a])();\n                      cVar8 = (char)iVar9;\n                    }\n                    else {\n                      iVar9 = (*p_Var5)();\n                      cVar8 = (char)iVar9;\n                    }\n                    /* WARNING: Load size is inaccurate */\n                    attr_value.val.blockval = *pattr;\n                    if (cVar8 != '\0') {\n                      attr_value.val.uintval =\n                           attr_value.val.uintval >> 0x38 |\n                           (attr_value.val.uintval & 0xff000000000000) >> 0x28 |\n                           (attr_value.val.uintval & 0xff0000000000) >> 0x18 |\n                           (attr_value.val.uintval & 0xff00000000) >> 8 |\n                           (attr_value.val.uintval & 0xff000000) << 8 |\n                           (attr_value.val.uintval & 0xff0000) << 0x18 |\n                           (attr_value.val.uintval & 0xff00) << 0x28 |\n                           attr_value.val.uintval << 0x38;\n                    }\n                    pattr = pattr + 8;\n                    goto LAB_00302ea9;\n                  }\n                  if (uVar11 < 0x20) {\n                    return false;\n                  }\n                  if (1 < uVar11 - 0x1f01) {\n                    return false;\n                  }\nLAB_00302bcd:\n                  bVar1 = *pattr;\n                  aVar14.intval._1_7_ = 0;\n                  aVar14.uintval._0_1_ = bVar1;\n                  if ((char)bVar1 < '\0') {\n                    attr_value.val.uintval = read_unsigned_LEB_128_x(pattr + 1,&len,bVar1);\n                    pattr = pattr + len;\n                  }\n                  else {\n                    len = 1;\n                    pattr = pattr + 1;\n                    attr_value.val = aVar14;\n                  }\n                }\nLAB_00302f92:\n                if (uVar2 == 0x31) goto LAB_00302750;\n                if (0x31 < uVar2) {\n                  if ((uVar2 == 0x6e) || (uVar2 == 0x2007)) goto LAB_00302fb5;\n                  goto LAB_00302750;\n                }\n                goto LAB_00302e3e;\n              }\n              attr_value.val.intval = 1;\nLAB_00302ea9:\n              if (((uVar2 == 0x31) || (0x31 < uVar2)) || (uVar2 != 3)) goto LAB_00302750;\nLAB_00302e52:\n              if (uVar11 == 8) {\nLAB_003029c7:\n                this->name_ = (char *)attr_value.val;\n              }\n              else if (uVar11 == 0xe) goto LAB_00302f64;\n              goto LAB_00302750;\n            }\n            if (uVar11 != 0x11) {\n              if (0x11 < uVar11) {\n                if (uVar11 == 0x13) {\n                  VVar12 = Dwarf_info_reader::read_from_pointer<32>(this->dwinfo_,&pattr);\n                  str_off = (off_t)VVar12;\n                  goto LAB_00303035;\n                }\n                if (0x13 < uVar11) {\n                  pRVar22 = this->dwinfo_->object_;\n                  goto LAB_00302fe7;\n                }\n                pp_Var4 = (this->dwinfo_->object_->super_Object)._vptr_Object;\n                p_Var5 = pp_Var4[3];\n                if (p_Var5 == Relobj::is_big_endian) {\n                  iVar9 = (*pp_Var4[0x3a])();\n                  cVar8 = (char)iVar9;\n                }\n                else {\n                  iVar9 = (*p_Var5)();\n                  cVar8 = (char)iVar9;\n                }\n                uVar7 = *(ushort *)pattr;\n                if (cVar8 != '\0') {\n                  uVar7 = CONCAT11(*pattr,pattr[1]);\n                }\n                attr_value.val.intval._2_6_ = 0;\n                attr_value.val.intval._0_2_ = uVar7;\n                pattr = pattr + 2;\n                goto joined_r0x00303052;\n              }\n              if (uVar11 == 0xf) goto LAB_00302bcd;\n              if (uVar11 != 0x10) {\n                return false;\n              }\n              pDVar21 = this->dwinfo_;\n              uVar11 = pDVar21->address_size_;\n              if (2 < pDVar21->cu_version_) {\n                uVar11 = pDVar21->offset_size_;\n              }\n              if (uVar11 != 4) goto LAB_00302a71;\nLAB_00302e7d:\n              VVar12 = Dwarf_info_reader::read_from_pointer<32>(pDVar21,&pattr);\n              str_off = (off_t)VVar12;\nLAB_00302abe:\n              attr_value.aux.shndx =\n                   Dwarf_info_reader::lookup_reloc(this->dwinfo_,(off_t)attr_off,&str_off);\n              attr_value.val.refval = str_off;\n              if (uVar2 == 0x31) goto LAB_00302965;\n              if (0x31 < uVar2) goto joined_r0x00302ccc;\n              goto LAB_00302c20;\n            }\n            puVar23 = pattr + 1;\n            attr_value.val.intval._1_7_ = 0;\n            attr_value.val.uintval._0_1_ = *pattr;\n            pattr = puVar23;\n            if (uVar2 != 0x31) {\n              if (uVar2 < 0x32) {\n                if (uVar2 == 1) {\n                  this->sibling_offset_ = (off_t)attr_value.val;\n                }\n                goto LAB_00302750;\n              }\njoined_r0x00302ccc:\n              if ((uVar2 == 0x6e) || (uVar2 == 0x2007)) goto LAB_00302750;\n              goto joined_r0x00302ce3;\n            }\n          }\nLAB_00302965:\n          this->abstract_origin_ = (off_t)attr_value.val;\n          goto LAB_00302750;\n        }" if (parenthesized_expression "(0xe < uVar11)" ( (binary_expression "0xe < uVar11" number_literal < identifier) )) (compound_statement "{\n          if (uVar11 == 0x15) {\n            bVar1 = *pattr;\n            aVar15.intval._1_7_ = 0;\n            aVar15.uintval._0_1_ = bVar1;\n            if ((char)bVar1 < '\0') {\n              attr_value.val.uintval = read_unsigned_LEB_128_x(pattr + 1,&len,bVar1);\n              pattr = pattr + len;\n            }\n            else {\n              len = 1;\n              pattr = pattr + 1;\n              attr_value.val = aVar15;\n            }\njoined_r0x00303052:\n            if (uVar2 != 0x31) {\n              if (uVar2 < 0x32) {\nLAB_00302c20:\n                if ((uVar2 == 1) && (attr_value.aux.shndx == 0)) {\n                  this->sibling_offset_ = (off_t)attr_value.val;\n                }\n                goto LAB_00302750;\n              }\n              if ((uVar2 != 0x6e) && (uVar2 != 0x2007)) {\njoined_r0x00302ce3:\n                if (uVar2 == 0x47) {\n                  this->specification_ = (off_t)attr_value.val;\n                }\n                goto LAB_00302750;\n              }\nLAB_00302fb5:\n              if (uVar11 == 8) {\nLAB_003029eb:\n                this->linkage_name_ = (char *)attr_value.val;\n              }\n              else {\nLAB_00302fbe:\n                if (uVar11 == 0xe) goto LAB_00302fd0;\n              }\n              goto LAB_00302750;\n            }\n          }\n          else {\n            if (0x15 < uVar11) {\n              if (uVar11 != 0x19) {\n                if (uVar11 < 0x1a) {\n                  if (uVar11 == 0x17) {\n                    pDVar21 = this->dwinfo_;\n                    if (pDVar21->offset_size_ == 4) {\n                      VVar12 = Dwarf_info_reader::read_from_pointer<32>(pDVar21,&pattr);\n                      str_off = (off_t)VVar12;\n                    }\n                    else {\n                      pRVar22 = pDVar21->object_;\nLAB_00302fe7:\n                      pp_Var4 = (pRVar22->super_Object)._vptr_Object;\n                      p_Var5 = pp_Var4[3];\n                      if (p_Var5 == Relobj::is_big_endian) {\n                        iVar9 = (*pp_Var4[0x3a])();\n                        cVar8 = (char)iVar9;\n                      }\n                      else {\n                        iVar9 = (*p_Var5)();\n                        cVar8 = (char)iVar9;\n                      }\n                      str_off = *(off_t *)pattr;\n                      if (cVar8 != '\0') {\n                        str_off = (ulong)str_off >> 0x38 | (str_off & 0xff000000000000U) >> 0x28 |\n                                  (str_off & 0xff0000000000U) >> 0x18 |\n                                  (str_off & 0xff00000000U) >> 8 | (str_off & 0xff000000U) << 8 |\n                                  (str_off & 0xff0000U) << 0x18 | (str_off & 0xff00U) << 0x28 |\n                                  str_off << 0x38;\n                      }\n                      pattr = pattr + 8;\n                    }\nLAB_00303035:\n                    attr_value.aux.shndx =\n                         Dwarf_info_reader::lookup_reloc(this->dwinfo_,(off_t)attr_off,&str_off);\n                    attr_value.val.refval = str_off;\n                    goto joined_r0x00303052;\n                  }\n                  if (uVar11 != 0x18) {\n                    return false;\n                  }\nLAB_00302a09:\n                  bVar1 = *pattr;\n                  aVar10.shndx._1_3_ = 0;\n                  aVar10.shndx._0_1_ = bVar1;\n                  aVar15.stringval = (char *)(pattr + 1);\n                  if ((char)bVar1 < '\0') {\n                    uVar16 = read_unsigned_LEB_128_x(aVar15.blockval,&len,bVar1);\n                    aVar10.shndx = (uint)uVar16;\n                    aVar15.stringval = (char *)(pattr + len);\n                  }\n                  else {\n                    len = 1;\n                  }\n                  pattr = pattr + aVar10.shndx + len;\n                  attr_value.val = aVar15;\n                  attr_value.aux = aVar10;\n                }\n                else {\n                  if (uVar11 == 0x20) {\n                    pp_Var4 = (this->dwinfo_->object_->super_Object)._vptr_Object;\n                    p_Var5 = pp_Var4[3];\n                    if (p_Var5 == Relobj::is_big_endian) {\n                      iVar9 = (*pp_Var4[0x3a])();\n                      cVar8 = (char)iVar9;\n                    }\n                    else {\n                      iVar9 = (*p_Var5)();\n                      cVar8 = (char)iVar9;\n                    }\n                    /* WARNING: Load size is inaccurate */\n                    attr_value.val.blockval = *pattr;\n                    if (cVar8 != '\0') {\n                      attr_value.val.uintval =\n                           attr_value.val.uintval >> 0x38 |\n                           (attr_value.val.uintval & 0xff000000000000) >> 0x28 |\n                           (attr_value.val.uintval & 0xff0000000000) >> 0x18 |\n                           (attr_value.val.uintval & 0xff00000000) >> 8 |\n                           (attr_value.val.uintval & 0xff000000) << 8 |\n                           (attr_value.val.uintval & 0xff0000) << 0x18 |\n                           (attr_value.val.uintval & 0xff00) << 0x28 |\n                           attr_value.val.uintval << 0x38;\n                    }\n                    pattr = pattr + 8;\n                    goto LAB_00302ea9;\n                  }\n                  if (uVar11 < 0x20) {\n                    return false;\n                  }\n                  if (1 < uVar11 - 0x1f01) {\n                    return false;\n                  }\nLAB_00302bcd:\n                  bVar1 = *pattr;\n                  aVar14.intval._1_7_ = 0;\n                  aVar14.uintval._0_1_ = bVar1;\n                  if ((char)bVar1 < '\0') {\n                    attr_value.val.uintval = read_unsigned_LEB_128_x(pattr + 1,&len,bVar1);\n                    pattr = pattr + len;\n                  }\n                  else {\n                    len = 1;\n                    pattr = pattr + 1;\n                    attr_value.val = aVar14;\n                  }\n                }\nLAB_00302f92:\n                if (uVar2 == 0x31) goto LAB_00302750;\n                if (0x31 < uVar2) {\n                  if ((uVar2 == 0x6e) || (uVar2 == 0x2007)) goto LAB_00302fb5;\n                  goto LAB_00302750;\n                }\n                goto LAB_00302e3e;\n              }\n              attr_value.val.intval = 1;\nLAB_00302ea9:\n              if (((uVar2 == 0x31) || (0x31 < uVar2)) || (uVar2 != 3)) goto LAB_00302750;\nLAB_00302e52:\n              if (uVar11 == 8) {\nLAB_003029c7:\n                this->name_ = (char *)attr_value.val;\n              }\n              else if (uVar11 == 0xe) goto LAB_00302f64;\n              goto LAB_00302750;\n            }\n            if (uVar11 != 0x11) {\n              if (0x11 < uVar11) {\n                if (uVar11 == 0x13) {\n                  VVar12 = Dwarf_info_reader::read_from_pointer<32>(this->dwinfo_,&pattr);\n                  str_off = (off_t)VVar12;\n                  goto LAB_00303035;\n                }\n                if (0x13 < uVar11) {\n                  pRVar22 = this->dwinfo_->object_;\n                  goto LAB_00302fe7;\n                }\n                pp_Var4 = (this->dwinfo_->object_->super_Object)._vptr_Object;\n                p_Var5 = pp_Var4[3];\n                if (p_Var5 == Relobj::is_big_endian) {\n                  iVar9 = (*pp_Var4[0x3a])();\n                  cVar8 = (char)iVar9;\n                }\n                else {\n                  iVar9 = (*p_Var5)();\n                  cVar8 = (char)iVar9;\n                }\n                uVar7 = *(ushort *)pattr;\n                if (cVar8 != '\0') {\n                  uVar7 = CONCAT11(*pattr,pattr[1]);\n                }\n                attr_value.val.intval._2_6_ = 0;\n                attr_value.val.intval._0_2_ = uVar7;\n                pattr = pattr + 2;\n                goto joined_r0x00303052;\n              }\n              if (uVar11 == 0xf) goto LAB_00302bcd;\n              if (uVar11 != 0x10) {\n                return false;\n              }\n              pDVar21 = this->dwinfo_;\n              uVar11 = pDVar21->address_size_;\n              if (2 < pDVar21->cu_version_) {\n                uVar11 = pDVar21->offset_size_;\n              }\n              if (uVar11 != 4) goto LAB_00302a71;\nLAB_00302e7d:\n              VVar12 = Dwarf_info_reader::read_from_pointer<32>(pDVar21,&pattr);\n              str_off = (off_t)VVar12;\nLAB_00302abe:\n              attr_value.aux.shndx =\n                   Dwarf_info_reader::lookup_reloc(this->dwinfo_,(off_t)attr_off,&str_off);\n              attr_value.val.refval = str_off;\n              if (uVar2 == 0x31) goto LAB_00302965;\n              if (0x31 < uVar2) goto joined_r0x00302ccc;\n              goto LAB_00302c20;\n            }\n            puVar23 = pattr + 1;\n            attr_value.val.intval._1_7_ = 0;\n            attr_value.val.uintval._0_1_ = *pattr;\n            pattr = puVar23;\n            if (uVar2 != 0x31) {\n              if (uVar2 < 0x32) {\n                if (uVar2 == 1) {\n                  this->sibling_offset_ = (off_t)attr_value.val;\n                }\n                goto LAB_00302750;\n              }\njoined_r0x00302ccc:\n              if ((uVar2 == 0x6e) || (uVar2 == 0x2007)) goto LAB_00302750;\n              goto joined_r0x00302ce3;\n            }\n          }\nLAB_00302965:\n          this->abstract_origin_ = (off_t)attr_value.val;\n          goto LAB_00302750;\n        }" { (if_statement "if (uVar11 == 0x15) {\n            bVar1 = *pattr;\n            aVar15.intval._1_7_ = 0;\n            aVar15.uintval._0_1_ = bVar1;\n            if ((char)bVar1 < '\0') {\n              attr_value.val.uintval = read_unsigned_LEB_128_x(pattr + 1,&len,bVar1);\n              pattr = pattr + len;\n            }\n            else {\n              len = 1;\n              pattr = pattr + 1;\n              attr_value.val = aVar15;\n            }\njoined_r0x00303052:\n            if (uVar2 != 0x31) {\n              if (uVar2 < 0x32) {\nLAB_00302c20:\n                if ((uVar2 == 1) && (attr_value.aux.shndx == 0)) {\n                  this->sibling_offset_ = (off_t)attr_value.val;\n                }\n                goto LAB_00302750;\n              }\n              if ((uVar2 != 0x6e) && (uVar2 != 0x2007)) {\njoined_r0x00302ce3:\n                if (uVar2 == 0x47) {\n                  this->specification_ = (off_t)attr_value.val;\n                }\n                goto LAB_00302750;\n              }\nLAB_00302fb5:\n              if (uVar11 == 8) {\nLAB_003029eb:\n                this->linkage_name_ = (char *)attr_value.val;\n              }\n              else {\nLAB_00302fbe:\n                if (uVar11 == 0xe) goto LAB_00302fd0;\n              }\n              goto LAB_00302750;\n            }\n          }\n          else {\n            if (0x15 < uVar11) {\n              if (uVar11 != 0x19) {\n                if (uVar11 < 0x1a) {\n                  if (uVar11 == 0x17) {\n                    pDVar21 = this->dwinfo_;\n                    if (pDVar21->offset_size_ == 4) {\n                      VVar12 = Dwarf_info_reader::read_from_pointer<32>(pDVar21,&pattr);\n                      str_off = (off_t)VVar12;\n                    }\n                    else {\n                      pRVar22 = pDVar21->object_;\nLAB_00302fe7:\n                      pp_Var4 = (pRVar22->super_Object)._vptr_Object;\n                      p_Var5 = pp_Var4[3];\n                      if (p_Var5 == Relobj::is_big_endian) {\n                        iVar9 = (*pp_Var4[0x3a])();\n                        cVar8 = (char)iVar9;\n                      }\n                      else {\n                        iVar9 = (*p_Var5)();\n                        cVar8 = (char)iVar9;\n                      }\n                      str_off = *(off_t *)pattr;\n                      if (cVar8 != '\0') {\n                        str_off = (ulong)str_off >> 0x38 | (str_off & 0xff000000000000U) >> 0x28 |\n                                  (str_off & 0xff0000000000U) >> 0x18 |\n                                  (str_off & 0xff00000000U) >> 8 | (str_off & 0xff000000U) << 8 |\n                                  (str_off & 0xff0000U) << 0x18 | (str_off & 0xff00U) << 0x28 |\n                                  str_off << 0x38;\n                      }\n                      pattr = pattr + 8;\n                    }\nLAB_00303035:\n                    attr_value.aux.shndx =\n                         Dwarf_info_reader::lookup_reloc(this->dwinfo_,(off_t)attr_off,&str_off);\n                    attr_value.val.refval = str_off;\n                    goto joined_r0x00303052;\n                  }\n                  if (uVar11 != 0x18) {\n                    return false;\n                  }\nLAB_00302a09:\n                  bVar1 = *pattr;\n                  aVar10.shndx._1_3_ = 0;\n                  aVar10.shndx._0_1_ = bVar1;\n                  aVar15.stringval = (char *)(pattr + 1);\n                  if ((char)bVar1 < '\0') {\n                    uVar16 = read_unsigned_LEB_128_x(aVar15.blockval,&len,bVar1);\n                    aVar10.shndx = (uint)uVar16;\n                    aVar15.stringval = (char *)(pattr + len);\n                  }\n                  else {\n                    len = 1;\n                  }\n                  pattr = pattr + aVar10.shndx + len;\n                  attr_value.val = aVar15;\n                  attr_value.aux = aVar10;\n                }\n                else {\n                  if (uVar11 == 0x20) {\n                    pp_Var4 = (this->dwinfo_->object_->super_Object)._vptr_Object;\n                    p_Var5 = pp_Var4[3];\n                    if (p_Var5 == Relobj::is_big_endian) {\n                      iVar9 = (*pp_Var4[0x3a])();\n                      cVar8 = (char)iVar9;\n                    }\n                    else {\n                      iVar9 = (*p_Var5)();\n                      cVar8 = (char)iVar9;\n                    }\n                    /* WARNING: Load size is inaccurate */\n                    attr_value.val.blockval = *pattr;\n                    if (cVar8 != '\0') {\n                      attr_value.val.uintval =\n                           attr_value.val.uintval >> 0x38 |\n                           (attr_value.val.uintval & 0xff000000000000) >> 0x28 |\n                           (attr_value.val.uintval & 0xff0000000000) >> 0x18 |\n                           (attr_value.val.uintval & 0xff00000000) >> 8 |\n                           (attr_value.val.uintval & 0xff000000) << 8 |\n                           (attr_value.val.uintval & 0xff0000) << 0x18 |\n                           (attr_value.val.uintval & 0xff00) << 0x28 |\n                           attr_value.val.uintval << 0x38;\n                    }\n                    pattr = pattr + 8;\n                    goto LAB_00302ea9;\n                  }\n                  if (uVar11 < 0x20) {\n                    return false;\n                  }\n                  if (1 < uVar11 - 0x1f01) {\n                    return false;\n                  }\nLAB_00302bcd:\n                  bVar1 = *pattr;\n                  aVar14.intval._1_7_ = 0;\n                  aVar14.uintval._0_1_ = bVar1;\n                  if ((char)bVar1 < '\0') {\n                    attr_value.val.uintval = read_unsigned_LEB_128_x(pattr + 1,&len,bVar1);\n                    pattr = pattr + len;\n                  }\n                  else {\n                    len = 1;\n                    pattr = pattr + 1;\n                    attr_value.val = aVar14;\n                  }\n                }\nLAB_00302f92:\n                if (uVar2 == 0x31) goto LAB_00302750;\n                if (0x31 < uVar2) {\n                  if ((uVar2 == 0x6e) || (uVar2 == 0x2007)) goto LAB_00302fb5;\n                  goto LAB_00302750;\n                }\n                goto LAB_00302e3e;\n              }\n              attr_value.val.intval = 1;\nLAB_00302ea9:\n              if (((uVar2 == 0x31) || (0x31 < uVar2)) || (uVar2 != 3)) goto LAB_00302750;\nLAB_00302e52:\n              if (uVar11 == 8) {\nLAB_003029c7:\n                this->name_ = (char *)attr_value.val;\n              }\n              else if (uVar11 == 0xe) goto LAB_00302f64;\n              goto LAB_00302750;\n            }\n            if (uVar11 != 0x11) {\n              if (0x11 < uVar11) {\n                if (uVar11 == 0x13) {\n                  VVar12 = Dwarf_info_reader::read_from_pointer<32>(this->dwinfo_,&pattr);\n                  str_off = (off_t)VVar12;\n                  goto LAB_00303035;\n                }\n                if (0x13 < uVar11) {\n                  pRVar22 = this->dwinfo_->object_;\n                  goto LAB_00302fe7;\n                }\n                pp_Var4 = (this->dwinfo_->object_->super_Object)._vptr_Object;\n                p_Var5 = pp_Var4[3];\n                if (p_Var5 == Relobj::is_big_endian) {\n                  iVar9 = (*pp_Var4[0x3a])();\n                  cVar8 = (char)iVar9;\n                }\n                else {\n                  iVar9 = (*p_Var5)();\n                  cVar8 = (char)iVar9;\n                }\n                uVar7 = *(ushort *)pattr;\n                if (cVar8 != '\0') {\n                  uVar7 = CONCAT11(*pattr,pattr[1]);\n                }\n                attr_value.val.intval._2_6_ = 0;\n                attr_value.val.intval._0_2_ = uVar7;\n                pattr = pattr + 2;\n                goto joined_r0x00303052;\n              }\n              if (uVar11 == 0xf) goto LAB_00302bcd;\n              if (uVar11 != 0x10) {\n                return false;\n              }\n              pDVar21 = this->dwinfo_;\n              uVar11 = pDVar21->address_size_;\n              if (2 < pDVar21->cu_version_) {\n                uVar11 = pDVar21->offset_size_;\n              }\n              if (uVar11 != 4) goto LAB_00302a71;\nLAB_00302e7d:\n              VVar12 = Dwarf_info_reader::read_from_pointer<32>(pDVar21,&pattr);\n              str_off = (off_t)VVar12;\nLAB_00302abe:\n              attr_value.aux.shndx =\n                   Dwarf_info_reader::lookup_reloc(this->dwinfo_,(off_t)attr_off,&str_off);\n              attr_value.val.refval = str_off;\n              if (uVar2 == 0x31) goto LAB_00302965;\n              if (0x31 < uVar2) goto joined_r0x00302ccc;\n              goto LAB_00302c20;\n            }\n            puVar23 = pattr + 1;\n            attr_value.val.intval._1_7_ = 0;\n            attr_value.val.uintval._0_1_ = *pattr;\n            pattr = puVar23;\n            if (uVar2 != 0x31) {\n              if (uVar2 < 0x32) {\n                if (uVar2 == 1) {\n                  this->sibling_offset_ = (off_t)attr_value.val;\n                }\n                goto LAB_00302750;\n              }\njoined_r0x00302ccc:\n              if ((uVar2 == 0x6e) || (uVar2 == 0x2007)) goto LAB_00302750;\n              goto joined_r0x00302ce3;\n            }\n          }" if (parenthesized_expression "(uVar11 == 0x15)" ( (binary_expression "uVar11 == 0x15" identifier == number_literal) )) (compound_statement "{\n            bVar1 = *pattr;\n            aVar15.intval._1_7_ = 0;\n            aVar15.uintval._0_1_ = bVar1;\n            if ((char)bVar1 < '\0') {\n              attr_value.val.uintval = read_unsigned_LEB_128_x(pattr + 1,&len,bVar1);\n              pattr = pattr + len;\n            }\n            else {\n              len = 1;\n              pattr = pattr + 1;\n              attr_value.val = aVar15;\n            }\njoined_r0x00303052:\n            if (uVar2 != 0x31) {\n              if (uVar2 < 0x32) {\nLAB_00302c20:\n                if ((uVar2 == 1) && (attr_value.aux.shndx == 0)) {\n                  this->sibling_offset_ = (off_t)attr_value.val;\n                }\n                goto LAB_00302750;\n              }\n              if ((uVar2 != 0x6e) && (uVar2 != 0x2007)) {\njoined_r0x00302ce3:\n                if (uVar2 == 0x47) {\n                  this->specification_ = (off_t)attr_value.val;\n                }\n                goto LAB_00302750;\n              }\nLAB_00302fb5:\n              if (uVar11 == 8) {\nLAB_003029eb:\n                this->linkage_name_ = (char *)attr_value.val;\n              }\n              else {\nLAB_00302fbe:\n                if (uVar11 == 0xe) goto LAB_00302fd0;\n              }\n              goto LAB_00302750;\n            }\n          }" { (expression_statement "bVar1 = *pattr;" (assignment_expression "bVar1 = *pattr" identifier = (pointer_expression "*pattr" * identifier)) ;) (expression_statement "aVar15.intval._1_7_ = 0;" (assignment_expression "aVar15.intval._1_7_ = 0" (field_expression "aVar15.intval._1_7_" (field_expression "aVar15.intval" identifier . field_identifier) . field_identifier) = number_literal) ;) (expression_statement "aVar15.uintval._0_1_ = bVar1;" (assignment_expression "aVar15.uintval._0_1_ = bVar1" (field_expression "aVar15.uintval._0_1_" (field_expression "aVar15.uintval" identifier . field_identifier) . field_identifier) = identifier) ;) (if_statement "if ((char)bVar1 < '\0') {\n              attr_value.val.uintval = read_unsigned_LEB_128_x(pattr + 1,&len,bVar1);\n              pattr = pattr + len;\n            }\n            else {\n              len = 1;\n              pattr = pattr + 1;\n              attr_value.val = aVar15;\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              attr_value.val.uintval = read_unsigned_LEB_128_x(pattr + 1,&len,bVar1);\n              pattr = pattr + len;\n            }" { (expression_statement "attr_value.val.uintval = read_unsigned_LEB_128_x(pattr + 1,&len,bVar1);" (assignment_expression "attr_value.val.uintval = read_unsigned_LEB_128_x(pattr + 1,&len,bVar1)" (field_expression "attr_value.val.uintval" (field_expression "attr_value.val" identifier . field_identifier) . field_identifier) = (call_expression "read_unsigned_LEB_128_x(pattr + 1,&len,bVar1)" identifier (argument_list "(pattr + 1,&len,bVar1)" ( (binary_expression "pattr + 1" identifier + number_literal) , (pointer_expression "&len" & identifier) , identifier )))) ;) (expression_statement "pattr = pattr + len;" (assignment_expression "pattr = pattr + len" identifier = (binary_expression "pattr + len" identifier + identifier)) ;) }) (else_clause "else {\n              len = 1;\n              pattr = pattr + 1;\n              attr_value.val = aVar15;\n            }" else (compound_statement "{\n              len = 1;\n              pattr = pattr + 1;\n              attr_value.val = aVar15;\n            }" { (expression_statement "len = 1;" (assignment_expression "len = 1" identifier = number_literal) ;) (expression_statement "pattr = pattr + 1;" (assignment_expression "pattr = pattr + 1" identifier = (binary_expression "pattr + 1" identifier + number_literal)) ;) (expression_statement "attr_value.val = aVar15;" (assignment_expression "attr_value.val = aVar15" (field_expression "attr_value.val" identifier . field_identifier) = identifier) ;) }))) (labeled_statement "joined_r0x00303052:\n            if (uVar2 != 0x31) {\n              if (uVar2 < 0x32) {\nLAB_00302c20:\n                if ((uVar2 == 1) && (attr_value.aux.shndx == 0)) {\n                  this->sibling_offset_ = (off_t)attr_value.val;\n                }\n                goto LAB_00302750;\n              }\n              if ((uVar2 != 0x6e) && (uVar2 != 0x2007)) {\njoined_r0x00302ce3:\n                if (uVar2 == 0x47) {\n                  this->specification_ = (off_t)attr_value.val;\n                }\n                goto LAB_00302750;\n              }\nLAB_00302fb5:\n              if (uVar11 == 8) {\nLAB_003029eb:\n                this->linkage_name_ = (char *)attr_value.val;\n              }\n              else {\nLAB_00302fbe:\n                if (uVar11 == 0xe) goto LAB_00302fd0;\n              }\n              goto LAB_00302750;\n            }" statement_identifier : (if_statement "if (uVar2 != 0x31) {\n              if (uVar2 < 0x32) {\nLAB_00302c20:\n                if ((uVar2 == 1) && (attr_value.aux.shndx == 0)) {\n                  this->sibling_offset_ = (off_t)attr_value.val;\n                }\n                goto LAB_00302750;\n              }\n              if ((uVar2 != 0x6e) && (uVar2 != 0x2007)) {\njoined_r0x00302ce3:\n                if (uVar2 == 0x47) {\n                  this->specification_ = (off_t)attr_value.val;\n                }\n                goto LAB_00302750;\n              }\nLAB_00302fb5:\n              if (uVar11 == 8) {\nLAB_003029eb:\n                this->linkage_name_ = (char *)attr_value.val;\n              }\n              else {\nLAB_00302fbe:\n                if (uVar11 == 0xe) goto LAB_00302fd0;\n              }\n              goto LAB_00302750;\n            }" if (parenthesized_expression "(uVar2 != 0x31)" ( (binary_expression "uVar2 != 0x31" identifier != number_literal) )) (compound_statement "{\n              if (uVar2 < 0x32) {\nLAB_00302c20:\n                if ((uVar2 == 1) && (attr_value.aux.shndx == 0)) {\n                  this->sibling_offset_ = (off_t)attr_value.val;\n                }\n                goto LAB_00302750;\n              }\n              if ((uVar2 != 0x6e) && (uVar2 != 0x2007)) {\njoined_r0x00302ce3:\n                if (uVar2 == 0x47) {\n                  this->specification_ = (off_t)attr_value.val;\n                }\n                goto LAB_00302750;\n              }\nLAB_00302fb5:\n              if (uVar11 == 8) {\nLAB_003029eb:\n                this->linkage_name_ = (char *)attr_value.val;\n              }\n              else {\nLAB_00302fbe:\n                if (uVar11 == 0xe) goto LAB_00302fd0;\n              }\n              goto LAB_00302750;\n            }" { (if_statement "if (uVar2 < 0x32) {\nLAB_00302c20:\n                if ((uVar2 == 1) && (attr_value.aux.shndx == 0)) {\n                  this->sibling_offset_ = (off_t)attr_value.val;\n                }\n                goto LAB_00302750;\n              }" if (parenthesized_expression "(uVar2 < 0x32)" ( (binary_expression "uVar2 < 0x32" identifier < number_literal) )) (compound_statement "{\nLAB_00302c20:\n                if ((uVar2 == 1) && (attr_value.aux.shndx == 0)) {\n                  this->sibling_offset_ = (off_t)attr_value.val;\n                }\n                goto LAB_00302750;\n              }" { (labeled_statement "LAB_00302c20:\n                if ((uVar2 == 1) && (attr_value.aux.shndx == 0)) {\n                  this->sibling_offset_ = (off_t)attr_value.val;\n                }" statement_identifier : (if_statement "if ((uVar2 == 1) && (attr_value.aux.shndx == 0)) {\n                  this->sibling_offset_ = (off_t)attr_value.val;\n                }" if (parenthesized_expression "((uVar2 == 1) && (attr_value.aux.shndx == 0))" ( (binary_expression "(uVar2 == 1) && (attr_value.aux.shndx == 0)" (parenthesized_expression "(uVar2 == 1)" ( (binary_expression "uVar2 == 1" identifier == number_literal) )) && (parenthesized_expression "(attr_value.aux.shndx == 0)" ( (binary_expression "attr_value.aux.shndx == 0" (field_expression "attr_value.aux.shndx" (field_expression "attr_value.aux" identifier . field_identifier) . field_identifier) == number_literal) ))) )) (compound_statement "{\n                  this->sibling_offset_ = (off_t)attr_value.val;\n                }" { (expression_statement "this->sibling_offset_ = (off_t)attr_value.val;" (assignment_expression "this->sibling_offset_ = (off_t)attr_value.val" (field_expression "this->sibling_offset_" identifier -> field_identifier) = (cast_expression "(off_t)attr_value.val" ( (type_descriptor "off_t" type_identifier) ) (field_expression "attr_value.val" identifier . field_identifier))) ;) }))) (goto_statement "goto LAB_00302750;" goto statement_identifier ;) })) (if_statement "if ((uVar2 != 0x6e) && (uVar2 != 0x2007)) {\njoined_r0x00302ce3:\n                if (uVar2 == 0x47) {\n                  this->specification_ = (off_t)attr_value.val;\n                }\n                goto LAB_00302750;\n              }" if (parenthesized_expression "((uVar2 != 0x6e) && (uVar2 != 0x2007))" ( (binary_expression "(uVar2 != 0x6e) && (uVar2 != 0x2007)" (parenthesized_expression "(uVar2 != 0x6e)" ( (binary_expression "uVar2 != 0x6e" identifier != number_literal) )) && (parenthesized_expression "(uVar2 != 0x2007)" ( (binary_expression "uVar2 != 0x2007" identifier != number_literal) ))) )) (compound_statement "{\njoined_r0x00302ce3:\n                if (uVar2 == 0x47) {\n                  this->specification_ = (off_t)attr_value.val;\n                }\n                goto LAB_00302750;\n              }" { (labeled_statement "joined_r0x00302ce3:\n                if (uVar2 == 0x47) {\n                  this->specification_ = (off_t)attr_value.val;\n                }" statement_identifier : (if_statement "if (uVar2 == 0x47) {\n                  this->specification_ = (off_t)attr_value.val;\n                }" if (parenthesized_expression "(uVar2 == 0x47)" ( (binary_expression "uVar2 == 0x47" identifier == number_literal) )) (compound_statement "{\n                  this->specification_ = (off_t)attr_value.val;\n                }" { (expression_statement "this->specification_ = (off_t)attr_value.val;" (assignment_expression "this->specification_ = (off_t)attr_value.val" (field_expression "this->specification_" identifier -> field_identifier) = (cast_expression "(off_t)attr_value.val" ( (type_descriptor "off_t" type_identifier) ) (field_expression "attr_value.val" identifier . field_identifier))) ;) }))) (goto_statement "goto LAB_00302750;" goto statement_identifier ;) })) (labeled_statement "LAB_00302fb5:\n              if (uVar11 == 8) {\nLAB_003029eb:\n                this->linkage_name_ = (char *)attr_value.val;\n              }\n              else {\nLAB_00302fbe:\n                if (uVar11 == 0xe) goto LAB_00302fd0;\n              }" statement_identifier : (if_statement "if (uVar11 == 8) {\nLAB_003029eb:\n                this->linkage_name_ = (char *)attr_value.val;\n              }\n              else {\nLAB_00302fbe:\n                if (uVar11 == 0xe) goto LAB_00302fd0;\n              }" if (parenthesized_expression "(uVar11 == 8)" ( (binary_expression "uVar11 == 8" identifier == number_literal) )) (compound_statement "{\nLAB_003029eb:\n                this->linkage_name_ = (char *)attr_value.val;\n              }" { (labeled_statement "LAB_003029eb:\n                this->linkage_name_ = (char *)attr_value.val;" statement_identifier : (expression_statement "this->linkage_name_ = (char *)attr_value.val;" (assignment_expression "this->linkage_name_ = (char *)attr_value.val" (field_expression "this->linkage_name_" identifier -> field_identifier) = (cast_expression "(char *)attr_value.val" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (field_expression "attr_value.val" identifier . field_identifier))) ;)) }) (else_clause "else {\nLAB_00302fbe:\n                if (uVar11 == 0xe) goto LAB_00302fd0;\n              }" else (compound_statement "{\nLAB_00302fbe:\n                if (uVar11 == 0xe) goto LAB_00302fd0;\n              }" { (labeled_statement "LAB_00302fbe:\n                if (uVar11 == 0xe) goto LAB_00302fd0;" statement_identifier : (if_statement "if (uVar11 == 0xe) goto LAB_00302fd0;" if (parenthesized_expression "(uVar11 == 0xe)" ( (binary_expression "uVar11 == 0xe" identifier == number_literal) )) (goto_statement "goto LAB_00302fd0;" goto statement_identifier ;))) })))) (goto_statement "goto LAB_00302750;" goto statement_identifier ;) }))) }) (else_clause "else {\n            if (0x15 < uVar11) {\n              if (uVar11 != 0x19) {\n                if (uVar11 < 0x1a) {\n                  if (uVar11 == 0x17) {\n                    pDVar21 = this->dwinfo_;\n                    if (pDVar21->offset_size_ == 4) {\n                      VVar12 = Dwarf_info_reader::read_from_pointer<32>(pDVar21,&pattr);\n                      str_off = (off_t)VVar12;\n                    }\n                    else {\n                      pRVar22 = pDVar21->object_;\nLAB_00302fe7:\n                      pp_Var4 = (pRVar22->super_Object)._vptr_Object;\n                      p_Var5 = pp_Var4[3];\n                      if (p_Var5 == Relobj::is_big_endian) {\n                        iVar9 = (*pp_Var4[0x3a])();\n                        cVar8 = (char)iVar9;\n                      }\n                      else {\n                        iVar9 = (*p_Var5)();\n                        cVar8 = (char)iVar9;\n                      }\n                      str_off = *(off_t *)pattr;\n                      if (cVar8 != '\0') {\n                        str_off = (ulong)str_off >> 0x38 | (str_off & 0xff000000000000U) >> 0x28 |\n                                  (str_off & 0xff0000000000U) >> 0x18 |\n                                  (str_off & 0xff00000000U) >> 8 | (str_off & 0xff000000U) << 8 |\n                                  (str_off & 0xff0000U) << 0x18 | (str_off & 0xff00U) << 0x28 |\n                                  str_off << 0x38;\n                      }\n                      pattr = pattr + 8;\n                    }\nLAB_00303035:\n                    attr_value.aux.shndx =\n                         Dwarf_info_reader::lookup_reloc(this->dwinfo_,(off_t)attr_off,&str_off);\n                    attr_value.val.refval = str_off;\n                    goto joined_r0x00303052;\n                  }\n                  if (uVar11 != 0x18) {\n                    return false;\n                  }\nLAB_00302a09:\n                  bVar1 = *pattr;\n                  aVar10.shndx._1_3_ = 0;\n                  aVar10.shndx._0_1_ = bVar1;\n                  aVar15.stringval = (char *)(pattr + 1);\n                  if ((char)bVar1 < '\0') {\n                    uVar16 = read_unsigned_LEB_128_x(aVar15.blockval,&len,bVar1);\n                    aVar10.shndx = (uint)uVar16;\n                    aVar15.stringval = (char *)(pattr + len);\n                  }\n                  else {\n                    len = 1;\n                  }\n                  pattr = pattr + aVar10.shndx + len;\n                  attr_value.val = aVar15;\n                  attr_value.aux = aVar10;\n                }\n                else {\n                  if (uVar11 == 0x20) {\n                    pp_Var4 = (this->dwinfo_->object_->super_Object)._vptr_Object;\n                    p_Var5 = pp_Var4[3];\n                    if (p_Var5 == Relobj::is_big_endian) {\n                      iVar9 = (*pp_Var4[0x3a])();\n                      cVar8 = (char)iVar9;\n                    }\n                    else {\n                      iVar9 = (*p_Var5)();\n                      cVar8 = (char)iVar9;\n                    }\n                    /* WARNING: Load size is inaccurate */\n                    attr_value.val.blockval = *pattr;\n                    if (cVar8 != '\0') {\n                      attr_value.val.uintval =\n                           attr_value.val.uintval >> 0x38 |\n                           (attr_value.val.uintval & 0xff000000000000) >> 0x28 |\n                           (attr_value.val.uintval & 0xff0000000000) >> 0x18 |\n                           (attr_value.val.uintval & 0xff00000000) >> 8 |\n                           (attr_value.val.uintval & 0xff000000) << 8 |\n                           (attr_value.val.uintval & 0xff0000) << 0x18 |\n                           (attr_value.val.uintval & 0xff00) << 0x28 |\n                           attr_value.val.uintval << 0x38;\n                    }\n                    pattr = pattr + 8;\n                    goto LAB_00302ea9;\n                  }\n                  if (uVar11 < 0x20) {\n                    return false;\n                  }\n                  if (1 < uVar11 - 0x1f01) {\n                    return false;\n                  }\nLAB_00302bcd:\n                  bVar1 = *pattr;\n                  aVar14.intval._1_7_ = 0;\n                  aVar14.uintval._0_1_ = bVar1;\n                  if ((char)bVar1 < '\0') {\n                    attr_value.val.uintval = read_unsigned_LEB_128_x(pattr + 1,&len,bVar1);\n                    pattr = pattr + len;\n                  }\n                  else {\n                    len = 1;\n                    pattr = pattr + 1;\n                    attr_value.val = aVar14;\n                  }\n                }\nLAB_00302f92:\n                if (uVar2 == 0x31) goto LAB_00302750;\n                if (0x31 < uVar2) {\n                  if ((uVar2 == 0x6e) || (uVar2 == 0x2007)) goto LAB_00302fb5;\n                  goto LAB_00302750;\n                }\n                goto LAB_00302e3e;\n              }\n              attr_value.val.intval = 1;\nLAB_00302ea9:\n              if (((uVar2 == 0x31) || (0x31 < uVar2)) || (uVar2 != 3)) goto LAB_00302750;\nLAB_00302e52:\n              if (uVar11 == 8) {\nLAB_003029c7:\n                this->name_ = (char *)attr_value.val;\n              }\n              else if (uVar11 == 0xe) goto LAB_00302f64;\n              goto LAB_00302750;\n            }\n            if (uVar11 != 0x11) {\n              if (0x11 < uVar11) {\n                if (uVar11 == 0x13) {\n                  VVar12 = Dwarf_info_reader::read_from_pointer<32>(this->dwinfo_,&pattr);\n                  str_off = (off_t)VVar12;\n                  goto LAB_00303035;\n                }\n                if (0x13 < uVar11) {\n                  pRVar22 = this->dwinfo_->object_;\n                  goto LAB_00302fe7;\n                }\n                pp_Var4 = (this->dwinfo_->object_->super_Object)._vptr_Object;\n                p_Var5 = pp_Var4[3];\n                if (p_Var5 == Relobj::is_big_endian) {\n                  iVar9 = (*pp_Var4[0x3a])();\n                  cVar8 = (char)iVar9;\n                }\n                else {\n                  iVar9 = (*p_Var5)();\n                  cVar8 = (char)iVar9;\n                }\n                uVar7 = *(ushort *)pattr;\n                if (cVar8 != '\0') {\n                  uVar7 = CONCAT11(*pattr,pattr[1]);\n                }\n                attr_value.val.intval._2_6_ = 0;\n                attr_value.val.intval._0_2_ = uVar7;\n                pattr = pattr + 2;\n                goto joined_r0x00303052;\n              }\n              if (uVar11 == 0xf) goto LAB_00302bcd;\n              if (uVar11 != 0x10) {\n                return false;\n              }\n              pDVar21 = this->dwinfo_;\n              uVar11 = pDVar21->address_size_;\n              if (2 < pDVar21->cu_version_) {\n                uVar11 = pDVar21->offset_size_;\n              }\n              if (uVar11 != 4) goto LAB_00302a71;\nLAB_00302e7d:\n              VVar12 = Dwarf_info_reader::read_from_pointer<32>(pDVar21,&pattr);\n              str_off = (off_t)VVar12;\nLAB_00302abe:\n              attr_value.aux.shndx =\n                   Dwarf_info_reader::lookup_reloc(this->dwinfo_,(off_t)attr_off,&str_off);\n              attr_value.val.refval = str_off;\n              if (uVar2 == 0x31) goto LAB_00302965;\n              if (0x31 < uVar2) goto joined_r0x00302ccc;\n              goto LAB_00302c20;\n            }\n            puVar23 = pattr + 1;\n            attr_value.val.intval._1_7_ = 0;\n            attr_value.val.uintval._0_1_ = *pattr;\n            pattr = puVar23;\n            if (uVar2 != 0x31) {\n              if (uVar2 < 0x32) {\n                if (uVar2 == 1) {\n                  this->sibling_offset_ = (off_t)attr_value.val;\n                }\n                goto LAB_00302750;\n              }\njoined_r0x00302ccc:\n              if ((uVar2 == 0x6e) || (uVar2 == 0x2007)) goto LAB_00302750;\n              goto joined_r0x00302ce3;\n            }\n          }" else (compound_statement "{\n            if (0x15 < uVar11) {\n              if (uVar11 != 0x19) {\n                if (uVar11 < 0x1a) {\n                  if (uVar11 == 0x17) {\n                    pDVar21 = this->dwinfo_;\n                    if (pDVar21->offset_size_ == 4) {\n                      VVar12 = Dwarf_info_reader::read_from_pointer<32>(pDVar21,&pattr);\n                      str_off = (off_t)VVar12;\n                    }\n                    else {\n                      pRVar22 = pDVar21->object_;\nLAB_00302fe7:\n                      pp_Var4 = (pRVar22->super_Object)._vptr_Object;\n                      p_Var5 = pp_Var4[3];\n                      if (p_Var5 == Relobj::is_big_endian) {\n                        iVar9 = (*pp_Var4[0x3a])();\n                        cVar8 = (char)iVar9;\n                      }\n                      else {\n                        iVar9 = (*p_Var5)();\n                        cVar8 = (char)iVar9;\n                      }\n                      str_off = *(off_t *)pattr;\n                      if (cVar8 != '\0') {\n                        str_off = (ulong)str_off >> 0x38 | (str_off & 0xff000000000000U) >> 0x28 |\n                                  (str_off & 0xff0000000000U) >> 0x18 |\n                                  (str_off & 0xff00000000U) >> 8 | (str_off & 0xff000000U) << 8 |\n                                  (str_off & 0xff0000U) << 0x18 | (str_off & 0xff00U) << 0x28 |\n                                  str_off << 0x38;\n                      }\n                      pattr = pattr + 8;\n                    }\nLAB_00303035:\n                    attr_value.aux.shndx =\n                         Dwarf_info_reader::lookup_reloc(this->dwinfo_,(off_t)attr_off,&str_off);\n                    attr_value.val.refval = str_off;\n                    goto joined_r0x00303052;\n                  }\n                  if (uVar11 != 0x18) {\n                    return false;\n                  }\nLAB_00302a09:\n                  bVar1 = *pattr;\n                  aVar10.shndx._1_3_ = 0;\n                  aVar10.shndx._0_1_ = bVar1;\n                  aVar15.stringval = (char *)(pattr + 1);\n                  if ((char)bVar1 < '\0') {\n                    uVar16 = read_unsigned_LEB_128_x(aVar15.blockval,&len,bVar1);\n                    aVar10.shndx = (uint)uVar16;\n                    aVar15.stringval = (char *)(pattr + len);\n                  }\n                  else {\n                    len = 1;\n                  }\n                  pattr = pattr + aVar10.shndx + len;\n                  attr_value.val = aVar15;\n                  attr_value.aux = aVar10;\n                }\n                else {\n                  if (uVar11 == 0x20) {\n                    pp_Var4 = (this->dwinfo_->object_->super_Object)._vptr_Object;\n                    p_Var5 = pp_Var4[3];\n                    if (p_Var5 == Relobj::is_big_endian) {\n                      iVar9 = (*pp_Var4[0x3a])();\n                      cVar8 = (char)iVar9;\n                    }\n                    else {\n                      iVar9 = (*p_Var5)();\n                      cVar8 = (char)iVar9;\n                    }\n                    /* WARNING: Load size is inaccurate */\n                    attr_value.val.blockval = *pattr;\n                    if (cVar8 != '\0') {\n                      attr_value.val.uintval =\n                           attr_value.val.uintval >> 0x38 |\n                           (attr_value.val.uintval & 0xff000000000000) >> 0x28 |\n                           (attr_value.val.uintval & 0xff0000000000) >> 0x18 |\n                           (attr_value.val.uintval & 0xff00000000) >> 8 |\n                           (attr_value.val.uintval & 0xff000000) << 8 |\n                           (attr_value.val.uintval & 0xff0000) << 0x18 |\n                           (attr_value.val.uintval & 0xff00) << 0x28 |\n                           attr_value.val.uintval << 0x38;\n                    }\n                    pattr = pattr + 8;\n                    goto LAB_00302ea9;\n                  }\n                  if (uVar11 < 0x20) {\n                    return false;\n                  }\n                  if (1 < uVar11 - 0x1f01) {\n                    return false;\n                  }\nLAB_00302bcd:\n                  bVar1 = *pattr;\n                  aVar14.intval._1_7_ = 0;\n                  aVar14.uintval._0_1_ = bVar1;\n                  if ((char)bVar1 < '\0') {\n                    attr_value.val.uintval = read_unsigned_LEB_128_x(pattr + 1,&len,bVar1);\n                    pattr = pattr + len;\n                  }\n                  else {\n                    len = 1;\n                    pattr = pattr + 1;\n                    attr_value.val = aVar14;\n                  }\n                }\nLAB_00302f92:\n                if (uVar2 == 0x31) goto LAB_00302750;\n                if (0x31 < uVar2) {\n                  if ((uVar2 == 0x6e) || (uVar2 == 0x2007)) goto LAB_00302fb5;\n                  goto LAB_00302750;\n                }\n                goto LAB_00302e3e;\n              }\n              attr_value.val.intval = 1;\nLAB_00302ea9:\n              if (((uVar2 == 0x31) || (0x31 < uVar2)) || (uVar2 != 3)) goto LAB_00302750;\nLAB_00302e52:\n              if (uVar11 == 8) {\nLAB_003029c7:\n                this->name_ = (char *)attr_value.val;\n              }\n              else if (uVar11 == 0xe) goto LAB_00302f64;\n              goto LAB_00302750;\n            }\n            if (uVar11 != 0x11) {\n              if (0x11 < uVar11) {\n                if (uVar11 == 0x13) {\n                  VVar12 = Dwarf_info_reader::read_from_pointer<32>(this->dwinfo_,&pattr);\n                  str_off = (off_t)VVar12;\n                  goto LAB_00303035;\n                }\n                if (0x13 < uVar11) {\n                  pRVar22 = this->dwinfo_->object_;\n                  goto LAB_00302fe7;\n                }\n                pp_Var4 = (this->dwinfo_->object_->super_Object)._vptr_Object;\n                p_Var5 = pp_Var4[3];\n                if (p_Var5 == Relobj::is_big_endian) {\n                  iVar9 = (*pp_Var4[0x3a])();\n                  cVar8 = (char)iVar9;\n                }\n                else {\n                  iVar9 = (*p_Var5)();\n                  cVar8 = (char)iVar9;\n                }\n                uVar7 = *(ushort *)pattr;\n                if (cVar8 != '\0') {\n                  uVar7 = CONCAT11(*pattr,pattr[1]);\n                }\n                attr_value.val.intval._2_6_ = 0;\n                attr_value.val.intval._0_2_ = uVar7;\n                pattr = pattr + 2;\n                goto joined_r0x00303052;\n              }\n              if (uVar11 == 0xf) goto LAB_00302bcd;\n              if (uVar11 != 0x10) {\n                return false;\n              }\n              pDVar21 = this->dwinfo_;\n              uVar11 = pDVar21->address_size_;\n              if (2 < pDVar21->cu_version_) {\n                uVar11 = pDVar21->offset_size_;\n              }\n              if (uVar11 != 4) goto LAB_00302a71;\nLAB_00302e7d:\n              VVar12 = Dwarf_info_reader::read_from_pointer<32>(pDVar21,&pattr);\n              str_off = (off_t)VVar12;\nLAB_00302abe:\n              attr_value.aux.shndx =\n                   Dwarf_info_reader::lookup_reloc(this->dwinfo_,(off_t)attr_off,&str_off);\n              attr_value.val.refval = str_off;\n              if (uVar2 == 0x31) goto LAB_00302965;\n              if (0x31 < uVar2) goto joined_r0x00302ccc;\n              goto LAB_00302c20;\n            }\n            puVar23 = pattr + 1;\n            attr_value.val.intval._1_7_ = 0;\n            attr_value.val.uintval._0_1_ = *pattr;\n            pattr = puVar23;\n            if (uVar2 != 0x31) {\n              if (uVar2 < 0x32) {\n                if (uVar2 == 1) {\n                  this->sibling_offset_ = (off_t)attr_value.val;\n                }\n                goto LAB_00302750;\n              }\njoined_r0x00302ccc:\n              if ((uVar2 == 0x6e) || (uVar2 == 0x2007)) goto LAB_00302750;\n              goto joined_r0x00302ce3;\n            }\n          }" { (if_statement "if (0x15 < uVar11) {\n              if (uVar11 != 0x19) {\n                if (uVar11 < 0x1a) {\n                  if (uVar11 == 0x17) {\n                    pDVar21 = this->dwinfo_;\n                    if (pDVar21->offset_size_ == 4) {\n                      VVar12 = Dwarf_info_reader::read_from_pointer<32>(pDVar21,&pattr);\n                      str_off = (off_t)VVar12;\n                    }\n                    else {\n                      pRVar22 = pDVar21->object_;\nLAB_00302fe7:\n                      pp_Var4 = (pRVar22->super_Object)._vptr_Object;\n                      p_Var5 = pp_Var4[3];\n                      if (p_Var5 == Relobj::is_big_endian) {\n                        iVar9 = (*pp_Var4[0x3a])();\n                        cVar8 = (char)iVar9;\n                      }\n                      else {\n                        iVar9 = (*p_Var5)();\n                        cVar8 = (char)iVar9;\n                      }\n                      str_off = *(off_t *)pattr;\n                      if (cVar8 != '\0') {\n                        str_off = (ulong)str_off >> 0x38 | (str_off & 0xff000000000000U) >> 0x28 |\n                                  (str_off & 0xff0000000000U) >> 0x18 |\n                                  (str_off & 0xff00000000U) >> 8 | (str_off & 0xff000000U) << 8 |\n                                  (str_off & 0xff0000U) << 0x18 | (str_off & 0xff00U) << 0x28 |\n                                  str_off << 0x38;\n                      }\n                      pattr = pattr + 8;\n                    }\nLAB_00303035:\n                    attr_value.aux.shndx =\n                         Dwarf_info_reader::lookup_reloc(this->dwinfo_,(off_t)attr_off,&str_off);\n                    attr_value.val.refval = str_off;\n                    goto joined_r0x00303052;\n                  }\n                  if (uVar11 != 0x18) {\n                    return false;\n                  }\nLAB_00302a09:\n                  bVar1 = *pattr;\n                  aVar10.shndx._1_3_ = 0;\n                  aVar10.shndx._0_1_ = bVar1;\n                  aVar15.stringval = (char *)(pattr + 1);\n                  if ((char)bVar1 < '\0') {\n                    uVar16 = read_unsigned_LEB_128_x(aVar15.blockval,&len,bVar1);\n                    aVar10.shndx = (uint)uVar16;\n                    aVar15.stringval = (char *)(pattr + len);\n                  }\n                  else {\n                    len = 1;\n                  }\n                  pattr = pattr + aVar10.shndx + len;\n                  attr_value.val = aVar15;\n                  attr_value.aux = aVar10;\n                }\n                else {\n                  if (uVar11 == 0x20) {\n                    pp_Var4 = (this->dwinfo_->object_->super_Object)._vptr_Object;\n                    p_Var5 = pp_Var4[3];\n                    if (p_Var5 == Relobj::is_big_endian) {\n                      iVar9 = (*pp_Var4[0x3a])();\n                      cVar8 = (char)iVar9;\n                    }\n                    else {\n                      iVar9 = (*p_Var5)();\n                      cVar8 = (char)iVar9;\n                    }\n                    /* WARNING: Load size is inaccurate */\n                    attr_value.val.blockval = *pattr;\n                    if (cVar8 != '\0') {\n                      attr_value.val.uintval =\n                           attr_value.val.uintval >> 0x38 |\n                           (attr_value.val.uintval & 0xff000000000000) >> 0x28 |\n                           (attr_value.val.uintval & 0xff0000000000) >> 0x18 |\n                           (attr_value.val.uintval & 0xff00000000) >> 8 |\n                           (attr_value.val.uintval & 0xff000000) << 8 |\n                           (attr_value.val.uintval & 0xff0000) << 0x18 |\n                           (attr_value.val.uintval & 0xff00) << 0x28 |\n                           attr_value.val.uintval << 0x38;\n                    }\n                    pattr = pattr + 8;\n                    goto LAB_00302ea9;\n                  }\n                  if (uVar11 < 0x20) {\n                    return false;\n                  }\n                  if (1 < uVar11 - 0x1f01) {\n                    return false;\n                  }\nLAB_00302bcd:\n                  bVar1 = *pattr;\n                  aVar14.intval._1_7_ = 0;\n                  aVar14.uintval._0_1_ = bVar1;\n                  if ((char)bVar1 < '\0') {\n                    attr_value.val.uintval = read_unsigned_LEB_128_x(pattr + 1,&len,bVar1);\n                    pattr = pattr + len;\n                  }\n                  else {\n                    len = 1;\n                    pattr = pattr + 1;\n                    attr_value.val = aVar14;\n                  }\n                }\nLAB_00302f92:\n                if (uVar2 == 0x31) goto LAB_00302750;\n                if (0x31 < uVar2) {\n                  if ((uVar2 == 0x6e) || (uVar2 == 0x2007)) goto LAB_00302fb5;\n                  goto LAB_00302750;\n                }\n                goto LAB_00302e3e;\n              }\n              attr_value.val.intval = 1;\nLAB_00302ea9:\n              if (((uVar2 == 0x31) || (0x31 < uVar2)) || (uVar2 != 3)) goto LAB_00302750;\nLAB_00302e52:\n              if (uVar11 == 8) {\nLAB_003029c7:\n                this->name_ = (char *)attr_value.val;\n              }\n              else if (uVar11 == 0xe) goto LAB_00302f64;\n              goto LAB_00302750;\n            }" if (parenthesized_expression "(0x15 < uVar11)" ( (binary_expression "0x15 < uVar11" number_literal < identifier) )) (compound_statement "{\n              if (uVar11 != 0x19) {\n                if (uVar11 < 0x1a) {\n                  if (uVar11 == 0x17) {\n                    pDVar21 = this->dwinfo_;\n                    if (pDVar21->offset_size_ == 4) {\n                      VVar12 = Dwarf_info_reader::read_from_pointer<32>(pDVar21,&pattr);\n                      str_off = (off_t)VVar12;\n                    }\n                    else {\n                      pRVar22 = pDVar21->object_;\nLAB_00302fe7:\n                      pp_Var4 = (pRVar22->super_Object)._vptr_Object;\n                      p_Var5 = pp_Var4[3];\n                      if (p_Var5 == Relobj::is_big_endian) {\n                        iVar9 = (*pp_Var4[0x3a])();\n                        cVar8 = (char)iVar9;\n                      }\n                      else {\n                        iVar9 = (*p_Var5)();\n                        cVar8 = (char)iVar9;\n                      }\n                      str_off = *(off_t *)pattr;\n                      if (cVar8 != '\0') {\n                        str_off = (ulong)str_off >> 0x38 | (str_off & 0xff000000000000U) >> 0x28 |\n                                  (str_off & 0xff0000000000U) >> 0x18 |\n                                  (str_off & 0xff00000000U) >> 8 | (str_off & 0xff000000U) << 8 |\n                                  (str_off & 0xff0000U) << 0x18 | (str_off & 0xff00U) << 0x28 |\n                                  str_off << 0x38;\n                      }\n                      pattr = pattr + 8;\n                    }\nLAB_00303035:\n                    attr_value.aux.shndx =\n                         Dwarf_info_reader::lookup_reloc(this->dwinfo_,(off_t)attr_off,&str_off);\n                    attr_value.val.refval = str_off;\n                    goto joined_r0x00303052;\n                  }\n                  if (uVar11 != 0x18) {\n                    return false;\n                  }\nLAB_00302a09:\n                  bVar1 = *pattr;\n                  aVar10.shndx._1_3_ = 0;\n                  aVar10.shndx._0_1_ = bVar1;\n                  aVar15.stringval = (char *)(pattr + 1);\n                  if ((char)bVar1 < '\0') {\n                    uVar16 = read_unsigned_LEB_128_x(aVar15.blockval,&len,bVar1);\n                    aVar10.shndx = (uint)uVar16;\n                    aVar15.stringval = (char *)(pattr + len);\n                  }\n                  else {\n                    len = 1;\n                  }\n                  pattr = pattr + aVar10.shndx + len;\n                  attr_value.val = aVar15;\n                  attr_value.aux = aVar10;\n                }\n                else {\n                  if (uVar11 == 0x20) {\n                    pp_Var4 = (this->dwinfo_->object_->super_Object)._vptr_Object;\n                    p_Var5 = pp_Var4[3];\n                    if (p_Var5 == Relobj::is_big_endian) {\n                      iVar9 = (*pp_Var4[0x3a])();\n                      cVar8 = (char)iVar9;\n                    }\n                    else {\n                      iVar9 = (*p_Var5)();\n                      cVar8 = (char)iVar9;\n                    }\n                    /* WARNING: Load size is inaccurate */\n                    attr_value.val.blockval = *pattr;\n                    if (cVar8 != '\0') {\n                      attr_value.val.uintval =\n                           attr_value.val.uintval >> 0x38 |\n                           (attr_value.val.uintval & 0xff000000000000) >> 0x28 |\n                           (attr_value.val.uintval & 0xff0000000000) >> 0x18 |\n                           (attr_value.val.uintval & 0xff00000000) >> 8 |\n                           (attr_value.val.uintval & 0xff000000) << 8 |\n                           (attr_value.val.uintval & 0xff0000) << 0x18 |\n                           (attr_value.val.uintval & 0xff00) << 0x28 |\n                           attr_value.val.uintval << 0x38;\n                    }\n                    pattr = pattr + 8;\n                    goto LAB_00302ea9;\n                  }\n                  if (uVar11 < 0x20) {\n                    return false;\n                  }\n                  if (1 < uVar11 - 0x1f01) {\n                    return false;\n                  }\nLAB_00302bcd:\n                  bVar1 = *pattr;\n                  aVar14.intval._1_7_ = 0;\n                  aVar14.uintval._0_1_ = bVar1;\n                  if ((char)bVar1 < '\0') {\n                    attr_value.val.uintval = read_unsigned_LEB_128_x(pattr + 1,&len,bVar1);\n                    pattr = pattr + len;\n                  }\n                  else {\n                    len = 1;\n                    pattr = pattr + 1;\n                    attr_value.val = aVar14;\n                  }\n                }\nLAB_00302f92:\n                if (uVar2 == 0x31) goto LAB_00302750;\n                if (0x31 < uVar2) {\n                  if ((uVar2 == 0x6e) || (uVar2 == 0x2007)) goto LAB_00302fb5;\n                  goto LAB_00302750;\n                }\n                goto LAB_00302e3e;\n              }\n              attr_value.val.intval = 1;\nLAB_00302ea9:\n              if (((uVar2 == 0x31) || (0x31 < uVar2)) || (uVar2 != 3)) goto LAB_00302750;\nLAB_00302e52:\n              if (uVar11 == 8) {\nLAB_003029c7:\n                this->name_ = (char *)attr_value.val;\n              }\n              else if (uVar11 == 0xe) goto LAB_00302f64;\n              goto LAB_00302750;\n            }" { (if_statement "if (uVar11 != 0x19) {\n                if (uVar11 < 0x1a) {\n                  if (uVar11 == 0x17) {\n                    pDVar21 = this->dwinfo_;\n                    if (pDVar21->offset_size_ == 4) {\n                      VVar12 = Dwarf_info_reader::read_from_pointer<32>(pDVar21,&pattr);\n                      str_off = (off_t)VVar12;\n                    }\n                    else {\n                      pRVar22 = pDVar21->object_;\nLAB_00302fe7:\n                      pp_Var4 = (pRVar22->super_Object)._vptr_Object;\n                      p_Var5 = pp_Var4[3];\n                      if (p_Var5 == Relobj::is_big_endian) {\n                        iVar9 = (*pp_Var4[0x3a])();\n                        cVar8 = (char)iVar9;\n                      }\n                      else {\n                        iVar9 = (*p_Var5)();\n                        cVar8 = (char)iVar9;\n                      }\n                      str_off = *(off_t *)pattr;\n                      if (cVar8 != '\0') {\n                        str_off = (ulong)str_off >> 0x38 | (str_off & 0xff000000000000U) >> 0x28 |\n                                  (str_off & 0xff0000000000U) >> 0x18 |\n                                  (str_off & 0xff00000000U) >> 8 | (str_off & 0xff000000U) << 8 |\n                                  (str_off & 0xff0000U) << 0x18 | (str_off & 0xff00U) << 0x28 |\n                                  str_off << 0x38;\n                      }\n                      pattr = pattr + 8;\n                    }\nLAB_00303035:\n                    attr_value.aux.shndx =\n                         Dwarf_info_reader::lookup_reloc(this->dwinfo_,(off_t)attr_off,&str_off);\n                    attr_value.val.refval = str_off;\n                    goto joined_r0x00303052;\n                  }\n                  if (uVar11 != 0x18) {\n                    return false;\n                  }\nLAB_00302a09:\n                  bVar1 = *pattr;\n                  aVar10.shndx._1_3_ = 0;\n                  aVar10.shndx._0_1_ = bVar1;\n                  aVar15.stringval = (char *)(pattr + 1);\n                  if ((char)bVar1 < '\0') {\n                    uVar16 = read_unsigned_LEB_128_x(aVar15.blockval,&len,bVar1);\n                    aVar10.shndx = (uint)uVar16;\n                    aVar15.stringval = (char *)(pattr + len);\n                  }\n                  else {\n                    len = 1;\n                  }\n                  pattr = pattr + aVar10.shndx + len;\n                  attr_value.val = aVar15;\n                  attr_value.aux = aVar10;\n                }\n                else {\n                  if (uVar11 == 0x20) {\n                    pp_Var4 = (this->dwinfo_->object_->super_Object)._vptr_Object;\n                    p_Var5 = pp_Var4[3];\n                    if (p_Var5 == Relobj::is_big_endian) {\n                      iVar9 = (*pp_Var4[0x3a])();\n                      cVar8 = (char)iVar9;\n                    }\n                    else {\n                      iVar9 = (*p_Var5)();\n                      cVar8 = (char)iVar9;\n                    }\n                    /* WARNING: Load size is inaccurate */\n                    attr_value.val.blockval = *pattr;\n                    if (cVar8 != '\0') {\n                      attr_value.val.uintval =\n                           attr_value.val.uintval >> 0x38 |\n                           (attr_value.val.uintval & 0xff000000000000) >> 0x28 |\n                           (attr_value.val.uintval & 0xff0000000000) >> 0x18 |\n                           (attr_value.val.uintval & 0xff00000000) >> 8 |\n                           (attr_value.val.uintval & 0xff000000) << 8 |\n                           (attr_value.val.uintval & 0xff0000) << 0x18 |\n                           (attr_value.val.uintval & 0xff00) << 0x28 |\n                           attr_value.val.uintval << 0x38;\n                    }\n                    pattr = pattr + 8;\n                    goto LAB_00302ea9;\n                  }\n                  if (uVar11 < 0x20) {\n                    return false;\n                  }\n                  if (1 < uVar11 - 0x1f01) {\n                    return false;\n                  }\nLAB_00302bcd:\n                  bVar1 = *pattr;\n                  aVar14.intval._1_7_ = 0;\n                  aVar14.uintval._0_1_ = bVar1;\n                  if ((char)bVar1 < '\0') {\n                    attr_value.val.uintval = read_unsigned_LEB_128_x(pattr + 1,&len,bVar1);\n                    pattr = pattr + len;\n                  }\n                  else {\n                    len = 1;\n                    pattr = pattr + 1;\n                    attr_value.val = aVar14;\n                  }\n                }\nLAB_00302f92:\n                if (uVar2 == 0x31) goto LAB_00302750;\n                if (0x31 < uVar2) {\n                  if ((uVar2 == 0x6e) || (uVar2 == 0x2007)) goto LAB_00302fb5;\n                  goto LAB_00302750;\n                }\n                goto LAB_00302e3e;\n              }" if (parenthesized_expression "(uVar11 != 0x19)" ( (binary_expression "uVar11 != 0x19" identifier != number_literal) )) (compound_statement "{\n                if (uVar11 < 0x1a) {\n                  if (uVar11 == 0x17) {\n                    pDVar21 = this->dwinfo_;\n                    if (pDVar21->offset_size_ == 4) {\n                      VVar12 = Dwarf_info_reader::read_from_pointer<32>(pDVar21,&pattr);\n                      str_off = (off_t)VVar12;\n                    }\n                    else {\n                      pRVar22 = pDVar21->object_;\nLAB_00302fe7:\n                      pp_Var4 = (pRVar22->super_Object)._vptr_Object;\n                      p_Var5 = pp_Var4[3];\n                      if (p_Var5 == Relobj::is_big_endian) {\n                        iVar9 = (*pp_Var4[0x3a])();\n                        cVar8 = (char)iVar9;\n                      }\n                      else {\n                        iVar9 = (*p_Var5)();\n                        cVar8 = (char)iVar9;\n                      }\n                      str_off = *(off_t *)pattr;\n                      if (cVar8 != '\0') {\n                        str_off = (ulong)str_off >> 0x38 | (str_off & 0xff000000000000U) >> 0x28 |\n                                  (str_off & 0xff0000000000U) >> 0x18 |\n                                  (str_off & 0xff00000000U) >> 8 | (str_off & 0xff000000U) << 8 |\n                                  (str_off & 0xff0000U) << 0x18 | (str_off & 0xff00U) << 0x28 |\n                                  str_off << 0x38;\n                      }\n                      pattr = pattr + 8;\n                    }\nLAB_00303035:\n                    attr_value.aux.shndx =\n                         Dwarf_info_reader::lookup_reloc(this->dwinfo_,(off_t)attr_off,&str_off);\n                    attr_value.val.refval = str_off;\n                    goto joined_r0x00303052;\n                  }\n                  if (uVar11 != 0x18) {\n                    return false;\n                  }\nLAB_00302a09:\n                  bVar1 = *pattr;\n                  aVar10.shndx._1_3_ = 0;\n                  aVar10.shndx._0_1_ = bVar1;\n                  aVar15.stringval = (char *)(pattr + 1);\n                  if ((char)bVar1 < '\0') {\n                    uVar16 = read_unsigned_LEB_128_x(aVar15.blockval,&len,bVar1);\n                    aVar10.shndx = (uint)uVar16;\n                    aVar15.stringval = (char *)(pattr + len);\n                  }\n                  else {\n                    len = 1;\n                  }\n                  pattr = pattr + aVar10.shndx + len;\n                  attr_value.val = aVar15;\n                  attr_value.aux = aVar10;\n                }\n                else {\n                  if (uVar11 == 0x20) {\n                    pp_Var4 = (this->dwinfo_->object_->super_Object)._vptr_Object;\n                    p_Var5 = pp_Var4[3];\n                    if (p_Var5 == Relobj::is_big_endian) {\n                      iVar9 = (*pp_Var4[0x3a])();\n                      cVar8 = (char)iVar9;\n                    }\n                    else {\n                      iVar9 = (*p_Var5)();\n                      cVar8 = (char)iVar9;\n                    }\n                    /* WARNING: Load size is inaccurate */\n                    attr_value.val.blockval = *pattr;\n                    if (cVar8 != '\0') {\n                      attr_value.val.uintval =\n                           attr_value.val.uintval >> 0x38 |\n                           (attr_value.val.uintval & 0xff000000000000) >> 0x28 |\n                           (attr_value.val.uintval & 0xff0000000000) >> 0x18 |\n                           (attr_value.val.uintval & 0xff00000000) >> 8 |\n                           (attr_value.val.uintval & 0xff000000) << 8 |\n                           (attr_value.val.uintval & 0xff0000) << 0x18 |\n                           (attr_value.val.uintval & 0xff00) << 0x28 |\n                           attr_value.val.uintval << 0x38;\n                    }\n                    pattr = pattr + 8;\n                    goto LAB_00302ea9;\n                  }\n                  if (uVar11 < 0x20) {\n                    return false;\n                  }\n                  if (1 < uVar11 - 0x1f01) {\n                    return false;\n                  }\nLAB_00302bcd:\n                  bVar1 = *pattr;\n                  aVar14.intval._1_7_ = 0;\n                  aVar14.uintval._0_1_ = bVar1;\n                  if ((char)bVar1 < '\0') {\n                    attr_value.val.uintval = read_unsigned_LEB_128_x(pattr + 1,&len,bVar1);\n                    pattr = pattr + len;\n                  }\n                  else {\n                    len = 1;\n                    pattr = pattr + 1;\n                    attr_value.val = aVar14;\n                  }\n                }\nLAB_00302f92:\n                if (uVar2 == 0x31) goto LAB_00302750;\n                if (0x31 < uVar2) {\n                  if ((uVar2 == 0x6e) || (uVar2 == 0x2007)) goto LAB_00302fb5;\n                  goto LAB_00302750;\n                }\n                goto LAB_00302e3e;\n              }" { (if_statement "if (uVar11 < 0x1a) {\n                  if (uVar11 == 0x17) {\n                    pDVar21 = this->dwinfo_;\n                    if (pDVar21->offset_size_ == 4) {\n                      VVar12 = Dwarf_info_reader::read_from_pointer<32>(pDVar21,&pattr);\n                      str_off = (off_t)VVar12;\n                    }\n                    else {\n                      pRVar22 = pDVar21->object_;\nLAB_00302fe7:\n                      pp_Var4 = (pRVar22->super_Object)._vptr_Object;\n                      p_Var5 = pp_Var4[3];\n                      if (p_Var5 == Relobj::is_big_endian) {\n                        iVar9 = (*pp_Var4[0x3a])();\n                        cVar8 = (char)iVar9;\n                      }\n                      else {\n                        iVar9 = (*p_Var5)();\n                        cVar8 = (char)iVar9;\n                      }\n                      str_off = *(off_t *)pattr;\n                      if (cVar8 != '\0') {\n                        str_off = (ulong)str_off >> 0x38 | (str_off & 0xff000000000000U) >> 0x28 |\n                                  (str_off & 0xff0000000000U) >> 0x18 |\n                                  (str_off & 0xff00000000U) >> 8 | (str_off & 0xff000000U) << 8 |\n                                  (str_off & 0xff0000U) << 0x18 | (str_off & 0xff00U) << 0x28 |\n                                  str_off << 0x38;\n                      }\n                      pattr = pattr + 8;\n                    }\nLAB_00303035:\n                    attr_value.aux.shndx =\n                         Dwarf_info_reader::lookup_reloc(this->dwinfo_,(off_t)attr_off,&str_off);\n                    attr_value.val.refval = str_off;\n                    goto joined_r0x00303052;\n                  }\n                  if (uVar11 != 0x18) {\n                    return false;\n                  }\nLAB_00302a09:\n                  bVar1 = *pattr;\n                  aVar10.shndx._1_3_ = 0;\n                  aVar10.shndx._0_1_ = bVar1;\n                  aVar15.stringval = (char *)(pattr + 1);\n                  if ((char)bVar1 < '\0') {\n                    uVar16 = read_unsigned_LEB_128_x(aVar15.blockval,&len,bVar1);\n                    aVar10.shndx = (uint)uVar16;\n                    aVar15.stringval = (char *)(pattr + len);\n                  }\n                  else {\n                    len = 1;\n                  }\n                  pattr = pattr + aVar10.shndx + len;\n                  attr_value.val = aVar15;\n                  attr_value.aux = aVar10;\n                }\n                else {\n                  if (uVar11 == 0x20) {\n                    pp_Var4 = (this->dwinfo_->object_->super_Object)._vptr_Object;\n                    p_Var5 = pp_Var4[3];\n                    if (p_Var5 == Relobj::is_big_endian) {\n                      iVar9 = (*pp_Var4[0x3a])();\n                      cVar8 = (char)iVar9;\n                    }\n                    else {\n                      iVar9 = (*p_Var5)();\n                      cVar8 = (char)iVar9;\n                    }\n                    /* WARNING: Load size is inaccurate */\n                    attr_value.val.blockval = *pattr;\n                    if (cVar8 != '\0') {\n                      attr_value.val.uintval =\n                           attr_value.val.uintval >> 0x38 |\n                           (attr_value.val.uintval & 0xff000000000000) >> 0x28 |\n                           (attr_value.val.uintval & 0xff0000000000) >> 0x18 |\n                           (attr_value.val.uintval & 0xff00000000) >> 8 |\n                           (attr_value.val.uintval & 0xff000000) << 8 |\n                           (attr_value.val.uintval & 0xff0000) << 0x18 |\n                           (attr_value.val.uintval & 0xff00) << 0x28 |\n                           attr_value.val.uintval << 0x38;\n                    }\n                    pattr = pattr + 8;\n                    goto LAB_00302ea9;\n                  }\n                  if (uVar11 < 0x20) {\n                    return false;\n                  }\n                  if (1 < uVar11 - 0x1f01) {\n                    return false;\n                  }\nLAB_00302bcd:\n                  bVar1 = *pattr;\n                  aVar14.intval._1_7_ = 0;\n                  aVar14.uintval._0_1_ = bVar1;\n                  if ((char)bVar1 < '\0') {\n                    attr_value.val.uintval = read_unsigned_LEB_128_x(pattr + 1,&len,bVar1);\n                    pattr = pattr + len;\n                  }\n                  else {\n                    len = 1;\n                    pattr = pattr + 1;\n                    attr_value.val = aVar14;\n                  }\n                }" if (parenthesized_expression "(uVar11 < 0x1a)" ( (binary_expression "uVar11 < 0x1a" identifier < number_literal) )) (compound_statement "{\n                  if (uVar11 == 0x17) {\n                    pDVar21 = this->dwinfo_;\n                    if (pDVar21->offset_size_ == 4) {\n                      VVar12 = Dwarf_info_reader::read_from_pointer<32>(pDVar21,&pattr);\n                      str_off = (off_t)VVar12;\n                    }\n                    else {\n                      pRVar22 = pDVar21->object_;\nLAB_00302fe7:\n                      pp_Var4 = (pRVar22->super_Object)._vptr_Object;\n                      p_Var5 = pp_Var4[3];\n                      if (p_Var5 == Relobj::is_big_endian) {\n                        iVar9 = (*pp_Var4[0x3a])();\n                        cVar8 = (char)iVar9;\n                      }\n                      else {\n                        iVar9 = (*p_Var5)();\n                        cVar8 = (char)iVar9;\n                      }\n                      str_off = *(off_t *)pattr;\n                      if (cVar8 != '\0') {\n                        str_off = (ulong)str_off >> 0x38 | (str_off & 0xff000000000000U) >> 0x28 |\n                                  (str_off & 0xff0000000000U) >> 0x18 |\n                                  (str_off & 0xff00000000U) >> 8 | (str_off & 0xff000000U) << 8 |\n                                  (str_off & 0xff0000U) << 0x18 | (str_off & 0xff00U) << 0x28 |\n                                  str_off << 0x38;\n                      }\n                      pattr = pattr + 8;\n                    }\nLAB_00303035:\n                    attr_value.aux.shndx =\n                         Dwarf_info_reader::lookup_reloc(this->dwinfo_,(off_t)attr_off,&str_off);\n                    attr_value.val.refval = str_off;\n                    goto joined_r0x00303052;\n                  }\n                  if (uVar11 != 0x18) {\n                    return false;\n                  }\nLAB_00302a09:\n                  bVar1 = *pattr;\n                  aVar10.shndx._1_3_ = 0;\n                  aVar10.shndx._0_1_ = bVar1;\n                  aVar15.stringval = (char *)(pattr + 1);\n                  if ((char)bVar1 < '\0') {\n                    uVar16 = read_unsigned_LEB_128_x(aVar15.blockval,&len,bVar1);\n                    aVar10.shndx = (uint)uVar16;\n                    aVar15.stringval = (char *)(pattr + len);\n                  }\n                  else {\n                    len = 1;\n                  }\n                  pattr = pattr + aVar10.shndx + len;\n                  attr_value.val = aVar15;\n                  attr_value.aux = aVar10;\n                }" { (if_statement "if (uVar11 == 0x17) {\n                    pDVar21 = this->dwinfo_;\n                    if (pDVar21->offset_size_ == 4) {\n                      VVar12 = Dwarf_info_reader::read_from_pointer<32>(pDVar21,&pattr);\n                      str_off = (off_t)VVar12;\n                    }\n                    else {\n                      pRVar22 = pDVar21->object_;\nLAB_00302fe7:\n                      pp_Var4 = (pRVar22->super_Object)._vptr_Object;\n                      p_Var5 = pp_Var4[3];\n                      if (p_Var5 == Relobj::is_big_endian) {\n                        iVar9 = (*pp_Var4[0x3a])();\n                        cVar8 = (char)iVar9;\n                      }\n                      else {\n                        iVar9 = (*p_Var5)();\n                        cVar8 = (char)iVar9;\n                      }\n                      str_off = *(off_t *)pattr;\n                      if (cVar8 != '\0') {\n                        str_off = (ulong)str_off >> 0x38 | (str_off & 0xff000000000000U) >> 0x28 |\n                                  (str_off & 0xff0000000000U) >> 0x18 |\n                                  (str_off & 0xff00000000U) >> 8 | (str_off & 0xff000000U) << 8 |\n                                  (str_off & 0xff0000U) << 0x18 | (str_off & 0xff00U) << 0x28 |\n                                  str_off << 0x38;\n                      }\n                      pattr = pattr + 8;\n                    }\nLAB_00303035:\n                    attr_value.aux.shndx =\n                         Dwarf_info_reader::lookup_reloc(this->dwinfo_,(off_t)attr_off,&str_off);\n                    attr_value.val.refval = str_off;\n                    goto joined_r0x00303052;\n                  }" if (parenthesized_expression "(uVar11 == 0x17)" ( (binary_expression "uVar11 == 0x17" identifier == number_literal) )) (compound_statement "{\n                    pDVar21 = this->dwinfo_;\n                    if (pDVar21->offset_size_ == 4) {\n                      VVar12 = Dwarf_info_reader::read_from_pointer<32>(pDVar21,&pattr);\n                      str_off = (off_t)VVar12;\n                    }\n                    else {\n                      pRVar22 = pDVar21->object_;\nLAB_00302fe7:\n                      pp_Var4 = (pRVar22->super_Object)._vptr_Object;\n                      p_Var5 = pp_Var4[3];\n                      if (p_Var5 == Relobj::is_big_endian) {\n                        iVar9 = (*pp_Var4[0x3a])();\n                        cVar8 = (char)iVar9;\n                      }\n                      else {\n                        iVar9 = (*p_Var5)();\n                        cVar8 = (char)iVar9;\n                      }\n                      str_off = *(off_t *)pattr;\n                      if (cVar8 != '\0') {\n                        str_off = (ulong)str_off >> 0x38 | (str_off & 0xff000000000000U) >> 0x28 |\n                                  (str_off & 0xff0000000000U) >> 0x18 |\n                                  (str_off & 0xff00000000U) >> 8 | (str_off & 0xff000000U) << 8 |\n                                  (str_off & 0xff0000U) << 0x18 | (str_off & 0xff00U) << 0x28 |\n                                  str_off << 0x38;\n                      }\n                      pattr = pattr + 8;\n                    }\nLAB_00303035:\n                    attr_value.aux.shndx =\n                         Dwarf_info_reader::lookup_reloc(this->dwinfo_,(off_t)attr_off,&str_off);\n                    attr_value.val.refval = str_off;\n                    goto joined_r0x00303052;\n                  }" { (expression_statement "pDVar21 = this->dwinfo_;" (assignment_expression "pDVar21 = this->dwinfo_" identifier = (field_expression "this->dwinfo_" identifier -> field_identifier)) ;) (if_statement "if (pDVar21->offset_size_ == 4) {\n                      VVar12 = Dwarf_info_reader::read_from_pointer<32>(pDVar21,&pattr);\n                      str_off = (off_t)VVar12;\n                    }\n                    else {\n                      pRVar22 = pDVar21->object_;\nLAB_00302fe7:\n                      pp_Var4 = (pRVar22->super_Object)._vptr_Object;\n                      p_Var5 = pp_Var4[3];\n                      if (p_Var5 == Relobj::is_big_endian) {\n                        iVar9 = (*pp_Var4[0x3a])();\n                        cVar8 = (char)iVar9;\n                      }\n                      else {\n                        iVar9 = (*p_Var5)();\n                        cVar8 = (char)iVar9;\n                      }\n                      str_off = *(off_t *)pattr;\n                      if (cVar8 != '\0') {\n                        str_off = (ulong)str_off >> 0x38 | (str_off & 0xff000000000000U) >> 0x28 |\n                                  (str_off & 0xff0000000000U) >> 0x18 |\n                                  (str_off & 0xff00000000U) >> 8 | (str_off & 0xff000000U) << 8 |\n                                  (str_off & 0xff0000U) << 0x18 | (str_off & 0xff00U) << 0x28 |\n                                  str_off << 0x38;\n                      }\n                      pattr = pattr + 8;\n                    }" if (parenthesized_expression "(pDVar21->offset_size_ == 4)" ( (binary_expression "pDVar21->offset_size_ == 4" (field_expression "pDVar21->offset_size_" identifier -> field_identifier) == number_literal) )) (compound_statement "{\n                      VVar12 = Dwarf_info_reader::read_from_pointer<32>(pDVar21,&pattr);\n                      str_off = (off_t)VVar12;\n                    }" { (expression_statement "VVar12 = Dwarf_info_reader::read_from_pointer<32>(pDVar21,&pattr);" (binary_expression "VVar12 = Dwarf_info_reader::read_from_pointer<32>(pDVar21,&pattr)" (binary_expression "VVar12 = Dwarf_info_reader::read_from_pointer<32" (assignment_expression "VVar12 = Dwarf_info_reader" identifier = identifier) (ERROR "::read_from_pointer" : : identifier) < number_literal) > (parenthesized_expression "(pDVar21,&pattr)" ( (comma_expression "pDVar21,&pattr" identifier , (pointer_expression "&pattr" & identifier)) ))) ;) (expression_statement "str_off = (off_t)VVar12;" (assignment_expression "str_off = (off_t)VVar12" identifier = (cast_expression "(off_t)VVar12" ( (type_descriptor "off_t" type_identifier) ) identifier)) ;) }) (else_clause "else {\n                      pRVar22 = pDVar21->object_;\nLAB_00302fe7:\n                      pp_Var4 = (pRVar22->super_Object)._vptr_Object;\n                      p_Var5 = pp_Var4[3];\n                      if (p_Var5 == Relobj::is_big_endian) {\n                        iVar9 = (*pp_Var4[0x3a])();\n                        cVar8 = (char)iVar9;\n                      }\n                      else {\n                        iVar9 = (*p_Var5)();\n                        cVar8 = (char)iVar9;\n                      }\n                      str_off = *(off_t *)pattr;\n                      if (cVar8 != '\0') {\n                        str_off = (ulong)str_off >> 0x38 | (str_off & 0xff000000000000U) >> 0x28 |\n                                  (str_off & 0xff0000000000U) >> 0x18 |\n                                  (str_off & 0xff00000000U) >> 8 | (str_off & 0xff000000U) << 8 |\n                                  (str_off & 0xff0000U) << 0x18 | (str_off & 0xff00U) << 0x28 |\n                                  str_off << 0x38;\n                      }\n                      pattr = pattr + 8;\n                    }" else (compound_statement "{\n                      pRVar22 = pDVar21->object_;\nLAB_00302fe7:\n                      pp_Var4 = (pRVar22->super_Object)._vptr_Object;\n                      p_Var5 = pp_Var4[3];\n                      if (p_Var5 == Relobj::is_big_endian) {\n                        iVar9 = (*pp_Var4[0x3a])();\n                        cVar8 = (char)iVar9;\n                      }\n                      else {\n                        iVar9 = (*p_Var5)();\n                        cVar8 = (char)iVar9;\n                      }\n                      str_off = *(off_t *)pattr;\n                      if (cVar8 != '\0') {\n                        str_off = (ulong)str_off >> 0x38 | (str_off & 0xff000000000000U) >> 0x28 |\n                                  (str_off & 0xff0000000000U) >> 0x18 |\n                                  (str_off & 0xff00000000U) >> 8 | (str_off & 0xff000000U) << 8 |\n                                  (str_off & 0xff0000U) << 0x18 | (str_off & 0xff00U) << 0x28 |\n                                  str_off << 0x38;\n                      }\n                      pattr = pattr + 8;\n                    }" { (expression_statement "pRVar22 = pDVar21->object_;" (assignment_expression "pRVar22 = pDVar21->object_" identifier = (field_expression "pDVar21->object_" identifier -> field_identifier)) ;) (labeled_statement "LAB_00302fe7:\n                      pp_Var4 = (pRVar22->super_Object)._vptr_Object;" statement_identifier : (expression_statement "pp_Var4 = (pRVar22->super_Object)._vptr_Object;" (assignment_expression "pp_Var4 = (pRVar22->super_Object)._vptr_Object" identifier = (field_expression "(pRVar22->super_Object)._vptr_Object" (parenthesized_expression "(pRVar22->super_Object)" ( (field_expression "pRVar22->super_Object" identifier -> field_identifier) )) . field_identifier)) ;)) (expression_statement "p_Var5 = pp_Var4[3];" (assignment_expression "p_Var5 = pp_Var4[3]" identifier = (subscript_expression "pp_Var4[3]" identifier [ number_literal ])) ;) (if_statement "if (p_Var5 == Relobj::is_big_endian) {\n                        iVar9 = (*pp_Var4[0x3a])();\n                        cVar8 = (char)iVar9;\n                      }\n                      else {\n                        iVar9 = (*p_Var5)();\n                        cVar8 = (char)iVar9;\n                      }" if (parenthesized_expression "(p_Var5 == Relobj::is_big_endian)" ( (binary_expression "p_Var5 == Relobj" identifier == identifier) (ERROR "::is_big_endian" : : identifier) )) (compound_statement "{\n                        iVar9 = (*pp_Var4[0x3a])();\n                        cVar8 = (char)iVar9;\n                      }" { (expression_statement "iVar9 = (*pp_Var4[0x3a])();" (assignment_expression "iVar9 = (*pp_Var4[0x3a])()" identifier = (call_expression "(*pp_Var4[0x3a])()" (parenthesized_expression "(*pp_Var4[0x3a])" ( (pointer_expression "*pp_Var4[0x3a]" * (subscript_expression "pp_Var4[0x3a]" identifier [ number_literal ])) )) (argument_list "()" ( )))) ;) (expression_statement "cVar8 = (char)iVar9;" (assignment_expression "cVar8 = (char)iVar9" identifier = (cast_expression "(char)iVar9" ( (type_descriptor "char" primitive_type) ) identifier)) ;) }) (else_clause "else {\n                        iVar9 = (*p_Var5)();\n                        cVar8 = (char)iVar9;\n                      }" else (compound_statement "{\n                        iVar9 = (*p_Var5)();\n                        cVar8 = (char)iVar9;\n                      }" { (expression_statement "iVar9 = (*p_Var5)();" (assignment_expression "iVar9 = (*p_Var5)()" identifier = (call_expression "(*p_Var5)()" (parenthesized_expression "(*p_Var5)" ( (pointer_expression "*p_Var5" * identifier) )) (argument_list "()" ( )))) ;) (expression_statement "cVar8 = (char)iVar9;" (assignment_expression "cVar8 = (char)iVar9" identifier = (cast_expression "(char)iVar9" ( (type_descriptor "char" primitive_type) ) identifier)) ;) }))) (expression_statement "str_off = *(off_t *)pattr;" (assignment_expression "str_off = *(off_t *)pattr" identifier = (pointer_expression "*(off_t *)pattr" * (cast_expression "(off_t *)pattr" ( (type_descriptor "off_t *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier))) ;) (if_statement "if (cVar8 != '\0') {\n                        str_off = (ulong)str_off >> 0x38 | (str_off & 0xff000000000000U) >> 0x28 |\n                                  (str_off & 0xff0000000000U) >> 0x18 |\n                                  (str_off & 0xff00000000U) >> 8 | (str_off & 0xff000000U) << 8 |\n                                  (str_off & 0xff0000U) << 0x18 | (str_off & 0xff00U) << 0x28 |\n                                  str_off << 0x38;\n                      }" if (parenthesized_expression "(cVar8 != '\0')" ( (binary_expression "cVar8 != '\0'" identifier != (char_literal "'\0'" ' escape_sequence ')) )) (compound_statement "{\n                        str_off = (ulong)str_off >> 0x38 | (str_off & 0xff000000000000U) >> 0x28 |\n                                  (str_off & 0xff0000000000U) >> 0x18 |\n                                  (str_off & 0xff00000000U) >> 8 | (str_off & 0xff000000U) << 8 |\n                                  (str_off & 0xff0000U) << 0x18 | (str_off & 0xff00U) << 0x28 |\n                                  str_off << 0x38;\n                      }" { (expression_statement "str_off = (ulong)str_off >> 0x38 | (str_off & 0xff000000000000U) >> 0x28 |\n                                  (str_off & 0xff0000000000U) >> 0x18 |\n                                  (str_off & 0xff00000000U) >> 8 | (str_off & 0xff000000U) << 8 |\n                                  (str_off & 0xff0000U) << 0x18 | (str_off & 0xff00U) << 0x28 |\n                                  str_off << 0x38;" (assignment_expression "str_off = (ulong)str_off >> 0x38 | (str_off & 0xff000000000000U) >> 0x28 |\n                                  (str_off & 0xff0000000000U) >> 0x18 |\n                                  (str_off & 0xff00000000U) >> 8 | (str_off & 0xff000000U) << 8 |\n                                  (str_off & 0xff0000U) << 0x18 | (str_off & 0xff00U) << 0x28 |\n                                  str_off << 0x38" identifier = (binary_expression "(ulong)str_off >> 0x38 | (str_off & 0xff000000000000U) >> 0x28 |\n                                  (str_off & 0xff0000000000U) >> 0x18 |\n                                  (str_off & 0xff00000000U) >> 8 | (str_off & 0xff000000U) << 8 |\n                                  (str_off & 0xff0000U) << 0x18 | (str_off & 0xff00U) << 0x28 |\n                                  str_off << 0x38" (binary_expression "(ulong)str_off >> 0x38 | (str_off & 0xff000000000000U) >> 0x28 |\n                                  (str_off & 0xff0000000000U) >> 0x18 |\n                                  (str_off & 0xff00000000U) >> 8 | (str_off & 0xff000000U) << 8 |\n                                  (str_off & 0xff0000U) << 0x18 | (str_off & 0xff00U) << 0x28" (binary_expression "(ulong)str_off >> 0x38 | (str_off & 0xff000000000000U) >> 0x28 |\n                                  (str_off & 0xff0000000000U) >> 0x18 |\n                                  (str_off & 0xff00000000U) >> 8 | (str_off & 0xff000000U) << 8 |\n                                  (str_off & 0xff0000U) << 0x18" (binary_expression "(ulong)str_off >> 0x38 | (str_off & 0xff000000000000U) >> 0x28 |\n                                  (str_off & 0xff0000000000U) >> 0x18 |\n                                  (str_off & 0xff00000000U) >> 8 | (str_off & 0xff000000U) << 8" (binary_expression "(ulong)str_off >> 0x38 | (str_off & 0xff000000000000U) >> 0x28 |\n                                  (str_off & 0xff0000000000U) >> 0x18 |\n                                  (str_off & 0xff00000000U) >> 8" (binary_expression "(ulong)str_off >> 0x38 | (str_off & 0xff000000000000U) >> 0x28 |\n                                  (str_off & 0xff0000000000U) >> 0x18" (binary_expression "(ulong)str_off >> 0x38 | (str_off & 0xff000000000000U) >> 0x28" (binary_expression "(ulong)str_off >> 0x38" (cast_expression "(ulong)str_off" ( (type_descriptor "ulong" type_identifier) ) identifier) >> number_literal) | (binary_expression "(str_off & 0xff000000000000U) >> 0x28" (parenthesized_expression "(str_off & 0xff000000000000U)" ( (binary_expression "str_off & 0xff000000000000U" identifier & number_literal) )) >> number_literal)) | (binary_expression "(str_off & 0xff0000000000U) >> 0x18" (parenthesized_expression "(str_off & 0xff0000000000U)" ( (binary_expression "str_off & 0xff0000000000U" identifier & number_literal) )) >> number_literal)) | (binary_expression "(str_off & 0xff00000000U) >> 8" (parenthesized_expression "(str_off & 0xff00000000U)" ( (binary_expression "str_off & 0xff00000000U" identifier & number_literal) )) >> number_literal)) | (binary_expression "(str_off & 0xff000000U) << 8" (parenthesized_expression "(str_off & 0xff000000U)" ( (binary_expression "str_off & 0xff000000U" identifier & number_literal) )) << number_literal)) | (binary_expression "(str_off & 0xff0000U) << 0x18" (parenthesized_expression "(str_off & 0xff0000U)" ( (binary_expression "str_off & 0xff0000U" identifier & number_literal) )) << number_literal)) | (binary_expression "(str_off & 0xff00U) << 0x28" (parenthesized_expression "(str_off & 0xff00U)" ( (binary_expression "str_off & 0xff00U" identifier & number_literal) )) << number_literal)) | (binary_expression "str_off << 0x38" identifier << number_literal))) ;) })) (expression_statement "pattr = pattr + 8;" (assignment_expression "pattr = pattr + 8" identifier = (binary_expression "pattr + 8" identifier + number_literal)) ;) }))) (labeled_statement "LAB_00303035:\n                    attr_value.aux.shndx =\n                         Dwarf_info_reader::lookup_reloc(this->dwinfo_,(off_t)attr_off,&str_off);" statement_identifier : (ERROR "attr_value.aux.shndx =\n                         Dwarf_info_reader::" (assignment_expression "attr_value.aux.shndx =\n                         Dwarf_info_reader" (field_expression "attr_value.aux.shndx" (field_expression "attr_value.aux" identifier . field_identifier) . field_identifier) = identifier) : :) (expression_statement "lookup_reloc(this->dwinfo_,(off_t)attr_off,&str_off);" (call_expression "lookup_reloc(this->dwinfo_,(off_t)attr_off,&str_off)" identifier (argument_list "(this->dwinfo_,(off_t)attr_off,&str_off)" ( (field_expression "this->dwinfo_" identifier -> field_identifier) , (cast_expression "(off_t)attr_off" ( (type_descriptor "off_t" type_identifier) ) identifier) , (pointer_expression "&str_off" & identifier) ))) ;)) (expression_statement "attr_value.val.refval = str_off;" (assignment_expression "attr_value.val.refval = str_off" (field_expression "attr_value.val.refval" (field_expression "attr_value.val" identifier . field_identifier) . field_identifier) = identifier) ;) (goto_statement "goto joined_r0x00303052;" goto statement_identifier ;) })) (if_statement "if (uVar11 != 0x18) {\n                    return false;\n                  }" if (parenthesized_expression "(uVar11 != 0x18)" ( (binary_expression "uVar11 != 0x18" identifier != number_literal) )) (compound_statement "{\n                    return false;\n                  }" { (return_statement "return false;" return false ;) })) (labeled_statement "LAB_00302a09:\n                  bVar1 = *pattr;" statement_identifier : (expression_statement "bVar1 = *pattr;" (assignment_expression "bVar1 = *pattr" identifier = (pointer_expression "*pattr" * identifier)) ;)) (expression_statement "aVar10.shndx._1_3_ = 0;" (assignment_expression "aVar10.shndx._1_3_ = 0" (field_expression "aVar10.shndx._1_3_" (field_expression "aVar10.shndx" identifier . field_identifier) . field_identifier) = number_literal) ;) (expression_statement "aVar10.shndx._0_1_ = bVar1;" (assignment_expression "aVar10.shndx._0_1_ = bVar1" (field_expression "aVar10.shndx._0_1_" (field_expression "aVar10.shndx" identifier . field_identifier) . field_identifier) = identifier) ;) (expression_statement "aVar15.stringval = (char *)(pattr + 1);" (assignment_expression "aVar15.stringval = (char *)(pattr + 1)" (field_expression "aVar15.stringval" identifier . field_identifier) = (cast_expression "(char *)(pattr + 1)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pattr + 1)" ( (binary_expression "pattr + 1" identifier + number_literal) )))) ;) (if_statement "if ((char)bVar1 < '\0') {\n                    uVar16 = read_unsigned_LEB_128_x(aVar15.blockval,&len,bVar1);\n                    aVar10.shndx = (uint)uVar16;\n                    aVar15.stringval = (char *)(pattr + len);\n                  }\n                  else {\n                    len = 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                    uVar16 = read_unsigned_LEB_128_x(aVar15.blockval,&len,bVar1);\n                    aVar10.shndx = (uint)uVar16;\n                    aVar15.stringval = (char *)(pattr + len);\n                  }" { (expression_statement "uVar16 = read_unsigned_LEB_128_x(aVar15.blockval,&len,bVar1);" (assignment_expression "uVar16 = read_unsigned_LEB_128_x(aVar15.blockval,&len,bVar1)" identifier = (call_expression "read_unsigned_LEB_128_x(aVar15.blockval,&len,bVar1)" identifier (argument_list "(aVar15.blockval,&len,bVar1)" ( (field_expression "aVar15.blockval" identifier . field_identifier) , (pointer_expression "&len" & identifier) , identifier )))) ;) (expression_statement "aVar10.shndx = (uint)uVar16;" (assignment_expression "aVar10.shndx = (uint)uVar16" (field_expression "aVar10.shndx" identifier . field_identifier) = (cast_expression "(uint)uVar16" ( (type_descriptor "uint" type_identifier) ) identifier)) ;) (expression_statement "aVar15.stringval = (char *)(pattr + len);" (assignment_expression "aVar15.stringval = (char *)(pattr + len)" (field_expression "aVar15.stringval" identifier . field_identifier) = (cast_expression "(char *)(pattr + len)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pattr + len)" ( (binary_expression "pattr + 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) ;) }))) (expression_statement "pattr = pattr + aVar10.shndx + len;" (assignment_expression "pattr = pattr + aVar10.shndx + len" identifier = (binary_expression "pattr + aVar10.shndx + len" (binary_expression "pattr + aVar10.shndx" identifier + (field_expression "aVar10.shndx" identifier . field_identifier)) + identifier)) ;) (expression_statement "attr_value.val = aVar15;" (assignment_expression "attr_value.val = aVar15" (field_expression "attr_value.val" identifier . field_identifier) = identifier) ;) (expression_statement "attr_value.aux = aVar10;" (assignment_expression "attr_value.aux = aVar10" (field_expression "attr_value.aux" identifier . field_identifier) = identifier) ;) }) (else_clause "else {\n                  if (uVar11 == 0x20) {\n                    pp_Var4 = (this->dwinfo_->object_->super_Object)._vptr_Object;\n                    p_Var5 = pp_Var4[3];\n                    if (p_Var5 == Relobj::is_big_endian) {\n                      iVar9 = (*pp_Var4[0x3a])();\n                      cVar8 = (char)iVar9;\n                    }\n                    else {\n                      iVar9 = (*p_Var5)();\n                      cVar8 = (char)iVar9;\n                    }\n                    /* WARNING: Load size is inaccurate */\n                    attr_value.val.blockval = *pattr;\n                    if (cVar8 != '\0') {\n                      attr_value.val.uintval =\n                           attr_value.val.uintval >> 0x38 |\n                           (attr_value.val.uintval & 0xff000000000000) >> 0x28 |\n                           (attr_value.val.uintval & 0xff0000000000) >> 0x18 |\n                           (attr_value.val.uintval & 0xff00000000) >> 8 |\n                           (attr_value.val.uintval & 0xff000000) << 8 |\n                           (attr_value.val.uintval & 0xff0000) << 0x18 |\n                           (attr_value.val.uintval & 0xff00) << 0x28 |\n                           attr_value.val.uintval << 0x38;\n                    }\n                    pattr = pattr + 8;\n                    goto LAB_00302ea9;\n                  }\n                  if (uVar11 < 0x20) {\n                    return false;\n                  }\n                  if (1 < uVar11 - 0x1f01) {\n                    return false;\n                  }\nLAB_00302bcd:\n                  bVar1 = *pattr;\n                  aVar14.intval._1_7_ = 0;\n                  aVar14.uintval._0_1_ = bVar1;\n                  if ((char)bVar1 < '\0') {\n                    attr_value.val.uintval = read_unsigned_LEB_128_x(pattr + 1,&len,bVar1);\n                    pattr = pattr + len;\n                  }\n                  else {\n                    len = 1;\n                    pattr = pattr + 1;\n                    attr_value.val = aVar14;\n                  }\n                }" else (compound_statement "{\n                  if (uVar11 == 0x20) {\n                    pp_Var4 = (this->dwinfo_->object_->super_Object)._vptr_Object;\n                    p_Var5 = pp_Var4[3];\n                    if (p_Var5 == Relobj::is_big_endian) {\n                      iVar9 = (*pp_Var4[0x3a])();\n                      cVar8 = (char)iVar9;\n                    }\n                    else {\n                      iVar9 = (*p_Var5)();\n                      cVar8 = (char)iVar9;\n                    }\n                    /* WARNING: Load size is inaccurate */\n                    attr_value.val.blockval = *pattr;\n                    if (cVar8 != '\0') {\n                      attr_value.val.uintval =\n                           attr_value.val.uintval >> 0x38 |\n                           (attr_value.val.uintval & 0xff000000000000) >> 0x28 |\n                           (attr_value.val.uintval & 0xff0000000000) >> 0x18 |\n                           (attr_value.val.uintval & 0xff00000000) >> 8 |\n                           (attr_value.val.uintval & 0xff000000) << 8 |\n                           (attr_value.val.uintval & 0xff0000) << 0x18 |\n                           (attr_value.val.uintval & 0xff00) << 0x28 |\n                           attr_value.val.uintval << 0x38;\n                    }\n                    pattr = pattr + 8;\n                    goto LAB_00302ea9;\n                  }\n                  if (uVar11 < 0x20) {\n                    return false;\n                  }\n                  if (1 < uVar11 - 0x1f01) {\n                    return false;\n                  }\nLAB_00302bcd:\n                  bVar1 = *pattr;\n                  aVar14.intval._1_7_ = 0;\n                  aVar14.uintval._0_1_ = bVar1;\n                  if ((char)bVar1 < '\0') {\n                    attr_value.val.uintval = read_unsigned_LEB_128_x(pattr + 1,&len,bVar1);\n                    pattr = pattr + len;\n                  }\n                  else {\n                    len = 1;\n                    pattr = pattr + 1;\n                    attr_value.val = aVar14;\n                  }\n                }" { (if_statement "if (uVar11 == 0x20) {\n                    pp_Var4 = (this->dwinfo_->object_->super_Object)._vptr_Object;\n                    p_Var5 = pp_Var4[3];\n                    if (p_Var5 == Relobj::is_big_endian) {\n                      iVar9 = (*pp_Var4[0x3a])();\n                      cVar8 = (char)iVar9;\n                    }\n                    else {\n                      iVar9 = (*p_Var5)();\n                      cVar8 = (char)iVar9;\n                    }\n                    /* WARNING: Load size is inaccurate */\n                    attr_value.val.blockval = *pattr;\n                    if (cVar8 != '\0') {\n                      attr_value.val.uintval =\n                           attr_value.val.uintval >> 0x38 |\n                           (attr_value.val.uintval & 0xff000000000000) >> 0x28 |\n                           (attr_value.val.uintval & 0xff0000000000) >> 0x18 |\n                           (attr_value.val.uintval & 0xff00000000) >> 8 |\n                           (attr_value.val.uintval & 0xff000000) << 8 |\n                           (attr_value.val.uintval & 0xff0000) << 0x18 |\n                           (attr_value.val.uintval & 0xff00) << 0x28 |\n                           attr_value.val.uintval << 0x38;\n                    }\n                    pattr = pattr + 8;\n                    goto LAB_00302ea9;\n                  }" if (parenthesized_expression "(uVar11 == 0x20)" ( (binary_expression "uVar11 == 0x20" identifier == number_literal) )) (compound_statement "{\n                    pp_Var4 = (this->dwinfo_->object_->super_Object)._vptr_Object;\n                    p_Var5 = pp_Var4[3];\n                    if (p_Var5 == Relobj::is_big_endian) {\n                      iVar9 = (*pp_Var4[0x3a])();\n                      cVar8 = (char)iVar9;\n                    }\n                    else {\n                      iVar9 = (*p_Var5)();\n                      cVar8 = (char)iVar9;\n                    }\n                    /* WARNING: Load size is inaccurate */\n                    attr_value.val.blockval = *pattr;\n                    if (cVar8 != '\0') {\n                      attr_value.val.uintval =\n                           attr_value.val.uintval >> 0x38 |\n                           (attr_value.val.uintval & 0xff000000000000) >> 0x28 |\n                           (attr_value.val.uintval & 0xff0000000000) >> 0x18 |\n                           (attr_value.val.uintval & 0xff00000000) >> 8 |\n                           (attr_value.val.uintval & 0xff000000) << 8 |\n                           (attr_value.val.uintval & 0xff0000) << 0x18 |\n                           (attr_value.val.uintval & 0xff00) << 0x28 |\n                           attr_value.val.uintval << 0x38;\n                    }\n                    pattr = pattr + 8;\n                    goto LAB_00302ea9;\n                  }" { (expression_statement "pp_Var4 = (this->dwinfo_->object_->super_Object)._vptr_Object;" (assignment_expression "pp_Var4 = (this->dwinfo_->object_->super_Object)._vptr_Object" identifier = (field_expression "(this->dwinfo_->object_->super_Object)._vptr_Object" (parenthesized_expression "(this->dwinfo_->object_->super_Object)" ( (field_expression "this->dwinfo_->object_->super_Object" (field_expression "this->dwinfo_->object_" (field_expression "this->dwinfo_" identifier -> field_identifier) -> field_identifier) -> field_identifier) )) . field_identifier)) ;) (expression_statement "p_Var5 = pp_Var4[3];" (assignment_expression "p_Var5 = pp_Var4[3]" identifier = (subscript_expression "pp_Var4[3]" identifier [ number_literal ])) ;) (if_statement "if (p_Var5 == Relobj::is_big_endian) {\n                      iVar9 = (*pp_Var4[0x3a])();\n                      cVar8 = (char)iVar9;\n                    }\n                    else {\n                      iVar9 = (*p_Var5)();\n                      cVar8 = (char)iVar9;\n                    }" if (parenthesized_expression "(p_Var5 == Relobj::is_big_endian)" ( (binary_expression "p_Var5 == Relobj" identifier == identifier) (ERROR "::is_big_endian" : : identifier) )) (compound_statement "{\n                      iVar9 = (*pp_Var4[0x3a])();\n                      cVar8 = (char)iVar9;\n                    }" { (expression_statement "iVar9 = (*pp_Var4[0x3a])();" (assignment_expression "iVar9 = (*pp_Var4[0x3a])()" identifier = (call_expression "(*pp_Var4[0x3a])()" (parenthesized_expression "(*pp_Var4[0x3a])" ( (pointer_expression "*pp_Var4[0x3a]" * (subscript_expression "pp_Var4[0x3a]" identifier [ number_literal ])) )) (argument_list "()" ( )))) ;) (expression_statement "cVar8 = (char)iVar9;" (assignment_expression "cVar8 = (char)iVar9" identifier = (cast_expression "(char)iVar9" ( (type_descriptor "char" primitive_type) ) identifier)) ;) }) (else_clause "else {\n                      iVar9 = (*p_Var5)();\n                      cVar8 = (char)iVar9;\n                    }" else (compound_statement "{\n                      iVar9 = (*p_Var5)();\n                      cVar8 = (char)iVar9;\n                    }" { (expression_statement "iVar9 = (*p_Var5)();" (assignment_expression "iVar9 = (*p_Var5)()" identifier = (call_expression "(*p_Var5)()" (parenthesized_expression "(*p_Var5)" ( (pointer_expression "*p_Var5" * identifier) )) (argument_list "()" ( )))) ;) (expression_statement "cVar8 = (char)iVar9;" (assignment_expression "cVar8 = (char)iVar9" identifier = (cast_expression "(char)iVar9" ( (type_descriptor "char" primitive_type) ) identifier)) ;) }))) comment (expression_statement "attr_value.val.blockval = *pattr;" (assignment_expression "attr_value.val.blockval = *pattr" (field_expression "attr_value.val.blockval" (field_expression "attr_value.val" identifier . field_identifier) . field_identifier) = (pointer_expression "*pattr" * identifier)) ;) (if_statement "if (cVar8 != '\0') {\n                      attr_value.val.uintval =\n                           attr_value.val.uintval >> 0x38 |\n                           (attr_value.val.uintval & 0xff000000000000) >> 0x28 |\n                           (attr_value.val.uintval & 0xff0000000000) >> 0x18 |\n                           (attr_value.val.uintval & 0xff00000000) >> 8 |\n                           (attr_value.val.uintval & 0xff000000) << 8 |\n                           (attr_value.val.uintval & 0xff0000) << 0x18 |\n                           (attr_value.val.uintval & 0xff00) << 0x28 |\n                           attr_value.val.uintval << 0x38;\n                    }" if (parenthesized_expression "(cVar8 != '\0')" ( (binary_expression "cVar8 != '\0'" identifier != (char_literal "'\0'" ' escape_sequence ')) )) (compound_statement "{\n                      attr_value.val.uintval =\n                           attr_value.val.uintval >> 0x38 |\n                           (attr_value.val.uintval & 0xff000000000000) >> 0x28 |\n                           (attr_value.val.uintval & 0xff0000000000) >> 0x18 |\n                           (attr_value.val.uintval & 0xff00000000) >> 8 |\n                           (attr_value.val.uintval & 0xff000000) << 8 |\n                           (attr_value.val.uintval & 0xff0000) << 0x18 |\n                           (attr_value.val.uintval & 0xff00) << 0x28 |\n                           attr_value.val.uintval << 0x38;\n                    }" { (expression_statement "attr_value.val.uintval =\n                           attr_value.val.uintval >> 0x38 |\n                           (attr_value.val.uintval & 0xff000000000000) >> 0x28 |\n                           (attr_value.val.uintval & 0xff0000000000) >> 0x18 |\n                           (attr_value.val.uintval & 0xff00000000) >> 8 |\n                           (attr_value.val.uintval & 0xff000000) << 8 |\n                           (attr_value.val.uintval & 0xff0000) << 0x18 |\n                           (attr_value.val.uintval & 0xff00) << 0x28 |\n                           attr_value.val.uintval << 0x38;" (assignment_expression "attr_value.val.uintval =\n                           attr_value.val.uintval >> 0x38 |\n                           (attr_value.val.uintval & 0xff000000000000) >> 0x28 |\n                           (attr_value.val.uintval & 0xff0000000000) >> 0x18 |\n                           (attr_value.val.uintval & 0xff00000000) >> 8 |\n                           (attr_value.val.uintval & 0xff000000) << 8 |\n                           (attr_value.val.uintval & 0xff0000) << 0x18 |\n                           (attr_value.val.uintval & 0xff00) << 0x28 |\n                           attr_value.val.uintval << 0x38" (field_expression "attr_value.val.uintval" (field_expression "attr_value.val" identifier . field_identifier) . field_identifier) = (binary_expression "attr_value.val.uintval >> 0x38 |\n                           (attr_value.val.uintval & 0xff000000000000) >> 0x28 |\n                           (attr_value.val.uintval & 0xff0000000000) >> 0x18 |\n                           (attr_value.val.uintval & 0xff00000000) >> 8 |\n                           (attr_value.val.uintval & 0xff000000) << 8 |\n                           (attr_value.val.uintval & 0xff0000) << 0x18 |\n                           (attr_value.val.uintval & 0xff00) << 0x28 |\n                           attr_value.val.uintval << 0x38" (binary_expression "attr_value.val.uintval >> 0x38 |\n                           (attr_value.val.uintval & 0xff000000000000) >> 0x28 |\n                           (attr_value.val.uintval & 0xff0000000000) >> 0x18 |\n                           (attr_value.val.uintval & 0xff00000000) >> 8 |\n                           (attr_value.val.uintval & 0xff000000) << 8 |\n                           (attr_value.val.uintval & 0xff0000) << 0x18 |\n                           (attr_value.val.uintval & 0xff00) << 0x28" (binary_expression "attr_value.val.uintval >> 0x38 |\n                           (attr_value.val.uintval & 0xff000000000000) >> 0x28 |\n                           (attr_value.val.uintval & 0xff0000000000) >> 0x18 |\n                           (attr_value.val.uintval & 0xff00000000) >> 8 |\n                           (attr_value.val.uintval & 0xff000000) << 8 |\n                           (attr_value.val.uintval & 0xff0000) << 0x18" (binary_expression "attr_value.val.uintval >> 0x38 |\n                           (attr_value.val.uintval & 0xff000000000000) >> 0x28 |\n                           (attr_value.val.uintval & 0xff0000000000) >> 0x18 |\n                           (attr_value.val.uintval & 0xff00000000) >> 8 |\n                           (attr_value.val.uintval & 0xff000000) << 8" (binary_expression "attr_value.val.uintval >> 0x38 |\n                           (attr_value.val.uintval & 0xff000000000000) >> 0x28 |\n                           (attr_value.val.uintval & 0xff0000000000) >> 0x18 |\n                           (attr_value.val.uintval & 0xff00000000) >> 8" (binary_expression "attr_value.val.uintval >> 0x38 |\n                           (attr_value.val.uintval & 0xff000000000000) >> 0x28 |\n                           (attr_value.val.uintval & 0xff0000000000) >> 0x18" (binary_expression "attr_value.val.uintval >> 0x38 |\n                           (attr_value.val.uintval & 0xff000000000000) >> 0x28" (binary_expression "attr_value.val.uintval >> 0x38" (field_expression "attr_value.val.uintval" (field_expression "attr_value.val" identifier . field_identifier) . field_identifier) >> number_literal) | (binary_expression "(attr_value.val.uintval & 0xff000000000000) >> 0x28" (parenthesized_expression "(attr_value.val.uintval & 0xff000000000000)" ( (binary_expression "attr_value.val.uintval & 0xff000000000000" (field_expression "attr_value.val.uintval" (field_expression "attr_value.val" identifier . field_identifier) . field_identifier) & number_literal) )) >> number_literal)) | (binary_expression "(attr_value.val.uintval & 0xff0000000000) >> 0x18" (parenthesized_expression "(attr_value.val.uintval & 0xff0000000000)" ( (binary_expression "attr_value.val.uintval & 0xff0000000000" (field_expression "attr_value.val.uintval" (field_expression "attr_value.val" identifier . field_identifier) . field_identifier) & number_literal) )) >> number_literal)) | (binary_expression "(attr_value.val.uintval & 0xff00000000) >> 8" (parenthesized_expression "(attr_value.val.uintval & 0xff00000000)" ( (binary_expression "attr_value.val.uintval & 0xff00000000" (field_expression "attr_value.val.uintval" (field_expression "attr_value.val" identifier . field_identifier) . field_identifier) & number_literal) )) >> number_literal)) | (binary_expression "(attr_value.val.uintval & 0xff000000) << 8" (parenthesized_expression "(attr_value.val.uintval & 0xff000000)" ( (binary_expression "attr_value.val.uintval & 0xff000000" (field_expression "attr_value.val.uintval" (field_expression "attr_value.val" identifier . field_identifier) . field_identifier) & number_literal) )) << number_literal)) | (binary_expression "(attr_value.val.uintval & 0xff0000) << 0x18" (parenthesized_expression "(attr_value.val.uintval & 0xff0000)" ( (binary_expression "attr_value.val.uintval & 0xff0000" (field_expression "attr_value.val.uintval" (field_expression "attr_value.val" identifier . field_identifier) . field_identifier) & number_literal) )) << number_literal)) | (binary_expression "(attr_value.val.uintval & 0xff00) << 0x28" (parenthesized_expression "(attr_value.val.uintval & 0xff00)" ( (binary_expression "attr_value.val.uintval & 0xff00" (field_expression "attr_value.val.uintval" (field_expression "attr_value.val" identifier . field_identifier) . field_identifier) & number_literal) )) << number_literal)) | (binary_expression "attr_value.val.uintval << 0x38" (field_expression "attr_value.val.uintval" (field_expression "attr_value.val" identifier . field_identifier) . field_identifier) << number_literal))) ;) })) (expression_statement "pattr = pattr + 8;" (assignment_expression "pattr = pattr + 8" identifier = (binary_expression "pattr + 8" identifier + number_literal)) ;) (goto_statement "goto LAB_00302ea9;" goto statement_identifier ;) })) (if_statement "if (uVar11 < 0x20) {\n                    return false;\n                  }" if (parenthesized_expression "(uVar11 < 0x20)" ( (binary_expression "uVar11 < 0x20" identifier < number_literal) )) (compound_statement "{\n                    return false;\n                  }" { (return_statement "return false;" return false ;) })) (if_statement "if (1 < uVar11 - 0x1f01) {\n                    return false;\n                  }" if (parenthesized_expression "(1 < uVar11 - 0x1f01)" ( (binary_expression "1 < uVar11 - 0x1f01" number_literal < (binary_expression "uVar11 - 0x1f01" identifier - number_literal)) )) (compound_statement "{\n                    return false;\n                  }" { (return_statement "return false;" return false ;) })) (labeled_statement "LAB_00302bcd:\n                  bVar1 = *pattr;" statement_identifier : (expression_statement "bVar1 = *pattr;" (assignment_expression "bVar1 = *pattr" identifier = (pointer_expression "*pattr" * identifier)) ;)) (expression_statement "aVar14.intval._1_7_ = 0;" (assignment_expression "aVar14.intval._1_7_ = 0" (field_expression "aVar14.intval._1_7_" (field_expression "aVar14.intval" identifier . field_identifier) . field_identifier) = number_literal) ;) (expression_statement "aVar14.uintval._0_1_ = bVar1;" (assignment_expression "aVar14.uintval._0_1_ = bVar1" (field_expression "aVar14.uintval._0_1_" (field_expression "aVar14.uintval" identifier . field_identifier) . field_identifier) = identifier) ;) (if_statement "if ((char)bVar1 < '\0') {\n                    attr_value.val.uintval = read_unsigned_LEB_128_x(pattr + 1,&len,bVar1);\n                    pattr = pattr + len;\n                  }\n                  else {\n                    len = 1;\n                    pattr = pattr + 1;\n                    attr_value.val = aVar14;\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                    attr_value.val.uintval = read_unsigned_LEB_128_x(pattr + 1,&len,bVar1);\n                    pattr = pattr + len;\n                  }" { (expression_statement "attr_value.val.uintval = read_unsigned_LEB_128_x(pattr + 1,&len,bVar1);" (assignment_expression "attr_value.val.uintval = read_unsigned_LEB_128_x(pattr + 1,&len,bVar1)" (field_expression "attr_value.val.uintval" (field_expression "attr_value.val" identifier . field_identifier) . field_identifier) = (call_expression "read_unsigned_LEB_128_x(pattr + 1,&len,bVar1)" identifier (argument_list "(pattr + 1,&len,bVar1)" ( (binary_expression "pattr + 1" identifier + number_literal) , (pointer_expression "&len" & identifier) , identifier )))) ;) (expression_statement "pattr = pattr + len;" (assignment_expression "pattr = pattr + len" identifier = (binary_expression "pattr + len" identifier + identifier)) ;) }) (else_clause "else {\n                    len = 1;\n                    pattr = pattr + 1;\n                    attr_value.val = aVar14;\n                  }" else (compound_statement "{\n                    len = 1;\n                    pattr = pattr + 1;\n                    attr_value.val = aVar14;\n                  }" { (expression_statement "len = 1;" (assignment_expression "len = 1" identifier = number_literal) ;) (expression_statement "pattr = pattr + 1;" (assignment_expression "pattr = pattr + 1" identifier = (binary_expression "pattr + 1" identifier + number_literal)) ;) (expression_statement "attr_value.val = aVar14;" (assignment_expression "attr_value.val = aVar14" (field_expression "attr_value.val" identifier . field_identifier) = identifier) ;) }))) }))) (labeled_statement "LAB_00302f92:\n                if (uVar2 == 0x31) goto LAB_00302750;" statement_identifier : (if_statement "if (uVar2 == 0x31) goto LAB_00302750;" if (parenthesized_expression "(uVar2 == 0x31)" ( (binary_expression "uVar2 == 0x31" identifier == number_literal) )) (goto_statement "goto LAB_00302750;" goto statement_identifier ;))) (if_statement "if (0x31 < uVar2) {\n                  if ((uVar2 == 0x6e) || (uVar2 == 0x2007)) goto LAB_00302fb5;\n                  goto LAB_00302750;\n                }" if (parenthesized_expression "(0x31 < uVar2)" ( (binary_expression "0x31 < uVar2" number_literal < identifier) )) (compound_statement "{\n                  if ((uVar2 == 0x6e) || (uVar2 == 0x2007)) goto LAB_00302fb5;\n                  goto LAB_00302750;\n                }" { (if_statement "if ((uVar2 == 0x6e) || (uVar2 == 0x2007)) goto LAB_00302fb5;" if (parenthesized_expression "((uVar2 == 0x6e) || (uVar2 == 0x2007))" ( (binary_expression "(uVar2 == 0x6e) || (uVar2 == 0x2007)" (parenthesized_expression "(uVar2 == 0x6e)" ( (binary_expression "uVar2 == 0x6e" identifier == number_literal) )) || (parenthesized_expression "(uVar2 == 0x2007)" ( (binary_expression "uVar2 == 0x2007" identifier == number_literal) ))) )) (goto_statement "goto LAB_00302fb5;" goto statement_identifier ;)) (goto_statement "goto LAB_00302750;" goto statement_identifier ;) })) (goto_statement "goto LAB_00302e3e;" goto statement_identifier ;) })) (expression_statement "attr_value.val.intval = 1;" (assignment_expression "attr_value.val.intval = 1" (field_expression "attr_value.val.intval" (field_expression "attr_value.val" identifier . field_identifier) . field_identifier) = number_literal) ;) (labeled_statement "LAB_00302ea9:\n              if (((uVar2 == 0x31) || (0x31 < uVar2)) || (uVar2 != 3)) goto LAB_00302750;" statement_identifier : (if_statement "if (((uVar2 == 0x31) || (0x31 < uVar2)) || (uVar2 != 3)) goto LAB_00302750;" if (parenthesized_expression "(((uVar2 == 0x31) || (0x31 < uVar2)) || (uVar2 != 3))" ( (binary_expression "((uVar2 == 0x31) || (0x31 < uVar2)) || (uVar2 != 3)" (parenthesized_expression "((uVar2 == 0x31) || (0x31 < uVar2))" ( (binary_expression "(uVar2 == 0x31) || (0x31 < uVar2)" (parenthesized_expression "(uVar2 == 0x31)" ( (binary_expression "uVar2 == 0x31" identifier == number_literal) )) || (parenthesized_expression "(0x31 < uVar2)" ( (binary_expression "0x31 < uVar2" number_literal < identifier) ))) )) || (parenthesized_expression "(uVar2 != 3)" ( (binary_expression "uVar2 != 3" identifier != number_literal) ))) )) (goto_statement "goto LAB_00302750;" goto statement_identifier ;))) (labeled_statement "LAB_00302e52:\n              if (uVar11 == 8) {\nLAB_003029c7:\n                this->name_ = (char *)attr_value.val;\n              }\n              else if (uVar11 == 0xe) goto LAB_00302f64;" statement_identifier : (if_statement "if (uVar11 == 8) {\nLAB_003029c7:\n                this->name_ = (char *)attr_value.val;\n              }\n              else if (uVar11 == 0xe) goto LAB_00302f64;" if (parenthesized_expression "(uVar11 == 8)" ( (binary_expression "uVar11 == 8" identifier == number_literal) )) (compound_statement "{\nLAB_003029c7:\n                this->name_ = (char *)attr_value.val;\n              }" { (labeled_statement "LAB_003029c7:\n                this->name_ = (char *)attr_value.val;" statement_identifier : (expression_statement "this->name_ = (char *)attr_value.val;" (assignment_expression "this->name_ = (char *)attr_value.val" (field_expression "this->name_" identifier -> field_identifier) = (cast_expression "(char *)attr_value.val" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (field_expression "attr_value.val" identifier . field_identifier))) ;)) }) (else_clause "else if (uVar11 == 0xe) goto LAB_00302f64;" else (if_statement "if (uVar11 == 0xe) goto LAB_00302f64;" if (parenthesized_expression "(uVar11 == 0xe)" ( (binary_expression "uVar11 == 0xe" identifier == number_literal) )) (goto_statement "goto LAB_00302f64;" goto statement_identifier ;))))) (goto_statement "goto LAB_00302750;" goto statement_identifier ;) })) (if_statement "if (uVar11 != 0x11) {\n              if (0x11 < uVar11) {\n                if (uVar11 == 0x13) {\n                  VVar12 = Dwarf_info_reader::read_from_pointer<32>(this->dwinfo_,&pattr);\n                  str_off = (off_t)VVar12;\n                  goto LAB_00303035;\n                }\n                if (0x13 < uVar11) {\n                  pRVar22 = this->dwinfo_->object_;\n                  goto LAB_00302fe7;\n                }\n                pp_Var4 = (this->dwinfo_->object_->super_Object)._vptr_Object;\n                p_Var5 = pp_Var4[3];\n                if (p_Var5 == Relobj::is_big_endian) {\n                  iVar9 = (*pp_Var4[0x3a])();\n                  cVar8 = (char)iVar9;\n                }\n                else {\n                  iVar9 = (*p_Var5)();\n                  cVar8 = (char)iVar9;\n                }\n                uVar7 = *(ushort *)pattr;\n                if (cVar8 != '\0') {\n                  uVar7 = CONCAT11(*pattr,pattr[1]);\n                }\n                attr_value.val.intval._2_6_ = 0;\n                attr_value.val.intval._0_2_ = uVar7;\n                pattr = pattr + 2;\n                goto joined_r0x00303052;\n              }\n              if (uVar11 == 0xf) goto LAB_00302bcd;\n              if (uVar11 != 0x10) {\n                return false;\n              }\n              pDVar21 = this->dwinfo_;\n              uVar11 = pDVar21->address_size_;\n              if (2 < pDVar21->cu_version_) {\n                uVar11 = pDVar21->offset_size_;\n              }\n              if (uVar11 != 4) goto LAB_00302a71;\nLAB_00302e7d:\n              VVar12 = Dwarf_info_reader::read_from_pointer<32>(pDVar21,&pattr);\n              str_off = (off_t)VVar12;\nLAB_00302abe:\n              attr_value.aux.shndx =\n                   Dwarf_info_reader::lookup_reloc(this->dwinfo_,(off_t)attr_off,&str_off);\n              attr_value.val.refval = str_off;\n              if (uVar2 == 0x31) goto LAB_00302965;\n              if (0x31 < uVar2) goto joined_r0x00302ccc;\n              goto LAB_00302c20;\n            }" if (parenthesized_expression "(uVar11 != 0x11)" ( (binary_expression "uVar11 != 0x11" identifier != number_literal) )) (compound_statement "{\n              if (0x11 < uVar11) {\n                if (uVar11 == 0x13) {\n                  VVar12 = Dwarf_info_reader::read_from_pointer<32>(this->dwinfo_,&pattr);\n                  str_off = (off_t)VVar12;\n                  goto LAB_00303035;\n                }\n                if (0x13 < uVar11) {\n                  pRVar22 = this->dwinfo_->object_;\n                  goto LAB_00302fe7;\n                }\n                pp_Var4 = (this->dwinfo_->object_->super_Object)._vptr_Object;\n                p_Var5 = pp_Var4[3];\n                if (p_Var5 == Relobj::is_big_endian) {\n                  iVar9 = (*pp_Var4[0x3a])();\n                  cVar8 = (char)iVar9;\n                }\n                else {\n                  iVar9 = (*p_Var5)();\n                  cVar8 = (char)iVar9;\n                }\n                uVar7 = *(ushort *)pattr;\n                if (cVar8 != '\0') {\n                  uVar7 = CONCAT11(*pattr,pattr[1]);\n                }\n                attr_value.val.intval._2_6_ = 0;\n                attr_value.val.intval._0_2_ = uVar7;\n                pattr = pattr + 2;\n                goto joined_r0x00303052;\n              }\n              if (uVar11 == 0xf) goto LAB_00302bcd;\n              if (uVar11 != 0x10) {\n                return false;\n              }\n              pDVar21 = this->dwinfo_;\n              uVar11 = pDVar21->address_size_;\n              if (2 < pDVar21->cu_version_) {\n                uVar11 = pDVar21->offset_size_;\n              }\n              if (uVar11 != 4) goto LAB_00302a71;\nLAB_00302e7d:\n              VVar12 = Dwarf_info_reader::read_from_pointer<32>(pDVar21,&pattr);\n              str_off = (off_t)VVar12;\nLAB_00302abe:\n              attr_value.aux.shndx =\n                   Dwarf_info_reader::lookup_reloc(this->dwinfo_,(off_t)attr_off,&str_off);\n              attr_value.val.refval = str_off;\n              if (uVar2 == 0x31) goto LAB_00302965;\n              if (0x31 < uVar2) goto joined_r0x00302ccc;\n              goto LAB_00302c20;\n            }" { (if_statement "if (0x11 < uVar11) {\n                if (uVar11 == 0x13) {\n                  VVar12 = Dwarf_info_reader::read_from_pointer<32>(this->dwinfo_,&pattr);\n                  str_off = (off_t)VVar12;\n                  goto LAB_00303035;\n                }\n                if (0x13 < uVar11) {\n                  pRVar22 = this->dwinfo_->object_;\n                  goto LAB_00302fe7;\n                }\n                pp_Var4 = (this->dwinfo_->object_->super_Object)._vptr_Object;\n                p_Var5 = pp_Var4[3];\n                if (p_Var5 == Relobj::is_big_endian) {\n                  iVar9 = (*pp_Var4[0x3a])();\n                  cVar8 = (char)iVar9;\n                }\n                else {\n                  iVar9 = (*p_Var5)();\n                  cVar8 = (char)iVar9;\n                }\n                uVar7 = *(ushort *)pattr;\n                if (cVar8 != '\0') {\n                  uVar7 = CONCAT11(*pattr,pattr[1]);\n                }\n                attr_value.val.intval._2_6_ = 0;\n                attr_value.val.intval._0_2_ = uVar7;\n                pattr = pattr + 2;\n                goto joined_r0x00303052;\n              }" if (parenthesized_expression "(0x11 < uVar11)" ( (binary_expression "0x11 < uVar11" number_literal < identifier) )) (compound_statement "{\n                if (uVar11 == 0x13) {\n                  VVar12 = Dwarf_info_reader::read_from_pointer<32>(this->dwinfo_,&pattr);\n                  str_off = (off_t)VVar12;\n                  goto LAB_00303035;\n                }\n                if (0x13 < uVar11) {\n                  pRVar22 = this->dwinfo_->object_;\n                  goto LAB_00302fe7;\n                }\n                pp_Var4 = (this->dwinfo_->object_->super_Object)._vptr_Object;\n                p_Var5 = pp_Var4[3];\n                if (p_Var5 == Relobj::is_big_endian) {\n                  iVar9 = (*pp_Var4[0x3a])();\n                  cVar8 = (char)iVar9;\n                }\n                else {\n                  iVar9 = (*p_Var5)();\n                  cVar8 = (char)iVar9;\n                }\n                uVar7 = *(ushort *)pattr;\n                if (cVar8 != '\0') {\n                  uVar7 = CONCAT11(*pattr,pattr[1]);\n                }\n                attr_value.val.intval._2_6_ = 0;\n                attr_value.val.intval._0_2_ = uVar7;\n                pattr = pattr + 2;\n                goto joined_r0x00303052;\n              }" { (if_statement "if (uVar11 == 0x13) {\n                  VVar12 = Dwarf_info_reader::read_from_pointer<32>(this->dwinfo_,&pattr);\n                  str_off = (off_t)VVar12;\n                  goto LAB_00303035;\n                }" if (parenthesized_expression "(uVar11 == 0x13)" ( (binary_expression "uVar11 == 0x13" identifier == number_literal) )) (compound_statement "{\n                  VVar12 = Dwarf_info_reader::read_from_pointer<32>(this->dwinfo_,&pattr);\n                  str_off = (off_t)VVar12;\n                  goto LAB_00303035;\n                }" { (expression_statement "VVar12 = Dwarf_info_reader::read_from_pointer<32>(this->dwinfo_,&pattr);" (binary_expression "VVar12 = Dwarf_info_reader::read_from_pointer<32>(this->dwinfo_,&pattr)" (binary_expression "VVar12 = Dwarf_info_reader::read_from_pointer<32" (assignment_expression "VVar12 = Dwarf_info_reader" identifier = identifier) (ERROR "::read_from_pointer" : : identifier) < number_literal) > (parenthesized_expression "(this->dwinfo_,&pattr)" ( (comma_expression "this->dwinfo_,&pattr" (field_expression "this->dwinfo_" identifier -> field_identifier) , (pointer_expression "&pattr" & identifier)) ))) ;) (expression_statement "str_off = (off_t)VVar12;" (assignment_expression "str_off = (off_t)VVar12" identifier = (cast_expression "(off_t)VVar12" ( (type_descriptor "off_t" type_identifier) ) identifier)) ;) (goto_statement "goto LAB_00303035;" goto statement_identifier ;) })) (if_statement "if (0x13 < uVar11) {\n                  pRVar22 = this->dwinfo_->object_;\n                  goto LAB_00302fe7;\n                }" if (parenthesized_expression "(0x13 < uVar11)" ( (binary_expression "0x13 < uVar11" number_literal < identifier) )) (compound_statement "{\n                  pRVar22 = this->dwinfo_->object_;\n                  goto LAB_00302fe7;\n                }" { (expression_statement "pRVar22 = this->dwinfo_->object_;" (assignment_expression "pRVar22 = this->dwinfo_->object_" identifier = (field_expression "this->dwinfo_->object_" (field_expression "this->dwinfo_" identifier -> field_identifier) -> field_identifier)) ;) (goto_statement "goto LAB_00302fe7;" goto statement_identifier ;) })) (expression_statement "pp_Var4 = (this->dwinfo_->object_->super_Object)._vptr_Object;" (assignment_expression "pp_Var4 = (this->dwinfo_->object_->super_Object)._vptr_Object" identifier = (field_expression "(this->dwinfo_->object_->super_Object)._vptr_Object" (parenthesized_expression "(this->dwinfo_->object_->super_Object)" ( (field_expression "this->dwinfo_->object_->super_Object" (field_expression "this->dwinfo_->object_" (field_expression "this->dwinfo_" identifier -> field_identifier) -> field_identifier) -> field_identifier) )) . field_identifier)) ;) (expression_statement "p_Var5 = pp_Var4[3];" (assignment_expression "p_Var5 = pp_Var4[3]" identifier = (subscript_expression "pp_Var4[3]" identifier [ number_literal ])) ;) (if_statement "if (p_Var5 == Relobj::is_big_endian) {\n                  iVar9 = (*pp_Var4[0x3a])();\n                  cVar8 = (char)iVar9;\n                }\n                else {\n                  iVar9 = (*p_Var5)();\n                  cVar8 = (char)iVar9;\n                }" if (parenthesized_expression "(p_Var5 == Relobj::is_big_endian)" ( (binary_expression "p_Var5 == Relobj" identifier == identifier) (ERROR "::is_big_endian" : : identifier) )) (compound_statement "{\n                  iVar9 = (*pp_Var4[0x3a])();\n                  cVar8 = (char)iVar9;\n                }" { (expression_statement "iVar9 = (*pp_Var4[0x3a])();" (assignment_expression "iVar9 = (*pp_Var4[0x3a])()" identifier = (call_expression "(*pp_Var4[0x3a])()" (parenthesized_expression "(*pp_Var4[0x3a])" ( (pointer_expression "*pp_Var4[0x3a]" * (subscript_expression "pp_Var4[0x3a]" identifier [ number_literal ])) )) (argument_list "()" ( )))) ;) (expression_statement "cVar8 = (char)iVar9;" (assignment_expression "cVar8 = (char)iVar9" identifier = (cast_expression "(char)iVar9" ( (type_descriptor "char" primitive_type) ) identifier)) ;) }) (else_clause "else {\n                  iVar9 = (*p_Var5)();\n                  cVar8 = (char)iVar9;\n                }" else (compound_statement "{\n                  iVar9 = (*p_Var5)();\n                  cVar8 = (char)iVar9;\n                }" { (expression_statement "iVar9 = (*p_Var5)();" (assignment_expression "iVar9 = (*p_Var5)()" identifier = (call_expression "(*p_Var5)()" (parenthesized_expression "(*p_Var5)" ( (pointer_expression "*p_Var5" * identifier) )) (argument_list "()" ( )))) ;) (expression_statement "cVar8 = (char)iVar9;" (assignment_expression "cVar8 = (char)iVar9" identifier = (cast_expression "(char)iVar9" ( (type_descriptor "char" primitive_type) ) identifier)) ;) }))) (expression_statement "uVar7 = *(ushort *)pattr;" (assignment_expression "uVar7 = *(ushort *)pattr" identifier = (pointer_expression "*(ushort *)pattr" * (cast_expression "(ushort *)pattr" ( (type_descriptor "ushort *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier))) ;) (if_statement "if (cVar8 != '\0') {\n                  uVar7 = CONCAT11(*pattr,pattr[1]);\n                }" if (parenthesized_expression "(cVar8 != '\0')" ( (binary_expression "cVar8 != '\0'" identifier != (char_literal "'\0'" ' escape_sequence ')) )) (compound_statement "{\n                  uVar7 = CONCAT11(*pattr,pattr[1]);\n                }" { (expression_statement "uVar7 = CONCAT11(*pattr,pattr[1]);" (assignment_expression "uVar7 = CONCAT11(*pattr,pattr[1])" identifier = (call_expression "CONCAT11(*pattr,pattr[1])" identifier (argument_list "(*pattr,pattr[1])" ( (pointer_expression "*pattr" * identifier) , (subscript_expression "pattr[1]" identifier [ number_literal ]) )))) ;) })) (expression_statement "attr_value.val.intval._2_6_ = 0;" (assignment_expression "attr_value.val.intval._2_6_ = 0" (field_expression "attr_value.val.intval._2_6_" (field_expression "attr_value.val.intval" (field_expression "attr_value.val" identifier . field_identifier) . field_identifier) . field_identifier) = number_literal) ;) (expression_statement "attr_value.val.intval._0_2_ = uVar7;" (assignment_expression "attr_value.val.intval._0_2_ = uVar7" (field_expression "attr_value.val.intval._0_2_" (field_expression "attr_value.val.intval" (field_expression "attr_value.val" identifier . field_identifier) . field_identifier) . field_identifier) = identifier) ;) (expression_statement "pattr = pattr + 2;" (assignment_expression "pattr = pattr + 2" identifier = (binary_expression "pattr + 2" identifier + number_literal)) ;) (goto_statement "goto joined_r0x00303052;" goto statement_identifier ;) })) (if_statement "if (uVar11 == 0xf) goto LAB_00302bcd;" if (parenthesized_expression "(uVar11 == 0xf)" ( (binary_expression "uVar11 == 0xf" identifier == number_literal) )) (goto_statement "goto LAB_00302bcd;" goto statement_identifier ;)) (if_statement "if (uVar11 != 0x10) {\n                return false;\n              }" if (parenthesized_expression "(uVar11 != 0x10)" ( (binary_expression "uVar11 != 0x10" identifier != number_literal) )) (compound_statement "{\n                return false;\n              }" { (return_statement "return false;" return false ;) })) (expression_statement "pDVar21 = this->dwinfo_;" (assignment_expression "pDVar21 = this->dwinfo_" identifier = (field_expression "this->dwinfo_" identifier -> field_identifier)) ;) (expression_statement "uVar11 = pDVar21->address_size_;" (assignment_expression "uVar11 = pDVar21->address_size_" identifier = (field_expression "pDVar21->address_size_" identifier -> field_identifier)) ;) (if_statement "if (2 < pDVar21->cu_version_) {\n                uVar11 = pDVar21->offset_size_;\n              }" if (parenthesized_expression "(2 < pDVar21->cu_version_)" ( (binary_expression "2 < pDVar21->cu_version_" number_literal < (field_expression "pDVar21->cu_version_" identifier -> field_identifier)) )) (compound_statement "{\n                uVar11 = pDVar21->offset_size_;\n              }" { (expression_statement "uVar11 = pDVar21->offset_size_;" (assignment_expression "uVar11 = pDVar21->offset_size_" identifier = (field_expression "pDVar21->offset_size_" identifier -> field_identifier)) ;) })) (if_statement "if (uVar11 != 4) goto LAB_00302a71;" if (parenthesized_expression "(uVar11 != 4)" ( (binary_expression "uVar11 != 4" identifier != number_literal) )) (goto_statement "goto LAB_00302a71;" goto statement_identifier ;)) (labeled_statement "LAB_00302e7d:\n              VVar12 = Dwarf_info_reader::read_from_pointer<32>(pDVar21,&pattr);" statement_identifier : (expression_statement "VVar12 = Dwarf_info_reader::read_from_pointer<32>(pDVar21,&pattr);" (binary_expression "VVar12 = Dwarf_info_reader::read_from_pointer<32>(pDVar21,&pattr)" (binary_expression "VVar12 = Dwarf_info_reader::read_from_pointer<32" (assignment_expression "VVar12 = Dwarf_info_reader" identifier = identifier) (ERROR "::read_from_pointer" : : identifier) < number_literal) > (parenthesized_expression "(pDVar21,&pattr)" ( (comma_expression "pDVar21,&pattr" identifier , (pointer_expression "&pattr" & identifier)) ))) ;)) (expression_statement "str_off = (off_t)VVar12;" (assignment_expression "str_off = (off_t)VVar12" identifier = (cast_expression "(off_t)VVar12" ( (type_descriptor "off_t" type_identifier) ) identifier)) ;) (labeled_statement "LAB_00302abe:\n              attr_value.aux.shndx =\n                   Dwarf_info_reader::lookup_reloc(this->dwinfo_,(off_t)attr_off,&str_off);" statement_identifier : (ERROR "attr_value.aux.shndx =\n                   Dwarf_info_reader::" (assignment_expression "attr_value.aux.shndx =\n                   Dwarf_info_reader" (field_expression "attr_value.aux.shndx" (field_expression "attr_value.aux" identifier . field_identifier) . field_identifier) = identifier) : :) (expression_statement "lookup_reloc(this->dwinfo_,(off_t)attr_off,&str_off);" (call_expression "lookup_reloc(this->dwinfo_,(off_t)attr_off,&str_off)" identifier (argument_list "(this->dwinfo_,(off_t)attr_off,&str_off)" ( (field_expression "this->dwinfo_" identifier -> field_identifier) , (cast_expression "(off_t)attr_off" ( (type_descriptor "off_t" type_identifier) ) identifier) , (pointer_expression "&str_off" & identifier) ))) ;)) (expression_statement "attr_value.val.refval = str_off;" (assignment_expression "attr_value.val.refval = str_off" (field_expression "attr_value.val.refval" (field_expression "attr_value.val" identifier . field_identifier) . field_identifier) = identifier) ;) (if_statement "if (uVar2 == 0x31) goto LAB_00302965;" if (parenthesized_expression "(uVar2 == 0x31)" ( (binary_expression "uVar2 == 0x31" identifier == number_literal) )) (goto_statement "goto LAB_00302965;" goto statement_identifier ;)) (if_statement "if (0x31 < uVar2) goto joined_r0x00302ccc;" if (parenthesized_expression "(0x31 < uVar2)" ( (binary_expression "0x31 < uVar2" number_literal < identifier) )) (goto_statement "goto joined_r0x00302ccc;" goto statement_identifier ;)) (goto_statement "goto LAB_00302c20;" goto statement_identifier ;) })) (expression_statement "puVar23 = pattr + 1;" (assignment_expression "puVar23 = pattr + 1" identifier = (binary_expression "pattr + 1" identifier + number_literal)) ;) (expression_statement "attr_value.val.intval._1_7_ = 0;" (assignment_expression "attr_value.val.intval._1_7_ = 0" (field_expression "attr_value.val.intval._1_7_" (field_expression "attr_value.val.intval" (field_expression "attr_value.val" identifier . field_identifier) . field_identifier) . field_identifier) = number_literal) ;) (expression_statement "attr_value.val.uintval._0_1_ = *pattr;" (assignment_expression "attr_value.val.uintval._0_1_ = *pattr" (field_expression "attr_value.val.uintval._0_1_" (field_expression "attr_value.val.uintval" (field_expression "attr_value.val" identifier . field_identifier) . field_identifier) . field_identifier) = (pointer_expression "*pattr" * identifier)) ;) (expression_statement "pattr = puVar23;" (assignment_expression "pattr = puVar23" identifier = identifier) ;) (if_statement "if (uVar2 != 0x31) {\n              if (uVar2 < 0x32) {\n                if (uVar2 == 1) {\n                  this->sibling_offset_ = (off_t)attr_value.val;\n                }\n                goto LAB_00302750;\n              }\njoined_r0x00302ccc:\n              if ((uVar2 == 0x6e) || (uVar2 == 0x2007)) goto LAB_00302750;\n              goto joined_r0x00302ce3;\n            }" if (parenthesized_expression "(uVar2 != 0x31)" ( (binary_expression "uVar2 != 0x31" identifier != number_literal) )) (compound_statement "{\n              if (uVar2 < 0x32) {\n                if (uVar2 == 1) {\n                  this->sibling_offset_ = (off_t)attr_value.val;\n                }\n                goto LAB_00302750;\n              }\njoined_r0x00302ccc:\n              if ((uVar2 == 0x6e) || (uVar2 == 0x2007)) goto LAB_00302750;\n              goto joined_r0x00302ce3;\n            }" { (if_statement "if (uVar2 < 0x32) {\n                if (uVar2 == 1) {\n                  this->sibling_offset_ = (off_t)attr_value.val;\n                }\n                goto LAB_00302750;\n              }" if (parenthesized_expression "(uVar2 < 0x32)" ( (binary_expression "uVar2 < 0x32" identifier < number_literal) )) (compound_statement "{\n                if (uVar2 == 1) {\n                  this->sibling_offset_ = (off_t)attr_value.val;\n                }\n                goto LAB_00302750;\n              }" { (if_statement "if (uVar2 == 1) {\n                  this->sibling_offset_ = (off_t)attr_value.val;\n                }" if (parenthesized_expression "(uVar2 == 1)" ( (binary_expression "uVar2 == 1" identifier == number_literal) )) (compound_statement "{\n                  this->sibling_offset_ = (off_t)attr_value.val;\n                }" { (expression_statement "this->sibling_offset_ = (off_t)attr_value.val;" (assignment_expression "this->sibling_offset_ = (off_t)attr_value.val" (field_expression "this->sibling_offset_" identifier -> field_identifier) = (cast_expression "(off_t)attr_value.val" ( (type_descriptor "off_t" type_identifier) ) (field_expression "attr_value.val" identifier . field_identifier))) ;) })) (goto_statement "goto LAB_00302750;" goto statement_identifier ;) })) (labeled_statement "joined_r0x00302ccc:\n              if ((uVar2 == 0x6e) || (uVar2 == 0x2007)) goto LAB_00302750;" statement_identifier : (if_statement "if ((uVar2 == 0x6e) || (uVar2 == 0x2007)) goto LAB_00302750;" if (parenthesized_expression "((uVar2 == 0x6e) || (uVar2 == 0x2007))" ( (binary_expression "(uVar2 == 0x6e) || (uVar2 == 0x2007)" (parenthesized_expression "(uVar2 == 0x6e)" ( (binary_expression "uVar2 == 0x6e" identifier == number_literal) )) || (parenthesized_expression "(uVar2 == 0x2007)" ( (binary_expression "uVar2 == 0x2007" identifier == number_literal) ))) )) (goto_statement "goto LAB_00302750;" goto statement_identifier ;))) (goto_statement "goto joined_r0x00302ce3;" goto statement_identifier ;) })) }))) (labeled_statement "LAB_00302965:\n          this->abstract_origin_ = (off_t)attr_value.val;" statement_identifier : (expression_statement "this->abstract_origin_ = (off_t)attr_value.val;" (assignment_expression "this->abstract_origin_ = (off_t)attr_value.val" (field_expression "this->abstract_origin_" identifier -> field_identifier) = (cast_expression "(off_t)attr_value.val" ( (type_descriptor "off_t" type_identifier) ) (field_expression "attr_value.val" identifier . field_identifier))) ;)) (goto_statement "goto LAB_00302750;" goto statement_identifier ;) })) (if_statement "if (uVar11 == 7) {\n          pp_Var4 = (this->dwinfo_->object_->super_Object)._vptr_Object;\n          p_Var5 = pp_Var4[3];\n          if (p_Var5 == Relobj::is_big_endian) {\n            iVar9 = (*pp_Var4[0x3a])();\n            cVar8 = (char)iVar9;\n          }\n          else {\n            iVar9 = (*p_Var5)();\n            cVar8 = (char)iVar9;\n          }\n          str_off = *(off_t *)pattr;\n          if (cVar8 != '\0') {\n            str_off = (ulong)str_off >> 0x38 | (str_off & 0xff000000000000U) >> 0x28 |\n                      (str_off & 0xff0000000000U) >> 0x18 | (str_off & 0xff00000000U) >> 8 |\n                      (str_off & 0xff000000U) << 8 | (str_off & 0xff0000U) << 0x18 |\n                      (str_off & 0xff00U) << 0x28 | str_off << 0x38;\n          }\n          pattr = pattr + 8;\nLAB_00302d40:\n          attr_value.aux.shndx =\n               Dwarf_info_reader::lookup_reloc(this->dwinfo_,(off_t)attr_off,&str_off);\n          attr_value.val.refval = str_off;\njoined_r0x00302748:\n          if ((uVar2 != 0x31) && (uVar2 < 0x32)) {\nLAB_00302e3e:\n            if ((uVar2 != 1) && (uVar2 == 3)) goto LAB_00302e52;\n          }\n          goto LAB_00302750;\n        }" if (parenthesized_expression "(uVar11 == 7)" ( (binary_expression "uVar11 == 7" identifier == number_literal) )) (compound_statement "{\n          pp_Var4 = (this->dwinfo_->object_->super_Object)._vptr_Object;\n          p_Var5 = pp_Var4[3];\n          if (p_Var5 == Relobj::is_big_endian) {\n            iVar9 = (*pp_Var4[0x3a])();\n            cVar8 = (char)iVar9;\n          }\n          else {\n            iVar9 = (*p_Var5)();\n            cVar8 = (char)iVar9;\n          }\n          str_off = *(off_t *)pattr;\n          if (cVar8 != '\0') {\n            str_off = (ulong)str_off >> 0x38 | (str_off & 0xff000000000000U) >> 0x28 |\n                      (str_off & 0xff0000000000U) >> 0x18 | (str_off & 0xff00000000U) >> 8 |\n                      (str_off & 0xff000000U) << 8 | (str_off & 0xff0000U) << 0x18 |\n                      (str_off & 0xff00U) << 0x28 | str_off << 0x38;\n          }\n          pattr = pattr + 8;\nLAB_00302d40:\n          attr_value.aux.shndx =\n               Dwarf_info_reader::lookup_reloc(this->dwinfo_,(off_t)attr_off,&str_off);\n          attr_value.val.refval = str_off;\njoined_r0x00302748:\n          if ((uVar2 != 0x31) && (uVar2 < 0x32)) {\nLAB_00302e3e:\n            if ((uVar2 != 1) && (uVar2 == 3)) goto LAB_00302e52;\n          }\n          goto LAB_00302750;\n        }" { (expression_statement "pp_Var4 = (this->dwinfo_->object_->super_Object)._vptr_Object;" (assignment_expression "pp_Var4 = (this->dwinfo_->object_->super_Object)._vptr_Object" identifier = (field_expression "(this->dwinfo_->object_->super_Object)._vptr_Object" (parenthesized_expression "(this->dwinfo_->object_->super_Object)" ( (field_expression "this->dwinfo_->object_->super_Object" (field_expression "this->dwinfo_->object_" (field_expression "this->dwinfo_" identifier -> field_identifier) -> field_identifier) -> field_identifier) )) . field_identifier)) ;) (expression_statement "p_Var5 = pp_Var4[3];" (assignment_expression "p_Var5 = pp_Var4[3]" identifier = (subscript_expression "pp_Var4[3]" identifier [ number_literal ])) ;) (if_statement "if (p_Var5 == Relobj::is_big_endian) {\n            iVar9 = (*pp_Var4[0x3a])();\n            cVar8 = (char)iVar9;\n          }\n          else {\n            iVar9 = (*p_Var5)();\n            cVar8 = (char)iVar9;\n          }" if (parenthesized_expression "(p_Var5 == Relobj::is_big_endian)" ( (binary_expression "p_Var5 == Relobj" identifier == identifier) (ERROR "::is_big_endian" : : identifier) )) (compound_statement "{\n            iVar9 = (*pp_Var4[0x3a])();\n            cVar8 = (char)iVar9;\n          }" { (expression_statement "iVar9 = (*pp_Var4[0x3a])();" (assignment_expression "iVar9 = (*pp_Var4[0x3a])()" identifier = (call_expression "(*pp_Var4[0x3a])()" (parenthesized_expression "(*pp_Var4[0x3a])" ( (pointer_expression "*pp_Var4[0x3a]" * (subscript_expression "pp_Var4[0x3a]" identifier [ number_literal ])) )) (argument_list "()" ( )))) ;) (expression_statement "cVar8 = (char)iVar9;" (assignment_expression "cVar8 = (char)iVar9" identifier = (cast_expression "(char)iVar9" ( (type_descriptor "char" primitive_type) ) identifier)) ;) }) (else_clause "else {\n            iVar9 = (*p_Var5)();\n            cVar8 = (char)iVar9;\n          }" else (compound_statement "{\n            iVar9 = (*p_Var5)();\n            cVar8 = (char)iVar9;\n          }" { (expression_statement "iVar9 = (*p_Var5)();" (assignment_expression "iVar9 = (*p_Var5)()" identifier = (call_expression "(*p_Var5)()" (parenthesized_expression "(*p_Var5)" ( (pointer_expression "*p_Var5" * identifier) )) (argument_list "()" ( )))) ;) (expression_statement "cVar8 = (char)iVar9;" (assignment_expression "cVar8 = (char)iVar9" identifier = (cast_expression "(char)iVar9" ( (type_descriptor "char" primitive_type) ) identifier)) ;) }))) (expression_statement "str_off = *(off_t *)pattr;" (assignment_expression "str_off = *(off_t *)pattr" identifier = (pointer_expression "*(off_t *)pattr" * (cast_expression "(off_t *)pattr" ( (type_descriptor "off_t *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier))) ;) (if_statement "if (cVar8 != '\0') {\n            str_off = (ulong)str_off >> 0x38 | (str_off & 0xff000000000000U) >> 0x28 |\n                      (str_off & 0xff0000000000U) >> 0x18 | (str_off & 0xff00000000U) >> 8 |\n                      (str_off & 0xff000000U) << 8 | (str_off & 0xff0000U) << 0x18 |\n                      (str_off & 0xff00U) << 0x28 | str_off << 0x38;\n          }" if (parenthesized_expression "(cVar8 != '\0')" ( (binary_expression "cVar8 != '\0'" identifier != (char_literal "'\0'" ' escape_sequence ')) )) (compound_statement "{\n            str_off = (ulong)str_off >> 0x38 | (str_off & 0xff000000000000U) >> 0x28 |\n                      (str_off & 0xff0000000000U) >> 0x18 | (str_off & 0xff00000000U) >> 8 |\n                      (str_off & 0xff000000U) << 8 | (str_off & 0xff0000U) << 0x18 |\n                      (str_off & 0xff00U) << 0x28 | str_off << 0x38;\n          }" { (expression_statement "str_off = (ulong)str_off >> 0x38 | (str_off & 0xff000000000000U) >> 0x28 |\n                      (str_off & 0xff0000000000U) >> 0x18 | (str_off & 0xff00000000U) >> 8 |\n                      (str_off & 0xff000000U) << 8 | (str_off & 0xff0000U) << 0x18 |\n                      (str_off & 0xff00U) << 0x28 | str_off << 0x38;" (assignment_expression "str_off = (ulong)str_off >> 0x38 | (str_off & 0xff000000000000U) >> 0x28 |\n                      (str_off & 0xff0000000000U) >> 0x18 | (str_off & 0xff00000000U) >> 8 |\n                      (str_off & 0xff000000U) << 8 | (str_off & 0xff0000U) << 0x18 |\n                      (str_off & 0xff00U) << 0x28 | str_off << 0x38" identifier = (binary_expression "(ulong)str_off >> 0x38 | (str_off & 0xff000000000000U) >> 0x28 |\n                      (str_off & 0xff0000000000U) >> 0x18 | (str_off & 0xff00000000U) >> 8 |\n                      (str_off & 0xff000000U) << 8 | (str_off & 0xff0000U) << 0x18 |\n                      (str_off & 0xff00U) << 0x28 | str_off << 0x38" (binary_expression "(ulong)str_off >> 0x38 | (str_off & 0xff000000000000U) >> 0x28 |\n                      (str_off & 0xff0000000000U) >> 0x18 | (str_off & 0xff00000000U) >> 8 |\n                      (str_off & 0xff000000U) << 8 | (str_off & 0xff0000U) << 0x18 |\n                      (str_off & 0xff00U) << 0x28" (binary_expression "(ulong)str_off >> 0x38 | (str_off & 0xff000000000000U) >> 0x28 |\n                      (str_off & 0xff0000000000U) >> 0x18 | (str_off & 0xff00000000U) >> 8 |\n                      (str_off & 0xff000000U) << 8 | (str_off & 0xff0000U) << 0x18" (binary_expression "(ulong)str_off >> 0x38 | (str_off & 0xff000000000000U) >> 0x28 |\n                      (str_off & 0xff0000000000U) >> 0x18 | (str_off & 0xff00000000U) >> 8 |\n                      (str_off & 0xff000000U) << 8" (binary_expression "(ulong)str_off >> 0x38 | (str_off & 0xff000000000000U) >> 0x28 |\n                      (str_off & 0xff0000000000U) >> 0x18 | (str_off & 0xff00000000U) >> 8" (binary_expression "(ulong)str_off >> 0x38 | (str_off & 0xff000000000000U) >> 0x28 |\n                      (str_off & 0xff0000000000U) >> 0x18" (binary_expression "(ulong)str_off >> 0x38 | (str_off & 0xff000000000000U) >> 0x28" (binary_expression "(ulong)str_off >> 0x38" (cast_expression "(ulong)str_off" ( (type_descriptor "ulong" type_identifier) ) identifier) >> number_literal) | (binary_expression "(str_off & 0xff000000000000U) >> 0x28" (parenthesized_expression "(str_off & 0xff000000000000U)" ( (binary_expression "str_off & 0xff000000000000U" identifier & number_literal) )) >> number_literal)) | (binary_expression "(str_off & 0xff0000000000U) >> 0x18" (parenthesized_expression "(str_off & 0xff0000000000U)" ( (binary_expression "str_off & 0xff0000000000U" identifier & number_literal) )) >> number_literal)) | (binary_expression "(str_off & 0xff00000000U) >> 8" (parenthesized_expression "(str_off & 0xff00000000U)" ( (binary_expression "str_off & 0xff00000000U" identifier & number_literal) )) >> number_literal)) | (binary_expression "(str_off & 0xff000000U) << 8" (parenthesized_expression "(str_off & 0xff000000U)" ( (binary_expression "str_off & 0xff000000U" identifier & number_literal) )) << number_literal)) | (binary_expression "(str_off & 0xff0000U) << 0x18" (parenthesized_expression "(str_off & 0xff0000U)" ( (binary_expression "str_off & 0xff0000U" identifier & number_literal) )) << number_literal)) | (binary_expression "(str_off & 0xff00U) << 0x28" (parenthesized_expression "(str_off & 0xff00U)" ( (binary_expression "str_off & 0xff00U" identifier & number_literal) )) << number_literal)) | (binary_expression "str_off << 0x38" identifier << number_literal))) ;) })) (expression_statement "pattr = pattr + 8;" (assignment_expression "pattr = pattr + 8" identifier = (binary_expression "pattr + 8" identifier + number_literal)) ;) (labeled_statement "LAB_00302d40:\n          attr_value.aux.shndx =\n               Dwarf_info_reader::lookup_reloc(this->dwinfo_,(off_t)attr_off,&str_off);" statement_identifier : (ERROR "attr_value.aux.shndx =\n               Dwarf_info_reader::" (assignment_expression "attr_value.aux.shndx =\n               Dwarf_info_reader" (field_expression "attr_value.aux.shndx" (field_expression "attr_value.aux" identifier . field_identifier) . field_identifier) = identifier) : :) (expression_statement "lookup_reloc(this->dwinfo_,(off_t)attr_off,&str_off);" (call_expression "lookup_reloc(this->dwinfo_,(off_t)attr_off,&str_off)" identifier (argument_list "(this->dwinfo_,(off_t)attr_off,&str_off)" ( (field_expression "this->dwinfo_" identifier -> field_identifier) , (cast_expression "(off_t)attr_off" ( (type_descriptor "off_t" type_identifier) ) identifier) , (pointer_expression "&str_off" & identifier) ))) ;)) (expression_statement "attr_value.val.refval = str_off;" (assignment_expression "attr_value.val.refval = str_off" (field_expression "attr_value.val.refval" (field_expression "attr_value.val" identifier . field_identifier) . field_identifier) = identifier) ;) (labeled_statement "joined_r0x00302748:\n          if ((uVar2 != 0x31) && (uVar2 < 0x32)) {\nLAB_00302e3e:\n            if ((uVar2 != 1) && (uVar2 == 3)) goto LAB_00302e52;\n          }" statement_identifier : (if_statement "if ((uVar2 != 0x31) && (uVar2 < 0x32)) {\nLAB_00302e3e:\n            if ((uVar2 != 1) && (uVar2 == 3)) goto LAB_00302e52;\n          }" if (parenthesized_expression "((uVar2 != 0x31) && (uVar2 < 0x32))" ( (binary_expression "(uVar2 != 0x31) && (uVar2 < 0x32)" (parenthesized_expression "(uVar2 != 0x31)" ( (binary_expression "uVar2 != 0x31" identifier != number_literal) )) && (parenthesized_expression "(uVar2 < 0x32)" ( (binary_expression "uVar2 < 0x32" identifier < number_literal) ))) )) (compound_statement "{\nLAB_00302e3e:\n            if ((uVar2 != 1) && (uVar2 == 3)) goto LAB_00302e52;\n          }" { (labeled_statement "LAB_00302e3e:\n            if ((uVar2 != 1) && (uVar2 == 3)) goto LAB_00302e52;" statement_identifier : (if_statement "if ((uVar2 != 1) && (uVar2 == 3)) goto LAB_00302e52;" if (parenthesized_expression "((uVar2 != 1) && (uVar2 == 3))" ( (binary_expression "(uVar2 != 1) && (uVar2 == 3)" (parenthesized_expression "(uVar2 != 1)" ( (binary_expression "uVar2 != 1" identifier != number_literal) )) && (parenthesized_expression "(uVar2 == 3)" ( (binary_expression "uVar2 == 3" identifier == number_literal) ))) )) (goto_statement "goto LAB_00302e52;" goto statement_identifier ;))) }))) (goto_statement "goto LAB_00302750;" goto statement_identifier ;) })) (if_statement "if (uVar11 < 8) {\n          if (uVar11 == 4) {\n            pp_Var4 = (this->dwinfo_->object_->super_Object)._vptr_Object;\n            p_Var5 = pp_Var4[3];\n            if (p_Var5 == Relobj::is_big_endian) {\n              iVar9 = (*pp_Var4[0x3a])();\n              cVar8 = (char)iVar9;\n            }\n            else {\n              iVar9 = (*p_Var5)();\n              cVar8 = (char)iVar9;\n            }\n            attr_value.aux.shndx = *(uint *)pattr;\n            if (cVar8 != '\0') {\n              attr_value.aux.shndx =\n                   attr_value.aux.shndx >> 0x18 | (attr_value.aux.shndx & 0xff0000) >> 8 |\n                   (attr_value.aux.shndx & 0xff00) << 8 | attr_value.aux.shndx << 0x18;\n            }\n            attr_value.val.stringval = (char *)(pattr + 4);\n            pattr = (uchar *)(attr_value.val.stringval + attr_value.aux.shndx);\n          }\n          else if (uVar11 < 5) {\n            if (uVar11 == 1) {\n              pDVar21 = this->dwinfo_;\n              if (pDVar21->address_size_ == 4) goto LAB_00302e7d;\nLAB_00302a71:\n              pp_Var4 = (pDVar21->object_->super_Object)._vptr_Object;\n              p_Var5 = pp_Var4[3];\n              if (p_Var5 == Relobj::is_big_endian) {\n                iVar9 = (*pp_Var4[0x3a])();\n                cVar8 = (char)iVar9;\n              }\n              else {\n                iVar9 = (*p_Var5)();\n                cVar8 = (char)iVar9;\n              }\n              str_off = *(off_t *)pattr;\n              if (cVar8 != '\0') {\n                str_off = (ulong)str_off >> 0x38 | (str_off & 0xff000000000000U) >> 0x28 |\n                          (str_off & 0xff0000000000U) >> 0x18 | (str_off & 0xff00000000U) >> 8 |\n                          (str_off & 0xff000000U) << 8 | (str_off & 0xff0000U) << 0x18 |\n                          (str_off & 0xff00U) << 0x28 | str_off << 0x38;\n              }\n              pattr = pattr + 8;\n              goto LAB_00302abe;\n            }\n            if (uVar11 != 3) {\n              return false;\n            }\n            pp_Var4 = (this->dwinfo_->object_->super_Object)._vptr_Object;\n            p_Var5 = pp_Var4[3];\n            if (p_Var5 == Relobj::is_big_endian) {\n              iVar9 = (*pp_Var4[0x3a])();\n              cVar8 = (char)iVar9;\n            }\n            else {\n              iVar9 = (*p_Var5)();\n              cVar8 = (char)iVar9;\n            }\n            uVar7 = *(ushort *)pattr;\n            if (cVar8 != '\0') {\n              uVar7 = CONCAT11(*pattr,pattr[1]);\n            }\n            attr_value.aux.shndx._2_2_ = 0;\n            attr_value.aux.shndx._0_2_ = uVar7;\n            attr_value.val.stringval = (char *)(pattr + 2);\n            pattr = (uchar *)(attr_value.val.stringval + attr_value.aux.shndx);\n          }\n          else {\n            if (uVar11 != 5) {\n              if (uVar11 != 6) {\n                return false;\n              }\n              pp_Var4 = (this->dwinfo_->object_->super_Object)._vptr_Object;\n              p_Var5 = pp_Var4[3];\n              if (p_Var5 == Relobj::is_big_endian) {\n                iVar9 = (*pp_Var4[0x3a])();\n                cVar8 = (char)iVar9;\n              }\n              else {\n                iVar9 = (*p_Var5)();\n                cVar8 = (char)iVar9;\n              }\n              uVar3 = *(uint *)pattr;\n              if (cVar8 != '\0') {\n                uVar3 = uVar3 >> 0x18 | (uVar3 & 0xff0000) >> 8 | (uVar3 & 0xff00) << 8 |\n                        uVar3 << 0x18;\n              }\n              str_off = (off_t)uVar3;\n              pattr = pattr + 4;\n              goto LAB_00302d40;\n            }\n            pp_Var4 = (this->dwinfo_->object_->super_Object)._vptr_Object;\n            p_Var5 = pp_Var4[3];\n            if (p_Var5 == Relobj::is_big_endian) {\n              iVar9 = (*pp_Var4[0x3a])();\n              cVar8 = (char)iVar9;\n            }\n            else {\n              iVar9 = (*p_Var5)();\n              cVar8 = (char)iVar9;\n            }\n            uVar7 = *(ushort *)pattr;\n            if (cVar8 != '\0') {\n              uVar7 = CONCAT11(*pattr,pattr[1]);\n            }\n            pattr = pattr + 2;\n            attr_value.val.intval._2_6_ = 0;\n            attr_value.val.intval._0_2_ = uVar7;\n          }\n          goto joined_r0x00302748;\n        }" if (parenthesized_expression "(uVar11 < 8)" ( (binary_expression "uVar11 < 8" identifier < number_literal) )) (compound_statement "{\n          if (uVar11 == 4) {\n            pp_Var4 = (this->dwinfo_->object_->super_Object)._vptr_Object;\n            p_Var5 = pp_Var4[3];\n            if (p_Var5 == Relobj::is_big_endian) {\n              iVar9 = (*pp_Var4[0x3a])();\n              cVar8 = (char)iVar9;\n            }\n            else {\n              iVar9 = (*p_Var5)();\n              cVar8 = (char)iVar9;\n            }\n            attr_value.aux.shndx = *(uint *)pattr;\n            if (cVar8 != '\0') {\n              attr_value.aux.shndx =\n                   attr_value.aux.shndx >> 0x18 | (attr_value.aux.shndx & 0xff0000) >> 8 |\n                   (attr_value.aux.shndx & 0xff00) << 8 | attr_value.aux.shndx << 0x18;\n            }\n            attr_value.val.stringval = (char *)(pattr + 4);\n            pattr = (uchar *)(attr_value.val.stringval + attr_value.aux.shndx);\n          }\n          else if (uVar11 < 5) {\n            if (uVar11 == 1) {\n              pDVar21 = this->dwinfo_;\n              if (pDVar21->address_size_ == 4) goto LAB_00302e7d;\nLAB_00302a71:\n              pp_Var4 = (pDVar21->object_->super_Object)._vptr_Object;\n              p_Var5 = pp_Var4[3];\n              if (p_Var5 == Relobj::is_big_endian) {\n                iVar9 = (*pp_Var4[0x3a])();\n                cVar8 = (char)iVar9;\n              }\n              else {\n                iVar9 = (*p_Var5)();\n                cVar8 = (char)iVar9;\n              }\n              str_off = *(off_t *)pattr;\n              if (cVar8 != '\0') {\n                str_off = (ulong)str_off >> 0x38 | (str_off & 0xff000000000000U) >> 0x28 |\n                          (str_off & 0xff0000000000U) >> 0x18 | (str_off & 0xff00000000U) >> 8 |\n                          (str_off & 0xff000000U) << 8 | (str_off & 0xff0000U) << 0x18 |\n                          (str_off & 0xff00U) << 0x28 | str_off << 0x38;\n              }\n              pattr = pattr + 8;\n              goto LAB_00302abe;\n            }\n            if (uVar11 != 3) {\n              return false;\n            }\n            pp_Var4 = (this->dwinfo_->object_->super_Object)._vptr_Object;\n            p_Var5 = pp_Var4[3];\n            if (p_Var5 == Relobj::is_big_endian) {\n              iVar9 = (*pp_Var4[0x3a])();\n              cVar8 = (char)iVar9;\n            }\n            else {\n              iVar9 = (*p_Var5)();\n              cVar8 = (char)iVar9;\n            }\n            uVar7 = *(ushort *)pattr;\n            if (cVar8 != '\0') {\n              uVar7 = CONCAT11(*pattr,pattr[1]);\n            }\n            attr_value.aux.shndx._2_2_ = 0;\n            attr_value.aux.shndx._0_2_ = uVar7;\n            attr_value.val.stringval = (char *)(pattr + 2);\n            pattr = (uchar *)(attr_value.val.stringval + attr_value.aux.shndx);\n          }\n          else {\n            if (uVar11 != 5) {\n              if (uVar11 != 6) {\n                return false;\n              }\n              pp_Var4 = (this->dwinfo_->object_->super_Object)._vptr_Object;\n              p_Var5 = pp_Var4[3];\n              if (p_Var5 == Relobj::is_big_endian) {\n                iVar9 = (*pp_Var4[0x3a])();\n                cVar8 = (char)iVar9;\n              }\n              else {\n                iVar9 = (*p_Var5)();\n                cVar8 = (char)iVar9;\n              }\n              uVar3 = *(uint *)pattr;\n              if (cVar8 != '\0') {\n                uVar3 = uVar3 >> 0x18 | (uVar3 & 0xff0000) >> 8 | (uVar3 & 0xff00) << 8 |\n                        uVar3 << 0x18;\n              }\n              str_off = (off_t)uVar3;\n              pattr = pattr + 4;\n              goto LAB_00302d40;\n            }\n            pp_Var4 = (this->dwinfo_->object_->super_Object)._vptr_Object;\n            p_Var5 = pp_Var4[3];\n            if (p_Var5 == Relobj::is_big_endian) {\n              iVar9 = (*pp_Var4[0x3a])();\n              cVar8 = (char)iVar9;\n            }\n            else {\n              iVar9 = (*p_Var5)();\n              cVar8 = (char)iVar9;\n            }\n            uVar7 = *(ushort *)pattr;\n            if (cVar8 != '\0') {\n              uVar7 = CONCAT11(*pattr,pattr[1]);\n            }\n            pattr = pattr + 2;\n            attr_value.val.intval._2_6_ = 0;\n            attr_value.val.intval._0_2_ = uVar7;\n          }\n          goto joined_r0x00302748;\n        }" { (if_statement "if (uVar11 == 4) {\n            pp_Var4 = (this->dwinfo_->object_->super_Object)._vptr_Object;\n            p_Var5 = pp_Var4[3];\n            if (p_Var5 == Relobj::is_big_endian) {\n              iVar9 = (*pp_Var4[0x3a])();\n              cVar8 = (char)iVar9;\n            }\n            else {\n              iVar9 = (*p_Var5)();\n              cVar8 = (char)iVar9;\n            }\n            attr_value.aux.shndx = *(uint *)pattr;\n            if (cVar8 != '\0') {\n              attr_value.aux.shndx =\n                   attr_value.aux.shndx >> 0x18 | (attr_value.aux.shndx & 0xff0000) >> 8 |\n                   (attr_value.aux.shndx & 0xff00) << 8 | attr_value.aux.shndx << 0x18;\n            }\n            attr_value.val.stringval = (char *)(pattr + 4);\n            pattr = (uchar *)(attr_value.val.stringval + attr_value.aux.shndx);\n          }\n          else if (uVar11 < 5) {\n            if (uVar11 == 1) {\n              pDVar21 = this->dwinfo_;\n              if (pDVar21->address_size_ == 4) goto LAB_00302e7d;\nLAB_00302a71:\n              pp_Var4 = (pDVar21->object_->super_Object)._vptr_Object;\n              p_Var5 = pp_Var4[3];\n              if (p_Var5 == Relobj::is_big_endian) {\n                iVar9 = (*pp_Var4[0x3a])();\n                cVar8 = (char)iVar9;\n              }\n              else {\n                iVar9 = (*p_Var5)();\n                cVar8 = (char)iVar9;\n              }\n              str_off = *(off_t *)pattr;\n              if (cVar8 != '\0') {\n                str_off = (ulong)str_off >> 0x38 | (str_off & 0xff000000000000U) >> 0x28 |\n                          (str_off & 0xff0000000000U) >> 0x18 | (str_off & 0xff00000000U) >> 8 |\n                          (str_off & 0xff000000U) << 8 | (str_off & 0xff0000U) << 0x18 |\n                          (str_off & 0xff00U) << 0x28 | str_off << 0x38;\n              }\n              pattr = pattr + 8;\n              goto LAB_00302abe;\n            }\n            if (uVar11 != 3) {\n              return false;\n            }\n            pp_Var4 = (this->dwinfo_->object_->super_Object)._vptr_Object;\n            p_Var5 = pp_Var4[3];\n            if (p_Var5 == Relobj::is_big_endian) {\n              iVar9 = (*pp_Var4[0x3a])();\n              cVar8 = (char)iVar9;\n            }\n            else {\n              iVar9 = (*p_Var5)();\n              cVar8 = (char)iVar9;\n            }\n            uVar7 = *(ushort *)pattr;\n            if (cVar8 != '\0') {\n              uVar7 = CONCAT11(*pattr,pattr[1]);\n            }\n            attr_value.aux.shndx._2_2_ = 0;\n            attr_value.aux.shndx._0_2_ = uVar7;\n            attr_value.val.stringval = (char *)(pattr + 2);\n            pattr = (uchar *)(attr_value.val.stringval + attr_value.aux.shndx);\n          }\n          else {\n            if (uVar11 != 5) {\n              if (uVar11 != 6) {\n                return false;\n              }\n              pp_Var4 = (this->dwinfo_->object_->super_Object)._vptr_Object;\n              p_Var5 = pp_Var4[3];\n              if (p_Var5 == Relobj::is_big_endian) {\n                iVar9 = (*pp_Var4[0x3a])();\n                cVar8 = (char)iVar9;\n              }\n              else {\n                iVar9 = (*p_Var5)();\n                cVar8 = (char)iVar9;\n              }\n              uVar3 = *(uint *)pattr;\n              if (cVar8 != '\0') {\n                uVar3 = uVar3 >> 0x18 | (uVar3 & 0xff0000) >> 8 | (uVar3 & 0xff00) << 8 |\n                        uVar3 << 0x18;\n              }\n              str_off = (off_t)uVar3;\n              pattr = pattr + 4;\n              goto LAB_00302d40;\n            }\n            pp_Var4 = (this->dwinfo_->object_->super_Object)._vptr_Object;\n            p_Var5 = pp_Var4[3];\n            if (p_Var5 == Relobj::is_big_endian) {\n              iVar9 = (*pp_Var4[0x3a])();\n              cVar8 = (char)iVar9;\n            }\n            else {\n              iVar9 = (*p_Var5)();\n              cVar8 = (char)iVar9;\n            }\n            uVar7 = *(ushort *)pattr;\n            if (cVar8 != '\0') {\n              uVar7 = CONCAT11(*pattr,pattr[1]);\n            }\n            pattr = pattr + 2;\n            attr_value.val.intval._2_6_ = 0;\n            attr_value.val.intval._0_2_ = uVar7;\n          }" if (parenthesized_expression "(uVar11 == 4)" ( (binary_expression "uVar11 == 4" identifier == number_literal) )) (compound_statement "{\n            pp_Var4 = (this->dwinfo_->object_->super_Object)._vptr_Object;\n            p_Var5 = pp_Var4[3];\n            if (p_Var5 == Relobj::is_big_endian) {\n              iVar9 = (*pp_Var4[0x3a])();\n              cVar8 = (char)iVar9;\n            }\n            else {\n              iVar9 = (*p_Var5)();\n              cVar8 = (char)iVar9;\n            }\n            attr_value.aux.shndx = *(uint *)pattr;\n            if (cVar8 != '\0') {\n              attr_value.aux.shndx =\n                   attr_value.aux.shndx >> 0x18 | (attr_value.aux.shndx & 0xff0000) >> 8 |\n                   (attr_value.aux.shndx & 0xff00) << 8 | attr_value.aux.shndx << 0x18;\n            }\n            attr_value.val.stringval = (char *)(pattr + 4);\n            pattr = (uchar *)(attr_value.val.stringval + attr_value.aux.shndx);\n          }" { (expression_statement "pp_Var4 = (this->dwinfo_->object_->super_Object)._vptr_Object;" (assignment_expression "pp_Var4 = (this->dwinfo_->object_->super_Object)._vptr_Object" identifier = (field_expression "(this->dwinfo_->object_->super_Object)._vptr_Object" (parenthesized_expression "(this->dwinfo_->object_->super_Object)" ( (field_expression "this->dwinfo_->object_->super_Object" (field_expression "this->dwinfo_->object_" (field_expression "this->dwinfo_" identifier -> field_identifier) -> field_identifier) -> field_identifier) )) . field_identifier)) ;) (expression_statement "p_Var5 = pp_Var4[3];" (assignment_expression "p_Var5 = pp_Var4[3]" identifier = (subscript_expression "pp_Var4[3]" identifier [ number_literal ])) ;) (if_statement "if (p_Var5 == Relobj::is_big_endian) {\n              iVar9 = (*pp_Var4[0x3a])();\n              cVar8 = (char)iVar9;\n            }\n            else {\n              iVar9 = (*p_Var5)();\n              cVar8 = (char)iVar9;\n            }" if (parenthesized_expression "(p_Var5 == Relobj::is_big_endian)" ( (binary_expression "p_Var5 == Relobj" identifier == identifier) (ERROR "::is_big_endian" : : identifier) )) (compound_statement "{\n              iVar9 = (*pp_Var4[0x3a])();\n              cVar8 = (char)iVar9;\n            }" { (expression_statement "iVar9 = (*pp_Var4[0x3a])();" (assignment_expression "iVar9 = (*pp_Var4[0x3a])()" identifier = (call_expression "(*pp_Var4[0x3a])()" (parenthesized_expression "(*pp_Var4[0x3a])" ( (pointer_expression "*pp_Var4[0x3a]" * (subscript_expression "pp_Var4[0x3a]" identifier [ number_literal ])) )) (argument_list "()" ( )))) ;) (expression_statement "cVar8 = (char)iVar9;" (assignment_expression "cVar8 = (char)iVar9" identifier = (cast_expression "(char)iVar9" ( (type_descriptor "char" primitive_type) ) identifier)) ;) }) (else_clause "else {\n              iVar9 = (*p_Var5)();\n              cVar8 = (char)iVar9;\n            }" else (compound_statement "{\n              iVar9 = (*p_Var5)();\n              cVar8 = (char)iVar9;\n            }" { (expression_statement "iVar9 = (*p_Var5)();" (assignment_expression "iVar9 = (*p_Var5)()" identifier = (call_expression "(*p_Var5)()" (parenthesized_expression "(*p_Var5)" ( (pointer_expression "*p_Var5" * identifier) )) (argument_list "()" ( )))) ;) (expression_statement "cVar8 = (char)iVar9;" (assignment_expression "cVar8 = (char)iVar9" identifier = (cast_expression "(char)iVar9" ( (type_descriptor "char" primitive_type) ) identifier)) ;) }))) (expression_statement "attr_value.aux.shndx = *(uint *)pattr;" (assignment_expression "attr_value.aux.shndx = *(uint *)pattr" (field_expression "attr_value.aux.shndx" (field_expression "attr_value.aux" identifier . field_identifier) . field_identifier) = (pointer_expression "*(uint *)pattr" * (cast_expression "(uint *)pattr" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier))) ;) (if_statement "if (cVar8 != '\0') {\n              attr_value.aux.shndx =\n                   attr_value.aux.shndx >> 0x18 | (attr_value.aux.shndx & 0xff0000) >> 8 |\n                   (attr_value.aux.shndx & 0xff00) << 8 | attr_value.aux.shndx << 0x18;\n            }" if (parenthesized_expression "(cVar8 != '\0')" ( (binary_expression "cVar8 != '\0'" identifier != (char_literal "'\0'" ' escape_sequence ')) )) (compound_statement "{\n              attr_value.aux.shndx =\n                   attr_value.aux.shndx >> 0x18 | (attr_value.aux.shndx & 0xff0000) >> 8 |\n                   (attr_value.aux.shndx & 0xff00) << 8 | attr_value.aux.shndx << 0x18;\n            }" { (expression_statement "attr_value.aux.shndx =\n                   attr_value.aux.shndx >> 0x18 | (attr_value.aux.shndx & 0xff0000) >> 8 |\n                   (attr_value.aux.shndx & 0xff00) << 8 | attr_value.aux.shndx << 0x18;" (assignment_expression "attr_value.aux.shndx =\n                   attr_value.aux.shndx >> 0x18 | (attr_value.aux.shndx & 0xff0000) >> 8 |\n                   (attr_value.aux.shndx & 0xff00) << 8 | attr_value.aux.shndx << 0x18" (field_expression "attr_value.aux.shndx" (field_expression "attr_value.aux" identifier . field_identifier) . field_identifier) = (binary_expression "attr_value.aux.shndx >> 0x18 | (attr_value.aux.shndx & 0xff0000) >> 8 |\n                   (attr_value.aux.shndx & 0xff00) << 8 | attr_value.aux.shndx << 0x18" (binary_expression "attr_value.aux.shndx >> 0x18 | (attr_value.aux.shndx & 0xff0000) >> 8 |\n                   (attr_value.aux.shndx & 0xff00) << 8" (binary_expression "attr_value.aux.shndx >> 0x18 | (attr_value.aux.shndx & 0xff0000) >> 8" (binary_expression "attr_value.aux.shndx >> 0x18" (field_expression "attr_value.aux.shndx" (field_expression "attr_value.aux" identifier . field_identifier) . field_identifier) >> number_literal) | (binary_expression "(attr_value.aux.shndx & 0xff0000) >> 8" (parenthesized_expression "(attr_value.aux.shndx & 0xff0000)" ( (binary_expression "attr_value.aux.shndx & 0xff0000" (field_expression "attr_value.aux.shndx" (field_expression "attr_value.aux" identifier . field_identifier) . field_identifier) & number_literal) )) >> number_literal)) | (binary_expression "(attr_value.aux.shndx & 0xff00) << 8" (parenthesized_expression "(attr_value.aux.shndx & 0xff00)" ( (binary_expression "attr_value.aux.shndx & 0xff00" (field_expression "attr_value.aux.shndx" (field_expression "attr_value.aux" identifier . field_identifier) . field_identifier) & number_literal) )) << number_literal)) | (binary_expression "attr_value.aux.shndx << 0x18" (field_expression "attr_value.aux.shndx" (field_expression "attr_value.aux" identifier . field_identifier) . field_identifier) << number_literal))) ;) })) (expression_statement "attr_value.val.stringval = (char *)(pattr + 4);" (assignment_expression "attr_value.val.stringval = (char *)(pattr + 4)" (field_expression "attr_value.val.stringval" (field_expression "attr_value.val" identifier . field_identifier) . field_identifier) = (cast_expression "(char *)(pattr + 4)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pattr + 4)" ( (binary_expression "pattr + 4" identifier + number_literal) )))) ;) (expression_statement "pattr = (uchar *)(attr_value.val.stringval + attr_value.aux.shndx);" (assignment_expression "pattr = (uchar *)(attr_value.val.stringval + attr_value.aux.shndx)" identifier = (cast_expression "(uchar *)(attr_value.val.stringval + attr_value.aux.shndx)" ( (type_descriptor "uchar *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(attr_value.val.stringval + attr_value.aux.shndx)" ( (binary_expression "attr_value.val.stringval + attr_value.aux.shndx" (field_expression "attr_value.val.stringval" (field_expression "attr_value.val" identifier . field_identifier) . field_identifier) + (field_expression "attr_value.aux.shndx" (field_expression "attr_value.aux" identifier . field_identifier) . field_identifier)) )))) ;) }) (else_clause "else if (uVar11 < 5) {\n            if (uVar11 == 1) {\n              pDVar21 = this->dwinfo_;\n              if (pDVar21->address_size_ == 4) goto LAB_00302e7d;\nLAB_00302a71:\n              pp_Var4 = (pDVar21->object_->super_Object)._vptr_Object;\n              p_Var5 = pp_Var4[3];\n              if (p_Var5 == Relobj::is_big_endian) {\n                iVar9 = (*pp_Var4[0x3a])();\n                cVar8 = (char)iVar9;\n              }\n              else {\n                iVar9 = (*p_Var5)();\n                cVar8 = (char)iVar9;\n              }\n              str_off = *(off_t *)pattr;\n              if (cVar8 != '\0') {\n                str_off = (ulong)str_off >> 0x38 | (str_off & 0xff000000000000U) >> 0x28 |\n                          (str_off & 0xff0000000000U) >> 0x18 | (str_off & 0xff00000000U) >> 8 |\n                          (str_off & 0xff000000U) << 8 | (str_off & 0xff0000U) << 0x18 |\n                          (str_off & 0xff00U) << 0x28 | str_off << 0x38;\n              }\n              pattr = pattr + 8;\n              goto LAB_00302abe;\n            }\n            if (uVar11 != 3) {\n              return false;\n            }\n            pp_Var4 = (this->dwinfo_->object_->super_Object)._vptr_Object;\n            p_Var5 = pp_Var4[3];\n            if (p_Var5 == Relobj::is_big_endian) {\n              iVar9 = (*pp_Var4[0x3a])();\n              cVar8 = (char)iVar9;\n            }\n            else {\n              iVar9 = (*p_Var5)();\n              cVar8 = (char)iVar9;\n            }\n            uVar7 = *(ushort *)pattr;\n            if (cVar8 != '\0') {\n              uVar7 = CONCAT11(*pattr,pattr[1]);\n            }\n            attr_value.aux.shndx._2_2_ = 0;\n            attr_value.aux.shndx._0_2_ = uVar7;\n            attr_value.val.stringval = (char *)(pattr + 2);\n            pattr = (uchar *)(attr_value.val.stringval + attr_value.aux.shndx);\n          }\n          else {\n            if (uVar11 != 5) {\n              if (uVar11 != 6) {\n                return false;\n              }\n              pp_Var4 = (this->dwinfo_->object_->super_Object)._vptr_Object;\n              p_Var5 = pp_Var4[3];\n              if (p_Var5 == Relobj::is_big_endian) {\n                iVar9 = (*pp_Var4[0x3a])();\n                cVar8 = (char)iVar9;\n              }\n              else {\n                iVar9 = (*p_Var5)();\n                cVar8 = (char)iVar9;\n              }\n              uVar3 = *(uint *)pattr;\n              if (cVar8 != '\0') {\n                uVar3 = uVar3 >> 0x18 | (uVar3 & 0xff0000) >> 8 | (uVar3 & 0xff00) << 8 |\n                        uVar3 << 0x18;\n              }\n              str_off = (off_t)uVar3;\n              pattr = pattr + 4;\n              goto LAB_00302d40;\n            }\n            pp_Var4 = (this->dwinfo_->object_->super_Object)._vptr_Object;\n            p_Var5 = pp_Var4[3];\n            if (p_Var5 == Relobj::is_big_endian) {\n              iVar9 = (*pp_Var4[0x3a])();\n              cVar8 = (char)iVar9;\n            }\n            else {\n              iVar9 = (*p_Var5)();\n              cVar8 = (char)iVar9;\n            }\n            uVar7 = *(ushort *)pattr;\n            if (cVar8 != '\0') {\n              uVar7 = CONCAT11(*pattr,pattr[1]);\n            }\n            pattr = pattr + 2;\n            attr_value.val.intval._2_6_ = 0;\n            attr_value.val.intval._0_2_ = uVar7;\n          }" else (if_statement "if (uVar11 < 5) {\n            if (uVar11 == 1) {\n              pDVar21 = this->dwinfo_;\n              if (pDVar21->address_size_ == 4) goto LAB_00302e7d;\nLAB_00302a71:\n              pp_Var4 = (pDVar21->object_->super_Object)._vptr_Object;\n              p_Var5 = pp_Var4[3];\n              if (p_Var5 == Relobj::is_big_endian) {\n                iVar9 = (*pp_Var4[0x3a])();\n                cVar8 = (char)iVar9;\n              }\n              else {\n                iVar9 = (*p_Var5)();\n                cVar8 = (char)iVar9;\n              }\n              str_off = *(off_t *)pattr;\n              if (cVar8 != '\0') {\n                str_off = (ulong)str_off >> 0x38 | (str_off & 0xff000000000000U) >> 0x28 |\n                          (str_off & 0xff0000000000U) >> 0x18 | (str_off & 0xff00000000U) >> 8 |\n                          (str_off & 0xff000000U) << 8 | (str_off & 0xff0000U) << 0x18 |\n                          (str_off & 0xff00U) << 0x28 | str_off << 0x38;\n              }\n              pattr = pattr + 8;\n              goto LAB_00302abe;\n            }\n            if (uVar11 != 3) {\n              return false;\n            }\n            pp_Var4 = (this->dwinfo_->object_->super_Object)._vptr_Object;\n            p_Var5 = pp_Var4[3];\n            if (p_Var5 == Relobj::is_big_endian) {\n              iVar9 = (*pp_Var4[0x3a])();\n              cVar8 = (char)iVar9;\n            }\n            else {\n              iVar9 = (*p_Var5)();\n              cVar8 = (char)iVar9;\n            }\n            uVar7 = *(ushort *)pattr;\n            if (cVar8 != '\0') {\n              uVar7 = CONCAT11(*pattr,pattr[1]);\n            }\n            attr_value.aux.shndx._2_2_ = 0;\n            attr_value.aux.shndx._0_2_ = uVar7;\n            attr_value.val.stringval = (char *)(pattr + 2);\n            pattr = (uchar *)(attr_value.val.stringval + attr_value.aux.shndx);\n          }\n          else {\n            if (uVar11 != 5) {\n              if (uVar11 != 6) {\n                return false;\n              }\n              pp_Var4 = (this->dwinfo_->object_->super_Object)._vptr_Object;\n              p_Var5 = pp_Var4[3];\n              if (p_Var5 == Relobj::is_big_endian) {\n                iVar9 = (*pp_Var4[0x3a])();\n                cVar8 = (char)iVar9;\n              }\n              else {\n                iVar9 = (*p_Var5)();\n                cVar8 = (char)iVar9;\n              }\n              uVar3 = *(uint *)pattr;\n              if (cVar8 != '\0') {\n                uVar3 = uVar3 >> 0x18 | (uVar3 & 0xff0000) >> 8 | (uVar3 & 0xff00) << 8 |\n                        uVar3 << 0x18;\n              }\n              str_off = (off_t)uVar3;\n              pattr = pattr + 4;\n              goto LAB_00302d40;\n            }\n            pp_Var4 = (this->dwinfo_->object_->super_Object)._vptr_Object;\n            p_Var5 = pp_Var4[3];\n            if (p_Var5 == Relobj::is_big_endian) {\n              iVar9 = (*pp_Var4[0x3a])();\n              cVar8 = (char)iVar9;\n            }\n            else {\n              iVar9 = (*p_Var5)();\n              cVar8 = (char)iVar9;\n            }\n            uVar7 = *(ushort *)pattr;\n            if (cVar8 != '\0') {\n              uVar7 = CONCAT11(*pattr,pattr[1]);\n            }\n            pattr = pattr + 2;\n            attr_value.val.intval._2_6_ = 0;\n            attr_value.val.intval._0_2_ = uVar7;\n          }" if (parenthesized_expression "(uVar11 < 5)" ( (binary_expression "uVar11 < 5" identifier < number_literal) )) (compound_statement "{\n            if (uVar11 == 1) {\n              pDVar21 = this->dwinfo_;\n              if (pDVar21->address_size_ == 4) goto LAB_00302e7d;\nLAB_00302a71:\n              pp_Var4 = (pDVar21->object_->super_Object)._vptr_Object;\n              p_Var5 = pp_Var4[3];\n              if (p_Var5 == Relobj::is_big_endian) {\n                iVar9 = (*pp_Var4[0x3a])();\n                cVar8 = (char)iVar9;\n              }\n              else {\n                iVar9 = (*p_Var5)();\n                cVar8 = (char)iVar9;\n              }\n              str_off = *(off_t *)pattr;\n              if (cVar8 != '\0') {\n                str_off = (ulong)str_off >> 0x38 | (str_off & 0xff000000000000U) >> 0x28 |\n                          (str_off & 0xff0000000000U) >> 0x18 | (str_off & 0xff00000000U) >> 8 |\n                          (str_off & 0xff000000U) << 8 | (str_off & 0xff0000U) << 0x18 |\n                          (str_off & 0xff00U) << 0x28 | str_off << 0x38;\n              }\n              pattr = pattr + 8;\n              goto LAB_00302abe;\n            }\n            if (uVar11 != 3) {\n              return false;\n            }\n            pp_Var4 = (this->dwinfo_->object_->super_Object)._vptr_Object;\n            p_Var5 = pp_Var4[3];\n            if (p_Var5 == Relobj::is_big_endian) {\n              iVar9 = (*pp_Var4[0x3a])();\n              cVar8 = (char)iVar9;\n            }\n            else {\n              iVar9 = (*p_Var5)();\n              cVar8 = (char)iVar9;\n            }\n            uVar7 = *(ushort *)pattr;\n            if (cVar8 != '\0') {\n              uVar7 = CONCAT11(*pattr,pattr[1]);\n            }\n            attr_value.aux.shndx._2_2_ = 0;\n            attr_value.aux.shndx._0_2_ = uVar7;\n            attr_value.val.stringval = (char *)(pattr + 2);\n            pattr = (uchar *)(attr_value.val.stringval + attr_value.aux.shndx);\n          }" { (if_statement "if (uVar11 == 1) {\n              pDVar21 = this->dwinfo_;\n              if (pDVar21->address_size_ == 4) goto LAB_00302e7d;\nLAB_00302a71:\n              pp_Var4 = (pDVar21->object_->super_Object)._vptr_Object;\n              p_Var5 = pp_Var4[3];\n              if (p_Var5 == Relobj::is_big_endian) {\n                iVar9 = (*pp_Var4[0x3a])();\n                cVar8 = (char)iVar9;\n              }\n              else {\n                iVar9 = (*p_Var5)();\n                cVar8 = (char)iVar9;\n              }\n              str_off = *(off_t *)pattr;\n              if (cVar8 != '\0') {\n                str_off = (ulong)str_off >> 0x38 | (str_off & 0xff000000000000U) >> 0x28 |\n                          (str_off & 0xff0000000000U) >> 0x18 | (str_off & 0xff00000000U) >> 8 |\n                          (str_off & 0xff000000U) << 8 | (str_off & 0xff0000U) << 0x18 |\n                          (str_off & 0xff00U) << 0x28 | str_off << 0x38;\n              }\n              pattr = pattr + 8;\n              goto LAB_00302abe;\n            }" if (parenthesized_expression "(uVar11 == 1)" ( (binary_expression "uVar11 == 1" identifier == number_literal) )) (compound_statement "{\n              pDVar21 = this->dwinfo_;\n              if (pDVar21->address_size_ == 4) goto LAB_00302e7d;\nLAB_00302a71:\n              pp_Var4 = (pDVar21->object_->super_Object)._vptr_Object;\n              p_Var5 = pp_Var4[3];\n              if (p_Var5 == Relobj::is_big_endian) {\n                iVar9 = (*pp_Var4[0x3a])();\n                cVar8 = (char)iVar9;\n              }\n              else {\n                iVar9 = (*p_Var5)();\n                cVar8 = (char)iVar9;\n              }\n              str_off = *(off_t *)pattr;\n              if (cVar8 != '\0') {\n                str_off = (ulong)str_off >> 0x38 | (str_off & 0xff000000000000U) >> 0x28 |\n                          (str_off & 0xff0000000000U) >> 0x18 | (str_off & 0xff00000000U) >> 8 |\n                          (str_off & 0xff000000U) << 8 | (str_off & 0xff0000U) << 0x18 |\n                          (str_off & 0xff00U) << 0x28 | str_off << 0x38;\n              }\n              pattr = pattr + 8;\n              goto LAB_00302abe;\n            }" { (expression_statement "pDVar21 = this->dwinfo_;" (assignment_expression "pDVar21 = this->dwinfo_" identifier = (field_expression "this->dwinfo_" identifier -> field_identifier)) ;) (if_statement "if (pDVar21->address_size_ == 4) goto LAB_00302e7d;" if (parenthesized_expression "(pDVar21->address_size_ == 4)" ( (binary_expression "pDVar21->address_size_ == 4" (field_expression "pDVar21->address_size_" identifier -> field_identifier) == number_literal) )) (goto_statement "goto LAB_00302e7d;" goto statement_identifier ;)) (labeled_statement "LAB_00302a71:\n              pp_Var4 = (pDVar21->object_->super_Object)._vptr_Object;" statement_identifier : (expression_statement "pp_Var4 = (pDVar21->object_->super_Object)._vptr_Object;" (assignment_expression "pp_Var4 = (pDVar21->object_->super_Object)._vptr_Object" identifier = (field_expression "(pDVar21->object_->super_Object)._vptr_Object" (parenthesized_expression "(pDVar21->object_->super_Object)" ( (field_expression "pDVar21->object_->super_Object" (field_expression "pDVar21->object_" identifier -> field_identifier) -> field_identifier) )) . field_identifier)) ;)) (expression_statement "p_Var5 = pp_Var4[3];" (assignment_expression "p_Var5 = pp_Var4[3]" identifier = (subscript_expression "pp_Var4[3]" identifier [ number_literal ])) ;) (if_statement "if (p_Var5 == Relobj::is_big_endian) {\n                iVar9 = (*pp_Var4[0x3a])();\n                cVar8 = (char)iVar9;\n              }\n              else {\n                iVar9 = (*p_Var5)();\n                cVar8 = (char)iVar9;\n              }" if (parenthesized_expression "(p_Var5 == Relobj::is_big_endian)" ( (binary_expression "p_Var5 == Relobj" identifier == identifier) (ERROR "::is_big_endian" : : identifier) )) (compound_statement "{\n                iVar9 = (*pp_Var4[0x3a])();\n                cVar8 = (char)iVar9;\n              }" { (expression_statement "iVar9 = (*pp_Var4[0x3a])();" (assignment_expression "iVar9 = (*pp_Var4[0x3a])()" identifier = (call_expression "(*pp_Var4[0x3a])()" (parenthesized_expression "(*pp_Var4[0x3a])" ( (pointer_expression "*pp_Var4[0x3a]" * (subscript_expression "pp_Var4[0x3a]" identifier [ number_literal ])) )) (argument_list "()" ( )))) ;) (expression_statement "cVar8 = (char)iVar9;" (assignment_expression "cVar8 = (char)iVar9" identifier = (cast_expression "(char)iVar9" ( (type_descriptor "char" primitive_type) ) identifier)) ;) }) (else_clause "else {\n                iVar9 = (*p_Var5)();\n                cVar8 = (char)iVar9;\n              }" else (compound_statement "{\n                iVar9 = (*p_Var5)();\n                cVar8 = (char)iVar9;\n              }" { (expression_statement "iVar9 = (*p_Var5)();" (assignment_expression "iVar9 = (*p_Var5)()" identifier = (call_expression "(*p_Var5)()" (parenthesized_expression "(*p_Var5)" ( (pointer_expression "*p_Var5" * identifier) )) (argument_list "()" ( )))) ;) (expression_statement "cVar8 = (char)iVar9;" (assignment_expression "cVar8 = (char)iVar9" identifier = (cast_expression "(char)iVar9" ( (type_descriptor "char" primitive_type) ) identifier)) ;) }))) (expression_statement "str_off = *(off_t *)pattr;" (assignment_expression "str_off = *(off_t *)pattr" identifier = (pointer_expression "*(off_t *)pattr" * (cast_expression "(off_t *)pattr" ( (type_descriptor "off_t *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier))) ;) (if_statement "if (cVar8 != '\0') {\n                str_off = (ulong)str_off >> 0x38 | (str_off & 0xff000000000000U) >> 0x28 |\n                          (str_off & 0xff0000000000U) >> 0x18 | (str_off & 0xff00000000U) >> 8 |\n                          (str_off & 0xff000000U) << 8 | (str_off & 0xff0000U) << 0x18 |\n                          (str_off & 0xff00U) << 0x28 | str_off << 0x38;\n              }" if (parenthesized_expression "(cVar8 != '\0')" ( (binary_expression "cVar8 != '\0'" identifier != (char_literal "'\0'" ' escape_sequence ')) )) (compound_statement "{\n                str_off = (ulong)str_off >> 0x38 | (str_off & 0xff000000000000U) >> 0x28 |\n                          (str_off & 0xff0000000000U) >> 0x18 | (str_off & 0xff00000000U) >> 8 |\n                          (str_off & 0xff000000U) << 8 | (str_off & 0xff0000U) << 0x18 |\n                          (str_off & 0xff00U) << 0x28 | str_off << 0x38;\n              }" { (expression_statement "str_off = (ulong)str_off >> 0x38 | (str_off & 0xff000000000000U) >> 0x28 |\n                          (str_off & 0xff0000000000U) >> 0x18 | (str_off & 0xff00000000U) >> 8 |\n                          (str_off & 0xff000000U) << 8 | (str_off & 0xff0000U) << 0x18 |\n                          (str_off & 0xff00U) << 0x28 | str_off << 0x38;" (assignment_expression "str_off = (ulong)str_off >> 0x38 | (str_off & 0xff000000000000U) >> 0x28 |\n                          (str_off & 0xff0000000000U) >> 0x18 | (str_off & 0xff00000000U) >> 8 |\n                          (str_off & 0xff000000U) << 8 | (str_off & 0xff0000U) << 0x18 |\n                          (str_off & 0xff00U) << 0x28 | str_off << 0x38" identifier = (binary_expression "(ulong)str_off >> 0x38 | (str_off & 0xff000000000000U) >> 0x28 |\n                          (str_off & 0xff0000000000U) >> 0x18 | (str_off & 0xff00000000U) >> 8 |\n                          (str_off & 0xff000000U) << 8 | (str_off & 0xff0000U) << 0x18 |\n                          (str_off & 0xff00U) << 0x28 | str_off << 0x38" (binary_expression "(ulong)str_off >> 0x38 | (str_off & 0xff000000000000U) >> 0x28 |\n                          (str_off & 0xff0000000000U) >> 0x18 | (str_off & 0xff00000000U) >> 8 |\n                          (str_off & 0xff000000U) << 8 | (str_off & 0xff0000U) << 0x18 |\n                          (str_off & 0xff00U) << 0x28" (binary_expression "(ulong)str_off >> 0x38 | (str_off & 0xff000000000000U) >> 0x28 |\n                          (str_off & 0xff0000000000U) >> 0x18 | (str_off & 0xff00000000U) >> 8 |\n                          (str_off & 0xff000000U) << 8 | (str_off & 0xff0000U) << 0x18" (binary_expression "(ulong)str_off >> 0x38 | (str_off & 0xff000000000000U) >> 0x28 |\n                          (str_off & 0xff0000000000U) >> 0x18 | (str_off & 0xff00000000U) >> 8 |\n                          (str_off & 0xff000000U) << 8" (binary_expression "(ulong)str_off >> 0x38 | (str_off & 0xff000000000000U) >> 0x28 |\n                          (str_off & 0xff0000000000U) >> 0x18 | (str_off & 0xff00000000U) >> 8" (binary_expression "(ulong)str_off >> 0x38 | (str_off & 0xff000000000000U) >> 0x28 |\n                          (str_off & 0xff0000000000U) >> 0x18" (binary_expression "(ulong)str_off >> 0x38 | (str_off & 0xff000000000000U) >> 0x28" (binary_expression "(ulong)str_off >> 0x38" (cast_expression "(ulong)str_off" ( (type_descriptor "ulong" type_identifier) ) identifier) >> number_literal) | (binary_expression "(str_off & 0xff000000000000U) >> 0x28" (parenthesized_expression "(str_off & 0xff000000000000U)" ( (binary_expression "str_off & 0xff000000000000U" identifier & number_literal) )) >> number_literal)) | (binary_expression "(str_off & 0xff0000000000U) >> 0x18" (parenthesized_expression "(str_off & 0xff0000000000U)" ( (binary_expression "str_off & 0xff0000000000U" identifier & number_literal) )) >> number_literal)) | (binary_expression "(str_off & 0xff00000000U) >> 8" (parenthesized_expression "(str_off & 0xff00000000U)" ( (binary_expression "str_off & 0xff00000000U" identifier & number_literal) )) >> number_literal)) | (binary_expression "(str_off & 0xff000000U) << 8" (parenthesized_expression "(str_off & 0xff000000U)" ( (binary_expression "str_off & 0xff000000U" identifier & number_literal) )) << number_literal)) | (binary_expression "(str_off & 0xff0000U) << 0x18" (parenthesized_expression "(str_off & 0xff0000U)" ( (binary_expression "str_off & 0xff0000U" identifier & number_literal) )) << number_literal)) | (binary_expression "(str_off & 0xff00U) << 0x28" (parenthesized_expression "(str_off & 0xff00U)" ( (binary_expression "str_off & 0xff00U" identifier & number_literal) )) << number_literal)) | (binary_expression "str_off << 0x38" identifier << number_literal))) ;) })) (expression_statement "pattr = pattr + 8;" (assignment_expression "pattr = pattr + 8" identifier = (binary_expression "pattr + 8" identifier + number_literal)) ;) (goto_statement "goto LAB_00302abe;" goto statement_identifier ;) })) (if_statement "if (uVar11 != 3) {\n              return false;\n            }" if (parenthesized_expression "(uVar11 != 3)" ( (binary_expression "uVar11 != 3" identifier != number_literal) )) (compound_statement "{\n              return false;\n            }" { (return_statement "return false;" return false ;) })) (expression_statement "pp_Var4 = (this->dwinfo_->object_->super_Object)._vptr_Object;" (assignment_expression "pp_Var4 = (this->dwinfo_->object_->super_Object)._vptr_Object" identifier = (field_expression "(this->dwinfo_->object_->super_Object)._vptr_Object" (parenthesized_expression "(this->dwinfo_->object_->super_Object)" ( (field_expression "this->dwinfo_->object_->super_Object" (field_expression "this->dwinfo_->object_" (field_expression "this->dwinfo_" identifier -> field_identifier) -> field_identifier) -> field_identifier) )) . field_identifier)) ;) (expression_statement "p_Var5 = pp_Var4[3];" (assignment_expression "p_Var5 = pp_Var4[3]" identifier = (subscript_expression "pp_Var4[3]" identifier [ number_literal ])) ;) (if_statement "if (p_Var5 == Relobj::is_big_endian) {\n              iVar9 = (*pp_Var4[0x3a])();\n              cVar8 = (char)iVar9;\n            }\n            else {\n              iVar9 = (*p_Var5)();\n              cVar8 = (char)iVar9;\n            }" if (parenthesized_expression "(p_Var5 == Relobj::is_big_endian)" ( (binary_expression "p_Var5 == Relobj" identifier == identifier) (ERROR "::is_big_endian" : : identifier) )) (compound_statement "{\n              iVar9 = (*pp_Var4[0x3a])();\n              cVar8 = (char)iVar9;\n            }" { (expression_statement "iVar9 = (*pp_Var4[0x3a])();" (assignment_expression "iVar9 = (*pp_Var4[0x3a])()" identifier = (call_expression "(*pp_Var4[0x3a])()" (parenthesized_expression "(*pp_Var4[0x3a])" ( (pointer_expression "*pp_Var4[0x3a]" * (subscript_expression "pp_Var4[0x3a]" identifier [ number_literal ])) )) (argument_list "()" ( )))) ;) (expression_statement "cVar8 = (char)iVar9;" (assignment_expression "cVar8 = (char)iVar9" identifier = (cast_expression "(char)iVar9" ( (type_descriptor "char" primitive_type) ) identifier)) ;) }) (else_clause "else {\n              iVar9 = (*p_Var5)();\n              cVar8 = (char)iVar9;\n            }" else (compound_statement "{\n              iVar9 = (*p_Var5)();\n              cVar8 = (char)iVar9;\n            }" { (expression_statement "iVar9 = (*p_Var5)();" (assignment_expression "iVar9 = (*p_Var5)()" identifier = (call_expression "(*p_Var5)()" (parenthesized_expression "(*p_Var5)" ( (pointer_expression "*p_Var5" * identifier) )) (argument_list "()" ( )))) ;) (expression_statement "cVar8 = (char)iVar9;" (assignment_expression "cVar8 = (char)iVar9" identifier = (cast_expression "(char)iVar9" ( (type_descriptor "char" primitive_type) ) identifier)) ;) }))) (expression_statement "uVar7 = *(ushort *)pattr;" (assignment_expression "uVar7 = *(ushort *)pattr" identifier = (pointer_expression "*(ushort *)pattr" * (cast_expression "(ushort *)pattr" ( (type_descriptor "ushort *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier))) ;) (if_statement "if (cVar8 != '\0') {\n              uVar7 = CONCAT11(*pattr,pattr[1]);\n            }" if (parenthesized_expression "(cVar8 != '\0')" ( (binary_expression "cVar8 != '\0'" identifier != (char_literal "'\0'" ' escape_sequence ')) )) (compound_statement "{\n              uVar7 = CONCAT11(*pattr,pattr[1]);\n            }" { (expression_statement "uVar7 = CONCAT11(*pattr,pattr[1]);" (assignment_expression "uVar7 = CONCAT11(*pattr,pattr[1])" identifier = (call_expression "CONCAT11(*pattr,pattr[1])" identifier (argument_list "(*pattr,pattr[1])" ( (pointer_expression "*pattr" * identifier) , (subscript_expression "pattr[1]" identifier [ number_literal ]) )))) ;) })) (expression_statement "attr_value.aux.shndx._2_2_ = 0;" (assignment_expression "attr_value.aux.shndx._2_2_ = 0" (field_expression "attr_value.aux.shndx._2_2_" (field_expression "attr_value.aux.shndx" (field_expression "attr_value.aux" identifier . field_identifier) . field_identifier) . field_identifier) = number_literal) ;) (expression_statement "attr_value.aux.shndx._0_2_ = uVar7;" (assignment_expression "attr_value.aux.shndx._0_2_ = uVar7" (field_expression "attr_value.aux.shndx._0_2_" (field_expression "attr_value.aux.shndx" (field_expression "attr_value.aux" identifier . field_identifier) . field_identifier) . field_identifier) = identifier) ;) (expression_statement "attr_value.val.stringval = (char *)(pattr + 2);" (assignment_expression "attr_value.val.stringval = (char *)(pattr + 2)" (field_expression "attr_value.val.stringval" (field_expression "attr_value.val" identifier . field_identifier) . field_identifier) = (cast_expression "(char *)(pattr + 2)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pattr + 2)" ( (binary_expression "pattr + 2" identifier + number_literal) )))) ;) (expression_statement "pattr = (uchar *)(attr_value.val.stringval + attr_value.aux.shndx);" (assignment_expression "pattr = (uchar *)(attr_value.val.stringval + attr_value.aux.shndx)" identifier = (cast_expression "(uchar *)(attr_value.val.stringval + attr_value.aux.shndx)" ( (type_descriptor "uchar *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(attr_value.val.stringval + attr_value.aux.shndx)" ( (binary_expression "attr_value.val.stringval + attr_value.aux.shndx" (field_expression "attr_value.val.stringval" (field_expression "attr_value.val" identifier . field_identifier) . field_identifier) + (field_expression "attr_value.aux.shndx" (field_expression "attr_value.aux" identifier . field_identifier) . field_identifier)) )))) ;) }) (else_clause "else {\n            if (uVar11 != 5) {\n              if (uVar11 != 6) {\n                return false;\n              }\n              pp_Var4 = (this->dwinfo_->object_->super_Object)._vptr_Object;\n              p_Var5 = pp_Var4[3];\n              if (p_Var5 == Relobj::is_big_endian) {\n                iVar9 = (*pp_Var4[0x3a])();\n                cVar8 = (char)iVar9;\n              }\n              else {\n                iVar9 = (*p_Var5)();\n                cVar8 = (char)iVar9;\n              }\n              uVar3 = *(uint *)pattr;\n              if (cVar8 != '\0') {\n                uVar3 = uVar3 >> 0x18 | (uVar3 & 0xff0000) >> 8 | (uVar3 & 0xff00) << 8 |\n                        uVar3 << 0x18;\n              }\n              str_off = (off_t)uVar3;\n              pattr = pattr + 4;\n              goto LAB_00302d40;\n            }\n            pp_Var4 = (this->dwinfo_->object_->super_Object)._vptr_Object;\n            p_Var5 = pp_Var4[3];\n            if (p_Var5 == Relobj::is_big_endian) {\n              iVar9 = (*pp_Var4[0x3a])();\n              cVar8 = (char)iVar9;\n            }\n            else {\n              iVar9 = (*p_Var5)();\n              cVar8 = (char)iVar9;\n            }\n            uVar7 = *(ushort *)pattr;\n            if (cVar8 != '\0') {\n              uVar7 = CONCAT11(*pattr,pattr[1]);\n            }\n            pattr = pattr + 2;\n            attr_value.val.intval._2_6_ = 0;\n            attr_value.val.intval._0_2_ = uVar7;\n          }" else (compound_statement "{\n            if (uVar11 != 5) {\n              if (uVar11 != 6) {\n                return false;\n              }\n              pp_Var4 = (this->dwinfo_->object_->super_Object)._vptr_Object;\n              p_Var5 = pp_Var4[3];\n              if (p_Var5 == Relobj::is_big_endian) {\n                iVar9 = (*pp_Var4[0x3a])();\n                cVar8 = (char)iVar9;\n              }\n              else {\n                iVar9 = (*p_Var5)();\n                cVar8 = (char)iVar9;\n              }\n              uVar3 = *(uint *)pattr;\n              if (cVar8 != '\0') {\n                uVar3 = uVar3 >> 0x18 | (uVar3 & 0xff0000) >> 8 | (uVar3 & 0xff00) << 8 |\n                        uVar3 << 0x18;\n              }\n              str_off = (off_t)uVar3;\n              pattr = pattr + 4;\n              goto LAB_00302d40;\n            }\n            pp_Var4 = (this->dwinfo_->object_->super_Object)._vptr_Object;\n            p_Var5 = pp_Var4[3];\n            if (p_Var5 == Relobj::is_big_endian) {\n              iVar9 = (*pp_Var4[0x3a])();\n              cVar8 = (char)iVar9;\n            }\n            else {\n              iVar9 = (*p_Var5)();\n              cVar8 = (char)iVar9;\n            }\n            uVar7 = *(ushort *)pattr;\n            if (cVar8 != '\0') {\n              uVar7 = CONCAT11(*pattr,pattr[1]);\n            }\n            pattr = pattr + 2;\n            attr_value.val.intval._2_6_ = 0;\n            attr_value.val.intval._0_2_ = uVar7;\n          }" { (if_statement "if (uVar11 != 5) {\n              if (uVar11 != 6) {\n                return false;\n              }\n              pp_Var4 = (this->dwinfo_->object_->super_Object)._vptr_Object;\n              p_Var5 = pp_Var4[3];\n              if (p_Var5 == Relobj::is_big_endian) {\n                iVar9 = (*pp_Var4[0x3a])();\n                cVar8 = (char)iVar9;\n              }\n              else {\n                iVar9 = (*p_Var5)();\n                cVar8 = (char)iVar9;\n              }\n              uVar3 = *(uint *)pattr;\n              if (cVar8 != '\0') {\n                uVar3 = uVar3 >> 0x18 | (uVar3 & 0xff0000) >> 8 | (uVar3 & 0xff00) << 8 |\n                        uVar3 << 0x18;\n              }\n              str_off = (off_t)uVar3;\n              pattr = pattr + 4;\n              goto LAB_00302d40;\n            }" if (parenthesized_expression "(uVar11 != 5)" ( (binary_expression "uVar11 != 5" identifier != number_literal) )) (compound_statement "{\n              if (uVar11 != 6) {\n                return false;\n              }\n              pp_Var4 = (this->dwinfo_->object_->super_Object)._vptr_Object;\n              p_Var5 = pp_Var4[3];\n              if (p_Var5 == Relobj::is_big_endian) {\n                iVar9 = (*pp_Var4[0x3a])();\n                cVar8 = (char)iVar9;\n              }\n              else {\n                iVar9 = (*p_Var5)();\n                cVar8 = (char)iVar9;\n              }\n              uVar3 = *(uint *)pattr;\n              if (cVar8 != '\0') {\n                uVar3 = uVar3 >> 0x18 | (uVar3 & 0xff0000) >> 8 | (uVar3 & 0xff00) << 8 |\n                        uVar3 << 0x18;\n              }\n              str_off = (off_t)uVar3;\n              pattr = pattr + 4;\n              goto LAB_00302d40;\n            }" { (if_statement "if (uVar11 != 6) {\n                return false;\n              }" if (parenthesized_expression "(uVar11 != 6)" ( (binary_expression "uVar11 != 6" identifier != number_literal) )) (compound_statement "{\n                return false;\n              }" { (return_statement "return false;" return false ;) })) (expression_statement "pp_Var4 = (this->dwinfo_->object_->super_Object)._vptr_Object;" (assignment_expression "pp_Var4 = (this->dwinfo_->object_->super_Object)._vptr_Object" identifier = (field_expression "(this->dwinfo_->object_->super_Object)._vptr_Object" (parenthesized_expression "(this->dwinfo_->object_->super_Object)" ( (field_expression "this->dwinfo_->object_->super_Object" (field_expression "this->dwinfo_->object_" (field_expression "this->dwinfo_" identifier -> field_identifier) -> field_identifier) -> field_identifier) )) . field_identifier)) ;) (expression_statement "p_Var5 = pp_Var4[3];" (assignment_expression "p_Var5 = pp_Var4[3]" identifier = (subscript_expression "pp_Var4[3]" identifier [ number_literal ])) ;) (if_statement "if (p_Var5 == Relobj::is_big_endian) {\n                iVar9 = (*pp_Var4[0x3a])();\n                cVar8 = (char)iVar9;\n              }\n              else {\n                iVar9 = (*p_Var5)();\n                cVar8 = (char)iVar9;\n              }" if (parenthesized_expression "(p_Var5 == Relobj::is_big_endian)" ( (binary_expression "p_Var5 == Relobj" identifier == identifier) (ERROR "::is_big_endian" : : identifier) )) (compound_statement "{\n                iVar9 = (*pp_Var4[0x3a])();\n                cVar8 = (char)iVar9;\n              }" { (expression_statement "iVar9 = (*pp_Var4[0x3a])();" (assignment_expression "iVar9 = (*pp_Var4[0x3a])()" identifier = (call_expression "(*pp_Var4[0x3a])()" (parenthesized_expression "(*pp_Var4[0x3a])" ( (pointer_expression "*pp_Var4[0x3a]" * (subscript_expression "pp_Var4[0x3a]" identifier [ number_literal ])) )) (argument_list "()" ( )))) ;) (expression_statement "cVar8 = (char)iVar9;" (assignment_expression "cVar8 = (char)iVar9" identifier = (cast_expression "(char)iVar9" ( (type_descriptor "char" primitive_type) ) identifier)) ;) }) (else_clause "else {\n                iVar9 = (*p_Var5)();\n                cVar8 = (char)iVar9;\n              }" else (compound_statement "{\n                iVar9 = (*p_Var5)();\n                cVar8 = (char)iVar9;\n              }" { (expression_statement "iVar9 = (*p_Var5)();" (assignment_expression "iVar9 = (*p_Var5)()" identifier = (call_expression "(*p_Var5)()" (parenthesized_expression "(*p_Var5)" ( (pointer_expression "*p_Var5" * identifier) )) (argument_list "()" ( )))) ;) (expression_statement "cVar8 = (char)iVar9;" (assignment_expression "cVar8 = (char)iVar9" identifier = (cast_expression "(char)iVar9" ( (type_descriptor "char" primitive_type) ) identifier)) ;) }))) (expression_statement "uVar3 = *(uint *)pattr;" (assignment_expression "uVar3 = *(uint *)pattr" identifier = (pointer_expression "*(uint *)pattr" * (cast_expression "(uint *)pattr" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier))) ;) (if_statement "if (cVar8 != '\0') {\n                uVar3 = uVar3 >> 0x18 | (uVar3 & 0xff0000) >> 8 | (uVar3 & 0xff00) << 8 |\n                        uVar3 << 0x18;\n              }" if (parenthesized_expression "(cVar8 != '\0')" ( (binary_expression "cVar8 != '\0'" identifier != (char_literal "'\0'" ' escape_sequence ')) )) (compound_statement "{\n                uVar3 = uVar3 >> 0x18 | (uVar3 & 0xff0000) >> 8 | (uVar3 & 0xff00) << 8 |\n                        uVar3 << 0x18;\n              }" { (expression_statement "uVar3 = uVar3 >> 0x18 | (uVar3 & 0xff0000) >> 8 | (uVar3 & 0xff00) << 8 |\n                        uVar3 << 0x18;" (assignment_expression "uVar3 = uVar3 >> 0x18 | (uVar3 & 0xff0000) >> 8 | (uVar3 & 0xff00) << 8 |\n                        uVar3 << 0x18" identifier = (binary_expression "uVar3 >> 0x18 | (uVar3 & 0xff0000) >> 8 | (uVar3 & 0xff00) << 8 |\n                        uVar3 << 0x18" (binary_expression "uVar3 >> 0x18 | (uVar3 & 0xff0000) >> 8 | (uVar3 & 0xff00) << 8" (binary_expression "uVar3 >> 0x18 | (uVar3 & 0xff0000) >> 8" (binary_expression "uVar3 >> 0x18" identifier >> number_literal) | (binary_expression "(uVar3 & 0xff0000) >> 8" (parenthesized_expression "(uVar3 & 0xff0000)" ( (binary_expression "uVar3 & 0xff0000" identifier & number_literal) )) >> number_literal)) | (binary_expression "(uVar3 & 0xff00) << 8" (parenthesized_expression "(uVar3 & 0xff00)" ( (binary_expression "uVar3 & 0xff00" identifier & number_literal) )) << number_literal)) | (binary_expression "uVar3 << 0x18" identifier << number_literal))) ;) })) (expression_statement "str_off = (off_t)uVar3;" (assignment_expression "str_off = (off_t)uVar3" identifier = (cast_expression "(off_t)uVar3" ( (type_descriptor "off_t" type_identifier) ) identifier)) ;) (expression_statement "pattr = pattr + 4;" (assignment_expression "pattr = pattr + 4" identifier = (binary_expression "pattr + 4" identifier + number_literal)) ;) (goto_statement "goto LAB_00302d40;" goto statement_identifier ;) })) (expression_statement "pp_Var4 = (this->dwinfo_->object_->super_Object)._vptr_Object;" (assignment_expression "pp_Var4 = (this->dwinfo_->object_->super_Object)._vptr_Object" identifier = (field_expression "(this->dwinfo_->object_->super_Object)._vptr_Object" (parenthesized_expression "(this->dwinfo_->object_->super_Object)" ( (field_expression "this->dwinfo_->object_->super_Object" (field_expression "this->dwinfo_->object_" (field_expression "this->dwinfo_" identifier -> field_identifier) -> field_identifier) -> field_identifier) )) . field_identifier)) ;) (expression_statement "p_Var5 = pp_Var4[3];" (assignment_expression "p_Var5 = pp_Var4[3]" identifier = (subscript_expression "pp_Var4[3]" identifier [ number_literal ])) ;) (if_statement "if (p_Var5 == Relobj::is_big_endian) {\n              iVar9 = (*pp_Var4[0x3a])();\n              cVar8 = (char)iVar9;\n            }\n            else {\n              iVar9 = (*p_Var5)();\n              cVar8 = (char)iVar9;\n            }" if (parenthesized_expression "(p_Var5 == Relobj::is_big_endian)" ( (binary_expression "p_Var5 == Relobj" identifier == identifier) (ERROR "::is_big_endian" : : identifier) )) (compound_statement "{\n              iVar9 = (*pp_Var4[0x3a])();\n              cVar8 = (char)iVar9;\n            }" { (expression_statement "iVar9 = (*pp_Var4[0x3a])();" (assignment_expression "iVar9 = (*pp_Var4[0x3a])()" identifier = (call_expression "(*pp_Var4[0x3a])()" (parenthesized_expression "(*pp_Var4[0x3a])" ( (pointer_expression "*pp_Var4[0x3a]" * (subscript_expression "pp_Var4[0x3a]" identifier [ number_literal ])) )) (argument_list "()" ( )))) ;) (expression_statement "cVar8 = (char)iVar9;" (assignment_expression "cVar8 = (char)iVar9" identifier = (cast_expression "(char)iVar9" ( (type_descriptor "char" primitive_type) ) identifier)) ;) }) (else_clause "else {\n              iVar9 = (*p_Var5)();\n              cVar8 = (char)iVar9;\n            }" else (compound_statement "{\n              iVar9 = (*p_Var5)();\n              cVar8 = (char)iVar9;\n            }" { (expression_statement "iVar9 = (*p_Var5)();" (assignment_expression "iVar9 = (*p_Var5)()" identifier = (call_expression "(*p_Var5)()" (parenthesized_expression "(*p_Var5)" ( (pointer_expression "*p_Var5" * identifier) )) (argument_list "()" ( )))) ;) (expression_statement "cVar8 = (char)iVar9;" (assignment_expression "cVar8 = (char)iVar9" identifier = (cast_expression "(char)iVar9" ( (type_descriptor "char" primitive_type) ) identifier)) ;) }))) (expression_statement "uVar7 = *(ushort *)pattr;" (assignment_expression "uVar7 = *(ushort *)pattr" identifier = (pointer_expression "*(ushort *)pattr" * (cast_expression "(ushort *)pattr" ( (type_descriptor "ushort *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier))) ;) (if_statement "if (cVar8 != '\0') {\n              uVar7 = CONCAT11(*pattr,pattr[1]);\n            }" if (parenthesized_expression "(cVar8 != '\0')" ( (binary_expression "cVar8 != '\0'" identifier != (char_literal "'\0'" ' escape_sequence ')) )) (compound_statement "{\n              uVar7 = CONCAT11(*pattr,pattr[1]);\n            }" { (expression_statement "uVar7 = CONCAT11(*pattr,pattr[1]);" (assignment_expression "uVar7 = CONCAT11(*pattr,pattr[1])" identifier = (call_expression "CONCAT11(*pattr,pattr[1])" identifier (argument_list "(*pattr,pattr[1])" ( (pointer_expression "*pattr" * identifier) , (subscript_expression "pattr[1]" identifier [ number_literal ]) )))) ;) })) (expression_statement "pattr = pattr + 2;" (assignment_expression "pattr = pattr + 2" identifier = (binary_expression "pattr + 2" identifier + number_literal)) ;) (expression_statement "attr_value.val.intval._2_6_ = 0;" (assignment_expression "attr_value.val.intval._2_6_ = 0" (field_expression "attr_value.val.intval._2_6_" (field_expression "attr_value.val.intval" (field_expression "attr_value.val" identifier . field_identifier) . field_identifier) . field_identifier) = number_literal) ;) (expression_statement "attr_value.val.intval._0_2_ = uVar7;" (assignment_expression "attr_value.val.intval._0_2_ = uVar7" (field_expression "attr_value.val.intval._0_2_" (field_expression "attr_value.val.intval" (field_expression "attr_value.val" identifier . field_identifier) . field_identifier) . field_identifier) = identifier) ;) }))))) (goto_statement "goto joined_r0x00302748;" goto statement_identifier ;) })) (if_statement "if (uVar11 == 10) {\n          attr_value.val.stringval = (char *)(pattr + 1);\n          bVar1 = *pattr;\n          pattr = (uchar *)(attr_value.val.stringval + bVar1);\n          attr_value.aux.shndx._1_3_ = 0;\n          attr_value.aux.shndx._0_1_ = bVar1;\n          goto joined_r0x00302748;\n        }" if (parenthesized_expression "(uVar11 == 10)" ( (binary_expression "uVar11 == 10" identifier == number_literal) )) (compound_statement "{\n          attr_value.val.stringval = (char *)(pattr + 1);\n          bVar1 = *pattr;\n          pattr = (uchar *)(attr_value.val.stringval + bVar1);\n          attr_value.aux.shndx._1_3_ = 0;\n          attr_value.aux.shndx._0_1_ = bVar1;\n          goto joined_r0x00302748;\n        }" { (expression_statement "attr_value.val.stringval = (char *)(pattr + 1);" (assignment_expression "attr_value.val.stringval = (char *)(pattr + 1)" (field_expression "attr_value.val.stringval" (field_expression "attr_value.val" identifier . field_identifier) . field_identifier) = (cast_expression "(char *)(pattr + 1)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pattr + 1)" ( (binary_expression "pattr + 1" identifier + number_literal) )))) ;) (expression_statement "bVar1 = *pattr;" (assignment_expression "bVar1 = *pattr" identifier = (pointer_expression "*pattr" * identifier)) ;) (expression_statement "pattr = (uchar *)(attr_value.val.stringval + bVar1);" (assignment_expression "pattr = (uchar *)(attr_value.val.stringval + bVar1)" identifier = (cast_expression "(uchar *)(attr_value.val.stringval + bVar1)" ( (type_descriptor "uchar *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(attr_value.val.stringval + bVar1)" ( (binary_expression "attr_value.val.stringval + bVar1" (field_expression "attr_value.val.stringval" (field_expression "attr_value.val" identifier . field_identifier) . field_identifier) + identifier) )))) ;) (expression_statement "attr_value.aux.shndx._1_3_ = 0;" (assignment_expression "attr_value.aux.shndx._1_3_ = 0" (field_expression "attr_value.aux.shndx._1_3_" (field_expression "attr_value.aux.shndx" (field_expression "attr_value.aux" identifier . field_identifier) . field_identifier) . field_identifier) = number_literal) ;) (expression_statement "attr_value.aux.shndx._0_1_ = bVar1;" (assignment_expression "attr_value.aux.shndx._0_1_ = bVar1" (field_expression "attr_value.aux.shndx._0_1_" (field_expression "attr_value.aux.shndx" (field_expression "attr_value.aux" identifier . field_identifier) . field_identifier) . field_identifier) = identifier) ;) (goto_statement "goto joined_r0x00302748;" goto statement_identifier ;) })) (if_statement "if (uVar11 < 0xb) {\n          if (uVar11 != 8) {\n            if (uVar11 != 9) {\n              return false;\n            }\n            goto LAB_00302a09;\n          }\n          attr_value.val.blockval = pattr;\n          len = strlen((char *)pattr);\n          pattr = puVar23 + len + 1;\n          if (uVar2 == 0x31) goto LAB_00302750;\n          if (0x31 < uVar2) {\n            if ((uVar2 != 0x6e) && (uVar2 != 0x2007)) goto LAB_00302750;\n            goto LAB_003029eb;\n          }\n          if ((uVar2 == 1) || (uVar2 != 3)) goto LAB_00302750;\n          goto LAB_003029c7;\n        }" if (parenthesized_expression "(uVar11 < 0xb)" ( (binary_expression "uVar11 < 0xb" identifier < number_literal) )) (compound_statement "{\n          if (uVar11 != 8) {\n            if (uVar11 != 9) {\n              return false;\n            }\n            goto LAB_00302a09;\n          }\n          attr_value.val.blockval = pattr;\n          len = strlen((char *)pattr);\n          pattr = puVar23 + len + 1;\n          if (uVar2 == 0x31) goto LAB_00302750;\n          if (0x31 < uVar2) {\n            if ((uVar2 != 0x6e) && (uVar2 != 0x2007)) goto LAB_00302750;\n            goto LAB_003029eb;\n          }\n          if ((uVar2 == 1) || (uVar2 != 3)) goto LAB_00302750;\n          goto LAB_003029c7;\n        }" { (if_statement "if (uVar11 != 8) {\n            if (uVar11 != 9) {\n              return false;\n            }\n            goto LAB_00302a09;\n          }" if (parenthesized_expression "(uVar11 != 8)" ( (binary_expression "uVar11 != 8" identifier != number_literal) )) (compound_statement "{\n            if (uVar11 != 9) {\n              return false;\n            }\n            goto LAB_00302a09;\n          }" { (if_statement "if (uVar11 != 9) {\n              return false;\n            }" if (parenthesized_expression "(uVar11 != 9)" ( (binary_expression "uVar11 != 9" identifier != number_literal) )) (compound_statement "{\n              return false;\n            }" { (return_statement "return false;" return false ;) })) (goto_statement "goto LAB_00302a09;" goto statement_identifier ;) })) (expression_statement "attr_value.val.blockval = pattr;" (assignment_expression "attr_value.val.blockval = pattr" (field_expression "attr_value.val.blockval" (field_expression "attr_value.val" identifier . field_identifier) . field_identifier) = identifier) ;) (expression_statement "len = strlen((char *)pattr);" (assignment_expression "len = strlen((char *)pattr)" identifier = (call_expression "strlen((char *)pattr)" identifier (argument_list "((char *)pattr)" ( (cast_expression "(char *)pattr" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) identifier) )))) ;) (expression_statement "pattr = puVar23 + len + 1;" (assignment_expression "pattr = puVar23 + len + 1" identifier = (binary_expression "puVar23 + len + 1" (binary_expression "puVar23 + len" identifier + identifier) + number_literal)) ;) (if_statement "if (uVar2 == 0x31) goto LAB_00302750;" if (parenthesized_expression "(uVar2 == 0x31)" ( (binary_expression "uVar2 == 0x31" identifier == number_literal) )) (goto_statement "goto LAB_00302750;" goto statement_identifier ;)) (if_statement "if (0x31 < uVar2) {\n            if ((uVar2 != 0x6e) && (uVar2 != 0x2007)) goto LAB_00302750;\n            goto LAB_003029eb;\n          }" if (parenthesized_expression "(0x31 < uVar2)" ( (binary_expression "0x31 < uVar2" number_literal < identifier) )) (compound_statement "{\n            if ((uVar2 != 0x6e) && (uVar2 != 0x2007)) goto LAB_00302750;\n            goto LAB_003029eb;\n          }" { (if_statement "if ((uVar2 != 0x6e) && (uVar2 != 0x2007)) goto LAB_00302750;" if (parenthesized_expression "((uVar2 != 0x6e) && (uVar2 != 0x2007))" ( (binary_expression "(uVar2 != 0x6e) && (uVar2 != 0x2007)" (parenthesized_expression "(uVar2 != 0x6e)" ( (binary_expression "uVar2 != 0x6e" identifier != number_literal) )) && (parenthesized_expression "(uVar2 != 0x2007)" ( (binary_expression "uVar2 != 0x2007" identifier != number_literal) ))) )) (goto_statement "goto LAB_00302750;" goto statement_identifier ;)) (goto_statement "goto LAB_003029eb;" goto statement_identifier ;) })) (if_statement "if ((uVar2 == 1) || (uVar2 != 3)) goto LAB_00302750;" if (parenthesized_expression "((uVar2 == 1) || (uVar2 != 3))" ( (binary_expression "(uVar2 == 1) || (uVar2 != 3)" (parenthesized_expression "(uVar2 == 1)" ( (binary_expression "uVar2 == 1" identifier == number_literal) )) || (parenthesized_expression "(uVar2 != 3)" ( (binary_expression "uVar2 != 3" identifier != number_literal) ))) )) (goto_statement "goto LAB_00302750;" goto statement_identifier ;)) (goto_statement "goto LAB_003029c7;" goto statement_identifier ;) })) (if_statement "if (uVar11 < 0xd) {\n          attr_value.val.intval._1_7_ = 0;\n          attr_value.val.uintval._0_1_ = *pattr;\n          pattr = pattr + 1;\n          goto LAB_00302f92;\n        }" if (parenthesized_expression "(uVar11 < 0xd)" ( (binary_expression "uVar11 < 0xd" identifier < number_literal) )) (compound_statement "{\n          attr_value.val.intval._1_7_ = 0;\n          attr_value.val.uintval._0_1_ = *pattr;\n          pattr = pattr + 1;\n          goto LAB_00302f92;\n        }" { (expression_statement "attr_value.val.intval._1_7_ = 0;" (assignment_expression "attr_value.val.intval._1_7_ = 0" (field_expression "attr_value.val.intval._1_7_" (field_expression "attr_value.val.intval" (field_expression "attr_value.val" identifier . field_identifier) . field_identifier) . field_identifier) = number_literal) ;) (expression_statement "attr_value.val.uintval._0_1_ = *pattr;" (assignment_expression "attr_value.val.uintval._0_1_ = *pattr" (field_expression "attr_value.val.uintval._0_1_" (field_expression "attr_value.val.uintval" (field_expression "attr_value.val" identifier . field_identifier) . field_identifier) . field_identifier) = (pointer_expression "*pattr" * identifier)) ;) (expression_statement "pattr = pattr + 1;" (assignment_expression "pattr = pattr + 1" identifier = (binary_expression "pattr + 1" identifier + number_literal)) ;) (goto_statement "goto LAB_00302f92;" goto statement_identifier ;) })) (expression_statement "bVar1 = *pattr;" (assignment_expression "bVar1 = *pattr" identifier = (pointer_expression "*pattr" * identifier)) ;) (expression_statement "puVar23 = pattr + 1;" (assignment_expression "puVar23 = pattr + 1" identifier = (binary_expression "pattr + 1" identifier + number_literal)) ;) (if_statement "if ((char)bVar1 < '\0') {\n          attr_value.val.intval = read_signed_LEB_128_x(puVar23,&len,bVar1);\n          puVar23 = pattr + len;\n        }\n        else {\n          len = 1;\n          attr_value.val.intval._1_7_ = 0;\n          attr_value.val.uintval._0_1_ = bVar1;\n          if ((bVar1 & 0x40) != 0) {\n            attr_value.val.uintval = attr_value.val.uintval | 0xffffffffffffff80;\n          }\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          attr_value.val.intval = read_signed_LEB_128_x(puVar23,&len,bVar1);\n          puVar23 = pattr + len;\n        }" { (expression_statement "attr_value.val.intval = read_signed_LEB_128_x(puVar23,&len,bVar1);" (assignment_expression "attr_value.val.intval = read_signed_LEB_128_x(puVar23,&len,bVar1)" (field_expression "attr_value.val.intval" (field_expression "attr_value.val" identifier . field_identifier) . field_identifier) = (call_expression "read_signed_LEB_128_x(puVar23,&len,bVar1)" identifier (argument_list "(puVar23,&len,bVar1)" ( identifier , (pointer_expression "&len" & identifier) , identifier )))) ;) (expression_statement "puVar23 = pattr + len;" (assignment_expression "puVar23 = pattr + len" identifier = (binary_expression "pattr + len" identifier + identifier)) ;) }) (else_clause "else {\n          len = 1;\n          attr_value.val.intval._1_7_ = 0;\n          attr_value.val.uintval._0_1_ = bVar1;\n          if ((bVar1 & 0x40) != 0) {\n            attr_value.val.uintval = attr_value.val.uintval | 0xffffffffffffff80;\n          }\n        }" else (compound_statement "{\n          len = 1;\n          attr_value.val.intval._1_7_ = 0;\n          attr_value.val.uintval._0_1_ = bVar1;\n          if ((bVar1 & 0x40) != 0) {\n            attr_value.val.uintval = attr_value.val.uintval | 0xffffffffffffff80;\n          }\n        }" { (expression_statement "len = 1;" (assignment_expression "len = 1" identifier = number_literal) ;) (expression_statement "attr_value.val.intval._1_7_ = 0;" (assignment_expression "attr_value.val.intval._1_7_ = 0" (field_expression "attr_value.val.intval._1_7_" (field_expression "attr_value.val.intval" (field_expression "attr_value.val" identifier . field_identifier) . field_identifier) . field_identifier) = number_literal) ;) (expression_statement "attr_value.val.uintval._0_1_ = bVar1;" (assignment_expression "attr_value.val.uintval._0_1_ = bVar1" (field_expression "attr_value.val.uintval._0_1_" (field_expression "attr_value.val.uintval" (field_expression "attr_value.val" identifier . field_identifier) . field_identifier) . field_identifier) = identifier) ;) (if_statement "if ((bVar1 & 0x40) != 0) {\n            attr_value.val.uintval = attr_value.val.uintval | 0xffffffffffffff80;\n          }" if (parenthesized_expression "((bVar1 & 0x40) != 0)" ( (binary_expression "(bVar1 & 0x40) != 0" (parenthesized_expression "(bVar1 & 0x40)" ( (binary_expression "bVar1 & 0x40" identifier & number_literal) )) != number_literal) )) (compound_statement "{\n            attr_value.val.uintval = attr_value.val.uintval | 0xffffffffffffff80;\n          }" { (expression_statement "attr_value.val.uintval = attr_value.val.uintval | 0xffffffffffffff80;" (assignment_expression "attr_value.val.uintval = attr_value.val.uintval | 0xffffffffffffff80" (field_expression "attr_value.val.uintval" (field_expression "attr_value.val" identifier . field_identifier) . field_identifier) = (binary_expression "attr_value.val.uintval | 0xffffffffffffff80" (field_expression "attr_value.val.uintval" (field_expression "attr_value.val" identifier . field_identifier) . field_identifier) | number_literal)) ;) })) }))) (expression_statement "pattr = puVar23;" (assignment_expression "pattr = puVar23" identifier = identifier) ;) (if_statement "if ((uVar2 == 0x31) || (uVar2 < 0x32)) goto LAB_00302750;" if (parenthesized_expression "((uVar2 == 0x31) || (uVar2 < 0x32))" ( (binary_expression "(uVar2 == 0x31) || (uVar2 < 0x32)" (parenthesized_expression "(uVar2 == 0x31)" ( (binary_expression "uVar2 == 0x31" identifier == number_literal) )) || (parenthesized_expression "(uVar2 < 0x32)" ( (binary_expression "uVar2 < 0x32" identifier < number_literal) ))) )) (goto_statement "goto LAB_00302750;" goto statement_identifier ;)) (if_statement "if ((uVar2 == 0x6e) || (uVar2 == 0x2007)) goto LAB_00302fbe;" if (parenthesized_expression "((uVar2 == 0x6e) || (uVar2 == 0x2007))" ( (binary_expression "(uVar2 == 0x6e) || (uVar2 == 0x2007)" (parenthesized_expression "(uVar2 == 0x6e)" ( (binary_expression "uVar2 == 0x6e" identifier == number_literal) )) || (parenthesized_expression "(uVar2 == 0x2007)" ( (binary_expression "uVar2 == 0x2007" identifier == number_literal) ))) )) (goto_statement "goto LAB_00302fbe;" goto statement_identifier ;)) (ERROR "__position._M_current =\n             (this->attributes_).\n             super__Vector_base<gold::Dwarf_die::Attribute_value,_std::allocator<gold::" (comma_expression "__position._M_current =\n             (this->attributes_).\n             super__Vector_base<gold::Dwarf_die::Attribute_value,_std" (assignment_expression "__position._M_current =\n             (this->attributes_).\n             super__Vector_base<gold" (field_expression "__position._M_current" identifier . field_identifier) = (binary_expression "(this->attributes_).\n             super__Vector_base<gold" (field_expression "(this->attributes_).\n             super__Vector_base" (parenthesized_expression "(this->attributes_)" ( (field_expression "this->attributes_" identifier -> field_identifier) )) . field_identifier) < identifier)) (ERROR "::Dwarf_die::Attribute_value" : : identifier : : identifier) , identifier) : : (binary_expression "allocator<gold" identifier < identifier) : :) (labeled_statement "Dwarf_die::Attribute_value>_>\n             ._M_impl._M_finish;" statement_identifier : (ERROR ":" :) (expression_statement "Attribute_value>_>\n             ._M_impl._M_finish;" (field_expression "Attribute_value>_>\n             ._M_impl._M_finish" (field_expression "Attribute_value>_>\n             ._M_impl" (binary_expression "Attribute_value>_" identifier > identifier) (ERROR ">" >) . field_identifier) . field_identifier) ;)) (if_statement "if (__position._M_current ==\n            (this->attributes_).\n            super__Vector_base<gold::Dwarf_die::Attribute_value,_std::allocator<gold::Dwarf_die::Attribute_value>_>\n            ._M_impl._M_end_of_storage) goto LAB_003028c0;" if (parenthesized_expression "(__position._M_current ==\n            (this->attributes_).\n            super__Vector_base<gold::Dwarf_die::Attribute_value,_std::allocator<gold::Dwarf_die::Attribute_value>_>\n            ._M_impl._M_end_of_storage)" ( (ERROR "__position._M_current ==\n            (this->attributes_).\n            super__Vector_base<gold::Dwarf_die::Attribute_value,_std::allocator<gold::Dwarf_die::" (comma_expression "__position._M_current ==\n            (this->attributes_).\n            super__Vector_base<gold::Dwarf_die::Attribute_value,_std" (binary_expression "__position._M_current ==\n            (this->attributes_).\n            super__Vector_base<gold" (field_expression "__position._M_current" identifier . field_identifier) == (binary_expression "(this->attributes_).\n            super__Vector_base<gold" (field_expression "(this->attributes_).\n            super__Vector_base" (parenthesized_expression "(this->attributes_)" ( (field_expression "this->attributes_" identifier -> field_identifier) )) . field_identifier) < identifier)) (ERROR "::Dwarf_die::Attribute_value" : : identifier : : identifier) , identifier) : : (binary_expression "allocator<gold" identifier < identifier) : : identifier : :) (field_expression "Attribute_value>_>\n            ._M_impl._M_end_of_storage" (field_expression "Attribute_value>_>\n            ._M_impl" (binary_expression "Attribute_value>_" identifier > identifier) (ERROR ">" >) . field_identifier) . field_identifier) )) (goto_statement "goto LAB_003028c0;" goto statement_identifier ;)) (labeled_statement "LAB_0030275e:\n        (__position._M_current)->attr = (int)CONCAT44(attr_value.form,attr_value.attr);" statement_identifier : (expression_statement "(__position._M_current)->attr = (int)CONCAT44(attr_value.form,attr_value.attr);" (assignment_expression "(__position._M_current)->attr = (int)CONCAT44(attr_value.form,attr_value.attr)" (field_expression "(__position._M_current)->attr" (parenthesized_expression "(__position._M_current)" ( (field_expression "__position._M_current" identifier . field_identifier) )) -> field_identifier) = (cast_expression "(int)CONCAT44(attr_value.form,attr_value.attr)" ( (type_descriptor "int" primitive_type) ) (call_expression "CONCAT44(attr_value.form,attr_value.attr)" identifier (argument_list "(attr_value.form,attr_value.attr)" ( (field_expression "attr_value.form" identifier . field_identifier) , (field_expression "attr_value.attr" identifier . field_identifier) ))))) ;)) (expression_statement "(__position._M_current)->form = (int)(CONCAT44(attr_value.form,attr_value.attr) >> 0x20);" (assignment_expression "(__position._M_current)->form = (int)(CONCAT44(attr_value.form,attr_value.attr) >> 0x20)" (field_expression "(__position._M_current)->form" (parenthesized_expression "(__position._M_current)" ( (field_expression "__position._M_current" identifier . field_identifier) )) -> field_identifier) = (cast_expression "(int)(CONCAT44(attr_value.form,attr_value.attr) >> 0x20)" ( (type_descriptor "int" primitive_type) ) (parenthesized_expression "(CONCAT44(attr_value.form,attr_value.attr) >> 0x20)" ( (binary_expression "CONCAT44(attr_value.form,attr_value.attr) >> 0x20" (call_expression "CONCAT44(attr_value.form,attr_value.attr)" identifier (argument_list "(attr_value.form,attr_value.attr)" ( (field_expression "attr_value.form" identifier . field_identifier) , (field_expression "attr_value.attr" identifier . field_identifier) ))) >> number_literal) )))) ;) (expression_statement "(__position._M_current)->val = attr_value.val;" (assignment_expression "(__position._M_current)->val = attr_value.val" (field_expression "(__position._M_current)->val" (parenthesized_expression "(__position._M_current)" ( (field_expression "__position._M_current" identifier . field_identifier) )) -> field_identifier) = (field_expression "attr_value.val" identifier . field_identifier)) ;) (expression_statement "*(ulong *)&(__position._M_current)->aux = CONCAT44(attr_value._20_4_,attr_value.aux.shndx);" (assignment_expression "*(ulong *)&(__position._M_current)->aux = CONCAT44(attr_value._20_4_,attr_value.aux.shndx)" (pointer_expression "*(ulong *)&(__position._M_current)->aux" * (cast_expression "(ulong *)&(__position._M_current)->aux" ( (type_descriptor "ulong *" type_identifier (abstract_pointer_declarator "*" *)) ) (pointer_expression "&(__position._M_current)->aux" & (field_expression "(__position._M_current)->aux" (parenthesized_expression "(__position._M_current)" ( (field_expression "__position._M_current" identifier . field_identifier) )) -> field_identifier)))) = (call_expression "CONCAT44(attr_value._20_4_,attr_value.aux.shndx)" identifier (argument_list "(attr_value._20_4_,attr_value.aux.shndx)" ( (field_expression "attr_value._20_4_" identifier . field_identifier) , (field_expression "attr_value.aux.shndx" (field_expression "attr_value.aux" identifier . field_identifier) . field_identifier) )))) ;) (ERROR "(this->attributes_).\n        super__Vector_base<gold::" (binary_expression "(this->attributes_).\n        super__Vector_base<gold" (field_expression "(this->attributes_).\n        super__Vector_base" (parenthesized_expression "(this->attributes_)" ( (field_expression "this->attributes_" identifier -> field_identifier) )) . field_identifier) < identifier) : :) (labeled_statement "Dwarf_die::Attribute_value,_std::allocator<gold::Dwarf_die::Attribute_value>_>\n        ._M_impl._M_finish = __position._M_current + 1;" statement_identifier (ERROR "::Attribute_value,_std::allocator<gold:" : : (comma_expression "Attribute_value,_std" identifier , identifier) : : (binary_expression "allocator<gold" identifier < identifier) :) : (labeled_statement "Dwarf_die::Attribute_value>_>\n        ._M_impl._M_finish = __position._M_current + 1;" statement_identifier : (ERROR ":" :) (expression_statement "Attribute_value>_>\n        ._M_impl._M_finish = __position._M_current + 1;" (assignment_expression "Attribute_value>_>\n        ._M_impl._M_finish = __position._M_current + 1" (field_expression "Attribute_value>_>\n        ._M_impl._M_finish" (field_expression "Attribute_value>_>\n        ._M_impl" (binary_expression "Attribute_value>_" identifier > identifier) (ERROR ">" >) . field_identifier) . field_identifier) = (binary_expression "__position._M_current + 1" (field_expression "__position._M_current" identifier . field_identifier) + number_literal)) ;))) }))) (expression_statement "lVar25 = lVar25 + 8;" (assignment_expression "lVar25 = lVar25 + 8" identifier = (binary_expression "lVar25 + 8" identifier + number_literal)) ;) (expression_statement "pAVar13 = this->abbrev_code_;" (assignment_expression "pAVar13 = this->abbrev_code_" identifier = (field_expression "this->abbrev_code_" identifier -> field_identifier)) ;) }) while (parenthesized_expression "(lVar25 != (ulong)(iVar19 - 1) * 8 + 8)" ( (binary_expression "lVar25 != (ulong)(iVar19 - 1) * 8 + 8" identifier != (binary_expression "(ulong)(iVar19 - 1) * 8 + 8" (binary_expression "(ulong)(iVar19 - 1) * 8" (call_expression "(ulong)(iVar19 - 1)" (parenthesized_expression "(ulong)" ( identifier )) (argument_list "(iVar19 - 1)" ( (binary_expression "iVar19 - 1" identifier - number_literal) ))) * number_literal) + number_literal)) )) ;) }))) (if_statement "if (pAVar13 == (Abbrev_code *)0x0) {\n                    /* WARNING: Subroutine does not return */\n    do_gold_unreachable("../../gold/dwarf_reader.h",0x206,"has_children");\n  }" if (parenthesized_expression "(pAVar13 == (Abbrev_code *)0x0)" ( (binary_expression "pAVar13 == (Abbrev_code *)0x0" identifier == (cast_expression "(Abbrev_code *)0x0" ( (type_descriptor "Abbrev_code *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n                    /* WARNING: Subroutine does not return */\n    do_gold_unreachable("../../gold/dwarf_reader.h",0x206,"has_children");\n  }" { comment (expression_statement "do_gold_unreachable("../../gold/dwarf_reader.h",0x206,"has_children");" (call_expression "do_gold_unreachable("../../gold/dwarf_reader.h",0x206,"has_children")" identifier (argument_list "("../../gold/dwarf_reader.h",0x206,"has_children")" ( (string_literal ""../../gold/dwarf_reader.h"" " string_content ") , number_literal , (string_literal ""has_children"" " string_content ") ))) ;) })) (expression_statement "lVar25 = this->die_offset_;" (assignment_expression "lVar25 = this->die_offset_" identifier = (field_expression "this->die_offset_" identifier -> field_identifier)) ;) (labeled_statement "LAB_00302797:\n  if ((pAVar13->field_0x4 & 1) == 0) {\n    this->sibling_offset_ = (off_t)(pattr + (lVar25 - (long)puVar18));\n  }\n  else {\n    this->child_offset_ = (off_t)(pattr + (lVar25 - (long)puVar18));\n  }" statement_identifier : (if_statement "if ((pAVar13->field_0x4 & 1) == 0) {\n    this->sibling_offset_ = (off_t)(pattr + (lVar25 - (long)puVar18));\n  }\n  else {\n    this->child_offset_ = (off_t)(pattr + (lVar25 - (long)puVar18));\n  }" if (parenthesized_expression "((pAVar13->field_0x4 & 1) == 0)" ( (binary_expression "(pAVar13->field_0x4 & 1) == 0" (parenthesized_expression "(pAVar13->field_0x4 & 1)" ( (binary_expression "pAVar13->field_0x4 & 1" (field_expression "pAVar13->field_0x4" identifier -> field_identifier) & number_literal) )) == number_literal) )) (compound_statement "{\n    this->sibling_offset_ = (off_t)(pattr + (lVar25 - (long)puVar18));\n  }" { (expression_statement "this->sibling_offset_ = (off_t)(pattr + (lVar25 - (long)puVar18));" (assignment_expression "this->sibling_offset_ = (off_t)(pattr + (lVar25 - (long)puVar18))" (field_expression "this->sibling_offset_" identifier -> field_identifier) = (call_expression "(off_t)(pattr + (lVar25 - (long)puVar18))" (parenthesized_expression "(off_t)" ( identifier )) (argument_list "(pattr + (lVar25 - (long)puVar18))" ( (binary_expression "pattr + (lVar25 - (long)puVar18)" identifier + (parenthesized_expression "(lVar25 - (long)puVar18)" ( (binary_expression "lVar25 - (long)puVar18" identifier - (cast_expression "(long)puVar18" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) identifier)) ))) )))) ;) }) (else_clause "else {\n    this->child_offset_ = (off_t)(pattr + (lVar25 - (long)puVar18));\n  }" else (compound_statement "{\n    this->child_offset_ = (off_t)(pattr + (lVar25 - (long)puVar18));\n  }" { (expression_statement "this->child_offset_ = (off_t)(pattr + (lVar25 - (long)puVar18));" (assignment_expression "this->child_offset_ = (off_t)(pattr + (lVar25 - (long)puVar18))" (field_expression "this->child_offset_" identifier -> field_identifier) = (call_expression "(off_t)(pattr + (lVar25 - (long)puVar18))" (parenthesized_expression "(off_t)" ( identifier )) (argument_list "(pattr + (lVar25 - (long)puVar18))" ( (binary_expression "pattr + (lVar25 - (long)puVar18)" identifier + (parenthesized_expression "(lVar25 - (long)puVar18)" ( (binary_expression "lVar25 - (long)puVar18" identifier - (cast_expression "(long)puVar18" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) identifier)) ))) )))) ;) })))) (expression_statement "this->attributes_read_ = true;" (assignment_expression "this->attributes_read_ = true" (field_expression "this->attributes_read_" identifier -> field_identifier) = true) ;) (return_statement "return true;" return true ;) })))
(translation_unit "undefined8 FUN_003025a0(long *param_1)\n\n{\n  byte bVar1;\n  uint uVar2;\n  void *__src;\n  code *pcVar3;\n  void *pvVar4;\n  ushort uVar5;\n  char cVar6;\n  int iVar7;\n  uint uVar8;\n  uint uVar9;\n  long lVar10;\n  void *__dest;\n  uint *puVar11;\n  long lVar12;\n  int iVar13;\n  ulong uVar14;\n  byte *pbVar15;\n  undefined8 *puVar16;\n  long *plVar17;\n  long lVar18;\n  void *pvVar19;\n  size_t __n;\n  long lVar20;\n  uint *local_70;\n  size_t local_68;\n  uint *local_60;\n  uint local_58;\n  uint uStack_54;\n  uint *puStack_50;\n  uint local_48;\n  undefined4 uStack_44;\n  \n  lVar10 = param_1[6];\n  if (lVar10 == 0) {\n                    \n    FUN_001e9890("../../gold/dwarf_reader.cc",0x2a9,"read_attributes");\n  }\n  lVar20 = *param_1;\n  lVar18 = param_1[2];\n  lVar12 = *(long *)(lVar20 + 0x50) + lVar18 + *(long *)(lVar20 + 0x40);\n  if ((ulong)(*(long *)(lVar20 + 0x40) + *(long *)(lVar20 + 0x50) + *(long *)(lVar20 + 0x58)) <\n      lVar12 + 1U) {\n    FUN_00301e70();\n    return 0;\n  }\n  if (lVar12 == 0) {\n    return 0;\n  }\n  __src = (void *)param_1[7];\n  local_70 = (uint *)(param_1[3] + lVar12);\n  uVar14 = *(long *)(lVar10 + 0x10) - *(long *)(lVar10 + 8) >> 3;\n  iVar13 = (int)uVar14;\n  uVar14 = uVar14 & 0xffffffff;\n  if ((ulong)((param_1[9] - (long)__src >> 3) * -0x5555555555555555) < uVar14) {\n    pvVar4 = (void *)param_1[8];\n    __n = (long)pvVar4 - (long)__src;\n    if (uVar14 == 0) {\n      __dest = (void *)0x0;\n      pvVar19 = __src;\n    }\n    else {\n      __dest = (void *)FUN_00337280(uVar14 * 0x18);\n      pvVar19 = (void *)param_1[7];\n    }\n    if (__src != pvVar4) {\n      __dest = memmove(__dest,__src,__n);\n    }\n    if (pvVar19 != (void *)0x0) {\n      FUN_00338a50(pvVar19);\n    }\n    param_1[7] = (long)__dest;\n    lVar10 = param_1[6];\n    param_1[8] = __n + (long)__dest;\n    param_1[9] = (long)(uVar14 * 0x18 + (long)__dest);\n    if (iVar13 != 0) goto LAB_00302642;\n  }\n  else {\n    if (iVar13 == 0) goto LAB_00302797;\nLAB_00302642:\n    lVar20 = 0;\n    do {\n      puVar11 = (uint *)(*(long *)(lVar10 + 8) + lVar20);\n      uVar8 = puVar11[1];\n      uVar2 = *puVar11;\n      if (uVar8 == 0x16) {\n        bVar1 = (byte)*local_70;\n        uVar8 = (uint)bVar1;\n        if ((char)bVar1 < '\0') {\n          uVar8 = FUN_002112d0((uint *)((long)local_70 + 1),&local_68,bVar1);\n          local_70 = (uint *)(local_68 + (long)local_70);\n        }\n        else {\n          local_68 = 1;\n          local_70 = (uint *)((long)local_70 + 1);\n        }\n      }\n      puVar11 = local_70;\n      pbVar15 = (byte *)((long)local_70 + (param_1[2] - lVar12));\n      local_48 = 0;\n      local_58 = uVar2;\n      uStack_54 = uVar8;\n      if (uVar8 == 0xe) {\n        lVar10 = *param_1;\n        if (*(int *)(lVar10 + 0x60) == 4) {\n          uVar8 = FUN_00305610(lVar10,&local_70);\n          local_60 = (uint *)(ulong)uVar8;\n        }\n        else {\n          pcVar3 = *(code **)(**(long **)(lVar10 + 0x10) + 0x18);\n          if (pcVar3 == FUN_001b8d10) {\n            cVar6 = (**(code **)(**(long **)(lVar10 + 0x10) + 0x1d0))();\n          }\n          else {\n            cVar6 = (*pcVar3)();\n          }\n          local_60 = *(uint **)local_70;\n          if (cVar6 != '\0') {\n            local_60 = (uint *)((ulong)local_60 >> 0x38 |\n                                ((ulong)local_60 & 0xff000000000000) >> 0x28 |\n                                ((ulong)local_60 & 0xff0000000000) >> 0x18 |\n                                ((ulong)local_60 & 0xff00000000) >> 8 |\n                                ((ulong)local_60 & 0xff000000) << 8 |\n                                ((ulong)local_60 & 0xff0000) << 0x18 |\n                                ((ulong)local_60 & 0xff00) << 0x28 | (long)local_60 << 0x38);\n          }\n          local_70 = local_70 + 2;\n        }\n        local_48 = FUN_00301dc0(*param_1,pbVar15,&local_60);\n        puStack_50 = local_60;\n        if (uVar2 != 0x31) {\n          if (uVar2 < 0x32) {\n            if ((uVar2 != 1) && (uVar2 == 3)) {\nLAB_00302f64:\n              *(uint *)(param_1 + 0xf) = local_48;\n              param_1[0xc] = (long)puStack_50;\n            }\n          }\n          else if ((uVar2 == 0x6e) || (uVar2 == 0x2007)) {\nLAB_00302fd0:\n            *(uint *)(param_1 + 0xf) = local_48;\n            param_1[0xe] = (long)puStack_50;\n          }\n        }\nLAB_00302750:\n        puVar16 = (undefined8 *)param_1[8];\n        if (puVar16 != (undefined8 *)param_1[9]) goto LAB_0030275e;\nLAB_003028c0:\n        FUN_00305860(param_1 + 7,puVar16,&local_58);\n      }\n      else {\n        if (0xe < uVar8) {\n          if (uVar8 == 0x15) {\n            bVar1 = (byte)*local_70;\n            if ((char)bVar1 < '\0') {\n              puStack_50 = (uint *)FUN_002112d0((uint *)((long)local_70 + 1),&local_68,bVar1);\n              local_70 = (uint *)(local_68 + (long)local_70);\n            }\n            else {\n              local_68 = 1;\n              local_70 = (uint *)((long)local_70 + 1);\n              puStack_50 = (uint *)(ulong)bVar1;\n            }\njoined_r0x00303052:\n            if (uVar2 != 0x31) {\n              if (uVar2 < 0x32) {\nLAB_00302c20:\n                if ((uVar2 == 1) && (local_48 == 0)) {\n                  param_1[5] = (long)puStack_50;\n                }\n                goto LAB_00302750;\n              }\n              if ((uVar2 != 0x6e) && (uVar2 != 0x2007)) {\njoined_r0x00302ce3:\n                if (uVar2 == 0x47) {\n                  param_1[0x10] = (long)puStack_50;\n                }\n                goto LAB_00302750;\n              }\nLAB_00302fb5:\n              if (uVar8 == 8) {\nLAB_003029eb:\n                param_1[0xd] = (long)puStack_50;\n              }\n              else {\nLAB_00302fbe:\n                if (uVar8 == 0xe) goto LAB_00302fd0;\n              }\n              goto LAB_00302750;\n            }\n          }\n          else {\n            if (0x15 < uVar8) {\n              if (uVar8 != 0x19) {\n                if (uVar8 < 0x1a) {\n                  if (uVar8 == 0x17) {\n                    lVar10 = *param_1;\n                    if (*(int *)(lVar10 + 0x60) == 4) {\n                      uVar9 = FUN_00305610(lVar10,&local_70);\n                      local_60 = (uint *)(ulong)uVar9;\n                    }\n                    else {\n                      plVar17 = *(long **)(lVar10 + 0x10);\nLAB_00302fe7:\n                      pcVar3 = *(code **)(*plVar17 + 0x18);\n                      if (pcVar3 == FUN_001b8d10) {\n                        cVar6 = (**(code **)(*plVar17 + 0x1d0))();\n                      }\n                      else {\n                        cVar6 = (*pcVar3)();\n                      }\n                      local_60 = *(uint **)local_70;\n                      if (cVar6 != '\0') {\n                        local_60 = (uint *)((ulong)local_60 >> 0x38 |\n                                            ((ulong)local_60 & 0xff000000000000) >> 0x28 |\n                                            ((ulong)local_60 & 0xff0000000000) >> 0x18 |\n                                            ((ulong)local_60 & 0xff00000000) >> 8 |\n                                            ((ulong)local_60 & 0xff000000) << 8 |\n                                            ((ulong)local_60 & 0xff0000) << 0x18 |\n                                            ((ulong)local_60 & 0xff00) << 0x28 |\n                                           (long)local_60 << 0x38);\n                      }\n                      local_70 = local_70 + 2;\n                    }\nLAB_00303035:\n                    local_48 = FUN_00301dc0(*param_1,pbVar15,&local_60);\n                    puStack_50 = local_60;\n                    goto joined_r0x00303052;\n                  }\n                  if (uVar8 != 0x18) {\n                    return 0;\n                  }\nLAB_00302a09:\n                  bVar1 = (byte)*local_70;\n                  uVar9 = (uint)bVar1;\n                  puVar11 = (uint *)((long)local_70 + 1);\n                  if ((char)bVar1 < '\0') {\n                    uVar9 = FUN_002112d0(puVar11,&local_68,bVar1);\n                    puVar11 = (uint *)((long)local_70 + local_68);\n                  }\n                  else {\n                    local_68 = 1;\n                  }\n                  local_70 = (uint *)((long)local_70 + uVar9 + local_68);\n                  puStack_50 = puVar11;\n                  local_48 = uVar9;\n                }\n                else {\n                  if (uVar8 == 0x20) {\n                    pcVar3 = *(code **)(**(long **)(*param_1 + 0x10) + 0x18);\n                    if (pcVar3 == FUN_001b8d10) {\n                      cVar6 = (**(code **)(**(long **)(*param_1 + 0x10) + 0x1d0))();\n                    }\n                    else {\n                      cVar6 = (*pcVar3)();\n                    }\n                    puStack_50 = *(uint **)local_70;\n                    if (cVar6 != '\0') {\n                      puStack_50 = (uint *)((ulong)puStack_50 >> 0x38 |\n                                            ((ulong)puStack_50 & 0xff000000000000) >> 0x28 |\n                                            ((ulong)puStack_50 & 0xff0000000000) >> 0x18 |\n                                            ((ulong)puStack_50 & 0xff00000000) >> 8 |\n                                            ((ulong)puStack_50 & 0xff000000) << 8 |\n                                            ((ulong)puStack_50 & 0xff0000) << 0x18 |\n                                            ((ulong)puStack_50 & 0xff00) << 0x28 |\n                                           (long)puStack_50 << 0x38);\n                    }\n                    local_70 = local_70 + 2;\n                    goto LAB_00302ea9;\n                  }\n                  if (uVar8 < 0x20) {\n                    return 0;\n                  }\n                  if (1 < uVar8 - 0x1f01) {\n                    return 0;\n                  }\nLAB_00302bcd:\n                  bVar1 = (byte)*local_70;\n                  if ((char)bVar1 < '\0') {\n                    puStack_50 = (uint *)FUN_002112d0((uint *)((long)local_70 + 1),&local_68,bVar1);\n                    local_70 = (uint *)(local_68 + (long)local_70);\n                  }\n                  else {\n                    local_68 = 1;\n                    local_70 = (uint *)((long)local_70 + 1);\n                    puStack_50 = (uint *)(ulong)bVar1;\n                  }\n                }\nLAB_00302f92:\n                if (uVar2 == 0x31) goto LAB_00302750;\n                if (0x31 < uVar2) {\n                  if ((uVar2 == 0x6e) || (uVar2 == 0x2007)) goto LAB_00302fb5;\n                  goto LAB_00302750;\n                }\n                goto LAB_00302e3e;\n              }\n              puStack_50 = (uint *)0x1;\nLAB_00302ea9:\n              if (((uVar2 == 0x31) || (0x31 < uVar2)) || (uVar2 != 3)) goto LAB_00302750;\nLAB_00302e52:\n              if (uVar8 == 8) {\nLAB_003029c7:\n                param_1[0xb] = (long)puStack_50;\n              }\n              else if (uVar8 == 0xe) goto LAB_00302f64;\n              goto LAB_00302750;\n            }\n            if (uVar8 != 0x11) {\n              if (0x11 < uVar8) {\n                if (uVar8 == 0x13) {\n                  uVar9 = FUN_00305610(*param_1,&local_70);\n                  local_60 = (uint *)(ulong)uVar9;\n                  goto LAB_00303035;\n                }\n                if (0x13 < uVar8) {\n                  plVar17 = *(long **)(*param_1 + 0x10);\n                  goto LAB_00302fe7;\n                }\n                pcVar3 = *(code **)(**(long **)(*param_1 + 0x10) + 0x18);\n                if (pcVar3 == FUN_001b8d10) {\n                  cVar6 = (**(code **)(**(long **)(*param_1 + 0x10) + 0x1d0))();\n                }\n                else {\n                  cVar6 = (*pcVar3)();\n                }\n                uVar5 = (ushort)*local_70;\n                if (cVar6 != '\0') {\n                  uVar5 = CONCAT11((byte)*local_70,*(byte *)((long)local_70 + 1));\n                }\n                local_70 = (uint *)((long)local_70 + 2);\n                puStack_50 = (uint *)(ulong)uVar5;\n                goto joined_r0x00303052;\n              }\n              if (uVar8 == 0xf) goto LAB_00302bcd;\n              if (uVar8 != 0x10) {\n                return 0;\n              }\n              lVar10 = *param_1;\n              iVar7 = *(int *)(lVar10 + 100);\n              if (2 < *(uint *)(lVar10 + 0x68)) {\n                iVar7 = *(int *)(lVar10 + 0x60);\n              }\n              if (iVar7 != 4) goto LAB_00302a71;\nLAB_00302e7d:\n              uVar8 = FUN_00305610(lVar10,&local_70);\n              local_60 = (uint *)(ulong)uVar8;\nLAB_00302abe:\n              local_48 = FUN_00301dc0(*param_1,pbVar15,&local_60);\n              puStack_50 = local_60;\n              if (uVar2 == 0x31) goto LAB_00302965;\n              if (0x31 < uVar2) goto joined_r0x00302ccc;\n              goto LAB_00302c20;\n            }\n            puVar11 = (uint *)((long)local_70 + 1);\n            puStack_50 = (uint *)(ulong)(byte)*local_70;\n            local_70 = puVar11;\n            if (uVar2 != 0x31) {\n              if (uVar2 < 0x32) {\n                if (uVar2 == 1) {\n                  param_1[5] = (long)puStack_50;\n                }\n                goto LAB_00302750;\n              }\njoined_r0x00302ccc:\n              if ((uVar2 == 0x6e) || (uVar2 == 0x2007)) goto LAB_00302750;\n              goto joined_r0x00302ce3;\n            }\n          }\nLAB_00302965:\n          param_1[0x11] = (long)puStack_50;\n          goto LAB_00302750;\n        }\n        if (uVar8 == 7) {\n          pcVar3 = *(code **)(**(long **)(*param_1 + 0x10) + 0x18);\n          if (pcVar3 == FUN_001b8d10) {\n            cVar6 = (**(code **)(**(long **)(*param_1 + 0x10) + 0x1d0))();\n          }\n          else {\n            cVar6 = (*pcVar3)();\n          }\n          local_60 = *(uint **)local_70;\n          if (cVar6 != '\0') {\n            local_60 = (uint *)((ulong)local_60 >> 0x38 |\n                                ((ulong)local_60 & 0xff000000000000) >> 0x28 |\n                                ((ulong)local_60 & 0xff0000000000) >> 0x18 |\n                                ((ulong)local_60 & 0xff00000000) >> 8 |\n                                ((ulong)local_60 & 0xff000000) << 8 |\n                                ((ulong)local_60 & 0xff0000) << 0x18 |\n                                ((ulong)local_60 & 0xff00) << 0x28 | (long)local_60 << 0x38);\n          }\n          local_70 = local_70 + 2;\nLAB_00302d40:\n          local_48 = FUN_00301dc0(*param_1,pbVar15,&local_60);\n          puStack_50 = local_60;\njoined_r0x00302748:\n          if ((uVar2 != 0x31) && (uVar2 < 0x32)) {\nLAB_00302e3e:\n            if ((uVar2 != 1) && (uVar2 == 3)) goto LAB_00302e52;\n          }\n          goto LAB_00302750;\n        }\n        if (uVar8 < 8) {\n          if (uVar8 == 4) {\n            pcVar3 = *(code **)(**(long **)(*param_1 + 0x10) + 0x18);\n            if (pcVar3 == FUN_001b8d10) {\n              cVar6 = (**(code **)(**(long **)(*param_1 + 0x10) + 0x1d0))();\n            }\n            else {\n              cVar6 = (*pcVar3)();\n            }\n            local_48 = *local_70;\n            if (cVar6 != '\0') {\n              local_48 = local_48 >> 0x18 | (local_48 & 0xff0000) >> 8 | (local_48 & 0xff00) << 8 |\n                         local_48 << 0x18;\n            }\n            puStack_50 = local_70 + 1;\n            local_70 = (uint *)((long)puStack_50 + (ulong)local_48);\n          }\n          else if (uVar8 < 5) {\n            if (uVar8 == 1) {\n              lVar10 = *param_1;\n              if (*(int *)(lVar10 + 100) == 4) goto LAB_00302e7d;\nLAB_00302a71:\n              pcVar3 = *(code **)(**(long **)(lVar10 + 0x10) + 0x18);\n              if (pcVar3 == FUN_001b8d10) {\n                cVar6 = (**(code **)(**(long **)(lVar10 + 0x10) + 0x1d0))();\n              }\n              else {\n                cVar6 = (*pcVar3)();\n              }\n              local_60 = *(uint **)local_70;\n              if (cVar6 != '\0') {\n                local_60 = (uint *)((ulong)local_60 >> 0x38 |\n                                    ((ulong)local_60 & 0xff000000000000) >> 0x28 |\n                                    ((ulong)local_60 & 0xff0000000000) >> 0x18 |\n                                    ((ulong)local_60 & 0xff00000000) >> 8 |\n                                    ((ulong)local_60 & 0xff000000) << 8 |\n                                    ((ulong)local_60 & 0xff0000) << 0x18 |\n                                    ((ulong)local_60 & 0xff00) << 0x28 | (long)local_60 << 0x38);\n              }\n              local_70 = local_70 + 2;\n              goto LAB_00302abe;\n            }\n            if (uVar8 != 3) {\n              return 0;\n            }\n            pcVar3 = *(code **)(**(long **)(*param_1 + 0x10) + 0x18);\n            if (pcVar3 == FUN_001b8d10) {\n              cVar6 = (**(code **)(**(long **)(*param_1 + 0x10) + 0x1d0))();\n            }\n            else {\n              cVar6 = (*pcVar3)();\n            }\n            uVar5 = (ushort)*local_70;\n            if (cVar6 != '\0') {\n              uVar5 = CONCAT11((byte)*local_70,*(byte *)((long)local_70 + 1));\n            }\n            local_48 = (uint)uVar5;\n            puStack_50 = (uint *)((long)local_70 + 2);\n            local_70 = (uint *)((long)puStack_50 + (ulong)local_48);\n          }\n          else {\n            if (uVar8 != 5) {\n              if (uVar8 != 6) {\n                return 0;\n              }\n              pcVar3 = *(code **)(**(long **)(*param_1 + 0x10) + 0x18);\n              if (pcVar3 == FUN_001b8d10) {\n                cVar6 = (**(code **)(**(long **)(*param_1 + 0x10) + 0x1d0))();\n              }\n              else {\n                cVar6 = (*pcVar3)();\n              }\n              uVar9 = *local_70;\n              if (cVar6 != '\0') {\n                uVar9 = uVar9 >> 0x18 | (uVar9 & 0xff0000) >> 8 | (uVar9 & 0xff00) << 8 |\n                        uVar9 << 0x18;\n              }\n              local_60 = (uint *)(ulong)uVar9;\n              local_70 = local_70 + 1;\n              goto LAB_00302d40;\n            }\n            pcVar3 = *(code **)(**(long **)(*param_1 + 0x10) + 0x18);\n            if (pcVar3 == FUN_001b8d10) {\n              cVar6 = (**(code **)(**(long **)(*param_1 + 0x10) + 0x1d0))();\n            }\n            else {\n              cVar6 = (*pcVar3)();\n            }\n            uVar5 = (ushort)*local_70;\n            if (cVar6 != '\0') {\n              uVar5 = CONCAT11((byte)*local_70,*(byte *)((long)local_70 + 1));\n            }\n            local_70 = (uint *)((long)local_70 + 2);\n            puStack_50 = (uint *)(ulong)uVar5;\n          }\n          goto joined_r0x00302748;\n        }\n        if (uVar8 == 10) {\n          puStack_50 = (uint *)((long)local_70 + 1);\n          uVar9 = *local_70;\n          local_70 = (uint *)((long)puStack_50 + (ulong)(byte)uVar9);\n          local_48 = (uint)(byte)uVar9;\n          goto joined_r0x00302748;\n        }\n        if (uVar8 < 0xb) {\n          if (uVar8 != 8) {\n            if (uVar8 != 9) {\n              return 0;\n            }\n            goto LAB_00302a09;\n          }\n          puStack_50 = local_70;\n          local_68 = strlen((char *)local_70);\n          local_70 = (uint *)((long)puVar11 + local_68 + 1);\n          if (uVar2 == 0x31) goto LAB_00302750;\n          if (0x31 < uVar2) {\n            if ((uVar2 != 0x6e) && (uVar2 != 0x2007)) goto LAB_00302750;\n            goto LAB_003029eb;\n          }\n          if ((uVar2 == 1) || (uVar2 != 3)) goto LAB_00302750;\n          goto LAB_003029c7;\n        }\n        if (uVar8 < 0xd) {\n          uVar9 = *local_70;\n          local_70 = (uint *)((long)local_70 + 1);\n          puStack_50 = (uint *)(ulong)(byte)uVar9;\n          goto LAB_00302f92;\n        }\n        bVar1 = (byte)*local_70;\n        puVar11 = (uint *)((long)local_70 + 1);\n        if ((char)bVar1 < '\0') {\n          puStack_50 = (uint *)FUN_00211340(puVar11,&local_68);\n          puVar11 = (uint *)(local_68 + (long)local_70);\n        }\n        else {\n          local_68 = 1;\n          puStack_50 = (uint *)(ulong)bVar1;\n          if ((bVar1 & 0x40) != 0) {\n            puStack_50 = (uint *)((ulong)bVar1 | 0xffffffffffffff80);\n          }\n        }\n        local_70 = puVar11;\n        if ((uVar2 == 0x31) || (uVar2 < 0x32)) goto LAB_00302750;\n        if ((uVar2 == 0x6e) || (uVar2 == 0x2007)) goto LAB_00302fbe;\n        puVar16 = (undefined8 *)param_1[8];\n        if (puVar16 == (undefined8 *)param_1[9]) goto LAB_003028c0;\nLAB_0030275e:\n        *puVar16 = CONCAT44(uStack_54,local_58);\n        puVar16[1] = puStack_50;\n        puVar16[2] = CONCAT44(uStack_44,local_48);\n        param_1[8] = (long)(puVar16 + 3);\n      }\n      lVar20 = lVar20 + 8;\n      lVar10 = param_1[6];\n    } while (lVar20 != (ulong)(iVar13 - 1) * 8 + 8);\n  }\n  if (lVar10 == 0) {\n                    \n    FUN_001e9890("../../gold/dwarf_reader.h",0x206,"has_children");\n  }\n  lVar18 = param_1[2];\nLAB_00302797:\n  pbVar15 = (byte *)((long)local_70 + (lVar18 - lVar12));\n  if ((*(byte *)(lVar10 + 4) & 1) == 0) {\n    param_1[5] = (long)pbVar15;\n  }\n  else {\n    param_1[4] = (long)pbVar15;\n  }\n  *(undefined1 *)(param_1 + 10) = 1;\n  return 1;\n}\n\n" (function_definition "undefined8 FUN_003025a0(long *param_1)\n\n{\n  byte bVar1;\n  uint uVar2;\n  void *__src;\n  code *pcVar3;\n  void *pvVar4;\n  ushort uVar5;\n  char cVar6;\n  int iVar7;\n  uint uVar8;\n  uint uVar9;\n  long lVar10;\n  void *__dest;\n  uint *puVar11;\n  long lVar12;\n  int iVar13;\n  ulong uVar14;\n  byte *pbVar15;\n  undefined8 *puVar16;\n  long *plVar17;\n  long lVar18;\n  void *pvVar19;\n  size_t __n;\n  long lVar20;\n  uint *local_70;\n  size_t local_68;\n  uint *local_60;\n  uint local_58;\n  uint uStack_54;\n  uint *puStack_50;\n  uint local_48;\n  undefined4 uStack_44;\n  \n  lVar10 = param_1[6];\n  if (lVar10 == 0) {\n                    \n    FUN_001e9890("../../gold/dwarf_reader.cc",0x2a9,"read_attributes");\n  }\n  lVar20 = *param_1;\n  lVar18 = param_1[2];\n  lVar12 = *(long *)(lVar20 + 0x50) + lVar18 + *(long *)(lVar20 + 0x40);\n  if ((ulong)(*(long *)(lVar20 + 0x40) + *(long *)(lVar20 + 0x50) + *(long *)(lVar20 + 0x58)) <\n      lVar12 + 1U) {\n    FUN_00301e70();\n    return 0;\n  }\n  if (lVar12 == 0) {\n    return 0;\n  }\n  __src = (void *)param_1[7];\n  local_70 = (uint *)(param_1[3] + lVar12);\n  uVar14 = *(long *)(lVar10 + 0x10) - *(long *)(lVar10 + 8) >> 3;\n  iVar13 = (int)uVar14;\n  uVar14 = uVar14 & 0xffffffff;\n  if ((ulong)((param_1[9] - (long)__src >> 3) * -0x5555555555555555) < uVar14) {\n    pvVar4 = (void *)param_1[8];\n    __n = (long)pvVar4 - (long)__src;\n    if (uVar14 == 0) {\n      __dest = (void *)0x0;\n      pvVar19 = __src;\n    }\n    else {\n      __dest = (void *)FUN_00337280(uVar14 * 0x18);\n      pvVar19 = (void *)param_1[7];\n    }\n    if (__src != pvVar4) {\n      __dest = memmove(__dest,__src,__n);\n    }\n    if (pvVar19 != (void *)0x0) {\n      FUN_00338a50(pvVar19);\n    }\n    param_1[7] = (long)__dest;\n    lVar10 = param_1[6];\n    param_1[8] = __n + (long)__dest;\n    param_1[9] = (long)(uVar14 * 0x18 + (long)__dest);\n    if (iVar13 != 0) goto LAB_00302642;\n  }\n  else {\n    if (iVar13 == 0) goto LAB_00302797;\nLAB_00302642:\n    lVar20 = 0;\n    do {\n      puVar11 = (uint *)(*(long *)(lVar10 + 8) + lVar20);\n      uVar8 = puVar11[1];\n      uVar2 = *puVar11;\n      if (uVar8 == 0x16) {\n        bVar1 = (byte)*local_70;\n        uVar8 = (uint)bVar1;\n        if ((char)bVar1 < '\0') {\n          uVar8 = FUN_002112d0((uint *)((long)local_70 + 1),&local_68,bVar1);\n          local_70 = (uint *)(local_68 + (long)local_70);\n        }\n        else {\n          local_68 = 1;\n          local_70 = (uint *)((long)local_70 + 1);\n        }\n      }\n      puVar11 = local_70;\n      pbVar15 = (byte *)((long)local_70 + (param_1[2] - lVar12));\n      local_48 = 0;\n      local_58 = uVar2;\n      uStack_54 = uVar8;\n      if (uVar8 == 0xe) {\n        lVar10 = *param_1;\n        if (*(int *)(lVar10 + 0x60) == 4) {\n          uVar8 = FUN_00305610(lVar10,&local_70);\n          local_60 = (uint *)(ulong)uVar8;\n        }\n        else {\n          pcVar3 = *(code **)(**(long **)(lVar10 + 0x10) + 0x18);\n          if (pcVar3 == FUN_001b8d10) {\n            cVar6 = (**(code **)(**(long **)(lVar10 + 0x10) + 0x1d0))();\n          }\n          else {\n            cVar6 = (*pcVar3)();\n          }\n          local_60 = *(uint **)local_70;\n          if (cVar6 != '\0') {\n            local_60 = (uint *)((ulong)local_60 >> 0x38 |\n                                ((ulong)local_60 & 0xff000000000000) >> 0x28 |\n                                ((ulong)local_60 & 0xff0000000000) >> 0x18 |\n                                ((ulong)local_60 & 0xff00000000) >> 8 |\n                                ((ulong)local_60 & 0xff000000) << 8 |\n                                ((ulong)local_60 & 0xff0000) << 0x18 |\n                                ((ulong)local_60 & 0xff00) << 0x28 | (long)local_60 << 0x38);\n          }\n          local_70 = local_70 + 2;\n        }\n        local_48 = FUN_00301dc0(*param_1,pbVar15,&local_60);\n        puStack_50 = local_60;\n        if (uVar2 != 0x31) {\n          if (uVar2 < 0x32) {\n            if ((uVar2 != 1) && (uVar2 == 3)) {\nLAB_00302f64:\n              *(uint *)(param_1 + 0xf) = local_48;\n              param_1[0xc] = (long)puStack_50;\n            }\n          }\n          else if ((uVar2 == 0x6e) || (uVar2 == 0x2007)) {\nLAB_00302fd0:\n            *(uint *)(param_1 + 0xf) = local_48;\n            param_1[0xe] = (long)puStack_50;\n          }\n        }\nLAB_00302750:\n        puVar16 = (undefined8 *)param_1[8];\n        if (puVar16 != (undefined8 *)param_1[9]) goto LAB_0030275e;\nLAB_003028c0:\n        FUN_00305860(param_1 + 7,puVar16,&local_58);\n      }\n      else {\n        if (0xe < uVar8) {\n          if (uVar8 == 0x15) {\n            bVar1 = (byte)*local_70;\n            if ((char)bVar1 < '\0') {\n              puStack_50 = (uint *)FUN_002112d0((uint *)((long)local_70 + 1),&local_68,bVar1);\n              local_70 = (uint *)(local_68 + (long)local_70);\n            }\n            else {\n              local_68 = 1;\n              local_70 = (uint *)((long)local_70 + 1);\n              puStack_50 = (uint *)(ulong)bVar1;\n            }\njoined_r0x00303052:\n            if (uVar2 != 0x31) {\n              if (uVar2 < 0x32) {\nLAB_00302c20:\n                if ((uVar2 == 1) && (local_48 == 0)) {\n                  param_1[5] = (long)puStack_50;\n                }\n                goto LAB_00302750;\n              }\n              if ((uVar2 != 0x6e) && (uVar2 != 0x2007)) {\njoined_r0x00302ce3:\n                if (uVar2 == 0x47) {\n                  param_1[0x10] = (long)puStack_50;\n                }\n                goto LAB_00302750;\n              }\nLAB_00302fb5:\n              if (uVar8 == 8) {\nLAB_003029eb:\n                param_1[0xd] = (long)puStack_50;\n              }\n              else {\nLAB_00302fbe:\n                if (uVar8 == 0xe) goto LAB_00302fd0;\n              }\n              goto LAB_00302750;\n            }\n          }\n          else {\n            if (0x15 < uVar8) {\n              if (uVar8 != 0x19) {\n                if (uVar8 < 0x1a) {\n                  if (uVar8 == 0x17) {\n                    lVar10 = *param_1;\n                    if (*(int *)(lVar10 + 0x60) == 4) {\n                      uVar9 = FUN_00305610(lVar10,&local_70);\n                      local_60 = (uint *)(ulong)uVar9;\n                    }\n                    else {\n                      plVar17 = *(long **)(lVar10 + 0x10);\nLAB_00302fe7:\n                      pcVar3 = *(code **)(*plVar17 + 0x18);\n                      if (pcVar3 == FUN_001b8d10) {\n                        cVar6 = (**(code **)(*plVar17 + 0x1d0))();\n                      }\n                      else {\n                        cVar6 = (*pcVar3)();\n                      }\n                      local_60 = *(uint **)local_70;\n                      if (cVar6 != '\0') {\n                        local_60 = (uint *)((ulong)local_60 >> 0x38 |\n                                            ((ulong)local_60 & 0xff000000000000) >> 0x28 |\n                                            ((ulong)local_60 & 0xff0000000000) >> 0x18 |\n                                            ((ulong)local_60 & 0xff00000000) >> 8 |\n                                            ((ulong)local_60 & 0xff000000) << 8 |\n                                            ((ulong)local_60 & 0xff0000) << 0x18 |\n                                            ((ulong)local_60 & 0xff00) << 0x28 |\n                                           (long)local_60 << 0x38);\n                      }\n                      local_70 = local_70 + 2;\n                    }\nLAB_00303035:\n                    local_48 = FUN_00301dc0(*param_1,pbVar15,&local_60);\n                    puStack_50 = local_60;\n                    goto joined_r0x00303052;\n                  }\n                  if (uVar8 != 0x18) {\n                    return 0;\n                  }\nLAB_00302a09:\n                  bVar1 = (byte)*local_70;\n                  uVar9 = (uint)bVar1;\n                  puVar11 = (uint *)((long)local_70 + 1);\n                  if ((char)bVar1 < '\0') {\n                    uVar9 = FUN_002112d0(puVar11,&local_68,bVar1);\n                    puVar11 = (uint *)((long)local_70 + local_68);\n                  }\n                  else {\n                    local_68 = 1;\n                  }\n                  local_70 = (uint *)((long)local_70 + uVar9 + local_68);\n                  puStack_50 = puVar11;\n                  local_48 = uVar9;\n                }\n                else {\n                  if (uVar8 == 0x20) {\n                    pcVar3 = *(code **)(**(long **)(*param_1 + 0x10) + 0x18);\n                    if (pcVar3 == FUN_001b8d10) {\n                      cVar6 = (**(code **)(**(long **)(*param_1 + 0x10) + 0x1d0))();\n                    }\n                    else {\n                      cVar6 = (*pcVar3)();\n                    }\n                    puStack_50 = *(uint **)local_70;\n                    if (cVar6 != '\0') {\n                      puStack_50 = (uint *)((ulong)puStack_50 >> 0x38 |\n                                            ((ulong)puStack_50 & 0xff000000000000) >> 0x28 |\n                                            ((ulong)puStack_50 & 0xff0000000000) >> 0x18 |\n                                            ((ulong)puStack_50 & 0xff00000000) >> 8 |\n                                            ((ulong)puStack_50 & 0xff000000) << 8 |\n                                            ((ulong)puStack_50 & 0xff0000) << 0x18 |\n                                            ((ulong)puStack_50 & 0xff00) << 0x28 |\n                                           (long)puStack_50 << 0x38);\n                    }\n                    local_70 = local_70 + 2;\n                    goto LAB_00302ea9;\n                  }\n                  if (uVar8 < 0x20) {\n                    return 0;\n                  }\n                  if (1 < uVar8 - 0x1f01) {\n                    return 0;\n                  }\nLAB_00302bcd:\n                  bVar1 = (byte)*local_70;\n                  if ((char)bVar1 < '\0') {\n                    puStack_50 = (uint *)FUN_002112d0((uint *)((long)local_70 + 1),&local_68,bVar1);\n                    local_70 = (uint *)(local_68 + (long)local_70);\n                  }\n                  else {\n                    local_68 = 1;\n                    local_70 = (uint *)((long)local_70 + 1);\n                    puStack_50 = (uint *)(ulong)bVar1;\n                  }\n                }\nLAB_00302f92:\n                if (uVar2 == 0x31) goto LAB_00302750;\n                if (0x31 < uVar2) {\n                  if ((uVar2 == 0x6e) || (uVar2 == 0x2007)) goto LAB_00302fb5;\n                  goto LAB_00302750;\n                }\n                goto LAB_00302e3e;\n              }\n              puStack_50 = (uint *)0x1;\nLAB_00302ea9:\n              if (((uVar2 == 0x31) || (0x31 < uVar2)) || (uVar2 != 3)) goto LAB_00302750;\nLAB_00302e52:\n              if (uVar8 == 8) {\nLAB_003029c7:\n                param_1[0xb] = (long)puStack_50;\n              }\n              else if (uVar8 == 0xe) goto LAB_00302f64;\n              goto LAB_00302750;\n            }\n            if (uVar8 != 0x11) {\n              if (0x11 < uVar8) {\n                if (uVar8 == 0x13) {\n                  uVar9 = FUN_00305610(*param_1,&local_70);\n                  local_60 = (uint *)(ulong)uVar9;\n                  goto LAB_00303035;\n                }\n                if (0x13 < uVar8) {\n                  plVar17 = *(long **)(*param_1 + 0x10);\n                  goto LAB_00302fe7;\n                }\n                pcVar3 = *(code **)(**(long **)(*param_1 + 0x10) + 0x18);\n                if (pcVar3 == FUN_001b8d10) {\n                  cVar6 = (**(code **)(**(long **)(*param_1 + 0x10) + 0x1d0))();\n                }\n                else {\n                  cVar6 = (*pcVar3)();\n                }\n                uVar5 = (ushort)*local_70;\n                if (cVar6 != '\0') {\n                  uVar5 = CONCAT11((byte)*local_70,*(byte *)((long)local_70 + 1));\n                }\n                local_70 = (uint *)((long)local_70 + 2);\n                puStack_50 = (uint *)(ulong)uVar5;\n                goto joined_r0x00303052;\n              }\n              if (uVar8 == 0xf) goto LAB_00302bcd;\n              if (uVar8 != 0x10) {\n                return 0;\n              }\n              lVar10 = *param_1;\n              iVar7 = *(int *)(lVar10 + 100);\n              if (2 < *(uint *)(lVar10 + 0x68)) {\n                iVar7 = *(int *)(lVar10 + 0x60);\n              }\n              if (iVar7 != 4) goto LAB_00302a71;\nLAB_00302e7d:\n              uVar8 = FUN_00305610(lVar10,&local_70);\n              local_60 = (uint *)(ulong)uVar8;\nLAB_00302abe:\n              local_48 = FUN_00301dc0(*param_1,pbVar15,&local_60);\n              puStack_50 = local_60;\n              if (uVar2 == 0x31) goto LAB_00302965;\n              if (0x31 < uVar2) goto joined_r0x00302ccc;\n              goto LAB_00302c20;\n            }\n            puVar11 = (uint *)((long)local_70 + 1);\n            puStack_50 = (uint *)(ulong)(byte)*local_70;\n            local_70 = puVar11;\n            if (uVar2 != 0x31) {\n              if (uVar2 < 0x32) {\n                if (uVar2 == 1) {\n                  param_1[5] = (long)puStack_50;\n                }\n                goto LAB_00302750;\n              }\njoined_r0x00302ccc:\n              if ((uVar2 == 0x6e) || (uVar2 == 0x2007)) goto LAB_00302750;\n              goto joined_r0x00302ce3;\n            }\n          }\nLAB_00302965:\n          param_1[0x11] = (long)puStack_50;\n          goto LAB_00302750;\n        }\n        if (uVar8 == 7) {\n          pcVar3 = *(code **)(**(long **)(*param_1 + 0x10) + 0x18);\n          if (pcVar3 == FUN_001b8d10) {\n            cVar6 = (**(code **)(**(long **)(*param_1 + 0x10) + 0x1d0))();\n          }\n          else {\n            cVar6 = (*pcVar3)();\n          }\n          local_60 = *(uint **)local_70;\n          if (cVar6 != '\0') {\n            local_60 = (uint *)((ulong)local_60 >> 0x38 |\n                                ((ulong)local_60 & 0xff000000000000) >> 0x28 |\n                                ((ulong)local_60 & 0xff0000000000) >> 0x18 |\n                                ((ulong)local_60 & 0xff00000000) >> 8 |\n                                ((ulong)local_60 & 0xff000000) << 8 |\n                                ((ulong)local_60 & 0xff0000) << 0x18 |\n                                ((ulong)local_60 & 0xff00) << 0x28 | (long)local_60 << 0x38);\n          }\n          local_70 = local_70 + 2;\nLAB_00302d40:\n          local_48 = FUN_00301dc0(*param_1,pbVar15,&local_60);\n          puStack_50 = local_60;\njoined_r0x00302748:\n          if ((uVar2 != 0x31) && (uVar2 < 0x32)) {\nLAB_00302e3e:\n            if ((uVar2 != 1) && (uVar2 == 3)) goto LAB_00302e52;\n          }\n          goto LAB_00302750;\n        }\n        if (uVar8 < 8) {\n          if (uVar8 == 4) {\n            pcVar3 = *(code **)(**(long **)(*param_1 + 0x10) + 0x18);\n            if (pcVar3 == FUN_001b8d10) {\n              cVar6 = (**(code **)(**(long **)(*param_1 + 0x10) + 0x1d0))();\n            }\n            else {\n              cVar6 = (*pcVar3)();\n            }\n            local_48 = *local_70;\n            if (cVar6 != '\0') {\n              local_48 = local_48 >> 0x18 | (local_48 & 0xff0000) >> 8 | (local_48 & 0xff00) << 8 |\n                         local_48 << 0x18;\n            }\n            puStack_50 = local_70 + 1;\n            local_70 = (uint *)((long)puStack_50 + (ulong)local_48);\n          }\n          else if (uVar8 < 5) {\n            if (uVar8 == 1) {\n              lVar10 = *param_1;\n              if (*(int *)(lVar10 + 100) == 4) goto LAB_00302e7d;\nLAB_00302a71:\n              pcVar3 = *(code **)(**(long **)(lVar10 + 0x10) + 0x18);\n              if (pcVar3 == FUN_001b8d10) {\n                cVar6 = (**(code **)(**(long **)(lVar10 + 0x10) + 0x1d0))();\n              }\n              else {\n                cVar6 = (*pcVar3)();\n              }\n              local_60 = *(uint **)local_70;\n              if (cVar6 != '\0') {\n                local_60 = (uint *)((ulong)local_60 >> 0x38 |\n                                    ((ulong)local_60 & 0xff000000000000) >> 0x28 |\n                                    ((ulong)local_60 & 0xff0000000000) >> 0x18 |\n                                    ((ulong)local_60 & 0xff00000000) >> 8 |\n                                    ((ulong)local_60 & 0xff000000) << 8 |\n                                    ((ulong)local_60 & 0xff0000) << 0x18 |\n                                    ((ulong)local_60 & 0xff00) << 0x28 | (long)local_60 << 0x38);\n              }\n              local_70 = local_70 + 2;\n              goto LAB_00302abe;\n            }\n            if (uVar8 != 3) {\n              return 0;\n            }\n            pcVar3 = *(code **)(**(long **)(*param_1 + 0x10) + 0x18);\n            if (pcVar3 == FUN_001b8d10) {\n              cVar6 = (**(code **)(**(long **)(*param_1 + 0x10) + 0x1d0))();\n            }\n            else {\n              cVar6 = (*pcVar3)();\n            }\n            uVar5 = (ushort)*local_70;\n            if (cVar6 != '\0') {\n              uVar5 = CONCAT11((byte)*local_70,*(byte *)((long)local_70 + 1));\n            }\n            local_48 = (uint)uVar5;\n            puStack_50 = (uint *)((long)local_70 + 2);\n            local_70 = (uint *)((long)puStack_50 + (ulong)local_48);\n          }\n          else {\n            if (uVar8 != 5) {\n              if (uVar8 != 6) {\n                return 0;\n              }\n              pcVar3 = *(code **)(**(long **)(*param_1 + 0x10) + 0x18);\n              if (pcVar3 == FUN_001b8d10) {\n                cVar6 = (**(code **)(**(long **)(*param_1 + 0x10) + 0x1d0))();\n              }\n              else {\n                cVar6 = (*pcVar3)();\n              }\n              uVar9 = *local_70;\n              if (cVar6 != '\0') {\n                uVar9 = uVar9 >> 0x18 | (uVar9 & 0xff0000) >> 8 | (uVar9 & 0xff00) << 8 |\n                        uVar9 << 0x18;\n              }\n              local_60 = (uint *)(ulong)uVar9;\n              local_70 = local_70 + 1;\n              goto LAB_00302d40;\n            }\n            pcVar3 = *(code **)(**(long **)(*param_1 + 0x10) + 0x18);\n            if (pcVar3 == FUN_001b8d10) {\n              cVar6 = (**(code **)(**(long **)(*param_1 + 0x10) + 0x1d0))();\n            }\n            else {\n              cVar6 = (*pcVar3)();\n            }\n            uVar5 = (ushort)*local_70;\n            if (cVar6 != '\0') {\n              uVar5 = CONCAT11((byte)*local_70,*(byte *)((long)local_70 + 1));\n            }\n            local_70 = (uint *)((long)local_70 + 2);\n            puStack_50 = (uint *)(ulong)uVar5;\n          }\n          goto joined_r0x00302748;\n        }\n        if (uVar8 == 10) {\n          puStack_50 = (uint *)((long)local_70 + 1);\n          uVar9 = *local_70;\n          local_70 = (uint *)((long)puStack_50 + (ulong)(byte)uVar9);\n          local_48 = (uint)(byte)uVar9;\n          goto joined_r0x00302748;\n        }\n        if (uVar8 < 0xb) {\n          if (uVar8 != 8) {\n            if (uVar8 != 9) {\n              return 0;\n            }\n            goto LAB_00302a09;\n          }\n          puStack_50 = local_70;\n          local_68 = strlen((char *)local_70);\n          local_70 = (uint *)((long)puVar11 + local_68 + 1);\n          if (uVar2 == 0x31) goto LAB_00302750;\n          if (0x31 < uVar2) {\n            if ((uVar2 != 0x6e) && (uVar2 != 0x2007)) goto LAB_00302750;\n            goto LAB_003029eb;\n          }\n          if ((uVar2 == 1) || (uVar2 != 3)) goto LAB_00302750;\n          goto LAB_003029c7;\n        }\n        if (uVar8 < 0xd) {\n          uVar9 = *local_70;\n          local_70 = (uint *)((long)local_70 + 1);\n          puStack_50 = (uint *)(ulong)(byte)uVar9;\n          goto LAB_00302f92;\n        }\n        bVar1 = (byte)*local_70;\n        puVar11 = (uint *)((long)local_70 + 1);\n        if ((char)bVar1 < '\0') {\n          puStack_50 = (uint *)FUN_00211340(puVar11,&local_68);\n          puVar11 = (uint *)(local_68 + (long)local_70);\n        }\n        else {\n          local_68 = 1;\n          puStack_50 = (uint *)(ulong)bVar1;\n          if ((bVar1 & 0x40) != 0) {\n            puStack_50 = (uint *)((ulong)bVar1 | 0xffffffffffffff80);\n          }\n        }\n        local_70 = puVar11;\n        if ((uVar2 == 0x31) || (uVar2 < 0x32)) goto LAB_00302750;\n        if ((uVar2 == 0x6e) || (uVar2 == 0x2007)) goto LAB_00302fbe;\n        puVar16 = (undefined8 *)param_1[8];\n        if (puVar16 == (undefined8 *)param_1[9]) goto LAB_003028c0;\nLAB_0030275e:\n        *puVar16 = CONCAT44(uStack_54,local_58);\n        puVar16[1] = puStack_50;\n        puVar16[2] = CONCAT44(uStack_44,local_48);\n        param_1[8] = (long)(puVar16 + 3);\n      }\n      lVar20 = lVar20 + 8;\n      lVar10 = param_1[6];\n    } while (lVar20 != (ulong)(iVar13 - 1) * 8 + 8);\n  }\n  if (lVar10 == 0) {\n                    \n    FUN_001e9890("../../gold/dwarf_reader.h",0x206,"has_children");\n  }\n  lVar18 = param_1[2];\nLAB_00302797:\n  pbVar15 = (byte *)((long)local_70 + (lVar18 - lVar12));\n  if ((*(byte *)(lVar10 + 4) & 1) == 0) {\n    param_1[5] = (long)pbVar15;\n  }\n  else {\n    param_1[4] = (long)pbVar15;\n  }\n  *(undefined1 *)(param_1 + 10) = 1;\n  return 1;\n}" type_identifier (function_declarator "FUN_003025a0(long *param_1)" identifier (parameter_list "(long *param_1)" ( (parameter_declaration "long *param_1" (sized_type_specifier "long" long) (pointer_declarator "*param_1" * identifier)) ))) (compound_statement "{\n  byte bVar1;\n  uint uVar2;\n  void *__src;\n  code *pcVar3;\n  void *pvVar4;\n  ushort uVar5;\n  char cVar6;\n  int iVar7;\n  uint uVar8;\n  uint uVar9;\n  long lVar10;\n  void *__dest;\n  uint *puVar11;\n  long lVar12;\n  int iVar13;\n  ulong uVar14;\n  byte *pbVar15;\n  undefined8 *puVar16;\n  long *plVar17;\n  long lVar18;\n  void *pvVar19;\n  size_t __n;\n  long lVar20;\n  uint *local_70;\n  size_t local_68;\n  uint *local_60;\n  uint local_58;\n  uint uStack_54;\n  uint *puStack_50;\n  uint local_48;\n  undefined4 uStack_44;\n  \n  lVar10 = param_1[6];\n  if (lVar10 == 0) {\n                    \n    FUN_001e9890("../../gold/dwarf_reader.cc",0x2a9,"read_attributes");\n  }\n  lVar20 = *param_1;\n  lVar18 = param_1[2];\n  lVar12 = *(long *)(lVar20 + 0x50) + lVar18 + *(long *)(lVar20 + 0x40);\n  if ((ulong)(*(long *)(lVar20 + 0x40) + *(long *)(lVar20 + 0x50) + *(long *)(lVar20 + 0x58)) <\n      lVar12 + 1U) {\n    FUN_00301e70();\n    return 0;\n  }\n  if (lVar12 == 0) {\n    return 0;\n  }\n  __src = (void *)param_1[7];\n  local_70 = (uint *)(param_1[3] + lVar12);\n  uVar14 = *(long *)(lVar10 + 0x10) - *(long *)(lVar10 + 8) >> 3;\n  iVar13 = (int)uVar14;\n  uVar14 = uVar14 & 0xffffffff;\n  if ((ulong)((param_1[9] - (long)__src >> 3) * -0x5555555555555555) < uVar14) {\n    pvVar4 = (void *)param_1[8];\n    __n = (long)pvVar4 - (long)__src;\n    if (uVar14 == 0) {\n      __dest = (void *)0x0;\n      pvVar19 = __src;\n    }\n    else {\n      __dest = (void *)FUN_00337280(uVar14 * 0x18);\n      pvVar19 = (void *)param_1[7];\n    }\n    if (__src != pvVar4) {\n      __dest = memmove(__dest,__src,__n);\n    }\n    if (pvVar19 != (void *)0x0) {\n      FUN_00338a50(pvVar19);\n    }\n    param_1[7] = (long)__dest;\n    lVar10 = param_1[6];\n    param_1[8] = __n + (long)__dest;\n    param_1[9] = (long)(uVar14 * 0x18 + (long)__dest);\n    if (iVar13 != 0) goto LAB_00302642;\n  }\n  else {\n    if (iVar13 == 0) goto LAB_00302797;\nLAB_00302642:\n    lVar20 = 0;\n    do {\n      puVar11 = (uint *)(*(long *)(lVar10 + 8) + lVar20);\n      uVar8 = puVar11[1];\n      uVar2 = *puVar11;\n      if (uVar8 == 0x16) {\n        bVar1 = (byte)*local_70;\n        uVar8 = (uint)bVar1;\n        if ((char)bVar1 < '\0') {\n          uVar8 = FUN_002112d0((uint *)((long)local_70 + 1),&local_68,bVar1);\n          local_70 = (uint *)(local_68 + (long)local_70);\n        }\n        else {\n          local_68 = 1;\n          local_70 = (uint *)((long)local_70 + 1);\n        }\n      }\n      puVar11 = local_70;\n      pbVar15 = (byte *)((long)local_70 + (param_1[2] - lVar12));\n      local_48 = 0;\n      local_58 = uVar2;\n      uStack_54 = uVar8;\n      if (uVar8 == 0xe) {\n        lVar10 = *param_1;\n        if (*(int *)(lVar10 + 0x60) == 4) {\n          uVar8 = FUN_00305610(lVar10,&local_70);\n          local_60 = (uint *)(ulong)uVar8;\n        }\n        else {\n          pcVar3 = *(code **)(**(long **)(lVar10 + 0x10) + 0x18);\n          if (pcVar3 == FUN_001b8d10) {\n            cVar6 = (**(code **)(**(long **)(lVar10 + 0x10) + 0x1d0))();\n          }\n          else {\n            cVar6 = (*pcVar3)();\n          }\n          local_60 = *(uint **)local_70;\n          if (cVar6 != '\0') {\n            local_60 = (uint *)((ulong)local_60 >> 0x38 |\n                                ((ulong)local_60 & 0xff000000000000) >> 0x28 |\n                                ((ulong)local_60 & 0xff0000000000) >> 0x18 |\n                                ((ulong)local_60 & 0xff00000000) >> 8 |\n                                ((ulong)local_60 & 0xff000000) << 8 |\n                                ((ulong)local_60 & 0xff0000) << 0x18 |\n                                ((ulong)local_60 & 0xff00) << 0x28 | (long)local_60 << 0x38);\n          }\n          local_70 = local_70 + 2;\n        }\n        local_48 = FUN_00301dc0(*param_1,pbVar15,&local_60);\n        puStack_50 = local_60;\n        if (uVar2 != 0x31) {\n          if (uVar2 < 0x32) {\n            if ((uVar2 != 1) && (uVar2 == 3)) {\nLAB_00302f64:\n              *(uint *)(param_1 + 0xf) = local_48;\n              param_1[0xc] = (long)puStack_50;\n            }\n          }\n          else if ((uVar2 == 0x6e) || (uVar2 == 0x2007)) {\nLAB_00302fd0:\n            *(uint *)(param_1 + 0xf) = local_48;\n            param_1[0xe] = (long)puStack_50;\n          }\n        }\nLAB_00302750:\n        puVar16 = (undefined8 *)param_1[8];\n        if (puVar16 != (undefined8 *)param_1[9]) goto LAB_0030275e;\nLAB_003028c0:\n        FUN_00305860(param_1 + 7,puVar16,&local_58);\n      }\n      else {\n        if (0xe < uVar8) {\n          if (uVar8 == 0x15) {\n            bVar1 = (byte)*local_70;\n            if ((char)bVar1 < '\0') {\n              puStack_50 = (uint *)FUN_002112d0((uint *)((long)local_70 + 1),&local_68,bVar1);\n              local_70 = (uint *)(local_68 + (long)local_70);\n            }\n            else {\n              local_68 = 1;\n              local_70 = (uint *)((long)local_70 + 1);\n              puStack_50 = (uint *)(ulong)bVar1;\n            }\njoined_r0x00303052:\n            if (uVar2 != 0x31) {\n              if (uVar2 < 0x32) {\nLAB_00302c20:\n                if ((uVar2 == 1) && (local_48 == 0)) {\n                  param_1[5] = (long)puStack_50;\n                }\n                goto LAB_00302750;\n              }\n              if ((uVar2 != 0x6e) && (uVar2 != 0x2007)) {\njoined_r0x00302ce3:\n                if (uVar2 == 0x47) {\n                  param_1[0x10] = (long)puStack_50;\n                }\n                goto LAB_00302750;\n              }\nLAB_00302fb5:\n              if (uVar8 == 8) {\nLAB_003029eb:\n                param_1[0xd] = (long)puStack_50;\n              }\n              else {\nLAB_00302fbe:\n                if (uVar8 == 0xe) goto LAB_00302fd0;\n              }\n              goto LAB_00302750;\n            }\n          }\n          else {\n            if (0x15 < uVar8) {\n              if (uVar8 != 0x19) {\n                if (uVar8 < 0x1a) {\n                  if (uVar8 == 0x17) {\n                    lVar10 = *param_1;\n                    if (*(int *)(lVar10 + 0x60) == 4) {\n                      uVar9 = FUN_00305610(lVar10,&local_70);\n                      local_60 = (uint *)(ulong)uVar9;\n                    }\n                    else {\n                      plVar17 = *(long **)(lVar10 + 0x10);\nLAB_00302fe7:\n                      pcVar3 = *(code **)(*plVar17 + 0x18);\n                      if (pcVar3 == FUN_001b8d10) {\n                        cVar6 = (**(code **)(*plVar17 + 0x1d0))();\n                      }\n                      else {\n                        cVar6 = (*pcVar3)();\n                      }\n                      local_60 = *(uint **)local_70;\n                      if (cVar6 != '\0') {\n                        local_60 = (uint *)((ulong)local_60 >> 0x38 |\n                                            ((ulong)local_60 & 0xff000000000000) >> 0x28 |\n                                            ((ulong)local_60 & 0xff0000000000) >> 0x18 |\n                                            ((ulong)local_60 & 0xff00000000) >> 8 |\n                                            ((ulong)local_60 & 0xff000000) << 8 |\n                                            ((ulong)local_60 & 0xff0000) << 0x18 |\n                                            ((ulong)local_60 & 0xff00) << 0x28 |\n                                           (long)local_60 << 0x38);\n                      }\n                      local_70 = local_70 + 2;\n                    }\nLAB_00303035:\n                    local_48 = FUN_00301dc0(*param_1,pbVar15,&local_60);\n                    puStack_50 = local_60;\n                    goto joined_r0x00303052;\n                  }\n                  if (uVar8 != 0x18) {\n                    return 0;\n                  }\nLAB_00302a09:\n                  bVar1 = (byte)*local_70;\n                  uVar9 = (uint)bVar1;\n                  puVar11 = (uint *)((long)local_70 + 1);\n                  if ((char)bVar1 < '\0') {\n                    uVar9 = FUN_002112d0(puVar11,&local_68,bVar1);\n                    puVar11 = (uint *)((long)local_70 + local_68);\n                  }\n                  else {\n                    local_68 = 1;\n                  }\n                  local_70 = (uint *)((long)local_70 + uVar9 + local_68);\n                  puStack_50 = puVar11;\n                  local_48 = uVar9;\n                }\n                else {\n                  if (uVar8 == 0x20) {\n                    pcVar3 = *(code **)(**(long **)(*param_1 + 0x10) + 0x18);\n                    if (pcVar3 == FUN_001b8d10) {\n                      cVar6 = (**(code **)(**(long **)(*param_1 + 0x10) + 0x1d0))();\n                    }\n                    else {\n                      cVar6 = (*pcVar3)();\n                    }\n                    puStack_50 = *(uint **)local_70;\n                    if (cVar6 != '\0') {\n                      puStack_50 = (uint *)((ulong)puStack_50 >> 0x38 |\n                                            ((ulong)puStack_50 & 0xff000000000000) >> 0x28 |\n                                            ((ulong)puStack_50 & 0xff0000000000) >> 0x18 |\n                                            ((ulong)puStack_50 & 0xff00000000) >> 8 |\n                                            ((ulong)puStack_50 & 0xff000000) << 8 |\n                                            ((ulong)puStack_50 & 0xff0000) << 0x18 |\n                                            ((ulong)puStack_50 & 0xff00) << 0x28 |\n                                           (long)puStack_50 << 0x38);\n                    }\n                    local_70 = local_70 + 2;\n                    goto LAB_00302ea9;\n                  }\n                  if (uVar8 < 0x20) {\n                    return 0;\n                  }\n                  if (1 < uVar8 - 0x1f01) {\n                    return 0;\n                  }\nLAB_00302bcd:\n                  bVar1 = (byte)*local_70;\n                  if ((char)bVar1 < '\0') {\n                    puStack_50 = (uint *)FUN_002112d0((uint *)((long)local_70 + 1),&local_68,bVar1);\n                    local_70 = (uint *)(local_68 + (long)local_70);\n                  }\n                  else {\n                    local_68 = 1;\n                    local_70 = (uint *)((long)local_70 + 1);\n                    puStack_50 = (uint *)(ulong)bVar1;\n                  }\n                }\nLAB_00302f92:\n                if (uVar2 == 0x31) goto LAB_00302750;\n                if (0x31 < uVar2) {\n                  if ((uVar2 == 0x6e) || (uVar2 == 0x2007)) goto LAB_00302fb5;\n                  goto LAB_00302750;\n                }\n                goto LAB_00302e3e;\n              }\n              puStack_50 = (uint *)0x1;\nLAB_00302ea9:\n              if (((uVar2 == 0x31) || (0x31 < uVar2)) || (uVar2 != 3)) goto LAB_00302750;\nLAB_00302e52:\n              if (uVar8 == 8) {\nLAB_003029c7:\n                param_1[0xb] = (long)puStack_50;\n              }\n              else if (uVar8 == 0xe) goto LAB_00302f64;\n              goto LAB_00302750;\n            }\n            if (uVar8 != 0x11) {\n              if (0x11 < uVar8) {\n                if (uVar8 == 0x13) {\n                  uVar9 = FUN_00305610(*param_1,&local_70);\n                  local_60 = (uint *)(ulong)uVar9;\n                  goto LAB_00303035;\n                }\n                if (0x13 < uVar8) {\n                  plVar17 = *(long **)(*param_1 + 0x10);\n                  goto LAB_00302fe7;\n                }\n                pcVar3 = *(code **)(**(long **)(*param_1 + 0x10) + 0x18);\n                if (pcVar3 == FUN_001b8d10) {\n                  cVar6 = (**(code **)(**(long **)(*param_1 + 0x10) + 0x1d0))();\n                }\n                else {\n                  cVar6 = (*pcVar3)();\n                }\n                uVar5 = (ushort)*local_70;\n                if (cVar6 != '\0') {\n                  uVar5 = CONCAT11((byte)*local_70,*(byte *)((long)local_70 + 1));\n                }\n                local_70 = (uint *)((long)local_70 + 2);\n                puStack_50 = (uint *)(ulong)uVar5;\n                goto joined_r0x00303052;\n              }\n              if (uVar8 == 0xf) goto LAB_00302bcd;\n              if (uVar8 != 0x10) {\n                return 0;\n              }\n              lVar10 = *param_1;\n              iVar7 = *(int *)(lVar10 + 100);\n              if (2 < *(uint *)(lVar10 + 0x68)) {\n                iVar7 = *(int *)(lVar10 + 0x60);\n              }\n              if (iVar7 != 4) goto LAB_00302a71;\nLAB_00302e7d:\n              uVar8 = FUN_00305610(lVar10,&local_70);\n              local_60 = (uint *)(ulong)uVar8;\nLAB_00302abe:\n              local_48 = FUN_00301dc0(*param_1,pbVar15,&local_60);\n              puStack_50 = local_60;\n              if (uVar2 == 0x31) goto LAB_00302965;\n              if (0x31 < uVar2) goto joined_r0x00302ccc;\n              goto LAB_00302c20;\n            }\n            puVar11 = (uint *)((long)local_70 + 1);\n            puStack_50 = (uint *)(ulong)(byte)*local_70;\n            local_70 = puVar11;\n            if (uVar2 != 0x31) {\n              if (uVar2 < 0x32) {\n                if (uVar2 == 1) {\n                  param_1[5] = (long)puStack_50;\n                }\n                goto LAB_00302750;\n              }\njoined_r0x00302ccc:\n              if ((uVar2 == 0x6e) || (uVar2 == 0x2007)) goto LAB_00302750;\n              goto joined_r0x00302ce3;\n            }\n          }\nLAB_00302965:\n          param_1[0x11] = (long)puStack_50;\n          goto LAB_00302750;\n        }\n        if (uVar8 == 7) {\n          pcVar3 = *(code **)(**(long **)(*param_1 + 0x10) + 0x18);\n          if (pcVar3 == FUN_001b8d10) {\n            cVar6 = (**(code **)(**(long **)(*param_1 + 0x10) + 0x1d0))();\n          }\n          else {\n            cVar6 = (*pcVar3)();\n          }\n          local_60 = *(uint **)local_70;\n          if (cVar6 != '\0') {\n            local_60 = (uint *)((ulong)local_60 >> 0x38 |\n                                ((ulong)local_60 & 0xff000000000000) >> 0x28 |\n                                ((ulong)local_60 & 0xff0000000000) >> 0x18 |\n                                ((ulong)local_60 & 0xff00000000) >> 8 |\n                                ((ulong)local_60 & 0xff000000) << 8 |\n                                ((ulong)local_60 & 0xff0000) << 0x18 |\n                                ((ulong)local_60 & 0xff00) << 0x28 | (long)local_60 << 0x38);\n          }\n          local_70 = local_70 + 2;\nLAB_00302d40:\n          local_48 = FUN_00301dc0(*param_1,pbVar15,&local_60);\n          puStack_50 = local_60;\njoined_r0x00302748:\n          if ((uVar2 != 0x31) && (uVar2 < 0x32)) {\nLAB_00302e3e:\n            if ((uVar2 != 1) && (uVar2 == 3)) goto LAB_00302e52;\n          }\n          goto LAB_00302750;\n        }\n        if (uVar8 < 8) {\n          if (uVar8 == 4) {\n            pcVar3 = *(code **)(**(long **)(*param_1 + 0x10) + 0x18);\n            if (pcVar3 == FUN_001b8d10) {\n              cVar6 = (**(code **)(**(long **)(*param_1 + 0x10) + 0x1d0))();\n            }\n            else {\n              cVar6 = (*pcVar3)();\n            }\n            local_48 = *local_70;\n            if (cVar6 != '\0') {\n              local_48 = local_48 >> 0x18 | (local_48 & 0xff0000) >> 8 | (local_48 & 0xff00) << 8 |\n                         local_48 << 0x18;\n            }\n            puStack_50 = local_70 + 1;\n            local_70 = (uint *)((long)puStack_50 + (ulong)local_48);\n          }\n          else if (uVar8 < 5) {\n            if (uVar8 == 1) {\n              lVar10 = *param_1;\n              if (*(int *)(lVar10 + 100) == 4) goto LAB_00302e7d;\nLAB_00302a71:\n              pcVar3 = *(code **)(**(long **)(lVar10 + 0x10) + 0x18);\n              if (pcVar3 == FUN_001b8d10) {\n                cVar6 = (**(code **)(**(long **)(lVar10 + 0x10) + 0x1d0))();\n              }\n              else {\n                cVar6 = (*pcVar3)();\n              }\n              local_60 = *(uint **)local_70;\n              if (cVar6 != '\0') {\n                local_60 = (uint *)((ulong)local_60 >> 0x38 |\n                                    ((ulong)local_60 & 0xff000000000000) >> 0x28 |\n                                    ((ulong)local_60 & 0xff0000000000) >> 0x18 |\n                                    ((ulong)local_60 & 0xff00000000) >> 8 |\n                                    ((ulong)local_60 & 0xff000000) << 8 |\n                                    ((ulong)local_60 & 0xff0000) << 0x18 |\n                                    ((ulong)local_60 & 0xff00) << 0x28 | (long)local_60 << 0x38);\n              }\n              local_70 = local_70 + 2;\n              goto LAB_00302abe;\n            }\n            if (uVar8 != 3) {\n              return 0;\n            }\n            pcVar3 = *(code **)(**(long **)(*param_1 + 0x10) + 0x18);\n            if (pcVar3 == FUN_001b8d10) {\n              cVar6 = (**(code **)(**(long **)(*param_1 + 0x10) + 0x1d0))();\n            }\n            else {\n              cVar6 = (*pcVar3)();\n            }\n            uVar5 = (ushort)*local_70;\n            if (cVar6 != '\0') {\n              uVar5 = CONCAT11((byte)*local_70,*(byte *)((long)local_70 + 1));\n            }\n            local_48 = (uint)uVar5;\n            puStack_50 = (uint *)((long)local_70 + 2);\n            local_70 = (uint *)((long)puStack_50 + (ulong)local_48);\n          }\n          else {\n            if (uVar8 != 5) {\n              if (uVar8 != 6) {\n                return 0;\n              }\n              pcVar3 = *(code **)(**(long **)(*param_1 + 0x10) + 0x18);\n              if (pcVar3 == FUN_001b8d10) {\n                cVar6 = (**(code **)(**(long **)(*param_1 + 0x10) + 0x1d0))();\n              }\n              else {\n                cVar6 = (*pcVar3)();\n              }\n              uVar9 = *local_70;\n              if (cVar6 != '\0') {\n                uVar9 = uVar9 >> 0x18 | (uVar9 & 0xff0000) >> 8 | (uVar9 & 0xff00) << 8 |\n                        uVar9 << 0x18;\n              }\n              local_60 = (uint *)(ulong)uVar9;\n              local_70 = local_70 + 1;\n              goto LAB_00302d40;\n            }\n            pcVar3 = *(code **)(**(long **)(*param_1 + 0x10) + 0x18);\n            if (pcVar3 == FUN_001b8d10) {\n              cVar6 = (**(code **)(**(long **)(*param_1 + 0x10) + 0x1d0))();\n            }\n            else {\n              cVar6 = (*pcVar3)();\n            }\n            uVar5 = (ushort)*local_70;\n            if (cVar6 != '\0') {\n              uVar5 = CONCAT11((byte)*local_70,*(byte *)((long)local_70 + 1));\n            }\n            local_70 = (uint *)((long)local_70 + 2);\n            puStack_50 = (uint *)(ulong)uVar5;\n          }\n          goto joined_r0x00302748;\n        }\n        if (uVar8 == 10) {\n          puStack_50 = (uint *)((long)local_70 + 1);\n          uVar9 = *local_70;\n          local_70 = (uint *)((long)puStack_50 + (ulong)(byte)uVar9);\n          local_48 = (uint)(byte)uVar9;\n          goto joined_r0x00302748;\n        }\n        if (uVar8 < 0xb) {\n          if (uVar8 != 8) {\n            if (uVar8 != 9) {\n              return 0;\n            }\n            goto LAB_00302a09;\n          }\n          puStack_50 = local_70;\n          local_68 = strlen((char *)local_70);\n          local_70 = (uint *)((long)puVar11 + local_68 + 1);\n          if (uVar2 == 0x31) goto LAB_00302750;\n          if (0x31 < uVar2) {\n            if ((uVar2 != 0x6e) && (uVar2 != 0x2007)) goto LAB_00302750;\n            goto LAB_003029eb;\n          }\n          if ((uVar2 == 1) || (uVar2 != 3)) goto LAB_00302750;\n          goto LAB_003029c7;\n        }\n        if (uVar8 < 0xd) {\n          uVar9 = *local_70;\n          local_70 = (uint *)((long)local_70 + 1);\n          puStack_50 = (uint *)(ulong)(byte)uVar9;\n          goto LAB_00302f92;\n        }\n        bVar1 = (byte)*local_70;\n        puVar11 = (uint *)((long)local_70 + 1);\n        if ((char)bVar1 < '\0') {\n          puStack_50 = (uint *)FUN_00211340(puVar11,&local_68);\n          puVar11 = (uint *)(local_68 + (long)local_70);\n        }\n        else {\n          local_68 = 1;\n          puStack_50 = (uint *)(ulong)bVar1;\n          if ((bVar1 & 0x40) != 0) {\n            puStack_50 = (uint *)((ulong)bVar1 | 0xffffffffffffff80);\n          }\n        }\n        local_70 = puVar11;\n        if ((uVar2 == 0x31) || (uVar2 < 0x32)) goto LAB_00302750;\n        if ((uVar2 == 0x6e) || (uVar2 == 0x2007)) goto LAB_00302fbe;\n        puVar16 = (undefined8 *)param_1[8];\n        if (puVar16 == (undefined8 *)param_1[9]) goto LAB_003028c0;\nLAB_0030275e:\n        *puVar16 = CONCAT44(uStack_54,local_58);\n        puVar16[1] = puStack_50;\n        puVar16[2] = CONCAT44(uStack_44,local_48);\n        param_1[8] = (long)(puVar16 + 3);\n      }\n      lVar20 = lVar20 + 8;\n      lVar10 = param_1[6];\n    } while (lVar20 != (ulong)(iVar13 - 1) * 8 + 8);\n  }\n  if (lVar10 == 0) {\n                    \n    FUN_001e9890("../../gold/dwarf_reader.h",0x206,"has_children");\n  }\n  lVar18 = param_1[2];\nLAB_00302797:\n  pbVar15 = (byte *)((long)local_70 + (lVar18 - lVar12));\n  if ((*(byte *)(lVar10 + 4) & 1) == 0) {\n    param_1[5] = (long)pbVar15;\n  }\n  else {\n    param_1[4] = (long)pbVar15;\n  }\n  *(undefined1 *)(param_1 + 10) = 1;\n  return 1;\n}" { (declaration "byte bVar1;" type_identifier identifier ;) (declaration "uint uVar2;" type_identifier identifier ;) (declaration "void *__src;" primitive_type (pointer_declarator "*__src" * identifier) ;) (declaration "code *pcVar3;" type_identifier (pointer_declarator "*pcVar3" * identifier) ;) (declaration "void *pvVar4;" primitive_type (pointer_declarator "*pvVar4" * identifier) ;) (declaration "ushort uVar5;" type_identifier identifier ;) (declaration "char cVar6;" primitive_type identifier ;) (declaration "int iVar7;" primitive_type identifier ;) (declaration "uint uVar8;" type_identifier identifier ;) (declaration "uint uVar9;" type_identifier identifier ;) (declaration "long lVar10;" (sized_type_specifier "long" long) identifier ;) (declaration "void *__dest;" primitive_type (pointer_declarator "*__dest" * identifier) ;) (declaration "uint *puVar11;" type_identifier (pointer_declarator "*puVar11" * identifier) ;) (declaration "long lVar12;" (sized_type_specifier "long" long) identifier ;) (declaration "int iVar13;" primitive_type identifier ;) (declaration "ulong uVar14;" type_identifier identifier ;) (declaration "byte *pbVar15;" type_identifier (pointer_declarator "*pbVar15" * identifier) ;) (declaration "undefined8 *puVar16;" type_identifier (pointer_declarator "*puVar16" * identifier) ;) (declaration "long *plVar17;" (sized_type_specifier "long" long) (pointer_declarator "*plVar17" * identifier) ;) (declaration "long lVar18;" (sized_type_specifier "long" long) identifier ;) (declaration "void *pvVar19;" primitive_type (pointer_declarator "*pvVar19" * identifier) ;) (declaration "size_t __n;" primitive_type identifier ;) (declaration "long lVar20;" (sized_type_specifier "long" long) identifier ;) (declaration "uint *local_70;" type_identifier (pointer_declarator "*local_70" * identifier) ;) (declaration "size_t local_68;" primitive_type identifier ;) (declaration "uint *local_60;" type_identifier (pointer_declarator "*local_60" * identifier) ;) (declaration "uint local_58;" type_identifier identifier ;) (declaration "uint uStack_54;" type_identifier identifier ;) (declaration "uint *puStack_50;" type_identifier (pointer_declarator "*puStack_50" * identifier) ;) (declaration "uint local_48;" type_identifier identifier ;) (declaration "undefined4 uStack_44;" type_identifier identifier ;) (expression_statement "lVar10 = param_1[6];" (assignment_expression "lVar10 = param_1[6]" identifier = (subscript_expression "param_1[6]" identifier [ number_literal ])) ;) (if_statement "if (lVar10 == 0) {\n                    \n    FUN_001e9890("../../gold/dwarf_reader.cc",0x2a9,"read_attributes");\n  }" if (parenthesized_expression "(lVar10 == 0)" ( (binary_expression "lVar10 == 0" identifier == number_literal) )) (compound_statement "{\n                    \n    FUN_001e9890("../../gold/dwarf_reader.cc",0x2a9,"read_attributes");\n  }" { (expression_statement "FUN_001e9890("../../gold/dwarf_reader.cc",0x2a9,"read_attributes");" (call_expression "FUN_001e9890("../../gold/dwarf_reader.cc",0x2a9,"read_attributes")" identifier (argument_list "("../../gold/dwarf_reader.cc",0x2a9,"read_attributes")" ( (string_literal ""../../gold/dwarf_reader.cc"" " string_content ") , number_literal , (string_literal ""read_attributes"" " string_content ") ))) ;) })) (expression_statement "lVar20 = *param_1;" (assignment_expression "lVar20 = *param_1" identifier = (pointer_expression "*param_1" * identifier)) ;) (expression_statement "lVar18 = param_1[2];" (assignment_expression "lVar18 = param_1[2]" identifier = (subscript_expression "param_1[2]" identifier [ number_literal ])) ;) (expression_statement "lVar12 = *(long *)(lVar20 + 0x50) + lVar18 + *(long *)(lVar20 + 0x40);" (assignment_expression "lVar12 = *(long *)(lVar20 + 0x50) + lVar18 + *(long *)(lVar20 + 0x40)" identifier = (binary_expression "*(long *)(lVar20 + 0x50) + lVar18 + *(long *)(lVar20 + 0x40)" (binary_expression "*(long *)(lVar20 + 0x50) + lVar18" (pointer_expression "*(long *)(lVar20 + 0x50)" * (cast_expression "(long *)(lVar20 + 0x50)" ( (type_descriptor "long *" (sized_type_specifier "long" long) (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(lVar20 + 0x50)" ( (binary_expression "lVar20 + 0x50" identifier + number_literal) )))) + identifier) + (pointer_expression "*(long *)(lVar20 + 0x40)" * (cast_expression "(long *)(lVar20 + 0x40)" ( (type_descriptor "long *" (sized_type_specifier "long" long) (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(lVar20 + 0x40)" ( (binary_expression "lVar20 + 0x40" identifier + number_literal) )))))) ;) (if_statement "if ((ulong)(*(long *)(lVar20 + 0x40) + *(long *)(lVar20 + 0x50) + *(long *)(lVar20 + 0x58)) <\n      lVar12 + 1U) {\n    FUN_00301e70();\n    return 0;\n  }" if (parenthesized_expression "((ulong)(*(long *)(lVar20 + 0x40) + *(long *)(lVar20 + 0x50) + *(long *)(lVar20 + 0x58)) <\n      lVar12 + 1U)" ( (binary_expression "(ulong)(*(long *)(lVar20 + 0x40) + *(long *)(lVar20 + 0x50) + *(long *)(lVar20 + 0x58)) <\n      lVar12 + 1U" (call_expression "(ulong)(*(long *)(lVar20 + 0x40) + *(long *)(lVar20 + 0x50) + *(long *)(lVar20 + 0x58))" (parenthesized_expression "(ulong)" ( identifier )) (argument_list "(*(long *)(lVar20 + 0x40) + *(long *)(lVar20 + 0x50) + *(long *)(lVar20 + 0x58))" ( (binary_expression "*(long *)(lVar20 + 0x40) + *(long *)(lVar20 + 0x50) + *(long *)(lVar20 + 0x58)" (binary_expression "*(long *)(lVar20 + 0x40) + *(long *)(lVar20 + 0x50)" (pointer_expression "*(long *)(lVar20 + 0x40)" * (cast_expression "(long *)(lVar20 + 0x40)" ( (type_descriptor "long *" (sized_type_specifier "long" long) (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(lVar20 + 0x40)" ( (binary_expression "lVar20 + 0x40" identifier + number_literal) )))) + (pointer_expression "*(long *)(lVar20 + 0x50)" * (cast_expression "(long *)(lVar20 + 0x50)" ( (type_descriptor "long *" (sized_type_specifier "long" long) (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(lVar20 + 0x50)" ( (binary_expression "lVar20 + 0x50" identifier + number_literal) ))))) + (pointer_expression "*(long *)(lVar20 + 0x58)" * (cast_expression "(long *)(lVar20 + 0x58)" ( (type_descriptor "long *" (sized_type_specifier "long" long) (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(lVar20 + 0x58)" ( (binary_expression "lVar20 + 0x58" identifier + number_literal) ))))) ))) < (binary_expression "lVar12 + 1U" identifier + number_literal)) )) (compound_statement "{\n    FUN_00301e70();\n    return 0;\n  }" { (expression_statement "FUN_00301e70();" (call_expression "FUN_00301e70()" identifier (argument_list "()" ( ))) ;) (return_statement "return 0;" return number_literal ;) })) (if_statement "if (lVar12 == 0) {\n    return 0;\n  }" if (parenthesized_expression "(lVar12 == 0)" ( (binary_expression "lVar12 == 0" identifier == number_literal) )) (compound_statement "{\n    return 0;\n  }" { (return_statement "return 0;" return number_literal ;) })) (expression_statement "__src = (void *)param_1[7];" (assignment_expression "__src = (void *)param_1[7]" identifier = (cast_expression "(void *)param_1[7]" ( (type_descriptor "void *" primitive_type (abstract_pointer_declarator "*" *)) ) (subscript_expression "param_1[7]" identifier [ number_literal ]))) ;) (expression_statement "local_70 = (uint *)(param_1[3] + lVar12);" (assignment_expression "local_70 = (uint *)(param_1[3] + lVar12)" identifier = (cast_expression "(uint *)(param_1[3] + lVar12)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1[3] + lVar12)" ( (binary_expression "param_1[3] + lVar12" (subscript_expression "param_1[3]" identifier [ number_literal ]) + identifier) )))) ;) (expression_statement "uVar14 = *(long *)(lVar10 + 0x10) - *(long *)(lVar10 + 8) >> 3;" (assignment_expression "uVar14 = *(long *)(lVar10 + 0x10) - *(long *)(lVar10 + 8) >> 3" identifier = (binary_expression "*(long *)(lVar10 + 0x10) - *(long *)(lVar10 + 8) >> 3" (binary_expression "*(long *)(lVar10 + 0x10) - *(long *)(lVar10 + 8)" (pointer_expression "*(long *)(lVar10 + 0x10)" * (cast_expression "(long *)(lVar10 + 0x10)" ( (type_descriptor "long *" (sized_type_specifier "long" long) (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(lVar10 + 0x10)" ( (binary_expression "lVar10 + 0x10" identifier + number_literal) )))) - (pointer_expression "*(long *)(lVar10 + 8)" * (cast_expression "(long *)(lVar10 + 8)" ( (type_descriptor "long *" (sized_type_specifier "long" long) (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(lVar10 + 8)" ( (binary_expression "lVar10 + 8" identifier + number_literal) ))))) >> number_literal)) ;) (expression_statement "iVar13 = (int)uVar14;" (assignment_expression "iVar13 = (int)uVar14" identifier = (cast_expression "(int)uVar14" ( (type_descriptor "int" primitive_type) ) identifier)) ;) (expression_statement "uVar14 = uVar14 & 0xffffffff;" (assignment_expression "uVar14 = uVar14 & 0xffffffff" identifier = (binary_expression "uVar14 & 0xffffffff" identifier & number_literal)) ;) (if_statement "if ((ulong)((param_1[9] - (long)__src >> 3) * -0x5555555555555555) < uVar14) {\n    pvVar4 = (void *)param_1[8];\n    __n = (long)pvVar4 - (long)__src;\n    if (uVar14 == 0) {\n      __dest = (void *)0x0;\n      pvVar19 = __src;\n    }\n    else {\n      __dest = (void *)FUN_00337280(uVar14 * 0x18);\n      pvVar19 = (void *)param_1[7];\n    }\n    if (__src != pvVar4) {\n      __dest = memmove(__dest,__src,__n);\n    }\n    if (pvVar19 != (void *)0x0) {\n      FUN_00338a50(pvVar19);\n    }\n    param_1[7] = (long)__dest;\n    lVar10 = param_1[6];\n    param_1[8] = __n + (long)__dest;\n    param_1[9] = (long)(uVar14 * 0x18 + (long)__dest);\n    if (iVar13 != 0) goto LAB_00302642;\n  }\n  else {\n    if (iVar13 == 0) goto LAB_00302797;\nLAB_00302642:\n    lVar20 = 0;\n    do {\n      puVar11 = (uint *)(*(long *)(lVar10 + 8) + lVar20);\n      uVar8 = puVar11[1];\n      uVar2 = *puVar11;\n      if (uVar8 == 0x16) {\n        bVar1 = (byte)*local_70;\n        uVar8 = (uint)bVar1;\n        if ((char)bVar1 < '\0') {\n          uVar8 = FUN_002112d0((uint *)((long)local_70 + 1),&local_68,bVar1);\n          local_70 = (uint *)(local_68 + (long)local_70);\n        }\n        else {\n          local_68 = 1;\n          local_70 = (uint *)((long)local_70 + 1);\n        }\n      }\n      puVar11 = local_70;\n      pbVar15 = (byte *)((long)local_70 + (param_1[2] - lVar12));\n      local_48 = 0;\n      local_58 = uVar2;\n      uStack_54 = uVar8;\n      if (uVar8 == 0xe) {\n        lVar10 = *param_1;\n        if (*(int *)(lVar10 + 0x60) == 4) {\n          uVar8 = FUN_00305610(lVar10,&local_70);\n          local_60 = (uint *)(ulong)uVar8;\n        }\n        else {\n          pcVar3 = *(code **)(**(long **)(lVar10 + 0x10) + 0x18);\n          if (pcVar3 == FUN_001b8d10) {\n            cVar6 = (**(code **)(**(long **)(lVar10 + 0x10) + 0x1d0))();\n          }\n          else {\n            cVar6 = (*pcVar3)();\n          }\n          local_60 = *(uint **)local_70;\n          if (cVar6 != '\0') {\n            local_60 = (uint *)((ulong)local_60 >> 0x38 |\n                                ((ulong)local_60 & 0xff000000000000) >> 0x28 |\n                                ((ulong)local_60 & 0xff0000000000) >> 0x18 |\n                                ((ulong)local_60 & 0xff00000000) >> 8 |\n                                ((ulong)local_60 & 0xff000000) << 8 |\n                                ((ulong)local_60 & 0xff0000) << 0x18 |\n                                ((ulong)local_60 & 0xff00) << 0x28 | (long)local_60 << 0x38);\n          }\n          local_70 = local_70 + 2;\n        }\n        local_48 = FUN_00301dc0(*param_1,pbVar15,&local_60);\n        puStack_50 = local_60;\n        if (uVar2 != 0x31) {\n          if (uVar2 < 0x32) {\n            if ((uVar2 != 1) && (uVar2 == 3)) {\nLAB_00302f64:\n              *(uint *)(param_1 + 0xf) = local_48;\n              param_1[0xc] = (long)puStack_50;\n            }\n          }\n          else if ((uVar2 == 0x6e) || (uVar2 == 0x2007)) {\nLAB_00302fd0:\n            *(uint *)(param_1 + 0xf) = local_48;\n            param_1[0xe] = (long)puStack_50;\n          }\n        }\nLAB_00302750:\n        puVar16 = (undefined8 *)param_1[8];\n        if (puVar16 != (undefined8 *)param_1[9]) goto LAB_0030275e;\nLAB_003028c0:\n        FUN_00305860(param_1 + 7,puVar16,&local_58);\n      }\n      else {\n        if (0xe < uVar8) {\n          if (uVar8 == 0x15) {\n            bVar1 = (byte)*local_70;\n            if ((char)bVar1 < '\0') {\n              puStack_50 = (uint *)FUN_002112d0((uint *)((long)local_70 + 1),&local_68,bVar1);\n              local_70 = (uint *)(local_68 + (long)local_70);\n            }\n            else {\n              local_68 = 1;\n              local_70 = (uint *)((long)local_70 + 1);\n              puStack_50 = (uint *)(ulong)bVar1;\n            }\njoined_r0x00303052:\n            if (uVar2 != 0x31) {\n              if (uVar2 < 0x32) {\nLAB_00302c20:\n                if ((uVar2 == 1) && (local_48 == 0)) {\n                  param_1[5] = (long)puStack_50;\n                }\n                goto LAB_00302750;\n              }\n              if ((uVar2 != 0x6e) && (uVar2 != 0x2007)) {\njoined_r0x00302ce3:\n                if (uVar2 == 0x47) {\n                  param_1[0x10] = (long)puStack_50;\n                }\n                goto LAB_00302750;\n              }\nLAB_00302fb5:\n              if (uVar8 == 8) {\nLAB_003029eb:\n                param_1[0xd] = (long)puStack_50;\n              }\n              else {\nLAB_00302fbe:\n                if (uVar8 == 0xe) goto LAB_00302fd0;\n              }\n              goto LAB_00302750;\n            }\n          }\n          else {\n            if (0x15 < uVar8) {\n              if (uVar8 != 0x19) {\n                if (uVar8 < 0x1a) {\n                  if (uVar8 == 0x17) {\n                    lVar10 = *param_1;\n                    if (*(int *)(lVar10 + 0x60) == 4) {\n                      uVar9 = FUN_00305610(lVar10,&local_70);\n                      local_60 = (uint *)(ulong)uVar9;\n                    }\n                    else {\n                      plVar17 = *(long **)(lVar10 + 0x10);\nLAB_00302fe7:\n                      pcVar3 = *(code **)(*plVar17 + 0x18);\n                      if (pcVar3 == FUN_001b8d10) {\n                        cVar6 = (**(code **)(*plVar17 + 0x1d0))();\n                      }\n                      else {\n                        cVar6 = (*pcVar3)();\n                      }\n                      local_60 = *(uint **)local_70;\n                      if (cVar6 != '\0') {\n                        local_60 = (uint *)((ulong)local_60 >> 0x38 |\n                                            ((ulong)local_60 & 0xff000000000000) >> 0x28 |\n                                            ((ulong)local_60 & 0xff0000000000) >> 0x18 |\n                                            ((ulong)local_60 & 0xff00000000) >> 8 |\n                                            ((ulong)local_60 & 0xff000000) << 8 |\n                                            ((ulong)local_60 & 0xff0000) << 0x18 |\n                                            ((ulong)local_60 & 0xff00) << 0x28 |\n                                           (long)local_60 << 0x38);\n                      }\n                      local_70 = local_70 + 2;\n                    }\nLAB_00303035:\n                    local_48 = FUN_00301dc0(*param_1,pbVar15,&local_60);\n                    puStack_50 = local_60;\n                    goto joined_r0x00303052;\n                  }\n                  if (uVar8 != 0x18) {\n                    return 0;\n                  }\nLAB_00302a09:\n                  bVar1 = (byte)*local_70;\n                  uVar9 = (uint)bVar1;\n                  puVar11 = (uint *)((long)local_70 + 1);\n                  if ((char)bVar1 < '\0') {\n                    uVar9 = FUN_002112d0(puVar11,&local_68,bVar1);\n                    puVar11 = (uint *)((long)local_70 + local_68);\n                  }\n                  else {\n                    local_68 = 1;\n                  }\n                  local_70 = (uint *)((long)local_70 + uVar9 + local_68);\n                  puStack_50 = puVar11;\n                  local_48 = uVar9;\n                }\n                else {\n                  if (uVar8 == 0x20) {\n                    pcVar3 = *(code **)(**(long **)(*param_1 + 0x10) + 0x18);\n                    if (pcVar3 == FUN_001b8d10) {\n                      cVar6 = (**(code **)(**(long **)(*param_1 + 0x10) + 0x1d0))();\n                    }\n                    else {\n                      cVar6 = (*pcVar3)();\n                    }\n                    puStack_50 = *(uint **)local_70;\n                    if (cVar6 != '\0') {\n                      puStack_50 = (uint *)((ulong)puStack_50 >> 0x38 |\n                                            ((ulong)puStack_50 & 0xff000000000000) >> 0x28 |\n                                            ((ulong)puStack_50 & 0xff0000000000) >> 0x18 |\n                                            ((ulong)puStack_50 & 0xff00000000) >> 8 |\n                                            ((ulong)puStack_50 & 0xff000000) << 8 |\n                                            ((ulong)puStack_50 & 0xff0000) << 0x18 |\n                                            ((ulong)puStack_50 & 0xff00) << 0x28 |\n                                           (long)puStack_50 << 0x38);\n                    }\n                    local_70 = local_70 + 2;\n                    goto LAB_00302ea9;\n                  }\n                  if (uVar8 < 0x20) {\n                    return 0;\n                  }\n                  if (1 < uVar8 - 0x1f01) {\n                    return 0;\n                  }\nLAB_00302bcd:\n                  bVar1 = (byte)*local_70;\n                  if ((char)bVar1 < '\0') {\n                    puStack_50 = (uint *)FUN_002112d0((uint *)((long)local_70 + 1),&local_68,bVar1);\n                    local_70 = (uint *)(local_68 + (long)local_70);\n                  }\n                  else {\n                    local_68 = 1;\n                    local_70 = (uint *)((long)local_70 + 1);\n                    puStack_50 = (uint *)(ulong)bVar1;\n                  }\n                }\nLAB_00302f92:\n                if (uVar2 == 0x31) goto LAB_00302750;\n                if (0x31 < uVar2) {\n                  if ((uVar2 == 0x6e) || (uVar2 == 0x2007)) goto LAB_00302fb5;\n                  goto LAB_00302750;\n                }\n                goto LAB_00302e3e;\n              }\n              puStack_50 = (uint *)0x1;\nLAB_00302ea9:\n              if (((uVar2 == 0x31) || (0x31 < uVar2)) || (uVar2 != 3)) goto LAB_00302750;\nLAB_00302e52:\n              if (uVar8 == 8) {\nLAB_003029c7:\n                param_1[0xb] = (long)puStack_50;\n              }\n              else if (uVar8 == 0xe) goto LAB_00302f64;\n              goto LAB_00302750;\n            }\n            if (uVar8 != 0x11) {\n              if (0x11 < uVar8) {\n                if (uVar8 == 0x13) {\n                  uVar9 = FUN_00305610(*param_1,&local_70);\n                  local_60 = (uint *)(ulong)uVar9;\n                  goto LAB_00303035;\n                }\n                if (0x13 < uVar8) {\n                  plVar17 = *(long **)(*param_1 + 0x10);\n                  goto LAB_00302fe7;\n                }\n                pcVar3 = *(code **)(**(long **)(*param_1 + 0x10) + 0x18);\n                if (pcVar3 == FUN_001b8d10) {\n                  cVar6 = (**(code **)(**(long **)(*param_1 + 0x10) + 0x1d0))();\n                }\n                else {\n                  cVar6 = (*pcVar3)();\n                }\n                uVar5 = (ushort)*local_70;\n                if (cVar6 != '\0') {\n                  uVar5 = CONCAT11((byte)*local_70,*(byte *)((long)local_70 + 1));\n                }\n                local_70 = (uint *)((long)local_70 + 2);\n                puStack_50 = (uint *)(ulong)uVar5;\n                goto joined_r0x00303052;\n              }\n              if (uVar8 == 0xf) goto LAB_00302bcd;\n              if (uVar8 != 0x10) {\n                return 0;\n              }\n              lVar10 = *param_1;\n              iVar7 = *(int *)(lVar10 + 100);\n              if (2 < *(uint *)(lVar10 + 0x68)) {\n                iVar7 = *(int *)(lVar10 + 0x60);\n              }\n              if (iVar7 != 4) goto LAB_00302a71;\nLAB_00302e7d:\n              uVar8 = FUN_00305610(lVar10,&local_70);\n              local_60 = (uint *)(ulong)uVar8;\nLAB_00302abe:\n              local_48 = FUN_00301dc0(*param_1,pbVar15,&local_60);\n              puStack_50 = local_60;\n              if (uVar2 == 0x31) goto LAB_00302965;\n              if (0x31 < uVar2) goto joined_r0x00302ccc;\n              goto LAB_00302c20;\n            }\n            puVar11 = (uint *)((long)local_70 + 1);\n            puStack_50 = (uint *)(ulong)(byte)*local_70;\n            local_70 = puVar11;\n            if (uVar2 != 0x31) {\n              if (uVar2 < 0x32) {\n                if (uVar2 == 1) {\n                  param_1[5] = (long)puStack_50;\n                }\n                goto LAB_00302750;\n              }\njoined_r0x00302ccc:\n              if ((uVar2 == 0x6e) || (uVar2 == 0x2007)) goto LAB_00302750;\n              goto joined_r0x00302ce3;\n            }\n          }\nLAB_00302965:\n          param_1[0x11] = (long)puStack_50;\n          goto LAB_00302750;\n        }\n        if (uVar8 == 7) {\n          pcVar3 = *(code **)(**(long **)(*param_1 + 0x10) + 0x18);\n          if (pcVar3 == FUN_001b8d10) {\n            cVar6 = (**(code **)(**(long **)(*param_1 + 0x10) + 0x1d0))();\n          }\n          else {\n            cVar6 = (*pcVar3)();\n          }\n          local_60 = *(uint **)local_70;\n          if (cVar6 != '\0') {\n            local_60 = (uint *)((ulong)local_60 >> 0x38 |\n                                ((ulong)local_60 & 0xff000000000000) >> 0x28 |\n                                ((ulong)local_60 & 0xff0000000000) >> 0x18 |\n                                ((ulong)local_60 & 0xff00000000) >> 8 |\n                                ((ulong)local_60 & 0xff000000) << 8 |\n                                ((ulong)local_60 & 0xff0000) << 0x18 |\n                                ((ulong)local_60 & 0xff00) << 0x28 | (long)local_60 << 0x38);\n          }\n          local_70 = local_70 + 2;\nLAB_00302d40:\n          local_48 = FUN_00301dc0(*param_1,pbVar15,&local_60);\n          puStack_50 = local_60;\njoined_r0x00302748:\n          if ((uVar2 != 0x31) && (uVar2 < 0x32)) {\nLAB_00302e3e:\n            if ((uVar2 != 1) && (uVar2 == 3)) goto LAB_00302e52;\n          }\n          goto LAB_00302750;\n        }\n        if (uVar8 < 8) {\n          if (uVar8 == 4) {\n            pcVar3 = *(code **)(**(long **)(*param_1 + 0x10) + 0x18);\n            if (pcVar3 == FUN_001b8d10) {\n              cVar6 = (**(code **)(**(long **)(*param_1 + 0x10) + 0x1d0))();\n            }\n            else {\n              cVar6 = (*pcVar3)();\n            }\n            local_48 = *local_70;\n            if (cVar6 != '\0') {\n              local_48 = local_48 >> 0x18 | (local_48 & 0xff0000) >> 8 | (local_48 & 0xff00) << 8 |\n                         local_48 << 0x18;\n            }\n            puStack_50 = local_70 + 1;\n            local_70 = (uint *)((long)puStack_50 + (ulong)local_48);\n          }\n          else if (uVar8 < 5) {\n            if (uVar8 == 1) {\n              lVar10 = *param_1;\n              if (*(int *)(lVar10 + 100) == 4) goto LAB_00302e7d;\nLAB_00302a71:\n              pcVar3 = *(code **)(**(long **)(lVar10 + 0x10) + 0x18);\n              if (pcVar3 == FUN_001b8d10) {\n                cVar6 = (**(code **)(**(long **)(lVar10 + 0x10) + 0x1d0))();\n              }\n              else {\n                cVar6 = (*pcVar3)();\n              }\n              local_60 = *(uint **)local_70;\n              if (cVar6 != '\0') {\n                local_60 = (uint *)((ulong)local_60 >> 0x38 |\n                                    ((ulong)local_60 & 0xff000000000000) >> 0x28 |\n                                    ((ulong)local_60 & 0xff0000000000) >> 0x18 |\n                                    ((ulong)local_60 & 0xff00000000) >> 8 |\n                                    ((ulong)local_60 & 0xff000000) << 8 |\n                                    ((ulong)local_60 & 0xff0000) << 0x18 |\n                                    ((ulong)local_60 & 0xff00) << 0x28 | (long)local_60 << 0x38);\n              }\n              local_70 = local_70 + 2;\n              goto LAB_00302abe;\n            }\n            if (uVar8 != 3) {\n              return 0;\n            }\n            pcVar3 = *(code **)(**(long **)(*param_1 + 0x10) + 0x18);\n            if (pcVar3 == FUN_001b8d10) {\n              cVar6 = (**(code **)(**(long **)(*param_1 + 0x10) + 0x1d0))();\n            }\n            else {\n              cVar6 = (*pcVar3)();\n            }\n            uVar5 = (ushort)*local_70;\n            if (cVar6 != '\0') {\n              uVar5 = CONCAT11((byte)*local_70,*(byte *)((long)local_70 + 1));\n            }\n            local_48 = (uint)uVar5;\n            puStack_50 = (uint *)((long)local_70 + 2);\n            local_70 = (uint *)((long)puStack_50 + (ulong)local_48);\n          }\n          else {\n            if (uVar8 != 5) {\n              if (uVar8 != 6) {\n                return 0;\n              }\n              pcVar3 = *(code **)(**(long **)(*param_1 + 0x10) + 0x18);\n              if (pcVar3 == FUN_001b8d10) {\n                cVar6 = (**(code **)(**(long **)(*param_1 + 0x10) + 0x1d0))();\n              }\n              else {\n                cVar6 = (*pcVar3)();\n              }\n              uVar9 = *local_70;\n              if (cVar6 != '\0') {\n                uVar9 = uVar9 >> 0x18 | (uVar9 & 0xff0000) >> 8 | (uVar9 & 0xff00) << 8 |\n                        uVar9 << 0x18;\n              }\n              local_60 = (uint *)(ulong)uVar9;\n              local_70 = local_70 + 1;\n              goto LAB_00302d40;\n            }\n            pcVar3 = *(code **)(**(long **)(*param_1 + 0x10) + 0x18);\n            if (pcVar3 == FUN_001b8d10) {\n              cVar6 = (**(code **)(**(long **)(*param_1 + 0x10) + 0x1d0))();\n            }\n            else {\n              cVar6 = (*pcVar3)();\n            }\n            uVar5 = (ushort)*local_70;\n            if (cVar6 != '\0') {\n              uVar5 = CONCAT11((byte)*local_70,*(byte *)((long)local_70 + 1));\n            }\n            local_70 = (uint *)((long)local_70 + 2);\n            puStack_50 = (uint *)(ulong)uVar5;\n          }\n          goto joined_r0x00302748;\n        }\n        if (uVar8 == 10) {\n          puStack_50 = (uint *)((long)local_70 + 1);\n          uVar9 = *local_70;\n          local_70 = (uint *)((long)puStack_50 + (ulong)(byte)uVar9);\n          local_48 = (uint)(byte)uVar9;\n          goto joined_r0x00302748;\n        }\n        if (uVar8 < 0xb) {\n          if (uVar8 != 8) {\n            if (uVar8 != 9) {\n              return 0;\n            }\n            goto LAB_00302a09;\n          }\n          puStack_50 = local_70;\n          local_68 = strlen((char *)local_70);\n          local_70 = (uint *)((long)puVar11 + local_68 + 1);\n          if (uVar2 == 0x31) goto LAB_00302750;\n          if (0x31 < uVar2) {\n            if ((uVar2 != 0x6e) && (uVar2 != 0x2007)) goto LAB_00302750;\n            goto LAB_003029eb;\n          }\n          if ((uVar2 == 1) || (uVar2 != 3)) goto LAB_00302750;\n          goto LAB_003029c7;\n        }\n        if (uVar8 < 0xd) {\n          uVar9 = *local_70;\n          local_70 = (uint *)((long)local_70 + 1);\n          puStack_50 = (uint *)(ulong)(byte)uVar9;\n          goto LAB_00302f92;\n        }\n        bVar1 = (byte)*local_70;\n        puVar11 = (uint *)((long)local_70 + 1);\n        if ((char)bVar1 < '\0') {\n          puStack_50 = (uint *)FUN_00211340(puVar11,&local_68);\n          puVar11 = (uint *)(local_68 + (long)local_70);\n        }\n        else {\n          local_68 = 1;\n          puStack_50 = (uint *)(ulong)bVar1;\n          if ((bVar1 & 0x40) != 0) {\n            puStack_50 = (uint *)((ulong)bVar1 | 0xffffffffffffff80);\n          }\n        }\n        local_70 = puVar11;\n        if ((uVar2 == 0x31) || (uVar2 < 0x32)) goto LAB_00302750;\n        if ((uVar2 == 0x6e) || (uVar2 == 0x2007)) goto LAB_00302fbe;\n        puVar16 = (undefined8 *)param_1[8];\n        if (puVar16 == (undefined8 *)param_1[9]) goto LAB_003028c0;\nLAB_0030275e:\n        *puVar16 = CONCAT44(uStack_54,local_58);\n        puVar16[1] = puStack_50;\n        puVar16[2] = CONCAT44(uStack_44,local_48);\n        param_1[8] = (long)(puVar16 + 3);\n      }\n      lVar20 = lVar20 + 8;\n      lVar10 = param_1[6];\n    } while (lVar20 != (ulong)(iVar13 - 1) * 8 + 8);\n  }" if (parenthesized_expression "((ulong)((param_1[9] - (long)__src >> 3) * -0x5555555555555555) < uVar14)" ( (binary_expression "(ulong)((param_1[9] - (long)__src >> 3) * -0x5555555555555555) < uVar14" (call_expression "(ulong)((param_1[9] - (long)__src >> 3) * -0x5555555555555555)" (parenthesized_expression "(ulong)" ( identifier )) (argument_list "((param_1[9] - (long)__src >> 3) * -0x5555555555555555)" ( (binary_expression "(param_1[9] - (long)__src >> 3) * -0x5555555555555555" (parenthesized_expression "(param_1[9] - (long)__src >> 3)" ( (binary_expression "param_1[9] - (long)__src >> 3" (binary_expression "param_1[9] - (long)__src" (subscript_expression "param_1[9]" identifier [ number_literal ]) - (cast_expression "(long)__src" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) identifier)) >> number_literal) )) * number_literal) ))) < identifier) )) (compound_statement "{\n    pvVar4 = (void *)param_1[8];\n    __n = (long)pvVar4 - (long)__src;\n    if (uVar14 == 0) {\n      __dest = (void *)0x0;\n      pvVar19 = __src;\n    }\n    else {\n      __dest = (void *)FUN_00337280(uVar14 * 0x18);\n      pvVar19 = (void *)param_1[7];\n    }\n    if (__src != pvVar4) {\n      __dest = memmove(__dest,__src,__n);\n    }\n    if (pvVar19 != (void *)0x0) {\n      FUN_00338a50(pvVar19);\n    }\n    param_1[7] = (long)__dest;\n    lVar10 = param_1[6];\n    param_1[8] = __n + (long)__dest;\n    param_1[9] = (long)(uVar14 * 0x18 + (long)__dest);\n    if (iVar13 != 0) goto LAB_00302642;\n  }" { (expression_statement "pvVar4 = (void *)param_1[8];" (assignment_expression "pvVar4 = (void *)param_1[8]" identifier = (cast_expression "(void *)param_1[8]" ( (type_descriptor "void *" primitive_type (abstract_pointer_declarator "*" *)) ) (subscript_expression "param_1[8]" identifier [ number_literal ]))) ;) (expression_statement "__n = (long)pvVar4 - (long)__src;" (assignment_expression "__n = (long)pvVar4 - (long)__src" identifier = (binary_expression "(long)pvVar4 - (long)__src" (cast_expression "(long)pvVar4" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) identifier) - (cast_expression "(long)__src" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) identifier))) ;) (if_statement "if (uVar14 == 0) {\n      __dest = (void *)0x0;\n      pvVar19 = __src;\n    }\n    else {\n      __dest = (void *)FUN_00337280(uVar14 * 0x18);\n      pvVar19 = (void *)param_1[7];\n    }" if (parenthesized_expression "(uVar14 == 0)" ( (binary_expression "uVar14 == 0" identifier == number_literal) )) (compound_statement "{\n      __dest = (void *)0x0;\n      pvVar19 = __src;\n    }" { (expression_statement "__dest = (void *)0x0;" (assignment_expression "__dest = (void *)0x0" identifier = (cast_expression "(void *)0x0" ( (type_descriptor "void *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (expression_statement "pvVar19 = __src;" (assignment_expression "pvVar19 = __src" identifier = identifier) ;) }) (else_clause "else {\n      __dest = (void *)FUN_00337280(uVar14 * 0x18);\n      pvVar19 = (void *)param_1[7];\n    }" else (compound_statement "{\n      __dest = (void *)FUN_00337280(uVar14 * 0x18);\n      pvVar19 = (void *)param_1[7];\n    }" { (expression_statement "__dest = (void *)FUN_00337280(uVar14 * 0x18);" (assignment_expression "__dest = (void *)FUN_00337280(uVar14 * 0x18)" identifier = (cast_expression "(void *)FUN_00337280(uVar14 * 0x18)" ( (type_descriptor "void *" primitive_type (abstract_pointer_declarator "*" *)) ) (call_expression "FUN_00337280(uVar14 * 0x18)" identifier (argument_list "(uVar14 * 0x18)" ( (binary_expression "uVar14 * 0x18" identifier * number_literal) ))))) ;) (expression_statement "pvVar19 = (void *)param_1[7];" (assignment_expression "pvVar19 = (void *)param_1[7]" identifier = (cast_expression "(void *)param_1[7]" ( (type_descriptor "void *" primitive_type (abstract_pointer_declarator "*" *)) ) (subscript_expression "param_1[7]" identifier [ number_literal ]))) ;) }))) (if_statement "if (__src != pvVar4) {\n      __dest = memmove(__dest,__src,__n);\n    }" if (parenthesized_expression "(__src != pvVar4)" ( (binary_expression "__src != pvVar4" identifier != identifier) )) (compound_statement "{\n      __dest = memmove(__dest,__src,__n);\n    }" { (expression_statement "__dest = memmove(__dest,__src,__n);" (assignment_expression "__dest = memmove(__dest,__src,__n)" identifier = (call_expression "memmove(__dest,__src,__n)" identifier (argument_list "(__dest,__src,__n)" ( identifier , identifier , identifier )))) ;) })) (if_statement "if (pvVar19 != (void *)0x0) {\n      FUN_00338a50(pvVar19);\n    }" if (parenthesized_expression "(pvVar19 != (void *)0x0)" ( (binary_expression "pvVar19 != (void *)0x0" identifier != (cast_expression "(void *)0x0" ( (type_descriptor "void *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n      FUN_00338a50(pvVar19);\n    }" { (expression_statement "FUN_00338a50(pvVar19);" (call_expression "FUN_00338a50(pvVar19)" identifier (argument_list "(pvVar19)" ( identifier ))) ;) })) (expression_statement "param_1[7] = (long)__dest;" (assignment_expression "param_1[7] = (long)__dest" (subscript_expression "param_1[7]" identifier [ number_literal ]) = (cast_expression "(long)__dest" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) identifier)) ;) (expression_statement "lVar10 = param_1[6];" (assignment_expression "lVar10 = param_1[6]" identifier = (subscript_expression "param_1[6]" identifier [ number_literal ])) ;) (expression_statement "param_1[8] = __n + (long)__dest;" (assignment_expression "param_1[8] = __n + (long)__dest" (subscript_expression "param_1[8]" identifier [ number_literal ]) = (binary_expression "__n + (long)__dest" identifier + (cast_expression "(long)__dest" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) identifier))) ;) (expression_statement "param_1[9] = (long)(uVar14 * 0x18 + (long)__dest);" (assignment_expression "param_1[9] = (long)(uVar14 * 0x18 + (long)__dest)" (subscript_expression "param_1[9]" identifier [ number_literal ]) = (cast_expression "(long)(uVar14 * 0x18 + (long)__dest)" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) (parenthesized_expression "(uVar14 * 0x18 + (long)__dest)" ( (binary_expression "uVar14 * 0x18 + (long)__dest" (binary_expression "uVar14 * 0x18" identifier * number_literal) + (cast_expression "(long)__dest" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) identifier)) )))) ;) (if_statement "if (iVar13 != 0) goto LAB_00302642;" if (parenthesized_expression "(iVar13 != 0)" ( (binary_expression "iVar13 != 0" identifier != number_literal) )) (goto_statement "goto LAB_00302642;" goto statement_identifier ;)) }) (else_clause "else {\n    if (iVar13 == 0) goto LAB_00302797;\nLAB_00302642:\n    lVar20 = 0;\n    do {\n      puVar11 = (uint *)(*(long *)(lVar10 + 8) + lVar20);\n      uVar8 = puVar11[1];\n      uVar2 = *puVar11;\n      if (uVar8 == 0x16) {\n        bVar1 = (byte)*local_70;\n        uVar8 = (uint)bVar1;\n        if ((char)bVar1 < '\0') {\n          uVar8 = FUN_002112d0((uint *)((long)local_70 + 1),&local_68,bVar1);\n          local_70 = (uint *)(local_68 + (long)local_70);\n        }\n        else {\n          local_68 = 1;\n          local_70 = (uint *)((long)local_70 + 1);\n        }\n      }\n      puVar11 = local_70;\n      pbVar15 = (byte *)((long)local_70 + (param_1[2] - lVar12));\n      local_48 = 0;\n      local_58 = uVar2;\n      uStack_54 = uVar8;\n      if (uVar8 == 0xe) {\n        lVar10 = *param_1;\n        if (*(int *)(lVar10 + 0x60) == 4) {\n          uVar8 = FUN_00305610(lVar10,&local_70);\n          local_60 = (uint *)(ulong)uVar8;\n        }\n        else {\n          pcVar3 = *(code **)(**(long **)(lVar10 + 0x10) + 0x18);\n          if (pcVar3 == FUN_001b8d10) {\n            cVar6 = (**(code **)(**(long **)(lVar10 + 0x10) + 0x1d0))();\n          }\n          else {\n            cVar6 = (*pcVar3)();\n          }\n          local_60 = *(uint **)local_70;\n          if (cVar6 != '\0') {\n            local_60 = (uint *)((ulong)local_60 >> 0x38 |\n                                ((ulong)local_60 & 0xff000000000000) >> 0x28 |\n                                ((ulong)local_60 & 0xff0000000000) >> 0x18 |\n                                ((ulong)local_60 & 0xff00000000) >> 8 |\n                                ((ulong)local_60 & 0xff000000) << 8 |\n                                ((ulong)local_60 & 0xff0000) << 0x18 |\n                                ((ulong)local_60 & 0xff00) << 0x28 | (long)local_60 << 0x38);\n          }\n          local_70 = local_70 + 2;\n        }\n        local_48 = FUN_00301dc0(*param_1,pbVar15,&local_60);\n        puStack_50 = local_60;\n        if (uVar2 != 0x31) {\n          if (uVar2 < 0x32) {\n            if ((uVar2 != 1) && (uVar2 == 3)) {\nLAB_00302f64:\n              *(uint *)(param_1 + 0xf) = local_48;\n              param_1[0xc] = (long)puStack_50;\n            }\n          }\n          else if ((uVar2 == 0x6e) || (uVar2 == 0x2007)) {\nLAB_00302fd0:\n            *(uint *)(param_1 + 0xf) = local_48;\n            param_1[0xe] = (long)puStack_50;\n          }\n        }\nLAB_00302750:\n        puVar16 = (undefined8 *)param_1[8];\n        if (puVar16 != (undefined8 *)param_1[9]) goto LAB_0030275e;\nLAB_003028c0:\n        FUN_00305860(param_1 + 7,puVar16,&local_58);\n      }\n      else {\n        if (0xe < uVar8) {\n          if (uVar8 == 0x15) {\n            bVar1 = (byte)*local_70;\n            if ((char)bVar1 < '\0') {\n              puStack_50 = (uint *)FUN_002112d0((uint *)((long)local_70 + 1),&local_68,bVar1);\n              local_70 = (uint *)(local_68 + (long)local_70);\n            }\n            else {\n              local_68 = 1;\n              local_70 = (uint *)((long)local_70 + 1);\n              puStack_50 = (uint *)(ulong)bVar1;\n            }\njoined_r0x00303052:\n            if (uVar2 != 0x31) {\n              if (uVar2 < 0x32) {\nLAB_00302c20:\n                if ((uVar2 == 1) && (local_48 == 0)) {\n                  param_1[5] = (long)puStack_50;\n                }\n                goto LAB_00302750;\n              }\n              if ((uVar2 != 0x6e) && (uVar2 != 0x2007)) {\njoined_r0x00302ce3:\n                if (uVar2 == 0x47) {\n                  param_1[0x10] = (long)puStack_50;\n                }\n                goto LAB_00302750;\n              }\nLAB_00302fb5:\n              if (uVar8 == 8) {\nLAB_003029eb:\n                param_1[0xd] = (long)puStack_50;\n              }\n              else {\nLAB_00302fbe:\n                if (uVar8 == 0xe) goto LAB_00302fd0;\n              }\n              goto LAB_00302750;\n            }\n          }\n          else {\n            if (0x15 < uVar8) {\n              if (uVar8 != 0x19) {\n                if (uVar8 < 0x1a) {\n                  if (uVar8 == 0x17) {\n                    lVar10 = *param_1;\n                    if (*(int *)(lVar10 + 0x60) == 4) {\n                      uVar9 = FUN_00305610(lVar10,&local_70);\n                      local_60 = (uint *)(ulong)uVar9;\n                    }\n                    else {\n                      plVar17 = *(long **)(lVar10 + 0x10);\nLAB_00302fe7:\n                      pcVar3 = *(code **)(*plVar17 + 0x18);\n                      if (pcVar3 == FUN_001b8d10) {\n                        cVar6 = (**(code **)(*plVar17 + 0x1d0))();\n                      }\n                      else {\n                        cVar6 = (*pcVar3)();\n                      }\n                      local_60 = *(uint **)local_70;\n                      if (cVar6 != '\0') {\n                        local_60 = (uint *)((ulong)local_60 >> 0x38 |\n                                            ((ulong)local_60 & 0xff000000000000) >> 0x28 |\n                                            ((ulong)local_60 & 0xff0000000000) >> 0x18 |\n                                            ((ulong)local_60 & 0xff00000000) >> 8 |\n                                            ((ulong)local_60 & 0xff000000) << 8 |\n                                            ((ulong)local_60 & 0xff0000) << 0x18 |\n                                            ((ulong)local_60 & 0xff00) << 0x28 |\n                                           (long)local_60 << 0x38);\n                      }\n                      local_70 = local_70 + 2;\n                    }\nLAB_00303035:\n                    local_48 = FUN_00301dc0(*param_1,pbVar15,&local_60);\n                    puStack_50 = local_60;\n                    goto joined_r0x00303052;\n                  }\n                  if (uVar8 != 0x18) {\n                    return 0;\n                  }\nLAB_00302a09:\n                  bVar1 = (byte)*local_70;\n                  uVar9 = (uint)bVar1;\n                  puVar11 = (uint *)((long)local_70 + 1);\n                  if ((char)bVar1 < '\0') {\n                    uVar9 = FUN_002112d0(puVar11,&local_68,bVar1);\n                    puVar11 = (uint *)((long)local_70 + local_68);\n                  }\n                  else {\n                    local_68 = 1;\n                  }\n                  local_70 = (uint *)((long)local_70 + uVar9 + local_68);\n                  puStack_50 = puVar11;\n                  local_48 = uVar9;\n                }\n                else {\n                  if (uVar8 == 0x20) {\n                    pcVar3 = *(code **)(**(long **)(*param_1 + 0x10) + 0x18);\n                    if (pcVar3 == FUN_001b8d10) {\n                      cVar6 = (**(code **)(**(long **)(*param_1 + 0x10) + 0x1d0))();\n                    }\n                    else {\n                      cVar6 = (*pcVar3)();\n                    }\n                    puStack_50 = *(uint **)local_70;\n                    if (cVar6 != '\0') {\n                      puStack_50 = (uint *)((ulong)puStack_50 >> 0x38 |\n                                            ((ulong)puStack_50 & 0xff000000000000) >> 0x28 |\n                                            ((ulong)puStack_50 & 0xff0000000000) >> 0x18 |\n                                            ((ulong)puStack_50 & 0xff00000000) >> 8 |\n                                            ((ulong)puStack_50 & 0xff000000) << 8 |\n                                            ((ulong)puStack_50 & 0xff0000) << 0x18 |\n                                            ((ulong)puStack_50 & 0xff00) << 0x28 |\n                                           (long)puStack_50 << 0x38);\n                    }\n                    local_70 = local_70 + 2;\n                    goto LAB_00302ea9;\n                  }\n                  if (uVar8 < 0x20) {\n                    return 0;\n                  }\n                  if (1 < uVar8 - 0x1f01) {\n                    return 0;\n                  }\nLAB_00302bcd:\n                  bVar1 = (byte)*local_70;\n                  if ((char)bVar1 < '\0') {\n                    puStack_50 = (uint *)FUN_002112d0((uint *)((long)local_70 + 1),&local_68,bVar1);\n                    local_70 = (uint *)(local_68 + (long)local_70);\n                  }\n                  else {\n                    local_68 = 1;\n                    local_70 = (uint *)((long)local_70 + 1);\n                    puStack_50 = (uint *)(ulong)bVar1;\n                  }\n                }\nLAB_00302f92:\n                if (uVar2 == 0x31) goto LAB_00302750;\n                if (0x31 < uVar2) {\n                  if ((uVar2 == 0x6e) || (uVar2 == 0x2007)) goto LAB_00302fb5;\n                  goto LAB_00302750;\n                }\n                goto LAB_00302e3e;\n              }\n              puStack_50 = (uint *)0x1;\nLAB_00302ea9:\n              if (((uVar2 == 0x31) || (0x31 < uVar2)) || (uVar2 != 3)) goto LAB_00302750;\nLAB_00302e52:\n              if (uVar8 == 8) {\nLAB_003029c7:\n                param_1[0xb] = (long)puStack_50;\n              }\n              else if (uVar8 == 0xe) goto LAB_00302f64;\n              goto LAB_00302750;\n            }\n            if (uVar8 != 0x11) {\n              if (0x11 < uVar8) {\n                if (uVar8 == 0x13) {\n                  uVar9 = FUN_00305610(*param_1,&local_70);\n                  local_60 = (uint *)(ulong)uVar9;\n                  goto LAB_00303035;\n                }\n                if (0x13 < uVar8) {\n                  plVar17 = *(long **)(*param_1 + 0x10);\n                  goto LAB_00302fe7;\n                }\n                pcVar3 = *(code **)(**(long **)(*param_1 + 0x10) + 0x18);\n                if (pcVar3 == FUN_001b8d10) {\n                  cVar6 = (**(code **)(**(long **)(*param_1 + 0x10) + 0x1d0))();\n                }\n                else {\n                  cVar6 = (*pcVar3)();\n                }\n                uVar5 = (ushort)*local_70;\n                if (cVar6 != '\0') {\n                  uVar5 = CONCAT11((byte)*local_70,*(byte *)((long)local_70 + 1));\n                }\n                local_70 = (uint *)((long)local_70 + 2);\n                puStack_50 = (uint *)(ulong)uVar5;\n                goto joined_r0x00303052;\n              }\n              if (uVar8 == 0xf) goto LAB_00302bcd;\n              if (uVar8 != 0x10) {\n                return 0;\n              }\n              lVar10 = *param_1;\n              iVar7 = *(int *)(lVar10 + 100);\n              if (2 < *(uint *)(lVar10 + 0x68)) {\n                iVar7 = *(int *)(lVar10 + 0x60);\n              }\n              if (iVar7 != 4) goto LAB_00302a71;\nLAB_00302e7d:\n              uVar8 = FUN_00305610(lVar10,&local_70);\n              local_60 = (uint *)(ulong)uVar8;\nLAB_00302abe:\n              local_48 = FUN_00301dc0(*param_1,pbVar15,&local_60);\n              puStack_50 = local_60;\n              if (uVar2 == 0x31) goto LAB_00302965;\n              if (0x31 < uVar2) goto joined_r0x00302ccc;\n              goto LAB_00302c20;\n            }\n            puVar11 = (uint *)((long)local_70 + 1);\n            puStack_50 = (uint *)(ulong)(byte)*local_70;\n            local_70 = puVar11;\n            if (uVar2 != 0x31) {\n              if (uVar2 < 0x32) {\n                if (uVar2 == 1) {\n                  param_1[5] = (long)puStack_50;\n                }\n                goto LAB_00302750;\n              }\njoined_r0x00302ccc:\n              if ((uVar2 == 0x6e) || (uVar2 == 0x2007)) goto LAB_00302750;\n              goto joined_r0x00302ce3;\n            }\n          }\nLAB_00302965:\n          param_1[0x11] = (long)puStack_50;\n          goto LAB_00302750;\n        }\n        if (uVar8 == 7) {\n          pcVar3 = *(code **)(**(long **)(*param_1 + 0x10) + 0x18);\n          if (pcVar3 == FUN_001b8d10) {\n            cVar6 = (**(code **)(**(long **)(*param_1 + 0x10) + 0x1d0))();\n          }\n          else {\n            cVar6 = (*pcVar3)();\n          }\n          local_60 = *(uint **)local_70;\n          if (cVar6 != '\0') {\n            local_60 = (uint *)((ulong)local_60 >> 0x38 |\n                                ((ulong)local_60 & 0xff000000000000) >> 0x28 |\n                                ((ulong)local_60 & 0xff0000000000) >> 0x18 |\n                                ((ulong)local_60 & 0xff00000000) >> 8 |\n                                ((ulong)local_60 & 0xff000000) << 8 |\n                                ((ulong)local_60 & 0xff0000) << 0x18 |\n                                ((ulong)local_60 & 0xff00) << 0x28 | (long)local_60 << 0x38);\n          }\n          local_70 = local_70 + 2;\nLAB_00302d40:\n          local_48 = FUN_00301dc0(*param_1,pbVar15,&local_60);\n          puStack_50 = local_60;\njoined_r0x00302748:\n          if ((uVar2 != 0x31) && (uVar2 < 0x32)) {\nLAB_00302e3e:\n            if ((uVar2 != 1) && (uVar2 == 3)) goto LAB_00302e52;\n          }\n          goto LAB_00302750;\n        }\n        if (uVar8 < 8) {\n          if (uVar8 == 4) {\n            pcVar3 = *(code **)(**(long **)(*param_1 + 0x10) + 0x18);\n            if (pcVar3 == FUN_001b8d10) {\n              cVar6 = (**(code **)(**(long **)(*param_1 + 0x10) + 0x1d0))();\n            }\n            else {\n              cVar6 = (*pcVar3)();\n            }\n            local_48 = *local_70;\n            if (cVar6 != '\0') {\n              local_48 = local_48 >> 0x18 | (local_48 & 0xff0000) >> 8 | (local_48 & 0xff00) << 8 |\n                         local_48 << 0x18;\n            }\n            puStack_50 = local_70 + 1;\n            local_70 = (uint *)((long)puStack_50 + (ulong)local_48);\n          }\n          else if (uVar8 < 5) {\n            if (uVar8 == 1) {\n              lVar10 = *param_1;\n              if (*(int *)(lVar10 + 100) == 4) goto LAB_00302e7d;\nLAB_00302a71:\n              pcVar3 = *(code **)(**(long **)(lVar10 + 0x10) + 0x18);\n              if (pcVar3 == FUN_001b8d10) {\n                cVar6 = (**(code **)(**(long **)(lVar10 + 0x10) + 0x1d0))();\n              }\n              else {\n                cVar6 = (*pcVar3)();\n              }\n              local_60 = *(uint **)local_70;\n              if (cVar6 != '\0') {\n                local_60 = (uint *)((ulong)local_60 >> 0x38 |\n                                    ((ulong)local_60 & 0xff000000000000) >> 0x28 |\n                                    ((ulong)local_60 & 0xff0000000000) >> 0x18 |\n                                    ((ulong)local_60 & 0xff00000000) >> 8 |\n                                    ((ulong)local_60 & 0xff000000) << 8 |\n                                    ((ulong)local_60 & 0xff0000) << 0x18 |\n                                    ((ulong)local_60 & 0xff00) << 0x28 | (long)local_60 << 0x38);\n              }\n              local_70 = local_70 + 2;\n              goto LAB_00302abe;\n            }\n            if (uVar8 != 3) {\n              return 0;\n            }\n            pcVar3 = *(code **)(**(long **)(*param_1 + 0x10) + 0x18);\n            if (pcVar3 == FUN_001b8d10) {\n              cVar6 = (**(code **)(**(long **)(*param_1 + 0x10) + 0x1d0))();\n            }\n            else {\n              cVar6 = (*pcVar3)();\n            }\n            uVar5 = (ushort)*local_70;\n            if (cVar6 != '\0') {\n              uVar5 = CONCAT11((byte)*local_70,*(byte *)((long)local_70 + 1));\n            }\n            local_48 = (uint)uVar5;\n            puStack_50 = (uint *)((long)local_70 + 2);\n            local_70 = (uint *)((long)puStack_50 + (ulong)local_48);\n          }\n          else {\n            if (uVar8 != 5) {\n              if (uVar8 != 6) {\n                return 0;\n              }\n              pcVar3 = *(code **)(**(long **)(*param_1 + 0x10) + 0x18);\n              if (pcVar3 == FUN_001b8d10) {\n                cVar6 = (**(code **)(**(long **)(*param_1 + 0x10) + 0x1d0))();\n              }\n              else {\n                cVar6 = (*pcVar3)();\n              }\n              uVar9 = *local_70;\n              if (cVar6 != '\0') {\n                uVar9 = uVar9 >> 0x18 | (uVar9 & 0xff0000) >> 8 | (uVar9 & 0xff00) << 8 |\n                        uVar9 << 0x18;\n              }\n              local_60 = (uint *)(ulong)uVar9;\n              local_70 = local_70 + 1;\n              goto LAB_00302d40;\n            }\n            pcVar3 = *(code **)(**(long **)(*param_1 + 0x10) + 0x18);\n            if (pcVar3 == FUN_001b8d10) {\n              cVar6 = (**(code **)(**(long **)(*param_1 + 0x10) + 0x1d0))();\n            }\n            else {\n              cVar6 = (*pcVar3)();\n            }\n            uVar5 = (ushort)*local_70;\n            if (cVar6 != '\0') {\n              uVar5 = CONCAT11((byte)*local_70,*(byte *)((long)local_70 + 1));\n            }\n            local_70 = (uint *)((long)local_70 + 2);\n            puStack_50 = (uint *)(ulong)uVar5;\n          }\n          goto joined_r0x00302748;\n        }\n        if (uVar8 == 10) {\n          puStack_50 = (uint *)((long)local_70 + 1);\n          uVar9 = *local_70;\n          local_70 = (uint *)((long)puStack_50 + (ulong)(byte)uVar9);\n          local_48 = (uint)(byte)uVar9;\n          goto joined_r0x00302748;\n        }\n        if (uVar8 < 0xb) {\n          if (uVar8 != 8) {\n            if (uVar8 != 9) {\n              return 0;\n            }\n            goto LAB_00302a09;\n          }\n          puStack_50 = local_70;\n          local_68 = strlen((char *)local_70);\n          local_70 = (uint *)((long)puVar11 + local_68 + 1);\n          if (uVar2 == 0x31) goto LAB_00302750;\n          if (0x31 < uVar2) {\n            if ((uVar2 != 0x6e) && (uVar2 != 0x2007)) goto LAB_00302750;\n            goto LAB_003029eb;\n          }\n          if ((uVar2 == 1) || (uVar2 != 3)) goto LAB_00302750;\n          goto LAB_003029c7;\n        }\n        if (uVar8 < 0xd) {\n          uVar9 = *local_70;\n          local_70 = (uint *)((long)local_70 + 1);\n          puStack_50 = (uint *)(ulong)(byte)uVar9;\n          goto LAB_00302f92;\n        }\n        bVar1 = (byte)*local_70;\n        puVar11 = (uint *)((long)local_70 + 1);\n        if ((char)bVar1 < '\0') {\n          puStack_50 = (uint *)FUN_00211340(puVar11,&local_68);\n          puVar11 = (uint *)(local_68 + (long)local_70);\n        }\n        else {\n          local_68 = 1;\n          puStack_50 = (uint *)(ulong)bVar1;\n          if ((bVar1 & 0x40) != 0) {\n            puStack_50 = (uint *)((ulong)bVar1 | 0xffffffffffffff80);\n          }\n        }\n        local_70 = puVar11;\n        if ((uVar2 == 0x31) || (uVar2 < 0x32)) goto LAB_00302750;\n        if ((uVar2 == 0x6e) || (uVar2 == 0x2007)) goto LAB_00302fbe;\n        puVar16 = (undefined8 *)param_1[8];\n        if (puVar16 == (undefined8 *)param_1[9]) goto LAB_003028c0;\nLAB_0030275e:\n        *puVar16 = CONCAT44(uStack_54,local_58);\n        puVar16[1] = puStack_50;\n        puVar16[2] = CONCAT44(uStack_44,local_48);\n        param_1[8] = (long)(puVar16 + 3);\n      }\n      lVar20 = lVar20 + 8;\n      lVar10 = param_1[6];\n    } while (lVar20 != (ulong)(iVar13 - 1) * 8 + 8);\n  }" else (compound_statement "{\n    if (iVar13 == 0) goto LAB_00302797;\nLAB_00302642:\n    lVar20 = 0;\n    do {\n      puVar11 = (uint *)(*(long *)(lVar10 + 8) + lVar20);\n      uVar8 = puVar11[1];\n      uVar2 = *puVar11;\n      if (uVar8 == 0x16) {\n        bVar1 = (byte)*local_70;\n        uVar8 = (uint)bVar1;\n        if ((char)bVar1 < '\0') {\n          uVar8 = FUN_002112d0((uint *)((long)local_70 + 1),&local_68,bVar1);\n          local_70 = (uint *)(local_68 + (long)local_70);\n        }\n        else {\n          local_68 = 1;\n          local_70 = (uint *)((long)local_70 + 1);\n        }\n      }\n      puVar11 = local_70;\n      pbVar15 = (byte *)((long)local_70 + (param_1[2] - lVar12));\n      local_48 = 0;\n      local_58 = uVar2;\n      uStack_54 = uVar8;\n      if (uVar8 == 0xe) {\n        lVar10 = *param_1;\n        if (*(int *)(lVar10 + 0x60) == 4) {\n          uVar8 = FUN_00305610(lVar10,&local_70);\n          local_60 = (uint *)(ulong)uVar8;\n        }\n        else {\n          pcVar3 = *(code **)(**(long **)(lVar10 + 0x10) + 0x18);\n          if (pcVar3 == FUN_001b8d10) {\n            cVar6 = (**(code **)(**(long **)(lVar10 + 0x10) + 0x1d0))();\n          }\n          else {\n            cVar6 = (*pcVar3)();\n          }\n          local_60 = *(uint **)local_70;\n          if (cVar6 != '\0') {\n            local_60 = (uint *)((ulong)local_60 >> 0x38 |\n                                ((ulong)local_60 & 0xff000000000000) >> 0x28 |\n                                ((ulong)local_60 & 0xff0000000000) >> 0x18 |\n                                ((ulong)local_60 & 0xff00000000) >> 8 |\n                                ((ulong)local_60 & 0xff000000) << 8 |\n                                ((ulong)local_60 & 0xff0000) << 0x18 |\n                                ((ulong)local_60 & 0xff00) << 0x28 | (long)local_60 << 0x38);\n          }\n          local_70 = local_70 + 2;\n        }\n        local_48 = FUN_00301dc0(*param_1,pbVar15,&local_60);\n        puStack_50 = local_60;\n        if (uVar2 != 0x31) {\n          if (uVar2 < 0x32) {\n            if ((uVar2 != 1) && (uVar2 == 3)) {\nLAB_00302f64:\n              *(uint *)(param_1 + 0xf) = local_48;\n              param_1[0xc] = (long)puStack_50;\n            }\n          }\n          else if ((uVar2 == 0x6e) || (uVar2 == 0x2007)) {\nLAB_00302fd0:\n            *(uint *)(param_1 + 0xf) = local_48;\n            param_1[0xe] = (long)puStack_50;\n          }\n        }\nLAB_00302750:\n        puVar16 = (undefined8 *)param_1[8];\n        if (puVar16 != (undefined8 *)param_1[9]) goto LAB_0030275e;\nLAB_003028c0:\n        FUN_00305860(param_1 + 7,puVar16,&local_58);\n      }\n      else {\n        if (0xe < uVar8) {\n          if (uVar8 == 0x15) {\n            bVar1 = (byte)*local_70;\n            if ((char)bVar1 < '\0') {\n              puStack_50 = (uint *)FUN_002112d0((uint *)((long)local_70 + 1),&local_68,bVar1);\n              local_70 = (uint *)(local_68 + (long)local_70);\n            }\n            else {\n              local_68 = 1;\n              local_70 = (uint *)((long)local_70 + 1);\n              puStack_50 = (uint *)(ulong)bVar1;\n            }\njoined_r0x00303052:\n            if (uVar2 != 0x31) {\n              if (uVar2 < 0x32) {\nLAB_00302c20:\n                if ((uVar2 == 1) && (local_48 == 0)) {\n                  param_1[5] = (long)puStack_50;\n                }\n                goto LAB_00302750;\n              }\n              if ((uVar2 != 0x6e) && (uVar2 != 0x2007)) {\njoined_r0x00302ce3:\n                if (uVar2 == 0x47) {\n                  param_1[0x10] = (long)puStack_50;\n                }\n                goto LAB_00302750;\n              }\nLAB_00302fb5:\n              if (uVar8 == 8) {\nLAB_003029eb:\n                param_1[0xd] = (long)puStack_50;\n              }\n              else {\nLAB_00302fbe:\n                if (uVar8 == 0xe) goto LAB_00302fd0;\n              }\n              goto LAB_00302750;\n            }\n          }\n          else {\n            if (0x15 < uVar8) {\n              if (uVar8 != 0x19) {\n                if (uVar8 < 0x1a) {\n                  if (uVar8 == 0x17) {\n                    lVar10 = *param_1;\n                    if (*(int *)(lVar10 + 0x60) == 4) {\n                      uVar9 = FUN_00305610(lVar10,&local_70);\n                      local_60 = (uint *)(ulong)uVar9;\n                    }\n                    else {\n                      plVar17 = *(long **)(lVar10 + 0x10);\nLAB_00302fe7:\n                      pcVar3 = *(code **)(*plVar17 + 0x18);\n                      if (pcVar3 == FUN_001b8d10) {\n                        cVar6 = (**(code **)(*plVar17 + 0x1d0))();\n                      }\n                      else {\n                        cVar6 = (*pcVar3)();\n                      }\n                      local_60 = *(uint **)local_70;\n                      if (cVar6 != '\0') {\n                        local_60 = (uint *)((ulong)local_60 >> 0x38 |\n                                            ((ulong)local_60 & 0xff000000000000) >> 0x28 |\n                                            ((ulong)local_60 & 0xff0000000000) >> 0x18 |\n                                            ((ulong)local_60 & 0xff00000000) >> 8 |\n                                            ((ulong)local_60 & 0xff000000) << 8 |\n                                            ((ulong)local_60 & 0xff0000) << 0x18 |\n                                            ((ulong)local_60 & 0xff00) << 0x28 |\n                                           (long)local_60 << 0x38);\n                      }\n                      local_70 = local_70 + 2;\n                    }\nLAB_00303035:\n                    local_48 = FUN_00301dc0(*param_1,pbVar15,&local_60);\n                    puStack_50 = local_60;\n                    goto joined_r0x00303052;\n                  }\n                  if (uVar8 != 0x18) {\n                    return 0;\n                  }\nLAB_00302a09:\n                  bVar1 = (byte)*local_70;\n                  uVar9 = (uint)bVar1;\n                  puVar11 = (uint *)((long)local_70 + 1);\n                  if ((char)bVar1 < '\0') {\n                    uVar9 = FUN_002112d0(puVar11,&local_68,bVar1);\n                    puVar11 = (uint *)((long)local_70 + local_68);\n                  }\n                  else {\n                    local_68 = 1;\n                  }\n                  local_70 = (uint *)((long)local_70 + uVar9 + local_68);\n                  puStack_50 = puVar11;\n                  local_48 = uVar9;\n                }\n                else {\n                  if (uVar8 == 0x20) {\n                    pcVar3 = *(code **)(**(long **)(*param_1 + 0x10) + 0x18);\n                    if (pcVar3 == FUN_001b8d10) {\n                      cVar6 = (**(code **)(**(long **)(*param_1 + 0x10) + 0x1d0))();\n                    }\n                    else {\n                      cVar6 = (*pcVar3)();\n                    }\n                    puStack_50 = *(uint **)local_70;\n                    if (cVar6 != '\0') {\n                      puStack_50 = (uint *)((ulong)puStack_50 >> 0x38 |\n                                            ((ulong)puStack_50 & 0xff000000000000) >> 0x28 |\n                                            ((ulong)puStack_50 & 0xff0000000000) >> 0x18 |\n                                            ((ulong)puStack_50 & 0xff00000000) >> 8 |\n                                            ((ulong)puStack_50 & 0xff000000) << 8 |\n                                            ((ulong)puStack_50 & 0xff0000) << 0x18 |\n                                            ((ulong)puStack_50 & 0xff00) << 0x28 |\n                                           (long)puStack_50 << 0x38);\n                    }\n                    local_70 = local_70 + 2;\n                    goto LAB_00302ea9;\n                  }\n                  if (uVar8 < 0x20) {\n                    return 0;\n                  }\n                  if (1 < uVar8 - 0x1f01) {\n                    return 0;\n                  }\nLAB_00302bcd:\n                  bVar1 = (byte)*local_70;\n                  if ((char)bVar1 < '\0') {\n                    puStack_50 = (uint *)FUN_002112d0((uint *)((long)local_70 + 1),&local_68,bVar1);\n                    local_70 = (uint *)(local_68 + (long)local_70);\n                  }\n                  else {\n                    local_68 = 1;\n                    local_70 = (uint *)((long)local_70 + 1);\n                    puStack_50 = (uint *)(ulong)bVar1;\n                  }\n                }\nLAB_00302f92:\n                if (uVar2 == 0x31) goto LAB_00302750;\n                if (0x31 < uVar2) {\n                  if ((uVar2 == 0x6e) || (uVar2 == 0x2007)) goto LAB_00302fb5;\n                  goto LAB_00302750;\n                }\n                goto LAB_00302e3e;\n              }\n              puStack_50 = (uint *)0x1;\nLAB_00302ea9:\n              if (((uVar2 == 0x31) || (0x31 < uVar2)) || (uVar2 != 3)) goto LAB_00302750;\nLAB_00302e52:\n              if (uVar8 == 8) {\nLAB_003029c7:\n                param_1[0xb] = (long)puStack_50;\n              }\n              else if (uVar8 == 0xe) goto LAB_00302f64;\n              goto LAB_00302750;\n            }\n            if (uVar8 != 0x11) {\n              if (0x11 < uVar8) {\n                if (uVar8 == 0x13) {\n                  uVar9 = FUN_00305610(*param_1,&local_70);\n                  local_60 = (uint *)(ulong)uVar9;\n                  goto LAB_00303035;\n                }\n                if (0x13 < uVar8) {\n                  plVar17 = *(long **)(*param_1 + 0x10);\n                  goto LAB_00302fe7;\n                }\n                pcVar3 = *(code **)(**(long **)(*param_1 + 0x10) + 0x18);\n                if (pcVar3 == FUN_001b8d10) {\n                  cVar6 = (**(code **)(**(long **)(*param_1 + 0x10) + 0x1d0))();\n                }\n                else {\n                  cVar6 = (*pcVar3)();\n                }\n                uVar5 = (ushort)*local_70;\n                if (cVar6 != '\0') {\n                  uVar5 = CONCAT11((byte)*local_70,*(byte *)((long)local_70 + 1));\n                }\n                local_70 = (uint *)((long)local_70 + 2);\n                puStack_50 = (uint *)(ulong)uVar5;\n                goto joined_r0x00303052;\n              }\n              if (uVar8 == 0xf) goto LAB_00302bcd;\n              if (uVar8 != 0x10) {\n                return 0;\n              }\n              lVar10 = *param_1;\n              iVar7 = *(int *)(lVar10 + 100);\n              if (2 < *(uint *)(lVar10 + 0x68)) {\n                iVar7 = *(int *)(lVar10 + 0x60);\n              }\n              if (iVar7 != 4) goto LAB_00302a71;\nLAB_00302e7d:\n              uVar8 = FUN_00305610(lVar10,&local_70);\n              local_60 = (uint *)(ulong)uVar8;\nLAB_00302abe:\n              local_48 = FUN_00301dc0(*param_1,pbVar15,&local_60);\n              puStack_50 = local_60;\n              if (uVar2 == 0x31) goto LAB_00302965;\n              if (0x31 < uVar2) goto joined_r0x00302ccc;\n              goto LAB_00302c20;\n            }\n            puVar11 = (uint *)((long)local_70 + 1);\n            puStack_50 = (uint *)(ulong)(byte)*local_70;\n            local_70 = puVar11;\n            if (uVar2 != 0x31) {\n              if (uVar2 < 0x32) {\n                if (uVar2 == 1) {\n                  param_1[5] = (long)puStack_50;\n                }\n                goto LAB_00302750;\n              }\njoined_r0x00302ccc:\n              if ((uVar2 == 0x6e) || (uVar2 == 0x2007)) goto LAB_00302750;\n              goto joined_r0x00302ce3;\n            }\n          }\nLAB_00302965:\n          param_1[0x11] = (long)puStack_50;\n          goto LAB_00302750;\n        }\n        if (uVar8 == 7) {\n          pcVar3 = *(code **)(**(long **)(*param_1 + 0x10) + 0x18);\n          if (pcVar3 == FUN_001b8d10) {\n            cVar6 = (**(code **)(**(long **)(*param_1 + 0x10) + 0x1d0))();\n          }\n          else {\n            cVar6 = (*pcVar3)();\n          }\n          local_60 = *(uint **)local_70;\n          if (cVar6 != '\0') {\n            local_60 = (uint *)((ulong)local_60 >> 0x38 |\n                                ((ulong)local_60 & 0xff000000000000) >> 0x28 |\n                                ((ulong)local_60 & 0xff0000000000) >> 0x18 |\n                                ((ulong)local_60 & 0xff00000000) >> 8 |\n                                ((ulong)local_60 & 0xff000000) << 8 |\n                                ((ulong)local_60 & 0xff0000) << 0x18 |\n                                ((ulong)local_60 & 0xff00) << 0x28 | (long)local_60 << 0x38);\n          }\n          local_70 = local_70 + 2;\nLAB_00302d40:\n          local_48 = FUN_00301dc0(*param_1,pbVar15,&local_60);\n          puStack_50 = local_60;\njoined_r0x00302748:\n          if ((uVar2 != 0x31) && (uVar2 < 0x32)) {\nLAB_00302e3e:\n            if ((uVar2 != 1) && (uVar2 == 3)) goto LAB_00302e52;\n          }\n          goto LAB_00302750;\n        }\n        if (uVar8 < 8) {\n          if (uVar8 == 4) {\n            pcVar3 = *(code **)(**(long **)(*param_1 + 0x10) + 0x18);\n            if (pcVar3 == FUN_001b8d10) {\n              cVar6 = (**(code **)(**(long **)(*param_1 + 0x10) + 0x1d0))();\n            }\n            else {\n              cVar6 = (*pcVar3)();\n            }\n            local_48 = *local_70;\n            if (cVar6 != '\0') {\n              local_48 = local_48 >> 0x18 | (local_48 & 0xff0000) >> 8 | (local_48 & 0xff00) << 8 |\n                         local_48 << 0x18;\n            }\n            puStack_50 = local_70 + 1;\n            local_70 = (uint *)((long)puStack_50 + (ulong)local_48);\n          }\n          else if (uVar8 < 5) {\n            if (uVar8 == 1) {\n              lVar10 = *param_1;\n              if (*(int *)(lVar10 + 100) == 4) goto LAB_00302e7d;\nLAB_00302a71:\n              pcVar3 = *(code **)(**(long **)(lVar10 + 0x10) + 0x18);\n              if (pcVar3 == FUN_001b8d10) {\n                cVar6 = (**(code **)(**(long **)(lVar10 + 0x10) + 0x1d0))();\n              }\n              else {\n                cVar6 = (*pcVar3)();\n              }\n              local_60 = *(uint **)local_70;\n              if (cVar6 != '\0') {\n                local_60 = (uint *)((ulong)local_60 >> 0x38 |\n                                    ((ulong)local_60 & 0xff000000000000) >> 0x28 |\n                                    ((ulong)local_60 & 0xff0000000000) >> 0x18 |\n                                    ((ulong)local_60 & 0xff00000000) >> 8 |\n                                    ((ulong)local_60 & 0xff000000) << 8 |\n                                    ((ulong)local_60 & 0xff0000) << 0x18 |\n                                    ((ulong)local_60 & 0xff00) << 0x28 | (long)local_60 << 0x38);\n              }\n              local_70 = local_70 + 2;\n              goto LAB_00302abe;\n            }\n            if (uVar8 != 3) {\n              return 0;\n            }\n            pcVar3 = *(code **)(**(long **)(*param_1 + 0x10) + 0x18);\n            if (pcVar3 == FUN_001b8d10) {\n              cVar6 = (**(code **)(**(long **)(*param_1 + 0x10) + 0x1d0))();\n            }\n            else {\n              cVar6 = (*pcVar3)();\n            }\n            uVar5 = (ushort)*local_70;\n            if (cVar6 != '\0') {\n              uVar5 = CONCAT11((byte)*local_70,*(byte *)((long)local_70 + 1));\n            }\n            local_48 = (uint)uVar5;\n            puStack_50 = (uint *)((long)local_70 + 2);\n            local_70 = (uint *)((long)puStack_50 + (ulong)local_48);\n          }\n          else {\n            if (uVar8 != 5) {\n              if (uVar8 != 6) {\n                return 0;\n              }\n              pcVar3 = *(code **)(**(long **)(*param_1 + 0x10) + 0x18);\n              if (pcVar3 == FUN_001b8d10) {\n                cVar6 = (**(code **)(**(long **)(*param_1 + 0x10) + 0x1d0))();\n              }\n              else {\n                cVar6 = (*pcVar3)();\n              }\n              uVar9 = *local_70;\n              if (cVar6 != '\0') {\n                uVar9 = uVar9 >> 0x18 | (uVar9 & 0xff0000) >> 8 | (uVar9 & 0xff00) << 8 |\n                        uVar9 << 0x18;\n              }\n              local_60 = (uint *)(ulong)uVar9;\n              local_70 = local_70 + 1;\n              goto LAB_00302d40;\n            }\n            pcVar3 = *(code **)(**(long **)(*param_1 + 0x10) + 0x18);\n            if (pcVar3 == FUN_001b8d10) {\n              cVar6 = (**(code **)(**(long **)(*param_1 + 0x10) + 0x1d0))();\n            }\n            else {\n              cVar6 = (*pcVar3)();\n            }\n            uVar5 = (ushort)*local_70;\n            if (cVar6 != '\0') {\n              uVar5 = CONCAT11((byte)*local_70,*(byte *)((long)local_70 + 1));\n            }\n            local_70 = (uint *)((long)local_70 + 2);\n            puStack_50 = (uint *)(ulong)uVar5;\n          }\n          goto joined_r0x00302748;\n        }\n        if (uVar8 == 10) {\n          puStack_50 = (uint *)((long)local_70 + 1);\n          uVar9 = *local_70;\n          local_70 = (uint *)((long)puStack_50 + (ulong)(byte)uVar9);\n          local_48 = (uint)(byte)uVar9;\n          goto joined_r0x00302748;\n        }\n        if (uVar8 < 0xb) {\n          if (uVar8 != 8) {\n            if (uVar8 != 9) {\n              return 0;\n            }\n            goto LAB_00302a09;\n          }\n          puStack_50 = local_70;\n          local_68 = strlen((char *)local_70);\n          local_70 = (uint *)((long)puVar11 + local_68 + 1);\n          if (uVar2 == 0x31) goto LAB_00302750;\n          if (0x31 < uVar2) {\n            if ((uVar2 != 0x6e) && (uVar2 != 0x2007)) goto LAB_00302750;\n            goto LAB_003029eb;\n          }\n          if ((uVar2 == 1) || (uVar2 != 3)) goto LAB_00302750;\n          goto LAB_003029c7;\n        }\n        if (uVar8 < 0xd) {\n          uVar9 = *local_70;\n          local_70 = (uint *)((long)local_70 + 1);\n          puStack_50 = (uint *)(ulong)(byte)uVar9;\n          goto LAB_00302f92;\n        }\n        bVar1 = (byte)*local_70;\n        puVar11 = (uint *)((long)local_70 + 1);\n        if ((char)bVar1 < '\0') {\n          puStack_50 = (uint *)FUN_00211340(puVar11,&local_68);\n          puVar11 = (uint *)(local_68 + (long)local_70);\n        }\n        else {\n          local_68 = 1;\n          puStack_50 = (uint *)(ulong)bVar1;\n          if ((bVar1 & 0x40) != 0) {\n            puStack_50 = (uint *)((ulong)bVar1 | 0xffffffffffffff80);\n          }\n        }\n        local_70 = puVar11;\n        if ((uVar2 == 0x31) || (uVar2 < 0x32)) goto LAB_00302750;\n        if ((uVar2 == 0x6e) || (uVar2 == 0x2007)) goto LAB_00302fbe;\n        puVar16 = (undefined8 *)param_1[8];\n        if (puVar16 == (undefined8 *)param_1[9]) goto LAB_003028c0;\nLAB_0030275e:\n        *puVar16 = CONCAT44(uStack_54,local_58);\n        puVar16[1] = puStack_50;\n        puVar16[2] = CONCAT44(uStack_44,local_48);\n        param_1[8] = (long)(puVar16 + 3);\n      }\n      lVar20 = lVar20 + 8;\n      lVar10 = param_1[6];\n    } while (lVar20 != (ulong)(iVar13 - 1) * 8 + 8);\n  }" { (if_statement "if (iVar13 == 0) goto LAB_00302797;" if (parenthesized_expression "(iVar13 == 0)" ( (binary_expression "iVar13 == 0" identifier == number_literal) )) (goto_statement "goto LAB_00302797;" goto statement_identifier ;)) (labeled_statement "LAB_00302642:\n    lVar20 = 0;" statement_identifier : (expression_statement "lVar20 = 0;" (assignment_expression "lVar20 = 0" identifier = number_literal) ;)) (do_statement "do {\n      puVar11 = (uint *)(*(long *)(lVar10 + 8) + lVar20);\n      uVar8 = puVar11[1];\n      uVar2 = *puVar11;\n      if (uVar8 == 0x16) {\n        bVar1 = (byte)*local_70;\n        uVar8 = (uint)bVar1;\n        if ((char)bVar1 < '\0') {\n          uVar8 = FUN_002112d0((uint *)((long)local_70 + 1),&local_68,bVar1);\n          local_70 = (uint *)(local_68 + (long)local_70);\n        }\n        else {\n          local_68 = 1;\n          local_70 = (uint *)((long)local_70 + 1);\n        }\n      }\n      puVar11 = local_70;\n      pbVar15 = (byte *)((long)local_70 + (param_1[2] - lVar12));\n      local_48 = 0;\n      local_58 = uVar2;\n      uStack_54 = uVar8;\n      if (uVar8 == 0xe) {\n        lVar10 = *param_1;\n        if (*(int *)(lVar10 + 0x60) == 4) {\n          uVar8 = FUN_00305610(lVar10,&local_70);\n          local_60 = (uint *)(ulong)uVar8;\n        }\n        else {\n          pcVar3 = *(code **)(**(long **)(lVar10 + 0x10) + 0x18);\n          if (pcVar3 == FUN_001b8d10) {\n            cVar6 = (**(code **)(**(long **)(lVar10 + 0x10) + 0x1d0))();\n          }\n          else {\n            cVar6 = (*pcVar3)();\n          }\n          local_60 = *(uint **)local_70;\n          if (cVar6 != '\0') {\n            local_60 = (uint *)((ulong)local_60 >> 0x38 |\n                                ((ulong)local_60 & 0xff000000000000) >> 0x28 |\n                                ((ulong)local_60 & 0xff0000000000) >> 0x18 |\n                                ((ulong)local_60 & 0xff00000000) >> 8 |\n                                ((ulong)local_60 & 0xff000000) << 8 |\n                                ((ulong)local_60 & 0xff0000) << 0x18 |\n                                ((ulong)local_60 & 0xff00) << 0x28 | (long)local_60 << 0x38);\n          }\n          local_70 = local_70 + 2;\n        }\n        local_48 = FUN_00301dc0(*param_1,pbVar15,&local_60);\n        puStack_50 = local_60;\n        if (uVar2 != 0x31) {\n          if (uVar2 < 0x32) {\n            if ((uVar2 != 1) && (uVar2 == 3)) {\nLAB_00302f64:\n              *(uint *)(param_1 + 0xf) = local_48;\n              param_1[0xc] = (long)puStack_50;\n            }\n          }\n          else if ((uVar2 == 0x6e) || (uVar2 == 0x2007)) {\nLAB_00302fd0:\n            *(uint *)(param_1 + 0xf) = local_48;\n            param_1[0xe] = (long)puStack_50;\n          }\n        }\nLAB_00302750:\n        puVar16 = (undefined8 *)param_1[8];\n        if (puVar16 != (undefined8 *)param_1[9]) goto LAB_0030275e;\nLAB_003028c0:\n        FUN_00305860(param_1 + 7,puVar16,&local_58);\n      }\n      else {\n        if (0xe < uVar8) {\n          if (uVar8 == 0x15) {\n            bVar1 = (byte)*local_70;\n            if ((char)bVar1 < '\0') {\n              puStack_50 = (uint *)FUN_002112d0((uint *)((long)local_70 + 1),&local_68,bVar1);\n              local_70 = (uint *)(local_68 + (long)local_70);\n            }\n            else {\n              local_68 = 1;\n              local_70 = (uint *)((long)local_70 + 1);\n              puStack_50 = (uint *)(ulong)bVar1;\n            }\njoined_r0x00303052:\n            if (uVar2 != 0x31) {\n              if (uVar2 < 0x32) {\nLAB_00302c20:\n                if ((uVar2 == 1) && (local_48 == 0)) {\n                  param_1[5] = (long)puStack_50;\n                }\n                goto LAB_00302750;\n              }\n              if ((uVar2 != 0x6e) && (uVar2 != 0x2007)) {\njoined_r0x00302ce3:\n                if (uVar2 == 0x47) {\n                  param_1[0x10] = (long)puStack_50;\n                }\n                goto LAB_00302750;\n              }\nLAB_00302fb5:\n              if (uVar8 == 8) {\nLAB_003029eb:\n                param_1[0xd] = (long)puStack_50;\n              }\n              else {\nLAB_00302fbe:\n                if (uVar8 == 0xe) goto LAB_00302fd0;\n              }\n              goto LAB_00302750;\n            }\n          }\n          else {\n            if (0x15 < uVar8) {\n              if (uVar8 != 0x19) {\n                if (uVar8 < 0x1a) {\n                  if (uVar8 == 0x17) {\n                    lVar10 = *param_1;\n                    if (*(int *)(lVar10 + 0x60) == 4) {\n                      uVar9 = FUN_00305610(lVar10,&local_70);\n                      local_60 = (uint *)(ulong)uVar9;\n                    }\n                    else {\n                      plVar17 = *(long **)(lVar10 + 0x10);\nLAB_00302fe7:\n                      pcVar3 = *(code **)(*plVar17 + 0x18);\n                      if (pcVar3 == FUN_001b8d10) {\n                        cVar6 = (**(code **)(*plVar17 + 0x1d0))();\n                      }\n                      else {\n                        cVar6 = (*pcVar3)();\n                      }\n                      local_60 = *(uint **)local_70;\n                      if (cVar6 != '\0') {\n                        local_60 = (uint *)((ulong)local_60 >> 0x38 |\n                                            ((ulong)local_60 & 0xff000000000000) >> 0x28 |\n                                            ((ulong)local_60 & 0xff0000000000) >> 0x18 |\n                                            ((ulong)local_60 & 0xff00000000) >> 8 |\n                                            ((ulong)local_60 & 0xff000000) << 8 |\n                                            ((ulong)local_60 & 0xff0000) << 0x18 |\n                                            ((ulong)local_60 & 0xff00) << 0x28 |\n                                           (long)local_60 << 0x38);\n                      }\n                      local_70 = local_70 + 2;\n                    }\nLAB_00303035:\n                    local_48 = FUN_00301dc0(*param_1,pbVar15,&local_60);\n                    puStack_50 = local_60;\n                    goto joined_r0x00303052;\n                  }\n                  if (uVar8 != 0x18) {\n                    return 0;\n                  }\nLAB_00302a09:\n                  bVar1 = (byte)*local_70;\n                  uVar9 = (uint)bVar1;\n                  puVar11 = (uint *)((long)local_70 + 1);\n                  if ((char)bVar1 < '\0') {\n                    uVar9 = FUN_002112d0(puVar11,&local_68,bVar1);\n                    puVar11 = (uint *)((long)local_70 + local_68);\n                  }\n                  else {\n                    local_68 = 1;\n                  }\n                  local_70 = (uint *)((long)local_70 + uVar9 + local_68);\n                  puStack_50 = puVar11;\n                  local_48 = uVar9;\n                }\n                else {\n                  if (uVar8 == 0x20) {\n                    pcVar3 = *(code **)(**(long **)(*param_1 + 0x10) + 0x18);\n                    if (pcVar3 == FUN_001b8d10) {\n                      cVar6 = (**(code **)(**(long **)(*param_1 + 0x10) + 0x1d0))();\n                    }\n                    else {\n                      cVar6 = (*pcVar3)();\n                    }\n                    puStack_50 = *(uint **)local_70;\n                    if (cVar6 != '\0') {\n                      puStack_50 = (uint *)((ulong)puStack_50 >> 0x38 |\n                                            ((ulong)puStack_50 & 0xff000000000000) >> 0x28 |\n                                            ((ulong)puStack_50 & 0xff0000000000) >> 0x18 |\n                                            ((ulong)puStack_50 & 0xff00000000) >> 8 |\n                                            ((ulong)puStack_50 & 0xff000000) << 8 |\n                                            ((ulong)puStack_50 & 0xff0000) << 0x18 |\n                                            ((ulong)puStack_50 & 0xff00) << 0x28 |\n                                           (long)puStack_50 << 0x38);\n                    }\n                    local_70 = local_70 + 2;\n                    goto LAB_00302ea9;\n                  }\n                  if (uVar8 < 0x20) {\n                    return 0;\n                  }\n                  if (1 < uVar8 - 0x1f01) {\n                    return 0;\n                  }\nLAB_00302bcd:\n                  bVar1 = (byte)*local_70;\n                  if ((char)bVar1 < '\0') {\n                    puStack_50 = (uint *)FUN_002112d0((uint *)((long)local_70 + 1),&local_68,bVar1);\n                    local_70 = (uint *)(local_68 + (long)local_70);\n                  }\n                  else {\n                    local_68 = 1;\n                    local_70 = (uint *)((long)local_70 + 1);\n                    puStack_50 = (uint *)(ulong)bVar1;\n                  }\n                }\nLAB_00302f92:\n                if (uVar2 == 0x31) goto LAB_00302750;\n                if (0x31 < uVar2) {\n                  if ((uVar2 == 0x6e) || (uVar2 == 0x2007)) goto LAB_00302fb5;\n                  goto LAB_00302750;\n                }\n                goto LAB_00302e3e;\n              }\n              puStack_50 = (uint *)0x1;\nLAB_00302ea9:\n              if (((uVar2 == 0x31) || (0x31 < uVar2)) || (uVar2 != 3)) goto LAB_00302750;\nLAB_00302e52:\n              if (uVar8 == 8) {\nLAB_003029c7:\n                param_1[0xb] = (long)puStack_50;\n              }\n              else if (uVar8 == 0xe) goto LAB_00302f64;\n              goto LAB_00302750;\n            }\n            if (uVar8 != 0x11) {\n              if (0x11 < uVar8) {\n                if (uVar8 == 0x13) {\n                  uVar9 = FUN_00305610(*param_1,&local_70);\n                  local_60 = (uint *)(ulong)uVar9;\n                  goto LAB_00303035;\n                }\n                if (0x13 < uVar8) {\n                  plVar17 = *(long **)(*param_1 + 0x10);\n                  goto LAB_00302fe7;\n                }\n                pcVar3 = *(code **)(**(long **)(*param_1 + 0x10) + 0x18);\n                if (pcVar3 == FUN_001b8d10) {\n                  cVar6 = (**(code **)(**(long **)(*param_1 + 0x10) + 0x1d0))();\n                }\n                else {\n                  cVar6 = (*pcVar3)();\n                }\n                uVar5 = (ushort)*local_70;\n                if (cVar6 != '\0') {\n                  uVar5 = CONCAT11((byte)*local_70,*(byte *)((long)local_70 + 1));\n                }\n                local_70 = (uint *)((long)local_70 + 2);\n                puStack_50 = (uint *)(ulong)uVar5;\n                goto joined_r0x00303052;\n              }\n              if (uVar8 == 0xf) goto LAB_00302bcd;\n              if (uVar8 != 0x10) {\n                return 0;\n              }\n              lVar10 = *param_1;\n              iVar7 = *(int *)(lVar10 + 100);\n              if (2 < *(uint *)(lVar10 + 0x68)) {\n                iVar7 = *(int *)(lVar10 + 0x60);\n              }\n              if (iVar7 != 4) goto LAB_00302a71;\nLAB_00302e7d:\n              uVar8 = FUN_00305610(lVar10,&local_70);\n              local_60 = (uint *)(ulong)uVar8;\nLAB_00302abe:\n              local_48 = FUN_00301dc0(*param_1,pbVar15,&local_60);\n              puStack_50 = local_60;\n              if (uVar2 == 0x31) goto LAB_00302965;\n              if (0x31 < uVar2) goto joined_r0x00302ccc;\n              goto LAB_00302c20;\n            }\n            puVar11 = (uint *)((long)local_70 + 1);\n            puStack_50 = (uint *)(ulong)(byte)*local_70;\n            local_70 = puVar11;\n            if (uVar2 != 0x31) {\n              if (uVar2 < 0x32) {\n                if (uVar2 == 1) {\n                  param_1[5] = (long)puStack_50;\n                }\n                goto LAB_00302750;\n              }\njoined_r0x00302ccc:\n              if ((uVar2 == 0x6e) || (uVar2 == 0x2007)) goto LAB_00302750;\n              goto joined_r0x00302ce3;\n            }\n          }\nLAB_00302965:\n          param_1[0x11] = (long)puStack_50;\n          goto LAB_00302750;\n        }\n        if (uVar8 == 7) {\n          pcVar3 = *(code **)(**(long **)(*param_1 + 0x10) + 0x18);\n          if (pcVar3 == FUN_001b8d10) {\n            cVar6 = (**(code **)(**(long **)(*param_1 + 0x10) + 0x1d0))();\n          }\n          else {\n            cVar6 = (*pcVar3)();\n          }\n          local_60 = *(uint **)local_70;\n          if (cVar6 != '\0') {\n            local_60 = (uint *)((ulong)local_60 >> 0x38 |\n                                ((ulong)local_60 & 0xff000000000000) >> 0x28 |\n                                ((ulong)local_60 & 0xff0000000000) >> 0x18 |\n                                ((ulong)local_60 & 0xff00000000) >> 8 |\n                                ((ulong)local_60 & 0xff000000) << 8 |\n                                ((ulong)local_60 & 0xff0000) << 0x18 |\n                                ((ulong)local_60 & 0xff00) << 0x28 | (long)local_60 << 0x38);\n          }\n          local_70 = local_70 + 2;\nLAB_00302d40:\n          local_48 = FUN_00301dc0(*param_1,pbVar15,&local_60);\n          puStack_50 = local_60;\njoined_r0x00302748:\n          if ((uVar2 != 0x31) && (uVar2 < 0x32)) {\nLAB_00302e3e:\n            if ((uVar2 != 1) && (uVar2 == 3)) goto LAB_00302e52;\n          }\n          goto LAB_00302750;\n        }\n        if (uVar8 < 8) {\n          if (uVar8 == 4) {\n            pcVar3 = *(code **)(**(long **)(*param_1 + 0x10) + 0x18);\n            if (pcVar3 == FUN_001b8d10) {\n              cVar6 = (**(code **)(**(long **)(*param_1 + 0x10) + 0x1d0))();\n            }\n            else {\n              cVar6 = (*pcVar3)();\n            }\n            local_48 = *local_70;\n            if (cVar6 != '\0') {\n              local_48 = local_48 >> 0x18 | (local_48 & 0xff0000) >> 8 | (local_48 & 0xff00) << 8 |\n                         local_48 << 0x18;\n            }\n            puStack_50 = local_70 + 1;\n            local_70 = (uint *)((long)puStack_50 + (ulong)local_48);\n          }\n          else if (uVar8 < 5) {\n            if (uVar8 == 1) {\n              lVar10 = *param_1;\n              if (*(int *)(lVar10 + 100) == 4) goto LAB_00302e7d;\nLAB_00302a71:\n              pcVar3 = *(code **)(**(long **)(lVar10 + 0x10) + 0x18);\n              if (pcVar3 == FUN_001b8d10) {\n                cVar6 = (**(code **)(**(long **)(lVar10 + 0x10) + 0x1d0))();\n              }\n              else {\n                cVar6 = (*pcVar3)();\n              }\n              local_60 = *(uint **)local_70;\n              if (cVar6 != '\0') {\n                local_60 = (uint *)((ulong)local_60 >> 0x38 |\n                                    ((ulong)local_60 & 0xff000000000000) >> 0x28 |\n                                    ((ulong)local_60 & 0xff0000000000) >> 0x18 |\n                                    ((ulong)local_60 & 0xff00000000) >> 8 |\n                                    ((ulong)local_60 & 0xff000000) << 8 |\n                                    ((ulong)local_60 & 0xff0000) << 0x18 |\n                                    ((ulong)local_60 & 0xff00) << 0x28 | (long)local_60 << 0x38);\n              }\n              local_70 = local_70 + 2;\n              goto LAB_00302abe;\n            }\n            if (uVar8 != 3) {\n              return 0;\n            }\n            pcVar3 = *(code **)(**(long **)(*param_1 + 0x10) + 0x18);\n            if (pcVar3 == FUN_001b8d10) {\n              cVar6 = (**(code **)(**(long **)(*param_1 + 0x10) + 0x1d0))();\n            }\n            else {\n              cVar6 = (*pcVar3)();\n            }\n            uVar5 = (ushort)*local_70;\n            if (cVar6 != '\0') {\n              uVar5 = CONCAT11((byte)*local_70,*(byte *)((long)local_70 + 1));\n            }\n            local_48 = (uint)uVar5;\n            puStack_50 = (uint *)((long)local_70 + 2);\n            local_70 = (uint *)((long)puStack_50 + (ulong)local_48);\n          }\n          else {\n            if (uVar8 != 5) {\n              if (uVar8 != 6) {\n                return 0;\n              }\n              pcVar3 = *(code **)(**(long **)(*param_1 + 0x10) + 0x18);\n              if (pcVar3 == FUN_001b8d10) {\n                cVar6 = (**(code **)(**(long **)(*param_1 + 0x10) + 0x1d0))();\n              }\n              else {\n                cVar6 = (*pcVar3)();\n              }\n              uVar9 = *local_70;\n              if (cVar6 != '\0') {\n                uVar9 = uVar9 >> 0x18 | (uVar9 & 0xff0000) >> 8 | (uVar9 & 0xff00) << 8 |\n                        uVar9 << 0x18;\n              }\n              local_60 = (uint *)(ulong)uVar9;\n              local_70 = local_70 + 1;\n              goto LAB_00302d40;\n            }\n            pcVar3 = *(code **)(**(long **)(*param_1 + 0x10) + 0x18);\n            if (pcVar3 == FUN_001b8d10) {\n              cVar6 = (**(code **)(**(long **)(*param_1 + 0x10) + 0x1d0))();\n            }\n            else {\n              cVar6 = (*pcVar3)();\n            }\n            uVar5 = (ushort)*local_70;\n            if (cVar6 != '\0') {\n              uVar5 = CONCAT11((byte)*local_70,*(byte *)((long)local_70 + 1));\n            }\n            local_70 = (uint *)((long)local_70 + 2);\n            puStack_50 = (uint *)(ulong)uVar5;\n          }\n          goto joined_r0x00302748;\n        }\n        if (uVar8 == 10) {\n          puStack_50 = (uint *)((long)local_70 + 1);\n          uVar9 = *local_70;\n          local_70 = (uint *)((long)puStack_50 + (ulong)(byte)uVar9);\n          local_48 = (uint)(byte)uVar9;\n          goto joined_r0x00302748;\n        }\n        if (uVar8 < 0xb) {\n          if (uVar8 != 8) {\n            if (uVar8 != 9) {\n              return 0;\n            }\n            goto LAB_00302a09;\n          }\n          puStack_50 = local_70;\n          local_68 = strlen((char *)local_70);\n          local_70 = (uint *)((long)puVar11 + local_68 + 1);\n          if (uVar2 == 0x31) goto LAB_00302750;\n          if (0x31 < uVar2) {\n            if ((uVar2 != 0x6e) && (uVar2 != 0x2007)) goto LAB_00302750;\n            goto LAB_003029eb;\n          }\n          if ((uVar2 == 1) || (uVar2 != 3)) goto LAB_00302750;\n          goto LAB_003029c7;\n        }\n        if (uVar8 < 0xd) {\n          uVar9 = *local_70;\n          local_70 = (uint *)((long)local_70 + 1);\n          puStack_50 = (uint *)(ulong)(byte)uVar9;\n          goto LAB_00302f92;\n        }\n        bVar1 = (byte)*local_70;\n        puVar11 = (uint *)((long)local_70 + 1);\n        if ((char)bVar1 < '\0') {\n          puStack_50 = (uint *)FUN_00211340(puVar11,&local_68);\n          puVar11 = (uint *)(local_68 + (long)local_70);\n        }\n        else {\n          local_68 = 1;\n          puStack_50 = (uint *)(ulong)bVar1;\n          if ((bVar1 & 0x40) != 0) {\n            puStack_50 = (uint *)((ulong)bVar1 | 0xffffffffffffff80);\n          }\n        }\n        local_70 = puVar11;\n        if ((uVar2 == 0x31) || (uVar2 < 0x32)) goto LAB_00302750;\n        if ((uVar2 == 0x6e) || (uVar2 == 0x2007)) goto LAB_00302fbe;\n        puVar16 = (undefined8 *)param_1[8];\n        if (puVar16 == (undefined8 *)param_1[9]) goto LAB_003028c0;\nLAB_0030275e:\n        *puVar16 = CONCAT44(uStack_54,local_58);\n        puVar16[1] = puStack_50;\n        puVar16[2] = CONCAT44(uStack_44,local_48);\n        param_1[8] = (long)(puVar16 + 3);\n      }\n      lVar20 = lVar20 + 8;\n      lVar10 = param_1[6];\n    } while (lVar20 != (ulong)(iVar13 - 1) * 8 + 8);" do (compound_statement "{\n      puVar11 = (uint *)(*(long *)(lVar10 + 8) + lVar20);\n      uVar8 = puVar11[1];\n      uVar2 = *puVar11;\n      if (uVar8 == 0x16) {\n        bVar1 = (byte)*local_70;\n        uVar8 = (uint)bVar1;\n        if ((char)bVar1 < '\0') {\n          uVar8 = FUN_002112d0((uint *)((long)local_70 + 1),&local_68,bVar1);\n          local_70 = (uint *)(local_68 + (long)local_70);\n        }\n        else {\n          local_68 = 1;\n          local_70 = (uint *)((long)local_70 + 1);\n        }\n      }\n      puVar11 = local_70;\n      pbVar15 = (byte *)((long)local_70 + (param_1[2] - lVar12));\n      local_48 = 0;\n      local_58 = uVar2;\n      uStack_54 = uVar8;\n      if (uVar8 == 0xe) {\n        lVar10 = *param_1;\n        if (*(int *)(lVar10 + 0x60) == 4) {\n          uVar8 = FUN_00305610(lVar10,&local_70);\n          local_60 = (uint *)(ulong)uVar8;\n        }\n        else {\n          pcVar3 = *(code **)(**(long **)(lVar10 + 0x10) + 0x18);\n          if (pcVar3 == FUN_001b8d10) {\n            cVar6 = (**(code **)(**(long **)(lVar10 + 0x10) + 0x1d0))();\n          }\n          else {\n            cVar6 = (*pcVar3)();\n          }\n          local_60 = *(uint **)local_70;\n          if (cVar6 != '\0') {\n            local_60 = (uint *)((ulong)local_60 >> 0x38 |\n                                ((ulong)local_60 & 0xff000000000000) >> 0x28 |\n                                ((ulong)local_60 & 0xff0000000000) >> 0x18 |\n                                ((ulong)local_60 & 0xff00000000) >> 8 |\n                                ((ulong)local_60 & 0xff000000) << 8 |\n                                ((ulong)local_60 & 0xff0000) << 0x18 |\n                                ((ulong)local_60 & 0xff00) << 0x28 | (long)local_60 << 0x38);\n          }\n          local_70 = local_70 + 2;\n        }\n        local_48 = FUN_00301dc0(*param_1,pbVar15,&local_60);\n        puStack_50 = local_60;\n        if (uVar2 != 0x31) {\n          if (uVar2 < 0x32) {\n            if ((uVar2 != 1) && (uVar2 == 3)) {\nLAB_00302f64:\n              *(uint *)(param_1 + 0xf) = local_48;\n              param_1[0xc] = (long)puStack_50;\n            }\n          }\n          else if ((uVar2 == 0x6e) || (uVar2 == 0x2007)) {\nLAB_00302fd0:\n            *(uint *)(param_1 + 0xf) = local_48;\n            param_1[0xe] = (long)puStack_50;\n          }\n        }\nLAB_00302750:\n        puVar16 = (undefined8 *)param_1[8];\n        if (puVar16 != (undefined8 *)param_1[9]) goto LAB_0030275e;\nLAB_003028c0:\n        FUN_00305860(param_1 + 7,puVar16,&local_58);\n      }\n      else {\n        if (0xe < uVar8) {\n          if (uVar8 == 0x15) {\n            bVar1 = (byte)*local_70;\n            if ((char)bVar1 < '\0') {\n              puStack_50 = (uint *)FUN_002112d0((uint *)((long)local_70 + 1),&local_68,bVar1);\n              local_70 = (uint *)(local_68 + (long)local_70);\n            }\n            else {\n              local_68 = 1;\n              local_70 = (uint *)((long)local_70 + 1);\n              puStack_50 = (uint *)(ulong)bVar1;\n            }\njoined_r0x00303052:\n            if (uVar2 != 0x31) {\n              if (uVar2 < 0x32) {\nLAB_00302c20:\n                if ((uVar2 == 1) && (local_48 == 0)) {\n                  param_1[5] = (long)puStack_50;\n                }\n                goto LAB_00302750;\n              }\n              if ((uVar2 != 0x6e) && (uVar2 != 0x2007)) {\njoined_r0x00302ce3:\n                if (uVar2 == 0x47) {\n                  param_1[0x10] = (long)puStack_50;\n                }\n                goto LAB_00302750;\n              }\nLAB_00302fb5:\n              if (uVar8 == 8) {\nLAB_003029eb:\n                param_1[0xd] = (long)puStack_50;\n              }\n              else {\nLAB_00302fbe:\n                if (uVar8 == 0xe) goto LAB_00302fd0;\n              }\n              goto LAB_00302750;\n            }\n          }\n          else {\n            if (0x15 < uVar8) {\n              if (uVar8 != 0x19) {\n                if (uVar8 < 0x1a) {\n                  if (uVar8 == 0x17) {\n                    lVar10 = *param_1;\n                    if (*(int *)(lVar10 + 0x60) == 4) {\n                      uVar9 = FUN_00305610(lVar10,&local_70);\n                      local_60 = (uint *)(ulong)uVar9;\n                    }\n                    else {\n                      plVar17 = *(long **)(lVar10 + 0x10);\nLAB_00302fe7:\n                      pcVar3 = *(code **)(*plVar17 + 0x18);\n                      if (pcVar3 == FUN_001b8d10) {\n                        cVar6 = (**(code **)(*plVar17 + 0x1d0))();\n                      }\n                      else {\n                        cVar6 = (*pcVar3)();\n                      }\n                      local_60 = *(uint **)local_70;\n                      if (cVar6 != '\0') {\n                        local_60 = (uint *)((ulong)local_60 >> 0x38 |\n                                            ((ulong)local_60 & 0xff000000000000) >> 0x28 |\n                                            ((ulong)local_60 & 0xff0000000000) >> 0x18 |\n                                            ((ulong)local_60 & 0xff00000000) >> 8 |\n                                            ((ulong)local_60 & 0xff000000) << 8 |\n                                            ((ulong)local_60 & 0xff0000) << 0x18 |\n                                            ((ulong)local_60 & 0xff00) << 0x28 |\n                                           (long)local_60 << 0x38);\n                      }\n                      local_70 = local_70 + 2;\n                    }\nLAB_00303035:\n                    local_48 = FUN_00301dc0(*param_1,pbVar15,&local_60);\n                    puStack_50 = local_60;\n                    goto joined_r0x00303052;\n                  }\n                  if (uVar8 != 0x18) {\n                    return 0;\n                  }\nLAB_00302a09:\n                  bVar1 = (byte)*local_70;\n                  uVar9 = (uint)bVar1;\n                  puVar11 = (uint *)((long)local_70 + 1);\n                  if ((char)bVar1 < '\0') {\n                    uVar9 = FUN_002112d0(puVar11,&local_68,bVar1);\n                    puVar11 = (uint *)((long)local_70 + local_68);\n                  }\n                  else {\n                    local_68 = 1;\n                  }\n                  local_70 = (uint *)((long)local_70 + uVar9 + local_68);\n                  puStack_50 = puVar11;\n                  local_48 = uVar9;\n                }\n                else {\n                  if (uVar8 == 0x20) {\n                    pcVar3 = *(code **)(**(long **)(*param_1 + 0x10) + 0x18);\n                    if (pcVar3 == FUN_001b8d10) {\n                      cVar6 = (**(code **)(**(long **)(*param_1 + 0x10) + 0x1d0))();\n                    }\n                    else {\n                      cVar6 = (*pcVar3)();\n                    }\n                    puStack_50 = *(uint **)local_70;\n                    if (cVar6 != '\0') {\n                      puStack_50 = (uint *)((ulong)puStack_50 >> 0x38 |\n                                            ((ulong)puStack_50 & 0xff000000000000) >> 0x28 |\n                                            ((ulong)puStack_50 & 0xff0000000000) >> 0x18 |\n                                            ((ulong)puStack_50 & 0xff00000000) >> 8 |\n                                            ((ulong)puStack_50 & 0xff000000) << 8 |\n                                            ((ulong)puStack_50 & 0xff0000) << 0x18 |\n                                            ((ulong)puStack_50 & 0xff00) << 0x28 |\n                                           (long)puStack_50 << 0x38);\n                    }\n                    local_70 = local_70 + 2;\n                    goto LAB_00302ea9;\n                  }\n                  if (uVar8 < 0x20) {\n                    return 0;\n                  }\n                  if (1 < uVar8 - 0x1f01) {\n                    return 0;\n                  }\nLAB_00302bcd:\n                  bVar1 = (byte)*local_70;\n                  if ((char)bVar1 < '\0') {\n                    puStack_50 = (uint *)FUN_002112d0((uint *)((long)local_70 + 1),&local_68,bVar1);\n                    local_70 = (uint *)(local_68 + (long)local_70);\n                  }\n                  else {\n                    local_68 = 1;\n                    local_70 = (uint *)((long)local_70 + 1);\n                    puStack_50 = (uint *)(ulong)bVar1;\n                  }\n                }\nLAB_00302f92:\n                if (uVar2 == 0x31) goto LAB_00302750;\n                if (0x31 < uVar2) {\n                  if ((uVar2 == 0x6e) || (uVar2 == 0x2007)) goto LAB_00302fb5;\n                  goto LAB_00302750;\n                }\n                goto LAB_00302e3e;\n              }\n              puStack_50 = (uint *)0x1;\nLAB_00302ea9:\n              if (((uVar2 == 0x31) || (0x31 < uVar2)) || (uVar2 != 3)) goto LAB_00302750;\nLAB_00302e52:\n              if (uVar8 == 8) {\nLAB_003029c7:\n                param_1[0xb] = (long)puStack_50;\n              }\n              else if (uVar8 == 0xe) goto LAB_00302f64;\n              goto LAB_00302750;\n            }\n            if (uVar8 != 0x11) {\n              if (0x11 < uVar8) {\n                if (uVar8 == 0x13) {\n                  uVar9 = FUN_00305610(*param_1,&local_70);\n                  local_60 = (uint *)(ulong)uVar9;\n                  goto LAB_00303035;\n                }\n                if (0x13 < uVar8) {\n                  plVar17 = *(long **)(*param_1 + 0x10);\n                  goto LAB_00302fe7;\n                }\n                pcVar3 = *(code **)(**(long **)(*param_1 + 0x10) + 0x18);\n                if (pcVar3 == FUN_001b8d10) {\n                  cVar6 = (**(code **)(**(long **)(*param_1 + 0x10) + 0x1d0))();\n                }\n                else {\n                  cVar6 = (*pcVar3)();\n                }\n                uVar5 = (ushort)*local_70;\n                if (cVar6 != '\0') {\n                  uVar5 = CONCAT11((byte)*local_70,*(byte *)((long)local_70 + 1));\n                }\n                local_70 = (uint *)((long)local_70 + 2);\n                puStack_50 = (uint *)(ulong)uVar5;\n                goto joined_r0x00303052;\n              }\n              if (uVar8 == 0xf) goto LAB_00302bcd;\n              if (uVar8 != 0x10) {\n                return 0;\n              }\n              lVar10 = *param_1;\n              iVar7 = *(int *)(lVar10 + 100);\n              if (2 < *(uint *)(lVar10 + 0x68)) {\n                iVar7 = *(int *)(lVar10 + 0x60);\n              }\n              if (iVar7 != 4) goto LAB_00302a71;\nLAB_00302e7d:\n              uVar8 = FUN_00305610(lVar10,&local_70);\n              local_60 = (uint *)(ulong)uVar8;\nLAB_00302abe:\n              local_48 = FUN_00301dc0(*param_1,pbVar15,&local_60);\n              puStack_50 = local_60;\n              if (uVar2 == 0x31) goto LAB_00302965;\n              if (0x31 < uVar2) goto joined_r0x00302ccc;\n              goto LAB_00302c20;\n            }\n            puVar11 = (uint *)((long)local_70 + 1);\n            puStack_50 = (uint *)(ulong)(byte)*local_70;\n            local_70 = puVar11;\n            if (uVar2 != 0x31) {\n              if (uVar2 < 0x32) {\n                if (uVar2 == 1) {\n                  param_1[5] = (long)puStack_50;\n                }\n                goto LAB_00302750;\n              }\njoined_r0x00302ccc:\n              if ((uVar2 == 0x6e) || (uVar2 == 0x2007)) goto LAB_00302750;\n              goto joined_r0x00302ce3;\n            }\n          }\nLAB_00302965:\n          param_1[0x11] = (long)puStack_50;\n          goto LAB_00302750;\n        }\n        if (uVar8 == 7) {\n          pcVar3 = *(code **)(**(long **)(*param_1 + 0x10) + 0x18);\n          if (pcVar3 == FUN_001b8d10) {\n            cVar6 = (**(code **)(**(long **)(*param_1 + 0x10) + 0x1d0))();\n          }\n          else {\n            cVar6 = (*pcVar3)();\n          }\n          local_60 = *(uint **)local_70;\n          if (cVar6 != '\0') {\n            local_60 = (uint *)((ulong)local_60 >> 0x38 |\n                                ((ulong)local_60 & 0xff000000000000) >> 0x28 |\n                                ((ulong)local_60 & 0xff0000000000) >> 0x18 |\n                                ((ulong)local_60 & 0xff00000000) >> 8 |\n                                ((ulong)local_60 & 0xff000000) << 8 |\n                                ((ulong)local_60 & 0xff0000) << 0x18 |\n                                ((ulong)local_60 & 0xff00) << 0x28 | (long)local_60 << 0x38);\n          }\n          local_70 = local_70 + 2;\nLAB_00302d40:\n          local_48 = FUN_00301dc0(*param_1,pbVar15,&local_60);\n          puStack_50 = local_60;\njoined_r0x00302748:\n          if ((uVar2 != 0x31) && (uVar2 < 0x32)) {\nLAB_00302e3e:\n            if ((uVar2 != 1) && (uVar2 == 3)) goto LAB_00302e52;\n          }\n          goto LAB_00302750;\n        }\n        if (uVar8 < 8) {\n          if (uVar8 == 4) {\n            pcVar3 = *(code **)(**(long **)(*param_1 + 0x10) + 0x18);\n            if (pcVar3 == FUN_001b8d10) {\n              cVar6 = (**(code **)(**(long **)(*param_1 + 0x10) + 0x1d0))();\n            }\n            else {\n              cVar6 = (*pcVar3)();\n            }\n            local_48 = *local_70;\n            if (cVar6 != '\0') {\n              local_48 = local_48 >> 0x18 | (local_48 & 0xff0000) >> 8 | (local_48 & 0xff00) << 8 |\n                         local_48 << 0x18;\n            }\n            puStack_50 = local_70 + 1;\n            local_70 = (uint *)((long)puStack_50 + (ulong)local_48);\n          }\n          else if (uVar8 < 5) {\n            if (uVar8 == 1) {\n              lVar10 = *param_1;\n              if (*(int *)(lVar10 + 100) == 4) goto LAB_00302e7d;\nLAB_00302a71:\n              pcVar3 = *(code **)(**(long **)(lVar10 + 0x10) + 0x18);\n              if (pcVar3 == FUN_001b8d10) {\n                cVar6 = (**(code **)(**(long **)(lVar10 + 0x10) + 0x1d0))();\n              }\n              else {\n                cVar6 = (*pcVar3)();\n              }\n              local_60 = *(uint **)local_70;\n              if (cVar6 != '\0') {\n                local_60 = (uint *)((ulong)local_60 >> 0x38 |\n                                    ((ulong)local_60 & 0xff000000000000) >> 0x28 |\n                                    ((ulong)local_60 & 0xff0000000000) >> 0x18 |\n                                    ((ulong)local_60 & 0xff00000000) >> 8 |\n                                    ((ulong)local_60 & 0xff000000) << 8 |\n                                    ((ulong)local_60 & 0xff0000) << 0x18 |\n                                    ((ulong)local_60 & 0xff00) << 0x28 | (long)local_60 << 0x38);\n              }\n              local_70 = local_70 + 2;\n              goto LAB_00302abe;\n            }\n            if (uVar8 != 3) {\n              return 0;\n            }\n            pcVar3 = *(code **)(**(long **)(*param_1 + 0x10) + 0x18);\n            if (pcVar3 == FUN_001b8d10) {\n              cVar6 = (**(code **)(**(long **)(*param_1 + 0x10) + 0x1d0))();\n            }\n            else {\n              cVar6 = (*pcVar3)();\n            }\n            uVar5 = (ushort)*local_70;\n            if (cVar6 != '\0') {\n              uVar5 = CONCAT11((byte)*local_70,*(byte *)((long)local_70 + 1));\n            }\n            local_48 = (uint)uVar5;\n            puStack_50 = (uint *)((long)local_70 + 2);\n            local_70 = (uint *)((long)puStack_50 + (ulong)local_48);\n          }\n          else {\n            if (uVar8 != 5) {\n              if (uVar8 != 6) {\n                return 0;\n              }\n              pcVar3 = *(code **)(**(long **)(*param_1 + 0x10) + 0x18);\n              if (pcVar3 == FUN_001b8d10) {\n                cVar6 = (**(code **)(**(long **)(*param_1 + 0x10) + 0x1d0))();\n              }\n              else {\n                cVar6 = (*pcVar3)();\n              }\n              uVar9 = *local_70;\n              if (cVar6 != '\0') {\n                uVar9 = uVar9 >> 0x18 | (uVar9 & 0xff0000) >> 8 | (uVar9 & 0xff00) << 8 |\n                        uVar9 << 0x18;\n              }\n              local_60 = (uint *)(ulong)uVar9;\n              local_70 = local_70 + 1;\n              goto LAB_00302d40;\n            }\n            pcVar3 = *(code **)(**(long **)(*param_1 + 0x10) + 0x18);\n            if (pcVar3 == FUN_001b8d10) {\n              cVar6 = (**(code **)(**(long **)(*param_1 + 0x10) + 0x1d0))();\n            }\n            else {\n              cVar6 = (*pcVar3)();\n            }\n            uVar5 = (ushort)*local_70;\n            if (cVar6 != '\0') {\n              uVar5 = CONCAT11((byte)*local_70,*(byte *)((long)local_70 + 1));\n            }\n            local_70 = (uint *)((long)local_70 + 2);\n            puStack_50 = (uint *)(ulong)uVar5;\n          }\n          goto joined_r0x00302748;\n        }\n        if (uVar8 == 10) {\n          puStack_50 = (uint *)((long)local_70 + 1);\n          uVar9 = *local_70;\n          local_70 = (uint *)((long)puStack_50 + (ulong)(byte)uVar9);\n          local_48 = (uint)(byte)uVar9;\n          goto joined_r0x00302748;\n        }\n        if (uVar8 < 0xb) {\n          if (uVar8 != 8) {\n            if (uVar8 != 9) {\n              return 0;\n            }\n            goto LAB_00302a09;\n          }\n          puStack_50 = local_70;\n          local_68 = strlen((char *)local_70);\n          local_70 = (uint *)((long)puVar11 + local_68 + 1);\n          if (uVar2 == 0x31) goto LAB_00302750;\n          if (0x31 < uVar2) {\n            if ((uVar2 != 0x6e) && (uVar2 != 0x2007)) goto LAB_00302750;\n            goto LAB_003029eb;\n          }\n          if ((uVar2 == 1) || (uVar2 != 3)) goto LAB_00302750;\n          goto LAB_003029c7;\n        }\n        if (uVar8 < 0xd) {\n          uVar9 = *local_70;\n          local_70 = (uint *)((long)local_70 + 1);\n          puStack_50 = (uint *)(ulong)(byte)uVar9;\n          goto LAB_00302f92;\n        }\n        bVar1 = (byte)*local_70;\n        puVar11 = (uint *)((long)local_70 + 1);\n        if ((char)bVar1 < '\0') {\n          puStack_50 = (uint *)FUN_00211340(puVar11,&local_68);\n          puVar11 = (uint *)(local_68 + (long)local_70);\n        }\n        else {\n          local_68 = 1;\n          puStack_50 = (uint *)(ulong)bVar1;\n          if ((bVar1 & 0x40) != 0) {\n            puStack_50 = (uint *)((ulong)bVar1 | 0xffffffffffffff80);\n          }\n        }\n        local_70 = puVar11;\n        if ((uVar2 == 0x31) || (uVar2 < 0x32)) goto LAB_00302750;\n        if ((uVar2 == 0x6e) || (uVar2 == 0x2007)) goto LAB_00302fbe;\n        puVar16 = (undefined8 *)param_1[8];\n        if (puVar16 == (undefined8 *)param_1[9]) goto LAB_003028c0;\nLAB_0030275e:\n        *puVar16 = CONCAT44(uStack_54,local_58);\n        puVar16[1] = puStack_50;\n        puVar16[2] = CONCAT44(uStack_44,local_48);\n        param_1[8] = (long)(puVar16 + 3);\n      }\n      lVar20 = lVar20 + 8;\n      lVar10 = param_1[6];\n    }" { (expression_statement "puVar11 = (uint *)(*(long *)(lVar10 + 8) + lVar20);" (assignment_expression "puVar11 = (uint *)(*(long *)(lVar10 + 8) + lVar20)" identifier = (cast_expression "(uint *)(*(long *)(lVar10 + 8) + lVar20)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*(long *)(lVar10 + 8) + lVar20)" ( (binary_expression "*(long *)(lVar10 + 8) + lVar20" (pointer_expression "*(long *)(lVar10 + 8)" * (cast_expression "(long *)(lVar10 + 8)" ( (type_descriptor "long *" (sized_type_specifier "long" long) (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(lVar10 + 8)" ( (binary_expression "lVar10 + 8" identifier + number_literal) )))) + identifier) )))) ;) (expression_statement "uVar8 = puVar11[1];" (assignment_expression "uVar8 = puVar11[1]" identifier = (subscript_expression "puVar11[1]" identifier [ number_literal ])) ;) (expression_statement "uVar2 = *puVar11;" (assignment_expression "uVar2 = *puVar11" identifier = (pointer_expression "*puVar11" * identifier)) ;) (if_statement "if (uVar8 == 0x16) {\n        bVar1 = (byte)*local_70;\n        uVar8 = (uint)bVar1;\n        if ((char)bVar1 < '\0') {\n          uVar8 = FUN_002112d0((uint *)((long)local_70 + 1),&local_68,bVar1);\n          local_70 = (uint *)(local_68 + (long)local_70);\n        }\n        else {\n          local_68 = 1;\n          local_70 = (uint *)((long)local_70 + 1);\n        }\n      }" if (parenthesized_expression "(uVar8 == 0x16)" ( (binary_expression "uVar8 == 0x16" identifier == number_literal) )) (compound_statement "{\n        bVar1 = (byte)*local_70;\n        uVar8 = (uint)bVar1;\n        if ((char)bVar1 < '\0') {\n          uVar8 = FUN_002112d0((uint *)((long)local_70 + 1),&local_68,bVar1);\n          local_70 = (uint *)(local_68 + (long)local_70);\n        }\n        else {\n          local_68 = 1;\n          local_70 = (uint *)((long)local_70 + 1);\n        }\n      }" { (expression_statement "bVar1 = (byte)*local_70;" (assignment_expression "bVar1 = (byte)*local_70" identifier = (binary_expression "(byte)*local_70" (parenthesized_expression "(byte)" ( identifier )) * identifier)) ;) (expression_statement "uVar8 = (uint)bVar1;" (assignment_expression "uVar8 = (uint)bVar1" identifier = (cast_expression "(uint)bVar1" ( (type_descriptor "uint" type_identifier) ) identifier)) ;) (if_statement "if ((char)bVar1 < '\0') {\n          uVar8 = FUN_002112d0((uint *)((long)local_70 + 1),&local_68,bVar1);\n          local_70 = (uint *)(local_68 + (long)local_70);\n        }\n        else {\n          local_68 = 1;\n          local_70 = (uint *)((long)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          uVar8 = FUN_002112d0((uint *)((long)local_70 + 1),&local_68,bVar1);\n          local_70 = (uint *)(local_68 + (long)local_70);\n        }" { (expression_statement "uVar8 = FUN_002112d0((uint *)((long)local_70 + 1),&local_68,bVar1);" (assignment_expression "uVar8 = FUN_002112d0((uint *)((long)local_70 + 1),&local_68,bVar1)" identifier = (call_expression "FUN_002112d0((uint *)((long)local_70 + 1),&local_68,bVar1)" identifier (argument_list "((uint *)((long)local_70 + 1),&local_68,bVar1)" ( (cast_expression "(uint *)((long)local_70 + 1)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((long)local_70 + 1)" ( (binary_expression "(long)local_70 + 1" (cast_expression "(long)local_70" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) identifier) + number_literal) ))) , (pointer_expression "&local_68" & identifier) , identifier )))) ;) (expression_statement "local_70 = (uint *)(local_68 + (long)local_70);" (assignment_expression "local_70 = (uint *)(local_68 + (long)local_70)" identifier = (cast_expression "(uint *)(local_68 + (long)local_70)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(local_68 + (long)local_70)" ( (binary_expression "local_68 + (long)local_70" identifier + (cast_expression "(long)local_70" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) identifier)) )))) ;) }) (else_clause "else {\n          local_68 = 1;\n          local_70 = (uint *)((long)local_70 + 1);\n        }" else (compound_statement "{\n          local_68 = 1;\n          local_70 = (uint *)((long)local_70 + 1);\n        }" { (expression_statement "local_68 = 1;" (assignment_expression "local_68 = 1" identifier = number_literal) ;) (expression_statement "local_70 = (uint *)((long)local_70 + 1);" (assignment_expression "local_70 = (uint *)((long)local_70 + 1)" identifier = (cast_expression "(uint *)((long)local_70 + 1)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((long)local_70 + 1)" ( (binary_expression "(long)local_70 + 1" (cast_expression "(long)local_70" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) identifier) + number_literal) )))) ;) }))) })) (expression_statement "puVar11 = local_70;" (assignment_expression "puVar11 = local_70" identifier = identifier) ;) (expression_statement "pbVar15 = (byte *)((long)local_70 + (param_1[2] - lVar12));" (assignment_expression "pbVar15 = (byte *)((long)local_70 + (param_1[2] - lVar12))" identifier = (cast_expression "(byte *)((long)local_70 + (param_1[2] - lVar12))" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((long)local_70 + (param_1[2] - lVar12))" ( (binary_expression "(long)local_70 + (param_1[2] - lVar12)" (cast_expression "(long)local_70" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) identifier) + (parenthesized_expression "(param_1[2] - lVar12)" ( (binary_expression "param_1[2] - lVar12" (subscript_expression "param_1[2]" identifier [ number_literal ]) - identifier) ))) )))) ;) (expression_statement "local_48 = 0;" (assignment_expression "local_48 = 0" identifier = number_literal) ;) (expression_statement "local_58 = uVar2;" (assignment_expression "local_58 = uVar2" identifier = identifier) ;) (expression_statement "uStack_54 = uVar8;" (assignment_expression "uStack_54 = uVar8" identifier = identifier) ;) (if_statement "if (uVar8 == 0xe) {\n        lVar10 = *param_1;\n        if (*(int *)(lVar10 + 0x60) == 4) {\n          uVar8 = FUN_00305610(lVar10,&local_70);\n          local_60 = (uint *)(ulong)uVar8;\n        }\n        else {\n          pcVar3 = *(code **)(**(long **)(lVar10 + 0x10) + 0x18);\n          if (pcVar3 == FUN_001b8d10) {\n            cVar6 = (**(code **)(**(long **)(lVar10 + 0x10) + 0x1d0))();\n          }\n          else {\n            cVar6 = (*pcVar3)();\n          }\n          local_60 = *(uint **)local_70;\n          if (cVar6 != '\0') {\n            local_60 = (uint *)((ulong)local_60 >> 0x38 |\n                                ((ulong)local_60 & 0xff000000000000) >> 0x28 |\n                                ((ulong)local_60 & 0xff0000000000) >> 0x18 |\n                                ((ulong)local_60 & 0xff00000000) >> 8 |\n                                ((ulong)local_60 & 0xff000000) << 8 |\n                                ((ulong)local_60 & 0xff0000) << 0x18 |\n                                ((ulong)local_60 & 0xff00) << 0x28 | (long)local_60 << 0x38);\n          }\n          local_70 = local_70 + 2;\n        }\n        local_48 = FUN_00301dc0(*param_1,pbVar15,&local_60);\n        puStack_50 = local_60;\n        if (uVar2 != 0x31) {\n          if (uVar2 < 0x32) {\n            if ((uVar2 != 1) && (uVar2 == 3)) {\nLAB_00302f64:\n              *(uint *)(param_1 + 0xf) = local_48;\n              param_1[0xc] = (long)puStack_50;\n            }\n          }\n          else if ((uVar2 == 0x6e) || (uVar2 == 0x2007)) {\nLAB_00302fd0:\n            *(uint *)(param_1 + 0xf) = local_48;\n            param_1[0xe] = (long)puStack_50;\n          }\n        }\nLAB_00302750:\n        puVar16 = (undefined8 *)param_1[8];\n        if (puVar16 != (undefined8 *)param_1[9]) goto LAB_0030275e;\nLAB_003028c0:\n        FUN_00305860(param_1 + 7,puVar16,&local_58);\n      }\n      else {\n        if (0xe < uVar8) {\n          if (uVar8 == 0x15) {\n            bVar1 = (byte)*local_70;\n            if ((char)bVar1 < '\0') {\n              puStack_50 = (uint *)FUN_002112d0((uint *)((long)local_70 + 1),&local_68,bVar1);\n              local_70 = (uint *)(local_68 + (long)local_70);\n            }\n            else {\n              local_68 = 1;\n              local_70 = (uint *)((long)local_70 + 1);\n              puStack_50 = (uint *)(ulong)bVar1;\n            }\njoined_r0x00303052:\n            if (uVar2 != 0x31) {\n              if (uVar2 < 0x32) {\nLAB_00302c20:\n                if ((uVar2 == 1) && (local_48 == 0)) {\n                  param_1[5] = (long)puStack_50;\n                }\n                goto LAB_00302750;\n              }\n              if ((uVar2 != 0x6e) && (uVar2 != 0x2007)) {\njoined_r0x00302ce3:\n                if (uVar2 == 0x47) {\n                  param_1[0x10] = (long)puStack_50;\n                }\n                goto LAB_00302750;\n              }\nLAB_00302fb5:\n              if (uVar8 == 8) {\nLAB_003029eb:\n                param_1[0xd] = (long)puStack_50;\n              }\n              else {\nLAB_00302fbe:\n                if (uVar8 == 0xe) goto LAB_00302fd0;\n              }\n              goto LAB_00302750;\n            }\n          }\n          else {\n            if (0x15 < uVar8) {\n              if (uVar8 != 0x19) {\n                if (uVar8 < 0x1a) {\n                  if (uVar8 == 0x17) {\n                    lVar10 = *param_1;\n                    if (*(int *)(lVar10 + 0x60) == 4) {\n                      uVar9 = FUN_00305610(lVar10,&local_70);\n                      local_60 = (uint *)(ulong)uVar9;\n                    }\n                    else {\n                      plVar17 = *(long **)(lVar10 + 0x10);\nLAB_00302fe7:\n                      pcVar3 = *(code **)(*plVar17 + 0x18);\n                      if (pcVar3 == FUN_001b8d10) {\n                        cVar6 = (**(code **)(*plVar17 + 0x1d0))();\n                      }\n                      else {\n                        cVar6 = (*pcVar3)();\n                      }\n                      local_60 = *(uint **)local_70;\n                      if (cVar6 != '\0') {\n                        local_60 = (uint *)((ulong)local_60 >> 0x38 |\n                                            ((ulong)local_60 & 0xff000000000000) >> 0x28 |\n                                            ((ulong)local_60 & 0xff0000000000) >> 0x18 |\n                                            ((ulong)local_60 & 0xff00000000) >> 8 |\n                                            ((ulong)local_60 & 0xff000000) << 8 |\n                                            ((ulong)local_60 & 0xff0000) << 0x18 |\n                                            ((ulong)local_60 & 0xff00) << 0x28 |\n                                           (long)local_60 << 0x38);\n                      }\n                      local_70 = local_70 + 2;\n                    }\nLAB_00303035:\n                    local_48 = FUN_00301dc0(*param_1,pbVar15,&local_60);\n                    puStack_50 = local_60;\n                    goto joined_r0x00303052;\n                  }\n                  if (uVar8 != 0x18) {\n                    return 0;\n                  }\nLAB_00302a09:\n                  bVar1 = (byte)*local_70;\n                  uVar9 = (uint)bVar1;\n                  puVar11 = (uint *)((long)local_70 + 1);\n                  if ((char)bVar1 < '\0') {\n                    uVar9 = FUN_002112d0(puVar11,&local_68,bVar1);\n                    puVar11 = (uint *)((long)local_70 + local_68);\n                  }\n                  else {\n                    local_68 = 1;\n                  }\n                  local_70 = (uint *)((long)local_70 + uVar9 + local_68);\n                  puStack_50 = puVar11;\n                  local_48 = uVar9;\n                }\n                else {\n                  if (uVar8 == 0x20) {\n                    pcVar3 = *(code **)(**(long **)(*param_1 + 0x10) + 0x18);\n                    if (pcVar3 == FUN_001b8d10) {\n                      cVar6 = (**(code **)(**(long **)(*param_1 + 0x10) + 0x1d0))();\n                    }\n                    else {\n                      cVar6 = (*pcVar3)();\n                    }\n                    puStack_50 = *(uint **)local_70;\n                    if (cVar6 != '\0') {\n                      puStack_50 = (uint *)((ulong)puStack_50 >> 0x38 |\n                                            ((ulong)puStack_50 & 0xff000000000000) >> 0x28 |\n                                            ((ulong)puStack_50 & 0xff0000000000) >> 0x18 |\n                                            ((ulong)puStack_50 & 0xff00000000) >> 8 |\n                                            ((ulong)puStack_50 & 0xff000000) << 8 |\n                                            ((ulong)puStack_50 & 0xff0000) << 0x18 |\n                                            ((ulong)puStack_50 & 0xff00) << 0x28 |\n                                           (long)puStack_50 << 0x38);\n                    }\n                    local_70 = local_70 + 2;\n                    goto LAB_00302ea9;\n                  }\n                  if (uVar8 < 0x20) {\n                    return 0;\n                  }\n                  if (1 < uVar8 - 0x1f01) {\n                    return 0;\n                  }\nLAB_00302bcd:\n                  bVar1 = (byte)*local_70;\n                  if ((char)bVar1 < '\0') {\n                    puStack_50 = (uint *)FUN_002112d0((uint *)((long)local_70 + 1),&local_68,bVar1);\n                    local_70 = (uint *)(local_68 + (long)local_70);\n                  }\n                  else {\n                    local_68 = 1;\n                    local_70 = (uint *)((long)local_70 + 1);\n                    puStack_50 = (uint *)(ulong)bVar1;\n                  }\n                }\nLAB_00302f92:\n                if (uVar2 == 0x31) goto LAB_00302750;\n                if (0x31 < uVar2) {\n                  if ((uVar2 == 0x6e) || (uVar2 == 0x2007)) goto LAB_00302fb5;\n                  goto LAB_00302750;\n                }\n                goto LAB_00302e3e;\n              }\n              puStack_50 = (uint *)0x1;\nLAB_00302ea9:\n              if (((uVar2 == 0x31) || (0x31 < uVar2)) || (uVar2 != 3)) goto LAB_00302750;\nLAB_00302e52:\n              if (uVar8 == 8) {\nLAB_003029c7:\n                param_1[0xb] = (long)puStack_50;\n              }\n              else if (uVar8 == 0xe) goto LAB_00302f64;\n              goto LAB_00302750;\n            }\n            if (uVar8 != 0x11) {\n              if (0x11 < uVar8) {\n                if (uVar8 == 0x13) {\n                  uVar9 = FUN_00305610(*param_1,&local_70);\n                  local_60 = (uint *)(ulong)uVar9;\n                  goto LAB_00303035;\n                }\n                if (0x13 < uVar8) {\n                  plVar17 = *(long **)(*param_1 + 0x10);\n                  goto LAB_00302fe7;\n                }\n                pcVar3 = *(code **)(**(long **)(*param_1 + 0x10) + 0x18);\n                if (pcVar3 == FUN_001b8d10) {\n                  cVar6 = (**(code **)(**(long **)(*param_1 + 0x10) + 0x1d0))();\n                }\n                else {\n                  cVar6 = (*pcVar3)();\n                }\n                uVar5 = (ushort)*local_70;\n                if (cVar6 != '\0') {\n                  uVar5 = CONCAT11((byte)*local_70,*(byte *)((long)local_70 + 1));\n                }\n                local_70 = (uint *)((long)local_70 + 2);\n                puStack_50 = (uint *)(ulong)uVar5;\n                goto joined_r0x00303052;\n              }\n              if (uVar8 == 0xf) goto LAB_00302bcd;\n              if (uVar8 != 0x10) {\n                return 0;\n              }\n              lVar10 = *param_1;\n              iVar7 = *(int *)(lVar10 + 100);\n              if (2 < *(uint *)(lVar10 + 0x68)) {\n                iVar7 = *(int *)(lVar10 + 0x60);\n              }\n              if (iVar7 != 4) goto LAB_00302a71;\nLAB_00302e7d:\n              uVar8 = FUN_00305610(lVar10,&local_70);\n              local_60 = (uint *)(ulong)uVar8;\nLAB_00302abe:\n              local_48 = FUN_00301dc0(*param_1,pbVar15,&local_60);\n              puStack_50 = local_60;\n              if (uVar2 == 0x31) goto LAB_00302965;\n              if (0x31 < uVar2) goto joined_r0x00302ccc;\n              goto LAB_00302c20;\n            }\n            puVar11 = (uint *)((long)local_70 + 1);\n            puStack_50 = (uint *)(ulong)(byte)*local_70;\n            local_70 = puVar11;\n            if (uVar2 != 0x31) {\n              if (uVar2 < 0x32) {\n                if (uVar2 == 1) {\n                  param_1[5] = (long)puStack_50;\n                }\n                goto LAB_00302750;\n              }\njoined_r0x00302ccc:\n              if ((uVar2 == 0x6e) || (uVar2 == 0x2007)) goto LAB_00302750;\n              goto joined_r0x00302ce3;\n            }\n          }\nLAB_00302965:\n          param_1[0x11] = (long)puStack_50;\n          goto LAB_00302750;\n        }\n        if (uVar8 == 7) {\n          pcVar3 = *(code **)(**(long **)(*param_1 + 0x10) + 0x18);\n          if (pcVar3 == FUN_001b8d10) {\n            cVar6 = (**(code **)(**(long **)(*param_1 + 0x10) + 0x1d0))();\n          }\n          else {\n            cVar6 = (*pcVar3)();\n          }\n          local_60 = *(uint **)local_70;\n          if (cVar6 != '\0') {\n            local_60 = (uint *)((ulong)local_60 >> 0x38 |\n                                ((ulong)local_60 & 0xff000000000000) >> 0x28 |\n                                ((ulong)local_60 & 0xff0000000000) >> 0x18 |\n                                ((ulong)local_60 & 0xff00000000) >> 8 |\n                                ((ulong)local_60 & 0xff000000) << 8 |\n                                ((ulong)local_60 & 0xff0000) << 0x18 |\n                                ((ulong)local_60 & 0xff00) << 0x28 | (long)local_60 << 0x38);\n          }\n          local_70 = local_70 + 2;\nLAB_00302d40:\n          local_48 = FUN_00301dc0(*param_1,pbVar15,&local_60);\n          puStack_50 = local_60;\njoined_r0x00302748:\n          if ((uVar2 != 0x31) && (uVar2 < 0x32)) {\nLAB_00302e3e:\n            if ((uVar2 != 1) && (uVar2 == 3)) goto LAB_00302e52;\n          }\n          goto LAB_00302750;\n        }\n        if (uVar8 < 8) {\n          if (uVar8 == 4) {\n            pcVar3 = *(code **)(**(long **)(*param_1 + 0x10) + 0x18);\n            if (pcVar3 == FUN_001b8d10) {\n              cVar6 = (**(code **)(**(long **)(*param_1 + 0x10) + 0x1d0))();\n            }\n            else {\n              cVar6 = (*pcVar3)();\n            }\n            local_48 = *local_70;\n            if (cVar6 != '\0') {\n              local_48 = local_48 >> 0x18 | (local_48 & 0xff0000) >> 8 | (local_48 & 0xff00) << 8 |\n                         local_48 << 0x18;\n            }\n            puStack_50 = local_70 + 1;\n            local_70 = (uint *)((long)puStack_50 + (ulong)local_48);\n          }\n          else if (uVar8 < 5) {\n            if (uVar8 == 1) {\n              lVar10 = *param_1;\n              if (*(int *)(lVar10 + 100) == 4) goto LAB_00302e7d;\nLAB_00302a71:\n              pcVar3 = *(code **)(**(long **)(lVar10 + 0x10) + 0x18);\n              if (pcVar3 == FUN_001b8d10) {\n                cVar6 = (**(code **)(**(long **)(lVar10 + 0x10) + 0x1d0))();\n              }\n              else {\n                cVar6 = (*pcVar3)();\n              }\n              local_60 = *(uint **)local_70;\n              if (cVar6 != '\0') {\n                local_60 = (uint *)((ulong)local_60 >> 0x38 |\n                                    ((ulong)local_60 & 0xff000000000000) >> 0x28 |\n                                    ((ulong)local_60 & 0xff0000000000) >> 0x18 |\n                                    ((ulong)local_60 & 0xff00000000) >> 8 |\n                                    ((ulong)local_60 & 0xff000000) << 8 |\n                                    ((ulong)local_60 & 0xff0000) << 0x18 |\n                                    ((ulong)local_60 & 0xff00) << 0x28 | (long)local_60 << 0x38);\n              }\n              local_70 = local_70 + 2;\n              goto LAB_00302abe;\n            }\n            if (uVar8 != 3) {\n              return 0;\n            }\n            pcVar3 = *(code **)(**(long **)(*param_1 + 0x10) + 0x18);\n            if (pcVar3 == FUN_001b8d10) {\n              cVar6 = (**(code **)(**(long **)(*param_1 + 0x10) + 0x1d0))();\n            }\n            else {\n              cVar6 = (*pcVar3)();\n            }\n            uVar5 = (ushort)*local_70;\n            if (cVar6 != '\0') {\n              uVar5 = CONCAT11((byte)*local_70,*(byte *)((long)local_70 + 1));\n            }\n            local_48 = (uint)uVar5;\n            puStack_50 = (uint *)((long)local_70 + 2);\n            local_70 = (uint *)((long)puStack_50 + (ulong)local_48);\n          }\n          else {\n            if (uVar8 != 5) {\n              if (uVar8 != 6) {\n                return 0;\n              }\n              pcVar3 = *(code **)(**(long **)(*param_1 + 0x10) + 0x18);\n              if (pcVar3 == FUN_001b8d10) {\n                cVar6 = (**(code **)(**(long **)(*param_1 + 0x10) + 0x1d0))();\n              }\n              else {\n                cVar6 = (*pcVar3)();\n              }\n              uVar9 = *local_70;\n              if (cVar6 != '\0') {\n                uVar9 = uVar9 >> 0x18 | (uVar9 & 0xff0000) >> 8 | (uVar9 & 0xff00) << 8 |\n                        uVar9 << 0x18;\n              }\n              local_60 = (uint *)(ulong)uVar9;\n              local_70 = local_70 + 1;\n              goto LAB_00302d40;\n            }\n            pcVar3 = *(code **)(**(long **)(*param_1 + 0x10) + 0x18);\n            if (pcVar3 == FUN_001b8d10) {\n              cVar6 = (**(code **)(**(long **)(*param_1 + 0x10) + 0x1d0))();\n            }\n            else {\n              cVar6 = (*pcVar3)();\n            }\n            uVar5 = (ushort)*local_70;\n            if (cVar6 != '\0') {\n              uVar5 = CONCAT11((byte)*local_70,*(byte *)((long)local_70 + 1));\n            }\n            local_70 = (uint *)((long)local_70 + 2);\n            puStack_50 = (uint *)(ulong)uVar5;\n          }\n          goto joined_r0x00302748;\n        }\n        if (uVar8 == 10) {\n          puStack_50 = (uint *)((long)local_70 + 1);\n          uVar9 = *local_70;\n          local_70 = (uint *)((long)puStack_50 + (ulong)(byte)uVar9);\n          local_48 = (uint)(byte)uVar9;\n          goto joined_r0x00302748;\n        }\n        if (uVar8 < 0xb) {\n          if (uVar8 != 8) {\n            if (uVar8 != 9) {\n              return 0;\n            }\n            goto LAB_00302a09;\n          }\n          puStack_50 = local_70;\n          local_68 = strlen((char *)local_70);\n          local_70 = (uint *)((long)puVar11 + local_68 + 1);\n          if (uVar2 == 0x31) goto LAB_00302750;\n          if (0x31 < uVar2) {\n            if ((uVar2 != 0x6e) && (uVar2 != 0x2007)) goto LAB_00302750;\n            goto LAB_003029eb;\n          }\n          if ((uVar2 == 1) || (uVar2 != 3)) goto LAB_00302750;\n          goto LAB_003029c7;\n        }\n        if (uVar8 < 0xd) {\n          uVar9 = *local_70;\n          local_70 = (uint *)((long)local_70 + 1);\n          puStack_50 = (uint *)(ulong)(byte)uVar9;\n          goto LAB_00302f92;\n        }\n        bVar1 = (byte)*local_70;\n        puVar11 = (uint *)((long)local_70 + 1);\n        if ((char)bVar1 < '\0') {\n          puStack_50 = (uint *)FUN_00211340(puVar11,&local_68);\n          puVar11 = (uint *)(local_68 + (long)local_70);\n        }\n        else {\n          local_68 = 1;\n          puStack_50 = (uint *)(ulong)bVar1;\n          if ((bVar1 & 0x40) != 0) {\n            puStack_50 = (uint *)((ulong)bVar1 | 0xffffffffffffff80);\n          }\n        }\n        local_70 = puVar11;\n        if ((uVar2 == 0x31) || (uVar2 < 0x32)) goto LAB_00302750;\n        if ((uVar2 == 0x6e) || (uVar2 == 0x2007)) goto LAB_00302fbe;\n        puVar16 = (undefined8 *)param_1[8];\n        if (puVar16 == (undefined8 *)param_1[9]) goto LAB_003028c0;\nLAB_0030275e:\n        *puVar16 = CONCAT44(uStack_54,local_58);\n        puVar16[1] = puStack_50;\n        puVar16[2] = CONCAT44(uStack_44,local_48);\n        param_1[8] = (long)(puVar16 + 3);\n      }" if (parenthesized_expression "(uVar8 == 0xe)" ( (binary_expression "uVar8 == 0xe" identifier == number_literal) )) (compound_statement "{\n        lVar10 = *param_1;\n        if (*(int *)(lVar10 + 0x60) == 4) {\n          uVar8 = FUN_00305610(lVar10,&local_70);\n          local_60 = (uint *)(ulong)uVar8;\n        }\n        else {\n          pcVar3 = *(code **)(**(long **)(lVar10 + 0x10) + 0x18);\n          if (pcVar3 == FUN_001b8d10) {\n            cVar6 = (**(code **)(**(long **)(lVar10 + 0x10) + 0x1d0))();\n          }\n          else {\n            cVar6 = (*pcVar3)();\n          }\n          local_60 = *(uint **)local_70;\n          if (cVar6 != '\0') {\n            local_60 = (uint *)((ulong)local_60 >> 0x38 |\n                                ((ulong)local_60 & 0xff000000000000) >> 0x28 |\n                                ((ulong)local_60 & 0xff0000000000) >> 0x18 |\n                                ((ulong)local_60 & 0xff00000000) >> 8 |\n                                ((ulong)local_60 & 0xff000000) << 8 |\n                                ((ulong)local_60 & 0xff0000) << 0x18 |\n                                ((ulong)local_60 & 0xff00) << 0x28 | (long)local_60 << 0x38);\n          }\n          local_70 = local_70 + 2;\n        }\n        local_48 = FUN_00301dc0(*param_1,pbVar15,&local_60);\n        puStack_50 = local_60;\n        if (uVar2 != 0x31) {\n          if (uVar2 < 0x32) {\n            if ((uVar2 != 1) && (uVar2 == 3)) {\nLAB_00302f64:\n              *(uint *)(param_1 + 0xf) = local_48;\n              param_1[0xc] = (long)puStack_50;\n            }\n          }\n          else if ((uVar2 == 0x6e) || (uVar2 == 0x2007)) {\nLAB_00302fd0:\n            *(uint *)(param_1 + 0xf) = local_48;\n            param_1[0xe] = (long)puStack_50;\n          }\n        }\nLAB_00302750:\n        puVar16 = (undefined8 *)param_1[8];\n        if (puVar16 != (undefined8 *)param_1[9]) goto LAB_0030275e;\nLAB_003028c0:\n        FUN_00305860(param_1 + 7,puVar16,&local_58);\n      }" { (expression_statement "lVar10 = *param_1;" (assignment_expression "lVar10 = *param_1" identifier = (pointer_expression "*param_1" * identifier)) ;) (if_statement "if (*(int *)(lVar10 + 0x60) == 4) {\n          uVar8 = FUN_00305610(lVar10,&local_70);\n          local_60 = (uint *)(ulong)uVar8;\n        }\n        else {\n          pcVar3 = *(code **)(**(long **)(lVar10 + 0x10) + 0x18);\n          if (pcVar3 == FUN_001b8d10) {\n            cVar6 = (**(code **)(**(long **)(lVar10 + 0x10) + 0x1d0))();\n          }\n          else {\n            cVar6 = (*pcVar3)();\n          }\n          local_60 = *(uint **)local_70;\n          if (cVar6 != '\0') {\n            local_60 = (uint *)((ulong)local_60 >> 0x38 |\n                                ((ulong)local_60 & 0xff000000000000) >> 0x28 |\n                                ((ulong)local_60 & 0xff0000000000) >> 0x18 |\n                                ((ulong)local_60 & 0xff00000000) >> 8 |\n                                ((ulong)local_60 & 0xff000000) << 8 |\n                                ((ulong)local_60 & 0xff0000) << 0x18 |\n                                ((ulong)local_60 & 0xff00) << 0x28 | (long)local_60 << 0x38);\n          }\n          local_70 = local_70 + 2;\n        }" if (parenthesized_expression "(*(int *)(lVar10 + 0x60) == 4)" ( (binary_expression "*(int *)(lVar10 + 0x60) == 4" (pointer_expression "*(int *)(lVar10 + 0x60)" * (cast_expression "(int *)(lVar10 + 0x60)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(lVar10 + 0x60)" ( (binary_expression "lVar10 + 0x60" identifier + number_literal) )))) == number_literal) )) (compound_statement "{\n          uVar8 = FUN_00305610(lVar10,&local_70);\n          local_60 = (uint *)(ulong)uVar8;\n        }" { (expression_statement "uVar8 = FUN_00305610(lVar10,&local_70);" (assignment_expression "uVar8 = FUN_00305610(lVar10,&local_70)" identifier = (call_expression "FUN_00305610(lVar10,&local_70)" identifier (argument_list "(lVar10,&local_70)" ( identifier , (pointer_expression "&local_70" & identifier) )))) ;) (expression_statement "local_60 = (uint *)(ulong)uVar8;" (assignment_expression "local_60 = (uint *)(ulong)uVar8" identifier = (cast_expression "(uint *)(ulong)uVar8" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (cast_expression "(ulong)uVar8" ( (type_descriptor "ulong" type_identifier) ) identifier))) ;) }) (else_clause "else {\n          pcVar3 = *(code **)(**(long **)(lVar10 + 0x10) + 0x18);\n          if (pcVar3 == FUN_001b8d10) {\n            cVar6 = (**(code **)(**(long **)(lVar10 + 0x10) + 0x1d0))();\n          }\n          else {\n            cVar6 = (*pcVar3)();\n          }\n          local_60 = *(uint **)local_70;\n          if (cVar6 != '\0') {\n            local_60 = (uint *)((ulong)local_60 >> 0x38 |\n                                ((ulong)local_60 & 0xff000000000000) >> 0x28 |\n                                ((ulong)local_60 & 0xff0000000000) >> 0x18 |\n                                ((ulong)local_60 & 0xff00000000) >> 8 |\n                                ((ulong)local_60 & 0xff000000) << 8 |\n                                ((ulong)local_60 & 0xff0000) << 0x18 |\n                                ((ulong)local_60 & 0xff00) << 0x28 | (long)local_60 << 0x38);\n          }\n          local_70 = local_70 + 2;\n        }" else (compound_statement "{\n          pcVar3 = *(code **)(**(long **)(lVar10 + 0x10) + 0x18);\n          if (pcVar3 == FUN_001b8d10) {\n            cVar6 = (**(code **)(**(long **)(lVar10 + 0x10) + 0x1d0))();\n          }\n          else {\n            cVar6 = (*pcVar3)();\n          }\n          local_60 = *(uint **)local_70;\n          if (cVar6 != '\0') {\n            local_60 = (uint *)((ulong)local_60 >> 0x38 |\n                                ((ulong)local_60 & 0xff000000000000) >> 0x28 |\n                                ((ulong)local_60 & 0xff0000000000) >> 0x18 |\n                                ((ulong)local_60 & 0xff00000000) >> 8 |\n                                ((ulong)local_60 & 0xff000000) << 8 |\n                                ((ulong)local_60 & 0xff0000) << 0x18 |\n                                ((ulong)local_60 & 0xff00) << 0x28 | (long)local_60 << 0x38);\n          }\n          local_70 = local_70 + 2;\n        }" { (expression_statement "pcVar3 = *(code **)(**(long **)(lVar10 + 0x10) + 0x18);" (assignment_expression "pcVar3 = *(code **)(**(long **)(lVar10 + 0x10) + 0x18)" identifier = (pointer_expression "*(code **)(**(long **)(lVar10 + 0x10) + 0x18)" * (cast_expression "(code **)(**(long **)(lVar10 + 0x10) + 0x18)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(**(long **)(lVar10 + 0x10) + 0x18)" ( (binary_expression "**(long **)(lVar10 + 0x10) + 0x18" (pointer_expression "**(long **)(lVar10 + 0x10)" * (pointer_expression "*(long **)(lVar10 + 0x10)" * (cast_expression "(long **)(lVar10 + 0x10)" ( (type_descriptor "long **" (sized_type_specifier "long" long) (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(lVar10 + 0x10)" ( (binary_expression "lVar10 + 0x10" identifier + number_literal) ))))) + number_literal) ))))) ;) (if_statement "if (pcVar3 == FUN_001b8d10) {\n            cVar6 = (**(code **)(**(long **)(lVar10 + 0x10) + 0x1d0))();\n          }\n          else {\n            cVar6 = (*pcVar3)();\n          }" if (parenthesized_expression "(pcVar3 == FUN_001b8d10)" ( (binary_expression "pcVar3 == FUN_001b8d10" identifier == identifier) )) (compound_statement "{\n            cVar6 = (**(code **)(**(long **)(lVar10 + 0x10) + 0x1d0))();\n          }" { (expression_statement "cVar6 = (**(code **)(**(long **)(lVar10 + 0x10) + 0x1d0))();" (assignment_expression "cVar6 = (**(code **)(**(long **)(lVar10 + 0x10) + 0x1d0))()" identifier = (call_expression "(**(code **)(**(long **)(lVar10 + 0x10) + 0x1d0))()" (parenthesized_expression "(**(code **)(**(long **)(lVar10 + 0x10) + 0x1d0))" ( (pointer_expression "**(code **)(**(long **)(lVar10 + 0x10) + 0x1d0)" * (pointer_expression "*(code **)(**(long **)(lVar10 + 0x10) + 0x1d0)" * (cast_expression "(code **)(**(long **)(lVar10 + 0x10) + 0x1d0)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(**(long **)(lVar10 + 0x10) + 0x1d0)" ( (binary_expression "**(long **)(lVar10 + 0x10) + 0x1d0" (pointer_expression "**(long **)(lVar10 + 0x10)" * (pointer_expression "*(long **)(lVar10 + 0x10)" * (cast_expression "(long **)(lVar10 + 0x10)" ( (type_descriptor "long **" (sized_type_specifier "long" long) (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(lVar10 + 0x10)" ( (binary_expression "lVar10 + 0x10" identifier + number_literal) ))))) + number_literal) ))))) )) (argument_list "()" ( )))) ;) }) (else_clause "else {\n            cVar6 = (*pcVar3)();\n          }" else (compound_statement "{\n            cVar6 = (*pcVar3)();\n          }" { (expression_statement "cVar6 = (*pcVar3)();" (assignment_expression "cVar6 = (*pcVar3)()" identifier = (call_expression "(*pcVar3)()" (parenthesized_expression "(*pcVar3)" ( (pointer_expression "*pcVar3" * identifier) )) (argument_list "()" ( )))) ;) }))) (expression_statement "local_60 = *(uint **)local_70;" (assignment_expression "local_60 = *(uint **)local_70" identifier = (pointer_expression "*(uint **)local_70" * (cast_expression "(uint **)local_70" ( (type_descriptor "uint **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) identifier))) ;) (if_statement "if (cVar6 != '\0') {\n            local_60 = (uint *)((ulong)local_60 >> 0x38 |\n                                ((ulong)local_60 & 0xff000000000000) >> 0x28 |\n                                ((ulong)local_60 & 0xff0000000000) >> 0x18 |\n                                ((ulong)local_60 & 0xff00000000) >> 8 |\n                                ((ulong)local_60 & 0xff000000) << 8 |\n                                ((ulong)local_60 & 0xff0000) << 0x18 |\n                                ((ulong)local_60 & 0xff00) << 0x28 | (long)local_60 << 0x38);\n          }" if (parenthesized_expression "(cVar6 != '\0')" ( (binary_expression "cVar6 != '\0'" identifier != (char_literal "'\0'" ' escape_sequence ')) )) (compound_statement "{\n            local_60 = (uint *)((ulong)local_60 >> 0x38 |\n                                ((ulong)local_60 & 0xff000000000000) >> 0x28 |\n                                ((ulong)local_60 & 0xff0000000000) >> 0x18 |\n                                ((ulong)local_60 & 0xff00000000) >> 8 |\n                                ((ulong)local_60 & 0xff000000) << 8 |\n                                ((ulong)local_60 & 0xff0000) << 0x18 |\n                                ((ulong)local_60 & 0xff00) << 0x28 | (long)local_60 << 0x38);\n          }" { (expression_statement "local_60 = (uint *)((ulong)local_60 >> 0x38 |\n                                ((ulong)local_60 & 0xff000000000000) >> 0x28 |\n                                ((ulong)local_60 & 0xff0000000000) >> 0x18 |\n                                ((ulong)local_60 & 0xff00000000) >> 8 |\n                                ((ulong)local_60 & 0xff000000) << 8 |\n                                ((ulong)local_60 & 0xff0000) << 0x18 |\n                                ((ulong)local_60 & 0xff00) << 0x28 | (long)local_60 << 0x38);" (assignment_expression "local_60 = (uint *)((ulong)local_60 >> 0x38 |\n                                ((ulong)local_60 & 0xff000000000000) >> 0x28 |\n                                ((ulong)local_60 & 0xff0000000000) >> 0x18 |\n                                ((ulong)local_60 & 0xff00000000) >> 8 |\n                                ((ulong)local_60 & 0xff000000) << 8 |\n                                ((ulong)local_60 & 0xff0000) << 0x18 |\n                                ((ulong)local_60 & 0xff00) << 0x28 | (long)local_60 << 0x38)" identifier = (cast_expression "(uint *)((ulong)local_60 >> 0x38 |\n                                ((ulong)local_60 & 0xff000000000000) >> 0x28 |\n                                ((ulong)local_60 & 0xff0000000000) >> 0x18 |\n                                ((ulong)local_60 & 0xff00000000) >> 8 |\n                                ((ulong)local_60 & 0xff000000) << 8 |\n                                ((ulong)local_60 & 0xff0000) << 0x18 |\n                                ((ulong)local_60 & 0xff00) << 0x28 | (long)local_60 << 0x38)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((ulong)local_60 >> 0x38 |\n                                ((ulong)local_60 & 0xff000000000000) >> 0x28 |\n                                ((ulong)local_60 & 0xff0000000000) >> 0x18 |\n                                ((ulong)local_60 & 0xff00000000) >> 8 |\n                                ((ulong)local_60 & 0xff000000) << 8 |\n                                ((ulong)local_60 & 0xff0000) << 0x18 |\n                                ((ulong)local_60 & 0xff00) << 0x28 | (long)local_60 << 0x38)" ( (binary_expression "(ulong)local_60 >> 0x38 |\n                                ((ulong)local_60 & 0xff000000000000) >> 0x28 |\n                                ((ulong)local_60 & 0xff0000000000) >> 0x18 |\n                                ((ulong)local_60 & 0xff00000000) >> 8 |\n                                ((ulong)local_60 & 0xff000000) << 8 |\n                                ((ulong)local_60 & 0xff0000) << 0x18 |\n                                ((ulong)local_60 & 0xff00) << 0x28 | (long)local_60 << 0x38" (binary_expression "(ulong)local_60 >> 0x38 |\n                                ((ulong)local_60 & 0xff000000000000) >> 0x28 |\n                                ((ulong)local_60 & 0xff0000000000) >> 0x18 |\n                                ((ulong)local_60 & 0xff00000000) >> 8 |\n                                ((ulong)local_60 & 0xff000000) << 8 |\n                                ((ulong)local_60 & 0xff0000) << 0x18 |\n                                ((ulong)local_60 & 0xff00) << 0x28" (binary_expression "(ulong)local_60 >> 0x38 |\n                                ((ulong)local_60 & 0xff000000000000) >> 0x28 |\n                                ((ulong)local_60 & 0xff0000000000) >> 0x18 |\n                                ((ulong)local_60 & 0xff00000000) >> 8 |\n                                ((ulong)local_60 & 0xff000000) << 8 |\n                                ((ulong)local_60 & 0xff0000) << 0x18" (binary_expression "(ulong)local_60 >> 0x38 |\n                                ((ulong)local_60 & 0xff000000000000) >> 0x28 |\n                                ((ulong)local_60 & 0xff0000000000) >> 0x18 |\n                                ((ulong)local_60 & 0xff00000000) >> 8 |\n                                ((ulong)local_60 & 0xff000000) << 8" (binary_expression "(ulong)local_60 >> 0x38 |\n                                ((ulong)local_60 & 0xff000000000000) >> 0x28 |\n                                ((ulong)local_60 & 0xff0000000000) >> 0x18 |\n                                ((ulong)local_60 & 0xff00000000) >> 8" (binary_expression "(ulong)local_60 >> 0x38 |\n                                ((ulong)local_60 & 0xff000000000000) >> 0x28 |\n                                ((ulong)local_60 & 0xff0000000000) >> 0x18" (binary_expression "(ulong)local_60 >> 0x38 |\n                                ((ulong)local_60 & 0xff000000000000) >> 0x28" (binary_expression "(ulong)local_60 >> 0x38" (cast_expression "(ulong)local_60" ( (type_descriptor "ulong" type_identifier) ) identifier) >> number_literal) | (binary_expression "((ulong)local_60 & 0xff000000000000) >> 0x28" (parenthesized_expression "((ulong)local_60 & 0xff000000000000)" ( (binary_expression "(ulong)local_60 & 0xff000000000000" (cast_expression "(ulong)local_60" ( (type_descriptor "ulong" type_identifier) ) identifier) & number_literal) )) >> number_literal)) | (binary_expression "((ulong)local_60 & 0xff0000000000) >> 0x18" (parenthesized_expression "((ulong)local_60 & 0xff0000000000)" ( (binary_expression "(ulong)local_60 & 0xff0000000000" (cast_expression "(ulong)local_60" ( (type_descriptor "ulong" type_identifier) ) identifier) & number_literal) )) >> number_literal)) | (binary_expression "((ulong)local_60 & 0xff00000000) >> 8" (parenthesized_expression "((ulong)local_60 & 0xff00000000)" ( (binary_expression "(ulong)local_60 & 0xff00000000" (cast_expression "(ulong)local_60" ( (type_descriptor "ulong" type_identifier) ) identifier) & number_literal) )) >> number_literal)) | (binary_expression "((ulong)local_60 & 0xff000000) << 8" (parenthesized_expression "((ulong)local_60 & 0xff000000)" ( (binary_expression "(ulong)local_60 & 0xff000000" (cast_expression "(ulong)local_60" ( (type_descriptor "ulong" type_identifier) ) identifier) & number_literal) )) << number_literal)) | (binary_expression "((ulong)local_60 & 0xff0000) << 0x18" (parenthesized_expression "((ulong)local_60 & 0xff0000)" ( (binary_expression "(ulong)local_60 & 0xff0000" (cast_expression "(ulong)local_60" ( (type_descriptor "ulong" type_identifier) ) identifier) & number_literal) )) << number_literal)) | (binary_expression "((ulong)local_60 & 0xff00) << 0x28" (parenthesized_expression "((ulong)local_60 & 0xff00)" ( (binary_expression "(ulong)local_60 & 0xff00" (cast_expression "(ulong)local_60" ( (type_descriptor "ulong" type_identifier) ) identifier) & number_literal) )) << number_literal)) | (binary_expression "(long)local_60 << 0x38" (cast_expression "(long)local_60" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) identifier) << number_literal)) )))) ;) })) (expression_statement "local_70 = local_70 + 2;" (assignment_expression "local_70 = local_70 + 2" identifier = (binary_expression "local_70 + 2" identifier + number_literal)) ;) }))) (expression_statement "local_48 = FUN_00301dc0(*param_1,pbVar15,&local_60);" (assignment_expression "local_48 = FUN_00301dc0(*param_1,pbVar15,&local_60)" identifier = (call_expression "FUN_00301dc0(*param_1,pbVar15,&local_60)" identifier (argument_list "(*param_1,pbVar15,&local_60)" ( (pointer_expression "*param_1" * identifier) , identifier , (pointer_expression "&local_60" & identifier) )))) ;) (expression_statement "puStack_50 = local_60;" (assignment_expression "puStack_50 = local_60" identifier = identifier) ;) (if_statement "if (uVar2 != 0x31) {\n          if (uVar2 < 0x32) {\n            if ((uVar2 != 1) && (uVar2 == 3)) {\nLAB_00302f64:\n              *(uint *)(param_1 + 0xf) = local_48;\n              param_1[0xc] = (long)puStack_50;\n            }\n          }\n          else if ((uVar2 == 0x6e) || (uVar2 == 0x2007)) {\nLAB_00302fd0:\n            *(uint *)(param_1 + 0xf) = local_48;\n            param_1[0xe] = (long)puStack_50;\n          }\n        }" if (parenthesized_expression "(uVar2 != 0x31)" ( (binary_expression "uVar2 != 0x31" identifier != number_literal) )) (compound_statement "{\n          if (uVar2 < 0x32) {\n            if ((uVar2 != 1) && (uVar2 == 3)) {\nLAB_00302f64:\n              *(uint *)(param_1 + 0xf) = local_48;\n              param_1[0xc] = (long)puStack_50;\n            }\n          }\n          else if ((uVar2 == 0x6e) || (uVar2 == 0x2007)) {\nLAB_00302fd0:\n            *(uint *)(param_1 + 0xf) = local_48;\n            param_1[0xe] = (long)puStack_50;\n          }\n        }" { (if_statement "if (uVar2 < 0x32) {\n            if ((uVar2 != 1) && (uVar2 == 3)) {\nLAB_00302f64:\n              *(uint *)(param_1 + 0xf) = local_48;\n              param_1[0xc] = (long)puStack_50;\n            }\n          }\n          else if ((uVar2 == 0x6e) || (uVar2 == 0x2007)) {\nLAB_00302fd0:\n            *(uint *)(param_1 + 0xf) = local_48;\n            param_1[0xe] = (long)puStack_50;\n          }" if (parenthesized_expression "(uVar2 < 0x32)" ( (binary_expression "uVar2 < 0x32" identifier < number_literal) )) (compound_statement "{\n            if ((uVar2 != 1) && (uVar2 == 3)) {\nLAB_00302f64:\n              *(uint *)(param_1 + 0xf) = local_48;\n              param_1[0xc] = (long)puStack_50;\n            }\n          }" { (if_statement "if ((uVar2 != 1) && (uVar2 == 3)) {\nLAB_00302f64:\n              *(uint *)(param_1 + 0xf) = local_48;\n              param_1[0xc] = (long)puStack_50;\n            }" if (parenthesized_expression "((uVar2 != 1) && (uVar2 == 3))" ( (binary_expression "(uVar2 != 1) && (uVar2 == 3)" (parenthesized_expression "(uVar2 != 1)" ( (binary_expression "uVar2 != 1" identifier != number_literal) )) && (parenthesized_expression "(uVar2 == 3)" ( (binary_expression "uVar2 == 3" identifier == number_literal) ))) )) (compound_statement "{\nLAB_00302f64:\n              *(uint *)(param_1 + 0xf) = local_48;\n              param_1[0xc] = (long)puStack_50;\n            }" { (labeled_statement "LAB_00302f64:\n              *(uint *)(param_1 + 0xf) = local_48;" statement_identifier : (expression_statement "*(uint *)(param_1 + 0xf) = local_48;" (assignment_expression "*(uint *)(param_1 + 0xf) = local_48" (pointer_expression "*(uint *)(param_1 + 0xf)" * (cast_expression "(uint *)(param_1 + 0xf)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0xf)" ( (binary_expression "param_1 + 0xf" identifier + number_literal) )))) = identifier) ;)) (expression_statement "param_1[0xc] = (long)puStack_50;" (assignment_expression "param_1[0xc] = (long)puStack_50" (subscript_expression "param_1[0xc]" identifier [ number_literal ]) = (cast_expression "(long)puStack_50" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) identifier)) ;) })) }) (else_clause "else if ((uVar2 == 0x6e) || (uVar2 == 0x2007)) {\nLAB_00302fd0:\n            *(uint *)(param_1 + 0xf) = local_48;\n            param_1[0xe] = (long)puStack_50;\n          }" else (if_statement "if ((uVar2 == 0x6e) || (uVar2 == 0x2007)) {\nLAB_00302fd0:\n            *(uint *)(param_1 + 0xf) = local_48;\n            param_1[0xe] = (long)puStack_50;\n          }" if (parenthesized_expression "((uVar2 == 0x6e) || (uVar2 == 0x2007))" ( (binary_expression "(uVar2 == 0x6e) || (uVar2 == 0x2007)" (parenthesized_expression "(uVar2 == 0x6e)" ( (binary_expression "uVar2 == 0x6e" identifier == number_literal) )) || (parenthesized_expression "(uVar2 == 0x2007)" ( (binary_expression "uVar2 == 0x2007" identifier == number_literal) ))) )) (compound_statement "{\nLAB_00302fd0:\n            *(uint *)(param_1 + 0xf) = local_48;\n            param_1[0xe] = (long)puStack_50;\n          }" { (labeled_statement "LAB_00302fd0:\n            *(uint *)(param_1 + 0xf) = local_48;" statement_identifier : (expression_statement "*(uint *)(param_1 + 0xf) = local_48;" (assignment_expression "*(uint *)(param_1 + 0xf) = local_48" (pointer_expression "*(uint *)(param_1 + 0xf)" * (cast_expression "(uint *)(param_1 + 0xf)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0xf)" ( (binary_expression "param_1 + 0xf" identifier + number_literal) )))) = identifier) ;)) (expression_statement "param_1[0xe] = (long)puStack_50;" (assignment_expression "param_1[0xe] = (long)puStack_50" (subscript_expression "param_1[0xe]" identifier [ number_literal ]) = (cast_expression "(long)puStack_50" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) identifier)) ;) })))) })) (labeled_statement "LAB_00302750:\n        puVar16 = (undefined8 *)param_1[8];" statement_identifier : (expression_statement "puVar16 = (undefined8 *)param_1[8];" (assignment_expression "puVar16 = (undefined8 *)param_1[8]" identifier = (cast_expression "(undefined8 *)param_1[8]" ( (type_descriptor "undefined8 *" type_identifier (abstract_pointer_declarator "*" *)) ) (subscript_expression "param_1[8]" identifier [ number_literal ]))) ;)) (if_statement "if (puVar16 != (undefined8 *)param_1[9]) goto LAB_0030275e;" if (parenthesized_expression "(puVar16 != (undefined8 *)param_1[9])" ( (binary_expression "puVar16 != (undefined8 *)param_1[9]" identifier != (cast_expression "(undefined8 *)param_1[9]" ( (type_descriptor "undefined8 *" type_identifier (abstract_pointer_declarator "*" *)) ) (subscript_expression "param_1[9]" identifier [ number_literal ]))) )) (goto_statement "goto LAB_0030275e;" goto statement_identifier ;)) (labeled_statement "LAB_003028c0:\n        FUN_00305860(param_1 + 7,puVar16,&local_58);" statement_identifier : (expression_statement "FUN_00305860(param_1 + 7,puVar16,&local_58);" (call_expression "FUN_00305860(param_1 + 7,puVar16,&local_58)" identifier (argument_list "(param_1 + 7,puVar16,&local_58)" ( (binary_expression "param_1 + 7" identifier + number_literal) , identifier , (pointer_expression "&local_58" & identifier) ))) ;)) }) (else_clause "else {\n        if (0xe < uVar8) {\n          if (uVar8 == 0x15) {\n            bVar1 = (byte)*local_70;\n            if ((char)bVar1 < '\0') {\n              puStack_50 = (uint *)FUN_002112d0((uint *)((long)local_70 + 1),&local_68,bVar1);\n              local_70 = (uint *)(local_68 + (long)local_70);\n            }\n            else {\n              local_68 = 1;\n              local_70 = (uint *)((long)local_70 + 1);\n              puStack_50 = (uint *)(ulong)bVar1;\n            }\njoined_r0x00303052:\n            if (uVar2 != 0x31) {\n              if (uVar2 < 0x32) {\nLAB_00302c20:\n                if ((uVar2 == 1) && (local_48 == 0)) {\n                  param_1[5] = (long)puStack_50;\n                }\n                goto LAB_00302750;\n              }\n              if ((uVar2 != 0x6e) && (uVar2 != 0x2007)) {\njoined_r0x00302ce3:\n                if (uVar2 == 0x47) {\n                  param_1[0x10] = (long)puStack_50;\n                }\n                goto LAB_00302750;\n              }\nLAB_00302fb5:\n              if (uVar8 == 8) {\nLAB_003029eb:\n                param_1[0xd] = (long)puStack_50;\n              }\n              else {\nLAB_00302fbe:\n                if (uVar8 == 0xe) goto LAB_00302fd0;\n              }\n              goto LAB_00302750;\n            }\n          }\n          else {\n            if (0x15 < uVar8) {\n              if (uVar8 != 0x19) {\n                if (uVar8 < 0x1a) {\n                  if (uVar8 == 0x17) {\n                    lVar10 = *param_1;\n                    if (*(int *)(lVar10 + 0x60) == 4) {\n                      uVar9 = FUN_00305610(lVar10,&local_70);\n                      local_60 = (uint *)(ulong)uVar9;\n                    }\n                    else {\n                      plVar17 = *(long **)(lVar10 + 0x10);\nLAB_00302fe7:\n                      pcVar3 = *(code **)(*plVar17 + 0x18);\n                      if (pcVar3 == FUN_001b8d10) {\n                        cVar6 = (**(code **)(*plVar17 + 0x1d0))();\n                      }\n                      else {\n                        cVar6 = (*pcVar3)();\n                      }\n                      local_60 = *(uint **)local_70;\n                      if (cVar6 != '\0') {\n                        local_60 = (uint *)((ulong)local_60 >> 0x38 |\n                                            ((ulong)local_60 & 0xff000000000000) >> 0x28 |\n                                            ((ulong)local_60 & 0xff0000000000) >> 0x18 |\n                                            ((ulong)local_60 & 0xff00000000) >> 8 |\n                                            ((ulong)local_60 & 0xff000000) << 8 |\n                                            ((ulong)local_60 & 0xff0000) << 0x18 |\n                                            ((ulong)local_60 & 0xff00) << 0x28 |\n                                           (long)local_60 << 0x38);\n                      }\n                      local_70 = local_70 + 2;\n                    }\nLAB_00303035:\n                    local_48 = FUN_00301dc0(*param_1,pbVar15,&local_60);\n                    puStack_50 = local_60;\n                    goto joined_r0x00303052;\n                  }\n                  if (uVar8 != 0x18) {\n                    return 0;\n                  }\nLAB_00302a09:\n                  bVar1 = (byte)*local_70;\n                  uVar9 = (uint)bVar1;\n                  puVar11 = (uint *)((long)local_70 + 1);\n                  if ((char)bVar1 < '\0') {\n                    uVar9 = FUN_002112d0(puVar11,&local_68,bVar1);\n                    puVar11 = (uint *)((long)local_70 + local_68);\n                  }\n                  else {\n                    local_68 = 1;\n                  }\n                  local_70 = (uint *)((long)local_70 + uVar9 + local_68);\n                  puStack_50 = puVar11;\n                  local_48 = uVar9;\n                }\n                else {\n                  if (uVar8 == 0x20) {\n                    pcVar3 = *(code **)(**(long **)(*param_1 + 0x10) + 0x18);\n                    if (pcVar3 == FUN_001b8d10) {\n                      cVar6 = (**(code **)(**(long **)(*param_1 + 0x10) + 0x1d0))();\n                    }\n                    else {\n                      cVar6 = (*pcVar3)();\n                    }\n                    puStack_50 = *(uint **)local_70;\n                    if (cVar6 != '\0') {\n                      puStack_50 = (uint *)((ulong)puStack_50 >> 0x38 |\n                                            ((ulong)puStack_50 & 0xff000000000000) >> 0x28 |\n                                            ((ulong)puStack_50 & 0xff0000000000) >> 0x18 |\n                                            ((ulong)puStack_50 & 0xff00000000) >> 8 |\n                                            ((ulong)puStack_50 & 0xff000000) << 8 |\n                                            ((ulong)puStack_50 & 0xff0000) << 0x18 |\n                                            ((ulong)puStack_50 & 0xff00) << 0x28 |\n                                           (long)puStack_50 << 0x38);\n                    }\n                    local_70 = local_70 + 2;\n                    goto LAB_00302ea9;\n                  }\n                  if (uVar8 < 0x20) {\n                    return 0;\n                  }\n                  if (1 < uVar8 - 0x1f01) {\n                    return 0;\n                  }\nLAB_00302bcd:\n                  bVar1 = (byte)*local_70;\n                  if ((char)bVar1 < '\0') {\n                    puStack_50 = (uint *)FUN_002112d0((uint *)((long)local_70 + 1),&local_68,bVar1);\n                    local_70 = (uint *)(local_68 + (long)local_70);\n                  }\n                  else {\n                    local_68 = 1;\n                    local_70 = (uint *)((long)local_70 + 1);\n                    puStack_50 = (uint *)(ulong)bVar1;\n                  }\n                }\nLAB_00302f92:\n                if (uVar2 == 0x31) goto LAB_00302750;\n                if (0x31 < uVar2) {\n                  if ((uVar2 == 0x6e) || (uVar2 == 0x2007)) goto LAB_00302fb5;\n                  goto LAB_00302750;\n                }\n                goto LAB_00302e3e;\n              }\n              puStack_50 = (uint *)0x1;\nLAB_00302ea9:\n              if (((uVar2 == 0x31) || (0x31 < uVar2)) || (uVar2 != 3)) goto LAB_00302750;\nLAB_00302e52:\n              if (uVar8 == 8) {\nLAB_003029c7:\n                param_1[0xb] = (long)puStack_50;\n              }\n              else if (uVar8 == 0xe) goto LAB_00302f64;\n              goto LAB_00302750;\n            }\n            if (uVar8 != 0x11) {\n              if (0x11 < uVar8) {\n                if (uVar8 == 0x13) {\n                  uVar9 = FUN_00305610(*param_1,&local_70);\n                  local_60 = (uint *)(ulong)uVar9;\n                  goto LAB_00303035;\n                }\n                if (0x13 < uVar8) {\n                  plVar17 = *(long **)(*param_1 + 0x10);\n                  goto LAB_00302fe7;\n                }\n                pcVar3 = *(code **)(**(long **)(*param_1 + 0x10) + 0x18);\n                if (pcVar3 == FUN_001b8d10) {\n                  cVar6 = (**(code **)(**(long **)(*param_1 + 0x10) + 0x1d0))();\n                }\n                else {\n                  cVar6 = (*pcVar3)();\n                }\n                uVar5 = (ushort)*local_70;\n                if (cVar6 != '\0') {\n                  uVar5 = CONCAT11((byte)*local_70,*(byte *)((long)local_70 + 1));\n                }\n                local_70 = (uint *)((long)local_70 + 2);\n                puStack_50 = (uint *)(ulong)uVar5;\n                goto joined_r0x00303052;\n              }\n              if (uVar8 == 0xf) goto LAB_00302bcd;\n              if (uVar8 != 0x10) {\n                return 0;\n              }\n              lVar10 = *param_1;\n              iVar7 = *(int *)(lVar10 + 100);\n              if (2 < *(uint *)(lVar10 + 0x68)) {\n                iVar7 = *(int *)(lVar10 + 0x60);\n              }\n              if (iVar7 != 4) goto LAB_00302a71;\nLAB_00302e7d:\n              uVar8 = FUN_00305610(lVar10,&local_70);\n              local_60 = (uint *)(ulong)uVar8;\nLAB_00302abe:\n              local_48 = FUN_00301dc0(*param_1,pbVar15,&local_60);\n              puStack_50 = local_60;\n              if (uVar2 == 0x31) goto LAB_00302965;\n              if (0x31 < uVar2) goto joined_r0x00302ccc;\n              goto LAB_00302c20;\n            }\n            puVar11 = (uint *)((long)local_70 + 1);\n            puStack_50 = (uint *)(ulong)(byte)*local_70;\n            local_70 = puVar11;\n            if (uVar2 != 0x31) {\n              if (uVar2 < 0x32) {\n                if (uVar2 == 1) {\n                  param_1[5] = (long)puStack_50;\n                }\n                goto LAB_00302750;\n              }\njoined_r0x00302ccc:\n              if ((uVar2 == 0x6e) || (uVar2 == 0x2007)) goto LAB_00302750;\n              goto joined_r0x00302ce3;\n            }\n          }\nLAB_00302965:\n          param_1[0x11] = (long)puStack_50;\n          goto LAB_00302750;\n        }\n        if (uVar8 == 7) {\n          pcVar3 = *(code **)(**(long **)(*param_1 + 0x10) + 0x18);\n          if (pcVar3 == FUN_001b8d10) {\n            cVar6 = (**(code **)(**(long **)(*param_1 + 0x10) + 0x1d0))();\n          }\n          else {\n            cVar6 = (*pcVar3)();\n          }\n          local_60 = *(uint **)local_70;\n          if (cVar6 != '\0') {\n            local_60 = (uint *)((ulong)local_60 >> 0x38 |\n                                ((ulong)local_60 & 0xff000000000000) >> 0x28 |\n                                ((ulong)local_60 & 0xff0000000000) >> 0x18 |\n                                ((ulong)local_60 & 0xff00000000) >> 8 |\n                                ((ulong)local_60 & 0xff000000) << 8 |\n                                ((ulong)local_60 & 0xff0000) << 0x18 |\n                                ((ulong)local_60 & 0xff00) << 0x28 | (long)local_60 << 0x38);\n          }\n          local_70 = local_70 + 2;\nLAB_00302d40:\n          local_48 = FUN_00301dc0(*param_1,pbVar15,&local_60);\n          puStack_50 = local_60;\njoined_r0x00302748:\n          if ((uVar2 != 0x31) && (uVar2 < 0x32)) {\nLAB_00302e3e:\n            if ((uVar2 != 1) && (uVar2 == 3)) goto LAB_00302e52;\n          }\n          goto LAB_00302750;\n        }\n        if (uVar8 < 8) {\n          if (uVar8 == 4) {\n            pcVar3 = *(code **)(**(long **)(*param_1 + 0x10) + 0x18);\n            if (pcVar3 == FUN_001b8d10) {\n              cVar6 = (**(code **)(**(long **)(*param_1 + 0x10) + 0x1d0))();\n            }\n            else {\n              cVar6 = (*pcVar3)();\n            }\n            local_48 = *local_70;\n            if (cVar6 != '\0') {\n              local_48 = local_48 >> 0x18 | (local_48 & 0xff0000) >> 8 | (local_48 & 0xff00) << 8 |\n                         local_48 << 0x18;\n            }\n            puStack_50 = local_70 + 1;\n            local_70 = (uint *)((long)puStack_50 + (ulong)local_48);\n          }\n          else if (uVar8 < 5) {\n            if (uVar8 == 1) {\n              lVar10 = *param_1;\n              if (*(int *)(lVar10 + 100) == 4) goto LAB_00302e7d;\nLAB_00302a71:\n              pcVar3 = *(code **)(**(long **)(lVar10 + 0x10) + 0x18);\n              if (pcVar3 == FUN_001b8d10) {\n                cVar6 = (**(code **)(**(long **)(lVar10 + 0x10) + 0x1d0))();\n              }\n              else {\n                cVar6 = (*pcVar3)();\n              }\n              local_60 = *(uint **)local_70;\n              if (cVar6 != '\0') {\n                local_60 = (uint *)((ulong)local_60 >> 0x38 |\n                                    ((ulong)local_60 & 0xff000000000000) >> 0x28 |\n                                    ((ulong)local_60 & 0xff0000000000) >> 0x18 |\n                                    ((ulong)local_60 & 0xff00000000) >> 8 |\n                                    ((ulong)local_60 & 0xff000000) << 8 |\n                                    ((ulong)local_60 & 0xff0000) << 0x18 |\n                                    ((ulong)local_60 & 0xff00) << 0x28 | (long)local_60 << 0x38);\n              }\n              local_70 = local_70 + 2;\n              goto LAB_00302abe;\n            }\n            if (uVar8 != 3) {\n              return 0;\n            }\n            pcVar3 = *(code **)(**(long **)(*param_1 + 0x10) + 0x18);\n            if (pcVar3 == FUN_001b8d10) {\n              cVar6 = (**(code **)(**(long **)(*param_1 + 0x10) + 0x1d0))();\n            }\n            else {\n              cVar6 = (*pcVar3)();\n            }\n            uVar5 = (ushort)*local_70;\n            if (cVar6 != '\0') {\n              uVar5 = CONCAT11((byte)*local_70,*(byte *)((long)local_70 + 1));\n            }\n            local_48 = (uint)uVar5;\n            puStack_50 = (uint *)((long)local_70 + 2);\n            local_70 = (uint *)((long)puStack_50 + (ulong)local_48);\n          }\n          else {\n            if (uVar8 != 5) {\n              if (uVar8 != 6) {\n                return 0;\n              }\n              pcVar3 = *(code **)(**(long **)(*param_1 + 0x10) + 0x18);\n              if (pcVar3 == FUN_001b8d10) {\n                cVar6 = (**(code **)(**(long **)(*param_1 + 0x10) + 0x1d0))();\n              }\n              else {\n                cVar6 = (*pcVar3)();\n              }\n              uVar9 = *local_70;\n              if (cVar6 != '\0') {\n                uVar9 = uVar9 >> 0x18 | (uVar9 & 0xff0000) >> 8 | (uVar9 & 0xff00) << 8 |\n                        uVar9 << 0x18;\n              }\n              local_60 = (uint *)(ulong)uVar9;\n              local_70 = local_70 + 1;\n              goto LAB_00302d40;\n            }\n            pcVar3 = *(code **)(**(long **)(*param_1 + 0x10) + 0x18);\n            if (pcVar3 == FUN_001b8d10) {\n              cVar6 = (**(code **)(**(long **)(*param_1 + 0x10) + 0x1d0))();\n            }\n            else {\n              cVar6 = (*pcVar3)();\n            }\n            uVar5 = (ushort)*local_70;\n            if (cVar6 != '\0') {\n              uVar5 = CONCAT11((byte)*local_70,*(byte *)((long)local_70 + 1));\n            }\n            local_70 = (uint *)((long)local_70 + 2);\n            puStack_50 = (uint *)(ulong)uVar5;\n          }\n          goto joined_r0x00302748;\n        }\n        if (uVar8 == 10) {\n          puStack_50 = (uint *)((long)local_70 + 1);\n          uVar9 = *local_70;\n          local_70 = (uint *)((long)puStack_50 + (ulong)(byte)uVar9);\n          local_48 = (uint)(byte)uVar9;\n          goto joined_r0x00302748;\n        }\n        if (uVar8 < 0xb) {\n          if (uVar8 != 8) {\n            if (uVar8 != 9) {\n              return 0;\n            }\n            goto LAB_00302a09;\n          }\n          puStack_50 = local_70;\n          local_68 = strlen((char *)local_70);\n          local_70 = (uint *)((long)puVar11 + local_68 + 1);\n          if (uVar2 == 0x31) goto LAB_00302750;\n          if (0x31 < uVar2) {\n            if ((uVar2 != 0x6e) && (uVar2 != 0x2007)) goto LAB_00302750;\n            goto LAB_003029eb;\n          }\n          if ((uVar2 == 1) || (uVar2 != 3)) goto LAB_00302750;\n          goto LAB_003029c7;\n        }\n        if (uVar8 < 0xd) {\n          uVar9 = *local_70;\n          local_70 = (uint *)((long)local_70 + 1);\n          puStack_50 = (uint *)(ulong)(byte)uVar9;\n          goto LAB_00302f92;\n        }\n        bVar1 = (byte)*local_70;\n        puVar11 = (uint *)((long)local_70 + 1);\n        if ((char)bVar1 < '\0') {\n          puStack_50 = (uint *)FUN_00211340(puVar11,&local_68);\n          puVar11 = (uint *)(local_68 + (long)local_70);\n        }\n        else {\n          local_68 = 1;\n          puStack_50 = (uint *)(ulong)bVar1;\n          if ((bVar1 & 0x40) != 0) {\n            puStack_50 = (uint *)((ulong)bVar1 | 0xffffffffffffff80);\n          }\n        }\n        local_70 = puVar11;\n        if ((uVar2 == 0x31) || (uVar2 < 0x32)) goto LAB_00302750;\n        if ((uVar2 == 0x6e) || (uVar2 == 0x2007)) goto LAB_00302fbe;\n        puVar16 = (undefined8 *)param_1[8];\n        if (puVar16 == (undefined8 *)param_1[9]) goto LAB_003028c0;\nLAB_0030275e:\n        *puVar16 = CONCAT44(uStack_54,local_58);\n        puVar16[1] = puStack_50;\n        puVar16[2] = CONCAT44(uStack_44,local_48);\n        param_1[8] = (long)(puVar16 + 3);\n      }" else (compound_statement "{\n        if (0xe < uVar8) {\n          if (uVar8 == 0x15) {\n            bVar1 = (byte)*local_70;\n            if ((char)bVar1 < '\0') {\n              puStack_50 = (uint *)FUN_002112d0((uint *)((long)local_70 + 1),&local_68,bVar1);\n              local_70 = (uint *)(local_68 + (long)local_70);\n            }\n            else {\n              local_68 = 1;\n              local_70 = (uint *)((long)local_70 + 1);\n              puStack_50 = (uint *)(ulong)bVar1;\n            }\njoined_r0x00303052:\n            if (uVar2 != 0x31) {\n              if (uVar2 < 0x32) {\nLAB_00302c20:\n                if ((uVar2 == 1) && (local_48 == 0)) {\n                  param_1[5] = (long)puStack_50;\n                }\n                goto LAB_00302750;\n              }\n              if ((uVar2 != 0x6e) && (uVar2 != 0x2007)) {\njoined_r0x00302ce3:\n                if (uVar2 == 0x47) {\n                  param_1[0x10] = (long)puStack_50;\n                }\n                goto LAB_00302750;\n              }\nLAB_00302fb5:\n              if (uVar8 == 8) {\nLAB_003029eb:\n                param_1[0xd] = (long)puStack_50;\n              }\n              else {\nLAB_00302fbe:\n                if (uVar8 == 0xe) goto LAB_00302fd0;\n              }\n              goto LAB_00302750;\n            }\n          }\n          else {\n            if (0x15 < uVar8) {\n              if (uVar8 != 0x19) {\n                if (uVar8 < 0x1a) {\n                  if (uVar8 == 0x17) {\n                    lVar10 = *param_1;\n                    if (*(int *)(lVar10 + 0x60) == 4) {\n                      uVar9 = FUN_00305610(lVar10,&local_70);\n                      local_60 = (uint *)(ulong)uVar9;\n                    }\n                    else {\n                      plVar17 = *(long **)(lVar10 + 0x10);\nLAB_00302fe7:\n                      pcVar3 = *(code **)(*plVar17 + 0x18);\n                      if (pcVar3 == FUN_001b8d10) {\n                        cVar6 = (**(code **)(*plVar17 + 0x1d0))();\n                      }\n                      else {\n                        cVar6 = (*pcVar3)();\n                      }\n                      local_60 = *(uint **)local_70;\n                      if (cVar6 != '\0') {\n                        local_60 = (uint *)((ulong)local_60 >> 0x38 |\n                                            ((ulong)local_60 & 0xff000000000000) >> 0x28 |\n                                            ((ulong)local_60 & 0xff0000000000) >> 0x18 |\n                                            ((ulong)local_60 & 0xff00000000) >> 8 |\n                                            ((ulong)local_60 & 0xff000000) << 8 |\n                                            ((ulong)local_60 & 0xff0000) << 0x18 |\n                                            ((ulong)local_60 & 0xff00) << 0x28 |\n                                           (long)local_60 << 0x38);\n                      }\n                      local_70 = local_70 + 2;\n                    }\nLAB_00303035:\n                    local_48 = FUN_00301dc0(*param_1,pbVar15,&local_60);\n                    puStack_50 = local_60;\n                    goto joined_r0x00303052;\n                  }\n                  if (uVar8 != 0x18) {\n                    return 0;\n                  }\nLAB_00302a09:\n                  bVar1 = (byte)*local_70;\n                  uVar9 = (uint)bVar1;\n                  puVar11 = (uint *)((long)local_70 + 1);\n                  if ((char)bVar1 < '\0') {\n                    uVar9 = FUN_002112d0(puVar11,&local_68,bVar1);\n                    puVar11 = (uint *)((long)local_70 + local_68);\n                  }\n                  else {\n                    local_68 = 1;\n                  }\n                  local_70 = (uint *)((long)local_70 + uVar9 + local_68);\n                  puStack_50 = puVar11;\n                  local_48 = uVar9;\n                }\n                else {\n                  if (uVar8 == 0x20) {\n                    pcVar3 = *(code **)(**(long **)(*param_1 + 0x10) + 0x18);\n                    if (pcVar3 == FUN_001b8d10) {\n                      cVar6 = (**(code **)(**(long **)(*param_1 + 0x10) + 0x1d0))();\n                    }\n                    else {\n                      cVar6 = (*pcVar3)();\n                    }\n                    puStack_50 = *(uint **)local_70;\n                    if (cVar6 != '\0') {\n                      puStack_50 = (uint *)((ulong)puStack_50 >> 0x38 |\n                                            ((ulong)puStack_50 & 0xff000000000000) >> 0x28 |\n                                            ((ulong)puStack_50 & 0xff0000000000) >> 0x18 |\n                                            ((ulong)puStack_50 & 0xff00000000) >> 8 |\n                                            ((ulong)puStack_50 & 0xff000000) << 8 |\n                                            ((ulong)puStack_50 & 0xff0000) << 0x18 |\n                                            ((ulong)puStack_50 & 0xff00) << 0x28 |\n                                           (long)puStack_50 << 0x38);\n                    }\n                    local_70 = local_70 + 2;\n                    goto LAB_00302ea9;\n                  }\n                  if (uVar8 < 0x20) {\n                    return 0;\n                  }\n                  if (1 < uVar8 - 0x1f01) {\n                    return 0;\n                  }\nLAB_00302bcd:\n                  bVar1 = (byte)*local_70;\n                  if ((char)bVar1 < '\0') {\n                    puStack_50 = (uint *)FUN_002112d0((uint *)((long)local_70 + 1),&local_68,bVar1);\n                    local_70 = (uint *)(local_68 + (long)local_70);\n                  }\n                  else {\n                    local_68 = 1;\n                    local_70 = (uint *)((long)local_70 + 1);\n                    puStack_50 = (uint *)(ulong)bVar1;\n                  }\n                }\nLAB_00302f92:\n                if (uVar2 == 0x31) goto LAB_00302750;\n                if (0x31 < uVar2) {\n                  if ((uVar2 == 0x6e) || (uVar2 == 0x2007)) goto LAB_00302fb5;\n                  goto LAB_00302750;\n                }\n                goto LAB_00302e3e;\n              }\n              puStack_50 = (uint *)0x1;\nLAB_00302ea9:\n              if (((uVar2 == 0x31) || (0x31 < uVar2)) || (uVar2 != 3)) goto LAB_00302750;\nLAB_00302e52:\n              if (uVar8 == 8) {\nLAB_003029c7:\n                param_1[0xb] = (long)puStack_50;\n              }\n              else if (uVar8 == 0xe) goto LAB_00302f64;\n              goto LAB_00302750;\n            }\n            if (uVar8 != 0x11) {\n              if (0x11 < uVar8) {\n                if (uVar8 == 0x13) {\n                  uVar9 = FUN_00305610(*param_1,&local_70);\n                  local_60 = (uint *)(ulong)uVar9;\n                  goto LAB_00303035;\n                }\n                if (0x13 < uVar8) {\n                  plVar17 = *(long **)(*param_1 + 0x10);\n                  goto LAB_00302fe7;\n                }\n                pcVar3 = *(code **)(**(long **)(*param_1 + 0x10) + 0x18);\n                if (pcVar3 == FUN_001b8d10) {\n                  cVar6 = (**(code **)(**(long **)(*param_1 + 0x10) + 0x1d0))();\n                }\n                else {\n                  cVar6 = (*pcVar3)();\n                }\n                uVar5 = (ushort)*local_70;\n                if (cVar6 != '\0') {\n                  uVar5 = CONCAT11((byte)*local_70,*(byte *)((long)local_70 + 1));\n                }\n                local_70 = (uint *)((long)local_70 + 2);\n                puStack_50 = (uint *)(ulong)uVar5;\n                goto joined_r0x00303052;\n              }\n              if (uVar8 == 0xf) goto LAB_00302bcd;\n              if (uVar8 != 0x10) {\n                return 0;\n              }\n              lVar10 = *param_1;\n              iVar7 = *(int *)(lVar10 + 100);\n              if (2 < *(uint *)(lVar10 + 0x68)) {\n                iVar7 = *(int *)(lVar10 + 0x60);\n              }\n              if (iVar7 != 4) goto LAB_00302a71;\nLAB_00302e7d:\n              uVar8 = FUN_00305610(lVar10,&local_70);\n              local_60 = (uint *)(ulong)uVar8;\nLAB_00302abe:\n              local_48 = FUN_00301dc0(*param_1,pbVar15,&local_60);\n              puStack_50 = local_60;\n              if (uVar2 == 0x31) goto LAB_00302965;\n              if (0x31 < uVar2) goto joined_r0x00302ccc;\n              goto LAB_00302c20;\n            }\n            puVar11 = (uint *)((long)local_70 + 1);\n            puStack_50 = (uint *)(ulong)(byte)*local_70;\n            local_70 = puVar11;\n            if (uVar2 != 0x31) {\n              if (uVar2 < 0x32) {\n                if (uVar2 == 1) {\n                  param_1[5] = (long)puStack_50;\n                }\n                goto LAB_00302750;\n              }\njoined_r0x00302ccc:\n              if ((uVar2 == 0x6e) || (uVar2 == 0x2007)) goto LAB_00302750;\n              goto joined_r0x00302ce3;\n            }\n          }\nLAB_00302965:\n          param_1[0x11] = (long)puStack_50;\n          goto LAB_00302750;\n        }\n        if (uVar8 == 7) {\n          pcVar3 = *(code **)(**(long **)(*param_1 + 0x10) + 0x18);\n          if (pcVar3 == FUN_001b8d10) {\n            cVar6 = (**(code **)(**(long **)(*param_1 + 0x10) + 0x1d0))();\n          }\n          else {\n            cVar6 = (*pcVar3)();\n          }\n          local_60 = *(uint **)local_70;\n          if (cVar6 != '\0') {\n            local_60 = (uint *)((ulong)local_60 >> 0x38 |\n                                ((ulong)local_60 & 0xff000000000000) >> 0x28 |\n                                ((ulong)local_60 & 0xff0000000000) >> 0x18 |\n                                ((ulong)local_60 & 0xff00000000) >> 8 |\n                                ((ulong)local_60 & 0xff000000) << 8 |\n                                ((ulong)local_60 & 0xff0000) << 0x18 |\n                                ((ulong)local_60 & 0xff00) << 0x28 | (long)local_60 << 0x38);\n          }\n          local_70 = local_70 + 2;\nLAB_00302d40:\n          local_48 = FUN_00301dc0(*param_1,pbVar15,&local_60);\n          puStack_50 = local_60;\njoined_r0x00302748:\n          if ((uVar2 != 0x31) && (uVar2 < 0x32)) {\nLAB_00302e3e:\n            if ((uVar2 != 1) && (uVar2 == 3)) goto LAB_00302e52;\n          }\n          goto LAB_00302750;\n        }\n        if (uVar8 < 8) {\n          if (uVar8 == 4) {\n            pcVar3 = *(code **)(**(long **)(*param_1 + 0x10) + 0x18);\n            if (pcVar3 == FUN_001b8d10) {\n              cVar6 = (**(code **)(**(long **)(*param_1 + 0x10) + 0x1d0))();\n            }\n            else {\n              cVar6 = (*pcVar3)();\n            }\n            local_48 = *local_70;\n            if (cVar6 != '\0') {\n              local_48 = local_48 >> 0x18 | (local_48 & 0xff0000) >> 8 | (local_48 & 0xff00) << 8 |\n                         local_48 << 0x18;\n            }\n            puStack_50 = local_70 + 1;\n            local_70 = (uint *)((long)puStack_50 + (ulong)local_48);\n          }\n          else if (uVar8 < 5) {\n            if (uVar8 == 1) {\n              lVar10 = *param_1;\n              if (*(int *)(lVar10 + 100) == 4) goto LAB_00302e7d;\nLAB_00302a71:\n              pcVar3 = *(code **)(**(long **)(lVar10 + 0x10) + 0x18);\n              if (pcVar3 == FUN_001b8d10) {\n                cVar6 = (**(code **)(**(long **)(lVar10 + 0x10) + 0x1d0))();\n              }\n              else {\n                cVar6 = (*pcVar3)();\n              }\n              local_60 = *(uint **)local_70;\n              if (cVar6 != '\0') {\n                local_60 = (uint *)((ulong)local_60 >> 0x38 |\n                                    ((ulong)local_60 & 0xff000000000000) >> 0x28 |\n                                    ((ulong)local_60 & 0xff0000000000) >> 0x18 |\n                                    ((ulong)local_60 & 0xff00000000) >> 8 |\n                                    ((ulong)local_60 & 0xff000000) << 8 |\n                                    ((ulong)local_60 & 0xff0000) << 0x18 |\n                                    ((ulong)local_60 & 0xff00) << 0x28 | (long)local_60 << 0x38);\n              }\n              local_70 = local_70 + 2;\n              goto LAB_00302abe;\n            }\n            if (uVar8 != 3) {\n              return 0;\n            }\n            pcVar3 = *(code **)(**(long **)(*param_1 + 0x10) + 0x18);\n            if (pcVar3 == FUN_001b8d10) {\n              cVar6 = (**(code **)(**(long **)(*param_1 + 0x10) + 0x1d0))();\n            }\n            else {\n              cVar6 = (*pcVar3)();\n            }\n            uVar5 = (ushort)*local_70;\n            if (cVar6 != '\0') {\n              uVar5 = CONCAT11((byte)*local_70,*(byte *)((long)local_70 + 1));\n            }\n            local_48 = (uint)uVar5;\n            puStack_50 = (uint *)((long)local_70 + 2);\n            local_70 = (uint *)((long)puStack_50 + (ulong)local_48);\n          }\n          else {\n            if (uVar8 != 5) {\n              if (uVar8 != 6) {\n                return 0;\n              }\n              pcVar3 = *(code **)(**(long **)(*param_1 + 0x10) + 0x18);\n              if (pcVar3 == FUN_001b8d10) {\n                cVar6 = (**(code **)(**(long **)(*param_1 + 0x10) + 0x1d0))();\n              }\n              else {\n                cVar6 = (*pcVar3)();\n              }\n              uVar9 = *local_70;\n              if (cVar6 != '\0') {\n                uVar9 = uVar9 >> 0x18 | (uVar9 & 0xff0000) >> 8 | (uVar9 & 0xff00) << 8 |\n                        uVar9 << 0x18;\n              }\n              local_60 = (uint *)(ulong)uVar9;\n              local_70 = local_70 + 1;\n              goto LAB_00302d40;\n            }\n            pcVar3 = *(code **)(**(long **)(*param_1 + 0x10) + 0x18);\n            if (pcVar3 == FUN_001b8d10) {\n              cVar6 = (**(code **)(**(long **)(*param_1 + 0x10) + 0x1d0))();\n            }\n            else {\n              cVar6 = (*pcVar3)();\n            }\n            uVar5 = (ushort)*local_70;\n            if (cVar6 != '\0') {\n              uVar5 = CONCAT11((byte)*local_70,*(byte *)((long)local_70 + 1));\n            }\n            local_70 = (uint *)((long)local_70 + 2);\n            puStack_50 = (uint *)(ulong)uVar5;\n          }\n          goto joined_r0x00302748;\n        }\n        if (uVar8 == 10) {\n          puStack_50 = (uint *)((long)local_70 + 1);\n          uVar9 = *local_70;\n          local_70 = (uint *)((long)puStack_50 + (ulong)(byte)uVar9);\n          local_48 = (uint)(byte)uVar9;\n          goto joined_r0x00302748;\n        }\n        if (uVar8 < 0xb) {\n          if (uVar8 != 8) {\n            if (uVar8 != 9) {\n              return 0;\n            }\n            goto LAB_00302a09;\n          }\n          puStack_50 = local_70;\n          local_68 = strlen((char *)local_70);\n          local_70 = (uint *)((long)puVar11 + local_68 + 1);\n          if (uVar2 == 0x31) goto LAB_00302750;\n          if (0x31 < uVar2) {\n            if ((uVar2 != 0x6e) && (uVar2 != 0x2007)) goto LAB_00302750;\n            goto LAB_003029eb;\n          }\n          if ((uVar2 == 1) || (uVar2 != 3)) goto LAB_00302750;\n          goto LAB_003029c7;\n        }\n        if (uVar8 < 0xd) {\n          uVar9 = *local_70;\n          local_70 = (uint *)((long)local_70 + 1);\n          puStack_50 = (uint *)(ulong)(byte)uVar9;\n          goto LAB_00302f92;\n        }\n        bVar1 = (byte)*local_70;\n        puVar11 = (uint *)((long)local_70 + 1);\n        if ((char)bVar1 < '\0') {\n          puStack_50 = (uint *)FUN_00211340(puVar11,&local_68);\n          puVar11 = (uint *)(local_68 + (long)local_70);\n        }\n        else {\n          local_68 = 1;\n          puStack_50 = (uint *)(ulong)bVar1;\n          if ((bVar1 & 0x40) != 0) {\n            puStack_50 = (uint *)((ulong)bVar1 | 0xffffffffffffff80);\n          }\n        }\n        local_70 = puVar11;\n        if ((uVar2 == 0x31) || (uVar2 < 0x32)) goto LAB_00302750;\n        if ((uVar2 == 0x6e) || (uVar2 == 0x2007)) goto LAB_00302fbe;\n        puVar16 = (undefined8 *)param_1[8];\n        if (puVar16 == (undefined8 *)param_1[9]) goto LAB_003028c0;\nLAB_0030275e:\n        *puVar16 = CONCAT44(uStack_54,local_58);\n        puVar16[1] = puStack_50;\n        puVar16[2] = CONCAT44(uStack_44,local_48);\n        param_1[8] = (long)(puVar16 + 3);\n      }" { (if_statement "if (0xe < uVar8) {\n          if (uVar8 == 0x15) {\n            bVar1 = (byte)*local_70;\n            if ((char)bVar1 < '\0') {\n              puStack_50 = (uint *)FUN_002112d0((uint *)((long)local_70 + 1),&local_68,bVar1);\n              local_70 = (uint *)(local_68 + (long)local_70);\n            }\n            else {\n              local_68 = 1;\n              local_70 = (uint *)((long)local_70 + 1);\n              puStack_50 = (uint *)(ulong)bVar1;\n            }\njoined_r0x00303052:\n            if (uVar2 != 0x31) {\n              if (uVar2 < 0x32) {\nLAB_00302c20:\n                if ((uVar2 == 1) && (local_48 == 0)) {\n                  param_1[5] = (long)puStack_50;\n                }\n                goto LAB_00302750;\n              }\n              if ((uVar2 != 0x6e) && (uVar2 != 0x2007)) {\njoined_r0x00302ce3:\n                if (uVar2 == 0x47) {\n                  param_1[0x10] = (long)puStack_50;\n                }\n                goto LAB_00302750;\n              }\nLAB_00302fb5:\n              if (uVar8 == 8) {\nLAB_003029eb:\n                param_1[0xd] = (long)puStack_50;\n              }\n              else {\nLAB_00302fbe:\n                if (uVar8 == 0xe) goto LAB_00302fd0;\n              }\n              goto LAB_00302750;\n            }\n          }\n          else {\n            if (0x15 < uVar8) {\n              if (uVar8 != 0x19) {\n                if (uVar8 < 0x1a) {\n                  if (uVar8 == 0x17) {\n                    lVar10 = *param_1;\n                    if (*(int *)(lVar10 + 0x60) == 4) {\n                      uVar9 = FUN_00305610(lVar10,&local_70);\n                      local_60 = (uint *)(ulong)uVar9;\n                    }\n                    else {\n                      plVar17 = *(long **)(lVar10 + 0x10);\nLAB_00302fe7:\n                      pcVar3 = *(code **)(*plVar17 + 0x18);\n                      if (pcVar3 == FUN_001b8d10) {\n                        cVar6 = (**(code **)(*plVar17 + 0x1d0))();\n                      }\n                      else {\n                        cVar6 = (*pcVar3)();\n                      }\n                      local_60 = *(uint **)local_70;\n                      if (cVar6 != '\0') {\n                        local_60 = (uint *)((ulong)local_60 >> 0x38 |\n                                            ((ulong)local_60 & 0xff000000000000) >> 0x28 |\n                                            ((ulong)local_60 & 0xff0000000000) >> 0x18 |\n                                            ((ulong)local_60 & 0xff00000000) >> 8 |\n                                            ((ulong)local_60 & 0xff000000) << 8 |\n                                            ((ulong)local_60 & 0xff0000) << 0x18 |\n                                            ((ulong)local_60 & 0xff00) << 0x28 |\n                                           (long)local_60 << 0x38);\n                      }\n                      local_70 = local_70 + 2;\n                    }\nLAB_00303035:\n                    local_48 = FUN_00301dc0(*param_1,pbVar15,&local_60);\n                    puStack_50 = local_60;\n                    goto joined_r0x00303052;\n                  }\n                  if (uVar8 != 0x18) {\n                    return 0;\n                  }\nLAB_00302a09:\n                  bVar1 = (byte)*local_70;\n                  uVar9 = (uint)bVar1;\n                  puVar11 = (uint *)((long)local_70 + 1);\n                  if ((char)bVar1 < '\0') {\n                    uVar9 = FUN_002112d0(puVar11,&local_68,bVar1);\n                    puVar11 = (uint *)((long)local_70 + local_68);\n                  }\n                  else {\n                    local_68 = 1;\n                  }\n                  local_70 = (uint *)((long)local_70 + uVar9 + local_68);\n                  puStack_50 = puVar11;\n                  local_48 = uVar9;\n                }\n                else {\n                  if (uVar8 == 0x20) {\n                    pcVar3 = *(code **)(**(long **)(*param_1 + 0x10) + 0x18);\n                    if (pcVar3 == FUN_001b8d10) {\n                      cVar6 = (**(code **)(**(long **)(*param_1 + 0x10) + 0x1d0))();\n                    }\n                    else {\n                      cVar6 = (*pcVar3)();\n                    }\n                    puStack_50 = *(uint **)local_70;\n                    if (cVar6 != '\0') {\n                      puStack_50 = (uint *)((ulong)puStack_50 >> 0x38 |\n                                            ((ulong)puStack_50 & 0xff000000000000) >> 0x28 |\n                                            ((ulong)puStack_50 & 0xff0000000000) >> 0x18 |\n                                            ((ulong)puStack_50 & 0xff00000000) >> 8 |\n                                            ((ulong)puStack_50 & 0xff000000) << 8 |\n                                            ((ulong)puStack_50 & 0xff0000) << 0x18 |\n                                            ((ulong)puStack_50 & 0xff00) << 0x28 |\n                                           (long)puStack_50 << 0x38);\n                    }\n                    local_70 = local_70 + 2;\n                    goto LAB_00302ea9;\n                  }\n                  if (uVar8 < 0x20) {\n                    return 0;\n                  }\n                  if (1 < uVar8 - 0x1f01) {\n                    return 0;\n                  }\nLAB_00302bcd:\n                  bVar1 = (byte)*local_70;\n                  if ((char)bVar1 < '\0') {\n                    puStack_50 = (uint *)FUN_002112d0((uint *)((long)local_70 + 1),&local_68,bVar1);\n                    local_70 = (uint *)(local_68 + (long)local_70);\n                  }\n                  else {\n                    local_68 = 1;\n                    local_70 = (uint *)((long)local_70 + 1);\n                    puStack_50 = (uint *)(ulong)bVar1;\n                  }\n                }\nLAB_00302f92:\n                if (uVar2 == 0x31) goto LAB_00302750;\n                if (0x31 < uVar2) {\n                  if ((uVar2 == 0x6e) || (uVar2 == 0x2007)) goto LAB_00302fb5;\n                  goto LAB_00302750;\n                }\n                goto LAB_00302e3e;\n              }\n              puStack_50 = (uint *)0x1;\nLAB_00302ea9:\n              if (((uVar2 == 0x31) || (0x31 < uVar2)) || (uVar2 != 3)) goto LAB_00302750;\nLAB_00302e52:\n              if (uVar8 == 8) {\nLAB_003029c7:\n                param_1[0xb] = (long)puStack_50;\n              }\n              else if (uVar8 == 0xe) goto LAB_00302f64;\n              goto LAB_00302750;\n            }\n            if (uVar8 != 0x11) {\n              if (0x11 < uVar8) {\n                if (uVar8 == 0x13) {\n                  uVar9 = FUN_00305610(*param_1,&local_70);\n                  local_60 = (uint *)(ulong)uVar9;\n                  goto LAB_00303035;\n                }\n                if (0x13 < uVar8) {\n                  plVar17 = *(long **)(*param_1 + 0x10);\n                  goto LAB_00302fe7;\n                }\n                pcVar3 = *(code **)(**(long **)(*param_1 + 0x10) + 0x18);\n                if (pcVar3 == FUN_001b8d10) {\n                  cVar6 = (**(code **)(**(long **)(*param_1 + 0x10) + 0x1d0))();\n                }\n                else {\n                  cVar6 = (*pcVar3)();\n                }\n                uVar5 = (ushort)*local_70;\n                if (cVar6 != '\0') {\n                  uVar5 = CONCAT11((byte)*local_70,*(byte *)((long)local_70 + 1));\n                }\n                local_70 = (uint *)((long)local_70 + 2);\n                puStack_50 = (uint *)(ulong)uVar5;\n                goto joined_r0x00303052;\n              }\n              if (uVar8 == 0xf) goto LAB_00302bcd;\n              if (uVar8 != 0x10) {\n                return 0;\n              }\n              lVar10 = *param_1;\n              iVar7 = *(int *)(lVar10 + 100);\n              if (2 < *(uint *)(lVar10 + 0x68)) {\n                iVar7 = *(int *)(lVar10 + 0x60);\n              }\n              if (iVar7 != 4) goto LAB_00302a71;\nLAB_00302e7d:\n              uVar8 = FUN_00305610(lVar10,&local_70);\n              local_60 = (uint *)(ulong)uVar8;\nLAB_00302abe:\n              local_48 = FUN_00301dc0(*param_1,pbVar15,&local_60);\n              puStack_50 = local_60;\n              if (uVar2 == 0x31) goto LAB_00302965;\n              if (0x31 < uVar2) goto joined_r0x00302ccc;\n              goto LAB_00302c20;\n            }\n            puVar11 = (uint *)((long)local_70 + 1);\n            puStack_50 = (uint *)(ulong)(byte)*local_70;\n            local_70 = puVar11;\n            if (uVar2 != 0x31) {\n              if (uVar2 < 0x32) {\n                if (uVar2 == 1) {\n                  param_1[5] = (long)puStack_50;\n                }\n                goto LAB_00302750;\n              }\njoined_r0x00302ccc:\n              if ((uVar2 == 0x6e) || (uVar2 == 0x2007)) goto LAB_00302750;\n              goto joined_r0x00302ce3;\n            }\n          }\nLAB_00302965:\n          param_1[0x11] = (long)puStack_50;\n          goto LAB_00302750;\n        }" if (parenthesized_expression "(0xe < uVar8)" ( (binary_expression "0xe < uVar8" number_literal < identifier) )) (compound_statement "{\n          if (uVar8 == 0x15) {\n            bVar1 = (byte)*local_70;\n            if ((char)bVar1 < '\0') {\n              puStack_50 = (uint *)FUN_002112d0((uint *)((long)local_70 + 1),&local_68,bVar1);\n              local_70 = (uint *)(local_68 + (long)local_70);\n            }\n            else {\n              local_68 = 1;\n              local_70 = (uint *)((long)local_70 + 1);\n              puStack_50 = (uint *)(ulong)bVar1;\n            }\njoined_r0x00303052:\n            if (uVar2 != 0x31) {\n              if (uVar2 < 0x32) {\nLAB_00302c20:\n                if ((uVar2 == 1) && (local_48 == 0)) {\n                  param_1[5] = (long)puStack_50;\n                }\n                goto LAB_00302750;\n              }\n              if ((uVar2 != 0x6e) && (uVar2 != 0x2007)) {\njoined_r0x00302ce3:\n                if (uVar2 == 0x47) {\n                  param_1[0x10] = (long)puStack_50;\n                }\n                goto LAB_00302750;\n              }\nLAB_00302fb5:\n              if (uVar8 == 8) {\nLAB_003029eb:\n                param_1[0xd] = (long)puStack_50;\n              }\n              else {\nLAB_00302fbe:\n                if (uVar8 == 0xe) goto LAB_00302fd0;\n              }\n              goto LAB_00302750;\n            }\n          }\n          else {\n            if (0x15 < uVar8) {\n              if (uVar8 != 0x19) {\n                if (uVar8 < 0x1a) {\n                  if (uVar8 == 0x17) {\n                    lVar10 = *param_1;\n                    if (*(int *)(lVar10 + 0x60) == 4) {\n                      uVar9 = FUN_00305610(lVar10,&local_70);\n                      local_60 = (uint *)(ulong)uVar9;\n                    }\n                    else {\n                      plVar17 = *(long **)(lVar10 + 0x10);\nLAB_00302fe7:\n                      pcVar3 = *(code **)(*plVar17 + 0x18);\n                      if (pcVar3 == FUN_001b8d10) {\n                        cVar6 = (**(code **)(*plVar17 + 0x1d0))();\n                      }\n                      else {\n                        cVar6 = (*pcVar3)();\n                      }\n                      local_60 = *(uint **)local_70;\n                      if (cVar6 != '\0') {\n                        local_60 = (uint *)((ulong)local_60 >> 0x38 |\n                                            ((ulong)local_60 & 0xff000000000000) >> 0x28 |\n                                            ((ulong)local_60 & 0xff0000000000) >> 0x18 |\n                                            ((ulong)local_60 & 0xff00000000) >> 8 |\n                                            ((ulong)local_60 & 0xff000000) << 8 |\n                                            ((ulong)local_60 & 0xff0000) << 0x18 |\n                                            ((ulong)local_60 & 0xff00) << 0x28 |\n                                           (long)local_60 << 0x38);\n                      }\n                      local_70 = local_70 + 2;\n                    }\nLAB_00303035:\n                    local_48 = FUN_00301dc0(*param_1,pbVar15,&local_60);\n                    puStack_50 = local_60;\n                    goto joined_r0x00303052;\n                  }\n                  if (uVar8 != 0x18) {\n                    return 0;\n                  }\nLAB_00302a09:\n                  bVar1 = (byte)*local_70;\n                  uVar9 = (uint)bVar1;\n                  puVar11 = (uint *)((long)local_70 + 1);\n                  if ((char)bVar1 < '\0') {\n                    uVar9 = FUN_002112d0(puVar11,&local_68,bVar1);\n                    puVar11 = (uint *)((long)local_70 + local_68);\n                  }\n                  else {\n                    local_68 = 1;\n                  }\n                  local_70 = (uint *)((long)local_70 + uVar9 + local_68);\n                  puStack_50 = puVar11;\n                  local_48 = uVar9;\n                }\n                else {\n                  if (uVar8 == 0x20) {\n                    pcVar3 = *(code **)(**(long **)(*param_1 + 0x10) + 0x18);\n                    if (pcVar3 == FUN_001b8d10) {\n                      cVar6 = (**(code **)(**(long **)(*param_1 + 0x10) + 0x1d0))();\n                    }\n                    else {\n                      cVar6 = (*pcVar3)();\n                    }\n                    puStack_50 = *(uint **)local_70;\n                    if (cVar6 != '\0') {\n                      puStack_50 = (uint *)((ulong)puStack_50 >> 0x38 |\n                                            ((ulong)puStack_50 & 0xff000000000000) >> 0x28 |\n                                            ((ulong)puStack_50 & 0xff0000000000) >> 0x18 |\n                                            ((ulong)puStack_50 & 0xff00000000) >> 8 |\n                                            ((ulong)puStack_50 & 0xff000000) << 8 |\n                                            ((ulong)puStack_50 & 0xff0000) << 0x18 |\n                                            ((ulong)puStack_50 & 0xff00) << 0x28 |\n                                           (long)puStack_50 << 0x38);\n                    }\n                    local_70 = local_70 + 2;\n                    goto LAB_00302ea9;\n                  }\n                  if (uVar8 < 0x20) {\n                    return 0;\n                  }\n                  if (1 < uVar8 - 0x1f01) {\n                    return 0;\n                  }\nLAB_00302bcd:\n                  bVar1 = (byte)*local_70;\n                  if ((char)bVar1 < '\0') {\n                    puStack_50 = (uint *)FUN_002112d0((uint *)((long)local_70 + 1),&local_68,bVar1);\n                    local_70 = (uint *)(local_68 + (long)local_70);\n                  }\n                  else {\n                    local_68 = 1;\n                    local_70 = (uint *)((long)local_70 + 1);\n                    puStack_50 = (uint *)(ulong)bVar1;\n                  }\n                }\nLAB_00302f92:\n                if (uVar2 == 0x31) goto LAB_00302750;\n                if (0x31 < uVar2) {\n                  if ((uVar2 == 0x6e) || (uVar2 == 0x2007)) goto LAB_00302fb5;\n                  goto LAB_00302750;\n                }\n                goto LAB_00302e3e;\n              }\n              puStack_50 = (uint *)0x1;\nLAB_00302ea9:\n              if (((uVar2 == 0x31) || (0x31 < uVar2)) || (uVar2 != 3)) goto LAB_00302750;\nLAB_00302e52:\n              if (uVar8 == 8) {\nLAB_003029c7:\n                param_1[0xb] = (long)puStack_50;\n              }\n              else if (uVar8 == 0xe) goto LAB_00302f64;\n              goto LAB_00302750;\n            }\n            if (uVar8 != 0x11) {\n              if (0x11 < uVar8) {\n                if (uVar8 == 0x13) {\n                  uVar9 = FUN_00305610(*param_1,&local_70);\n                  local_60 = (uint *)(ulong)uVar9;\n                  goto LAB_00303035;\n                }\n                if (0x13 < uVar8) {\n                  plVar17 = *(long **)(*param_1 + 0x10);\n                  goto LAB_00302fe7;\n                }\n                pcVar3 = *(code **)(**(long **)(*param_1 + 0x10) + 0x18);\n                if (pcVar3 == FUN_001b8d10) {\n                  cVar6 = (**(code **)(**(long **)(*param_1 + 0x10) + 0x1d0))();\n                }\n                else {\n                  cVar6 = (*pcVar3)();\n                }\n                uVar5 = (ushort)*local_70;\n                if (cVar6 != '\0') {\n                  uVar5 = CONCAT11((byte)*local_70,*(byte *)((long)local_70 + 1));\n                }\n                local_70 = (uint *)((long)local_70 + 2);\n                puStack_50 = (uint *)(ulong)uVar5;\n                goto joined_r0x00303052;\n              }\n              if (uVar8 == 0xf) goto LAB_00302bcd;\n              if (uVar8 != 0x10) {\n                return 0;\n              }\n              lVar10 = *param_1;\n              iVar7 = *(int *)(lVar10 + 100);\n              if (2 < *(uint *)(lVar10 + 0x68)) {\n                iVar7 = *(int *)(lVar10 + 0x60);\n              }\n              if (iVar7 != 4) goto LAB_00302a71;\nLAB_00302e7d:\n              uVar8 = FUN_00305610(lVar10,&local_70);\n              local_60 = (uint *)(ulong)uVar8;\nLAB_00302abe:\n              local_48 = FUN_00301dc0(*param_1,pbVar15,&local_60);\n              puStack_50 = local_60;\n              if (uVar2 == 0x31) goto LAB_00302965;\n              if (0x31 < uVar2) goto joined_r0x00302ccc;\n              goto LAB_00302c20;\n            }\n            puVar11 = (uint *)((long)local_70 + 1);\n            puStack_50 = (uint *)(ulong)(byte)*local_70;\n            local_70 = puVar11;\n            if (uVar2 != 0x31) {\n              if (uVar2 < 0x32) {\n                if (uVar2 == 1) {\n                  param_1[5] = (long)puStack_50;\n                }\n                goto LAB_00302750;\n              }\njoined_r0x00302ccc:\n              if ((uVar2 == 0x6e) || (uVar2 == 0x2007)) goto LAB_00302750;\n              goto joined_r0x00302ce3;\n            }\n          }\nLAB_00302965:\n          param_1[0x11] = (long)puStack_50;\n          goto LAB_00302750;\n        }" { (if_statement "if (uVar8 == 0x15) {\n            bVar1 = (byte)*local_70;\n            if ((char)bVar1 < '\0') {\n              puStack_50 = (uint *)FUN_002112d0((uint *)((long)local_70 + 1),&local_68,bVar1);\n              local_70 = (uint *)(local_68 + (long)local_70);\n            }\n            else {\n              local_68 = 1;\n              local_70 = (uint *)((long)local_70 + 1);\n              puStack_50 = (uint *)(ulong)bVar1;\n            }\njoined_r0x00303052:\n            if (uVar2 != 0x31) {\n              if (uVar2 < 0x32) {\nLAB_00302c20:\n                if ((uVar2 == 1) && (local_48 == 0)) {\n                  param_1[5] = (long)puStack_50;\n                }\n                goto LAB_00302750;\n              }\n              if ((uVar2 != 0x6e) && (uVar2 != 0x2007)) {\njoined_r0x00302ce3:\n                if (uVar2 == 0x47) {\n                  param_1[0x10] = (long)puStack_50;\n                }\n                goto LAB_00302750;\n              }\nLAB_00302fb5:\n              if (uVar8 == 8) {\nLAB_003029eb:\n                param_1[0xd] = (long)puStack_50;\n              }\n              else {\nLAB_00302fbe:\n                if (uVar8 == 0xe) goto LAB_00302fd0;\n              }\n              goto LAB_00302750;\n            }\n          }\n          else {\n            if (0x15 < uVar8) {\n              if (uVar8 != 0x19) {\n                if (uVar8 < 0x1a) {\n                  if (uVar8 == 0x17) {\n                    lVar10 = *param_1;\n                    if (*(int *)(lVar10 + 0x60) == 4) {\n                      uVar9 = FUN_00305610(lVar10,&local_70);\n                      local_60 = (uint *)(ulong)uVar9;\n                    }\n                    else {\n                      plVar17 = *(long **)(lVar10 + 0x10);\nLAB_00302fe7:\n                      pcVar3 = *(code **)(*plVar17 + 0x18);\n                      if (pcVar3 == FUN_001b8d10) {\n                        cVar6 = (**(code **)(*plVar17 + 0x1d0))();\n                      }\n                      else {\n                        cVar6 = (*pcVar3)();\n                      }\n                      local_60 = *(uint **)local_70;\n                      if (cVar6 != '\0') {\n                        local_60 = (uint *)((ulong)local_60 >> 0x38 |\n                                            ((ulong)local_60 & 0xff000000000000) >> 0x28 |\n                                            ((ulong)local_60 & 0xff0000000000) >> 0x18 |\n                                            ((ulong)local_60 & 0xff00000000) >> 8 |\n                                            ((ulong)local_60 & 0xff000000) << 8 |\n                                            ((ulong)local_60 & 0xff0000) << 0x18 |\n                                            ((ulong)local_60 & 0xff00) << 0x28 |\n                                           (long)local_60 << 0x38);\n                      }\n                      local_70 = local_70 + 2;\n                    }\nLAB_00303035:\n                    local_48 = FUN_00301dc0(*param_1,pbVar15,&local_60);\n                    puStack_50 = local_60;\n                    goto joined_r0x00303052;\n                  }\n                  if (uVar8 != 0x18) {\n                    return 0;\n                  }\nLAB_00302a09:\n                  bVar1 = (byte)*local_70;\n                  uVar9 = (uint)bVar1;\n                  puVar11 = (uint *)((long)local_70 + 1);\n                  if ((char)bVar1 < '\0') {\n                    uVar9 = FUN_002112d0(puVar11,&local_68,bVar1);\n                    puVar11 = (uint *)((long)local_70 + local_68);\n                  }\n                  else {\n                    local_68 = 1;\n                  }\n                  local_70 = (uint *)((long)local_70 + uVar9 + local_68);\n                  puStack_50 = puVar11;\n                  local_48 = uVar9;\n                }\n                else {\n                  if (uVar8 == 0x20) {\n                    pcVar3 = *(code **)(**(long **)(*param_1 + 0x10) + 0x18);\n                    if (pcVar3 == FUN_001b8d10) {\n                      cVar6 = (**(code **)(**(long **)(*param_1 + 0x10) + 0x1d0))();\n                    }\n                    else {\n                      cVar6 = (*pcVar3)();\n                    }\n                    puStack_50 = *(uint **)local_70;\n                    if (cVar6 != '\0') {\n                      puStack_50 = (uint *)((ulong)puStack_50 >> 0x38 |\n                                            ((ulong)puStack_50 & 0xff000000000000) >> 0x28 |\n                                            ((ulong)puStack_50 & 0xff0000000000) >> 0x18 |\n                                            ((ulong)puStack_50 & 0xff00000000) >> 8 |\n                                            ((ulong)puStack_50 & 0xff000000) << 8 |\n                                            ((ulong)puStack_50 & 0xff0000) << 0x18 |\n                                            ((ulong)puStack_50 & 0xff00) << 0x28 |\n                                           (long)puStack_50 << 0x38);\n                    }\n                    local_70 = local_70 + 2;\n                    goto LAB_00302ea9;\n                  }\n                  if (uVar8 < 0x20) {\n                    return 0;\n                  }\n                  if (1 < uVar8 - 0x1f01) {\n                    return 0;\n                  }\nLAB_00302bcd:\n                  bVar1 = (byte)*local_70;\n                  if ((char)bVar1 < '\0') {\n                    puStack_50 = (uint *)FUN_002112d0((uint *)((long)local_70 + 1),&local_68,bVar1);\n                    local_70 = (uint *)(local_68 + (long)local_70);\n                  }\n                  else {\n                    local_68 = 1;\n                    local_70 = (uint *)((long)local_70 + 1);\n                    puStack_50 = (uint *)(ulong)bVar1;\n                  }\n                }\nLAB_00302f92:\n                if (uVar2 == 0x31) goto LAB_00302750;\n                if (0x31 < uVar2) {\n                  if ((uVar2 == 0x6e) || (uVar2 == 0x2007)) goto LAB_00302fb5;\n                  goto LAB_00302750;\n                }\n                goto LAB_00302e3e;\n              }\n              puStack_50 = (uint *)0x1;\nLAB_00302ea9:\n              if (((uVar2 == 0x31) || (0x31 < uVar2)) || (uVar2 != 3)) goto LAB_00302750;\nLAB_00302e52:\n              if (uVar8 == 8) {\nLAB_003029c7:\n                param_1[0xb] = (long)puStack_50;\n              }\n              else if (uVar8 == 0xe) goto LAB_00302f64;\n              goto LAB_00302750;\n            }\n            if (uVar8 != 0x11) {\n              if (0x11 < uVar8) {\n                if (uVar8 == 0x13) {\n                  uVar9 = FUN_00305610(*param_1,&local_70);\n                  local_60 = (uint *)(ulong)uVar9;\n                  goto LAB_00303035;\n                }\n                if (0x13 < uVar8) {\n                  plVar17 = *(long **)(*param_1 + 0x10);\n                  goto LAB_00302fe7;\n                }\n                pcVar3 = *(code **)(**(long **)(*param_1 + 0x10) + 0x18);\n                if (pcVar3 == FUN_001b8d10) {\n                  cVar6 = (**(code **)(**(long **)(*param_1 + 0x10) + 0x1d0))();\n                }\n                else {\n                  cVar6 = (*pcVar3)();\n                }\n                uVar5 = (ushort)*local_70;\n                if (cVar6 != '\0') {\n                  uVar5 = CONCAT11((byte)*local_70,*(byte *)((long)local_70 + 1));\n                }\n                local_70 = (uint *)((long)local_70 + 2);\n                puStack_50 = (uint *)(ulong)uVar5;\n                goto joined_r0x00303052;\n              }\n              if (uVar8 == 0xf) goto LAB_00302bcd;\n              if (uVar8 != 0x10) {\n                return 0;\n              }\n              lVar10 = *param_1;\n              iVar7 = *(int *)(lVar10 + 100);\n              if (2 < *(uint *)(lVar10 + 0x68)) {\n                iVar7 = *(int *)(lVar10 + 0x60);\n              }\n              if (iVar7 != 4) goto LAB_00302a71;\nLAB_00302e7d:\n              uVar8 = FUN_00305610(lVar10,&local_70);\n              local_60 = (uint *)(ulong)uVar8;\nLAB_00302abe:\n              local_48 = FUN_00301dc0(*param_1,pbVar15,&local_60);\n              puStack_50 = local_60;\n              if (uVar2 == 0x31) goto LAB_00302965;\n              if (0x31 < uVar2) goto joined_r0x00302ccc;\n              goto LAB_00302c20;\n            }\n            puVar11 = (uint *)((long)local_70 + 1);\n            puStack_50 = (uint *)(ulong)(byte)*local_70;\n            local_70 = puVar11;\n            if (uVar2 != 0x31) {\n              if (uVar2 < 0x32) {\n                if (uVar2 == 1) {\n                  param_1[5] = (long)puStack_50;\n                }\n                goto LAB_00302750;\n              }\njoined_r0x00302ccc:\n              if ((uVar2 == 0x6e) || (uVar2 == 0x2007)) goto LAB_00302750;\n              goto joined_r0x00302ce3;\n            }\n          }" if (parenthesized_expression "(uVar8 == 0x15)" ( (binary_expression "uVar8 == 0x15" identifier == number_literal) )) (compound_statement "{\n            bVar1 = (byte)*local_70;\n            if ((char)bVar1 < '\0') {\n              puStack_50 = (uint *)FUN_002112d0((uint *)((long)local_70 + 1),&local_68,bVar1);\n              local_70 = (uint *)(local_68 + (long)local_70);\n            }\n            else {\n              local_68 = 1;\n              local_70 = (uint *)((long)local_70 + 1);\n              puStack_50 = (uint *)(ulong)bVar1;\n            }\njoined_r0x00303052:\n            if (uVar2 != 0x31) {\n              if (uVar2 < 0x32) {\nLAB_00302c20:\n                if ((uVar2 == 1) && (local_48 == 0)) {\n                  param_1[5] = (long)puStack_50;\n                }\n                goto LAB_00302750;\n              }\n              if ((uVar2 != 0x6e) && (uVar2 != 0x2007)) {\njoined_r0x00302ce3:\n                if (uVar2 == 0x47) {\n                  param_1[0x10] = (long)puStack_50;\n                }\n                goto LAB_00302750;\n              }\nLAB_00302fb5:\n              if (uVar8 == 8) {\nLAB_003029eb:\n                param_1[0xd] = (long)puStack_50;\n              }\n              else {\nLAB_00302fbe:\n                if (uVar8 == 0xe) goto LAB_00302fd0;\n              }\n              goto LAB_00302750;\n            }\n          }" { (expression_statement "bVar1 = (byte)*local_70;" (assignment_expression "bVar1 = (byte)*local_70" identifier = (binary_expression "(byte)*local_70" (parenthesized_expression "(byte)" ( identifier )) * identifier)) ;) (if_statement "if ((char)bVar1 < '\0') {\n              puStack_50 = (uint *)FUN_002112d0((uint *)((long)local_70 + 1),&local_68,bVar1);\n              local_70 = (uint *)(local_68 + (long)local_70);\n            }\n            else {\n              local_68 = 1;\n              local_70 = (uint *)((long)local_70 + 1);\n              puStack_50 = (uint *)(ulong)bVar1;\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              puStack_50 = (uint *)FUN_002112d0((uint *)((long)local_70 + 1),&local_68,bVar1);\n              local_70 = (uint *)(local_68 + (long)local_70);\n            }" { (expression_statement "puStack_50 = (uint *)FUN_002112d0((uint *)((long)local_70 + 1),&local_68,bVar1);" (assignment_expression "puStack_50 = (uint *)FUN_002112d0((uint *)((long)local_70 + 1),&local_68,bVar1)" identifier = (cast_expression "(uint *)FUN_002112d0((uint *)((long)local_70 + 1),&local_68,bVar1)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (call_expression "FUN_002112d0((uint *)((long)local_70 + 1),&local_68,bVar1)" identifier (argument_list "((uint *)((long)local_70 + 1),&local_68,bVar1)" ( (cast_expression "(uint *)((long)local_70 + 1)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((long)local_70 + 1)" ( (binary_expression "(long)local_70 + 1" (cast_expression "(long)local_70" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) identifier) + number_literal) ))) , (pointer_expression "&local_68" & identifier) , identifier ))))) ;) (expression_statement "local_70 = (uint *)(local_68 + (long)local_70);" (assignment_expression "local_70 = (uint *)(local_68 + (long)local_70)" identifier = (cast_expression "(uint *)(local_68 + (long)local_70)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(local_68 + (long)local_70)" ( (binary_expression "local_68 + (long)local_70" identifier + (cast_expression "(long)local_70" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) identifier)) )))) ;) }) (else_clause "else {\n              local_68 = 1;\n              local_70 = (uint *)((long)local_70 + 1);\n              puStack_50 = (uint *)(ulong)bVar1;\n            }" else (compound_statement "{\n              local_68 = 1;\n              local_70 = (uint *)((long)local_70 + 1);\n              puStack_50 = (uint *)(ulong)bVar1;\n            }" { (expression_statement "local_68 = 1;" (assignment_expression "local_68 = 1" identifier = number_literal) ;) (expression_statement "local_70 = (uint *)((long)local_70 + 1);" (assignment_expression "local_70 = (uint *)((long)local_70 + 1)" identifier = (cast_expression "(uint *)((long)local_70 + 1)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((long)local_70 + 1)" ( (binary_expression "(long)local_70 + 1" (cast_expression "(long)local_70" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) identifier) + number_literal) )))) ;) (expression_statement "puStack_50 = (uint *)(ulong)bVar1;" (assignment_expression "puStack_50 = (uint *)(ulong)bVar1" identifier = (cast_expression "(uint *)(ulong)bVar1" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (cast_expression "(ulong)bVar1" ( (type_descriptor "ulong" type_identifier) ) identifier))) ;) }))) (labeled_statement "joined_r0x00303052:\n            if (uVar2 != 0x31) {\n              if (uVar2 < 0x32) {\nLAB_00302c20:\n                if ((uVar2 == 1) && (local_48 == 0)) {\n                  param_1[5] = (long)puStack_50;\n                }\n                goto LAB_00302750;\n              }\n              if ((uVar2 != 0x6e) && (uVar2 != 0x2007)) {\njoined_r0x00302ce3:\n                if (uVar2 == 0x47) {\n                  param_1[0x10] = (long)puStack_50;\n                }\n                goto LAB_00302750;\n              }\nLAB_00302fb5:\n              if (uVar8 == 8) {\nLAB_003029eb:\n                param_1[0xd] = (long)puStack_50;\n              }\n              else {\nLAB_00302fbe:\n                if (uVar8 == 0xe) goto LAB_00302fd0;\n              }\n              goto LAB_00302750;\n            }" statement_identifier : (if_statement "if (uVar2 != 0x31) {\n              if (uVar2 < 0x32) {\nLAB_00302c20:\n                if ((uVar2 == 1) && (local_48 == 0)) {\n                  param_1[5] = (long)puStack_50;\n                }\n                goto LAB_00302750;\n              }\n              if ((uVar2 != 0x6e) && (uVar2 != 0x2007)) {\njoined_r0x00302ce3:\n                if (uVar2 == 0x47) {\n                  param_1[0x10] = (long)puStack_50;\n                }\n                goto LAB_00302750;\n              }\nLAB_00302fb5:\n              if (uVar8 == 8) {\nLAB_003029eb:\n                param_1[0xd] = (long)puStack_50;\n              }\n              else {\nLAB_00302fbe:\n                if (uVar8 == 0xe) goto LAB_00302fd0;\n              }\n              goto LAB_00302750;\n            }" if (parenthesized_expression "(uVar2 != 0x31)" ( (binary_expression "uVar2 != 0x31" identifier != number_literal) )) (compound_statement "{\n              if (uVar2 < 0x32) {\nLAB_00302c20:\n                if ((uVar2 == 1) && (local_48 == 0)) {\n                  param_1[5] = (long)puStack_50;\n                }\n                goto LAB_00302750;\n              }\n              if ((uVar2 != 0x6e) && (uVar2 != 0x2007)) {\njoined_r0x00302ce3:\n                if (uVar2 == 0x47) {\n                  param_1[0x10] = (long)puStack_50;\n                }\n                goto LAB_00302750;\n              }\nLAB_00302fb5:\n              if (uVar8 == 8) {\nLAB_003029eb:\n                param_1[0xd] = (long)puStack_50;\n              }\n              else {\nLAB_00302fbe:\n                if (uVar8 == 0xe) goto LAB_00302fd0;\n              }\n              goto LAB_00302750;\n            }" { (if_statement "if (uVar2 < 0x32) {\nLAB_00302c20:\n                if ((uVar2 == 1) && (local_48 == 0)) {\n                  param_1[5] = (long)puStack_50;\n                }\n                goto LAB_00302750;\n              }" if (parenthesized_expression "(uVar2 < 0x32)" ( (binary_expression "uVar2 < 0x32" identifier < number_literal) )) (compound_statement "{\nLAB_00302c20:\n                if ((uVar2 == 1) && (local_48 == 0)) {\n                  param_1[5] = (long)puStack_50;\n                }\n                goto LAB_00302750;\n              }" { (labeled_statement "LAB_00302c20:\n                if ((uVar2 == 1) && (local_48 == 0)) {\n                  param_1[5] = (long)puStack_50;\n                }" statement_identifier : (if_statement "if ((uVar2 == 1) && (local_48 == 0)) {\n                  param_1[5] = (long)puStack_50;\n                }" if (parenthesized_expression "((uVar2 == 1) && (local_48 == 0))" ( (binary_expression "(uVar2 == 1) && (local_48 == 0)" (parenthesized_expression "(uVar2 == 1)" ( (binary_expression "uVar2 == 1" identifier == number_literal) )) && (parenthesized_expression "(local_48 == 0)" ( (binary_expression "local_48 == 0" identifier == number_literal) ))) )) (compound_statement "{\n                  param_1[5] = (long)puStack_50;\n                }" { (expression_statement "param_1[5] = (long)puStack_50;" (assignment_expression "param_1[5] = (long)puStack_50" (subscript_expression "param_1[5]" identifier [ number_literal ]) = (cast_expression "(long)puStack_50" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) identifier)) ;) }))) (goto_statement "goto LAB_00302750;" goto statement_identifier ;) })) (if_statement "if ((uVar2 != 0x6e) && (uVar2 != 0x2007)) {\njoined_r0x00302ce3:\n                if (uVar2 == 0x47) {\n                  param_1[0x10] = (long)puStack_50;\n                }\n                goto LAB_00302750;\n              }" if (parenthesized_expression "((uVar2 != 0x6e) && (uVar2 != 0x2007))" ( (binary_expression "(uVar2 != 0x6e) && (uVar2 != 0x2007)" (parenthesized_expression "(uVar2 != 0x6e)" ( (binary_expression "uVar2 != 0x6e" identifier != number_literal) )) && (parenthesized_expression "(uVar2 != 0x2007)" ( (binary_expression "uVar2 != 0x2007" identifier != number_literal) ))) )) (compound_statement "{\njoined_r0x00302ce3:\n                if (uVar2 == 0x47) {\n                  param_1[0x10] = (long)puStack_50;\n                }\n                goto LAB_00302750;\n              }" { (labeled_statement "joined_r0x00302ce3:\n                if (uVar2 == 0x47) {\n                  param_1[0x10] = (long)puStack_50;\n                }" statement_identifier : (if_statement "if (uVar2 == 0x47) {\n                  param_1[0x10] = (long)puStack_50;\n                }" if (parenthesized_expression "(uVar2 == 0x47)" ( (binary_expression "uVar2 == 0x47" identifier == number_literal) )) (compound_statement "{\n                  param_1[0x10] = (long)puStack_50;\n                }" { (expression_statement "param_1[0x10] = (long)puStack_50;" (assignment_expression "param_1[0x10] = (long)puStack_50" (subscript_expression "param_1[0x10]" identifier [ number_literal ]) = (cast_expression "(long)puStack_50" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) identifier)) ;) }))) (goto_statement "goto LAB_00302750;" goto statement_identifier ;) })) (labeled_statement "LAB_00302fb5:\n              if (uVar8 == 8) {\nLAB_003029eb:\n                param_1[0xd] = (long)puStack_50;\n              }\n              else {\nLAB_00302fbe:\n                if (uVar8 == 0xe) goto LAB_00302fd0;\n              }" statement_identifier : (if_statement "if (uVar8 == 8) {\nLAB_003029eb:\n                param_1[0xd] = (long)puStack_50;\n              }\n              else {\nLAB_00302fbe:\n                if (uVar8 == 0xe) goto LAB_00302fd0;\n              }" if (parenthesized_expression "(uVar8 == 8)" ( (binary_expression "uVar8 == 8" identifier == number_literal) )) (compound_statement "{\nLAB_003029eb:\n                param_1[0xd] = (long)puStack_50;\n              }" { (labeled_statement "LAB_003029eb:\n                param_1[0xd] = (long)puStack_50;" statement_identifier : (expression_statement "param_1[0xd] = (long)puStack_50;" (assignment_expression "param_1[0xd] = (long)puStack_50" (subscript_expression "param_1[0xd]" identifier [ number_literal ]) = (cast_expression "(long)puStack_50" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) identifier)) ;)) }) (else_clause "else {\nLAB_00302fbe:\n                if (uVar8 == 0xe) goto LAB_00302fd0;\n              }" else (compound_statement "{\nLAB_00302fbe:\n                if (uVar8 == 0xe) goto LAB_00302fd0;\n              }" { (labeled_statement "LAB_00302fbe:\n                if (uVar8 == 0xe) goto LAB_00302fd0;" statement_identifier : (if_statement "if (uVar8 == 0xe) goto LAB_00302fd0;" if (parenthesized_expression "(uVar8 == 0xe)" ( (binary_expression "uVar8 == 0xe" identifier == number_literal) )) (goto_statement "goto LAB_00302fd0;" goto statement_identifier ;))) })))) (goto_statement "goto LAB_00302750;" goto statement_identifier ;) }))) }) (else_clause "else {\n            if (0x15 < uVar8) {\n              if (uVar8 != 0x19) {\n                if (uVar8 < 0x1a) {\n                  if (uVar8 == 0x17) {\n                    lVar10 = *param_1;\n                    if (*(int *)(lVar10 + 0x60) == 4) {\n                      uVar9 = FUN_00305610(lVar10,&local_70);\n                      local_60 = (uint *)(ulong)uVar9;\n                    }\n                    else {\n                      plVar17 = *(long **)(lVar10 + 0x10);\nLAB_00302fe7:\n                      pcVar3 = *(code **)(*plVar17 + 0x18);\n                      if (pcVar3 == FUN_001b8d10) {\n                        cVar6 = (**(code **)(*plVar17 + 0x1d0))();\n                      }\n                      else {\n                        cVar6 = (*pcVar3)();\n                      }\n                      local_60 = *(uint **)local_70;\n                      if (cVar6 != '\0') {\n                        local_60 = (uint *)((ulong)local_60 >> 0x38 |\n                                            ((ulong)local_60 & 0xff000000000000) >> 0x28 |\n                                            ((ulong)local_60 & 0xff0000000000) >> 0x18 |\n                                            ((ulong)local_60 & 0xff00000000) >> 8 |\n                                            ((ulong)local_60 & 0xff000000) << 8 |\n                                            ((ulong)local_60 & 0xff0000) << 0x18 |\n                                            ((ulong)local_60 & 0xff00) << 0x28 |\n                                           (long)local_60 << 0x38);\n                      }\n                      local_70 = local_70 + 2;\n                    }\nLAB_00303035:\n                    local_48 = FUN_00301dc0(*param_1,pbVar15,&local_60);\n                    puStack_50 = local_60;\n                    goto joined_r0x00303052;\n                  }\n                  if (uVar8 != 0x18) {\n                    return 0;\n                  }\nLAB_00302a09:\n                  bVar1 = (byte)*local_70;\n                  uVar9 = (uint)bVar1;\n                  puVar11 = (uint *)((long)local_70 + 1);\n                  if ((char)bVar1 < '\0') {\n                    uVar9 = FUN_002112d0(puVar11,&local_68,bVar1);\n                    puVar11 = (uint *)((long)local_70 + local_68);\n                  }\n                  else {\n                    local_68 = 1;\n                  }\n                  local_70 = (uint *)((long)local_70 + uVar9 + local_68);\n                  puStack_50 = puVar11;\n                  local_48 = uVar9;\n                }\n                else {\n                  if (uVar8 == 0x20) {\n                    pcVar3 = *(code **)(**(long **)(*param_1 + 0x10) + 0x18);\n                    if (pcVar3 == FUN_001b8d10) {\n                      cVar6 = (**(code **)(**(long **)(*param_1 + 0x10) + 0x1d0))();\n                    }\n                    else {\n                      cVar6 = (*pcVar3)();\n                    }\n                    puStack_50 = *(uint **)local_70;\n                    if (cVar6 != '\0') {\n                      puStack_50 = (uint *)((ulong)puStack_50 >> 0x38 |\n                                            ((ulong)puStack_50 & 0xff000000000000) >> 0x28 |\n                                            ((ulong)puStack_50 & 0xff0000000000) >> 0x18 |\n                                            ((ulong)puStack_50 & 0xff00000000) >> 8 |\n                                            ((ulong)puStack_50 & 0xff000000) << 8 |\n                                            ((ulong)puStack_50 & 0xff0000) << 0x18 |\n                                            ((ulong)puStack_50 & 0xff00) << 0x28 |\n                                           (long)puStack_50 << 0x38);\n                    }\n                    local_70 = local_70 + 2;\n                    goto LAB_00302ea9;\n                  }\n                  if (uVar8 < 0x20) {\n                    return 0;\n                  }\n                  if (1 < uVar8 - 0x1f01) {\n                    return 0;\n                  }\nLAB_00302bcd:\n                  bVar1 = (byte)*local_70;\n                  if ((char)bVar1 < '\0') {\n                    puStack_50 = (uint *)FUN_002112d0((uint *)((long)local_70 + 1),&local_68,bVar1);\n                    local_70 = (uint *)(local_68 + (long)local_70);\n                  }\n                  else {\n                    local_68 = 1;\n                    local_70 = (uint *)((long)local_70 + 1);\n                    puStack_50 = (uint *)(ulong)bVar1;\n                  }\n                }\nLAB_00302f92:\n                if (uVar2 == 0x31) goto LAB_00302750;\n                if (0x31 < uVar2) {\n                  if ((uVar2 == 0x6e) || (uVar2 == 0x2007)) goto LAB_00302fb5;\n                  goto LAB_00302750;\n                }\n                goto LAB_00302e3e;\n              }\n              puStack_50 = (uint *)0x1;\nLAB_00302ea9:\n              if (((uVar2 == 0x31) || (0x31 < uVar2)) || (uVar2 != 3)) goto LAB_00302750;\nLAB_00302e52:\n              if (uVar8 == 8) {\nLAB_003029c7:\n                param_1[0xb] = (long)puStack_50;\n              }\n              else if (uVar8 == 0xe) goto LAB_00302f64;\n              goto LAB_00302750;\n            }\n            if (uVar8 != 0x11) {\n              if (0x11 < uVar8) {\n                if (uVar8 == 0x13) {\n                  uVar9 = FUN_00305610(*param_1,&local_70);\n                  local_60 = (uint *)(ulong)uVar9;\n                  goto LAB_00303035;\n                }\n                if (0x13 < uVar8) {\n                  plVar17 = *(long **)(*param_1 + 0x10);\n                  goto LAB_00302fe7;\n                }\n                pcVar3 = *(code **)(**(long **)(*param_1 + 0x10) + 0x18);\n                if (pcVar3 == FUN_001b8d10) {\n                  cVar6 = (**(code **)(**(long **)(*param_1 + 0x10) + 0x1d0))();\n                }\n                else {\n                  cVar6 = (*pcVar3)();\n                }\n                uVar5 = (ushort)*local_70;\n                if (cVar6 != '\0') {\n                  uVar5 = CONCAT11((byte)*local_70,*(byte *)((long)local_70 + 1));\n                }\n                local_70 = (uint *)((long)local_70 + 2);\n                puStack_50 = (uint *)(ulong)uVar5;\n                goto joined_r0x00303052;\n              }\n              if (uVar8 == 0xf) goto LAB_00302bcd;\n              if (uVar8 != 0x10) {\n                return 0;\n              }\n              lVar10 = *param_1;\n              iVar7 = *(int *)(lVar10 + 100);\n              if (2 < *(uint *)(lVar10 + 0x68)) {\n                iVar7 = *(int *)(lVar10 + 0x60);\n              }\n              if (iVar7 != 4) goto LAB_00302a71;\nLAB_00302e7d:\n              uVar8 = FUN_00305610(lVar10,&local_70);\n              local_60 = (uint *)(ulong)uVar8;\nLAB_00302abe:\n              local_48 = FUN_00301dc0(*param_1,pbVar15,&local_60);\n              puStack_50 = local_60;\n              if (uVar2 == 0x31) goto LAB_00302965;\n              if (0x31 < uVar2) goto joined_r0x00302ccc;\n              goto LAB_00302c20;\n            }\n            puVar11 = (uint *)((long)local_70 + 1);\n            puStack_50 = (uint *)(ulong)(byte)*local_70;\n            local_70 = puVar11;\n            if (uVar2 != 0x31) {\n              if (uVar2 < 0x32) {\n                if (uVar2 == 1) {\n                  param_1[5] = (long)puStack_50;\n                }\n                goto LAB_00302750;\n              }\njoined_r0x00302ccc:\n              if ((uVar2 == 0x6e) || (uVar2 == 0x2007)) goto LAB_00302750;\n              goto joined_r0x00302ce3;\n            }\n          }" else (compound_statement "{\n            if (0x15 < uVar8) {\n              if (uVar8 != 0x19) {\n                if (uVar8 < 0x1a) {\n                  if (uVar8 == 0x17) {\n                    lVar10 = *param_1;\n                    if (*(int *)(lVar10 + 0x60) == 4) {\n                      uVar9 = FUN_00305610(lVar10,&local_70);\n                      local_60 = (uint *)(ulong)uVar9;\n                    }\n                    else {\n                      plVar17 = *(long **)(lVar10 + 0x10);\nLAB_00302fe7:\n                      pcVar3 = *(code **)(*plVar17 + 0x18);\n                      if (pcVar3 == FUN_001b8d10) {\n                        cVar6 = (**(code **)(*plVar17 + 0x1d0))();\n                      }\n                      else {\n                        cVar6 = (*pcVar3)();\n                      }\n                      local_60 = *(uint **)local_70;\n                      if (cVar6 != '\0') {\n                        local_60 = (uint *)((ulong)local_60 >> 0x38 |\n                                            ((ulong)local_60 & 0xff000000000000) >> 0x28 |\n                                            ((ulong)local_60 & 0xff0000000000) >> 0x18 |\n                                            ((ulong)local_60 & 0xff00000000) >> 8 |\n                                            ((ulong)local_60 & 0xff000000) << 8 |\n                                            ((ulong)local_60 & 0xff0000) << 0x18 |\n                                            ((ulong)local_60 & 0xff00) << 0x28 |\n                                           (long)local_60 << 0x38);\n                      }\n                      local_70 = local_70 + 2;\n                    }\nLAB_00303035:\n                    local_48 = FUN_00301dc0(*param_1,pbVar15,&local_60);\n                    puStack_50 = local_60;\n                    goto joined_r0x00303052;\n                  }\n                  if (uVar8 != 0x18) {\n                    return 0;\n                  }\nLAB_00302a09:\n                  bVar1 = (byte)*local_70;\n                  uVar9 = (uint)bVar1;\n                  puVar11 = (uint *)((long)local_70 + 1);\n                  if ((char)bVar1 < '\0') {\n                    uVar9 = FUN_002112d0(puVar11,&local_68,bVar1);\n                    puVar11 = (uint *)((long)local_70 + local_68);\n                  }\n                  else {\n                    local_68 = 1;\n                  }\n                  local_70 = (uint *)((long)local_70 + uVar9 + local_68);\n                  puStack_50 = puVar11;\n                  local_48 = uVar9;\n                }\n                else {\n                  if (uVar8 == 0x20) {\n                    pcVar3 = *(code **)(**(long **)(*param_1 + 0x10) + 0x18);\n                    if (pcVar3 == FUN_001b8d10) {\n                      cVar6 = (**(code **)(**(long **)(*param_1 + 0x10) + 0x1d0))();\n                    }\n                    else {\n                      cVar6 = (*pcVar3)();\n                    }\n                    puStack_50 = *(uint **)local_70;\n                    if (cVar6 != '\0') {\n                      puStack_50 = (uint *)((ulong)puStack_50 >> 0x38 |\n                                            ((ulong)puStack_50 & 0xff000000000000) >> 0x28 |\n                                            ((ulong)puStack_50 & 0xff0000000000) >> 0x18 |\n                                            ((ulong)puStack_50 & 0xff00000000) >> 8 |\n                                            ((ulong)puStack_50 & 0xff000000) << 8 |\n                                            ((ulong)puStack_50 & 0xff0000) << 0x18 |\n                                            ((ulong)puStack_50 & 0xff00) << 0x28 |\n                                           (long)puStack_50 << 0x38);\n                    }\n                    local_70 = local_70 + 2;\n                    goto LAB_00302ea9;\n                  }\n                  if (uVar8 < 0x20) {\n                    return 0;\n                  }\n                  if (1 < uVar8 - 0x1f01) {\n                    return 0;\n                  }\nLAB_00302bcd:\n                  bVar1 = (byte)*local_70;\n                  if ((char)bVar1 < '\0') {\n                    puStack_50 = (uint *)FUN_002112d0((uint *)((long)local_70 + 1),&local_68,bVar1);\n                    local_70 = (uint *)(local_68 + (long)local_70);\n                  }\n                  else {\n                    local_68 = 1;\n                    local_70 = (uint *)((long)local_70 + 1);\n                    puStack_50 = (uint *)(ulong)bVar1;\n                  }\n                }\nLAB_00302f92:\n                if (uVar2 == 0x31) goto LAB_00302750;\n                if (0x31 < uVar2) {\n                  if ((uVar2 == 0x6e) || (uVar2 == 0x2007)) goto LAB_00302fb5;\n                  goto LAB_00302750;\n                }\n                goto LAB_00302e3e;\n              }\n              puStack_50 = (uint *)0x1;\nLAB_00302ea9:\n              if (((uVar2 == 0x31) || (0x31 < uVar2)) || (uVar2 != 3)) goto LAB_00302750;\nLAB_00302e52:\n              if (uVar8 == 8) {\nLAB_003029c7:\n                param_1[0xb] = (long)puStack_50;\n              }\n              else if (uVar8 == 0xe) goto LAB_00302f64;\n              goto LAB_00302750;\n            }\n            if (uVar8 != 0x11) {\n              if (0x11 < uVar8) {\n                if (uVar8 == 0x13) {\n                  uVar9 = FUN_00305610(*param_1,&local_70);\n                  local_60 = (uint *)(ulong)uVar9;\n                  goto LAB_00303035;\n                }\n                if (0x13 < uVar8) {\n                  plVar17 = *(long **)(*param_1 + 0x10);\n                  goto LAB_00302fe7;\n                }\n                pcVar3 = *(code **)(**(long **)(*param_1 + 0x10) + 0x18);\n                if (pcVar3 == FUN_001b8d10) {\n                  cVar6 = (**(code **)(**(long **)(*param_1 + 0x10) + 0x1d0))();\n                }\n                else {\n                  cVar6 = (*pcVar3)();\n                }\n                uVar5 = (ushort)*local_70;\n                if (cVar6 != '\0') {\n                  uVar5 = CONCAT11((byte)*local_70,*(byte *)((long)local_70 + 1));\n                }\n                local_70 = (uint *)((long)local_70 + 2);\n                puStack_50 = (uint *)(ulong)uVar5;\n                goto joined_r0x00303052;\n              }\n              if (uVar8 == 0xf) goto LAB_00302bcd;\n              if (uVar8 != 0x10) {\n                return 0;\n              }\n              lVar10 = *param_1;\n              iVar7 = *(int *)(lVar10 + 100);\n              if (2 < *(uint *)(lVar10 + 0x68)) {\n                iVar7 = *(int *)(lVar10 + 0x60);\n              }\n              if (iVar7 != 4) goto LAB_00302a71;\nLAB_00302e7d:\n              uVar8 = FUN_00305610(lVar10,&local_70);\n              local_60 = (uint *)(ulong)uVar8;\nLAB_00302abe:\n              local_48 = FUN_00301dc0(*param_1,pbVar15,&local_60);\n              puStack_50 = local_60;\n              if (uVar2 == 0x31) goto LAB_00302965;\n              if (0x31 < uVar2) goto joined_r0x00302ccc;\n              goto LAB_00302c20;\n            }\n            puVar11 = (uint *)((long)local_70 + 1);\n            puStack_50 = (uint *)(ulong)(byte)*local_70;\n            local_70 = puVar11;\n            if (uVar2 != 0x31) {\n              if (uVar2 < 0x32) {\n                if (uVar2 == 1) {\n                  param_1[5] = (long)puStack_50;\n                }\n                goto LAB_00302750;\n              }\njoined_r0x00302ccc:\n              if ((uVar2 == 0x6e) || (uVar2 == 0x2007)) goto LAB_00302750;\n              goto joined_r0x00302ce3;\n            }\n          }" { (if_statement "if (0x15 < uVar8) {\n              if (uVar8 != 0x19) {\n                if (uVar8 < 0x1a) {\n                  if (uVar8 == 0x17) {\n                    lVar10 = *param_1;\n                    if (*(int *)(lVar10 + 0x60) == 4) {\n                      uVar9 = FUN_00305610(lVar10,&local_70);\n                      local_60 = (uint *)(ulong)uVar9;\n                    }\n                    else {\n                      plVar17 = *(long **)(lVar10 + 0x10);\nLAB_00302fe7:\n                      pcVar3 = *(code **)(*plVar17 + 0x18);\n                      if (pcVar3 == FUN_001b8d10) {\n                        cVar6 = (**(code **)(*plVar17 + 0x1d0))();\n                      }\n                      else {\n                        cVar6 = (*pcVar3)();\n                      }\n                      local_60 = *(uint **)local_70;\n                      if (cVar6 != '\0') {\n                        local_60 = (uint *)((ulong)local_60 >> 0x38 |\n                                            ((ulong)local_60 & 0xff000000000000) >> 0x28 |\n                                            ((ulong)local_60 & 0xff0000000000) >> 0x18 |\n                                            ((ulong)local_60 & 0xff00000000) >> 8 |\n                                            ((ulong)local_60 & 0xff000000) << 8 |\n                                            ((ulong)local_60 & 0xff0000) << 0x18 |\n                                            ((ulong)local_60 & 0xff00) << 0x28 |\n                                           (long)local_60 << 0x38);\n                      }\n                      local_70 = local_70 + 2;\n                    }\nLAB_00303035:\n                    local_48 = FUN_00301dc0(*param_1,pbVar15,&local_60);\n                    puStack_50 = local_60;\n                    goto joined_r0x00303052;\n                  }\n                  if (uVar8 != 0x18) {\n                    return 0;\n                  }\nLAB_00302a09:\n                  bVar1 = (byte)*local_70;\n                  uVar9 = (uint)bVar1;\n                  puVar11 = (uint *)((long)local_70 + 1);\n                  if ((char)bVar1 < '\0') {\n                    uVar9 = FUN_002112d0(puVar11,&local_68,bVar1);\n                    puVar11 = (uint *)((long)local_70 + local_68);\n                  }\n                  else {\n                    local_68 = 1;\n                  }\n                  local_70 = (uint *)((long)local_70 + uVar9 + local_68);\n                  puStack_50 = puVar11;\n                  local_48 = uVar9;\n                }\n                else {\n                  if (uVar8 == 0x20) {\n                    pcVar3 = *(code **)(**(long **)(*param_1 + 0x10) + 0x18);\n                    if (pcVar3 == FUN_001b8d10) {\n                      cVar6 = (**(code **)(**(long **)(*param_1 + 0x10) + 0x1d0))();\n                    }\n                    else {\n                      cVar6 = (*pcVar3)();\n                    }\n                    puStack_50 = *(uint **)local_70;\n                    if (cVar6 != '\0') {\n                      puStack_50 = (uint *)((ulong)puStack_50 >> 0x38 |\n                                            ((ulong)puStack_50 & 0xff000000000000) >> 0x28 |\n                                            ((ulong)puStack_50 & 0xff0000000000) >> 0x18 |\n                                            ((ulong)puStack_50 & 0xff00000000) >> 8 |\n                                            ((ulong)puStack_50 & 0xff000000) << 8 |\n                                            ((ulong)puStack_50 & 0xff0000) << 0x18 |\n                                            ((ulong)puStack_50 & 0xff00) << 0x28 |\n                                           (long)puStack_50 << 0x38);\n                    }\n                    local_70 = local_70 + 2;\n                    goto LAB_00302ea9;\n                  }\n                  if (uVar8 < 0x20) {\n                    return 0;\n                  }\n                  if (1 < uVar8 - 0x1f01) {\n                    return 0;\n                  }\nLAB_00302bcd:\n                  bVar1 = (byte)*local_70;\n                  if ((char)bVar1 < '\0') {\n                    puStack_50 = (uint *)FUN_002112d0((uint *)((long)local_70 + 1),&local_68,bVar1);\n                    local_70 = (uint *)(local_68 + (long)local_70);\n                  }\n                  else {\n                    local_68 = 1;\n                    local_70 = (uint *)((long)local_70 + 1);\n                    puStack_50 = (uint *)(ulong)bVar1;\n                  }\n                }\nLAB_00302f92:\n                if (uVar2 == 0x31) goto LAB_00302750;\n                if (0x31 < uVar2) {\n                  if ((uVar2 == 0x6e) || (uVar2 == 0x2007)) goto LAB_00302fb5;\n                  goto LAB_00302750;\n                }\n                goto LAB_00302e3e;\n              }\n              puStack_50 = (uint *)0x1;\nLAB_00302ea9:\n              if (((uVar2 == 0x31) || (0x31 < uVar2)) || (uVar2 != 3)) goto LAB_00302750;\nLAB_00302e52:\n              if (uVar8 == 8) {\nLAB_003029c7:\n                param_1[0xb] = (long)puStack_50;\n              }\n              else if (uVar8 == 0xe) goto LAB_00302f64;\n              goto LAB_00302750;\n            }" if (parenthesized_expression "(0x15 < uVar8)" ( (binary_expression "0x15 < uVar8" number_literal < identifier) )) (compound_statement "{\n              if (uVar8 != 0x19) {\n                if (uVar8 < 0x1a) {\n                  if (uVar8 == 0x17) {\n                    lVar10 = *param_1;\n                    if (*(int *)(lVar10 + 0x60) == 4) {\n                      uVar9 = FUN_00305610(lVar10,&local_70);\n                      local_60 = (uint *)(ulong)uVar9;\n                    }\n                    else {\n                      plVar17 = *(long **)(lVar10 + 0x10);\nLAB_00302fe7:\n                      pcVar3 = *(code **)(*plVar17 + 0x18);\n                      if (pcVar3 == FUN_001b8d10) {\n                        cVar6 = (**(code **)(*plVar17 + 0x1d0))();\n                      }\n                      else {\n                        cVar6 = (*pcVar3)();\n                      }\n                      local_60 = *(uint **)local_70;\n                      if (cVar6 != '\0') {\n                        local_60 = (uint *)((ulong)local_60 >> 0x38 |\n                                            ((ulong)local_60 & 0xff000000000000) >> 0x28 |\n                                            ((ulong)local_60 & 0xff0000000000) >> 0x18 |\n                                            ((ulong)local_60 & 0xff00000000) >> 8 |\n                                            ((ulong)local_60 & 0xff000000) << 8 |\n                                            ((ulong)local_60 & 0xff0000) << 0x18 |\n                                            ((ulong)local_60 & 0xff00) << 0x28 |\n                                           (long)local_60 << 0x38);\n                      }\n                      local_70 = local_70 + 2;\n                    }\nLAB_00303035:\n                    local_48 = FUN_00301dc0(*param_1,pbVar15,&local_60);\n                    puStack_50 = local_60;\n                    goto joined_r0x00303052;\n                  }\n                  if (uVar8 != 0x18) {\n                    return 0;\n                  }\nLAB_00302a09:\n                  bVar1 = (byte)*local_70;\n                  uVar9 = (uint)bVar1;\n                  puVar11 = (uint *)((long)local_70 + 1);\n                  if ((char)bVar1 < '\0') {\n                    uVar9 = FUN_002112d0(puVar11,&local_68,bVar1);\n                    puVar11 = (uint *)((long)local_70 + local_68);\n                  }\n                  else {\n                    local_68 = 1;\n                  }\n                  local_70 = (uint *)((long)local_70 + uVar9 + local_68);\n                  puStack_50 = puVar11;\n                  local_48 = uVar9;\n                }\n                else {\n                  if (uVar8 == 0x20) {\n                    pcVar3 = *(code **)(**(long **)(*param_1 + 0x10) + 0x18);\n                    if (pcVar3 == FUN_001b8d10) {\n                      cVar6 = (**(code **)(**(long **)(*param_1 + 0x10) + 0x1d0))();\n                    }\n                    else {\n                      cVar6 = (*pcVar3)();\n                    }\n                    puStack_50 = *(uint **)local_70;\n                    if (cVar6 != '\0') {\n                      puStack_50 = (uint *)((ulong)puStack_50 >> 0x38 |\n                                            ((ulong)puStack_50 & 0xff000000000000) >> 0x28 |\n                                            ((ulong)puStack_50 & 0xff0000000000) >> 0x18 |\n                                            ((ulong)puStack_50 & 0xff00000000) >> 8 |\n                                            ((ulong)puStack_50 & 0xff000000) << 8 |\n                                            ((ulong)puStack_50 & 0xff0000) << 0x18 |\n                                            ((ulong)puStack_50 & 0xff00) << 0x28 |\n                                           (long)puStack_50 << 0x38);\n                    }\n                    local_70 = local_70 + 2;\n                    goto LAB_00302ea9;\n                  }\n                  if (uVar8 < 0x20) {\n                    return 0;\n                  }\n                  if (1 < uVar8 - 0x1f01) {\n                    return 0;\n                  }\nLAB_00302bcd:\n                  bVar1 = (byte)*local_70;\n                  if ((char)bVar1 < '\0') {\n                    puStack_50 = (uint *)FUN_002112d0((uint *)((long)local_70 + 1),&local_68,bVar1);\n                    local_70 = (uint *)(local_68 + (long)local_70);\n                  }\n                  else {\n                    local_68 = 1;\n                    local_70 = (uint *)((long)local_70 + 1);\n                    puStack_50 = (uint *)(ulong)bVar1;\n                  }\n                }\nLAB_00302f92:\n                if (uVar2 == 0x31) goto LAB_00302750;\n                if (0x31 < uVar2) {\n                  if ((uVar2 == 0x6e) || (uVar2 == 0x2007)) goto LAB_00302fb5;\n                  goto LAB_00302750;\n                }\n                goto LAB_00302e3e;\n              }\n              puStack_50 = (uint *)0x1;\nLAB_00302ea9:\n              if (((uVar2 == 0x31) || (0x31 < uVar2)) || (uVar2 != 3)) goto LAB_00302750;\nLAB_00302e52:\n              if (uVar8 == 8) {\nLAB_003029c7:\n                param_1[0xb] = (long)puStack_50;\n              }\n              else if (uVar8 == 0xe) goto LAB_00302f64;\n              goto LAB_00302750;\n            }" { (if_statement "if (uVar8 != 0x19) {\n                if (uVar8 < 0x1a) {\n                  if (uVar8 == 0x17) {\n                    lVar10 = *param_1;\n                    if (*(int *)(lVar10 + 0x60) == 4) {\n                      uVar9 = FUN_00305610(lVar10,&local_70);\n                      local_60 = (uint *)(ulong)uVar9;\n                    }\n                    else {\n                      plVar17 = *(long **)(lVar10 + 0x10);\nLAB_00302fe7:\n                      pcVar3 = *(code **)(*plVar17 + 0x18);\n                      if (pcVar3 == FUN_001b8d10) {\n                        cVar6 = (**(code **)(*plVar17 + 0x1d0))();\n                      }\n                      else {\n                        cVar6 = (*pcVar3)();\n                      }\n                      local_60 = *(uint **)local_70;\n                      if (cVar6 != '\0') {\n                        local_60 = (uint *)((ulong)local_60 >> 0x38 |\n                                            ((ulong)local_60 & 0xff000000000000) >> 0x28 |\n                                            ((ulong)local_60 & 0xff0000000000) >> 0x18 |\n                                            ((ulong)local_60 & 0xff00000000) >> 8 |\n                                            ((ulong)local_60 & 0xff000000) << 8 |\n                                            ((ulong)local_60 & 0xff0000) << 0x18 |\n                                            ((ulong)local_60 & 0xff00) << 0x28 |\n                                           (long)local_60 << 0x38);\n                      }\n                      local_70 = local_70 + 2;\n                    }\nLAB_00303035:\n                    local_48 = FUN_00301dc0(*param_1,pbVar15,&local_60);\n                    puStack_50 = local_60;\n                    goto joined_r0x00303052;\n                  }\n                  if (uVar8 != 0x18) {\n                    return 0;\n                  }\nLAB_00302a09:\n                  bVar1 = (byte)*local_70;\n                  uVar9 = (uint)bVar1;\n                  puVar11 = (uint *)((long)local_70 + 1);\n                  if ((char)bVar1 < '\0') {\n                    uVar9 = FUN_002112d0(puVar11,&local_68,bVar1);\n                    puVar11 = (uint *)((long)local_70 + local_68);\n                  }\n                  else {\n                    local_68 = 1;\n                  }\n                  local_70 = (uint *)((long)local_70 + uVar9 + local_68);\n                  puStack_50 = puVar11;\n                  local_48 = uVar9;\n                }\n                else {\n                  if (uVar8 == 0x20) {\n                    pcVar3 = *(code **)(**(long **)(*param_1 + 0x10) + 0x18);\n                    if (pcVar3 == FUN_001b8d10) {\n                      cVar6 = (**(code **)(**(long **)(*param_1 + 0x10) + 0x1d0))();\n                    }\n                    else {\n                      cVar6 = (*pcVar3)();\n                    }\n                    puStack_50 = *(uint **)local_70;\n                    if (cVar6 != '\0') {\n                      puStack_50 = (uint *)((ulong)puStack_50 >> 0x38 |\n                                            ((ulong)puStack_50 & 0xff000000000000) >> 0x28 |\n                                            ((ulong)puStack_50 & 0xff0000000000) >> 0x18 |\n                                            ((ulong)puStack_50 & 0xff00000000) >> 8 |\n                                            ((ulong)puStack_50 & 0xff000000) << 8 |\n                                            ((ulong)puStack_50 & 0xff0000) << 0x18 |\n                                            ((ulong)puStack_50 & 0xff00) << 0x28 |\n                                           (long)puStack_50 << 0x38);\n                    }\n                    local_70 = local_70 + 2;\n                    goto LAB_00302ea9;\n                  }\n                  if (uVar8 < 0x20) {\n                    return 0;\n                  }\n                  if (1 < uVar8 - 0x1f01) {\n                    return 0;\n                  }\nLAB_00302bcd:\n                  bVar1 = (byte)*local_70;\n                  if ((char)bVar1 < '\0') {\n                    puStack_50 = (uint *)FUN_002112d0((uint *)((long)local_70 + 1),&local_68,bVar1);\n                    local_70 = (uint *)(local_68 + (long)local_70);\n                  }\n                  else {\n                    local_68 = 1;\n                    local_70 = (uint *)((long)local_70 + 1);\n                    puStack_50 = (uint *)(ulong)bVar1;\n                  }\n                }\nLAB_00302f92:\n                if (uVar2 == 0x31) goto LAB_00302750;\n                if (0x31 < uVar2) {\n                  if ((uVar2 == 0x6e) || (uVar2 == 0x2007)) goto LAB_00302fb5;\n                  goto LAB_00302750;\n                }\n                goto LAB_00302e3e;\n              }" if (parenthesized_expression "(uVar8 != 0x19)" ( (binary_expression "uVar8 != 0x19" identifier != number_literal) )) (compound_statement "{\n                if (uVar8 < 0x1a) {\n                  if (uVar8 == 0x17) {\n                    lVar10 = *param_1;\n                    if (*(int *)(lVar10 + 0x60) == 4) {\n                      uVar9 = FUN_00305610(lVar10,&local_70);\n                      local_60 = (uint *)(ulong)uVar9;\n                    }\n                    else {\n                      plVar17 = *(long **)(lVar10 + 0x10);\nLAB_00302fe7:\n                      pcVar3 = *(code **)(*plVar17 + 0x18);\n                      if (pcVar3 == FUN_001b8d10) {\n                        cVar6 = (**(code **)(*plVar17 + 0x1d0))();\n                      }\n                      else {\n                        cVar6 = (*pcVar3)();\n                      }\n                      local_60 = *(uint **)local_70;\n                      if (cVar6 != '\0') {\n                        local_60 = (uint *)((ulong)local_60 >> 0x38 |\n                                            ((ulong)local_60 & 0xff000000000000) >> 0x28 |\n                                            ((ulong)local_60 & 0xff0000000000) >> 0x18 |\n                                            ((ulong)local_60 & 0xff00000000) >> 8 |\n                                            ((ulong)local_60 & 0xff000000) << 8 |\n                                            ((ulong)local_60 & 0xff0000) << 0x18 |\n                                            ((ulong)local_60 & 0xff00) << 0x28 |\n                                           (long)local_60 << 0x38);\n                      }\n                      local_70 = local_70 + 2;\n                    }\nLAB_00303035:\n                    local_48 = FUN_00301dc0(*param_1,pbVar15,&local_60);\n                    puStack_50 = local_60;\n                    goto joined_r0x00303052;\n                  }\n                  if (uVar8 != 0x18) {\n                    return 0;\n                  }\nLAB_00302a09:\n                  bVar1 = (byte)*local_70;\n                  uVar9 = (uint)bVar1;\n                  puVar11 = (uint *)((long)local_70 + 1);\n                  if ((char)bVar1 < '\0') {\n                    uVar9 = FUN_002112d0(puVar11,&local_68,bVar1);\n                    puVar11 = (uint *)((long)local_70 + local_68);\n                  }\n                  else {\n                    local_68 = 1;\n                  }\n                  local_70 = (uint *)((long)local_70 + uVar9 + local_68);\n                  puStack_50 = puVar11;\n                  local_48 = uVar9;\n                }\n                else {\n                  if (uVar8 == 0x20) {\n                    pcVar3 = *(code **)(**(long **)(*param_1 + 0x10) + 0x18);\n                    if (pcVar3 == FUN_001b8d10) {\n                      cVar6 = (**(code **)(**(long **)(*param_1 + 0x10) + 0x1d0))();\n                    }\n                    else {\n                      cVar6 = (*pcVar3)();\n                    }\n                    puStack_50 = *(uint **)local_70;\n                    if (cVar6 != '\0') {\n                      puStack_50 = (uint *)((ulong)puStack_50 >> 0x38 |\n                                            ((ulong)puStack_50 & 0xff000000000000) >> 0x28 |\n                                            ((ulong)puStack_50 & 0xff0000000000) >> 0x18 |\n                                            ((ulong)puStack_50 & 0xff00000000) >> 8 |\n                                            ((ulong)puStack_50 & 0xff000000) << 8 |\n                                            ((ulong)puStack_50 & 0xff0000) << 0x18 |\n                                            ((ulong)puStack_50 & 0xff00) << 0x28 |\n                                           (long)puStack_50 << 0x38);\n                    }\n                    local_70 = local_70 + 2;\n                    goto LAB_00302ea9;\n                  }\n                  if (uVar8 < 0x20) {\n                    return 0;\n                  }\n                  if (1 < uVar8 - 0x1f01) {\n                    return 0;\n                  }\nLAB_00302bcd:\n                  bVar1 = (byte)*local_70;\n                  if ((char)bVar1 < '\0') {\n                    puStack_50 = (uint *)FUN_002112d0((uint *)((long)local_70 + 1),&local_68,bVar1);\n                    local_70 = (uint *)(local_68 + (long)local_70);\n                  }\n                  else {\n                    local_68 = 1;\n                    local_70 = (uint *)((long)local_70 + 1);\n                    puStack_50 = (uint *)(ulong)bVar1;\n                  }\n                }\nLAB_00302f92:\n                if (uVar2 == 0x31) goto LAB_00302750;\n                if (0x31 < uVar2) {\n                  if ((uVar2 == 0x6e) || (uVar2 == 0x2007)) goto LAB_00302fb5;\n                  goto LAB_00302750;\n                }\n                goto LAB_00302e3e;\n              }" { (if_statement "if (uVar8 < 0x1a) {\n                  if (uVar8 == 0x17) {\n                    lVar10 = *param_1;\n                    if (*(int *)(lVar10 + 0x60) == 4) {\n                      uVar9 = FUN_00305610(lVar10,&local_70);\n                      local_60 = (uint *)(ulong)uVar9;\n                    }\n                    else {\n                      plVar17 = *(long **)(lVar10 + 0x10);\nLAB_00302fe7:\n                      pcVar3 = *(code **)(*plVar17 + 0x18);\n                      if (pcVar3 == FUN_001b8d10) {\n                        cVar6 = (**(code **)(*plVar17 + 0x1d0))();\n                      }\n                      else {\n                        cVar6 = (*pcVar3)();\n                      }\n                      local_60 = *(uint **)local_70;\n                      if (cVar6 != '\0') {\n                        local_60 = (uint *)((ulong)local_60 >> 0x38 |\n                                            ((ulong)local_60 & 0xff000000000000) >> 0x28 |\n                                            ((ulong)local_60 & 0xff0000000000) >> 0x18 |\n                                            ((ulong)local_60 & 0xff00000000) >> 8 |\n                                            ((ulong)local_60 & 0xff000000) << 8 |\n                                            ((ulong)local_60 & 0xff0000) << 0x18 |\n                                            ((ulong)local_60 & 0xff00) << 0x28 |\n                                           (long)local_60 << 0x38);\n                      }\n                      local_70 = local_70 + 2;\n                    }\nLAB_00303035:\n                    local_48 = FUN_00301dc0(*param_1,pbVar15,&local_60);\n                    puStack_50 = local_60;\n                    goto joined_r0x00303052;\n                  }\n                  if (uVar8 != 0x18) {\n                    return 0;\n                  }\nLAB_00302a09:\n                  bVar1 = (byte)*local_70;\n                  uVar9 = (uint)bVar1;\n                  puVar11 = (uint *)((long)local_70 + 1);\n                  if ((char)bVar1 < '\0') {\n                    uVar9 = FUN_002112d0(puVar11,&local_68,bVar1);\n                    puVar11 = (uint *)((long)local_70 + local_68);\n                  }\n                  else {\n                    local_68 = 1;\n                  }\n                  local_70 = (uint *)((long)local_70 + uVar9 + local_68);\n                  puStack_50 = puVar11;\n                  local_48 = uVar9;\n                }\n                else {\n                  if (uVar8 == 0x20) {\n                    pcVar3 = *(code **)(**(long **)(*param_1 + 0x10) + 0x18);\n                    if (pcVar3 == FUN_001b8d10) {\n                      cVar6 = (**(code **)(**(long **)(*param_1 + 0x10) + 0x1d0))();\n                    }\n                    else {\n                      cVar6 = (*pcVar3)();\n                    }\n                    puStack_50 = *(uint **)local_70;\n                    if (cVar6 != '\0') {\n                      puStack_50 = (uint *)((ulong)puStack_50 >> 0x38 |\n                                            ((ulong)puStack_50 & 0xff000000000000) >> 0x28 |\n                                            ((ulong)puStack_50 & 0xff0000000000) >> 0x18 |\n                                            ((ulong)puStack_50 & 0xff00000000) >> 8 |\n                                            ((ulong)puStack_50 & 0xff000000) << 8 |\n                                            ((ulong)puStack_50 & 0xff0000) << 0x18 |\n                                            ((ulong)puStack_50 & 0xff00) << 0x28 |\n                                           (long)puStack_50 << 0x38);\n                    }\n                    local_70 = local_70 + 2;\n                    goto LAB_00302ea9;\n                  }\n                  if (uVar8 < 0x20) {\n                    return 0;\n                  }\n                  if (1 < uVar8 - 0x1f01) {\n                    return 0;\n                  }\nLAB_00302bcd:\n                  bVar1 = (byte)*local_70;\n                  if ((char)bVar1 < '\0') {\n                    puStack_50 = (uint *)FUN_002112d0((uint *)((long)local_70 + 1),&local_68,bVar1);\n                    local_70 = (uint *)(local_68 + (long)local_70);\n                  }\n                  else {\n                    local_68 = 1;\n                    local_70 = (uint *)((long)local_70 + 1);\n                    puStack_50 = (uint *)(ulong)bVar1;\n                  }\n                }" if (parenthesized_expression "(uVar8 < 0x1a)" ( (binary_expression "uVar8 < 0x1a" identifier < number_literal) )) (compound_statement "{\n                  if (uVar8 == 0x17) {\n                    lVar10 = *param_1;\n                    if (*(int *)(lVar10 + 0x60) == 4) {\n                      uVar9 = FUN_00305610(lVar10,&local_70);\n                      local_60 = (uint *)(ulong)uVar9;\n                    }\n                    else {\n                      plVar17 = *(long **)(lVar10 + 0x10);\nLAB_00302fe7:\n                      pcVar3 = *(code **)(*plVar17 + 0x18);\n                      if (pcVar3 == FUN_001b8d10) {\n                        cVar6 = (**(code **)(*plVar17 + 0x1d0))();\n                      }\n                      else {\n                        cVar6 = (*pcVar3)();\n                      }\n                      local_60 = *(uint **)local_70;\n                      if (cVar6 != '\0') {\n                        local_60 = (uint *)((ulong)local_60 >> 0x38 |\n                                            ((ulong)local_60 & 0xff000000000000) >> 0x28 |\n                                            ((ulong)local_60 & 0xff0000000000) >> 0x18 |\n                                            ((ulong)local_60 & 0xff00000000) >> 8 |\n                                            ((ulong)local_60 & 0xff000000) << 8 |\n                                            ((ulong)local_60 & 0xff0000) << 0x18 |\n                                            ((ulong)local_60 & 0xff00) << 0x28 |\n                                           (long)local_60 << 0x38);\n                      }\n                      local_70 = local_70 + 2;\n                    }\nLAB_00303035:\n                    local_48 = FUN_00301dc0(*param_1,pbVar15,&local_60);\n                    puStack_50 = local_60;\n                    goto joined_r0x00303052;\n                  }\n                  if (uVar8 != 0x18) {\n                    return 0;\n                  }\nLAB_00302a09:\n                  bVar1 = (byte)*local_70;\n                  uVar9 = (uint)bVar1;\n                  puVar11 = (uint *)((long)local_70 + 1);\n                  if ((char)bVar1 < '\0') {\n                    uVar9 = FUN_002112d0(puVar11,&local_68,bVar1);\n                    puVar11 = (uint *)((long)local_70 + local_68);\n                  }\n                  else {\n                    local_68 = 1;\n                  }\n                  local_70 = (uint *)((long)local_70 + uVar9 + local_68);\n                  puStack_50 = puVar11;\n                  local_48 = uVar9;\n                }" { (if_statement "if (uVar8 == 0x17) {\n                    lVar10 = *param_1;\n                    if (*(int *)(lVar10 + 0x60) == 4) {\n                      uVar9 = FUN_00305610(lVar10,&local_70);\n                      local_60 = (uint *)(ulong)uVar9;\n                    }\n                    else {\n                      plVar17 = *(long **)(lVar10 + 0x10);\nLAB_00302fe7:\n                      pcVar3 = *(code **)(*plVar17 + 0x18);\n                      if (pcVar3 == FUN_001b8d10) {\n                        cVar6 = (**(code **)(*plVar17 + 0x1d0))();\n                      }\n                      else {\n                        cVar6 = (*pcVar3)();\n                      }\n                      local_60 = *(uint **)local_70;\n                      if (cVar6 != '\0') {\n                        local_60 = (uint *)((ulong)local_60 >> 0x38 |\n                                            ((ulong)local_60 & 0xff000000000000) >> 0x28 |\n                                            ((ulong)local_60 & 0xff0000000000) >> 0x18 |\n                                            ((ulong)local_60 & 0xff00000000) >> 8 |\n                                            ((ulong)local_60 & 0xff000000) << 8 |\n                                            ((ulong)local_60 & 0xff0000) << 0x18 |\n                                            ((ulong)local_60 & 0xff00) << 0x28 |\n                                           (long)local_60 << 0x38);\n                      }\n                      local_70 = local_70 + 2;\n                    }\nLAB_00303035:\n                    local_48 = FUN_00301dc0(*param_1,pbVar15,&local_60);\n                    puStack_50 = local_60;\n                    goto joined_r0x00303052;\n                  }" if (parenthesized_expression "(uVar8 == 0x17)" ( (binary_expression "uVar8 == 0x17" identifier == number_literal) )) (compound_statement "{\n                    lVar10 = *param_1;\n                    if (*(int *)(lVar10 + 0x60) == 4) {\n                      uVar9 = FUN_00305610(lVar10,&local_70);\n                      local_60 = (uint *)(ulong)uVar9;\n                    }\n                    else {\n                      plVar17 = *(long **)(lVar10 + 0x10);\nLAB_00302fe7:\n                      pcVar3 = *(code **)(*plVar17 + 0x18);\n                      if (pcVar3 == FUN_001b8d10) {\n                        cVar6 = (**(code **)(*plVar17 + 0x1d0))();\n                      }\n                      else {\n                        cVar6 = (*pcVar3)();\n                      }\n                      local_60 = *(uint **)local_70;\n                      if (cVar6 != '\0') {\n                        local_60 = (uint *)((ulong)local_60 >> 0x38 |\n                                            ((ulong)local_60 & 0xff000000000000) >> 0x28 |\n                                            ((ulong)local_60 & 0xff0000000000) >> 0x18 |\n                                            ((ulong)local_60 & 0xff00000000) >> 8 |\n                                            ((ulong)local_60 & 0xff000000) << 8 |\n                                            ((ulong)local_60 & 0xff0000) << 0x18 |\n                                            ((ulong)local_60 & 0xff00) << 0x28 |\n                                           (long)local_60 << 0x38);\n                      }\n                      local_70 = local_70 + 2;\n                    }\nLAB_00303035:\n                    local_48 = FUN_00301dc0(*param_1,pbVar15,&local_60);\n                    puStack_50 = local_60;\n                    goto joined_r0x00303052;\n                  }" { (expression_statement "lVar10 = *param_1;" (assignment_expression "lVar10 = *param_1" identifier = (pointer_expression "*param_1" * identifier)) ;) (if_statement "if (*(int *)(lVar10 + 0x60) == 4) {\n                      uVar9 = FUN_00305610(lVar10,&local_70);\n                      local_60 = (uint *)(ulong)uVar9;\n                    }\n                    else {\n                      plVar17 = *(long **)(lVar10 + 0x10);\nLAB_00302fe7:\n                      pcVar3 = *(code **)(*plVar17 + 0x18);\n                      if (pcVar3 == FUN_001b8d10) {\n                        cVar6 = (**(code **)(*plVar17 + 0x1d0))();\n                      }\n                      else {\n                        cVar6 = (*pcVar3)();\n                      }\n                      local_60 = *(uint **)local_70;\n                      if (cVar6 != '\0') {\n                        local_60 = (uint *)((ulong)local_60 >> 0x38 |\n                                            ((ulong)local_60 & 0xff000000000000) >> 0x28 |\n                                            ((ulong)local_60 & 0xff0000000000) >> 0x18 |\n                                            ((ulong)local_60 & 0xff00000000) >> 8 |\n                                            ((ulong)local_60 & 0xff000000) << 8 |\n                                            ((ulong)local_60 & 0xff0000) << 0x18 |\n                                            ((ulong)local_60 & 0xff00) << 0x28 |\n                                           (long)local_60 << 0x38);\n                      }\n                      local_70 = local_70 + 2;\n                    }" if (parenthesized_expression "(*(int *)(lVar10 + 0x60) == 4)" ( (binary_expression "*(int *)(lVar10 + 0x60) == 4" (pointer_expression "*(int *)(lVar10 + 0x60)" * (cast_expression "(int *)(lVar10 + 0x60)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(lVar10 + 0x60)" ( (binary_expression "lVar10 + 0x60" identifier + number_literal) )))) == number_literal) )) (compound_statement "{\n                      uVar9 = FUN_00305610(lVar10,&local_70);\n                      local_60 = (uint *)(ulong)uVar9;\n                    }" { (expression_statement "uVar9 = FUN_00305610(lVar10,&local_70);" (assignment_expression "uVar9 = FUN_00305610(lVar10,&local_70)" identifier = (call_expression "FUN_00305610(lVar10,&local_70)" identifier (argument_list "(lVar10,&local_70)" ( identifier , (pointer_expression "&local_70" & identifier) )))) ;) (expression_statement "local_60 = (uint *)(ulong)uVar9;" (assignment_expression "local_60 = (uint *)(ulong)uVar9" identifier = (cast_expression "(uint *)(ulong)uVar9" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (cast_expression "(ulong)uVar9" ( (type_descriptor "ulong" type_identifier) ) identifier))) ;) }) (else_clause "else {\n                      plVar17 = *(long **)(lVar10 + 0x10);\nLAB_00302fe7:\n                      pcVar3 = *(code **)(*plVar17 + 0x18);\n                      if (pcVar3 == FUN_001b8d10) {\n                        cVar6 = (**(code **)(*plVar17 + 0x1d0))();\n                      }\n                      else {\n                        cVar6 = (*pcVar3)();\n                      }\n                      local_60 = *(uint **)local_70;\n                      if (cVar6 != '\0') {\n                        local_60 = (uint *)((ulong)local_60 >> 0x38 |\n                                            ((ulong)local_60 & 0xff000000000000) >> 0x28 |\n                                            ((ulong)local_60 & 0xff0000000000) >> 0x18 |\n                                            ((ulong)local_60 & 0xff00000000) >> 8 |\n                                            ((ulong)local_60 & 0xff000000) << 8 |\n                                            ((ulong)local_60 & 0xff0000) << 0x18 |\n                                            ((ulong)local_60 & 0xff00) << 0x28 |\n                                           (long)local_60 << 0x38);\n                      }\n                      local_70 = local_70 + 2;\n                    }" else (compound_statement "{\n                      plVar17 = *(long **)(lVar10 + 0x10);\nLAB_00302fe7:\n                      pcVar3 = *(code **)(*plVar17 + 0x18);\n                      if (pcVar3 == FUN_001b8d10) {\n                        cVar6 = (**(code **)(*plVar17 + 0x1d0))();\n                      }\n                      else {\n                        cVar6 = (*pcVar3)();\n                      }\n                      local_60 = *(uint **)local_70;\n                      if (cVar6 != '\0') {\n                        local_60 = (uint *)((ulong)local_60 >> 0x38 |\n                                            ((ulong)local_60 & 0xff000000000000) >> 0x28 |\n                                            ((ulong)local_60 & 0xff0000000000) >> 0x18 |\n                                            ((ulong)local_60 & 0xff00000000) >> 8 |\n                                            ((ulong)local_60 & 0xff000000) << 8 |\n                                            ((ulong)local_60 & 0xff0000) << 0x18 |\n                                            ((ulong)local_60 & 0xff00) << 0x28 |\n                                           (long)local_60 << 0x38);\n                      }\n                      local_70 = local_70 + 2;\n                    }" { (expression_statement "plVar17 = *(long **)(lVar10 + 0x10);" (assignment_expression "plVar17 = *(long **)(lVar10 + 0x10)" identifier = (pointer_expression "*(long **)(lVar10 + 0x10)" * (cast_expression "(long **)(lVar10 + 0x10)" ( (type_descriptor "long **" (sized_type_specifier "long" long) (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(lVar10 + 0x10)" ( (binary_expression "lVar10 + 0x10" identifier + number_literal) ))))) ;) (labeled_statement "LAB_00302fe7:\n                      pcVar3 = *(code **)(*plVar17 + 0x18);" statement_identifier : (expression_statement "pcVar3 = *(code **)(*plVar17 + 0x18);" (assignment_expression "pcVar3 = *(code **)(*plVar17 + 0x18)" identifier = (pointer_expression "*(code **)(*plVar17 + 0x18)" * (cast_expression "(code **)(*plVar17 + 0x18)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(*plVar17 + 0x18)" ( (binary_expression "*plVar17 + 0x18" (pointer_expression "*plVar17" * identifier) + number_literal) ))))) ;)) (if_statement "if (pcVar3 == FUN_001b8d10) {\n                        cVar6 = (**(code **)(*plVar17 + 0x1d0))();\n                      }\n                      else {\n                        cVar6 = (*pcVar3)();\n                      }" if (parenthesized_expression "(pcVar3 == FUN_001b8d10)" ( (binary_expression "pcVar3 == FUN_001b8d10" identifier == identifier) )) (compound_statement "{\n                        cVar6 = (**(code **)(*plVar17 + 0x1d0))();\n                      }" { (expression_statement "cVar6 = (**(code **)(*plVar17 + 0x1d0))();" (assignment_expression "cVar6 = (**(code **)(*plVar17 + 0x1d0))()" identifier = (call_expression "(**(code **)(*plVar17 + 0x1d0))()" (parenthesized_expression "(**(code **)(*plVar17 + 0x1d0))" ( (pointer_expression "**(code **)(*plVar17 + 0x1d0)" * (pointer_expression "*(code **)(*plVar17 + 0x1d0)" * (cast_expression "(code **)(*plVar17 + 0x1d0)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(*plVar17 + 0x1d0)" ( (binary_expression "*plVar17 + 0x1d0" (pointer_expression "*plVar17" * identifier) + number_literal) ))))) )) (argument_list "()" ( )))) ;) }) (else_clause "else {\n                        cVar6 = (*pcVar3)();\n                      }" else (compound_statement "{\n                        cVar6 = (*pcVar3)();\n                      }" { (expression_statement "cVar6 = (*pcVar3)();" (assignment_expression "cVar6 = (*pcVar3)()" identifier = (call_expression "(*pcVar3)()" (parenthesized_expression "(*pcVar3)" ( (pointer_expression "*pcVar3" * identifier) )) (argument_list "()" ( )))) ;) }))) (expression_statement "local_60 = *(uint **)local_70;" (assignment_expression "local_60 = *(uint **)local_70" identifier = (pointer_expression "*(uint **)local_70" * (cast_expression "(uint **)local_70" ( (type_descriptor "uint **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) identifier))) ;) (if_statement "if (cVar6 != '\0') {\n                        local_60 = (uint *)((ulong)local_60 >> 0x38 |\n                                            ((ulong)local_60 & 0xff000000000000) >> 0x28 |\n                                            ((ulong)local_60 & 0xff0000000000) >> 0x18 |\n                                            ((ulong)local_60 & 0xff00000000) >> 8 |\n                                            ((ulong)local_60 & 0xff000000) << 8 |\n                                            ((ulong)local_60 & 0xff0000) << 0x18 |\n                                            ((ulong)local_60 & 0xff00) << 0x28 |\n                                           (long)local_60 << 0x38);\n                      }" if (parenthesized_expression "(cVar6 != '\0')" ( (binary_expression "cVar6 != '\0'" identifier != (char_literal "'\0'" ' escape_sequence ')) )) (compound_statement "{\n                        local_60 = (uint *)((ulong)local_60 >> 0x38 |\n                                            ((ulong)local_60 & 0xff000000000000) >> 0x28 |\n                                            ((ulong)local_60 & 0xff0000000000) >> 0x18 |\n                                            ((ulong)local_60 & 0xff00000000) >> 8 |\n                                            ((ulong)local_60 & 0xff000000) << 8 |\n                                            ((ulong)local_60 & 0xff0000) << 0x18 |\n                                            ((ulong)local_60 & 0xff00) << 0x28 |\n                                           (long)local_60 << 0x38);\n                      }" { (expression_statement "local_60 = (uint *)((ulong)local_60 >> 0x38 |\n                                            ((ulong)local_60 & 0xff000000000000) >> 0x28 |\n                                            ((ulong)local_60 & 0xff0000000000) >> 0x18 |\n                                            ((ulong)local_60 & 0xff00000000) >> 8 |\n                                            ((ulong)local_60 & 0xff000000) << 8 |\n                                            ((ulong)local_60 & 0xff0000) << 0x18 |\n                                            ((ulong)local_60 & 0xff00) << 0x28 |\n                                           (long)local_60 << 0x38);" (assignment_expression "local_60 = (uint *)((ulong)local_60 >> 0x38 |\n                                            ((ulong)local_60 & 0xff000000000000) >> 0x28 |\n                                            ((ulong)local_60 & 0xff0000000000) >> 0x18 |\n                                            ((ulong)local_60 & 0xff00000000) >> 8 |\n                                            ((ulong)local_60 & 0xff000000) << 8 |\n                                            ((ulong)local_60 & 0xff0000) << 0x18 |\n                                            ((ulong)local_60 & 0xff00) << 0x28 |\n                                           (long)local_60 << 0x38)" identifier = (cast_expression "(uint *)((ulong)local_60 >> 0x38 |\n                                            ((ulong)local_60 & 0xff000000000000) >> 0x28 |\n                                            ((ulong)local_60 & 0xff0000000000) >> 0x18 |\n                                            ((ulong)local_60 & 0xff00000000) >> 8 |\n                                            ((ulong)local_60 & 0xff000000) << 8 |\n                                            ((ulong)local_60 & 0xff0000) << 0x18 |\n                                            ((ulong)local_60 & 0xff00) << 0x28 |\n                                           (long)local_60 << 0x38)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((ulong)local_60 >> 0x38 |\n                                            ((ulong)local_60 & 0xff000000000000) >> 0x28 |\n                                            ((ulong)local_60 & 0xff0000000000) >> 0x18 |\n                                            ((ulong)local_60 & 0xff00000000) >> 8 |\n                                            ((ulong)local_60 & 0xff000000) << 8 |\n                                            ((ulong)local_60 & 0xff0000) << 0x18 |\n                                            ((ulong)local_60 & 0xff00) << 0x28 |\n                                           (long)local_60 << 0x38)" ( (binary_expression "(ulong)local_60 >> 0x38 |\n                                            ((ulong)local_60 & 0xff000000000000) >> 0x28 |\n                                            ((ulong)local_60 & 0xff0000000000) >> 0x18 |\n                                            ((ulong)local_60 & 0xff00000000) >> 8 |\n                                            ((ulong)local_60 & 0xff000000) << 8 |\n                                            ((ulong)local_60 & 0xff0000) << 0x18 |\n                                            ((ulong)local_60 & 0xff00) << 0x28 |\n                                           (long)local_60 << 0x38" (binary_expression "(ulong)local_60 >> 0x38 |\n                                            ((ulong)local_60 & 0xff000000000000) >> 0x28 |\n                                            ((ulong)local_60 & 0xff0000000000) >> 0x18 |\n                                            ((ulong)local_60 & 0xff00000000) >> 8 |\n                                            ((ulong)local_60 & 0xff000000) << 8 |\n                                            ((ulong)local_60 & 0xff0000) << 0x18 |\n                                            ((ulong)local_60 & 0xff00) << 0x28" (binary_expression "(ulong)local_60 >> 0x38 |\n                                            ((ulong)local_60 & 0xff000000000000) >> 0x28 |\n                                            ((ulong)local_60 & 0xff0000000000) >> 0x18 |\n                                            ((ulong)local_60 & 0xff00000000) >> 8 |\n                                            ((ulong)local_60 & 0xff000000) << 8 |\n                                            ((ulong)local_60 & 0xff0000) << 0x18" (binary_expression "(ulong)local_60 >> 0x38 |\n                                            ((ulong)local_60 & 0xff000000000000) >> 0x28 |\n                                            ((ulong)local_60 & 0xff0000000000) >> 0x18 |\n                                            ((ulong)local_60 & 0xff00000000) >> 8 |\n                                            ((ulong)local_60 & 0xff000000) << 8" (binary_expression "(ulong)local_60 >> 0x38 |\n                                            ((ulong)local_60 & 0xff000000000000) >> 0x28 |\n                                            ((ulong)local_60 & 0xff0000000000) >> 0x18 |\n                                            ((ulong)local_60 & 0xff00000000) >> 8" (binary_expression "(ulong)local_60 >> 0x38 |\n                                            ((ulong)local_60 & 0xff000000000000) >> 0x28 |\n                                            ((ulong)local_60 & 0xff0000000000) >> 0x18" (binary_expression "(ulong)local_60 >> 0x38 |\n                                            ((ulong)local_60 & 0xff000000000000) >> 0x28" (binary_expression "(ulong)local_60 >> 0x38" (cast_expression "(ulong)local_60" ( (type_descriptor "ulong" type_identifier) ) identifier) >> number_literal) | (binary_expression "((ulong)local_60 & 0xff000000000000) >> 0x28" (parenthesized_expression "((ulong)local_60 & 0xff000000000000)" ( (binary_expression "(ulong)local_60 & 0xff000000000000" (cast_expression "(ulong)local_60" ( (type_descriptor "ulong" type_identifier) ) identifier) & number_literal) )) >> number_literal)) | (binary_expression "((ulong)local_60 & 0xff0000000000) >> 0x18" (parenthesized_expression "((ulong)local_60 & 0xff0000000000)" ( (binary_expression "(ulong)local_60 & 0xff0000000000" (cast_expression "(ulong)local_60" ( (type_descriptor "ulong" type_identifier) ) identifier) & number_literal) )) >> number_literal)) | (binary_expression "((ulong)local_60 & 0xff00000000) >> 8" (parenthesized_expression "((ulong)local_60 & 0xff00000000)" ( (binary_expression "(ulong)local_60 & 0xff00000000" (cast_expression "(ulong)local_60" ( (type_descriptor "ulong" type_identifier) ) identifier) & number_literal) )) >> number_literal)) | (binary_expression "((ulong)local_60 & 0xff000000) << 8" (parenthesized_expression "((ulong)local_60 & 0xff000000)" ( (binary_expression "(ulong)local_60 & 0xff000000" (cast_expression "(ulong)local_60" ( (type_descriptor "ulong" type_identifier) ) identifier) & number_literal) )) << number_literal)) | (binary_expression "((ulong)local_60 & 0xff0000) << 0x18" (parenthesized_expression "((ulong)local_60 & 0xff0000)" ( (binary_expression "(ulong)local_60 & 0xff0000" (cast_expression "(ulong)local_60" ( (type_descriptor "ulong" type_identifier) ) identifier) & number_literal) )) << number_literal)) | (binary_expression "((ulong)local_60 & 0xff00) << 0x28" (parenthesized_expression "((ulong)local_60 & 0xff00)" ( (binary_expression "(ulong)local_60 & 0xff00" (cast_expression "(ulong)local_60" ( (type_descriptor "ulong" type_identifier) ) identifier) & number_literal) )) << number_literal)) | (binary_expression "(long)local_60 << 0x38" (cast_expression "(long)local_60" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) identifier) << number_literal)) )))) ;) })) (expression_statement "local_70 = local_70 + 2;" (assignment_expression "local_70 = local_70 + 2" identifier = (binary_expression "local_70 + 2" identifier + number_literal)) ;) }))) (labeled_statement "LAB_00303035:\n                    local_48 = FUN_00301dc0(*param_1,pbVar15,&local_60);" statement_identifier : (expression_statement "local_48 = FUN_00301dc0(*param_1,pbVar15,&local_60);" (assignment_expression "local_48 = FUN_00301dc0(*param_1,pbVar15,&local_60)" identifier = (call_expression "FUN_00301dc0(*param_1,pbVar15,&local_60)" identifier (argument_list "(*param_1,pbVar15,&local_60)" ( (pointer_expression "*param_1" * identifier) , identifier , (pointer_expression "&local_60" & identifier) )))) ;)) (expression_statement "puStack_50 = local_60;" (assignment_expression "puStack_50 = local_60" identifier = identifier) ;) (goto_statement "goto joined_r0x00303052;" goto statement_identifier ;) })) (if_statement "if (uVar8 != 0x18) {\n                    return 0;\n                  }" if (parenthesized_expression "(uVar8 != 0x18)" ( (binary_expression "uVar8 != 0x18" identifier != number_literal) )) (compound_statement "{\n                    return 0;\n                  }" { (return_statement "return 0;" return number_literal ;) })) (labeled_statement "LAB_00302a09:\n                  bVar1 = (byte)*local_70;" statement_identifier : (expression_statement "bVar1 = (byte)*local_70;" (assignment_expression "bVar1 = (byte)*local_70" identifier = (binary_expression "(byte)*local_70" (parenthesized_expression "(byte)" ( identifier )) * identifier)) ;)) (expression_statement "uVar9 = (uint)bVar1;" (assignment_expression "uVar9 = (uint)bVar1" identifier = (cast_expression "(uint)bVar1" ( (type_descriptor "uint" type_identifier) ) identifier)) ;) (expression_statement "puVar11 = (uint *)((long)local_70 + 1);" (assignment_expression "puVar11 = (uint *)((long)local_70 + 1)" identifier = (cast_expression "(uint *)((long)local_70 + 1)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((long)local_70 + 1)" ( (binary_expression "(long)local_70 + 1" (cast_expression "(long)local_70" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) identifier) + number_literal) )))) ;) (if_statement "if ((char)bVar1 < '\0') {\n                    uVar9 = FUN_002112d0(puVar11,&local_68,bVar1);\n                    puVar11 = (uint *)((long)local_70 + local_68);\n                  }\n                  else {\n                    local_68 = 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                    uVar9 = FUN_002112d0(puVar11,&local_68,bVar1);\n                    puVar11 = (uint *)((long)local_70 + local_68);\n                  }" { (expression_statement "uVar9 = FUN_002112d0(puVar11,&local_68,bVar1);" (assignment_expression "uVar9 = FUN_002112d0(puVar11,&local_68,bVar1)" identifier = (call_expression "FUN_002112d0(puVar11,&local_68,bVar1)" identifier (argument_list "(puVar11,&local_68,bVar1)" ( identifier , (pointer_expression "&local_68" & identifier) , identifier )))) ;) (expression_statement "puVar11 = (uint *)((long)local_70 + local_68);" (assignment_expression "puVar11 = (uint *)((long)local_70 + local_68)" identifier = (cast_expression "(uint *)((long)local_70 + local_68)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((long)local_70 + local_68)" ( (binary_expression "(long)local_70 + local_68" (cast_expression "(long)local_70" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) identifier) + identifier) )))) ;) }) (else_clause "else {\n                    local_68 = 1;\n                  }" else (compound_statement "{\n                    local_68 = 1;\n                  }" { (expression_statement "local_68 = 1;" (assignment_expression "local_68 = 1" identifier = number_literal) ;) }))) (expression_statement "local_70 = (uint *)((long)local_70 + uVar9 + local_68);" (assignment_expression "local_70 = (uint *)((long)local_70 + uVar9 + local_68)" identifier = (cast_expression "(uint *)((long)local_70 + uVar9 + local_68)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((long)local_70 + uVar9 + local_68)" ( (binary_expression "(long)local_70 + uVar9 + local_68" (binary_expression "(long)local_70 + uVar9" (cast_expression "(long)local_70" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) identifier) + identifier) + identifier) )))) ;) (expression_statement "puStack_50 = puVar11;" (assignment_expression "puStack_50 = puVar11" identifier = identifier) ;) (expression_statement "local_48 = uVar9;" (assignment_expression "local_48 = uVar9" identifier = identifier) ;) }) (else_clause "else {\n                  if (uVar8 == 0x20) {\n                    pcVar3 = *(code **)(**(long **)(*param_1 + 0x10) + 0x18);\n                    if (pcVar3 == FUN_001b8d10) {\n                      cVar6 = (**(code **)(**(long **)(*param_1 + 0x10) + 0x1d0))();\n                    }\n                    else {\n                      cVar6 = (*pcVar3)();\n                    }\n                    puStack_50 = *(uint **)local_70;\n                    if (cVar6 != '\0') {\n                      puStack_50 = (uint *)((ulong)puStack_50 >> 0x38 |\n                                            ((ulong)puStack_50 & 0xff000000000000) >> 0x28 |\n                                            ((ulong)puStack_50 & 0xff0000000000) >> 0x18 |\n                                            ((ulong)puStack_50 & 0xff00000000) >> 8 |\n                                            ((ulong)puStack_50 & 0xff000000) << 8 |\n                                            ((ulong)puStack_50 & 0xff0000) << 0x18 |\n                                            ((ulong)puStack_50 & 0xff00) << 0x28 |\n                                           (long)puStack_50 << 0x38);\n                    }\n                    local_70 = local_70 + 2;\n                    goto LAB_00302ea9;\n                  }\n                  if (uVar8 < 0x20) {\n                    return 0;\n                  }\n                  if (1 < uVar8 - 0x1f01) {\n                    return 0;\n                  }\nLAB_00302bcd:\n                  bVar1 = (byte)*local_70;\n                  if ((char)bVar1 < '\0') {\n                    puStack_50 = (uint *)FUN_002112d0((uint *)((long)local_70 + 1),&local_68,bVar1);\n                    local_70 = (uint *)(local_68 + (long)local_70);\n                  }\n                  else {\n                    local_68 = 1;\n                    local_70 = (uint *)((long)local_70 + 1);\n                    puStack_50 = (uint *)(ulong)bVar1;\n                  }\n                }" else (compound_statement "{\n                  if (uVar8 == 0x20) {\n                    pcVar3 = *(code **)(**(long **)(*param_1 + 0x10) + 0x18);\n                    if (pcVar3 == FUN_001b8d10) {\n                      cVar6 = (**(code **)(**(long **)(*param_1 + 0x10) + 0x1d0))();\n                    }\n                    else {\n                      cVar6 = (*pcVar3)();\n                    }\n                    puStack_50 = *(uint **)local_70;\n                    if (cVar6 != '\0') {\n                      puStack_50 = (uint *)((ulong)puStack_50 >> 0x38 |\n                                            ((ulong)puStack_50 & 0xff000000000000) >> 0x28 |\n                                            ((ulong)puStack_50 & 0xff0000000000) >> 0x18 |\n                                            ((ulong)puStack_50 & 0xff00000000) >> 8 |\n                                            ((ulong)puStack_50 & 0xff000000) << 8 |\n                                            ((ulong)puStack_50 & 0xff0000) << 0x18 |\n                                            ((ulong)puStack_50 & 0xff00) << 0x28 |\n                                           (long)puStack_50 << 0x38);\n                    }\n                    local_70 = local_70 + 2;\n                    goto LAB_00302ea9;\n                  }\n                  if (uVar8 < 0x20) {\n                    return 0;\n                  }\n                  if (1 < uVar8 - 0x1f01) {\n                    return 0;\n                  }\nLAB_00302bcd:\n                  bVar1 = (byte)*local_70;\n                  if ((char)bVar1 < '\0') {\n                    puStack_50 = (uint *)FUN_002112d0((uint *)((long)local_70 + 1),&local_68,bVar1);\n                    local_70 = (uint *)(local_68 + (long)local_70);\n                  }\n                  else {\n                    local_68 = 1;\n                    local_70 = (uint *)((long)local_70 + 1);\n                    puStack_50 = (uint *)(ulong)bVar1;\n                  }\n                }" { (if_statement "if (uVar8 == 0x20) {\n                    pcVar3 = *(code **)(**(long **)(*param_1 + 0x10) + 0x18);\n                    if (pcVar3 == FUN_001b8d10) {\n                      cVar6 = (**(code **)(**(long **)(*param_1 + 0x10) + 0x1d0))();\n                    }\n                    else {\n                      cVar6 = (*pcVar3)();\n                    }\n                    puStack_50 = *(uint **)local_70;\n                    if (cVar6 != '\0') {\n                      puStack_50 = (uint *)((ulong)puStack_50 >> 0x38 |\n                                            ((ulong)puStack_50 & 0xff000000000000) >> 0x28 |\n                                            ((ulong)puStack_50 & 0xff0000000000) >> 0x18 |\n                                            ((ulong)puStack_50 & 0xff00000000) >> 8 |\n                                            ((ulong)puStack_50 & 0xff000000) << 8 |\n                                            ((ulong)puStack_50 & 0xff0000) << 0x18 |\n                                            ((ulong)puStack_50 & 0xff00) << 0x28 |\n                                           (long)puStack_50 << 0x38);\n                    }\n                    local_70 = local_70 + 2;\n                    goto LAB_00302ea9;\n                  }" if (parenthesized_expression "(uVar8 == 0x20)" ( (binary_expression "uVar8 == 0x20" identifier == number_literal) )) (compound_statement "{\n                    pcVar3 = *(code **)(**(long **)(*param_1 + 0x10) + 0x18);\n                    if (pcVar3 == FUN_001b8d10) {\n                      cVar6 = (**(code **)(**(long **)(*param_1 + 0x10) + 0x1d0))();\n                    }\n                    else {\n                      cVar6 = (*pcVar3)();\n                    }\n                    puStack_50 = *(uint **)local_70;\n                    if (cVar6 != '\0') {\n                      puStack_50 = (uint *)((ulong)puStack_50 >> 0x38 |\n                                            ((ulong)puStack_50 & 0xff000000000000) >> 0x28 |\n                                            ((ulong)puStack_50 & 0xff0000000000) >> 0x18 |\n                                            ((ulong)puStack_50 & 0xff00000000) >> 8 |\n                                            ((ulong)puStack_50 & 0xff000000) << 8 |\n                                            ((ulong)puStack_50 & 0xff0000) << 0x18 |\n                                            ((ulong)puStack_50 & 0xff00) << 0x28 |\n                                           (long)puStack_50 << 0x38);\n                    }\n                    local_70 = local_70 + 2;\n                    goto LAB_00302ea9;\n                  }" { (expression_statement "pcVar3 = *(code **)(**(long **)(*param_1 + 0x10) + 0x18);" (assignment_expression "pcVar3 = *(code **)(**(long **)(*param_1 + 0x10) + 0x18)" identifier = (pointer_expression "*(code **)(**(long **)(*param_1 + 0x10) + 0x18)" * (cast_expression "(code **)(**(long **)(*param_1 + 0x10) + 0x18)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(**(long **)(*param_1 + 0x10) + 0x18)" ( (binary_expression "**(long **)(*param_1 + 0x10) + 0x18" (pointer_expression "**(long **)(*param_1 + 0x10)" * (pointer_expression "*(long **)(*param_1 + 0x10)" * (cast_expression "(long **)(*param_1 + 0x10)" ( (type_descriptor "long **" (sized_type_specifier "long" long) (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(*param_1 + 0x10)" ( (binary_expression "*param_1 + 0x10" (pointer_expression "*param_1" * identifier) + number_literal) ))))) + number_literal) ))))) ;) (if_statement "if (pcVar3 == FUN_001b8d10) {\n                      cVar6 = (**(code **)(**(long **)(*param_1 + 0x10) + 0x1d0))();\n                    }\n                    else {\n                      cVar6 = (*pcVar3)();\n                    }" if (parenthesized_expression "(pcVar3 == FUN_001b8d10)" ( (binary_expression "pcVar3 == FUN_001b8d10" identifier == identifier) )) (compound_statement "{\n                      cVar6 = (**(code **)(**(long **)(*param_1 + 0x10) + 0x1d0))();\n                    }" { (expression_statement "cVar6 = (**(code **)(**(long **)(*param_1 + 0x10) + 0x1d0))();" (assignment_expression "cVar6 = (**(code **)(**(long **)(*param_1 + 0x10) + 0x1d0))()" identifier = (call_expression "(**(code **)(**(long **)(*param_1 + 0x10) + 0x1d0))()" (parenthesized_expression "(**(code **)(**(long **)(*param_1 + 0x10) + 0x1d0))" ( (pointer_expression "**(code **)(**(long **)(*param_1 + 0x10) + 0x1d0)" * (pointer_expression "*(code **)(**(long **)(*param_1 + 0x10) + 0x1d0)" * (cast_expression "(code **)(**(long **)(*param_1 + 0x10) + 0x1d0)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(**(long **)(*param_1 + 0x10) + 0x1d0)" ( (binary_expression "**(long **)(*param_1 + 0x10) + 0x1d0" (pointer_expression "**(long **)(*param_1 + 0x10)" * (pointer_expression "*(long **)(*param_1 + 0x10)" * (cast_expression "(long **)(*param_1 + 0x10)" ( (type_descriptor "long **" (sized_type_specifier "long" long) (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(*param_1 + 0x10)" ( (binary_expression "*param_1 + 0x10" (pointer_expression "*param_1" * identifier) + number_literal) ))))) + number_literal) ))))) )) (argument_list "()" ( )))) ;) }) (else_clause "else {\n                      cVar6 = (*pcVar3)();\n                    }" else (compound_statement "{\n                      cVar6 = (*pcVar3)();\n                    }" { (expression_statement "cVar6 = (*pcVar3)();" (assignment_expression "cVar6 = (*pcVar3)()" identifier = (call_expression "(*pcVar3)()" (parenthesized_expression "(*pcVar3)" ( (pointer_expression "*pcVar3" * identifier) )) (argument_list "()" ( )))) ;) }))) (expression_statement "puStack_50 = *(uint **)local_70;" (assignment_expression "puStack_50 = *(uint **)local_70" identifier = (pointer_expression "*(uint **)local_70" * (cast_expression "(uint **)local_70" ( (type_descriptor "uint **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) identifier))) ;) (if_statement "if (cVar6 != '\0') {\n                      puStack_50 = (uint *)((ulong)puStack_50 >> 0x38 |\n                                            ((ulong)puStack_50 & 0xff000000000000) >> 0x28 |\n                                            ((ulong)puStack_50 & 0xff0000000000) >> 0x18 |\n                                            ((ulong)puStack_50 & 0xff00000000) >> 8 |\n                                            ((ulong)puStack_50 & 0xff000000) << 8 |\n                                            ((ulong)puStack_50 & 0xff0000) << 0x18 |\n                                            ((ulong)puStack_50 & 0xff00) << 0x28 |\n                                           (long)puStack_50 << 0x38);\n                    }" if (parenthesized_expression "(cVar6 != '\0')" ( (binary_expression "cVar6 != '\0'" identifier != (char_literal "'\0'" ' escape_sequence ')) )) (compound_statement "{\n                      puStack_50 = (uint *)((ulong)puStack_50 >> 0x38 |\n                                            ((ulong)puStack_50 & 0xff000000000000) >> 0x28 |\n                                            ((ulong)puStack_50 & 0xff0000000000) >> 0x18 |\n                                            ((ulong)puStack_50 & 0xff00000000) >> 8 |\n                                            ((ulong)puStack_50 & 0xff000000) << 8 |\n                                            ((ulong)puStack_50 & 0xff0000) << 0x18 |\n                                            ((ulong)puStack_50 & 0xff00) << 0x28 |\n                                           (long)puStack_50 << 0x38);\n                    }" { (expression_statement "puStack_50 = (uint *)((ulong)puStack_50 >> 0x38 |\n                                            ((ulong)puStack_50 & 0xff000000000000) >> 0x28 |\n                                            ((ulong)puStack_50 & 0xff0000000000) >> 0x18 |\n                                            ((ulong)puStack_50 & 0xff00000000) >> 8 |\n                                            ((ulong)puStack_50 & 0xff000000) << 8 |\n                                            ((ulong)puStack_50 & 0xff0000) << 0x18 |\n                                            ((ulong)puStack_50 & 0xff00) << 0x28 |\n                                           (long)puStack_50 << 0x38);" (assignment_expression "puStack_50 = (uint *)((ulong)puStack_50 >> 0x38 |\n                                            ((ulong)puStack_50 & 0xff000000000000) >> 0x28 |\n                                            ((ulong)puStack_50 & 0xff0000000000) >> 0x18 |\n                                            ((ulong)puStack_50 & 0xff00000000) >> 8 |\n                                            ((ulong)puStack_50 & 0xff000000) << 8 |\n                                            ((ulong)puStack_50 & 0xff0000) << 0x18 |\n                                            ((ulong)puStack_50 & 0xff00) << 0x28 |\n                                           (long)puStack_50 << 0x38)" identifier = (cast_expression "(uint *)((ulong)puStack_50 >> 0x38 |\n                                            ((ulong)puStack_50 & 0xff000000000000) >> 0x28 |\n                                            ((ulong)puStack_50 & 0xff0000000000) >> 0x18 |\n                                            ((ulong)puStack_50 & 0xff00000000) >> 8 |\n                                            ((ulong)puStack_50 & 0xff000000) << 8 |\n                                            ((ulong)puStack_50 & 0xff0000) << 0x18 |\n                                            ((ulong)puStack_50 & 0xff00) << 0x28 |\n                                           (long)puStack_50 << 0x38)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((ulong)puStack_50 >> 0x38 |\n                                            ((ulong)puStack_50 & 0xff000000000000) >> 0x28 |\n                                            ((ulong)puStack_50 & 0xff0000000000) >> 0x18 |\n                                            ((ulong)puStack_50 & 0xff00000000) >> 8 |\n                                            ((ulong)puStack_50 & 0xff000000) << 8 |\n                                            ((ulong)puStack_50 & 0xff0000) << 0x18 |\n                                            ((ulong)puStack_50 & 0xff00) << 0x28 |\n                                           (long)puStack_50 << 0x38)" ( (binary_expression "(ulong)puStack_50 >> 0x38 |\n                                            ((ulong)puStack_50 & 0xff000000000000) >> 0x28 |\n                                            ((ulong)puStack_50 & 0xff0000000000) >> 0x18 |\n                                            ((ulong)puStack_50 & 0xff00000000) >> 8 |\n                                            ((ulong)puStack_50 & 0xff000000) << 8 |\n                                            ((ulong)puStack_50 & 0xff0000) << 0x18 |\n                                            ((ulong)puStack_50 & 0xff00) << 0x28 |\n                                           (long)puStack_50 << 0x38" (binary_expression "(ulong)puStack_50 >> 0x38 |\n                                            ((ulong)puStack_50 & 0xff000000000000) >> 0x28 |\n                                            ((ulong)puStack_50 & 0xff0000000000) >> 0x18 |\n                                            ((ulong)puStack_50 & 0xff00000000) >> 8 |\n                                            ((ulong)puStack_50 & 0xff000000) << 8 |\n                                            ((ulong)puStack_50 & 0xff0000) << 0x18 |\n                                            ((ulong)puStack_50 & 0xff00) << 0x28" (binary_expression "(ulong)puStack_50 >> 0x38 |\n                                            ((ulong)puStack_50 & 0xff000000000000) >> 0x28 |\n                                            ((ulong)puStack_50 & 0xff0000000000) >> 0x18 |\n                                            ((ulong)puStack_50 & 0xff00000000) >> 8 |\n                                            ((ulong)puStack_50 & 0xff000000) << 8 |\n                                            ((ulong)puStack_50 & 0xff0000) << 0x18" (binary_expression "(ulong)puStack_50 >> 0x38 |\n                                            ((ulong)puStack_50 & 0xff000000000000) >> 0x28 |\n                                            ((ulong)puStack_50 & 0xff0000000000) >> 0x18 |\n                                            ((ulong)puStack_50 & 0xff00000000) >> 8 |\n                                            ((ulong)puStack_50 & 0xff000000) << 8" (binary_expression "(ulong)puStack_50 >> 0x38 |\n                                            ((ulong)puStack_50 & 0xff000000000000) >> 0x28 |\n                                            ((ulong)puStack_50 & 0xff0000000000) >> 0x18 |\n                                            ((ulong)puStack_50 & 0xff00000000) >> 8" (binary_expression "(ulong)puStack_50 >> 0x38 |\n                                            ((ulong)puStack_50 & 0xff000000000000) >> 0x28 |\n                                            ((ulong)puStack_50 & 0xff0000000000) >> 0x18" (binary_expression "(ulong)puStack_50 >> 0x38 |\n                                            ((ulong)puStack_50 & 0xff000000000000) >> 0x28" (binary_expression "(ulong)puStack_50 >> 0x38" (cast_expression "(ulong)puStack_50" ( (type_descriptor "ulong" type_identifier) ) identifier) >> number_literal) | (binary_expression "((ulong)puStack_50 & 0xff000000000000) >> 0x28" (parenthesized_expression "((ulong)puStack_50 & 0xff000000000000)" ( (binary_expression "(ulong)puStack_50 & 0xff000000000000" (cast_expression "(ulong)puStack_50" ( (type_descriptor "ulong" type_identifier) ) identifier) & number_literal) )) >> number_literal)) | (binary_expression "((ulong)puStack_50 & 0xff0000000000) >> 0x18" (parenthesized_expression "((ulong)puStack_50 & 0xff0000000000)" ( (binary_expression "(ulong)puStack_50 & 0xff0000000000" (cast_expression "(ulong)puStack_50" ( (type_descriptor "ulong" type_identifier) ) identifier) & number_literal) )) >> number_literal)) | (binary_expression "((ulong)puStack_50 & 0xff00000000) >> 8" (parenthesized_expression "((ulong)puStack_50 & 0xff00000000)" ( (binary_expression "(ulong)puStack_50 & 0xff00000000" (cast_expression "(ulong)puStack_50" ( (type_descriptor "ulong" type_identifier) ) identifier) & number_literal) )) >> number_literal)) | (binary_expression "((ulong)puStack_50 & 0xff000000) << 8" (parenthesized_expression "((ulong)puStack_50 & 0xff000000)" ( (binary_expression "(ulong)puStack_50 & 0xff000000" (cast_expression "(ulong)puStack_50" ( (type_descriptor "ulong" type_identifier) ) identifier) & number_literal) )) << number_literal)) | (binary_expression "((ulong)puStack_50 & 0xff0000) << 0x18" (parenthesized_expression "((ulong)puStack_50 & 0xff0000)" ( (binary_expression "(ulong)puStack_50 & 0xff0000" (cast_expression "(ulong)puStack_50" ( (type_descriptor "ulong" type_identifier) ) identifier) & number_literal) )) << number_literal)) | (binary_expression "((ulong)puStack_50 & 0xff00) << 0x28" (parenthesized_expression "((ulong)puStack_50 & 0xff00)" ( (binary_expression "(ulong)puStack_50 & 0xff00" (cast_expression "(ulong)puStack_50" ( (type_descriptor "ulong" type_identifier) ) identifier) & number_literal) )) << number_literal)) | (binary_expression "(long)puStack_50 << 0x38" (cast_expression "(long)puStack_50" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) identifier) << number_literal)) )))) ;) })) (expression_statement "local_70 = local_70 + 2;" (assignment_expression "local_70 = local_70 + 2" identifier = (binary_expression "local_70 + 2" identifier + number_literal)) ;) (goto_statement "goto LAB_00302ea9;" goto statement_identifier ;) })) (if_statement "if (uVar8 < 0x20) {\n                    return 0;\n                  }" if (parenthesized_expression "(uVar8 < 0x20)" ( (binary_expression "uVar8 < 0x20" identifier < number_literal) )) (compound_statement "{\n                    return 0;\n                  }" { (return_statement "return 0;" return number_literal ;) })) (if_statement "if (1 < uVar8 - 0x1f01) {\n                    return 0;\n                  }" if (parenthesized_expression "(1 < uVar8 - 0x1f01)" ( (binary_expression "1 < uVar8 - 0x1f01" number_literal < (binary_expression "uVar8 - 0x1f01" identifier - number_literal)) )) (compound_statement "{\n                    return 0;\n                  }" { (return_statement "return 0;" return number_literal ;) })) (labeled_statement "LAB_00302bcd:\n                  bVar1 = (byte)*local_70;" statement_identifier : (expression_statement "bVar1 = (byte)*local_70;" (assignment_expression "bVar1 = (byte)*local_70" identifier = (binary_expression "(byte)*local_70" (parenthesized_expression "(byte)" ( identifier )) * identifier)) ;)) (if_statement "if ((char)bVar1 < '\0') {\n                    puStack_50 = (uint *)FUN_002112d0((uint *)((long)local_70 + 1),&local_68,bVar1);\n                    local_70 = (uint *)(local_68 + (long)local_70);\n                  }\n                  else {\n                    local_68 = 1;\n                    local_70 = (uint *)((long)local_70 + 1);\n                    puStack_50 = (uint *)(ulong)bVar1;\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                    puStack_50 = (uint *)FUN_002112d0((uint *)((long)local_70 + 1),&local_68,bVar1);\n                    local_70 = (uint *)(local_68 + (long)local_70);\n                  }" { (expression_statement "puStack_50 = (uint *)FUN_002112d0((uint *)((long)local_70 + 1),&local_68,bVar1);" (assignment_expression "puStack_50 = (uint *)FUN_002112d0((uint *)((long)local_70 + 1),&local_68,bVar1)" identifier = (cast_expression "(uint *)FUN_002112d0((uint *)((long)local_70 + 1),&local_68,bVar1)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (call_expression "FUN_002112d0((uint *)((long)local_70 + 1),&local_68,bVar1)" identifier (argument_list "((uint *)((long)local_70 + 1),&local_68,bVar1)" ( (cast_expression "(uint *)((long)local_70 + 1)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((long)local_70 + 1)" ( (binary_expression "(long)local_70 + 1" (cast_expression "(long)local_70" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) identifier) + number_literal) ))) , (pointer_expression "&local_68" & identifier) , identifier ))))) ;) (expression_statement "local_70 = (uint *)(local_68 + (long)local_70);" (assignment_expression "local_70 = (uint *)(local_68 + (long)local_70)" identifier = (cast_expression "(uint *)(local_68 + (long)local_70)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(local_68 + (long)local_70)" ( (binary_expression "local_68 + (long)local_70" identifier + (cast_expression "(long)local_70" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) identifier)) )))) ;) }) (else_clause "else {\n                    local_68 = 1;\n                    local_70 = (uint *)((long)local_70 + 1);\n                    puStack_50 = (uint *)(ulong)bVar1;\n                  }" else (compound_statement "{\n                    local_68 = 1;\n                    local_70 = (uint *)((long)local_70 + 1);\n                    puStack_50 = (uint *)(ulong)bVar1;\n                  }" { (expression_statement "local_68 = 1;" (assignment_expression "local_68 = 1" identifier = number_literal) ;) (expression_statement "local_70 = (uint *)((long)local_70 + 1);" (assignment_expression "local_70 = (uint *)((long)local_70 + 1)" identifier = (cast_expression "(uint *)((long)local_70 + 1)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((long)local_70 + 1)" ( (binary_expression "(long)local_70 + 1" (cast_expression "(long)local_70" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) identifier) + number_literal) )))) ;) (expression_statement "puStack_50 = (uint *)(ulong)bVar1;" (assignment_expression "puStack_50 = (uint *)(ulong)bVar1" identifier = (cast_expression "(uint *)(ulong)bVar1" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (cast_expression "(ulong)bVar1" ( (type_descriptor "ulong" type_identifier) ) identifier))) ;) }))) }))) (labeled_statement "LAB_00302f92:\n                if (uVar2 == 0x31) goto LAB_00302750;" statement_identifier : (if_statement "if (uVar2 == 0x31) goto LAB_00302750;" if (parenthesized_expression "(uVar2 == 0x31)" ( (binary_expression "uVar2 == 0x31" identifier == number_literal) )) (goto_statement "goto LAB_00302750;" goto statement_identifier ;))) (if_statement "if (0x31 < uVar2) {\n                  if ((uVar2 == 0x6e) || (uVar2 == 0x2007)) goto LAB_00302fb5;\n                  goto LAB_00302750;\n                }" if (parenthesized_expression "(0x31 < uVar2)" ( (binary_expression "0x31 < uVar2" number_literal < identifier) )) (compound_statement "{\n                  if ((uVar2 == 0x6e) || (uVar2 == 0x2007)) goto LAB_00302fb5;\n                  goto LAB_00302750;\n                }" { (if_statement "if ((uVar2 == 0x6e) || (uVar2 == 0x2007)) goto LAB_00302fb5;" if (parenthesized_expression "((uVar2 == 0x6e) || (uVar2 == 0x2007))" ( (binary_expression "(uVar2 == 0x6e) || (uVar2 == 0x2007)" (parenthesized_expression "(uVar2 == 0x6e)" ( (binary_expression "uVar2 == 0x6e" identifier == number_literal) )) || (parenthesized_expression "(uVar2 == 0x2007)" ( (binary_expression "uVar2 == 0x2007" identifier == number_literal) ))) )) (goto_statement "goto LAB_00302fb5;" goto statement_identifier ;)) (goto_statement "goto LAB_00302750;" goto statement_identifier ;) })) (goto_statement "goto LAB_00302e3e;" goto statement_identifier ;) })) (expression_statement "puStack_50 = (uint *)0x1;" (assignment_expression "puStack_50 = (uint *)0x1" identifier = (cast_expression "(uint *)0x1" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (labeled_statement "LAB_00302ea9:\n              if (((uVar2 == 0x31) || (0x31 < uVar2)) || (uVar2 != 3)) goto LAB_00302750;" statement_identifier : (if_statement "if (((uVar2 == 0x31) || (0x31 < uVar2)) || (uVar2 != 3)) goto LAB_00302750;" if (parenthesized_expression "(((uVar2 == 0x31) || (0x31 < uVar2)) || (uVar2 != 3))" ( (binary_expression "((uVar2 == 0x31) || (0x31 < uVar2)) || (uVar2 != 3)" (parenthesized_expression "((uVar2 == 0x31) || (0x31 < uVar2))" ( (binary_expression "(uVar2 == 0x31) || (0x31 < uVar2)" (parenthesized_expression "(uVar2 == 0x31)" ( (binary_expression "uVar2 == 0x31" identifier == number_literal) )) || (parenthesized_expression "(0x31 < uVar2)" ( (binary_expression "0x31 < uVar2" number_literal < identifier) ))) )) || (parenthesized_expression "(uVar2 != 3)" ( (binary_expression "uVar2 != 3" identifier != number_literal) ))) )) (goto_statement "goto LAB_00302750;" goto statement_identifier ;))) (labeled_statement "LAB_00302e52:\n              if (uVar8 == 8) {\nLAB_003029c7:\n                param_1[0xb] = (long)puStack_50;\n              }\n              else if (uVar8 == 0xe) goto LAB_00302f64;" statement_identifier : (if_statement "if (uVar8 == 8) {\nLAB_003029c7:\n                param_1[0xb] = (long)puStack_50;\n              }\n              else if (uVar8 == 0xe) goto LAB_00302f64;" if (parenthesized_expression "(uVar8 == 8)" ( (binary_expression "uVar8 == 8" identifier == number_literal) )) (compound_statement "{\nLAB_003029c7:\n                param_1[0xb] = (long)puStack_50;\n              }" { (labeled_statement "LAB_003029c7:\n                param_1[0xb] = (long)puStack_50;" statement_identifier : (expression_statement "param_1[0xb] = (long)puStack_50;" (assignment_expression "param_1[0xb] = (long)puStack_50" (subscript_expression "param_1[0xb]" identifier [ number_literal ]) = (cast_expression "(long)puStack_50" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) identifier)) ;)) }) (else_clause "else if (uVar8 == 0xe) goto LAB_00302f64;" else (if_statement "if (uVar8 == 0xe) goto LAB_00302f64;" if (parenthesized_expression "(uVar8 == 0xe)" ( (binary_expression "uVar8 == 0xe" identifier == number_literal) )) (goto_statement "goto LAB_00302f64;" goto statement_identifier ;))))) (goto_statement "goto LAB_00302750;" goto statement_identifier ;) })) (if_statement "if (uVar8 != 0x11) {\n              if (0x11 < uVar8) {\n                if (uVar8 == 0x13) {\n                  uVar9 = FUN_00305610(*param_1,&local_70);\n                  local_60 = (uint *)(ulong)uVar9;\n                  goto LAB_00303035;\n                }\n                if (0x13 < uVar8) {\n                  plVar17 = *(long **)(*param_1 + 0x10);\n                  goto LAB_00302fe7;\n                }\n                pcVar3 = *(code **)(**(long **)(*param_1 + 0x10) + 0x18);\n                if (pcVar3 == FUN_001b8d10) {\n                  cVar6 = (**(code **)(**(long **)(*param_1 + 0x10) + 0x1d0))();\n                }\n                else {\n                  cVar6 = (*pcVar3)();\n                }\n                uVar5 = (ushort)*local_70;\n                if (cVar6 != '\0') {\n                  uVar5 = CONCAT11((byte)*local_70,*(byte *)((long)local_70 + 1));\n                }\n                local_70 = (uint *)((long)local_70 + 2);\n                puStack_50 = (uint *)(ulong)uVar5;\n                goto joined_r0x00303052;\n              }\n              if (uVar8 == 0xf) goto LAB_00302bcd;\n              if (uVar8 != 0x10) {\n                return 0;\n              }\n              lVar10 = *param_1;\n              iVar7 = *(int *)(lVar10 + 100);\n              if (2 < *(uint *)(lVar10 + 0x68)) {\n                iVar7 = *(int *)(lVar10 + 0x60);\n              }\n              if (iVar7 != 4) goto LAB_00302a71;\nLAB_00302e7d:\n              uVar8 = FUN_00305610(lVar10,&local_70);\n              local_60 = (uint *)(ulong)uVar8;\nLAB_00302abe:\n              local_48 = FUN_00301dc0(*param_1,pbVar15,&local_60);\n              puStack_50 = local_60;\n              if (uVar2 == 0x31) goto LAB_00302965;\n              if (0x31 < uVar2) goto joined_r0x00302ccc;\n              goto LAB_00302c20;\n            }" if (parenthesized_expression "(uVar8 != 0x11)" ( (binary_expression "uVar8 != 0x11" identifier != number_literal) )) (compound_statement "{\n              if (0x11 < uVar8) {\n                if (uVar8 == 0x13) {\n                  uVar9 = FUN_00305610(*param_1,&local_70);\n                  local_60 = (uint *)(ulong)uVar9;\n                  goto LAB_00303035;\n                }\n                if (0x13 < uVar8) {\n                  plVar17 = *(long **)(*param_1 + 0x10);\n                  goto LAB_00302fe7;\n                }\n                pcVar3 = *(code **)(**(long **)(*param_1 + 0x10) + 0x18);\n                if (pcVar3 == FUN_001b8d10) {\n                  cVar6 = (**(code **)(**(long **)(*param_1 + 0x10) + 0x1d0))();\n                }\n                else {\n                  cVar6 = (*pcVar3)();\n                }\n                uVar5 = (ushort)*local_70;\n                if (cVar6 != '\0') {\n                  uVar5 = CONCAT11((byte)*local_70,*(byte *)((long)local_70 + 1));\n                }\n                local_70 = (uint *)((long)local_70 + 2);\n                puStack_50 = (uint *)(ulong)uVar5;\n                goto joined_r0x00303052;\n              }\n              if (uVar8 == 0xf) goto LAB_00302bcd;\n              if (uVar8 != 0x10) {\n                return 0;\n              }\n              lVar10 = *param_1;\n              iVar7 = *(int *)(lVar10 + 100);\n              if (2 < *(uint *)(lVar10 + 0x68)) {\n                iVar7 = *(int *)(lVar10 + 0x60);\n              }\n              if (iVar7 != 4) goto LAB_00302a71;\nLAB_00302e7d:\n              uVar8 = FUN_00305610(lVar10,&local_70);\n              local_60 = (uint *)(ulong)uVar8;\nLAB_00302abe:\n              local_48 = FUN_00301dc0(*param_1,pbVar15,&local_60);\n              puStack_50 = local_60;\n              if (uVar2 == 0x31) goto LAB_00302965;\n              if (0x31 < uVar2) goto joined_r0x00302ccc;\n              goto LAB_00302c20;\n            }" { (if_statement "if (0x11 < uVar8) {\n                if (uVar8 == 0x13) {\n                  uVar9 = FUN_00305610(*param_1,&local_70);\n                  local_60 = (uint *)(ulong)uVar9;\n                  goto LAB_00303035;\n                }\n                if (0x13 < uVar8) {\n                  plVar17 = *(long **)(*param_1 + 0x10);\n                  goto LAB_00302fe7;\n                }\n                pcVar3 = *(code **)(**(long **)(*param_1 + 0x10) + 0x18);\n                if (pcVar3 == FUN_001b8d10) {\n                  cVar6 = (**(code **)(**(long **)(*param_1 + 0x10) + 0x1d0))();\n                }\n                else {\n                  cVar6 = (*pcVar3)();\n                }\n                uVar5 = (ushort)*local_70;\n                if (cVar6 != '\0') {\n                  uVar5 = CONCAT11((byte)*local_70,*(byte *)((long)local_70 + 1));\n                }\n                local_70 = (uint *)((long)local_70 + 2);\n                puStack_50 = (uint *)(ulong)uVar5;\n                goto joined_r0x00303052;\n              }" if (parenthesized_expression "(0x11 < uVar8)" ( (binary_expression "0x11 < uVar8" number_literal < identifier) )) (compound_statement "{\n                if (uVar8 == 0x13) {\n                  uVar9 = FUN_00305610(*param_1,&local_70);\n                  local_60 = (uint *)(ulong)uVar9;\n                  goto LAB_00303035;\n                }\n                if (0x13 < uVar8) {\n                  plVar17 = *(long **)(*param_1 + 0x10);\n                  goto LAB_00302fe7;\n                }\n                pcVar3 = *(code **)(**(long **)(*param_1 + 0x10) + 0x18);\n                if (pcVar3 == FUN_001b8d10) {\n                  cVar6 = (**(code **)(**(long **)(*param_1 + 0x10) + 0x1d0))();\n                }\n                else {\n                  cVar6 = (*pcVar3)();\n                }\n                uVar5 = (ushort)*local_70;\n                if (cVar6 != '\0') {\n                  uVar5 = CONCAT11((byte)*local_70,*(byte *)((long)local_70 + 1));\n                }\n                local_70 = (uint *)((long)local_70 + 2);\n                puStack_50 = (uint *)(ulong)uVar5;\n                goto joined_r0x00303052;\n              }" { (if_statement "if (uVar8 == 0x13) {\n                  uVar9 = FUN_00305610(*param_1,&local_70);\n                  local_60 = (uint *)(ulong)uVar9;\n                  goto LAB_00303035;\n                }" if (parenthesized_expression "(uVar8 == 0x13)" ( (binary_expression "uVar8 == 0x13" identifier == number_literal) )) (compound_statement "{\n                  uVar9 = FUN_00305610(*param_1,&local_70);\n                  local_60 = (uint *)(ulong)uVar9;\n                  goto LAB_00303035;\n                }" { (expression_statement "uVar9 = FUN_00305610(*param_1,&local_70);" (assignment_expression "uVar9 = FUN_00305610(*param_1,&local_70)" identifier = (call_expression "FUN_00305610(*param_1,&local_70)" identifier (argument_list "(*param_1,&local_70)" ( (pointer_expression "*param_1" * identifier) , (pointer_expression "&local_70" & identifier) )))) ;) (expression_statement "local_60 = (uint *)(ulong)uVar9;" (assignment_expression "local_60 = (uint *)(ulong)uVar9" identifier = (cast_expression "(uint *)(ulong)uVar9" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (cast_expression "(ulong)uVar9" ( (type_descriptor "ulong" type_identifier) ) identifier))) ;) (goto_statement "goto LAB_00303035;" goto statement_identifier ;) })) (if_statement "if (0x13 < uVar8) {\n                  plVar17 = *(long **)(*param_1 + 0x10);\n                  goto LAB_00302fe7;\n                }" if (parenthesized_expression "(0x13 < uVar8)" ( (binary_expression "0x13 < uVar8" number_literal < identifier) )) (compound_statement "{\n                  plVar17 = *(long **)(*param_1 + 0x10);\n                  goto LAB_00302fe7;\n                }" { (expression_statement "plVar17 = *(long **)(*param_1 + 0x10);" (assignment_expression "plVar17 = *(long **)(*param_1 + 0x10)" identifier = (pointer_expression "*(long **)(*param_1 + 0x10)" * (cast_expression "(long **)(*param_1 + 0x10)" ( (type_descriptor "long **" (sized_type_specifier "long" long) (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(*param_1 + 0x10)" ( (binary_expression "*param_1 + 0x10" (pointer_expression "*param_1" * identifier) + number_literal) ))))) ;) (goto_statement "goto LAB_00302fe7;" goto statement_identifier ;) })) (expression_statement "pcVar3 = *(code **)(**(long **)(*param_1 + 0x10) + 0x18);" (assignment_expression "pcVar3 = *(code **)(**(long **)(*param_1 + 0x10) + 0x18)" identifier = (pointer_expression "*(code **)(**(long **)(*param_1 + 0x10) + 0x18)" * (cast_expression "(code **)(**(long **)(*param_1 + 0x10) + 0x18)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(**(long **)(*param_1 + 0x10) + 0x18)" ( (binary_expression "**(long **)(*param_1 + 0x10) + 0x18" (pointer_expression "**(long **)(*param_1 + 0x10)" * (pointer_expression "*(long **)(*param_1 + 0x10)" * (cast_expression "(long **)(*param_1 + 0x10)" ( (type_descriptor "long **" (sized_type_specifier "long" long) (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(*param_1 + 0x10)" ( (binary_expression "*param_1 + 0x10" (pointer_expression "*param_1" * identifier) + number_literal) ))))) + number_literal) ))))) ;) (if_statement "if (pcVar3 == FUN_001b8d10) {\n                  cVar6 = (**(code **)(**(long **)(*param_1 + 0x10) + 0x1d0))();\n                }\n                else {\n                  cVar6 = (*pcVar3)();\n                }" if (parenthesized_expression "(pcVar3 == FUN_001b8d10)" ( (binary_expression "pcVar3 == FUN_001b8d10" identifier == identifier) )) (compound_statement "{\n                  cVar6 = (**(code **)(**(long **)(*param_1 + 0x10) + 0x1d0))();\n                }" { (expression_statement "cVar6 = (**(code **)(**(long **)(*param_1 + 0x10) + 0x1d0))();" (assignment_expression "cVar6 = (**(code **)(**(long **)(*param_1 + 0x10) + 0x1d0))()" identifier = (call_expression "(**(code **)(**(long **)(*param_1 + 0x10) + 0x1d0))()" (parenthesized_expression "(**(code **)(**(long **)(*param_1 + 0x10) + 0x1d0))" ( (pointer_expression "**(code **)(**(long **)(*param_1 + 0x10) + 0x1d0)" * (pointer_expression "*(code **)(**(long **)(*param_1 + 0x10) + 0x1d0)" * (cast_expression "(code **)(**(long **)(*param_1 + 0x10) + 0x1d0)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(**(long **)(*param_1 + 0x10) + 0x1d0)" ( (binary_expression "**(long **)(*param_1 + 0x10) + 0x1d0" (pointer_expression "**(long **)(*param_1 + 0x10)" * (pointer_expression "*(long **)(*param_1 + 0x10)" * (cast_expression "(long **)(*param_1 + 0x10)" ( (type_descriptor "long **" (sized_type_specifier "long" long) (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(*param_1 + 0x10)" ( (binary_expression "*param_1 + 0x10" (pointer_expression "*param_1" * identifier) + number_literal) ))))) + number_literal) ))))) )) (argument_list "()" ( )))) ;) }) (else_clause "else {\n                  cVar6 = (*pcVar3)();\n                }" else (compound_statement "{\n                  cVar6 = (*pcVar3)();\n                }" { (expression_statement "cVar6 = (*pcVar3)();" (assignment_expression "cVar6 = (*pcVar3)()" identifier = (call_expression "(*pcVar3)()" (parenthesized_expression "(*pcVar3)" ( (pointer_expression "*pcVar3" * identifier) )) (argument_list "()" ( )))) ;) }))) (expression_statement "uVar5 = (ushort)*local_70;" (assignment_expression "uVar5 = (ushort)*local_70" identifier = (binary_expression "(ushort)*local_70" (parenthesized_expression "(ushort)" ( identifier )) * identifier)) ;) (if_statement "if (cVar6 != '\0') {\n                  uVar5 = CONCAT11((byte)*local_70,*(byte *)((long)local_70 + 1));\n                }" if (parenthesized_expression "(cVar6 != '\0')" ( (binary_expression "cVar6 != '\0'" identifier != (char_literal "'\0'" ' escape_sequence ')) )) (compound_statement "{\n                  uVar5 = CONCAT11((byte)*local_70,*(byte *)((long)local_70 + 1));\n                }" { (expression_statement "uVar5 = CONCAT11((byte)*local_70,*(byte *)((long)local_70 + 1));" (assignment_expression "uVar5 = CONCAT11((byte)*local_70,*(byte *)((long)local_70 + 1))" identifier = (call_expression "CONCAT11((byte)*local_70,*(byte *)((long)local_70 + 1))" identifier (argument_list "((byte)*local_70,*(byte *)((long)local_70 + 1))" ( (binary_expression "(byte)*local_70" (parenthesized_expression "(byte)" ( identifier )) * identifier) , (pointer_expression "*(byte *)((long)local_70 + 1)" * (cast_expression "(byte *)((long)local_70 + 1)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((long)local_70 + 1)" ( (binary_expression "(long)local_70 + 1" (cast_expression "(long)local_70" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) identifier) + number_literal) )))) )))) ;) })) (expression_statement "local_70 = (uint *)((long)local_70 + 2);" (assignment_expression "local_70 = (uint *)((long)local_70 + 2)" identifier = (cast_expression "(uint *)((long)local_70 + 2)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((long)local_70 + 2)" ( (binary_expression "(long)local_70 + 2" (cast_expression "(long)local_70" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) identifier) + number_literal) )))) ;) (expression_statement "puStack_50 = (uint *)(ulong)uVar5;" (assignment_expression "puStack_50 = (uint *)(ulong)uVar5" identifier = (cast_expression "(uint *)(ulong)uVar5" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (cast_expression "(ulong)uVar5" ( (type_descriptor "ulong" type_identifier) ) identifier))) ;) (goto_statement "goto joined_r0x00303052;" goto statement_identifier ;) })) (if_statement "if (uVar8 == 0xf) goto LAB_00302bcd;" if (parenthesized_expression "(uVar8 == 0xf)" ( (binary_expression "uVar8 == 0xf" identifier == number_literal) )) (goto_statement "goto LAB_00302bcd;" goto statement_identifier ;)) (if_statement "if (uVar8 != 0x10) {\n                return 0;\n              }" if (parenthesized_expression "(uVar8 != 0x10)" ( (binary_expression "uVar8 != 0x10" identifier != number_literal) )) (compound_statement "{\n                return 0;\n              }" { (return_statement "return 0;" return number_literal ;) })) (expression_statement "lVar10 = *param_1;" (assignment_expression "lVar10 = *param_1" identifier = (pointer_expression "*param_1" * identifier)) ;) (expression_statement "iVar7 = *(int *)(lVar10 + 100);" (assignment_expression "iVar7 = *(int *)(lVar10 + 100)" identifier = (pointer_expression "*(int *)(lVar10 + 100)" * (cast_expression "(int *)(lVar10 + 100)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(lVar10 + 100)" ( (binary_expression "lVar10 + 100" identifier + number_literal) ))))) ;) (if_statement "if (2 < *(uint *)(lVar10 + 0x68)) {\n                iVar7 = *(int *)(lVar10 + 0x60);\n              }" if (parenthesized_expression "(2 < *(uint *)(lVar10 + 0x68))" ( (binary_expression "2 < *(uint *)(lVar10 + 0x68)" number_literal < (pointer_expression "*(uint *)(lVar10 + 0x68)" * (cast_expression "(uint *)(lVar10 + 0x68)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(lVar10 + 0x68)" ( (binary_expression "lVar10 + 0x68" identifier + number_literal) ))))) )) (compound_statement "{\n                iVar7 = *(int *)(lVar10 + 0x60);\n              }" { (expression_statement "iVar7 = *(int *)(lVar10 + 0x60);" (assignment_expression "iVar7 = *(int *)(lVar10 + 0x60)" identifier = (pointer_expression "*(int *)(lVar10 + 0x60)" * (cast_expression "(int *)(lVar10 + 0x60)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(lVar10 + 0x60)" ( (binary_expression "lVar10 + 0x60" identifier + number_literal) ))))) ;) })) (if_statement "if (iVar7 != 4) goto LAB_00302a71;" if (parenthesized_expression "(iVar7 != 4)" ( (binary_expression "iVar7 != 4" identifier != number_literal) )) (goto_statement "goto LAB_00302a71;" goto statement_identifier ;)) (labeled_statement "LAB_00302e7d:\n              uVar8 = FUN_00305610(lVar10,&local_70);" statement_identifier : (expression_statement "uVar8 = FUN_00305610(lVar10,&local_70);" (assignment_expression "uVar8 = FUN_00305610(lVar10,&local_70)" identifier = (call_expression "FUN_00305610(lVar10,&local_70)" identifier (argument_list "(lVar10,&local_70)" ( identifier , (pointer_expression "&local_70" & identifier) )))) ;)) (expression_statement "local_60 = (uint *)(ulong)uVar8;" (assignment_expression "local_60 = (uint *)(ulong)uVar8" identifier = (cast_expression "(uint *)(ulong)uVar8" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (cast_expression "(ulong)uVar8" ( (type_descriptor "ulong" type_identifier) ) identifier))) ;) (labeled_statement "LAB_00302abe:\n              local_48 = FUN_00301dc0(*param_1,pbVar15,&local_60);" statement_identifier : (expression_statement "local_48 = FUN_00301dc0(*param_1,pbVar15,&local_60);" (assignment_expression "local_48 = FUN_00301dc0(*param_1,pbVar15,&local_60)" identifier = (call_expression "FUN_00301dc0(*param_1,pbVar15,&local_60)" identifier (argument_list "(*param_1,pbVar15,&local_60)" ( (pointer_expression "*param_1" * identifier) , identifier , (pointer_expression "&local_60" & identifier) )))) ;)) (expression_statement "puStack_50 = local_60;" (assignment_expression "puStack_50 = local_60" identifier = identifier) ;) (if_statement "if (uVar2 == 0x31) goto LAB_00302965;" if (parenthesized_expression "(uVar2 == 0x31)" ( (binary_expression "uVar2 == 0x31" identifier == number_literal) )) (goto_statement "goto LAB_00302965;" goto statement_identifier ;)) (if_statement "if (0x31 < uVar2) goto joined_r0x00302ccc;" if (parenthesized_expression "(0x31 < uVar2)" ( (binary_expression "0x31 < uVar2" number_literal < identifier) )) (goto_statement "goto joined_r0x00302ccc;" goto statement_identifier ;)) (goto_statement "goto LAB_00302c20;" goto statement_identifier ;) })) (expression_statement "puVar11 = (uint *)((long)local_70 + 1);" (assignment_expression "puVar11 = (uint *)((long)local_70 + 1)" identifier = (cast_expression "(uint *)((long)local_70 + 1)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((long)local_70 + 1)" ( (binary_expression "(long)local_70 + 1" (cast_expression "(long)local_70" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) identifier) + number_literal) )))) ;) (expression_statement "puStack_50 = (uint *)(ulong)(byte)*local_70;" (assignment_expression "puStack_50 = (uint *)(ulong)(byte)*local_70" identifier = (binary_expression "(uint *)(ulong)(byte)*local_70" (cast_expression "(uint *)(ulong)(byte)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (call_expression "(ulong)(byte)" (parenthesized_expression "(ulong)" ( identifier )) (argument_list "(byte)" ( identifier )))) * identifier)) ;) (expression_statement "local_70 = puVar11;" (assignment_expression "local_70 = puVar11" identifier = identifier) ;) (if_statement "if (uVar2 != 0x31) {\n              if (uVar2 < 0x32) {\n                if (uVar2 == 1) {\n                  param_1[5] = (long)puStack_50;\n                }\n                goto LAB_00302750;\n              }\njoined_r0x00302ccc:\n              if ((uVar2 == 0x6e) || (uVar2 == 0x2007)) goto LAB_00302750;\n              goto joined_r0x00302ce3;\n            }" if (parenthesized_expression "(uVar2 != 0x31)" ( (binary_expression "uVar2 != 0x31" identifier != number_literal) )) (compound_statement "{\n              if (uVar2 < 0x32) {\n                if (uVar2 == 1) {\n                  param_1[5] = (long)puStack_50;\n                }\n                goto LAB_00302750;\n              }\njoined_r0x00302ccc:\n              if ((uVar2 == 0x6e) || (uVar2 == 0x2007)) goto LAB_00302750;\n              goto joined_r0x00302ce3;\n            }" { (if_statement "if (uVar2 < 0x32) {\n                if (uVar2 == 1) {\n                  param_1[5] = (long)puStack_50;\n                }\n                goto LAB_00302750;\n              }" if (parenthesized_expression "(uVar2 < 0x32)" ( (binary_expression "uVar2 < 0x32" identifier < number_literal) )) (compound_statement "{\n                if (uVar2 == 1) {\n                  param_1[5] = (long)puStack_50;\n                }\n                goto LAB_00302750;\n              }" { (if_statement "if (uVar2 == 1) {\n                  param_1[5] = (long)puStack_50;\n                }" if (parenthesized_expression "(uVar2 == 1)" ( (binary_expression "uVar2 == 1" identifier == number_literal) )) (compound_statement "{\n                  param_1[5] = (long)puStack_50;\n                }" { (expression_statement "param_1[5] = (long)puStack_50;" (assignment_expression "param_1[5] = (long)puStack_50" (subscript_expression "param_1[5]" identifier [ number_literal ]) = (cast_expression "(long)puStack_50" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) identifier)) ;) })) (goto_statement "goto LAB_00302750;" goto statement_identifier ;) })) (labeled_statement "joined_r0x00302ccc:\n              if ((uVar2 == 0x6e) || (uVar2 == 0x2007)) goto LAB_00302750;" statement_identifier : (if_statement "if ((uVar2 == 0x6e) || (uVar2 == 0x2007)) goto LAB_00302750;" if (parenthesized_expression "((uVar2 == 0x6e) || (uVar2 == 0x2007))" ( (binary_expression "(uVar2 == 0x6e) || (uVar2 == 0x2007)" (parenthesized_expression "(uVar2 == 0x6e)" ( (binary_expression "uVar2 == 0x6e" identifier == number_literal) )) || (parenthesized_expression "(uVar2 == 0x2007)" ( (binary_expression "uVar2 == 0x2007" identifier == number_literal) ))) )) (goto_statement "goto LAB_00302750;" goto statement_identifier ;))) (goto_statement "goto joined_r0x00302ce3;" goto statement_identifier ;) })) }))) (labeled_statement "LAB_00302965:\n          param_1[0x11] = (long)puStack_50;" statement_identifier : (expression_statement "param_1[0x11] = (long)puStack_50;" (assignment_expression "param_1[0x11] = (long)puStack_50" (subscript_expression "param_1[0x11]" identifier [ number_literal ]) = (cast_expression "(long)puStack_50" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) identifier)) ;)) (goto_statement "goto LAB_00302750;" goto statement_identifier ;) })) (if_statement "if (uVar8 == 7) {\n          pcVar3 = *(code **)(**(long **)(*param_1 + 0x10) + 0x18);\n          if (pcVar3 == FUN_001b8d10) {\n            cVar6 = (**(code **)(**(long **)(*param_1 + 0x10) + 0x1d0))();\n          }\n          else {\n            cVar6 = (*pcVar3)();\n          }\n          local_60 = *(uint **)local_70;\n          if (cVar6 != '\0') {\n            local_60 = (uint *)((ulong)local_60 >> 0x38 |\n                                ((ulong)local_60 & 0xff000000000000) >> 0x28 |\n                                ((ulong)local_60 & 0xff0000000000) >> 0x18 |\n                                ((ulong)local_60 & 0xff00000000) >> 8 |\n                                ((ulong)local_60 & 0xff000000) << 8 |\n                                ((ulong)local_60 & 0xff0000) << 0x18 |\n                                ((ulong)local_60 & 0xff00) << 0x28 | (long)local_60 << 0x38);\n          }\n          local_70 = local_70 + 2;\nLAB_00302d40:\n          local_48 = FUN_00301dc0(*param_1,pbVar15,&local_60);\n          puStack_50 = local_60;\njoined_r0x00302748:\n          if ((uVar2 != 0x31) && (uVar2 < 0x32)) {\nLAB_00302e3e:\n            if ((uVar2 != 1) && (uVar2 == 3)) goto LAB_00302e52;\n          }\n          goto LAB_00302750;\n        }" if (parenthesized_expression "(uVar8 == 7)" ( (binary_expression "uVar8 == 7" identifier == number_literal) )) (compound_statement "{\n          pcVar3 = *(code **)(**(long **)(*param_1 + 0x10) + 0x18);\n          if (pcVar3 == FUN_001b8d10) {\n            cVar6 = (**(code **)(**(long **)(*param_1 + 0x10) + 0x1d0))();\n          }\n          else {\n            cVar6 = (*pcVar3)();\n          }\n          local_60 = *(uint **)local_70;\n          if (cVar6 != '\0') {\n            local_60 = (uint *)((ulong)local_60 >> 0x38 |\n                                ((ulong)local_60 & 0xff000000000000) >> 0x28 |\n                                ((ulong)local_60 & 0xff0000000000) >> 0x18 |\n                                ((ulong)local_60 & 0xff00000000) >> 8 |\n                                ((ulong)local_60 & 0xff000000) << 8 |\n                                ((ulong)local_60 & 0xff0000) << 0x18 |\n                                ((ulong)local_60 & 0xff00) << 0x28 | (long)local_60 << 0x38);\n          }\n          local_70 = local_70 + 2;\nLAB_00302d40:\n          local_48 = FUN_00301dc0(*param_1,pbVar15,&local_60);\n          puStack_50 = local_60;\njoined_r0x00302748:\n          if ((uVar2 != 0x31) && (uVar2 < 0x32)) {\nLAB_00302e3e:\n            if ((uVar2 != 1) && (uVar2 == 3)) goto LAB_00302e52;\n          }\n          goto LAB_00302750;\n        }" { (expression_statement "pcVar3 = *(code **)(**(long **)(*param_1 + 0x10) + 0x18);" (assignment_expression "pcVar3 = *(code **)(**(long **)(*param_1 + 0x10) + 0x18)" identifier = (pointer_expression "*(code **)(**(long **)(*param_1 + 0x10) + 0x18)" * (cast_expression "(code **)(**(long **)(*param_1 + 0x10) + 0x18)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(**(long **)(*param_1 + 0x10) + 0x18)" ( (binary_expression "**(long **)(*param_1 + 0x10) + 0x18" (pointer_expression "**(long **)(*param_1 + 0x10)" * (pointer_expression "*(long **)(*param_1 + 0x10)" * (cast_expression "(long **)(*param_1 + 0x10)" ( (type_descriptor "long **" (sized_type_specifier "long" long) (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(*param_1 + 0x10)" ( (binary_expression "*param_1 + 0x10" (pointer_expression "*param_1" * identifier) + number_literal) ))))) + number_literal) ))))) ;) (if_statement "if (pcVar3 == FUN_001b8d10) {\n            cVar6 = (**(code **)(**(long **)(*param_1 + 0x10) + 0x1d0))();\n          }\n          else {\n            cVar6 = (*pcVar3)();\n          }" if (parenthesized_expression "(pcVar3 == FUN_001b8d10)" ( (binary_expression "pcVar3 == FUN_001b8d10" identifier == identifier) )) (compound_statement "{\n            cVar6 = (**(code **)(**(long **)(*param_1 + 0x10) + 0x1d0))();\n          }" { (expression_statement "cVar6 = (**(code **)(**(long **)(*param_1 + 0x10) + 0x1d0))();" (assignment_expression "cVar6 = (**(code **)(**(long **)(*param_1 + 0x10) + 0x1d0))()" identifier = (call_expression "(**(code **)(**(long **)(*param_1 + 0x10) + 0x1d0))()" (parenthesized_expression "(**(code **)(**(long **)(*param_1 + 0x10) + 0x1d0))" ( (pointer_expression "**(code **)(**(long **)(*param_1 + 0x10) + 0x1d0)" * (pointer_expression "*(code **)(**(long **)(*param_1 + 0x10) + 0x1d0)" * (cast_expression "(code **)(**(long **)(*param_1 + 0x10) + 0x1d0)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(**(long **)(*param_1 + 0x10) + 0x1d0)" ( (binary_expression "**(long **)(*param_1 + 0x10) + 0x1d0" (pointer_expression "**(long **)(*param_1 + 0x10)" * (pointer_expression "*(long **)(*param_1 + 0x10)" * (cast_expression "(long **)(*param_1 + 0x10)" ( (type_descriptor "long **" (sized_type_specifier "long" long) (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(*param_1 + 0x10)" ( (binary_expression "*param_1 + 0x10" (pointer_expression "*param_1" * identifier) + number_literal) ))))) + number_literal) ))))) )) (argument_list "()" ( )))) ;) }) (else_clause "else {\n            cVar6 = (*pcVar3)();\n          }" else (compound_statement "{\n            cVar6 = (*pcVar3)();\n          }" { (expression_statement "cVar6 = (*pcVar3)();" (assignment_expression "cVar6 = (*pcVar3)()" identifier = (call_expression "(*pcVar3)()" (parenthesized_expression "(*pcVar3)" ( (pointer_expression "*pcVar3" * identifier) )) (argument_list "()" ( )))) ;) }))) (expression_statement "local_60 = *(uint **)local_70;" (assignment_expression "local_60 = *(uint **)local_70" identifier = (pointer_expression "*(uint **)local_70" * (cast_expression "(uint **)local_70" ( (type_descriptor "uint **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) identifier))) ;) (if_statement "if (cVar6 != '\0') {\n            local_60 = (uint *)((ulong)local_60 >> 0x38 |\n                                ((ulong)local_60 & 0xff000000000000) >> 0x28 |\n                                ((ulong)local_60 & 0xff0000000000) >> 0x18 |\n                                ((ulong)local_60 & 0xff00000000) >> 8 |\n                                ((ulong)local_60 & 0xff000000) << 8 |\n                                ((ulong)local_60 & 0xff0000) << 0x18 |\n                                ((ulong)local_60 & 0xff00) << 0x28 | (long)local_60 << 0x38);\n          }" if (parenthesized_expression "(cVar6 != '\0')" ( (binary_expression "cVar6 != '\0'" identifier != (char_literal "'\0'" ' escape_sequence ')) )) (compound_statement "{\n            local_60 = (uint *)((ulong)local_60 >> 0x38 |\n                                ((ulong)local_60 & 0xff000000000000) >> 0x28 |\n                                ((ulong)local_60 & 0xff0000000000) >> 0x18 |\n                                ((ulong)local_60 & 0xff00000000) >> 8 |\n                                ((ulong)local_60 & 0xff000000) << 8 |\n                                ((ulong)local_60 & 0xff0000) << 0x18 |\n                                ((ulong)local_60 & 0xff00) << 0x28 | (long)local_60 << 0x38);\n          }" { (expression_statement "local_60 = (uint *)((ulong)local_60 >> 0x38 |\n                                ((ulong)local_60 & 0xff000000000000) >> 0x28 |\n                                ((ulong)local_60 & 0xff0000000000) >> 0x18 |\n                                ((ulong)local_60 & 0xff00000000) >> 8 |\n                                ((ulong)local_60 & 0xff000000) << 8 |\n                                ((ulong)local_60 & 0xff0000) << 0x18 |\n                                ((ulong)local_60 & 0xff00) << 0x28 | (long)local_60 << 0x38);" (assignment_expression "local_60 = (uint *)((ulong)local_60 >> 0x38 |\n                                ((ulong)local_60 & 0xff000000000000) >> 0x28 |\n                                ((ulong)local_60 & 0xff0000000000) >> 0x18 |\n                                ((ulong)local_60 & 0xff00000000) >> 8 |\n                                ((ulong)local_60 & 0xff000000) << 8 |\n                                ((ulong)local_60 & 0xff0000) << 0x18 |\n                                ((ulong)local_60 & 0xff00) << 0x28 | (long)local_60 << 0x38)" identifier = (cast_expression "(uint *)((ulong)local_60 >> 0x38 |\n                                ((ulong)local_60 & 0xff000000000000) >> 0x28 |\n                                ((ulong)local_60 & 0xff0000000000) >> 0x18 |\n                                ((ulong)local_60 & 0xff00000000) >> 8 |\n                                ((ulong)local_60 & 0xff000000) << 8 |\n                                ((ulong)local_60 & 0xff0000) << 0x18 |\n                                ((ulong)local_60 & 0xff00) << 0x28 | (long)local_60 << 0x38)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((ulong)local_60 >> 0x38 |\n                                ((ulong)local_60 & 0xff000000000000) >> 0x28 |\n                                ((ulong)local_60 & 0xff0000000000) >> 0x18 |\n                                ((ulong)local_60 & 0xff00000000) >> 8 |\n                                ((ulong)local_60 & 0xff000000) << 8 |\n                                ((ulong)local_60 & 0xff0000) << 0x18 |\n                                ((ulong)local_60 & 0xff00) << 0x28 | (long)local_60 << 0x38)" ( (binary_expression "(ulong)local_60 >> 0x38 |\n                                ((ulong)local_60 & 0xff000000000000) >> 0x28 |\n                                ((ulong)local_60 & 0xff0000000000) >> 0x18 |\n                                ((ulong)local_60 & 0xff00000000) >> 8 |\n                                ((ulong)local_60 & 0xff000000) << 8 |\n                                ((ulong)local_60 & 0xff0000) << 0x18 |\n                                ((ulong)local_60 & 0xff00) << 0x28 | (long)local_60 << 0x38" (binary_expression "(ulong)local_60 >> 0x38 |\n                                ((ulong)local_60 & 0xff000000000000) >> 0x28 |\n                                ((ulong)local_60 & 0xff0000000000) >> 0x18 |\n                                ((ulong)local_60 & 0xff00000000) >> 8 |\n                                ((ulong)local_60 & 0xff000000) << 8 |\n                                ((ulong)local_60 & 0xff0000) << 0x18 |\n                                ((ulong)local_60 & 0xff00) << 0x28" (binary_expression "(ulong)local_60 >> 0x38 |\n                                ((ulong)local_60 & 0xff000000000000) >> 0x28 |\n                                ((ulong)local_60 & 0xff0000000000) >> 0x18 |\n                                ((ulong)local_60 & 0xff00000000) >> 8 |\n                                ((ulong)local_60 & 0xff000000) << 8 |\n                                ((ulong)local_60 & 0xff0000) << 0x18" (binary_expression "(ulong)local_60 >> 0x38 |\n                                ((ulong)local_60 & 0xff000000000000) >> 0x28 |\n                                ((ulong)local_60 & 0xff0000000000) >> 0x18 |\n                                ((ulong)local_60 & 0xff00000000) >> 8 |\n                                ((ulong)local_60 & 0xff000000) << 8" (binary_expression "(ulong)local_60 >> 0x38 |\n                                ((ulong)local_60 & 0xff000000000000) >> 0x28 |\n                                ((ulong)local_60 & 0xff0000000000) >> 0x18 |\n                                ((ulong)local_60 & 0xff00000000) >> 8" (binary_expression "(ulong)local_60 >> 0x38 |\n                                ((ulong)local_60 & 0xff000000000000) >> 0x28 |\n                                ((ulong)local_60 & 0xff0000000000) >> 0x18" (binary_expression "(ulong)local_60 >> 0x38 |\n                                ((ulong)local_60 & 0xff000000000000) >> 0x28" (binary_expression "(ulong)local_60 >> 0x38" (cast_expression "(ulong)local_60" ( (type_descriptor "ulong" type_identifier) ) identifier) >> number_literal) | (binary_expression "((ulong)local_60 & 0xff000000000000) >> 0x28" (parenthesized_expression "((ulong)local_60 & 0xff000000000000)" ( (binary_expression "(ulong)local_60 & 0xff000000000000" (cast_expression "(ulong)local_60" ( (type_descriptor "ulong" type_identifier) ) identifier) & number_literal) )) >> number_literal)) | (binary_expression "((ulong)local_60 & 0xff0000000000) >> 0x18" (parenthesized_expression "((ulong)local_60 & 0xff0000000000)" ( (binary_expression "(ulong)local_60 & 0xff0000000000" (cast_expression "(ulong)local_60" ( (type_descriptor "ulong" type_identifier) ) identifier) & number_literal) )) >> number_literal)) | (binary_expression "((ulong)local_60 & 0xff00000000) >> 8" (parenthesized_expression "((ulong)local_60 & 0xff00000000)" ( (binary_expression "(ulong)local_60 & 0xff00000000" (cast_expression "(ulong)local_60" ( (type_descriptor "ulong" type_identifier) ) identifier) & number_literal) )) >> number_literal)) | (binary_expression "((ulong)local_60 & 0xff000000) << 8" (parenthesized_expression "((ulong)local_60 & 0xff000000)" ( (binary_expression "(ulong)local_60 & 0xff000000" (cast_expression "(ulong)local_60" ( (type_descriptor "ulong" type_identifier) ) identifier) & number_literal) )) << number_literal)) | (binary_expression "((ulong)local_60 & 0xff0000) << 0x18" (parenthesized_expression "((ulong)local_60 & 0xff0000)" ( (binary_expression "(ulong)local_60 & 0xff0000" (cast_expression "(ulong)local_60" ( (type_descriptor "ulong" type_identifier) ) identifier) & number_literal) )) << number_literal)) | (binary_expression "((ulong)local_60 & 0xff00) << 0x28" (parenthesized_expression "((ulong)local_60 & 0xff00)" ( (binary_expression "(ulong)local_60 & 0xff00" (cast_expression "(ulong)local_60" ( (type_descriptor "ulong" type_identifier) ) identifier) & number_literal) )) << number_literal)) | (binary_expression "(long)local_60 << 0x38" (cast_expression "(long)local_60" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) identifier) << number_literal)) )))) ;) })) (expression_statement "local_70 = local_70 + 2;" (assignment_expression "local_70 = local_70 + 2" identifier = (binary_expression "local_70 + 2" identifier + number_literal)) ;) (labeled_statement "LAB_00302d40:\n          local_48 = FUN_00301dc0(*param_1,pbVar15,&local_60);" statement_identifier : (expression_statement "local_48 = FUN_00301dc0(*param_1,pbVar15,&local_60);" (assignment_expression "local_48 = FUN_00301dc0(*param_1,pbVar15,&local_60)" identifier = (call_expression "FUN_00301dc0(*param_1,pbVar15,&local_60)" identifier (argument_list "(*param_1,pbVar15,&local_60)" ( (pointer_expression "*param_1" * identifier) , identifier , (pointer_expression "&local_60" & identifier) )))) ;)) (expression_statement "puStack_50 = local_60;" (assignment_expression "puStack_50 = local_60" identifier = identifier) ;) (labeled_statement "joined_r0x00302748:\n          if ((uVar2 != 0x31) && (uVar2 < 0x32)) {\nLAB_00302e3e:\n            if ((uVar2 != 1) && (uVar2 == 3)) goto LAB_00302e52;\n          }" statement_identifier : (if_statement "if ((uVar2 != 0x31) && (uVar2 < 0x32)) {\nLAB_00302e3e:\n            if ((uVar2 != 1) && (uVar2 == 3)) goto LAB_00302e52;\n          }" if (parenthesized_expression "((uVar2 != 0x31) && (uVar2 < 0x32))" ( (binary_expression "(uVar2 != 0x31) && (uVar2 < 0x32)" (parenthesized_expression "(uVar2 != 0x31)" ( (binary_expression "uVar2 != 0x31" identifier != number_literal) )) && (parenthesized_expression "(uVar2 < 0x32)" ( (binary_expression "uVar2 < 0x32" identifier < number_literal) ))) )) (compound_statement "{\nLAB_00302e3e:\n            if ((uVar2 != 1) && (uVar2 == 3)) goto LAB_00302e52;\n          }" { (labeled_statement "LAB_00302e3e:\n            if ((uVar2 != 1) && (uVar2 == 3)) goto LAB_00302e52;" statement_identifier : (if_statement "if ((uVar2 != 1) && (uVar2 == 3)) goto LAB_00302e52;" if (parenthesized_expression "((uVar2 != 1) && (uVar2 == 3))" ( (binary_expression "(uVar2 != 1) && (uVar2 == 3)" (parenthesized_expression "(uVar2 != 1)" ( (binary_expression "uVar2 != 1" identifier != number_literal) )) && (parenthesized_expression "(uVar2 == 3)" ( (binary_expression "uVar2 == 3" identifier == number_literal) ))) )) (goto_statement "goto LAB_00302e52;" goto statement_identifier ;))) }))) (goto_statement "goto LAB_00302750;" goto statement_identifier ;) })) (if_statement "if (uVar8 < 8) {\n          if (uVar8 == 4) {\n            pcVar3 = *(code **)(**(long **)(*param_1 + 0x10) + 0x18);\n            if (pcVar3 == FUN_001b8d10) {\n              cVar6 = (**(code **)(**(long **)(*param_1 + 0x10) + 0x1d0))();\n            }\n            else {\n              cVar6 = (*pcVar3)();\n            }\n            local_48 = *local_70;\n            if (cVar6 != '\0') {\n              local_48 = local_48 >> 0x18 | (local_48 & 0xff0000) >> 8 | (local_48 & 0xff00) << 8 |\n                         local_48 << 0x18;\n            }\n            puStack_50 = local_70 + 1;\n            local_70 = (uint *)((long)puStack_50 + (ulong)local_48);\n          }\n          else if (uVar8 < 5) {\n            if (uVar8 == 1) {\n              lVar10 = *param_1;\n              if (*(int *)(lVar10 + 100) == 4) goto LAB_00302e7d;\nLAB_00302a71:\n              pcVar3 = *(code **)(**(long **)(lVar10 + 0x10) + 0x18);\n              if (pcVar3 == FUN_001b8d10) {\n                cVar6 = (**(code **)(**(long **)(lVar10 + 0x10) + 0x1d0))();\n              }\n              else {\n                cVar6 = (*pcVar3)();\n              }\n              local_60 = *(uint **)local_70;\n              if (cVar6 != '\0') {\n                local_60 = (uint *)((ulong)local_60 >> 0x38 |\n                                    ((ulong)local_60 & 0xff000000000000) >> 0x28 |\n                                    ((ulong)local_60 & 0xff0000000000) >> 0x18 |\n                                    ((ulong)local_60 & 0xff00000000) >> 8 |\n                                    ((ulong)local_60 & 0xff000000) << 8 |\n                                    ((ulong)local_60 & 0xff0000) << 0x18 |\n                                    ((ulong)local_60 & 0xff00) << 0x28 | (long)local_60 << 0x38);\n              }\n              local_70 = local_70 + 2;\n              goto LAB_00302abe;\n            }\n            if (uVar8 != 3) {\n              return 0;\n            }\n            pcVar3 = *(code **)(**(long **)(*param_1 + 0x10) + 0x18);\n            if (pcVar3 == FUN_001b8d10) {\n              cVar6 = (**(code **)(**(long **)(*param_1 + 0x10) + 0x1d0))();\n            }\n            else {\n              cVar6 = (*pcVar3)();\n            }\n            uVar5 = (ushort)*local_70;\n            if (cVar6 != '\0') {\n              uVar5 = CONCAT11((byte)*local_70,*(byte *)((long)local_70 + 1));\n            }\n            local_48 = (uint)uVar5;\n            puStack_50 = (uint *)((long)local_70 + 2);\n            local_70 = (uint *)((long)puStack_50 + (ulong)local_48);\n          }\n          else {\n            if (uVar8 != 5) {\n              if (uVar8 != 6) {\n                return 0;\n              }\n              pcVar3 = *(code **)(**(long **)(*param_1 + 0x10) + 0x18);\n              if (pcVar3 == FUN_001b8d10) {\n                cVar6 = (**(code **)(**(long **)(*param_1 + 0x10) + 0x1d0))();\n              }\n              else {\n                cVar6 = (*pcVar3)();\n              }\n              uVar9 = *local_70;\n              if (cVar6 != '\0') {\n                uVar9 = uVar9 >> 0x18 | (uVar9 & 0xff0000) >> 8 | (uVar9 & 0xff00) << 8 |\n                        uVar9 << 0x18;\n              }\n              local_60 = (uint *)(ulong)uVar9;\n              local_70 = local_70 + 1;\n              goto LAB_00302d40;\n            }\n            pcVar3 = *(code **)(**(long **)(*param_1 + 0x10) + 0x18);\n            if (pcVar3 == FUN_001b8d10) {\n              cVar6 = (**(code **)(**(long **)(*param_1 + 0x10) + 0x1d0))();\n            }\n            else {\n              cVar6 = (*pcVar3)();\n            }\n            uVar5 = (ushort)*local_70;\n            if (cVar6 != '\0') {\n              uVar5 = CONCAT11((byte)*local_70,*(byte *)((long)local_70 + 1));\n            }\n            local_70 = (uint *)((long)local_70 + 2);\n            puStack_50 = (uint *)(ulong)uVar5;\n          }\n          goto joined_r0x00302748;\n        }" if (parenthesized_expression "(uVar8 < 8)" ( (binary_expression "uVar8 < 8" identifier < number_literal) )) (compound_statement "{\n          if (uVar8 == 4) {\n            pcVar3 = *(code **)(**(long **)(*param_1 + 0x10) + 0x18);\n            if (pcVar3 == FUN_001b8d10) {\n              cVar6 = (**(code **)(**(long **)(*param_1 + 0x10) + 0x1d0))();\n            }\n            else {\n              cVar6 = (*pcVar3)();\n            }\n            local_48 = *local_70;\n            if (cVar6 != '\0') {\n              local_48 = local_48 >> 0x18 | (local_48 & 0xff0000) >> 8 | (local_48 & 0xff00) << 8 |\n                         local_48 << 0x18;\n            }\n            puStack_50 = local_70 + 1;\n            local_70 = (uint *)((long)puStack_50 + (ulong)local_48);\n          }\n          else if (uVar8 < 5) {\n            if (uVar8 == 1) {\n              lVar10 = *param_1;\n              if (*(int *)(lVar10 + 100) == 4) goto LAB_00302e7d;\nLAB_00302a71:\n              pcVar3 = *(code **)(**(long **)(lVar10 + 0x10) + 0x18);\n              if (pcVar3 == FUN_001b8d10) {\n                cVar6 = (**(code **)(**(long **)(lVar10 + 0x10) + 0x1d0))();\n              }\n              else {\n                cVar6 = (*pcVar3)();\n              }\n              local_60 = *(uint **)local_70;\n              if (cVar6 != '\0') {\n                local_60 = (uint *)((ulong)local_60 >> 0x38 |\n                                    ((ulong)local_60 & 0xff000000000000) >> 0x28 |\n                                    ((ulong)local_60 & 0xff0000000000) >> 0x18 |\n                                    ((ulong)local_60 & 0xff00000000) >> 8 |\n                                    ((ulong)local_60 & 0xff000000) << 8 |\n                                    ((ulong)local_60 & 0xff0000) << 0x18 |\n                                    ((ulong)local_60 & 0xff00) << 0x28 | (long)local_60 << 0x38);\n              }\n              local_70 = local_70 + 2;\n              goto LAB_00302abe;\n            }\n            if (uVar8 != 3) {\n              return 0;\n            }\n            pcVar3 = *(code **)(**(long **)(*param_1 + 0x10) + 0x18);\n            if (pcVar3 == FUN_001b8d10) {\n              cVar6 = (**(code **)(**(long **)(*param_1 + 0x10) + 0x1d0))();\n            }\n            else {\n              cVar6 = (*pcVar3)();\n            }\n            uVar5 = (ushort)*local_70;\n            if (cVar6 != '\0') {\n              uVar5 = CONCAT11((byte)*local_70,*(byte *)((long)local_70 + 1));\n            }\n            local_48 = (uint)uVar5;\n            puStack_50 = (uint *)((long)local_70 + 2);\n            local_70 = (uint *)((long)puStack_50 + (ulong)local_48);\n          }\n          else {\n            if (uVar8 != 5) {\n              if (uVar8 != 6) {\n                return 0;\n              }\n              pcVar3 = *(code **)(**(long **)(*param_1 + 0x10) + 0x18);\n              if (pcVar3 == FUN_001b8d10) {\n                cVar6 = (**(code **)(**(long **)(*param_1 + 0x10) + 0x1d0))();\n              }\n              else {\n                cVar6 = (*pcVar3)();\n              }\n              uVar9 = *local_70;\n              if (cVar6 != '\0') {\n                uVar9 = uVar9 >> 0x18 | (uVar9 & 0xff0000) >> 8 | (uVar9 & 0xff00) << 8 |\n                        uVar9 << 0x18;\n              }\n              local_60 = (uint *)(ulong)uVar9;\n              local_70 = local_70 + 1;\n              goto LAB_00302d40;\n            }\n            pcVar3 = *(code **)(**(long **)(*param_1 + 0x10) + 0x18);\n            if (pcVar3 == FUN_001b8d10) {\n              cVar6 = (**(code **)(**(long **)(*param_1 + 0x10) + 0x1d0))();\n            }\n            else {\n              cVar6 = (*pcVar3)();\n            }\n            uVar5 = (ushort)*local_70;\n            if (cVar6 != '\0') {\n              uVar5 = CONCAT11((byte)*local_70,*(byte *)((long)local_70 + 1));\n            }\n            local_70 = (uint *)((long)local_70 + 2);\n            puStack_50 = (uint *)(ulong)uVar5;\n          }\n          goto joined_r0x00302748;\n        }" { (if_statement "if (uVar8 == 4) {\n            pcVar3 = *(code **)(**(long **)(*param_1 + 0x10) + 0x18);\n            if (pcVar3 == FUN_001b8d10) {\n              cVar6 = (**(code **)(**(long **)(*param_1 + 0x10) + 0x1d0))();\n            }\n            else {\n              cVar6 = (*pcVar3)();\n            }\n            local_48 = *local_70;\n            if (cVar6 != '\0') {\n              local_48 = local_48 >> 0x18 | (local_48 & 0xff0000) >> 8 | (local_48 & 0xff00) << 8 |\n                         local_48 << 0x18;\n            }\n            puStack_50 = local_70 + 1;\n            local_70 = (uint *)((long)puStack_50 + (ulong)local_48);\n          }\n          else if (uVar8 < 5) {\n            if (uVar8 == 1) {\n              lVar10 = *param_1;\n              if (*(int *)(lVar10 + 100) == 4) goto LAB_00302e7d;\nLAB_00302a71:\n              pcVar3 = *(code **)(**(long **)(lVar10 + 0x10) + 0x18);\n              if (pcVar3 == FUN_001b8d10) {\n                cVar6 = (**(code **)(**(long **)(lVar10 + 0x10) + 0x1d0))();\n              }\n              else {\n                cVar6 = (*pcVar3)();\n              }\n              local_60 = *(uint **)local_70;\n              if (cVar6 != '\0') {\n                local_60 = (uint *)((ulong)local_60 >> 0x38 |\n                                    ((ulong)local_60 & 0xff000000000000) >> 0x28 |\n                                    ((ulong)local_60 & 0xff0000000000) >> 0x18 |\n                                    ((ulong)local_60 & 0xff00000000) >> 8 |\n                                    ((ulong)local_60 & 0xff000000) << 8 |\n                                    ((ulong)local_60 & 0xff0000) << 0x18 |\n                                    ((ulong)local_60 & 0xff00) << 0x28 | (long)local_60 << 0x38);\n              }\n              local_70 = local_70 + 2;\n              goto LAB_00302abe;\n            }\n            if (uVar8 != 3) {\n              return 0;\n            }\n            pcVar3 = *(code **)(**(long **)(*param_1 + 0x10) + 0x18);\n            if (pcVar3 == FUN_001b8d10) {\n              cVar6 = (**(code **)(**(long **)(*param_1 + 0x10) + 0x1d0))();\n            }\n            else {\n              cVar6 = (*pcVar3)();\n            }\n            uVar5 = (ushort)*local_70;\n            if (cVar6 != '\0') {\n              uVar5 = CONCAT11((byte)*local_70,*(byte *)((long)local_70 + 1));\n            }\n            local_48 = (uint)uVar5;\n            puStack_50 = (uint *)((long)local_70 + 2);\n            local_70 = (uint *)((long)puStack_50 + (ulong)local_48);\n          }\n          else {\n            if (uVar8 != 5) {\n              if (uVar8 != 6) {\n                return 0;\n              }\n              pcVar3 = *(code **)(**(long **)(*param_1 + 0x10) + 0x18);\n              if (pcVar3 == FUN_001b8d10) {\n                cVar6 = (**(code **)(**(long **)(*param_1 + 0x10) + 0x1d0))();\n              }\n              else {\n                cVar6 = (*pcVar3)();\n              }\n              uVar9 = *local_70;\n              if (cVar6 != '\0') {\n                uVar9 = uVar9 >> 0x18 | (uVar9 & 0xff0000) >> 8 | (uVar9 & 0xff00) << 8 |\n                        uVar9 << 0x18;\n              }\n              local_60 = (uint *)(ulong)uVar9;\n              local_70 = local_70 + 1;\n              goto LAB_00302d40;\n            }\n            pcVar3 = *(code **)(**(long **)(*param_1 + 0x10) + 0x18);\n            if (pcVar3 == FUN_001b8d10) {\n              cVar6 = (**(code **)(**(long **)(*param_1 + 0x10) + 0x1d0))();\n            }\n            else {\n              cVar6 = (*pcVar3)();\n            }\n            uVar5 = (ushort)*local_70;\n            if (cVar6 != '\0') {\n              uVar5 = CONCAT11((byte)*local_70,*(byte *)((long)local_70 + 1));\n            }\n            local_70 = (uint *)((long)local_70 + 2);\n            puStack_50 = (uint *)(ulong)uVar5;\n          }" if (parenthesized_expression "(uVar8 == 4)" ( (binary_expression "uVar8 == 4" identifier == number_literal) )) (compound_statement "{\n            pcVar3 = *(code **)(**(long **)(*param_1 + 0x10) + 0x18);\n            if (pcVar3 == FUN_001b8d10) {\n              cVar6 = (**(code **)(**(long **)(*param_1 + 0x10) + 0x1d0))();\n            }\n            else {\n              cVar6 = (*pcVar3)();\n            }\n            local_48 = *local_70;\n            if (cVar6 != '\0') {\n              local_48 = local_48 >> 0x18 | (local_48 & 0xff0000) >> 8 | (local_48 & 0xff00) << 8 |\n                         local_48 << 0x18;\n            }\n            puStack_50 = local_70 + 1;\n            local_70 = (uint *)((long)puStack_50 + (ulong)local_48);\n          }" { (expression_statement "pcVar3 = *(code **)(**(long **)(*param_1 + 0x10) + 0x18);" (assignment_expression "pcVar3 = *(code **)(**(long **)(*param_1 + 0x10) + 0x18)" identifier = (pointer_expression "*(code **)(**(long **)(*param_1 + 0x10) + 0x18)" * (cast_expression "(code **)(**(long **)(*param_1 + 0x10) + 0x18)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(**(long **)(*param_1 + 0x10) + 0x18)" ( (binary_expression "**(long **)(*param_1 + 0x10) + 0x18" (pointer_expression "**(long **)(*param_1 + 0x10)" * (pointer_expression "*(long **)(*param_1 + 0x10)" * (cast_expression "(long **)(*param_1 + 0x10)" ( (type_descriptor "long **" (sized_type_specifier "long" long) (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(*param_1 + 0x10)" ( (binary_expression "*param_1 + 0x10" (pointer_expression "*param_1" * identifier) + number_literal) ))))) + number_literal) ))))) ;) (if_statement "if (pcVar3 == FUN_001b8d10) {\n              cVar6 = (**(code **)(**(long **)(*param_1 + 0x10) + 0x1d0))();\n            }\n            else {\n              cVar6 = (*pcVar3)();\n            }" if (parenthesized_expression "(pcVar3 == FUN_001b8d10)" ( (binary_expression "pcVar3 == FUN_001b8d10" identifier == identifier) )) (compound_statement "{\n              cVar6 = (**(code **)(**(long **)(*param_1 + 0x10) + 0x1d0))();\n            }" { (expression_statement "cVar6 = (**(code **)(**(long **)(*param_1 + 0x10) + 0x1d0))();" (assignment_expression "cVar6 = (**(code **)(**(long **)(*param_1 + 0x10) + 0x1d0))()" identifier = (call_expression "(**(code **)(**(long **)(*param_1 + 0x10) + 0x1d0))()" (parenthesized_expression "(**(code **)(**(long **)(*param_1 + 0x10) + 0x1d0))" ( (pointer_expression "**(code **)(**(long **)(*param_1 + 0x10) + 0x1d0)" * (pointer_expression "*(code **)(**(long **)(*param_1 + 0x10) + 0x1d0)" * (cast_expression "(code **)(**(long **)(*param_1 + 0x10) + 0x1d0)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(**(long **)(*param_1 + 0x10) + 0x1d0)" ( (binary_expression "**(long **)(*param_1 + 0x10) + 0x1d0" (pointer_expression "**(long **)(*param_1 + 0x10)" * (pointer_expression "*(long **)(*param_1 + 0x10)" * (cast_expression "(long **)(*param_1 + 0x10)" ( (type_descriptor "long **" (sized_type_specifier "long" long) (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(*param_1 + 0x10)" ( (binary_expression "*param_1 + 0x10" (pointer_expression "*param_1" * identifier) + number_literal) ))))) + number_literal) ))))) )) (argument_list "()" ( )))) ;) }) (else_clause "else {\n              cVar6 = (*pcVar3)();\n            }" else (compound_statement "{\n              cVar6 = (*pcVar3)();\n            }" { (expression_statement "cVar6 = (*pcVar3)();" (assignment_expression "cVar6 = (*pcVar3)()" identifier = (call_expression "(*pcVar3)()" (parenthesized_expression "(*pcVar3)" ( (pointer_expression "*pcVar3" * identifier) )) (argument_list "()" ( )))) ;) }))) (expression_statement "local_48 = *local_70;" (assignment_expression "local_48 = *local_70" identifier = (pointer_expression "*local_70" * identifier)) ;) (if_statement "if (cVar6 != '\0') {\n              local_48 = local_48 >> 0x18 | (local_48 & 0xff0000) >> 8 | (local_48 & 0xff00) << 8 |\n                         local_48 << 0x18;\n            }" if (parenthesized_expression "(cVar6 != '\0')" ( (binary_expression "cVar6 != '\0'" identifier != (char_literal "'\0'" ' escape_sequence ')) )) (compound_statement "{\n              local_48 = local_48 >> 0x18 | (local_48 & 0xff0000) >> 8 | (local_48 & 0xff00) << 8 |\n                         local_48 << 0x18;\n            }" { (expression_statement "local_48 = local_48 >> 0x18 | (local_48 & 0xff0000) >> 8 | (local_48 & 0xff00) << 8 |\n                         local_48 << 0x18;" (assignment_expression "local_48 = local_48 >> 0x18 | (local_48 & 0xff0000) >> 8 | (local_48 & 0xff00) << 8 |\n                         local_48 << 0x18" identifier = (binary_expression "local_48 >> 0x18 | (local_48 & 0xff0000) >> 8 | (local_48 & 0xff00) << 8 |\n                         local_48 << 0x18" (binary_expression "local_48 >> 0x18 | (local_48 & 0xff0000) >> 8 | (local_48 & 0xff00) << 8" (binary_expression "local_48 >> 0x18 | (local_48 & 0xff0000) >> 8" (binary_expression "local_48 >> 0x18" identifier >> number_literal) | (binary_expression "(local_48 & 0xff0000) >> 8" (parenthesized_expression "(local_48 & 0xff0000)" ( (binary_expression "local_48 & 0xff0000" identifier & number_literal) )) >> number_literal)) | (binary_expression "(local_48 & 0xff00) << 8" (parenthesized_expression "(local_48 & 0xff00)" ( (binary_expression "local_48 & 0xff00" identifier & number_literal) )) << number_literal)) | (binary_expression "local_48 << 0x18" identifier << number_literal))) ;) })) (expression_statement "puStack_50 = local_70 + 1;" (assignment_expression "puStack_50 = local_70 + 1" identifier = (binary_expression "local_70 + 1" identifier + number_literal)) ;) (expression_statement "local_70 = (uint *)((long)puStack_50 + (ulong)local_48);" (assignment_expression "local_70 = (uint *)((long)puStack_50 + (ulong)local_48)" identifier = (cast_expression "(uint *)((long)puStack_50 + (ulong)local_48)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((long)puStack_50 + (ulong)local_48)" ( (binary_expression "(long)puStack_50 + (ulong)local_48" (cast_expression "(long)puStack_50" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) identifier) + (cast_expression "(ulong)local_48" ( (type_descriptor "ulong" type_identifier) ) identifier)) )))) ;) }) (else_clause "else if (uVar8 < 5) {\n            if (uVar8 == 1) {\n              lVar10 = *param_1;\n              if (*(int *)(lVar10 + 100) == 4) goto LAB_00302e7d;\nLAB_00302a71:\n              pcVar3 = *(code **)(**(long **)(lVar10 + 0x10) + 0x18);\n              if (pcVar3 == FUN_001b8d10) {\n                cVar6 = (**(code **)(**(long **)(lVar10 + 0x10) + 0x1d0))();\n              }\n              else {\n                cVar6 = (*pcVar3)();\n              }\n              local_60 = *(uint **)local_70;\n              if (cVar6 != '\0') {\n                local_60 = (uint *)((ulong)local_60 >> 0x38 |\n                                    ((ulong)local_60 & 0xff000000000000) >> 0x28 |\n                                    ((ulong)local_60 & 0xff0000000000) >> 0x18 |\n                                    ((ulong)local_60 & 0xff00000000) >> 8 |\n                                    ((ulong)local_60 & 0xff000000) << 8 |\n                                    ((ulong)local_60 & 0xff0000) << 0x18 |\n                                    ((ulong)local_60 & 0xff00) << 0x28 | (long)local_60 << 0x38);\n              }\n              local_70 = local_70 + 2;\n              goto LAB_00302abe;\n            }\n            if (uVar8 != 3) {\n              return 0;\n            }\n            pcVar3 = *(code **)(**(long **)(*param_1 + 0x10) + 0x18);\n            if (pcVar3 == FUN_001b8d10) {\n              cVar6 = (**(code **)(**(long **)(*param_1 + 0x10) + 0x1d0))();\n            }\n            else {\n              cVar6 = (*pcVar3)();\n            }\n            uVar5 = (ushort)*local_70;\n            if (cVar6 != '\0') {\n              uVar5 = CONCAT11((byte)*local_70,*(byte *)((long)local_70 + 1));\n            }\n            local_48 = (uint)uVar5;\n            puStack_50 = (uint *)((long)local_70 + 2);\n            local_70 = (uint *)((long)puStack_50 + (ulong)local_48);\n          }\n          else {\n            if (uVar8 != 5) {\n              if (uVar8 != 6) {\n                return 0;\n              }\n              pcVar3 = *(code **)(**(long **)(*param_1 + 0x10) + 0x18);\n              if (pcVar3 == FUN_001b8d10) {\n                cVar6 = (**(code **)(**(long **)(*param_1 + 0x10) + 0x1d0))();\n              }\n              else {\n                cVar6 = (*pcVar3)();\n              }\n              uVar9 = *local_70;\n              if (cVar6 != '\0') {\n                uVar9 = uVar9 >> 0x18 | (uVar9 & 0xff0000) >> 8 | (uVar9 & 0xff00) << 8 |\n                        uVar9 << 0x18;\n              }\n              local_60 = (uint *)(ulong)uVar9;\n              local_70 = local_70 + 1;\n              goto LAB_00302d40;\n            }\n            pcVar3 = *(code **)(**(long **)(*param_1 + 0x10) + 0x18);\n            if (pcVar3 == FUN_001b8d10) {\n              cVar6 = (**(code **)(**(long **)(*param_1 + 0x10) + 0x1d0))();\n            }\n            else {\n              cVar6 = (*pcVar3)();\n            }\n            uVar5 = (ushort)*local_70;\n            if (cVar6 != '\0') {\n              uVar5 = CONCAT11((byte)*local_70,*(byte *)((long)local_70 + 1));\n            }\n            local_70 = (uint *)((long)local_70 + 2);\n            puStack_50 = (uint *)(ulong)uVar5;\n          }" else (if_statement "if (uVar8 < 5) {\n            if (uVar8 == 1) {\n              lVar10 = *param_1;\n              if (*(int *)(lVar10 + 100) == 4) goto LAB_00302e7d;\nLAB_00302a71:\n              pcVar3 = *(code **)(**(long **)(lVar10 + 0x10) + 0x18);\n              if (pcVar3 == FUN_001b8d10) {\n                cVar6 = (**(code **)(**(long **)(lVar10 + 0x10) + 0x1d0))();\n              }\n              else {\n                cVar6 = (*pcVar3)();\n              }\n              local_60 = *(uint **)local_70;\n              if (cVar6 != '\0') {\n                local_60 = (uint *)((ulong)local_60 >> 0x38 |\n                                    ((ulong)local_60 & 0xff000000000000) >> 0x28 |\n                                    ((ulong)local_60 & 0xff0000000000) >> 0x18 |\n                                    ((ulong)local_60 & 0xff00000000) >> 8 |\n                                    ((ulong)local_60 & 0xff000000) << 8 |\n                                    ((ulong)local_60 & 0xff0000) << 0x18 |\n                                    ((ulong)local_60 & 0xff00) << 0x28 | (long)local_60 << 0x38);\n              }\n              local_70 = local_70 + 2;\n              goto LAB_00302abe;\n            }\n            if (uVar8 != 3) {\n              return 0;\n            }\n            pcVar3 = *(code **)(**(long **)(*param_1 + 0x10) + 0x18);\n            if (pcVar3 == FUN_001b8d10) {\n              cVar6 = (**(code **)(**(long **)(*param_1 + 0x10) + 0x1d0))();\n            }\n            else {\n              cVar6 = (*pcVar3)();\n            }\n            uVar5 = (ushort)*local_70;\n            if (cVar6 != '\0') {\n              uVar5 = CONCAT11((byte)*local_70,*(byte *)((long)local_70 + 1));\n            }\n            local_48 = (uint)uVar5;\n            puStack_50 = (uint *)((long)local_70 + 2);\n            local_70 = (uint *)((long)puStack_50 + (ulong)local_48);\n          }\n          else {\n            if (uVar8 != 5) {\n              if (uVar8 != 6) {\n                return 0;\n              }\n              pcVar3 = *(code **)(**(long **)(*param_1 + 0x10) + 0x18);\n              if (pcVar3 == FUN_001b8d10) {\n                cVar6 = (**(code **)(**(long **)(*param_1 + 0x10) + 0x1d0))();\n              }\n              else {\n                cVar6 = (*pcVar3)();\n              }\n              uVar9 = *local_70;\n              if (cVar6 != '\0') {\n                uVar9 = uVar9 >> 0x18 | (uVar9 & 0xff0000) >> 8 | (uVar9 & 0xff00) << 8 |\n                        uVar9 << 0x18;\n              }\n              local_60 = (uint *)(ulong)uVar9;\n              local_70 = local_70 + 1;\n              goto LAB_00302d40;\n            }\n            pcVar3 = *(code **)(**(long **)(*param_1 + 0x10) + 0x18);\n            if (pcVar3 == FUN_001b8d10) {\n              cVar6 = (**(code **)(**(long **)(*param_1 + 0x10) + 0x1d0))();\n            }\n            else {\n              cVar6 = (*pcVar3)();\n            }\n            uVar5 = (ushort)*local_70;\n            if (cVar6 != '\0') {\n              uVar5 = CONCAT11((byte)*local_70,*(byte *)((long)local_70 + 1));\n            }\n            local_70 = (uint *)((long)local_70 + 2);\n            puStack_50 = (uint *)(ulong)uVar5;\n          }" if (parenthesized_expression "(uVar8 < 5)" ( (binary_expression "uVar8 < 5" identifier < number_literal) )) (compound_statement "{\n            if (uVar8 == 1) {\n              lVar10 = *param_1;\n              if (*(int *)(lVar10 + 100) == 4) goto LAB_00302e7d;\nLAB_00302a71:\n              pcVar3 = *(code **)(**(long **)(lVar10 + 0x10) + 0x18);\n              if (pcVar3 == FUN_001b8d10) {\n                cVar6 = (**(code **)(**(long **)(lVar10 + 0x10) + 0x1d0))();\n              }\n              else {\n                cVar6 = (*pcVar3)();\n              }\n              local_60 = *(uint **)local_70;\n              if (cVar6 != '\0') {\n                local_60 = (uint *)((ulong)local_60 >> 0x38 |\n                                    ((ulong)local_60 & 0xff000000000000) >> 0x28 |\n                                    ((ulong)local_60 & 0xff0000000000) >> 0x18 |\n                                    ((ulong)local_60 & 0xff00000000) >> 8 |\n                                    ((ulong)local_60 & 0xff000000) << 8 |\n                                    ((ulong)local_60 & 0xff0000) << 0x18 |\n                                    ((ulong)local_60 & 0xff00) << 0x28 | (long)local_60 << 0x38);\n              }\n              local_70 = local_70 + 2;\n              goto LAB_00302abe;\n            }\n            if (uVar8 != 3) {\n              return 0;\n            }\n            pcVar3 = *(code **)(**(long **)(*param_1 + 0x10) + 0x18);\n            if (pcVar3 == FUN_001b8d10) {\n              cVar6 = (**(code **)(**(long **)(*param_1 + 0x10) + 0x1d0))();\n            }\n            else {\n              cVar6 = (*pcVar3)();\n            }\n            uVar5 = (ushort)*local_70;\n            if (cVar6 != '\0') {\n              uVar5 = CONCAT11((byte)*local_70,*(byte *)((long)local_70 + 1));\n            }\n            local_48 = (uint)uVar5;\n            puStack_50 = (uint *)((long)local_70 + 2);\n            local_70 = (uint *)((long)puStack_50 + (ulong)local_48);\n          }" { (if_statement "if (uVar8 == 1) {\n              lVar10 = *param_1;\n              if (*(int *)(lVar10 + 100) == 4) goto LAB_00302e7d;\nLAB_00302a71:\n              pcVar3 = *(code **)(**(long **)(lVar10 + 0x10) + 0x18);\n              if (pcVar3 == FUN_001b8d10) {\n                cVar6 = (**(code **)(**(long **)(lVar10 + 0x10) + 0x1d0))();\n              }\n              else {\n                cVar6 = (*pcVar3)();\n              }\n              local_60 = *(uint **)local_70;\n              if (cVar6 != '\0') {\n                local_60 = (uint *)((ulong)local_60 >> 0x38 |\n                                    ((ulong)local_60 & 0xff000000000000) >> 0x28 |\n                                    ((ulong)local_60 & 0xff0000000000) >> 0x18 |\n                                    ((ulong)local_60 & 0xff00000000) >> 8 |\n                                    ((ulong)local_60 & 0xff000000) << 8 |\n                                    ((ulong)local_60 & 0xff0000) << 0x18 |\n                                    ((ulong)local_60 & 0xff00) << 0x28 | (long)local_60 << 0x38);\n              }\n              local_70 = local_70 + 2;\n              goto LAB_00302abe;\n            }" if (parenthesized_expression "(uVar8 == 1)" ( (binary_expression "uVar8 == 1" identifier == number_literal) )) (compound_statement "{\n              lVar10 = *param_1;\n              if (*(int *)(lVar10 + 100) == 4) goto LAB_00302e7d;\nLAB_00302a71:\n              pcVar3 = *(code **)(**(long **)(lVar10 + 0x10) + 0x18);\n              if (pcVar3 == FUN_001b8d10) {\n                cVar6 = (**(code **)(**(long **)(lVar10 + 0x10) + 0x1d0))();\n              }\n              else {\n                cVar6 = (*pcVar3)();\n              }\n              local_60 = *(uint **)local_70;\n              if (cVar6 != '\0') {\n                local_60 = (uint *)((ulong)local_60 >> 0x38 |\n                                    ((ulong)local_60 & 0xff000000000000) >> 0x28 |\n                                    ((ulong)local_60 & 0xff0000000000) >> 0x18 |\n                                    ((ulong)local_60 & 0xff00000000) >> 8 |\n                                    ((ulong)local_60 & 0xff000000) << 8 |\n                                    ((ulong)local_60 & 0xff0000) << 0x18 |\n                                    ((ulong)local_60 & 0xff00) << 0x28 | (long)local_60 << 0x38);\n              }\n              local_70 = local_70 + 2;\n              goto LAB_00302abe;\n            }" { (expression_statement "lVar10 = *param_1;" (assignment_expression "lVar10 = *param_1" identifier = (pointer_expression "*param_1" * identifier)) ;) (if_statement "if (*(int *)(lVar10 + 100) == 4) goto LAB_00302e7d;" if (parenthesized_expression "(*(int *)(lVar10 + 100) == 4)" ( (binary_expression "*(int *)(lVar10 + 100) == 4" (pointer_expression "*(int *)(lVar10 + 100)" * (cast_expression "(int *)(lVar10 + 100)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(lVar10 + 100)" ( (binary_expression "lVar10 + 100" identifier + number_literal) )))) == number_literal) )) (goto_statement "goto LAB_00302e7d;" goto statement_identifier ;)) (labeled_statement "LAB_00302a71:\n              pcVar3 = *(code **)(**(long **)(lVar10 + 0x10) + 0x18);" statement_identifier : (expression_statement "pcVar3 = *(code **)(**(long **)(lVar10 + 0x10) + 0x18);" (assignment_expression "pcVar3 = *(code **)(**(long **)(lVar10 + 0x10) + 0x18)" identifier = (pointer_expression "*(code **)(**(long **)(lVar10 + 0x10) + 0x18)" * (cast_expression "(code **)(**(long **)(lVar10 + 0x10) + 0x18)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(**(long **)(lVar10 + 0x10) + 0x18)" ( (binary_expression "**(long **)(lVar10 + 0x10) + 0x18" (pointer_expression "**(long **)(lVar10 + 0x10)" * (pointer_expression "*(long **)(lVar10 + 0x10)" * (cast_expression "(long **)(lVar10 + 0x10)" ( (type_descriptor "long **" (sized_type_specifier "long" long) (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(lVar10 + 0x10)" ( (binary_expression "lVar10 + 0x10" identifier + number_literal) ))))) + number_literal) ))))) ;)) (if_statement "if (pcVar3 == FUN_001b8d10) {\n                cVar6 = (**(code **)(**(long **)(lVar10 + 0x10) + 0x1d0))();\n              }\n              else {\n                cVar6 = (*pcVar3)();\n              }" if (parenthesized_expression "(pcVar3 == FUN_001b8d10)" ( (binary_expression "pcVar3 == FUN_001b8d10" identifier == identifier) )) (compound_statement "{\n                cVar6 = (**(code **)(**(long **)(lVar10 + 0x10) + 0x1d0))();\n              }" { (expression_statement "cVar6 = (**(code **)(**(long **)(lVar10 + 0x10) + 0x1d0))();" (assignment_expression "cVar6 = (**(code **)(**(long **)(lVar10 + 0x10) + 0x1d0))()" identifier = (call_expression "(**(code **)(**(long **)(lVar10 + 0x10) + 0x1d0))()" (parenthesized_expression "(**(code **)(**(long **)(lVar10 + 0x10) + 0x1d0))" ( (pointer_expression "**(code **)(**(long **)(lVar10 + 0x10) + 0x1d0)" * (pointer_expression "*(code **)(**(long **)(lVar10 + 0x10) + 0x1d0)" * (cast_expression "(code **)(**(long **)(lVar10 + 0x10) + 0x1d0)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(**(long **)(lVar10 + 0x10) + 0x1d0)" ( (binary_expression "**(long **)(lVar10 + 0x10) + 0x1d0" (pointer_expression "**(long **)(lVar10 + 0x10)" * (pointer_expression "*(long **)(lVar10 + 0x10)" * (cast_expression "(long **)(lVar10 + 0x10)" ( (type_descriptor "long **" (sized_type_specifier "long" long) (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(lVar10 + 0x10)" ( (binary_expression "lVar10 + 0x10" identifier + number_literal) ))))) + number_literal) ))))) )) (argument_list "()" ( )))) ;) }) (else_clause "else {\n                cVar6 = (*pcVar3)();\n              }" else (compound_statement "{\n                cVar6 = (*pcVar3)();\n              }" { (expression_statement "cVar6 = (*pcVar3)();" (assignment_expression "cVar6 = (*pcVar3)()" identifier = (call_expression "(*pcVar3)()" (parenthesized_expression "(*pcVar3)" ( (pointer_expression "*pcVar3" * identifier) )) (argument_list "()" ( )))) ;) }))) (expression_statement "local_60 = *(uint **)local_70;" (assignment_expression "local_60 = *(uint **)local_70" identifier = (pointer_expression "*(uint **)local_70" * (cast_expression "(uint **)local_70" ( (type_descriptor "uint **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) identifier))) ;) (if_statement "if (cVar6 != '\0') {\n                local_60 = (uint *)((ulong)local_60 >> 0x38 |\n                                    ((ulong)local_60 & 0xff000000000000) >> 0x28 |\n                                    ((ulong)local_60 & 0xff0000000000) >> 0x18 |\n                                    ((ulong)local_60 & 0xff00000000) >> 8 |\n                                    ((ulong)local_60 & 0xff000000) << 8 |\n                                    ((ulong)local_60 & 0xff0000) << 0x18 |\n                                    ((ulong)local_60 & 0xff00) << 0x28 | (long)local_60 << 0x38);\n              }" if (parenthesized_expression "(cVar6 != '\0')" ( (binary_expression "cVar6 != '\0'" identifier != (char_literal "'\0'" ' escape_sequence ')) )) (compound_statement "{\n                local_60 = (uint *)((ulong)local_60 >> 0x38 |\n                                    ((ulong)local_60 & 0xff000000000000) >> 0x28 |\n                                    ((ulong)local_60 & 0xff0000000000) >> 0x18 |\n                                    ((ulong)local_60 & 0xff00000000) >> 8 |\n                                    ((ulong)local_60 & 0xff000000) << 8 |\n                                    ((ulong)local_60 & 0xff0000) << 0x18 |\n                                    ((ulong)local_60 & 0xff00) << 0x28 | (long)local_60 << 0x38);\n              }" { (expression_statement "local_60 = (uint *)((ulong)local_60 >> 0x38 |\n                                    ((ulong)local_60 & 0xff000000000000) >> 0x28 |\n                                    ((ulong)local_60 & 0xff0000000000) >> 0x18 |\n                                    ((ulong)local_60 & 0xff00000000) >> 8 |\n                                    ((ulong)local_60 & 0xff000000) << 8 |\n                                    ((ulong)local_60 & 0xff0000) << 0x18 |\n                                    ((ulong)local_60 & 0xff00) << 0x28 | (long)local_60 << 0x38);" (assignment_expression "local_60 = (uint *)((ulong)local_60 >> 0x38 |\n                                    ((ulong)local_60 & 0xff000000000000) >> 0x28 |\n                                    ((ulong)local_60 & 0xff0000000000) >> 0x18 |\n                                    ((ulong)local_60 & 0xff00000000) >> 8 |\n                                    ((ulong)local_60 & 0xff000000) << 8 |\n                                    ((ulong)local_60 & 0xff0000) << 0x18 |\n                                    ((ulong)local_60 & 0xff00) << 0x28 | (long)local_60 << 0x38)" identifier = (cast_expression "(uint *)((ulong)local_60 >> 0x38 |\n                                    ((ulong)local_60 & 0xff000000000000) >> 0x28 |\n                                    ((ulong)local_60 & 0xff0000000000) >> 0x18 |\n                                    ((ulong)local_60 & 0xff00000000) >> 8 |\n                                    ((ulong)local_60 & 0xff000000) << 8 |\n                                    ((ulong)local_60 & 0xff0000) << 0x18 |\n                                    ((ulong)local_60 & 0xff00) << 0x28 | (long)local_60 << 0x38)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((ulong)local_60 >> 0x38 |\n                                    ((ulong)local_60 & 0xff000000000000) >> 0x28 |\n                                    ((ulong)local_60 & 0xff0000000000) >> 0x18 |\n                                    ((ulong)local_60 & 0xff00000000) >> 8 |\n                                    ((ulong)local_60 & 0xff000000) << 8 |\n                                    ((ulong)local_60 & 0xff0000) << 0x18 |\n                                    ((ulong)local_60 & 0xff00) << 0x28 | (long)local_60 << 0x38)" ( (binary_expression "(ulong)local_60 >> 0x38 |\n                                    ((ulong)local_60 & 0xff000000000000) >> 0x28 |\n                                    ((ulong)local_60 & 0xff0000000000) >> 0x18 |\n                                    ((ulong)local_60 & 0xff00000000) >> 8 |\n                                    ((ulong)local_60 & 0xff000000) << 8 |\n                                    ((ulong)local_60 & 0xff0000) << 0x18 |\n                                    ((ulong)local_60 & 0xff00) << 0x28 | (long)local_60 << 0x38" (binary_expression "(ulong)local_60 >> 0x38 |\n                                    ((ulong)local_60 & 0xff000000000000) >> 0x28 |\n                                    ((ulong)local_60 & 0xff0000000000) >> 0x18 |\n                                    ((ulong)local_60 & 0xff00000000) >> 8 |\n                                    ((ulong)local_60 & 0xff000000) << 8 |\n                                    ((ulong)local_60 & 0xff0000) << 0x18 |\n                                    ((ulong)local_60 & 0xff00) << 0x28" (binary_expression "(ulong)local_60 >> 0x38 |\n                                    ((ulong)local_60 & 0xff000000000000) >> 0x28 |\n                                    ((ulong)local_60 & 0xff0000000000) >> 0x18 |\n                                    ((ulong)local_60 & 0xff00000000) >> 8 |\n                                    ((ulong)local_60 & 0xff000000) << 8 |\n                                    ((ulong)local_60 & 0xff0000) << 0x18" (binary_expression "(ulong)local_60 >> 0x38 |\n                                    ((ulong)local_60 & 0xff000000000000) >> 0x28 |\n                                    ((ulong)local_60 & 0xff0000000000) >> 0x18 |\n                                    ((ulong)local_60 & 0xff00000000) >> 8 |\n                                    ((ulong)local_60 & 0xff000000) << 8" (binary_expression "(ulong)local_60 >> 0x38 |\n                                    ((ulong)local_60 & 0xff000000000000) >> 0x28 |\n                                    ((ulong)local_60 & 0xff0000000000) >> 0x18 |\n                                    ((ulong)local_60 & 0xff00000000) >> 8" (binary_expression "(ulong)local_60 >> 0x38 |\n                                    ((ulong)local_60 & 0xff000000000000) >> 0x28 |\n                                    ((ulong)local_60 & 0xff0000000000) >> 0x18" (binary_expression "(ulong)local_60 >> 0x38 |\n                                    ((ulong)local_60 & 0xff000000000000) >> 0x28" (binary_expression "(ulong)local_60 >> 0x38" (cast_expression "(ulong)local_60" ( (type_descriptor "ulong" type_identifier) ) identifier) >> number_literal) | (binary_expression "((ulong)local_60 & 0xff000000000000) >> 0x28" (parenthesized_expression "((ulong)local_60 & 0xff000000000000)" ( (binary_expression "(ulong)local_60 & 0xff000000000000" (cast_expression "(ulong)local_60" ( (type_descriptor "ulong" type_identifier) ) identifier) & number_literal) )) >> number_literal)) | (binary_expression "((ulong)local_60 & 0xff0000000000) >> 0x18" (parenthesized_expression "((ulong)local_60 & 0xff0000000000)" ( (binary_expression "(ulong)local_60 & 0xff0000000000" (cast_expression "(ulong)local_60" ( (type_descriptor "ulong" type_identifier) ) identifier) & number_literal) )) >> number_literal)) | (binary_expression "((ulong)local_60 & 0xff00000000) >> 8" (parenthesized_expression "((ulong)local_60 & 0xff00000000)" ( (binary_expression "(ulong)local_60 & 0xff00000000" (cast_expression "(ulong)local_60" ( (type_descriptor "ulong" type_identifier) ) identifier) & number_literal) )) >> number_literal)) | (binary_expression "((ulong)local_60 & 0xff000000) << 8" (parenthesized_expression "((ulong)local_60 & 0xff000000)" ( (binary_expression "(ulong)local_60 & 0xff000000" (cast_expression "(ulong)local_60" ( (type_descriptor "ulong" type_identifier) ) identifier) & number_literal) )) << number_literal)) | (binary_expression "((ulong)local_60 & 0xff0000) << 0x18" (parenthesized_expression "((ulong)local_60 & 0xff0000)" ( (binary_expression "(ulong)local_60 & 0xff0000" (cast_expression "(ulong)local_60" ( (type_descriptor "ulong" type_identifier) ) identifier) & number_literal) )) << number_literal)) | (binary_expression "((ulong)local_60 & 0xff00) << 0x28" (parenthesized_expression "((ulong)local_60 & 0xff00)" ( (binary_expression "(ulong)local_60 & 0xff00" (cast_expression "(ulong)local_60" ( (type_descriptor "ulong" type_identifier) ) identifier) & number_literal) )) << number_literal)) | (binary_expression "(long)local_60 << 0x38" (cast_expression "(long)local_60" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) identifier) << number_literal)) )))) ;) })) (expression_statement "local_70 = local_70 + 2;" (assignment_expression "local_70 = local_70 + 2" identifier = (binary_expression "local_70 + 2" identifier + number_literal)) ;) (goto_statement "goto LAB_00302abe;" goto statement_identifier ;) })) (if_statement "if (uVar8 != 3) {\n              return 0;\n            }" if (parenthesized_expression "(uVar8 != 3)" ( (binary_expression "uVar8 != 3" identifier != number_literal) )) (compound_statement "{\n              return 0;\n            }" { (return_statement "return 0;" return number_literal ;) })) (expression_statement "pcVar3 = *(code **)(**(long **)(*param_1 + 0x10) + 0x18);" (assignment_expression "pcVar3 = *(code **)(**(long **)(*param_1 + 0x10) + 0x18)" identifier = (pointer_expression "*(code **)(**(long **)(*param_1 + 0x10) + 0x18)" * (cast_expression "(code **)(**(long **)(*param_1 + 0x10) + 0x18)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(**(long **)(*param_1 + 0x10) + 0x18)" ( (binary_expression "**(long **)(*param_1 + 0x10) + 0x18" (pointer_expression "**(long **)(*param_1 + 0x10)" * (pointer_expression "*(long **)(*param_1 + 0x10)" * (cast_expression "(long **)(*param_1 + 0x10)" ( (type_descriptor "long **" (sized_type_specifier "long" long) (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(*param_1 + 0x10)" ( (binary_expression "*param_1 + 0x10" (pointer_expression "*param_1" * identifier) + number_literal) ))))) + number_literal) ))))) ;) (if_statement "if (pcVar3 == FUN_001b8d10) {\n              cVar6 = (**(code **)(**(long **)(*param_1 + 0x10) + 0x1d0))();\n            }\n            else {\n              cVar6 = (*pcVar3)();\n            }" if (parenthesized_expression "(pcVar3 == FUN_001b8d10)" ( (binary_expression "pcVar3 == FUN_001b8d10" identifier == identifier) )) (compound_statement "{\n              cVar6 = (**(code **)(**(long **)(*param_1 + 0x10) + 0x1d0))();\n            }" { (expression_statement "cVar6 = (**(code **)(**(long **)(*param_1 + 0x10) + 0x1d0))();" (assignment_expression "cVar6 = (**(code **)(**(long **)(*param_1 + 0x10) + 0x1d0))()" identifier = (call_expression "(**(code **)(**(long **)(*param_1 + 0x10) + 0x1d0))()" (parenthesized_expression "(**(code **)(**(long **)(*param_1 + 0x10) + 0x1d0))" ( (pointer_expression "**(code **)(**(long **)(*param_1 + 0x10) + 0x1d0)" * (pointer_expression "*(code **)(**(long **)(*param_1 + 0x10) + 0x1d0)" * (cast_expression "(code **)(**(long **)(*param_1 + 0x10) + 0x1d0)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(**(long **)(*param_1 + 0x10) + 0x1d0)" ( (binary_expression "**(long **)(*param_1 + 0x10) + 0x1d0" (pointer_expression "**(long **)(*param_1 + 0x10)" * (pointer_expression "*(long **)(*param_1 + 0x10)" * (cast_expression "(long **)(*param_1 + 0x10)" ( (type_descriptor "long **" (sized_type_specifier "long" long) (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(*param_1 + 0x10)" ( (binary_expression "*param_1 + 0x10" (pointer_expression "*param_1" * identifier) + number_literal) ))))) + number_literal) ))))) )) (argument_list "()" ( )))) ;) }) (else_clause "else {\n              cVar6 = (*pcVar3)();\n            }" else (compound_statement "{\n              cVar6 = (*pcVar3)();\n            }" { (expression_statement "cVar6 = (*pcVar3)();" (assignment_expression "cVar6 = (*pcVar3)()" identifier = (call_expression "(*pcVar3)()" (parenthesized_expression "(*pcVar3)" ( (pointer_expression "*pcVar3" * identifier) )) (argument_list "()" ( )))) ;) }))) (expression_statement "uVar5 = (ushort)*local_70;" (assignment_expression "uVar5 = (ushort)*local_70" identifier = (binary_expression "(ushort)*local_70" (parenthesized_expression "(ushort)" ( identifier )) * identifier)) ;) (if_statement "if (cVar6 != '\0') {\n              uVar5 = CONCAT11((byte)*local_70,*(byte *)((long)local_70 + 1));\n            }" if (parenthesized_expression "(cVar6 != '\0')" ( (binary_expression "cVar6 != '\0'" identifier != (char_literal "'\0'" ' escape_sequence ')) )) (compound_statement "{\n              uVar5 = CONCAT11((byte)*local_70,*(byte *)((long)local_70 + 1));\n            }" { (expression_statement "uVar5 = CONCAT11((byte)*local_70,*(byte *)((long)local_70 + 1));" (assignment_expression "uVar5 = CONCAT11((byte)*local_70,*(byte *)((long)local_70 + 1))" identifier = (call_expression "CONCAT11((byte)*local_70,*(byte *)((long)local_70 + 1))" identifier (argument_list "((byte)*local_70,*(byte *)((long)local_70 + 1))" ( (binary_expression "(byte)*local_70" (parenthesized_expression "(byte)" ( identifier )) * identifier) , (pointer_expression "*(byte *)((long)local_70 + 1)" * (cast_expression "(byte *)((long)local_70 + 1)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((long)local_70 + 1)" ( (binary_expression "(long)local_70 + 1" (cast_expression "(long)local_70" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) identifier) + number_literal) )))) )))) ;) })) (expression_statement "local_48 = (uint)uVar5;" (assignment_expression "local_48 = (uint)uVar5" identifier = (cast_expression "(uint)uVar5" ( (type_descriptor "uint" type_identifier) ) identifier)) ;) (expression_statement "puStack_50 = (uint *)((long)local_70 + 2);" (assignment_expression "puStack_50 = (uint *)((long)local_70 + 2)" identifier = (cast_expression "(uint *)((long)local_70 + 2)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((long)local_70 + 2)" ( (binary_expression "(long)local_70 + 2" (cast_expression "(long)local_70" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) identifier) + number_literal) )))) ;) (expression_statement "local_70 = (uint *)((long)puStack_50 + (ulong)local_48);" (assignment_expression "local_70 = (uint *)((long)puStack_50 + (ulong)local_48)" identifier = (cast_expression "(uint *)((long)puStack_50 + (ulong)local_48)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((long)puStack_50 + (ulong)local_48)" ( (binary_expression "(long)puStack_50 + (ulong)local_48" (cast_expression "(long)puStack_50" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) identifier) + (cast_expression "(ulong)local_48" ( (type_descriptor "ulong" type_identifier) ) identifier)) )))) ;) }) (else_clause "else {\n            if (uVar8 != 5) {\n              if (uVar8 != 6) {\n                return 0;\n              }\n              pcVar3 = *(code **)(**(long **)(*param_1 + 0x10) + 0x18);\n              if (pcVar3 == FUN_001b8d10) {\n                cVar6 = (**(code **)(**(long **)(*param_1 + 0x10) + 0x1d0))();\n              }\n              else {\n                cVar6 = (*pcVar3)();\n              }\n              uVar9 = *local_70;\n              if (cVar6 != '\0') {\n                uVar9 = uVar9 >> 0x18 | (uVar9 & 0xff0000) >> 8 | (uVar9 & 0xff00) << 8 |\n                        uVar9 << 0x18;\n              }\n              local_60 = (uint *)(ulong)uVar9;\n              local_70 = local_70 + 1;\n              goto LAB_00302d40;\n            }\n            pcVar3 = *(code **)(**(long **)(*param_1 + 0x10) + 0x18);\n            if (pcVar3 == FUN_001b8d10) {\n              cVar6 = (**(code **)(**(long **)(*param_1 + 0x10) + 0x1d0))();\n            }\n            else {\n              cVar6 = (*pcVar3)();\n            }\n            uVar5 = (ushort)*local_70;\n            if (cVar6 != '\0') {\n              uVar5 = CONCAT11((byte)*local_70,*(byte *)((long)local_70 + 1));\n            }\n            local_70 = (uint *)((long)local_70 + 2);\n            puStack_50 = (uint *)(ulong)uVar5;\n          }" else (compound_statement "{\n            if (uVar8 != 5) {\n              if (uVar8 != 6) {\n                return 0;\n              }\n              pcVar3 = *(code **)(**(long **)(*param_1 + 0x10) + 0x18);\n              if (pcVar3 == FUN_001b8d10) {\n                cVar6 = (**(code **)(**(long **)(*param_1 + 0x10) + 0x1d0))();\n              }\n              else {\n                cVar6 = (*pcVar3)();\n              }\n              uVar9 = *local_70;\n              if (cVar6 != '\0') {\n                uVar9 = uVar9 >> 0x18 | (uVar9 & 0xff0000) >> 8 | (uVar9 & 0xff00) << 8 |\n                        uVar9 << 0x18;\n              }\n              local_60 = (uint *)(ulong)uVar9;\n              local_70 = local_70 + 1;\n              goto LAB_00302d40;\n            }\n            pcVar3 = *(code **)(**(long **)(*param_1 + 0x10) + 0x18);\n            if (pcVar3 == FUN_001b8d10) {\n              cVar6 = (**(code **)(**(long **)(*param_1 + 0x10) + 0x1d0))();\n            }\n            else {\n              cVar6 = (*pcVar3)();\n            }\n            uVar5 = (ushort)*local_70;\n            if (cVar6 != '\0') {\n              uVar5 = CONCAT11((byte)*local_70,*(byte *)((long)local_70 + 1));\n            }\n            local_70 = (uint *)((long)local_70 + 2);\n            puStack_50 = (uint *)(ulong)uVar5;\n          }" { (if_statement "if (uVar8 != 5) {\n              if (uVar8 != 6) {\n                return 0;\n              }\n              pcVar3 = *(code **)(**(long **)(*param_1 + 0x10) + 0x18);\n              if (pcVar3 == FUN_001b8d10) {\n                cVar6 = (**(code **)(**(long **)(*param_1 + 0x10) + 0x1d0))();\n              }\n              else {\n                cVar6 = (*pcVar3)();\n              }\n              uVar9 = *local_70;\n              if (cVar6 != '\0') {\n                uVar9 = uVar9 >> 0x18 | (uVar9 & 0xff0000) >> 8 | (uVar9 & 0xff00) << 8 |\n                        uVar9 << 0x18;\n              }\n              local_60 = (uint *)(ulong)uVar9;\n              local_70 = local_70 + 1;\n              goto LAB_00302d40;\n            }" if (parenthesized_expression "(uVar8 != 5)" ( (binary_expression "uVar8 != 5" identifier != number_literal) )) (compound_statement "{\n              if (uVar8 != 6) {\n                return 0;\n              }\n              pcVar3 = *(code **)(**(long **)(*param_1 + 0x10) + 0x18);\n              if (pcVar3 == FUN_001b8d10) {\n                cVar6 = (**(code **)(**(long **)(*param_1 + 0x10) + 0x1d0))();\n              }\n              else {\n                cVar6 = (*pcVar3)();\n              }\n              uVar9 = *local_70;\n              if (cVar6 != '\0') {\n                uVar9 = uVar9 >> 0x18 | (uVar9 & 0xff0000) >> 8 | (uVar9 & 0xff00) << 8 |\n                        uVar9 << 0x18;\n              }\n              local_60 = (uint *)(ulong)uVar9;\n              local_70 = local_70 + 1;\n              goto LAB_00302d40;\n            }" { (if_statement "if (uVar8 != 6) {\n                return 0;\n              }" if (parenthesized_expression "(uVar8 != 6)" ( (binary_expression "uVar8 != 6" identifier != number_literal) )) (compound_statement "{\n                return 0;\n              }" { (return_statement "return 0;" return number_literal ;) })) (expression_statement "pcVar3 = *(code **)(**(long **)(*param_1 + 0x10) + 0x18);" (assignment_expression "pcVar3 = *(code **)(**(long **)(*param_1 + 0x10) + 0x18)" identifier = (pointer_expression "*(code **)(**(long **)(*param_1 + 0x10) + 0x18)" * (cast_expression "(code **)(**(long **)(*param_1 + 0x10) + 0x18)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(**(long **)(*param_1 + 0x10) + 0x18)" ( (binary_expression "**(long **)(*param_1 + 0x10) + 0x18" (pointer_expression "**(long **)(*param_1 + 0x10)" * (pointer_expression "*(long **)(*param_1 + 0x10)" * (cast_expression "(long **)(*param_1 + 0x10)" ( (type_descriptor "long **" (sized_type_specifier "long" long) (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(*param_1 + 0x10)" ( (binary_expression "*param_1 + 0x10" (pointer_expression "*param_1" * identifier) + number_literal) ))))) + number_literal) ))))) ;) (if_statement "if (pcVar3 == FUN_001b8d10) {\n                cVar6 = (**(code **)(**(long **)(*param_1 + 0x10) + 0x1d0))();\n              }\n              else {\n                cVar6 = (*pcVar3)();\n              }" if (parenthesized_expression "(pcVar3 == FUN_001b8d10)" ( (binary_expression "pcVar3 == FUN_001b8d10" identifier == identifier) )) (compound_statement "{\n                cVar6 = (**(code **)(**(long **)(*param_1 + 0x10) + 0x1d0))();\n              }" { (expression_statement "cVar6 = (**(code **)(**(long **)(*param_1 + 0x10) + 0x1d0))();" (assignment_expression "cVar6 = (**(code **)(**(long **)(*param_1 + 0x10) + 0x1d0))()" identifier = (call_expression "(**(code **)(**(long **)(*param_1 + 0x10) + 0x1d0))()" (parenthesized_expression "(**(code **)(**(long **)(*param_1 + 0x10) + 0x1d0))" ( (pointer_expression "**(code **)(**(long **)(*param_1 + 0x10) + 0x1d0)" * (pointer_expression "*(code **)(**(long **)(*param_1 + 0x10) + 0x1d0)" * (cast_expression "(code **)(**(long **)(*param_1 + 0x10) + 0x1d0)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(**(long **)(*param_1 + 0x10) + 0x1d0)" ( (binary_expression "**(long **)(*param_1 + 0x10) + 0x1d0" (pointer_expression "**(long **)(*param_1 + 0x10)" * (pointer_expression "*(long **)(*param_1 + 0x10)" * (cast_expression "(long **)(*param_1 + 0x10)" ( (type_descriptor "long **" (sized_type_specifier "long" long) (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(*param_1 + 0x10)" ( (binary_expression "*param_1 + 0x10" (pointer_expression "*param_1" * identifier) + number_literal) ))))) + number_literal) ))))) )) (argument_list "()" ( )))) ;) }) (else_clause "else {\n                cVar6 = (*pcVar3)();\n              }" else (compound_statement "{\n                cVar6 = (*pcVar3)();\n              }" { (expression_statement "cVar6 = (*pcVar3)();" (assignment_expression "cVar6 = (*pcVar3)()" identifier = (call_expression "(*pcVar3)()" (parenthesized_expression "(*pcVar3)" ( (pointer_expression "*pcVar3" * identifier) )) (argument_list "()" ( )))) ;) }))) (expression_statement "uVar9 = *local_70;" (assignment_expression "uVar9 = *local_70" identifier = (pointer_expression "*local_70" * identifier)) ;) (if_statement "if (cVar6 != '\0') {\n                uVar9 = uVar9 >> 0x18 | (uVar9 & 0xff0000) >> 8 | (uVar9 & 0xff00) << 8 |\n                        uVar9 << 0x18;\n              }" if (parenthesized_expression "(cVar6 != '\0')" ( (binary_expression "cVar6 != '\0'" identifier != (char_literal "'\0'" ' escape_sequence ')) )) (compound_statement "{\n                uVar9 = uVar9 >> 0x18 | (uVar9 & 0xff0000) >> 8 | (uVar9 & 0xff00) << 8 |\n                        uVar9 << 0x18;\n              }" { (expression_statement "uVar9 = uVar9 >> 0x18 | (uVar9 & 0xff0000) >> 8 | (uVar9 & 0xff00) << 8 |\n                        uVar9 << 0x18;" (assignment_expression "uVar9 = uVar9 >> 0x18 | (uVar9 & 0xff0000) >> 8 | (uVar9 & 0xff00) << 8 |\n                        uVar9 << 0x18" identifier = (binary_expression "uVar9 >> 0x18 | (uVar9 & 0xff0000) >> 8 | (uVar9 & 0xff00) << 8 |\n                        uVar9 << 0x18" (binary_expression "uVar9 >> 0x18 | (uVar9 & 0xff0000) >> 8 | (uVar9 & 0xff00) << 8" (binary_expression "uVar9 >> 0x18 | (uVar9 & 0xff0000) >> 8" (binary_expression "uVar9 >> 0x18" identifier >> number_literal) | (binary_expression "(uVar9 & 0xff0000) >> 8" (parenthesized_expression "(uVar9 & 0xff0000)" ( (binary_expression "uVar9 & 0xff0000" identifier & number_literal) )) >> number_literal)) | (binary_expression "(uVar9 & 0xff00) << 8" (parenthesized_expression "(uVar9 & 0xff00)" ( (binary_expression "uVar9 & 0xff00" identifier & number_literal) )) << number_literal)) | (binary_expression "uVar9 << 0x18" identifier << number_literal))) ;) })) (expression_statement "local_60 = (uint *)(ulong)uVar9;" (assignment_expression "local_60 = (uint *)(ulong)uVar9" identifier = (cast_expression "(uint *)(ulong)uVar9" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (cast_expression "(ulong)uVar9" ( (type_descriptor "ulong" type_identifier) ) identifier))) ;) (expression_statement "local_70 = local_70 + 1;" (assignment_expression "local_70 = local_70 + 1" identifier = (binary_expression "local_70 + 1" identifier + number_literal)) ;) (goto_statement "goto LAB_00302d40;" goto statement_identifier ;) })) (expression_statement "pcVar3 = *(code **)(**(long **)(*param_1 + 0x10) + 0x18);" (assignment_expression "pcVar3 = *(code **)(**(long **)(*param_1 + 0x10) + 0x18)" identifier = (pointer_expression "*(code **)(**(long **)(*param_1 + 0x10) + 0x18)" * (cast_expression "(code **)(**(long **)(*param_1 + 0x10) + 0x18)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(**(long **)(*param_1 + 0x10) + 0x18)" ( (binary_expression "**(long **)(*param_1 + 0x10) + 0x18" (pointer_expression "**(long **)(*param_1 + 0x10)" * (pointer_expression "*(long **)(*param_1 + 0x10)" * (cast_expression "(long **)(*param_1 + 0x10)" ( (type_descriptor "long **" (sized_type_specifier "long" long) (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(*param_1 + 0x10)" ( (binary_expression "*param_1 + 0x10" (pointer_expression "*param_1" * identifier) + number_literal) ))))) + number_literal) ))))) ;) (if_statement "if (pcVar3 == FUN_001b8d10) {\n              cVar6 = (**(code **)(**(long **)(*param_1 + 0x10) + 0x1d0))();\n            }\n            else {\n              cVar6 = (*pcVar3)();\n            }" if (parenthesized_expression "(pcVar3 == FUN_001b8d10)" ( (binary_expression "pcVar3 == FUN_001b8d10" identifier == identifier) )) (compound_statement "{\n              cVar6 = (**(code **)(**(long **)(*param_1 + 0x10) + 0x1d0))();\n            }" { (expression_statement "cVar6 = (**(code **)(**(long **)(*param_1 + 0x10) + 0x1d0))();" (assignment_expression "cVar6 = (**(code **)(**(long **)(*param_1 + 0x10) + 0x1d0))()" identifier = (call_expression "(**(code **)(**(long **)(*param_1 + 0x10) + 0x1d0))()" (parenthesized_expression "(**(code **)(**(long **)(*param_1 + 0x10) + 0x1d0))" ( (pointer_expression "**(code **)(**(long **)(*param_1 + 0x10) + 0x1d0)" * (pointer_expression "*(code **)(**(long **)(*param_1 + 0x10) + 0x1d0)" * (cast_expression "(code **)(**(long **)(*param_1 + 0x10) + 0x1d0)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(**(long **)(*param_1 + 0x10) + 0x1d0)" ( (binary_expression "**(long **)(*param_1 + 0x10) + 0x1d0" (pointer_expression "**(long **)(*param_1 + 0x10)" * (pointer_expression "*(long **)(*param_1 + 0x10)" * (cast_expression "(long **)(*param_1 + 0x10)" ( (type_descriptor "long **" (sized_type_specifier "long" long) (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(*param_1 + 0x10)" ( (binary_expression "*param_1 + 0x10" (pointer_expression "*param_1" * identifier) + number_literal) ))))) + number_literal) ))))) )) (argument_list "()" ( )))) ;) }) (else_clause "else {\n              cVar6 = (*pcVar3)();\n            }" else (compound_statement "{\n              cVar6 = (*pcVar3)();\n            }" { (expression_statement "cVar6 = (*pcVar3)();" (assignment_expression "cVar6 = (*pcVar3)()" identifier = (call_expression "(*pcVar3)()" (parenthesized_expression "(*pcVar3)" ( (pointer_expression "*pcVar3" * identifier) )) (argument_list "()" ( )))) ;) }))) (expression_statement "uVar5 = (ushort)*local_70;" (assignment_expression "uVar5 = (ushort)*local_70" identifier = (binary_expression "(ushort)*local_70" (parenthesized_expression "(ushort)" ( identifier )) * identifier)) ;) (if_statement "if (cVar6 != '\0') {\n              uVar5 = CONCAT11((byte)*local_70,*(byte *)((long)local_70 + 1));\n            }" if (parenthesized_expression "(cVar6 != '\0')" ( (binary_expression "cVar6 != '\0'" identifier != (char_literal "'\0'" ' escape_sequence ')) )) (compound_statement "{\n              uVar5 = CONCAT11((byte)*local_70,*(byte *)((long)local_70 + 1));\n            }" { (expression_statement "uVar5 = CONCAT11((byte)*local_70,*(byte *)((long)local_70 + 1));" (assignment_expression "uVar5 = CONCAT11((byte)*local_70,*(byte *)((long)local_70 + 1))" identifier = (call_expression "CONCAT11((byte)*local_70,*(byte *)((long)local_70 + 1))" identifier (argument_list "((byte)*local_70,*(byte *)((long)local_70 + 1))" ( (binary_expression "(byte)*local_70" (parenthesized_expression "(byte)" ( identifier )) * identifier) , (pointer_expression "*(byte *)((long)local_70 + 1)" * (cast_expression "(byte *)((long)local_70 + 1)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((long)local_70 + 1)" ( (binary_expression "(long)local_70 + 1" (cast_expression "(long)local_70" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) identifier) + number_literal) )))) )))) ;) })) (expression_statement "local_70 = (uint *)((long)local_70 + 2);" (assignment_expression "local_70 = (uint *)((long)local_70 + 2)" identifier = (cast_expression "(uint *)((long)local_70 + 2)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((long)local_70 + 2)" ( (binary_expression "(long)local_70 + 2" (cast_expression "(long)local_70" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) identifier) + number_literal) )))) ;) (expression_statement "puStack_50 = (uint *)(ulong)uVar5;" (assignment_expression "puStack_50 = (uint *)(ulong)uVar5" identifier = (cast_expression "(uint *)(ulong)uVar5" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (cast_expression "(ulong)uVar5" ( (type_descriptor "ulong" type_identifier) ) identifier))) ;) }))))) (goto_statement "goto joined_r0x00302748;" goto statement_identifier ;) })) (if_statement "if (uVar8 == 10) {\n          puStack_50 = (uint *)((long)local_70 + 1);\n          uVar9 = *local_70;\n          local_70 = (uint *)((long)puStack_50 + (ulong)(byte)uVar9);\n          local_48 = (uint)(byte)uVar9;\n          goto joined_r0x00302748;\n        }" if (parenthesized_expression "(uVar8 == 10)" ( (binary_expression "uVar8 == 10" identifier == number_literal) )) (compound_statement "{\n          puStack_50 = (uint *)((long)local_70 + 1);\n          uVar9 = *local_70;\n          local_70 = (uint *)((long)puStack_50 + (ulong)(byte)uVar9);\n          local_48 = (uint)(byte)uVar9;\n          goto joined_r0x00302748;\n        }" { (expression_statement "puStack_50 = (uint *)((long)local_70 + 1);" (assignment_expression "puStack_50 = (uint *)((long)local_70 + 1)" identifier = (cast_expression "(uint *)((long)local_70 + 1)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((long)local_70 + 1)" ( (binary_expression "(long)local_70 + 1" (cast_expression "(long)local_70" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) identifier) + number_literal) )))) ;) (expression_statement "uVar9 = *local_70;" (assignment_expression "uVar9 = *local_70" identifier = (pointer_expression "*local_70" * identifier)) ;) (expression_statement "local_70 = (uint *)((long)puStack_50 + (ulong)(byte)uVar9);" (assignment_expression "local_70 = (uint *)((long)puStack_50 + (ulong)(byte)uVar9)" identifier = (cast_expression "(uint *)((long)puStack_50 + (ulong)(byte)uVar9)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((long)puStack_50 + (ulong)(byte)uVar9)" ( (binary_expression "(long)puStack_50 + (ulong)(byte)uVar9" (cast_expression "(long)puStack_50" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) identifier) + (cast_expression "(ulong)(byte)uVar9" ( (type_descriptor "ulong" type_identifier) ) (cast_expression "(byte)uVar9" ( (type_descriptor "byte" type_identifier) ) identifier))) )))) ;) (expression_statement "local_48 = (uint)(byte)uVar9;" (assignment_expression "local_48 = (uint)(byte)uVar9" identifier = (cast_expression "(uint)(byte)uVar9" ( (type_descriptor "uint" type_identifier) ) (cast_expression "(byte)uVar9" ( (type_descriptor "byte" type_identifier) ) identifier))) ;) (goto_statement "goto joined_r0x00302748;" goto statement_identifier ;) })) (if_statement "if (uVar8 < 0xb) {\n          if (uVar8 != 8) {\n            if (uVar8 != 9) {\n              return 0;\n            }\n            goto LAB_00302a09;\n          }\n          puStack_50 = local_70;\n          local_68 = strlen((char *)local_70);\n          local_70 = (uint *)((long)puVar11 + local_68 + 1);\n          if (uVar2 == 0x31) goto LAB_00302750;\n          if (0x31 < uVar2) {\n            if ((uVar2 != 0x6e) && (uVar2 != 0x2007)) goto LAB_00302750;\n            goto LAB_003029eb;\n          }\n          if ((uVar2 == 1) || (uVar2 != 3)) goto LAB_00302750;\n          goto LAB_003029c7;\n        }" if (parenthesized_expression "(uVar8 < 0xb)" ( (binary_expression "uVar8 < 0xb" identifier < number_literal) )) (compound_statement "{\n          if (uVar8 != 8) {\n            if (uVar8 != 9) {\n              return 0;\n            }\n            goto LAB_00302a09;\n          }\n          puStack_50 = local_70;\n          local_68 = strlen((char *)local_70);\n          local_70 = (uint *)((long)puVar11 + local_68 + 1);\n          if (uVar2 == 0x31) goto LAB_00302750;\n          if (0x31 < uVar2) {\n            if ((uVar2 != 0x6e) && (uVar2 != 0x2007)) goto LAB_00302750;\n            goto LAB_003029eb;\n          }\n          if ((uVar2 == 1) || (uVar2 != 3)) goto LAB_00302750;\n          goto LAB_003029c7;\n        }" { (if_statement "if (uVar8 != 8) {\n            if (uVar8 != 9) {\n              return 0;\n            }\n            goto LAB_00302a09;\n          }" if (parenthesized_expression "(uVar8 != 8)" ( (binary_expression "uVar8 != 8" identifier != number_literal) )) (compound_statement "{\n            if (uVar8 != 9) {\n              return 0;\n            }\n            goto LAB_00302a09;\n          }" { (if_statement "if (uVar8 != 9) {\n              return 0;\n            }" if (parenthesized_expression "(uVar8 != 9)" ( (binary_expression "uVar8 != 9" identifier != number_literal) )) (compound_statement "{\n              return 0;\n            }" { (return_statement "return 0;" return number_literal ;) })) (goto_statement "goto LAB_00302a09;" goto statement_identifier ;) })) (expression_statement "puStack_50 = local_70;" (assignment_expression "puStack_50 = local_70" identifier = identifier) ;) (expression_statement "local_68 = strlen((char *)local_70);" (assignment_expression "local_68 = strlen((char *)local_70)" identifier = (call_expression "strlen((char *)local_70)" identifier (argument_list "((char *)local_70)" ( (cast_expression "(char *)local_70" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) identifier) )))) ;) (expression_statement "local_70 = (uint *)((long)puVar11 + local_68 + 1);" (assignment_expression "local_70 = (uint *)((long)puVar11 + local_68 + 1)" identifier = (cast_expression "(uint *)((long)puVar11 + local_68 + 1)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((long)puVar11 + local_68 + 1)" ( (binary_expression "(long)puVar11 + local_68 + 1" (binary_expression "(long)puVar11 + local_68" (cast_expression "(long)puVar11" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) identifier) + identifier) + number_literal) )))) ;) (if_statement "if (uVar2 == 0x31) goto LAB_00302750;" if (parenthesized_expression "(uVar2 == 0x31)" ( (binary_expression "uVar2 == 0x31" identifier == number_literal) )) (goto_statement "goto LAB_00302750;" goto statement_identifier ;)) (if_statement "if (0x31 < uVar2) {\n            if ((uVar2 != 0x6e) && (uVar2 != 0x2007)) goto LAB_00302750;\n            goto LAB_003029eb;\n          }" if (parenthesized_expression "(0x31 < uVar2)" ( (binary_expression "0x31 < uVar2" number_literal < identifier) )) (compound_statement "{\n            if ((uVar2 != 0x6e) && (uVar2 != 0x2007)) goto LAB_00302750;\n            goto LAB_003029eb;\n          }" { (if_statement "if ((uVar2 != 0x6e) && (uVar2 != 0x2007)) goto LAB_00302750;" if (parenthesized_expression "((uVar2 != 0x6e) && (uVar2 != 0x2007))" ( (binary_expression "(uVar2 != 0x6e) && (uVar2 != 0x2007)" (parenthesized_expression "(uVar2 != 0x6e)" ( (binary_expression "uVar2 != 0x6e" identifier != number_literal) )) && (parenthesized_expression "(uVar2 != 0x2007)" ( (binary_expression "uVar2 != 0x2007" identifier != number_literal) ))) )) (goto_statement "goto LAB_00302750;" goto statement_identifier ;)) (goto_statement "goto LAB_003029eb;" goto statement_identifier ;) })) (if_statement "if ((uVar2 == 1) || (uVar2 != 3)) goto LAB_00302750;" if (parenthesized_expression "((uVar2 == 1) || (uVar2 != 3))" ( (binary_expression "(uVar2 == 1) || (uVar2 != 3)" (parenthesized_expression "(uVar2 == 1)" ( (binary_expression "uVar2 == 1" identifier == number_literal) )) || (parenthesized_expression "(uVar2 != 3)" ( (binary_expression "uVar2 != 3" identifier != number_literal) ))) )) (goto_statement "goto LAB_00302750;" goto statement_identifier ;)) (goto_statement "goto LAB_003029c7;" goto statement_identifier ;) })) (if_statement "if (uVar8 < 0xd) {\n          uVar9 = *local_70;\n          local_70 = (uint *)((long)local_70 + 1);\n          puStack_50 = (uint *)(ulong)(byte)uVar9;\n          goto LAB_00302f92;\n        }" if (parenthesized_expression "(uVar8 < 0xd)" ( (binary_expression "uVar8 < 0xd" identifier < number_literal) )) (compound_statement "{\n          uVar9 = *local_70;\n          local_70 = (uint *)((long)local_70 + 1);\n          puStack_50 = (uint *)(ulong)(byte)uVar9;\n          goto LAB_00302f92;\n        }" { (expression_statement "uVar9 = *local_70;" (assignment_expression "uVar9 = *local_70" identifier = (pointer_expression "*local_70" * identifier)) ;) (expression_statement "local_70 = (uint *)((long)local_70 + 1);" (assignment_expression "local_70 = (uint *)((long)local_70 + 1)" identifier = (cast_expression "(uint *)((long)local_70 + 1)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((long)local_70 + 1)" ( (binary_expression "(long)local_70 + 1" (cast_expression "(long)local_70" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) identifier) + number_literal) )))) ;) (expression_statement "puStack_50 = (uint *)(ulong)(byte)uVar9;" (assignment_expression "puStack_50 = (uint *)(ulong)(byte)uVar9" identifier = (cast_expression "(uint *)(ulong)(byte)uVar9" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (cast_expression "(ulong)(byte)uVar9" ( (type_descriptor "ulong" type_identifier) ) (cast_expression "(byte)uVar9" ( (type_descriptor "byte" type_identifier) ) identifier)))) ;) (goto_statement "goto LAB_00302f92;" goto statement_identifier ;) })) (expression_statement "bVar1 = (byte)*local_70;" (assignment_expression "bVar1 = (byte)*local_70" identifier = (binary_expression "(byte)*local_70" (parenthesized_expression "(byte)" ( identifier )) * identifier)) ;) (expression_statement "puVar11 = (uint *)((long)local_70 + 1);" (assignment_expression "puVar11 = (uint *)((long)local_70 + 1)" identifier = (cast_expression "(uint *)((long)local_70 + 1)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((long)local_70 + 1)" ( (binary_expression "(long)local_70 + 1" (cast_expression "(long)local_70" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) identifier) + number_literal) )))) ;) (if_statement "if ((char)bVar1 < '\0') {\n          puStack_50 = (uint *)FUN_00211340(puVar11,&local_68);\n          puVar11 = (uint *)(local_68 + (long)local_70);\n        }\n        else {\n          local_68 = 1;\n          puStack_50 = (uint *)(ulong)bVar1;\n          if ((bVar1 & 0x40) != 0) {\n            puStack_50 = (uint *)((ulong)bVar1 | 0xffffffffffffff80);\n          }\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          puStack_50 = (uint *)FUN_00211340(puVar11,&local_68);\n          puVar11 = (uint *)(local_68 + (long)local_70);\n        }" { (expression_statement "puStack_50 = (uint *)FUN_00211340(puVar11,&local_68);" (assignment_expression "puStack_50 = (uint *)FUN_00211340(puVar11,&local_68)" identifier = (cast_expression "(uint *)FUN_00211340(puVar11,&local_68)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (call_expression "FUN_00211340(puVar11,&local_68)" identifier (argument_list "(puVar11,&local_68)" ( identifier , (pointer_expression "&local_68" & identifier) ))))) ;) (expression_statement "puVar11 = (uint *)(local_68 + (long)local_70);" (assignment_expression "puVar11 = (uint *)(local_68 + (long)local_70)" identifier = (cast_expression "(uint *)(local_68 + (long)local_70)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(local_68 + (long)local_70)" ( (binary_expression "local_68 + (long)local_70" identifier + (cast_expression "(long)local_70" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) identifier)) )))) ;) }) (else_clause "else {\n          local_68 = 1;\n          puStack_50 = (uint *)(ulong)bVar1;\n          if ((bVar1 & 0x40) != 0) {\n            puStack_50 = (uint *)((ulong)bVar1 | 0xffffffffffffff80);\n          }\n        }" else (compound_statement "{\n          local_68 = 1;\n          puStack_50 = (uint *)(ulong)bVar1;\n          if ((bVar1 & 0x40) != 0) {\n            puStack_50 = (uint *)((ulong)bVar1 | 0xffffffffffffff80);\n          }\n        }" { (expression_statement "local_68 = 1;" (assignment_expression "local_68 = 1" identifier = number_literal) ;) (expression_statement "puStack_50 = (uint *)(ulong)bVar1;" (assignment_expression "puStack_50 = (uint *)(ulong)bVar1" identifier = (cast_expression "(uint *)(ulong)bVar1" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (cast_expression "(ulong)bVar1" ( (type_descriptor "ulong" type_identifier) ) identifier))) ;) (if_statement "if ((bVar1 & 0x40) != 0) {\n            puStack_50 = (uint *)((ulong)bVar1 | 0xffffffffffffff80);\n          }" if (parenthesized_expression "((bVar1 & 0x40) != 0)" ( (binary_expression "(bVar1 & 0x40) != 0" (parenthesized_expression "(bVar1 & 0x40)" ( (binary_expression "bVar1 & 0x40" identifier & number_literal) )) != number_literal) )) (compound_statement "{\n            puStack_50 = (uint *)((ulong)bVar1 | 0xffffffffffffff80);\n          }" { (expression_statement "puStack_50 = (uint *)((ulong)bVar1 | 0xffffffffffffff80);" (assignment_expression "puStack_50 = (uint *)((ulong)bVar1 | 0xffffffffffffff80)" identifier = (cast_expression "(uint *)((ulong)bVar1 | 0xffffffffffffff80)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((ulong)bVar1 | 0xffffffffffffff80)" ( (binary_expression "(ulong)bVar1 | 0xffffffffffffff80" (cast_expression "(ulong)bVar1" ( (type_descriptor "ulong" type_identifier) ) identifier) | number_literal) )))) ;) })) }))) (expression_statement "local_70 = puVar11;" (assignment_expression "local_70 = puVar11" identifier = identifier) ;) (if_statement "if ((uVar2 == 0x31) || (uVar2 < 0x32)) goto LAB_00302750;" if (parenthesized_expression "((uVar2 == 0x31) || (uVar2 < 0x32))" ( (binary_expression "(uVar2 == 0x31) || (uVar2 < 0x32)" (parenthesized_expression "(uVar2 == 0x31)" ( (binary_expression "uVar2 == 0x31" identifier == number_literal) )) || (parenthesized_expression "(uVar2 < 0x32)" ( (binary_expression "uVar2 < 0x32" identifier < number_literal) ))) )) (goto_statement "goto LAB_00302750;" goto statement_identifier ;)) (if_statement "if ((uVar2 == 0x6e) || (uVar2 == 0x2007)) goto LAB_00302fbe;" if (parenthesized_expression "((uVar2 == 0x6e) || (uVar2 == 0x2007))" ( (binary_expression "(uVar2 == 0x6e) || (uVar2 == 0x2007)" (parenthesized_expression "(uVar2 == 0x6e)" ( (binary_expression "uVar2 == 0x6e" identifier == number_literal) )) || (parenthesized_expression "(uVar2 == 0x2007)" ( (binary_expression "uVar2 == 0x2007" identifier == number_literal) ))) )) (goto_statement "goto LAB_00302fbe;" goto statement_identifier ;)) (expression_statement "puVar16 = (undefined8 *)param_1[8];" (assignment_expression "puVar16 = (undefined8 *)param_1[8]" identifier = (cast_expression "(undefined8 *)param_1[8]" ( (type_descriptor "undefined8 *" type_identifier (abstract_pointer_declarator "*" *)) ) (subscript_expression "param_1[8]" identifier [ number_literal ]))) ;) (if_statement "if (puVar16 == (undefined8 *)param_1[9]) goto LAB_003028c0;" if (parenthesized_expression "(puVar16 == (undefined8 *)param_1[9])" ( (binary_expression "puVar16 == (undefined8 *)param_1[9]" identifier == (cast_expression "(undefined8 *)param_1[9]" ( (type_descriptor "undefined8 *" type_identifier (abstract_pointer_declarator "*" *)) ) (subscript_expression "param_1[9]" identifier [ number_literal ]))) )) (goto_statement "goto LAB_003028c0;" goto statement_identifier ;)) (labeled_statement "LAB_0030275e:\n        *puVar16 = CONCAT44(uStack_54,local_58);" statement_identifier : (expression_statement "*puVar16 = CONCAT44(uStack_54,local_58);" (assignment_expression "*puVar16 = CONCAT44(uStack_54,local_58)" (pointer_expression "*puVar16" * identifier) = (call_expression "CONCAT44(uStack_54,local_58)" identifier (argument_list "(uStack_54,local_58)" ( identifier , identifier )))) ;)) (expression_statement "puVar16[1] = puStack_50;" (assignment_expression "puVar16[1] = puStack_50" (subscript_expression "puVar16[1]" identifier [ number_literal ]) = identifier) ;) (expression_statement "puVar16[2] = CONCAT44(uStack_44,local_48);" (assignment_expression "puVar16[2] = CONCAT44(uStack_44,local_48)" (subscript_expression "puVar16[2]" identifier [ number_literal ]) = (call_expression "CONCAT44(uStack_44,local_48)" identifier (argument_list "(uStack_44,local_48)" ( identifier , identifier )))) ;) (expression_statement "param_1[8] = (long)(puVar16 + 3);" (assignment_expression "param_1[8] = (long)(puVar16 + 3)" (subscript_expression "param_1[8]" identifier [ number_literal ]) = (cast_expression "(long)(puVar16 + 3)" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) (parenthesized_expression "(puVar16 + 3)" ( (binary_expression "puVar16 + 3" identifier + number_literal) )))) ;) }))) (expression_statement "lVar20 = lVar20 + 8;" (assignment_expression "lVar20 = lVar20 + 8" identifier = (binary_expression "lVar20 + 8" identifier + number_literal)) ;) (expression_statement "lVar10 = param_1[6];" (assignment_expression "lVar10 = param_1[6]" identifier = (subscript_expression "param_1[6]" identifier [ number_literal ])) ;) }) while (parenthesized_expression "(lVar20 != (ulong)(iVar13 - 1) * 8 + 8)" ( (binary_expression "lVar20 != (ulong)(iVar13 - 1) * 8 + 8" identifier != (binary_expression "(ulong)(iVar13 - 1) * 8 + 8" (binary_expression "(ulong)(iVar13 - 1) * 8" (call_expression "(ulong)(iVar13 - 1)" (parenthesized_expression "(ulong)" ( identifier )) (argument_list "(iVar13 - 1)" ( (binary_expression "iVar13 - 1" identifier - number_literal) ))) * number_literal) + number_literal)) )) ;) }))) (if_statement "if (lVar10 == 0) {\n                    \n    FUN_001e9890("../../gold/dwarf_reader.h",0x206,"has_children");\n  }" if (parenthesized_expression "(lVar10 == 0)" ( (binary_expression "lVar10 == 0" identifier == number_literal) )) (compound_statement "{\n                    \n    FUN_001e9890("../../gold/dwarf_reader.h",0x206,"has_children");\n  }" { (expression_statement "FUN_001e9890("../../gold/dwarf_reader.h",0x206,"has_children");" (call_expression "FUN_001e9890("../../gold/dwarf_reader.h",0x206,"has_children")" identifier (argument_list "("../../gold/dwarf_reader.h",0x206,"has_children")" ( (string_literal ""../../gold/dwarf_reader.h"" " string_content ") , number_literal , (string_literal ""has_children"" " string_content ") ))) ;) })) (expression_statement "lVar18 = param_1[2];" (assignment_expression "lVar18 = param_1[2]" identifier = (subscript_expression "param_1[2]" identifier [ number_literal ])) ;) (labeled_statement "LAB_00302797:\n  pbVar15 = (byte *)((long)local_70 + (lVar18 - lVar12));" statement_identifier : (expression_statement "pbVar15 = (byte *)((long)local_70 + (lVar18 - lVar12));" (assignment_expression "pbVar15 = (byte *)((long)local_70 + (lVar18 - lVar12))" identifier = (cast_expression "(byte *)((long)local_70 + (lVar18 - lVar12))" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((long)local_70 + (lVar18 - lVar12))" ( (binary_expression "(long)local_70 + (lVar18 - lVar12)" (cast_expression "(long)local_70" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) identifier) + (parenthesized_expression "(lVar18 - lVar12)" ( (binary_expression "lVar18 - lVar12" identifier - identifier) ))) )))) ;)) (if_statement "if ((*(byte *)(lVar10 + 4) & 1) == 0) {\n    param_1[5] = (long)pbVar15;\n  }\n  else {\n    param_1[4] = (long)pbVar15;\n  }" if (parenthesized_expression "((*(byte *)(lVar10 + 4) & 1) == 0)" ( (binary_expression "(*(byte *)(lVar10 + 4) & 1) == 0" (parenthesized_expression "(*(byte *)(lVar10 + 4) & 1)" ( (binary_expression "*(byte *)(lVar10 + 4) & 1" (pointer_expression "*(byte *)(lVar10 + 4)" * (cast_expression "(byte *)(lVar10 + 4)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(lVar10 + 4)" ( (binary_expression "lVar10 + 4" identifier + number_literal) )))) & number_literal) )) == number_literal) )) (compound_statement "{\n    param_1[5] = (long)pbVar15;\n  }" { (expression_statement "param_1[5] = (long)pbVar15;" (assignment_expression "param_1[5] = (long)pbVar15" (subscript_expression "param_1[5]" identifier [ number_literal ]) = (cast_expression "(long)pbVar15" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) identifier)) ;) }) (else_clause "else {\n    param_1[4] = (long)pbVar15;\n  }" else (compound_statement "{\n    param_1[4] = (long)pbVar15;\n  }" { (expression_statement "param_1[4] = (long)pbVar15;" (assignment_expression "param_1[4] = (long)pbVar15" (subscript_expression "param_1[4]" identifier [ number_literal ]) = (cast_expression "(long)pbVar15" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) identifier)) ;) }))) (expression_statement "*(undefined1 *)(param_1 + 10) = 1;" (assignment_expression "*(undefined1 *)(param_1 + 10) = 1" (pointer_expression "*(undefined1 *)(param_1 + 10)" * (cast_expression "(undefined1 *)(param_1 + 10)" ( (type_descriptor "undefined1 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 10)" ( (binary_expression "param_1 + 10" identifier + number_literal) )))) = number_literal) ;) (return_statement "return 1;" return number_literal ;) })))
(translation_unit (function_definition TYPE (function_declarator IDENT (parameter_list ( (parameter_declaration (sized_type_specifier long) (pointer_declarator * IDENT)) ))) (compound_statement { (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration (sized_type_specifier long) IDENT ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration (sized_type_specifier long) IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration (sized_type_specifier long) (pointer_declarator * IDENT) ;) (declaration (sized_type_specifier long) IDENT ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE IDENT ;) (declaration (sized_type_specifier long) IDENT ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE IDENT ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (expression_statement (assignment_expression IDENT = (subscript_expression IDENT [ LIT ])) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT == LIT) )) (compound_statement { (expression_statement (call_expression IDENT (argument_list ( (string_literal " string_content ") , LIT , (string_literal " string_content ") ))) ;) })) (expression_statement (assignment_expression IDENT = (pointer_expression * IDENT)) ;) (expression_statement (assignment_expression IDENT = (subscript_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) )))) + 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 (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) ))))) + (pointer_expression * (cast_expression ( (type_descriptor (sized_type_specifier long) (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ))) < (binary_expression IDENT + LIT)) )) (compound_statement { (expression_statement (call_expression IDENT (argument_list ( ))) ;) (return_statement return LIT ;) })) (if_statement if (parenthesized_expression ( (binary_expression IDENT == LIT) )) (compound_statement { (return_statement return LIT ;) })) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (subscript_expression IDENT [ LIT ]))) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (subscript_expression IDENT [ LIT ]) + IDENT) )))) ;) (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 = (cast_expression ( (type_descriptor TYPE) ) IDENT)) ;) (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 (parenthesized_expression ( (binary_expression (binary_expression (subscript_expression IDENT [ LIT ]) - (cast_expression ( (type_descriptor (sized_type_specifier long)) ) IDENT)) >> LIT) )) * LIT) ))) < IDENT) )) (compound_statement { (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (subscript_expression IDENT [ LIT ]))) ;) (expression_statement (assignment_expression IDENT = (binary_expression (cast_expression ( (type_descriptor (sized_type_specifier long)) ) IDENT) - (cast_expression ( (type_descriptor (sized_type_specifier long)) ) IDENT))) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT == LIT) )) (compound_statement { (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT)) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) }) (else_clause else (compound_statement { (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (call_expression IDENT (argument_list ( (binary_expression IDENT * LIT) ))))) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (subscript_expression IDENT [ LIT ]))) ;) }))) (if_statement if (parenthesized_expression ( (binary_expression IDENT != IDENT) )) (compound_statement { (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( IDENT , IDENT , IDENT )))) ;) })) (if_statement if (parenthesized_expression ( (binary_expression IDENT != (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT)) )) (compound_statement { (expression_statement (call_expression IDENT (argument_list ( IDENT ))) ;) })) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = (cast_expression ( (type_descriptor (sized_type_specifier long)) ) IDENT)) ;) (expression_statement (assignment_expression IDENT = (subscript_expression IDENT [ LIT ])) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = (binary_expression IDENT + (cast_expression ( (type_descriptor (sized_type_specifier long)) ) IDENT))) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = (cast_expression ( (type_descriptor (sized_type_specifier long)) ) (parenthesized_expression ( (binary_expression (binary_expression IDENT * LIT) + (cast_expression ( (type_descriptor (sized_type_specifier long)) ) IDENT)) )))) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT != LIT) )) (goto_statement goto statement_identifier ;)) }) (else_clause else (compound_statement { (if_statement if (parenthesized_expression ( (binary_expression IDENT == LIT) )) (goto_statement goto statement_identifier ;)) (labeled_statement statement_identifier : (expression_statement (assignment_expression IDENT = LIT) ;)) (do_statement do (compound_statement { (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor (sized_type_specifier long) (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) + IDENT) )))) ;) (expression_statement (assignment_expression IDENT = (subscript_expression IDENT [ LIT ])) ;) (expression_statement (assignment_expression IDENT = (pointer_expression * IDENT)) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT == LIT) )) (compound_statement { (expression_statement (assignment_expression IDENT = (binary_expression (parenthesized_expression ( IDENT )) * IDENT)) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE) ) IDENT)) ;) (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 ( (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor (sized_type_specifier long)) ) IDENT) + LIT) ))) , (pointer_expression & IDENT) , IDENT )))) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + (cast_expression ( (type_descriptor (sized_type_specifier long)) ) IDENT)) )))) ;) }) (else_clause else (compound_statement { (expression_statement (assignment_expression IDENT = LIT) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor (sized_type_specifier long)) ) IDENT) + LIT) )))) ;) }))) })) (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor (sized_type_specifier long)) ) IDENT) + (parenthesized_expression ( (binary_expression (subscript_expression IDENT [ LIT ]) - IDENT) ))) )))) ;) (expression_statement (assignment_expression IDENT = LIT) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT == LIT) )) (compound_statement { (expression_statement (assignment_expression IDENT = (pointer_expression * IDENT)) ;) (if_statement if (parenthesized_expression ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) == LIT) )) (compound_statement { (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( IDENT , (pointer_expression & IDENT) )))) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (cast_expression ( (type_descriptor TYPE) ) IDENT))) ;) }) (else_clause else (compound_statement { (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression (pointer_expression * (pointer_expression * (cast_expression ( (type_descriptor (sized_type_specifier long) (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) + LIT) ))))) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT == IDENT) )) (compound_statement { (expression_statement (assignment_expression IDENT = (call_expression (parenthesized_expression ( (pointer_expression * (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression (pointer_expression * (pointer_expression * (cast_expression ( (type_descriptor (sized_type_specifier long) (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) + LIT) ))))) )) (argument_list ( )))) ;) }) (else_clause else (compound_statement { (expression_statement (assignment_expression IDENT = (call_expression (parenthesized_expression ( (pointer_expression * IDENT) )) (argument_list ( )))) ;) }))) (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) IDENT))) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT != (char_literal ' escape_sequence ')) )) (compound_statement { (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (binary_expression (binary_expression (binary_expression (binary_expression (binary_expression (binary_expression (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) >> LIT) | (binary_expression (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) & LIT) )) >> LIT)) | (binary_expression (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) & LIT) )) >> LIT)) | (binary_expression (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) & LIT) )) >> LIT)) | (binary_expression (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) & LIT) )) << LIT)) | (binary_expression (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) & LIT) )) << LIT)) | (binary_expression (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) & LIT) )) << LIT)) | (binary_expression (cast_expression ( (type_descriptor (sized_type_specifier long)) ) IDENT) << LIT)) )))) ;) })) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) }))) (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( (pointer_expression * IDENT) , IDENT , (pointer_expression & IDENT) )))) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT != LIT) )) (compound_statement { (if_statement if (parenthesized_expression ( (binary_expression IDENT < LIT) )) (compound_statement { (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression IDENT != LIT) )) && (parenthesized_expression ( (binary_expression IDENT == LIT) ))) )) (compound_statement { (labeled_statement statement_identifier : (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = IDENT) ;)) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = (cast_expression ( (type_descriptor (sized_type_specifier long)) ) IDENT)) ;) })) }) (else_clause else (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression IDENT == LIT) )) || (parenthesized_expression ( (binary_expression IDENT == LIT) ))) )) (compound_statement { (labeled_statement statement_identifier : (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = IDENT) ;)) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = (cast_expression ( (type_descriptor (sized_type_specifier long)) ) IDENT)) ;) })))) })) (labeled_statement statement_identifier : (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (subscript_expression IDENT [ LIT ]))) ;)) (if_statement if (parenthesized_expression ( (binary_expression IDENT != (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (subscript_expression IDENT [ LIT ]))) )) (goto_statement goto statement_identifier ;)) (labeled_statement statement_identifier : (expression_statement (call_expression IDENT (argument_list ( (binary_expression IDENT + LIT) , IDENT , (pointer_expression & IDENT) ))) ;)) }) (else_clause else (compound_statement { (if_statement if (parenthesized_expression ( (binary_expression LIT < IDENT) )) (compound_statement { (if_statement if (parenthesized_expression ( (binary_expression IDENT == LIT) )) (compound_statement { (expression_statement (assignment_expression IDENT = (binary_expression (parenthesized_expression ( IDENT )) * IDENT)) ;) (if_statement if (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) < (char_literal ' escape_sequence ')) )) (compound_statement { (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (call_expression IDENT (argument_list ( (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor (sized_type_specifier long)) ) IDENT) + LIT) ))) , (pointer_expression & IDENT) , IDENT ))))) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + (cast_expression ( (type_descriptor (sized_type_specifier long)) ) IDENT)) )))) ;) }) (else_clause else (compound_statement { (expression_statement (assignment_expression IDENT = LIT) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor (sized_type_specifier long)) ) IDENT) + LIT) )))) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (cast_expression ( (type_descriptor TYPE) ) IDENT))) ;) }))) (labeled_statement statement_identifier : (if_statement if (parenthesized_expression ( (binary_expression IDENT != LIT) )) (compound_statement { (if_statement if (parenthesized_expression ( (binary_expression IDENT < LIT) )) (compound_statement { (labeled_statement statement_identifier : (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression IDENT == LIT) )) && (parenthesized_expression ( (binary_expression IDENT == LIT) ))) )) (compound_statement { (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = (cast_expression ( (type_descriptor (sized_type_specifier long)) ) IDENT)) ;) }))) (goto_statement goto statement_identifier ;) })) (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression IDENT != LIT) )) && (parenthesized_expression ( (binary_expression IDENT != LIT) ))) )) (compound_statement { (labeled_statement statement_identifier : (if_statement if (parenthesized_expression ( (binary_expression IDENT == LIT) )) (compound_statement { (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = (cast_expression ( (type_descriptor (sized_type_specifier long)) ) IDENT)) ;) }))) (goto_statement goto statement_identifier ;) })) (labeled_statement statement_identifier : (if_statement if (parenthesized_expression ( (binary_expression IDENT == LIT) )) (compound_statement { (labeled_statement statement_identifier : (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = (cast_expression ( (type_descriptor (sized_type_specifier long)) ) IDENT)) ;)) }) (else_clause else (compound_statement { (labeled_statement statement_identifier : (if_statement if (parenthesized_expression ( (binary_expression IDENT == LIT) )) (goto_statement goto statement_identifier ;))) })))) (goto_statement goto statement_identifier ;) }))) }) (else_clause else (compound_statement { (if_statement if (parenthesized_expression ( (binary_expression LIT < IDENT) )) (compound_statement { (if_statement if (parenthesized_expression ( (binary_expression IDENT != LIT) )) (compound_statement { (if_statement if (parenthesized_expression ( (binary_expression IDENT < LIT) )) (compound_statement { (if_statement if (parenthesized_expression ( (binary_expression IDENT == LIT) )) (compound_statement { (expression_statement (assignment_expression IDENT = (pointer_expression * IDENT)) ;) (if_statement if (parenthesized_expression ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) == LIT) )) (compound_statement { (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( IDENT , (pointer_expression & IDENT) )))) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (cast_expression ( (type_descriptor TYPE) ) IDENT))) ;) }) (else_clause else (compound_statement { (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor (sized_type_specifier long) (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) (labeled_statement statement_identifier : (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression (pointer_expression * IDENT) + LIT) ))))) ;)) (if_statement if (parenthesized_expression ( (binary_expression IDENT == IDENT) )) (compound_statement { (expression_statement (assignment_expression IDENT = (call_expression (parenthesized_expression ( (pointer_expression * (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression (pointer_expression * IDENT) + LIT) ))))) )) (argument_list ( )))) ;) }) (else_clause else (compound_statement { (expression_statement (assignment_expression IDENT = (call_expression (parenthesized_expression ( (pointer_expression * IDENT) )) (argument_list ( )))) ;) }))) (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) IDENT))) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT != (char_literal ' escape_sequence ')) )) (compound_statement { (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (binary_expression (binary_expression (binary_expression (binary_expression (binary_expression (binary_expression (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) >> LIT) | (binary_expression (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) & LIT) )) >> LIT)) | (binary_expression (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) & LIT) )) >> LIT)) | (binary_expression (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) & LIT) )) >> LIT)) | (binary_expression (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) & LIT) )) << LIT)) | (binary_expression (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) & LIT) )) << LIT)) | (binary_expression (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) & LIT) )) << LIT)) | (binary_expression (cast_expression ( (type_descriptor (sized_type_specifier long)) ) IDENT) << LIT)) )))) ;) })) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) }))) (labeled_statement statement_identifier : (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( (pointer_expression * IDENT) , IDENT , (pointer_expression & IDENT) )))) ;)) (expression_statement (assignment_expression IDENT = IDENT) ;) (goto_statement goto statement_identifier ;) })) (if_statement if (parenthesized_expression ( (binary_expression IDENT != LIT) )) (compound_statement { (return_statement return LIT ;) })) (labeled_statement statement_identifier : (expression_statement (assignment_expression IDENT = (binary_expression (parenthesized_expression ( IDENT )) * IDENT)) ;)) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE) ) IDENT)) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor (sized_type_specifier long)) ) 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 = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor (sized_type_specifier long)) ) IDENT) + IDENT) )))) ;) }) (else_clause else (compound_statement { (expression_statement (assignment_expression IDENT = LIT) ;) }))) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (binary_expression (cast_expression ( (type_descriptor (sized_type_specifier long)) ) IDENT) + IDENT) + IDENT) )))) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) }) (else_clause else (compound_statement { (if_statement if (parenthesized_expression ( (binary_expression IDENT == LIT) )) (compound_statement { (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression (pointer_expression * (pointer_expression * (cast_expression ( (type_descriptor (sized_type_specifier long) (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression (pointer_expression * IDENT) + LIT) ))))) + LIT) ))))) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT == IDENT) )) (compound_statement { (expression_statement (assignment_expression IDENT = (call_expression (parenthesized_expression ( (pointer_expression * (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression (pointer_expression * (pointer_expression * (cast_expression ( (type_descriptor (sized_type_specifier long) (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression (pointer_expression * IDENT) + LIT) ))))) + LIT) ))))) )) (argument_list ( )))) ;) }) (else_clause else (compound_statement { (expression_statement (assignment_expression IDENT = (call_expression (parenthesized_expression ( (pointer_expression * IDENT) )) (argument_list ( )))) ;) }))) (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) IDENT))) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT != (char_literal ' escape_sequence ')) )) (compound_statement { (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (binary_expression (binary_expression (binary_expression (binary_expression (binary_expression (binary_expression (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) >> LIT) | (binary_expression (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) & LIT) )) >> LIT)) | (binary_expression (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) & LIT) )) >> LIT)) | (binary_expression (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) & LIT) )) >> LIT)) | (binary_expression (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) & LIT) )) << LIT)) | (binary_expression (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) & LIT) )) << LIT)) | (binary_expression (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) & LIT) )) << LIT)) | (binary_expression (cast_expression ( (type_descriptor (sized_type_specifier long)) ) IDENT) << LIT)) )))) ;) })) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) (goto_statement goto statement_identifier ;) })) (if_statement if (parenthesized_expression ( (binary_expression IDENT < LIT) )) (compound_statement { (return_statement return LIT ;) })) (if_statement if (parenthesized_expression ( (binary_expression LIT < (binary_expression IDENT - LIT)) )) (compound_statement { (return_statement return LIT ;) })) (labeled_statement statement_identifier : (expression_statement (assignment_expression IDENT = (binary_expression (parenthesized_expression ( IDENT )) * IDENT)) ;)) (if_statement if (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) < (char_literal ' escape_sequence ')) )) (compound_statement { (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (call_expression IDENT (argument_list ( (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor (sized_type_specifier long)) ) IDENT) + LIT) ))) , (pointer_expression & IDENT) , IDENT ))))) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + (cast_expression ( (type_descriptor (sized_type_specifier long)) ) IDENT)) )))) ;) }) (else_clause else (compound_statement { (expression_statement (assignment_expression IDENT = LIT) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor (sized_type_specifier long)) ) IDENT) + LIT) )))) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (cast_expression ( (type_descriptor TYPE) ) IDENT))) ;) }))) }))) (labeled_statement statement_identifier : (if_statement if (parenthesized_expression ( (binary_expression IDENT == LIT) )) (goto_statement goto statement_identifier ;))) (if_statement if (parenthesized_expression ( (binary_expression LIT < IDENT) )) (compound_statement { (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression IDENT == LIT) )) || (parenthesized_expression ( (binary_expression IDENT == LIT) ))) )) (goto_statement goto statement_identifier ;)) (goto_statement goto statement_identifier ;) })) (goto_statement goto statement_identifier ;) })) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT)) ;) (labeled_statement statement_identifier : (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression IDENT == LIT) )) || (parenthesized_expression ( (binary_expression LIT < IDENT) ))) )) || (parenthesized_expression ( (binary_expression IDENT != LIT) ))) )) (goto_statement goto statement_identifier ;))) (labeled_statement statement_identifier : (if_statement if (parenthesized_expression ( (binary_expression IDENT == LIT) )) (compound_statement { (labeled_statement statement_identifier : (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = (cast_expression ( (type_descriptor (sized_type_specifier long)) ) IDENT)) ;)) }) (else_clause else (if_statement if (parenthesized_expression ( (binary_expression IDENT == LIT) )) (goto_statement goto statement_identifier ;))))) (goto_statement goto statement_identifier ;) })) (if_statement if (parenthesized_expression ( (binary_expression IDENT != LIT) )) (compound_statement { (if_statement if (parenthesized_expression ( (binary_expression LIT < IDENT) )) (compound_statement { (if_statement if (parenthesized_expression ( (binary_expression IDENT == LIT) )) (compound_statement { (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( (pointer_expression * IDENT) , (pointer_expression & IDENT) )))) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (cast_expression ( (type_descriptor TYPE) ) IDENT))) ;) (goto_statement goto statement_identifier ;) })) (if_statement if (parenthesized_expression ( (binary_expression LIT < IDENT) )) (compound_statement { (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor (sized_type_specifier long) (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression (pointer_expression * IDENT) + LIT) ))))) ;) (goto_statement goto statement_identifier ;) })) (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression (pointer_expression * (pointer_expression * (cast_expression ( (type_descriptor (sized_type_specifier long) (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression (pointer_expression * IDENT) + LIT) ))))) + LIT) ))))) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT == IDENT) )) (compound_statement { (expression_statement (assignment_expression IDENT = (call_expression (parenthesized_expression ( (pointer_expression * (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression (pointer_expression * (pointer_expression * (cast_expression ( (type_descriptor (sized_type_specifier long) (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression (pointer_expression * IDENT) + LIT) ))))) + LIT) ))))) )) (argument_list ( )))) ;) }) (else_clause else (compound_statement { (expression_statement (assignment_expression IDENT = (call_expression (parenthesized_expression ( (pointer_expression * IDENT) )) (argument_list ( )))) ;) }))) (expression_statement (assignment_expression IDENT = (binary_expression (parenthesized_expression ( IDENT )) * IDENT)) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT != (char_literal ' escape_sequence ')) )) (compound_statement { (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( (binary_expression (parenthesized_expression ( IDENT )) * IDENT) , (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor (sized_type_specifier long)) ) IDENT) + LIT) )))) )))) ;) })) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor (sized_type_specifier long)) ) IDENT) + LIT) )))) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (cast_expression ( (type_descriptor TYPE) ) IDENT))) ;) (goto_statement goto statement_identifier ;) })) (if_statement if (parenthesized_expression ( (binary_expression IDENT == LIT) )) (goto_statement goto statement_identifier ;)) (if_statement if (parenthesized_expression ( (binary_expression IDENT != LIT) )) (compound_statement { (return_statement return LIT ;) })) (expression_statement (assignment_expression IDENT = (pointer_expression * IDENT)) ;) (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) (if_statement if (parenthesized_expression ( (binary_expression LIT < (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) )) (compound_statement { (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) })) (if_statement if (parenthesized_expression ( (binary_expression IDENT != LIT) )) (goto_statement goto statement_identifier ;)) (labeled_statement statement_identifier : (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( IDENT , (pointer_expression & IDENT) )))) ;)) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (cast_expression ( (type_descriptor TYPE) ) IDENT))) ;) (labeled_statement statement_identifier : (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( (pointer_expression * IDENT) , IDENT , (pointer_expression & IDENT) )))) ;)) (expression_statement (assignment_expression IDENT = IDENT) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT == LIT) )) (goto_statement goto statement_identifier ;)) (if_statement if (parenthesized_expression ( (binary_expression LIT < IDENT) )) (goto_statement goto statement_identifier ;)) (goto_statement goto statement_identifier ;) })) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor (sized_type_specifier long)) ) IDENT) + LIT) )))) ;) (expression_statement (assignment_expression IDENT = (binary_expression (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (call_expression (parenthesized_expression ( IDENT )) (argument_list ( IDENT )))) * IDENT)) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT != LIT) )) (compound_statement { (if_statement if (parenthesized_expression ( (binary_expression IDENT < LIT) )) (compound_statement { (if_statement if (parenthesized_expression ( (binary_expression IDENT == LIT) )) (compound_statement { (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = (cast_expression ( (type_descriptor (sized_type_specifier long)) ) IDENT)) ;) })) (goto_statement goto statement_identifier ;) })) (labeled_statement statement_identifier : (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression IDENT == LIT) )) || (parenthesized_expression ( (binary_expression IDENT == LIT) ))) )) (goto_statement goto statement_identifier ;))) (goto_statement goto statement_identifier ;) })) }))) (labeled_statement statement_identifier : (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = (cast_expression ( (type_descriptor (sized_type_specifier long)) ) IDENT)) ;)) (goto_statement goto statement_identifier ;) })) (if_statement if (parenthesized_expression ( (binary_expression IDENT == LIT) )) (compound_statement { (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression (pointer_expression * (pointer_expression * (cast_expression ( (type_descriptor (sized_type_specifier long) (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression (pointer_expression * IDENT) + LIT) ))))) + LIT) ))))) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT == IDENT) )) (compound_statement { (expression_statement (assignment_expression IDENT = (call_expression (parenthesized_expression ( (pointer_expression * (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression (pointer_expression * (pointer_expression * (cast_expression ( (type_descriptor (sized_type_specifier long) (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression (pointer_expression * IDENT) + LIT) ))))) + LIT) ))))) )) (argument_list ( )))) ;) }) (else_clause else (compound_statement { (expression_statement (assignment_expression IDENT = (call_expression (parenthesized_expression ( (pointer_expression * IDENT) )) (argument_list ( )))) ;) }))) (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) IDENT))) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT != (char_literal ' escape_sequence ')) )) (compound_statement { (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (binary_expression (binary_expression (binary_expression (binary_expression (binary_expression (binary_expression (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) >> LIT) | (binary_expression (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) & LIT) )) >> LIT)) | (binary_expression (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) & LIT) )) >> LIT)) | (binary_expression (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) & LIT) )) >> LIT)) | (binary_expression (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) & LIT) )) << LIT)) | (binary_expression (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) & LIT) )) << LIT)) | (binary_expression (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) & LIT) )) << LIT)) | (binary_expression (cast_expression ( (type_descriptor (sized_type_specifier long)) ) IDENT) << LIT)) )))) ;) })) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) (labeled_statement statement_identifier : (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( (pointer_expression * IDENT) , IDENT , (pointer_expression & IDENT) )))) ;)) (expression_statement (assignment_expression IDENT = IDENT) ;) (labeled_statement statement_identifier : (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression IDENT != LIT) )) && (parenthesized_expression ( (binary_expression IDENT < LIT) ))) )) (compound_statement { (labeled_statement statement_identifier : (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression IDENT != LIT) )) && (parenthesized_expression ( (binary_expression IDENT == LIT) ))) )) (goto_statement goto statement_identifier ;))) }))) (goto_statement goto statement_identifier ;) })) (if_statement if (parenthesized_expression ( (binary_expression IDENT < LIT) )) (compound_statement { (if_statement if (parenthesized_expression ( (binary_expression IDENT == LIT) )) (compound_statement { (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression (pointer_expression * (pointer_expression * (cast_expression ( (type_descriptor (sized_type_specifier long) (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression (pointer_expression * IDENT) + LIT) ))))) + LIT) ))))) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT == IDENT) )) (compound_statement { (expression_statement (assignment_expression IDENT = (call_expression (parenthesized_expression ( (pointer_expression * (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression (pointer_expression * (pointer_expression * (cast_expression ( (type_descriptor (sized_type_specifier long) (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression (pointer_expression * IDENT) + LIT) ))))) + LIT) ))))) )) (argument_list ( )))) ;) }) (else_clause else (compound_statement { (expression_statement (assignment_expression IDENT = (call_expression (parenthesized_expression ( (pointer_expression * IDENT) )) (argument_list ( )))) ;) }))) (expression_statement (assignment_expression IDENT = (pointer_expression * IDENT)) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT != (char_literal ' escape_sequence ')) )) (compound_statement { (expression_statement (assignment_expression IDENT = (binary_expression (binary_expression (binary_expression (binary_expression IDENT >> LIT) | (binary_expression (parenthesized_expression ( (binary_expression IDENT & LIT) )) >> LIT)) | (binary_expression (parenthesized_expression ( (binary_expression IDENT & LIT) )) << LIT)) | (binary_expression IDENT << LIT))) ;) })) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor (sized_type_specifier long)) ) IDENT) + (cast_expression ( (type_descriptor TYPE) ) IDENT)) )))) ;) }) (else_clause else (if_statement if (parenthesized_expression ( (binary_expression IDENT < LIT) )) (compound_statement { (if_statement if (parenthesized_expression ( (binary_expression IDENT == LIT) )) (compound_statement { (expression_statement (assignment_expression IDENT = (pointer_expression * IDENT)) ;) (if_statement if (parenthesized_expression ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) == LIT) )) (goto_statement goto statement_identifier ;)) (labeled_statement statement_identifier : (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression (pointer_expression * (pointer_expression * (cast_expression ( (type_descriptor (sized_type_specifier long) (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) + LIT) ))))) ;)) (if_statement if (parenthesized_expression ( (binary_expression IDENT == IDENT) )) (compound_statement { (expression_statement (assignment_expression IDENT = (call_expression (parenthesized_expression ( (pointer_expression * (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression (pointer_expression * (pointer_expression * (cast_expression ( (type_descriptor (sized_type_specifier long) (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) + LIT) ))))) )) (argument_list ( )))) ;) }) (else_clause else (compound_statement { (expression_statement (assignment_expression IDENT = (call_expression (parenthesized_expression ( (pointer_expression * IDENT) )) (argument_list ( )))) ;) }))) (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) IDENT))) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT != (char_literal ' escape_sequence ')) )) (compound_statement { (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (binary_expression (binary_expression (binary_expression (binary_expression (binary_expression (binary_expression (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) >> LIT) | (binary_expression (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) & LIT) )) >> LIT)) | (binary_expression (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) & LIT) )) >> LIT)) | (binary_expression (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) & LIT) )) >> LIT)) | (binary_expression (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) & LIT) )) << LIT)) | (binary_expression (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) & LIT) )) << LIT)) | (binary_expression (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) & LIT) )) << LIT)) | (binary_expression (cast_expression ( (type_descriptor (sized_type_specifier long)) ) IDENT) << LIT)) )))) ;) })) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) (goto_statement goto statement_identifier ;) })) (if_statement if (parenthesized_expression ( (binary_expression IDENT != LIT) )) (compound_statement { (return_statement return LIT ;) })) (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression (pointer_expression * (pointer_expression * (cast_expression ( (type_descriptor (sized_type_specifier long) (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression (pointer_expression * IDENT) + LIT) ))))) + LIT) ))))) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT == IDENT) )) (compound_statement { (expression_statement (assignment_expression IDENT = (call_expression (parenthesized_expression ( (pointer_expression * (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression (pointer_expression * (pointer_expression * (cast_expression ( (type_descriptor (sized_type_specifier long) (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression (pointer_expression * IDENT) + LIT) ))))) + LIT) ))))) )) (argument_list ( )))) ;) }) (else_clause else (compound_statement { (expression_statement (assignment_expression IDENT = (call_expression (parenthesized_expression ( (pointer_expression * IDENT) )) (argument_list ( )))) ;) }))) (expression_statement (assignment_expression IDENT = (binary_expression (parenthesized_expression ( IDENT )) * IDENT)) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT != (char_literal ' escape_sequence ')) )) (compound_statement { (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( (binary_expression (parenthesized_expression ( IDENT )) * IDENT) , (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor (sized_type_specifier long)) ) IDENT) + LIT) )))) )))) ;) })) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE) ) IDENT)) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor (sized_type_specifier long)) ) IDENT) + LIT) )))) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor (sized_type_specifier long)) ) IDENT) + (cast_expression ( (type_descriptor TYPE) ) IDENT)) )))) ;) }) (else_clause else (compound_statement { (if_statement if (parenthesized_expression ( (binary_expression IDENT != LIT) )) (compound_statement { (if_statement if (parenthesized_expression ( (binary_expression IDENT != LIT) )) (compound_statement { (return_statement return LIT ;) })) (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression (pointer_expression * (pointer_expression * (cast_expression ( (type_descriptor (sized_type_specifier long) (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression (pointer_expression * IDENT) + LIT) ))))) + LIT) ))))) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT == IDENT) )) (compound_statement { (expression_statement (assignment_expression IDENT = (call_expression (parenthesized_expression ( (pointer_expression * (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression (pointer_expression * (pointer_expression * (cast_expression ( (type_descriptor (sized_type_specifier long) (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression (pointer_expression * IDENT) + LIT) ))))) + LIT) ))))) )) (argument_list ( )))) ;) }) (else_clause else (compound_statement { (expression_statement (assignment_expression IDENT = (call_expression (parenthesized_expression ( (pointer_expression * IDENT) )) (argument_list ( )))) ;) }))) (expression_statement (assignment_expression IDENT = (pointer_expression * IDENT)) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT != (char_literal ' escape_sequence ')) )) (compound_statement { (expression_statement (assignment_expression IDENT = (binary_expression (binary_expression (binary_expression (binary_expression IDENT >> LIT) | (binary_expression (parenthesized_expression ( (binary_expression IDENT & LIT) )) >> LIT)) | (binary_expression (parenthesized_expression ( (binary_expression IDENT & LIT) )) << LIT)) | (binary_expression IDENT << LIT))) ;) })) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (cast_expression ( (type_descriptor TYPE) ) IDENT))) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) (goto_statement goto statement_identifier ;) })) (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression (pointer_expression * (pointer_expression * (cast_expression ( (type_descriptor (sized_type_specifier long) (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression (pointer_expression * IDENT) + LIT) ))))) + LIT) ))))) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT == IDENT) )) (compound_statement { (expression_statement (assignment_expression IDENT = (call_expression (parenthesized_expression ( (pointer_expression * (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression (pointer_expression * (pointer_expression * (cast_expression ( (type_descriptor (sized_type_specifier long) (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression (pointer_expression * IDENT) + LIT) ))))) + LIT) ))))) )) (argument_list ( )))) ;) }) (else_clause else (compound_statement { (expression_statement (assignment_expression IDENT = (call_expression (parenthesized_expression ( (pointer_expression * IDENT) )) (argument_list ( )))) ;) }))) (expression_statement (assignment_expression IDENT = (binary_expression (parenthesized_expression ( IDENT )) * IDENT)) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT != (char_literal ' escape_sequence ')) )) (compound_statement { (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( (binary_expression (parenthesized_expression ( IDENT )) * IDENT) , (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor (sized_type_specifier long)) ) IDENT) + LIT) )))) )))) ;) })) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor (sized_type_specifier long)) ) IDENT) + LIT) )))) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (cast_expression ( (type_descriptor TYPE) ) IDENT))) ;) }))))) (goto_statement goto statement_identifier ;) })) (if_statement if (parenthesized_expression ( (binary_expression IDENT == LIT) )) (compound_statement { (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor (sized_type_specifier long)) ) IDENT) + LIT) )))) ;) (expression_statement (assignment_expression IDENT = (pointer_expression * IDENT)) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor (sized_type_specifier long)) ) IDENT) + (cast_expression ( (type_descriptor TYPE) ) (cast_expression ( (type_descriptor TYPE) ) IDENT))) )))) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE) ) (cast_expression ( (type_descriptor TYPE) ) IDENT))) ;) (goto_statement goto statement_identifier ;) })) (if_statement if (parenthesized_expression ( (binary_expression IDENT < LIT) )) (compound_statement { (if_statement if (parenthesized_expression ( (binary_expression IDENT != LIT) )) (compound_statement { (if_statement if (parenthesized_expression ( (binary_expression IDENT != LIT) )) (compound_statement { (return_statement return LIT ;) })) (goto_statement goto statement_identifier ;) })) (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 (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (binary_expression (cast_expression ( (type_descriptor (sized_type_specifier long)) ) IDENT) + IDENT) + LIT) )))) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT == LIT) )) (goto_statement goto statement_identifier ;)) (if_statement if (parenthesized_expression ( (binary_expression LIT < IDENT) )) (compound_statement { (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression IDENT != LIT) )) && (parenthesized_expression ( (binary_expression IDENT != LIT) ))) )) (goto_statement goto statement_identifier ;)) (goto_statement goto statement_identifier ;) })) (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression IDENT == LIT) )) || (parenthesized_expression ( (binary_expression IDENT != LIT) ))) )) (goto_statement goto statement_identifier ;)) (goto_statement goto statement_identifier ;) })) (if_statement if (parenthesized_expression ( (binary_expression IDENT < LIT) )) (compound_statement { (expression_statement (assignment_expression IDENT = (pointer_expression * IDENT)) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor (sized_type_specifier long)) ) IDENT) + LIT) )))) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (cast_expression ( (type_descriptor TYPE) ) (cast_expression ( (type_descriptor TYPE) ) IDENT)))) ;) (goto_statement goto statement_identifier ;) })) (expression_statement (assignment_expression IDENT = (binary_expression (parenthesized_expression ( IDENT )) * IDENT)) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor (sized_type_specifier long)) ) 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 = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (call_expression IDENT (argument_list ( IDENT , (pointer_expression & IDENT) ))))) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + (cast_expression ( (type_descriptor (sized_type_specifier long)) ) IDENT)) )))) ;) }) (else_clause else (compound_statement { (expression_statement (assignment_expression IDENT = LIT) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (cast_expression ( (type_descriptor TYPE) ) IDENT))) ;) (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression IDENT & LIT) )) != LIT) )) (compound_statement { (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) | LIT) )))) ;) })) }))) (expression_statement (assignment_expression IDENT = IDENT) ;) (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression IDENT == LIT) )) || (parenthesized_expression ( (binary_expression IDENT < LIT) ))) )) (goto_statement goto statement_identifier ;)) (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression IDENT == LIT) )) || (parenthesized_expression ( (binary_expression IDENT == LIT) ))) )) (goto_statement goto statement_identifier ;)) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (subscript_expression IDENT [ LIT ]))) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT == (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (subscript_expression IDENT [ LIT ]))) )) (goto_statement goto statement_identifier ;)) (labeled_statement statement_identifier : (expression_statement (assignment_expression (pointer_expression * IDENT) = (call_expression IDENT (argument_list ( IDENT , IDENT )))) ;)) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = IDENT) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = (call_expression IDENT (argument_list ( IDENT , IDENT )))) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = (cast_expression ( (type_descriptor (sized_type_specifier long)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) ;) }))) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) (expression_statement (assignment_expression IDENT = (subscript_expression IDENT [ LIT ])) ;) }) while (parenthesized_expression ( (binary_expression IDENT != (binary_expression (binary_expression (call_expression (parenthesized_expression ( IDENT )) (argument_list ( (binary_expression IDENT - LIT) ))) * LIT) + LIT)) )) ;) }))) (if_statement if (parenthesized_expression ( (binary_expression IDENT == LIT) )) (compound_statement { (expression_statement (call_expression IDENT (argument_list ( (string_literal " string_content ") , LIT , (string_literal " string_content ") ))) ;) })) (expression_statement (assignment_expression IDENT = (subscript_expression IDENT [ LIT ])) ;) (labeled_statement statement_identifier : (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor (sized_type_specifier long)) ) IDENT) + (parenthesized_expression ( (binary_expression IDENT - IDENT) ))) )))) ;)) (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) & LIT) )) == LIT) )) (compound_statement { (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = (cast_expression ( (type_descriptor (sized_type_specifier long)) ) IDENT)) ;) }) (else_clause else (compound_statement { (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = (cast_expression ( (type_descriptor (sized_type_specifier long)) ) IDENT)) ;) }))) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = LIT) ;) (return_statement return LIT ;) })))
(function_definition "undefined8 FUN_003025a0(long *param_1)\n\n{\n  byte bVar1;\n  uint uVar2;\n  void *__src;\n  code *pcVar3;\n  void *pvVar4;\n  ushort uVar5;\n  char cVar6;\n  int iVar7;\n  uint uVar8;\n  uint uVar9;\n  long lVar10;\n  void *__dest;\n  uint *puVar11;\n  long lVar12;\n  int iVar13;\n  ulong uVar14;\n  byte *pbVar15;\n  undefined8 *puVar16;\n  long *plVar17;\n  long lVar18;\n  void *pvVar19;\n  size_t __n;\n  long lVar20;\n  uint *local_70;\n  size_t local_68;\n  uint *local_60;\n  uint local_58;\n  uint uStack_54;\n  uint *puStack_50;\n  uint local_48;\n  undefined4 uStack_44;\n  \n  lVar10 = param_1[6];\n  if (lVar10 == 0) {\n                    \n    FUN_001e9890("../../gold/dwarf_reader.cc",0x2a9,"read_attributes");\n  }\n  lVar20 = *param_1;\n  lVar18 = param_1[2];\n  lVar12 = *(long *)(lVar20 + 0x50) + lVar18 + *(long *)(lVar20 + 0x40);\n  if ((ulong)(*(long *)(lVar20 + 0x40) + *(long *)(lVar20 + 0x50) + *(long *)(lVar20 + 0x58)) <\n      lVar12 + 1U) {\n    FUN_00301e70();\n    return 0;\n  }\n  if (lVar12 == 0) {\n    return 0;\n  }\n  __src = (void *)param_1[7];\n  local_70 = (uint *)(param_1[3] + lVar12);\n  uVar14 = *(long *)(lVar10 + 0x10) - *(long *)(lVar10 + 8) >> 3;\n  iVar13 = (int)uVar14;\n  uVar14 = uVar14 & 0xffffffff;\n  if ((ulong)((param_1[9] - (long)__src >> 3) * -0x5555555555555555) < uVar14) {\n    pvVar4 = (void *)param_1[8];\n    __n = (long)pvVar4 - (long)__src;\n    if (uVar14 == 0) {\n      __dest = (void *)0x0;\n      pvVar19 = __src;\n    }\n    else {\n      __dest = (void *)FUN_00337280(uVar14 * 0x18);\n      pvVar19 = (void *)param_1[7];\n    }\n    if (__src != pvVar4) {\n      __dest = memmove(__dest,__src,__n);\n    }\n    if (pvVar19 != (void *)0x0) {\n      FUN_00338a50(pvVar19);\n    }\n    param_1[7] = (long)__dest;\n    lVar10 = param_1[6];\n    param_1[8] = __n + (long)__dest;\n    param_1[9] = (long)(uVar14 * 0x18 + (long)__dest);\n    if (iVar13 != 0) goto LAB_00302642;\n  }\n  else {\n    if (iVar13 == 0) goto LAB_00302797;\nLAB_00302642:\n    lVar20 = 0;\n    do {\n      puVar11 = (uint *)(*(long *)(lVar10 + 8) + lVar20);\n      uVar8 = puVar11[1];\n      uVar2 = *puVar11;\n      if (uVar8 == 0x16) {\n        bVar1 = (byte)*local_70;\n        uVar8 = (uint)bVar1;\n        if ((char)bVar1 < '\0') {\n          uVar8 = FUN_002112d0((uint *)((long)local_70 + 1),&local_68,bVar1);\n          local_70 = (uint *)(local_68 + (long)local_70);\n        }\n        else {\n          local_68 = 1;\n          local_70 = (uint *)((long)local_70 + 1);\n        }\n      }\n      puVar11 = local_70;\n      pbVar15 = (byte *)((long)local_70 + (param_1[2] - lVar12));\n      local_48 = 0;\n      local_58 = uVar2;\n      uStack_54 = uVar8;\n      if (uVar8 == 0xe) {\n        lVar10 = *param_1;\n        if (*(int *)(lVar10 + 0x60) == 4) {\n          uVar8 = FUN_00305610(lVar10,&local_70);\n          local_60 = (uint *)(ulong)uVar8;\n        }\n        else {\n          pcVar3 = *(code **)(**(long **)(lVar10 + 0x10) + 0x18);\n          if (pcVar3 == FUN_001b8d10) {\n            cVar6 = (**(code **)(**(long **)(lVar10 + 0x10) + 0x1d0))();\n          }\n          else {\n            cVar6 = (*pcVar3)();\n          }\n          local_60 = *(uint **)local_70;\n          if (cVar6 != '\0') {\n            local_60 = (uint *)((ulong)local_60 >> 0x38 |\n                                ((ulong)local_60 & 0xff000000000000) >> 0x28 |\n                                ((ulong)local_60 & 0xff0000000000) >> 0x18 |\n                                ((ulong)local_60 & 0xff00000000) >> 8 |\n                                ((ulong)local_60 & 0xff000000) << 8 |\n                                ((ulong)local_60 & 0xff0000) << 0x18 |\n                                ((ulong)local_60 & 0xff00) << 0x28 | (long)local_60 << 0x38);\n          }\n          local_70 = local_70 + 2;\n        }\n        local_48 = FUN_00301dc0(*param_1,pbVar15,&local_60);\n        puStack_50 = local_60;\n        if (uVar2 != 0x31) {\n          if (uVar2 < 0x32) {\n            if ((uVar2 != 1) && (uVar2 == 3)) {\nLAB_00302f64:\n              *(uint *)(param_1 + 0xf) = local_48;\n              param_1[0xc] = (long)puStack_50;\n            }\n          }\n          else if ((uVar2 == 0x6e) || (uVar2 == 0x2007)) {\nLAB_00302fd0:\n            *(uint *)(param_1 + 0xf) = local_48;\n            param_1[0xe] = (long)puStack_50;\n          }\n        }\nLAB_00302750:\n        puVar16 = (undefined8 *)param_1[8];\n        if (puVar16 != (undefined8 *)param_1[9]) goto LAB_0030275e;\nLAB_003028c0:\n        FUN_00305860(param_1 + 7,puVar16,&local_58);\n      }\n      else {\n        if (0xe < uVar8) {\n          if (uVar8 == 0x15) {\n            bVar1 = (byte)*local_70;\n            if ((char)bVar1 < '\0') {\n              puStack_50 = (uint *)FUN_002112d0((uint *)((long)local_70 + 1),&local_68,bVar1);\n              local_70 = (uint *)(local_68 + (long)local_70);\n            }\n            else {\n              local_68 = 1;\n              local_70 = (uint *)((long)local_70 + 1);\n              puStack_50 = (uint *)(ulong)bVar1;\n            }\njoined_r0x00303052:\n            if (uVar2 != 0x31) {\n              if (uVar2 < 0x32) {\nLAB_00302c20:\n                if ((uVar2 == 1) && (local_48 == 0)) {\n                  param_1[5] = (long)puStack_50;\n                }\n                goto LAB_00302750;\n              }\n              if ((uVar2 != 0x6e) && (uVar2 != 0x2007)) {\njoined_r0x00302ce3:\n                if (uVar2 == 0x47) {\n                  param_1[0x10] = (long)puStack_50;\n                }\n                goto LAB_00302750;\n              }\nLAB_00302fb5:\n              if (uVar8 == 8) {\nLAB_003029eb:\n                param_1[0xd] = (long)puStack_50;\n              }\n              else {\nLAB_00302fbe:\n                if (uVar8 == 0xe) goto LAB_00302fd0;\n              }\n              goto LAB_00302750;\n            }\n          }\n          else {\n            if (0x15 < uVar8) {\n              if (uVar8 != 0x19) {\n                if (uVar8 < 0x1a) {\n                  if (uVar8 == 0x17) {\n                    lVar10 = *param_1;\n                    if (*(int *)(lVar10 + 0x60) == 4) {\n                      uVar9 = FUN_00305610(lVar10,&local_70);\n                      local_60 = (uint *)(ulong)uVar9;\n                    }\n                    else {\n                      plVar17 = *(long **)(lVar10 + 0x10);\nLAB_00302fe7:\n                      pcVar3 = *(code **)(*plVar17 + 0x18);\n                      if (pcVar3 == FUN_001b8d10) {\n                        cVar6 = (**(code **)(*plVar17 + 0x1d0))();\n                      }\n                      else {\n                        cVar6 = (*pcVar3)();\n                      }\n                      local_60 = *(uint **)local_70;\n                      if (cVar6 != '\0') {\n                        local_60 = (uint *)((ulong)local_60 >> 0x38 |\n                                            ((ulong)local_60 & 0xff000000000000) >> 0x28 |\n                                            ((ulong)local_60 & 0xff0000000000) >> 0x18 |\n                                            ((ulong)local_60 & 0xff00000000) >> 8 |\n                                            ((ulong)local_60 & 0xff000000) << 8 |\n                                            ((ulong)local_60 & 0xff0000) << 0x18 |\n                                            ((ulong)local_60 & 0xff00) << 0x28 |\n                                           (long)local_60 << 0x38);\n                      }\n                      local_70 = local_70 + 2;\n                    }\nLAB_00303035:\n                    local_48 = FUN_00301dc0(*param_1,pbVar15,&local_60);\n                    puStack_50 = local_60;\n                    goto joined_r0x00303052;\n                  }\n                  if (uVar8 != 0x18) {\n                    return 0;\n                  }\nLAB_00302a09:\n                  bVar1 = (byte)*local_70;\n                  uVar9 = (uint)bVar1;\n                  puVar11 = (uint *)((long)local_70 + 1);\n                  if ((char)bVar1 < '\0') {\n                    uVar9 = FUN_002112d0(puVar11,&local_68,bVar1);\n                    puVar11 = (uint *)((long)local_70 + local_68);\n                  }\n                  else {\n                    local_68 = 1;\n                  }\n                  local_70 = (uint *)((long)local_70 + uVar9 + local_68);\n                  puStack_50 = puVar11;\n                  local_48 = uVar9;\n                }\n                else {\n                  if (uVar8 == 0x20) {\n                    pcVar3 = *(code **)(**(long **)(*param_1 + 0x10) + 0x18);\n                    if (pcVar3 == FUN_001b8d10) {\n                      cVar6 = (**(code **)(**(long **)(*param_1 + 0x10) + 0x1d0))();\n                    }\n                    else {\n                      cVar6 = (*pcVar3)();\n                    }\n                    puStack_50 = *(uint **)local_70;\n                    if (cVar6 != '\0') {\n                      puStack_50 = (uint *)((ulong)puStack_50 >> 0x38 |\n                                            ((ulong)puStack_50 & 0xff000000000000) >> 0x28 |\n                                            ((ulong)puStack_50 & 0xff0000000000) >> 0x18 |\n                                            ((ulong)puStack_50 & 0xff00000000) >> 8 |\n                                            ((ulong)puStack_50 & 0xff000000) << 8 |\n                                            ((ulong)puStack_50 & 0xff0000) << 0x18 |\n                                            ((ulong)puStack_50 & 0xff00) << 0x28 |\n                                           (long)puStack_50 << 0x38);\n                    }\n                    local_70 = local_70 + 2;\n                    goto LAB_00302ea9;\n                  }\n                  if (uVar8 < 0x20) {\n                    return 0;\n                  }\n                  if (1 < uVar8 - 0x1f01) {\n                    return 0;\n                  }\nLAB_00302bcd:\n                  bVar1 = (byte)*local_70;\n                  if ((char)bVar1 < '\0') {\n                    puStack_50 = (uint *)FUN_002112d0((uint *)((long)local_70 + 1),&local_68,bVar1);\n                    local_70 = (uint *)(local_68 + (long)local_70);\n                  }\n                  else {\n                    local_68 = 1;\n                    local_70 = (uint *)((long)local_70 + 1);\n                    puStack_50 = (uint *)(ulong)bVar1;\n                  }\n                }\nLAB_00302f92:\n                if (uVar2 == 0x31) goto LAB_00302750;\n                if (0x31 < uVar2) {\n                  if ((uVar2 == 0x6e) || (uVar2 == 0x2007)) goto LAB_00302fb5;\n                  goto LAB_00302750;\n                }\n                goto LAB_00302e3e;\n              }\n              puStack_50 = (uint *)0x1;\nLAB_00302ea9:\n              if (((uVar2 == 0x31) || (0x31 < uVar2)) || (uVar2 != 3)) goto LAB_00302750;\nLAB_00302e52:\n              if (uVar8 == 8) {\nLAB_003029c7:\n                param_1[0xb] = (long)puStack_50;\n              }\n              else if (uVar8 == 0xe) goto LAB_00302f64;\n              goto LAB_00302750;\n            }\n            if (uVar8 != 0x11) {\n              if (0x11 < uVar8) {\n                if (uVar8 == 0x13) {\n                  uVar9 = FUN_00305610(*param_1,&local_70);\n                  local_60 = (uint *)(ulong)uVar9;\n                  goto LAB_00303035;\n                }\n                if (0x13 < uVar8) {\n                  plVar17 = *(long **)(*param_1 + 0x10);\n                  goto LAB_00302fe7;\n                }\n                pcVar3 = *(code **)(**(long **)(*param_1 + 0x10) + 0x18);\n                if (pcVar3 == FUN_001b8d10) {\n                  cVar6 = (**(code **)(**(long **)(*param_1 + 0x10) + 0x1d0))();\n                }\n                else {\n                  cVar6 = (*pcVar3)();\n                }\n                uVar5 = (ushort)*local_70;\n                if (cVar6 != '\0') {\n                  uVar5 = CONCAT11((byte)*local_70,*(byte *)((long)local_70 + 1));\n                }\n                local_70 = (uint *)((long)local_70 + 2);\n                puStack_50 = (uint *)(ulong)uVar5;\n                goto joined_r0x00303052;\n              }\n              if (uVar8 == 0xf) goto LAB_00302bcd;\n              if (uVar8 != 0x10) {\n                return 0;\n              }\n              lVar10 = *param_1;\n              iVar7 = *(int *)(lVar10 + 100);\n              if (2 < *(uint *)(lVar10 + 0x68)) {\n                iVar7 = *(int *)(lVar10 + 0x60);\n              }\n              if (iVar7 != 4) goto LAB_00302a71;\nLAB_00302e7d:\n              uVar8 = FUN_00305610(lVar10,&local_70);\n              local_60 = (uint *)(ulong)uVar8;\nLAB_00302abe:\n              local_48 = FUN_00301dc0(*param_1,pbVar15,&local_60);\n              puStack_50 = local_60;\n              if (uVar2 == 0x31) goto LAB_00302965;\n              if (0x31 < uVar2) goto joined_r0x00302ccc;\n              goto LAB_00302c20;\n            }\n            puVar11 = (uint *)((long)local_70 + 1);\n            puStack_50 = (uint *)(ulong)(byte)*local_70;\n            local_70 = puVar11;\n            if (uVar2 != 0x31) {\n              if (uVar2 < 0x32) {\n                if (uVar2 == 1) {\n                  param_1[5] = (long)puStack_50;\n                }\n                goto LAB_00302750;\n              }\njoined_r0x00302ccc:\n              if ((uVar2 == 0x6e) || (uVar2 == 0x2007)) goto LAB_00302750;\n              goto joined_r0x00302ce3;\n            }\n          }\nLAB_00302965:\n          param_1[0x11] = (long)puStack_50;\n          goto LAB_00302750;\n        }\n        if (uVar8 == 7) {\n          pcVar3 = *(code **)(**(long **)(*param_1 + 0x10) + 0x18);\n          if (pcVar3 == FUN_001b8d10) {\n            cVar6 = (**(code **)(**(long **)(*param_1 + 0x10) + 0x1d0))();\n          }\n          else {\n            cVar6 = (*pcVar3)();\n          }\n          local_60 = *(uint **)local_70;\n          if (cVar6 != '\0') {\n            local_60 = (uint *)((ulong)local_60 >> 0x38 |\n                                ((ulong)local_60 & 0xff000000000000) >> 0x28 |\n                                ((ulong)local_60 & 0xff0000000000) >> 0x18 |\n                                ((ulong)local_60 & 0xff00000000) >> 8 |\n                                ((ulong)local_60 & 0xff000000) << 8 |\n                                ((ulong)local_60 & 0xff0000) << 0x18 |\n                                ((ulong)local_60 & 0xff00) << 0x28 | (long)local_60 << 0x38);\n          }\n          local_70 = local_70 + 2;\nLAB_00302d40:\n          local_48 = FUN_00301dc0(*param_1,pbVar15,&local_60);\n          puStack_50 = local_60;\njoined_r0x00302748:\n          if ((uVar2 != 0x31) && (uVar2 < 0x32)) {\nLAB_00302e3e:\n            if ((uVar2 != 1) && (uVar2 == 3)) goto LAB_00302e52;\n          }\n          goto LAB_00302750;\n        }\n        if (uVar8 < 8) {\n          if (uVar8 == 4) {\n            pcVar3 = *(code **)(**(long **)(*param_1 + 0x10) + 0x18);\n            if (pcVar3 == FUN_001b8d10) {\n              cVar6 = (**(code **)(**(long **)(*param_1 + 0x10) + 0x1d0))();\n            }\n            else {\n              cVar6 = (*pcVar3)();\n            }\n            local_48 = *local_70;\n            if (cVar6 != '\0') {\n              local_48 = local_48 >> 0x18 | (local_48 & 0xff0000) >> 8 | (local_48 & 0xff00) << 8 |\n                         local_48 << 0x18;\n            }\n            puStack_50 = local_70 + 1;\n            local_70 = (uint *)((long)puStack_50 + (ulong)local_48);\n          }\n          else if (uVar8 < 5) {\n            if (uVar8 == 1) {\n              lVar10 = *param_1;\n              if (*(int *)(lVar10 + 100) == 4) goto LAB_00302e7d;\nLAB_00302a71:\n              pcVar3 = *(code **)(**(long **)(lVar10 + 0x10) + 0x18);\n              if (pcVar3 == FUN_001b8d10) {\n                cVar6 = (**(code **)(**(long **)(lVar10 + 0x10) + 0x1d0))();\n              }\n              else {\n                cVar6 = (*pcVar3)();\n              }\n              local_60 = *(uint **)local_70;\n              if (cVar6 != '\0') {\n                local_60 = (uint *)((ulong)local_60 >> 0x38 |\n                                    ((ulong)local_60 & 0xff000000000000) >> 0x28 |\n                                    ((ulong)local_60 & 0xff0000000000) >> 0x18 |\n                                    ((ulong)local_60 & 0xff00000000) >> 8 |\n                                    ((ulong)local_60 & 0xff000000) << 8 |\n                                    ((ulong)local_60 & 0xff0000) << 0x18 |\n                                    ((ulong)local_60 & 0xff00) << 0x28 | (long)local_60 << 0x38);\n              }\n              local_70 = local_70 + 2;\n              goto LAB_00302abe;\n            }\n            if (uVar8 != 3) {\n              return 0;\n            }\n            pcVar3 = *(code **)(**(long **)(*param_1 + 0x10) + 0x18);\n            if (pcVar3 == FUN_001b8d10) {\n              cVar6 = (**(code **)(**(long **)(*param_1 + 0x10) + 0x1d0))();\n            }\n            else {\n              cVar6 = (*pcVar3)();\n            }\n            uVar5 = (ushort)*local_70;\n            if (cVar6 != '\0') {\n              uVar5 = CONCAT11((byte)*local_70,*(byte *)((long)local_70 + 1));\n            }\n            local_48 = (uint)uVar5;\n            puStack_50 = (uint *)((long)local_70 + 2);\n            local_70 = (uint *)((long)puStack_50 + (ulong)local_48);\n          }\n          else {\n            if (uVar8 != 5) {\n              if (uVar8 != 6) {\n                return 0;\n              }\n              pcVar3 = *(code **)(**(long **)(*param_1 + 0x10) + 0x18);\n              if (pcVar3 == FUN_001b8d10) {\n                cVar6 = (**(code **)(**(long **)(*param_1 + 0x10) + 0x1d0))();\n              }\n              else {\n                cVar6 = (*pcVar3)();\n              }\n              uVar9 = *local_70;\n              if (cVar6 != '\0') {\n                uVar9 = uVar9 >> 0x18 | (uVar9 & 0xff0000) >> 8 | (uVar9 & 0xff00) << 8 |\n                        uVar9 << 0x18;\n              }\n              local_60 = (uint *)(ulong)uVar9;\n              local_70 = local_70 + 1;\n              goto LAB_00302d40;\n            }\n            pcVar3 = *(code **)(**(long **)(*param_1 + 0x10) + 0x18);\n            if (pcVar3 == FUN_001b8d10) {\n              cVar6 = (**(code **)(**(long **)(*param_1 + 0x10) + 0x1d0))();\n            }\n            else {\n              cVar6 = (*pcVar3)();\n            }\n            uVar5 = (ushort)*local_70;\n            if (cVar6 != '\0') {\n              uVar5 = CONCAT11((byte)*local_70,*(byte *)((long)local_70 + 1));\n            }\n            local_70 = (uint *)((long)local_70 + 2);\n            puStack_50 = (uint *)(ulong)uVar5;\n          }\n          goto joined_r0x00302748;\n        }\n        if (uVar8 == 10) {\n          puStack_50 = (uint *)((long)local_70 + 1);\n          uVar9 = *local_70;\n          local_70 = (uint *)((long)puStack_50 + (ulong)(byte)uVar9);\n          local_48 = (uint)(byte)uVar9;\n          goto joined_r0x00302748;\n        }\n        if (uVar8 < 0xb) {\n          if (uVar8 != 8) {\n            if (uVar8 != 9) {\n              return 0;\n            }\n            goto LAB_00302a09;\n          }\n          puStack_50 = local_70;\n          local_68 = strlen((char *)local_70);\n          local_70 = (uint *)((long)puVar11 + local_68 + 1);\n          if (uVar2 == 0x31) goto LAB_00302750;\n          if (0x31 < uVar2) {\n            if ((uVar2 != 0x6e) && (uVar2 != 0x2007)) goto LAB_00302750;\n            goto LAB_003029eb;\n          }\n          if ((uVar2 == 1) || (uVar2 != 3)) goto LAB_00302750;\n          goto LAB_003029c7;\n        }\n        if (uVar8 < 0xd) {\n          uVar9 = *local_70;\n          local_70 = (uint *)((long)local_70 + 1);\n          puStack_50 = (uint *)(ulong)(byte)uVar9;\n          goto LAB_00302f92;\n        }\n        bVar1 = (byte)*local_70;\n        puVar11 = (uint *)((long)local_70 + 1);\n        if ((char)bVar1 < '\0') {\n          puStack_50 = (uint *)FUN_00211340(puVar11,&local_68);\n          puVar11 = (uint *)(local_68 + (long)local_70);\n        }\n        else {\n          local_68 = 1;\n          puStack_50 = (uint *)(ulong)bVar1;\n          if ((bVar1 & 0x40) != 0) {\n            puStack_50 = (uint *)((ulong)bVar1 | 0xffffffffffffff80);\n          }\n        }\n        local_70 = puVar11;\n        if ((uVar2 == 0x31) || (uVar2 < 0x32)) goto LAB_00302750;\n        if ((uVar2 == 0x6e) || (uVar2 == 0x2007)) goto LAB_00302fbe;\n        puVar16 = (undefined8 *)param_1[8];\n        if (puVar16 == (undefined8 *)param_1[9]) goto LAB_003028c0;\nLAB_0030275e:\n        *puVar16 = CONCAT44(uStack_54,local_58);\n        puVar16[1] = puStack_50;\n        puVar16[2] = CONCAT44(uStack_44,local_48);\n        param_1[8] = (long)(puVar16 + 3);\n      }\n      lVar20 = lVar20 + 8;\n      lVar10 = param_1[6];\n    } while (lVar20 != (ulong)(iVar13 - 1) * 8 + 8);\n  }\n  if (lVar10 == 0) {\n                    \n    FUN_001e9890("../../gold/dwarf_reader.h",0x206,"has_children");\n  }\n  lVar18 = param_1[2];\nLAB_00302797:\n  pbVar15 = (byte *)((long)local_70 + (lVar18 - lVar12));\n  if ((*(byte *)(lVar10 + 4) & 1) == 0) {\n    param_1[5] = (long)pbVar15;\n  }\n  else {\n    param_1[4] = (long)pbVar15;\n  }\n  *(undefined1 *)(param_1 + 10) = 1;\n  return 1;\n}" (type_identifier "undefined8") (function_declarator "FUN_003025a0(long *param_1)" (identifier "FUN_003025a0") (parameter_list "(long *param_1)" (( "(") (parameter_declaration "long *param_1" (sized_type_specifier "long" (long "long")) (pointer_declarator "*param_1" (* "*") (identifier "param_1"))) () ")"))) (compound_statement "{\n  byte bVar1;\n  uint uVar2;\n  void *__src;\n  code *pcVar3;\n  void *pvVar4;\n  ushort uVar5;\n  char cVar6;\n  int iVar7;\n  uint uVar8;\n  uint uVar9;\n  long lVar10;\n  void *__dest;\n  uint *puVar11;\n  long lVar12;\n  int iVar13;\n  ulong uVar14;\n  byte *pbVar15;\n  undefined8 *puVar16;\n  long *plVar17;\n  long lVar18;\n  void *pvVar19;\n  size_t __n;\n  long lVar20;\n  uint *local_70;\n  size_t local_68;\n  uint *local_60;\n  uint local_58;\n  uint uStack_54;\n  uint *puStack_50;\n  uint local_48;\n  undefined4 uStack_44;\n  \n  lVar10 = param_1[6];\n  if (lVar10 == 0) {\n                    \n    FUN_001e9890("../../gold/dwarf_reader.cc",0x2a9,"read_attributes");\n  }\n  lVar20 = *param_1;\n  lVar18 = param_1[2];\n  lVar12 = *(long *)(lVar20 + 0x50) + lVar18 + *(long *)(lVar20 + 0x40);\n  if ((ulong)(*(long *)(lVar20 + 0x40) + *(long *)(lVar20 + 0x50) + *(long *)(lVar20 + 0x58)) <\n      lVar12 + 1U) {\n    FUN_00301e70();\n    return 0;\n  }\n  if (lVar12 == 0) {\n    return 0;\n  }\n  __src = (void *)param_1[7];\n  local_70 = (uint *)(param_1[3] + lVar12);\n  uVar14 = *(long *)(lVar10 + 0x10) - *(long *)(lVar10 + 8) >> 3;\n  iVar13 = (int)uVar14;\n  uVar14 = uVar14 & 0xffffffff;\n  if ((ulong)((param_1[9] - (long)__src >> 3) * -0x5555555555555555) < uVar14) {\n    pvVar4 = (void *)param_1[8];\n    __n = (long)pvVar4 - (long)__src;\n    if (uVar14 == 0) {\n      __dest = (void *)0x0;\n      pvVar19 = __src;\n    }\n    else {\n      __dest = (void *)FUN_00337280(uVar14 * 0x18);\n      pvVar19 = (void *)param_1[7];\n    }\n    if (__src != pvVar4) {\n      __dest = memmove(__dest,__src,__n);\n    }\n    if (pvVar19 != (void *)0x0) {\n      FUN_00338a50(pvVar19);\n    }\n    param_1[7] = (long)__dest;\n    lVar10 = param_1[6];\n    param_1[8] = __n + (long)__dest;\n    param_1[9] = (long)(uVar14 * 0x18 + (long)__dest);\n    if (iVar13 != 0) goto LAB_00302642;\n  }\n  else {\n    if (iVar13 == 0) goto LAB_00302797;\nLAB_00302642:\n    lVar20 = 0;\n    do {\n      puVar11 = (uint *)(*(long *)(lVar10 + 8) + lVar20);\n      uVar8 = puVar11[1];\n      uVar2 = *puVar11;\n      if (uVar8 == 0x16) {\n        bVar1 = (byte)*local_70;\n        uVar8 = (uint)bVar1;\n        if ((char)bVar1 < '\0') {\n          uVar8 = FUN_002112d0((uint *)((long)local_70 + 1),&local_68,bVar1);\n          local_70 = (uint *)(local_68 + (long)local_70);\n        }\n        else {\n          local_68 = 1;\n          local_70 = (uint *)((long)local_70 + 1);\n        }\n      }\n      puVar11 = local_70;\n      pbVar15 = (byte *)((long)local_70 + (param_1[2] - lVar12));\n      local_48 = 0;\n      local_58 = uVar2;\n      uStack_54 = uVar8;\n      if (uVar8 == 0xe) {\n        lVar10 = *param_1;\n        if (*(int *)(lVar10 + 0x60) == 4) {\n          uVar8 = FUN_00305610(lVar10,&local_70);\n          local_60 = (uint *)(ulong)uVar8;\n        }\n        else {\n          pcVar3 = *(code **)(**(long **)(lVar10 + 0x10) + 0x18);\n          if (pcVar3 == FUN_001b8d10) {\n            cVar6 = (**(code **)(**(long **)(lVar10 + 0x10) + 0x1d0))();\n          }\n          else {\n            cVar6 = (*pcVar3)();\n          }\n          local_60 = *(uint **)local_70;\n          if (cVar6 != '\0') {\n            local_60 = (uint *)((ulong)local_60 >> 0x38 |\n                                ((ulong)local_60 & 0xff000000000000) >> 0x28 |\n                                ((ulong)local_60 & 0xff0000000000) >> 0x18 |\n                                ((ulong)local_60 & 0xff00000000) >> 8 |\n                                ((ulong)local_60 & 0xff000000) << 8 |\n                                ((ulong)local_60 & 0xff0000) << 0x18 |\n                                ((ulong)local_60 & 0xff00) << 0x28 | (long)local_60 << 0x38);\n          }\n          local_70 = local_70 + 2;\n        }\n        local_48 = FUN_00301dc0(*param_1,pbVar15,&local_60);\n        puStack_50 = local_60;\n        if (uVar2 != 0x31) {\n          if (uVar2 < 0x32) {\n            if ((uVar2 != 1) && (uVar2 == 3)) {\nLAB_00302f64:\n              *(uint *)(param_1 + 0xf) = local_48;\n              param_1[0xc] = (long)puStack_50;\n            }\n          }\n          else if ((uVar2 == 0x6e) || (uVar2 == 0x2007)) {\nLAB_00302fd0:\n            *(uint *)(param_1 + 0xf) = local_48;\n            param_1[0xe] = (long)puStack_50;\n          }\n        }\nLAB_00302750:\n        puVar16 = (undefined8 *)param_1[8];\n        if (puVar16 != (undefined8 *)param_1[9]) goto LAB_0030275e;\nLAB_003028c0:\n        FUN_00305860(param_1 + 7,puVar16,&local_58);\n      }\n      else {\n        if (0xe < uVar8) {\n          if (uVar8 == 0x15) {\n            bVar1 = (byte)*local_70;\n            if ((char)bVar1 < '\0') {\n              puStack_50 = (uint *)FUN_002112d0((uint *)((long)local_70 + 1),&local_68,bVar1);\n              local_70 = (uint *)(local_68 + (long)local_70);\n            }\n            else {\n              local_68 = 1;\n              local_70 = (uint *)((long)local_70 + 1);\n              puStack_50 = (uint *)(ulong)bVar1;\n            }\njoined_r0x00303052:\n            if (uVar2 != 0x31) {\n              if (uVar2 < 0x32) {\nLAB_00302c20:\n                if ((uVar2 == 1) && (local_48 == 0)) {\n                  param_1[5] = (long)puStack_50;\n                }\n                goto LAB_00302750;\n              }\n              if ((uVar2 != 0x6e) && (uVar2 != 0x2007)) {\njoined_r0x00302ce3:\n                if (uVar2 == 0x47) {\n                  param_1[0x10] = (long)puStack_50;\n                }\n                goto LAB_00302750;\n              }\nLAB_00302fb5:\n              if (uVar8 == 8) {\nLAB_003029eb:\n                param_1[0xd] = (long)puStack_50;\n              }\n              else {\nLAB_00302fbe:\n                if (uVar8 == 0xe) goto LAB_00302fd0;\n              }\n              goto LAB_00302750;\n            }\n          }\n          else {\n            if (0x15 < uVar8) {\n              if (uVar8 != 0x19) {\n                if (uVar8 < 0x1a) {\n                  if (uVar8 == 0x17) {\n                    lVar10 = *param_1;\n                    if (*(int *)(lVar10 + 0x60) == 4) {\n                      uVar9 = FUN_00305610(lVar10,&local_70);\n                      local_60 = (uint *)(ulong)uVar9;\n                    }\n                    else {\n                      plVar17 = *(long **)(lVar10 + 0x10);\nLAB_00302fe7:\n                      pcVar3 = *(code **)(*plVar17 + 0x18);\n                      if (pcVar3 == FUN_001b8d10) {\n                        cVar6 = (**(code **)(*plVar17 + 0x1d0))();\n                      }\n                      else {\n                        cVar6 = (*pcVar3)();\n                      }\n                      local_60 = *(uint **)local_70;\n                      if (cVar6 != '\0') {\n                        local_60 = (uint *)((ulong)local_60 >> 0x38 |\n                                            ((ulong)local_60 & 0xff000000000000) >> 0x28 |\n                                            ((ulong)local_60 & 0xff0000000000) >> 0x18 |\n                                            ((ulong)local_60 & 0xff00000000) >> 8 |\n                                            ((ulong)local_60 & 0xff000000) << 8 |\n                                            ((ulong)local_60 & 0xff0000) << 0x18 |\n                                            ((ulong)local_60 & 0xff00) << 0x28 |\n                                           (long)local_60 << 0x38);\n                      }\n                      local_70 = local_70 + 2;\n                    }\nLAB_00303035:\n                    local_48 = FUN_00301dc0(*param_1,pbVar15,&local_60);\n                    puStack_50 = local_60;\n                    goto joined_r0x00303052;\n                  }\n                  if (uVar8 != 0x18) {\n                    return 0;\n                  }\nLAB_00302a09:\n                  bVar1 = (byte)*local_70;\n                  uVar9 = (uint)bVar1;\n                  puVar11 = (uint *)((long)local_70 + 1);\n                  if ((char)bVar1 < '\0') {\n                    uVar9 = FUN_002112d0(puVar11,&local_68,bVar1);\n                    puVar11 = (uint *)((long)local_70 + local_68);\n                  }\n                  else {\n                    local_68 = 1;\n                  }\n                  local_70 = (uint *)((long)local_70 + uVar9 + local_68);\n                  puStack_50 = puVar11;\n                  local_48 = uVar9;\n                }\n                else {\n                  if (uVar8 == 0x20) {\n                    pcVar3 = *(code **)(**(long **)(*param_1 + 0x10) + 0x18);\n                    if (pcVar3 == FUN_001b8d10) {\n                      cVar6 = (**(code **)(**(long **)(*param_1 + 0x10) + 0x1d0))();\n                    }\n                    else {\n                      cVar6 = (*pcVar3)();\n                    }\n                    puStack_50 = *(uint **)local_70;\n                    if (cVar6 != '\0') {\n                      puStack_50 = (uint *)((ulong)puStack_50 >> 0x38 |\n                                            ((ulong)puStack_50 & 0xff000000000000) >> 0x28 |\n                                            ((ulong)puStack_50 & 0xff0000000000) >> 0x18 |\n                                            ((ulong)puStack_50 & 0xff00000000) >> 8 |\n                                            ((ulong)puStack_50 & 0xff000000) << 8 |\n                                            ((ulong)puStack_50 & 0xff0000) << 0x18 |\n                                            ((ulong)puStack_50 & 0xff00) << 0x28 |\n                                           (long)puStack_50 << 0x38);\n                    }\n                    local_70 = local_70 + 2;\n                    goto LAB_00302ea9;\n                  }\n                  if (uVar8 < 0x20) {\n                    return 0;\n                  }\n                  if (1 < uVar8 - 0x1f01) {\n                    return 0;\n                  }\nLAB_00302bcd:\n                  bVar1 = (byte)*local_70;\n                  if ((char)bVar1 < '\0') {\n                    puStack_50 = (uint *)FUN_002112d0((uint *)((long)local_70 + 1),&local_68,bVar1);\n                    local_70 = (uint *)(local_68 + (long)local_70);\n                  }\n                  else {\n                    local_68 = 1;\n                    local_70 = (uint *)((long)local_70 + 1);\n                    puStack_50 = (uint *)(ulong)bVar1;\n                  }\n                }\nLAB_00302f92:\n                if (uVar2 == 0x31) goto LAB_00302750;\n                if (0x31 < uVar2) {\n                  if ((uVar2 == 0x6e) || (uVar2 == 0x2007)) goto LAB_00302fb5;\n                  goto LAB_00302750;\n                }\n                goto LAB_00302e3e;\n              }\n              puStack_50 = (uint *)0x1;\nLAB_00302ea9:\n              if (((uVar2 == 0x31) || (0x31 < uVar2)) || (uVar2 != 3)) goto LAB_00302750;\nLAB_00302e52:\n              if (uVar8 == 8) {\nLAB_003029c7:\n                param_1[0xb] = (long)puStack_50;\n              }\n              else if (uVar8 == 0xe) goto LAB_00302f64;\n              goto LAB_00302750;\n            }\n            if (uVar8 != 0x11) {\n              if (0x11 < uVar8) {\n                if (uVar8 == 0x13) {\n                  uVar9 = FUN_00305610(*param_1,&local_70);\n                  local_60 = (uint *)(ulong)uVar9;\n                  goto LAB_00303035;\n                }\n                if (0x13 < uVar8) {\n                  plVar17 = *(long **)(*param_1 + 0x10);\n                  goto LAB_00302fe7;\n                }\n                pcVar3 = *(code **)(**(long **)(*param_1 + 0x10) + 0x18);\n                if (pcVar3 == FUN_001b8d10) {\n                  cVar6 = (**(code **)(**(long **)(*param_1 + 0x10) + 0x1d0))();\n                }\n                else {\n                  cVar6 = (*pcVar3)();\n                }\n                uVar5 = (ushort)*local_70;\n                if (cVar6 != '\0') {\n                  uVar5 = CONCAT11((byte)*local_70,*(byte *)((long)local_70 + 1));\n                }\n                local_70 = (uint *)((long)local_70 + 2);\n                puStack_50 = (uint *)(ulong)uVar5;\n                goto joined_r0x00303052;\n              }\n              if (uVar8 == 0xf) goto LAB_00302bcd;\n              if (uVar8 != 0x10) {\n                return 0;\n              }\n              lVar10 = *param_1;\n              iVar7 = *(int *)(lVar10 + 100);\n              if (2 < *(uint *)(lVar10 + 0x68)) {\n                iVar7 = *(int *)(lVar10 + 0x60);\n              }\n              if (iVar7 != 4) goto LAB_00302a71;\nLAB_00302e7d:\n              uVar8 = FUN_00305610(lVar10,&local_70);\n              local_60 = (uint *)(ulong)uVar8;\nLAB_00302abe:\n              local_48 = FUN_00301dc0(*param_1,pbVar15,&local_60);\n              puStack_50 = local_60;\n              if (uVar2 == 0x31) goto LAB_00302965;\n              if (0x31 < uVar2) goto joined_r0x00302ccc;\n              goto LAB_00302c20;\n            }\n            puVar11 = (uint *)((long)local_70 + 1);\n            puStack_50 = (uint *)(ulong)(byte)*local_70;\n            local_70 = puVar11;\n            if (uVar2 != 0x31) {\n              if (uVar2 < 0x32) {\n                if (uVar2 == 1) {\n                  param_1[5] = (long)puStack_50;\n                }\n                goto LAB_00302750;\n              }\njoined_r0x00302ccc:\n              if ((uVar2 == 0x6e) || (uVar2 == 0x2007)) goto LAB_00302750;\n              goto joined_r0x00302ce3;\n            }\n          }\nLAB_00302965:\n          param_1[0x11] = (long)puStack_50;\n          goto LAB_00302750;\n        }\n        if (uVar8 == 7) {\n          pcVar3 = *(code **)(**(long **)(*param_1 + 0x10) + 0x18);\n          if (pcVar3 == FUN_001b8d10) {\n            cVar6 = (**(code **)(**(long **)(*param_1 + 0x10) + 0x1d0))();\n          }\n          else {\n            cVar6 = (*pcVar3)();\n          }\n          local_60 = *(uint **)local_70;\n          if (cVar6 != '\0') {\n            local_60 = (uint *)((ulong)local_60 >> 0x38 |\n                                ((ulong)local_60 & 0xff000000000000) >> 0x28 |\n                                ((ulong)local_60 & 0xff0000000000) >> 0x18 |\n                                ((ulong)local_60 & 0xff00000000) >> 8 |\n                                ((ulong)local_60 & 0xff000000) << 8 |\n                                ((ulong)local_60 & 0xff0000) << 0x18 |\n                                ((ulong)local_60 & 0xff00) << 0x28 | (long)local_60 << 0x38);\n          }\n          local_70 = local_70 + 2;\nLAB_00302d40:\n          local_48 = FUN_00301dc0(*param_1,pbVar15,&local_60);\n          puStack_50 = local_60;\njoined_r0x00302748:\n          if ((uVar2 != 0x31) && (uVar2 < 0x32)) {\nLAB_00302e3e:\n            if ((uVar2 != 1) && (uVar2 == 3)) goto LAB_00302e52;\n          }\n          goto LAB_00302750;\n        }\n        if (uVar8 < 8) {\n          if (uVar8 == 4) {\n            pcVar3 = *(code **)(**(long **)(*param_1 + 0x10) + 0x18);\n            if (pcVar3 == FUN_001b8d10) {\n              cVar6 = (**(code **)(**(long **)(*param_1 + 0x10) + 0x1d0))();\n            }\n            else {\n              cVar6 = (*pcVar3)();\n            }\n            local_48 = *local_70;\n            if (cVar6 != '\0') {\n              local_48 = local_48 >> 0x18 | (local_48 & 0xff0000) >> 8 | (local_48 & 0xff00) << 8 |\n                         local_48 << 0x18;\n            }\n            puStack_50 = local_70 + 1;\n            local_70 = (uint *)((long)puStack_50 + (ulong)local_48);\n          }\n          else if (uVar8 < 5) {\n            if (uVar8 == 1) {\n              lVar10 = *param_1;\n              if (*(int *)(lVar10 + 100) == 4) goto LAB_00302e7d;\nLAB_00302a71:\n              pcVar3 = *(code **)(**(long **)(lVar10 + 0x10) + 0x18);\n              if (pcVar3 == FUN_001b8d10) {\n                cVar6 = (**(code **)(**(long **)(lVar10 + 0x10) + 0x1d0))();\n              }\n              else {\n                cVar6 = (*pcVar3)();\n              }\n              local_60 = *(uint **)local_70;\n              if (cVar6 != '\0') {\n                local_60 = (uint *)((ulong)local_60 >> 0x38 |\n                                    ((ulong)local_60 & 0xff000000000000) >> 0x28 |\n                                    ((ulong)local_60 & 0xff0000000000) >> 0x18 |\n                                    ((ulong)local_60 & 0xff00000000) >> 8 |\n                                    ((ulong)local_60 & 0xff000000) << 8 |\n                                    ((ulong)local_60 & 0xff0000) << 0x18 |\n                                    ((ulong)local_60 & 0xff00) << 0x28 | (long)local_60 << 0x38);\n              }\n              local_70 = local_70 + 2;\n              goto LAB_00302abe;\n            }\n            if (uVar8 != 3) {\n              return 0;\n            }\n            pcVar3 = *(code **)(**(long **)(*param_1 + 0x10) + 0x18);\n            if (pcVar3 == FUN_001b8d10) {\n              cVar6 = (**(code **)(**(long **)(*param_1 + 0x10) + 0x1d0))();\n            }\n            else {\n              cVar6 = (*pcVar3)();\n            }\n            uVar5 = (ushort)*local_70;\n            if (cVar6 != '\0') {\n              uVar5 = CONCAT11((byte)*local_70,*(byte *)((long)local_70 + 1));\n            }\n            local_48 = (uint)uVar5;\n            puStack_50 = (uint *)((long)local_70 + 2);\n            local_70 = (uint *)((long)puStack_50 + (ulong)local_48);\n          }\n          else {\n            if (uVar8 != 5) {\n              if (uVar8 != 6) {\n                return 0;\n              }\n              pcVar3 = *(code **)(**(long **)(*param_1 + 0x10) + 0x18);\n              if (pcVar3 == FUN_001b8d10) {\n                cVar6 = (**(code **)(**(long **)(*param_1 + 0x10) + 0x1d0))();\n              }\n              else {\n                cVar6 = (*pcVar3)();\n              }\n              uVar9 = *local_70;\n              if (cVar6 != '\0') {\n                uVar9 = uVar9 >> 0x18 | (uVar9 & 0xff0000) >> 8 | (uVar9 & 0xff00) << 8 |\n                        uVar9 << 0x18;\n              }\n              local_60 = (uint *)(ulong)uVar9;\n              local_70 = local_70 + 1;\n              goto LAB_00302d40;\n            }\n            pcVar3 = *(code **)(**(long **)(*param_1 + 0x10) + 0x18);\n            if (pcVar3 == FUN_001b8d10) {\n              cVar6 = (**(code **)(**(long **)(*param_1 + 0x10) + 0x1d0))();\n            }\n            else {\n              cVar6 = (*pcVar3)();\n            }\n            uVar5 = (ushort)*local_70;\n            if (cVar6 != '\0') {\n              uVar5 = CONCAT11((byte)*local_70,*(byte *)((long)local_70 + 1));\n            }\n            local_70 = (uint *)((long)local_70 + 2);\n            puStack_50 = (uint *)(ulong)uVar5;\n          }\n          goto joined_r0x00302748;\n        }\n        if (uVar8 == 10) {\n          puStack_50 = (uint *)((long)local_70 + 1);\n          uVar9 = *local_70;\n          local_70 = (uint *)((long)puStack_50 + (ulong)(byte)uVar9);\n          local_48 = (uint)(byte)uVar9;\n          goto joined_r0x00302748;\n        }\n        if (uVar8 < 0xb) {\n          if (uVar8 != 8) {\n            if (uVar8 != 9) {\n              return 0;\n            }\n            goto LAB_00302a09;\n          }\n          puStack_50 = local_70;\n          local_68 = strlen((char *)local_70);\n          local_70 = (uint *)((long)puVar11 + local_68 + 1);\n          if (uVar2 == 0x31) goto LAB_00302750;\n          if (0x31 < uVar2) {\n            if ((uVar2 != 0x6e) && (uVar2 != 0x2007)) goto LAB_00302750;\n            goto LAB_003029eb;\n          }\n          if ((uVar2 == 1) || (uVar2 != 3)) goto LAB_00302750;\n          goto LAB_003029c7;\n        }\n        if (uVar8 < 0xd) {\n          uVar9 = *local_70;\n          local_70 = (uint *)((long)local_70 + 1);\n          puStack_50 = (uint *)(ulong)(byte)uVar9;\n          goto LAB_00302f92;\n        }\n        bVar1 = (byte)*local_70;\n        puVar11 = (uint *)((long)local_70 + 1);\n        if ((char)bVar1 < '\0') {\n          puStack_50 = (uint *)FUN_00211340(puVar11,&local_68);\n          puVar11 = (uint *)(local_68 + (long)local_70);\n        }\n        else {\n          local_68 = 1;\n          puStack_50 = (uint *)(ulong)bVar1;\n          if ((bVar1 & 0x40) != 0) {\n            puStack_50 = (uint *)((ulong)bVar1 | 0xffffffffffffff80);\n          }\n        }\n        local_70 = puVar11;\n        if ((uVar2 == 0x31) || (uVar2 < 0x32)) goto LAB_00302750;\n        if ((uVar2 == 0x6e) || (uVar2 == 0x2007)) goto LAB_00302fbe;\n        puVar16 = (undefined8 *)param_1[8];\n        if (puVar16 == (undefined8 *)param_1[9]) goto LAB_003028c0;\nLAB_0030275e:\n        *puVar16 = CONCAT44(uStack_54,local_58);\n        puVar16[1] = puStack_50;\n        puVar16[2] = CONCAT44(uStack_44,local_48);\n        param_1[8] = (long)(puVar16 + 3);\n      }\n      lVar20 = lVar20 + 8;\n      lVar10 = param_1[6];\n    } while (lVar20 != (ulong)(iVar13 - 1) * 8 + 8);\n  }\n  if (lVar10 == 0) {\n                    \n    FUN_001e9890("../../gold/dwarf_reader.h",0x206,"has_children");\n  }\n  lVar18 = param_1[2];\nLAB_00302797:\n  pbVar15 = (byte *)((long)local_70 + (lVar18 - lVar12));\n  if ((*(byte *)(lVar10 + 4) & 1) == 0) {\n    param_1[5] = (long)pbVar15;\n  }\n  else {\n    param_1[4] = (long)pbVar15;\n  }\n  *(undefined1 *)(param_1 + 10) = 1;\n  return 1;\n}" ({ "{") (declaration "byte bVar1;" (type_identifier "byte") (identifier "bVar1") (; ";")) (declaration "uint uVar2;" (type_identifier "uint") (identifier "uVar2") (; ";")) (declaration "void *__src;" (primitive_type "void") (pointer_declarator "*__src" (* "*") (identifier "__src")) (; ";")) (declaration "code *pcVar3;" (type_identifier "code") (pointer_declarator "*pcVar3" (* "*") (identifier "pcVar3")) (; ";")) (declaration "void *pvVar4;" (primitive_type "void") (pointer_declarator "*pvVar4" (* "*") (identifier "pvVar4")) (; ";")) (declaration "ushort uVar5;" (type_identifier "ushort") (identifier "uVar5") (; ";")) (declaration "char cVar6;" (primitive_type "char") (identifier "cVar6") (; ";")) (declaration "int iVar7;" (primitive_type "int") (identifier "iVar7") (; ";")) (declaration "uint uVar8;" (type_identifier "uint") (identifier "uVar8") (; ";")) (declaration "uint uVar9;" (type_identifier "uint") (identifier "uVar9") (; ";")) (declaration "long lVar10;" (sized_type_specifier "long" (long "long")) (identifier "lVar10") (; ";")) (declaration "void *__dest;" (primitive_type "void") (pointer_declarator "*__dest" (* "*") (identifier "__dest")) (; ";")) (declaration "uint *puVar11;" (type_identifier "uint") (pointer_declarator "*puVar11" (* "*") (identifier "puVar11")) (; ";")) (declaration "long lVar12;" (sized_type_specifier "long" (long "long")) (identifier "lVar12") (; ";")) (declaration "int iVar13;" (primitive_type "int") (identifier "iVar13") (; ";")) (declaration "ulong uVar14;" (type_identifier "ulong") (identifier "uVar14") (; ";")) (declaration "byte *pbVar15;" (type_identifier "byte") (pointer_declarator "*pbVar15" (* "*") (identifier "pbVar15")) (; ";")) (declaration "undefined8 *puVar16;" (type_identifier "undefined8") (pointer_declarator "*puVar16" (* "*") (identifier "puVar16")) (; ";")) (declaration "long *plVar17;" (sized_type_specifier "long" (long "long")) (pointer_declarator "*plVar17" (* "*") (identifier "plVar17")) (; ";")) (declaration "long lVar18;" (sized_type_specifier "long" (long "long")) (identifier "lVar18") (; ";")) (declaration "void *pvVar19;" (primitive_type "void") (pointer_declarator "*pvVar19" (* "*") (identifier "pvVar19")) (; ";")) (declaration "size_t __n;" (primitive_type "size_t") (identifier "__n") (; ";")) (declaration "long lVar20;" (sized_type_specifier "long" (long "long")) (identifier "lVar20") (; ";")) (declaration "uint *local_70;" (type_identifier "uint") (pointer_declarator "*local_70" (* "*") (identifier "local_70")) (; ";")) (declaration "size_t local_68;" (primitive_type "size_t") (identifier "local_68") (; ";")) (declaration "uint *local_60;" (type_identifier "uint") (pointer_declarator "*local_60" (* "*") (identifier "local_60")) (; ";")) (declaration "uint local_58;" (type_identifier "uint") (identifier "local_58") (; ";")) (declaration "uint uStack_54;" (type_identifier "uint") (identifier "uStack_54") (; ";")) (declaration "uint *puStack_50;" (type_identifier "uint") (pointer_declarator "*puStack_50" (* "*") (identifier "puStack_50")) (; ";")) (declaration "uint local_48;" (type_identifier "uint") (identifier "local_48") (; ";")) (declaration "undefined4 uStack_44;" (type_identifier "undefined4") (identifier "uStack_44") (; ";")) (expression_statement "lVar10 = param_1[6];" (assignment_expression "lVar10 = param_1[6]" (identifier "lVar10") (= "=") (subscript_expression "param_1[6]" (identifier "param_1") ([ "[") (number_literal "6") (] "]"))) (; ";")) (if_statement "if (lVar10 == 0) {\n                    \n    FUN_001e9890("../../gold/dwarf_reader.cc",0x2a9,"read_attributes");\n  }" (if "if") (parenthesized_expression "(lVar10 == 0)" (( "(") (binary_expression "lVar10 == 0" (identifier "lVar10") (== "==") (number_literal "0")) () ")")) (compound_statement "{\n                    \n    FUN_001e9890("../../gold/dwarf_reader.cc",0x2a9,"read_attributes");\n  }" ({ "{") (expression_statement "FUN_001e9890("../../gold/dwarf_reader.cc",0x2a9,"read_attributes");" (call_expression "FUN_001e9890("../../gold/dwarf_reader.cc",0x2a9,"read_attributes")" (identifier "FUN_001e9890") (argument_list "("../../gold/dwarf_reader.cc",0x2a9,"read_attributes")" (( "(") (string_literal ""../../gold/dwarf_reader.cc"" (" """) (string_content "../../gold/dwarf_reader.cc") (" """)) (, ",") (number_literal "0x2a9") (, ",") (string_literal ""read_attributes"" (" """) (string_content "read_attributes") (" """)) () ")"))) (; ";")) (} "}"))) (expression_statement "lVar20 = *param_1;" (assignment_expression "lVar20 = *param_1" (identifier "lVar20") (= "=") (pointer_expression "*param_1" (* "*") (identifier "param_1"))) (; ";")) (expression_statement "lVar18 = param_1[2];" (assignment_expression "lVar18 = param_1[2]" (identifier "lVar18") (= "=") (subscript_expression "param_1[2]" (identifier "param_1") ([ "[") (number_literal "2") (] "]"))) (; ";")) (expression_statement "lVar12 = *(long *)(lVar20 + 0x50) + lVar18 + *(long *)(lVar20 + 0x40);" (assignment_expression "lVar12 = *(long *)(lVar20 + 0x50) + lVar18 + *(long *)(lVar20 + 0x40)" (identifier "lVar12") (= "=") (binary_expression "*(long *)(lVar20 + 0x50) + lVar18 + *(long *)(lVar20 + 0x40)" (binary_expression "*(long *)(lVar20 + 0x50) + lVar18" (pointer_expression "*(long *)(lVar20 + 0x50)" (* "*") (cast_expression "(long *)(lVar20 + 0x50)" (( "(") (type_descriptor "long *" (sized_type_specifier "long" (long "long")) (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(lVar20 + 0x50)" (( "(") (binary_expression "lVar20 + 0x50" (identifier "lVar20") (+ "+") (number_literal "0x50")) () ")")))) (+ "+") (identifier "lVar18")) (+ "+") (pointer_expression "*(long *)(lVar20 + 0x40)" (* "*") (cast_expression "(long *)(lVar20 + 0x40)" (( "(") (type_descriptor "long *" (sized_type_specifier "long" (long "long")) (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(lVar20 + 0x40)" (( "(") (binary_expression "lVar20 + 0x40" (identifier "lVar20") (+ "+") (number_literal "0x40")) () ")")))))) (; ";")) (if_statement "if ((ulong)(*(long *)(lVar20 + 0x40) + *(long *)(lVar20 + 0x50) + *(long *)(lVar20 + 0x58)) <\n      lVar12 + 1U) {\n    FUN_00301e70();\n    return 0;\n  }" (if "if") (parenthesized_expression "((ulong)(*(long *)(lVar20 + 0x40) + *(long *)(lVar20 + 0x50) + *(long *)(lVar20 + 0x58)) <\n      lVar12 + 1U)" (( "(") (binary_expression "(ulong)(*(long *)(lVar20 + 0x40) + *(long *)(lVar20 + 0x50) + *(long *)(lVar20 + 0x58)) <\n      lVar12 + 1U" (call_expression "(ulong)(*(long *)(lVar20 + 0x40) + *(long *)(lVar20 + 0x50) + *(long *)(lVar20 + 0x58))" (parenthesized_expression "(ulong)" (( "(") (identifier "ulong") () ")")) (argument_list "(*(long *)(lVar20 + 0x40) + *(long *)(lVar20 + 0x50) + *(long *)(lVar20 + 0x58))" (( "(") (binary_expression "*(long *)(lVar20 + 0x40) + *(long *)(lVar20 + 0x50) + *(long *)(lVar20 + 0x58)" (binary_expression "*(long *)(lVar20 + 0x40) + *(long *)(lVar20 + 0x50)" (pointer_expression "*(long *)(lVar20 + 0x40)" (* "*") (cast_expression "(long *)(lVar20 + 0x40)" (( "(") (type_descriptor "long *" (sized_type_specifier "long" (long "long")) (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(lVar20 + 0x40)" (( "(") (binary_expression "lVar20 + 0x40" (identifier "lVar20") (+ "+") (number_literal "0x40")) () ")")))) (+ "+") (pointer_expression "*(long *)(lVar20 + 0x50)" (* "*") (cast_expression "(long *)(lVar20 + 0x50)" (( "(") (type_descriptor "long *" (sized_type_specifier "long" (long "long")) (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(lVar20 + 0x50)" (( "(") (binary_expression "lVar20 + 0x50" (identifier "lVar20") (+ "+") (number_literal "0x50")) () ")"))))) (+ "+") (pointer_expression "*(long *)(lVar20 + 0x58)" (* "*") (cast_expression "(long *)(lVar20 + 0x58)" (( "(") (type_descriptor "long *" (sized_type_specifier "long" (long "long")) (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(lVar20 + 0x58)" (( "(") (binary_expression "lVar20 + 0x58" (identifier "lVar20") (+ "+") (number_literal "0x58")) () ")"))))) () ")"))) (< "<") (binary_expression "lVar12 + 1U" (identifier "lVar12") (+ "+") (number_literal "1U"))) () ")")) (compound_statement "{\n    FUN_00301e70();\n    return 0;\n  }" ({ "{") (expression_statement "FUN_00301e70();" (call_expression "FUN_00301e70()" (identifier "FUN_00301e70") (argument_list "()" (( "(") () ")"))) (; ";")) (return_statement "return 0;" (return "return") (number_literal "0") (; ";")) (} "}"))) (if_statement "if (lVar12 == 0) {\n    return 0;\n  }" (if "if") (parenthesized_expression "(lVar12 == 0)" (( "(") (binary_expression "lVar12 == 0" (identifier "lVar12") (== "==") (number_literal "0")) () ")")) (compound_statement "{\n    return 0;\n  }" ({ "{") (return_statement "return 0;" (return "return") (number_literal "0") (; ";")) (} "}"))) (expression_statement "__src = (void *)param_1[7];" (assignment_expression "__src = (void *)param_1[7]" (identifier "__src") (= "=") (cast_expression "(void *)param_1[7]" (( "(") (type_descriptor "void *" (primitive_type "void") (abstract_pointer_declarator "*" (* "*"))) () ")") (subscript_expression "param_1[7]" (identifier "param_1") ([ "[") (number_literal "7") (] "]")))) (; ";")) (expression_statement "local_70 = (uint *)(param_1[3] + lVar12);" (assignment_expression "local_70 = (uint *)(param_1[3] + lVar12)" (identifier "local_70") (= "=") (cast_expression "(uint *)(param_1[3] + lVar12)" (( "(") (type_descriptor "uint *" (type_identifier "uint") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_1[3] + lVar12)" (( "(") (binary_expression "param_1[3] + lVar12" (subscript_expression "param_1[3]" (identifier "param_1") ([ "[") (number_literal "3") (] "]")) (+ "+") (identifier "lVar12")) () ")")))) (; ";")) (expression_statement "uVar14 = *(long *)(lVar10 + 0x10) - *(long *)(lVar10 + 8) >> 3;" (assignment_expression "uVar14 = *(long *)(lVar10 + 0x10) - *(long *)(lVar10 + 8) >> 3" (identifier "uVar14") (= "=") (binary_expression "*(long *)(lVar10 + 0x10) - *(long *)(lVar10 + 8) >> 3" (binary_expression "*(long *)(lVar10 + 0x10) - *(long *)(lVar10 + 8)" (pointer_expression "*(long *)(lVar10 + 0x10)" (* "*") (cast_expression "(long *)(lVar10 + 0x10)" (( "(") (type_descriptor "long *" (sized_type_specifier "long" (long "long")) (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(lVar10 + 0x10)" (( "(") (binary_expression "lVar10 + 0x10" (identifier "lVar10") (+ "+") (number_literal "0x10")) () ")")))) (- "-") (pointer_expression "*(long *)(lVar10 + 8)" (* "*") (cast_expression "(long *)(lVar10 + 8)" (( "(") (type_descriptor "long *" (sized_type_specifier "long" (long "long")) (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(lVar10 + 8)" (( "(") (binary_expression "lVar10 + 8" (identifier "lVar10") (+ "+") (number_literal "8")) () ")"))))) (>> ">>") (number_literal "3"))) (; ";")) (expression_statement "iVar13 = (int)uVar14;" (assignment_expression "iVar13 = (int)uVar14" (identifier "iVar13") (= "=") (cast_expression "(int)uVar14" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "uVar14"))) (; ";")) (expression_statement "uVar14 = uVar14 & 0xffffffff;" (assignment_expression "uVar14 = uVar14 & 0xffffffff" (identifier "uVar14") (= "=") (binary_expression "uVar14 & 0xffffffff" (identifier "uVar14") (& "&") (number_literal "0xffffffff"))) (; ";")) (if_statement "if ((ulong)((param_1[9] - (long)__src >> 3) * -0x5555555555555555) < uVar14) {\n    pvVar4 = (void *)param_1[8];\n    __n = (long)pvVar4 - (long)__src;\n    if (uVar14 == 0) {\n      __dest = (void *)0x0;\n      pvVar19 = __src;\n    }\n    else {\n      __dest = (void *)FUN_00337280(uVar14 * 0x18);\n      pvVar19 = (void *)param_1[7];\n    }\n    if (__src != pvVar4) {\n      __dest = memmove(__dest,__src,__n);\n    }\n    if (pvVar19 != (void *)0x0) {\n      FUN_00338a50(pvVar19);\n    }\n    param_1[7] = (long)__dest;\n    lVar10 = param_1[6];\n    param_1[8] = __n + (long)__dest;\n    param_1[9] = (long)(uVar14 * 0x18 + (long)__dest);\n    if (iVar13 != 0) goto LAB_00302642;\n  }\n  else {\n    if (iVar13 == 0) goto LAB_00302797;\nLAB_00302642:\n    lVar20 = 0;\n    do {\n      puVar11 = (uint *)(*(long *)(lVar10 + 8) + lVar20);\n      uVar8 = puVar11[1];\n      uVar2 = *puVar11;\n      if (uVar8 == 0x16) {\n        bVar1 = (byte)*local_70;\n        uVar8 = (uint)bVar1;\n        if ((char)bVar1 < '\0') {\n          uVar8 = FUN_002112d0((uint *)((long)local_70 + 1),&local_68,bVar1);\n          local_70 = (uint *)(local_68 + (long)local_70);\n        }\n        else {\n          local_68 = 1;\n          local_70 = (uint *)((long)local_70 + 1);\n        }\n      }\n      puVar11 = local_70;\n      pbVar15 = (byte *)((long)local_70 + (param_1[2] - lVar12));\n      local_48 = 0;\n      local_58 = uVar2;\n      uStack_54 = uVar8;\n      if (uVar8 == 0xe) {\n        lVar10 = *param_1;\n        if (*(int *)(lVar10 + 0x60) == 4) {\n          uVar8 = FUN_00305610(lVar10,&local_70);\n          local_60 = (uint *)(ulong)uVar8;\n        }\n        else {\n          pcVar3 = *(code **)(**(long **)(lVar10 + 0x10) + 0x18);\n          if (pcVar3 == FUN_001b8d10) {\n            cVar6 = (**(code **)(**(long **)(lVar10 + 0x10) + 0x1d0))();\n          }\n          else {\n            cVar6 = (*pcVar3)();\n          }\n          local_60 = *(uint **)local_70;\n          if (cVar6 != '\0') {\n            local_60 = (uint *)((ulong)local_60 >> 0x38 |\n                                ((ulong)local_60 & 0xff000000000000) >> 0x28 |\n                                ((ulong)local_60 & 0xff0000000000) >> 0x18 |\n                                ((ulong)local_60 & 0xff00000000) >> 8 |\n                                ((ulong)local_60 & 0xff000000) << 8 |\n                                ((ulong)local_60 & 0xff0000) << 0x18 |\n                                ((ulong)local_60 & 0xff00) << 0x28 | (long)local_60 << 0x38);\n          }\n          local_70 = local_70 + 2;\n        }\n        local_48 = FUN_00301dc0(*param_1,pbVar15,&local_60);\n        puStack_50 = local_60;\n        if (uVar2 != 0x31) {\n          if (uVar2 < 0x32) {\n            if ((uVar2 != 1) && (uVar2 == 3)) {\nLAB_00302f64:\n              *(uint *)(param_1 + 0xf) = local_48;\n              param_1[0xc] = (long)puStack_50;\n            }\n          }\n          else if ((uVar2 == 0x6e) || (uVar2 == 0x2007)) {\nLAB_00302fd0:\n            *(uint *)(param_1 + 0xf) = local_48;\n            param_1[0xe] = (long)puStack_50;\n          }\n        }\nLAB_00302750:\n        puVar16 = (undefined8 *)param_1[8];\n        if (puVar16 != (undefined8 *)param_1[9]) goto LAB_0030275e;\nLAB_003028c0:\n        FUN_00305860(param_1 + 7,puVar16,&local_58);\n      }\n      else {\n        if (0xe < uVar8) {\n          if (uVar8 == 0x15) {\n            bVar1 = (byte)*local_70;\n            if ((char)bVar1 < '\0') {\n              puStack_50 = (uint *)FUN_002112d0((uint *)((long)local_70 + 1),&local_68,bVar1);\n              local_70 = (uint *)(local_68 + (long)local_70);\n            }\n            else {\n              local_68 = 1;\n              local_70 = (uint *)((long)local_70 + 1);\n              puStack_50 = (uint *)(ulong)bVar1;\n            }\njoined_r0x00303052:\n            if (uVar2 != 0x31) {\n              if (uVar2 < 0x32) {\nLAB_00302c20:\n                if ((uVar2 == 1) && (local_48 == 0)) {\n                  param_1[5] = (long)puStack_50;\n                }\n                goto LAB_00302750;\n              }\n              if ((uVar2 != 0x6e) && (uVar2 != 0x2007)) {\njoined_r0x00302ce3:\n                if (uVar2 == 0x47) {\n                  param_1[0x10] = (long)puStack_50;\n                }\n                goto LAB_00302750;\n              }\nLAB_00302fb5:\n              if (uVar8 == 8) {\nLAB_003029eb:\n                param_1[0xd] = (long)puStack_50;\n              }\n              else {\nLAB_00302fbe:\n                if (uVar8 == 0xe) goto LAB_00302fd0;\n              }\n              goto LAB_00302750;\n            }\n          }\n          else {\n            if (0x15 < uVar8) {\n              if (uVar8 != 0x19) {\n                if (uVar8 < 0x1a) {\n                  if (uVar8 == 0x17) {\n                    lVar10 = *param_1;\n                    if (*(int *)(lVar10 + 0x60) == 4) {\n                      uVar9 = FUN_00305610(lVar10,&local_70);\n                      local_60 = (uint *)(ulong)uVar9;\n                    }\n                    else {\n                      plVar17 = *(long **)(lVar10 + 0x10);\nLAB_00302fe7:\n                      pcVar3 = *(code **)(*plVar17 + 0x18);\n                      if (pcVar3 == FUN_001b8d10) {\n                        cVar6 = (**(code **)(*plVar17 + 0x1d0))();\n                      }\n                      else {\n                        cVar6 = (*pcVar3)();\n                      }\n                      local_60 = *(uint **)local_70;\n                      if (cVar6 != '\0') {\n                        local_60 = (uint *)((ulong)local_60 >> 0x38 |\n                                            ((ulong)local_60 & 0xff000000000000) >> 0x28 |\n                                            ((ulong)local_60 & 0xff0000000000) >> 0x18 |\n                                            ((ulong)local_60 & 0xff00000000) >> 8 |\n                                            ((ulong)local_60 & 0xff000000) << 8 |\n                                            ((ulong)local_60 & 0xff0000) << 0x18 |\n                                            ((ulong)local_60 & 0xff00) << 0x28 |\n                                           (long)local_60 << 0x38);\n                      }\n                      local_70 = local_70 + 2;\n                    }\nLAB_00303035:\n                    local_48 = FUN_00301dc0(*param_1,pbVar15,&local_60);\n                    puStack_50 = local_60;\n                    goto joined_r0x00303052;\n                  }\n                  if (uVar8 != 0x18) {\n                    return 0;\n                  }\nLAB_00302a09:\n                  bVar1 = (byte)*local_70;\n                  uVar9 = (uint)bVar1;\n                  puVar11 = (uint *)((long)local_70 + 1);\n                  if ((char)bVar1 < '\0') {\n                    uVar9 = FUN_002112d0(puVar11,&local_68,bVar1);\n                    puVar11 = (uint *)((long)local_70 + local_68);\n                  }\n                  else {\n                    local_68 = 1;\n                  }\n                  local_70 = (uint *)((long)local_70 + uVar9 + local_68);\n                  puStack_50 = puVar11;\n                  local_48 = uVar9;\n                }\n                else {\n                  if (uVar8 == 0x20) {\n                    pcVar3 = *(code **)(**(long **)(*param_1 + 0x10) + 0x18);\n                    if (pcVar3 == FUN_001b8d10) {\n                      cVar6 = (**(code **)(**(long **)(*param_1 + 0x10) + 0x1d0))();\n                    }\n                    else {\n                      cVar6 = (*pcVar3)();\n                    }\n                    puStack_50 = *(uint **)local_70;\n                    if (cVar6 != '\0') {\n                      puStack_50 = (uint *)((ulong)puStack_50 >> 0x38 |\n                                            ((ulong)puStack_50 & 0xff000000000000) >> 0x28 |\n                                            ((ulong)puStack_50 & 0xff0000000000) >> 0x18 |\n                                            ((ulong)puStack_50 & 0xff00000000) >> 8 |\n                                            ((ulong)puStack_50 & 0xff000000) << 8 |\n                                            ((ulong)puStack_50 & 0xff0000) << 0x18 |\n                                            ((ulong)puStack_50 & 0xff00) << 0x28 |\n                                           (long)puStack_50 << 0x38);\n                    }\n                    local_70 = local_70 + 2;\n                    goto LAB_00302ea9;\n                  }\n                  if (uVar8 < 0x20) {\n                    return 0;\n                  }\n                  if (1 < uVar8 - 0x1f01) {\n                    return 0;\n                  }\nLAB_00302bcd:\n                  bVar1 = (byte)*local_70;\n                  if ((char)bVar1 < '\0') {\n                    puStack_50 = (uint *)FUN_002112d0((uint *)((long)local_70 + 1),&local_68,bVar1);\n                    local_70 = (uint *)(local_68 + (long)local_70);\n                  }\n                  else {\n                    local_68 = 1;\n                    local_70 = (uint *)((long)local_70 + 1);\n                    puStack_50 = (uint *)(ulong)bVar1;\n                  }\n                }\nLAB_00302f92:\n                if (uVar2 == 0x31) goto LAB_00302750;\n                if (0x31 < uVar2) {\n                  if ((uVar2 == 0x6e) || (uVar2 == 0x2007)) goto LAB_00302fb5;\n                  goto LAB_00302750;\n                }\n                goto LAB_00302e3e;\n              }\n              puStack_50 = (uint *)0x1;\nLAB_00302ea9:\n              if (((uVar2 == 0x31) || (0x31 < uVar2)) || (uVar2 != 3)) goto LAB_00302750;\nLAB_00302e52:\n              if (uVar8 == 8) {\nLAB_003029c7:\n                param_1[0xb] = (long)puStack_50;\n              }\n              else if (uVar8 == 0xe) goto LAB_00302f64;\n              goto LAB_00302750;\n            }\n            if (uVar8 != 0x11) {\n              if (0x11 < uVar8) {\n                if (uVar8 == 0x13) {\n                  uVar9 = FUN_00305610(*param_1,&local_70);\n                  local_60 = (uint *)(ulong)uVar9;\n                  goto LAB_00303035;\n                }\n                if (0x13 < uVar8) {\n                  plVar17 = *(long **)(*param_1 + 0x10);\n                  goto LAB_00302fe7;\n                }\n                pcVar3 = *(code **)(**(long **)(*param_1 + 0x10) + 0x18);\n                if (pcVar3 == FUN_001b8d10) {\n                  cVar6 = (**(code **)(**(long **)(*param_1 + 0x10) + 0x1d0))();\n                }\n                else {\n                  cVar6 = (*pcVar3)();\n                }\n                uVar5 = (ushort)*local_70;\n                if (cVar6 != '\0') {\n                  uVar5 = CONCAT11((byte)*local_70,*(byte *)((long)local_70 + 1));\n                }\n                local_70 = (uint *)((long)local_70 + 2);\n                puStack_50 = (uint *)(ulong)uVar5;\n                goto joined_r0x00303052;\n              }\n              if (uVar8 == 0xf) goto LAB_00302bcd;\n              if (uVar8 != 0x10) {\n                return 0;\n              }\n              lVar10 = *param_1;\n              iVar7 = *(int *)(lVar10 + 100);\n              if (2 < *(uint *)(lVar10 + 0x68)) {\n                iVar7 = *(int *)(lVar10 + 0x60);\n              }\n              if (iVar7 != 4) goto LAB_00302a71;\nLAB_00302e7d:\n              uVar8 = FUN_00305610(lVar10,&local_70);\n              local_60 = (uint *)(ulong)uVar8;\nLAB_00302abe:\n              local_48 = FUN_00301dc0(*param_1,pbVar15,&local_60);\n              puStack_50 = local_60;\n              if (uVar2 == 0x31) goto LAB_00302965;\n              if (0x31 < uVar2) goto joined_r0x00302ccc;\n              goto LAB_00302c20;\n            }\n            puVar11 = (uint *)((long)local_70 + 1);\n            puStack_50 = (uint *)(ulong)(byte)*local_70;\n            local_70 = puVar11;\n            if (uVar2 != 0x31) {\n              if (uVar2 < 0x32) {\n                if (uVar2 == 1) {\n                  param_1[5] = (long)puStack_50;\n                }\n                goto LAB_00302750;\n              }\njoined_r0x00302ccc:\n              if ((uVar2 == 0x6e) || (uVar2 == 0x2007)) goto LAB_00302750;\n              goto joined_r0x00302ce3;\n            }\n          }\nLAB_00302965:\n          param_1[0x11] = (long)puStack_50;\n          goto LAB_00302750;\n        }\n        if (uVar8 == 7) {\n          pcVar3 = *(code **)(**(long **)(*param_1 + 0x10) + 0x18);\n          if (pcVar3 == FUN_001b8d10) {\n            cVar6 = (**(code **)(**(long **)(*param_1 + 0x10) + 0x1d0))();\n          }\n          else {\n            cVar6 = (*pcVar3)();\n          }\n          local_60 = *(uint **)local_70;\n          if (cVar6 != '\0') {\n            local_60 = (uint *)((ulong)local_60 >> 0x38 |\n                                ((ulong)local_60 & 0xff000000000000) >> 0x28 |\n                                ((ulong)local_60 & 0xff0000000000) >> 0x18 |\n                                ((ulong)local_60 & 0xff00000000) >> 8 |\n                                ((ulong)local_60 & 0xff000000) << 8 |\n                                ((ulong)local_60 & 0xff0000) << 0x18 |\n                                ((ulong)local_60 & 0xff00) << 0x28 | (long)local_60 << 0x38);\n          }\n          local_70 = local_70 + 2;\nLAB_00302d40:\n          local_48 = FUN_00301dc0(*param_1,pbVar15,&local_60);\n          puStack_50 = local_60;\njoined_r0x00302748:\n          if ((uVar2 != 0x31) && (uVar2 < 0x32)) {\nLAB_00302e3e:\n            if ((uVar2 != 1) && (uVar2 == 3)) goto LAB_00302e52;\n          }\n          goto LAB_00302750;\n        }\n        if (uVar8 < 8) {\n          if (uVar8 == 4) {\n            pcVar3 = *(code **)(**(long **)(*param_1 + 0x10) + 0x18);\n            if (pcVar3 == FUN_001b8d10) {\n              cVar6 = (**(code **)(**(long **)(*param_1 + 0x10) + 0x1d0))();\n            }\n            else {\n              cVar6 = (*pcVar3)();\n            }\n            local_48 = *local_70;\n            if (cVar6 != '\0') {\n              local_48 = local_48 >> 0x18 | (local_48 & 0xff0000) >> 8 | (local_48 & 0xff00) << 8 |\n                         local_48 << 0x18;\n            }\n            puStack_50 = local_70 + 1;\n            local_70 = (uint *)((long)puStack_50 + (ulong)local_48);\n          }\n          else if (uVar8 < 5) {\n            if (uVar8 == 1) {\n              lVar10 = *param_1;\n              if (*(int *)(lVar10 + 100) == 4) goto LAB_00302e7d;\nLAB_00302a71:\n              pcVar3 = *(code **)(**(long **)(lVar10 + 0x10) + 0x18);\n              if (pcVar3 == FUN_001b8d10) {\n                cVar6 = (**(code **)(**(long **)(lVar10 + 0x10) + 0x1d0))();\n              }\n              else {\n                cVar6 = (*pcVar3)();\n              }\n              local_60 = *(uint **)local_70;\n              if (cVar6 != '\0') {\n                local_60 = (uint *)((ulong)local_60 >> 0x38 |\n                                    ((ulong)local_60 & 0xff000000000000) >> 0x28 |\n                                    ((ulong)local_60 & 0xff0000000000) >> 0x18 |\n                                    ((ulong)local_60 & 0xff00000000) >> 8 |\n                                    ((ulong)local_60 & 0xff000000) << 8 |\n                                    ((ulong)local_60 & 0xff0000) << 0x18 |\n                                    ((ulong)local_60 & 0xff00) << 0x28 | (long)local_60 << 0x38);\n              }\n              local_70 = local_70 + 2;\n              goto LAB_00302abe;\n            }\n            if (uVar8 != 3) {\n              return 0;\n            }\n            pcVar3 = *(code **)(**(long **)(*param_1 + 0x10) + 0x18);\n            if (pcVar3 == FUN_001b8d10) {\n              cVar6 = (**(code **)(**(long **)(*param_1 + 0x10) + 0x1d0))();\n            }\n            else {\n              cVar6 = (*pcVar3)();\n            }\n            uVar5 = (ushort)*local_70;\n            if (cVar6 != '\0') {\n              uVar5 = CONCAT11((byte)*local_70,*(byte *)((long)local_70 + 1));\n            }\n            local_48 = (uint)uVar5;\n            puStack_50 = (uint *)((long)local_70 + 2);\n            local_70 = (uint *)((long)puStack_50 + (ulong)local_48);\n          }\n          else {\n            if (uVar8 != 5) {\n              if (uVar8 != 6) {\n                return 0;\n              }\n              pcVar3 = *(code **)(**(long **)(*param_1 + 0x10) + 0x18);\n              if (pcVar3 == FUN_001b8d10) {\n                cVar6 = (**(code **)(**(long **)(*param_1 + 0x10) + 0x1d0))();\n              }\n              else {\n                cVar6 = (*pcVar3)();\n              }\n              uVar9 = *local_70;\n              if (cVar6 != '\0') {\n                uVar9 = uVar9 >> 0x18 | (uVar9 & 0xff0000) >> 8 | (uVar9 & 0xff00) << 8 |\n                        uVar9 << 0x18;\n              }\n              local_60 = (uint *)(ulong)uVar9;\n              local_70 = local_70 + 1;\n              goto LAB_00302d40;\n            }\n            pcVar3 = *(code **)(**(long **)(*param_1 + 0x10) + 0x18);\n            if (pcVar3 == FUN_001b8d10) {\n              cVar6 = (**(code **)(**(long **)(*param_1 + 0x10) + 0x1d0))();\n            }\n            else {\n              cVar6 = (*pcVar3)();\n            }\n            uVar5 = (ushort)*local_70;\n            if (cVar6 != '\0') {\n              uVar5 = CONCAT11((byte)*local_70,*(byte *)((long)local_70 + 1));\n            }\n            local_70 = (uint *)((long)local_70 + 2);\n            puStack_50 = (uint *)(ulong)uVar5;\n          }\n          goto joined_r0x00302748;\n        }\n        if (uVar8 == 10) {\n          puStack_50 = (uint *)((long)local_70 + 1);\n          uVar9 = *local_70;\n          local_70 = (uint *)((long)puStack_50 + (ulong)(byte)uVar9);\n          local_48 = (uint)(byte)uVar9;\n          goto joined_r0x00302748;\n        }\n        if (uVar8 < 0xb) {\n          if (uVar8 != 8) {\n            if (uVar8 != 9) {\n              return 0;\n            }\n            goto LAB_00302a09;\n          }\n          puStack_50 = local_70;\n          local_68 = strlen((char *)local_70);\n          local_70 = (uint *)((long)puVar11 + local_68 + 1);\n          if (uVar2 == 0x31) goto LAB_00302750;\n          if (0x31 < uVar2) {\n            if ((uVar2 != 0x6e) && (uVar2 != 0x2007)) goto LAB_00302750;\n            goto LAB_003029eb;\n          }\n          if ((uVar2 == 1) || (uVar2 != 3)) goto LAB_00302750;\n          goto LAB_003029c7;\n        }\n        if (uVar8 < 0xd) {\n          uVar9 = *local_70;\n          local_70 = (uint *)((long)local_70 + 1);\n          puStack_50 = (uint *)(ulong)(byte)uVar9;\n          goto LAB_00302f92;\n        }\n        bVar1 = (byte)*local_70;\n        puVar11 = (uint *)((long)local_70 + 1);\n        if ((char)bVar1 < '\0') {\n          puStack_50 = (uint *)FUN_00211340(puVar11,&local_68);\n          puVar11 = (uint *)(local_68 + (long)local_70);\n        }\n        else {\n          local_68 = 1;\n          puStack_50 = (uint *)(ulong)bVar1;\n          if ((bVar1 & 0x40) != 0) {\n            puStack_50 = (uint *)((ulong)bVar1 | 0xffffffffffffff80);\n          }\n        }\n        local_70 = puVar11;\n        if ((uVar2 == 0x31) || (uVar2 < 0x32)) goto LAB_00302750;\n        if ((uVar2 == 0x6e) || (uVar2 == 0x2007)) goto LAB_00302fbe;\n        puVar16 = (undefined8 *)param_1[8];\n        if (puVar16 == (undefined8 *)param_1[9]) goto LAB_003028c0;\nLAB_0030275e:\n        *puVar16 = CONCAT44(uStack_54,local_58);\n        puVar16[1] = puStack_50;\n        puVar16[2] = CONCAT44(uStack_44,local_48);\n        param_1[8] = (long)(puVar16 + 3);\n      }\n      lVar20 = lVar20 + 8;\n      lVar10 = param_1[6];\n    } while (lVar20 != (ulong)(iVar13 - 1) * 8 + 8);\n  }" (if "if") (parenthesized_expression "((ulong)((param_1[9] - (long)__src >> 3) * -0x5555555555555555) < uVar14)" (( "(") (binary_expression "(ulong)((param_1[9] - (long)__src >> 3) * -0x5555555555555555) < uVar14" (call_expression "(ulong)((param_1[9] - (long)__src >> 3) * -0x5555555555555555)" (parenthesized_expression "(ulong)" (( "(") (identifier "ulong") () ")")) (argument_list "((param_1[9] - (long)__src >> 3) * -0x5555555555555555)" (( "(") (binary_expression "(param_1[9] - (long)__src >> 3) * -0x5555555555555555" (parenthesized_expression "(param_1[9] - (long)__src >> 3)" (( "(") (binary_expression "param_1[9] - (long)__src >> 3" (binary_expression "param_1[9] - (long)__src" (subscript_expression "param_1[9]" (identifier "param_1") ([ "[") (number_literal "9") (] "]")) (- "-") (cast_expression "(long)__src" (( "(") (type_descriptor "long" (sized_type_specifier "long" (long "long"))) () ")") (identifier "__src"))) (>> ">>") (number_literal "3")) () ")")) (* "*") (number_literal "-0x5555555555555555")) () ")"))) (< "<") (identifier "uVar14")) () ")")) (compound_statement "{\n    pvVar4 = (void *)param_1[8];\n    __n = (long)pvVar4 - (long)__src;\n    if (uVar14 == 0) {\n      __dest = (void *)0x0;\n      pvVar19 = __src;\n    }\n    else {\n      __dest = (void *)FUN_00337280(uVar14 * 0x18);\n      pvVar19 = (void *)param_1[7];\n    }\n    if (__src != pvVar4) {\n      __dest = memmove(__dest,__src,__n);\n    }\n    if (pvVar19 != (void *)0x0) {\n      FUN_00338a50(pvVar19);\n    }\n    param_1[7] = (long)__dest;\n    lVar10 = param_1[6];\n    param_1[8] = __n + (long)__dest;\n    param_1[9] = (long)(uVar14 * 0x18 + (long)__dest);\n    if (iVar13 != 0) goto LAB_00302642;\n  }" ({ "{") (expression_statement "pvVar4 = (void *)param_1[8];" (assignment_expression "pvVar4 = (void *)param_1[8]" (identifier "pvVar4") (= "=") (cast_expression "(void *)param_1[8]" (( "(") (type_descriptor "void *" (primitive_type "void") (abstract_pointer_declarator "*" (* "*"))) () ")") (subscript_expression "param_1[8]" (identifier "param_1") ([ "[") (number_literal "8") (] "]")))) (; ";")) (expression_statement "__n = (long)pvVar4 - (long)__src;" (assignment_expression "__n = (long)pvVar4 - (long)__src" (identifier "__n") (= "=") (binary_expression "(long)pvVar4 - (long)__src" (cast_expression "(long)pvVar4" (( "(") (type_descriptor "long" (sized_type_specifier "long" (long "long"))) () ")") (identifier "pvVar4")) (- "-") (cast_expression "(long)__src" (( "(") (type_descriptor "long" (sized_type_specifier "long" (long "long"))) () ")") (identifier "__src")))) (; ";")) (if_statement "if (uVar14 == 0) {\n      __dest = (void *)0x0;\n      pvVar19 = __src;\n    }\n    else {\n      __dest = (void *)FUN_00337280(uVar14 * 0x18);\n      pvVar19 = (void *)param_1[7];\n    }" (if "if") (parenthesized_expression "(uVar14 == 0)" (( "(") (binary_expression "uVar14 == 0" (identifier "uVar14") (== "==") (number_literal "0")) () ")")) (compound_statement "{\n      __dest = (void *)0x0;\n      pvVar19 = __src;\n    }" ({ "{") (expression_statement "__dest = (void *)0x0;" (assignment_expression "__dest = (void *)0x0" (identifier "__dest") (= "=") (cast_expression "(void *)0x0" (( "(") (type_descriptor "void *" (primitive_type "void") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0"))) (; ";")) (expression_statement "pvVar19 = __src;" (assignment_expression "pvVar19 = __src" (identifier "pvVar19") (= "=") (identifier "__src")) (; ";")) (} "}")) (else_clause "else {\n      __dest = (void *)FUN_00337280(uVar14 * 0x18);\n      pvVar19 = (void *)param_1[7];\n    }" (else "else") (compound_statement "{\n      __dest = (void *)FUN_00337280(uVar14 * 0x18);\n      pvVar19 = (void *)param_1[7];\n    }" ({ "{") (expression_statement "__dest = (void *)FUN_00337280(uVar14 * 0x18);" (assignment_expression "__dest = (void *)FUN_00337280(uVar14 * 0x18)" (identifier "__dest") (= "=") (cast_expression "(void *)FUN_00337280(uVar14 * 0x18)" (( "(") (type_descriptor "void *" (primitive_type "void") (abstract_pointer_declarator "*" (* "*"))) () ")") (call_expression "FUN_00337280(uVar14 * 0x18)" (identifier "FUN_00337280") (argument_list "(uVar14 * 0x18)" (( "(") (binary_expression "uVar14 * 0x18" (identifier "uVar14") (* "*") (number_literal "0x18")) () ")"))))) (; ";")) (expression_statement "pvVar19 = (void *)param_1[7];" (assignment_expression "pvVar19 = (void *)param_1[7]" (identifier "pvVar19") (= "=") (cast_expression "(void *)param_1[7]" (( "(") (type_descriptor "void *" (primitive_type "void") (abstract_pointer_declarator "*" (* "*"))) () ")") (subscript_expression "param_1[7]" (identifier "param_1") ([ "[") (number_literal "7") (] "]")))) (; ";")) (} "}")))) (if_statement "if (__src != pvVar4) {\n      __dest = memmove(__dest,__src,__n);\n    }" (if "if") (parenthesized_expression "(__src != pvVar4)" (( "(") (binary_expression "__src != pvVar4" (identifier "__src") (!= "!=") (identifier "pvVar4")) () ")")) (compound_statement "{\n      __dest = memmove(__dest,__src,__n);\n    }" ({ "{") (expression_statement "__dest = memmove(__dest,__src,__n);" (assignment_expression "__dest = memmove(__dest,__src,__n)" (identifier "__dest") (= "=") (call_expression "memmove(__dest,__src,__n)" (identifier "memmove") (argument_list "(__dest,__src,__n)" (( "(") (identifier "__dest") (, ",") (identifier "__src") (, ",") (identifier "__n") () ")")))) (; ";")) (} "}"))) (if_statement "if (pvVar19 != (void *)0x0) {\n      FUN_00338a50(pvVar19);\n    }" (if "if") (parenthesized_expression "(pvVar19 != (void *)0x0)" (( "(") (binary_expression "pvVar19 != (void *)0x0" (identifier "pvVar19") (!= "!=") (cast_expression "(void *)0x0" (( "(") (type_descriptor "void *" (primitive_type "void") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0"))) () ")")) (compound_statement "{\n      FUN_00338a50(pvVar19);\n    }" ({ "{") (expression_statement "FUN_00338a50(pvVar19);" (call_expression "FUN_00338a50(pvVar19)" (identifier "FUN_00338a50") (argument_list "(pvVar19)" (( "(") (identifier "pvVar19") () ")"))) (; ";")) (} "}"))) (expression_statement "param_1[7] = (long)__dest;" (assignment_expression "param_1[7] = (long)__dest" (subscript_expression "param_1[7]" (identifier "param_1") ([ "[") (number_literal "7") (] "]")) (= "=") (cast_expression "(long)__dest" (( "(") (type_descriptor "long" (sized_type_specifier "long" (long "long"))) () ")") (identifier "__dest"))) (; ";")) (expression_statement "lVar10 = param_1[6];" (assignment_expression "lVar10 = param_1[6]" (identifier "lVar10") (= "=") (subscript_expression "param_1[6]" (identifier "param_1") ([ "[") (number_literal "6") (] "]"))) (; ";")) (expression_statement "param_1[8] = __n + (long)__dest;" (assignment_expression "param_1[8] = __n + (long)__dest" (subscript_expression "param_1[8]" (identifier "param_1") ([ "[") (number_literal "8") (] "]")) (= "=") (binary_expression "__n + (long)__dest" (identifier "__n") (+ "+") (cast_expression "(long)__dest" (( "(") (type_descriptor "long" (sized_type_specifier "long" (long "long"))) () ")") (identifier "__dest")))) (; ";")) (expression_statement "param_1[9] = (long)(uVar14 * 0x18 + (long)__dest);" (assignment_expression "param_1[9] = (long)(uVar14 * 0x18 + (long)__dest)" (subscript_expression "param_1[9]" (identifier "param_1") ([ "[") (number_literal "9") (] "]")) (= "=") (cast_expression "(long)(uVar14 * 0x18 + (long)__dest)" (( "(") (type_descriptor "long" (sized_type_specifier "long" (long "long"))) () ")") (parenthesized_expression "(uVar14 * 0x18 + (long)__dest)" (( "(") (binary_expression "uVar14 * 0x18 + (long)__dest" (binary_expression "uVar14 * 0x18" (identifier "uVar14") (* "*") (number_literal "0x18")) (+ "+") (cast_expression "(long)__dest" (( "(") (type_descriptor "long" (sized_type_specifier "long" (long "long"))) () ")") (identifier "__dest"))) () ")")))) (; ";")) (if_statement "if (iVar13 != 0) goto LAB_00302642;" (if "if") (parenthesized_expression "(iVar13 != 0)" (( "(") (binary_expression "iVar13 != 0" (identifier "iVar13") (!= "!=") (number_literal "0")) () ")")) (goto_statement "goto LAB_00302642;" (goto "goto") (statement_identifier "LAB_00302642") (; ";"))) (} "}")) (else_clause "else {\n    if (iVar13 == 0) goto LAB_00302797;\nLAB_00302642:\n    lVar20 = 0;\n    do {\n      puVar11 = (uint *)(*(long *)(lVar10 + 8) + lVar20);\n      uVar8 = puVar11[1];\n      uVar2 = *puVar11;\n      if (uVar8 == 0x16) {\n        bVar1 = (byte)*local_70;\n        uVar8 = (uint)bVar1;\n        if ((char)bVar1 < '\0') {\n          uVar8 = FUN_002112d0((uint *)((long)local_70 + 1),&local_68,bVar1);\n          local_70 = (uint *)(local_68 + (long)local_70);\n        }\n        else {\n          local_68 = 1;\n          local_70 = (uint *)((long)local_70 + 1);\n        }\n      }\n      puVar11 = local_70;\n      pbVar15 = (byte *)((long)local_70 + (param_1[2] - lVar12));\n      local_48 = 0;\n      local_58 = uVar2;\n      uStack_54 = uVar8;\n      if (uVar8 == 0xe) {\n        lVar10 = *param_1;\n        if (*(int *)(lVar10 + 0x60) == 4) {\n          uVar8 = FUN_00305610(lVar10,&local_70);\n          local_60 = (uint *)(ulong)uVar8;\n        }\n        else {\n          pcVar3 = *(code **)(**(long **)(lVar10 + 0x10) + 0x18);\n          if (pcVar3 == FUN_001b8d10) {\n            cVar6 = (**(code **)(**(long **)(lVar10 + 0x10) + 0x1d0))();\n          }\n          else {\n            cVar6 = (*pcVar3)();\n          }\n          local_60 = *(uint **)local_70;\n          if (cVar6 != '\0') {\n            local_60 = (uint *)((ulong)local_60 >> 0x38 |\n                                ((ulong)local_60 & 0xff000000000000) >> 0x28 |\n                                ((ulong)local_60 & 0xff0000000000) >> 0x18 |\n                                ((ulong)local_60 & 0xff00000000) >> 8 |\n                                ((ulong)local_60 & 0xff000000) << 8 |\n                                ((ulong)local_60 & 0xff0000) << 0x18 |\n                                ((ulong)local_60 & 0xff00) << 0x28 | (long)local_60 << 0x38);\n          }\n          local_70 = local_70 + 2;\n        }\n        local_48 = FUN_00301dc0(*param_1,pbVar15,&local_60);\n        puStack_50 = local_60;\n        if (uVar2 != 0x31) {\n          if (uVar2 < 0x32) {\n            if ((uVar2 != 1) && (uVar2 == 3)) {\nLAB_00302f64:\n              *(uint *)(param_1 + 0xf) = local_48;\n              param_1[0xc] = (long)puStack_50;\n            }\n          }\n          else if ((uVar2 == 0x6e) || (uVar2 == 0x2007)) {\nLAB_00302fd0:\n            *(uint *)(param_1 + 0xf) = local_48;\n            param_1[0xe] = (long)puStack_50;\n          }\n        }\nLAB_00302750:\n        puVar16 = (undefined8 *)param_1[8];\n        if (puVar16 != (undefined8 *)param_1[9]) goto LAB_0030275e;\nLAB_003028c0:\n        FUN_00305860(param_1 + 7,puVar16,&local_58);\n      }\n      else {\n        if (0xe < uVar8) {\n          if (uVar8 == 0x15) {\n            bVar1 = (byte)*local_70;\n            if ((char)bVar1 < '\0') {\n              puStack_50 = (uint *)FUN_002112d0((uint *)((long)local_70 + 1),&local_68,bVar1);\n              local_70 = (uint *)(local_68 + (long)local_70);\n            }\n            else {\n              local_68 = 1;\n              local_70 = (uint *)((long)local_70 + 1);\n              puStack_50 = (uint *)(ulong)bVar1;\n            }\njoined_r0x00303052:\n            if (uVar2 != 0x31) {\n              if (uVar2 < 0x32) {\nLAB_00302c20:\n                if ((uVar2 == 1) && (local_48 == 0)) {\n                  param_1[5] = (long)puStack_50;\n                }\n                goto LAB_00302750;\n              }\n              if ((uVar2 != 0x6e) && (uVar2 != 0x2007)) {\njoined_r0x00302ce3:\n                if (uVar2 == 0x47) {\n                  param_1[0x10] = (long)puStack_50;\n                }\n                goto LAB_00302750;\n              }\nLAB_00302fb5:\n              if (uVar8 == 8) {\nLAB_003029eb:\n                param_1[0xd] = (long)puStack_50;\n              }\n              else {\nLAB_00302fbe:\n                if (uVar8 == 0xe) goto LAB_00302fd0;\n              }\n              goto LAB_00302750;\n            }\n          }\n          else {\n            if (0x15 < uVar8) {\n              if (uVar8 != 0x19) {\n                if (uVar8 < 0x1a) {\n                  if (uVar8 == 0x17) {\n                    lVar10 = *param_1;\n                    if (*(int *)(lVar10 + 0x60) == 4) {\n                      uVar9 = FUN_00305610(lVar10,&local_70);\n                      local_60 = (uint *)(ulong)uVar9;\n                    }\n                    else {\n                      plVar17 = *(long **)(lVar10 + 0x10);\nLAB_00302fe7:\n                      pcVar3 = *(code **)(*plVar17 + 0x18);\n                      if (pcVar3 == FUN_001b8d10) {\n                        cVar6 = (**(code **)(*plVar17 + 0x1d0))();\n                      }\n                      else {\n                        cVar6 = (*pcVar3)();\n                      }\n                      local_60 = *(uint **)local_70;\n                      if (cVar6 != '\0') {\n                        local_60 = (uint *)((ulong)local_60 >> 0x38 |\n                                            ((ulong)local_60 & 0xff000000000000) >> 0x28 |\n                                            ((ulong)local_60 & 0xff0000000000) >> 0x18 |\n                                            ((ulong)local_60 & 0xff00000000) >> 8 |\n                                            ((ulong)local_60 & 0xff000000) << 8 |\n                                            ((ulong)local_60 & 0xff0000) << 0x18 |\n                                            ((ulong)local_60 & 0xff00) << 0x28 |\n                                           (long)local_60 << 0x38);\n                      }\n                      local_70 = local_70 + 2;\n                    }\nLAB_00303035:\n                    local_48 = FUN_00301dc0(*param_1,pbVar15,&local_60);\n                    puStack_50 = local_60;\n                    goto joined_r0x00303052;\n                  }\n                  if (uVar8 != 0x18) {\n                    return 0;\n                  }\nLAB_00302a09:\n                  bVar1 = (byte)*local_70;\n                  uVar9 = (uint)bVar1;\n                  puVar11 = (uint *)((long)local_70 + 1);\n                  if ((char)bVar1 < '\0') {\n                    uVar9 = FUN_002112d0(puVar11,&local_68,bVar1);\n                    puVar11 = (uint *)((long)local_70 + local_68);\n                  }\n                  else {\n                    local_68 = 1;\n                  }\n                  local_70 = (uint *)((long)local_70 + uVar9 + local_68);\n                  puStack_50 = puVar11;\n                  local_48 = uVar9;\n                }\n                else {\n                  if (uVar8 == 0x20) {\n                    pcVar3 = *(code **)(**(long **)(*param_1 + 0x10) + 0x18);\n                    if (pcVar3 == FUN_001b8d10) {\n                      cVar6 = (**(code **)(**(long **)(*param_1 + 0x10) + 0x1d0))();\n                    }\n                    else {\n                      cVar6 = (*pcVar3)();\n                    }\n                    puStack_50 = *(uint **)local_70;\n                    if (cVar6 != '\0') {\n                      puStack_50 = (uint *)((ulong)puStack_50 >> 0x38 |\n                                            ((ulong)puStack_50 & 0xff000000000000) >> 0x28 |\n                                            ((ulong)puStack_50 & 0xff0000000000) >> 0x18 |\n                                            ((ulong)puStack_50 & 0xff00000000) >> 8 |\n                                            ((ulong)puStack_50 & 0xff000000) << 8 |\n                                            ((ulong)puStack_50 & 0xff0000) << 0x18 |\n                                            ((ulong)puStack_50 & 0xff00) << 0x28 |\n                                           (long)puStack_50 << 0x38);\n                    }\n                    local_70 = local_70 + 2;\n                    goto LAB_00302ea9;\n                  }\n                  if (uVar8 < 0x20) {\n                    return 0;\n                  }\n                  if (1 < uVar8 - 0x1f01) {\n                    return 0;\n                  }\nLAB_00302bcd:\n                  bVar1 = (byte)*local_70;\n                  if ((char)bVar1 < '\0') {\n                    puStack_50 = (uint *)FUN_002112d0((uint *)((long)local_70 + 1),&local_68,bVar1);\n                    local_70 = (uint *)(local_68 + (long)local_70);\n                  }\n                  else {\n                    local_68 = 1;\n                    local_70 = (uint *)((long)local_70 + 1);\n                    puStack_50 = (uint *)(ulong)bVar1;\n                  }\n                }\nLAB_00302f92:\n                if (uVar2 == 0x31) goto LAB_00302750;\n                if (0x31 < uVar2) {\n                  if ((uVar2 == 0x6e) || (uVar2 == 0x2007)) goto LAB_00302fb5;\n                  goto LAB_00302750;\n                }\n                goto LAB_00302e3e;\n              }\n              puStack_50 = (uint *)0x1;\nLAB_00302ea9:\n              if (((uVar2 == 0x31) || (0x31 < uVar2)) || (uVar2 != 3)) goto LAB_00302750;\nLAB_00302e52:\n              if (uVar8 == 8) {\nLAB_003029c7:\n                param_1[0xb] = (long)puStack_50;\n              }\n              else if (uVar8 == 0xe) goto LAB_00302f64;\n              goto LAB_00302750;\n            }\n            if (uVar8 != 0x11) {\n              if (0x11 < uVar8) {\n                if (uVar8 == 0x13) {\n                  uVar9 = FUN_00305610(*param_1,&local_70);\n                  local_60 = (uint *)(ulong)uVar9;\n                  goto LAB_00303035;\n                }\n                if (0x13 < uVar8) {\n                  plVar17 = *(long **)(*param_1 + 0x10);\n                  goto LAB_00302fe7;\n                }\n                pcVar3 = *(code **)(**(long **)(*param_1 + 0x10) + 0x18);\n                if (pcVar3 == FUN_001b8d10) {\n                  cVar6 = (**(code **)(**(long **)(*param_1 + 0x10) + 0x1d0))();\n                }\n                else {\n                  cVar6 = (*pcVar3)();\n                }\n                uVar5 = (ushort)*local_70;\n                if (cVar6 != '\0') {\n                  uVar5 = CONCAT11((byte)*local_70,*(byte *)((long)local_70 + 1));\n                }\n                local_70 = (uint *)((long)local_70 + 2);\n                puStack_50 = (uint *)(ulong)uVar5;\n                goto joined_r0x00303052;\n              }\n              if (uVar8 == 0xf) goto LAB_00302bcd;\n              if (uVar8 != 0x10) {\n                return 0;\n              }\n              lVar10 = *param_1;\n              iVar7 = *(int *)(lVar10 + 100);\n              if (2 < *(uint *)(lVar10 + 0x68)) {\n                iVar7 = *(int *)(lVar10 + 0x60);\n              }\n              if (iVar7 != 4) goto LAB_00302a71;\nLAB_00302e7d:\n              uVar8 = FUN_00305610(lVar10,&local_70);\n              local_60 = (uint *)(ulong)uVar8;\nLAB_00302abe:\n              local_48 = FUN_00301dc0(*param_1,pbVar15,&local_60);\n              puStack_50 = local_60;\n              if (uVar2 == 0x31) goto LAB_00302965;\n              if (0x31 < uVar2) goto joined_r0x00302ccc;\n              goto LAB_00302c20;\n            }\n            puVar11 = (uint *)((long)local_70 + 1);\n            puStack_50 = (uint *)(ulong)(byte)*local_70;\n            local_70 = puVar11;\n            if (uVar2 != 0x31) {\n              if (uVar2 < 0x32) {\n                if (uVar2 == 1) {\n                  param_1[5] = (long)puStack_50;\n                }\n                goto LAB_00302750;\n              }\njoined_r0x00302ccc:\n              if ((uVar2 == 0x6e) || (uVar2 == 0x2007)) goto LAB_00302750;\n              goto joined_r0x00302ce3;\n            }\n          }\nLAB_00302965:\n          param_1[0x11] = (long)puStack_50;\n          goto LAB_00302750;\n        }\n        if (uVar8 == 7) {\n          pcVar3 = *(code **)(**(long **)(*param_1 + 0x10) + 0x18);\n          if (pcVar3 == FUN_001b8d10) {\n            cVar6 = (**(code **)(**(long **)(*param_1 + 0x10) + 0x1d0))();\n          }\n          else {\n            cVar6 = (*pcVar3)();\n          }\n          local_60 = *(uint **)local_70;\n          if (cVar6 != '\0') {\n            local_60 = (uint *)((ulong)local_60 >> 0x38 |\n                                ((ulong)local_60 & 0xff000000000000) >> 0x28 |\n                                ((ulong)local_60 & 0xff0000000000) >> 0x18 |\n                                ((ulong)local_60 & 0xff00000000) >> 8 |\n                                ((ulong)local_60 & 0xff000000) << 8 |\n                                ((ulong)local_60 & 0xff0000) << 0x18 |\n                                ((ulong)local_60 & 0xff00) << 0x28 | (long)local_60 << 0x38);\n          }\n          local_70 = local_70 + 2;\nLAB_00302d40:\n          local_48 = FUN_00301dc0(*param_1,pbVar15,&local_60);\n          puStack_50 = local_60;\njoined_r0x00302748:\n          if ((uVar2 != 0x31) && (uVar2 < 0x32)) {\nLAB_00302e3e:\n            if ((uVar2 != 1) && (uVar2 == 3)) goto LAB_00302e52;\n          }\n          goto LAB_00302750;\n        }\n        if (uVar8 < 8) {\n          if (uVar8 == 4) {\n            pcVar3 = *(code **)(**(long **)(*param_1 + 0x10) + 0x18);\n            if (pcVar3 == FUN_001b8d10) {\n              cVar6 = (**(code **)(**(long **)(*param_1 + 0x10) + 0x1d0))();\n            }\n            else {\n              cVar6 = (*pcVar3)();\n            }\n            local_48 = *local_70;\n            if (cVar6 != '\0') {\n              local_48 = local_48 >> 0x18 | (local_48 & 0xff0000) >> 8 | (local_48 & 0xff00) << 8 |\n                         local_48 << 0x18;\n            }\n            puStack_50 = local_70 + 1;\n            local_70 = (uint *)((long)puStack_50 + (ulong)local_48);\n          }\n          else if (uVar8 < 5) {\n            if (uVar8 == 1) {\n              lVar10 = *param_1;\n              if (*(int *)(lVar10 + 100) == 4) goto LAB_00302e7d;\nLAB_00302a71:\n              pcVar3 = *(code **)(**(long **)(lVar10 + 0x10) + 0x18);\n              if (pcVar3 == FUN_001b8d10) {\n                cVar6 = (**(code **)(**(long **)(lVar10 + 0x10) + 0x1d0))();\n              }\n              else {\n                cVar6 = (*pcVar3)();\n              }\n              local_60 = *(uint **)local_70;\n              if (cVar6 != '\0') {\n                local_60 = (uint *)((ulong)local_60 >> 0x38 |\n                                    ((ulong)local_60 & 0xff000000000000) >> 0x28 |\n                                    ((ulong)local_60 & 0xff0000000000) >> 0x18 |\n                                    ((ulong)local_60 & 0xff00000000) >> 8 |\n                                    ((ulong)local_60 & 0xff000000) << 8 |\n                                    ((ulong)local_60 & 0xff0000) << 0x18 |\n                                    ((ulong)local_60 & 0xff00) << 0x28 | (long)local_60 << 0x38);\n              }\n              local_70 = local_70 + 2;\n              goto LAB_00302abe;\n            }\n            if (uVar8 != 3) {\n              return 0;\n            }\n            pcVar3 = *(code **)(**(long **)(*param_1 + 0x10) + 0x18);\n            if (pcVar3 == FUN_001b8d10) {\n              cVar6 = (**(code **)(**(long **)(*param_1 + 0x10) + 0x1d0))();\n            }\n            else {\n              cVar6 = (*pcVar3)();\n            }\n            uVar5 = (ushort)*local_70;\n            if (cVar6 != '\0') {\n              uVar5 = CONCAT11((byte)*local_70,*(byte *)((long)local_70 + 1));\n            }\n            local_48 = (uint)uVar5;\n            puStack_50 = (uint *)((long)local_70 + 2);\n            local_70 = (uint *)((long)puStack_50 + (ulong)local_48);\n          }\n          else {\n            if (uVar8 != 5) {\n              if (uVar8 != 6) {\n                return 0;\n              }\n              pcVar3 = *(code **)(**(long **)(*param_1 + 0x10) + 0x18);\n              if (pcVar3 == FUN_001b8d10) {\n                cVar6 = (**(code **)(**(long **)(*param_1 + 0x10) + 0x1d0))();\n              }\n              else {\n                cVar6 = (*pcVar3)();\n              }\n              uVar9 = *local_70;\n              if (cVar6 != '\0') {\n                uVar9 = uVar9 >> 0x18 | (uVar9 & 0xff0000) >> 8 | (uVar9 & 0xff00) << 8 |\n                        uVar9 << 0x18;\n              }\n              local_60 = (uint *)(ulong)uVar9;\n              local_70 = local_70 + 1;\n              goto LAB_00302d40;\n            }\n            pcVar3 = *(code **)(**(long **)(*param_1 + 0x10) + 0x18);\n            if (pcVar3 == FUN_001b8d10) {\n              cVar6 = (**(code **)(**(long **)(*param_1 + 0x10) + 0x1d0))();\n            }\n            else {\n              cVar6 = (*pcVar3)();\n            }\n            uVar5 = (ushort)*local_70;\n            if (cVar6 != '\0') {\n              uVar5 = CONCAT11((byte)*local_70,*(byte *)((long)local_70 + 1));\n            }\n            local_70 = (uint *)((long)local_70 + 2);\n            puStack_50 = (uint *)(ulong)uVar5;\n          }\n          goto joined_r0x00302748;\n        }\n        if (uVar8 == 10) {\n          puStack_50 = (uint *)((long)local_70 + 1);\n          uVar9 = *local_70;\n          local_70 = (uint *)((long)puStack_50 + (ulong)(byte)uVar9);\n          local_48 = (uint)(byte)uVar9;\n          goto joined_r0x00302748;\n        }\n        if (uVar8 < 0xb) {\n          if (uVar8 != 8) {\n            if (uVar8 != 9) {\n              return 0;\n            }\n            goto LAB_00302a09;\n          }\n          puStack_50 = local_70;\n          local_68 = strlen((char *)local_70);\n          local_70 = (uint *)((long)puVar11 + local_68 + 1);\n          if (uVar2 == 0x31) goto LAB_00302750;\n          if (0x31 < uVar2) {\n            if ((uVar2 != 0x6e) && (uVar2 != 0x2007)) goto LAB_00302750;\n            goto LAB_003029eb;\n          }\n          if ((uVar2 == 1) || (uVar2 != 3)) goto LAB_00302750;\n          goto LAB_003029c7;\n        }\n        if (uVar8 < 0xd) {\n          uVar9 = *local_70;\n          local_70 = (uint *)((long)local_70 + 1);\n          puStack_50 = (uint *)(ulong)(byte)uVar9;\n          goto LAB_00302f92;\n        }\n        bVar1 = (byte)*local_70;\n        puVar11 = (uint *)((long)local_70 + 1);\n        if ((char)bVar1 < '\0') {\n          puStack_50 = (uint *)FUN_00211340(puVar11,&local_68);\n          puVar11 = (uint *)(local_68 + (long)local_70);\n        }\n        else {\n          local_68 = 1;\n          puStack_50 = (uint *)(ulong)bVar1;\n          if ((bVar1 & 0x40) != 0) {\n            puStack_50 = (uint *)((ulong)bVar1 | 0xffffffffffffff80);\n          }\n        }\n        local_70 = puVar11;\n        if ((uVar2 == 0x31) || (uVar2 < 0x32)) goto LAB_00302750;\n        if ((uVar2 == 0x6e) || (uVar2 == 0x2007)) goto LAB_00302fbe;\n        puVar16 = (undefined8 *)param_1[8];\n        if (puVar16 == (undefined8 *)param_1[9]) goto LAB_003028c0;\nLAB_0030275e:\n        *puVar16 = CONCAT44(uStack_54,local_58);\n        puVar16[1] = puStack_50;\n        puVar16[2] = CONCAT44(uStack_44,local_48);\n        param_1[8] = (long)(puVar16 + 3);\n      }\n      lVar20 = lVar20 + 8;\n      lVar10 = param_1[6];\n    } while (lVar20 != (ulong)(iVar13 - 1) * 8 + 8);\n  }" (else "else") (compound_statement "{\n    if (iVar13 == 0) goto LAB_00302797;\nLAB_00302642:\n    lVar20 = 0;\n    do {\n      puVar11 = (uint *)(*(long *)(lVar10 + 8) + lVar20);\n      uVar8 = puVar11[1];\n      uVar2 = *puVar11;\n      if (uVar8 == 0x16) {\n        bVar1 = (byte)*local_70;\n        uVar8 = (uint)bVar1;\n        if ((char)bVar1 < '\0') {\n          uVar8 = FUN_002112d0((uint *)((long)local_70 + 1),&local_68,bVar1);\n          local_70 = (uint *)(local_68 + (long)local_70);\n        }\n        else {\n          local_68 = 1;\n          local_70 = (uint *)((long)local_70 + 1);\n        }\n      }\n      puVar11 = local_70;\n      pbVar15 = (byte *)((long)local_70 + (param_1[2] - lVar12));\n      local_48 = 0;\n      local_58 = uVar2;\n      uStack_54 = uVar8;\n      if (uVar8 == 0xe) {\n        lVar10 = *param_1;\n        if (*(int *)(lVar10 + 0x60) == 4) {\n          uVar8 = FUN_00305610(lVar10,&local_70);\n          local_60 = (uint *)(ulong)uVar8;\n        }\n        else {\n          pcVar3 = *(code **)(**(long **)(lVar10 + 0x10) + 0x18);\n          if (pcVar3 == FUN_001b8d10) {\n            cVar6 = (**(code **)(**(long **)(lVar10 + 0x10) + 0x1d0))();\n          }\n          else {\n            cVar6 = (*pcVar3)();\n          }\n          local_60 = *(uint **)local_70;\n          if (cVar6 != '\0') {\n            local_60 = (uint *)((ulong)local_60 >> 0x38 |\n                                ((ulong)local_60 & 0xff000000000000) >> 0x28 |\n                                ((ulong)local_60 & 0xff0000000000) >> 0x18 |\n                                ((ulong)local_60 & 0xff00000000) >> 8 |\n                                ((ulong)local_60 & 0xff000000) << 8 |\n                                ((ulong)local_60 & 0xff0000) << 0x18 |\n                                ((ulong)local_60 & 0xff00) << 0x28 | (long)local_60 << 0x38);\n          }\n          local_70 = local_70 + 2;\n        }\n        local_48 = FUN_00301dc0(*param_1,pbVar15,&local_60);\n        puStack_50 = local_60;\n        if (uVar2 != 0x31) {\n          if (uVar2 < 0x32) {\n            if ((uVar2 != 1) && (uVar2 == 3)) {\nLAB_00302f64:\n              *(uint *)(param_1 + 0xf) = local_48;\n              param_1[0xc] = (long)puStack_50;\n            }\n          }\n          else if ((uVar2 == 0x6e) || (uVar2 == 0x2007)) {\nLAB_00302fd0:\n            *(uint *)(param_1 + 0xf) = local_48;\n            param_1[0xe] = (long)puStack_50;\n          }\n        }\nLAB_00302750:\n        puVar16 = (undefined8 *)param_1[8];\n        if (puVar16 != (undefined8 *)param_1[9]) goto LAB_0030275e;\nLAB_003028c0:\n        FUN_00305860(param_1 + 7,puVar16,&local_58);\n      }\n      else {\n        if (0xe < uVar8) {\n          if (uVar8 == 0x15) {\n            bVar1 = (byte)*local_70;\n            if ((char)bVar1 < '\0') {\n              puStack_50 = (uint *)FUN_002112d0((uint *)((long)local_70 + 1),&local_68,bVar1);\n              local_70 = (uint *)(local_68 + (long)local_70);\n            }\n            else {\n              local_68 = 1;\n              local_70 = (uint *)((long)local_70 + 1);\n              puStack_50 = (uint *)(ulong)bVar1;\n            }\njoined_r0x00303052:\n            if (uVar2 != 0x31) {\n              if (uVar2 < 0x32) {\nLAB_00302c20:\n                if ((uVar2 == 1) && (local_48 == 0)) {\n                  param_1[5] = (long)puStack_50;\n                }\n                goto LAB_00302750;\n              }\n              if ((uVar2 != 0x6e) && (uVar2 != 0x2007)) {\njoined_r0x00302ce3:\n                if (uVar2 == 0x47) {\n                  param_1[0x10] = (long)puStack_50;\n                }\n                goto LAB_00302750;\n              }\nLAB_00302fb5:\n              if (uVar8 == 8) {\nLAB_003029eb:\n                param_1[0xd] = (long)puStack_50;\n              }\n              else {\nLAB_00302fbe:\n                if (uVar8 == 0xe) goto LAB_00302fd0;\n              }\n              goto LAB_00302750;\n            }\n          }\n          else {\n            if (0x15 < uVar8) {\n              if (uVar8 != 0x19) {\n                if (uVar8 < 0x1a) {\n                  if (uVar8 == 0x17) {\n                    lVar10 = *param_1;\n                    if (*(int *)(lVar10 + 0x60) == 4) {\n                      uVar9 = FUN_00305610(lVar10,&local_70);\n                      local_60 = (uint *)(ulong)uVar9;\n                    }\n                    else {\n                      plVar17 = *(long **)(lVar10 + 0x10);\nLAB_00302fe7:\n                      pcVar3 = *(code **)(*plVar17 + 0x18);\n                      if (pcVar3 == FUN_001b8d10) {\n                        cVar6 = (**(code **)(*plVar17 + 0x1d0))();\n                      }\n                      else {\n                        cVar6 = (*pcVar3)();\n                      }\n                      local_60 = *(uint **)local_70;\n                      if (cVar6 != '\0') {\n                        local_60 = (uint *)((ulong)local_60 >> 0x38 |\n                                            ((ulong)local_60 & 0xff000000000000) >> 0x28 |\n                                            ((ulong)local_60 & 0xff0000000000) >> 0x18 |\n                                            ((ulong)local_60 & 0xff00000000) >> 8 |\n                                            ((ulong)local_60 & 0xff000000) << 8 |\n                                            ((ulong)local_60 & 0xff0000) << 0x18 |\n                                            ((ulong)local_60 & 0xff00) << 0x28 |\n                                           (long)local_60 << 0x38);\n                      }\n                      local_70 = local_70 + 2;\n                    }\nLAB_00303035:\n                    local_48 = FUN_00301dc0(*param_1,pbVar15,&local_60);\n                    puStack_50 = local_60;\n                    goto joined_r0x00303052;\n                  }\n                  if (uVar8 != 0x18) {\n                    return 0;\n                  }\nLAB_00302a09:\n                  bVar1 = (byte)*local_70;\n                  uVar9 = (uint)bVar1;\n                  puVar11 = (uint *)((long)local_70 + 1);\n                  if ((char)bVar1 < '\0') {\n                    uVar9 = FUN_002112d0(puVar11,&local_68,bVar1);\n                    puVar11 = (uint *)((long)local_70 + local_68);\n                  }\n                  else {\n                    local_68 = 1;\n                  }\n                  local_70 = (uint *)((long)local_70 + uVar9 + local_68);\n                  puStack_50 = puVar11;\n                  local_48 = uVar9;\n                }\n                else {\n                  if (uVar8 == 0x20) {\n                    pcVar3 = *(code **)(**(long **)(*param_1 + 0x10) + 0x18);\n                    if (pcVar3 == FUN_001b8d10) {\n                      cVar6 = (**(code **)(**(long **)(*param_1 + 0x10) + 0x1d0))();\n                    }\n                    else {\n                      cVar6 = (*pcVar3)();\n                    }\n                    puStack_50 = *(uint **)local_70;\n                    if (cVar6 != '\0') {\n                      puStack_50 = (uint *)((ulong)puStack_50 >> 0x38 |\n                                            ((ulong)puStack_50 & 0xff000000000000) >> 0x28 |\n                                            ((ulong)puStack_50 & 0xff0000000000) >> 0x18 |\n                                            ((ulong)puStack_50 & 0xff00000000) >> 8 |\n                                            ((ulong)puStack_50 & 0xff000000) << 8 |\n                                            ((ulong)puStack_50 & 0xff0000) << 0x18 |\n                                            ((ulong)puStack_50 & 0xff00) << 0x28 |\n                                           (long)puStack_50 << 0x38);\n                    }\n                    local_70 = local_70 + 2;\n                    goto LAB_00302ea9;\n                  }\n                  if (uVar8 < 0x20) {\n                    return 0;\n                  }\n                  if (1 < uVar8 - 0x1f01) {\n                    return 0;\n                  }\nLAB_00302bcd:\n                  bVar1 = (byte)*local_70;\n                  if ((char)bVar1 < '\0') {\n                    puStack_50 = (uint *)FUN_002112d0((uint *)((long)local_70 + 1),&local_68,bVar1);\n                    local_70 = (uint *)(local_68 + (long)local_70);\n                  }\n                  else {\n                    local_68 = 1;\n                    local_70 = (uint *)((long)local_70 + 1);\n                    puStack_50 = (uint *)(ulong)bVar1;\n                  }\n                }\nLAB_00302f92:\n                if (uVar2 == 0x31) goto LAB_00302750;\n                if (0x31 < uVar2) {\n                  if ((uVar2 == 0x6e) || (uVar2 == 0x2007)) goto LAB_00302fb5;\n                  goto LAB_00302750;\n                }\n                goto LAB_00302e3e;\n              }\n              puStack_50 = (uint *)0x1;\nLAB_00302ea9:\n              if (((uVar2 == 0x31) || (0x31 < uVar2)) || (uVar2 != 3)) goto LAB_00302750;\nLAB_00302e52:\n              if (uVar8 == 8) {\nLAB_003029c7:\n                param_1[0xb] = (long)puStack_50;\n              }\n              else if (uVar8 == 0xe) goto LAB_00302f64;\n              goto LAB_00302750;\n            }\n            if (uVar8 != 0x11) {\n              if (0x11 < uVar8) {\n                if (uVar8 == 0x13) {\n                  uVar9 = FUN_00305610(*param_1,&local_70);\n                  local_60 = (uint *)(ulong)uVar9;\n                  goto LAB_00303035;\n                }\n                if (0x13 < uVar8) {\n                  plVar17 = *(long **)(*param_1 + 0x10);\n                  goto LAB_00302fe7;\n                }\n                pcVar3 = *(code **)(**(long **)(*param_1 + 0x10) + 0x18);\n                if (pcVar3 == FUN_001b8d10) {\n                  cVar6 = (**(code **)(**(long **)(*param_1 + 0x10) + 0x1d0))();\n                }\n                else {\n                  cVar6 = (*pcVar3)();\n                }\n                uVar5 = (ushort)*local_70;\n                if (cVar6 != '\0') {\n                  uVar5 = CONCAT11((byte)*local_70,*(byte *)((long)local_70 + 1));\n                }\n                local_70 = (uint *)((long)local_70 + 2);\n                puStack_50 = (uint *)(ulong)uVar5;\n                goto joined_r0x00303052;\n              }\n              if (uVar8 == 0xf) goto LAB_00302bcd;\n              if (uVar8 != 0x10) {\n                return 0;\n              }\n              lVar10 = *param_1;\n              iVar7 = *(int *)(lVar10 + 100);\n              if (2 < *(uint *)(lVar10 + 0x68)) {\n                iVar7 = *(int *)(lVar10 + 0x60);\n              }\n              if (iVar7 != 4) goto LAB_00302a71;\nLAB_00302e7d:\n              uVar8 = FUN_00305610(lVar10,&local_70);\n              local_60 = (uint *)(ulong)uVar8;\nLAB_00302abe:\n              local_48 = FUN_00301dc0(*param_1,pbVar15,&local_60);\n              puStack_50 = local_60;\n              if (uVar2 == 0x31) goto LAB_00302965;\n              if (0x31 < uVar2) goto joined_r0x00302ccc;\n              goto LAB_00302c20;\n            }\n            puVar11 = (uint *)((long)local_70 + 1);\n            puStack_50 = (uint *)(ulong)(byte)*local_70;\n            local_70 = puVar11;\n            if (uVar2 != 0x31) {\n              if (uVar2 < 0x32) {\n                if (uVar2 == 1) {\n                  param_1[5] = (long)puStack_50;\n                }\n                goto LAB_00302750;\n              }\njoined_r0x00302ccc:\n              if ((uVar2 == 0x6e) || (uVar2 == 0x2007)) goto LAB_00302750;\n              goto joined_r0x00302ce3;\n            }\n          }\nLAB_00302965:\n          param_1[0x11] = (long)puStack_50;\n          goto LAB_00302750;\n        }\n        if (uVar8 == 7) {\n          pcVar3 = *(code **)(**(long **)(*param_1 + 0x10) + 0x18);\n          if (pcVar3 == FUN_001b8d10) {\n            cVar6 = (**(code **)(**(long **)(*param_1 + 0x10) + 0x1d0))();\n          }\n          else {\n            cVar6 = (*pcVar3)();\n          }\n          local_60 = *(uint **)local_70;\n          if (cVar6 != '\0') {\n            local_60 = (uint *)((ulong)local_60 >> 0x38 |\n                                ((ulong)local_60 & 0xff000000000000) >> 0x28 |\n                                ((ulong)local_60 & 0xff0000000000) >> 0x18 |\n                                ((ulong)local_60 & 0xff00000000) >> 8 |\n                                ((ulong)local_60 & 0xff000000) << 8 |\n                                ((ulong)local_60 & 0xff0000) << 0x18 |\n                                ((ulong)local_60 & 0xff00) << 0x28 | (long)local_60 << 0x38);\n          }\n          local_70 = local_70 + 2;\nLAB_00302d40:\n          local_48 = FUN_00301dc0(*param_1,pbVar15,&local_60);\n          puStack_50 = local_60;\njoined_r0x00302748:\n          if ((uVar2 != 0x31) && (uVar2 < 0x32)) {\nLAB_00302e3e:\n            if ((uVar2 != 1) && (uVar2 == 3)) goto LAB_00302e52;\n          }\n          goto LAB_00302750;\n        }\n        if (uVar8 < 8) {\n          if (uVar8 == 4) {\n            pcVar3 = *(code **)(**(long **)(*param_1 + 0x10) + 0x18);\n            if (pcVar3 == FUN_001b8d10) {\n              cVar6 = (**(code **)(**(long **)(*param_1 + 0x10) + 0x1d0))();\n            }\n            else {\n              cVar6 = (*pcVar3)();\n            }\n            local_48 = *local_70;\n            if (cVar6 != '\0') {\n              local_48 = local_48 >> 0x18 | (local_48 & 0xff0000) >> 8 | (local_48 & 0xff00) << 8 |\n                         local_48 << 0x18;\n            }\n            puStack_50 = local_70 + 1;\n            local_70 = (uint *)((long)puStack_50 + (ulong)local_48);\n          }\n          else if (uVar8 < 5) {\n            if (uVar8 == 1) {\n              lVar10 = *param_1;\n              if (*(int *)(lVar10 + 100) == 4) goto LAB_00302e7d;\nLAB_00302a71:\n              pcVar3 = *(code **)(**(long **)(lVar10 + 0x10) + 0x18);\n              if (pcVar3 == FUN_001b8d10) {\n                cVar6 = (**(code **)(**(long **)(lVar10 + 0x10) + 0x1d0))();\n              }\n              else {\n                cVar6 = (*pcVar3)();\n              }\n              local_60 = *(uint **)local_70;\n              if (cVar6 != '\0') {\n                local_60 = (uint *)((ulong)local_60 >> 0x38 |\n                                    ((ulong)local_60 & 0xff000000000000) >> 0x28 |\n                                    ((ulong)local_60 & 0xff0000000000) >> 0x18 |\n                                    ((ulong)local_60 & 0xff00000000) >> 8 |\n                                    ((ulong)local_60 & 0xff000000) << 8 |\n                                    ((ulong)local_60 & 0xff0000) << 0x18 |\n                                    ((ulong)local_60 & 0xff00) << 0x28 | (long)local_60 << 0x38);\n              }\n              local_70 = local_70 + 2;\n              goto LAB_00302abe;\n            }\n            if (uVar8 != 3) {\n              return 0;\n            }\n            pcVar3 = *(code **)(**(long **)(*param_1 + 0x10) + 0x18);\n            if (pcVar3 == FUN_001b8d10) {\n              cVar6 = (**(code **)(**(long **)(*param_1 + 0x10) + 0x1d0))();\n            }\n            else {\n              cVar6 = (*pcVar3)();\n            }\n            uVar5 = (ushort)*local_70;\n            if (cVar6 != '\0') {\n              uVar5 = CONCAT11((byte)*local_70,*(byte *)((long)local_70 + 1));\n            }\n            local_48 = (uint)uVar5;\n            puStack_50 = (uint *)((long)local_70 + 2);\n            local_70 = (uint *)((long)puStack_50 + (ulong)local_48);\n          }\n          else {\n            if (uVar8 != 5) {\n              if (uVar8 != 6) {\n                return 0;\n              }\n              pcVar3 = *(code **)(**(long **)(*param_1 + 0x10) + 0x18);\n              if (pcVar3 == FUN_001b8d10) {\n                cVar6 = (**(code **)(**(long **)(*param_1 + 0x10) + 0x1d0))();\n              }\n              else {\n                cVar6 = (*pcVar3)();\n              }\n              uVar9 = *local_70;\n              if (cVar6 != '\0') {\n                uVar9 = uVar9 >> 0x18 | (uVar9 & 0xff0000) >> 8 | (uVar9 & 0xff00) << 8 |\n                        uVar9 << 0x18;\n              }\n              local_60 = (uint *)(ulong)uVar9;\n              local_70 = local_70 + 1;\n              goto LAB_00302d40;\n            }\n            pcVar3 = *(code **)(**(long **)(*param_1 + 0x10) + 0x18);\n            if (pcVar3 == FUN_001b8d10) {\n              cVar6 = (**(code **)(**(long **)(*param_1 + 0x10) + 0x1d0))();\n            }\n            else {\n              cVar6 = (*pcVar3)();\n            }\n            uVar5 = (ushort)*local_70;\n            if (cVar6 != '\0') {\n              uVar5 = CONCAT11((byte)*local_70,*(byte *)((long)local_70 + 1));\n            }\n            local_70 = (uint *)((long)local_70 + 2);\n            puStack_50 = (uint *)(ulong)uVar5;\n          }\n          goto joined_r0x00302748;\n        }\n        if (uVar8 == 10) {\n          puStack_50 = (uint *)((long)local_70 + 1);\n          uVar9 = *local_70;\n          local_70 = (uint *)((long)puStack_50 + (ulong)(byte)uVar9);\n          local_48 = (uint)(byte)uVar9;\n          goto joined_r0x00302748;\n        }\n        if (uVar8 < 0xb) {\n          if (uVar8 != 8) {\n            if (uVar8 != 9) {\n              return 0;\n            }\n            goto LAB_00302a09;\n          }\n          puStack_50 = local_70;\n          local_68 = strlen((char *)local_70);\n          local_70 = (uint *)((long)puVar11 + local_68 + 1);\n          if (uVar2 == 0x31) goto LAB_00302750;\n          if (0x31 < uVar2) {\n            if ((uVar2 != 0x6e) && (uVar2 != 0x2007)) goto LAB_00302750;\n            goto LAB_003029eb;\n          }\n          if ((uVar2 == 1) || (uVar2 != 3)) goto LAB_00302750;\n          goto LAB_003029c7;\n        }\n        if (uVar8 < 0xd) {\n          uVar9 = *local_70;\n          local_70 = (uint *)((long)local_70 + 1);\n          puStack_50 = (uint *)(ulong)(byte)uVar9;\n          goto LAB_00302f92;\n        }\n        bVar1 = (byte)*local_70;\n        puVar11 = (uint *)((long)local_70 + 1);\n        if ((char)bVar1 < '\0') {\n          puStack_50 = (uint *)FUN_00211340(puVar11,&local_68);\n          puVar11 = (uint *)(local_68 + (long)local_70);\n        }\n        else {\n          local_68 = 1;\n          puStack_50 = (uint *)(ulong)bVar1;\n          if ((bVar1 & 0x40) != 0) {\n            puStack_50 = (uint *)((ulong)bVar1 | 0xffffffffffffff80);\n          }\n        }\n        local_70 = puVar11;\n        if ((uVar2 == 0x31) || (uVar2 < 0x32)) goto LAB_00302750;\n        if ((uVar2 == 0x6e) || (uVar2 == 0x2007)) goto LAB_00302fbe;\n        puVar16 = (undefined8 *)param_1[8];\n        if (puVar16 == (undefined8 *)param_1[9]) goto LAB_003028c0;\nLAB_0030275e:\n        *puVar16 = CONCAT44(uStack_54,local_58);\n        puVar16[1] = puStack_50;\n        puVar16[2] = CONCAT44(uStack_44,local_48);\n        param_1[8] = (long)(puVar16 + 3);\n      }\n      lVar20 = lVar20 + 8;\n      lVar10 = param_1[6];\n    } while (lVar20 != (ulong)(iVar13 - 1) * 8 + 8);\n  }" ({ "{") (if_statement "if (iVar13 == 0) goto LAB_00302797;" (if "if") (parenthesized_expression "(iVar13 == 0)" (( "(") (binary_expression "iVar13 == 0" (identifier "iVar13") (== "==") (number_literal "0")) () ")")) (goto_statement "goto LAB_00302797;" (goto "goto") (statement_identifier "LAB_00302797") (; ";"))) (labeled_statement "LAB_00302642:\n    lVar20 = 0;" (statement_identifier "LAB_00302642") (: ":") (expression_statement "lVar20 = 0;" (assignment_expression "lVar20 = 0" (identifier "lVar20") (= "=") (number_literal "0")) (; ";"))) (do_statement "do {\n      puVar11 = (uint *)(*(long *)(lVar10 + 8) + lVar20);\n      uVar8 = puVar11[1];\n      uVar2 = *puVar11;\n      if (uVar8 == 0x16) {\n        bVar1 = (byte)*local_70;\n        uVar8 = (uint)bVar1;\n        if ((char)bVar1 < '\0') {\n          uVar8 = FUN_002112d0((uint *)((long)local_70 + 1),&local_68,bVar1);\n          local_70 = (uint *)(local_68 + (long)local_70);\n        }\n        else {\n          local_68 = 1;\n          local_70 = (uint *)((long)local_70 + 1);\n        }\n      }\n      puVar11 = local_70;\n      pbVar15 = (byte *)((long)local_70 + (param_1[2] - lVar12));\n      local_48 = 0;\n      local_58 = uVar2;\n      uStack_54 = uVar8;\n      if (uVar8 == 0xe) {\n        lVar10 = *param_1;\n        if (*(int *)(lVar10 + 0x60) == 4) {\n          uVar8 = FUN_00305610(lVar10,&local_70);\n          local_60 = (uint *)(ulong)uVar8;\n        }\n        else {\n          pcVar3 = *(code **)(**(long **)(lVar10 + 0x10) + 0x18);\n          if (pcVar3 == FUN_001b8d10) {\n            cVar6 = (**(code **)(**(long **)(lVar10 + 0x10) + 0x1d0))();\n          }\n          else {\n            cVar6 = (*pcVar3)();\n          }\n          local_60 = *(uint **)local_70;\n          if (cVar6 != '\0') {\n            local_60 = (uint *)((ulong)local_60 >> 0x38 |\n                                ((ulong)local_60 & 0xff000000000000) >> 0x28 |\n                                ((ulong)local_60 & 0xff0000000000) >> 0x18 |\n                                ((ulong)local_60 & 0xff00000000) >> 8 |\n                                ((ulong)local_60 & 0xff000000) << 8 |\n                                ((ulong)local_60 & 0xff0000) << 0x18 |\n                                ((ulong)local_60 & 0xff00) << 0x28 | (long)local_60 << 0x38);\n          }\n          local_70 = local_70 + 2;\n        }\n        local_48 = FUN_00301dc0(*param_1,pbVar15,&local_60);\n        puStack_50 = local_60;\n        if (uVar2 != 0x31) {\n          if (uVar2 < 0x32) {\n            if ((uVar2 != 1) && (uVar2 == 3)) {\nLAB_00302f64:\n              *(uint *)(param_1 + 0xf) = local_48;\n              param_1[0xc] = (long)puStack_50;\n            }\n          }\n          else if ((uVar2 == 0x6e) || (uVar2 == 0x2007)) {\nLAB_00302fd0:\n            *(uint *)(param_1 + 0xf) = local_48;\n            param_1[0xe] = (long)puStack_50;\n          }\n        }\nLAB_00302750:\n        puVar16 = (undefined8 *)param_1[8];\n        if (puVar16 != (undefined8 *)param_1[9]) goto LAB_0030275e;\nLAB_003028c0:\n        FUN_00305860(param_1 + 7,puVar16,&local_58);\n      }\n      else {\n        if (0xe < uVar8) {\n          if (uVar8 == 0x15) {\n            bVar1 = (byte)*local_70;\n            if ((char)bVar1 < '\0') {\n              puStack_50 = (uint *)FUN_002112d0((uint *)((long)local_70 + 1),&local_68,bVar1);\n              local_70 = (uint *)(local_68 + (long)local_70);\n            }\n            else {\n              local_68 = 1;\n              local_70 = (uint *)((long)local_70 + 1);\n              puStack_50 = (uint *)(ulong)bVar1;\n            }\njoined_r0x00303052:\n            if (uVar2 != 0x31) {\n              if (uVar2 < 0x32) {\nLAB_00302c20:\n                if ((uVar2 == 1) && (local_48 == 0)) {\n                  param_1[5] = (long)puStack_50;\n                }\n                goto LAB_00302750;\n              }\n              if ((uVar2 != 0x6e) && (uVar2 != 0x2007)) {\njoined_r0x00302ce3:\n                if (uVar2 == 0x47) {\n                  param_1[0x10] = (long)puStack_50;\n                }\n                goto LAB_00302750;\n              }\nLAB_00302fb5:\n              if (uVar8 == 8) {\nLAB_003029eb:\n                param_1[0xd] = (long)puStack_50;\n              }\n              else {\nLAB_00302fbe:\n                if (uVar8 == 0xe) goto LAB_00302fd0;\n              }\n              goto LAB_00302750;\n            }\n          }\n          else {\n            if (0x15 < uVar8) {\n              if (uVar8 != 0x19) {\n                if (uVar8 < 0x1a) {\n                  if (uVar8 == 0x17) {\n                    lVar10 = *param_1;\n                    if (*(int *)(lVar10 + 0x60) == 4) {\n                      uVar9 = FUN_00305610(lVar10,&local_70);\n                      local_60 = (uint *)(ulong)uVar9;\n                    }\n                    else {\n                      plVar17 = *(long **)(lVar10 + 0x10);\nLAB_00302fe7:\n                      pcVar3 = *(code **)(*plVar17 + 0x18);\n                      if (pcVar3 == FUN_001b8d10) {\n                        cVar6 = (**(code **)(*plVar17 + 0x1d0))();\n                      }\n                      else {\n                        cVar6 = (*pcVar3)();\n                      }\n                      local_60 = *(uint **)local_70;\n                      if (cVar6 != '\0') {\n                        local_60 = (uint *)((ulong)local_60 >> 0x38 |\n                                            ((ulong)local_60 & 0xff000000000000) >> 0x28 |\n                                            ((ulong)local_60 & 0xff0000000000) >> 0x18 |\n                                            ((ulong)local_60 & 0xff00000000) >> 8 |\n                                            ((ulong)local_60 & 0xff000000) << 8 |\n                                            ((ulong)local_60 & 0xff0000) << 0x18 |\n                                            ((ulong)local_60 & 0xff00) << 0x28 |\n                                           (long)local_60 << 0x38);\n                      }\n                      local_70 = local_70 + 2;\n                    }\nLAB_00303035:\n                    local_48 = FUN_00301dc0(*param_1,pbVar15,&local_60);\n                    puStack_50 = local_60;\n                    goto joined_r0x00303052;\n                  }\n                  if (uVar8 != 0x18) {\n                    return 0;\n                  }\nLAB_00302a09:\n                  bVar1 = (byte)*local_70;\n                  uVar9 = (uint)bVar1;\n                  puVar11 = (uint *)((long)local_70 + 1);\n                  if ((char)bVar1 < '\0') {\n                    uVar9 = FUN_002112d0(puVar11,&local_68,bVar1);\n                    puVar11 = (uint *)((long)local_70 + local_68);\n                  }\n                  else {\n                    local_68 = 1;\n                  }\n                  local_70 = (uint *)((long)local_70 + uVar9 + local_68);\n                  puStack_50 = puVar11;\n                  local_48 = uVar9;\n                }\n                else {\n                  if (uVar8 == 0x20) {\n                    pcVar3 = *(code **)(**(long **)(*param_1 + 0x10) + 0x18);\n                    if (pcVar3 == FUN_001b8d10) {\n                      cVar6 = (**(code **)(**(long **)(*param_1 + 0x10) + 0x1d0))();\n                    }\n                    else {\n                      cVar6 = (*pcVar3)();\n                    }\n                    puStack_50 = *(uint **)local_70;\n                    if (cVar6 != '\0') {\n                      puStack_50 = (uint *)((ulong)puStack_50 >> 0x38 |\n                                            ((ulong)puStack_50 & 0xff000000000000) >> 0x28 |\n                                            ((ulong)puStack_50 & 0xff0000000000) >> 0x18 |\n                                            ((ulong)puStack_50 & 0xff00000000) >> 8 |\n                                            ((ulong)puStack_50 & 0xff000000) << 8 |\n                                            ((ulong)puStack_50 & 0xff0000) << 0x18 |\n                                            ((ulong)puStack_50 & 0xff00) << 0x28 |\n                                           (long)puStack_50 << 0x38);\n                    }\n                    local_70 = local_70 + 2;\n                    goto LAB_00302ea9;\n                  }\n                  if (uVar8 < 0x20) {\n                    return 0;\n                  }\n                  if (1 < uVar8 - 0x1f01) {\n                    return 0;\n                  }\nLAB_00302bcd:\n                  bVar1 = (byte)*local_70;\n                  if ((char)bVar1 < '\0') {\n                    puStack_50 = (uint *)FUN_002112d0((uint *)((long)local_70 + 1),&local_68,bVar1);\n                    local_70 = (uint *)(local_68 + (long)local_70);\n                  }\n                  else {\n                    local_68 = 1;\n                    local_70 = (uint *)((long)local_70 + 1);\n                    puStack_50 = (uint *)(ulong)bVar1;\n                  }\n                }\nLAB_00302f92:\n                if (uVar2 == 0x31) goto LAB_00302750;\n                if (0x31 < uVar2) {\n                  if ((uVar2 == 0x6e) || (uVar2 == 0x2007)) goto LAB_00302fb5;\n                  goto LAB_00302750;\n                }\n                goto LAB_00302e3e;\n              }\n              puStack_50 = (uint *)0x1;\nLAB_00302ea9:\n              if (((uVar2 == 0x31) || (0x31 < uVar2)) || (uVar2 != 3)) goto LAB_00302750;\nLAB_00302e52:\n              if (uVar8 == 8) {\nLAB_003029c7:\n                param_1[0xb] = (long)puStack_50;\n              }\n              else if (uVar8 == 0xe) goto LAB_00302f64;\n              goto LAB_00302750;\n            }\n            if (uVar8 != 0x11) {\n              if (0x11 < uVar8) {\n                if (uVar8 == 0x13) {\n                  uVar9 = FUN_00305610(*param_1,&local_70);\n                  local_60 = (uint *)(ulong)uVar9;\n                  goto LAB_00303035;\n                }\n                if (0x13 < uVar8) {\n                  plVar17 = *(long **)(*param_1 + 0x10);\n                  goto LAB_00302fe7;\n                }\n                pcVar3 = *(code **)(**(long **)(*param_1 + 0x10) + 0x18);\n                if (pcVar3 == FUN_001b8d10) {\n                  cVar6 = (**(code **)(**(long **)(*param_1 + 0x10) + 0x1d0))();\n                }\n                else {\n                  cVar6 = (*pcVar3)();\n                }\n                uVar5 = (ushort)*local_70;\n                if (cVar6 != '\0') {\n                  uVar5 = CONCAT11((byte)*local_70,*(byte *)((long)local_70 + 1));\n                }\n                local_70 = (uint *)((long)local_70 + 2);\n                puStack_50 = (uint *)(ulong)uVar5;\n                goto joined_r0x00303052;\n              }\n              if (uVar8 == 0xf) goto LAB_00302bcd;\n              if (uVar8 != 0x10) {\n                return 0;\n              }\n              lVar10 = *param_1;\n              iVar7 = *(int *)(lVar10 + 100);\n              if (2 < *(uint *)(lVar10 + 0x68)) {\n                iVar7 = *(int *)(lVar10 + 0x60);\n              }\n              if (iVar7 != 4) goto LAB_00302a71;\nLAB_00302e7d:\n              uVar8 = FUN_00305610(lVar10,&local_70);\n              local_60 = (uint *)(ulong)uVar8;\nLAB_00302abe:\n              local_48 = FUN_00301dc0(*param_1,pbVar15,&local_60);\n              puStack_50 = local_60;\n              if (uVar2 == 0x31) goto LAB_00302965;\n              if (0x31 < uVar2) goto joined_r0x00302ccc;\n              goto LAB_00302c20;\n            }\n            puVar11 = (uint *)((long)local_70 + 1);\n            puStack_50 = (uint *)(ulong)(byte)*local_70;\n            local_70 = puVar11;\n            if (uVar2 != 0x31) {\n              if (uVar2 < 0x32) {\n                if (uVar2 == 1) {\n                  param_1[5] = (long)puStack_50;\n                }\n                goto LAB_00302750;\n              }\njoined_r0x00302ccc:\n              if ((uVar2 == 0x6e) || (uVar2 == 0x2007)) goto LAB_00302750;\n              goto joined_r0x00302ce3;\n            }\n          }\nLAB_00302965:\n          param_1[0x11] = (long)puStack_50;\n          goto LAB_00302750;\n        }\n        if (uVar8 == 7) {\n          pcVar3 = *(code **)(**(long **)(*param_1 + 0x10) + 0x18);\n          if (pcVar3 == FUN_001b8d10) {\n            cVar6 = (**(code **)(**(long **)(*param_1 + 0x10) + 0x1d0))();\n          }\n          else {\n            cVar6 = (*pcVar3)();\n          }\n          local_60 = *(uint **)local_70;\n          if (cVar6 != '\0') {\n            local_60 = (uint *)((ulong)local_60 >> 0x38 |\n                                ((ulong)local_60 & 0xff000000000000) >> 0x28 |\n                                ((ulong)local_60 & 0xff0000000000) >> 0x18 |\n                                ((ulong)local_60 & 0xff00000000) >> 8 |\n                                ((ulong)local_60 & 0xff000000) << 8 |\n                                ((ulong)local_60 & 0xff0000) << 0x18 |\n                                ((ulong)local_60 & 0xff00) << 0x28 | (long)local_60 << 0x38);\n          }\n          local_70 = local_70 + 2;\nLAB_00302d40:\n          local_48 = FUN_00301dc0(*param_1,pbVar15,&local_60);\n          puStack_50 = local_60;\njoined_r0x00302748:\n          if ((uVar2 != 0x31) && (uVar2 < 0x32)) {\nLAB_00302e3e:\n            if ((uVar2 != 1) && (uVar2 == 3)) goto LAB_00302e52;\n          }\n          goto LAB_00302750;\n        }\n        if (uVar8 < 8) {\n          if (uVar8 == 4) {\n            pcVar3 = *(code **)(**(long **)(*param_1 + 0x10) + 0x18);\n            if (pcVar3 == FUN_001b8d10) {\n              cVar6 = (**(code **)(**(long **)(*param_1 + 0x10) + 0x1d0))();\n            }\n            else {\n              cVar6 = (*pcVar3)();\n            }\n            local_48 = *local_70;\n            if (cVar6 != '\0') {\n              local_48 = local_48 >> 0x18 | (local_48 & 0xff0000) >> 8 | (local_48 & 0xff00) << 8 |\n                         local_48 << 0x18;\n            }\n            puStack_50 = local_70 + 1;\n            local_70 = (uint *)((long)puStack_50 + (ulong)local_48);\n          }\n          else if (uVar8 < 5) {\n            if (uVar8 == 1) {\n              lVar10 = *param_1;\n              if (*(int *)(lVar10 + 100) == 4) goto LAB_00302e7d;\nLAB_00302a71:\n              pcVar3 = *(code **)(**(long **)(lVar10 + 0x10) + 0x18);\n              if (pcVar3 == FUN_001b8d10) {\n                cVar6 = (**(code **)(**(long **)(lVar10 + 0x10) + 0x1d0))();\n              }\n              else {\n                cVar6 = (*pcVar3)();\n              }\n              local_60 = *(uint **)local_70;\n              if (cVar6 != '\0') {\n                local_60 = (uint *)((ulong)local_60 >> 0x38 |\n                                    ((ulong)local_60 & 0xff000000000000) >> 0x28 |\n                                    ((ulong)local_60 & 0xff0000000000) >> 0x18 |\n                                    ((ulong)local_60 & 0xff00000000) >> 8 |\n                                    ((ulong)local_60 & 0xff000000) << 8 |\n                                    ((ulong)local_60 & 0xff0000) << 0x18 |\n                                    ((ulong)local_60 & 0xff00) << 0x28 | (long)local_60 << 0x38);\n              }\n              local_70 = local_70 + 2;\n              goto LAB_00302abe;\n            }\n            if (uVar8 != 3) {\n              return 0;\n            }\n            pcVar3 = *(code **)(**(long **)(*param_1 + 0x10) + 0x18);\n            if (pcVar3 == FUN_001b8d10) {\n              cVar6 = (**(code **)(**(long **)(*param_1 + 0x10) + 0x1d0))();\n            }\n            else {\n              cVar6 = (*pcVar3)();\n            }\n            uVar5 = (ushort)*local_70;\n            if (cVar6 != '\0') {\n              uVar5 = CONCAT11((byte)*local_70,*(byte *)((long)local_70 + 1));\n            }\n            local_48 = (uint)uVar5;\n            puStack_50 = (uint *)((long)local_70 + 2);\n            local_70 = (uint *)((long)puStack_50 + (ulong)local_48);\n          }\n          else {\n            if (uVar8 != 5) {\n              if (uVar8 != 6) {\n                return 0;\n              }\n              pcVar3 = *(code **)(**(long **)(*param_1 + 0x10) + 0x18);\n              if (pcVar3 == FUN_001b8d10) {\n                cVar6 = (**(code **)(**(long **)(*param_1 + 0x10) + 0x1d0))();\n              }\n              else {\n                cVar6 = (*pcVar3)();\n              }\n              uVar9 = *local_70;\n              if (cVar6 != '\0') {\n                uVar9 = uVar9 >> 0x18 | (uVar9 & 0xff0000) >> 8 | (uVar9 & 0xff00) << 8 |\n                        uVar9 << 0x18;\n              }\n              local_60 = (uint *)(ulong)uVar9;\n              local_70 = local_70 + 1;\n              goto LAB_00302d40;\n            }\n            pcVar3 = *(code **)(**(long **)(*param_1 + 0x10) + 0x18);\n            if (pcVar3 == FUN_001b8d10) {\n              cVar6 = (**(code **)(**(long **)(*param_1 + 0x10) + 0x1d0))();\n            }\n            else {\n              cVar6 = (*pcVar3)();\n            }\n            uVar5 = (ushort)*local_70;\n            if (cVar6 != '\0') {\n              uVar5 = CONCAT11((byte)*local_70,*(byte *)((long)local_70 + 1));\n            }\n            local_70 = (uint *)((long)local_70 + 2);\n            puStack_50 = (uint *)(ulong)uVar5;\n          }\n          goto joined_r0x00302748;\n        }\n        if (uVar8 == 10) {\n          puStack_50 = (uint *)((long)local_70 + 1);\n          uVar9 = *local_70;\n          local_70 = (uint *)((long)puStack_50 + (ulong)(byte)uVar9);\n          local_48 = (uint)(byte)uVar9;\n          goto joined_r0x00302748;\n        }\n        if (uVar8 < 0xb) {\n          if (uVar8 != 8) {\n            if (uVar8 != 9) {\n              return 0;\n            }\n            goto LAB_00302a09;\n          }\n          puStack_50 = local_70;\n          local_68 = strlen((char *)local_70);\n          local_70 = (uint *)((long)puVar11 + local_68 + 1);\n          if (uVar2 == 0x31) goto LAB_00302750;\n          if (0x31 < uVar2) {\n            if ((uVar2 != 0x6e) && (uVar2 != 0x2007)) goto LAB_00302750;\n            goto LAB_003029eb;\n          }\n          if ((uVar2 == 1) || (uVar2 != 3)) goto LAB_00302750;\n          goto LAB_003029c7;\n        }\n        if (uVar8 < 0xd) {\n          uVar9 = *local_70;\n          local_70 = (uint *)((long)local_70 + 1);\n          puStack_50 = (uint *)(ulong)(byte)uVar9;\n          goto LAB_00302f92;\n        }\n        bVar1 = (byte)*local_70;\n        puVar11 = (uint *)((long)local_70 + 1);\n        if ((char)bVar1 < '\0') {\n          puStack_50 = (uint *)FUN_00211340(puVar11,&local_68);\n          puVar11 = (uint *)(local_68 + (long)local_70);\n        }\n        else {\n          local_68 = 1;\n          puStack_50 = (uint *)(ulong)bVar1;\n          if ((bVar1 & 0x40) != 0) {\n            puStack_50 = (uint *)((ulong)bVar1 | 0xffffffffffffff80);\n          }\n        }\n        local_70 = puVar11;\n        if ((uVar2 == 0x31) || (uVar2 < 0x32)) goto LAB_00302750;\n        if ((uVar2 == 0x6e) || (uVar2 == 0x2007)) goto LAB_00302fbe;\n        puVar16 = (undefined8 *)param_1[8];\n        if (puVar16 == (undefined8 *)param_1[9]) goto LAB_003028c0;\nLAB_0030275e:\n        *puVar16 = CONCAT44(uStack_54,local_58);\n        puVar16[1] = puStack_50;\n        puVar16[2] = CONCAT44(uStack_44,local_48);\n        param_1[8] = (long)(puVar16 + 3);\n      }\n      lVar20 = lVar20 + 8;\n      lVar10 = param_1[6];\n    } while (lVar20 != (ulong)(iVar13 - 1) * 8 + 8);" (do "do") (compound_statement "{\n      puVar11 = (uint *)(*(long *)(lVar10 + 8) + lVar20);\n      uVar8 = puVar11[1];\n      uVar2 = *puVar11;\n      if (uVar8 == 0x16) {\n        bVar1 = (byte)*local_70;\n        uVar8 = (uint)bVar1;\n        if ((char)bVar1 < '\0') {\n          uVar8 = FUN_002112d0((uint *)((long)local_70 + 1),&local_68,bVar1);\n          local_70 = (uint *)(local_68 + (long)local_70);\n        }\n        else {\n          local_68 = 1;\n          local_70 = (uint *)((long)local_70 + 1);\n        }\n      }\n      puVar11 = local_70;\n      pbVar15 = (byte *)((long)local_70 + (param_1[2] - lVar12));\n      local_48 = 0;\n      local_58 = uVar2;\n      uStack_54 = uVar8;\n      if (uVar8 == 0xe) {\n        lVar10 = *param_1;\n        if (*(int *)(lVar10 + 0x60) == 4) {\n          uVar8 = FUN_00305610(lVar10,&local_70);\n          local_60 = (uint *)(ulong)uVar8;\n        }\n        else {\n          pcVar3 = *(code **)(**(long **)(lVar10 + 0x10) + 0x18);\n          if (pcVar3 == FUN_001b8d10) {\n            cVar6 = (**(code **)(**(long **)(lVar10 + 0x10) + 0x1d0))();\n          }\n          else {\n            cVar6 = (*pcVar3)();\n          }\n          local_60 = *(uint **)local_70;\n          if (cVar6 != '\0') {\n            local_60 = (uint *)((ulong)local_60 >> 0x38 |\n                                ((ulong)local_60 & 0xff000000000000) >> 0x28 |\n                                ((ulong)local_60 & 0xff0000000000) >> 0x18 |\n                                ((ulong)local_60 & 0xff00000000) >> 8 |\n                                ((ulong)local_60 & 0xff000000) << 8 |\n                                ((ulong)local_60 & 0xff0000) << 0x18 |\n                                ((ulong)local_60 & 0xff00) << 0x28 | (long)local_60 << 0x38);\n          }\n          local_70 = local_70 + 2;\n        }\n        local_48 = FUN_00301dc0(*param_1,pbVar15,&local_60);\n        puStack_50 = local_60;\n        if (uVar2 != 0x31) {\n          if (uVar2 < 0x32) {\n            if ((uVar2 != 1) && (uVar2 == 3)) {\nLAB_00302f64:\n              *(uint *)(param_1 + 0xf) = local_48;\n              param_1[0xc] = (long)puStack_50;\n            }\n          }\n          else if ((uVar2 == 0x6e) || (uVar2 == 0x2007)) {\nLAB_00302fd0:\n            *(uint *)(param_1 + 0xf) = local_48;\n            param_1[0xe] = (long)puStack_50;\n          }\n        }\nLAB_00302750:\n        puVar16 = (undefined8 *)param_1[8];\n        if (puVar16 != (undefined8 *)param_1[9]) goto LAB_0030275e;\nLAB_003028c0:\n        FUN_00305860(param_1 + 7,puVar16,&local_58);\n      }\n      else {\n        if (0xe < uVar8) {\n          if (uVar8 == 0x15) {\n            bVar1 = (byte)*local_70;\n            if ((char)bVar1 < '\0') {\n              puStack_50 = (uint *)FUN_002112d0((uint *)((long)local_70 + 1),&local_68,bVar1);\n              local_70 = (uint *)(local_68 + (long)local_70);\n            }\n            else {\n              local_68 = 1;\n              local_70 = (uint *)((long)local_70 + 1);\n              puStack_50 = (uint *)(ulong)bVar1;\n            }\njoined_r0x00303052:\n            if (uVar2 != 0x31) {\n              if (uVar2 < 0x32) {\nLAB_00302c20:\n                if ((uVar2 == 1) && (local_48 == 0)) {\n                  param_1[5] = (long)puStack_50;\n                }\n                goto LAB_00302750;\n              }\n              if ((uVar2 != 0x6e) && (uVar2 != 0x2007)) {\njoined_r0x00302ce3:\n                if (uVar2 == 0x47) {\n                  param_1[0x10] = (long)puStack_50;\n                }\n                goto LAB_00302750;\n              }\nLAB_00302fb5:\n              if (uVar8 == 8) {\nLAB_003029eb:\n                param_1[0xd] = (long)puStack_50;\n              }\n              else {\nLAB_00302fbe:\n                if (uVar8 == 0xe) goto LAB_00302fd0;\n              }\n              goto LAB_00302750;\n            }\n          }\n          else {\n            if (0x15 < uVar8) {\n              if (uVar8 != 0x19) {\n                if (uVar8 < 0x1a) {\n                  if (uVar8 == 0x17) {\n                    lVar10 = *param_1;\n                    if (*(int *)(lVar10 + 0x60) == 4) {\n                      uVar9 = FUN_00305610(lVar10,&local_70);\n                      local_60 = (uint *)(ulong)uVar9;\n                    }\n                    else {\n                      plVar17 = *(long **)(lVar10 + 0x10);\nLAB_00302fe7:\n                      pcVar3 = *(code **)(*plVar17 + 0x18);\n                      if (pcVar3 == FUN_001b8d10) {\n                        cVar6 = (**(code **)(*plVar17 + 0x1d0))();\n                      }\n                      else {\n                        cVar6 = (*pcVar3)();\n                      }\n                      local_60 = *(uint **)local_70;\n                      if (cVar6 != '\0') {\n                        local_60 = (uint *)((ulong)local_60 >> 0x38 |\n                                            ((ulong)local_60 & 0xff000000000000) >> 0x28 |\n                                            ((ulong)local_60 & 0xff0000000000) >> 0x18 |\n                                            ((ulong)local_60 & 0xff00000000) >> 8 |\n                                            ((ulong)local_60 & 0xff000000) << 8 |\n                                            ((ulong)local_60 & 0xff0000) << 0x18 |\n                                            ((ulong)local_60 & 0xff00) << 0x28 |\n                                           (long)local_60 << 0x38);\n                      }\n                      local_70 = local_70 + 2;\n                    }\nLAB_00303035:\n                    local_48 = FUN_00301dc0(*param_1,pbVar15,&local_60);\n                    puStack_50 = local_60;\n                    goto joined_r0x00303052;\n                  }\n                  if (uVar8 != 0x18) {\n                    return 0;\n                  }\nLAB_00302a09:\n                  bVar1 = (byte)*local_70;\n                  uVar9 = (uint)bVar1;\n                  puVar11 = (uint *)((long)local_70 + 1);\n                  if ((char)bVar1 < '\0') {\n                    uVar9 = FUN_002112d0(puVar11,&local_68,bVar1);\n                    puVar11 = (uint *)((long)local_70 + local_68);\n                  }\n                  else {\n                    local_68 = 1;\n                  }\n                  local_70 = (uint *)((long)local_70 + uVar9 + local_68);\n                  puStack_50 = puVar11;\n                  local_48 = uVar9;\n                }\n                else {\n                  if (uVar8 == 0x20) {\n                    pcVar3 = *(code **)(**(long **)(*param_1 + 0x10) + 0x18);\n                    if (pcVar3 == FUN_001b8d10) {\n                      cVar6 = (**(code **)(**(long **)(*param_1 + 0x10) + 0x1d0))();\n                    }\n                    else {\n                      cVar6 = (*pcVar3)();\n                    }\n                    puStack_50 = *(uint **)local_70;\n                    if (cVar6 != '\0') {\n                      puStack_50 = (uint *)((ulong)puStack_50 >> 0x38 |\n                                            ((ulong)puStack_50 & 0xff000000000000) >> 0x28 |\n                                            ((ulong)puStack_50 & 0xff0000000000) >> 0x18 |\n                                            ((ulong)puStack_50 & 0xff00000000) >> 8 |\n                                            ((ulong)puStack_50 & 0xff000000) << 8 |\n                                            ((ulong)puStack_50 & 0xff0000) << 0x18 |\n                                            ((ulong)puStack_50 & 0xff00) << 0x28 |\n                                           (long)puStack_50 << 0x38);\n                    }\n                    local_70 = local_70 + 2;\n                    goto LAB_00302ea9;\n                  }\n                  if (uVar8 < 0x20) {\n                    return 0;\n                  }\n                  if (1 < uVar8 - 0x1f01) {\n                    return 0;\n                  }\nLAB_00302bcd:\n                  bVar1 = (byte)*local_70;\n                  if ((char)bVar1 < '\0') {\n                    puStack_50 = (uint *)FUN_002112d0((uint *)((long)local_70 + 1),&local_68,bVar1);\n                    local_70 = (uint *)(local_68 + (long)local_70);\n                  }\n                  else {\n                    local_68 = 1;\n                    local_70 = (uint *)((long)local_70 + 1);\n                    puStack_50 = (uint *)(ulong)bVar1;\n                  }\n                }\nLAB_00302f92:\n                if (uVar2 == 0x31) goto LAB_00302750;\n                if (0x31 < uVar2) {\n                  if ((uVar2 == 0x6e) || (uVar2 == 0x2007)) goto LAB_00302fb5;\n                  goto LAB_00302750;\n                }\n                goto LAB_00302e3e;\n              }\n              puStack_50 = (uint *)0x1;\nLAB_00302ea9:\n              if (((uVar2 == 0x31) || (0x31 < uVar2)) || (uVar2 != 3)) goto LAB_00302750;\nLAB_00302e52:\n              if (uVar8 == 8) {\nLAB_003029c7:\n                param_1[0xb] = (long)puStack_50;\n              }\n              else if (uVar8 == 0xe) goto LAB_00302f64;\n              goto LAB_00302750;\n            }\n            if (uVar8 != 0x11) {\n              if (0x11 < uVar8) {\n                if (uVar8 == 0x13) {\n                  uVar9 = FUN_00305610(*param_1,&local_70);\n                  local_60 = (uint *)(ulong)uVar9;\n                  goto LAB_00303035;\n                }\n                if (0x13 < uVar8) {\n                  plVar17 = *(long **)(*param_1 + 0x10);\n                  goto LAB_00302fe7;\n                }\n                pcVar3 = *(code **)(**(long **)(*param_1 + 0x10) + 0x18);\n                if (pcVar3 == FUN_001b8d10) {\n                  cVar6 = (**(code **)(**(long **)(*param_1 + 0x10) + 0x1d0))();\n                }\n                else {\n                  cVar6 = (*pcVar3)();\n                }\n                uVar5 = (ushort)*local_70;\n                if (cVar6 != '\0') {\n                  uVar5 = CONCAT11((byte)*local_70,*(byte *)((long)local_70 + 1));\n                }\n                local_70 = (uint *)((long)local_70 + 2);\n                puStack_50 = (uint *)(ulong)uVar5;\n                goto joined_r0x00303052;\n              }\n              if (uVar8 == 0xf) goto LAB_00302bcd;\n              if (uVar8 != 0x10) {\n                return 0;\n              }\n              lVar10 = *param_1;\n              iVar7 = *(int *)(lVar10 + 100);\n              if (2 < *(uint *)(lVar10 + 0x68)) {\n                iVar7 = *(int *)(lVar10 + 0x60);\n              }\n              if (iVar7 != 4) goto LAB_00302a71;\nLAB_00302e7d:\n              uVar8 = FUN_00305610(lVar10,&local_70);\n              local_60 = (uint *)(ulong)uVar8;\nLAB_00302abe:\n              local_48 = FUN_00301dc0(*param_1,pbVar15,&local_60);\n              puStack_50 = local_60;\n              if (uVar2 == 0x31) goto LAB_00302965;\n              if (0x31 < uVar2) goto joined_r0x00302ccc;\n              goto LAB_00302c20;\n            }\n            puVar11 = (uint *)((long)local_70 + 1);\n            puStack_50 = (uint *)(ulong)(byte)*local_70;\n            local_70 = puVar11;\n            if (uVar2 != 0x31) {\n              if (uVar2 < 0x32) {\n                if (uVar2 == 1) {\n                  param_1[5] = (long)puStack_50;\n                }\n                goto LAB_00302750;\n              }\njoined_r0x00302ccc:\n              if ((uVar2 == 0x6e) || (uVar2 == 0x2007)) goto LAB_00302750;\n              goto joined_r0x00302ce3;\n            }\n          }\nLAB_00302965:\n          param_1[0x11] = (long)puStack_50;\n          goto LAB_00302750;\n        }\n        if (uVar8 == 7) {\n          pcVar3 = *(code **)(**(long **)(*param_1 + 0x10) + 0x18);\n          if (pcVar3 == FUN_001b8d10) {\n            cVar6 = (**(code **)(**(long **)(*param_1 + 0x10) + 0x1d0))();\n          }\n          else {\n            cVar6 = (*pcVar3)();\n          }\n          local_60 = *(uint **)local_70;\n          if (cVar6 != '\0') {\n            local_60 = (uint *)((ulong)local_60 >> 0x38 |\n                                ((ulong)local_60 & 0xff000000000000) >> 0x28 |\n                                ((ulong)local_60 & 0xff0000000000) >> 0x18 |\n                                ((ulong)local_60 & 0xff00000000) >> 8 |\n                                ((ulong)local_60 & 0xff000000) << 8 |\n                                ((ulong)local_60 & 0xff0000) << 0x18 |\n                                ((ulong)local_60 & 0xff00) << 0x28 | (long)local_60 << 0x38);\n          }\n          local_70 = local_70 + 2;\nLAB_00302d40:\n          local_48 = FUN_00301dc0(*param_1,pbVar15,&local_60);\n          puStack_50 = local_60;\njoined_r0x00302748:\n          if ((uVar2 != 0x31) && (uVar2 < 0x32)) {\nLAB_00302e3e:\n            if ((uVar2 != 1) && (uVar2 == 3)) goto LAB_00302e52;\n          }\n          goto LAB_00302750;\n        }\n        if (uVar8 < 8) {\n          if (uVar8 == 4) {\n            pcVar3 = *(code **)(**(long **)(*param_1 + 0x10) + 0x18);\n            if (pcVar3 == FUN_001b8d10) {\n              cVar6 = (**(code **)(**(long **)(*param_1 + 0x10) + 0x1d0))();\n            }\n            else {\n              cVar6 = (*pcVar3)();\n            }\n            local_48 = *local_70;\n            if (cVar6 != '\0') {\n              local_48 = local_48 >> 0x18 | (local_48 & 0xff0000) >> 8 | (local_48 & 0xff00) << 8 |\n                         local_48 << 0x18;\n            }\n            puStack_50 = local_70 + 1;\n            local_70 = (uint *)((long)puStack_50 + (ulong)local_48);\n          }\n          else if (uVar8 < 5) {\n            if (uVar8 == 1) {\n              lVar10 = *param_1;\n              if (*(int *)(lVar10 + 100) == 4) goto LAB_00302e7d;\nLAB_00302a71:\n              pcVar3 = *(code **)(**(long **)(lVar10 + 0x10) + 0x18);\n              if (pcVar3 == FUN_001b8d10) {\n                cVar6 = (**(code **)(**(long **)(lVar10 + 0x10) + 0x1d0))();\n              }\n              else {\n                cVar6 = (*pcVar3)();\n              }\n              local_60 = *(uint **)local_70;\n              if (cVar6 != '\0') {\n                local_60 = (uint *)((ulong)local_60 >> 0x38 |\n                                    ((ulong)local_60 & 0xff000000000000) >> 0x28 |\n                                    ((ulong)local_60 & 0xff0000000000) >> 0x18 |\n                                    ((ulong)local_60 & 0xff00000000) >> 8 |\n                                    ((ulong)local_60 & 0xff000000) << 8 |\n                                    ((ulong)local_60 & 0xff0000) << 0x18 |\n                                    ((ulong)local_60 & 0xff00) << 0x28 | (long)local_60 << 0x38);\n              }\n              local_70 = local_70 + 2;\n              goto LAB_00302abe;\n            }\n            if (uVar8 != 3) {\n              return 0;\n            }\n            pcVar3 = *(code **)(**(long **)(*param_1 + 0x10) + 0x18);\n            if (pcVar3 == FUN_001b8d10) {\n              cVar6 = (**(code **)(**(long **)(*param_1 + 0x10) + 0x1d0))();\n            }\n            else {\n              cVar6 = (*pcVar3)();\n            }\n            uVar5 = (ushort)*local_70;\n            if (cVar6 != '\0') {\n              uVar5 = CONCAT11((byte)*local_70,*(byte *)((long)local_70 + 1));\n            }\n            local_48 = (uint)uVar5;\n            puStack_50 = (uint *)((long)local_70 + 2);\n            local_70 = (uint *)((long)puStack_50 + (ulong)local_48);\n          }\n          else {\n            if (uVar8 != 5) {\n              if (uVar8 != 6) {\n                return 0;\n              }\n              pcVar3 = *(code **)(**(long **)(*param_1 + 0x10) + 0x18);\n              if (pcVar3 == FUN_001b8d10) {\n                cVar6 = (**(code **)(**(long **)(*param_1 + 0x10) + 0x1d0))();\n              }\n              else {\n                cVar6 = (*pcVar3)();\n              }\n              uVar9 = *local_70;\n              if (cVar6 != '\0') {\n                uVar9 = uVar9 >> 0x18 | (uVar9 & 0xff0000) >> 8 | (uVar9 & 0xff00) << 8 |\n                        uVar9 << 0x18;\n              }\n              local_60 = (uint *)(ulong)uVar9;\n              local_70 = local_70 + 1;\n              goto LAB_00302d40;\n            }\n            pcVar3 = *(code **)(**(long **)(*param_1 + 0x10) + 0x18);\n            if (pcVar3 == FUN_001b8d10) {\n              cVar6 = (**(code **)(**(long **)(*param_1 + 0x10) + 0x1d0))();\n            }\n            else {\n              cVar6 = (*pcVar3)();\n            }\n            uVar5 = (ushort)*local_70;\n            if (cVar6 != '\0') {\n              uVar5 = CONCAT11((byte)*local_70,*(byte *)((long)local_70 + 1));\n            }\n            local_70 = (uint *)((long)local_70 + 2);\n            puStack_50 = (uint *)(ulong)uVar5;\n          }\n          goto joined_r0x00302748;\n        }\n        if (uVar8 == 10) {\n          puStack_50 = (uint *)((long)local_70 + 1);\n          uVar9 = *local_70;\n          local_70 = (uint *)((long)puStack_50 + (ulong)(byte)uVar9);\n          local_48 = (uint)(byte)uVar9;\n          goto joined_r0x00302748;\n        }\n        if (uVar8 < 0xb) {\n          if (uVar8 != 8) {\n            if (uVar8 != 9) {\n              return 0;\n            }\n            goto LAB_00302a09;\n          }\n          puStack_50 = local_70;\n          local_68 = strlen((char *)local_70);\n          local_70 = (uint *)((long)puVar11 + local_68 + 1);\n          if (uVar2 == 0x31) goto LAB_00302750;\n          if (0x31 < uVar2) {\n            if ((uVar2 != 0x6e) && (uVar2 != 0x2007)) goto LAB_00302750;\n            goto LAB_003029eb;\n          }\n          if ((uVar2 == 1) || (uVar2 != 3)) goto LAB_00302750;\n          goto LAB_003029c7;\n        }\n        if (uVar8 < 0xd) {\n          uVar9 = *local_70;\n          local_70 = (uint *)((long)local_70 + 1);\n          puStack_50 = (uint *)(ulong)(byte)uVar9;\n          goto LAB_00302f92;\n        }\n        bVar1 = (byte)*local_70;\n        puVar11 = (uint *)((long)local_70 + 1);\n        if ((char)bVar1 < '\0') {\n          puStack_50 = (uint *)FUN_00211340(puVar11,&local_68);\n          puVar11 = (uint *)(local_68 + (long)local_70);\n        }\n        else {\n          local_68 = 1;\n          puStack_50 = (uint *)(ulong)bVar1;\n          if ((bVar1 & 0x40) != 0) {\n            puStack_50 = (uint *)((ulong)bVar1 | 0xffffffffffffff80);\n          }\n        }\n        local_70 = puVar11;\n        if ((uVar2 == 0x31) || (uVar2 < 0x32)) goto LAB_00302750;\n        if ((uVar2 == 0x6e) || (uVar2 == 0x2007)) goto LAB_00302fbe;\n        puVar16 = (undefined8 *)param_1[8];\n        if (puVar16 == (undefined8 *)param_1[9]) goto LAB_003028c0;\nLAB_0030275e:\n        *puVar16 = CONCAT44(uStack_54,local_58);\n        puVar16[1] = puStack_50;\n        puVar16[2] = CONCAT44(uStack_44,local_48);\n        param_1[8] = (long)(puVar16 + 3);\n      }\n      lVar20 = lVar20 + 8;\n      lVar10 = param_1[6];\n    }" ({ "{") (expression_statement "puVar11 = (uint *)(*(long *)(lVar10 + 8) + lVar20);" (assignment_expression "puVar11 = (uint *)(*(long *)(lVar10 + 8) + lVar20)" (identifier "puVar11") (= "=") (cast_expression "(uint *)(*(long *)(lVar10 + 8) + lVar20)" (( "(") (type_descriptor "uint *" (type_identifier "uint") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(*(long *)(lVar10 + 8) + lVar20)" (( "(") (binary_expression "*(long *)(lVar10 + 8) + lVar20" (pointer_expression "*(long *)(lVar10 + 8)" (* "*") (cast_expression "(long *)(lVar10 + 8)" (( "(") (type_descriptor "long *" (sized_type_specifier "long" (long "long")) (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(lVar10 + 8)" (( "(") (binary_expression "lVar10 + 8" (identifier "lVar10") (+ "+") (number_literal "8")) () ")")))) (+ "+") (identifier "lVar20")) () ")")))) (; ";")) (expression_statement "uVar8 = puVar11[1];" (assignment_expression "uVar8 = puVar11[1]" (identifier "uVar8") (= "=") (subscript_expression "puVar11[1]" (identifier "puVar11") ([ "[") (number_literal "1") (] "]"))) (; ";")) (expression_statement "uVar2 = *puVar11;" (assignment_expression "uVar2 = *puVar11" (identifier "uVar2") (= "=") (pointer_expression "*puVar11" (* "*") (identifier "puVar11"))) (; ";")) (if_statement "if (uVar8 == 0x16) {\n        bVar1 = (byte)*local_70;\n        uVar8 = (uint)bVar1;\n        if ((char)bVar1 < '\0') {\n          uVar8 = FUN_002112d0((uint *)((long)local_70 + 1),&local_68,bVar1);\n          local_70 = (uint *)(local_68 + (long)local_70);\n        }\n        else {\n          local_68 = 1;\n          local_70 = (uint *)((long)local_70 + 1);\n        }\n      }" (if "if") (parenthesized_expression "(uVar8 == 0x16)" (( "(") (binary_expression "uVar8 == 0x16" (identifier "uVar8") (== "==") (number_literal "0x16")) () ")")) (compound_statement "{\n        bVar1 = (byte)*local_70;\n        uVar8 = (uint)bVar1;\n        if ((char)bVar1 < '\0') {\n          uVar8 = FUN_002112d0((uint *)((long)local_70 + 1),&local_68,bVar1);\n          local_70 = (uint *)(local_68 + (long)local_70);\n        }\n        else {\n          local_68 = 1;\n          local_70 = (uint *)((long)local_70 + 1);\n        }\n      }" ({ "{") (expression_statement "bVar1 = (byte)*local_70;" (assignment_expression "bVar1 = (byte)*local_70" (identifier "bVar1") (= "=") (binary_expression "(byte)*local_70" (parenthesized_expression "(byte)" (( "(") (identifier "byte") () ")")) (* "*") (identifier "local_70"))) (; ";")) (expression_statement "uVar8 = (uint)bVar1;" (assignment_expression "uVar8 = (uint)bVar1" (identifier "uVar8") (= "=") (cast_expression "(uint)bVar1" (( "(") (type_descriptor "uint" (type_identifier "uint")) () ")") (identifier "bVar1"))) (; ";")) (if_statement "if ((char)bVar1 < '\0') {\n          uVar8 = FUN_002112d0((uint *)((long)local_70 + 1),&local_68,bVar1);\n          local_70 = (uint *)(local_68 + (long)local_70);\n        }\n        else {\n          local_68 = 1;\n          local_70 = (uint *)((long)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          uVar8 = FUN_002112d0((uint *)((long)local_70 + 1),&local_68,bVar1);\n          local_70 = (uint *)(local_68 + (long)local_70);\n        }" ({ "{") (expression_statement "uVar8 = FUN_002112d0((uint *)((long)local_70 + 1),&local_68,bVar1);" (assignment_expression "uVar8 = FUN_002112d0((uint *)((long)local_70 + 1),&local_68,bVar1)" (identifier "uVar8") (= "=") (call_expression "FUN_002112d0((uint *)((long)local_70 + 1),&local_68,bVar1)" (identifier "FUN_002112d0") (argument_list "((uint *)((long)local_70 + 1),&local_68,bVar1)" (( "(") (cast_expression "(uint *)((long)local_70 + 1)" (( "(") (type_descriptor "uint *" (type_identifier "uint") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "((long)local_70 + 1)" (( "(") (binary_expression "(long)local_70 + 1" (cast_expression "(long)local_70" (( "(") (type_descriptor "long" (sized_type_specifier "long" (long "long"))) () ")") (identifier "local_70")) (+ "+") (number_literal "1")) () ")"))) (, ",") (pointer_expression "&local_68" (& "&") (identifier "local_68")) (, ",") (identifier "bVar1") () ")")))) (; ";")) (expression_statement "local_70 = (uint *)(local_68 + (long)local_70);" (assignment_expression "local_70 = (uint *)(local_68 + (long)local_70)" (identifier "local_70") (= "=") (cast_expression "(uint *)(local_68 + (long)local_70)" (( "(") (type_descriptor "uint *" (type_identifier "uint") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(local_68 + (long)local_70)" (( "(") (binary_expression "local_68 + (long)local_70" (identifier "local_68") (+ "+") (cast_expression "(long)local_70" (( "(") (type_descriptor "long" (sized_type_specifier "long" (long "long"))) () ")") (identifier "local_70"))) () ")")))) (; ";")) (} "}")) (else_clause "else {\n          local_68 = 1;\n          local_70 = (uint *)((long)local_70 + 1);\n        }" (else "else") (compound_statement "{\n          local_68 = 1;\n          local_70 = (uint *)((long)local_70 + 1);\n        }" ({ "{") (expression_statement "local_68 = 1;" (assignment_expression "local_68 = 1" (identifier "local_68") (= "=") (number_literal "1")) (; ";")) (expression_statement "local_70 = (uint *)((long)local_70 + 1);" (assignment_expression "local_70 = (uint *)((long)local_70 + 1)" (identifier "local_70") (= "=") (cast_expression "(uint *)((long)local_70 + 1)" (( "(") (type_descriptor "uint *" (type_identifier "uint") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "((long)local_70 + 1)" (( "(") (binary_expression "(long)local_70 + 1" (cast_expression "(long)local_70" (( "(") (type_descriptor "long" (sized_type_specifier "long" (long "long"))) () ")") (identifier "local_70")) (+ "+") (number_literal "1")) () ")")))) (; ";")) (} "}")))) (} "}"))) (expression_statement "puVar11 = local_70;" (assignment_expression "puVar11 = local_70" (identifier "puVar11") (= "=") (identifier "local_70")) (; ";")) (expression_statement "pbVar15 = (byte *)((long)local_70 + (param_1[2] - lVar12));" (assignment_expression "pbVar15 = (byte *)((long)local_70 + (param_1[2] - lVar12))" (identifier "pbVar15") (= "=") (cast_expression "(byte *)((long)local_70 + (param_1[2] - lVar12))" (( "(") (type_descriptor "byte *" (type_identifier "byte") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "((long)local_70 + (param_1[2] - lVar12))" (( "(") (binary_expression "(long)local_70 + (param_1[2] - lVar12)" (cast_expression "(long)local_70" (( "(") (type_descriptor "long" (sized_type_specifier "long" (long "long"))) () ")") (identifier "local_70")) (+ "+") (parenthesized_expression "(param_1[2] - lVar12)" (( "(") (binary_expression "param_1[2] - lVar12" (subscript_expression "param_1[2]" (identifier "param_1") ([ "[") (number_literal "2") (] "]")) (- "-") (identifier "lVar12")) () ")"))) () ")")))) (; ";")) (expression_statement "local_48 = 0;" (assignment_expression "local_48 = 0" (identifier "local_48") (= "=") (number_literal "0")) (; ";")) (expression_statement "local_58 = uVar2;" (assignment_expression "local_58 = uVar2" (identifier "local_58") (= "=") (identifier "uVar2")) (; ";")) (expression_statement "uStack_54 = uVar8;" (assignment_expression "uStack_54 = uVar8" (identifier "uStack_54") (= "=") (identifier "uVar8")) (; ";")) (if_statement "if (uVar8 == 0xe) {\n        lVar10 = *param_1;\n        if (*(int *)(lVar10 + 0x60) == 4) {\n          uVar8 = FUN_00305610(lVar10,&local_70);\n          local_60 = (uint *)(ulong)uVar8;\n        }\n        else {\n          pcVar3 = *(code **)(**(long **)(lVar10 + 0x10) + 0x18);\n          if (pcVar3 == FUN_001b8d10) {\n            cVar6 = (**(code **)(**(long **)(lVar10 + 0x10) + 0x1d0))();\n          }\n          else {\n            cVar6 = (*pcVar3)();\n          }\n          local_60 = *(uint **)local_70;\n          if (cVar6 != '\0') {\n            local_60 = (uint *)((ulong)local_60 >> 0x38 |\n                                ((ulong)local_60 & 0xff000000000000) >> 0x28 |\n                                ((ulong)local_60 & 0xff0000000000) >> 0x18 |\n                                ((ulong)local_60 & 0xff00000000) >> 8 |\n                                ((ulong)local_60 & 0xff000000) << 8 |\n                                ((ulong)local_60 & 0xff0000) << 0x18 |\n                                ((ulong)local_60 & 0xff00) << 0x28 | (long)local_60 << 0x38);\n          }\n          local_70 = local_70 + 2;\n        }\n        local_48 = FUN_00301dc0(*param_1,pbVar15,&local_60);\n        puStack_50 = local_60;\n        if (uVar2 != 0x31) {\n          if (uVar2 < 0x32) {\n            if ((uVar2 != 1) && (uVar2 == 3)) {\nLAB_00302f64:\n              *(uint *)(param_1 + 0xf) = local_48;\n              param_1[0xc] = (long)puStack_50;\n            }\n          }\n          else if ((uVar2 == 0x6e) || (uVar2 == 0x2007)) {\nLAB_00302fd0:\n            *(uint *)(param_1 + 0xf) = local_48;\n            param_1[0xe] = (long)puStack_50;\n          }\n        }\nLAB_00302750:\n        puVar16 = (undefined8 *)param_1[8];\n        if (puVar16 != (undefined8 *)param_1[9]) goto LAB_0030275e;\nLAB_003028c0:\n        FUN_00305860(param_1 + 7,puVar16,&local_58);\n      }\n      else {\n        if (0xe < uVar8) {\n          if (uVar8 == 0x15) {\n            bVar1 = (byte)*local_70;\n            if ((char)bVar1 < '\0') {\n              puStack_50 = (uint *)FUN_002112d0((uint *)((long)local_70 + 1),&local_68,bVar1);\n              local_70 = (uint *)(local_68 + (long)local_70);\n            }\n            else {\n              local_68 = 1;\n              local_70 = (uint *)((long)local_70 + 1);\n              puStack_50 = (uint *)(ulong)bVar1;\n            }\njoined_r0x00303052:\n            if (uVar2 != 0x31) {\n              if (uVar2 < 0x32) {\nLAB_00302c20:\n                if ((uVar2 == 1) && (local_48 == 0)) {\n                  param_1[5] = (long)puStack_50;\n                }\n                goto LAB_00302750;\n              }\n              if ((uVar2 != 0x6e) && (uVar2 != 0x2007)) {\njoined_r0x00302ce3:\n                if (uVar2 == 0x47) {\n                  param_1[0x10] = (long)puStack_50;\n                }\n                goto LAB_00302750;\n              }\nLAB_00302fb5:\n              if (uVar8 == 8) {\nLAB_003029eb:\n                param_1[0xd] = (long)puStack_50;\n              }\n              else {\nLAB_00302fbe:\n                if (uVar8 == 0xe) goto LAB_00302fd0;\n              }\n              goto LAB_00302750;\n            }\n          }\n          else {\n            if (0x15 < uVar8) {\n              if (uVar8 != 0x19) {\n                if (uVar8 < 0x1a) {\n                  if (uVar8 == 0x17) {\n                    lVar10 = *param_1;\n                    if (*(int *)(lVar10 + 0x60) == 4) {\n                      uVar9 = FUN_00305610(lVar10,&local_70);\n                      local_60 = (uint *)(ulong)uVar9;\n                    }\n                    else {\n                      plVar17 = *(long **)(lVar10 + 0x10);\nLAB_00302fe7:\n                      pcVar3 = *(code **)(*plVar17 + 0x18);\n                      if (pcVar3 == FUN_001b8d10) {\n                        cVar6 = (**(code **)(*plVar17 + 0x1d0))();\n                      }\n                      else {\n                        cVar6 = (*pcVar3)();\n                      }\n                      local_60 = *(uint **)local_70;\n                      if (cVar6 != '\0') {\n                        local_60 = (uint *)((ulong)local_60 >> 0x38 |\n                                            ((ulong)local_60 & 0xff000000000000) >> 0x28 |\n                                            ((ulong)local_60 & 0xff0000000000) >> 0x18 |\n                                            ((ulong)local_60 & 0xff00000000) >> 8 |\n                                            ((ulong)local_60 & 0xff000000) << 8 |\n                                            ((ulong)local_60 & 0xff0000) << 0x18 |\n                                            ((ulong)local_60 & 0xff00) << 0x28 |\n                                           (long)local_60 << 0x38);\n                      }\n                      local_70 = local_70 + 2;\n                    }\nLAB_00303035:\n                    local_48 = FUN_00301dc0(*param_1,pbVar15,&local_60);\n                    puStack_50 = local_60;\n                    goto joined_r0x00303052;\n                  }\n                  if (uVar8 != 0x18) {\n                    return 0;\n                  }\nLAB_00302a09:\n                  bVar1 = (byte)*local_70;\n                  uVar9 = (uint)bVar1;\n                  puVar11 = (uint *)((long)local_70 + 1);\n                  if ((char)bVar1 < '\0') {\n                    uVar9 = FUN_002112d0(puVar11,&local_68,bVar1);\n                    puVar11 = (uint *)((long)local_70 + local_68);\n                  }\n                  else {\n                    local_68 = 1;\n                  }\n                  local_70 = (uint *)((long)local_70 + uVar9 + local_68);\n                  puStack_50 = puVar11;\n                  local_48 = uVar9;\n                }\n                else {\n                  if (uVar8 == 0x20) {\n                    pcVar3 = *(code **)(**(long **)(*param_1 + 0x10) + 0x18);\n                    if (pcVar3 == FUN_001b8d10) {\n                      cVar6 = (**(code **)(**(long **)(*param_1 + 0x10) + 0x1d0))();\n                    }\n                    else {\n                      cVar6 = (*pcVar3)();\n                    }\n                    puStack_50 = *(uint **)local_70;\n                    if (cVar6 != '\0') {\n                      puStack_50 = (uint *)((ulong)puStack_50 >> 0x38 |\n                                            ((ulong)puStack_50 & 0xff000000000000) >> 0x28 |\n                                            ((ulong)puStack_50 & 0xff0000000000) >> 0x18 |\n                                            ((ulong)puStack_50 & 0xff00000000) >> 8 |\n                                            ((ulong)puStack_50 & 0xff000000) << 8 |\n                                            ((ulong)puStack_50 & 0xff0000) << 0x18 |\n                                            ((ulong)puStack_50 & 0xff00) << 0x28 |\n                                           (long)puStack_50 << 0x38);\n                    }\n                    local_70 = local_70 + 2;\n                    goto LAB_00302ea9;\n                  }\n                  if (uVar8 < 0x20) {\n                    return 0;\n                  }\n                  if (1 < uVar8 - 0x1f01) {\n                    return 0;\n                  }\nLAB_00302bcd:\n                  bVar1 = (byte)*local_70;\n                  if ((char)bVar1 < '\0') {\n                    puStack_50 = (uint *)FUN_002112d0((uint *)((long)local_70 + 1),&local_68,bVar1);\n                    local_70 = (uint *)(local_68 + (long)local_70);\n                  }\n                  else {\n                    local_68 = 1;\n                    local_70 = (uint *)((long)local_70 + 1);\n                    puStack_50 = (uint *)(ulong)bVar1;\n                  }\n                }\nLAB_00302f92:\n                if (uVar2 == 0x31) goto LAB_00302750;\n                if (0x31 < uVar2) {\n                  if ((uVar2 == 0x6e) || (uVar2 == 0x2007)) goto LAB_00302fb5;\n                  goto LAB_00302750;\n                }\n                goto LAB_00302e3e;\n              }\n              puStack_50 = (uint *)0x1;\nLAB_00302ea9:\n              if (((uVar2 == 0x31) || (0x31 < uVar2)) || (uVar2 != 3)) goto LAB_00302750;\nLAB_00302e52:\n              if (uVar8 == 8) {\nLAB_003029c7:\n                param_1[0xb] = (long)puStack_50;\n              }\n              else if (uVar8 == 0xe) goto LAB_00302f64;\n              goto LAB_00302750;\n            }\n            if (uVar8 != 0x11) {\n              if (0x11 < uVar8) {\n                if (uVar8 == 0x13) {\n                  uVar9 = FUN_00305610(*param_1,&local_70);\n                  local_60 = (uint *)(ulong)uVar9;\n                  goto LAB_00303035;\n                }\n                if (0x13 < uVar8) {\n                  plVar17 = *(long **)(*param_1 + 0x10);\n                  goto LAB_00302fe7;\n                }\n                pcVar3 = *(code **)(**(long **)(*param_1 + 0x10) + 0x18);\n                if (pcVar3 == FUN_001b8d10) {\n                  cVar6 = (**(code **)(**(long **)(*param_1 + 0x10) + 0x1d0))();\n                }\n                else {\n                  cVar6 = (*pcVar3)();\n                }\n                uVar5 = (ushort)*local_70;\n                if (cVar6 != '\0') {\n                  uVar5 = CONCAT11((byte)*local_70,*(byte *)((long)local_70 + 1));\n                }\n                local_70 = (uint *)((long)local_70 + 2);\n                puStack_50 = (uint *)(ulong)uVar5;\n                goto joined_r0x00303052;\n              }\n              if (uVar8 == 0xf) goto LAB_00302bcd;\n              if (uVar8 != 0x10) {\n                return 0;\n              }\n              lVar10 = *param_1;\n              iVar7 = *(int *)(lVar10 + 100);\n              if (2 < *(uint *)(lVar10 + 0x68)) {\n                iVar7 = *(int *)(lVar10 + 0x60);\n              }\n              if (iVar7 != 4) goto LAB_00302a71;\nLAB_00302e7d:\n              uVar8 = FUN_00305610(lVar10,&local_70);\n              local_60 = (uint *)(ulong)uVar8;\nLAB_00302abe:\n              local_48 = FUN_00301dc0(*param_1,pbVar15,&local_60);\n              puStack_50 = local_60;\n              if (uVar2 == 0x31) goto LAB_00302965;\n              if (0x31 < uVar2) goto joined_r0x00302ccc;\n              goto LAB_00302c20;\n            }\n            puVar11 = (uint *)((long)local_70 + 1);\n            puStack_50 = (uint *)(ulong)(byte)*local_70;\n            local_70 = puVar11;\n            if (uVar2 != 0x31) {\n              if (uVar2 < 0x32) {\n                if (uVar2 == 1) {\n                  param_1[5] = (long)puStack_50;\n                }\n                goto LAB_00302750;\n              }\njoined_r0x00302ccc:\n              if ((uVar2 == 0x6e) || (uVar2 == 0x2007)) goto LAB_00302750;\n              goto joined_r0x00302ce3;\n            }\n          }\nLAB_00302965:\n          param_1[0x11] = (long)puStack_50;\n          goto LAB_00302750;\n        }\n        if (uVar8 == 7) {\n          pcVar3 = *(code **)(**(long **)(*param_1 + 0x10) + 0x18);\n          if (pcVar3 == FUN_001b8d10) {\n            cVar6 = (**(code **)(**(long **)(*param_1 + 0x10) + 0x1d0))();\n          }\n          else {\n            cVar6 = (*pcVar3)();\n          }\n          local_60 = *(uint **)local_70;\n          if (cVar6 != '\0') {\n            local_60 = (uint *)((ulong)local_60 >> 0x38 |\n                                ((ulong)local_60 & 0xff000000000000) >> 0x28 |\n                                ((ulong)local_60 & 0xff0000000000) >> 0x18 |\n                                ((ulong)local_60 & 0xff00000000) >> 8 |\n                                ((ulong)local_60 & 0xff000000) << 8 |\n                                ((ulong)local_60 & 0xff0000) << 0x18 |\n                                ((ulong)local_60 & 0xff00) << 0x28 | (long)local_60 << 0x38);\n          }\n          local_70 = local_70 + 2;\nLAB_00302d40:\n          local_48 = FUN_00301dc0(*param_1,pbVar15,&local_60);\n          puStack_50 = local_60;\njoined_r0x00302748:\n          if ((uVar2 != 0x31) && (uVar2 < 0x32)) {\nLAB_00302e3e:\n            if ((uVar2 != 1) && (uVar2 == 3)) goto LAB_00302e52;\n          }\n          goto LAB_00302750;\n        }\n        if (uVar8 < 8) {\n          if (uVar8 == 4) {\n            pcVar3 = *(code **)(**(long **)(*param_1 + 0x10) + 0x18);\n            if (pcVar3 == FUN_001b8d10) {\n              cVar6 = (**(code **)(**(long **)(*param_1 + 0x10) + 0x1d0))();\n            }\n            else {\n              cVar6 = (*pcVar3)();\n            }\n            local_48 = *local_70;\n            if (cVar6 != '\0') {\n              local_48 = local_48 >> 0x18 | (local_48 & 0xff0000) >> 8 | (local_48 & 0xff00) << 8 |\n                         local_48 << 0x18;\n            }\n            puStack_50 = local_70 + 1;\n            local_70 = (uint *)((long)puStack_50 + (ulong)local_48);\n          }\n          else if (uVar8 < 5) {\n            if (uVar8 == 1) {\n              lVar10 = *param_1;\n              if (*(int *)(lVar10 + 100) == 4) goto LAB_00302e7d;\nLAB_00302a71:\n              pcVar3 = *(code **)(**(long **)(lVar10 + 0x10) + 0x18);\n              if (pcVar3 == FUN_001b8d10) {\n                cVar6 = (**(code **)(**(long **)(lVar10 + 0x10) + 0x1d0))();\n              }\n              else {\n                cVar6 = (*pcVar3)();\n              }\n              local_60 = *(uint **)local_70;\n              if (cVar6 != '\0') {\n                local_60 = (uint *)((ulong)local_60 >> 0x38 |\n                                    ((ulong)local_60 & 0xff000000000000) >> 0x28 |\n                                    ((ulong)local_60 & 0xff0000000000) >> 0x18 |\n                                    ((ulong)local_60 & 0xff00000000) >> 8 |\n                                    ((ulong)local_60 & 0xff000000) << 8 |\n                                    ((ulong)local_60 & 0xff0000) << 0x18 |\n                                    ((ulong)local_60 & 0xff00) << 0x28 | (long)local_60 << 0x38);\n              }\n              local_70 = local_70 + 2;\n              goto LAB_00302abe;\n            }\n            if (uVar8 != 3) {\n              return 0;\n            }\n            pcVar3 = *(code **)(**(long **)(*param_1 + 0x10) + 0x18);\n            if (pcVar3 == FUN_001b8d10) {\n              cVar6 = (**(code **)(**(long **)(*param_1 + 0x10) + 0x1d0))();\n            }\n            else {\n              cVar6 = (*pcVar3)();\n            }\n            uVar5 = (ushort)*local_70;\n            if (cVar6 != '\0') {\n              uVar5 = CONCAT11((byte)*local_70,*(byte *)((long)local_70 + 1));\n            }\n            local_48 = (uint)uVar5;\n            puStack_50 = (uint *)((long)local_70 + 2);\n            local_70 = (uint *)((long)puStack_50 + (ulong)local_48);\n          }\n          else {\n            if (uVar8 != 5) {\n              if (uVar8 != 6) {\n                return 0;\n              }\n              pcVar3 = *(code **)(**(long **)(*param_1 + 0x10) + 0x18);\n              if (pcVar3 == FUN_001b8d10) {\n                cVar6 = (**(code **)(**(long **)(*param_1 + 0x10) + 0x1d0))();\n              }\n              else {\n                cVar6 = (*pcVar3)();\n              }\n              uVar9 = *local_70;\n              if (cVar6 != '\0') {\n                uVar9 = uVar9 >> 0x18 | (uVar9 & 0xff0000) >> 8 | (uVar9 & 0xff00) << 8 |\n                        uVar9 << 0x18;\n              }\n              local_60 = (uint *)(ulong)uVar9;\n              local_70 = local_70 + 1;\n              goto LAB_00302d40;\n            }\n            pcVar3 = *(code **)(**(long **)(*param_1 + 0x10) + 0x18);\n            if (pcVar3 == FUN_001b8d10) {\n              cVar6 = (**(code **)(**(long **)(*param_1 + 0x10) + 0x1d0))();\n            }\n            else {\n              cVar6 = (*pcVar3)();\n            }\n            uVar5 = (ushort)*local_70;\n            if (cVar6 != '\0') {\n              uVar5 = CONCAT11((byte)*local_70,*(byte *)((long)local_70 + 1));\n            }\n            local_70 = (uint *)((long)local_70 + 2);\n            puStack_50 = (uint *)(ulong)uVar5;\n          }\n          goto joined_r0x00302748;\n        }\n        if (uVar8 == 10) {\n          puStack_50 = (uint *)((long)local_70 + 1);\n          uVar9 = *local_70;\n          local_70 = (uint *)((long)puStack_50 + (ulong)(byte)uVar9);\n          local_48 = (uint)(byte)uVar9;\n          goto joined_r0x00302748;\n        }\n        if (uVar8 < 0xb) {\n          if (uVar8 != 8) {\n            if (uVar8 != 9) {\n              return 0;\n            }\n            goto LAB_00302a09;\n          }\n          puStack_50 = local_70;\n          local_68 = strlen((char *)local_70);\n          local_70 = (uint *)((long)puVar11 + local_68 + 1);\n          if (uVar2 == 0x31) goto LAB_00302750;\n          if (0x31 < uVar2) {\n            if ((uVar2 != 0x6e) && (uVar2 != 0x2007)) goto LAB_00302750;\n            goto LAB_003029eb;\n          }\n          if ((uVar2 == 1) || (uVar2 != 3)) goto LAB_00302750;\n          goto LAB_003029c7;\n        }\n        if (uVar8 < 0xd) {\n          uVar9 = *local_70;\n          local_70 = (uint *)((long)local_70 + 1);\n          puStack_50 = (uint *)(ulong)(byte)uVar9;\n          goto LAB_00302f92;\n        }\n        bVar1 = (byte)*local_70;\n        puVar11 = (uint *)((long)local_70 + 1);\n        if ((char)bVar1 < '\0') {\n          puStack_50 = (uint *)FUN_00211340(puVar11,&local_68);\n          puVar11 = (uint *)(local_68 + (long)local_70);\n        }\n        else {\n          local_68 = 1;\n          puStack_50 = (uint *)(ulong)bVar1;\n          if ((bVar1 & 0x40) != 0) {\n            puStack_50 = (uint *)((ulong)bVar1 | 0xffffffffffffff80);\n          }\n        }\n        local_70 = puVar11;\n        if ((uVar2 == 0x31) || (uVar2 < 0x32)) goto LAB_00302750;\n        if ((uVar2 == 0x6e) || (uVar2 == 0x2007)) goto LAB_00302fbe;\n        puVar16 = (undefined8 *)param_1[8];\n        if (puVar16 == (undefined8 *)param_1[9]) goto LAB_003028c0;\nLAB_0030275e:\n        *puVar16 = CONCAT44(uStack_54,local_58);\n        puVar16[1] = puStack_50;\n        puVar16[2] = CONCAT44(uStack_44,local_48);\n        param_1[8] = (long)(puVar16 + 3);\n      }" (if "if") (parenthesized_expression "(uVar8 == 0xe)" (( "(") (binary_expression "uVar8 == 0xe" (identifier "uVar8") (== "==") (number_literal "0xe")) () ")")) (compound_statement "{\n        lVar10 = *param_1;\n        if (*(int *)(lVar10 + 0x60) == 4) {\n          uVar8 = FUN_00305610(lVar10,&local_70);\n          local_60 = (uint *)(ulong)uVar8;\n        }\n        else {\n          pcVar3 = *(code **)(**(long **)(lVar10 + 0x10) + 0x18);\n          if (pcVar3 == FUN_001b8d10) {\n            cVar6 = (**(code **)(**(long **)(lVar10 + 0x10) + 0x1d0))();\n          }\n          else {\n            cVar6 = (*pcVar3)();\n          }\n          local_60 = *(uint **)local_70;\n          if (cVar6 != '\0') {\n            local_60 = (uint *)((ulong)local_60 >> 0x38 |\n                                ((ulong)local_60 & 0xff000000000000) >> 0x28 |\n                                ((ulong)local_60 & 0xff0000000000) >> 0x18 |\n                                ((ulong)local_60 & 0xff00000000) >> 8 |\n                                ((ulong)local_60 & 0xff000000) << 8 |\n                                ((ulong)local_60 & 0xff0000) << 0x18 |\n                                ((ulong)local_60 & 0xff00) << 0x28 | (long)local_60 << 0x38);\n          }\n          local_70 = local_70 + 2;\n        }\n        local_48 = FUN_00301dc0(*param_1,pbVar15,&local_60);\n        puStack_50 = local_60;\n        if (uVar2 != 0x31) {\n          if (uVar2 < 0x32) {\n            if ((uVar2 != 1) && (uVar2 == 3)) {\nLAB_00302f64:\n              *(uint *)(param_1 + 0xf) = local_48;\n              param_1[0xc] = (long)puStack_50;\n            }\n          }\n          else if ((uVar2 == 0x6e) || (uVar2 == 0x2007)) {\nLAB_00302fd0:\n            *(uint *)(param_1 + 0xf) = local_48;\n            param_1[0xe] = (long)puStack_50;\n          }\n        }\nLAB_00302750:\n        puVar16 = (undefined8 *)param_1[8];\n        if (puVar16 != (undefined8 *)param_1[9]) goto LAB_0030275e;\nLAB_003028c0:\n        FUN_00305860(param_1 + 7,puVar16,&local_58);\n      }" ({ "{") (expression_statement "lVar10 = *param_1;" (assignment_expression "lVar10 = *param_1" (identifier "lVar10") (= "=") (pointer_expression "*param_1" (* "*") (identifier "param_1"))) (; ";")) (if_statement "if (*(int *)(lVar10 + 0x60) == 4) {\n          uVar8 = FUN_00305610(lVar10,&local_70);\n          local_60 = (uint *)(ulong)uVar8;\n        }\n        else {\n          pcVar3 = *(code **)(**(long **)(lVar10 + 0x10) + 0x18);\n          if (pcVar3 == FUN_001b8d10) {\n            cVar6 = (**(code **)(**(long **)(lVar10 + 0x10) + 0x1d0))();\n          }\n          else {\n            cVar6 = (*pcVar3)();\n          }\n          local_60 = *(uint **)local_70;\n          if (cVar6 != '\0') {\n            local_60 = (uint *)((ulong)local_60 >> 0x38 |\n                                ((ulong)local_60 & 0xff000000000000) >> 0x28 |\n                                ((ulong)local_60 & 0xff0000000000) >> 0x18 |\n                                ((ulong)local_60 & 0xff00000000) >> 8 |\n                                ((ulong)local_60 & 0xff000000) << 8 |\n                                ((ulong)local_60 & 0xff0000) << 0x18 |\n                                ((ulong)local_60 & 0xff00) << 0x28 | (long)local_60 << 0x38);\n          }\n          local_70 = local_70 + 2;\n        }" (if "if") (parenthesized_expression "(*(int *)(lVar10 + 0x60) == 4)" (( "(") (binary_expression "*(int *)(lVar10 + 0x60) == 4" (pointer_expression "*(int *)(lVar10 + 0x60)" (* "*") (cast_expression "(int *)(lVar10 + 0x60)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(lVar10 + 0x60)" (( "(") (binary_expression "lVar10 + 0x60" (identifier "lVar10") (+ "+") (number_literal "0x60")) () ")")))) (== "==") (number_literal "4")) () ")")) (compound_statement "{\n          uVar8 = FUN_00305610(lVar10,&local_70);\n          local_60 = (uint *)(ulong)uVar8;\n        }" ({ "{") (expression_statement "uVar8 = FUN_00305610(lVar10,&local_70);" (assignment_expression "uVar8 = FUN_00305610(lVar10,&local_70)" (identifier "uVar8") (= "=") (call_expression "FUN_00305610(lVar10,&local_70)" (identifier "FUN_00305610") (argument_list "(lVar10,&local_70)" (( "(") (identifier "lVar10") (, ",") (pointer_expression "&local_70" (& "&") (identifier "local_70")) () ")")))) (; ";")) (expression_statement "local_60 = (uint *)(ulong)uVar8;" (assignment_expression "local_60 = (uint *)(ulong)uVar8" (identifier "local_60") (= "=") (cast_expression "(uint *)(ulong)uVar8" (( "(") (type_descriptor "uint *" (type_identifier "uint") (abstract_pointer_declarator "*" (* "*"))) () ")") (cast_expression "(ulong)uVar8" (( "(") (type_descriptor "ulong" (type_identifier "ulong")) () ")") (identifier "uVar8")))) (; ";")) (} "}")) (else_clause "else {\n          pcVar3 = *(code **)(**(long **)(lVar10 + 0x10) + 0x18);\n          if (pcVar3 == FUN_001b8d10) {\n            cVar6 = (**(code **)(**(long **)(lVar10 + 0x10) + 0x1d0))();\n          }\n          else {\n            cVar6 = (*pcVar3)();\n          }\n          local_60 = *(uint **)local_70;\n          if (cVar6 != '\0') {\n            local_60 = (uint *)((ulong)local_60 >> 0x38 |\n                                ((ulong)local_60 & 0xff000000000000) >> 0x28 |\n                                ((ulong)local_60 & 0xff0000000000) >> 0x18 |\n                                ((ulong)local_60 & 0xff00000000) >> 8 |\n                                ((ulong)local_60 & 0xff000000) << 8 |\n                                ((ulong)local_60 & 0xff0000) << 0x18 |\n                                ((ulong)local_60 & 0xff00) << 0x28 | (long)local_60 << 0x38);\n          }\n          local_70 = local_70 + 2;\n        }" (else "else") (compound_statement "{\n          pcVar3 = *(code **)(**(long **)(lVar10 + 0x10) + 0x18);\n          if (pcVar3 == FUN_001b8d10) {\n            cVar6 = (**(code **)(**(long **)(lVar10 + 0x10) + 0x1d0))();\n          }\n          else {\n            cVar6 = (*pcVar3)();\n          }\n          local_60 = *(uint **)local_70;\n          if (cVar6 != '\0') {\n            local_60 = (uint *)((ulong)local_60 >> 0x38 |\n                                ((ulong)local_60 & 0xff000000000000) >> 0x28 |\n                                ((ulong)local_60 & 0xff0000000000) >> 0x18 |\n                                ((ulong)local_60 & 0xff00000000) >> 8 |\n                                ((ulong)local_60 & 0xff000000) << 8 |\n                                ((ulong)local_60 & 0xff0000) << 0x18 |\n                                ((ulong)local_60 & 0xff00) << 0x28 | (long)local_60 << 0x38);\n          }\n          local_70 = local_70 + 2;\n        }" ({ "{") (expression_statement "pcVar3 = *(code **)(**(long **)(lVar10 + 0x10) + 0x18);" (assignment_expression "pcVar3 = *(code **)(**(long **)(lVar10 + 0x10) + 0x18)" (identifier "pcVar3") (= "=") (pointer_expression "*(code **)(**(long **)(lVar10 + 0x10) + 0x18)" (* "*") (cast_expression "(code **)(**(long **)(lVar10 + 0x10) + 0x18)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(**(long **)(lVar10 + 0x10) + 0x18)" (( "(") (binary_expression "**(long **)(lVar10 + 0x10) + 0x18" (pointer_expression "**(long **)(lVar10 + 0x10)" (* "*") (pointer_expression "*(long **)(lVar10 + 0x10)" (* "*") (cast_expression "(long **)(lVar10 + 0x10)" (( "(") (type_descriptor "long **" (sized_type_specifier "long" (long "long")) (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(lVar10 + 0x10)" (( "(") (binary_expression "lVar10 + 0x10" (identifier "lVar10") (+ "+") (number_literal "0x10")) () ")"))))) (+ "+") (number_literal "0x18")) () ")"))))) (; ";")) (if_statement "if (pcVar3 == FUN_001b8d10) {\n            cVar6 = (**(code **)(**(long **)(lVar10 + 0x10) + 0x1d0))();\n          }\n          else {\n            cVar6 = (*pcVar3)();\n          }" (if "if") (parenthesized_expression "(pcVar3 == FUN_001b8d10)" (( "(") (binary_expression "pcVar3 == FUN_001b8d10" (identifier "pcVar3") (== "==") (identifier "FUN_001b8d10")) () ")")) (compound_statement "{\n            cVar6 = (**(code **)(**(long **)(lVar10 + 0x10) + 0x1d0))();\n          }" ({ "{") (expression_statement "cVar6 = (**(code **)(**(long **)(lVar10 + 0x10) + 0x1d0))();" (assignment_expression "cVar6 = (**(code **)(**(long **)(lVar10 + 0x10) + 0x1d0))()" (identifier "cVar6") (= "=") (call_expression "(**(code **)(**(long **)(lVar10 + 0x10) + 0x1d0))()" (parenthesized_expression "(**(code **)(**(long **)(lVar10 + 0x10) + 0x1d0))" (( "(") (pointer_expression "**(code **)(**(long **)(lVar10 + 0x10) + 0x1d0)" (* "*") (pointer_expression "*(code **)(**(long **)(lVar10 + 0x10) + 0x1d0)" (* "*") (cast_expression "(code **)(**(long **)(lVar10 + 0x10) + 0x1d0)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(**(long **)(lVar10 + 0x10) + 0x1d0)" (( "(") (binary_expression "**(long **)(lVar10 + 0x10) + 0x1d0" (pointer_expression "**(long **)(lVar10 + 0x10)" (* "*") (pointer_expression "*(long **)(lVar10 + 0x10)" (* "*") (cast_expression "(long **)(lVar10 + 0x10)" (( "(") (type_descriptor "long **" (sized_type_specifier "long" (long "long")) (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(lVar10 + 0x10)" (( "(") (binary_expression "lVar10 + 0x10" (identifier "lVar10") (+ "+") (number_literal "0x10")) () ")"))))) (+ "+") (number_literal "0x1d0")) () ")"))))) () ")")) (argument_list "()" (( "(") () ")")))) (; ";")) (} "}")) (else_clause "else {\n            cVar6 = (*pcVar3)();\n          }" (else "else") (compound_statement "{\n            cVar6 = (*pcVar3)();\n          }" ({ "{") (expression_statement "cVar6 = (*pcVar3)();" (assignment_expression "cVar6 = (*pcVar3)()" (identifier "cVar6") (= "=") (call_expression "(*pcVar3)()" (parenthesized_expression "(*pcVar3)" (( "(") (pointer_expression "*pcVar3" (* "*") (identifier "pcVar3")) () ")")) (argument_list "()" (( "(") () ")")))) (; ";")) (} "}")))) (expression_statement "local_60 = *(uint **)local_70;" (assignment_expression "local_60 = *(uint **)local_70" (identifier "local_60") (= "=") (pointer_expression "*(uint **)local_70" (* "*") (cast_expression "(uint **)local_70" (( "(") (type_descriptor "uint **" (type_identifier "uint") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (identifier "local_70")))) (; ";")) (if_statement "if (cVar6 != '\0') {\n            local_60 = (uint *)((ulong)local_60 >> 0x38 |\n                                ((ulong)local_60 & 0xff000000000000) >> 0x28 |\n                                ((ulong)local_60 & 0xff0000000000) >> 0x18 |\n                                ((ulong)local_60 & 0xff00000000) >> 8 |\n                                ((ulong)local_60 & 0xff000000) << 8 |\n                                ((ulong)local_60 & 0xff0000) << 0x18 |\n                                ((ulong)local_60 & 0xff00) << 0x28 | (long)local_60 << 0x38);\n          }" (if "if") (parenthesized_expression "(cVar6 != '\0')" (( "(") (binary_expression "cVar6 != '\0'" (identifier "cVar6") (!= "!=") (char_literal "'\0'" (' "'") (escape_sequence "\0") (' "'"))) () ")")) (compound_statement "{\n            local_60 = (uint *)((ulong)local_60 >> 0x38 |\n                                ((ulong)local_60 & 0xff000000000000) >> 0x28 |\n                                ((ulong)local_60 & 0xff0000000000) >> 0x18 |\n                                ((ulong)local_60 & 0xff00000000) >> 8 |\n                                ((ulong)local_60 & 0xff000000) << 8 |\n                                ((ulong)local_60 & 0xff0000) << 0x18 |\n                                ((ulong)local_60 & 0xff00) << 0x28 | (long)local_60 << 0x38);\n          }" ({ "{") (expression_statement "local_60 = (uint *)((ulong)local_60 >> 0x38 |\n                                ((ulong)local_60 & 0xff000000000000) >> 0x28 |\n                                ((ulong)local_60 & 0xff0000000000) >> 0x18 |\n                                ((ulong)local_60 & 0xff00000000) >> 8 |\n                                ((ulong)local_60 & 0xff000000) << 8 |\n                                ((ulong)local_60 & 0xff0000) << 0x18 |\n                                ((ulong)local_60 & 0xff00) << 0x28 | (long)local_60 << 0x38);" (assignment_expression "local_60 = (uint *)((ulong)local_60 >> 0x38 |\n                                ((ulong)local_60 & 0xff000000000000) >> 0x28 |\n                                ((ulong)local_60 & 0xff0000000000) >> 0x18 |\n                                ((ulong)local_60 & 0xff00000000) >> 8 |\n                                ((ulong)local_60 & 0xff000000) << 8 |\n                                ((ulong)local_60 & 0xff0000) << 0x18 |\n                                ((ulong)local_60 & 0xff00) << 0x28 | (long)local_60 << 0x38)" (identifier "local_60") (= "=") (cast_expression "(uint *)((ulong)local_60 >> 0x38 |\n                                ((ulong)local_60 & 0xff000000000000) >> 0x28 |\n                                ((ulong)local_60 & 0xff0000000000) >> 0x18 |\n                                ((ulong)local_60 & 0xff00000000) >> 8 |\n                                ((ulong)local_60 & 0xff000000) << 8 |\n                                ((ulong)local_60 & 0xff0000) << 0x18 |\n                                ((ulong)local_60 & 0xff00) << 0x28 | (long)local_60 << 0x38)" (( "(") (type_descriptor "uint *" (type_identifier "uint") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "((ulong)local_60 >> 0x38 |\n                                ((ulong)local_60 & 0xff000000000000) >> 0x28 |\n                                ((ulong)local_60 & 0xff0000000000) >> 0x18 |\n                                ((ulong)local_60 & 0xff00000000) >> 8 |\n                                ((ulong)local_60 & 0xff000000) << 8 |\n                                ((ulong)local_60 & 0xff0000) << 0x18 |\n                                ((ulong)local_60 & 0xff00) << 0x28 | (long)local_60 << 0x38)" (( "(") (binary_expression "(ulong)local_60 >> 0x38 |\n                                ((ulong)local_60 & 0xff000000000000) >> 0x28 |\n                                ((ulong)local_60 & 0xff0000000000) >> 0x18 |\n                                ((ulong)local_60 & 0xff00000000) >> 8 |\n                                ((ulong)local_60 & 0xff000000) << 8 |\n                                ((ulong)local_60 & 0xff0000) << 0x18 |\n                                ((ulong)local_60 & 0xff00) << 0x28 | (long)local_60 << 0x38" (binary_expression "(ulong)local_60 >> 0x38 |\n                                ((ulong)local_60 & 0xff000000000000) >> 0x28 |\n                                ((ulong)local_60 & 0xff0000000000) >> 0x18 |\n                                ((ulong)local_60 & 0xff00000000) >> 8 |\n                                ((ulong)local_60 & 0xff000000) << 8 |\n                                ((ulong)local_60 & 0xff0000) << 0x18 |\n                                ((ulong)local_60 & 0xff00) << 0x28" (binary_expression "(ulong)local_60 >> 0x38 |\n                                ((ulong)local_60 & 0xff000000000000) >> 0x28 |\n                                ((ulong)local_60 & 0xff0000000000) >> 0x18 |\n                                ((ulong)local_60 & 0xff00000000) >> 8 |\n                                ((ulong)local_60 & 0xff000000) << 8 |\n                                ((ulong)local_60 & 0xff0000) << 0x18" (binary_expression "(ulong)local_60 >> 0x38 |\n                                ((ulong)local_60 & 0xff000000000000) >> 0x28 |\n                                ((ulong)local_60 & 0xff0000000000) >> 0x18 |\n                                ((ulong)local_60 & 0xff00000000) >> 8 |\n                                ((ulong)local_60 & 0xff000000) << 8" (binary_expression "(ulong)local_60 >> 0x38 |\n                                ((ulong)local_60 & 0xff000000000000) >> 0x28 |\n                                ((ulong)local_60 & 0xff0000000000) >> 0x18 |\n                                ((ulong)local_60 & 0xff00000000) >> 8" (binary_expression "(ulong)local_60 >> 0x38 |\n                                ((ulong)local_60 & 0xff000000000000) >> 0x28 |\n                                ((ulong)local_60 & 0xff0000000000) >> 0x18" (binary_expression "(ulong)local_60 >> 0x38 |\n                                ((ulong)local_60 & 0xff000000000000) >> 0x28" (binary_expression "(ulong)local_60 >> 0x38" (cast_expression "(ulong)local_60" (( "(") (type_descriptor "ulong" (type_identifier "ulong")) () ")") (identifier "local_60")) (>> ">>") (number_literal "0x38")) (| "|") (binary_expression "((ulong)local_60 & 0xff000000000000) >> 0x28" (parenthesized_expression "((ulong)local_60 & 0xff000000000000)" (( "(") (binary_expression "(ulong)local_60 & 0xff000000000000" (cast_expression "(ulong)local_60" (( "(") (type_descriptor "ulong" (type_identifier "ulong")) () ")") (identifier "local_60")) (& "&") (number_literal "0xff000000000000")) () ")")) (>> ">>") (number_literal "0x28"))) (| "|") (binary_expression "((ulong)local_60 & 0xff0000000000) >> 0x18" (parenthesized_expression "((ulong)local_60 & 0xff0000000000)" (( "(") (binary_expression "(ulong)local_60 & 0xff0000000000" (cast_expression "(ulong)local_60" (( "(") (type_descriptor "ulong" (type_identifier "ulong")) () ")") (identifier "local_60")) (& "&") (number_literal "0xff0000000000")) () ")")) (>> ">>") (number_literal "0x18"))) (| "|") (binary_expression "((ulong)local_60 & 0xff00000000) >> 8" (parenthesized_expression "((ulong)local_60 & 0xff00000000)" (( "(") (binary_expression "(ulong)local_60 & 0xff00000000" (cast_expression "(ulong)local_60" (( "(") (type_descriptor "ulong" (type_identifier "ulong")) () ")") (identifier "local_60")) (& "&") (number_literal "0xff00000000")) () ")")) (>> ">>") (number_literal "8"))) (| "|") (binary_expression "((ulong)local_60 & 0xff000000) << 8" (parenthesized_expression "((ulong)local_60 & 0xff000000)" (( "(") (binary_expression "(ulong)local_60 & 0xff000000" (cast_expression "(ulong)local_60" (( "(") (type_descriptor "ulong" (type_identifier "ulong")) () ")") (identifier "local_60")) (& "&") (number_literal "0xff000000")) () ")")) (<< "<<") (number_literal "8"))) (| "|") (binary_expression "((ulong)local_60 & 0xff0000) << 0x18" (parenthesized_expression "((ulong)local_60 & 0xff0000)" (( "(") (binary_expression "(ulong)local_60 & 0xff0000" (cast_expression "(ulong)local_60" (( "(") (type_descriptor "ulong" (type_identifier "ulong")) () ")") (identifier "local_60")) (& "&") (number_literal "0xff0000")) () ")")) (<< "<<") (number_literal "0x18"))) (| "|") (binary_expression "((ulong)local_60 & 0xff00) << 0x28" (parenthesized_expression "((ulong)local_60 & 0xff00)" (( "(") (binary_expression "(ulong)local_60 & 0xff00" (cast_expression "(ulong)local_60" (( "(") (type_descriptor "ulong" (type_identifier "ulong")) () ")") (identifier "local_60")) (& "&") (number_literal "0xff00")) () ")")) (<< "<<") (number_literal "0x28"))) (| "|") (binary_expression "(long)local_60 << 0x38" (cast_expression "(long)local_60" (( "(") (type_descriptor "long" (sized_type_specifier "long" (long "long"))) () ")") (identifier "local_60")) (<< "<<") (number_literal "0x38"))) () ")")))) (; ";")) (} "}"))) (expression_statement "local_70 = local_70 + 2;" (assignment_expression "local_70 = local_70 + 2" (identifier "local_70") (= "=") (binary_expression "local_70 + 2" (identifier "local_70") (+ "+") (number_literal "2"))) (; ";")) (} "}")))) (expression_statement "local_48 = FUN_00301dc0(*param_1,pbVar15,&local_60);" (assignment_expression "local_48 = FUN_00301dc0(*param_1,pbVar15,&local_60)" (identifier "local_48") (= "=") (call_expression "FUN_00301dc0(*param_1,pbVar15,&local_60)" (identifier "FUN_00301dc0") (argument_list "(*param_1,pbVar15,&local_60)" (( "(") (pointer_expression "*param_1" (* "*") (identifier "param_1")) (, ",") (identifier "pbVar15") (, ",") (pointer_expression "&local_60" (& "&") (identifier "local_60")) () ")")))) (; ";")) (expression_statement "puStack_50 = local_60;" (assignment_expression "puStack_50 = local_60" (identifier "puStack_50") (= "=") (identifier "local_60")) (; ";")) (if_statement "if (uVar2 != 0x31) {\n          if (uVar2 < 0x32) {\n            if ((uVar2 != 1) && (uVar2 == 3)) {\nLAB_00302f64:\n              *(uint *)(param_1 + 0xf) = local_48;\n              param_1[0xc] = (long)puStack_50;\n            }\n          }\n          else if ((uVar2 == 0x6e) || (uVar2 == 0x2007)) {\nLAB_00302fd0:\n            *(uint *)(param_1 + 0xf) = local_48;\n            param_1[0xe] = (long)puStack_50;\n          }\n        }" (if "if") (parenthesized_expression "(uVar2 != 0x31)" (( "(") (binary_expression "uVar2 != 0x31" (identifier "uVar2") (!= "!=") (number_literal "0x31")) () ")")) (compound_statement "{\n          if (uVar2 < 0x32) {\n            if ((uVar2 != 1) && (uVar2 == 3)) {\nLAB_00302f64:\n              *(uint *)(param_1 + 0xf) = local_48;\n              param_1[0xc] = (long)puStack_50;\n            }\n          }\n          else if ((uVar2 == 0x6e) || (uVar2 == 0x2007)) {\nLAB_00302fd0:\n            *(uint *)(param_1 + 0xf) = local_48;\n            param_1[0xe] = (long)puStack_50;\n          }\n        }" ({ "{") (if_statement "if (uVar2 < 0x32) {\n            if ((uVar2 != 1) && (uVar2 == 3)) {\nLAB_00302f64:\n              *(uint *)(param_1 + 0xf) = local_48;\n              param_1[0xc] = (long)puStack_50;\n            }\n          }\n          else if ((uVar2 == 0x6e) || (uVar2 == 0x2007)) {\nLAB_00302fd0:\n            *(uint *)(param_1 + 0xf) = local_48;\n            param_1[0xe] = (long)puStack_50;\n          }" (if "if") (parenthesized_expression "(uVar2 < 0x32)" (( "(") (binary_expression "uVar2 < 0x32" (identifier "uVar2") (< "<") (number_literal "0x32")) () ")")) (compound_statement "{\n            if ((uVar2 != 1) && (uVar2 == 3)) {\nLAB_00302f64:\n              *(uint *)(param_1 + 0xf) = local_48;\n              param_1[0xc] = (long)puStack_50;\n            }\n          }" ({ "{") (if_statement "if ((uVar2 != 1) && (uVar2 == 3)) {\nLAB_00302f64:\n              *(uint *)(param_1 + 0xf) = local_48;\n              param_1[0xc] = (long)puStack_50;\n            }" (if "if") (parenthesized_expression "((uVar2 != 1) && (uVar2 == 3))" (( "(") (binary_expression "(uVar2 != 1) && (uVar2 == 3)" (parenthesized_expression "(uVar2 != 1)" (( "(") (binary_expression "uVar2 != 1" (identifier "uVar2") (!= "!=") (number_literal "1")) () ")")) (&& "&&") (parenthesized_expression "(uVar2 == 3)" (( "(") (binary_expression "uVar2 == 3" (identifier "uVar2") (== "==") (number_literal "3")) () ")"))) () ")")) (compound_statement "{\nLAB_00302f64:\n              *(uint *)(param_1 + 0xf) = local_48;\n              param_1[0xc] = (long)puStack_50;\n            }" ({ "{") (labeled_statement "LAB_00302f64:\n              *(uint *)(param_1 + 0xf) = local_48;" (statement_identifier "LAB_00302f64") (: ":") (expression_statement "*(uint *)(param_1 + 0xf) = local_48;" (assignment_expression "*(uint *)(param_1 + 0xf) = local_48" (pointer_expression "*(uint *)(param_1 + 0xf)" (* "*") (cast_expression "(uint *)(param_1 + 0xf)" (( "(") (type_descriptor "uint *" (type_identifier "uint") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_1 + 0xf)" (( "(") (binary_expression "param_1 + 0xf" (identifier "param_1") (+ "+") (number_literal "0xf")) () ")")))) (= "=") (identifier "local_48")) (; ";"))) (expression_statement "param_1[0xc] = (long)puStack_50;" (assignment_expression "param_1[0xc] = (long)puStack_50" (subscript_expression "param_1[0xc]" (identifier "param_1") ([ "[") (number_literal "0xc") (] "]")) (= "=") (cast_expression "(long)puStack_50" (( "(") (type_descriptor "long" (sized_type_specifier "long" (long "long"))) () ")") (identifier "puStack_50"))) (; ";")) (} "}"))) (} "}")) (else_clause "else if ((uVar2 == 0x6e) || (uVar2 == 0x2007)) {\nLAB_00302fd0:\n            *(uint *)(param_1 + 0xf) = local_48;\n            param_1[0xe] = (long)puStack_50;\n          }" (else "else") (if_statement "if ((uVar2 == 0x6e) || (uVar2 == 0x2007)) {\nLAB_00302fd0:\n            *(uint *)(param_1 + 0xf) = local_48;\n            param_1[0xe] = (long)puStack_50;\n          }" (if "if") (parenthesized_expression "((uVar2 == 0x6e) || (uVar2 == 0x2007))" (( "(") (binary_expression "(uVar2 == 0x6e) || (uVar2 == 0x2007)" (parenthesized_expression "(uVar2 == 0x6e)" (( "(") (binary_expression "uVar2 == 0x6e" (identifier "uVar2") (== "==") (number_literal "0x6e")) () ")")) (|| "||") (parenthesized_expression "(uVar2 == 0x2007)" (( "(") (binary_expression "uVar2 == 0x2007" (identifier "uVar2") (== "==") (number_literal "0x2007")) () ")"))) () ")")) (compound_statement "{\nLAB_00302fd0:\n            *(uint *)(param_1 + 0xf) = local_48;\n            param_1[0xe] = (long)puStack_50;\n          }" ({ "{") (labeled_statement "LAB_00302fd0:\n            *(uint *)(param_1 + 0xf) = local_48;" (statement_identifier "LAB_00302fd0") (: ":") (expression_statement "*(uint *)(param_1 + 0xf) = local_48;" (assignment_expression "*(uint *)(param_1 + 0xf) = local_48" (pointer_expression "*(uint *)(param_1 + 0xf)" (* "*") (cast_expression "(uint *)(param_1 + 0xf)" (( "(") (type_descriptor "uint *" (type_identifier "uint") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_1 + 0xf)" (( "(") (binary_expression "param_1 + 0xf" (identifier "param_1") (+ "+") (number_literal "0xf")) () ")")))) (= "=") (identifier "local_48")) (; ";"))) (expression_statement "param_1[0xe] = (long)puStack_50;" (assignment_expression "param_1[0xe] = (long)puStack_50" (subscript_expression "param_1[0xe]" (identifier "param_1") ([ "[") (number_literal "0xe") (] "]")) (= "=") (cast_expression "(long)puStack_50" (( "(") (type_descriptor "long" (sized_type_specifier "long" (long "long"))) () ")") (identifier "puStack_50"))) (; ";")) (} "}"))))) (} "}"))) (labeled_statement "LAB_00302750:\n        puVar16 = (undefined8 *)param_1[8];" (statement_identifier "LAB_00302750") (: ":") (expression_statement "puVar16 = (undefined8 *)param_1[8];" (assignment_expression "puVar16 = (undefined8 *)param_1[8]" (identifier "puVar16") (= "=") (cast_expression "(undefined8 *)param_1[8]" (( "(") (type_descriptor "undefined8 *" (type_identifier "undefined8") (abstract_pointer_declarator "*" (* "*"))) () ")") (subscript_expression "param_1[8]" (identifier "param_1") ([ "[") (number_literal "8") (] "]")))) (; ";"))) (if_statement "if (puVar16 != (undefined8 *)param_1[9]) goto LAB_0030275e;" (if "if") (parenthesized_expression "(puVar16 != (undefined8 *)param_1[9])" (( "(") (binary_expression "puVar16 != (undefined8 *)param_1[9]" (identifier "puVar16") (!= "!=") (cast_expression "(undefined8 *)param_1[9]" (( "(") (type_descriptor "undefined8 *" (type_identifier "undefined8") (abstract_pointer_declarator "*" (* "*"))) () ")") (subscript_expression "param_1[9]" (identifier "param_1") ([ "[") (number_literal "9") (] "]")))) () ")")) (goto_statement "goto LAB_0030275e;" (goto "goto") (statement_identifier "LAB_0030275e") (; ";"))) (labeled_statement "LAB_003028c0:\n        FUN_00305860(param_1 + 7,puVar16,&local_58);" (statement_identifier "LAB_003028c0") (: ":") (expression_statement "FUN_00305860(param_1 + 7,puVar16,&local_58);" (call_expression "FUN_00305860(param_1 + 7,puVar16,&local_58)" (identifier "FUN_00305860") (argument_list "(param_1 + 7,puVar16,&local_58)" (( "(") (binary_expression "param_1 + 7" (identifier "param_1") (+ "+") (number_literal "7")) (, ",") (identifier "puVar16") (, ",") (pointer_expression "&local_58" (& "&") (identifier "local_58")) () ")"))) (; ";"))) (} "}")) (else_clause "else {\n        if (0xe < uVar8) {\n          if (uVar8 == 0x15) {\n            bVar1 = (byte)*local_70;\n            if ((char)bVar1 < '\0') {\n              puStack_50 = (uint *)FUN_002112d0((uint *)((long)local_70 + 1),&local_68,bVar1);\n              local_70 = (uint *)(local_68 + (long)local_70);\n            }\n            else {\n              local_68 = 1;\n              local_70 = (uint *)((long)local_70 + 1);\n              puStack_50 = (uint *)(ulong)bVar1;\n            }\njoined_r0x00303052:\n            if (uVar2 != 0x31) {\n              if (uVar2 < 0x32) {\nLAB_00302c20:\n                if ((uVar2 == 1) && (local_48 == 0)) {\n                  param_1[5] = (long)puStack_50;\n                }\n                goto LAB_00302750;\n              }\n              if ((uVar2 != 0x6e) && (uVar2 != 0x2007)) {\njoined_r0x00302ce3:\n                if (uVar2 == 0x47) {\n                  param_1[0x10] = (long)puStack_50;\n                }\n                goto LAB_00302750;\n              }\nLAB_00302fb5:\n              if (uVar8 == 8) {\nLAB_003029eb:\n                param_1[0xd] = (long)puStack_50;\n              }\n              else {\nLAB_00302fbe:\n                if (uVar8 == 0xe) goto LAB_00302fd0;\n              }\n              goto LAB_00302750;\n            }\n          }\n          else {\n            if (0x15 < uVar8) {\n              if (uVar8 != 0x19) {\n                if (uVar8 < 0x1a) {\n                  if (uVar8 == 0x17) {\n                    lVar10 = *param_1;\n                    if (*(int *)(lVar10 + 0x60) == 4) {\n                      uVar9 = FUN_00305610(lVar10,&local_70);\n                      local_60 = (uint *)(ulong)uVar9;\n                    }\n                    else {\n                      plVar17 = *(long **)(lVar10 + 0x10);\nLAB_00302fe7:\n                      pcVar3 = *(code **)(*plVar17 + 0x18);\n                      if (pcVar3 == FUN_001b8d10) {\n                        cVar6 = (**(code **)(*plVar17 + 0x1d0))();\n                      }\n                      else {\n                        cVar6 = (*pcVar3)();\n                      }\n                      local_60 = *(uint **)local_70;\n                      if (cVar6 != '\0') {\n                        local_60 = (uint *)((ulong)local_60 >> 0x38 |\n                                            ((ulong)local_60 & 0xff000000000000) >> 0x28 |\n                                            ((ulong)local_60 & 0xff0000000000) >> 0x18 |\n                                            ((ulong)local_60 & 0xff00000000) >> 8 |\n                                            ((ulong)local_60 & 0xff000000) << 8 |\n                                            ((ulong)local_60 & 0xff0000) << 0x18 |\n                                            ((ulong)local_60 & 0xff00) << 0x28 |\n                                           (long)local_60 << 0x38);\n                      }\n                      local_70 = local_70 + 2;\n                    }\nLAB_00303035:\n                    local_48 = FUN_00301dc0(*param_1,pbVar15,&local_60);\n                    puStack_50 = local_60;\n                    goto joined_r0x00303052;\n                  }\n                  if (uVar8 != 0x18) {\n                    return 0;\n                  }\nLAB_00302a09:\n                  bVar1 = (byte)*local_70;\n                  uVar9 = (uint)bVar1;\n                  puVar11 = (uint *)((long)local_70 + 1);\n                  if ((char)bVar1 < '\0') {\n                    uVar9 = FUN_002112d0(puVar11,&local_68,bVar1);\n                    puVar11 = (uint *)((long)local_70 + local_68);\n                  }\n                  else {\n                    local_68 = 1;\n                  }\n                  local_70 = (uint *)((long)local_70 + uVar9 + local_68);\n                  puStack_50 = puVar11;\n                  local_48 = uVar9;\n                }\n                else {\n                  if (uVar8 == 0x20) {\n                    pcVar3 = *(code **)(**(long **)(*param_1 + 0x10) + 0x18);\n                    if (pcVar3 == FUN_001b8d10) {\n                      cVar6 = (**(code **)(**(long **)(*param_1 + 0x10) + 0x1d0))();\n                    }\n                    else {\n                      cVar6 = (*pcVar3)();\n                    }\n                    puStack_50 = *(uint **)local_70;\n                    if (cVar6 != '\0') {\n                      puStack_50 = (uint *)((ulong)puStack_50 >> 0x38 |\n                                            ((ulong)puStack_50 & 0xff000000000000) >> 0x28 |\n                                            ((ulong)puStack_50 & 0xff0000000000) >> 0x18 |\n                                            ((ulong)puStack_50 & 0xff00000000) >> 8 |\n                                            ((ulong)puStack_50 & 0xff000000) << 8 |\n                                            ((ulong)puStack_50 & 0xff0000) << 0x18 |\n                                            ((ulong)puStack_50 & 0xff00) << 0x28 |\n                                           (long)puStack_50 << 0x38);\n                    }\n                    local_70 = local_70 + 2;\n                    goto LAB_00302ea9;\n                  }\n                  if (uVar8 < 0x20) {\n                    return 0;\n                  }\n                  if (1 < uVar8 - 0x1f01) {\n                    return 0;\n                  }\nLAB_00302bcd:\n                  bVar1 = (byte)*local_70;\n                  if ((char)bVar1 < '\0') {\n                    puStack_50 = (uint *)FUN_002112d0((uint *)((long)local_70 + 1),&local_68,bVar1);\n                    local_70 = (uint *)(local_68 + (long)local_70);\n                  }\n                  else {\n                    local_68 = 1;\n                    local_70 = (uint *)((long)local_70 + 1);\n                    puStack_50 = (uint *)(ulong)bVar1;\n                  }\n                }\nLAB_00302f92:\n                if (uVar2 == 0x31) goto LAB_00302750;\n                if (0x31 < uVar2) {\n                  if ((uVar2 == 0x6e) || (uVar2 == 0x2007)) goto LAB_00302fb5;\n                  goto LAB_00302750;\n                }\n                goto LAB_00302e3e;\n              }\n              puStack_50 = (uint *)0x1;\nLAB_00302ea9:\n              if (((uVar2 == 0x31) || (0x31 < uVar2)) || (uVar2 != 3)) goto LAB_00302750;\nLAB_00302e52:\n              if (uVar8 == 8) {\nLAB_003029c7:\n                param_1[0xb] = (long)puStack_50;\n              }\n              else if (uVar8 == 0xe) goto LAB_00302f64;\n              goto LAB_00302750;\n            }\n            if (uVar8 != 0x11) {\n              if (0x11 < uVar8) {\n                if (uVar8 == 0x13) {\n                  uVar9 = FUN_00305610(*param_1,&local_70);\n                  local_60 = (uint *)(ulong)uVar9;\n                  goto LAB_00303035;\n                }\n                if (0x13 < uVar8) {\n                  plVar17 = *(long **)(*param_1 + 0x10);\n                  goto LAB_00302fe7;\n                }\n                pcVar3 = *(code **)(**(long **)(*param_1 + 0x10) + 0x18);\n                if (pcVar3 == FUN_001b8d10) {\n                  cVar6 = (**(code **)(**(long **)(*param_1 + 0x10) + 0x1d0))();\n                }\n                else {\n                  cVar6 = (*pcVar3)();\n                }\n                uVar5 = (ushort)*local_70;\n                if (cVar6 != '\0') {\n                  uVar5 = CONCAT11((byte)*local_70,*(byte *)((long)local_70 + 1));\n                }\n                local_70 = (uint *)((long)local_70 + 2);\n                puStack_50 = (uint *)(ulong)uVar5;\n                goto joined_r0x00303052;\n              }\n              if (uVar8 == 0xf) goto LAB_00302bcd;\n              if (uVar8 != 0x10) {\n                return 0;\n              }\n              lVar10 = *param_1;\n              iVar7 = *(int *)(lVar10 + 100);\n              if (2 < *(uint *)(lVar10 + 0x68)) {\n                iVar7 = *(int *)(lVar10 + 0x60);\n              }\n              if (iVar7 != 4) goto LAB_00302a71;\nLAB_00302e7d:\n              uVar8 = FUN_00305610(lVar10,&local_70);\n              local_60 = (uint *)(ulong)uVar8;\nLAB_00302abe:\n              local_48 = FUN_00301dc0(*param_1,pbVar15,&local_60);\n              puStack_50 = local_60;\n              if (uVar2 == 0x31) goto LAB_00302965;\n              if (0x31 < uVar2) goto joined_r0x00302ccc;\n              goto LAB_00302c20;\n            }\n            puVar11 = (uint *)((long)local_70 + 1);\n            puStack_50 = (uint *)(ulong)(byte)*local_70;\n            local_70 = puVar11;\n            if (uVar2 != 0x31) {\n              if (uVar2 < 0x32) {\n                if (uVar2 == 1) {\n                  param_1[5] = (long)puStack_50;\n                }\n                goto LAB_00302750;\n              }\njoined_r0x00302ccc:\n              if ((uVar2 == 0x6e) || (uVar2 == 0x2007)) goto LAB_00302750;\n              goto joined_r0x00302ce3;\n            }\n          }\nLAB_00302965:\n          param_1[0x11] = (long)puStack_50;\n          goto LAB_00302750;\n        }\n        if (uVar8 == 7) {\n          pcVar3 = *(code **)(**(long **)(*param_1 + 0x10) + 0x18);\n          if (pcVar3 == FUN_001b8d10) {\n            cVar6 = (**(code **)(**(long **)(*param_1 + 0x10) + 0x1d0))();\n          }\n          else {\n            cVar6 = (*pcVar3)();\n          }\n          local_60 = *(uint **)local_70;\n          if (cVar6 != '\0') {\n            local_60 = (uint *)((ulong)local_60 >> 0x38 |\n                                ((ulong)local_60 & 0xff000000000000) >> 0x28 |\n                                ((ulong)local_60 & 0xff0000000000) >> 0x18 |\n                                ((ulong)local_60 & 0xff00000000) >> 8 |\n                                ((ulong)local_60 & 0xff000000) << 8 |\n                                ((ulong)local_60 & 0xff0000) << 0x18 |\n                                ((ulong)local_60 & 0xff00) << 0x28 | (long)local_60 << 0x38);\n          }\n          local_70 = local_70 + 2;\nLAB_00302d40:\n          local_48 = FUN_00301dc0(*param_1,pbVar15,&local_60);\n          puStack_50 = local_60;\njoined_r0x00302748:\n          if ((uVar2 != 0x31) && (uVar2 < 0x32)) {\nLAB_00302e3e:\n            if ((uVar2 != 1) && (uVar2 == 3)) goto LAB_00302e52;\n          }\n          goto LAB_00302750;\n        }\n        if (uVar8 < 8) {\n          if (uVar8 == 4) {\n            pcVar3 = *(code **)(**(long **)(*param_1 + 0x10) + 0x18);\n            if (pcVar3 == FUN_001b8d10) {\n              cVar6 = (**(code **)(**(long **)(*param_1 + 0x10) + 0x1d0))();\n            }\n            else {\n              cVar6 = (*pcVar3)();\n            }\n            local_48 = *local_70;\n            if (cVar6 != '\0') {\n              local_48 = local_48 >> 0x18 | (local_48 & 0xff0000) >> 8 | (local_48 & 0xff00) << 8 |\n                         local_48 << 0x18;\n            }\n            puStack_50 = local_70 + 1;\n            local_70 = (uint *)((long)puStack_50 + (ulong)local_48);\n          }\n          else if (uVar8 < 5) {\n            if (uVar8 == 1) {\n              lVar10 = *param_1;\n              if (*(int *)(lVar10 + 100) == 4) goto LAB_00302e7d;\nLAB_00302a71:\n              pcVar3 = *(code **)(**(long **)(lVar10 + 0x10) + 0x18);\n              if (pcVar3 == FUN_001b8d10) {\n                cVar6 = (**(code **)(**(long **)(lVar10 + 0x10) + 0x1d0))();\n              }\n              else {\n                cVar6 = (*pcVar3)();\n              }\n              local_60 = *(uint **)local_70;\n              if (cVar6 != '\0') {\n                local_60 = (uint *)((ulong)local_60 >> 0x38 |\n                                    ((ulong)local_60 & 0xff000000000000) >> 0x28 |\n                                    ((ulong)local_60 & 0xff0000000000) >> 0x18 |\n                                    ((ulong)local_60 & 0xff00000000) >> 8 |\n                                    ((ulong)local_60 & 0xff000000) << 8 |\n                                    ((ulong)local_60 & 0xff0000) << 0x18 |\n                                    ((ulong)local_60 & 0xff00) << 0x28 | (long)local_60 << 0x38);\n              }\n              local_70 = local_70 + 2;\n              goto LAB_00302abe;\n            }\n            if (uVar8 != 3) {\n              return 0;\n            }\n            pcVar3 = *(code **)(**(long **)(*param_1 + 0x10) + 0x18);\n            if (pcVar3 == FUN_001b8d10) {\n              cVar6 = (**(code **)(**(long **)(*param_1 + 0x10) + 0x1d0))();\n            }\n            else {\n              cVar6 = (*pcVar3)();\n            }\n            uVar5 = (ushort)*local_70;\n            if (cVar6 != '\0') {\n              uVar5 = CONCAT11((byte)*local_70,*(byte *)((long)local_70 + 1));\n            }\n            local_48 = (uint)uVar5;\n            puStack_50 = (uint *)((long)local_70 + 2);\n            local_70 = (uint *)((long)puStack_50 + (ulong)local_48);\n          }\n          else {\n            if (uVar8 != 5) {\n              if (uVar8 != 6) {\n                return 0;\n              }\n              pcVar3 = *(code **)(**(long **)(*param_1 + 0x10) + 0x18);\n              if (pcVar3 == FUN_001b8d10) {\n                cVar6 = (**(code **)(**(long **)(*param_1 + 0x10) + 0x1d0))();\n              }\n              else {\n                cVar6 = (*pcVar3)();\n              }\n              uVar9 = *local_70;\n              if (cVar6 != '\0') {\n                uVar9 = uVar9 >> 0x18 | (uVar9 & 0xff0000) >> 8 | (uVar9 & 0xff00) << 8 |\n                        uVar9 << 0x18;\n              }\n              local_60 = (uint *)(ulong)uVar9;\n              local_70 = local_70 + 1;\n              goto LAB_00302d40;\n            }\n            pcVar3 = *(code **)(**(long **)(*param_1 + 0x10) + 0x18);\n            if (pcVar3 == FUN_001b8d10) {\n              cVar6 = (**(code **)(**(long **)(*param_1 + 0x10) + 0x1d0))();\n            }\n            else {\n              cVar6 = (*pcVar3)();\n            }\n            uVar5 = (ushort)*local_70;\n            if (cVar6 != '\0') {\n              uVar5 = CONCAT11((byte)*local_70,*(byte *)((long)local_70 + 1));\n            }\n            local_70 = (uint *)((long)local_70 + 2);\n            puStack_50 = (uint *)(ulong)uVar5;\n          }\n          goto joined_r0x00302748;\n        }\n        if (uVar8 == 10) {\n          puStack_50 = (uint *)((long)local_70 + 1);\n          uVar9 = *local_70;\n          local_70 = (uint *)((long)puStack_50 + (ulong)(byte)uVar9);\n          local_48 = (uint)(byte)uVar9;\n          goto joined_r0x00302748;\n        }\n        if (uVar8 < 0xb) {\n          if (uVar8 != 8) {\n            if (uVar8 != 9) {\n              return 0;\n            }\n            goto LAB_00302a09;\n          }\n          puStack_50 = local_70;\n          local_68 = strlen((char *)local_70);\n          local_70 = (uint *)((long)puVar11 + local_68 + 1);\n          if (uVar2 == 0x31) goto LAB_00302750;\n          if (0x31 < uVar2) {\n            if ((uVar2 != 0x6e) && (uVar2 != 0x2007)) goto LAB_00302750;\n            goto LAB_003029eb;\n          }\n          if ((uVar2 == 1) || (uVar2 != 3)) goto LAB_00302750;\n          goto LAB_003029c7;\n        }\n        if (uVar8 < 0xd) {\n          uVar9 = *local_70;\n          local_70 = (uint *)((long)local_70 + 1);\n          puStack_50 = (uint *)(ulong)(byte)uVar9;\n          goto LAB_00302f92;\n        }\n        bVar1 = (byte)*local_70;\n        puVar11 = (uint *)((long)local_70 + 1);\n        if ((char)bVar1 < '\0') {\n          puStack_50 = (uint *)FUN_00211340(puVar11,&local_68);\n          puVar11 = (uint *)(local_68 + (long)local_70);\n        }\n        else {\n          local_68 = 1;\n          puStack_50 = (uint *)(ulong)bVar1;\n          if ((bVar1 & 0x40) != 0) {\n            puStack_50 = (uint *)((ulong)bVar1 | 0xffffffffffffff80);\n          }\n        }\n        local_70 = puVar11;\n        if ((uVar2 == 0x31) || (uVar2 < 0x32)) goto LAB_00302750;\n        if ((uVar2 == 0x6e) || (uVar2 == 0x2007)) goto LAB_00302fbe;\n        puVar16 = (undefined8 *)param_1[8];\n        if (puVar16 == (undefined8 *)param_1[9]) goto LAB_003028c0;\nLAB_0030275e:\n        *puVar16 = CONCAT44(uStack_54,local_58);\n        puVar16[1] = puStack_50;\n        puVar16[2] = CONCAT44(uStack_44,local_48);\n        param_1[8] = (long)(puVar16 + 3);\n      }" (else "else") (compound_statement "{\n        if (0xe < uVar8) {\n          if (uVar8 == 0x15) {\n            bVar1 = (byte)*local_70;\n            if ((char)bVar1 < '\0') {\n              puStack_50 = (uint *)FUN_002112d0((uint *)((long)local_70 + 1),&local_68,bVar1);\n              local_70 = (uint *)(local_68 + (long)local_70);\n            }\n            else {\n              local_68 = 1;\n              local_70 = (uint *)((long)local_70 + 1);\n              puStack_50 = (uint *)(ulong)bVar1;\n            }\njoined_r0x00303052:\n            if (uVar2 != 0x31) {\n              if (uVar2 < 0x32) {\nLAB_00302c20:\n                if ((uVar2 == 1) && (local_48 == 0)) {\n                  param_1[5] = (long)puStack_50;\n                }\n                goto LAB_00302750;\n              }\n              if ((uVar2 != 0x6e) && (uVar2 != 0x2007)) {\njoined_r0x00302ce3:\n                if (uVar2 == 0x47) {\n                  param_1[0x10] = (long)puStack_50;\n                }\n                goto LAB_00302750;\n              }\nLAB_00302fb5:\n              if (uVar8 == 8) {\nLAB_003029eb:\n                param_1[0xd] = (long)puStack_50;\n              }\n              else {\nLAB_00302fbe:\n                if (uVar8 == 0xe) goto LAB_00302fd0;\n              }\n              goto LAB_00302750;\n            }\n          }\n          else {\n            if (0x15 < uVar8) {\n              if (uVar8 != 0x19) {\n                if (uVar8 < 0x1a) {\n                  if (uVar8 == 0x17) {\n                    lVar10 = *param_1;\n                    if (*(int *)(lVar10 + 0x60) == 4) {\n                      uVar9 = FUN_00305610(lVar10,&local_70);\n                      local_60 = (uint *)(ulong)uVar9;\n                    }\n                    else {\n                      plVar17 = *(long **)(lVar10 + 0x10);\nLAB_00302fe7:\n                      pcVar3 = *(code **)(*plVar17 + 0x18);\n                      if (pcVar3 == FUN_001b8d10) {\n                        cVar6 = (**(code **)(*plVar17 + 0x1d0))();\n                      }\n                      else {\n                        cVar6 = (*pcVar3)();\n                      }\n                      local_60 = *(uint **)local_70;\n                      if (cVar6 != '\0') {\n                        local_60 = (uint *)((ulong)local_60 >> 0x38 |\n                                            ((ulong)local_60 & 0xff000000000000) >> 0x28 |\n                                            ((ulong)local_60 & 0xff0000000000) >> 0x18 |\n                                            ((ulong)local_60 & 0xff00000000) >> 8 |\n                                            ((ulong)local_60 & 0xff000000) << 8 |\n                                            ((ulong)local_60 & 0xff0000) << 0x18 |\n                                            ((ulong)local_60 & 0xff00) << 0x28 |\n                                           (long)local_60 << 0x38);\n                      }\n                      local_70 = local_70 + 2;\n                    }\nLAB_00303035:\n                    local_48 = FUN_00301dc0(*param_1,pbVar15,&local_60);\n                    puStack_50 = local_60;\n                    goto joined_r0x00303052;\n                  }\n                  if (uVar8 != 0x18) {\n                    return 0;\n                  }\nLAB_00302a09:\n                  bVar1 = (byte)*local_70;\n                  uVar9 = (uint)bVar1;\n                  puVar11 = (uint *)((long)local_70 + 1);\n                  if ((char)bVar1 < '\0') {\n                    uVar9 = FUN_002112d0(puVar11,&local_68,bVar1);\n                    puVar11 = (uint *)((long)local_70 + local_68);\n                  }\n                  else {\n                    local_68 = 1;\n                  }\n                  local_70 = (uint *)((long)local_70 + uVar9 + local_68);\n                  puStack_50 = puVar11;\n                  local_48 = uVar9;\n                }\n                else {\n                  if (uVar8 == 0x20) {\n                    pcVar3 = *(code **)(**(long **)(*param_1 + 0x10) + 0x18);\n                    if (pcVar3 == FUN_001b8d10) {\n                      cVar6 = (**(code **)(**(long **)(*param_1 + 0x10) + 0x1d0))();\n                    }\n                    else {\n                      cVar6 = (*pcVar3)();\n                    }\n                    puStack_50 = *(uint **)local_70;\n                    if (cVar6 != '\0') {\n                      puStack_50 = (uint *)((ulong)puStack_50 >> 0x38 |\n                                            ((ulong)puStack_50 & 0xff000000000000) >> 0x28 |\n                                            ((ulong)puStack_50 & 0xff0000000000) >> 0x18 |\n                                            ((ulong)puStack_50 & 0xff00000000) >> 8 |\n                                            ((ulong)puStack_50 & 0xff000000) << 8 |\n                                            ((ulong)puStack_50 & 0xff0000) << 0x18 |\n                                            ((ulong)puStack_50 & 0xff00) << 0x28 |\n                                           (long)puStack_50 << 0x38);\n                    }\n                    local_70 = local_70 + 2;\n                    goto LAB_00302ea9;\n                  }\n                  if (uVar8 < 0x20) {\n                    return 0;\n                  }\n                  if (1 < uVar8 - 0x1f01) {\n                    return 0;\n                  }\nLAB_00302bcd:\n                  bVar1 = (byte)*local_70;\n                  if ((char)bVar1 < '\0') {\n                    puStack_50 = (uint *)FUN_002112d0((uint *)((long)local_70 + 1),&local_68,bVar1);\n                    local_70 = (uint *)(local_68 + (long)local_70);\n                  }\n                  else {\n                    local_68 = 1;\n                    local_70 = (uint *)((long)local_70 + 1);\n                    puStack_50 = (uint *)(ulong)bVar1;\n                  }\n                }\nLAB_00302f92:\n                if (uVar2 == 0x31) goto LAB_00302750;\n                if (0x31 < uVar2) {\n                  if ((uVar2 == 0x6e) || (uVar2 == 0x2007)) goto LAB_00302fb5;\n                  goto LAB_00302750;\n                }\n                goto LAB_00302e3e;\n              }\n              puStack_50 = (uint *)0x1;\nLAB_00302ea9:\n              if (((uVar2 == 0x31) || (0x31 < uVar2)) || (uVar2 != 3)) goto LAB_00302750;\nLAB_00302e52:\n              if (uVar8 == 8) {\nLAB_003029c7:\n                param_1[0xb] = (long)puStack_50;\n              }\n              else if (uVar8 == 0xe) goto LAB_00302f64;\n              goto LAB_00302750;\n            }\n            if (uVar8 != 0x11) {\n              if (0x11 < uVar8) {\n                if (uVar8 == 0x13) {\n                  uVar9 = FUN_00305610(*param_1,&local_70);\n                  local_60 = (uint *)(ulong)uVar9;\n                  goto LAB_00303035;\n                }\n                if (0x13 < uVar8) {\n                  plVar17 = *(long **)(*param_1 + 0x10);\n                  goto LAB_00302fe7;\n                }\n                pcVar3 = *(code **)(**(long **)(*param_1 + 0x10) + 0x18);\n                if (pcVar3 == FUN_001b8d10) {\n                  cVar6 = (**(code **)(**(long **)(*param_1 + 0x10) + 0x1d0))();\n                }\n                else {\n                  cVar6 = (*pcVar3)();\n                }\n                uVar5 = (ushort)*local_70;\n                if (cVar6 != '\0') {\n                  uVar5 = CONCAT11((byte)*local_70,*(byte *)((long)local_70 + 1));\n                }\n                local_70 = (uint *)((long)local_70 + 2);\n                puStack_50 = (uint *)(ulong)uVar5;\n                goto joined_r0x00303052;\n              }\n              if (uVar8 == 0xf) goto LAB_00302bcd;\n              if (uVar8 != 0x10) {\n                return 0;\n              }\n              lVar10 = *param_1;\n              iVar7 = *(int *)(lVar10 + 100);\n              if (2 < *(uint *)(lVar10 + 0x68)) {\n                iVar7 = *(int *)(lVar10 + 0x60);\n              }\n              if (iVar7 != 4) goto LAB_00302a71;\nLAB_00302e7d:\n              uVar8 = FUN_00305610(lVar10,&local_70);\n              local_60 = (uint *)(ulong)uVar8;\nLAB_00302abe:\n              local_48 = FUN_00301dc0(*param_1,pbVar15,&local_60);\n              puStack_50 = local_60;\n              if (uVar2 == 0x31) goto LAB_00302965;\n              if (0x31 < uVar2) goto joined_r0x00302ccc;\n              goto LAB_00302c20;\n            }\n            puVar11 = (uint *)((long)local_70 + 1);\n            puStack_50 = (uint *)(ulong)(byte)*local_70;\n            local_70 = puVar11;\n            if (uVar2 != 0x31) {\n              if (uVar2 < 0x32) {\n                if (uVar2 == 1) {\n                  param_1[5] = (long)puStack_50;\n                }\n                goto LAB_00302750;\n              }\njoined_r0x00302ccc:\n              if ((uVar2 == 0x6e) || (uVar2 == 0x2007)) goto LAB_00302750;\n              goto joined_r0x00302ce3;\n            }\n          }\nLAB_00302965:\n          param_1[0x11] = (long)puStack_50;\n          goto LAB_00302750;\n        }\n        if (uVar8 == 7) {\n          pcVar3 = *(code **)(**(long **)(*param_1 + 0x10) + 0x18);\n          if (pcVar3 == FUN_001b8d10) {\n            cVar6 = (**(code **)(**(long **)(*param_1 + 0x10) + 0x1d0))();\n          }\n          else {\n            cVar6 = (*pcVar3)();\n          }\n          local_60 = *(uint **)local_70;\n          if (cVar6 != '\0') {\n            local_60 = (uint *)((ulong)local_60 >> 0x38 |\n                                ((ulong)local_60 & 0xff000000000000) >> 0x28 |\n                                ((ulong)local_60 & 0xff0000000000) >> 0x18 |\n                                ((ulong)local_60 & 0xff00000000) >> 8 |\n                                ((ulong)local_60 & 0xff000000) << 8 |\n                                ((ulong)local_60 & 0xff0000) << 0x18 |\n                                ((ulong)local_60 & 0xff00) << 0x28 | (long)local_60 << 0x38);\n          }\n          local_70 = local_70 + 2;\nLAB_00302d40:\n          local_48 = FUN_00301dc0(*param_1,pbVar15,&local_60);\n          puStack_50 = local_60;\njoined_r0x00302748:\n          if ((uVar2 != 0x31) && (uVar2 < 0x32)) {\nLAB_00302e3e:\n            if ((uVar2 != 1) && (uVar2 == 3)) goto LAB_00302e52;\n          }\n          goto LAB_00302750;\n        }\n        if (uVar8 < 8) {\n          if (uVar8 == 4) {\n            pcVar3 = *(code **)(**(long **)(*param_1 + 0x10) + 0x18);\n            if (pcVar3 == FUN_001b8d10) {\n              cVar6 = (**(code **)(**(long **)(*param_1 + 0x10) + 0x1d0))();\n            }\n            else {\n              cVar6 = (*pcVar3)();\n            }\n            local_48 = *local_70;\n            if (cVar6 != '\0') {\n              local_48 = local_48 >> 0x18 | (local_48 & 0xff0000) >> 8 | (local_48 & 0xff00) << 8 |\n                         local_48 << 0x18;\n            }\n            puStack_50 = local_70 + 1;\n            local_70 = (uint *)((long)puStack_50 + (ulong)local_48);\n          }\n          else if (uVar8 < 5) {\n            if (uVar8 == 1) {\n              lVar10 = *param_1;\n              if (*(int *)(lVar10 + 100) == 4) goto LAB_00302e7d;\nLAB_00302a71:\n              pcVar3 = *(code **)(**(long **)(lVar10 + 0x10) + 0x18);\n              if (pcVar3 == FUN_001b8d10) {\n                cVar6 = (**(code **)(**(long **)(lVar10 + 0x10) + 0x1d0))();\n              }\n              else {\n                cVar6 = (*pcVar3)();\n              }\n              local_60 = *(uint **)local_70;\n              if (cVar6 != '\0') {\n                local_60 = (uint *)((ulong)local_60 >> 0x38 |\n                                    ((ulong)local_60 & 0xff000000000000) >> 0x28 |\n                                    ((ulong)local_60 & 0xff0000000000) >> 0x18 |\n                                    ((ulong)local_60 & 0xff00000000) >> 8 |\n                                    ((ulong)local_60 & 0xff000000) << 8 |\n                                    ((ulong)local_60 & 0xff0000) << 0x18 |\n                                    ((ulong)local_60 & 0xff00) << 0x28 | (long)local_60 << 0x38);\n              }\n              local_70 = local_70 + 2;\n              goto LAB_00302abe;\n            }\n            if (uVar8 != 3) {\n              return 0;\n            }\n            pcVar3 = *(code **)(**(long **)(*param_1 + 0x10) + 0x18);\n            if (pcVar3 == FUN_001b8d10) {\n              cVar6 = (**(code **)(**(long **)(*param_1 + 0x10) + 0x1d0))();\n            }\n            else {\n              cVar6 = (*pcVar3)();\n            }\n            uVar5 = (ushort)*local_70;\n            if (cVar6 != '\0') {\n              uVar5 = CONCAT11((byte)*local_70,*(byte *)((long)local_70 + 1));\n            }\n            local_48 = (uint)uVar5;\n            puStack_50 = (uint *)((long)local_70 + 2);\n            local_70 = (uint *)((long)puStack_50 + (ulong)local_48);\n          }\n          else {\n            if (uVar8 != 5) {\n              if (uVar8 != 6) {\n                return 0;\n              }\n              pcVar3 = *(code **)(**(long **)(*param_1 + 0x10) + 0x18);\n              if (pcVar3 == FUN_001b8d10) {\n                cVar6 = (**(code **)(**(long **)(*param_1 + 0x10) + 0x1d0))();\n              }\n              else {\n                cVar6 = (*pcVar3)();\n              }\n              uVar9 = *local_70;\n              if (cVar6 != '\0') {\n                uVar9 = uVar9 >> 0x18 | (uVar9 & 0xff0000) >> 8 | (uVar9 & 0xff00) << 8 |\n                        uVar9 << 0x18;\n              }\n              local_60 = (uint *)(ulong)uVar9;\n              local_70 = local_70 + 1;\n              goto LAB_00302d40;\n            }\n            pcVar3 = *(code **)(**(long **)(*param_1 + 0x10) + 0x18);\n            if (pcVar3 == FUN_001b8d10) {\n              cVar6 = (**(code **)(**(long **)(*param_1 + 0x10) + 0x1d0))();\n            }\n            else {\n              cVar6 = (*pcVar3)();\n            }\n            uVar5 = (ushort)*local_70;\n            if (cVar6 != '\0') {\n              uVar5 = CONCAT11((byte)*local_70,*(byte *)((long)local_70 + 1));\n            }\n            local_70 = (uint *)((long)local_70 + 2);\n            puStack_50 = (uint *)(ulong)uVar5;\n          }\n          goto joined_r0x00302748;\n        }\n        if (uVar8 == 10) {\n          puStack_50 = (uint *)((long)local_70 + 1);\n          uVar9 = *local_70;\n          local_70 = (uint *)((long)puStack_50 + (ulong)(byte)uVar9);\n          local_48 = (uint)(byte)uVar9;\n          goto joined_r0x00302748;\n        }\n        if (uVar8 < 0xb) {\n          if (uVar8 != 8) {\n            if (uVar8 != 9) {\n              return 0;\n            }\n            goto LAB_00302a09;\n          }\n          puStack_50 = local_70;\n          local_68 = strlen((char *)local_70);\n          local_70 = (uint *)((long)puVar11 + local_68 + 1);\n          if (uVar2 == 0x31) goto LAB_00302750;\n          if (0x31 < uVar2) {\n            if ((uVar2 != 0x6e) && (uVar2 != 0x2007)) goto LAB_00302750;\n            goto LAB_003029eb;\n          }\n          if ((uVar2 == 1) || (uVar2 != 3)) goto LAB_00302750;\n          goto LAB_003029c7;\n        }\n        if (uVar8 < 0xd) {\n          uVar9 = *local_70;\n          local_70 = (uint *)((long)local_70 + 1);\n          puStack_50 = (uint *)(ulong)(byte)uVar9;\n          goto LAB_00302f92;\n        }\n        bVar1 = (byte)*local_70;\n        puVar11 = (uint *)((long)local_70 + 1);\n        if ((char)bVar1 < '\0') {\n          puStack_50 = (uint *)FUN_00211340(puVar11,&local_68);\n          puVar11 = (uint *)(local_68 + (long)local_70);\n        }\n        else {\n          local_68 = 1;\n          puStack_50 = (uint *)(ulong)bVar1;\n          if ((bVar1 & 0x40) != 0) {\n            puStack_50 = (uint *)((ulong)bVar1 | 0xffffffffffffff80);\n          }\n        }\n        local_70 = puVar11;\n        if ((uVar2 == 0x31) || (uVar2 < 0x32)) goto LAB_00302750;\n        if ((uVar2 == 0x6e) || (uVar2 == 0x2007)) goto LAB_00302fbe;\n        puVar16 = (undefined8 *)param_1[8];\n        if (puVar16 == (undefined8 *)param_1[9]) goto LAB_003028c0;\nLAB_0030275e:\n        *puVar16 = CONCAT44(uStack_54,local_58);\n        puVar16[1] = puStack_50;\n        puVar16[2] = CONCAT44(uStack_44,local_48);\n        param_1[8] = (long)(puVar16 + 3);\n      }" ({ "{") (if_statement "if (0xe < uVar8) {\n          if (uVar8 == 0x15) {\n            bVar1 = (byte)*local_70;\n            if ((char)bVar1 < '\0') {\n              puStack_50 = (uint *)FUN_002112d0((uint *)((long)local_70 + 1),&local_68,bVar1);\n              local_70 = (uint *)(local_68 + (long)local_70);\n            }\n            else {\n              local_68 = 1;\n              local_70 = (uint *)((long)local_70 + 1);\n              puStack_50 = (uint *)(ulong)bVar1;\n            }\njoined_r0x00303052:\n            if (uVar2 != 0x31) {\n              if (uVar2 < 0x32) {\nLAB_00302c20:\n                if ((uVar2 == 1) && (local_48 == 0)) {\n                  param_1[5] = (long)puStack_50;\n                }\n                goto LAB_00302750;\n              }\n              if ((uVar2 != 0x6e) && (uVar2 != 0x2007)) {\njoined_r0x00302ce3:\n                if (uVar2 == 0x47) {\n                  param_1[0x10] = (long)puStack_50;\n                }\n                goto LAB_00302750;\n              }\nLAB_00302fb5:\n              if (uVar8 == 8) {\nLAB_003029eb:\n                param_1[0xd] = (long)puStack_50;\n              }\n              else {\nLAB_00302fbe:\n                if (uVar8 == 0xe) goto LAB_00302fd0;\n              }\n              goto LAB_00302750;\n            }\n          }\n          else {\n            if (0x15 < uVar8) {\n              if (uVar8 != 0x19) {\n                if (uVar8 < 0x1a) {\n                  if (uVar8 == 0x17) {\n                    lVar10 = *param_1;\n                    if (*(int *)(lVar10 + 0x60) == 4) {\n                      uVar9 = FUN_00305610(lVar10,&local_70);\n                      local_60 = (uint *)(ulong)uVar9;\n                    }\n                    else {\n                      plVar17 = *(long **)(lVar10 + 0x10);\nLAB_00302fe7:\n                      pcVar3 = *(code **)(*plVar17 + 0x18);\n                      if (pcVar3 == FUN_001b8d10) {\n                        cVar6 = (**(code **)(*plVar17 + 0x1d0))();\n                      }\n                      else {\n                        cVar6 = (*pcVar3)();\n                      }\n                      local_60 = *(uint **)local_70;\n                      if (cVar6 != '\0') {\n                        local_60 = (uint *)((ulong)local_60 >> 0x38 |\n                                            ((ulong)local_60 & 0xff000000000000) >> 0x28 |\n                                            ((ulong)local_60 & 0xff0000000000) >> 0x18 |\n                                            ((ulong)local_60 & 0xff00000000) >> 8 |\n                                            ((ulong)local_60 & 0xff000000) << 8 |\n                                            ((ulong)local_60 & 0xff0000) << 0x18 |\n                                            ((ulong)local_60 & 0xff00) << 0x28 |\n                                           (long)local_60 << 0x38);\n                      }\n                      local_70 = local_70 + 2;\n                    }\nLAB_00303035:\n                    local_48 = FUN_00301dc0(*param_1,pbVar15,&local_60);\n                    puStack_50 = local_60;\n                    goto joined_r0x00303052;\n                  }\n                  if (uVar8 != 0x18) {\n                    return 0;\n                  }\nLAB_00302a09:\n                  bVar1 = (byte)*local_70;\n                  uVar9 = (uint)bVar1;\n                  puVar11 = (uint *)((long)local_70 + 1);\n                  if ((char)bVar1 < '\0') {\n                    uVar9 = FUN_002112d0(puVar11,&local_68,bVar1);\n                    puVar11 = (uint *)((long)local_70 + local_68);\n                  }\n                  else {\n                    local_68 = 1;\n                  }\n                  local_70 = (uint *)((long)local_70 + uVar9 + local_68);\n                  puStack_50 = puVar11;\n                  local_48 = uVar9;\n                }\n                else {\n                  if (uVar8 == 0x20) {\n                    pcVar3 = *(code **)(**(long **)(*param_1 + 0x10) + 0x18);\n                    if (pcVar3 == FUN_001b8d10) {\n                      cVar6 = (**(code **)(**(long **)(*param_1 + 0x10) + 0x1d0))();\n                    }\n                    else {\n                      cVar6 = (*pcVar3)();\n                    }\n                    puStack_50 = *(uint **)local_70;\n                    if (cVar6 != '\0') {\n                      puStack_50 = (uint *)((ulong)puStack_50 >> 0x38 |\n                                            ((ulong)puStack_50 & 0xff000000000000) >> 0x28 |\n                                            ((ulong)puStack_50 & 0xff0000000000) >> 0x18 |\n                                            ((ulong)puStack_50 & 0xff00000000) >> 8 |\n                                            ((ulong)puStack_50 & 0xff000000) << 8 |\n                                            ((ulong)puStack_50 & 0xff0000) << 0x18 |\n                                            ((ulong)puStack_50 & 0xff00) << 0x28 |\n                                           (long)puStack_50 << 0x38);\n                    }\n                    local_70 = local_70 + 2;\n                    goto LAB_00302ea9;\n                  }\n                  if (uVar8 < 0x20) {\n                    return 0;\n                  }\n                  if (1 < uVar8 - 0x1f01) {\n                    return 0;\n                  }\nLAB_00302bcd:\n                  bVar1 = (byte)*local_70;\n                  if ((char)bVar1 < '\0') {\n                    puStack_50 = (uint *)FUN_002112d0((uint *)((long)local_70 + 1),&local_68,bVar1);\n                    local_70 = (uint *)(local_68 + (long)local_70);\n                  }\n                  else {\n                    local_68 = 1;\n                    local_70 = (uint *)((long)local_70 + 1);\n                    puStack_50 = (uint *)(ulong)bVar1;\n                  }\n                }\nLAB_00302f92:\n                if (uVar2 == 0x31) goto LAB_00302750;\n                if (0x31 < uVar2) {\n                  if ((uVar2 == 0x6e) || (uVar2 == 0x2007)) goto LAB_00302fb5;\n                  goto LAB_00302750;\n                }\n                goto LAB_00302e3e;\n              }\n              puStack_50 = (uint *)0x1;\nLAB_00302ea9:\n              if (((uVar2 == 0x31) || (0x31 < uVar2)) || (uVar2 != 3)) goto LAB_00302750;\nLAB_00302e52:\n              if (uVar8 == 8) {\nLAB_003029c7:\n                param_1[0xb] = (long)puStack_50;\n              }\n              else if (uVar8 == 0xe) goto LAB_00302f64;\n              goto LAB_00302750;\n            }\n            if (uVar8 != 0x11) {\n              if (0x11 < uVar8) {\n                if (uVar8 == 0x13) {\n                  uVar9 = FUN_00305610(*param_1,&local_70);\n                  local_60 = (uint *)(ulong)uVar9;\n                  goto LAB_00303035;\n                }\n                if (0x13 < uVar8) {\n                  plVar17 = *(long **)(*param_1 + 0x10);\n                  goto LAB_00302fe7;\n                }\n                pcVar3 = *(code **)(**(long **)(*param_1 + 0x10) + 0x18);\n                if (pcVar3 == FUN_001b8d10) {\n                  cVar6 = (**(code **)(**(long **)(*param_1 + 0x10) + 0x1d0))();\n                }\n                else {\n                  cVar6 = (*pcVar3)();\n                }\n                uVar5 = (ushort)*local_70;\n                if (cVar6 != '\0') {\n                  uVar5 = CONCAT11((byte)*local_70,*(byte *)((long)local_70 + 1));\n                }\n                local_70 = (uint *)((long)local_70 + 2);\n                puStack_50 = (uint *)(ulong)uVar5;\n                goto joined_r0x00303052;\n              }\n              if (uVar8 == 0xf) goto LAB_00302bcd;\n              if (uVar8 != 0x10) {\n                return 0;\n              }\n              lVar10 = *param_1;\n              iVar7 = *(int *)(lVar10 + 100);\n              if (2 < *(uint *)(lVar10 + 0x68)) {\n                iVar7 = *(int *)(lVar10 + 0x60);\n              }\n              if (iVar7 != 4) goto LAB_00302a71;\nLAB_00302e7d:\n              uVar8 = FUN_00305610(lVar10,&local_70);\n              local_60 = (uint *)(ulong)uVar8;\nLAB_00302abe:\n              local_48 = FUN_00301dc0(*param_1,pbVar15,&local_60);\n              puStack_50 = local_60;\n              if (uVar2 == 0x31) goto LAB_00302965;\n              if (0x31 < uVar2) goto joined_r0x00302ccc;\n              goto LAB_00302c20;\n            }\n            puVar11 = (uint *)((long)local_70 + 1);\n            puStack_50 = (uint *)(ulong)(byte)*local_70;\n            local_70 = puVar11;\n            if (uVar2 != 0x31) {\n              if (uVar2 < 0x32) {\n                if (uVar2 == 1) {\n                  param_1[5] = (long)puStack_50;\n                }\n                goto LAB_00302750;\n              }\njoined_r0x00302ccc:\n              if ((uVar2 == 0x6e) || (uVar2 == 0x2007)) goto LAB_00302750;\n              goto joined_r0x00302ce3;\n            }\n          }\nLAB_00302965:\n          param_1[0x11] = (long)puStack_50;\n          goto LAB_00302750;\n        }" (if "if") (parenthesized_expression "(0xe < uVar8)" (( "(") (binary_expression "0xe < uVar8" (number_literal "0xe") (< "<") (identifier "uVar8")) () ")")) (compound_statement "{\n          if (uVar8 == 0x15) {\n            bVar1 = (byte)*local_70;\n            if ((char)bVar1 < '\0') {\n              puStack_50 = (uint *)FUN_002112d0((uint *)((long)local_70 + 1),&local_68,bVar1);\n              local_70 = (uint *)(local_68 + (long)local_70);\n            }\n            else {\n              local_68 = 1;\n              local_70 = (uint *)((long)local_70 + 1);\n              puStack_50 = (uint *)(ulong)bVar1;\n            }\njoined_r0x00303052:\n            if (uVar2 != 0x31) {\n              if (uVar2 < 0x32) {\nLAB_00302c20:\n                if ((uVar2 == 1) && (local_48 == 0)) {\n                  param_1[5] = (long)puStack_50;\n                }\n                goto LAB_00302750;\n              }\n              if ((uVar2 != 0x6e) && (uVar2 != 0x2007)) {\njoined_r0x00302ce3:\n                if (uVar2 == 0x47) {\n                  param_1[0x10] = (long)puStack_50;\n                }\n                goto LAB_00302750;\n              }\nLAB_00302fb5:\n              if (uVar8 == 8) {\nLAB_003029eb:\n                param_1[0xd] = (long)puStack_50;\n              }\n              else {\nLAB_00302fbe:\n                if (uVar8 == 0xe) goto LAB_00302fd0;\n              }\n              goto LAB_00302750;\n            }\n          }\n          else {\n            if (0x15 < uVar8) {\n              if (uVar8 != 0x19) {\n                if (uVar8 < 0x1a) {\n                  if (uVar8 == 0x17) {\n                    lVar10 = *param_1;\n                    if (*(int *)(lVar10 + 0x60) == 4) {\n                      uVar9 = FUN_00305610(lVar10,&local_70);\n                      local_60 = (uint *)(ulong)uVar9;\n                    }\n                    else {\n                      plVar17 = *(long **)(lVar10 + 0x10);\nLAB_00302fe7:\n                      pcVar3 = *(code **)(*plVar17 + 0x18);\n                      if (pcVar3 == FUN_001b8d10) {\n                        cVar6 = (**(code **)(*plVar17 + 0x1d0))();\n                      }\n                      else {\n                        cVar6 = (*pcVar3)();\n                      }\n                      local_60 = *(uint **)local_70;\n                      if (cVar6 != '\0') {\n                        local_60 = (uint *)((ulong)local_60 >> 0x38 |\n                                            ((ulong)local_60 & 0xff000000000000) >> 0x28 |\n                                            ((ulong)local_60 & 0xff0000000000) >> 0x18 |\n                                            ((ulong)local_60 & 0xff00000000) >> 8 |\n                                            ((ulong)local_60 & 0xff000000) << 8 |\n                                            ((ulong)local_60 & 0xff0000) << 0x18 |\n                                            ((ulong)local_60 & 0xff00) << 0x28 |\n                                           (long)local_60 << 0x38);\n                      }\n                      local_70 = local_70 + 2;\n                    }\nLAB_00303035:\n                    local_48 = FUN_00301dc0(*param_1,pbVar15,&local_60);\n                    puStack_50 = local_60;\n                    goto joined_r0x00303052;\n                  }\n                  if (uVar8 != 0x18) {\n                    return 0;\n                  }\nLAB_00302a09:\n                  bVar1 = (byte)*local_70;\n                  uVar9 = (uint)bVar1;\n                  puVar11 = (uint *)((long)local_70 + 1);\n                  if ((char)bVar1 < '\0') {\n                    uVar9 = FUN_002112d0(puVar11,&local_68,bVar1);\n                    puVar11 = (uint *)((long)local_70 + local_68);\n                  }\n                  else {\n                    local_68 = 1;\n                  }\n                  local_70 = (uint *)((long)local_70 + uVar9 + local_68);\n                  puStack_50 = puVar11;\n                  local_48 = uVar9;\n                }\n                else {\n                  if (uVar8 == 0x20) {\n                    pcVar3 = *(code **)(**(long **)(*param_1 + 0x10) + 0x18);\n                    if (pcVar3 == FUN_001b8d10) {\n                      cVar6 = (**(code **)(**(long **)(*param_1 + 0x10) + 0x1d0))();\n                    }\n                    else {\n                      cVar6 = (*pcVar3)();\n                    }\n                    puStack_50 = *(uint **)local_70;\n                    if (cVar6 != '\0') {\n                      puStack_50 = (uint *)((ulong)puStack_50 >> 0x38 |\n                                            ((ulong)puStack_50 & 0xff000000000000) >> 0x28 |\n                                            ((ulong)puStack_50 & 0xff0000000000) >> 0x18 |\n                                            ((ulong)puStack_50 & 0xff00000000) >> 8 |\n                                            ((ulong)puStack_50 & 0xff000000) << 8 |\n                                            ((ulong)puStack_50 & 0xff0000) << 0x18 |\n                                            ((ulong)puStack_50 & 0xff00) << 0x28 |\n                                           (long)puStack_50 << 0x38);\n                    }\n                    local_70 = local_70 + 2;\n                    goto LAB_00302ea9;\n                  }\n                  if (uVar8 < 0x20) {\n                    return 0;\n                  }\n                  if (1 < uVar8 - 0x1f01) {\n                    return 0;\n                  }\nLAB_00302bcd:\n                  bVar1 = (byte)*local_70;\n                  if ((char)bVar1 < '\0') {\n                    puStack_50 = (uint *)FUN_002112d0((uint *)((long)local_70 + 1),&local_68,bVar1);\n                    local_70 = (uint *)(local_68 + (long)local_70);\n                  }\n                  else {\n                    local_68 = 1;\n                    local_70 = (uint *)((long)local_70 + 1);\n                    puStack_50 = (uint *)(ulong)bVar1;\n                  }\n                }\nLAB_00302f92:\n                if (uVar2 == 0x31) goto LAB_00302750;\n                if (0x31 < uVar2) {\n                  if ((uVar2 == 0x6e) || (uVar2 == 0x2007)) goto LAB_00302fb5;\n                  goto LAB_00302750;\n                }\n                goto LAB_00302e3e;\n              }\n              puStack_50 = (uint *)0x1;\nLAB_00302ea9:\n              if (((uVar2 == 0x31) || (0x31 < uVar2)) || (uVar2 != 3)) goto LAB_00302750;\nLAB_00302e52:\n              if (uVar8 == 8) {\nLAB_003029c7:\n                param_1[0xb] = (long)puStack_50;\n              }\n              else if (uVar8 == 0xe) goto LAB_00302f64;\n              goto LAB_00302750;\n            }\n            if (uVar8 != 0x11) {\n              if (0x11 < uVar8) {\n                if (uVar8 == 0x13) {\n                  uVar9 = FUN_00305610(*param_1,&local_70);\n                  local_60 = (uint *)(ulong)uVar9;\n                  goto LAB_00303035;\n                }\n                if (0x13 < uVar8) {\n                  plVar17 = *(long **)(*param_1 + 0x10);\n                  goto LAB_00302fe7;\n                }\n                pcVar3 = *(code **)(**(long **)(*param_1 + 0x10) + 0x18);\n                if (pcVar3 == FUN_001b8d10) {\n                  cVar6 = (**(code **)(**(long **)(*param_1 + 0x10) + 0x1d0))();\n                }\n                else {\n                  cVar6 = (*pcVar3)();\n                }\n                uVar5 = (ushort)*local_70;\n                if (cVar6 != '\0') {\n                  uVar5 = CONCAT11((byte)*local_70,*(byte *)((long)local_70 + 1));\n                }\n                local_70 = (uint *)((long)local_70 + 2);\n                puStack_50 = (uint *)(ulong)uVar5;\n                goto joined_r0x00303052;\n              }\n              if (uVar8 == 0xf) goto LAB_00302bcd;\n              if (uVar8 != 0x10) {\n                return 0;\n              }\n              lVar10 = *param_1;\n              iVar7 = *(int *)(lVar10 + 100);\n              if (2 < *(uint *)(lVar10 + 0x68)) {\n                iVar7 = *(int *)(lVar10 + 0x60);\n              }\n              if (iVar7 != 4) goto LAB_00302a71;\nLAB_00302e7d:\n              uVar8 = FUN_00305610(lVar10,&local_70);\n              local_60 = (uint *)(ulong)uVar8;\nLAB_00302abe:\n              local_48 = FUN_00301dc0(*param_1,pbVar15,&local_60);\n              puStack_50 = local_60;\n              if (uVar2 == 0x31) goto LAB_00302965;\n              if (0x31 < uVar2) goto joined_r0x00302ccc;\n              goto LAB_00302c20;\n            }\n            puVar11 = (uint *)((long)local_70 + 1);\n            puStack_50 = (uint *)(ulong)(byte)*local_70;\n            local_70 = puVar11;\n            if (uVar2 != 0x31) {\n              if (uVar2 < 0x32) {\n                if (uVar2 == 1) {\n                  param_1[5] = (long)puStack_50;\n                }\n                goto LAB_00302750;\n              }\njoined_r0x00302ccc:\n              if ((uVar2 == 0x6e) || (uVar2 == 0x2007)) goto LAB_00302750;\n              goto joined_r0x00302ce3;\n            }\n          }\nLAB_00302965:\n          param_1[0x11] = (long)puStack_50;\n          goto LAB_00302750;\n        }" ({ "{") (if_statement "if (uVar8 == 0x15) {\n            bVar1 = (byte)*local_70;\n            if ((char)bVar1 < '\0') {\n              puStack_50 = (uint *)FUN_002112d0((uint *)((long)local_70 + 1),&local_68,bVar1);\n              local_70 = (uint *)(local_68 + (long)local_70);\n            }\n            else {\n              local_68 = 1;\n              local_70 = (uint *)((long)local_70 + 1);\n              puStack_50 = (uint *)(ulong)bVar1;\n            }\njoined_r0x00303052:\n            if (uVar2 != 0x31) {\n              if (uVar2 < 0x32) {\nLAB_00302c20:\n                if ((uVar2 == 1) && (local_48 == 0)) {\n                  param_1[5] = (long)puStack_50;\n                }\n                goto LAB_00302750;\n              }\n              if ((uVar2 != 0x6e) && (uVar2 != 0x2007)) {\njoined_r0x00302ce3:\n                if (uVar2 == 0x47) {\n                  param_1[0x10] = (long)puStack_50;\n                }\n                goto LAB_00302750;\n              }\nLAB_00302fb5:\n              if (uVar8 == 8) {\nLAB_003029eb:\n                param_1[0xd] = (long)puStack_50;\n              }\n              else {\nLAB_00302fbe:\n                if (uVar8 == 0xe) goto LAB_00302fd0;\n              }\n              goto LAB_00302750;\n            }\n          }\n          else {\n            if (0x15 < uVar8) {\n              if (uVar8 != 0x19) {\n                if (uVar8 < 0x1a) {\n                  if (uVar8 == 0x17) {\n                    lVar10 = *param_1;\n                    if (*(int *)(lVar10 + 0x60) == 4) {\n                      uVar9 = FUN_00305610(lVar10,&local_70);\n                      local_60 = (uint *)(ulong)uVar9;\n                    }\n                    else {\n                      plVar17 = *(long **)(lVar10 + 0x10);\nLAB_00302fe7:\n                      pcVar3 = *(code **)(*plVar17 + 0x18);\n                      if (pcVar3 == FUN_001b8d10) {\n                        cVar6 = (**(code **)(*plVar17 + 0x1d0))();\n                      }\n                      else {\n                        cVar6 = (*pcVar3)();\n                      }\n                      local_60 = *(uint **)local_70;\n                      if (cVar6 != '\0') {\n                        local_60 = (uint *)((ulong)local_60 >> 0x38 |\n                                            ((ulong)local_60 & 0xff000000000000) >> 0x28 |\n                                            ((ulong)local_60 & 0xff0000000000) >> 0x18 |\n                                            ((ulong)local_60 & 0xff00000000) >> 8 |\n                                            ((ulong)local_60 & 0xff000000) << 8 |\n                                            ((ulong)local_60 & 0xff0000) << 0x18 |\n                                            ((ulong)local_60 & 0xff00) << 0x28 |\n                                           (long)local_60 << 0x38);\n                      }\n                      local_70 = local_70 + 2;\n                    }\nLAB_00303035:\n                    local_48 = FUN_00301dc0(*param_1,pbVar15,&local_60);\n                    puStack_50 = local_60;\n                    goto joined_r0x00303052;\n                  }\n                  if (uVar8 != 0x18) {\n                    return 0;\n                  }\nLAB_00302a09:\n                  bVar1 = (byte)*local_70;\n                  uVar9 = (uint)bVar1;\n                  puVar11 = (uint *)((long)local_70 + 1);\n                  if ((char)bVar1 < '\0') {\n                    uVar9 = FUN_002112d0(puVar11,&local_68,bVar1);\n                    puVar11 = (uint *)((long)local_70 + local_68);\n                  }\n                  else {\n                    local_68 = 1;\n                  }\n                  local_70 = (uint *)((long)local_70 + uVar9 + local_68);\n                  puStack_50 = puVar11;\n                  local_48 = uVar9;\n                }\n                else {\n                  if (uVar8 == 0x20) {\n                    pcVar3 = *(code **)(**(long **)(*param_1 + 0x10) + 0x18);\n                    if (pcVar3 == FUN_001b8d10) {\n                      cVar6 = (**(code **)(**(long **)(*param_1 + 0x10) + 0x1d0))();\n                    }\n                    else {\n                      cVar6 = (*pcVar3)();\n                    }\n                    puStack_50 = *(uint **)local_70;\n                    if (cVar6 != '\0') {\n                      puStack_50 = (uint *)((ulong)puStack_50 >> 0x38 |\n                                            ((ulong)puStack_50 & 0xff000000000000) >> 0x28 |\n                                            ((ulong)puStack_50 & 0xff0000000000) >> 0x18 |\n                                            ((ulong)puStack_50 & 0xff00000000) >> 8 |\n                                            ((ulong)puStack_50 & 0xff000000) << 8 |\n                                            ((ulong)puStack_50 & 0xff0000) << 0x18 |\n                                            ((ulong)puStack_50 & 0xff00) << 0x28 |\n                                           (long)puStack_50 << 0x38);\n                    }\n                    local_70 = local_70 + 2;\n                    goto LAB_00302ea9;\n                  }\n                  if (uVar8 < 0x20) {\n                    return 0;\n                  }\n                  if (1 < uVar8 - 0x1f01) {\n                    return 0;\n                  }\nLAB_00302bcd:\n                  bVar1 = (byte)*local_70;\n                  if ((char)bVar1 < '\0') {\n                    puStack_50 = (uint *)FUN_002112d0((uint *)((long)local_70 + 1),&local_68,bVar1);\n                    local_70 = (uint *)(local_68 + (long)local_70);\n                  }\n                  else {\n                    local_68 = 1;\n                    local_70 = (uint *)((long)local_70 + 1);\n                    puStack_50 = (uint *)(ulong)bVar1;\n                  }\n                }\nLAB_00302f92:\n                if (uVar2 == 0x31) goto LAB_00302750;\n                if (0x31 < uVar2) {\n                  if ((uVar2 == 0x6e) || (uVar2 == 0x2007)) goto LAB_00302fb5;\n                  goto LAB_00302750;\n                }\n                goto LAB_00302e3e;\n              }\n              puStack_50 = (uint *)0x1;\nLAB_00302ea9:\n              if (((uVar2 == 0x31) || (0x31 < uVar2)) || (uVar2 != 3)) goto LAB_00302750;\nLAB_00302e52:\n              if (uVar8 == 8) {\nLAB_003029c7:\n                param_1[0xb] = (long)puStack_50;\n              }\n              else if (uVar8 == 0xe) goto LAB_00302f64;\n              goto LAB_00302750;\n            }\n            if (uVar8 != 0x11) {\n              if (0x11 < uVar8) {\n                if (uVar8 == 0x13) {\n                  uVar9 = FUN_00305610(*param_1,&local_70);\n                  local_60 = (uint *)(ulong)uVar9;\n                  goto LAB_00303035;\n                }\n                if (0x13 < uVar8) {\n                  plVar17 = *(long **)(*param_1 + 0x10);\n                  goto LAB_00302fe7;\n                }\n                pcVar3 = *(code **)(**(long **)(*param_1 + 0x10) + 0x18);\n                if (pcVar3 == FUN_001b8d10) {\n                  cVar6 = (**(code **)(**(long **)(*param_1 + 0x10) + 0x1d0))();\n                }\n                else {\n                  cVar6 = (*pcVar3)();\n                }\n                uVar5 = (ushort)*local_70;\n                if (cVar6 != '\0') {\n                  uVar5 = CONCAT11((byte)*local_70,*(byte *)((long)local_70 + 1));\n                }\n                local_70 = (uint *)((long)local_70 + 2);\n                puStack_50 = (uint *)(ulong)uVar5;\n                goto joined_r0x00303052;\n              }\n              if (uVar8 == 0xf) goto LAB_00302bcd;\n              if (uVar8 != 0x10) {\n                return 0;\n              }\n              lVar10 = *param_1;\n              iVar7 = *(int *)(lVar10 + 100);\n              if (2 < *(uint *)(lVar10 + 0x68)) {\n                iVar7 = *(int *)(lVar10 + 0x60);\n              }\n              if (iVar7 != 4) goto LAB_00302a71;\nLAB_00302e7d:\n              uVar8 = FUN_00305610(lVar10,&local_70);\n              local_60 = (uint *)(ulong)uVar8;\nLAB_00302abe:\n              local_48 = FUN_00301dc0(*param_1,pbVar15,&local_60);\n              puStack_50 = local_60;\n              if (uVar2 == 0x31) goto LAB_00302965;\n              if (0x31 < uVar2) goto joined_r0x00302ccc;\n              goto LAB_00302c20;\n            }\n            puVar11 = (uint *)((long)local_70 + 1);\n            puStack_50 = (uint *)(ulong)(byte)*local_70;\n            local_70 = puVar11;\n            if (uVar2 != 0x31) {\n              if (uVar2 < 0x32) {\n                if (uVar2 == 1) {\n                  param_1[5] = (long)puStack_50;\n                }\n                goto LAB_00302750;\n              }\njoined_r0x00302ccc:\n              if ((uVar2 == 0x6e) || (uVar2 == 0x2007)) goto LAB_00302750;\n              goto joined_r0x00302ce3;\n            }\n          }" (if "if") (parenthesized_expression "(uVar8 == 0x15)" (( "(") (binary_expression "uVar8 == 0x15" (identifier "uVar8") (== "==") (number_literal "0x15")) () ")")) (compound_statement "{\n            bVar1 = (byte)*local_70;\n            if ((char)bVar1 < '\0') {\n              puStack_50 = (uint *)FUN_002112d0((uint *)((long)local_70 + 1),&local_68,bVar1);\n              local_70 = (uint *)(local_68 + (long)local_70);\n            }\n            else {\n              local_68 = 1;\n              local_70 = (uint *)((long)local_70 + 1);\n              puStack_50 = (uint *)(ulong)bVar1;\n            }\njoined_r0x00303052:\n            if (uVar2 != 0x31) {\n              if (uVar2 < 0x32) {\nLAB_00302c20:\n                if ((uVar2 == 1) && (local_48 == 0)) {\n                  param_1[5] = (long)puStack_50;\n                }\n                goto LAB_00302750;\n              }\n              if ((uVar2 != 0x6e) && (uVar2 != 0x2007)) {\njoined_r0x00302ce3:\n                if (uVar2 == 0x47) {\n                  param_1[0x10] = (long)puStack_50;\n                }\n                goto LAB_00302750;\n              }\nLAB_00302fb5:\n              if (uVar8 == 8) {\nLAB_003029eb:\n                param_1[0xd] = (long)puStack_50;\n              }\n              else {\nLAB_00302fbe:\n                if (uVar8 == 0xe) goto LAB_00302fd0;\n              }\n              goto LAB_00302750;\n            }\n          }" ({ "{") (expression_statement "bVar1 = (byte)*local_70;" (assignment_expression "bVar1 = (byte)*local_70" (identifier "bVar1") (= "=") (binary_expression "(byte)*local_70" (parenthesized_expression "(byte)" (( "(") (identifier "byte") () ")")) (* "*") (identifier "local_70"))) (; ";")) (if_statement "if ((char)bVar1 < '\0') {\n              puStack_50 = (uint *)FUN_002112d0((uint *)((long)local_70 + 1),&local_68,bVar1);\n              local_70 = (uint *)(local_68 + (long)local_70);\n            }\n            else {\n              local_68 = 1;\n              local_70 = (uint *)((long)local_70 + 1);\n              puStack_50 = (uint *)(ulong)bVar1;\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              puStack_50 = (uint *)FUN_002112d0((uint *)((long)local_70 + 1),&local_68,bVar1);\n              local_70 = (uint *)(local_68 + (long)local_70);\n            }" ({ "{") (expression_statement "puStack_50 = (uint *)FUN_002112d0((uint *)((long)local_70 + 1),&local_68,bVar1);" (assignment_expression "puStack_50 = (uint *)FUN_002112d0((uint *)((long)local_70 + 1),&local_68,bVar1)" (identifier "puStack_50") (= "=") (cast_expression "(uint *)FUN_002112d0((uint *)((long)local_70 + 1),&local_68,bVar1)" (( "(") (type_descriptor "uint *" (type_identifier "uint") (abstract_pointer_declarator "*" (* "*"))) () ")") (call_expression "FUN_002112d0((uint *)((long)local_70 + 1),&local_68,bVar1)" (identifier "FUN_002112d0") (argument_list "((uint *)((long)local_70 + 1),&local_68,bVar1)" (( "(") (cast_expression "(uint *)((long)local_70 + 1)" (( "(") (type_descriptor "uint *" (type_identifier "uint") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "((long)local_70 + 1)" (( "(") (binary_expression "(long)local_70 + 1" (cast_expression "(long)local_70" (( "(") (type_descriptor "long" (sized_type_specifier "long" (long "long"))) () ")") (identifier "local_70")) (+ "+") (number_literal "1")) () ")"))) (, ",") (pointer_expression "&local_68" (& "&") (identifier "local_68")) (, ",") (identifier "bVar1") () ")"))))) (; ";")) (expression_statement "local_70 = (uint *)(local_68 + (long)local_70);" (assignment_expression "local_70 = (uint *)(local_68 + (long)local_70)" (identifier "local_70") (= "=") (cast_expression "(uint *)(local_68 + (long)local_70)" (( "(") (type_descriptor "uint *" (type_identifier "uint") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(local_68 + (long)local_70)" (( "(") (binary_expression "local_68 + (long)local_70" (identifier "local_68") (+ "+") (cast_expression "(long)local_70" (( "(") (type_descriptor "long" (sized_type_specifier "long" (long "long"))) () ")") (identifier "local_70"))) () ")")))) (; ";")) (} "}")) (else_clause "else {\n              local_68 = 1;\n              local_70 = (uint *)((long)local_70 + 1);\n              puStack_50 = (uint *)(ulong)bVar1;\n            }" (else "else") (compound_statement "{\n              local_68 = 1;\n              local_70 = (uint *)((long)local_70 + 1);\n              puStack_50 = (uint *)(ulong)bVar1;\n            }" ({ "{") (expression_statement "local_68 = 1;" (assignment_expression "local_68 = 1" (identifier "local_68") (= "=") (number_literal "1")) (; ";")) (expression_statement "local_70 = (uint *)((long)local_70 + 1);" (assignment_expression "local_70 = (uint *)((long)local_70 + 1)" (identifier "local_70") (= "=") (cast_expression "(uint *)((long)local_70 + 1)" (( "(") (type_descriptor "uint *" (type_identifier "uint") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "((long)local_70 + 1)" (( "(") (binary_expression "(long)local_70 + 1" (cast_expression "(long)local_70" (( "(") (type_descriptor "long" (sized_type_specifier "long" (long "long"))) () ")") (identifier "local_70")) (+ "+") (number_literal "1")) () ")")))) (; ";")) (expression_statement "puStack_50 = (uint *)(ulong)bVar1;" (assignment_expression "puStack_50 = (uint *)(ulong)bVar1" (identifier "puStack_50") (= "=") (cast_expression "(uint *)(ulong)bVar1" (( "(") (type_descriptor "uint *" (type_identifier "uint") (abstract_pointer_declarator "*" (* "*"))) () ")") (cast_expression "(ulong)bVar1" (( "(") (type_descriptor "ulong" (type_identifier "ulong")) () ")") (identifier "bVar1")))) (; ";")) (} "}")))) (labeled_statement "joined_r0x00303052:\n            if (uVar2 != 0x31) {\n              if (uVar2 < 0x32) {\nLAB_00302c20:\n                if ((uVar2 == 1) && (local_48 == 0)) {\n                  param_1[5] = (long)puStack_50;\n                }\n                goto LAB_00302750;\n              }\n              if ((uVar2 != 0x6e) && (uVar2 != 0x2007)) {\njoined_r0x00302ce3:\n                if (uVar2 == 0x47) {\n                  param_1[0x10] = (long)puStack_50;\n                }\n                goto LAB_00302750;\n              }\nLAB_00302fb5:\n              if (uVar8 == 8) {\nLAB_003029eb:\n                param_1[0xd] = (long)puStack_50;\n              }\n              else {\nLAB_00302fbe:\n                if (uVar8 == 0xe) goto LAB_00302fd0;\n              }\n              goto LAB_00302750;\n            }" (statement_identifier "joined_r0x00303052") (: ":") (if_statement "if (uVar2 != 0x31) {\n              if (uVar2 < 0x32) {\nLAB_00302c20:\n                if ((uVar2 == 1) && (local_48 == 0)) {\n                  param_1[5] = (long)puStack_50;\n                }\n                goto LAB_00302750;\n              }\n              if ((uVar2 != 0x6e) && (uVar2 != 0x2007)) {\njoined_r0x00302ce3:\n                if (uVar2 == 0x47) {\n                  param_1[0x10] = (long)puStack_50;\n                }\n                goto LAB_00302750;\n              }\nLAB_00302fb5:\n              if (uVar8 == 8) {\nLAB_003029eb:\n                param_1[0xd] = (long)puStack_50;\n              }\n              else {\nLAB_00302fbe:\n                if (uVar8 == 0xe) goto LAB_00302fd0;\n              }\n              goto LAB_00302750;\n            }" (if "if") (parenthesized_expression "(uVar2 != 0x31)" (( "(") (binary_expression "uVar2 != 0x31" (identifier "uVar2") (!= "!=") (number_literal "0x31")) () ")")) (compound_statement "{\n              if (uVar2 < 0x32) {\nLAB_00302c20:\n                if ((uVar2 == 1) && (local_48 == 0)) {\n                  param_1[5] = (long)puStack_50;\n                }\n                goto LAB_00302750;\n              }\n              if ((uVar2 != 0x6e) && (uVar2 != 0x2007)) {\njoined_r0x00302ce3:\n                if (uVar2 == 0x47) {\n                  param_1[0x10] = (long)puStack_50;\n                }\n                goto LAB_00302750;\n              }\nLAB_00302fb5:\n              if (uVar8 == 8) {\nLAB_003029eb:\n                param_1[0xd] = (long)puStack_50;\n              }\n              else {\nLAB_00302fbe:\n                if (uVar8 == 0xe) goto LAB_00302fd0;\n              }\n              goto LAB_00302750;\n            }" ({ "{") (if_statement "if (uVar2 < 0x32) {\nLAB_00302c20:\n                if ((uVar2 == 1) && (local_48 == 0)) {\n                  param_1[5] = (long)puStack_50;\n                }\n                goto LAB_00302750;\n              }" (if "if") (parenthesized_expression "(uVar2 < 0x32)" (( "(") (binary_expression "uVar2 < 0x32" (identifier "uVar2") (< "<") (number_literal "0x32")) () ")")) (compound_statement "{\nLAB_00302c20:\n                if ((uVar2 == 1) && (local_48 == 0)) {\n                  param_1[5] = (long)puStack_50;\n                }\n                goto LAB_00302750;\n              }" ({ "{") (labeled_statement "LAB_00302c20:\n                if ((uVar2 == 1) && (local_48 == 0)) {\n                  param_1[5] = (long)puStack_50;\n                }" (statement_identifier "LAB_00302c20") (: ":") (if_statement "if ((uVar2 == 1) && (local_48 == 0)) {\n                  param_1[5] = (long)puStack_50;\n                }" (if "if") (parenthesized_expression "((uVar2 == 1) && (local_48 == 0))" (( "(") (binary_expression "(uVar2 == 1) && (local_48 == 0)" (parenthesized_expression "(uVar2 == 1)" (( "(") (binary_expression "uVar2 == 1" (identifier "uVar2") (== "==") (number_literal "1")) () ")")) (&& "&&") (parenthesized_expression "(local_48 == 0)" (( "(") (binary_expression "local_48 == 0" (identifier "local_48") (== "==") (number_literal "0")) () ")"))) () ")")) (compound_statement "{\n                  param_1[5] = (long)puStack_50;\n                }" ({ "{") (expression_statement "param_1[5] = (long)puStack_50;" (assignment_expression "param_1[5] = (long)puStack_50" (subscript_expression "param_1[5]" (identifier "param_1") ([ "[") (number_literal "5") (] "]")) (= "=") (cast_expression "(long)puStack_50" (( "(") (type_descriptor "long" (sized_type_specifier "long" (long "long"))) () ")") (identifier "puStack_50"))) (; ";")) (} "}")))) (goto_statement "goto LAB_00302750;" (goto "goto") (statement_identifier "LAB_00302750") (; ";")) (} "}"))) (if_statement "if ((uVar2 != 0x6e) && (uVar2 != 0x2007)) {\njoined_r0x00302ce3:\n                if (uVar2 == 0x47) {\n                  param_1[0x10] = (long)puStack_50;\n                }\n                goto LAB_00302750;\n              }" (if "if") (parenthesized_expression "((uVar2 != 0x6e) && (uVar2 != 0x2007))" (( "(") (binary_expression "(uVar2 != 0x6e) && (uVar2 != 0x2007)" (parenthesized_expression "(uVar2 != 0x6e)" (( "(") (binary_expression "uVar2 != 0x6e" (identifier "uVar2") (!= "!=") (number_literal "0x6e")) () ")")) (&& "&&") (parenthesized_expression "(uVar2 != 0x2007)" (( "(") (binary_expression "uVar2 != 0x2007" (identifier "uVar2") (!= "!=") (number_literal "0x2007")) () ")"))) () ")")) (compound_statement "{\njoined_r0x00302ce3:\n                if (uVar2 == 0x47) {\n                  param_1[0x10] = (long)puStack_50;\n                }\n                goto LAB_00302750;\n              }" ({ "{") (labeled_statement "joined_r0x00302ce3:\n                if (uVar2 == 0x47) {\n                  param_1[0x10] = (long)puStack_50;\n                }" (statement_identifier "joined_r0x00302ce3") (: ":") (if_statement "if (uVar2 == 0x47) {\n                  param_1[0x10] = (long)puStack_50;\n                }" (if "if") (parenthesized_expression "(uVar2 == 0x47)" (( "(") (binary_expression "uVar2 == 0x47" (identifier "uVar2") (== "==") (number_literal "0x47")) () ")")) (compound_statement "{\n                  param_1[0x10] = (long)puStack_50;\n                }" ({ "{") (expression_statement "param_1[0x10] = (long)puStack_50;" (assignment_expression "param_1[0x10] = (long)puStack_50" (subscript_expression "param_1[0x10]" (identifier "param_1") ([ "[") (number_literal "0x10") (] "]")) (= "=") (cast_expression "(long)puStack_50" (( "(") (type_descriptor "long" (sized_type_specifier "long" (long "long"))) () ")") (identifier "puStack_50"))) (; ";")) (} "}")))) (goto_statement "goto LAB_00302750;" (goto "goto") (statement_identifier "LAB_00302750") (; ";")) (} "}"))) (labeled_statement "LAB_00302fb5:\n              if (uVar8 == 8) {\nLAB_003029eb:\n                param_1[0xd] = (long)puStack_50;\n              }\n              else {\nLAB_00302fbe:\n                if (uVar8 == 0xe) goto LAB_00302fd0;\n              }" (statement_identifier "LAB_00302fb5") (: ":") (if_statement "if (uVar8 == 8) {\nLAB_003029eb:\n                param_1[0xd] = (long)puStack_50;\n              }\n              else {\nLAB_00302fbe:\n                if (uVar8 == 0xe) goto LAB_00302fd0;\n              }" (if "if") (parenthesized_expression "(uVar8 == 8)" (( "(") (binary_expression "uVar8 == 8" (identifier "uVar8") (== "==") (number_literal "8")) () ")")) (compound_statement "{\nLAB_003029eb:\n                param_1[0xd] = (long)puStack_50;\n              }" ({ "{") (labeled_statement "LAB_003029eb:\n                param_1[0xd] = (long)puStack_50;" (statement_identifier "LAB_003029eb") (: ":") (expression_statement "param_1[0xd] = (long)puStack_50;" (assignment_expression "param_1[0xd] = (long)puStack_50" (subscript_expression "param_1[0xd]" (identifier "param_1") ([ "[") (number_literal "0xd") (] "]")) (= "=") (cast_expression "(long)puStack_50" (( "(") (type_descriptor "long" (sized_type_specifier "long" (long "long"))) () ")") (identifier "puStack_50"))) (; ";"))) (} "}")) (else_clause "else {\nLAB_00302fbe:\n                if (uVar8 == 0xe) goto LAB_00302fd0;\n              }" (else "else") (compound_statement "{\nLAB_00302fbe:\n                if (uVar8 == 0xe) goto LAB_00302fd0;\n              }" ({ "{") (labeled_statement "LAB_00302fbe:\n                if (uVar8 == 0xe) goto LAB_00302fd0;" (statement_identifier "LAB_00302fbe") (: ":") (if_statement "if (uVar8 == 0xe) goto LAB_00302fd0;" (if "if") (parenthesized_expression "(uVar8 == 0xe)" (( "(") (binary_expression "uVar8 == 0xe" (identifier "uVar8") (== "==") (number_literal "0xe")) () ")")) (goto_statement "goto LAB_00302fd0;" (goto "goto") (statement_identifier "LAB_00302fd0") (; ";")))) (} "}"))))) (goto_statement "goto LAB_00302750;" (goto "goto") (statement_identifier "LAB_00302750") (; ";")) (} "}")))) (} "}")) (else_clause "else {\n            if (0x15 < uVar8) {\n              if (uVar8 != 0x19) {\n                if (uVar8 < 0x1a) {\n                  if (uVar8 == 0x17) {\n                    lVar10 = *param_1;\n                    if (*(int *)(lVar10 + 0x60) == 4) {\n                      uVar9 = FUN_00305610(lVar10,&local_70);\n                      local_60 = (uint *)(ulong)uVar9;\n                    }\n                    else {\n                      plVar17 = *(long **)(lVar10 + 0x10);\nLAB_00302fe7:\n                      pcVar3 = *(code **)(*plVar17 + 0x18);\n                      if (pcVar3 == FUN_001b8d10) {\n                        cVar6 = (**(code **)(*plVar17 + 0x1d0))();\n                      }\n                      else {\n                        cVar6 = (*pcVar3)();\n                      }\n                      local_60 = *(uint **)local_70;\n                      if (cVar6 != '\0') {\n                        local_60 = (uint *)((ulong)local_60 >> 0x38 |\n                                            ((ulong)local_60 & 0xff000000000000) >> 0x28 |\n                                            ((ulong)local_60 & 0xff0000000000) >> 0x18 |\n                                            ((ulong)local_60 & 0xff00000000) >> 8 |\n                                            ((ulong)local_60 & 0xff000000) << 8 |\n                                            ((ulong)local_60 & 0xff0000) << 0x18 |\n                                            ((ulong)local_60 & 0xff00) << 0x28 |\n                                           (long)local_60 << 0x38);\n                      }\n                      local_70 = local_70 + 2;\n                    }\nLAB_00303035:\n                    local_48 = FUN_00301dc0(*param_1,pbVar15,&local_60);\n                    puStack_50 = local_60;\n                    goto joined_r0x00303052;\n                  }\n                  if (uVar8 != 0x18) {\n                    return 0;\n                  }\nLAB_00302a09:\n                  bVar1 = (byte)*local_70;\n                  uVar9 = (uint)bVar1;\n                  puVar11 = (uint *)((long)local_70 + 1);\n                  if ((char)bVar1 < '\0') {\n                    uVar9 = FUN_002112d0(puVar11,&local_68,bVar1);\n                    puVar11 = (uint *)((long)local_70 + local_68);\n                  }\n                  else {\n                    local_68 = 1;\n                  }\n                  local_70 = (uint *)((long)local_70 + uVar9 + local_68);\n                  puStack_50 = puVar11;\n                  local_48 = uVar9;\n                }\n                else {\n                  if (uVar8 == 0x20) {\n                    pcVar3 = *(code **)(**(long **)(*param_1 + 0x10) + 0x18);\n                    if (pcVar3 == FUN_001b8d10) {\n                      cVar6 = (**(code **)(**(long **)(*param_1 + 0x10) + 0x1d0))();\n                    }\n                    else {\n                      cVar6 = (*pcVar3)();\n                    }\n                    puStack_50 = *(uint **)local_70;\n                    if (cVar6 != '\0') {\n                      puStack_50 = (uint *)((ulong)puStack_50 >> 0x38 |\n                                            ((ulong)puStack_50 & 0xff000000000000) >> 0x28 |\n                                            ((ulong)puStack_50 & 0xff0000000000) >> 0x18 |\n                                            ((ulong)puStack_50 & 0xff00000000) >> 8 |\n                                            ((ulong)puStack_50 & 0xff000000) << 8 |\n                                            ((ulong)puStack_50 & 0xff0000) << 0x18 |\n                                            ((ulong)puStack_50 & 0xff00) << 0x28 |\n                                           (long)puStack_50 << 0x38);\n                    }\n                    local_70 = local_70 + 2;\n                    goto LAB_00302ea9;\n                  }\n                  if (uVar8 < 0x20) {\n                    return 0;\n                  }\n                  if (1 < uVar8 - 0x1f01) {\n                    return 0;\n                  }\nLAB_00302bcd:\n                  bVar1 = (byte)*local_70;\n                  if ((char)bVar1 < '\0') {\n                    puStack_50 = (uint *)FUN_002112d0((uint *)((long)local_70 + 1),&local_68,bVar1);\n                    local_70 = (uint *)(local_68 + (long)local_70);\n                  }\n                  else {\n                    local_68 = 1;\n                    local_70 = (uint *)((long)local_70 + 1);\n                    puStack_50 = (uint *)(ulong)bVar1;\n                  }\n                }\nLAB_00302f92:\n                if (uVar2 == 0x31) goto LAB_00302750;\n                if (0x31 < uVar2) {\n                  if ((uVar2 == 0x6e) || (uVar2 == 0x2007)) goto LAB_00302fb5;\n                  goto LAB_00302750;\n                }\n                goto LAB_00302e3e;\n              }\n              puStack_50 = (uint *)0x1;\nLAB_00302ea9:\n              if (((uVar2 == 0x31) || (0x31 < uVar2)) || (uVar2 != 3)) goto LAB_00302750;\nLAB_00302e52:\n              if (uVar8 == 8) {\nLAB_003029c7:\n                param_1[0xb] = (long)puStack_50;\n              }\n              else if (uVar8 == 0xe) goto LAB_00302f64;\n              goto LAB_00302750;\n            }\n            if (uVar8 != 0x11) {\n              if (0x11 < uVar8) {\n                if (uVar8 == 0x13) {\n                  uVar9 = FUN_00305610(*param_1,&local_70);\n                  local_60 = (uint *)(ulong)uVar9;\n                  goto LAB_00303035;\n                }\n                if (0x13 < uVar8) {\n                  plVar17 = *(long **)(*param_1 + 0x10);\n                  goto LAB_00302fe7;\n                }\n                pcVar3 = *(code **)(**(long **)(*param_1 + 0x10) + 0x18);\n                if (pcVar3 == FUN_001b8d10) {\n                  cVar6 = (**(code **)(**(long **)(*param_1 + 0x10) + 0x1d0))();\n                }\n                else {\n                  cVar6 = (*pcVar3)();\n                }\n                uVar5 = (ushort)*local_70;\n                if (cVar6 != '\0') {\n                  uVar5 = CONCAT11((byte)*local_70,*(byte *)((long)local_70 + 1));\n                }\n                local_70 = (uint *)((long)local_70 + 2);\n                puStack_50 = (uint *)(ulong)uVar5;\n                goto joined_r0x00303052;\n              }\n              if (uVar8 == 0xf) goto LAB_00302bcd;\n              if (uVar8 != 0x10) {\n                return 0;\n              }\n              lVar10 = *param_1;\n              iVar7 = *(int *)(lVar10 + 100);\n              if (2 < *(uint *)(lVar10 + 0x68)) {\n                iVar7 = *(int *)(lVar10 + 0x60);\n              }\n              if (iVar7 != 4) goto LAB_00302a71;\nLAB_00302e7d:\n              uVar8 = FUN_00305610(lVar10,&local_70);\n              local_60 = (uint *)(ulong)uVar8;\nLAB_00302abe:\n              local_48 = FUN_00301dc0(*param_1,pbVar15,&local_60);\n              puStack_50 = local_60;\n              if (uVar2 == 0x31) goto LAB_00302965;\n              if (0x31 < uVar2) goto joined_r0x00302ccc;\n              goto LAB_00302c20;\n            }\n            puVar11 = (uint *)((long)local_70 + 1);\n            puStack_50 = (uint *)(ulong)(byte)*local_70;\n            local_70 = puVar11;\n            if (uVar2 != 0x31) {\n              if (uVar2 < 0x32) {\n                if (uVar2 == 1) {\n                  param_1[5] = (long)puStack_50;\n                }\n                goto LAB_00302750;\n              }\njoined_r0x00302ccc:\n              if ((uVar2 == 0x6e) || (uVar2 == 0x2007)) goto LAB_00302750;\n              goto joined_r0x00302ce3;\n            }\n          }" (else "else") (compound_statement "{\n            if (0x15 < uVar8) {\n              if (uVar8 != 0x19) {\n                if (uVar8 < 0x1a) {\n                  if (uVar8 == 0x17) {\n                    lVar10 = *param_1;\n                    if (*(int *)(lVar10 + 0x60) == 4) {\n                      uVar9 = FUN_00305610(lVar10,&local_70);\n                      local_60 = (uint *)(ulong)uVar9;\n                    }\n                    else {\n                      plVar17 = *(long **)(lVar10 + 0x10);\nLAB_00302fe7:\n                      pcVar3 = *(code **)(*plVar17 + 0x18);\n                      if (pcVar3 == FUN_001b8d10) {\n                        cVar6 = (**(code **)(*plVar17 + 0x1d0))();\n                      }\n                      else {\n                        cVar6 = (*pcVar3)();\n                      }\n                      local_60 = *(uint **)local_70;\n                      if (cVar6 != '\0') {\n                        local_60 = (uint *)((ulong)local_60 >> 0x38 |\n                                            ((ulong)local_60 & 0xff000000000000) >> 0x28 |\n                                            ((ulong)local_60 & 0xff0000000000) >> 0x18 |\n                                            ((ulong)local_60 & 0xff00000000) >> 8 |\n                                            ((ulong)local_60 & 0xff000000) << 8 |\n                                            ((ulong)local_60 & 0xff0000) << 0x18 |\n                                            ((ulong)local_60 & 0xff00) << 0x28 |\n                                           (long)local_60 << 0x38);\n                      }\n                      local_70 = local_70 + 2;\n                    }\nLAB_00303035:\n                    local_48 = FUN_00301dc0(*param_1,pbVar15,&local_60);\n                    puStack_50 = local_60;\n                    goto joined_r0x00303052;\n                  }\n                  if (uVar8 != 0x18) {\n                    return 0;\n                  }\nLAB_00302a09:\n                  bVar1 = (byte)*local_70;\n                  uVar9 = (uint)bVar1;\n                  puVar11 = (uint *)((long)local_70 + 1);\n                  if ((char)bVar1 < '\0') {\n                    uVar9 = FUN_002112d0(puVar11,&local_68,bVar1);\n                    puVar11 = (uint *)((long)local_70 + local_68);\n                  }\n                  else {\n                    local_68 = 1;\n                  }\n                  local_70 = (uint *)((long)local_70 + uVar9 + local_68);\n                  puStack_50 = puVar11;\n                  local_48 = uVar9;\n                }\n                else {\n                  if (uVar8 == 0x20) {\n                    pcVar3 = *(code **)(**(long **)(*param_1 + 0x10) + 0x18);\n                    if (pcVar3 == FUN_001b8d10) {\n                      cVar6 = (**(code **)(**(long **)(*param_1 + 0x10) + 0x1d0))();\n                    }\n                    else {\n                      cVar6 = (*pcVar3)();\n                    }\n                    puStack_50 = *(uint **)local_70;\n                    if (cVar6 != '\0') {\n                      puStack_50 = (uint *)((ulong)puStack_50 >> 0x38 |\n                                            ((ulong)puStack_50 & 0xff000000000000) >> 0x28 |\n                                            ((ulong)puStack_50 & 0xff0000000000) >> 0x18 |\n                                            ((ulong)puStack_50 & 0xff00000000) >> 8 |\n                                            ((ulong)puStack_50 & 0xff000000) << 8 |\n                                            ((ulong)puStack_50 & 0xff0000) << 0x18 |\n                                            ((ulong)puStack_50 & 0xff00) << 0x28 |\n                                           (long)puStack_50 << 0x38);\n                    }\n                    local_70 = local_70 + 2;\n                    goto LAB_00302ea9;\n                  }\n                  if (uVar8 < 0x20) {\n                    return 0;\n                  }\n                  if (1 < uVar8 - 0x1f01) {\n                    return 0;\n                  }\nLAB_00302bcd:\n                  bVar1 = (byte)*local_70;\n                  if ((char)bVar1 < '\0') {\n                    puStack_50 = (uint *)FUN_002112d0((uint *)((long)local_70 + 1),&local_68,bVar1);\n                    local_70 = (uint *)(local_68 + (long)local_70);\n                  }\n                  else {\n                    local_68 = 1;\n                    local_70 = (uint *)((long)local_70 + 1);\n                    puStack_50 = (uint *)(ulong)bVar1;\n                  }\n                }\nLAB_00302f92:\n                if (uVar2 == 0x31) goto LAB_00302750;\n                if (0x31 < uVar2) {\n                  if ((uVar2 == 0x6e) || (uVar2 == 0x2007)) goto LAB_00302fb5;\n                  goto LAB_00302750;\n                }\n                goto LAB_00302e3e;\n              }\n              puStack_50 = (uint *)0x1;\nLAB_00302ea9:\n              if (((uVar2 == 0x31) || (0x31 < uVar2)) || (uVar2 != 3)) goto LAB_00302750;\nLAB_00302e52:\n              if (uVar8 == 8) {\nLAB_003029c7:\n                param_1[0xb] = (long)puStack_50;\n              }\n              else if (uVar8 == 0xe) goto LAB_00302f64;\n              goto LAB_00302750;\n            }\n            if (uVar8 != 0x11) {\n              if (0x11 < uVar8) {\n                if (uVar8 == 0x13) {\n                  uVar9 = FUN_00305610(*param_1,&local_70);\n                  local_60 = (uint *)(ulong)uVar9;\n                  goto LAB_00303035;\n                }\n                if (0x13 < uVar8) {\n                  plVar17 = *(long **)(*param_1 + 0x10);\n                  goto LAB_00302fe7;\n                }\n                pcVar3 = *(code **)(**(long **)(*param_1 + 0x10) + 0x18);\n                if (pcVar3 == FUN_001b8d10) {\n                  cVar6 = (**(code **)(**(long **)(*param_1 + 0x10) + 0x1d0))();\n                }\n                else {\n                  cVar6 = (*pcVar3)();\n                }\n                uVar5 = (ushort)*local_70;\n                if (cVar6 != '\0') {\n                  uVar5 = CONCAT11((byte)*local_70,*(byte *)((long)local_70 + 1));\n                }\n                local_70 = (uint *)((long)local_70 + 2);\n                puStack_50 = (uint *)(ulong)uVar5;\n                goto joined_r0x00303052;\n              }\n              if (uVar8 == 0xf) goto LAB_00302bcd;\n              if (uVar8 != 0x10) {\n                return 0;\n              }\n              lVar10 = *param_1;\n              iVar7 = *(int *)(lVar10 + 100);\n              if (2 < *(uint *)(lVar10 + 0x68)) {\n                iVar7 = *(int *)(lVar10 + 0x60);\n              }\n              if (iVar7 != 4) goto LAB_00302a71;\nLAB_00302e7d:\n              uVar8 = FUN_00305610(lVar10,&local_70);\n              local_60 = (uint *)(ulong)uVar8;\nLAB_00302abe:\n              local_48 = FUN_00301dc0(*param_1,pbVar15,&local_60);\n              puStack_50 = local_60;\n              if (uVar2 == 0x31) goto LAB_00302965;\n              if (0x31 < uVar2) goto joined_r0x00302ccc;\n              goto LAB_00302c20;\n            }\n            puVar11 = (uint *)((long)local_70 + 1);\n            puStack_50 = (uint *)(ulong)(byte)*local_70;\n            local_70 = puVar11;\n            if (uVar2 != 0x31) {\n              if (uVar2 < 0x32) {\n                if (uVar2 == 1) {\n                  param_1[5] = (long)puStack_50;\n                }\n                goto LAB_00302750;\n              }\njoined_r0x00302ccc:\n              if ((uVar2 == 0x6e) || (uVar2 == 0x2007)) goto LAB_00302750;\n              goto joined_r0x00302ce3;\n            }\n          }" ({ "{") (if_statement "if (0x15 < uVar8) {\n              if (uVar8 != 0x19) {\n                if (uVar8 < 0x1a) {\n                  if (uVar8 == 0x17) {\n                    lVar10 = *param_1;\n                    if (*(int *)(lVar10 + 0x60) == 4) {\n                      uVar9 = FUN_00305610(lVar10,&local_70);\n                      local_60 = (uint *)(ulong)uVar9;\n                    }\n                    else {\n                      plVar17 = *(long **)(lVar10 + 0x10);\nLAB_00302fe7:\n                      pcVar3 = *(code **)(*plVar17 + 0x18);\n                      if (pcVar3 == FUN_001b8d10) {\n                        cVar6 = (**(code **)(*plVar17 + 0x1d0))();\n                      }\n                      else {\n                        cVar6 = (*pcVar3)();\n                      }\n                      local_60 = *(uint **)local_70;\n                      if (cVar6 != '\0') {\n                        local_60 = (uint *)((ulong)local_60 >> 0x38 |\n                                            ((ulong)local_60 & 0xff000000000000) >> 0x28 |\n                                            ((ulong)local_60 & 0xff0000000000) >> 0x18 |\n                                            ((ulong)local_60 & 0xff00000000) >> 8 |\n                                            ((ulong)local_60 & 0xff000000) << 8 |\n                                            ((ulong)local_60 & 0xff0000) << 0x18 |\n                                            ((ulong)local_60 & 0xff00) << 0x28 |\n                                           (long)local_60 << 0x38);\n                      }\n                      local_70 = local_70 + 2;\n                    }\nLAB_00303035:\n                    local_48 = FUN_00301dc0(*param_1,pbVar15,&local_60);\n                    puStack_50 = local_60;\n                    goto joined_r0x00303052;\n                  }\n                  if (uVar8 != 0x18) {\n                    return 0;\n                  }\nLAB_00302a09:\n                  bVar1 = (byte)*local_70;\n                  uVar9 = (uint)bVar1;\n                  puVar11 = (uint *)((long)local_70 + 1);\n                  if ((char)bVar1 < '\0') {\n                    uVar9 = FUN_002112d0(puVar11,&local_68,bVar1);\n                    puVar11 = (uint *)((long)local_70 + local_68);\n                  }\n                  else {\n                    local_68 = 1;\n                  }\n                  local_70 = (uint *)((long)local_70 + uVar9 + local_68);\n                  puStack_50 = puVar11;\n                  local_48 = uVar9;\n                }\n                else {\n                  if (uVar8 == 0x20) {\n                    pcVar3 = *(code **)(**(long **)(*param_1 + 0x10) + 0x18);\n                    if (pcVar3 == FUN_001b8d10) {\n                      cVar6 = (**(code **)(**(long **)(*param_1 + 0x10) + 0x1d0))();\n                    }\n                    else {\n                      cVar6 = (*pcVar3)();\n                    }\n                    puStack_50 = *(uint **)local_70;\n                    if (cVar6 != '\0') {\n                      puStack_50 = (uint *)((ulong)puStack_50 >> 0x38 |\n                                            ((ulong)puStack_50 & 0xff000000000000) >> 0x28 |\n                                            ((ulong)puStack_50 & 0xff0000000000) >> 0x18 |\n                                            ((ulong)puStack_50 & 0xff00000000) >> 8 |\n                                            ((ulong)puStack_50 & 0xff000000) << 8 |\n                                            ((ulong)puStack_50 & 0xff0000) << 0x18 |\n                                            ((ulong)puStack_50 & 0xff00) << 0x28 |\n                                           (long)puStack_50 << 0x38);\n                    }\n                    local_70 = local_70 + 2;\n                    goto LAB_00302ea9;\n                  }\n                  if (uVar8 < 0x20) {\n                    return 0;\n                  }\n                  if (1 < uVar8 - 0x1f01) {\n                    return 0;\n                  }\nLAB_00302bcd:\n                  bVar1 = (byte)*local_70;\n                  if ((char)bVar1 < '\0') {\n                    puStack_50 = (uint *)FUN_002112d0((uint *)((long)local_70 + 1),&local_68,bVar1);\n                    local_70 = (uint *)(local_68 + (long)local_70);\n                  }\n                  else {\n                    local_68 = 1;\n                    local_70 = (uint *)((long)local_70 + 1);\n                    puStack_50 = (uint *)(ulong)bVar1;\n                  }\n                }\nLAB_00302f92:\n                if (uVar2 == 0x31) goto LAB_00302750;\n                if (0x31 < uVar2) {\n                  if ((uVar2 == 0x6e) || (uVar2 == 0x2007)) goto LAB_00302fb5;\n                  goto LAB_00302750;\n                }\n                goto LAB_00302e3e;\n              }\n              puStack_50 = (uint *)0x1;\nLAB_00302ea9:\n              if (((uVar2 == 0x31) || (0x31 < uVar2)) || (uVar2 != 3)) goto LAB_00302750;\nLAB_00302e52:\n              if (uVar8 == 8) {\nLAB_003029c7:\n                param_1[0xb] = (long)puStack_50;\n              }\n              else if (uVar8 == 0xe) goto LAB_00302f64;\n              goto LAB_00302750;\n            }" (if "if") (parenthesized_expression "(0x15 < uVar8)" (( "(") (binary_expression "0x15 < uVar8" (number_literal "0x15") (< "<") (identifier "uVar8")) () ")")) (compound_statement "{\n              if (uVar8 != 0x19) {\n                if (uVar8 < 0x1a) {\n                  if (uVar8 == 0x17) {\n                    lVar10 = *param_1;\n                    if (*(int *)(lVar10 + 0x60) == 4) {\n                      uVar9 = FUN_00305610(lVar10,&local_70);\n                      local_60 = (uint *)(ulong)uVar9;\n                    }\n                    else {\n                      plVar17 = *(long **)(lVar10 + 0x10);\nLAB_00302fe7:\n                      pcVar3 = *(code **)(*plVar17 + 0x18);\n                      if (pcVar3 == FUN_001b8d10) {\n                        cVar6 = (**(code **)(*plVar17 + 0x1d0))();\n                      }\n                      else {\n                        cVar6 = (*pcVar3)();\n                      }\n                      local_60 = *(uint **)local_70;\n                      if (cVar6 != '\0') {\n                        local_60 = (uint *)((ulong)local_60 >> 0x38 |\n                                            ((ulong)local_60 & 0xff000000000000) >> 0x28 |\n                                            ((ulong)local_60 & 0xff0000000000) >> 0x18 |\n                                            ((ulong)local_60 & 0xff00000000) >> 8 |\n                                            ((ulong)local_60 & 0xff000000) << 8 |\n                                            ((ulong)local_60 & 0xff0000) << 0x18 |\n                                            ((ulong)local_60 & 0xff00) << 0x28 |\n                                           (long)local_60 << 0x38);\n                      }\n                      local_70 = local_70 + 2;\n                    }\nLAB_00303035:\n                    local_48 = FUN_00301dc0(*param_1,pbVar15,&local_60);\n                    puStack_50 = local_60;\n                    goto joined_r0x00303052;\n                  }\n                  if (uVar8 != 0x18) {\n                    return 0;\n                  }\nLAB_00302a09:\n                  bVar1 = (byte)*local_70;\n                  uVar9 = (uint)bVar1;\n                  puVar11 = (uint *)((long)local_70 + 1);\n                  if ((char)bVar1 < '\0') {\n                    uVar9 = FUN_002112d0(puVar11,&local_68,bVar1);\n                    puVar11 = (uint *)((long)local_70 + local_68);\n                  }\n                  else {\n                    local_68 = 1;\n                  }\n                  local_70 = (uint *)((long)local_70 + uVar9 + local_68);\n                  puStack_50 = puVar11;\n                  local_48 = uVar9;\n                }\n                else {\n                  if (uVar8 == 0x20) {\n                    pcVar3 = *(code **)(**(long **)(*param_1 + 0x10) + 0x18);\n                    if (pcVar3 == FUN_001b8d10) {\n                      cVar6 = (**(code **)(**(long **)(*param_1 + 0x10) + 0x1d0))();\n                    }\n                    else {\n                      cVar6 = (*pcVar3)();\n                    }\n                    puStack_50 = *(uint **)local_70;\n                    if (cVar6 != '\0') {\n                      puStack_50 = (uint *)((ulong)puStack_50 >> 0x38 |\n                                            ((ulong)puStack_50 & 0xff000000000000) >> 0x28 |\n                                            ((ulong)puStack_50 & 0xff0000000000) >> 0x18 |\n                                            ((ulong)puStack_50 & 0xff00000000) >> 8 |\n                                            ((ulong)puStack_50 & 0xff000000) << 8 |\n                                            ((ulong)puStack_50 & 0xff0000) << 0x18 |\n                                            ((ulong)puStack_50 & 0xff00) << 0x28 |\n                                           (long)puStack_50 << 0x38);\n                    }\n                    local_70 = local_70 + 2;\n                    goto LAB_00302ea9;\n                  }\n                  if (uVar8 < 0x20) {\n                    return 0;\n                  }\n                  if (1 < uVar8 - 0x1f01) {\n                    return 0;\n                  }\nLAB_00302bcd:\n                  bVar1 = (byte)*local_70;\n                  if ((char)bVar1 < '\0') {\n                    puStack_50 = (uint *)FUN_002112d0((uint *)((long)local_70 + 1),&local_68,bVar1);\n                    local_70 = (uint *)(local_68 + (long)local_70);\n                  }\n                  else {\n                    local_68 = 1;\n                    local_70 = (uint *)((long)local_70 + 1);\n                    puStack_50 = (uint *)(ulong)bVar1;\n                  }\n                }\nLAB_00302f92:\n                if (uVar2 == 0x31) goto LAB_00302750;\n                if (0x31 < uVar2) {\n                  if ((uVar2 == 0x6e) || (uVar2 == 0x2007)) goto LAB_00302fb5;\n                  goto LAB_00302750;\n                }\n                goto LAB_00302e3e;\n              }\n              puStack_50 = (uint *)0x1;\nLAB_00302ea9:\n              if (((uVar2 == 0x31) || (0x31 < uVar2)) || (uVar2 != 3)) goto LAB_00302750;\nLAB_00302e52:\n              if (uVar8 == 8) {\nLAB_003029c7:\n                param_1[0xb] = (long)puStack_50;\n              }\n              else if (uVar8 == 0xe) goto LAB_00302f64;\n              goto LAB_00302750;\n            }" ({ "{") (if_statement "if (uVar8 != 0x19) {\n                if (uVar8 < 0x1a) {\n                  if (uVar8 == 0x17) {\n                    lVar10 = *param_1;\n                    if (*(int *)(lVar10 + 0x60) == 4) {\n                      uVar9 = FUN_00305610(lVar10,&local_70);\n                      local_60 = (uint *)(ulong)uVar9;\n                    }\n                    else {\n                      plVar17 = *(long **)(lVar10 + 0x10);\nLAB_00302fe7:\n                      pcVar3 = *(code **)(*plVar17 + 0x18);\n                      if (pcVar3 == FUN_001b8d10) {\n                        cVar6 = (**(code **)(*plVar17 + 0x1d0))();\n                      }\n                      else {\n                        cVar6 = (*pcVar3)();\n                      }\n                      local_60 = *(uint **)local_70;\n                      if (cVar6 != '\0') {\n                        local_60 = (uint *)((ulong)local_60 >> 0x38 |\n                                            ((ulong)local_60 & 0xff000000000000) >> 0x28 |\n                                            ((ulong)local_60 & 0xff0000000000) >> 0x18 |\n                                            ((ulong)local_60 & 0xff00000000) >> 8 |\n                                            ((ulong)local_60 & 0xff000000) << 8 |\n                                            ((ulong)local_60 & 0xff0000) << 0x18 |\n                                            ((ulong)local_60 & 0xff00) << 0x28 |\n                                           (long)local_60 << 0x38);\n                      }\n                      local_70 = local_70 + 2;\n                    }\nLAB_00303035:\n                    local_48 = FUN_00301dc0(*param_1,pbVar15,&local_60);\n                    puStack_50 = local_60;\n                    goto joined_r0x00303052;\n                  }\n                  if (uVar8 != 0x18) {\n                    return 0;\n                  }\nLAB_00302a09:\n                  bVar1 = (byte)*local_70;\n                  uVar9 = (uint)bVar1;\n                  puVar11 = (uint *)((long)local_70 + 1);\n                  if ((char)bVar1 < '\0') {\n                    uVar9 = FUN_002112d0(puVar11,&local_68,bVar1);\n                    puVar11 = (uint *)((long)local_70 + local_68);\n                  }\n                  else {\n                    local_68 = 1;\n                  }\n                  local_70 = (uint *)((long)local_70 + uVar9 + local_68);\n                  puStack_50 = puVar11;\n                  local_48 = uVar9;\n                }\n                else {\n                  if (uVar8 == 0x20) {\n                    pcVar3 = *(code **)(**(long **)(*param_1 + 0x10) + 0x18);\n                    if (pcVar3 == FUN_001b8d10) {\n                      cVar6 = (**(code **)(**(long **)(*param_1 + 0x10) + 0x1d0))();\n                    }\n                    else {\n                      cVar6 = (*pcVar3)();\n                    }\n                    puStack_50 = *(uint **)local_70;\n                    if (cVar6 != '\0') {\n                      puStack_50 = (uint *)((ulong)puStack_50 >> 0x38 |\n                                            ((ulong)puStack_50 & 0xff000000000000) >> 0x28 |\n                                            ((ulong)puStack_50 & 0xff0000000000) >> 0x18 |\n                                            ((ulong)puStack_50 & 0xff00000000) >> 8 |\n                                            ((ulong)puStack_50 & 0xff000000) << 8 |\n                                            ((ulong)puStack_50 & 0xff0000) << 0x18 |\n                                            ((ulong)puStack_50 & 0xff00) << 0x28 |\n                                           (long)puStack_50 << 0x38);\n                    }\n                    local_70 = local_70 + 2;\n                    goto LAB_00302ea9;\n                  }\n                  if (uVar8 < 0x20) {\n                    return 0;\n                  }\n                  if (1 < uVar8 - 0x1f01) {\n                    return 0;\n                  }\nLAB_00302bcd:\n                  bVar1 = (byte)*local_70;\n                  if ((char)bVar1 < '\0') {\n                    puStack_50 = (uint *)FUN_002112d0((uint *)((long)local_70 + 1),&local_68,bVar1);\n                    local_70 = (uint *)(local_68 + (long)local_70);\n                  }\n                  else {\n                    local_68 = 1;\n                    local_70 = (uint *)((long)local_70 + 1);\n                    puStack_50 = (uint *)(ulong)bVar1;\n                  }\n                }\nLAB_00302f92:\n                if (uVar2 == 0x31) goto LAB_00302750;\n                if (0x31 < uVar2) {\n                  if ((uVar2 == 0x6e) || (uVar2 == 0x2007)) goto LAB_00302fb5;\n                  goto LAB_00302750;\n                }\n                goto LAB_00302e3e;\n              }" (if "if") (parenthesized_expression "(uVar8 != 0x19)" (( "(") (binary_expression "uVar8 != 0x19" (identifier "uVar8") (!= "!=") (number_literal "0x19")) () ")")) (compound_statement "{\n                if (uVar8 < 0x1a) {\n                  if (uVar8 == 0x17) {\n                    lVar10 = *param_1;\n                    if (*(int *)(lVar10 + 0x60) == 4) {\n                      uVar9 = FUN_00305610(lVar10,&local_70);\n                      local_60 = (uint *)(ulong)uVar9;\n                    }\n                    else {\n                      plVar17 = *(long **)(lVar10 + 0x10);\nLAB_00302fe7:\n                      pcVar3 = *(code **)(*plVar17 + 0x18);\n                      if (pcVar3 == FUN_001b8d10) {\n                        cVar6 = (**(code **)(*plVar17 + 0x1d0))();\n                      }\n                      else {\n                        cVar6 = (*pcVar3)();\n                      }\n                      local_60 = *(uint **)local_70;\n                      if (cVar6 != '\0') {\n                        local_60 = (uint *)((ulong)local_60 >> 0x38 |\n                                            ((ulong)local_60 & 0xff000000000000) >> 0x28 |\n                                            ((ulong)local_60 & 0xff0000000000) >> 0x18 |\n                                            ((ulong)local_60 & 0xff00000000) >> 8 |\n                                            ((ulong)local_60 & 0xff000000) << 8 |\n                                            ((ulong)local_60 & 0xff0000) << 0x18 |\n                                            ((ulong)local_60 & 0xff00) << 0x28 |\n                                           (long)local_60 << 0x38);\n                      }\n                      local_70 = local_70 + 2;\n                    }\nLAB_00303035:\n                    local_48 = FUN_00301dc0(*param_1,pbVar15,&local_60);\n                    puStack_50 = local_60;\n                    goto joined_r0x00303052;\n                  }\n                  if (uVar8 != 0x18) {\n                    return 0;\n                  }\nLAB_00302a09:\n                  bVar1 = (byte)*local_70;\n                  uVar9 = (uint)bVar1;\n                  puVar11 = (uint *)((long)local_70 + 1);\n                  if ((char)bVar1 < '\0') {\n                    uVar9 = FUN_002112d0(puVar11,&local_68,bVar1);\n                    puVar11 = (uint *)((long)local_70 + local_68);\n                  }\n                  else {\n                    local_68 = 1;\n                  }\n                  local_70 = (uint *)((long)local_70 + uVar9 + local_68);\n                  puStack_50 = puVar11;\n                  local_48 = uVar9;\n                }\n                else {\n                  if (uVar8 == 0x20) {\n                    pcVar3 = *(code **)(**(long **)(*param_1 + 0x10) + 0x18);\n                    if (pcVar3 == FUN_001b8d10) {\n                      cVar6 = (**(code **)(**(long **)(*param_1 + 0x10) + 0x1d0))();\n                    }\n                    else {\n                      cVar6 = (*pcVar3)();\n                    }\n                    puStack_50 = *(uint **)local_70;\n                    if (cVar6 != '\0') {\n                      puStack_50 = (uint *)((ulong)puStack_50 >> 0x38 |\n                                            ((ulong)puStack_50 & 0xff000000000000) >> 0x28 |\n                                            ((ulong)puStack_50 & 0xff0000000000) >> 0x18 |\n                                            ((ulong)puStack_50 & 0xff00000000) >> 8 |\n                                            ((ulong)puStack_50 & 0xff000000) << 8 |\n                                            ((ulong)puStack_50 & 0xff0000) << 0x18 |\n                                            ((ulong)puStack_50 & 0xff00) << 0x28 |\n                                           (long)puStack_50 << 0x38);\n                    }\n                    local_70 = local_70 + 2;\n                    goto LAB_00302ea9;\n                  }\n                  if (uVar8 < 0x20) {\n                    return 0;\n                  }\n                  if (1 < uVar8 - 0x1f01) {\n                    return 0;\n                  }\nLAB_00302bcd:\n                  bVar1 = (byte)*local_70;\n                  if ((char)bVar1 < '\0') {\n                    puStack_50 = (uint *)FUN_002112d0((uint *)((long)local_70 + 1),&local_68,bVar1);\n                    local_70 = (uint *)(local_68 + (long)local_70);\n                  }\n                  else {\n                    local_68 = 1;\n                    local_70 = (uint *)((long)local_70 + 1);\n                    puStack_50 = (uint *)(ulong)bVar1;\n                  }\n                }\nLAB_00302f92:\n                if (uVar2 == 0x31) goto LAB_00302750;\n                if (0x31 < uVar2) {\n                  if ((uVar2 == 0x6e) || (uVar2 == 0x2007)) goto LAB_00302fb5;\n                  goto LAB_00302750;\n                }\n                goto LAB_00302e3e;\n              }" ({ "{") (if_statement "if (uVar8 < 0x1a) {\n                  if (uVar8 == 0x17) {\n                    lVar10 = *param_1;\n                    if (*(int *)(lVar10 + 0x60) == 4) {\n                      uVar9 = FUN_00305610(lVar10,&local_70);\n                      local_60 = (uint *)(ulong)uVar9;\n                    }\n                    else {\n                      plVar17 = *(long **)(lVar10 + 0x10);\nLAB_00302fe7:\n                      pcVar3 = *(code **)(*plVar17 + 0x18);\n                      if (pcVar3 == FUN_001b8d10) {\n                        cVar6 = (**(code **)(*plVar17 + 0x1d0))();\n                      }\n                      else {\n                        cVar6 = (*pcVar3)();\n                      }\n                      local_60 = *(uint **)local_70;\n                      if (cVar6 != '\0') {\n                        local_60 = (uint *)((ulong)local_60 >> 0x38 |\n                                            ((ulong)local_60 & 0xff000000000000) >> 0x28 |\n                                            ((ulong)local_60 & 0xff0000000000) >> 0x18 |\n                                            ((ulong)local_60 & 0xff00000000) >> 8 |\n                                            ((ulong)local_60 & 0xff000000) << 8 |\n                                            ((ulong)local_60 & 0xff0000) << 0x18 |\n                                            ((ulong)local_60 & 0xff00) << 0x28 |\n                                           (long)local_60 << 0x38);\n                      }\n                      local_70 = local_70 + 2;\n                    }\nLAB_00303035:\n                    local_48 = FUN_00301dc0(*param_1,pbVar15,&local_60);\n                    puStack_50 = local_60;\n                    goto joined_r0x00303052;\n                  }\n                  if (uVar8 != 0x18) {\n                    return 0;\n                  }\nLAB_00302a09:\n                  bVar1 = (byte)*local_70;\n                  uVar9 = (uint)bVar1;\n                  puVar11 = (uint *)((long)local_70 + 1);\n                  if ((char)bVar1 < '\0') {\n                    uVar9 = FUN_002112d0(puVar11,&local_68,bVar1);\n                    puVar11 = (uint *)((long)local_70 + local_68);\n                  }\n                  else {\n                    local_68 = 1;\n                  }\n                  local_70 = (uint *)((long)local_70 + uVar9 + local_68);\n                  puStack_50 = puVar11;\n                  local_48 = uVar9;\n                }\n                else {\n                  if (uVar8 == 0x20) {\n                    pcVar3 = *(code **)(**(long **)(*param_1 + 0x10) + 0x18);\n                    if (pcVar3 == FUN_001b8d10) {\n                      cVar6 = (**(code **)(**(long **)(*param_1 + 0x10) + 0x1d0))();\n                    }\n                    else {\n                      cVar6 = (*pcVar3)();\n                    }\n                    puStack_50 = *(uint **)local_70;\n                    if (cVar6 != '\0') {\n                      puStack_50 = (uint *)((ulong)puStack_50 >> 0x38 |\n                                            ((ulong)puStack_50 & 0xff000000000000) >> 0x28 |\n                                            ((ulong)puStack_50 & 0xff0000000000) >> 0x18 |\n                                            ((ulong)puStack_50 & 0xff00000000) >> 8 |\n                                            ((ulong)puStack_50 & 0xff000000) << 8 |\n                                            ((ulong)puStack_50 & 0xff0000) << 0x18 |\n                                            ((ulong)puStack_50 & 0xff00) << 0x28 |\n                                           (long)puStack_50 << 0x38);\n                    }\n                    local_70 = local_70 + 2;\n                    goto LAB_00302ea9;\n                  }\n                  if (uVar8 < 0x20) {\n                    return 0;\n                  }\n                  if (1 < uVar8 - 0x1f01) {\n                    return 0;\n                  }\nLAB_00302bcd:\n                  bVar1 = (byte)*local_70;\n                  if ((char)bVar1 < '\0') {\n                    puStack_50 = (uint *)FUN_002112d0((uint *)((long)local_70 + 1),&local_68,bVar1);\n                    local_70 = (uint *)(local_68 + (long)local_70);\n                  }\n                  else {\n                    local_68 = 1;\n                    local_70 = (uint *)((long)local_70 + 1);\n                    puStack_50 = (uint *)(ulong)bVar1;\n                  }\n                }" (if "if") (parenthesized_expression "(uVar8 < 0x1a)" (( "(") (binary_expression "uVar8 < 0x1a" (identifier "uVar8") (< "<") (number_literal "0x1a")) () ")")) (compound_statement "{\n                  if (uVar8 == 0x17) {\n                    lVar10 = *param_1;\n                    if (*(int *)(lVar10 + 0x60) == 4) {\n                      uVar9 = FUN_00305610(lVar10,&local_70);\n                      local_60 = (uint *)(ulong)uVar9;\n                    }\n                    else {\n                      plVar17 = *(long **)(lVar10 + 0x10);\nLAB_00302fe7:\n                      pcVar3 = *(code **)(*plVar17 + 0x18);\n                      if (pcVar3 == FUN_001b8d10) {\n                        cVar6 = (**(code **)(*plVar17 + 0x1d0))();\n                      }\n                      else {\n                        cVar6 = (*pcVar3)();\n                      }\n                      local_60 = *(uint **)local_70;\n                      if (cVar6 != '\0') {\n                        local_60 = (uint *)((ulong)local_60 >> 0x38 |\n                                            ((ulong)local_60 & 0xff000000000000) >> 0x28 |\n                                            ((ulong)local_60 & 0xff0000000000) >> 0x18 |\n                                            ((ulong)local_60 & 0xff00000000) >> 8 |\n                                            ((ulong)local_60 & 0xff000000) << 8 |\n                                            ((ulong)local_60 & 0xff0000) << 0x18 |\n                                            ((ulong)local_60 & 0xff00) << 0x28 |\n                                           (long)local_60 << 0x38);\n                      }\n                      local_70 = local_70 + 2;\n                    }\nLAB_00303035:\n                    local_48 = FUN_00301dc0(*param_1,pbVar15,&local_60);\n                    puStack_50 = local_60;\n                    goto joined_r0x00303052;\n                  }\n                  if (uVar8 != 0x18) {\n                    return 0;\n                  }\nLAB_00302a09:\n                  bVar1 = (byte)*local_70;\n                  uVar9 = (uint)bVar1;\n                  puVar11 = (uint *)((long)local_70 + 1);\n                  if ((char)bVar1 < '\0') {\n                    uVar9 = FUN_002112d0(puVar11,&local_68,bVar1);\n                    puVar11 = (uint *)((long)local_70 + local_68);\n                  }\n                  else {\n                    local_68 = 1;\n                  }\n                  local_70 = (uint *)((long)local_70 + uVar9 + local_68);\n                  puStack_50 = puVar11;\n                  local_48 = uVar9;\n                }" ({ "{") (if_statement "if (uVar8 == 0x17) {\n                    lVar10 = *param_1;\n                    if (*(int *)(lVar10 + 0x60) == 4) {\n                      uVar9 = FUN_00305610(lVar10,&local_70);\n                      local_60 = (uint *)(ulong)uVar9;\n                    }\n                    else {\n                      plVar17 = *(long **)(lVar10 + 0x10);\nLAB_00302fe7:\n                      pcVar3 = *(code **)(*plVar17 + 0x18);\n                      if (pcVar3 == FUN_001b8d10) {\n                        cVar6 = (**(code **)(*plVar17 + 0x1d0))();\n                      }\n                      else {\n                        cVar6 = (*pcVar3)();\n                      }\n                      local_60 = *(uint **)local_70;\n                      if (cVar6 != '\0') {\n                        local_60 = (uint *)((ulong)local_60 >> 0x38 |\n                                            ((ulong)local_60 & 0xff000000000000) >> 0x28 |\n                                            ((ulong)local_60 & 0xff0000000000) >> 0x18 |\n                                            ((ulong)local_60 & 0xff00000000) >> 8 |\n                                            ((ulong)local_60 & 0xff000000) << 8 |\n                                            ((ulong)local_60 & 0xff0000) << 0x18 |\n                                            ((ulong)local_60 & 0xff00) << 0x28 |\n                                           (long)local_60 << 0x38);\n                      }\n                      local_70 = local_70 + 2;\n                    }\nLAB_00303035:\n                    local_48 = FUN_00301dc0(*param_1,pbVar15,&local_60);\n                    puStack_50 = local_60;\n                    goto joined_r0x00303052;\n                  }" (if "if") (parenthesized_expression "(uVar8 == 0x17)" (( "(") (binary_expression "uVar8 == 0x17" (identifier "uVar8") (== "==") (number_literal "0x17")) () ")")) (compound_statement "{\n                    lVar10 = *param_1;\n                    if (*(int *)(lVar10 + 0x60) == 4) {\n                      uVar9 = FUN_00305610(lVar10,&local_70);\n                      local_60 = (uint *)(ulong)uVar9;\n                    }\n                    else {\n                      plVar17 = *(long **)(lVar10 + 0x10);\nLAB_00302fe7:\n                      pcVar3 = *(code **)(*plVar17 + 0x18);\n                      if (pcVar3 == FUN_001b8d10) {\n                        cVar6 = (**(code **)(*plVar17 + 0x1d0))();\n                      }\n                      else {\n                        cVar6 = (*pcVar3)();\n                      }\n                      local_60 = *(uint **)local_70;\n                      if (cVar6 != '\0') {\n                        local_60 = (uint *)((ulong)local_60 >> 0x38 |\n                                            ((ulong)local_60 & 0xff000000000000) >> 0x28 |\n                                            ((ulong)local_60 & 0xff0000000000) >> 0x18 |\n                                            ((ulong)local_60 & 0xff00000000) >> 8 |\n                                            ((ulong)local_60 & 0xff000000) << 8 |\n                                            ((ulong)local_60 & 0xff0000) << 0x18 |\n                                            ((ulong)local_60 & 0xff00) << 0x28 |\n                                           (long)local_60 << 0x38);\n                      }\n                      local_70 = local_70 + 2;\n                    }\nLAB_00303035:\n                    local_48 = FUN_00301dc0(*param_1,pbVar15,&local_60);\n                    puStack_50 = local_60;\n                    goto joined_r0x00303052;\n                  }" ({ "{") (expression_statement "lVar10 = *param_1;" (assignment_expression "lVar10 = *param_1" (identifier "lVar10") (= "=") (pointer_expression "*param_1" (* "*") (identifier "param_1"))) (; ";")) (if_statement "if (*(int *)(lVar10 + 0x60) == 4) {\n                      uVar9 = FUN_00305610(lVar10,&local_70);\n                      local_60 = (uint *)(ulong)uVar9;\n                    }\n                    else {\n                      plVar17 = *(long **)(lVar10 + 0x10);\nLAB_00302fe7:\n                      pcVar3 = *(code **)(*plVar17 + 0x18);\n                      if (pcVar3 == FUN_001b8d10) {\n                        cVar6 = (**(code **)(*plVar17 + 0x1d0))();\n                      }\n                      else {\n                        cVar6 = (*pcVar3)();\n                      }\n                      local_60 = *(uint **)local_70;\n                      if (cVar6 != '\0') {\n                        local_60 = (uint *)((ulong)local_60 >> 0x38 |\n                                            ((ulong)local_60 & 0xff000000000000) >> 0x28 |\n                                            ((ulong)local_60 & 0xff0000000000) >> 0x18 |\n                                            ((ulong)local_60 & 0xff00000000) >> 8 |\n                                            ((ulong)local_60 & 0xff000000) << 8 |\n                                            ((ulong)local_60 & 0xff0000) << 0x18 |\n                                            ((ulong)local_60 & 0xff00) << 0x28 |\n                                           (long)local_60 << 0x38);\n                      }\n                      local_70 = local_70 + 2;\n                    }" (if "if") (parenthesized_expression "(*(int *)(lVar10 + 0x60) == 4)" (( "(") (binary_expression "*(int *)(lVar10 + 0x60) == 4" (pointer_expression "*(int *)(lVar10 + 0x60)" (* "*") (cast_expression "(int *)(lVar10 + 0x60)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(lVar10 + 0x60)" (( "(") (binary_expression "lVar10 + 0x60" (identifier "lVar10") (+ "+") (number_literal "0x60")) () ")")))) (== "==") (number_literal "4")) () ")")) (compound_statement "{\n                      uVar9 = FUN_00305610(lVar10,&local_70);\n                      local_60 = (uint *)(ulong)uVar9;\n                    }" ({ "{") (expression_statement "uVar9 = FUN_00305610(lVar10,&local_70);" (assignment_expression "uVar9 = FUN_00305610(lVar10,&local_70)" (identifier "uVar9") (= "=") (call_expression "FUN_00305610(lVar10,&local_70)" (identifier "FUN_00305610") (argument_list "(lVar10,&local_70)" (( "(") (identifier "lVar10") (, ",") (pointer_expression "&local_70" (& "&") (identifier "local_70")) () ")")))) (; ";")) (expression_statement "local_60 = (uint *)(ulong)uVar9;" (assignment_expression "local_60 = (uint *)(ulong)uVar9" (identifier "local_60") (= "=") (cast_expression "(uint *)(ulong)uVar9" (( "(") (type_descriptor "uint *" (type_identifier "uint") (abstract_pointer_declarator "*" (* "*"))) () ")") (cast_expression "(ulong)uVar9" (( "(") (type_descriptor "ulong" (type_identifier "ulong")) () ")") (identifier "uVar9")))) (; ";")) (} "}")) (else_clause "else {\n                      plVar17 = *(long **)(lVar10 + 0x10);\nLAB_00302fe7:\n                      pcVar3 = *(code **)(*plVar17 + 0x18);\n                      if (pcVar3 == FUN_001b8d10) {\n                        cVar6 = (**(code **)(*plVar17 + 0x1d0))();\n                      }\n                      else {\n                        cVar6 = (*pcVar3)();\n                      }\n                      local_60 = *(uint **)local_70;\n                      if (cVar6 != '\0') {\n                        local_60 = (uint *)((ulong)local_60 >> 0x38 |\n                                            ((ulong)local_60 & 0xff000000000000) >> 0x28 |\n                                            ((ulong)local_60 & 0xff0000000000) >> 0x18 |\n                                            ((ulong)local_60 & 0xff00000000) >> 8 |\n                                            ((ulong)local_60 & 0xff000000) << 8 |\n                                            ((ulong)local_60 & 0xff0000) << 0x18 |\n                                            ((ulong)local_60 & 0xff00) << 0x28 |\n                                           (long)local_60 << 0x38);\n                      }\n                      local_70 = local_70 + 2;\n                    }" (else "else") (compound_statement "{\n                      plVar17 = *(long **)(lVar10 + 0x10);\nLAB_00302fe7:\n                      pcVar3 = *(code **)(*plVar17 + 0x18);\n                      if (pcVar3 == FUN_001b8d10) {\n                        cVar6 = (**(code **)(*plVar17 + 0x1d0))();\n                      }\n                      else {\n                        cVar6 = (*pcVar3)();\n                      }\n                      local_60 = *(uint **)local_70;\n                      if (cVar6 != '\0') {\n                        local_60 = (uint *)((ulong)local_60 >> 0x38 |\n                                            ((ulong)local_60 & 0xff000000000000) >> 0x28 |\n                                            ((ulong)local_60 & 0xff0000000000) >> 0x18 |\n                                            ((ulong)local_60 & 0xff00000000) >> 8 |\n                                            ((ulong)local_60 & 0xff000000) << 8 |\n                                            ((ulong)local_60 & 0xff0000) << 0x18 |\n                                            ((ulong)local_60 & 0xff00) << 0x28 |\n                                           (long)local_60 << 0x38);\n                      }\n                      local_70 = local_70 + 2;\n                    }" ({ "{") (expression_statement "plVar17 = *(long **)(lVar10 + 0x10);" (assignment_expression "plVar17 = *(long **)(lVar10 + 0x10)" (identifier "plVar17") (= "=") (pointer_expression "*(long **)(lVar10 + 0x10)" (* "*") (cast_expression "(long **)(lVar10 + 0x10)" (( "(") (type_descriptor "long **" (sized_type_specifier "long" (long "long")) (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(lVar10 + 0x10)" (( "(") (binary_expression "lVar10 + 0x10" (identifier "lVar10") (+ "+") (number_literal "0x10")) () ")"))))) (; ";")) (labeled_statement "LAB_00302fe7:\n                      pcVar3 = *(code **)(*plVar17 + 0x18);" (statement_identifier "LAB_00302fe7") (: ":") (expression_statement "pcVar3 = *(code **)(*plVar17 + 0x18);" (assignment_expression "pcVar3 = *(code **)(*plVar17 + 0x18)" (identifier "pcVar3") (= "=") (pointer_expression "*(code **)(*plVar17 + 0x18)" (* "*") (cast_expression "(code **)(*plVar17 + 0x18)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(*plVar17 + 0x18)" (( "(") (binary_expression "*plVar17 + 0x18" (pointer_expression "*plVar17" (* "*") (identifier "plVar17")) (+ "+") (number_literal "0x18")) () ")"))))) (; ";"))) (if_statement "if (pcVar3 == FUN_001b8d10) {\n                        cVar6 = (**(code **)(*plVar17 + 0x1d0))();\n                      }\n                      else {\n                        cVar6 = (*pcVar3)();\n                      }" (if "if") (parenthesized_expression "(pcVar3 == FUN_001b8d10)" (( "(") (binary_expression "pcVar3 == FUN_001b8d10" (identifier "pcVar3") (== "==") (identifier "FUN_001b8d10")) () ")")) (compound_statement "{\n                        cVar6 = (**(code **)(*plVar17 + 0x1d0))();\n                      }" ({ "{") (expression_statement "cVar6 = (**(code **)(*plVar17 + 0x1d0))();" (assignment_expression "cVar6 = (**(code **)(*plVar17 + 0x1d0))()" (identifier "cVar6") (= "=") (call_expression "(**(code **)(*plVar17 + 0x1d0))()" (parenthesized_expression "(**(code **)(*plVar17 + 0x1d0))" (( "(") (pointer_expression "**(code **)(*plVar17 + 0x1d0)" (* "*") (pointer_expression "*(code **)(*plVar17 + 0x1d0)" (* "*") (cast_expression "(code **)(*plVar17 + 0x1d0)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(*plVar17 + 0x1d0)" (( "(") (binary_expression "*plVar17 + 0x1d0" (pointer_expression "*plVar17" (* "*") (identifier "plVar17")) (+ "+") (number_literal "0x1d0")) () ")"))))) () ")")) (argument_list "()" (( "(") () ")")))) (; ";")) (} "}")) (else_clause "else {\n                        cVar6 = (*pcVar3)();\n                      }" (else "else") (compound_statement "{\n                        cVar6 = (*pcVar3)();\n                      }" ({ "{") (expression_statement "cVar6 = (*pcVar3)();" (assignment_expression "cVar6 = (*pcVar3)()" (identifier "cVar6") (= "=") (call_expression "(*pcVar3)()" (parenthesized_expression "(*pcVar3)" (( "(") (pointer_expression "*pcVar3" (* "*") (identifier "pcVar3")) () ")")) (argument_list "()" (( "(") () ")")))) (; ";")) (} "}")))) (expression_statement "local_60 = *(uint **)local_70;" (assignment_expression "local_60 = *(uint **)local_70" (identifier "local_60") (= "=") (pointer_expression "*(uint **)local_70" (* "*") (cast_expression "(uint **)local_70" (( "(") (type_descriptor "uint **" (type_identifier "uint") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (identifier "local_70")))) (; ";")) (if_statement "if (cVar6 != '\0') {\n                        local_60 = (uint *)((ulong)local_60 >> 0x38 |\n                                            ((ulong)local_60 & 0xff000000000000) >> 0x28 |\n                                            ((ulong)local_60 & 0xff0000000000) >> 0x18 |\n                                            ((ulong)local_60 & 0xff00000000) >> 8 |\n                                            ((ulong)local_60 & 0xff000000) << 8 |\n                                            ((ulong)local_60 & 0xff0000) << 0x18 |\n                                            ((ulong)local_60 & 0xff00) << 0x28 |\n                                           (long)local_60 << 0x38);\n                      }" (if "if") (parenthesized_expression "(cVar6 != '\0')" (( "(") (binary_expression "cVar6 != '\0'" (identifier "cVar6") (!= "!=") (char_literal "'\0'" (' "'") (escape_sequence "\0") (' "'"))) () ")")) (compound_statement "{\n                        local_60 = (uint *)((ulong)local_60 >> 0x38 |\n                                            ((ulong)local_60 & 0xff000000000000) >> 0x28 |\n                                            ((ulong)local_60 & 0xff0000000000) >> 0x18 |\n                                            ((ulong)local_60 & 0xff00000000) >> 8 |\n                                            ((ulong)local_60 & 0xff000000) << 8 |\n                                            ((ulong)local_60 & 0xff0000) << 0x18 |\n                                            ((ulong)local_60 & 0xff00) << 0x28 |\n                                           (long)local_60 << 0x38);\n                      }" ({ "{") (expression_statement "local_60 = (uint *)((ulong)local_60 >> 0x38 |\n                                            ((ulong)local_60 & 0xff000000000000) >> 0x28 |\n                                            ((ulong)local_60 & 0xff0000000000) >> 0x18 |\n                                            ((ulong)local_60 & 0xff00000000) >> 8 |\n                                            ((ulong)local_60 & 0xff000000) << 8 |\n                                            ((ulong)local_60 & 0xff0000) << 0x18 |\n                                            ((ulong)local_60 & 0xff00) << 0x28 |\n                                           (long)local_60 << 0x38);" (assignment_expression "local_60 = (uint *)((ulong)local_60 >> 0x38 |\n                                            ((ulong)local_60 & 0xff000000000000) >> 0x28 |\n                                            ((ulong)local_60 & 0xff0000000000) >> 0x18 |\n                                            ((ulong)local_60 & 0xff00000000) >> 8 |\n                                            ((ulong)local_60 & 0xff000000) << 8 |\n                                            ((ulong)local_60 & 0xff0000) << 0x18 |\n                                            ((ulong)local_60 & 0xff00) << 0x28 |\n                                           (long)local_60 << 0x38)" (identifier "local_60") (= "=") (cast_expression "(uint *)((ulong)local_60 >> 0x38 |\n                                            ((ulong)local_60 & 0xff000000000000) >> 0x28 |\n                                            ((ulong)local_60 & 0xff0000000000) >> 0x18 |\n                                            ((ulong)local_60 & 0xff00000000) >> 8 |\n                                            ((ulong)local_60 & 0xff000000) << 8 |\n                                            ((ulong)local_60 & 0xff0000) << 0x18 |\n                                            ((ulong)local_60 & 0xff00) << 0x28 |\n                                           (long)local_60 << 0x38)" (( "(") (type_descriptor "uint *" (type_identifier "uint") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "((ulong)local_60 >> 0x38 |\n                                            ((ulong)local_60 & 0xff000000000000) >> 0x28 |\n                                            ((ulong)local_60 & 0xff0000000000) >> 0x18 |\n                                            ((ulong)local_60 & 0xff00000000) >> 8 |\n                                            ((ulong)local_60 & 0xff000000) << 8 |\n                                            ((ulong)local_60 & 0xff0000) << 0x18 |\n                                            ((ulong)local_60 & 0xff00) << 0x28 |\n                                           (long)local_60 << 0x38)" (( "(") (binary_expression "(ulong)local_60 >> 0x38 |\n                                            ((ulong)local_60 & 0xff000000000000) >> 0x28 |\n                                            ((ulong)local_60 & 0xff0000000000) >> 0x18 |\n                                            ((ulong)local_60 & 0xff00000000) >> 8 |\n                                            ((ulong)local_60 & 0xff000000) << 8 |\n                                            ((ulong)local_60 & 0xff0000) << 0x18 |\n                                            ((ulong)local_60 & 0xff00) << 0x28 |\n                                           (long)local_60 << 0x38" (binary_expression "(ulong)local_60 >> 0x38 |\n                                            ((ulong)local_60 & 0xff000000000000) >> 0x28 |\n                                            ((ulong)local_60 & 0xff0000000000) >> 0x18 |\n                                            ((ulong)local_60 & 0xff00000000) >> 8 |\n                                            ((ulong)local_60 & 0xff000000) << 8 |\n                                            ((ulong)local_60 & 0xff0000) << 0x18 |\n                                            ((ulong)local_60 & 0xff00) << 0x28" (binary_expression "(ulong)local_60 >> 0x38 |\n                                            ((ulong)local_60 & 0xff000000000000) >> 0x28 |\n                                            ((ulong)local_60 & 0xff0000000000) >> 0x18 |\n                                            ((ulong)local_60 & 0xff00000000) >> 8 |\n                                            ((ulong)local_60 & 0xff000000) << 8 |\n                                            ((ulong)local_60 & 0xff0000) << 0x18" (binary_expression "(ulong)local_60 >> 0x38 |\n                                            ((ulong)local_60 & 0xff000000000000) >> 0x28 |\n                                            ((ulong)local_60 & 0xff0000000000) >> 0x18 |\n                                            ((ulong)local_60 & 0xff00000000) >> 8 |\n                                            ((ulong)local_60 & 0xff000000) << 8" (binary_expression "(ulong)local_60 >> 0x38 |\n                                            ((ulong)local_60 & 0xff000000000000) >> 0x28 |\n                                            ((ulong)local_60 & 0xff0000000000) >> 0x18 |\n                                            ((ulong)local_60 & 0xff00000000) >> 8" (binary_expression "(ulong)local_60 >> 0x38 |\n                                            ((ulong)local_60 & 0xff000000000000) >> 0x28 |\n                                            ((ulong)local_60 & 0xff0000000000) >> 0x18" (binary_expression "(ulong)local_60 >> 0x38 |\n                                            ((ulong)local_60 & 0xff000000000000) >> 0x28" (binary_expression "(ulong)local_60 >> 0x38" (cast_expression "(ulong)local_60" (( "(") (type_descriptor "ulong" (type_identifier "ulong")) () ")") (identifier "local_60")) (>> ">>") (number_literal "0x38")) (| "|") (binary_expression "((ulong)local_60 & 0xff000000000000) >> 0x28" (parenthesized_expression "((ulong)local_60 & 0xff000000000000)" (( "(") (binary_expression "(ulong)local_60 & 0xff000000000000" (cast_expression "(ulong)local_60" (( "(") (type_descriptor "ulong" (type_identifier "ulong")) () ")") (identifier "local_60")) (& "&") (number_literal "0xff000000000000")) () ")")) (>> ">>") (number_literal "0x28"))) (| "|") (binary_expression "((ulong)local_60 & 0xff0000000000) >> 0x18" (parenthesized_expression "((ulong)local_60 & 0xff0000000000)" (( "(") (binary_expression "(ulong)local_60 & 0xff0000000000" (cast_expression "(ulong)local_60" (( "(") (type_descriptor "ulong" (type_identifier "ulong")) () ")") (identifier "local_60")) (& "&") (number_literal "0xff0000000000")) () ")")) (>> ">>") (number_literal "0x18"))) (| "|") (binary_expression "((ulong)local_60 & 0xff00000000) >> 8" (parenthesized_expression "((ulong)local_60 & 0xff00000000)" (( "(") (binary_expression "(ulong)local_60 & 0xff00000000" (cast_expression "(ulong)local_60" (( "(") (type_descriptor "ulong" (type_identifier "ulong")) () ")") (identifier "local_60")) (& "&") (number_literal "0xff00000000")) () ")")) (>> ">>") (number_literal "8"))) (| "|") (binary_expression "((ulong)local_60 & 0xff000000) << 8" (parenthesized_expression "((ulong)local_60 & 0xff000000)" (( "(") (binary_expression "(ulong)local_60 & 0xff000000" (cast_expression "(ulong)local_60" (( "(") (type_descriptor "ulong" (type_identifier "ulong")) () ")") (identifier "local_60")) (& "&") (number_literal "0xff000000")) () ")")) (<< "<<") (number_literal "8"))) (| "|") (binary_expression "((ulong)local_60 & 0xff0000) << 0x18" (parenthesized_expression "((ulong)local_60 & 0xff0000)" (( "(") (binary_expression "(ulong)local_60 & 0xff0000" (cast_expression "(ulong)local_60" (( "(") (type_descriptor "ulong" (type_identifier "ulong")) () ")") (identifier "local_60")) (& "&") (number_literal "0xff0000")) () ")")) (<< "<<") (number_literal "0x18"))) (| "|") (binary_expression "((ulong)local_60 & 0xff00) << 0x28" (parenthesized_expression "((ulong)local_60 & 0xff00)" (( "(") (binary_expression "(ulong)local_60 & 0xff00" (cast_expression "(ulong)local_60" (( "(") (type_descriptor "ulong" (type_identifier "ulong")) () ")") (identifier "local_60")) (& "&") (number_literal "0xff00")) () ")")) (<< "<<") (number_literal "0x28"))) (| "|") (binary_expression "(long)local_60 << 0x38" (cast_expression "(long)local_60" (( "(") (type_descriptor "long" (sized_type_specifier "long" (long "long"))) () ")") (identifier "local_60")) (<< "<<") (number_literal "0x38"))) () ")")))) (; ";")) (} "}"))) (expression_statement "local_70 = local_70 + 2;" (assignment_expression "local_70 = local_70 + 2" (identifier "local_70") (= "=") (binary_expression "local_70 + 2" (identifier "local_70") (+ "+") (number_literal "2"))) (; ";")) (} "}")))) (labeled_statement "LAB_00303035:\n                    local_48 = FUN_00301dc0(*param_1,pbVar15,&local_60);" (statement_identifier "LAB_00303035") (: ":") (expression_statement "local_48 = FUN_00301dc0(*param_1,pbVar15,&local_60);" (assignment_expression "local_48 = FUN_00301dc0(*param_1,pbVar15,&local_60)" (identifier "local_48") (= "=") (call_expression "FUN_00301dc0(*param_1,pbVar15,&local_60)" (identifier "FUN_00301dc0") (argument_list "(*param_1,pbVar15,&local_60)" (( "(") (pointer_expression "*param_1" (* "*") (identifier "param_1")) (, ",") (identifier "pbVar15") (, ",") (pointer_expression "&local_60" (& "&") (identifier "local_60")) () ")")))) (; ";"))) (expression_statement "puStack_50 = local_60;" (assignment_expression "puStack_50 = local_60" (identifier "puStack_50") (= "=") (identifier "local_60")) (; ";")) (goto_statement "goto joined_r0x00303052;" (goto "goto") (statement_identifier "joined_r0x00303052") (; ";")) (} "}"))) (if_statement "if (uVar8 != 0x18) {\n                    return 0;\n                  }" (if "if") (parenthesized_expression "(uVar8 != 0x18)" (( "(") (binary_expression "uVar8 != 0x18" (identifier "uVar8") (!= "!=") (number_literal "0x18")) () ")")) (compound_statement "{\n                    return 0;\n                  }" ({ "{") (return_statement "return 0;" (return "return") (number_literal "0") (; ";")) (} "}"))) (labeled_statement "LAB_00302a09:\n                  bVar1 = (byte)*local_70;" (statement_identifier "LAB_00302a09") (: ":") (expression_statement "bVar1 = (byte)*local_70;" (assignment_expression "bVar1 = (byte)*local_70" (identifier "bVar1") (= "=") (binary_expression "(byte)*local_70" (parenthesized_expression "(byte)" (( "(") (identifier "byte") () ")")) (* "*") (identifier "local_70"))) (; ";"))) (expression_statement "uVar9 = (uint)bVar1;" (assignment_expression "uVar9 = (uint)bVar1" (identifier "uVar9") (= "=") (cast_expression "(uint)bVar1" (( "(") (type_descriptor "uint" (type_identifier "uint")) () ")") (identifier "bVar1"))) (; ";")) (expression_statement "puVar11 = (uint *)((long)local_70 + 1);" (assignment_expression "puVar11 = (uint *)((long)local_70 + 1)" (identifier "puVar11") (= "=") (cast_expression "(uint *)((long)local_70 + 1)" (( "(") (type_descriptor "uint *" (type_identifier "uint") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "((long)local_70 + 1)" (( "(") (binary_expression "(long)local_70 + 1" (cast_expression "(long)local_70" (( "(") (type_descriptor "long" (sized_type_specifier "long" (long "long"))) () ")") (identifier "local_70")) (+ "+") (number_literal "1")) () ")")))) (; ";")) (if_statement "if ((char)bVar1 < '\0') {\n                    uVar9 = FUN_002112d0(puVar11,&local_68,bVar1);\n                    puVar11 = (uint *)((long)local_70 + local_68);\n                  }\n                  else {\n                    local_68 = 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                    uVar9 = FUN_002112d0(puVar11,&local_68,bVar1);\n                    puVar11 = (uint *)((long)local_70 + local_68);\n                  }" ({ "{") (expression_statement "uVar9 = FUN_002112d0(puVar11,&local_68,bVar1);" (assignment_expression "uVar9 = FUN_002112d0(puVar11,&local_68,bVar1)" (identifier "uVar9") (= "=") (call_expression "FUN_002112d0(puVar11,&local_68,bVar1)" (identifier "FUN_002112d0") (argument_list "(puVar11,&local_68,bVar1)" (( "(") (identifier "puVar11") (, ",") (pointer_expression "&local_68" (& "&") (identifier "local_68")) (, ",") (identifier "bVar1") () ")")))) (; ";")) (expression_statement "puVar11 = (uint *)((long)local_70 + local_68);" (assignment_expression "puVar11 = (uint *)((long)local_70 + local_68)" (identifier "puVar11") (= "=") (cast_expression "(uint *)((long)local_70 + local_68)" (( "(") (type_descriptor "uint *" (type_identifier "uint") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "((long)local_70 + local_68)" (( "(") (binary_expression "(long)local_70 + local_68" (cast_expression "(long)local_70" (( "(") (type_descriptor "long" (sized_type_specifier "long" (long "long"))) () ")") (identifier "local_70")) (+ "+") (identifier "local_68")) () ")")))) (; ";")) (} "}")) (else_clause "else {\n                    local_68 = 1;\n                  }" (else "else") (compound_statement "{\n                    local_68 = 1;\n                  }" ({ "{") (expression_statement "local_68 = 1;" (assignment_expression "local_68 = 1" (identifier "local_68") (= "=") (number_literal "1")) (; ";")) (} "}")))) (expression_statement "local_70 = (uint *)((long)local_70 + uVar9 + local_68);" (assignment_expression "local_70 = (uint *)((long)local_70 + uVar9 + local_68)" (identifier "local_70") (= "=") (cast_expression "(uint *)((long)local_70 + uVar9 + local_68)" (( "(") (type_descriptor "uint *" (type_identifier "uint") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "((long)local_70 + uVar9 + local_68)" (( "(") (binary_expression "(long)local_70 + uVar9 + local_68" (binary_expression "(long)local_70 + uVar9" (cast_expression "(long)local_70" (( "(") (type_descriptor "long" (sized_type_specifier "long" (long "long"))) () ")") (identifier "local_70")) (+ "+") (identifier "uVar9")) (+ "+") (identifier "local_68")) () ")")))) (; ";")) (expression_statement "puStack_50 = puVar11;" (assignment_expression "puStack_50 = puVar11" (identifier "puStack_50") (= "=") (identifier "puVar11")) (; ";")) (expression_statement "local_48 = uVar9;" (assignment_expression "local_48 = uVar9" (identifier "local_48") (= "=") (identifier "uVar9")) (; ";")) (} "}")) (else_clause "else {\n                  if (uVar8 == 0x20) {\n                    pcVar3 = *(code **)(**(long **)(*param_1 + 0x10) + 0x18);\n                    if (pcVar3 == FUN_001b8d10) {\n                      cVar6 = (**(code **)(**(long **)(*param_1 + 0x10) + 0x1d0))();\n                    }\n                    else {\n                      cVar6 = (*pcVar3)();\n                    }\n                    puStack_50 = *(uint **)local_70;\n                    if (cVar6 != '\0') {\n                      puStack_50 = (uint *)((ulong)puStack_50 >> 0x38 |\n                                            ((ulong)puStack_50 & 0xff000000000000) >> 0x28 |\n                                            ((ulong)puStack_50 & 0xff0000000000) >> 0x18 |\n                                            ((ulong)puStack_50 & 0xff00000000) >> 8 |\n                                            ((ulong)puStack_50 & 0xff000000) << 8 |\n                                            ((ulong)puStack_50 & 0xff0000) << 0x18 |\n                                            ((ulong)puStack_50 & 0xff00) << 0x28 |\n                                           (long)puStack_50 << 0x38);\n                    }\n                    local_70 = local_70 + 2;\n                    goto LAB_00302ea9;\n                  }\n                  if (uVar8 < 0x20) {\n                    return 0;\n                  }\n                  if (1 < uVar8 - 0x1f01) {\n                    return 0;\n                  }\nLAB_00302bcd:\n                  bVar1 = (byte)*local_70;\n                  if ((char)bVar1 < '\0') {\n                    puStack_50 = (uint *)FUN_002112d0((uint *)((long)local_70 + 1),&local_68,bVar1);\n                    local_70 = (uint *)(local_68 + (long)local_70);\n                  }\n                  else {\n                    local_68 = 1;\n                    local_70 = (uint *)((long)local_70 + 1);\n                    puStack_50 = (uint *)(ulong)bVar1;\n                  }\n                }" (else "else") (compound_statement "{\n                  if (uVar8 == 0x20) {\n                    pcVar3 = *(code **)(**(long **)(*param_1 + 0x10) + 0x18);\n                    if (pcVar3 == FUN_001b8d10) {\n                      cVar6 = (**(code **)(**(long **)(*param_1 + 0x10) + 0x1d0))();\n                    }\n                    else {\n                      cVar6 = (*pcVar3)();\n                    }\n                    puStack_50 = *(uint **)local_70;\n                    if (cVar6 != '\0') {\n                      puStack_50 = (uint *)((ulong)puStack_50 >> 0x38 |\n                                            ((ulong)puStack_50 & 0xff000000000000) >> 0x28 |\n                                            ((ulong)puStack_50 & 0xff0000000000) >> 0x18 |\n                                            ((ulong)puStack_50 & 0xff00000000) >> 8 |\n                                            ((ulong)puStack_50 & 0xff000000) << 8 |\n                                            ((ulong)puStack_50 & 0xff0000) << 0x18 |\n                                            ((ulong)puStack_50 & 0xff00) << 0x28 |\n                                           (long)puStack_50 << 0x38);\n                    }\n                    local_70 = local_70 + 2;\n                    goto LAB_00302ea9;\n                  }\n                  if (uVar8 < 0x20) {\n                    return 0;\n                  }\n                  if (1 < uVar8 - 0x1f01) {\n                    return 0;\n                  }\nLAB_00302bcd:\n                  bVar1 = (byte)*local_70;\n                  if ((char)bVar1 < '\0') {\n                    puStack_50 = (uint *)FUN_002112d0((uint *)((long)local_70 + 1),&local_68,bVar1);\n                    local_70 = (uint *)(local_68 + (long)local_70);\n                  }\n                  else {\n                    local_68 = 1;\n                    local_70 = (uint *)((long)local_70 + 1);\n                    puStack_50 = (uint *)(ulong)bVar1;\n                  }\n                }" ({ "{") (if_statement "if (uVar8 == 0x20) {\n                    pcVar3 = *(code **)(**(long **)(*param_1 + 0x10) + 0x18);\n                    if (pcVar3 == FUN_001b8d10) {\n                      cVar6 = (**(code **)(**(long **)(*param_1 + 0x10) + 0x1d0))();\n                    }\n                    else {\n                      cVar6 = (*pcVar3)();\n                    }\n                    puStack_50 = *(uint **)local_70;\n                    if (cVar6 != '\0') {\n                      puStack_50 = (uint *)((ulong)puStack_50 >> 0x38 |\n                                            ((ulong)puStack_50 & 0xff000000000000) >> 0x28 |\n                                            ((ulong)puStack_50 & 0xff0000000000) >> 0x18 |\n                                            ((ulong)puStack_50 & 0xff00000000) >> 8 |\n                                            ((ulong)puStack_50 & 0xff000000) << 8 |\n                                            ((ulong)puStack_50 & 0xff0000) << 0x18 |\n                                            ((ulong)puStack_50 & 0xff00) << 0x28 |\n                                           (long)puStack_50 << 0x38);\n                    }\n                    local_70 = local_70 + 2;\n                    goto LAB_00302ea9;\n                  }" (if "if") (parenthesized_expression "(uVar8 == 0x20)" (( "(") (binary_expression "uVar8 == 0x20" (identifier "uVar8") (== "==") (number_literal "0x20")) () ")")) (compound_statement "{\n                    pcVar3 = *(code **)(**(long **)(*param_1 + 0x10) + 0x18);\n                    if (pcVar3 == FUN_001b8d10) {\n                      cVar6 = (**(code **)(**(long **)(*param_1 + 0x10) + 0x1d0))();\n                    }\n                    else {\n                      cVar6 = (*pcVar3)();\n                    }\n                    puStack_50 = *(uint **)local_70;\n                    if (cVar6 != '\0') {\n                      puStack_50 = (uint *)((ulong)puStack_50 >> 0x38 |\n                                            ((ulong)puStack_50 & 0xff000000000000) >> 0x28 |\n                                            ((ulong)puStack_50 & 0xff0000000000) >> 0x18 |\n                                            ((ulong)puStack_50 & 0xff00000000) >> 8 |\n                                            ((ulong)puStack_50 & 0xff000000) << 8 |\n                                            ((ulong)puStack_50 & 0xff0000) << 0x18 |\n                                            ((ulong)puStack_50 & 0xff00) << 0x28 |\n                                           (long)puStack_50 << 0x38);\n                    }\n                    local_70 = local_70 + 2;\n                    goto LAB_00302ea9;\n                  }" ({ "{") (expression_statement "pcVar3 = *(code **)(**(long **)(*param_1 + 0x10) + 0x18);" (assignment_expression "pcVar3 = *(code **)(**(long **)(*param_1 + 0x10) + 0x18)" (identifier "pcVar3") (= "=") (pointer_expression "*(code **)(**(long **)(*param_1 + 0x10) + 0x18)" (* "*") (cast_expression "(code **)(**(long **)(*param_1 + 0x10) + 0x18)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(**(long **)(*param_1 + 0x10) + 0x18)" (( "(") (binary_expression "**(long **)(*param_1 + 0x10) + 0x18" (pointer_expression "**(long **)(*param_1 + 0x10)" (* "*") (pointer_expression "*(long **)(*param_1 + 0x10)" (* "*") (cast_expression "(long **)(*param_1 + 0x10)" (( "(") (type_descriptor "long **" (sized_type_specifier "long" (long "long")) (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(*param_1 + 0x10)" (( "(") (binary_expression "*param_1 + 0x10" (pointer_expression "*param_1" (* "*") (identifier "param_1")) (+ "+") (number_literal "0x10")) () ")"))))) (+ "+") (number_literal "0x18")) () ")"))))) (; ";")) (if_statement "if (pcVar3 == FUN_001b8d10) {\n                      cVar6 = (**(code **)(**(long **)(*param_1 + 0x10) + 0x1d0))();\n                    }\n                    else {\n                      cVar6 = (*pcVar3)();\n                    }" (if "if") (parenthesized_expression "(pcVar3 == FUN_001b8d10)" (( "(") (binary_expression "pcVar3 == FUN_001b8d10" (identifier "pcVar3") (== "==") (identifier "FUN_001b8d10")) () ")")) (compound_statement "{\n                      cVar6 = (**(code **)(**(long **)(*param_1 + 0x10) + 0x1d0))();\n                    }" ({ "{") (expression_statement "cVar6 = (**(code **)(**(long **)(*param_1 + 0x10) + 0x1d0))();" (assignment_expression "cVar6 = (**(code **)(**(long **)(*param_1 + 0x10) + 0x1d0))()" (identifier "cVar6") (= "=") (call_expression "(**(code **)(**(long **)(*param_1 + 0x10) + 0x1d0))()" (parenthesized_expression "(**(code **)(**(long **)(*param_1 + 0x10) + 0x1d0))" (( "(") (pointer_expression "**(code **)(**(long **)(*param_1 + 0x10) + 0x1d0)" (* "*") (pointer_expression "*(code **)(**(long **)(*param_1 + 0x10) + 0x1d0)" (* "*") (cast_expression "(code **)(**(long **)(*param_1 + 0x10) + 0x1d0)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(**(long **)(*param_1 + 0x10) + 0x1d0)" (( "(") (binary_expression "**(long **)(*param_1 + 0x10) + 0x1d0" (pointer_expression "**(long **)(*param_1 + 0x10)" (* "*") (pointer_expression "*(long **)(*param_1 + 0x10)" (* "*") (cast_expression "(long **)(*param_1 + 0x10)" (( "(") (type_descriptor "long **" (sized_type_specifier "long" (long "long")) (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(*param_1 + 0x10)" (( "(") (binary_expression "*param_1 + 0x10" (pointer_expression "*param_1" (* "*") (identifier "param_1")) (+ "+") (number_literal "0x10")) () ")"))))) (+ "+") (number_literal "0x1d0")) () ")"))))) () ")")) (argument_list "()" (( "(") () ")")))) (; ";")) (} "}")) (else_clause "else {\n                      cVar6 = (*pcVar3)();\n                    }" (else "else") (compound_statement "{\n                      cVar6 = (*pcVar3)();\n                    }" ({ "{") (expression_statement "cVar6 = (*pcVar3)();" (assignment_expression "cVar6 = (*pcVar3)()" (identifier "cVar6") (= "=") (call_expression "(*pcVar3)()" (parenthesized_expression "(*pcVar3)" (( "(") (pointer_expression "*pcVar3" (* "*") (identifier "pcVar3")) () ")")) (argument_list "()" (( "(") () ")")))) (; ";")) (} "}")))) (expression_statement "puStack_50 = *(uint **)local_70;" (assignment_expression "puStack_50 = *(uint **)local_70" (identifier "puStack_50") (= "=") (pointer_expression "*(uint **)local_70" (* "*") (cast_expression "(uint **)local_70" (( "(") (type_descriptor "uint **" (type_identifier "uint") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (identifier "local_70")))) (; ";")) (if_statement "if (cVar6 != '\0') {\n                      puStack_50 = (uint *)((ulong)puStack_50 >> 0x38 |\n                                            ((ulong)puStack_50 & 0xff000000000000) >> 0x28 |\n                                            ((ulong)puStack_50 & 0xff0000000000) >> 0x18 |\n                                            ((ulong)puStack_50 & 0xff00000000) >> 8 |\n                                            ((ulong)puStack_50 & 0xff000000) << 8 |\n                                            ((ulong)puStack_50 & 0xff0000) << 0x18 |\n                                            ((ulong)puStack_50 & 0xff00) << 0x28 |\n                                           (long)puStack_50 << 0x38);\n                    }" (if "if") (parenthesized_expression "(cVar6 != '\0')" (( "(") (binary_expression "cVar6 != '\0'" (identifier "cVar6") (!= "!=") (char_literal "'\0'" (' "'") (escape_sequence "\0") (' "'"))) () ")")) (compound_statement "{\n                      puStack_50 = (uint *)((ulong)puStack_50 >> 0x38 |\n                                            ((ulong)puStack_50 & 0xff000000000000) >> 0x28 |\n                                            ((ulong)puStack_50 & 0xff0000000000) >> 0x18 |\n                                            ((ulong)puStack_50 & 0xff00000000) >> 8 |\n                                            ((ulong)puStack_50 & 0xff000000) << 8 |\n                                            ((ulong)puStack_50 & 0xff0000) << 0x18 |\n                                            ((ulong)puStack_50 & 0xff00) << 0x28 |\n                                           (long)puStack_50 << 0x38);\n                    }" ({ "{") (expression_statement "puStack_50 = (uint *)((ulong)puStack_50 >> 0x38 |\n                                            ((ulong)puStack_50 & 0xff000000000000) >> 0x28 |\n                                            ((ulong)puStack_50 & 0xff0000000000) >> 0x18 |\n                                            ((ulong)puStack_50 & 0xff00000000) >> 8 |\n                                            ((ulong)puStack_50 & 0xff000000) << 8 |\n                                            ((ulong)puStack_50 & 0xff0000) << 0x18 |\n                                            ((ulong)puStack_50 & 0xff00) << 0x28 |\n                                           (long)puStack_50 << 0x38);" (assignment_expression "puStack_50 = (uint *)((ulong)puStack_50 >> 0x38 |\n                                            ((ulong)puStack_50 & 0xff000000000000) >> 0x28 |\n                                            ((ulong)puStack_50 & 0xff0000000000) >> 0x18 |\n                                            ((ulong)puStack_50 & 0xff00000000) >> 8 |\n                                            ((ulong)puStack_50 & 0xff000000) << 8 |\n                                            ((ulong)puStack_50 & 0xff0000) << 0x18 |\n                                            ((ulong)puStack_50 & 0xff00) << 0x28 |\n                                           (long)puStack_50 << 0x38)" (identifier "puStack_50") (= "=") (cast_expression "(uint *)((ulong)puStack_50 >> 0x38 |\n                                            ((ulong)puStack_50 & 0xff000000000000) >> 0x28 |\n                                            ((ulong)puStack_50 & 0xff0000000000) >> 0x18 |\n                                            ((ulong)puStack_50 & 0xff00000000) >> 8 |\n                                            ((ulong)puStack_50 & 0xff000000) << 8 |\n                                            ((ulong)puStack_50 & 0xff0000) << 0x18 |\n                                            ((ulong)puStack_50 & 0xff00) << 0x28 |\n                                           (long)puStack_50 << 0x38)" (( "(") (type_descriptor "uint *" (type_identifier "uint") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "((ulong)puStack_50 >> 0x38 |\n                                            ((ulong)puStack_50 & 0xff000000000000) >> 0x28 |\n                                            ((ulong)puStack_50 & 0xff0000000000) >> 0x18 |\n                                            ((ulong)puStack_50 & 0xff00000000) >> 8 |\n                                            ((ulong)puStack_50 & 0xff000000) << 8 |\n                                            ((ulong)puStack_50 & 0xff0000) << 0x18 |\n                                            ((ulong)puStack_50 & 0xff00) << 0x28 |\n                                           (long)puStack_50 << 0x38)" (( "(") (binary_expression "(ulong)puStack_50 >> 0x38 |\n                                            ((ulong)puStack_50 & 0xff000000000000) >> 0x28 |\n                                            ((ulong)puStack_50 & 0xff0000000000) >> 0x18 |\n                                            ((ulong)puStack_50 & 0xff00000000) >> 8 |\n                                            ((ulong)puStack_50 & 0xff000000) << 8 |\n                                            ((ulong)puStack_50 & 0xff0000) << 0x18 |\n                                            ((ulong)puStack_50 & 0xff00) << 0x28 |\n                                           (long)puStack_50 << 0x38" (binary_expression "(ulong)puStack_50 >> 0x38 |\n                                            ((ulong)puStack_50 & 0xff000000000000) >> 0x28 |\n                                            ((ulong)puStack_50 & 0xff0000000000) >> 0x18 |\n                                            ((ulong)puStack_50 & 0xff00000000) >> 8 |\n                                            ((ulong)puStack_50 & 0xff000000) << 8 |\n                                            ((ulong)puStack_50 & 0xff0000) << 0x18 |\n                                            ((ulong)puStack_50 & 0xff00) << 0x28" (binary_expression "(ulong)puStack_50 >> 0x38 |\n                                            ((ulong)puStack_50 & 0xff000000000000) >> 0x28 |\n                                            ((ulong)puStack_50 & 0xff0000000000) >> 0x18 |\n                                            ((ulong)puStack_50 & 0xff00000000) >> 8 |\n                                            ((ulong)puStack_50 & 0xff000000) << 8 |\n                                            ((ulong)puStack_50 & 0xff0000) << 0x18" (binary_expression "(ulong)puStack_50 >> 0x38 |\n                                            ((ulong)puStack_50 & 0xff000000000000) >> 0x28 |\n                                            ((ulong)puStack_50 & 0xff0000000000) >> 0x18 |\n                                            ((ulong)puStack_50 & 0xff00000000) >> 8 |\n                                            ((ulong)puStack_50 & 0xff000000) << 8" (binary_expression "(ulong)puStack_50 >> 0x38 |\n                                            ((ulong)puStack_50 & 0xff000000000000) >> 0x28 |\n                                            ((ulong)puStack_50 & 0xff0000000000) >> 0x18 |\n                                            ((ulong)puStack_50 & 0xff00000000) >> 8" (binary_expression "(ulong)puStack_50 >> 0x38 |\n                                            ((ulong)puStack_50 & 0xff000000000000) >> 0x28 |\n                                            ((ulong)puStack_50 & 0xff0000000000) >> 0x18" (binary_expression "(ulong)puStack_50 >> 0x38 |\n                                            ((ulong)puStack_50 & 0xff000000000000) >> 0x28" (binary_expression "(ulong)puStack_50 >> 0x38" (cast_expression "(ulong)puStack_50" (( "(") (type_descriptor "ulong" (type_identifier "ulong")) () ")") (identifier "puStack_50")) (>> ">>") (number_literal "0x38")) (| "|") (binary_expression "((ulong)puStack_50 & 0xff000000000000) >> 0x28" (parenthesized_expression "((ulong)puStack_50 & 0xff000000000000)" (( "(") (binary_expression "(ulong)puStack_50 & 0xff000000000000" (cast_expression "(ulong)puStack_50" (( "(") (type_descriptor "ulong" (type_identifier "ulong")) () ")") (identifier "puStack_50")) (& "&") (number_literal "0xff000000000000")) () ")")) (>> ">>") (number_literal "0x28"))) (| "|") (binary_expression "((ulong)puStack_50 & 0xff0000000000) >> 0x18" (parenthesized_expression "((ulong)puStack_50 & 0xff0000000000)" (( "(") (binary_expression "(ulong)puStack_50 & 0xff0000000000" (cast_expression "(ulong)puStack_50" (( "(") (type_descriptor "ulong" (type_identifier "ulong")) () ")") (identifier "puStack_50")) (& "&") (number_literal "0xff0000000000")) () ")")) (>> ">>") (number_literal "0x18"))) (| "|") (binary_expression "((ulong)puStack_50 & 0xff00000000) >> 8" (parenthesized_expression "((ulong)puStack_50 & 0xff00000000)" (( "(") (binary_expression "(ulong)puStack_50 & 0xff00000000" (cast_expression "(ulong)puStack_50" (( "(") (type_descriptor "ulong" (type_identifier "ulong")) () ")") (identifier "puStack_50")) (& "&") (number_literal "0xff00000000")) () ")")) (>> ">>") (number_literal "8"))) (| "|") (binary_expression "((ulong)puStack_50 & 0xff000000) << 8" (parenthesized_expression "((ulong)puStack_50 & 0xff000000)" (( "(") (binary_expression "(ulong)puStack_50 & 0xff000000" (cast_expression "(ulong)puStack_50" (( "(") (type_descriptor "ulong" (type_identifier "ulong")) () ")") (identifier "puStack_50")) (& "&") (number_literal "0xff000000")) () ")")) (<< "<<") (number_literal "8"))) (| "|") (binary_expression "((ulong)puStack_50 & 0xff0000) << 0x18" (parenthesized_expression "((ulong)puStack_50 & 0xff0000)" (( "(") (binary_expression "(ulong)puStack_50 & 0xff0000" (cast_expression "(ulong)puStack_50" (( "(") (type_descriptor "ulong" (type_identifier "ulong")) () ")") (identifier "puStack_50")) (& "&") (number_literal "0xff0000")) () ")")) (<< "<<") (number_literal "0x18"))) (| "|") (binary_expression "((ulong)puStack_50 & 0xff00) << 0x28" (parenthesized_expression "((ulong)puStack_50 & 0xff00)" (( "(") (binary_expression "(ulong)puStack_50 & 0xff00" (cast_expression "(ulong)puStack_50" (( "(") (type_descriptor "ulong" (type_identifier "ulong")) () ")") (identifier "puStack_50")) (& "&") (number_literal "0xff00")) () ")")) (<< "<<") (number_literal "0x28"))) (| "|") (binary_expression "(long)puStack_50 << 0x38" (cast_expression "(long)puStack_50" (( "(") (type_descriptor "long" (sized_type_specifier "long" (long "long"))) () ")") (identifier "puStack_50")) (<< "<<") (number_literal "0x38"))) () ")")))) (; ";")) (} "}"))) (expression_statement "local_70 = local_70 + 2;" (assignment_expression "local_70 = local_70 + 2" (identifier "local_70") (= "=") (binary_expression "local_70 + 2" (identifier "local_70") (+ "+") (number_literal "2"))) (; ";")) (goto_statement "goto LAB_00302ea9;" (goto "goto") (statement_identifier "LAB_00302ea9") (; ";")) (} "}"))) (if_statement "if (uVar8 < 0x20) {\n                    return 0;\n                  }" (if "if") (parenthesized_expression "(uVar8 < 0x20)" (( "(") (binary_expression "uVar8 < 0x20" (identifier "uVar8") (< "<") (number_literal "0x20")) () ")")) (compound_statement "{\n                    return 0;\n                  }" ({ "{") (return_statement "return 0;" (return "return") (number_literal "0") (; ";")) (} "}"))) (if_statement "if (1 < uVar8 - 0x1f01) {\n                    return 0;\n                  }" (if "if") (parenthesized_expression "(1 < uVar8 - 0x1f01)" (( "(") (binary_expression "1 < uVar8 - 0x1f01" (number_literal "1") (< "<") (binary_expression "uVar8 - 0x1f01" (identifier "uVar8") (- "-") (number_literal "0x1f01"))) () ")")) (compound_statement "{\n                    return 0;\n                  }" ({ "{") (return_statement "return 0;" (return "return") (number_literal "0") (; ";")) (} "}"))) (labeled_statement "LAB_00302bcd:\n                  bVar1 = (byte)*local_70;" (statement_identifier "LAB_00302bcd") (: ":") (expression_statement "bVar1 = (byte)*local_70;" (assignment_expression "bVar1 = (byte)*local_70" (identifier "bVar1") (= "=") (binary_expression "(byte)*local_70" (parenthesized_expression "(byte)" (( "(") (identifier "byte") () ")")) (* "*") (identifier "local_70"))) (; ";"))) (if_statement "if ((char)bVar1 < '\0') {\n                    puStack_50 = (uint *)FUN_002112d0((uint *)((long)local_70 + 1),&local_68,bVar1);\n                    local_70 = (uint *)(local_68 + (long)local_70);\n                  }\n                  else {\n                    local_68 = 1;\n                    local_70 = (uint *)((long)local_70 + 1);\n                    puStack_50 = (uint *)(ulong)bVar1;\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                    puStack_50 = (uint *)FUN_002112d0((uint *)((long)local_70 + 1),&local_68,bVar1);\n                    local_70 = (uint *)(local_68 + (long)local_70);\n                  }" ({ "{") (expression_statement "puStack_50 = (uint *)FUN_002112d0((uint *)((long)local_70 + 1),&local_68,bVar1);" (assignment_expression "puStack_50 = (uint *)FUN_002112d0((uint *)((long)local_70 + 1),&local_68,bVar1)" (identifier "puStack_50") (= "=") (cast_expression "(uint *)FUN_002112d0((uint *)((long)local_70 + 1),&local_68,bVar1)" (( "(") (type_descriptor "uint *" (type_identifier "uint") (abstract_pointer_declarator "*" (* "*"))) () ")") (call_expression "FUN_002112d0((uint *)((long)local_70 + 1),&local_68,bVar1)" (identifier "FUN_002112d0") (argument_list "((uint *)((long)local_70 + 1),&local_68,bVar1)" (( "(") (cast_expression "(uint *)((long)local_70 + 1)" (( "(") (type_descriptor "uint *" (type_identifier "uint") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "((long)local_70 + 1)" (( "(") (binary_expression "(long)local_70 + 1" (cast_expression "(long)local_70" (( "(") (type_descriptor "long" (sized_type_specifier "long" (long "long"))) () ")") (identifier "local_70")) (+ "+") (number_literal "1")) () ")"))) (, ",") (pointer_expression "&local_68" (& "&") (identifier "local_68")) (, ",") (identifier "bVar1") () ")"))))) (; ";")) (expression_statement "local_70 = (uint *)(local_68 + (long)local_70);" (assignment_expression "local_70 = (uint *)(local_68 + (long)local_70)" (identifier "local_70") (= "=") (cast_expression "(uint *)(local_68 + (long)local_70)" (( "(") (type_descriptor "uint *" (type_identifier "uint") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(local_68 + (long)local_70)" (( "(") (binary_expression "local_68 + (long)local_70" (identifier "local_68") (+ "+") (cast_expression "(long)local_70" (( "(") (type_descriptor "long" (sized_type_specifier "long" (long "long"))) () ")") (identifier "local_70"))) () ")")))) (; ";")) (} "}")) (else_clause "else {\n                    local_68 = 1;\n                    local_70 = (uint *)((long)local_70 + 1);\n                    puStack_50 = (uint *)(ulong)bVar1;\n                  }" (else "else") (compound_statement "{\n                    local_68 = 1;\n                    local_70 = (uint *)((long)local_70 + 1);\n                    puStack_50 = (uint *)(ulong)bVar1;\n                  }" ({ "{") (expression_statement "local_68 = 1;" (assignment_expression "local_68 = 1" (identifier "local_68") (= "=") (number_literal "1")) (; ";")) (expression_statement "local_70 = (uint *)((long)local_70 + 1);" (assignment_expression "local_70 = (uint *)((long)local_70 + 1)" (identifier "local_70") (= "=") (cast_expression "(uint *)((long)local_70 + 1)" (( "(") (type_descriptor "uint *" (type_identifier "uint") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "((long)local_70 + 1)" (( "(") (binary_expression "(long)local_70 + 1" (cast_expression "(long)local_70" (( "(") (type_descriptor "long" (sized_type_specifier "long" (long "long"))) () ")") (identifier "local_70")) (+ "+") (number_literal "1")) () ")")))) (; ";")) (expression_statement "puStack_50 = (uint *)(ulong)bVar1;" (assignment_expression "puStack_50 = (uint *)(ulong)bVar1" (identifier "puStack_50") (= "=") (cast_expression "(uint *)(ulong)bVar1" (( "(") (type_descriptor "uint *" (type_identifier "uint") (abstract_pointer_declarator "*" (* "*"))) () ")") (cast_expression "(ulong)bVar1" (( "(") (type_descriptor "ulong" (type_identifier "ulong")) () ")") (identifier "bVar1")))) (; ";")) (} "}")))) (} "}")))) (labeled_statement "LAB_00302f92:\n                if (uVar2 == 0x31) goto LAB_00302750;" (statement_identifier "LAB_00302f92") (: ":") (if_statement "if (uVar2 == 0x31) goto LAB_00302750;" (if "if") (parenthesized_expression "(uVar2 == 0x31)" (( "(") (binary_expression "uVar2 == 0x31" (identifier "uVar2") (== "==") (number_literal "0x31")) () ")")) (goto_statement "goto LAB_00302750;" (goto "goto") (statement_identifier "LAB_00302750") (; ";")))) (if_statement "if (0x31 < uVar2) {\n                  if ((uVar2 == 0x6e) || (uVar2 == 0x2007)) goto LAB_00302fb5;\n                  goto LAB_00302750;\n                }" (if "if") (parenthesized_expression "(0x31 < uVar2)" (( "(") (binary_expression "0x31 < uVar2" (number_literal "0x31") (< "<") (identifier "uVar2")) () ")")) (compound_statement "{\n                  if ((uVar2 == 0x6e) || (uVar2 == 0x2007)) goto LAB_00302fb5;\n                  goto LAB_00302750;\n                }" ({ "{") (if_statement "if ((uVar2 == 0x6e) || (uVar2 == 0x2007)) goto LAB_00302fb5;" (if "if") (parenthesized_expression "((uVar2 == 0x6e) || (uVar2 == 0x2007))" (( "(") (binary_expression "(uVar2 == 0x6e) || (uVar2 == 0x2007)" (parenthesized_expression "(uVar2 == 0x6e)" (( "(") (binary_expression "uVar2 == 0x6e" (identifier "uVar2") (== "==") (number_literal "0x6e")) () ")")) (|| "||") (parenthesized_expression "(uVar2 == 0x2007)" (( "(") (binary_expression "uVar2 == 0x2007" (identifier "uVar2") (== "==") (number_literal "0x2007")) () ")"))) () ")")) (goto_statement "goto LAB_00302fb5;" (goto "goto") (statement_identifier "LAB_00302fb5") (; ";"))) (goto_statement "goto LAB_00302750;" (goto "goto") (statement_identifier "LAB_00302750") (; ";")) (} "}"))) (goto_statement "goto LAB_00302e3e;" (goto "goto") (statement_identifier "LAB_00302e3e") (; ";")) (} "}"))) (expression_statement "puStack_50 = (uint *)0x1;" (assignment_expression "puStack_50 = (uint *)0x1" (identifier "puStack_50") (= "=") (cast_expression "(uint *)0x1" (( "(") (type_descriptor "uint *" (type_identifier "uint") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x1"))) (; ";")) (labeled_statement "LAB_00302ea9:\n              if (((uVar2 == 0x31) || (0x31 < uVar2)) || (uVar2 != 3)) goto LAB_00302750;" (statement_identifier "LAB_00302ea9") (: ":") (if_statement "if (((uVar2 == 0x31) || (0x31 < uVar2)) || (uVar2 != 3)) goto LAB_00302750;" (if "if") (parenthesized_expression "(((uVar2 == 0x31) || (0x31 < uVar2)) || (uVar2 != 3))" (( "(") (binary_expression "((uVar2 == 0x31) || (0x31 < uVar2)) || (uVar2 != 3)" (parenthesized_expression "((uVar2 == 0x31) || (0x31 < uVar2))" (( "(") (binary_expression "(uVar2 == 0x31) || (0x31 < uVar2)" (parenthesized_expression "(uVar2 == 0x31)" (( "(") (binary_expression "uVar2 == 0x31" (identifier "uVar2") (== "==") (number_literal "0x31")) () ")")) (|| "||") (parenthesized_expression "(0x31 < uVar2)" (( "(") (binary_expression "0x31 < uVar2" (number_literal "0x31") (< "<") (identifier "uVar2")) () ")"))) () ")")) (|| "||") (parenthesized_expression "(uVar2 != 3)" (( "(") (binary_expression "uVar2 != 3" (identifier "uVar2") (!= "!=") (number_literal "3")) () ")"))) () ")")) (goto_statement "goto LAB_00302750;" (goto "goto") (statement_identifier "LAB_00302750") (; ";")))) (labeled_statement "LAB_00302e52:\n              if (uVar8 == 8) {\nLAB_003029c7:\n                param_1[0xb] = (long)puStack_50;\n              }\n              else if (uVar8 == 0xe) goto LAB_00302f64;" (statement_identifier "LAB_00302e52") (: ":") (if_statement "if (uVar8 == 8) {\nLAB_003029c7:\n                param_1[0xb] = (long)puStack_50;\n              }\n              else if (uVar8 == 0xe) goto LAB_00302f64;" (if "if") (parenthesized_expression "(uVar8 == 8)" (( "(") (binary_expression "uVar8 == 8" (identifier "uVar8") (== "==") (number_literal "8")) () ")")) (compound_statement "{\nLAB_003029c7:\n                param_1[0xb] = (long)puStack_50;\n              }" ({ "{") (labeled_statement "LAB_003029c7:\n                param_1[0xb] = (long)puStack_50;" (statement_identifier "LAB_003029c7") (: ":") (expression_statement "param_1[0xb] = (long)puStack_50;" (assignment_expression "param_1[0xb] = (long)puStack_50" (subscript_expression "param_1[0xb]" (identifier "param_1") ([ "[") (number_literal "0xb") (] "]")) (= "=") (cast_expression "(long)puStack_50" (( "(") (type_descriptor "long" (sized_type_specifier "long" (long "long"))) () ")") (identifier "puStack_50"))) (; ";"))) (} "}")) (else_clause "else if (uVar8 == 0xe) goto LAB_00302f64;" (else "else") (if_statement "if (uVar8 == 0xe) goto LAB_00302f64;" (if "if") (parenthesized_expression "(uVar8 == 0xe)" (( "(") (binary_expression "uVar8 == 0xe" (identifier "uVar8") (== "==") (number_literal "0xe")) () ")")) (goto_statement "goto LAB_00302f64;" (goto "goto") (statement_identifier "LAB_00302f64") (; ";")))))) (goto_statement "goto LAB_00302750;" (goto "goto") (statement_identifier "LAB_00302750") (; ";")) (} "}"))) (if_statement "if (uVar8 != 0x11) {\n              if (0x11 < uVar8) {\n                if (uVar8 == 0x13) {\n                  uVar9 = FUN_00305610(*param_1,&local_70);\n                  local_60 = (uint *)(ulong)uVar9;\n                  goto LAB_00303035;\n                }\n                if (0x13 < uVar8) {\n                  plVar17 = *(long **)(*param_1 + 0x10);\n                  goto LAB_00302fe7;\n                }\n                pcVar3 = *(code **)(**(long **)(*param_1 + 0x10) + 0x18);\n                if (pcVar3 == FUN_001b8d10) {\n                  cVar6 = (**(code **)(**(long **)(*param_1 + 0x10) + 0x1d0))();\n                }\n                else {\n                  cVar6 = (*pcVar3)();\n                }\n                uVar5 = (ushort)*local_70;\n                if (cVar6 != '\0') {\n                  uVar5 = CONCAT11((byte)*local_70,*(byte *)((long)local_70 + 1));\n                }\n                local_70 = (uint *)((long)local_70 + 2);\n                puStack_50 = (uint *)(ulong)uVar5;\n                goto joined_r0x00303052;\n              }\n              if (uVar8 == 0xf) goto LAB_00302bcd;\n              if (uVar8 != 0x10) {\n                return 0;\n              }\n              lVar10 = *param_1;\n              iVar7 = *(int *)(lVar10 + 100);\n              if (2 < *(uint *)(lVar10 + 0x68)) {\n                iVar7 = *(int *)(lVar10 + 0x60);\n              }\n              if (iVar7 != 4) goto LAB_00302a71;\nLAB_00302e7d:\n              uVar8 = FUN_00305610(lVar10,&local_70);\n              local_60 = (uint *)(ulong)uVar8;\nLAB_00302abe:\n              local_48 = FUN_00301dc0(*param_1,pbVar15,&local_60);\n              puStack_50 = local_60;\n              if (uVar2 == 0x31) goto LAB_00302965;\n              if (0x31 < uVar2) goto joined_r0x00302ccc;\n              goto LAB_00302c20;\n            }" (if "if") (parenthesized_expression "(uVar8 != 0x11)" (( "(") (binary_expression "uVar8 != 0x11" (identifier "uVar8") (!= "!=") (number_literal "0x11")) () ")")) (compound_statement "{\n              if (0x11 < uVar8) {\n                if (uVar8 == 0x13) {\n                  uVar9 = FUN_00305610(*param_1,&local_70);\n                  local_60 = (uint *)(ulong)uVar9;\n                  goto LAB_00303035;\n                }\n                if (0x13 < uVar8) {\n                  plVar17 = *(long **)(*param_1 + 0x10);\n                  goto LAB_00302fe7;\n                }\n                pcVar3 = *(code **)(**(long **)(*param_1 + 0x10) + 0x18);\n                if (pcVar3 == FUN_001b8d10) {\n                  cVar6 = (**(code **)(**(long **)(*param_1 + 0x10) + 0x1d0))();\n                }\n                else {\n                  cVar6 = (*pcVar3)();\n                }\n                uVar5 = (ushort)*local_70;\n                if (cVar6 != '\0') {\n                  uVar5 = CONCAT11((byte)*local_70,*(byte *)((long)local_70 + 1));\n                }\n                local_70 = (uint *)((long)local_70 + 2);\n                puStack_50 = (uint *)(ulong)uVar5;\n                goto joined_r0x00303052;\n              }\n              if (uVar8 == 0xf) goto LAB_00302bcd;\n              if (uVar8 != 0x10) {\n                return 0;\n              }\n              lVar10 = *param_1;\n              iVar7 = *(int *)(lVar10 + 100);\n              if (2 < *(uint *)(lVar10 + 0x68)) {\n                iVar7 = *(int *)(lVar10 + 0x60);\n              }\n              if (iVar7 != 4) goto LAB_00302a71;\nLAB_00302e7d:\n              uVar8 = FUN_00305610(lVar10,&local_70);\n              local_60 = (uint *)(ulong)uVar8;\nLAB_00302abe:\n              local_48 = FUN_00301dc0(*param_1,pbVar15,&local_60);\n              puStack_50 = local_60;\n              if (uVar2 == 0x31) goto LAB_00302965;\n              if (0x31 < uVar2) goto joined_r0x00302ccc;\n              goto LAB_00302c20;\n            }" ({ "{") (if_statement "if (0x11 < uVar8) {\n                if (uVar8 == 0x13) {\n                  uVar9 = FUN_00305610(*param_1,&local_70);\n                  local_60 = (uint *)(ulong)uVar9;\n                  goto LAB_00303035;\n                }\n                if (0x13 < uVar8) {\n                  plVar17 = *(long **)(*param_1 + 0x10);\n                  goto LAB_00302fe7;\n                }\n                pcVar3 = *(code **)(**(long **)(*param_1 + 0x10) + 0x18);\n                if (pcVar3 == FUN_001b8d10) {\n                  cVar6 = (**(code **)(**(long **)(*param_1 + 0x10) + 0x1d0))();\n                }\n                else {\n                  cVar6 = (*pcVar3)();\n                }\n                uVar5 = (ushort)*local_70;\n                if (cVar6 != '\0') {\n                  uVar5 = CONCAT11((byte)*local_70,*(byte *)((long)local_70 + 1));\n                }\n                local_70 = (uint *)((long)local_70 + 2);\n                puStack_50 = (uint *)(ulong)uVar5;\n                goto joined_r0x00303052;\n              }" (if "if") (parenthesized_expression "(0x11 < uVar8)" (( "(") (binary_expression "0x11 < uVar8" (number_literal "0x11") (< "<") (identifier "uVar8")) () ")")) (compound_statement "{\n                if (uVar8 == 0x13) {\n                  uVar9 = FUN_00305610(*param_1,&local_70);\n                  local_60 = (uint *)(ulong)uVar9;\n                  goto LAB_00303035;\n                }\n                if (0x13 < uVar8) {\n                  plVar17 = *(long **)(*param_1 + 0x10);\n                  goto LAB_00302fe7;\n                }\n                pcVar3 = *(code **)(**(long **)(*param_1 + 0x10) + 0x18);\n                if (pcVar3 == FUN_001b8d10) {\n                  cVar6 = (**(code **)(**(long **)(*param_1 + 0x10) + 0x1d0))();\n                }\n                else {\n                  cVar6 = (*pcVar3)();\n                }\n                uVar5 = (ushort)*local_70;\n                if (cVar6 != '\0') {\n                  uVar5 = CONCAT11((byte)*local_70,*(byte *)((long)local_70 + 1));\n                }\n                local_70 = (uint *)((long)local_70 + 2);\n                puStack_50 = (uint *)(ulong)uVar5;\n                goto joined_r0x00303052;\n              }" ({ "{") (if_statement "if (uVar8 == 0x13) {\n                  uVar9 = FUN_00305610(*param_1,&local_70);\n                  local_60 = (uint *)(ulong)uVar9;\n                  goto LAB_00303035;\n                }" (if "if") (parenthesized_expression "(uVar8 == 0x13)" (( "(") (binary_expression "uVar8 == 0x13" (identifier "uVar8") (== "==") (number_literal "0x13")) () ")")) (compound_statement "{\n                  uVar9 = FUN_00305610(*param_1,&local_70);\n                  local_60 = (uint *)(ulong)uVar9;\n                  goto LAB_00303035;\n                }" ({ "{") (expression_statement "uVar9 = FUN_00305610(*param_1,&local_70);" (assignment_expression "uVar9 = FUN_00305610(*param_1,&local_70)" (identifier "uVar9") (= "=") (call_expression "FUN_00305610(*param_1,&local_70)" (identifier "FUN_00305610") (argument_list "(*param_1,&local_70)" (( "(") (pointer_expression "*param_1" (* "*") (identifier "param_1")) (, ",") (pointer_expression "&local_70" (& "&") (identifier "local_70")) () ")")))) (; ";")) (expression_statement "local_60 = (uint *)(ulong)uVar9;" (assignment_expression "local_60 = (uint *)(ulong)uVar9" (identifier "local_60") (= "=") (cast_expression "(uint *)(ulong)uVar9" (( "(") (type_descriptor "uint *" (type_identifier "uint") (abstract_pointer_declarator "*" (* "*"))) () ")") (cast_expression "(ulong)uVar9" (( "(") (type_descriptor "ulong" (type_identifier "ulong")) () ")") (identifier "uVar9")))) (; ";")) (goto_statement "goto LAB_00303035;" (goto "goto") (statement_identifier "LAB_00303035") (; ";")) (} "}"))) (if_statement "if (0x13 < uVar8) {\n                  plVar17 = *(long **)(*param_1 + 0x10);\n                  goto LAB_00302fe7;\n                }" (if "if") (parenthesized_expression "(0x13 < uVar8)" (( "(") (binary_expression "0x13 < uVar8" (number_literal "0x13") (< "<") (identifier "uVar8")) () ")")) (compound_statement "{\n                  plVar17 = *(long **)(*param_1 + 0x10);\n                  goto LAB_00302fe7;\n                }" ({ "{") (expression_statement "plVar17 = *(long **)(*param_1 + 0x10);" (assignment_expression "plVar17 = *(long **)(*param_1 + 0x10)" (identifier "plVar17") (= "=") (pointer_expression "*(long **)(*param_1 + 0x10)" (* "*") (cast_expression "(long **)(*param_1 + 0x10)" (( "(") (type_descriptor "long **" (sized_type_specifier "long" (long "long")) (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(*param_1 + 0x10)" (( "(") (binary_expression "*param_1 + 0x10" (pointer_expression "*param_1" (* "*") (identifier "param_1")) (+ "+") (number_literal "0x10")) () ")"))))) (; ";")) (goto_statement "goto LAB_00302fe7;" (goto "goto") (statement_identifier "LAB_00302fe7") (; ";")) (} "}"))) (expression_statement "pcVar3 = *(code **)(**(long **)(*param_1 + 0x10) + 0x18);" (assignment_expression "pcVar3 = *(code **)(**(long **)(*param_1 + 0x10) + 0x18)" (identifier "pcVar3") (= "=") (pointer_expression "*(code **)(**(long **)(*param_1 + 0x10) + 0x18)" (* "*") (cast_expression "(code **)(**(long **)(*param_1 + 0x10) + 0x18)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(**(long **)(*param_1 + 0x10) + 0x18)" (( "(") (binary_expression "**(long **)(*param_1 + 0x10) + 0x18" (pointer_expression "**(long **)(*param_1 + 0x10)" (* "*") (pointer_expression "*(long **)(*param_1 + 0x10)" (* "*") (cast_expression "(long **)(*param_1 + 0x10)" (( "(") (type_descriptor "long **" (sized_type_specifier "long" (long "long")) (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(*param_1 + 0x10)" (( "(") (binary_expression "*param_1 + 0x10" (pointer_expression "*param_1" (* "*") (identifier "param_1")) (+ "+") (number_literal "0x10")) () ")"))))) (+ "+") (number_literal "0x18")) () ")"))))) (; ";")) (if_statement "if (pcVar3 == FUN_001b8d10) {\n                  cVar6 = (**(code **)(**(long **)(*param_1 + 0x10) + 0x1d0))();\n                }\n                else {\n                  cVar6 = (*pcVar3)();\n                }" (if "if") (parenthesized_expression "(pcVar3 == FUN_001b8d10)" (( "(") (binary_expression "pcVar3 == FUN_001b8d10" (identifier "pcVar3") (== "==") (identifier "FUN_001b8d10")) () ")")) (compound_statement "{\n                  cVar6 = (**(code **)(**(long **)(*param_1 + 0x10) + 0x1d0))();\n                }" ({ "{") (expression_statement "cVar6 = (**(code **)(**(long **)(*param_1 + 0x10) + 0x1d0))();" (assignment_expression "cVar6 = (**(code **)(**(long **)(*param_1 + 0x10) + 0x1d0))()" (identifier "cVar6") (= "=") (call_expression "(**(code **)(**(long **)(*param_1 + 0x10) + 0x1d0))()" (parenthesized_expression "(**(code **)(**(long **)(*param_1 + 0x10) + 0x1d0))" (( "(") (pointer_expression "**(code **)(**(long **)(*param_1 + 0x10) + 0x1d0)" (* "*") (pointer_expression "*(code **)(**(long **)(*param_1 + 0x10) + 0x1d0)" (* "*") (cast_expression "(code **)(**(long **)(*param_1 + 0x10) + 0x1d0)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(**(long **)(*param_1 + 0x10) + 0x1d0)" (( "(") (binary_expression "**(long **)(*param_1 + 0x10) + 0x1d0" (pointer_expression "**(long **)(*param_1 + 0x10)" (* "*") (pointer_expression "*(long **)(*param_1 + 0x10)" (* "*") (cast_expression "(long **)(*param_1 + 0x10)" (( "(") (type_descriptor "long **" (sized_type_specifier "long" (long "long")) (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(*param_1 + 0x10)" (( "(") (binary_expression "*param_1 + 0x10" (pointer_expression "*param_1" (* "*") (identifier "param_1")) (+ "+") (number_literal "0x10")) () ")"))))) (+ "+") (number_literal "0x1d0")) () ")"))))) () ")")) (argument_list "()" (( "(") () ")")))) (; ";")) (} "}")) (else_clause "else {\n                  cVar6 = (*pcVar3)();\n                }" (else "else") (compound_statement "{\n                  cVar6 = (*pcVar3)();\n                }" ({ "{") (expression_statement "cVar6 = (*pcVar3)();" (assignment_expression "cVar6 = (*pcVar3)()" (identifier "cVar6") (= "=") (call_expression "(*pcVar3)()" (parenthesized_expression "(*pcVar3)" (( "(") (pointer_expression "*pcVar3" (* "*") (identifier "pcVar3")) () ")")) (argument_list "()" (( "(") () ")")))) (; ";")) (} "}")))) (expression_statement "uVar5 = (ushort)*local_70;" (assignment_expression "uVar5 = (ushort)*local_70" (identifier "uVar5") (= "=") (binary_expression "(ushort)*local_70" (parenthesized_expression "(ushort)" (( "(") (identifier "ushort") () ")")) (* "*") (identifier "local_70"))) (; ";")) (if_statement "if (cVar6 != '\0') {\n                  uVar5 = CONCAT11((byte)*local_70,*(byte *)((long)local_70 + 1));\n                }" (if "if") (parenthesized_expression "(cVar6 != '\0')" (( "(") (binary_expression "cVar6 != '\0'" (identifier "cVar6") (!= "!=") (char_literal "'\0'" (' "'") (escape_sequence "\0") (' "'"))) () ")")) (compound_statement "{\n                  uVar5 = CONCAT11((byte)*local_70,*(byte *)((long)local_70 + 1));\n                }" ({ "{") (expression_statement "uVar5 = CONCAT11((byte)*local_70,*(byte *)((long)local_70 + 1));" (assignment_expression "uVar5 = CONCAT11((byte)*local_70,*(byte *)((long)local_70 + 1))" (identifier "uVar5") (= "=") (call_expression "CONCAT11((byte)*local_70,*(byte *)((long)local_70 + 1))" (identifier "CONCAT11") (argument_list "((byte)*local_70,*(byte *)((long)local_70 + 1))" (( "(") (binary_expression "(byte)*local_70" (parenthesized_expression "(byte)" (( "(") (identifier "byte") () ")")) (* "*") (identifier "local_70")) (, ",") (pointer_expression "*(byte *)((long)local_70 + 1)" (* "*") (cast_expression "(byte *)((long)local_70 + 1)" (( "(") (type_descriptor "byte *" (type_identifier "byte") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "((long)local_70 + 1)" (( "(") (binary_expression "(long)local_70 + 1" (cast_expression "(long)local_70" (( "(") (type_descriptor "long" (sized_type_specifier "long" (long "long"))) () ")") (identifier "local_70")) (+ "+") (number_literal "1")) () ")")))) () ")")))) (; ";")) (} "}"))) (expression_statement "local_70 = (uint *)((long)local_70 + 2);" (assignment_expression "local_70 = (uint *)((long)local_70 + 2)" (identifier "local_70") (= "=") (cast_expression "(uint *)((long)local_70 + 2)" (( "(") (type_descriptor "uint *" (type_identifier "uint") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "((long)local_70 + 2)" (( "(") (binary_expression "(long)local_70 + 2" (cast_expression "(long)local_70" (( "(") (type_descriptor "long" (sized_type_specifier "long" (long "long"))) () ")") (identifier "local_70")) (+ "+") (number_literal "2")) () ")")))) (; ";")) (expression_statement "puStack_50 = (uint *)(ulong)uVar5;" (assignment_expression "puStack_50 = (uint *)(ulong)uVar5" (identifier "puStack_50") (= "=") (cast_expression "(uint *)(ulong)uVar5" (( "(") (type_descriptor "uint *" (type_identifier "uint") (abstract_pointer_declarator "*" (* "*"))) () ")") (cast_expression "(ulong)uVar5" (( "(") (type_descriptor "ulong" (type_identifier "ulong")) () ")") (identifier "uVar5")))) (; ";")) (goto_statement "goto joined_r0x00303052;" (goto "goto") (statement_identifier "joined_r0x00303052") (; ";")) (} "}"))) (if_statement "if (uVar8 == 0xf) goto LAB_00302bcd;" (if "if") (parenthesized_expression "(uVar8 == 0xf)" (( "(") (binary_expression "uVar8 == 0xf" (identifier "uVar8") (== "==") (number_literal "0xf")) () ")")) (goto_statement "goto LAB_00302bcd;" (goto "goto") (statement_identifier "LAB_00302bcd") (; ";"))) (if_statement "if (uVar8 != 0x10) {\n                return 0;\n              }" (if "if") (parenthesized_expression "(uVar8 != 0x10)" (( "(") (binary_expression "uVar8 != 0x10" (identifier "uVar8") (!= "!=") (number_literal "0x10")) () ")")) (compound_statement "{\n                return 0;\n              }" ({ "{") (return_statement "return 0;" (return "return") (number_literal "0") (; ";")) (} "}"))) (expression_statement "lVar10 = *param_1;" (assignment_expression "lVar10 = *param_1" (identifier "lVar10") (= "=") (pointer_expression "*param_1" (* "*") (identifier "param_1"))) (; ";")) (expression_statement "iVar7 = *(int *)(lVar10 + 100);" (assignment_expression "iVar7 = *(int *)(lVar10 + 100)" (identifier "iVar7") (= "=") (pointer_expression "*(int *)(lVar10 + 100)" (* "*") (cast_expression "(int *)(lVar10 + 100)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(lVar10 + 100)" (( "(") (binary_expression "lVar10 + 100" (identifier "lVar10") (+ "+") (number_literal "100")) () ")"))))) (; ";")) (if_statement "if (2 < *(uint *)(lVar10 + 0x68)) {\n                iVar7 = *(int *)(lVar10 + 0x60);\n              }" (if "if") (parenthesized_expression "(2 < *(uint *)(lVar10 + 0x68))" (( "(") (binary_expression "2 < *(uint *)(lVar10 + 0x68)" (number_literal "2") (< "<") (pointer_expression "*(uint *)(lVar10 + 0x68)" (* "*") (cast_expression "(uint *)(lVar10 + 0x68)" (( "(") (type_descriptor "uint *" (type_identifier "uint") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(lVar10 + 0x68)" (( "(") (binary_expression "lVar10 + 0x68" (identifier "lVar10") (+ "+") (number_literal "0x68")) () ")"))))) () ")")) (compound_statement "{\n                iVar7 = *(int *)(lVar10 + 0x60);\n              }" ({ "{") (expression_statement "iVar7 = *(int *)(lVar10 + 0x60);" (assignment_expression "iVar7 = *(int *)(lVar10 + 0x60)" (identifier "iVar7") (= "=") (pointer_expression "*(int *)(lVar10 + 0x60)" (* "*") (cast_expression "(int *)(lVar10 + 0x60)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(lVar10 + 0x60)" (( "(") (binary_expression "lVar10 + 0x60" (identifier "lVar10") (+ "+") (number_literal "0x60")) () ")"))))) (; ";")) (} "}"))) (if_statement "if (iVar7 != 4) goto LAB_00302a71;" (if "if") (parenthesized_expression "(iVar7 != 4)" (( "(") (binary_expression "iVar7 != 4" (identifier "iVar7") (!= "!=") (number_literal "4")) () ")")) (goto_statement "goto LAB_00302a71;" (goto "goto") (statement_identifier "LAB_00302a71") (; ";"))) (labeled_statement "LAB_00302e7d:\n              uVar8 = FUN_00305610(lVar10,&local_70);" (statement_identifier "LAB_00302e7d") (: ":") (expression_statement "uVar8 = FUN_00305610(lVar10,&local_70);" (assignment_expression "uVar8 = FUN_00305610(lVar10,&local_70)" (identifier "uVar8") (= "=") (call_expression "FUN_00305610(lVar10,&local_70)" (identifier "FUN_00305610") (argument_list "(lVar10,&local_70)" (( "(") (identifier "lVar10") (, ",") (pointer_expression "&local_70" (& "&") (identifier "local_70")) () ")")))) (; ";"))) (expression_statement "local_60 = (uint *)(ulong)uVar8;" (assignment_expression "local_60 = (uint *)(ulong)uVar8" (identifier "local_60") (= "=") (cast_expression "(uint *)(ulong)uVar8" (( "(") (type_descriptor "uint *" (type_identifier "uint") (abstract_pointer_declarator "*" (* "*"))) () ")") (cast_expression "(ulong)uVar8" (( "(") (type_descriptor "ulong" (type_identifier "ulong")) () ")") (identifier "uVar8")))) (; ";")) (labeled_statement "LAB_00302abe:\n              local_48 = FUN_00301dc0(*param_1,pbVar15,&local_60);" (statement_identifier "LAB_00302abe") (: ":") (expression_statement "local_48 = FUN_00301dc0(*param_1,pbVar15,&local_60);" (assignment_expression "local_48 = FUN_00301dc0(*param_1,pbVar15,&local_60)" (identifier "local_48") (= "=") (call_expression "FUN_00301dc0(*param_1,pbVar15,&local_60)" (identifier "FUN_00301dc0") (argument_list "(*param_1,pbVar15,&local_60)" (( "(") (pointer_expression "*param_1" (* "*") (identifier "param_1")) (, ",") (identifier "pbVar15") (, ",") (pointer_expression "&local_60" (& "&") (identifier "local_60")) () ")")))) (; ";"))) (expression_statement "puStack_50 = local_60;" (assignment_expression "puStack_50 = local_60" (identifier "puStack_50") (= "=") (identifier "local_60")) (; ";")) (if_statement "if (uVar2 == 0x31) goto LAB_00302965;" (if "if") (parenthesized_expression "(uVar2 == 0x31)" (( "(") (binary_expression "uVar2 == 0x31" (identifier "uVar2") (== "==") (number_literal "0x31")) () ")")) (goto_statement "goto LAB_00302965;" (goto "goto") (statement_identifier "LAB_00302965") (; ";"))) (if_statement "if (0x31 < uVar2) goto joined_r0x00302ccc;" (if "if") (parenthesized_expression "(0x31 < uVar2)" (( "(") (binary_expression "0x31 < uVar2" (number_literal "0x31") (< "<") (identifier "uVar2")) () ")")) (goto_statement "goto joined_r0x00302ccc;" (goto "goto") (statement_identifier "joined_r0x00302ccc") (; ";"))) (goto_statement "goto LAB_00302c20;" (goto "goto") (statement_identifier "LAB_00302c20") (; ";")) (} "}"))) (expression_statement "puVar11 = (uint *)((long)local_70 + 1);" (assignment_expression "puVar11 = (uint *)((long)local_70 + 1)" (identifier "puVar11") (= "=") (cast_expression "(uint *)((long)local_70 + 1)" (( "(") (type_descriptor "uint *" (type_identifier "uint") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "((long)local_70 + 1)" (( "(") (binary_expression "(long)local_70 + 1" (cast_expression "(long)local_70" (( "(") (type_descriptor "long" (sized_type_specifier "long" (long "long"))) () ")") (identifier "local_70")) (+ "+") (number_literal "1")) () ")")))) (; ";")) (expression_statement "puStack_50 = (uint *)(ulong)(byte)*local_70;" (assignment_expression "puStack_50 = (uint *)(ulong)(byte)*local_70" (identifier "puStack_50") (= "=") (binary_expression "(uint *)(ulong)(byte)*local_70" (cast_expression "(uint *)(ulong)(byte)" (( "(") (type_descriptor "uint *" (type_identifier "uint") (abstract_pointer_declarator "*" (* "*"))) () ")") (call_expression "(ulong)(byte)" (parenthesized_expression "(ulong)" (( "(") (identifier "ulong") () ")")) (argument_list "(byte)" (( "(") (identifier "byte") () ")")))) (* "*") (identifier "local_70"))) (; ";")) (expression_statement "local_70 = puVar11;" (assignment_expression "local_70 = puVar11" (identifier "local_70") (= "=") (identifier "puVar11")) (; ";")) (if_statement "if (uVar2 != 0x31) {\n              if (uVar2 < 0x32) {\n                if (uVar2 == 1) {\n                  param_1[5] = (long)puStack_50;\n                }\n                goto LAB_00302750;\n              }\njoined_r0x00302ccc:\n              if ((uVar2 == 0x6e) || (uVar2 == 0x2007)) goto LAB_00302750;\n              goto joined_r0x00302ce3;\n            }" (if "if") (parenthesized_expression "(uVar2 != 0x31)" (( "(") (binary_expression "uVar2 != 0x31" (identifier "uVar2") (!= "!=") (number_literal "0x31")) () ")")) (compound_statement "{\n              if (uVar2 < 0x32) {\n                if (uVar2 == 1) {\n                  param_1[5] = (long)puStack_50;\n                }\n                goto LAB_00302750;\n              }\njoined_r0x00302ccc:\n              if ((uVar2 == 0x6e) || (uVar2 == 0x2007)) goto LAB_00302750;\n              goto joined_r0x00302ce3;\n            }" ({ "{") (if_statement "if (uVar2 < 0x32) {\n                if (uVar2 == 1) {\n                  param_1[5] = (long)puStack_50;\n                }\n                goto LAB_00302750;\n              }" (if "if") (parenthesized_expression "(uVar2 < 0x32)" (( "(") (binary_expression "uVar2 < 0x32" (identifier "uVar2") (< "<") (number_literal "0x32")) () ")")) (compound_statement "{\n                if (uVar2 == 1) {\n                  param_1[5] = (long)puStack_50;\n                }\n                goto LAB_00302750;\n              }" ({ "{") (if_statement "if (uVar2 == 1) {\n                  param_1[5] = (long)puStack_50;\n                }" (if "if") (parenthesized_expression "(uVar2 == 1)" (( "(") (binary_expression "uVar2 == 1" (identifier "uVar2") (== "==") (number_literal "1")) () ")")) (compound_statement "{\n                  param_1[5] = (long)puStack_50;\n                }" ({ "{") (expression_statement "param_1[5] = (long)puStack_50;" (assignment_expression "param_1[5] = (long)puStack_50" (subscript_expression "param_1[5]" (identifier "param_1") ([ "[") (number_literal "5") (] "]")) (= "=") (cast_expression "(long)puStack_50" (( "(") (type_descriptor "long" (sized_type_specifier "long" (long "long"))) () ")") (identifier "puStack_50"))) (; ";")) (} "}"))) (goto_statement "goto LAB_00302750;" (goto "goto") (statement_identifier "LAB_00302750") (; ";")) (} "}"))) (labeled_statement "joined_r0x00302ccc:\n              if ((uVar2 == 0x6e) || (uVar2 == 0x2007)) goto LAB_00302750;" (statement_identifier "joined_r0x00302ccc") (: ":") (if_statement "if ((uVar2 == 0x6e) || (uVar2 == 0x2007)) goto LAB_00302750;" (if "if") (parenthesized_expression "((uVar2 == 0x6e) || (uVar2 == 0x2007))" (( "(") (binary_expression "(uVar2 == 0x6e) || (uVar2 == 0x2007)" (parenthesized_expression "(uVar2 == 0x6e)" (( "(") (binary_expression "uVar2 == 0x6e" (identifier "uVar2") (== "==") (number_literal "0x6e")) () ")")) (|| "||") (parenthesized_expression "(uVar2 == 0x2007)" (( "(") (binary_expression "uVar2 == 0x2007" (identifier "uVar2") (== "==") (number_literal "0x2007")) () ")"))) () ")")) (goto_statement "goto LAB_00302750;" (goto "goto") (statement_identifier "LAB_00302750") (; ";")))) (goto_statement "goto joined_r0x00302ce3;" (goto "goto") (statement_identifier "joined_r0x00302ce3") (; ";")) (} "}"))) (} "}")))) (labeled_statement "LAB_00302965:\n          param_1[0x11] = (long)puStack_50;" (statement_identifier "LAB_00302965") (: ":") (expression_statement "param_1[0x11] = (long)puStack_50;" (assignment_expression "param_1[0x11] = (long)puStack_50" (subscript_expression "param_1[0x11]" (identifier "param_1") ([ "[") (number_literal "0x11") (] "]")) (= "=") (cast_expression "(long)puStack_50" (( "(") (type_descriptor "long" (sized_type_specifier "long" (long "long"))) () ")") (identifier "puStack_50"))) (; ";"))) (goto_statement "goto LAB_00302750;" (goto "goto") (statement_identifier "LAB_00302750") (; ";")) (} "}"))) (if_statement "if (uVar8 == 7) {\n          pcVar3 = *(code **)(**(long **)(*param_1 + 0x10) + 0x18);\n          if (pcVar3 == FUN_001b8d10) {\n            cVar6 = (**(code **)(**(long **)(*param_1 + 0x10) + 0x1d0))();\n          }\n          else {\n            cVar6 = (*pcVar3)();\n          }\n          local_60 = *(uint **)local_70;\n          if (cVar6 != '\0') {\n            local_60 = (uint *)((ulong)local_60 >> 0x38 |\n                                ((ulong)local_60 & 0xff000000000000) >> 0x28 |\n                                ((ulong)local_60 & 0xff0000000000) >> 0x18 |\n                                ((ulong)local_60 & 0xff00000000) >> 8 |\n                                ((ulong)local_60 & 0xff000000) << 8 |\n                                ((ulong)local_60 & 0xff0000) << 0x18 |\n                                ((ulong)local_60 & 0xff00) << 0x28 | (long)local_60 << 0x38);\n          }\n          local_70 = local_70 + 2;\nLAB_00302d40:\n          local_48 = FUN_00301dc0(*param_1,pbVar15,&local_60);\n          puStack_50 = local_60;\njoined_r0x00302748:\n          if ((uVar2 != 0x31) && (uVar2 < 0x32)) {\nLAB_00302e3e:\n            if ((uVar2 != 1) && (uVar2 == 3)) goto LAB_00302e52;\n          }\n          goto LAB_00302750;\n        }" (if "if") (parenthesized_expression "(uVar8 == 7)" (( "(") (binary_expression "uVar8 == 7" (identifier "uVar8") (== "==") (number_literal "7")) () ")")) (compound_statement "{\n          pcVar3 = *(code **)(**(long **)(*param_1 + 0x10) + 0x18);\n          if (pcVar3 == FUN_001b8d10) {\n            cVar6 = (**(code **)(**(long **)(*param_1 + 0x10) + 0x1d0))();\n          }\n          else {\n            cVar6 = (*pcVar3)();\n          }\n          local_60 = *(uint **)local_70;\n          if (cVar6 != '\0') {\n            local_60 = (uint *)((ulong)local_60 >> 0x38 |\n                                ((ulong)local_60 & 0xff000000000000) >> 0x28 |\n                                ((ulong)local_60 & 0xff0000000000) >> 0x18 |\n                                ((ulong)local_60 & 0xff00000000) >> 8 |\n                                ((ulong)local_60 & 0xff000000) << 8 |\n                                ((ulong)local_60 & 0xff0000) << 0x18 |\n                                ((ulong)local_60 & 0xff00) << 0x28 | (long)local_60 << 0x38);\n          }\n          local_70 = local_70 + 2;\nLAB_00302d40:\n          local_48 = FUN_00301dc0(*param_1,pbVar15,&local_60);\n          puStack_50 = local_60;\njoined_r0x00302748:\n          if ((uVar2 != 0x31) && (uVar2 < 0x32)) {\nLAB_00302e3e:\n            if ((uVar2 != 1) && (uVar2 == 3)) goto LAB_00302e52;\n          }\n          goto LAB_00302750;\n        }" ({ "{") (expression_statement "pcVar3 = *(code **)(**(long **)(*param_1 + 0x10) + 0x18);" (assignment_expression "pcVar3 = *(code **)(**(long **)(*param_1 + 0x10) + 0x18)" (identifier "pcVar3") (= "=") (pointer_expression "*(code **)(**(long **)(*param_1 + 0x10) + 0x18)" (* "*") (cast_expression "(code **)(**(long **)(*param_1 + 0x10) + 0x18)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(**(long **)(*param_1 + 0x10) + 0x18)" (( "(") (binary_expression "**(long **)(*param_1 + 0x10) + 0x18" (pointer_expression "**(long **)(*param_1 + 0x10)" (* "*") (pointer_expression "*(long **)(*param_1 + 0x10)" (* "*") (cast_expression "(long **)(*param_1 + 0x10)" (( "(") (type_descriptor "long **" (sized_type_specifier "long" (long "long")) (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(*param_1 + 0x10)" (( "(") (binary_expression "*param_1 + 0x10" (pointer_expression "*param_1" (* "*") (identifier "param_1")) (+ "+") (number_literal "0x10")) () ")"))))) (+ "+") (number_literal "0x18")) () ")"))))) (; ";")) (if_statement "if (pcVar3 == FUN_001b8d10) {\n            cVar6 = (**(code **)(**(long **)(*param_1 + 0x10) + 0x1d0))();\n          }\n          else {\n            cVar6 = (*pcVar3)();\n          }" (if "if") (parenthesized_expression "(pcVar3 == FUN_001b8d10)" (( "(") (binary_expression "pcVar3 == FUN_001b8d10" (identifier "pcVar3") (== "==") (identifier "FUN_001b8d10")) () ")")) (compound_statement "{\n            cVar6 = (**(code **)(**(long **)(*param_1 + 0x10) + 0x1d0))();\n          }" ({ "{") (expression_statement "cVar6 = (**(code **)(**(long **)(*param_1 + 0x10) + 0x1d0))();" (assignment_expression "cVar6 = (**(code **)(**(long **)(*param_1 + 0x10) + 0x1d0))()" (identifier "cVar6") (= "=") (call_expression "(**(code **)(**(long **)(*param_1 + 0x10) + 0x1d0))()" (parenthesized_expression "(**(code **)(**(long **)(*param_1 + 0x10) + 0x1d0))" (( "(") (pointer_expression "**(code **)(**(long **)(*param_1 + 0x10) + 0x1d0)" (* "*") (pointer_expression "*(code **)(**(long **)(*param_1 + 0x10) + 0x1d0)" (* "*") (cast_expression "(code **)(**(long **)(*param_1 + 0x10) + 0x1d0)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(**(long **)(*param_1 + 0x10) + 0x1d0)" (( "(") (binary_expression "**(long **)(*param_1 + 0x10) + 0x1d0" (pointer_expression "**(long **)(*param_1 + 0x10)" (* "*") (pointer_expression "*(long **)(*param_1 + 0x10)" (* "*") (cast_expression "(long **)(*param_1 + 0x10)" (( "(") (type_descriptor "long **" (sized_type_specifier "long" (long "long")) (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(*param_1 + 0x10)" (( "(") (binary_expression "*param_1 + 0x10" (pointer_expression "*param_1" (* "*") (identifier "param_1")) (+ "+") (number_literal "0x10")) () ")"))))) (+ "+") (number_literal "0x1d0")) () ")"))))) () ")")) (argument_list "()" (( "(") () ")")))) (; ";")) (} "}")) (else_clause "else {\n            cVar6 = (*pcVar3)();\n          }" (else "else") (compound_statement "{\n            cVar6 = (*pcVar3)();\n          }" ({ "{") (expression_statement "cVar6 = (*pcVar3)();" (assignment_expression "cVar6 = (*pcVar3)()" (identifier "cVar6") (= "=") (call_expression "(*pcVar3)()" (parenthesized_expression "(*pcVar3)" (( "(") (pointer_expression "*pcVar3" (* "*") (identifier "pcVar3")) () ")")) (argument_list "()" (( "(") () ")")))) (; ";")) (} "}")))) (expression_statement "local_60 = *(uint **)local_70;" (assignment_expression "local_60 = *(uint **)local_70" (identifier "local_60") (= "=") (pointer_expression "*(uint **)local_70" (* "*") (cast_expression "(uint **)local_70" (( "(") (type_descriptor "uint **" (type_identifier "uint") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (identifier "local_70")))) (; ";")) (if_statement "if (cVar6 != '\0') {\n            local_60 = (uint *)((ulong)local_60 >> 0x38 |\n                                ((ulong)local_60 & 0xff000000000000) >> 0x28 |\n                                ((ulong)local_60 & 0xff0000000000) >> 0x18 |\n                                ((ulong)local_60 & 0xff00000000) >> 8 |\n                                ((ulong)local_60 & 0xff000000) << 8 |\n                                ((ulong)local_60 & 0xff0000) << 0x18 |\n                                ((ulong)local_60 & 0xff00) << 0x28 | (long)local_60 << 0x38);\n          }" (if "if") (parenthesized_expression "(cVar6 != '\0')" (( "(") (binary_expression "cVar6 != '\0'" (identifier "cVar6") (!= "!=") (char_literal "'\0'" (' "'") (escape_sequence "\0") (' "'"))) () ")")) (compound_statement "{\n            local_60 = (uint *)((ulong)local_60 >> 0x38 |\n                                ((ulong)local_60 & 0xff000000000000) >> 0x28 |\n                                ((ulong)local_60 & 0xff0000000000) >> 0x18 |\n                                ((ulong)local_60 & 0xff00000000) >> 8 |\n                                ((ulong)local_60 & 0xff000000) << 8 |\n                                ((ulong)local_60 & 0xff0000) << 0x18 |\n                                ((ulong)local_60 & 0xff00) << 0x28 | (long)local_60 << 0x38);\n          }" ({ "{") (expression_statement "local_60 = (uint *)((ulong)local_60 >> 0x38 |\n                                ((ulong)local_60 & 0xff000000000000) >> 0x28 |\n                                ((ulong)local_60 & 0xff0000000000) >> 0x18 |\n                                ((ulong)local_60 & 0xff00000000) >> 8 |\n                                ((ulong)local_60 & 0xff000000) << 8 |\n                                ((ulong)local_60 & 0xff0000) << 0x18 |\n                                ((ulong)local_60 & 0xff00) << 0x28 | (long)local_60 << 0x38);" (assignment_expression "local_60 = (uint *)((ulong)local_60 >> 0x38 |\n                                ((ulong)local_60 & 0xff000000000000) >> 0x28 |\n                                ((ulong)local_60 & 0xff0000000000) >> 0x18 |\n                                ((ulong)local_60 & 0xff00000000) >> 8 |\n                                ((ulong)local_60 & 0xff000000) << 8 |\n                                ((ulong)local_60 & 0xff0000) << 0x18 |\n                                ((ulong)local_60 & 0xff00) << 0x28 | (long)local_60 << 0x38)" (identifier "local_60") (= "=") (cast_expression "(uint *)((ulong)local_60 >> 0x38 |\n                                ((ulong)local_60 & 0xff000000000000) >> 0x28 |\n                                ((ulong)local_60 & 0xff0000000000) >> 0x18 |\n                                ((ulong)local_60 & 0xff00000000) >> 8 |\n                                ((ulong)local_60 & 0xff000000) << 8 |\n                                ((ulong)local_60 & 0xff0000) << 0x18 |\n                                ((ulong)local_60 & 0xff00) << 0x28 | (long)local_60 << 0x38)" (( "(") (type_descriptor "uint *" (type_identifier "uint") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "((ulong)local_60 >> 0x38 |\n                                ((ulong)local_60 & 0xff000000000000) >> 0x28 |\n                                ((ulong)local_60 & 0xff0000000000) >> 0x18 |\n                                ((ulong)local_60 & 0xff00000000) >> 8 |\n                                ((ulong)local_60 & 0xff000000) << 8 |\n                                ((ulong)local_60 & 0xff0000) << 0x18 |\n                                ((ulong)local_60 & 0xff00) << 0x28 | (long)local_60 << 0x38)" (( "(") (binary_expression "(ulong)local_60 >> 0x38 |\n                                ((ulong)local_60 & 0xff000000000000) >> 0x28 |\n                                ((ulong)local_60 & 0xff0000000000) >> 0x18 |\n                                ((ulong)local_60 & 0xff00000000) >> 8 |\n                                ((ulong)local_60 & 0xff000000) << 8 |\n                                ((ulong)local_60 & 0xff0000) << 0x18 |\n                                ((ulong)local_60 & 0xff00) << 0x28 | (long)local_60 << 0x38" (binary_expression "(ulong)local_60 >> 0x38 |\n                                ((ulong)local_60 & 0xff000000000000) >> 0x28 |\n                                ((ulong)local_60 & 0xff0000000000) >> 0x18 |\n                                ((ulong)local_60 & 0xff00000000) >> 8 |\n                                ((ulong)local_60 & 0xff000000) << 8 |\n                                ((ulong)local_60 & 0xff0000) << 0x18 |\n                                ((ulong)local_60 & 0xff00) << 0x28" (binary_expression "(ulong)local_60 >> 0x38 |\n                                ((ulong)local_60 & 0xff000000000000) >> 0x28 |\n                                ((ulong)local_60 & 0xff0000000000) >> 0x18 |\n                                ((ulong)local_60 & 0xff00000000) >> 8 |\n                                ((ulong)local_60 & 0xff000000) << 8 |\n                                ((ulong)local_60 & 0xff0000) << 0x18" (binary_expression "(ulong)local_60 >> 0x38 |\n                                ((ulong)local_60 & 0xff000000000000) >> 0x28 |\n                                ((ulong)local_60 & 0xff0000000000) >> 0x18 |\n                                ((ulong)local_60 & 0xff00000000) >> 8 |\n                                ((ulong)local_60 & 0xff000000) << 8" (binary_expression "(ulong)local_60 >> 0x38 |\n                                ((ulong)local_60 & 0xff000000000000) >> 0x28 |\n                                ((ulong)local_60 & 0xff0000000000) >> 0x18 |\n                                ((ulong)local_60 & 0xff00000000) >> 8" (binary_expression "(ulong)local_60 >> 0x38 |\n                                ((ulong)local_60 & 0xff000000000000) >> 0x28 |\n                                ((ulong)local_60 & 0xff0000000000) >> 0x18" (binary_expression "(ulong)local_60 >> 0x38 |\n                                ((ulong)local_60 & 0xff000000000000) >> 0x28" (binary_expression "(ulong)local_60 >> 0x38" (cast_expression "(ulong)local_60" (( "(") (type_descriptor "ulong" (type_identifier "ulong")) () ")") (identifier "local_60")) (>> ">>") (number_literal "0x38")) (| "|") (binary_expression "((ulong)local_60 & 0xff000000000000) >> 0x28" (parenthesized_expression "((ulong)local_60 & 0xff000000000000)" (( "(") (binary_expression "(ulong)local_60 & 0xff000000000000" (cast_expression "(ulong)local_60" (( "(") (type_descriptor "ulong" (type_identifier "ulong")) () ")") (identifier "local_60")) (& "&") (number_literal "0xff000000000000")) () ")")) (>> ">>") (number_literal "0x28"))) (| "|") (binary_expression "((ulong)local_60 & 0xff0000000000) >> 0x18" (parenthesized_expression "((ulong)local_60 & 0xff0000000000)" (( "(") (binary_expression "(ulong)local_60 & 0xff0000000000" (cast_expression "(ulong)local_60" (( "(") (type_descriptor "ulong" (type_identifier "ulong")) () ")") (identifier "local_60")) (& "&") (number_literal "0xff0000000000")) () ")")) (>> ">>") (number_literal "0x18"))) (| "|") (binary_expression "((ulong)local_60 & 0xff00000000) >> 8" (parenthesized_expression "((ulong)local_60 & 0xff00000000)" (( "(") (binary_expression "(ulong)local_60 & 0xff00000000" (cast_expression "(ulong)local_60" (( "(") (type_descriptor "ulong" (type_identifier "ulong")) () ")") (identifier "local_60")) (& "&") (number_literal "0xff00000000")) () ")")) (>> ">>") (number_literal "8"))) (| "|") (binary_expression "((ulong)local_60 & 0xff000000) << 8" (parenthesized_expression "((ulong)local_60 & 0xff000000)" (( "(") (binary_expression "(ulong)local_60 & 0xff000000" (cast_expression "(ulong)local_60" (( "(") (type_descriptor "ulong" (type_identifier "ulong")) () ")") (identifier "local_60")) (& "&") (number_literal "0xff000000")) () ")")) (<< "<<") (number_literal "8"))) (| "|") (binary_expression "((ulong)local_60 & 0xff0000) << 0x18" (parenthesized_expression "((ulong)local_60 & 0xff0000)" (( "(") (binary_expression "(ulong)local_60 & 0xff0000" (cast_expression "(ulong)local_60" (( "(") (type_descriptor "ulong" (type_identifier "ulong")) () ")") (identifier "local_60")) (& "&") (number_literal "0xff0000")) () ")")) (<< "<<") (number_literal "0x18"))) (| "|") (binary_expression "((ulong)local_60 & 0xff00) << 0x28" (parenthesized_expression "((ulong)local_60 & 0xff00)" (( "(") (binary_expression "(ulong)local_60 & 0xff00" (cast_expression "(ulong)local_60" (( "(") (type_descriptor "ulong" (type_identifier "ulong")) () ")") (identifier "local_60")) (& "&") (number_literal "0xff00")) () ")")) (<< "<<") (number_literal "0x28"))) (| "|") (binary_expression "(long)local_60 << 0x38" (cast_expression "(long)local_60" (( "(") (type_descriptor "long" (sized_type_specifier "long" (long "long"))) () ")") (identifier "local_60")) (<< "<<") (number_literal "0x38"))) () ")")))) (; ";")) (} "}"))) (expression_statement "local_70 = local_70 + 2;" (assignment_expression "local_70 = local_70 + 2" (identifier "local_70") (= "=") (binary_expression "local_70 + 2" (identifier "local_70") (+ "+") (number_literal "2"))) (; ";")) (labeled_statement "LAB_00302d40:\n          local_48 = FUN_00301dc0(*param_1,pbVar15,&local_60);" (statement_identifier "LAB_00302d40") (: ":") (expression_statement "local_48 = FUN_00301dc0(*param_1,pbVar15,&local_60);" (assignment_expression "local_48 = FUN_00301dc0(*param_1,pbVar15,&local_60)" (identifier "local_48") (= "=") (call_expression "FUN_00301dc0(*param_1,pbVar15,&local_60)" (identifier "FUN_00301dc0") (argument_list "(*param_1,pbVar15,&local_60)" (( "(") (pointer_expression "*param_1" (* "*") (identifier "param_1")) (, ",") (identifier "pbVar15") (, ",") (pointer_expression "&local_60" (& "&") (identifier "local_60")) () ")")))) (; ";"))) (expression_statement "puStack_50 = local_60;" (assignment_expression "puStack_50 = local_60" (identifier "puStack_50") (= "=") (identifier "local_60")) (; ";")) (labeled_statement "joined_r0x00302748:\n          if ((uVar2 != 0x31) && (uVar2 < 0x32)) {\nLAB_00302e3e:\n            if ((uVar2 != 1) && (uVar2 == 3)) goto LAB_00302e52;\n          }" (statement_identifier "joined_r0x00302748") (: ":") (if_statement "if ((uVar2 != 0x31) && (uVar2 < 0x32)) {\nLAB_00302e3e:\n            if ((uVar2 != 1) && (uVar2 == 3)) goto LAB_00302e52;\n          }" (if "if") (parenthesized_expression "((uVar2 != 0x31) && (uVar2 < 0x32))" (( "(") (binary_expression "(uVar2 != 0x31) && (uVar2 < 0x32)" (parenthesized_expression "(uVar2 != 0x31)" (( "(") (binary_expression "uVar2 != 0x31" (identifier "uVar2") (!= "!=") (number_literal "0x31")) () ")")) (&& "&&") (parenthesized_expression "(uVar2 < 0x32)" (( "(") (binary_expression "uVar2 < 0x32" (identifier "uVar2") (< "<") (number_literal "0x32")) () ")"))) () ")")) (compound_statement "{\nLAB_00302e3e:\n            if ((uVar2 != 1) && (uVar2 == 3)) goto LAB_00302e52;\n          }" ({ "{") (labeled_statement "LAB_00302e3e:\n            if ((uVar2 != 1) && (uVar2 == 3)) goto LAB_00302e52;" (statement_identifier "LAB_00302e3e") (: ":") (if_statement "if ((uVar2 != 1) && (uVar2 == 3)) goto LAB_00302e52;" (if "if") (parenthesized_expression "((uVar2 != 1) && (uVar2 == 3))" (( "(") (binary_expression "(uVar2 != 1) && (uVar2 == 3)" (parenthesized_expression "(uVar2 != 1)" (( "(") (binary_expression "uVar2 != 1" (identifier "uVar2") (!= "!=") (number_literal "1")) () ")")) (&& "&&") (parenthesized_expression "(uVar2 == 3)" (( "(") (binary_expression "uVar2 == 3" (identifier "uVar2") (== "==") (number_literal "3")) () ")"))) () ")")) (goto_statement "goto LAB_00302e52;" (goto "goto") (statement_identifier "LAB_00302e52") (; ";")))) (} "}")))) (goto_statement "goto LAB_00302750;" (goto "goto") (statement_identifier "LAB_00302750") (; ";")) (} "}"))) (if_statement "if (uVar8 < 8) {\n          if (uVar8 == 4) {\n            pcVar3 = *(code **)(**(long **)(*param_1 + 0x10) + 0x18);\n            if (pcVar3 == FUN_001b8d10) {\n              cVar6 = (**(code **)(**(long **)(*param_1 + 0x10) + 0x1d0))();\n            }\n            else {\n              cVar6 = (*pcVar3)();\n            }\n            local_48 = *local_70;\n            if (cVar6 != '\0') {\n              local_48 = local_48 >> 0x18 | (local_48 & 0xff0000) >> 8 | (local_48 & 0xff00) << 8 |\n                         local_48 << 0x18;\n            }\n            puStack_50 = local_70 + 1;\n            local_70 = (uint *)((long)puStack_50 + (ulong)local_48);\n          }\n          else if (uVar8 < 5) {\n            if (uVar8 == 1) {\n              lVar10 = *param_1;\n              if (*(int *)(lVar10 + 100) == 4) goto LAB_00302e7d;\nLAB_00302a71:\n              pcVar3 = *(code **)(**(long **)(lVar10 + 0x10) + 0x18);\n              if (pcVar3 == FUN_001b8d10) {\n                cVar6 = (**(code **)(**(long **)(lVar10 + 0x10) + 0x1d0))();\n              }\n              else {\n                cVar6 = (*pcVar3)();\n              }\n              local_60 = *(uint **)local_70;\n              if (cVar6 != '\0') {\n                local_60 = (uint *)((ulong)local_60 >> 0x38 |\n                                    ((ulong)local_60 & 0xff000000000000) >> 0x28 |\n                                    ((ulong)local_60 & 0xff0000000000) >> 0x18 |\n                                    ((ulong)local_60 & 0xff00000000) >> 8 |\n                                    ((ulong)local_60 & 0xff000000) << 8 |\n                                    ((ulong)local_60 & 0xff0000) << 0x18 |\n                                    ((ulong)local_60 & 0xff00) << 0x28 | (long)local_60 << 0x38);\n              }\n              local_70 = local_70 + 2;\n              goto LAB_00302abe;\n            }\n            if (uVar8 != 3) {\n              return 0;\n            }\n            pcVar3 = *(code **)(**(long **)(*param_1 + 0x10) + 0x18);\n            if (pcVar3 == FUN_001b8d10) {\n              cVar6 = (**(code **)(**(long **)(*param_1 + 0x10) + 0x1d0))();\n            }\n            else {\n              cVar6 = (*pcVar3)();\n            }\n            uVar5 = (ushort)*local_70;\n            if (cVar6 != '\0') {\n              uVar5 = CONCAT11((byte)*local_70,*(byte *)((long)local_70 + 1));\n            }\n            local_48 = (uint)uVar5;\n            puStack_50 = (uint *)((long)local_70 + 2);\n            local_70 = (uint *)((long)puStack_50 + (ulong)local_48);\n          }\n          else {\n            if (uVar8 != 5) {\n              if (uVar8 != 6) {\n                return 0;\n              }\n              pcVar3 = *(code **)(**(long **)(*param_1 + 0x10) + 0x18);\n              if (pcVar3 == FUN_001b8d10) {\n                cVar6 = (**(code **)(**(long **)(*param_1 + 0x10) + 0x1d0))();\n              }\n              else {\n                cVar6 = (*pcVar3)();\n              }\n              uVar9 = *local_70;\n              if (cVar6 != '\0') {\n                uVar9 = uVar9 >> 0x18 | (uVar9 & 0xff0000) >> 8 | (uVar9 & 0xff00) << 8 |\n                        uVar9 << 0x18;\n              }\n              local_60 = (uint *)(ulong)uVar9;\n              local_70 = local_70 + 1;\n              goto LAB_00302d40;\n            }\n            pcVar3 = *(code **)(**(long **)(*param_1 + 0x10) + 0x18);\n            if (pcVar3 == FUN_001b8d10) {\n              cVar6 = (**(code **)(**(long **)(*param_1 + 0x10) + 0x1d0))();\n            }\n            else {\n              cVar6 = (*pcVar3)();\n            }\n            uVar5 = (ushort)*local_70;\n            if (cVar6 != '\0') {\n              uVar5 = CONCAT11((byte)*local_70,*(byte *)((long)local_70 + 1));\n            }\n            local_70 = (uint *)((long)local_70 + 2);\n            puStack_50 = (uint *)(ulong)uVar5;\n          }\n          goto joined_r0x00302748;\n        }" (if "if") (parenthesized_expression "(uVar8 < 8)" (( "(") (binary_expression "uVar8 < 8" (identifier "uVar8") (< "<") (number_literal "8")) () ")")) (compound_statement "{\n          if (uVar8 == 4) {\n            pcVar3 = *(code **)(**(long **)(*param_1 + 0x10) + 0x18);\n            if (pcVar3 == FUN_001b8d10) {\n              cVar6 = (**(code **)(**(long **)(*param_1 + 0x10) + 0x1d0))();\n            }\n            else {\n              cVar6 = (*pcVar3)();\n            }\n            local_48 = *local_70;\n            if (cVar6 != '\0') {\n              local_48 = local_48 >> 0x18 | (local_48 & 0xff0000) >> 8 | (local_48 & 0xff00) << 8 |\n                         local_48 << 0x18;\n            }\n            puStack_50 = local_70 + 1;\n            local_70 = (uint *)((long)puStack_50 + (ulong)local_48);\n          }\n          else if (uVar8 < 5) {\n            if (uVar8 == 1) {\n              lVar10 = *param_1;\n              if (*(int *)(lVar10 + 100) == 4) goto LAB_00302e7d;\nLAB_00302a71:\n              pcVar3 = *(code **)(**(long **)(lVar10 + 0x10) + 0x18);\n              if (pcVar3 == FUN_001b8d10) {\n                cVar6 = (**(code **)(**(long **)(lVar10 + 0x10) + 0x1d0))();\n              }\n              else {\n                cVar6 = (*pcVar3)();\n              }\n              local_60 = *(uint **)local_70;\n              if (cVar6 != '\0') {\n                local_60 = (uint *)((ulong)local_60 >> 0x38 |\n                                    ((ulong)local_60 & 0xff000000000000) >> 0x28 |\n                                    ((ulong)local_60 & 0xff0000000000) >> 0x18 |\n                                    ((ulong)local_60 & 0xff00000000) >> 8 |\n                                    ((ulong)local_60 & 0xff000000) << 8 |\n                                    ((ulong)local_60 & 0xff0000) << 0x18 |\n                                    ((ulong)local_60 & 0xff00) << 0x28 | (long)local_60 << 0x38);\n              }\n              local_70 = local_70 + 2;\n              goto LAB_00302abe;\n            }\n            if (uVar8 != 3) {\n              return 0;\n            }\n            pcVar3 = *(code **)(**(long **)(*param_1 + 0x10) + 0x18);\n            if (pcVar3 == FUN_001b8d10) {\n              cVar6 = (**(code **)(**(long **)(*param_1 + 0x10) + 0x1d0))();\n            }\n            else {\n              cVar6 = (*pcVar3)();\n            }\n            uVar5 = (ushort)*local_70;\n            if (cVar6 != '\0') {\n              uVar5 = CONCAT11((byte)*local_70,*(byte *)((long)local_70 + 1));\n            }\n            local_48 = (uint)uVar5;\n            puStack_50 = (uint *)((long)local_70 + 2);\n            local_70 = (uint *)((long)puStack_50 + (ulong)local_48);\n          }\n          else {\n            if (uVar8 != 5) {\n              if (uVar8 != 6) {\n                return 0;\n              }\n              pcVar3 = *(code **)(**(long **)(*param_1 + 0x10) + 0x18);\n              if (pcVar3 == FUN_001b8d10) {\n                cVar6 = (**(code **)(**(long **)(*param_1 + 0x10) + 0x1d0))();\n              }\n              else {\n                cVar6 = (*pcVar3)();\n              }\n              uVar9 = *local_70;\n              if (cVar6 != '\0') {\n                uVar9 = uVar9 >> 0x18 | (uVar9 & 0xff0000) >> 8 | (uVar9 & 0xff00) << 8 |\n                        uVar9 << 0x18;\n              }\n              local_60 = (uint *)(ulong)uVar9;\n              local_70 = local_70 + 1;\n              goto LAB_00302d40;\n            }\n            pcVar3 = *(code **)(**(long **)(*param_1 + 0x10) + 0x18);\n            if (pcVar3 == FUN_001b8d10) {\n              cVar6 = (**(code **)(**(long **)(*param_1 + 0x10) + 0x1d0))();\n            }\n            else {\n              cVar6 = (*pcVar3)();\n            }\n            uVar5 = (ushort)*local_70;\n            if (cVar6 != '\0') {\n              uVar5 = CONCAT11((byte)*local_70,*(byte *)((long)local_70 + 1));\n            }\n            local_70 = (uint *)((long)local_70 + 2);\n            puStack_50 = (uint *)(ulong)uVar5;\n          }\n          goto joined_r0x00302748;\n        }" ({ "{") (if_statement "if (uVar8 == 4) {\n            pcVar3 = *(code **)(**(long **)(*param_1 + 0x10) + 0x18);\n            if (pcVar3 == FUN_001b8d10) {\n              cVar6 = (**(code **)(**(long **)(*param_1 + 0x10) + 0x1d0))();\n            }\n            else {\n              cVar6 = (*pcVar3)();\n            }\n            local_48 = *local_70;\n            if (cVar6 != '\0') {\n              local_48 = local_48 >> 0x18 | (local_48 & 0xff0000) >> 8 | (local_48 & 0xff00) << 8 |\n                         local_48 << 0x18;\n            }\n            puStack_50 = local_70 + 1;\n            local_70 = (uint *)((long)puStack_50 + (ulong)local_48);\n          }\n          else if (uVar8 < 5) {\n            if (uVar8 == 1) {\n              lVar10 = *param_1;\n              if (*(int *)(lVar10 + 100) == 4) goto LAB_00302e7d;\nLAB_00302a71:\n              pcVar3 = *(code **)(**(long **)(lVar10 + 0x10) + 0x18);\n              if (pcVar3 == FUN_001b8d10) {\n                cVar6 = (**(code **)(**(long **)(lVar10 + 0x10) + 0x1d0))();\n              }\n              else {\n                cVar6 = (*pcVar3)();\n              }\n              local_60 = *(uint **)local_70;\n              if (cVar6 != '\0') {\n                local_60 = (uint *)((ulong)local_60 >> 0x38 |\n                                    ((ulong)local_60 & 0xff000000000000) >> 0x28 |\n                                    ((ulong)local_60 & 0xff0000000000) >> 0x18 |\n                                    ((ulong)local_60 & 0xff00000000) >> 8 |\n                                    ((ulong)local_60 & 0xff000000) << 8 |\n                                    ((ulong)local_60 & 0xff0000) << 0x18 |\n                                    ((ulong)local_60 & 0xff00) << 0x28 | (long)local_60 << 0x38);\n              }\n              local_70 = local_70 + 2;\n              goto LAB_00302abe;\n            }\n            if (uVar8 != 3) {\n              return 0;\n            }\n            pcVar3 = *(code **)(**(long **)(*param_1 + 0x10) + 0x18);\n            if (pcVar3 == FUN_001b8d10) {\n              cVar6 = (**(code **)(**(long **)(*param_1 + 0x10) + 0x1d0))();\n            }\n            else {\n              cVar6 = (*pcVar3)();\n            }\n            uVar5 = (ushort)*local_70;\n            if (cVar6 != '\0') {\n              uVar5 = CONCAT11((byte)*local_70,*(byte *)((long)local_70 + 1));\n            }\n            local_48 = (uint)uVar5;\n            puStack_50 = (uint *)((long)local_70 + 2);\n            local_70 = (uint *)((long)puStack_50 + (ulong)local_48);\n          }\n          else {\n            if (uVar8 != 5) {\n              if (uVar8 != 6) {\n                return 0;\n              }\n              pcVar3 = *(code **)(**(long **)(*param_1 + 0x10) + 0x18);\n              if (pcVar3 == FUN_001b8d10) {\n                cVar6 = (**(code **)(**(long **)(*param_1 + 0x10) + 0x1d0))();\n              }\n              else {\n                cVar6 = (*pcVar3)();\n              }\n              uVar9 = *local_70;\n              if (cVar6 != '\0') {\n                uVar9 = uVar9 >> 0x18 | (uVar9 & 0xff0000) >> 8 | (uVar9 & 0xff00) << 8 |\n                        uVar9 << 0x18;\n              }\n              local_60 = (uint *)(ulong)uVar9;\n              local_70 = local_70 + 1;\n              goto LAB_00302d40;\n            }\n            pcVar3 = *(code **)(**(long **)(*param_1 + 0x10) + 0x18);\n            if (pcVar3 == FUN_001b8d10) {\n              cVar6 = (**(code **)(**(long **)(*param_1 + 0x10) + 0x1d0))();\n            }\n            else {\n              cVar6 = (*pcVar3)();\n            }\n            uVar5 = (ushort)*local_70;\n            if (cVar6 != '\0') {\n              uVar5 = CONCAT11((byte)*local_70,*(byte *)((long)local_70 + 1));\n            }\n            local_70 = (uint *)((long)local_70 + 2);\n            puStack_50 = (uint *)(ulong)uVar5;\n          }" (if "if") (parenthesized_expression "(uVar8 == 4)" (( "(") (binary_expression "uVar8 == 4" (identifier "uVar8") (== "==") (number_literal "4")) () ")")) (compound_statement "{\n            pcVar3 = *(code **)(**(long **)(*param_1 + 0x10) + 0x18);\n            if (pcVar3 == FUN_001b8d10) {\n              cVar6 = (**(code **)(**(long **)(*param_1 + 0x10) + 0x1d0))();\n            }\n            else {\n              cVar6 = (*pcVar3)();\n            }\n            local_48 = *local_70;\n            if (cVar6 != '\0') {\n              local_48 = local_48 >> 0x18 | (local_48 & 0xff0000) >> 8 | (local_48 & 0xff00) << 8 |\n                         local_48 << 0x18;\n            }\n            puStack_50 = local_70 + 1;\n            local_70 = (uint *)((long)puStack_50 + (ulong)local_48);\n          }" ({ "{") (expression_statement "pcVar3 = *(code **)(**(long **)(*param_1 + 0x10) + 0x18);" (assignment_expression "pcVar3 = *(code **)(**(long **)(*param_1 + 0x10) + 0x18)" (identifier "pcVar3") (= "=") (pointer_expression "*(code **)(**(long **)(*param_1 + 0x10) + 0x18)" (* "*") (cast_expression "(code **)(**(long **)(*param_1 + 0x10) + 0x18)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(**(long **)(*param_1 + 0x10) + 0x18)" (( "(") (binary_expression "**(long **)(*param_1 + 0x10) + 0x18" (pointer_expression "**(long **)(*param_1 + 0x10)" (* "*") (pointer_expression "*(long **)(*param_1 + 0x10)" (* "*") (cast_expression "(long **)(*param_1 + 0x10)" (( "(") (type_descriptor "long **" (sized_type_specifier "long" (long "long")) (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(*param_1 + 0x10)" (( "(") (binary_expression "*param_1 + 0x10" (pointer_expression "*param_1" (* "*") (identifier "param_1")) (+ "+") (number_literal "0x10")) () ")"))))) (+ "+") (number_literal "0x18")) () ")"))))) (; ";")) (if_statement "if (pcVar3 == FUN_001b8d10) {\n              cVar6 = (**(code **)(**(long **)(*param_1 + 0x10) + 0x1d0))();\n            }\n            else {\n              cVar6 = (*pcVar3)();\n            }" (if "if") (parenthesized_expression "(pcVar3 == FUN_001b8d10)" (( "(") (binary_expression "pcVar3 == FUN_001b8d10" (identifier "pcVar3") (== "==") (identifier "FUN_001b8d10")) () ")")) (compound_statement "{\n              cVar6 = (**(code **)(**(long **)(*param_1 + 0x10) + 0x1d0))();\n            }" ({ "{") (expression_statement "cVar6 = (**(code **)(**(long **)(*param_1 + 0x10) + 0x1d0))();" (assignment_expression "cVar6 = (**(code **)(**(long **)(*param_1 + 0x10) + 0x1d0))()" (identifier "cVar6") (= "=") (call_expression "(**(code **)(**(long **)(*param_1 + 0x10) + 0x1d0))()" (parenthesized_expression "(**(code **)(**(long **)(*param_1 + 0x10) + 0x1d0))" (( "(") (pointer_expression "**(code **)(**(long **)(*param_1 + 0x10) + 0x1d0)" (* "*") (pointer_expression "*(code **)(**(long **)(*param_1 + 0x10) + 0x1d0)" (* "*") (cast_expression "(code **)(**(long **)(*param_1 + 0x10) + 0x1d0)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(**(long **)(*param_1 + 0x10) + 0x1d0)" (( "(") (binary_expression "**(long **)(*param_1 + 0x10) + 0x1d0" (pointer_expression "**(long **)(*param_1 + 0x10)" (* "*") (pointer_expression "*(long **)(*param_1 + 0x10)" (* "*") (cast_expression "(long **)(*param_1 + 0x10)" (( "(") (type_descriptor "long **" (sized_type_specifier "long" (long "long")) (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(*param_1 + 0x10)" (( "(") (binary_expression "*param_1 + 0x10" (pointer_expression "*param_1" (* "*") (identifier "param_1")) (+ "+") (number_literal "0x10")) () ")"))))) (+ "+") (number_literal "0x1d0")) () ")"))))) () ")")) (argument_list "()" (( "(") () ")")))) (; ";")) (} "}")) (else_clause "else {\n              cVar6 = (*pcVar3)();\n            }" (else "else") (compound_statement "{\n              cVar6 = (*pcVar3)();\n            }" ({ "{") (expression_statement "cVar6 = (*pcVar3)();" (assignment_expression "cVar6 = (*pcVar3)()" (identifier "cVar6") (= "=") (call_expression "(*pcVar3)()" (parenthesized_expression "(*pcVar3)" (( "(") (pointer_expression "*pcVar3" (* "*") (identifier "pcVar3")) () ")")) (argument_list "()" (( "(") () ")")))) (; ";")) (} "}")))) (expression_statement "local_48 = *local_70;" (assignment_expression "local_48 = *local_70" (identifier "local_48") (= "=") (pointer_expression "*local_70" (* "*") (identifier "local_70"))) (; ";")) (if_statement "if (cVar6 != '\0') {\n              local_48 = local_48 >> 0x18 | (local_48 & 0xff0000) >> 8 | (local_48 & 0xff00) << 8 |\n                         local_48 << 0x18;\n            }" (if "if") (parenthesized_expression "(cVar6 != '\0')" (( "(") (binary_expression "cVar6 != '\0'" (identifier "cVar6") (!= "!=") (char_literal "'\0'" (' "'") (escape_sequence "\0") (' "'"))) () ")")) (compound_statement "{\n              local_48 = local_48 >> 0x18 | (local_48 & 0xff0000) >> 8 | (local_48 & 0xff00) << 8 |\n                         local_48 << 0x18;\n            }" ({ "{") (expression_statement "local_48 = local_48 >> 0x18 | (local_48 & 0xff0000) >> 8 | (local_48 & 0xff00) << 8 |\n                         local_48 << 0x18;" (assignment_expression "local_48 = local_48 >> 0x18 | (local_48 & 0xff0000) >> 8 | (local_48 & 0xff00) << 8 |\n                         local_48 << 0x18" (identifier "local_48") (= "=") (binary_expression "local_48 >> 0x18 | (local_48 & 0xff0000) >> 8 | (local_48 & 0xff00) << 8 |\n                         local_48 << 0x18" (binary_expression "local_48 >> 0x18 | (local_48 & 0xff0000) >> 8 | (local_48 & 0xff00) << 8" (binary_expression "local_48 >> 0x18 | (local_48 & 0xff0000) >> 8" (binary_expression "local_48 >> 0x18" (identifier "local_48") (>> ">>") (number_literal "0x18")) (| "|") (binary_expression "(local_48 & 0xff0000) >> 8" (parenthesized_expression "(local_48 & 0xff0000)" (( "(") (binary_expression "local_48 & 0xff0000" (identifier "local_48") (& "&") (number_literal "0xff0000")) () ")")) (>> ">>") (number_literal "8"))) (| "|") (binary_expression "(local_48 & 0xff00) << 8" (parenthesized_expression "(local_48 & 0xff00)" (( "(") (binary_expression "local_48 & 0xff00" (identifier "local_48") (& "&") (number_literal "0xff00")) () ")")) (<< "<<") (number_literal "8"))) (| "|") (binary_expression "local_48 << 0x18" (identifier "local_48") (<< "<<") (number_literal "0x18")))) (; ";")) (} "}"))) (expression_statement "puStack_50 = local_70 + 1;" (assignment_expression "puStack_50 = local_70 + 1" (identifier "puStack_50") (= "=") (binary_expression "local_70 + 1" (identifier "local_70") (+ "+") (number_literal "1"))) (; ";")) (expression_statement "local_70 = (uint *)((long)puStack_50 + (ulong)local_48);" (assignment_expression "local_70 = (uint *)((long)puStack_50 + (ulong)local_48)" (identifier "local_70") (= "=") (cast_expression "(uint *)((long)puStack_50 + (ulong)local_48)" (( "(") (type_descriptor "uint *" (type_identifier "uint") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "((long)puStack_50 + (ulong)local_48)" (( "(") (binary_expression "(long)puStack_50 + (ulong)local_48" (cast_expression "(long)puStack_50" (( "(") (type_descriptor "long" (sized_type_specifier "long" (long "long"))) () ")") (identifier "puStack_50")) (+ "+") (cast_expression "(ulong)local_48" (( "(") (type_descriptor "ulong" (type_identifier "ulong")) () ")") (identifier "local_48"))) () ")")))) (; ";")) (} "}")) (else_clause "else if (uVar8 < 5) {\n            if (uVar8 == 1) {\n              lVar10 = *param_1;\n              if (*(int *)(lVar10 + 100) == 4) goto LAB_00302e7d;\nLAB_00302a71:\n              pcVar3 = *(code **)(**(long **)(lVar10 + 0x10) + 0x18);\n              if (pcVar3 == FUN_001b8d10) {\n                cVar6 = (**(code **)(**(long **)(lVar10 + 0x10) + 0x1d0))();\n              }\n              else {\n                cVar6 = (*pcVar3)();\n              }\n              local_60 = *(uint **)local_70;\n              if (cVar6 != '\0') {\n                local_60 = (uint *)((ulong)local_60 >> 0x38 |\n                                    ((ulong)local_60 & 0xff000000000000) >> 0x28 |\n                                    ((ulong)local_60 & 0xff0000000000) >> 0x18 |\n                                    ((ulong)local_60 & 0xff00000000) >> 8 |\n                                    ((ulong)local_60 & 0xff000000) << 8 |\n                                    ((ulong)local_60 & 0xff0000) << 0x18 |\n                                    ((ulong)local_60 & 0xff00) << 0x28 | (long)local_60 << 0x38);\n              }\n              local_70 = local_70 + 2;\n              goto LAB_00302abe;\n            }\n            if (uVar8 != 3) {\n              return 0;\n            }\n            pcVar3 = *(code **)(**(long **)(*param_1 + 0x10) + 0x18);\n            if (pcVar3 == FUN_001b8d10) {\n              cVar6 = (**(code **)(**(long **)(*param_1 + 0x10) + 0x1d0))();\n            }\n            else {\n              cVar6 = (*pcVar3)();\n            }\n            uVar5 = (ushort)*local_70;\n            if (cVar6 != '\0') {\n              uVar5 = CONCAT11((byte)*local_70,*(byte *)((long)local_70 + 1));\n            }\n            local_48 = (uint)uVar5;\n            puStack_50 = (uint *)((long)local_70 + 2);\n            local_70 = (uint *)((long)puStack_50 + (ulong)local_48);\n          }\n          else {\n            if (uVar8 != 5) {\n              if (uVar8 != 6) {\n                return 0;\n              }\n              pcVar3 = *(code **)(**(long **)(*param_1 + 0x10) + 0x18);\n              if (pcVar3 == FUN_001b8d10) {\n                cVar6 = (**(code **)(**(long **)(*param_1 + 0x10) + 0x1d0))();\n              }\n              else {\n                cVar6 = (*pcVar3)();\n              }\n              uVar9 = *local_70;\n              if (cVar6 != '\0') {\n                uVar9 = uVar9 >> 0x18 | (uVar9 & 0xff0000) >> 8 | (uVar9 & 0xff00) << 8 |\n                        uVar9 << 0x18;\n              }\n              local_60 = (uint *)(ulong)uVar9;\n              local_70 = local_70 + 1;\n              goto LAB_00302d40;\n            }\n            pcVar3 = *(code **)(**(long **)(*param_1 + 0x10) + 0x18);\n            if (pcVar3 == FUN_001b8d10) {\n              cVar6 = (**(code **)(**(long **)(*param_1 + 0x10) + 0x1d0))();\n            }\n            else {\n              cVar6 = (*pcVar3)();\n            }\n            uVar5 = (ushort)*local_70;\n            if (cVar6 != '\0') {\n              uVar5 = CONCAT11((byte)*local_70,*(byte *)((long)local_70 + 1));\n            }\n            local_70 = (uint *)((long)local_70 + 2);\n            puStack_50 = (uint *)(ulong)uVar5;\n          }" (else "else") (if_statement "if (uVar8 < 5) {\n            if (uVar8 == 1) {\n              lVar10 = *param_1;\n              if (*(int *)(lVar10 + 100) == 4) goto LAB_00302e7d;\nLAB_00302a71:\n              pcVar3 = *(code **)(**(long **)(lVar10 + 0x10) + 0x18);\n              if (pcVar3 == FUN_001b8d10) {\n                cVar6 = (**(code **)(**(long **)(lVar10 + 0x10) + 0x1d0))();\n              }\n              else {\n                cVar6 = (*pcVar3)();\n              }\n              local_60 = *(uint **)local_70;\n              if (cVar6 != '\0') {\n                local_60 = (uint *)((ulong)local_60 >> 0x38 |\n                                    ((ulong)local_60 & 0xff000000000000) >> 0x28 |\n                                    ((ulong)local_60 & 0xff0000000000) >> 0x18 |\n                                    ((ulong)local_60 & 0xff00000000) >> 8 |\n                                    ((ulong)local_60 & 0xff000000) << 8 |\n                                    ((ulong)local_60 & 0xff0000) << 0x18 |\n                                    ((ulong)local_60 & 0xff00) << 0x28 | (long)local_60 << 0x38);\n              }\n              local_70 = local_70 + 2;\n              goto LAB_00302abe;\n            }\n            if (uVar8 != 3) {\n              return 0;\n            }\n            pcVar3 = *(code **)(**(long **)(*param_1 + 0x10) + 0x18);\n            if (pcVar3 == FUN_001b8d10) {\n              cVar6 = (**(code **)(**(long **)(*param_1 + 0x10) + 0x1d0))();\n            }\n            else {\n              cVar6 = (*pcVar3)();\n            }\n            uVar5 = (ushort)*local_70;\n            if (cVar6 != '\0') {\n              uVar5 = CONCAT11((byte)*local_70,*(byte *)((long)local_70 + 1));\n            }\n            local_48 = (uint)uVar5;\n            puStack_50 = (uint *)((long)local_70 + 2);\n            local_70 = (uint *)((long)puStack_50 + (ulong)local_48);\n          }\n          else {\n            if (uVar8 != 5) {\n              if (uVar8 != 6) {\n                return 0;\n              }\n              pcVar3 = *(code **)(**(long **)(*param_1 + 0x10) + 0x18);\n              if (pcVar3 == FUN_001b8d10) {\n                cVar6 = (**(code **)(**(long **)(*param_1 + 0x10) + 0x1d0))();\n              }\n              else {\n                cVar6 = (*pcVar3)();\n              }\n              uVar9 = *local_70;\n              if (cVar6 != '\0') {\n                uVar9 = uVar9 >> 0x18 | (uVar9 & 0xff0000) >> 8 | (uVar9 & 0xff00) << 8 |\n                        uVar9 << 0x18;\n              }\n              local_60 = (uint *)(ulong)uVar9;\n              local_70 = local_70 + 1;\n              goto LAB_00302d40;\n            }\n            pcVar3 = *(code **)(**(long **)(*param_1 + 0x10) + 0x18);\n            if (pcVar3 == FUN_001b8d10) {\n              cVar6 = (**(code **)(**(long **)(*param_1 + 0x10) + 0x1d0))();\n            }\n            else {\n              cVar6 = (*pcVar3)();\n            }\n            uVar5 = (ushort)*local_70;\n            if (cVar6 != '\0') {\n              uVar5 = CONCAT11((byte)*local_70,*(byte *)((long)local_70 + 1));\n            }\n            local_70 = (uint *)((long)local_70 + 2);\n            puStack_50 = (uint *)(ulong)uVar5;\n          }" (if "if") (parenthesized_expression "(uVar8 < 5)" (( "(") (binary_expression "uVar8 < 5" (identifier "uVar8") (< "<") (number_literal "5")) () ")")) (compound_statement "{\n            if (uVar8 == 1) {\n              lVar10 = *param_1;\n              if (*(int *)(lVar10 + 100) == 4) goto LAB_00302e7d;\nLAB_00302a71:\n              pcVar3 = *(code **)(**(long **)(lVar10 + 0x10) + 0x18);\n              if (pcVar3 == FUN_001b8d10) {\n                cVar6 = (**(code **)(**(long **)(lVar10 + 0x10) + 0x1d0))();\n              }\n              else {\n                cVar6 = (*pcVar3)();\n              }\n              local_60 = *(uint **)local_70;\n              if (cVar6 != '\0') {\n                local_60 = (uint *)((ulong)local_60 >> 0x38 |\n                                    ((ulong)local_60 & 0xff000000000000) >> 0x28 |\n                                    ((ulong)local_60 & 0xff0000000000) >> 0x18 |\n                                    ((ulong)local_60 & 0xff00000000) >> 8 |\n                                    ((ulong)local_60 & 0xff000000) << 8 |\n                                    ((ulong)local_60 & 0xff0000) << 0x18 |\n                                    ((ulong)local_60 & 0xff00) << 0x28 | (long)local_60 << 0x38);\n              }\n              local_70 = local_70 + 2;\n              goto LAB_00302abe;\n            }\n            if (uVar8 != 3) {\n              return 0;\n            }\n            pcVar3 = *(code **)(**(long **)(*param_1 + 0x10) + 0x18);\n            if (pcVar3 == FUN_001b8d10) {\n              cVar6 = (**(code **)(**(long **)(*param_1 + 0x10) + 0x1d0))();\n            }\n            else {\n              cVar6 = (*pcVar3)();\n            }\n            uVar5 = (ushort)*local_70;\n            if (cVar6 != '\0') {\n              uVar5 = CONCAT11((byte)*local_70,*(byte *)((long)local_70 + 1));\n            }\n            local_48 = (uint)uVar5;\n            puStack_50 = (uint *)((long)local_70 + 2);\n            local_70 = (uint *)((long)puStack_50 + (ulong)local_48);\n          }" ({ "{") (if_statement "if (uVar8 == 1) {\n              lVar10 = *param_1;\n              if (*(int *)(lVar10 + 100) == 4) goto LAB_00302e7d;\nLAB_00302a71:\n              pcVar3 = *(code **)(**(long **)(lVar10 + 0x10) + 0x18);\n              if (pcVar3 == FUN_001b8d10) {\n                cVar6 = (**(code **)(**(long **)(lVar10 + 0x10) + 0x1d0))();\n              }\n              else {\n                cVar6 = (*pcVar3)();\n              }\n              local_60 = *(uint **)local_70;\n              if (cVar6 != '\0') {\n                local_60 = (uint *)((ulong)local_60 >> 0x38 |\n                                    ((ulong)local_60 & 0xff000000000000) >> 0x28 |\n                                    ((ulong)local_60 & 0xff0000000000) >> 0x18 |\n                                    ((ulong)local_60 & 0xff00000000) >> 8 |\n                                    ((ulong)local_60 & 0xff000000) << 8 |\n                                    ((ulong)local_60 & 0xff0000) << 0x18 |\n                                    ((ulong)local_60 & 0xff00) << 0x28 | (long)local_60 << 0x38);\n              }\n              local_70 = local_70 + 2;\n              goto LAB_00302abe;\n            }" (if "if") (parenthesized_expression "(uVar8 == 1)" (( "(") (binary_expression "uVar8 == 1" (identifier "uVar8") (== "==") (number_literal "1")) () ")")) (compound_statement "{\n              lVar10 = *param_1;\n              if (*(int *)(lVar10 + 100) == 4) goto LAB_00302e7d;\nLAB_00302a71:\n              pcVar3 = *(code **)(**(long **)(lVar10 + 0x10) + 0x18);\n              if (pcVar3 == FUN_001b8d10) {\n                cVar6 = (**(code **)(**(long **)(lVar10 + 0x10) + 0x1d0))();\n              }\n              else {\n                cVar6 = (*pcVar3)();\n              }\n              local_60 = *(uint **)local_70;\n              if (cVar6 != '\0') {\n                local_60 = (uint *)((ulong)local_60 >> 0x38 |\n                                    ((ulong)local_60 & 0xff000000000000) >> 0x28 |\n                                    ((ulong)local_60 & 0xff0000000000) >> 0x18 |\n                                    ((ulong)local_60 & 0xff00000000) >> 8 |\n                                    ((ulong)local_60 & 0xff000000) << 8 |\n                                    ((ulong)local_60 & 0xff0000) << 0x18 |\n                                    ((ulong)local_60 & 0xff00) << 0x28 | (long)local_60 << 0x38);\n              }\n              local_70 = local_70 + 2;\n              goto LAB_00302abe;\n            }" ({ "{") (expression_statement "lVar10 = *param_1;" (assignment_expression "lVar10 = *param_1" (identifier "lVar10") (= "=") (pointer_expression "*param_1" (* "*") (identifier "param_1"))) (; ";")) (if_statement "if (*(int *)(lVar10 + 100) == 4) goto LAB_00302e7d;" (if "if") (parenthesized_expression "(*(int *)(lVar10 + 100) == 4)" (( "(") (binary_expression "*(int *)(lVar10 + 100) == 4" (pointer_expression "*(int *)(lVar10 + 100)" (* "*") (cast_expression "(int *)(lVar10 + 100)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(lVar10 + 100)" (( "(") (binary_expression "lVar10 + 100" (identifier "lVar10") (+ "+") (number_literal "100")) () ")")))) (== "==") (number_literal "4")) () ")")) (goto_statement "goto LAB_00302e7d;" (goto "goto") (statement_identifier "LAB_00302e7d") (; ";"))) (labeled_statement "LAB_00302a71:\n              pcVar3 = *(code **)(**(long **)(lVar10 + 0x10) + 0x18);" (statement_identifier "LAB_00302a71") (: ":") (expression_statement "pcVar3 = *(code **)(**(long **)(lVar10 + 0x10) + 0x18);" (assignment_expression "pcVar3 = *(code **)(**(long **)(lVar10 + 0x10) + 0x18)" (identifier "pcVar3") (= "=") (pointer_expression "*(code **)(**(long **)(lVar10 + 0x10) + 0x18)" (* "*") (cast_expression "(code **)(**(long **)(lVar10 + 0x10) + 0x18)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(**(long **)(lVar10 + 0x10) + 0x18)" (( "(") (binary_expression "**(long **)(lVar10 + 0x10) + 0x18" (pointer_expression "**(long **)(lVar10 + 0x10)" (* "*") (pointer_expression "*(long **)(lVar10 + 0x10)" (* "*") (cast_expression "(long **)(lVar10 + 0x10)" (( "(") (type_descriptor "long **" (sized_type_specifier "long" (long "long")) (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(lVar10 + 0x10)" (( "(") (binary_expression "lVar10 + 0x10" (identifier "lVar10") (+ "+") (number_literal "0x10")) () ")"))))) (+ "+") (number_literal "0x18")) () ")"))))) (; ";"))) (if_statement "if (pcVar3 == FUN_001b8d10) {\n                cVar6 = (**(code **)(**(long **)(lVar10 + 0x10) + 0x1d0))();\n              }\n              else {\n                cVar6 = (*pcVar3)();\n              }" (if "if") (parenthesized_expression "(pcVar3 == FUN_001b8d10)" (( "(") (binary_expression "pcVar3 == FUN_001b8d10" (identifier "pcVar3") (== "==") (identifier "FUN_001b8d10")) () ")")) (compound_statement "{\n                cVar6 = (**(code **)(**(long **)(lVar10 + 0x10) + 0x1d0))();\n              }" ({ "{") (expression_statement "cVar6 = (**(code **)(**(long **)(lVar10 + 0x10) + 0x1d0))();" (assignment_expression "cVar6 = (**(code **)(**(long **)(lVar10 + 0x10) + 0x1d0))()" (identifier "cVar6") (= "=") (call_expression "(**(code **)(**(long **)(lVar10 + 0x10) + 0x1d0))()" (parenthesized_expression "(**(code **)(**(long **)(lVar10 + 0x10) + 0x1d0))" (( "(") (pointer_expression "**(code **)(**(long **)(lVar10 + 0x10) + 0x1d0)" (* "*") (pointer_expression "*(code **)(**(long **)(lVar10 + 0x10) + 0x1d0)" (* "*") (cast_expression "(code **)(**(long **)(lVar10 + 0x10) + 0x1d0)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(**(long **)(lVar10 + 0x10) + 0x1d0)" (( "(") (binary_expression "**(long **)(lVar10 + 0x10) + 0x1d0" (pointer_expression "**(long **)(lVar10 + 0x10)" (* "*") (pointer_expression "*(long **)(lVar10 + 0x10)" (* "*") (cast_expression "(long **)(lVar10 + 0x10)" (( "(") (type_descriptor "long **" (sized_type_specifier "long" (long "long")) (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(lVar10 + 0x10)" (( "(") (binary_expression "lVar10 + 0x10" (identifier "lVar10") (+ "+") (number_literal "0x10")) () ")"))))) (+ "+") (number_literal "0x1d0")) () ")"))))) () ")")) (argument_list "()" (( "(") () ")")))) (; ";")) (} "}")) (else_clause "else {\n                cVar6 = (*pcVar3)();\n              }" (else "else") (compound_statement "{\n                cVar6 = (*pcVar3)();\n              }" ({ "{") (expression_statement "cVar6 = (*pcVar3)();" (assignment_expression "cVar6 = (*pcVar3)()" (identifier "cVar6") (= "=") (call_expression "(*pcVar3)()" (parenthesized_expression "(*pcVar3)" (( "(") (pointer_expression "*pcVar3" (* "*") (identifier "pcVar3")) () ")")) (argument_list "()" (( "(") () ")")))) (; ";")) (} "}")))) (expression_statement "local_60 = *(uint **)local_70;" (assignment_expression "local_60 = *(uint **)local_70" (identifier "local_60") (= "=") (pointer_expression "*(uint **)local_70" (* "*") (cast_expression "(uint **)local_70" (( "(") (type_descriptor "uint **" (type_identifier "uint") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (identifier "local_70")))) (; ";")) (if_statement "if (cVar6 != '\0') {\n                local_60 = (uint *)((ulong)local_60 >> 0x38 |\n                                    ((ulong)local_60 & 0xff000000000000) >> 0x28 |\n                                    ((ulong)local_60 & 0xff0000000000) >> 0x18 |\n                                    ((ulong)local_60 & 0xff00000000) >> 8 |\n                                    ((ulong)local_60 & 0xff000000) << 8 |\n                                    ((ulong)local_60 & 0xff0000) << 0x18 |\n                                    ((ulong)local_60 & 0xff00) << 0x28 | (long)local_60 << 0x38);\n              }" (if "if") (parenthesized_expression "(cVar6 != '\0')" (( "(") (binary_expression "cVar6 != '\0'" (identifier "cVar6") (!= "!=") (char_literal "'\0'" (' "'") (escape_sequence "\0") (' "'"))) () ")")) (compound_statement "{\n                local_60 = (uint *)((ulong)local_60 >> 0x38 |\n                                    ((ulong)local_60 & 0xff000000000000) >> 0x28 |\n                                    ((ulong)local_60 & 0xff0000000000) >> 0x18 |\n                                    ((ulong)local_60 & 0xff00000000) >> 8 |\n                                    ((ulong)local_60 & 0xff000000) << 8 |\n                                    ((ulong)local_60 & 0xff0000) << 0x18 |\n                                    ((ulong)local_60 & 0xff00) << 0x28 | (long)local_60 << 0x38);\n              }" ({ "{") (expression_statement "local_60 = (uint *)((ulong)local_60 >> 0x38 |\n                                    ((ulong)local_60 & 0xff000000000000) >> 0x28 |\n                                    ((ulong)local_60 & 0xff0000000000) >> 0x18 |\n                                    ((ulong)local_60 & 0xff00000000) >> 8 |\n                                    ((ulong)local_60 & 0xff000000) << 8 |\n                                    ((ulong)local_60 & 0xff0000) << 0x18 |\n                                    ((ulong)local_60 & 0xff00) << 0x28 | (long)local_60 << 0x38);" (assignment_expression "local_60 = (uint *)((ulong)local_60 >> 0x38 |\n                                    ((ulong)local_60 & 0xff000000000000) >> 0x28 |\n                                    ((ulong)local_60 & 0xff0000000000) >> 0x18 |\n                                    ((ulong)local_60 & 0xff00000000) >> 8 |\n                                    ((ulong)local_60 & 0xff000000) << 8 |\n                                    ((ulong)local_60 & 0xff0000) << 0x18 |\n                                    ((ulong)local_60 & 0xff00) << 0x28 | (long)local_60 << 0x38)" (identifier "local_60") (= "=") (cast_expression "(uint *)((ulong)local_60 >> 0x38 |\n                                    ((ulong)local_60 & 0xff000000000000) >> 0x28 |\n                                    ((ulong)local_60 & 0xff0000000000) >> 0x18 |\n                                    ((ulong)local_60 & 0xff00000000) >> 8 |\n                                    ((ulong)local_60 & 0xff000000) << 8 |\n                                    ((ulong)local_60 & 0xff0000) << 0x18 |\n                                    ((ulong)local_60 & 0xff00) << 0x28 | (long)local_60 << 0x38)" (( "(") (type_descriptor "uint *" (type_identifier "uint") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "((ulong)local_60 >> 0x38 |\n                                    ((ulong)local_60 & 0xff000000000000) >> 0x28 |\n                                    ((ulong)local_60 & 0xff0000000000) >> 0x18 |\n                                    ((ulong)local_60 & 0xff00000000) >> 8 |\n                                    ((ulong)local_60 & 0xff000000) << 8 |\n                                    ((ulong)local_60 & 0xff0000) << 0x18 |\n                                    ((ulong)local_60 & 0xff00) << 0x28 | (long)local_60 << 0x38)" (( "(") (binary_expression "(ulong)local_60 >> 0x38 |\n                                    ((ulong)local_60 & 0xff000000000000) >> 0x28 |\n                                    ((ulong)local_60 & 0xff0000000000) >> 0x18 |\n                                    ((ulong)local_60 & 0xff00000000) >> 8 |\n                                    ((ulong)local_60 & 0xff000000) << 8 |\n                                    ((ulong)local_60 & 0xff0000) << 0x18 |\n                                    ((ulong)local_60 & 0xff00) << 0x28 | (long)local_60 << 0x38" (binary_expression "(ulong)local_60 >> 0x38 |\n                                    ((ulong)local_60 & 0xff000000000000) >> 0x28 |\n                                    ((ulong)local_60 & 0xff0000000000) >> 0x18 |\n                                    ((ulong)local_60 & 0xff00000000) >> 8 |\n                                    ((ulong)local_60 & 0xff000000) << 8 |\n                                    ((ulong)local_60 & 0xff0000) << 0x18 |\n                                    ((ulong)local_60 & 0xff00) << 0x28" (binary_expression "(ulong)local_60 >> 0x38 |\n                                    ((ulong)local_60 & 0xff000000000000) >> 0x28 |\n                                    ((ulong)local_60 & 0xff0000000000) >> 0x18 |\n                                    ((ulong)local_60 & 0xff00000000) >> 8 |\n                                    ((ulong)local_60 & 0xff000000) << 8 |\n                                    ((ulong)local_60 & 0xff0000) << 0x18" (binary_expression "(ulong)local_60 >> 0x38 |\n                                    ((ulong)local_60 & 0xff000000000000) >> 0x28 |\n                                    ((ulong)local_60 & 0xff0000000000) >> 0x18 |\n                                    ((ulong)local_60 & 0xff00000000) >> 8 |\n                                    ((ulong)local_60 & 0xff000000) << 8" (binary_expression "(ulong)local_60 >> 0x38 |\n                                    ((ulong)local_60 & 0xff000000000000) >> 0x28 |\n                                    ((ulong)local_60 & 0xff0000000000) >> 0x18 |\n                                    ((ulong)local_60 & 0xff00000000) >> 8" (binary_expression "(ulong)local_60 >> 0x38 |\n                                    ((ulong)local_60 & 0xff000000000000) >> 0x28 |\n                                    ((ulong)local_60 & 0xff0000000000) >> 0x18" (binary_expression "(ulong)local_60 >> 0x38 |\n                                    ((ulong)local_60 & 0xff000000000000) >> 0x28" (binary_expression "(ulong)local_60 >> 0x38" (cast_expression "(ulong)local_60" (( "(") (type_descriptor "ulong" (type_identifier "ulong")) () ")") (identifier "local_60")) (>> ">>") (number_literal "0x38")) (| "|") (binary_expression "((ulong)local_60 & 0xff000000000000) >> 0x28" (parenthesized_expression "((ulong)local_60 & 0xff000000000000)" (( "(") (binary_expression "(ulong)local_60 & 0xff000000000000" (cast_expression "(ulong)local_60" (( "(") (type_descriptor "ulong" (type_identifier "ulong")) () ")") (identifier "local_60")) (& "&") (number_literal "0xff000000000000")) () ")")) (>> ">>") (number_literal "0x28"))) (| "|") (binary_expression "((ulong)local_60 & 0xff0000000000) >> 0x18" (parenthesized_expression "((ulong)local_60 & 0xff0000000000)" (( "(") (binary_expression "(ulong)local_60 & 0xff0000000000" (cast_expression "(ulong)local_60" (( "(") (type_descriptor "ulong" (type_identifier "ulong")) () ")") (identifier "local_60")) (& "&") (number_literal "0xff0000000000")) () ")")) (>> ">>") (number_literal "0x18"))) (| "|") (binary_expression "((ulong)local_60 & 0xff00000000) >> 8" (parenthesized_expression "((ulong)local_60 & 0xff00000000)" (( "(") (binary_expression "(ulong)local_60 & 0xff00000000" (cast_expression "(ulong)local_60" (( "(") (type_descriptor "ulong" (type_identifier "ulong")) () ")") (identifier "local_60")) (& "&") (number_literal "0xff00000000")) () ")")) (>> ">>") (number_literal "8"))) (| "|") (binary_expression "((ulong)local_60 & 0xff000000) << 8" (parenthesized_expression "((ulong)local_60 & 0xff000000)" (( "(") (binary_expression "(ulong)local_60 & 0xff000000" (cast_expression "(ulong)local_60" (( "(") (type_descriptor "ulong" (type_identifier "ulong")) () ")") (identifier "local_60")) (& "&") (number_literal "0xff000000")) () ")")) (<< "<<") (number_literal "8"))) (| "|") (binary_expression "((ulong)local_60 & 0xff0000) << 0x18" (parenthesized_expression "((ulong)local_60 & 0xff0000)" (( "(") (binary_expression "(ulong)local_60 & 0xff0000" (cast_expression "(ulong)local_60" (( "(") (type_descriptor "ulong" (type_identifier "ulong")) () ")") (identifier "local_60")) (& "&") (number_literal "0xff0000")) () ")")) (<< "<<") (number_literal "0x18"))) (| "|") (binary_expression "((ulong)local_60 & 0xff00) << 0x28" (parenthesized_expression "((ulong)local_60 & 0xff00)" (( "(") (binary_expression "(ulong)local_60 & 0xff00" (cast_expression "(ulong)local_60" (( "(") (type_descriptor "ulong" (type_identifier "ulong")) () ")") (identifier "local_60")) (& "&") (number_literal "0xff00")) () ")")) (<< "<<") (number_literal "0x28"))) (| "|") (binary_expression "(long)local_60 << 0x38" (cast_expression "(long)local_60" (( "(") (type_descriptor "long" (sized_type_specifier "long" (long "long"))) () ")") (identifier "local_60")) (<< "<<") (number_literal "0x38"))) () ")")))) (; ";")) (} "}"))) (expression_statement "local_70 = local_70 + 2;" (assignment_expression "local_70 = local_70 + 2" (identifier "local_70") (= "=") (binary_expression "local_70 + 2" (identifier "local_70") (+ "+") (number_literal "2"))) (; ";")) (goto_statement "goto LAB_00302abe;" (goto "goto") (statement_identifier "LAB_00302abe") (; ";")) (} "}"))) (if_statement "if (uVar8 != 3) {\n              return 0;\n            }" (if "if") (parenthesized_expression "(uVar8 != 3)" (( "(") (binary_expression "uVar8 != 3" (identifier "uVar8") (!= "!=") (number_literal "3")) () ")")) (compound_statement "{\n              return 0;\n            }" ({ "{") (return_statement "return 0;" (return "return") (number_literal "0") (; ";")) (} "}"))) (expression_statement "pcVar3 = *(code **)(**(long **)(*param_1 + 0x10) + 0x18);" (assignment_expression "pcVar3 = *(code **)(**(long **)(*param_1 + 0x10) + 0x18)" (identifier "pcVar3") (= "=") (pointer_expression "*(code **)(**(long **)(*param_1 + 0x10) + 0x18)" (* "*") (cast_expression "(code **)(**(long **)(*param_1 + 0x10) + 0x18)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(**(long **)(*param_1 + 0x10) + 0x18)" (( "(") (binary_expression "**(long **)(*param_1 + 0x10) + 0x18" (pointer_expression "**(long **)(*param_1 + 0x10)" (* "*") (pointer_expression "*(long **)(*param_1 + 0x10)" (* "*") (cast_expression "(long **)(*param_1 + 0x10)" (( "(") (type_descriptor "long **" (sized_type_specifier "long" (long "long")) (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(*param_1 + 0x10)" (( "(") (binary_expression "*param_1 + 0x10" (pointer_expression "*param_1" (* "*") (identifier "param_1")) (+ "+") (number_literal "0x10")) () ")"))))) (+ "+") (number_literal "0x18")) () ")"))))) (; ";")) (if_statement "if (pcVar3 == FUN_001b8d10) {\n              cVar6 = (**(code **)(**(long **)(*param_1 + 0x10) + 0x1d0))();\n            }\n            else {\n              cVar6 = (*pcVar3)();\n            }" (if "if") (parenthesized_expression "(pcVar3 == FUN_001b8d10)" (( "(") (binary_expression "pcVar3 == FUN_001b8d10" (identifier "pcVar3") (== "==") (identifier "FUN_001b8d10")) () ")")) (compound_statement "{\n              cVar6 = (**(code **)(**(long **)(*param_1 + 0x10) + 0x1d0))();\n            }" ({ "{") (expression_statement "cVar6 = (**(code **)(**(long **)(*param_1 + 0x10) + 0x1d0))();" (assignment_expression "cVar6 = (**(code **)(**(long **)(*param_1 + 0x10) + 0x1d0))()" (identifier "cVar6") (= "=") (call_expression "(**(code **)(**(long **)(*param_1 + 0x10) + 0x1d0))()" (parenthesized_expression "(**(code **)(**(long **)(*param_1 + 0x10) + 0x1d0))" (( "(") (pointer_expression "**(code **)(**(long **)(*param_1 + 0x10) + 0x1d0)" (* "*") (pointer_expression "*(code **)(**(long **)(*param_1 + 0x10) + 0x1d0)" (* "*") (cast_expression "(code **)(**(long **)(*param_1 + 0x10) + 0x1d0)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(**(long **)(*param_1 + 0x10) + 0x1d0)" (( "(") (binary_expression "**(long **)(*param_1 + 0x10) + 0x1d0" (pointer_expression "**(long **)(*param_1 + 0x10)" (* "*") (pointer_expression "*(long **)(*param_1 + 0x10)" (* "*") (cast_expression "(long **)(*param_1 + 0x10)" (( "(") (type_descriptor "long **" (sized_type_specifier "long" (long "long")) (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(*param_1 + 0x10)" (( "(") (binary_expression "*param_1 + 0x10" (pointer_expression "*param_1" (* "*") (identifier "param_1")) (+ "+") (number_literal "0x10")) () ")"))))) (+ "+") (number_literal "0x1d0")) () ")"))))) () ")")) (argument_list "()" (( "(") () ")")))) (; ";")) (} "}")) (else_clause "else {\n              cVar6 = (*pcVar3)();\n            }" (else "else") (compound_statement "{\n              cVar6 = (*pcVar3)();\n            }" ({ "{") (expression_statement "cVar6 = (*pcVar3)();" (assignment_expression "cVar6 = (*pcVar3)()" (identifier "cVar6") (= "=") (call_expression "(*pcVar3)()" (parenthesized_expression "(*pcVar3)" (( "(") (pointer_expression "*pcVar3" (* "*") (identifier "pcVar3")) () ")")) (argument_list "()" (( "(") () ")")))) (; ";")) (} "}")))) (expression_statement "uVar5 = (ushort)*local_70;" (assignment_expression "uVar5 = (ushort)*local_70" (identifier "uVar5") (= "=") (binary_expression "(ushort)*local_70" (parenthesized_expression "(ushort)" (( "(") (identifier "ushort") () ")")) (* "*") (identifier "local_70"))) (; ";")) (if_statement "if (cVar6 != '\0') {\n              uVar5 = CONCAT11((byte)*local_70,*(byte *)((long)local_70 + 1));\n            }" (if "if") (parenthesized_expression "(cVar6 != '\0')" (( "(") (binary_expression "cVar6 != '\0'" (identifier "cVar6") (!= "!=") (char_literal "'\0'" (' "'") (escape_sequence "\0") (' "'"))) () ")")) (compound_statement "{\n              uVar5 = CONCAT11((byte)*local_70,*(byte *)((long)local_70 + 1));\n            }" ({ "{") (expression_statement "uVar5 = CONCAT11((byte)*local_70,*(byte *)((long)local_70 + 1));" (assignment_expression "uVar5 = CONCAT11((byte)*local_70,*(byte *)((long)local_70 + 1))" (identifier "uVar5") (= "=") (call_expression "CONCAT11((byte)*local_70,*(byte *)((long)local_70 + 1))" (identifier "CONCAT11") (argument_list "((byte)*local_70,*(byte *)((long)local_70 + 1))" (( "(") (binary_expression "(byte)*local_70" (parenthesized_expression "(byte)" (( "(") (identifier "byte") () ")")) (* "*") (identifier "local_70")) (, ",") (pointer_expression "*(byte *)((long)local_70 + 1)" (* "*") (cast_expression "(byte *)((long)local_70 + 1)" (( "(") (type_descriptor "byte *" (type_identifier "byte") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "((long)local_70 + 1)" (( "(") (binary_expression "(long)local_70 + 1" (cast_expression "(long)local_70" (( "(") (type_descriptor "long" (sized_type_specifier "long" (long "long"))) () ")") (identifier "local_70")) (+ "+") (number_literal "1")) () ")")))) () ")")))) (; ";")) (} "}"))) (expression_statement "local_48 = (uint)uVar5;" (assignment_expression "local_48 = (uint)uVar5" (identifier "local_48") (= "=") (cast_expression "(uint)uVar5" (( "(") (type_descriptor "uint" (type_identifier "uint")) () ")") (identifier "uVar5"))) (; ";")) (expression_statement "puStack_50 = (uint *)((long)local_70 + 2);" (assignment_expression "puStack_50 = (uint *)((long)local_70 + 2)" (identifier "puStack_50") (= "=") (cast_expression "(uint *)((long)local_70 + 2)" (( "(") (type_descriptor "uint *" (type_identifier "uint") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "((long)local_70 + 2)" (( "(") (binary_expression "(long)local_70 + 2" (cast_expression "(long)local_70" (( "(") (type_descriptor "long" (sized_type_specifier "long" (long "long"))) () ")") (identifier "local_70")) (+ "+") (number_literal "2")) () ")")))) (; ";")) (expression_statement "local_70 = (uint *)((long)puStack_50 + (ulong)local_48);" (assignment_expression "local_70 = (uint *)((long)puStack_50 + (ulong)local_48)" (identifier "local_70") (= "=") (cast_expression "(uint *)((long)puStack_50 + (ulong)local_48)" (( "(") (type_descriptor "uint *" (type_identifier "uint") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "((long)puStack_50 + (ulong)local_48)" (( "(") (binary_expression "(long)puStack_50 + (ulong)local_48" (cast_expression "(long)puStack_50" (( "(") (type_descriptor "long" (sized_type_specifier "long" (long "long"))) () ")") (identifier "puStack_50")) (+ "+") (cast_expression "(ulong)local_48" (( "(") (type_descriptor "ulong" (type_identifier "ulong")) () ")") (identifier "local_48"))) () ")")))) (; ";")) (} "}")) (else_clause "else {\n            if (uVar8 != 5) {\n              if (uVar8 != 6) {\n                return 0;\n              }\n              pcVar3 = *(code **)(**(long **)(*param_1 + 0x10) + 0x18);\n              if (pcVar3 == FUN_001b8d10) {\n                cVar6 = (**(code **)(**(long **)(*param_1 + 0x10) + 0x1d0))();\n              }\n              else {\n                cVar6 = (*pcVar3)();\n              }\n              uVar9 = *local_70;\n              if (cVar6 != '\0') {\n                uVar9 = uVar9 >> 0x18 | (uVar9 & 0xff0000) >> 8 | (uVar9 & 0xff00) << 8 |\n                        uVar9 << 0x18;\n              }\n              local_60 = (uint *)(ulong)uVar9;\n              local_70 = local_70 + 1;\n              goto LAB_00302d40;\n            }\n            pcVar3 = *(code **)(**(long **)(*param_1 + 0x10) + 0x18);\n            if (pcVar3 == FUN_001b8d10) {\n              cVar6 = (**(code **)(**(long **)(*param_1 + 0x10) + 0x1d0))();\n            }\n            else {\n              cVar6 = (*pcVar3)();\n            }\n            uVar5 = (ushort)*local_70;\n            if (cVar6 != '\0') {\n              uVar5 = CONCAT11((byte)*local_70,*(byte *)((long)local_70 + 1));\n            }\n            local_70 = (uint *)((long)local_70 + 2);\n            puStack_50 = (uint *)(ulong)uVar5;\n          }" (else "else") (compound_statement "{\n            if (uVar8 != 5) {\n              if (uVar8 != 6) {\n                return 0;\n              }\n              pcVar3 = *(code **)(**(long **)(*param_1 + 0x10) + 0x18);\n              if (pcVar3 == FUN_001b8d10) {\n                cVar6 = (**(code **)(**(long **)(*param_1 + 0x10) + 0x1d0))();\n              }\n              else {\n                cVar6 = (*pcVar3)();\n              }\n              uVar9 = *local_70;\n              if (cVar6 != '\0') {\n                uVar9 = uVar9 >> 0x18 | (uVar9 & 0xff0000) >> 8 | (uVar9 & 0xff00) << 8 |\n                        uVar9 << 0x18;\n              }\n              local_60 = (uint *)(ulong)uVar9;\n              local_70 = local_70 + 1;\n              goto LAB_00302d40;\n            }\n            pcVar3 = *(code **)(**(long **)(*param_1 + 0x10) + 0x18);\n            if (pcVar3 == FUN_001b8d10) {\n              cVar6 = (**(code **)(**(long **)(*param_1 + 0x10) + 0x1d0))();\n            }\n            else {\n              cVar6 = (*pcVar3)();\n            }\n            uVar5 = (ushort)*local_70;\n            if (cVar6 != '\0') {\n              uVar5 = CONCAT11((byte)*local_70,*(byte *)((long)local_70 + 1));\n            }\n            local_70 = (uint *)((long)local_70 + 2);\n            puStack_50 = (uint *)(ulong)uVar5;\n          }" ({ "{") (if_statement "if (uVar8 != 5) {\n              if (uVar8 != 6) {\n                return 0;\n              }\n              pcVar3 = *(code **)(**(long **)(*param_1 + 0x10) + 0x18);\n              if (pcVar3 == FUN_001b8d10) {\n                cVar6 = (**(code **)(**(long **)(*param_1 + 0x10) + 0x1d0))();\n              }\n              else {\n                cVar6 = (*pcVar3)();\n              }\n              uVar9 = *local_70;\n              if (cVar6 != '\0') {\n                uVar9 = uVar9 >> 0x18 | (uVar9 & 0xff0000) >> 8 | (uVar9 & 0xff00) << 8 |\n                        uVar9 << 0x18;\n              }\n              local_60 = (uint *)(ulong)uVar9;\n              local_70 = local_70 + 1;\n              goto LAB_00302d40;\n            }" (if "if") (parenthesized_expression "(uVar8 != 5)" (( "(") (binary_expression "uVar8 != 5" (identifier "uVar8") (!= "!=") (number_literal "5")) () ")")) (compound_statement "{\n              if (uVar8 != 6) {\n                return 0;\n              }\n              pcVar3 = *(code **)(**(long **)(*param_1 + 0x10) + 0x18);\n              if (pcVar3 == FUN_001b8d10) {\n                cVar6 = (**(code **)(**(long **)(*param_1 + 0x10) + 0x1d0))();\n              }\n              else {\n                cVar6 = (*pcVar3)();\n              }\n              uVar9 = *local_70;\n              if (cVar6 != '\0') {\n                uVar9 = uVar9 >> 0x18 | (uVar9 & 0xff0000) >> 8 | (uVar9 & 0xff00) << 8 |\n                        uVar9 << 0x18;\n              }\n              local_60 = (uint *)(ulong)uVar9;\n              local_70 = local_70 + 1;\n              goto LAB_00302d40;\n            }" ({ "{") (if_statement "if (uVar8 != 6) {\n                return 0;\n              }" (if "if") (parenthesized_expression "(uVar8 != 6)" (( "(") (binary_expression "uVar8 != 6" (identifier "uVar8") (!= "!=") (number_literal "6")) () ")")) (compound_statement "{\n                return 0;\n              }" ({ "{") (return_statement "return 0;" (return "return") (number_literal "0") (; ";")) (} "}"))) (expression_statement "pcVar3 = *(code **)(**(long **)(*param_1 + 0x10) + 0x18);" (assignment_expression "pcVar3 = *(code **)(**(long **)(*param_1 + 0x10) + 0x18)" (identifier "pcVar3") (= "=") (pointer_expression "*(code **)(**(long **)(*param_1 + 0x10) + 0x18)" (* "*") (cast_expression "(code **)(**(long **)(*param_1 + 0x10) + 0x18)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(**(long **)(*param_1 + 0x10) + 0x18)" (( "(") (binary_expression "**(long **)(*param_1 + 0x10) + 0x18" (pointer_expression "**(long **)(*param_1 + 0x10)" (* "*") (pointer_expression "*(long **)(*param_1 + 0x10)" (* "*") (cast_expression "(long **)(*param_1 + 0x10)" (( "(") (type_descriptor "long **" (sized_type_specifier "long" (long "long")) (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(*param_1 + 0x10)" (( "(") (binary_expression "*param_1 + 0x10" (pointer_expression "*param_1" (* "*") (identifier "param_1")) (+ "+") (number_literal "0x10")) () ")"))))) (+ "+") (number_literal "0x18")) () ")"))))) (; ";")) (if_statement "if (pcVar3 == FUN_001b8d10) {\n                cVar6 = (**(code **)(**(long **)(*param_1 + 0x10) + 0x1d0))();\n              }\n              else {\n                cVar6 = (*pcVar3)();\n              }" (if "if") (parenthesized_expression "(pcVar3 == FUN_001b8d10)" (( "(") (binary_expression "pcVar3 == FUN_001b8d10" (identifier "pcVar3") (== "==") (identifier "FUN_001b8d10")) () ")")) (compound_statement "{\n                cVar6 = (**(code **)(**(long **)(*param_1 + 0x10) + 0x1d0))();\n              }" ({ "{") (expression_statement "cVar6 = (**(code **)(**(long **)(*param_1 + 0x10) + 0x1d0))();" (assignment_expression "cVar6 = (**(code **)(**(long **)(*param_1 + 0x10) + 0x1d0))()" (identifier "cVar6") (= "=") (call_expression "(**(code **)(**(long **)(*param_1 + 0x10) + 0x1d0))()" (parenthesized_expression "(**(code **)(**(long **)(*param_1 + 0x10) + 0x1d0))" (( "(") (pointer_expression "**(code **)(**(long **)(*param_1 + 0x10) + 0x1d0)" (* "*") (pointer_expression "*(code **)(**(long **)(*param_1 + 0x10) + 0x1d0)" (* "*") (cast_expression "(code **)(**(long **)(*param_1 + 0x10) + 0x1d0)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(**(long **)(*param_1 + 0x10) + 0x1d0)" (( "(") (binary_expression "**(long **)(*param_1 + 0x10) + 0x1d0" (pointer_expression "**(long **)(*param_1 + 0x10)" (* "*") (pointer_expression "*(long **)(*param_1 + 0x10)" (* "*") (cast_expression "(long **)(*param_1 + 0x10)" (( "(") (type_descriptor "long **" (sized_type_specifier "long" (long "long")) (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(*param_1 + 0x10)" (( "(") (binary_expression "*param_1 + 0x10" (pointer_expression "*param_1" (* "*") (identifier "param_1")) (+ "+") (number_literal "0x10")) () ")"))))) (+ "+") (number_literal "0x1d0")) () ")"))))) () ")")) (argument_list "()" (( "(") () ")")))) (; ";")) (} "}")) (else_clause "else {\n                cVar6 = (*pcVar3)();\n              }" (else "else") (compound_statement "{\n                cVar6 = (*pcVar3)();\n              }" ({ "{") (expression_statement "cVar6 = (*pcVar3)();" (assignment_expression "cVar6 = (*pcVar3)()" (identifier "cVar6") (= "=") (call_expression "(*pcVar3)()" (parenthesized_expression "(*pcVar3)" (( "(") (pointer_expression "*pcVar3" (* "*") (identifier "pcVar3")) () ")")) (argument_list "()" (( "(") () ")")))) (; ";")) (} "}")))) (expression_statement "uVar9 = *local_70;" (assignment_expression "uVar9 = *local_70" (identifier "uVar9") (= "=") (pointer_expression "*local_70" (* "*") (identifier "local_70"))) (; ";")) (if_statement "if (cVar6 != '\0') {\n                uVar9 = uVar9 >> 0x18 | (uVar9 & 0xff0000) >> 8 | (uVar9 & 0xff00) << 8 |\n                        uVar9 << 0x18;\n              }" (if "if") (parenthesized_expression "(cVar6 != '\0')" (( "(") (binary_expression "cVar6 != '\0'" (identifier "cVar6") (!= "!=") (char_literal "'\0'" (' "'") (escape_sequence "\0") (' "'"))) () ")")) (compound_statement "{\n                uVar9 = uVar9 >> 0x18 | (uVar9 & 0xff0000) >> 8 | (uVar9 & 0xff00) << 8 |\n                        uVar9 << 0x18;\n              }" ({ "{") (expression_statement "uVar9 = uVar9 >> 0x18 | (uVar9 & 0xff0000) >> 8 | (uVar9 & 0xff00) << 8 |\n                        uVar9 << 0x18;" (assignment_expression "uVar9 = uVar9 >> 0x18 | (uVar9 & 0xff0000) >> 8 | (uVar9 & 0xff00) << 8 |\n                        uVar9 << 0x18" (identifier "uVar9") (= "=") (binary_expression "uVar9 >> 0x18 | (uVar9 & 0xff0000) >> 8 | (uVar9 & 0xff00) << 8 |\n                        uVar9 << 0x18" (binary_expression "uVar9 >> 0x18 | (uVar9 & 0xff0000) >> 8 | (uVar9 & 0xff00) << 8" (binary_expression "uVar9 >> 0x18 | (uVar9 & 0xff0000) >> 8" (binary_expression "uVar9 >> 0x18" (identifier "uVar9") (>> ">>") (number_literal "0x18")) (| "|") (binary_expression "(uVar9 & 0xff0000) >> 8" (parenthesized_expression "(uVar9 & 0xff0000)" (( "(") (binary_expression "uVar9 & 0xff0000" (identifier "uVar9") (& "&") (number_literal "0xff0000")) () ")")) (>> ">>") (number_literal "8"))) (| "|") (binary_expression "(uVar9 & 0xff00) << 8" (parenthesized_expression "(uVar9 & 0xff00)" (( "(") (binary_expression "uVar9 & 0xff00" (identifier "uVar9") (& "&") (number_literal "0xff00")) () ")")) (<< "<<") (number_literal "8"))) (| "|") (binary_expression "uVar9 << 0x18" (identifier "uVar9") (<< "<<") (number_literal "0x18")))) (; ";")) (} "}"))) (expression_statement "local_60 = (uint *)(ulong)uVar9;" (assignment_expression "local_60 = (uint *)(ulong)uVar9" (identifier "local_60") (= "=") (cast_expression "(uint *)(ulong)uVar9" (( "(") (type_descriptor "uint *" (type_identifier "uint") (abstract_pointer_declarator "*" (* "*"))) () ")") (cast_expression "(ulong)uVar9" (( "(") (type_descriptor "ulong" (type_identifier "ulong")) () ")") (identifier "uVar9")))) (; ";")) (expression_statement "local_70 = local_70 + 1;" (assignment_expression "local_70 = local_70 + 1" (identifier "local_70") (= "=") (binary_expression "local_70 + 1" (identifier "local_70") (+ "+") (number_literal "1"))) (; ";")) (goto_statement "goto LAB_00302d40;" (goto "goto") (statement_identifier "LAB_00302d40") (; ";")) (} "}"))) (expression_statement "pcVar3 = *(code **)(**(long **)(*param_1 + 0x10) + 0x18);" (assignment_expression "pcVar3 = *(code **)(**(long **)(*param_1 + 0x10) + 0x18)" (identifier "pcVar3") (= "=") (pointer_expression "*(code **)(**(long **)(*param_1 + 0x10) + 0x18)" (* "*") (cast_expression "(code **)(**(long **)(*param_1 + 0x10) + 0x18)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(**(long **)(*param_1 + 0x10) + 0x18)" (( "(") (binary_expression "**(long **)(*param_1 + 0x10) + 0x18" (pointer_expression "**(long **)(*param_1 + 0x10)" (* "*") (pointer_expression "*(long **)(*param_1 + 0x10)" (* "*") (cast_expression "(long **)(*param_1 + 0x10)" (( "(") (type_descriptor "long **" (sized_type_specifier "long" (long "long")) (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(*param_1 + 0x10)" (( "(") (binary_expression "*param_1 + 0x10" (pointer_expression "*param_1" (* "*") (identifier "param_1")) (+ "+") (number_literal "0x10")) () ")"))))) (+ "+") (number_literal "0x18")) () ")"))))) (; ";")) (if_statement "if (pcVar3 == FUN_001b8d10) {\n              cVar6 = (**(code **)(**(long **)(*param_1 + 0x10) + 0x1d0))();\n            }\n            else {\n              cVar6 = (*pcVar3)();\n            }" (if "if") (parenthesized_expression "(pcVar3 == FUN_001b8d10)" (( "(") (binary_expression "pcVar3 == FUN_001b8d10" (identifier "pcVar3") (== "==") (identifier "FUN_001b8d10")) () ")")) (compound_statement "{\n              cVar6 = (**(code **)(**(long **)(*param_1 + 0x10) + 0x1d0))();\n            }" ({ "{") (expression_statement "cVar6 = (**(code **)(**(long **)(*param_1 + 0x10) + 0x1d0))();" (assignment_expression "cVar6 = (**(code **)(**(long **)(*param_1 + 0x10) + 0x1d0))()" (identifier "cVar6") (= "=") (call_expression "(**(code **)(**(long **)(*param_1 + 0x10) + 0x1d0))()" (parenthesized_expression "(**(code **)(**(long **)(*param_1 + 0x10) + 0x1d0))" (( "(") (pointer_expression "**(code **)(**(long **)(*param_1 + 0x10) + 0x1d0)" (* "*") (pointer_expression "*(code **)(**(long **)(*param_1 + 0x10) + 0x1d0)" (* "*") (cast_expression "(code **)(**(long **)(*param_1 + 0x10) + 0x1d0)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(**(long **)(*param_1 + 0x10) + 0x1d0)" (( "(") (binary_expression "**(long **)(*param_1 + 0x10) + 0x1d0" (pointer_expression "**(long **)(*param_1 + 0x10)" (* "*") (pointer_expression "*(long **)(*param_1 + 0x10)" (* "*") (cast_expression "(long **)(*param_1 + 0x10)" (( "(") (type_descriptor "long **" (sized_type_specifier "long" (long "long")) (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(*param_1 + 0x10)" (( "(") (binary_expression "*param_1 + 0x10" (pointer_expression "*param_1" (* "*") (identifier "param_1")) (+ "+") (number_literal "0x10")) () ")"))))) (+ "+") (number_literal "0x1d0")) () ")"))))) () ")")) (argument_list "()" (( "(") () ")")))) (; ";")) (} "}")) (else_clause "else {\n              cVar6 = (*pcVar3)();\n            }" (else "else") (compound_statement "{\n              cVar6 = (*pcVar3)();\n            }" ({ "{") (expression_statement "cVar6 = (*pcVar3)();" (assignment_expression "cVar6 = (*pcVar3)()" (identifier "cVar6") (= "=") (call_expression "(*pcVar3)()" (parenthesized_expression "(*pcVar3)" (( "(") (pointer_expression "*pcVar3" (* "*") (identifier "pcVar3")) () ")")) (argument_list "()" (( "(") () ")")))) (; ";")) (} "}")))) (expression_statement "uVar5 = (ushort)*local_70;" (assignment_expression "uVar5 = (ushort)*local_70" (identifier "uVar5") (= "=") (binary_expression "(ushort)*local_70" (parenthesized_expression "(ushort)" (( "(") (identifier "ushort") () ")")) (* "*") (identifier "local_70"))) (; ";")) (if_statement "if (cVar6 != '\0') {\n              uVar5 = CONCAT11((byte)*local_70,*(byte *)((long)local_70 + 1));\n            }" (if "if") (parenthesized_expression "(cVar6 != '\0')" (( "(") (binary_expression "cVar6 != '\0'" (identifier "cVar6") (!= "!=") (char_literal "'\0'" (' "'") (escape_sequence "\0") (' "'"))) () ")")) (compound_statement "{\n              uVar5 = CONCAT11((byte)*local_70,*(byte *)((long)local_70 + 1));\n            }" ({ "{") (expression_statement "uVar5 = CONCAT11((byte)*local_70,*(byte *)((long)local_70 + 1));" (assignment_expression "uVar5 = CONCAT11((byte)*local_70,*(byte *)((long)local_70 + 1))" (identifier "uVar5") (= "=") (call_expression "CONCAT11((byte)*local_70,*(byte *)((long)local_70 + 1))" (identifier "CONCAT11") (argument_list "((byte)*local_70,*(byte *)((long)local_70 + 1))" (( "(") (binary_expression "(byte)*local_70" (parenthesized_expression "(byte)" (( "(") (identifier "byte") () ")")) (* "*") (identifier "local_70")) (, ",") (pointer_expression "*(byte *)((long)local_70 + 1)" (* "*") (cast_expression "(byte *)((long)local_70 + 1)" (( "(") (type_descriptor "byte *" (type_identifier "byte") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "((long)local_70 + 1)" (( "(") (binary_expression "(long)local_70 + 1" (cast_expression "(long)local_70" (( "(") (type_descriptor "long" (sized_type_specifier "long" (long "long"))) () ")") (identifier "local_70")) (+ "+") (number_literal "1")) () ")")))) () ")")))) (; ";")) (} "}"))) (expression_statement "local_70 = (uint *)((long)local_70 + 2);" (assignment_expression "local_70 = (uint *)((long)local_70 + 2)" (identifier "local_70") (= "=") (cast_expression "(uint *)((long)local_70 + 2)" (( "(") (type_descriptor "uint *" (type_identifier "uint") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "((long)local_70 + 2)" (( "(") (binary_expression "(long)local_70 + 2" (cast_expression "(long)local_70" (( "(") (type_descriptor "long" (sized_type_specifier "long" (long "long"))) () ")") (identifier "local_70")) (+ "+") (number_literal "2")) () ")")))) (; ";")) (expression_statement "puStack_50 = (uint *)(ulong)uVar5;" (assignment_expression "puStack_50 = (uint *)(ulong)uVar5" (identifier "puStack_50") (= "=") (cast_expression "(uint *)(ulong)uVar5" (( "(") (type_descriptor "uint *" (type_identifier "uint") (abstract_pointer_declarator "*" (* "*"))) () ")") (cast_expression "(ulong)uVar5" (( "(") (type_descriptor "ulong" (type_identifier "ulong")) () ")") (identifier "uVar5")))) (; ";")) (} "}")))))) (goto_statement "goto joined_r0x00302748;" (goto "goto") (statement_identifier "joined_r0x00302748") (; ";")) (} "}"))) (if_statement "if (uVar8 == 10) {\n          puStack_50 = (uint *)((long)local_70 + 1);\n          uVar9 = *local_70;\n          local_70 = (uint *)((long)puStack_50 + (ulong)(byte)uVar9);\n          local_48 = (uint)(byte)uVar9;\n          goto joined_r0x00302748;\n        }" (if "if") (parenthesized_expression "(uVar8 == 10)" (( "(") (binary_expression "uVar8 == 10" (identifier "uVar8") (== "==") (number_literal "10")) () ")")) (compound_statement "{\n          puStack_50 = (uint *)((long)local_70 + 1);\n          uVar9 = *local_70;\n          local_70 = (uint *)((long)puStack_50 + (ulong)(byte)uVar9);\n          local_48 = (uint)(byte)uVar9;\n          goto joined_r0x00302748;\n        }" ({ "{") (expression_statement "puStack_50 = (uint *)((long)local_70 + 1);" (assignment_expression "puStack_50 = (uint *)((long)local_70 + 1)" (identifier "puStack_50") (= "=") (cast_expression "(uint *)((long)local_70 + 1)" (( "(") (type_descriptor "uint *" (type_identifier "uint") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "((long)local_70 + 1)" (( "(") (binary_expression "(long)local_70 + 1" (cast_expression "(long)local_70" (( "(") (type_descriptor "long" (sized_type_specifier "long" (long "long"))) () ")") (identifier "local_70")) (+ "+") (number_literal "1")) () ")")))) (; ";")) (expression_statement "uVar9 = *local_70;" (assignment_expression "uVar9 = *local_70" (identifier "uVar9") (= "=") (pointer_expression "*local_70" (* "*") (identifier "local_70"))) (; ";")) (expression_statement "local_70 = (uint *)((long)puStack_50 + (ulong)(byte)uVar9);" (assignment_expression "local_70 = (uint *)((long)puStack_50 + (ulong)(byte)uVar9)" (identifier "local_70") (= "=") (cast_expression "(uint *)((long)puStack_50 + (ulong)(byte)uVar9)" (( "(") (type_descriptor "uint *" (type_identifier "uint") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "((long)puStack_50 + (ulong)(byte)uVar9)" (( "(") (binary_expression "(long)puStack_50 + (ulong)(byte)uVar9" (cast_expression "(long)puStack_50" (( "(") (type_descriptor "long" (sized_type_specifier "long" (long "long"))) () ")") (identifier "puStack_50")) (+ "+") (cast_expression "(ulong)(byte)uVar9" (( "(") (type_descriptor "ulong" (type_identifier "ulong")) () ")") (cast_expression "(byte)uVar9" (( "(") (type_descriptor "byte" (type_identifier "byte")) () ")") (identifier "uVar9")))) () ")")))) (; ";")) (expression_statement "local_48 = (uint)(byte)uVar9;" (assignment_expression "local_48 = (uint)(byte)uVar9" (identifier "local_48") (= "=") (cast_expression "(uint)(byte)uVar9" (( "(") (type_descriptor "uint" (type_identifier "uint")) () ")") (cast_expression "(byte)uVar9" (( "(") (type_descriptor "byte" (type_identifier "byte")) () ")") (identifier "uVar9")))) (; ";")) (goto_statement "goto joined_r0x00302748;" (goto "goto") (statement_identifier "joined_r0x00302748") (; ";")) (} "}"))) (if_statement "if (uVar8 < 0xb) {\n          if (uVar8 != 8) {\n            if (uVar8 != 9) {\n              return 0;\n            }\n            goto LAB_00302a09;\n          }\n          puStack_50 = local_70;\n          local_68 = strlen((char *)local_70);\n          local_70 = (uint *)((long)puVar11 + local_68 + 1);\n          if (uVar2 == 0x31) goto LAB_00302750;\n          if (0x31 < uVar2) {\n            if ((uVar2 != 0x6e) && (uVar2 != 0x2007)) goto LAB_00302750;\n            goto LAB_003029eb;\n          }\n          if ((uVar2 == 1) || (uVar2 != 3)) goto LAB_00302750;\n          goto LAB_003029c7;\n        }" (if "if") (parenthesized_expression "(uVar8 < 0xb)" (( "(") (binary_expression "uVar8 < 0xb" (identifier "uVar8") (< "<") (number_literal "0xb")) () ")")) (compound_statement "{\n          if (uVar8 != 8) {\n            if (uVar8 != 9) {\n              return 0;\n            }\n            goto LAB_00302a09;\n          }\n          puStack_50 = local_70;\n          local_68 = strlen((char *)local_70);\n          local_70 = (uint *)((long)puVar11 + local_68 + 1);\n          if (uVar2 == 0x31) goto LAB_00302750;\n          if (0x31 < uVar2) {\n            if ((uVar2 != 0x6e) && (uVar2 != 0x2007)) goto LAB_00302750;\n            goto LAB_003029eb;\n          }\n          if ((uVar2 == 1) || (uVar2 != 3)) goto LAB_00302750;\n          goto LAB_003029c7;\n        }" ({ "{") (if_statement "if (uVar8 != 8) {\n            if (uVar8 != 9) {\n              return 0;\n            }\n            goto LAB_00302a09;\n          }" (if "if") (parenthesized_expression "(uVar8 != 8)" (( "(") (binary_expression "uVar8 != 8" (identifier "uVar8") (!= "!=") (number_literal "8")) () ")")) (compound_statement "{\n            if (uVar8 != 9) {\n              return 0;\n            }\n            goto LAB_00302a09;\n          }" ({ "{") (if_statement "if (uVar8 != 9) {\n              return 0;\n            }" (if "if") (parenthesized_expression "(uVar8 != 9)" (( "(") (binary_expression "uVar8 != 9" (identifier "uVar8") (!= "!=") (number_literal "9")) () ")")) (compound_statement "{\n              return 0;\n            }" ({ "{") (return_statement "return 0;" (return "return") (number_literal "0") (; ";")) (} "}"))) (goto_statement "goto LAB_00302a09;" (goto "goto") (statement_identifier "LAB_00302a09") (; ";")) (} "}"))) (expression_statement "puStack_50 = local_70;" (assignment_expression "puStack_50 = local_70" (identifier "puStack_50") (= "=") (identifier "local_70")) (; ";")) (expression_statement "local_68 = strlen((char *)local_70);" (assignment_expression "local_68 = strlen((char *)local_70)" (identifier "local_68") (= "=") (call_expression "strlen((char *)local_70)" (identifier "strlen") (argument_list "((char *)local_70)" (( "(") (cast_expression "(char *)local_70" (( "(") (type_descriptor "char *" (primitive_type "char") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "local_70")) () ")")))) (; ";")) (expression_statement "local_70 = (uint *)((long)puVar11 + local_68 + 1);" (assignment_expression "local_70 = (uint *)((long)puVar11 + local_68 + 1)" (identifier "local_70") (= "=") (cast_expression "(uint *)((long)puVar11 + local_68 + 1)" (( "(") (type_descriptor "uint *" (type_identifier "uint") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "((long)puVar11 + local_68 + 1)" (( "(") (binary_expression "(long)puVar11 + local_68 + 1" (binary_expression "(long)puVar11 + local_68" (cast_expression "(long)puVar11" (( "(") (type_descriptor "long" (sized_type_specifier "long" (long "long"))) () ")") (identifier "puVar11")) (+ "+") (identifier "local_68")) (+ "+") (number_literal "1")) () ")")))) (; ";")) (if_statement "if (uVar2 == 0x31) goto LAB_00302750;" (if "if") (parenthesized_expression "(uVar2 == 0x31)" (( "(") (binary_expression "uVar2 == 0x31" (identifier "uVar2") (== "==") (number_literal "0x31")) () ")")) (goto_statement "goto LAB_00302750;" (goto "goto") (statement_identifier "LAB_00302750") (; ";"))) (if_statement "if (0x31 < uVar2) {\n            if ((uVar2 != 0x6e) && (uVar2 != 0x2007)) goto LAB_00302750;\n            goto LAB_003029eb;\n          }" (if "if") (parenthesized_expression "(0x31 < uVar2)" (( "(") (binary_expression "0x31 < uVar2" (number_literal "0x31") (< "<") (identifier "uVar2")) () ")")) (compound_statement "{\n            if ((uVar2 != 0x6e) && (uVar2 != 0x2007)) goto LAB_00302750;\n            goto LAB_003029eb;\n          }" ({ "{") (if_statement "if ((uVar2 != 0x6e) && (uVar2 != 0x2007)) goto LAB_00302750;" (if "if") (parenthesized_expression "((uVar2 != 0x6e) && (uVar2 != 0x2007))" (( "(") (binary_expression "(uVar2 != 0x6e) && (uVar2 != 0x2007)" (parenthesized_expression "(uVar2 != 0x6e)" (( "(") (binary_expression "uVar2 != 0x6e" (identifier "uVar2") (!= "!=") (number_literal "0x6e")) () ")")) (&& "&&") (parenthesized_expression "(uVar2 != 0x2007)" (( "(") (binary_expression "uVar2 != 0x2007" (identifier "uVar2") (!= "!=") (number_literal "0x2007")) () ")"))) () ")")) (goto_statement "goto LAB_00302750;" (goto "goto") (statement_identifier "LAB_00302750") (; ";"))) (goto_statement "goto LAB_003029eb;" (goto "goto") (statement_identifier "LAB_003029eb") (; ";")) (} "}"))) (if_statement "if ((uVar2 == 1) || (uVar2 != 3)) goto LAB_00302750;" (if "if") (parenthesized_expression "((uVar2 == 1) || (uVar2 != 3))" (( "(") (binary_expression "(uVar2 == 1) || (uVar2 != 3)" (parenthesized_expression "(uVar2 == 1)" (( "(") (binary_expression "uVar2 == 1" (identifier "uVar2") (== "==") (number_literal "1")) () ")")) (|| "||") (parenthesized_expression "(uVar2 != 3)" (( "(") (binary_expression "uVar2 != 3" (identifier "uVar2") (!= "!=") (number_literal "3")) () ")"))) () ")")) (goto_statement "goto LAB_00302750;" (goto "goto") (statement_identifier "LAB_00302750") (; ";"))) (goto_statement "goto LAB_003029c7;" (goto "goto") (statement_identifier "LAB_003029c7") (; ";")) (} "}"))) (if_statement "if (uVar8 < 0xd) {\n          uVar9 = *local_70;\n          local_70 = (uint *)((long)local_70 + 1);\n          puStack_50 = (uint *)(ulong)(byte)uVar9;\n          goto LAB_00302f92;\n        }" (if "if") (parenthesized_expression "(uVar8 < 0xd)" (( "(") (binary_expression "uVar8 < 0xd" (identifier "uVar8") (< "<") (number_literal "0xd")) () ")")) (compound_statement "{\n          uVar9 = *local_70;\n          local_70 = (uint *)((long)local_70 + 1);\n          puStack_50 = (uint *)(ulong)(byte)uVar9;\n          goto LAB_00302f92;\n        }" ({ "{") (expression_statement "uVar9 = *local_70;" (assignment_expression "uVar9 = *local_70" (identifier "uVar9") (= "=") (pointer_expression "*local_70" (* "*") (identifier "local_70"))) (; ";")) (expression_statement "local_70 = (uint *)((long)local_70 + 1);" (assignment_expression "local_70 = (uint *)((long)local_70 + 1)" (identifier "local_70") (= "=") (cast_expression "(uint *)((long)local_70 + 1)" (( "(") (type_descriptor "uint *" (type_identifier "uint") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "((long)local_70 + 1)" (( "(") (binary_expression "(long)local_70 + 1" (cast_expression "(long)local_70" (( "(") (type_descriptor "long" (sized_type_specifier "long" (long "long"))) () ")") (identifier "local_70")) (+ "+") (number_literal "1")) () ")")))) (; ";")) (expression_statement "puStack_50 = (uint *)(ulong)(byte)uVar9;" (assignment_expression "puStack_50 = (uint *)(ulong)(byte)uVar9" (identifier "puStack_50") (= "=") (cast_expression "(uint *)(ulong)(byte)uVar9" (( "(") (type_descriptor "uint *" (type_identifier "uint") (abstract_pointer_declarator "*" (* "*"))) () ")") (cast_expression "(ulong)(byte)uVar9" (( "(") (type_descriptor "ulong" (type_identifier "ulong")) () ")") (cast_expression "(byte)uVar9" (( "(") (type_descriptor "byte" (type_identifier "byte")) () ")") (identifier "uVar9"))))) (; ";")) (goto_statement "goto LAB_00302f92;" (goto "goto") (statement_identifier "LAB_00302f92") (; ";")) (} "}"))) (expression_statement "bVar1 = (byte)*local_70;" (assignment_expression "bVar1 = (byte)*local_70" (identifier "bVar1") (= "=") (binary_expression "(byte)*local_70" (parenthesized_expression "(byte)" (( "(") (identifier "byte") () ")")) (* "*") (identifier "local_70"))) (; ";")) (expression_statement "puVar11 = (uint *)((long)local_70 + 1);" (assignment_expression "puVar11 = (uint *)((long)local_70 + 1)" (identifier "puVar11") (= "=") (cast_expression "(uint *)((long)local_70 + 1)" (( "(") (type_descriptor "uint *" (type_identifier "uint") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "((long)local_70 + 1)" (( "(") (binary_expression "(long)local_70 + 1" (cast_expression "(long)local_70" (( "(") (type_descriptor "long" (sized_type_specifier "long" (long "long"))) () ")") (identifier "local_70")) (+ "+") (number_literal "1")) () ")")))) (; ";")) (if_statement "if ((char)bVar1 < '\0') {\n          puStack_50 = (uint *)FUN_00211340(puVar11,&local_68);\n          puVar11 = (uint *)(local_68 + (long)local_70);\n        }\n        else {\n          local_68 = 1;\n          puStack_50 = (uint *)(ulong)bVar1;\n          if ((bVar1 & 0x40) != 0) {\n            puStack_50 = (uint *)((ulong)bVar1 | 0xffffffffffffff80);\n          }\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          puStack_50 = (uint *)FUN_00211340(puVar11,&local_68);\n          puVar11 = (uint *)(local_68 + (long)local_70);\n        }" ({ "{") (expression_statement "puStack_50 = (uint *)FUN_00211340(puVar11,&local_68);" (assignment_expression "puStack_50 = (uint *)FUN_00211340(puVar11,&local_68)" (identifier "puStack_50") (= "=") (cast_expression "(uint *)FUN_00211340(puVar11,&local_68)" (( "(") (type_descriptor "uint *" (type_identifier "uint") (abstract_pointer_declarator "*" (* "*"))) () ")") (call_expression "FUN_00211340(puVar11,&local_68)" (identifier "FUN_00211340") (argument_list "(puVar11,&local_68)" (( "(") (identifier "puVar11") (, ",") (pointer_expression "&local_68" (& "&") (identifier "local_68")) () ")"))))) (; ";")) (expression_statement "puVar11 = (uint *)(local_68 + (long)local_70);" (assignment_expression "puVar11 = (uint *)(local_68 + (long)local_70)" (identifier "puVar11") (= "=") (cast_expression "(uint *)(local_68 + (long)local_70)" (( "(") (type_descriptor "uint *" (type_identifier "uint") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(local_68 + (long)local_70)" (( "(") (binary_expression "local_68 + (long)local_70" (identifier "local_68") (+ "+") (cast_expression "(long)local_70" (( "(") (type_descriptor "long" (sized_type_specifier "long" (long "long"))) () ")") (identifier "local_70"))) () ")")))) (; ";")) (} "}")) (else_clause "else {\n          local_68 = 1;\n          puStack_50 = (uint *)(ulong)bVar1;\n          if ((bVar1 & 0x40) != 0) {\n            puStack_50 = (uint *)((ulong)bVar1 | 0xffffffffffffff80);\n          }\n        }" (else "else") (compound_statement "{\n          local_68 = 1;\n          puStack_50 = (uint *)(ulong)bVar1;\n          if ((bVar1 & 0x40) != 0) {\n            puStack_50 = (uint *)((ulong)bVar1 | 0xffffffffffffff80);\n          }\n        }" ({ "{") (expression_statement "local_68 = 1;" (assignment_expression "local_68 = 1" (identifier "local_68") (= "=") (number_literal "1")) (; ";")) (expression_statement "puStack_50 = (uint *)(ulong)bVar1;" (assignment_expression "puStack_50 = (uint *)(ulong)bVar1" (identifier "puStack_50") (= "=") (cast_expression "(uint *)(ulong)bVar1" (( "(") (type_descriptor "uint *" (type_identifier "uint") (abstract_pointer_declarator "*" (* "*"))) () ")") (cast_expression "(ulong)bVar1" (( "(") (type_descriptor "ulong" (type_identifier "ulong")) () ")") (identifier "bVar1")))) (; ";")) (if_statement "if ((bVar1 & 0x40) != 0) {\n            puStack_50 = (uint *)((ulong)bVar1 | 0xffffffffffffff80);\n          }" (if "if") (parenthesized_expression "((bVar1 & 0x40) != 0)" (( "(") (binary_expression "(bVar1 & 0x40) != 0" (parenthesized_expression "(bVar1 & 0x40)" (( "(") (binary_expression "bVar1 & 0x40" (identifier "bVar1") (& "&") (number_literal "0x40")) () ")")) (!= "!=") (number_literal "0")) () ")")) (compound_statement "{\n            puStack_50 = (uint *)((ulong)bVar1 | 0xffffffffffffff80);\n          }" ({ "{") (expression_statement "puStack_50 = (uint *)((ulong)bVar1 | 0xffffffffffffff80);" (assignment_expression "puStack_50 = (uint *)((ulong)bVar1 | 0xffffffffffffff80)" (identifier "puStack_50") (= "=") (cast_expression "(uint *)((ulong)bVar1 | 0xffffffffffffff80)" (( "(") (type_descriptor "uint *" (type_identifier "uint") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "((ulong)bVar1 | 0xffffffffffffff80)" (( "(") (binary_expression "(ulong)bVar1 | 0xffffffffffffff80" (cast_expression "(ulong)bVar1" (( "(") (type_descriptor "ulong" (type_identifier "ulong")) () ")") (identifier "bVar1")) (| "|") (number_literal "0xffffffffffffff80")) () ")")))) (; ";")) (} "}"))) (} "}")))) (expression_statement "local_70 = puVar11;" (assignment_expression "local_70 = puVar11" (identifier "local_70") (= "=") (identifier "puVar11")) (; ";")) (if_statement "if ((uVar2 == 0x31) || (uVar2 < 0x32)) goto LAB_00302750;" (if "if") (parenthesized_expression "((uVar2 == 0x31) || (uVar2 < 0x32))" (( "(") (binary_expression "(uVar2 == 0x31) || (uVar2 < 0x32)" (parenthesized_expression "(uVar2 == 0x31)" (( "(") (binary_expression "uVar2 == 0x31" (identifier "uVar2") (== "==") (number_literal "0x31")) () ")")) (|| "||") (parenthesized_expression "(uVar2 < 0x32)" (( "(") (binary_expression "uVar2 < 0x32" (identifier "uVar2") (< "<") (number_literal "0x32")) () ")"))) () ")")) (goto_statement "goto LAB_00302750;" (goto "goto") (statement_identifier "LAB_00302750") (; ";"))) (if_statement "if ((uVar2 == 0x6e) || (uVar2 == 0x2007)) goto LAB_00302fbe;" (if "if") (parenthesized_expression "((uVar2 == 0x6e) || (uVar2 == 0x2007))" (( "(") (binary_expression "(uVar2 == 0x6e) || (uVar2 == 0x2007)" (parenthesized_expression "(uVar2 == 0x6e)" (( "(") (binary_expression "uVar2 == 0x6e" (identifier "uVar2") (== "==") (number_literal "0x6e")) () ")")) (|| "||") (parenthesized_expression "(uVar2 == 0x2007)" (( "(") (binary_expression "uVar2 == 0x2007" (identifier "uVar2") (== "==") (number_literal "0x2007")) () ")"))) () ")")) (goto_statement "goto LAB_00302fbe;" (goto "goto") (statement_identifier "LAB_00302fbe") (; ";"))) (expression_statement "puVar16 = (undefined8 *)param_1[8];" (assignment_expression "puVar16 = (undefined8 *)param_1[8]" (identifier "puVar16") (= "=") (cast_expression "(undefined8 *)param_1[8]" (( "(") (type_descriptor "undefined8 *" (type_identifier "undefined8") (abstract_pointer_declarator "*" (* "*"))) () ")") (subscript_expression "param_1[8]" (identifier "param_1") ([ "[") (number_literal "8") (] "]")))) (; ";")) (if_statement "if (puVar16 == (undefined8 *)param_1[9]) goto LAB_003028c0;" (if "if") (parenthesized_expression "(puVar16 == (undefined8 *)param_1[9])" (( "(") (binary_expression "puVar16 == (undefined8 *)param_1[9]" (identifier "puVar16") (== "==") (cast_expression "(undefined8 *)param_1[9]" (( "(") (type_descriptor "undefined8 *" (type_identifier "undefined8") (abstract_pointer_declarator "*" (* "*"))) () ")") (subscript_expression "param_1[9]" (identifier "param_1") ([ "[") (number_literal "9") (] "]")))) () ")")) (goto_statement "goto LAB_003028c0;" (goto "goto") (statement_identifier "LAB_003028c0") (; ";"))) (labeled_statement "LAB_0030275e:\n        *puVar16 = CONCAT44(uStack_54,local_58);" (statement_identifier "LAB_0030275e") (: ":") (expression_statement "*puVar16 = CONCAT44(uStack_54,local_58);" (assignment_expression "*puVar16 = CONCAT44(uStack_54,local_58)" (pointer_expression "*puVar16" (* "*") (identifier "puVar16")) (= "=") (call_expression "CONCAT44(uStack_54,local_58)" (identifier "CONCAT44") (argument_list "(uStack_54,local_58)" (( "(") (identifier "uStack_54") (, ",") (identifier "local_58") () ")")))) (; ";"))) (expression_statement "puVar16[1] = puStack_50;" (assignment_expression "puVar16[1] = puStack_50" (subscript_expression "puVar16[1]" (identifier "puVar16") ([ "[") (number_literal "1") (] "]")) (= "=") (identifier "puStack_50")) (; ";")) (expression_statement "puVar16[2] = CONCAT44(uStack_44,local_48);" (assignment_expression "puVar16[2] = CONCAT44(uStack_44,local_48)" (subscript_expression "puVar16[2]" (identifier "puVar16") ([ "[") (number_literal "2") (] "]")) (= "=") (call_expression "CONCAT44(uStack_44,local_48)" (identifier "CONCAT44") (argument_list "(uStack_44,local_48)" (( "(") (identifier "uStack_44") (, ",") (identifier "local_48") () ")")))) (; ";")) (expression_statement "param_1[8] = (long)(puVar16 + 3);" (assignment_expression "param_1[8] = (long)(puVar16 + 3)" (subscript_expression "param_1[8]" (identifier "param_1") ([ "[") (number_literal "8") (] "]")) (= "=") (cast_expression "(long)(puVar16 + 3)" (( "(") (type_descriptor "long" (sized_type_specifier "long" (long "long"))) () ")") (parenthesized_expression "(puVar16 + 3)" (( "(") (binary_expression "puVar16 + 3" (identifier "puVar16") (+ "+") (number_literal "3")) () ")")))) (; ";")) (} "}")))) (expression_statement "lVar20 = lVar20 + 8;" (assignment_expression "lVar20 = lVar20 + 8" (identifier "lVar20") (= "=") (binary_expression "lVar20 + 8" (identifier "lVar20") (+ "+") (number_literal "8"))) (; ";")) (expression_statement "lVar10 = param_1[6];" (assignment_expression "lVar10 = param_1[6]" (identifier "lVar10") (= "=") (subscript_expression "param_1[6]" (identifier "param_1") ([ "[") (number_literal "6") (] "]"))) (; ";")) (} "}")) (while "while") (parenthesized_expression "(lVar20 != (ulong)(iVar13 - 1) * 8 + 8)" (( "(") (binary_expression "lVar20 != (ulong)(iVar13 - 1) * 8 + 8" (identifier "lVar20") (!= "!=") (binary_expression "(ulong)(iVar13 - 1) * 8 + 8" (binary_expression "(ulong)(iVar13 - 1) * 8" (call_expression "(ulong)(iVar13 - 1)" (parenthesized_expression "(ulong)" (( "(") (identifier "ulong") () ")")) (argument_list "(iVar13 - 1)" (( "(") (binary_expression "iVar13 - 1" (identifier "iVar13") (- "-") (number_literal "1")) () ")"))) (* "*") (number_literal "8")) (+ "+") (number_literal "8"))) () ")")) (; ";")) (} "}")))) (if_statement "if (lVar10 == 0) {\n                    \n    FUN_001e9890("../../gold/dwarf_reader.h",0x206,"has_children");\n  }" (if "if") (parenthesized_expression "(lVar10 == 0)" (( "(") (binary_expression "lVar10 == 0" (identifier "lVar10") (== "==") (number_literal "0")) () ")")) (compound_statement "{\n                    \n    FUN_001e9890("../../gold/dwarf_reader.h",0x206,"has_children");\n  }" ({ "{") (expression_statement "FUN_001e9890("../../gold/dwarf_reader.h",0x206,"has_children");" (call_expression "FUN_001e9890("../../gold/dwarf_reader.h",0x206,"has_children")" (identifier "FUN_001e9890") (argument_list "("../../gold/dwarf_reader.h",0x206,"has_children")" (( "(") (string_literal ""../../gold/dwarf_reader.h"" (" """) (string_content "../../gold/dwarf_reader.h") (" """)) (, ",") (number_literal "0x206") (, ",") (string_literal ""has_children"" (" """) (string_content "has_children") (" """)) () ")"))) (; ";")) (} "}"))) (expression_statement "lVar18 = param_1[2];" (assignment_expression "lVar18 = param_1[2]" (identifier "lVar18") (= "=") (subscript_expression "param_1[2]" (identifier "param_1") ([ "[") (number_literal "2") (] "]"))) (; ";")) (labeled_statement "LAB_00302797:\n  pbVar15 = (byte *)((long)local_70 + (lVar18 - lVar12));" (statement_identifier "LAB_00302797") (: ":") (expression_statement "pbVar15 = (byte *)((long)local_70 + (lVar18 - lVar12));" (assignment_expression "pbVar15 = (byte *)((long)local_70 + (lVar18 - lVar12))" (identifier "pbVar15") (= "=") (cast_expression "(byte *)((long)local_70 + (lVar18 - lVar12))" (( "(") (type_descriptor "byte *" (type_identifier "byte") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "((long)local_70 + (lVar18 - lVar12))" (( "(") (binary_expression "(long)local_70 + (lVar18 - lVar12)" (cast_expression "(long)local_70" (( "(") (type_descriptor "long" (sized_type_specifier "long" (long "long"))) () ")") (identifier "local_70")) (+ "+") (parenthesized_expression "(lVar18 - lVar12)" (( "(") (binary_expression "lVar18 - lVar12" (identifier "lVar18") (- "-") (identifier "lVar12")) () ")"))) () ")")))) (; ";"))) (if_statement "if ((*(byte *)(lVar10 + 4) & 1) == 0) {\n    param_1[5] = (long)pbVar15;\n  }\n  else {\n    param_1[4] = (long)pbVar15;\n  }" (if "if") (parenthesized_expression "((*(byte *)(lVar10 + 4) & 1) == 0)" (( "(") (binary_expression "(*(byte *)(lVar10 + 4) & 1) == 0" (parenthesized_expression "(*(byte *)(lVar10 + 4) & 1)" (( "(") (binary_expression "*(byte *)(lVar10 + 4) & 1" (pointer_expression "*(byte *)(lVar10 + 4)" (* "*") (cast_expression "(byte *)(lVar10 + 4)" (( "(") (type_descriptor "byte *" (type_identifier "byte") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(lVar10 + 4)" (( "(") (binary_expression "lVar10 + 4" (identifier "lVar10") (+ "+") (number_literal "4")) () ")")))) (& "&") (number_literal "1")) () ")")) (== "==") (number_literal "0")) () ")")) (compound_statement "{\n    param_1[5] = (long)pbVar15;\n  }" ({ "{") (expression_statement "param_1[5] = (long)pbVar15;" (assignment_expression "param_1[5] = (long)pbVar15" (subscript_expression "param_1[5]" (identifier "param_1") ([ "[") (number_literal "5") (] "]")) (= "=") (cast_expression "(long)pbVar15" (( "(") (type_descriptor "long" (sized_type_specifier "long" (long "long"))) () ")") (identifier "pbVar15"))) (; ";")) (} "}")) (else_clause "else {\n    param_1[4] = (long)pbVar15;\n  }" (else "else") (compound_statement "{\n    param_1[4] = (long)pbVar15;\n  }" ({ "{") (expression_statement "param_1[4] = (long)pbVar15;" (assignment_expression "param_1[4] = (long)pbVar15" (subscript_expression "param_1[4]" (identifier "param_1") ([ "[") (number_literal "4") (] "]")) (= "=") (cast_expression "(long)pbVar15" (( "(") (type_descriptor "long" (sized_type_specifier "long" (long "long"))) () ")") (identifier "pbVar15"))) (; ";")) (} "}")))) (expression_statement "*(undefined1 *)(param_1 + 10) = 1;" (assignment_expression "*(undefined1 *)(param_1 + 10) = 1" (pointer_expression "*(undefined1 *)(param_1 + 10)" (* "*") (cast_expression "(undefined1 *)(param_1 + 10)" (( "(") (type_descriptor "undefined1 *" (type_identifier "undefined1") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_1 + 10)" (( "(") (binary_expression "param_1 + 10" (identifier "param_1") (+ "+") (number_literal "10")) () ")")))) (= "=") (number_literal "1")) (; ";")) (return_statement "return 1;" (return "return") (number_literal "1") (; ";")) (} "}")))

/* WARNING: Type propagation algorithm not settling */
/* DWARF original prototype: bool read_attributes(Dwarf_die * this) */

bool __thiscall gold::type_1::function_1(type_1 *this)

{
  type_2 var_29;
  type_3 var_26;
  type_3 var_28;
  type_4 var_10;
  type_5 **pp_Var4;
  type_5 *var_22;
  type_4 var_11;
  type_6 uVar7;
  char var_23;
  type_7 aVar10;
  type_3 var_18;
  type_8 VVar12;
  type_9 *var_1;
  type_10 aVar14;
  type_10 aVar15;
  type_4 var_16;
  uint64_t uVar16;
  type_3 *puVar17;
  type_8 return_value;
  type_11 *var_4;
  int var_17;
  type_12 var_8;
  type_11 *attr_off;
  type_13 __position;
  type_14 *pDVar21;
  type_15 *pRVar22;
  type_11 *var_31;
  type_4 var_13;
  size_t var_15;
  long var_3;
  type_11 *var_20;
  size_t var_21;
  type_16 var_24;
  type_17 attr_value;
  int iVar9;
  
  var_1 = this->abbrev_code_;
  if (var_1 == (type_9 *)0x0) {
                    /* WARNING: Subroutine does not return */
    var_2("../../gold/dwarf_reader.cc",0x2a9,"read_attributes");
  }
  pDVar21 = this->dwinfo_;
  var_3 = this->die_offset_;
  var_4 = pDVar21->buffer_ + pDVar21->cu_offset_ + var_3;
  if (pDVar21->buffer_ + pDVar21->cu_offset_ + pDVar21->cu_length_ < var_4 + 1) {
    Dwarf_info_reader::var_5(pDVar21);
    return false;
  }
  if (var_4 == (type_11 *)0x0) {
    return false;
  }
  var_10 = (this->attributes_).
          super__Vector_base<gold::Dwarf_die::type_17,_std::allocator<gold::Dwarf_die::type_17>var_6>
          ._M_impl._M_start;
  var_20 = var_4 + this->attr_offset_;
  var_8 = (long)(var_1->attributes).
                 super__Vector_base<gold::Dwarf_abbrev_table::var_7,_std::allocator<gold::Dwarf_abbrev_table::var_7>var_6>
                 ._M_impl._M_finish -
           (long)(var_1->attributes).
                 super__Vector_base<gold::Dwarf_abbrev_table::var_7,_std::allocator<gold::Dwarf_abbrev_table::var_7>var_6>
                 ._M_impl._M_start >> 3;
  var_17 = (int)var_8;
  var_8 = var_8 & 0xffffffff;
  if ((type_12)(((long)(this->attributes_).
                     super__Vector_base<gold::type_1::type_17,_std::allocator<gold::type_1::type_17>var_6>
                     ._M_impl._M_end_of_storage - (long)var_10 >> 3) * -0x5555555555555555) < var_8)
  {
    var_11 = (this->attributes_).
             super__Vector_base<gold::Dwarf_die::type_17,_std::allocator<gold::Dwarf_die::type_17>var_6>
             ._M_impl._M_finish;
    var_15 = (long)var_11 - (long)var_10;
    if (var_8 == 0) {
      var_16 = (type_4)0x0;
      var_13 = var_10;
    }
    else {
      var_16 = (type_4)var_9(var_8 * 0x18);
      var_13 = (this->attributes_).
                super__Vector_base<gold::Dwarf_die::type_17,_std::allocator<gold::Dwarf_die::type_17>var_6>
                ._M_impl._M_start;
    }
    if (var_10 != var_11) {
      var_16 = (type_4)var_12(var_16,var_10,var_15);
    }
    if (var_13 != (type_4)0x0) {
      var_14(var_13);
    }
    (this->attributes_).
    super__Vector_base<gold::Dwarf_die::type_17,_std::allocator<gold::Dwarf_die::type_17>var_6>
    ._M_impl._M_start = var_16;
    var_1 = this->abbrev_code_;
    (this->attributes_).
    super__Vector_base<gold::Dwarf_die::type_17,_std::allocator<gold::Dwarf_die::type_17>var_6>
    ._M_impl._M_finish = (type_4)(var_15 + (long)var_16);
    (this->attributes_).
    super__Vector_base<gold::Dwarf_die::type_17,_std::allocator<gold::Dwarf_die::type_17>var_6>
    ._M_impl._M_end_of_storage = var_16 + var_8;
    if (var_17 != 0) goto LAB_00302642;
  }
  else {
    if (var_17 == 0) goto LAB_00302797;
LAB_00302642:
    var_3 = 0;
    do {
      puVar17 = (type_3 *)((long)&((var_1->attributes).
                                 super__Vector_base<gold::Dwarf_abbrev_table::var_7,_std::allocator<gold::Dwarf_abbrev_table::var_7>var_6>
                                 ._M_impl._M_start)->attr + var_3);
      var_18 = puVar17[1];
      var_26 = *puVar17;
      if (var_18 == 0x16) {
        var_29 = *var_20;
        var_18 = (type_3)var_29;
        if ((char)var_29 < '\0') {
          uVar16 = var_19(var_20 + 1,&var_21,var_29);
          var_18 = (type_3)uVar16;
          var_20 = var_20 + var_21;
        }
        else {
          var_21 = 1;
          var_20 = var_20 + 1;
        }
      }
      var_31 = var_20;
      attr_off = var_20 + (this->die_offset_ - (long)var_4);
      attr_value.aux.shndx = 0;
      attr_value.attr = var_26;
      attr_value.form = var_18;
      if (var_18 == 0xe) {
        pDVar21 = this->dwinfo_;
        if (pDVar21->offset_size_ == 4) {
          VVar12 = type_14::read_from_pointer<32>(pDVar21,&var_20);
          var_24 = (type_16)VVar12;
        }
        else {
          pp_Var4 = (pDVar21->object_->super_Object)._vptr_Object;
          var_22 = pp_Var4[3];
          if (var_22 == type_15::is_big_endian) {
            iVar9 = (*pp_Var4[0x3a])();
            var_23 = (char)iVar9;
          }
          else {
            iVar9 = (*var_22)();
            var_23 = (char)iVar9;
          }
          var_24 = *(type_16 *)var_20;
          if (var_23 != '\0') {
            var_24 = (type_12)var_24 >> 0x38 | (var_24 & 0xff000000000000U) >> 0x28 |
                      (var_24 & 0xff0000000000U) >> 0x18 | (var_24 & 0xff00000000U) >> 8 |
                      (var_24 & 0xff000000U) << 8 | (var_24 & 0xff0000U) << 0x18 |
                      (var_24 & 0xff00U) << 0x28 | var_24 << 0x38;
          }
          var_20 = var_20 + 8;
        }
        attr_value.aux.shndx =
             type_14::var_25(this->dwinfo_,(type_16)attr_off,&var_24);
        attr_value.val.refval = var_24;
        if (var_26 != 0x31) {
          if (var_26 < 0x32) {
            if ((var_26 != 1) && (var_26 == 3)) {
LAB_00302f64:
              this->string_shndx_ = (type_3)attr_value.aux;
              this->name_off_ = (type_16)attr_value.val;
            }
          }
          else if ((var_26 == 0x6e) || (var_26 == 0x2007)) {
LAB_00302fd0:
            this->string_shndx_ = (type_3)attr_value.aux;
            this->linkage_name_off_ = (type_16)attr_value.val;
          }
        }
LAB_00302750:
        __position._M_current =
             (this->attributes_).
             super__Vector_base<gold::type_1::type_17,_std::allocator<gold::Dwarf_die::type_17>var_6>
             ._M_impl._M_finish;
        if (__position._M_current !=
            (this->attributes_).
            super__Vector_base<gold::type_1::type_17,_std::allocator<gold::type_1::type_17>var_6>
            ._M_impl._M_end_of_storage) goto LAB_0030275e;
LAB_003028c0:
        std::
        vector<gold::Dwarf_die::type_17,_std::allocator<gold::Dwarf_die::type_17>var_6>
        ::_M_realloc_insert<const_gold::Dwarf_die::type_17&>
                  (&this->attributes_,__position,&attr_value);
      }
      else {
        if (0xe < var_18) {
          if (var_18 == 0x15) {
            var_29 = *var_20;
            aVar15.intval._1_7_ = 0;
            aVar15.uintval._0_1_ = var_29;
            if ((char)var_29 < '\0') {
              attr_value.val.uintval = var_19(var_20 + 1,&var_21,var_29);
              var_20 = var_20 + var_21;
            }
            else {
              var_21 = 1;
              var_20 = var_20 + 1;
              attr_value.val = aVar15;
            }
joined_r0x00303052:
            if (var_26 != 0x31) {
              if (var_26 < 0x32) {
LAB_00302c20:
                if ((var_26 == 1) && (attr_value.aux.shndx == 0)) {
                  this->sibling_offset_ = (type_16)attr_value.val;
                }
                goto LAB_00302750;
              }
              if ((var_26 != 0x6e) && (var_26 != 0x2007)) {
joined_r0x00302ce3:
                if (var_26 == 0x47) {
                  this->specification_ = (type_16)attr_value.val;
                }
                goto LAB_00302750;
              }
LAB_00302fb5:
              if (var_18 == 8) {
LAB_003029eb:
                this->linkage_name_ = (char *)attr_value.val;
              }
              else {
LAB_00302fbe:
                if (var_18 == 0xe) goto LAB_00302fd0;
              }
              goto LAB_00302750;
            }
          }
          else {
            if (0x15 < var_18) {
              if (var_18 != 0x19) {
                if (var_18 < 0x1a) {
                  if (var_18 == 0x17) {
                    pDVar21 = this->dwinfo_;
                    if (pDVar21->offset_size_ == 4) {
                      VVar12 = type_14::read_from_pointer<32>(pDVar21,&var_20);
                      var_24 = (type_16)VVar12;
                    }
                    else {
                      pRVar22 = pDVar21->object_;
LAB_00302fe7:
                      pp_Var4 = (pRVar22->super_Object)._vptr_Object;
                      var_22 = pp_Var4[3];
                      if (var_22 == type_15::is_big_endian) {
                        iVar9 = (*pp_Var4[0x3a])();
                        var_23 = (char)iVar9;
                      }
                      else {
                        iVar9 = (*var_22)();
                        var_23 = (char)iVar9;
                      }
                      var_24 = *(type_16 *)var_20;
                      if (var_23 != '\0') {
                        var_24 = (type_12)var_24 >> 0x38 | (var_24 & 0xff000000000000U) >> 0x28 |
                                  (var_24 & 0xff0000000000U) >> 0x18 |
                                  (var_24 & 0xff00000000U) >> 8 | (var_24 & 0xff000000U) << 8 |
                                  (var_24 & 0xff0000U) << 0x18 | (var_24 & 0xff00U) << 0x28 |
                                  var_24 << 0x38;
                      }
                      var_20 = var_20 + 8;
                    }
LAB_00303035:
                    attr_value.aux.shndx =
                         type_14::var_25(this->dwinfo_,(type_16)attr_off,&var_24);
                    attr_value.val.refval = var_24;
                    goto joined_r0x00303052;
                  }
                  if (var_18 != 0x18) {
                    return false;
                  }
LAB_00302a09:
                  var_29 = *var_20;
                  aVar10.shndx._1_3_ = 0;
                  aVar10.shndx._0_1_ = var_29;
                  aVar15.stringval = (char *)(var_20 + 1);
                  if ((char)var_29 < '\0') {
                    uVar16 = var_19(aVar15.blockval,&var_21,var_29);
                    aVar10.shndx = (type_3)uVar16;
                    aVar15.stringval = (char *)(var_20 + var_21);
                  }
                  else {
                    var_21 = 1;
                  }
                  var_20 = var_20 + aVar10.shndx + var_21;
                  attr_value.val = aVar15;
                  attr_value.aux = aVar10;
                }
                else {
                  if (var_18 == 0x20) {
                    pp_Var4 = (this->dwinfo_->object_->super_Object)._vptr_Object;
                    var_22 = pp_Var4[3];
                    if (var_22 == type_15::is_big_endian) {
                      iVar9 = (*pp_Var4[0x3a])();
                      var_23 = (char)iVar9;
                    }
                    else {
                      iVar9 = (*var_22)();
                      var_23 = (char)iVar9;
                    }
                    /* WARNING: Load size is inaccurate */
                    attr_value.val.blockval = *var_20;
                    if (var_23 != '\0') {
                      attr_value.val.uintval =
                           attr_value.val.uintval >> 0x38 |
                           (attr_value.val.uintval & 0xff000000000000) >> 0x28 |
                           (attr_value.val.uintval & 0xff0000000000) >> 0x18 |
                           (attr_value.val.uintval & 0xff00000000) >> 8 |
                           (attr_value.val.uintval & 0xff000000) << 8 |
                           (attr_value.val.uintval & 0xff0000) << 0x18 |
                           (attr_value.val.uintval & 0xff00) << 0x28 |
                           attr_value.val.uintval << 0x38;
                    }
                    var_20 = var_20 + 8;
                    goto LAB_00302ea9;
                  }
                  if (var_18 < 0x20) {
                    return false;
                  }
                  if (1 < var_18 - 0x1f01) {
                    return false;
                  }
LAB_00302bcd:
                  var_29 = *var_20;
                  aVar14.intval._1_7_ = 0;
                  aVar14.uintval._0_1_ = var_29;
                  if ((char)var_29 < '\0') {
                    attr_value.val.uintval = var_19(var_20 + 1,&var_21,var_29);
                    var_20 = var_20 + var_21;
                  }
                  else {
                    var_21 = 1;
                    var_20 = var_20 + 1;
                    attr_value.val = aVar14;
                  }
                }
LAB_00302f92:
                if (var_26 == 0x31) goto LAB_00302750;
                if (0x31 < var_26) {
                  if ((var_26 == 0x6e) || (var_26 == 0x2007)) goto LAB_00302fb5;
                  goto LAB_00302750;
                }
                goto LAB_00302e3e;
              }
              attr_value.val.intval = 1;
LAB_00302ea9:
              if (((var_26 == 0x31) || (0x31 < var_26)) || (var_26 != 3)) goto LAB_00302750;
LAB_00302e52:
              if (var_18 == 8) {
LAB_003029c7:
                this->name_ = (char *)attr_value.val;
              }
              else if (var_18 == 0xe) goto LAB_00302f64;
              goto LAB_00302750;
            }
            if (var_18 != 0x11) {
              if (0x11 < var_18) {
                if (var_18 == 0x13) {
                  VVar12 = type_14::read_from_pointer<32>(this->dwinfo_,&var_20);
                  var_24 = (type_16)VVar12;
                  goto LAB_00303035;
                }
                if (0x13 < var_18) {
                  pRVar22 = this->dwinfo_->object_;
                  goto LAB_00302fe7;
                }
                pp_Var4 = (this->dwinfo_->object_->super_Object)._vptr_Object;
                var_22 = pp_Var4[3];
                if (var_22 == type_15::is_big_endian) {
                  iVar9 = (*pp_Var4[0x3a])();
                  var_23 = (char)iVar9;
                }
                else {
                  iVar9 = (*var_22)();
                  var_23 = (char)iVar9;
                }
                uVar7 = *(type_6 *)var_20;
                if (var_23 != '\0') {
                  uVar7 = var_27(*var_20,var_20[1]);
                }
                attr_value.val.intval._2_6_ = 0;
                attr_value.val.intval._0_2_ = uVar7;
                var_20 = var_20 + 2;
                goto joined_r0x00303052;
              }
              if (var_18 == 0xf) goto LAB_00302bcd;
              if (var_18 != 0x10) {
                return false;
              }
              pDVar21 = this->dwinfo_;
              var_18 = pDVar21->address_size_;
              if (2 < pDVar21->cu_version_) {
                var_18 = pDVar21->offset_size_;
              }
              if (var_18 != 4) goto LAB_00302a71;
LAB_00302e7d:
              VVar12 = type_14::read_from_pointer<32>(pDVar21,&var_20);
              var_24 = (type_16)VVar12;
LAB_00302abe:
              attr_value.aux.shndx =
                   type_14::var_25(this->dwinfo_,(type_16)attr_off,&var_24);
              attr_value.val.refval = var_24;
              if (var_26 == 0x31) goto LAB_00302965;
              if (0x31 < var_26) goto joined_r0x00302ccc;
              goto LAB_00302c20;
            }
            var_31 = var_20 + 1;
            attr_value.val.intval._1_7_ = 0;
            attr_value.val.uintval._0_1_ = *var_20;
            var_20 = var_31;
            if (var_26 != 0x31) {
              if (var_26 < 0x32) {
                if (var_26 == 1) {
                  this->sibling_offset_ = (type_16)attr_value.val;
                }
                goto LAB_00302750;
              }
joined_r0x00302ccc:
              if ((var_26 == 0x6e) || (var_26 == 0x2007)) goto LAB_00302750;
              goto joined_r0x00302ce3;
            }
          }
LAB_00302965:
          this->abstract_origin_ = (type_16)attr_value.val;
          goto LAB_00302750;
        }
        if (var_18 == 7) {
          pp_Var4 = (this->dwinfo_->object_->super_Object)._vptr_Object;
          var_22 = pp_Var4[3];
          if (var_22 == type_15::is_big_endian) {
            iVar9 = (*pp_Var4[0x3a])();
            var_23 = (char)iVar9;
          }
          else {
            iVar9 = (*var_22)();
            var_23 = (char)iVar9;
          }
          var_24 = *(type_16 *)var_20;
          if (var_23 != '\0') {
            var_24 = (type_12)var_24 >> 0x38 | (var_24 & 0xff000000000000U) >> 0x28 |
                      (var_24 & 0xff0000000000U) >> 0x18 | (var_24 & 0xff00000000U) >> 8 |
                      (var_24 & 0xff000000U) << 8 | (var_24 & 0xff0000U) << 0x18 |
                      (var_24 & 0xff00U) << 0x28 | var_24 << 0x38;
          }
          var_20 = var_20 + 8;
LAB_00302d40:
          attr_value.aux.shndx =
               type_14::var_25(this->dwinfo_,(type_16)attr_off,&var_24);
          attr_value.val.refval = var_24;
joined_r0x00302748:
          if ((var_26 != 0x31) && (var_26 < 0x32)) {
LAB_00302e3e:
            if ((var_26 != 1) && (var_26 == 3)) goto LAB_00302e52;
          }
          goto LAB_00302750;
        }
        if (var_18 < 8) {
          if (var_18 == 4) {
            pp_Var4 = (this->dwinfo_->object_->super_Object)._vptr_Object;
            var_22 = pp_Var4[3];
            if (var_22 == type_15::is_big_endian) {
              iVar9 = (*pp_Var4[0x3a])();
              var_23 = (char)iVar9;
            }
            else {
              iVar9 = (*var_22)();
              var_23 = (char)iVar9;
            }
            attr_value.aux.shndx = *(type_3 *)var_20;
            if (var_23 != '\0') {
              attr_value.aux.shndx =
                   attr_value.aux.shndx >> 0x18 | (attr_value.aux.shndx & 0xff0000) >> 8 |
                   (attr_value.aux.shndx & 0xff00) << 8 | attr_value.aux.shndx << 0x18;
            }
            attr_value.val.stringval = (char *)(var_20 + 4);
            var_20 = (type_11 *)(attr_value.val.stringval + attr_value.aux.shndx);
          }
          else if (var_18 < 5) {
            if (var_18 == 1) {
              pDVar21 = this->dwinfo_;
              if (pDVar21->address_size_ == 4) goto LAB_00302e7d;
LAB_00302a71:
              pp_Var4 = (pDVar21->object_->super_Object)._vptr_Object;
              var_22 = pp_Var4[3];
              if (var_22 == type_15::is_big_endian) {
                iVar9 = (*pp_Var4[0x3a])();
                var_23 = (char)iVar9;
              }
              else {
                iVar9 = (*var_22)();
                var_23 = (char)iVar9;
              }
              var_24 = *(type_16 *)var_20;
              if (var_23 != '\0') {
                var_24 = (type_12)var_24 >> 0x38 | (var_24 & 0xff000000000000U) >> 0x28 |
                          (var_24 & 0xff0000000000U) >> 0x18 | (var_24 & 0xff00000000U) >> 8 |
                          (var_24 & 0xff000000U) << 8 | (var_24 & 0xff0000U) << 0x18 |
                          (var_24 & 0xff00U) << 0x28 | var_24 << 0x38;
              }
              var_20 = var_20 + 8;
              goto LAB_00302abe;
            }
            if (var_18 != 3) {
              return false;
            }
            pp_Var4 = (this->dwinfo_->object_->super_Object)._vptr_Object;
            var_22 = pp_Var4[3];
            if (var_22 == type_15::is_big_endian) {
              iVar9 = (*pp_Var4[0x3a])();
              var_23 = (char)iVar9;
            }
            else {
              iVar9 = (*var_22)();
              var_23 = (char)iVar9;
            }
            uVar7 = *(type_6 *)var_20;
            if (var_23 != '\0') {
              uVar7 = var_27(*var_20,var_20[1]);
            }
            attr_value.aux.shndx._2_2_ = 0;
            attr_value.aux.shndx._0_2_ = uVar7;
            attr_value.val.stringval = (char *)(var_20 + 2);
            var_20 = (type_11 *)(attr_value.val.stringval + attr_value.aux.shndx);
          }
          else {
            if (var_18 != 5) {
              if (var_18 != 6) {
                return false;
              }
              pp_Var4 = (this->dwinfo_->object_->super_Object)._vptr_Object;
              var_22 = pp_Var4[3];
              if (var_22 == type_15::is_big_endian) {
                iVar9 = (*pp_Var4[0x3a])();
                var_23 = (char)iVar9;
              }
              else {
                iVar9 = (*var_22)();
                var_23 = (char)iVar9;
              }
              var_28 = *(type_3 *)var_20;
              if (var_23 != '\0') {
                var_28 = var_28 >> 0x18 | (var_28 & 0xff0000) >> 8 | (var_28 & 0xff00) << 8 |
                        var_28 << 0x18;
              }
              var_24 = (type_16)var_28;
              var_20 = var_20 + 4;
              goto LAB_00302d40;
            }
            pp_Var4 = (this->dwinfo_->object_->super_Object)._vptr_Object;
            var_22 = pp_Var4[3];
            if (var_22 == type_15::is_big_endian) {
              iVar9 = (*pp_Var4[0x3a])();
              var_23 = (char)iVar9;
            }
            else {
              iVar9 = (*var_22)();
              var_23 = (char)iVar9;
            }
            uVar7 = *(type_6 *)var_20;
            if (var_23 != '\0') {
              uVar7 = var_27(*var_20,var_20[1]);
            }
            var_20 = var_20 + 2;
            attr_value.val.intval._2_6_ = 0;
            attr_value.val.intval._0_2_ = uVar7;
          }
          goto joined_r0x00302748;
        }
        if (var_18 == 10) {
          attr_value.val.stringval = (char *)(var_20 + 1);
          var_29 = *var_20;
          var_20 = (type_11 *)(attr_value.val.stringval + var_29);
          attr_value.aux.shndx._1_3_ = 0;
          attr_value.aux.shndx._0_1_ = var_29;
          goto joined_r0x00302748;
        }
        if (var_18 < 0xb) {
          if (var_18 != 8) {
            if (var_18 != 9) {
              return false;
            }
            goto LAB_00302a09;
          }
          attr_value.val.blockval = var_20;
          var_21 = var_30((char *)var_20);
          var_20 = var_31 + var_21 + 1;
          if (var_26 == 0x31) goto LAB_00302750;
          if (0x31 < var_26) {
            if ((var_26 != 0x6e) && (var_26 != 0x2007)) goto LAB_00302750;
            goto LAB_003029eb;
          }
          if ((var_26 == 1) || (var_26 != 3)) goto LAB_00302750;
          goto LAB_003029c7;
        }
        if (var_18 < 0xd) {
          attr_value.val.intval._1_7_ = 0;
          attr_value.val.uintval._0_1_ = *var_20;
          var_20 = var_20 + 1;
          goto LAB_00302f92;
        }
        var_29 = *var_20;
        var_31 = var_20 + 1;
        if ((char)var_29 < '\0') {
          attr_value.val.intval = var_32(var_31,&var_21,var_29);
          var_31 = var_20 + var_21;
        }
        else {
          var_21 = 1;
          attr_value.val.intval._1_7_ = 0;
          attr_value.val.uintval._0_1_ = var_29;
          if ((var_29 & 0x40) != 0) {
            attr_value.val.uintval = attr_value.val.uintval | 0xffffffffffffff80;
          }
        }
        var_20 = var_31;
        if ((var_26 == 0x31) || (var_26 < 0x32)) goto LAB_00302750;
        if ((var_26 == 0x6e) || (var_26 == 0x2007)) goto LAB_00302fbe;
        __position._M_current =
             (this->attributes_).
             super__Vector_base<gold::type_1::type_17,_std::allocator<gold::Dwarf_die::type_17>var_6>
             ._M_impl._M_finish;
        if (__position._M_current ==
            (this->attributes_).
            super__Vector_base<gold::type_1::type_17,_std::allocator<gold::type_1::type_17>var_6>
            ._M_impl._M_end_of_storage) goto LAB_003028c0;
LAB_0030275e:
        (__position._M_current)->attr = (int)var_33(attr_value.form,attr_value.attr);
        (__position._M_current)->form = (int)(var_33(attr_value.form,attr_value.attr) >> 0x20);
        (__position._M_current)->val = attr_value.val;
        *(type_12 *)&(__position._M_current)->aux = var_33(attr_value._20_4_,attr_value.aux.shndx);
        (this->attributes_).
        super__Vector_base<gold::Dwarf_die::type_17,_std::allocator<gold::Dwarf_die::type_17>var_6>
        ._M_impl._M_finish = __position._M_current + 1;
      }
      var_3 = var_3 + 8;
      var_1 = this->abbrev_code_;
    } while (var_3 != (type_12)(var_17 - 1) * 8 + 8);
  }
  if (var_1 == (type_9 *)0x0) {
                    /* WARNING: Subroutine does not return */
    var_2("../../gold/dwarf_reader.h",0x206,"has_children");
  }
  var_3 = this->die_offset_;
LAB_00302797:
  if ((var_1->field_0x4 & 1) == 0) {
    this->sibling_offset_ = (type_16)(var_20 + (var_3 - (long)var_4));
  }
  else {
    this->child_offset_ = (type_16)(var_20 + (var_3 - (long)var_4));
  }
  this->attributes_read_ = true;
  return true;
}


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

undefined8 MASKED(long *param_1)

{
  byte bVar1;
  uint uVar2;
  void *__src;
  code *pcVar3;
  void *pvVar4;
  ushort uVar5;
  char cVar6;
  int iVar7;
  uint uVar8;
  uint uVar9;
  long lVar10;
  void *__dest;
  uint *puVar11;
  long lVar12;
  int iVar13;
  ulong uVar14;
  byte *pbVar15;
  undefined8 *puVar16;
  long *plVar17;
  long lVar18;
  void *pvVar19;
  size_t __n;
  long lVar20;
  uint *local_70;
  size_t local_68;
  uint *local_60;
  uint local_58;
  uint uStack_54;
  uint *puStack_50;
  uint local_48;
  undefined4 uStack_44;
  
  lVar10 = param_1[6];
  if (lVar10 == 0) {
                    /* WARNING: Subroutine does not return */
    FUN_001e9890("../../gold/dwarf_reader.cc",0x2a9,"read_attributes");
  }
  lVar20 = *param_1;
  lVar18 = param_1[2];
  lVar12 = *(long *)(lVar20 + 0x50) + lVar18 + *(long *)(lVar20 + 0x40);
  if ((ulong)(*(long *)(lVar20 + 0x40) + *(long *)(lVar20 + 0x50) + *(long *)(lVar20 + 0x58)) <
      lVar12 + 1U) {
    FUN_00301e70();
    return 0;
  }
  if (lVar12 == 0) {
    return 0;
  }
  __src = (void *)param_1[7];
  local_70 = (uint *)(param_1[3] + lVar12);
  uVar14 = *(long *)(lVar10 + 0x10) - *(long *)(lVar10 + 8) >> 3;
  iVar13 = (int)uVar14;
  uVar14 = uVar14 & 0xffffffff;
  if ((ulong)((param_1[9] - (long)__src >> 3) * -0x5555555555555555) < uVar14) {
    pvVar4 = (void *)param_1[8];
    __n = (long)pvVar4 - (long)__src;
    if (uVar14 == 0) {
      __dest = (void *)0x0;
      pvVar19 = __src;
    }
    else {
      __dest = (void *)FUN_00337280(uVar14 * 0x18);
      pvVar19 = (void *)param_1[7];
    }
    if (__src != pvVar4) {
      __dest = memmove(__dest,__src,__n);
    }
    if (pvVar19 != (void *)0x0) {
      FUN_00338a50(pvVar19);
    }
    param_1[7] = (long)__dest;
    lVar10 = param_1[6];
    param_1[8] = __n + (long)__dest;
    param_1[9] = (long)(uVar14 * 0x18 + (long)__dest);
    if (iVar13 != 0) goto LAB_00302642;
  }
  else {
    if (iVar13 == 0) goto LAB_00302797;
LAB_00302642:
    lVar20 = 0;
    do {
      puVar11 = (uint *)(*(long *)(lVar10 + 8) + lVar20);
      uVar8 = puVar11[1];
      uVar2 = *puVar11;
      if (uVar8 == 0x16) {
        bVar1 = (byte)*local_70;
        uVar8 = (uint)bVar1;
        if ((char)bVar1 < '\0') {
          uVar8 = FUN_002112d0((uint *)((long)local_70 + 1),&local_68,bVar1);
          local_70 = (uint *)(local_68 + (long)local_70);
        }
        else {
          local_68 = 1;
          local_70 = (uint *)((long)local_70 + 1);
        }
      }
      puVar11 = local_70;
      pbVar15 = (byte *)((long)local_70 + (param_1[2] - lVar12));
      local_48 = 0;
      local_58 = uVar2;
      uStack_54 = uVar8;
      if (uVar8 == 0xe) {
        lVar10 = *param_1;
        if (*(int *)(lVar10 + 0x60) == 4) {
          uVar8 = FUN_00305610(lVar10,&local_70);
          local_60 = (uint *)(ulong)uVar8;
        }
        else {
          pcVar3 = *(code **)(**(long **)(lVar10 + 0x10) + 0x18);
          if (pcVar3 == FUN_001b8d10) {
            cVar6 = (**(code **)(**(long **)(lVar10 + 0x10) + 0x1d0))();
          }
          else {
            cVar6 = (*pcVar3)();
          }
          local_60 = *(uint **)local_70;
          if (cVar6 != '\0') {
            local_60 = (uint *)((ulong)local_60 >> 0x38 |
                                ((ulong)local_60 & 0xff000000000000) >> 0x28 |
                                ((ulong)local_60 & 0xff0000000000) >> 0x18 |
                                ((ulong)local_60 & 0xff00000000) >> 8 |
                                ((ulong)local_60 & 0xff000000) << 8 |
                                ((ulong)local_60 & 0xff0000) << 0x18 |
                                ((ulong)local_60 & 0xff00) << 0x28 | (long)local_60 << 0x38);
          }
          local_70 = local_70 + 2;
        }
        local_48 = FUN_00301dc0(*param_1,pbVar15,&local_60);
        puStack_50 = local_60;
        if (uVar2 != 0x31) {
          if (uVar2 < 0x32) {
            if ((uVar2 != 1) && (uVar2 == 3)) {
LAB_00302f64:
              *(uint *)(param_1 + 0xf) = local_48;
              param_1[0xc] = (long)puStack_50;
            }
          }
          else if ((uVar2 == 0x6e) || (uVar2 == 0x2007)) {
LAB_00302fd0:
            *(uint *)(param_1 + 0xf) = local_48;
            param_1[0xe] = (long)puStack_50;
          }
        }
LAB_00302750:
        puVar16 = (undefined8 *)param_1[8];
        if (puVar16 != (undefined8 *)param_1[9]) goto LAB_0030275e;
LAB_003028c0:
        FUN_00305860(param_1 + 7,puVar16,&local_58);
      }
      else {
        if (0xe < uVar8) {
          if (uVar8 == 0x15) {
            bVar1 = (byte)*local_70;
            if ((char)bVar1 < '\0') {
              puStack_50 = (uint *)FUN_002112d0((uint *)((long)local_70 + 1),&local_68,bVar1);
              local_70 = (uint *)(local_68 + (long)local_70);
            }
            else {
              local_68 = 1;
              local_70 = (uint *)((long)local_70 + 1);
              puStack_50 = (uint *)(ulong)bVar1;
            }
joined_r0x00303052:
            if (uVar2 != 0x31) {
              if (uVar2 < 0x32) {
LAB_00302c20:
                if ((uVar2 == 1) && (local_48 == 0)) {
                  param_1[5] = (long)puStack_50;
                }
                goto LAB_00302750;
              }
              if ((uVar2 != 0x6e) && (uVar2 != 0x2007)) {
joined_r0x00302ce3:
                if (uVar2 == 0x47) {
                  param_1[0x10] = (long)puStack_50;
                }
                goto LAB_00302750;
              }
LAB_00302fb5:
              if (uVar8 == 8) {
LAB_003029eb:
                param_1[0xd] = (long)puStack_50;
              }
              else {
LAB_00302fbe:
                if (uVar8 == 0xe) goto LAB_00302fd0;
              }
              goto LAB_00302750;
            }
          }
          else {
            if (0x15 < uVar8) {
              if (uVar8 != 0x19) {
                if (uVar8 < 0x1a) {
                  if (uVar8 == 0x17) {
                    lVar10 = *param_1;
                    if (*(int *)(lVar10 + 0x60) == 4) {
                      uVar9 = FUN_00305610(lVar10,&local_70);
                      local_60 = (uint *)(ulong)uVar9;
                    }
                    else {
                      plVar17 = *(long **)(lVar10 + 0x10);
LAB_00302fe7:
                      pcVar3 = *(code **)(*plVar17 + 0x18);
                      if (pcVar3 == FUN_001b8d10) {
                        cVar6 = (**(code **)(*plVar17 + 0x1d0))();
                      }
                      else {
                        cVar6 = (*pcVar3)();
                      }
                      local_60 = *(uint **)local_70;
                      if (cVar6 != '\0') {
                        local_60 = (uint *)((ulong)local_60 >> 0x38 |
                                            ((ulong)local_60 & 0xff000000000000) >> 0x28 |
                                            ((ulong)local_60 & 0xff0000000000) >> 0x18 |
                                            ((ulong)local_60 & 0xff00000000) >> 8 |
                                            ((ulong)local_60 & 0xff000000) << 8 |
                                            ((ulong)local_60 & 0xff0000) << 0x18 |
                                            ((ulong)local_60 & 0xff00) << 0x28 |
                                           (long)local_60 << 0x38);
                      }
                      local_70 = local_70 + 2;
                    }
LAB_00303035:
                    local_48 = FUN_00301dc0(*param_1,pbVar15,&local_60);
                    puStack_50 = local_60;
                    goto joined_r0x00303052;
                  }
                  if (uVar8 != 0x18) {
                    return 0;
                  }
LAB_00302a09:
                  bVar1 = (byte)*local_70;
                  uVar9 = (uint)bVar1;
                  puVar11 = (uint *)((long)local_70 + 1);
                  if ((char)bVar1 < '\0') {
                    uVar9 = FUN_002112d0(puVar11,&local_68,bVar1);
                    puVar11 = (uint *)((long)local_70 + local_68);
                  }
                  else {
                    local_68 = 1;
                  }
                  local_70 = (uint *)((long)local_70 + uVar9 + local_68);
                  puStack_50 = puVar11;
                  local_48 = uVar9;
                }
                else {
                  if (uVar8 == 0x20) {
                    pcVar3 = *(code **)(**(long **)(*param_1 + 0x10) + 0x18);
                    if (pcVar3 == FUN_001b8d10) {
                      cVar6 = (**(code **)(**(long **)(*param_1 + 0x10) + 0x1d0))();
                    }
                    else {
                      cVar6 = (*pcVar3)();
                    }
                    puStack_50 = *(uint **)local_70;
                    if (cVar6 != '\0') {
                      puStack_50 = (uint *)((ulong)puStack_50 >> 0x38 |
                                            ((ulong)puStack_50 & 0xff000000000000) >> 0x28 |
                                            ((ulong)puStack_50 & 0xff0000000000) >> 0x18 |
                                            ((ulong)puStack_50 & 0xff00000000) >> 8 |
                                            ((ulong)puStack_50 & 0xff000000) << 8 |
                                            ((ulong)puStack_50 & 0xff0000) << 0x18 |
                                            ((ulong)puStack_50 & 0xff00) << 0x28 |
                                           (long)puStack_50 << 0x38);
                    }
                    local_70 = local_70 + 2;
                    goto LAB_00302ea9;
                  }
                  if (uVar8 < 0x20) {
                    return 0;
                  }
                  if (1 < uVar8 - 0x1f01) {
                    return 0;
                  }
LAB_00302bcd:
                  bVar1 = (byte)*local_70;
                  if ((char)bVar1 < '\0') {
                    puStack_50 = (uint *)FUN_002112d0((uint *)((long)local_70 + 1),&local_68,bVar1);
                    local_70 = (uint *)(local_68 + (long)local_70);
                  }
                  else {
                    local_68 = 1;
                    local_70 = (uint *)((long)local_70 + 1);
                    puStack_50 = (uint *)(ulong)bVar1;
                  }
                }
LAB_00302f92:
                if (uVar2 == 0x31) goto LAB_00302750;
                if (0x31 < uVar2) {
                  if ((uVar2 == 0x6e) || (uVar2 == 0x2007)) goto LAB_00302fb5;
                  goto LAB_00302750;
                }
                goto LAB_00302e3e;
              }
              puStack_50 = (uint *)0x1;
LAB_00302ea9:
              if (((uVar2 == 0x31) || (0x31 < uVar2)) || (uVar2 != 3)) goto LAB_00302750;
LAB_00302e52:
              if (uVar8 == 8) {
LAB_003029c7:
                param_1[0xb] = (long)puStack_50;
              }
              else if (uVar8 == 0xe) goto LAB_00302f64;
              goto LAB_00302750;
            }
            if (uVar8 != 0x11) {
              if (0x11 < uVar8) {
                if (uVar8 == 0x13) {
                  uVar9 = FUN_00305610(*param_1,&local_70);
                  local_60 = (uint *)(ulong)uVar9;
                  goto LAB_00303035;
                }
                if (0x13 < uVar8) {
                  plVar17 = *(long **)(*param_1 + 0x10);
                  goto LAB_00302fe7;
                }
                pcVar3 = *(code **)(**(long **)(*param_1 + 0x10) + 0x18);
                if (pcVar3 == FUN_001b8d10) {
                  cVar6 = (**(code **)(**(long **)(*param_1 + 0x10) + 0x1d0))();
                }
                else {
                  cVar6 = (*pcVar3)();
                }
                uVar5 = (ushort)*local_70;
                if (cVar6 != '\0') {
                  uVar5 = CONCAT11((byte)*local_70,*(byte *)((long)local_70 + 1));
                }
                local_70 = (uint *)((long)local_70 + 2);
                puStack_50 = (uint *)(ulong)uVar5;
                goto joined_r0x00303052;
              }
              if (uVar8 == 0xf) goto LAB_00302bcd;
              if (uVar8 != 0x10) {
                return 0;
              }
              lVar10 = *param_1;
              iVar7 = *(int *)(lVar10 + 100);
              if (2 < *(uint *)(lVar10 + 0x68)) {
                iVar7 = *(int *)(lVar10 + 0x60);
              }
              if (iVar7 != 4) goto LAB_00302a71;
LAB_00302e7d:
              uVar8 = FUN_00305610(lVar10,&local_70);
              local_60 = (uint *)(ulong)uVar8;
LAB_00302abe:
              local_48 = FUN_00301dc0(*param_1,pbVar15,&local_60);
              puStack_50 = local_60;
              if (uVar2 == 0x31) goto LAB_00302965;
              if (0x31 < uVar2) goto joined_r0x00302ccc;
              goto LAB_00302c20;
            }
            puVar11 = (uint *)((long)local_70 + 1);
            puStack_50 = (uint *)(ulong)(byte)*local_70;
            local_70 = puVar11;
            if (uVar2 != 0x31) {
              if (uVar2 < 0x32) {
                if (uVar2 == 1) {
                  param_1[5] = (long)puStack_50;
                }
                goto LAB_00302750;
              }
joined_r0x00302ccc:
              if ((uVar2 == 0x6e) || (uVar2 == 0x2007)) goto LAB_00302750;
              goto joined_r0x00302ce3;
            }
          }
LAB_00302965:
          param_1[0x11] = (long)puStack_50;
          goto LAB_00302750;
        }
        if (uVar8 == 7) {
          pcVar3 = *(code **)(**(long **)(*param_1 + 0x10) + 0x18);
          if (pcVar3 == FUN_001b8d10) {
            cVar6 = (**(code **)(**(long **)(*param_1 + 0x10) + 0x1d0))();
          }
          else {
            cVar6 = (*pcVar3)();
          }
          local_60 = *(uint **)local_70;
          if (cVar6 != '\0') {
            local_60 = (uint *)((ulong)local_60 >> 0x38 |
                                ((ulong)local_60 & 0xff000000000000) >> 0x28 |
                                ((ulong)local_60 & 0xff0000000000) >> 0x18 |
                                ((ulong)local_60 & 0xff00000000) >> 8 |
                                ((ulong)local_60 & 0xff000000) << 8 |
                                ((ulong)local_60 & 0xff0000) << 0x18 |
                                ((ulong)local_60 & 0xff00) << 0x28 | (long)local_60 << 0x38);
          }
          local_70 = local_70 + 2;
LAB_00302d40:
          local_48 = FUN_00301dc0(*param_1,pbVar15,&local_60);
          puStack_50 = local_60;
joined_r0x00302748:
          if ((uVar2 != 0x31) && (uVar2 < 0x32)) {
LAB_00302e3e:
            if ((uVar2 != 1) && (uVar2 == 3)) goto LAB_00302e52;
          }
          goto LAB_00302750;
        }
        if (uVar8 < 8) {
          if (uVar8 == 4) {
            pcVar3 = *(code **)(**(long **)(*param_1 + 0x10) + 0x18);
            if (pcVar3 == FUN_001b8d10) {
              cVar6 = (**(code **)(**(long **)(*param_1 + 0x10) + 0x1d0))();
            }
            else {
              cVar6 = (*pcVar3)();
            }
            local_48 = *local_70;
            if (cVar6 != '\0') {
              local_48 = local_48 >> 0x18 | (local_48 & 0xff0000) >> 8 | (local_48 & 0xff00) << 8 |
                         local_48 << 0x18;
            }
            puStack_50 = local_70 + 1;
            local_70 = (uint *)((long)puStack_50 + (ulong)local_48);
          }
          else if (uVar8 < 5) {
            if (uVar8 == 1) {
              lVar10 = *param_1;
              if (*(int *)(lVar10 + 100) == 4) goto LAB_00302e7d;
LAB_00302a71:
              pcVar3 = *(code **)(**(long **)(lVar10 + 0x10) + 0x18);
              if (pcVar3 == FUN_001b8d10) {
                cVar6 = (**(code **)(**(long **)(lVar10 + 0x10) + 0x1d0))();
              }
              else {
                cVar6 = (*pcVar3)();
              }
              local_60 = *(uint **)local_70;
              if (cVar6 != '\0') {
                local_60 = (uint *)((ulong)local_60 >> 0x38 |
                                    ((ulong)local_60 & 0xff000000000000) >> 0x28 |
                                    ((ulong)local_60 & 0xff0000000000) >> 0x18 |
                                    ((ulong)local_60 & 0xff00000000) >> 8 |
                                    ((ulong)local_60 & 0xff000000) << 8 |
                                    ((ulong)local_60 & 0xff0000) << 0x18 |
                                    ((ulong)local_60 & 0xff00) << 0x28 | (long)local_60 << 0x38);
              }
              local_70 = local_70 + 2;
              goto LAB_00302abe;
            }
            if (uVar8 != 3) {
              return 0;
            }
            pcVar3 = *(code **)(**(long **)(*param_1 + 0x10) + 0x18);
            if (pcVar3 == FUN_001b8d10) {
              cVar6 = (**(code **)(**(long **)(*param_1 + 0x10) + 0x1d0))();
            }
            else {
              cVar6 = (*pcVar3)();
            }
            uVar5 = (ushort)*local_70;
            if (cVar6 != '\0') {
              uVar5 = CONCAT11((byte)*local_70,*(byte *)((long)local_70 + 1));
            }
            local_48 = (uint)uVar5;
            puStack_50 = (uint *)((long)local_70 + 2);
            local_70 = (uint *)((long)puStack_50 + (ulong)local_48);
          }
          else {
            if (uVar8 != 5) {
              if (uVar8 != 6) {
                return 0;
              }
              pcVar3 = *(code **)(**(long **)(*param_1 + 0x10) + 0x18);
              if (pcVar3 == FUN_001b8d10) {
                cVar6 = (**(code **)(**(long **)(*param_1 + 0x10) + 0x1d0))();
              }
              else {
                cVar6 = (*pcVar3)();
              }
              uVar9 = *local_70;
              if (cVar6 != '\0') {
                uVar9 = uVar9 >> 0x18 | (uVar9 & 0xff0000) >> 8 | (uVar9 & 0xff00) << 8 |
                        uVar9 << 0x18;
              }
              local_60 = (uint *)(ulong)uVar9;
              local_70 = local_70 + 1;
              goto LAB_00302d40;
            }
            pcVar3 = *(code **)(**(long **)(*param_1 + 0x10) + 0x18);
            if (pcVar3 == FUN_001b8d10) {
              cVar6 = (**(code **)(**(long **)(*param_1 + 0x10) + 0x1d0))();
            }
            else {
              cVar6 = (*pcVar3)();
            }
            uVar5 = (ushort)*local_70;
            if (cVar6 != '\0') {
              uVar5 = CONCAT11((byte)*local_70,*(byte *)((long)local_70 + 1));
            }
            local_70 = (uint *)((long)local_70 + 2);
            puStack_50 = (uint *)(ulong)uVar5;
          }
          goto joined_r0x00302748;
        }
        if (uVar8 == 10) {
          puStack_50 = (uint *)((long)local_70 + 1);
          uVar9 = *local_70;
          local_70 = (uint *)((long)puStack_50 + (ulong)(byte)uVar9);
          local_48 = (uint)(byte)uVar9;
          goto joined_r0x00302748;
        }
        if (uVar8 < 0xb) {
          if (uVar8 != 8) {
            if (uVar8 != 9) {
              return 0;
            }
            goto LAB_00302a09;
          }
          puStack_50 = local_70;
          local_68 = strlen((char *)local_70);
          local_70 = (uint *)((long)puVar11 + local_68 + 1);
          if (uVar2 == 0x31) goto LAB_00302750;
          if (0x31 < uVar2) {
            if ((uVar2 != 0x6e) && (uVar2 != 0x2007)) goto LAB_00302750;
            goto LAB_003029eb;
          }
          if ((uVar2 == 1) || (uVar2 != 3)) goto LAB_00302750;
          goto LAB_003029c7;
        }
        if (uVar8 < 0xd) {
          uVar9 = *local_70;
          local_70 = (uint *)((long)local_70 + 1);
          puStack_50 = (uint *)(ulong)(byte)uVar9;
          goto LAB_00302f92;
        }
        bVar1 = (byte)*local_70;
        puVar11 = (uint *)((long)local_70 + 1);
        if ((char)bVar1 < '\0') {
          puStack_50 = (uint *)FUN_00211340(puVar11,&local_68);
          puVar11 = (uint *)(local_68 + (long)local_70);
        }
        else {
          local_68 = 1;
          puStack_50 = (uint *)(ulong)bVar1;
          if ((bVar1 & 0x40) != 0) {
            puStack_50 = (uint *)((ulong)bVar1 | 0xffffffffffffff80);
          }
        }
        local_70 = puVar11;
        if ((uVar2 == 0x31) || (uVar2 < 0x32)) goto LAB_00302750;
        if ((uVar2 == 0x6e) || (uVar2 == 0x2007)) goto LAB_00302fbe;
        puVar16 = (undefined8 *)param_1[8];
        if (puVar16 == (undefined8 *)param_1[9]) goto LAB_003028c0;
LAB_0030275e:
        *puVar16 = CONCAT44(uStack_54,local_58);
        puVar16[1] = puStack_50;
        puVar16[2] = CONCAT44(uStack_44,local_48);
        param_1[8] = (long)(puVar16 + 3);
      }
      lVar20 = lVar20 + 8;
      lVar10 = param_1[6];
    } while (lVar20 != (ulong)(iVar13 - 1) * 8 + 8);
  }
  if (lVar10 == 0) {
                    /* WARNING: Subroutine does not return */
    FUN_001e9890("../../gold/dwarf_reader.h",0x206,"has_children");
  }
  lVar18 = param_1[2];
LAB_00302797:
  pbVar15 = (byte *)((long)local_70 + (lVar18 - lVar12));
  if ((*(byte *)(lVar10 + 4) & 1) == 0) {
    param_1[5] = (long)pbVar15;
  }
  else {
    param_1[4] = (long)pbVar15;
  }
  *(undefined1 *)(param_1 + 10) = 1;
  return 1;
}

