
/* WARNING: Struct "Output_section_data": ignoring overlapping field "output_section_" */
/* WARNING: Struct "Output_section": ignoring overlapping field "name_" */
/* 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;
  uint uVar4;
  uint uVar5;
  ushort uVar6;
  anon_union_8_5_56ef6665_for_val aVar7;
  anon_union_8_5_56ef6665_for_val aVar8;
  anon_union_8_5_56ef6665_for_val aVar9;
  anon_union_8_5_56ef6665_for_val aVar10;
  anon_union_8_5_56ef6665_for_val aVar11;
  anon_union_8_5_56ef6665_for_val aVar12;
  Abbrev_code *pAVar13;
  uint *puVar14;
  uchar *puVar15;
  _func_int_varargs **pp_Var16;
  int iVar17;
  uchar *puVar18;
  pointer pAVar19;
  undefined1 uVar20;
  bool bVar21;
  uint extraout_v1;
  anon_union_4_3_97895b06_for_aux extraout_v1_00;
  Dwarf_info_reader *pDVar22;
  uint uVar23;
  undefined *puVar24;
  Dwarf_die *this_00;
  char *pcVar25;
  iterator __position;
  uint uVar26;
  anon_union_4_3_97895b06_for_aux aVar27;
  uchar *puVar28;
  uint uVar29;
  uchar *puVar30;
  int iVar31;
  uint uVar32;
  pointer pAVar33;
  int iVar34;
  pointer pAVar35;
  int iVar36;
  _func_int_varargs *p_Var37;
  ulonglong uVar38;
  anon_union_8_5_56ef6665_for_val aVar39;
  anon_union_8_5_56ef6665_for_val aVar40;
  Attribute_value attr_value;
  off_t str_off;
  size_t len;
  uchar *pattr;
  anon_union_4_3_97895b06_for_aux local_40;
  code *local_3c;
  Attributes *local_38;
  code *local_34;
  uchar *local_30;
  
  pAVar13 = this->abbrev_code_;
  if (pAVar13 == (Abbrev_code *)0x0) {
    puVar24 = PTR_s_in_a_linker_script_004c191c + 0x7090;
    (*(code *)PTR_do_gold_unreachable_004c1a30)
              (puVar24,0x2a9,PTR_s_in_a_linker_script_004c191c + 0x7414);
  }
  else {
    pDVar22 = this->dwinfo_;
    iVar34 = (int)this->die_offset_;
    iVar31 = (int)pDVar22->cu_offset_;
    puVar30 = pDVar22->buffer_ + iVar31 + iVar34;
    if (pDVar22->buffer_ + iVar31 + (int)pDVar22->cu_length_ < puVar30 + 1) {
      Dwarf_info_reader::warn_corrupt_debug_section(pDVar22);
      return false;
    }
    local_38 = &this->attributes_;
    if (puVar30 == (uchar *)0x0) {
      return false;
    }
    iVar31 = (int)(pAVar13->attributes).
                  super__Vector_base<gold::Dwarf_abbrev_table::Attribute,_std::allocator<gold::Dwarf_abbrev_table::Attribute>_>
                  ._M_impl._M_finish -
             (int)(pAVar13->attributes).
                  super__Vector_base<gold::Dwarf_abbrev_table::Attribute,_std::allocator<gold::Dwarf_abbrev_table::Attribute>_>
                  ._M_impl._M_start;
    pattr = puVar30 + (int)this->attr_offset_;
    uVar29 = iVar31 >> 3;
    puVar24 = PTR_s__s_004c1a50;
    if (uVar29 < 0xaaaaaab) {
      pAVar33 = (this->attributes_).
                super__Vector_base<gold::Dwarf_die::Attribute_value,_std::allocator<gold::Dwarf_die::Attribute_value>_>
                ._M_impl._M_start;
      if ((uint)(((int)(this->attributes_).
                       super__Vector_base<gold::Dwarf_die::Attribute_value,_std::allocator<gold::Dwarf_die::Attribute_value>_>
                       ._M_impl._M_end_of_storage - (int)pAVar33 >> 3) * -0x55555555) < uVar29) {
        aVar27 = (anon_union_4_3_97895b06_for_aux)
                 (this->attributes_).
                 super__Vector_base<gold::Dwarf_die::Attribute_value,_std::allocator<gold::Dwarf_die::Attribute_value>_>
                 ._M_impl._M_finish;
        iVar34 = aVar27.shndx - (int)pAVar33;
        if (uVar29 == 0) {
          pAVar19 = (pointer)0x0;
          pAVar35 = pAVar33;
        }
        else {
          local_40 = aVar27;
          pAVar19 = (pointer)(*(code *)PTR_operator_new_004c13a8)(uVar29 * 0x18);
          aVar27 = local_40;
          pAVar35 = (this->attributes_).
                    super__Vector_base<gold::Dwarf_die::Attribute_value,_std::allocator<gold::Dwarf_die::Attribute_value>_>
                    ._M_impl._M_start;
        }
        if (pAVar33 != (pointer)aVar27.shndx) {
          (*(code *)PTR_memmove_004c5af8)(pAVar19,pAVar33,iVar34);
        }
        if (pAVar35 != (pointer)0x0) {
          (*(code *)PTR_operator_delete_004c12fc)(pAVar35);
        }
        pAVar13 = this->abbrev_code_;
        (this->attributes_).
        super__Vector_base<gold::Dwarf_die::Attribute_value,_std::allocator<gold::Dwarf_die::Attribute_value>_>
        ._M_impl._M_start = pAVar19;
        (this->attributes_).
        super__Vector_base<gold::Dwarf_die::Attribute_value,_std::allocator<gold::Dwarf_die::Attribute_value>_>
        ._M_impl._M_finish = (pointer)((int)pAVar19 + iVar34);
        (this->attributes_).
        super__Vector_base<gold::Dwarf_die::Attribute_value,_std::allocator<gold::Dwarf_die::Attribute_value>_>
        ._M_impl._M_end_of_storage = pAVar19 + uVar29;
        if (uVar29 != 0) goto LAB_002e2d90;
LAB_002e2fb8:
        if (pAVar13 == (Abbrev_code *)0x0) {
          this_00 = (Dwarf_die *)(PTR_s_in_a_linker_script_004c191c + 0x7108);
          (*(code *)PTR_do_gold_unreachable_004c1a30)
                    (this_00,0x206,PTR_s_in_a_linker_script_004c191c + 0x7404);
          if (this_00->attributes_read_ == false) {
            bVar21 = read_attributes(this_00);
            return bVar21;
          }
          return this_00->attributes_read_;
        }
        iVar34 = (int)this->die_offset_;
      }
      else if (uVar29 != 0) {
LAB_002e2d90:
        local_3c = (code *)PTR_lookup_reloc_004c2994;
        iVar34 = 0;
        local_34 = (code *)PTR_read_from_pointer<64>_004c2998;
        local_40.shndx = (uint)&str_off;
LAB_002e2db4:
        puVar14 = (uint *)((int)&((pAVar13->attributes).
                                  super__Vector_base<gold::Dwarf_abbrev_table::Attribute,_std::allocator<gold::Dwarf_abbrev_table::Attribute>_>
                                  ._M_impl._M_start)->attr + iVar34);
        uVar29 = puVar14[1];
        uVar32 = *puVar14;
        aVar40 = attr_value.val;
        if (uVar29 == 0x16) goto LAB_002e31a8;
LAB_002e2dd0:
        puVar15 = pattr + -(int)puVar30;
        puVar28 = puVar15 + (int)this->die_offset_;
        iVar36 = (uint)(puVar28 < puVar15) + ((int)puVar15 >> 0x1f) + *(int *)&this->die_offset_;
        attr_value.form = uVar29;
        if (uVar29 == 0xe) goto LAB_002e31fc;
        do {
          attr_value.val.intval._4_4_ = (undefined4)aVar40.intval;
          attr_value.aux.shndx = 0;
          attr_value.attr = uVar32;
          attr_value.form = uVar29;
          attr_value.val = aVar40;
          if (0xe < uVar29) {
            if (uVar29 == 0x15) {
              if ((char)*pattr < '\0') {
                aVar39.intval = (*(code *)PTR_read_unsigned_LEB_128_x_004c2980)(pattr + 1,&len);
                pattr = pattr + len;
              }
              else {
                aVar39.intval._0_7_ = 0;
                aVar39.intval._7_1_ = *pattr;
                len = 1;
                pattr = pattr + 1;
              }
              goto joined_r0x002e3998;
            }
            if (0x15 < uVar29) {
              if (uVar29 == 0x19) {
                attr_value.val.intval._4_4_ = 1;
                attr_value.val.stringval = (char *)0x0;
              }
              else {
                if (uVar29 < 0x1a) {
                  if (uVar29 != 0x17) {
                    if (uVar29 != 0x18) {
                      return false;
                    }
                    goto LAB_002e32bc;
                  }
                  pDVar22 = this->dwinfo_;
                  if (pDVar22->offset_size_ == 4) {
                    pp_Var16 = (pDVar22->object_->super_Object)._vptr_Object;
                    p_Var37 = pp_Var16[3];
                    if (p_Var37 == (_func_int_varargs *)PTR_is_big_endian_004c2950) {
                      local_30 = puVar28;
                      iVar36 = (*pp_Var16[0x3a])();
                    }
                    else {
                      local_30 = puVar28;
                      iVar36 = (*p_Var37)();
                    }
                    uVar23 = *(uint *)pattr;
                    if (iVar36 == 0) {
                      uVar23 = (((uVar23 >> 0x10) << 0x18 | (uVar23 >> 0x18) << 0x10) >> 0x10) +
                               ((uVar23 & 0xff) << 8 | uVar23 >> 8 & 0xff) * 0x10000;
                    }
                    pattr = pattr + 4;
                    uVar38 = (ulonglong)uVar23;
                  }
                  else {
                    local_30 = puVar28;
                    uVar38 = (*local_34)(pDVar22,&pattr);
                  }
                  pDVar22 = this->dwinfo_;
                  goto LAB_002e3970;
                }
                if (uVar29 != 0x20) {
                  if (uVar29 < 0x20) {
                    return false;
                  }
                  if (1 < uVar29 - 0x1f01) {
                    return false;
                  }
LAB_002e34d8:
                  if ((char)*pattr < '\0') {
                    aVar40.intval = (*(code *)PTR_read_unsigned_LEB_128_x_004c2980)(pattr + 1,&len);
                    pattr = pattr + len;
                  }
                  else {
                    aVar40.intval._0_7_ = 0;
                    aVar40.intval._7_1_ = *pattr;
                    len = 1;
                    pattr = pattr + 1;
                  }
                  goto LAB_002e382c;
                }
                pp_Var16 = (this->dwinfo_->object_->super_Object)._vptr_Object;
                p_Var37 = pp_Var16[3];
                if (p_Var37 == (_func_int_varargs *)PTR_is_big_endian_004c2950) {
                  iVar36 = (*pp_Var16[0x3a])();
                }
                else {
                  iVar36 = (*p_Var37)();
                }
                    /* WARNING: Load size is inaccurate */
                attr_value.val._4_4_ = pattr[4];
                    /* WARNING: Load size is inaccurate */
                attr_value.val.blockval = *pattr;
                if (iVar36 == 0) {
                  uVar23 = attr_value.val.uintval._4_4_ & 0xff;
                  uVar26 = (uint)attr_value.val.uintval._4_4_ >> 8;
                  uVar2 = (uint)attr_value.val.uintval._4_4_ >> 0x10;
                  uVar4 = (uint)attr_value.val.uintval._4_4_ >> 0x18;
                  attr_value.val.intval._4_4_ =
                       ((((uint)attr_value.val.stringval >> 0x10) << 0x18 |
                        ((uint)attr_value.val.stringval >> 0x18) << 0x10) >> 0x10) +
                       (((uint)attr_value.val.stringval & 0xff) << 8 |
                       (uint)attr_value.val.stringval >> 8 & 0xff) * 0x10000;
                  attr_value.val.stringval =
                       (char *)(((uVar2 << 0x18 | uVar4 << 0x10) >> 0x10) +
                               (uVar23 << 8 | uVar26 & 0xff) * 0x10000);
                }
                pattr = pattr + 8;
              }
              aVar39.stringval = attr_value.val.stringval;
              aVar39.intval._4_4_ = attr_value.val.intval._4_4_;
              aVar11.stringval = attr_value.val.stringval;
              aVar11.intval._4_4_ = attr_value.val.intval._4_4_;
              aVar7.stringval = attr_value.val.stringval;
              aVar7.intval._4_4_ = attr_value.val.intval._4_4_;
              if (uVar32 == 0x6e) goto LAB_002e313c;
              aVar7 = aVar11;
              if (uVar32 == 0x2007) goto LAB_002e313c;
              goto joined_r0x002e3124;
            }
            if (uVar29 == 0x11) {
              puVar15 = pattr + 1;
              uVar23 = CONCAT31(0,*pattr);
              aVar39.stringval = (char *)0x0;
              aVar39.intval._4_4_ = uVar23;
              aVar12.stringval = (char *)0x0;
              aVar12.uintval._4_4_ = uVar23;
              aVar40.stringval = (char *)0x0;
              aVar40.uintval._4_4_ = uVar23;
              aVar10.stringval = (char *)0x0;
              aVar10.uintval._4_4_ = uVar23;
              aVar7.stringval = (char *)0x0;
              aVar7.uintval._4_4_ = uVar23;
              aVar9.stringval = (char *)0x0;
              aVar9.uintval._4_4_ = uVar23;
              pattr = puVar15;
              if (uVar32 == 0x31) goto LAB_002e30bc;
              if (0x31 < uVar32) {
                if ((uVar32 != 0x6e) && (aVar40 = aVar12, uVar32 != 0x2007)) {
                  if (uVar32 != 0x47) goto LAB_002e313c;
                  *(undefined4 *)&this->specification_ = 0;
                  *(uint *)((int)&this->specification_ + 4) = uVar23;
                  aVar7 = aVar10;
                  goto LAB_002e313c;
                }
                goto LAB_002e3858;
              }
              if (uVar32 == 1) {
                *(undefined4 *)&this->sibling_offset_ = 0;
                *(uint *)((int)&this->sibling_offset_ + 4) = uVar23;
                aVar7 = aVar9;
                goto LAB_002e313c;
              }
              goto joined_r0x002e3124;
            }
            if (uVar29 < 0x12) {
              if (uVar29 == 0xf) goto LAB_002e34d8;
              if (uVar29 != 0x10) {
                return false;
              }
              pDVar22 = this->dwinfo_;
              uVar23 = pDVar22->offset_size_;
              if (pDVar22->cu_version_ < 3) {
                uVar23 = pDVar22->address_size_;
              }
              if (uVar23 == 4) {
                pp_Var16 = (pDVar22->object_->super_Object)._vptr_Object;
                p_Var37 = pp_Var16[3];
                if (p_Var37 == (_func_int_varargs *)PTR_is_big_endian_004c2950) {
                  local_30 = puVar28;
                  iVar36 = (*pp_Var16[0x3a])();
                }
                else {
                  local_30 = puVar28;
                  iVar36 = (*p_Var37)();
                }
                uVar23 = *(uint *)pattr;
                if (iVar36 == 0) {
                  uVar23 = (((uVar23 >> 0x10) << 0x18 | (uVar23 >> 0x18) << 0x10) >> 0x10) +
                           ((uVar23 & 0xff) << 8 | uVar23 >> 8 & 0xff) * 0x10000;
                }
                pattr = pattr + 4;
                uVar38 = (ulonglong)uVar23;
              }
              else {
                local_30 = puVar28;
                uVar38 = (*local_34)(pDVar22,&pattr);
              }
              str_off = uVar38;
              attr_value.aux.shndx = (*local_3c)(this->dwinfo_);
              aVar39.refval = str_off;
            }
            else {
              if (uVar29 == 0x13) {
                pp_Var16 = (this->dwinfo_->object_->super_Object)._vptr_Object;
                p_Var37 = pp_Var16[3];
                if (p_Var37 == (_func_int_varargs *)PTR_is_big_endian_004c2950) {
                  local_30 = puVar28;
                  iVar36 = (*pp_Var16[0x3a])();
                }
                else {
                  local_30 = puVar28;
                  iVar36 = (*p_Var37)();
                }
                uVar23 = *(uint *)pattr;
                if (iVar36 == 0) {
                  uVar23 = (((uVar23 >> 0x10) << 0x18 | (uVar23 >> 0x18) << 0x10) >> 0x10) +
                           ((uVar23 & 0xff) << 8 | uVar23 >> 8 & 0xff) * 0x10000;
                }
                pattr = pattr + 4;
                pDVar22 = this->dwinfo_;
                uVar38 = (ulonglong)uVar23;
              }
              else {
                if (uVar29 < 0x14) {
                  pp_Var16 = (this->dwinfo_->object_->super_Object)._vptr_Object;
                  p_Var37 = pp_Var16[3];
                  if (p_Var37 == (_func_int_varargs *)PTR_is_big_endian_004c2950) {
                    iVar36 = (*pp_Var16[0x3a])();
                  }
                  else {
                    iVar36 = (*p_Var37)();
                  }
                  uVar6 = *(ushort *)pattr;
                  if (iVar36 == 0) {
                    uVar6 = CONCAT11(pattr[1],*pattr);
                  }
                  aVar39.intval._0_6_ = 0;
                  aVar39.intval._6_2_ = uVar6;
                  pattr = pattr + 2;
                  goto joined_r0x002e3998;
                }
                pp_Var16 = (this->dwinfo_->object_->super_Object)._vptr_Object;
                p_Var37 = pp_Var16[3];
                if (p_Var37 == (_func_int_varargs *)PTR_is_big_endian_004c2950) {
                  local_30 = puVar28;
                  iVar36 = (*pp_Var16[0x3a])();
                }
                else {
                  local_30 = puVar28;
                  iVar36 = (*p_Var37)();
                }
                uVar23 = *(uint *)(pattr + 4);
                uVar26 = *(uint *)pattr;
                if (iVar36 == 0) {
                  uVar2 = uVar23 & 0xff;
                  uVar4 = uVar23 >> 8;
                  uVar3 = uVar23 >> 0x10;
                  uVar5 = uVar23 >> 0x18;
                  uVar23 = (((uVar26 >> 0x10) << 0x18 | (uVar26 >> 0x18) << 0x10) >> 0x10) +
                           ((uVar26 & 0xff) << 8 | uVar26 >> 8 & 0xff) * 0x10000;
                  uVar26 = ((uVar3 << 0x18 | uVar5 << 0x10) >> 0x10) +
                           (uVar2 << 8 | uVar4 & 0xff) * 0x10000;
                }
                uVar38 = CONCAT44(uVar26,uVar23);
                pattr = pattr + 8;
                pDVar22 = this->dwinfo_;
              }
LAB_002e3970:
              str_off = uVar38;
              attr_value.aux.shndx = (*local_3c)(pDVar22);
              aVar39.refval = str_off;
            }
joined_r0x002e3998:
            if (uVar32 == 0x31) {
LAB_002e30bc:
              this->abstract_origin_ = (off_t)aVar39;
              aVar7 = aVar39;
              goto LAB_002e313c;
            }
            if (uVar32 < 0x32) {
              aVar7 = aVar39;
              if (uVar32 != 1) goto LAB_002e313c;
LAB_002e39b4:
              aVar7 = aVar39;
              if (attr_value.aux.shndx != 0) goto LAB_002e313c;
              this->sibling_offset_ = (off_t)aVar39;
              goto LAB_002e313c;
            }
            aVar40 = aVar39;
            if ((uVar32 != 0x6e) && (uVar32 != 0x2007)) {
LAB_002e339c:
              aVar7 = aVar39;
              if (uVar32 != 0x47) goto LAB_002e313c;
              this->specification_ = (off_t)aVar39;
              goto LAB_002e313c;
            }
            goto LAB_002e3858;
          }
          if (uVar29 == 7) {
            pp_Var16 = (this->dwinfo_->object_->super_Object)._vptr_Object;
            p_Var37 = pp_Var16[3];
            if (p_Var37 == (_func_int_varargs *)PTR_is_big_endian_004c2950) {
              local_30 = puVar28;
              iVar17 = (*pp_Var16[0x3a])();
            }
            else {
              local_30 = puVar28;
              iVar17 = (*p_Var37)();
            }
            str_off._4_4_ = *(char **)(pattr + 4);
            pcVar25 = *(char **)pattr;
            if (iVar17 == 0) {
              uVar23 = (uint)str_off._4_4_ & 0xff;
              uVar26 = (uint)str_off._4_4_ >> 8;
              uVar2 = (uint)str_off._4_4_ >> 0x10;
              uVar4 = (uint)str_off._4_4_ >> 0x18;
              str_off._4_4_ =
                   (char *)(((((uint)pcVar25 >> 0x10) << 0x18 | ((uint)pcVar25 >> 0x18) << 0x10) >>
                            0x10) + (((uint)pcVar25 & 0xff) << 8 | (uint)pcVar25 >> 8 & 0xff) *
                                    0x10000);
              pcVar25 = (char *)(((uVar2 << 0x18 | uVar4 << 0x10) >> 0x10) +
                                (uVar23 << 8 | uVar26 & 0xff) * 0x10000);
            }
            pattr = pattr + 8;
            pDVar22 = this->dwinfo_;
            str_off._0_4_ = pcVar25;
LAB_002e3708:
            attr_value.aux.shndx = (*local_3c)(pDVar22,pcVar25,iVar36,local_30,local_40.shndx);
            attr_value.val._4_4_ = str_off._4_4_;
            attr_value.val.stringval = str_off._0_4_;
            goto LAB_002e355c;
          }
          if (7 < uVar29) {
            if (uVar29 == 10) {
              attr_value.val.stringval = (char *)(pattr + 1);
              attr_value.aux.shndx._0_3_ = 0;
              attr_value.aux.shndx._3_1_ = *pattr;
              pattr = (uchar *)((int)attr_value.val.stringval + attr_value.aux.shndx);
              goto LAB_002e355c;
            }
            if (uVar29 < 0xb) {
              if (uVar29 != 8) {
                if (uVar29 != 9) {
                  return false;
                }
LAB_002e32bc:
                aVar27.shndx._0_3_ = 0;
                aVar27.shndx._3_1_ = *pattr;
                puVar15 = pattr + 1;
                if ((char)*pattr < '\0') {
                  (*(code *)PTR_read_unsigned_LEB_128_x_004c2980)(puVar15,&len);
                  puVar15 = pattr + len;
                  aVar27 = extraout_v1_00;
                }
                else {
                  len = 1;
                }
                aVar40.blockval = puVar15;
                aVar40.intval._4_4_ = attr_value.val.intval._4_4_;
                attr_value.aux = aVar27;
                pattr = pattr + aVar27.shndx + len;
                goto LAB_002e382c;
              }
              attr_value.val.blockval = pattr;
              local_30 = pattr;
              len = (*(code *)PTR_strlen_004c5b9c)(pattr);
              aVar40.stringval = attr_value.val.stringval;
              aVar40.intval._4_4_ = attr_value.val.intval._4_4_;
              aVar8.stringval = attr_value.val.stringval;
              aVar8.intval._4_4_ = attr_value.val.intval._4_4_;
              aVar7.stringval = attr_value.val.stringval;
              aVar7.intval._4_4_ = attr_value.val.intval._4_4_;
              pattr = local_30 + len + 1;
              if (uVar32 == 0x31) goto LAB_002e313c;
              if (0x31 < uVar32) {
                if ((uVar32 != 0x6e) && (aVar7 = aVar8, uVar32 != 0x2007)) goto LAB_002e313c;
                this->linkage_name_ = (char *)local_30;
                aVar7 = aVar40;
                goto LAB_002e313c;
              }
LAB_002e3118:
              aVar7 = aVar40;
              aVar39 = aVar40;
              if (uVar32 == 1) goto LAB_002e313c;
joined_r0x002e3124:
              aVar7 = aVar39;
              if (uVar32 != 3) goto LAB_002e313c;
              attr_value.val.stringval = (char *)((ulonglong)aVar39 >> 0x20);
              if (uVar29 == 8) {
                this->name_ = attr_value.val.stringval;
                goto LAB_002e313c;
              }
              if (uVar29 != 0xe) goto LAB_002e313c;
              goto LAB_002e3284;
            }
            if (uVar29 < 0xd) {
              aVar40.intval._0_7_ = 0;
              aVar40.uintval._7_1_ = *pattr;
              pattr = pattr + 1;
LAB_002e382c:
              aVar7 = aVar40;
              if (uVar32 == 0x31) goto LAB_002e313c;
              if (uVar32 < 0x32) goto LAB_002e3118;
            }
            else {
              bVar1 = *pattr;
              uVar23 = CONCAT31(0,bVar1);
              puVar15 = pattr + 1;
              if ((char)bVar1 < '\0') {
                aVar40.intval = (*(code *)PTR_read_signed_LEB_128_x_004c297c)(puVar15,&len,uVar23);
                puVar15 = pattr + len;
              }
              else {
                len = 1;
                aVar40.stringval = (char *)0x0;
                aVar40.uintval._4_4_ = uVar23;
                if ((bVar1 & 0x40) != 0) {
                  aVar40.stringval = (char *)0xffffffff;
                  aVar40.uintval._4_4_ = uVar23 | 0xffffff80;
                }
              }
              pattr = puVar15;
              aVar7 = aVar40;
              if (uVar32 == 0x31) goto LAB_002e313c;
              if (uVar32 < 0x32) {
                __position._M_current =
                     (this->attributes_).
                     super__Vector_base<gold::Dwarf_die::Attribute_value,_std::allocator<gold::Dwarf_die::Attribute_value>_>
                     ._M_impl._M_finish;
                iVar36 = iVar34;
                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_002e314c;
LAB_002e2f98:
                iVar34 = iVar34 + 8;
                attr_value.val = aVar40;
                std::
                vector<gold::Dwarf_die::Attribute_value,_std::allocator<gold::Dwarf_die::Attribute_value>_>
                ::_M_realloc_insert<const_gold::Dwarf_die::Attribute_value&>
                          (local_38,__position,&attr_value);
                pAVar13 = this->abbrev_code_;
                if (iVar34 == iVar31) goto LAB_002e2fb8;
                goto LAB_002e2db4;
              }
            }
            if ((uVar32 != 0x6e) && (aVar7 = aVar40, uVar32 != 0x2007)) goto LAB_002e313c;
LAB_002e3858:
            attr_value.val._0_4_ = aVar40.stringval;
            aVar7 = aVar40;
            if (uVar29 == 8) {
              this->linkage_name_ = attr_value.val.stringval;
              goto LAB_002e313c;
            }
            if (uVar29 != 0xe) goto LAB_002e313c;
            goto LAB_002e387c;
          }
          if (uVar29 == 4) {
            pp_Var16 = (this->dwinfo_->object_->super_Object)._vptr_Object;
            p_Var37 = pp_Var16[3];
            if (p_Var37 == (_func_int_varargs *)PTR_is_big_endian_004c2950) {
              iVar36 = (*pp_Var16[0x3a])();
            }
            else {
              iVar36 = (*p_Var37)();
            }
            attr_value.aux.shndx = *(uint *)pattr;
            if (iVar36 == 0) {
              attr_value.aux.shndx =
                   (((attr_value.aux.shndx >> 0x10) << 0x18 | (attr_value.aux.shndx >> 0x18) << 0x10
                    ) >> 0x10) +
                   ((attr_value.aux.shndx & 0xff) << 8 | attr_value.aux.shndx >> 8 & 0xff) * 0x10000
              ;
            }
            attr_value.val.stringval = (char *)(pattr + 4);
            pattr = (uchar *)((int)attr_value.val.stringval + attr_value.aux.shndx);
LAB_002e355c:
            aVar40.stringval = attr_value.val.stringval;
            aVar40.intval._4_4_ = attr_value.val.intval._4_4_;
            aVar7 = aVar40;
            if (uVar32 == 0x31) goto LAB_002e313c;
            if (uVar32 < 0x32) goto LAB_002e3118;
            __position._M_current =
                 (this->attributes_).
                 super__Vector_base<gold::Dwarf_die::Attribute_value,_std::allocator<gold::Dwarf_die::Attribute_value>_>
                 ._M_impl._M_finish;
          }
          else {
            if (4 < uVar29) {
              if (uVar29 != 5) {
                if (uVar29 != 6) {
                  return false;
                }
                pp_Var16 = (this->dwinfo_->object_->super_Object)._vptr_Object;
                p_Var37 = pp_Var16[3];
                if (p_Var37 == (_func_int_varargs *)PTR_is_big_endian_004c2950) {
                  local_30 = puVar28;
                  iVar17 = (*pp_Var16[0x3a])();
                }
                else {
                  local_30 = puVar28;
                  iVar17 = (*p_Var37)();
                }
                pcVar25 = *(char **)pattr;
                if (iVar17 == 0) {
                  pcVar25 = (char *)(((((uint)pcVar25 >> 0x10) << 0x18 |
                                      ((uint)pcVar25 >> 0x18) << 0x10) >> 0x10) +
                                    (((uint)pcVar25 & 0xff) << 8 | (uint)pcVar25 >> 8 & 0xff) *
                                    0x10000);
                }
                pattr = pattr + 4;
                pDVar22 = this->dwinfo_;
                str_off._0_4_ = (char *)0x0;
                str_off._4_4_ = pcVar25;
                goto LAB_002e3708;
              }
              pp_Var16 = (this->dwinfo_->object_->super_Object)._vptr_Object;
              p_Var37 = pp_Var16[3];
              if (p_Var37 == (_func_int_varargs *)PTR_is_big_endian_004c2950) {
                iVar36 = (*pp_Var16[0x3a])();
              }
              else {
                iVar36 = (*p_Var37)();
              }
              uVar6 = *(ushort *)pattr;
              if (iVar36 == 0) {
                uVar6 = CONCAT11(pattr[1],*pattr);
              }
              attr_value.val.intval._4_4_ = ZEXT24(uVar6);
              pattr = pattr + 2;
              attr_value.val.stringval = (char *)0x0;
              goto LAB_002e355c;
            }
            if (uVar29 != 1) {
              if (uVar29 != 3) {
                return false;
              }
              pp_Var16 = (this->dwinfo_->object_->super_Object)._vptr_Object;
              p_Var37 = pp_Var16[3];
              if (p_Var37 == (_func_int_varargs *)PTR_is_big_endian_004c2950) {
                iVar36 = (*pp_Var16[0x3a])();
              }
              else {
                iVar36 = (*p_Var37)();
              }
              uVar6 = *(ushort *)pattr;
              if (iVar36 == 0) {
                uVar6 = CONCAT11(pattr[1],*pattr);
              }
              attr_value.aux.shndx._0_2_ = 0;
              attr_value.aux.shndx._2_2_ = uVar6;
              attr_value.val.stringval = (char *)(pattr + 2);
              pattr = (uchar *)((int)attr_value.val.stringval + attr_value.aux.shndx);
              goto LAB_002e355c;
            }
            pDVar22 = this->dwinfo_;
            if (pDVar22->address_size_ == 4) {
              pp_Var16 = (pDVar22->object_->super_Object)._vptr_Object;
              p_Var37 = pp_Var16[3];
              if (p_Var37 == (_func_int_varargs *)PTR_is_big_endian_004c2950) {
                local_30 = puVar28;
                iVar36 = (*pp_Var16[0x3a])();
              }
              else {
                local_30 = puVar28;
                iVar36 = (*p_Var37)();
              }
              uVar23 = *(uint *)pattr;
              if (iVar36 == 0) {
                uVar23 = (((uVar23 >> 0x10) << 0x18 | (uVar23 >> 0x18) << 0x10) >> 0x10) +
                         ((uVar23 & 0xff) << 8 | uVar23 >> 8 & 0xff) * 0x10000;
              }
              pattr = pattr + 4;
              uVar38 = (ulonglong)uVar23;
            }
            else {
              local_30 = puVar28;
              uVar38 = (*local_34)(pDVar22,&pattr);
            }
            str_off = uVar38;
            attr_value.aux.shndx = (*local_3c)(this->dwinfo_);
            aVar39.refval = str_off;
            if (uVar32 == 0x31) goto LAB_002e30bc;
            if (uVar32 < 0x32) {
              if (uVar32 != 1) goto joined_r0x002e3124;
              goto LAB_002e39b4;
            }
            aVar7.refval = str_off;
            if (uVar32 == 0x6e) goto LAB_002e313c;
            if (uVar32 != 0x2007) goto LAB_002e339c;
            __position._M_current =
                 (this->attributes_).
                 super__Vector_base<gold::Dwarf_die::Attribute_value,_std::allocator<gold::Dwarf_die::Attribute_value>_>
                 ._M_impl._M_finish;
            aVar40.refval = str_off;
          }
          while( true ) {
            iVar36 = iVar34;
            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_002e2f98;
LAB_002e314c:
            attr_value.val.stringval = (char *)((ulonglong)aVar40 >> 0x20);
            attr_value.val.intval._4_4_ = (undefined4)aVar40.intval;
            iVar34 = iVar36 + 8;
            (__position._M_current)->form = attr_value.form;
            ((__position._M_current)->val).stringval = attr_value.val.stringval;
            (__position._M_current)->attr = attr_value.attr;
            *(undefined4 *)((int)&(__position._M_current)->val + 4) = attr_value.val.intval._4_4_;
            (__position._M_current)->aux = attr_value.aux;
            *(undefined4 *)&(__position._M_current)->field_0x14 = attr_value._20_4_;
            (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;
            pAVar13 = this->abbrev_code_;
            attr_value.val = aVar40;
            if (iVar34 == iVar31) goto LAB_002e2fb8;
            puVar14 = (uint *)((int)&(pAVar13->attributes).
                                     super__Vector_base<gold::Dwarf_abbrev_table::Attribute,_std::allocator<gold::Dwarf_abbrev_table::Attribute>_>
                                     ._M_impl._M_start[1].attr + iVar36);
            uVar29 = puVar14[1];
            uVar32 = *puVar14;
            if (uVar29 != 0x16) goto LAB_002e2dd0;
LAB_002e31a8:
            uVar29 = (uint)*pattr;
            puVar15 = pattr + 1;
            if ((char)*pattr < '\0') {
              attr_value.val = aVar40;
              (*(code *)PTR_read_unsigned_LEB_128_x_004c2980)(puVar15,&len,uVar29);
              puVar15 = pattr + len;
              uVar29 = extraout_v1;
              aVar40 = attr_value.val;
            }
            else {
              len = 1;
            }
            puVar18 = puVar15 + -(int)puVar30;
            puVar28 = puVar18 + (int)this->die_offset_;
            iVar36 = (uint)(puVar28 < puVar18) + ((int)puVar18 >> 0x1f) + *(int *)&this->die_offset_
            ;
            attr_value.form = uVar29;
            pattr = puVar15;
            if (uVar29 != 0xe) break;
LAB_002e31fc:
            attr_value.aux.shndx = 0;
            pDVar22 = this->dwinfo_;
            attr_value.attr = uVar32;
            local_30 = puVar28;
            attr_value.val = aVar40;
            if (pDVar22->offset_size_ == 4) {
              pp_Var16 = (pDVar22->object_->super_Object)._vptr_Object;
              p_Var37 = pp_Var16[3];
              if (p_Var37 == (_func_int_varargs *)PTR_is_big_endian_004c2950) {
                iVar36 = (*pp_Var16[0x3a])();
              }
              else {
                iVar36 = (*p_Var37)();
              }
              uVar29 = *(uint *)pattr;
              if (iVar36 == 0) {
                uVar29 = (((uVar29 >> 0x10) << 0x18 | (uVar29 >> 0x18) << 0x10) >> 0x10) +
                         ((uVar29 & 0xff) << 8 | uVar29 >> 8 & 0xff) * 0x10000;
              }
              pattr = pattr + 4;
              uVar38 = (ulonglong)uVar29;
            }
            else {
              uVar38 = (*local_34)(pDVar22,&pattr);
            }
            str_off = uVar38;
            attr_value.aux.shndx = (*local_3c)(this->dwinfo_);
            aVar7.refval = str_off;
            if (uVar32 != 0x31) {
              if (uVar32 < 0x32) {
                if ((uVar32 != 1) && (aVar39.refval = str_off, uVar32 == 3)) {
LAB_002e3284:
                  this->string_shndx_ = (uint)attr_value.aux;
                  this->name_off_ = (off_t)aVar39;
                  aVar7 = aVar39;
                }
              }
              else {
                aVar40.refval = str_off;
                if (uVar32 == 0x6e) {
LAB_002e387c:
                  this->string_shndx_ = (uint)attr_value.aux;
                }
                else {
                  if (uVar32 != 0x2007) goto LAB_002e313c;
                  this->string_shndx_ = (uint)attr_value.aux;
                }
                this->linkage_name_off_ = (off_t)aVar40;
                aVar7 = aVar40;
              }
            }
LAB_002e313c:
            __position._M_current =
                 (this->attributes_).
                 super__Vector_base<gold::Dwarf_die::Attribute_value,_std::allocator<gold::Dwarf_die::Attribute_value>_>
                 ._M_impl._M_finish;
            aVar40 = aVar7;
          }
        } while( true );
      }
      uVar32 = (int)pattr - (int)puVar30;
      uVar29 = uVar32 + iVar34;
      iVar31 = (uint)(uVar29 < uVar32) + ((int)uVar32 >> 0x1f) + *(int *)&this->die_offset_;
      if (*(int *)&pAVar13->field_0x4 < 0) {
        *(int *)&this->child_offset_ = iVar31;
        *(uint *)((int)&this->child_offset_ + 4) = uVar29;
      }
      else {
        *(int *)&this->sibling_offset_ = iVar31;
        *(uint *)((int)&this->sibling_offset_ + 4) = uVar29;
      }
      this->attributes_read_ = true;
      return true;
    }
  }
  uVar20 = (*(code *)PTR___throw_length_error_004c1e74)(puVar24 + -0xda4);
  return (bool)uVar20;
}



undefined4 FUN_002e2ca8(int *param_1)

{
  byte bVar1;
  uint uVar2;
  uint uVar3;
  uint uVar4;
  uint uVar5;
  ushort uVar6;
  ulonglong uVar7;
  int iVar8;
  uint *puVar9;
  int iVar10;
  uint *puVar11;
  undefined4 uVar12;
  uint extraout_v1;
  undefined8 *puVar13;
  uint extraout_v1_00;
  Dwarf_info_reader *this;
  byte *pbVar14;
  uint uVar15;
  uint uVar16;
  int iVar17;
  uint *puVar18;
  uint uVar19;
  int iVar20;
  int iVar21;
  uint uVar22;
  undefined8 *puVar23;
  undefined8 *puVar24;
  code *pcVar25;
  ulonglong uVar26;
  uint local_68;
  uint local_64;
  undefined8 local_60;
  uint local_58;
  uint local_54;
  undefined8 local_50;
  int local_48;
  uint *local_44;
  undefined8 *local_40;
  code *local_3c;
  vector<gold::Dwarf_die::Attribute_value,std::allocator<gold::Dwarf_die::Attribute_value>>
  *local_38;
  code *local_34;
  uint *local_30;
  
  iVar8 = param_1[10];
  if (iVar8 == 0) {
    uVar12 = (*(code *)PTR_do_gold_unreachable_004c1a30)
                       (PTR_s_in_a_linker_script_004c191c + 0x7090,0x2a9,
                        PTR_s_in_a_linker_script_004c191c + 0x7414);
    return uVar12;
  }
  this = (Dwarf_info_reader *)*param_1;
  iVar17 = param_1[3];
  iVar20 = *(int *)(this + 0x2c) + *(int *)(this + 0x3c) + iVar17;
  if ((uint)(*(int *)(this + 0x2c) + *(int *)(this + 0x3c) + *(int *)(this + 0x44)) < iVar20 + 1U) {
    gold::Dwarf_info_reader::warn_corrupt_debug_section(this);
    return 0;
  }
  local_38 = (vector<gold::Dwarf_die::Attribute_value,std::allocator<gold::Dwarf_die::Attribute_value>>
              *)(param_1 + 0xb);
  if (iVar20 == 0) {
    return 0;
  }
  iVar21 = *(int *)(iVar8 + 0xc) - *(int *)(iVar8 + 8);
  local_44 = (uint *)(iVar20 + param_1[5]);
  uVar19 = iVar21 >> 3;
  if (0xaaaaaaa < uVar19) {
    uVar12 = (*(code *)PTR___throw_length_error_004c1e74)(PTR_s__s_004c1a50 + -0xda4);
    return uVar12;
  }
  puVar23 = (undefined8 *)param_1[0xb];
  if ((uint)((param_1[0xd] - (int)puVar23 >> 3) * -0x55555555) < uVar19) {
    puVar13 = (undefined8 *)param_1[0xc];
    iVar17 = (int)puVar13 - (int)puVar23;
    if (uVar19 == 0) {
      iVar10 = 0;
      puVar24 = puVar23;
    }
    else {
      local_40 = puVar13;
      iVar10 = (*(code *)PTR_operator_new_004c13a8)(uVar19 * 0x18);
      puVar13 = local_40;
      puVar24 = (undefined8 *)param_1[0xb];
    }
    if (puVar23 != puVar13) {
      (*(code *)PTR_memmove_004c5af8)(iVar10,puVar23,iVar17);
    }
    if (puVar24 != (undefined8 *)0x0) {
      (*(code *)PTR_operator_delete_004c12fc)(puVar24);
    }
    iVar8 = param_1[10];
    param_1[0xb] = iVar10;
    param_1[0xc] = iVar10 + iVar17;
    param_1[0xd] = iVar10 + uVar19 * 0x18;
    if (uVar19 != 0) goto LAB_002e2d90;
LAB_002e2fb8:
    if (iVar8 == 0) {
      uVar12 = (*(code *)PTR_do_gold_unreachable_004c1a30)
                         (PTR_s_in_a_linker_script_004c191c + 0x7108,0x206,
                          PTR_s_in_a_linker_script_004c191c + 0x7404);
      return uVar12;
    }
    iVar17 = param_1[3];
  }
  else if (uVar19 != 0) {
LAB_002e2d90:
    local_3c = (code *)PTR_lookup_reloc_004c2994;
    iVar17 = 0;
    local_34 = (code *)PTR_read_from_pointer<64>_004c2998;
    local_40 = &local_50;
LAB_002e2db4:
    puVar9 = (uint *)(*(int *)(iVar8 + 8) + iVar17);
    uVar19 = puVar9[1];
    uVar22 = *puVar9;
    uVar26 = local_60;
    if (uVar19 == 0x16) goto LAB_002e31a8;
LAB_002e2dd0:
    puVar9 = (uint *)((int)local_44 - iVar20);
    puVar18 = (uint *)((int)puVar9 + param_1[3]);
    iVar8 = (uint)(puVar18 < puVar9) + ((int)puVar9 >> 0x1f) + param_1[2];
    local_64 = uVar19;
    if (uVar19 == 0xe) goto LAB_002e31fc;
    do {
      local_60._4_4_ = (uint *)uVar26;
      local_58 = 0;
      local_68 = uVar22;
      local_64 = uVar19;
      local_60 = uVar26;
      if (0xe < uVar19) {
        if (uVar19 == 0x15) {
          if ((char)*(byte *)local_44 < '\0') {
            uVar26 = (*(code *)PTR_read_unsigned_LEB_128_x_004c2980)
                               ((uint *)((int)local_44 + 1),&local_48);
            local_44 = (uint *)((int)local_44 + local_48);
          }
          else {
            uVar26 = (ulonglong)*(byte *)local_44;
            local_48 = 1;
            local_44 = (uint *)((int)local_44 + 1);
          }
          goto joined_r0x002e3998;
        }
        if (0x15 < uVar19) {
          if (uVar19 == 0x19) {
            local_60._4_4_ = (uint *)0x1;
            local_60._0_4_ = (uint *)0x0;
          }
          else {
            if (uVar19 < 0x1a) {
              if (uVar19 != 0x17) {
                if (uVar19 != 0x18) {
                  return 0;
                }
                goto LAB_002e32bc;
              }
              iVar8 = *param_1;
              if (*(int *)(iVar8 + 0x48) == 4) {
                pcVar25 = *(code **)(**(int **)(iVar8 + 8) + 0xc);
                if (pcVar25 == (code *)PTR_is_big_endian_004c2950) {
                  local_30 = puVar18;
                  iVar8 = (**(code **)(**(int **)(iVar8 + 8) + 0xe8))();
                }
                else {
                  local_30 = puVar18;
                  iVar8 = (*pcVar25)();
                }
                uVar15 = *local_44;
                if (iVar8 == 0) {
                  uVar15 = (((uVar15 >> 0x10) << 0x18 | (uVar15 >> 0x18) << 0x10) >> 0x10) +
                           ((uVar15 & 0xff) << 8 | uVar15 >> 8 & 0xff) * 0x10000;
                }
                local_44 = local_44 + 1;
                uVar26 = (ulonglong)uVar15;
              }
              else {
                local_30 = puVar18;
                uVar26 = (*local_34)(iVar8,&local_44);
              }
              iVar8 = *param_1;
              goto LAB_002e3970;
            }
            if (uVar19 != 0x20) {
              if (uVar19 < 0x20) {
                return 0;
              }
              if (1 < uVar19 - 0x1f01) {
                return 0;
              }
LAB_002e34d8:
              if ((char)*(byte *)local_44 < '\0') {
                uVar26 = (*(code *)PTR_read_unsigned_LEB_128_x_004c2980)
                                   ((uint *)((int)local_44 + 1),&local_48);
                local_44 = (uint *)((int)local_44 + local_48);
              }
              else {
                uVar26 = (ulonglong)*(byte *)local_44;
                local_48 = 1;
                local_44 = (uint *)((int)local_44 + 1);
              }
              goto LAB_002e382c;
            }
            pcVar25 = *(code **)(**(int **)(*param_1 + 8) + 0xc);
            if (pcVar25 == (code *)PTR_is_big_endian_004c2950) {
              iVar8 = (**(code **)(**(int **)(*param_1 + 8) + 0xe8))();
            }
            else {
              iVar8 = (*pcVar25)();
            }
            local_60._4_4_ = (uint *)local_44[1];
            local_60._0_4_ = (uint *)*local_44;
            if (iVar8 == 0) {
              uVar15 = (uint)local_60._4_4_ & 0xff;
              uVar16 = (uint)local_60._4_4_ >> 8;
              uVar2 = (uint)local_60._4_4_ >> 0x10;
              uVar4 = (uint)local_60._4_4_ >> 0x18;
              local_60._4_4_ =
                   (uint *)(((((uint)local_60._0_4_ >> 0x10) << 0x18 |
                             ((uint)local_60._0_4_ >> 0x18) << 0x10) >> 0x10) +
                           (((uint)local_60._0_4_ & 0xff) << 8 | (uint)local_60._0_4_ >> 8 & 0xff) *
                           0x10000);
              local_60._0_4_ =
                   (uint *)(((uVar2 << 0x18 | uVar4 << 0x10) >> 0x10) +
                           (uVar15 << 8 | uVar16 & 0xff) * 0x10000);
            }
            local_44 = local_44 + 2;
          }
          uVar7 = CONCAT44(local_60._0_4_,local_60._4_4_);
          if (uVar22 == 0x6e) goto LAB_002e313c;
          uVar7 = CONCAT44(local_60._0_4_,local_60._4_4_);
          uVar26 = CONCAT44(local_60._0_4_,local_60._4_4_);
          if (uVar22 == 0x2007) goto LAB_002e313c;
          goto joined_r0x002e3124;
        }
        if (uVar19 == 0x11) {
          puVar9 = (uint *)((int)local_44 + 1);
          uVar15 = (uint)*(byte *)local_44;
          uVar26 = (ulonglong)uVar15;
          local_44 = puVar9;
          if (uVar22 == 0x31) goto LAB_002e30bc;
          if (0x31 < uVar22) {
            uVar26 = (ulonglong)uVar15;
            if ((uVar22 != 0x6e) && (uVar26 = (ulonglong)uVar15, uVar22 != 0x2007)) {
              uVar7 = (ulonglong)uVar15;
              if (uVar22 != 0x47) goto LAB_002e313c;
              param_1[0x18] = 0;
              param_1[0x19] = uVar15;
              uVar7 = (ulonglong)uVar15;
              goto LAB_002e313c;
            }
            goto LAB_002e3858;
          }
          if (uVar22 == 1) {
            param_1[8] = 0;
            param_1[9] = uVar15;
            uVar7 = (ulonglong)uVar15;
            goto LAB_002e313c;
          }
          goto joined_r0x002e3124;
        }
        if (uVar19 < 0x12) {
          if (uVar19 == 0xf) goto LAB_002e34d8;
          if (uVar19 != 0x10) {
            return 0;
          }
          iVar10 = *param_1;
          iVar8 = *(int *)(iVar10 + 0x48);
          if (*(uint *)(iVar10 + 0x50) < 3) {
            iVar8 = *(int *)(iVar10 + 0x4c);
          }
          if (iVar8 == 4) {
            pcVar25 = *(code **)(**(int **)(iVar10 + 8) + 0xc);
            if (pcVar25 == (code *)PTR_is_big_endian_004c2950) {
              local_30 = puVar18;
              iVar8 = (**(code **)(**(int **)(iVar10 + 8) + 0xe8))();
            }
            else {
              local_30 = puVar18;
              iVar8 = (*pcVar25)();
            }
            uVar15 = *local_44;
            if (iVar8 == 0) {
              uVar15 = (((uVar15 >> 0x10) << 0x18 | (uVar15 >> 0x18) << 0x10) >> 0x10) +
                       ((uVar15 & 0xff) << 8 | uVar15 >> 8 & 0xff) * 0x10000;
            }
            local_44 = local_44 + 1;
            uVar26 = (ulonglong)uVar15;
          }
          else {
            local_30 = puVar18;
            uVar26 = (*local_34)(iVar10,&local_44);
          }
          local_50 = uVar26;
          local_58 = (*local_3c)(*param_1);
          uVar26 = local_50;
        }
        else {
          if (uVar19 == 0x13) {
            pcVar25 = *(code **)(**(int **)(*param_1 + 8) + 0xc);
            if (pcVar25 == (code *)PTR_is_big_endian_004c2950) {
              local_30 = puVar18;
              iVar8 = (**(code **)(**(int **)(*param_1 + 8) + 0xe8))();
            }
            else {
              local_30 = puVar18;
              iVar8 = (*pcVar25)();
            }
            uVar15 = *local_44;
            if (iVar8 == 0) {
              uVar15 = (((uVar15 >> 0x10) << 0x18 | (uVar15 >> 0x18) << 0x10) >> 0x10) +
                       ((uVar15 & 0xff) << 8 | uVar15 >> 8 & 0xff) * 0x10000;
            }
            local_44 = local_44 + 1;
            iVar8 = *param_1;
            uVar26 = (ulonglong)uVar15;
          }
          else {
            if (uVar19 < 0x14) {
              pcVar25 = *(code **)(**(int **)(*param_1 + 8) + 0xc);
              if (pcVar25 == (code *)PTR_is_big_endian_004c2950) {
                iVar8 = (**(code **)(**(int **)(*param_1 + 8) + 0xe8))();
              }
              else {
                iVar8 = (*pcVar25)();
              }
              uVar6 = *(ushort *)local_44;
              if (iVar8 == 0) {
                uVar6 = CONCAT11(*(byte *)((int)local_44 + 1),*(byte *)local_44);
              }
              local_44 = (uint *)((int)local_44 + 2);
              uVar26 = (ulonglong)uVar6;
              goto joined_r0x002e3998;
            }
            pcVar25 = *(code **)(**(int **)(*param_1 + 8) + 0xc);
            if (pcVar25 == (code *)PTR_is_big_endian_004c2950) {
              local_30 = puVar18;
              iVar8 = (**(code **)(**(int **)(*param_1 + 8) + 0xe8))();
            }
            else {
              local_30 = puVar18;
              iVar8 = (*pcVar25)();
            }
            uVar15 = local_44[1];
            uVar16 = *local_44;
            if (iVar8 == 0) {
              uVar2 = uVar15 & 0xff;
              uVar4 = uVar15 >> 8;
              uVar3 = uVar15 >> 0x10;
              uVar5 = uVar15 >> 0x18;
              uVar15 = (((uVar16 >> 0x10) << 0x18 | (uVar16 >> 0x18) << 0x10) >> 0x10) +
                       ((uVar16 & 0xff) << 8 | uVar16 >> 8 & 0xff) * 0x10000;
              uVar16 = ((uVar3 << 0x18 | uVar5 << 0x10) >> 0x10) +
                       (uVar2 << 8 | uVar4 & 0xff) * 0x10000;
            }
            uVar26 = CONCAT44(uVar16,uVar15);
            local_44 = local_44 + 2;
            iVar8 = *param_1;
          }
LAB_002e3970:
          local_50 = uVar26;
          local_58 = (*local_3c)(iVar8);
          uVar26 = local_50;
        }
joined_r0x002e3998:
        if (uVar22 == 0x31) {
LAB_002e30bc:
          *(ulonglong *)(param_1 + 0x1a) = uVar26;
          uVar7 = uVar26;
          goto LAB_002e313c;
        }
        if (uVar22 < 0x32) {
          uVar7 = uVar26;
          if (uVar22 != 1) goto LAB_002e313c;
LAB_002e39b4:
          uVar7 = uVar26;
          if (local_58 != 0) goto LAB_002e313c;
          *(ulonglong *)(param_1 + 8) = uVar26;
          goto LAB_002e313c;
        }
        if ((uVar22 != 0x6e) && (uVar22 != 0x2007)) {
LAB_002e339c:
          uVar7 = uVar26;
          if (uVar22 != 0x47) goto LAB_002e313c;
          *(ulonglong *)(param_1 + 0x18) = uVar26;
          goto LAB_002e313c;
        }
        goto LAB_002e3858;
      }
      if (uVar19 == 7) {
        pcVar25 = *(code **)(**(int **)(*param_1 + 8) + 0xc);
        if (pcVar25 == (code *)PTR_is_big_endian_004c2950) {
          local_30 = puVar18;
          iVar10 = (**(code **)(**(int **)(*param_1 + 8) + 0xe8))();
        }
        else {
          local_30 = puVar18;
          iVar10 = (*pcVar25)();
        }
        local_50._4_4_ = (uint *)local_44[1];
        puVar9 = (uint *)*local_44;
        if (iVar10 == 0) {
          uVar15 = (uint)local_50._4_4_ & 0xff;
          uVar16 = (uint)local_50._4_4_ >> 8;
          uVar2 = (uint)local_50._4_4_ >> 0x10;
          uVar4 = (uint)local_50._4_4_ >> 0x18;
          local_50._4_4_ =
               (uint *)(((((uint)puVar9 >> 0x10) << 0x18 | ((uint)puVar9 >> 0x18) << 0x10) >> 0x10)
                       + (((uint)puVar9 & 0xff) << 8 | (uint)puVar9 >> 8 & 0xff) * 0x10000);
          puVar9 = (uint *)(((uVar2 << 0x18 | uVar4 << 0x10) >> 0x10) +
                           (uVar15 << 8 | uVar16 & 0xff) * 0x10000);
        }
        local_44 = local_44 + 2;
        iVar10 = *param_1;
        local_50._0_4_ = puVar9;
LAB_002e3708:
        local_58 = (*local_3c)(iVar10,puVar9,iVar8,local_30,local_40);
        local_60._4_4_ = local_50._4_4_;
        local_60._0_4_ = local_50._0_4_;
        goto LAB_002e355c;
      }
      if (7 < uVar19) {
        if (uVar19 == 10) {
          local_60._0_4_ = (uint *)((int)local_44 + 1);
          local_58 = (uint)*(byte *)local_44;
          local_44 = (uint *)((int)local_60._0_4_ + local_58);
          goto LAB_002e355c;
        }
        if (uVar19 < 0xb) {
          if (uVar19 != 8) {
            if (uVar19 != 9) {
              return 0;
            }
LAB_002e32bc:
            uVar15 = (uint)*(byte *)local_44;
            pbVar14 = (byte *)((int)local_44 + 1);
            if ((char)*(byte *)local_44 < '\0') {
              (*(code *)PTR_read_unsigned_LEB_128_x_004c2980)(pbVar14,&local_48);
              pbVar14 = (byte *)((int)local_44 + local_48);
              uVar15 = extraout_v1_00;
            }
            else {
              local_48 = 1;
            }
            uVar26 = CONCAT44(pbVar14,local_60._4_4_);
            local_58 = uVar15;
            local_44 = (uint *)((int)local_44 + uVar15 + local_48);
            goto LAB_002e382c;
          }
          local_60._0_4_ = local_44;
          local_30 = local_44;
          local_48 = (*(code *)PTR_strlen_004c5b9c)(local_44);
          uVar26 = CONCAT44(local_60._0_4_,local_60._4_4_);
          local_44 = (uint *)((int)local_30 + local_48 + 1);
          uVar7 = CONCAT44(local_60._0_4_,local_60._4_4_);
          if (uVar22 == 0x31) goto LAB_002e313c;
          if (0x31 < uVar22) {
            if ((uVar22 != 0x6e) &&
               (uVar7 = CONCAT44(local_60._0_4_,local_60._4_4_), uVar22 != 0x2007))
            goto LAB_002e313c;
            param_1[0x12] = (int)local_30;
            uVar7 = uVar26;
            goto LAB_002e313c;
          }
LAB_002e3118:
          uVar7 = uVar26;
          if (uVar22 == 1) goto LAB_002e313c;
joined_r0x002e3124:
          uVar7 = uVar26;
          if (uVar22 != 3) goto LAB_002e313c;
          local_60._0_4_ = (uint *)(uVar26 >> 0x20);
          if (uVar19 == 8) {
            param_1[0xf] = (int)local_60._0_4_;
            goto LAB_002e313c;
          }
          if (uVar19 != 0xe) goto LAB_002e313c;
          goto LAB_002e3284;
        }
        if (uVar19 < 0xd) {
          uVar26 = (ulonglong)*(byte *)local_44;
          local_44 = (uint *)((int)local_44 + 1);
LAB_002e382c:
          uVar7 = uVar26;
          if (uVar22 == 0x31) goto LAB_002e313c;
          if (uVar22 < 0x32) goto LAB_002e3118;
        }
        else {
          bVar1 = *(byte *)local_44;
          uVar15 = (uint)bVar1;
          puVar9 = (uint *)((int)local_44 + 1);
          if ((char)bVar1 < '\0') {
            uVar26 = (*(code *)PTR_read_signed_LEB_128_x_004c297c)(puVar9,&local_48,uVar15);
            puVar9 = (uint *)((int)local_44 + local_48);
          }
          else {
            local_48 = 1;
            uVar26 = (ulonglong)uVar15;
            if ((bVar1 & 0x40) != 0) {
              uVar26 = CONCAT44(0xffffffff,uVar15 | 0xffffff80);
            }
          }
          local_44 = puVar9;
          uVar7 = uVar26;
          if (uVar22 == 0x31) goto LAB_002e313c;
          if (uVar22 < 0x32) {
            puVar9 = (uint *)param_1[0xc];
            if (puVar9 != (uint *)param_1[0xd]) goto LAB_002e314c;
LAB_002e2f98:
            iVar17 = iVar17 + 8;
            local_60 = uVar26;
            std::
            vector<gold::Dwarf_die::Attribute_value,std::allocator<gold::Dwarf_die::Attribute_value>>
            ::_M_realloc_insert<gold::Dwarf_die::Attribute_value_const&>(local_38,puVar9,&local_68);
            iVar8 = param_1[10];
            if (iVar17 == iVar21) goto LAB_002e2fb8;
            goto LAB_002e2db4;
          }
        }
        if ((uVar22 != 0x6e) && (uVar7 = uVar26, uVar22 != 0x2007)) goto LAB_002e313c;
LAB_002e3858:
        local_60._0_4_ = (uint *)(uVar26 >> 0x20);
        uVar7 = uVar26;
        if (uVar19 == 8) {
          param_1[0x12] = (int)local_60._0_4_;
          goto LAB_002e313c;
        }
        if (uVar19 != 0xe) goto LAB_002e313c;
        goto LAB_002e387c;
      }
      if (uVar19 == 4) {
        pcVar25 = *(code **)(**(int **)(*param_1 + 8) + 0xc);
        if (pcVar25 == (code *)PTR_is_big_endian_004c2950) {
          iVar8 = (**(code **)(**(int **)(*param_1 + 8) + 0xe8))();
        }
        else {
          iVar8 = (*pcVar25)();
        }
        local_58 = *local_44;
        if (iVar8 == 0) {
          local_58 = (((local_58 >> 0x10) << 0x18 | (local_58 >> 0x18) << 0x10) >> 0x10) +
                     ((local_58 & 0xff) << 8 | local_58 >> 8 & 0xff) * 0x10000;
        }
        local_60._0_4_ = local_44 + 1;
        local_44 = (uint *)((int)local_60._0_4_ + local_58);
LAB_002e355c:
        uVar26 = CONCAT44(local_60._0_4_,local_60._4_4_);
        uVar7 = uVar26;
        if (uVar22 == 0x31) goto LAB_002e313c;
        if (uVar22 < 0x32) goto LAB_002e3118;
        puVar9 = (uint *)param_1[0xc];
      }
      else {
        if (4 < uVar19) {
          if (uVar19 != 5) {
            if (uVar19 != 6) {
              return 0;
            }
            pcVar25 = *(code **)(**(int **)(*param_1 + 8) + 0xc);
            if (pcVar25 == (code *)PTR_is_big_endian_004c2950) {
              local_30 = puVar18;
              iVar10 = (**(code **)(**(int **)(*param_1 + 8) + 0xe8))();
            }
            else {
              local_30 = puVar18;
              iVar10 = (*pcVar25)();
            }
            puVar9 = (uint *)*local_44;
            if (iVar10 == 0) {
              puVar9 = (uint *)(((((uint)puVar9 >> 0x10) << 0x18 | ((uint)puVar9 >> 0x18) << 0x10)
                                >> 0x10) +
                               (((uint)puVar9 & 0xff) << 8 | (uint)puVar9 >> 8 & 0xff) * 0x10000);
            }
            local_44 = local_44 + 1;
            iVar10 = *param_1;
            local_50._0_4_ = (uint *)0x0;
            local_50._4_4_ = puVar9;
            goto LAB_002e3708;
          }
          pcVar25 = *(code **)(**(int **)(*param_1 + 8) + 0xc);
          if (pcVar25 == (code *)PTR_is_big_endian_004c2950) {
            iVar8 = (**(code **)(**(int **)(*param_1 + 8) + 0xe8))();
          }
          else {
            iVar8 = (*pcVar25)();
          }
          uVar6 = *(ushort *)local_44;
          if (iVar8 == 0) {
            uVar6 = CONCAT11(*(byte *)((int)local_44 + 1),*(byte *)local_44);
          }
          local_60._4_4_ = (uint *)(uint)uVar6;
          local_44 = (uint *)((int)local_44 + 2);
          local_60._0_4_ = (uint *)0x0;
          goto LAB_002e355c;
        }
        if (uVar19 != 1) {
          if (uVar19 != 3) {
            return 0;
          }
          pcVar25 = *(code **)(**(int **)(*param_1 + 8) + 0xc);
          if (pcVar25 == (code *)PTR_is_big_endian_004c2950) {
            iVar8 = (**(code **)(**(int **)(*param_1 + 8) + 0xe8))();
          }
          else {
            iVar8 = (*pcVar25)();
          }
          uVar6 = *(ushort *)local_44;
          if (iVar8 == 0) {
            uVar6 = CONCAT11(*(byte *)((int)local_44 + 1),*(byte *)local_44);
          }
          local_58 = (uint)uVar6;
          local_60._0_4_ = (uint *)((int)local_44 + 2);
          local_44 = (uint *)((int)local_60._0_4_ + local_58);
          goto LAB_002e355c;
        }
        iVar8 = *param_1;
        if (*(int *)(iVar8 + 0x4c) == 4) {
          pcVar25 = *(code **)(**(int **)(iVar8 + 8) + 0xc);
          if (pcVar25 == (code *)PTR_is_big_endian_004c2950) {
            local_30 = puVar18;
            iVar8 = (**(code **)(**(int **)(iVar8 + 8) + 0xe8))();
          }
          else {
            local_30 = puVar18;
            iVar8 = (*pcVar25)();
          }
          uVar15 = *local_44;
          if (iVar8 == 0) {
            uVar15 = (((uVar15 >> 0x10) << 0x18 | (uVar15 >> 0x18) << 0x10) >> 0x10) +
                     ((uVar15 & 0xff) << 8 | uVar15 >> 8 & 0xff) * 0x10000;
          }
          local_44 = local_44 + 1;
          uVar26 = (ulonglong)uVar15;
        }
        else {
          local_30 = puVar18;
          uVar26 = (*local_34)(iVar8,&local_44);
        }
        local_50 = uVar26;
        local_58 = (*local_3c)(*param_1);
        uVar26 = local_50;
        if (uVar22 == 0x31) goto LAB_002e30bc;
        if (uVar22 < 0x32) {
          if (uVar22 != 1) goto joined_r0x002e3124;
          goto LAB_002e39b4;
        }
        uVar7 = local_50;
        if (uVar22 == 0x6e) goto LAB_002e313c;
        if (uVar22 != 0x2007) goto LAB_002e339c;
        puVar9 = (uint *)param_1[0xc];
      }
      while( true ) {
        if (puVar9 == (uint *)param_1[0xd]) goto LAB_002e2f98;
LAB_002e314c:
        local_60._0_4_ = (uint *)(uVar26 >> 0x20);
        local_60._4_4_ = (uint *)uVar26;
        iVar17 = iVar17 + 8;
        puVar9[1] = local_64;
        puVar9[2] = (uint)local_60._0_4_;
        *puVar9 = local_68;
        puVar9[3] = (uint)local_60._4_4_;
        puVar9[4] = local_58;
        puVar9[5] = local_54;
        param_1[0xc] = (int)(puVar9 + 6);
        iVar8 = param_1[10];
        local_60 = uVar26;
        if (iVar17 == iVar21) goto LAB_002e2fb8;
        puVar9 = (uint *)(*(int *)(iVar8 + 8) + iVar17);
        uVar19 = puVar9[1];
        uVar22 = *puVar9;
        if (uVar19 != 0x16) goto LAB_002e2dd0;
LAB_002e31a8:
        uVar19 = (uint)*(byte *)local_44;
        puVar9 = (uint *)((int)local_44 + 1);
        if ((char)*(byte *)local_44 < '\0') {
          local_60 = uVar26;
          (*(code *)PTR_read_unsigned_LEB_128_x_004c2980)(puVar9,&local_48,uVar19);
          puVar9 = (uint *)((int)local_44 + local_48);
          uVar19 = extraout_v1;
          uVar26 = local_60;
        }
        else {
          local_48 = 1;
        }
        puVar11 = (uint *)((int)puVar9 - iVar20);
        puVar18 = (uint *)((int)puVar11 + param_1[3]);
        iVar8 = (uint)(puVar18 < puVar11) + ((int)puVar11 >> 0x1f) + param_1[2];
        local_64 = uVar19;
        local_44 = puVar9;
        if (uVar19 != 0xe) break;
LAB_002e31fc:
        local_58 = 0;
        iVar8 = *param_1;
        local_68 = uVar22;
        local_30 = puVar18;
        local_60 = uVar26;
        if (*(int *)(iVar8 + 0x48) == 4) {
          pcVar25 = *(code **)(**(int **)(iVar8 + 8) + 0xc);
          if (pcVar25 == (code *)PTR_is_big_endian_004c2950) {
            iVar8 = (**(code **)(**(int **)(iVar8 + 8) + 0xe8))();
          }
          else {
            iVar8 = (*pcVar25)();
          }
          uVar19 = *local_44;
          if (iVar8 == 0) {
            uVar19 = (((uVar19 >> 0x10) << 0x18 | (uVar19 >> 0x18) << 0x10) >> 0x10) +
                     ((uVar19 & 0xff) << 8 | uVar19 >> 8 & 0xff) * 0x10000;
          }
          local_44 = local_44 + 1;
          uVar26 = (ulonglong)uVar19;
        }
        else {
          uVar26 = (*local_34)(iVar8,&local_44);
        }
        local_50 = uVar26;
        local_58 = (*local_3c)(*param_1);
        uVar7 = local_50;
        if (uVar22 != 0x31) {
          uVar26 = local_50;
          if (uVar22 < 0x32) {
            if ((uVar22 != 1) && (uVar22 == 3)) {
LAB_002e3284:
              param_1[0x16] = local_58;
              *(ulonglong *)(param_1 + 0x10) = uVar26;
              uVar7 = uVar26;
            }
          }
          else {
            if (uVar22 == 0x6e) {
LAB_002e387c:
              param_1[0x16] = local_58;
            }
            else {
              if (uVar22 != 0x2007) goto LAB_002e313c;
              param_1[0x16] = local_58;
            }
            *(ulonglong *)(param_1 + 0x14) = uVar26;
            uVar7 = uVar26;
          }
        }
LAB_002e313c:
        puVar9 = (uint *)param_1[0xc];
        uVar26 = uVar7;
      }
    } while( true );
  }
  uVar22 = (int)local_44 - iVar20;
  uVar19 = uVar22 + iVar17;
  iVar17 = (uint)(uVar19 < uVar22) + ((int)uVar22 >> 0x1f) + param_1[2];
  if (*(int *)(iVar8 + 4) < 0) {
    param_1[6] = iVar17;
    param_1[7] = uVar19;
  }
  else {
    param_1[8] = iVar17;
    param_1[9] = uVar19;
  }
  *(undefined1 *)(param_1 + 0xe) = 1;
  return 1;
}


lui gp,0x1e
addiu gp,gp,0x6598
addu gp,gp,t9
addiu sp,sp,-0x88
lw v0,0x28(a0)
sw gp,0x18(sp)
sw ra,0x84(sp)
sw s8,0x80(sp)
sw s7,0x7c(sp)
sw s6,0x78(sp)
sw s5,0x74(sp)
sw s4,0x70(sp)
sw s3,0x6c(sp)
sw s2,0x68(sp)
sw s1,0x64(sp)
beq v0,zero,0x002e3dd0
_sw s0,0x60(sp)
or s8,a0,zero
lw a0,0x0(a0)
lw a3,0xc(s8)
lw a1,0x3c(a0)
lw v1,0x2c(a0)
lw a2,0x44(a0)
addu s1,a1,a3
addu a1,a1,a2
addu s1,v1,s1
addu v1,v1,a1
addiu a1,s1,0x1
sltu v1,v1,a1
bne v1,zero,0x002e39cc
_lw t9,-0x68bc(gp)
beq s1,zero,0x002e348c
_addiu v1,s8,0x2c
lw s2,0xc(v0)
lw a0,0x8(v0)
sw v1,0x50(sp)
lw v1,0x14(s8)
subu s2,s2,a0
addu v1,s1,v1
sra s0,s2,0x3
sw v1,0x44(sp)
lui v1,0xaaa
ori v1,v1,0xaaab
sltu v1,s0,v1
beq v1,zero,0x002e3dec
_lw a0,-0x77f0(gp)
lw s4,0x2c(s8)
lui a0,0xaaaa
lw v1,0x34(s8)
ori a0,a0,0xaaab
subu v1,v1,s4
sra v1,v1,0x3
mul v1,v1,a0
sltu v1,v1,s0
bne v1,zero,0x002e3a08
_nop
beq s0,zero,0x002e2fc4
_nop
lw v1,-0x68ac(gp)
or s4,zero,zero
addiu s5,sp,0x40
addiu s6,sp,0x44
sw v1,0x4c(sp)
lw v1,-0x68a8(gp)
sw v1,0x54(sp)
addiu v1,sp,0x38
sw v1,0x48(sp)
lw v0,0x8(v0)
li v1,0x16
lw a1,0x44(sp)
addu v0,v0,s4
lw s0,0x4(v0)
beq s0,v1,0x002e31a8
_lw s3,0x0(v0)
subu v0,a1,s1
lw a3,0xc(s8)
lw a2,0x8(s8)
li v1,0xe
sra s7,v0,0x1f
sw s3,0x20(sp)
addu a3,v0,a3
sw s0,0x24(sp)
addu s7,s7,a2
sw zero,0x30(sp)
sltu v0,a3,v0
beq s0,v1,0x002e31fc
_addu s7,v0,s7
sltiu v0,s0,0xf
beq v0,zero,0x002e3030
_li v0,0x15
li v0,0x7
beq s0,v0,0x002e368c
_sltiu v0,s0,0x8
beq v0,zero,0x002e2f1c
_li v0,0x4
beq s0,v0,0x002e3630
_sltiu v1,s0,0x5
beq v1,zero,0x002e2ea0
_li v1,0x1
beq s0,v1,0x002e35ac
_nop
li v0,0x3
bne s0,v0,0x002e348c
_lw v1,-0x68f0(gp)
lw v0,0x0(s8)
lw a0,0x8(v0)
lw v0,0x0(a0)
lw t9,0xc(v0)
bne t9,v1,0x002e3ce0
_nop
lw t9,0xe8(v0)
jalr t9
_nop
lw gp,0x18(sp)
lw a0,0x44(sp)
lbu v1,0x1(a0)
beq v0,zero,0x002e3ca0
_lbu a1,0x0(a0)
sll v0,a1,0x8
or v0,v0,v1
addiu a0,a0,0x2
sw v0,0x30(sp)
addu v0,a0,v0
sw a0,0x28(sp)
b 0x002e355c
_sw v0,0x44(sp)
li v0,0x5
beq s0,v0,0x002e3730
_li v0,0x6
bne s0,v0,0x002e348c
_lw v1,-0x68f0(gp)
lw v0,0x0(s8)
sw a3,0x58(sp)
lw a0,0x8(v0)
lw v0,0x0(a0)
lw t9,0xc(v0)
bne t9,v1,0x002e3cf0
_nop
lw t9,0xe8(v0)
jalr t9
_nop
lw a3,0x58(sp)
lw v1,0x44(sp)
lwl a1,0x0(v1)
bne v0,zero,0x002e2ef8
_lwr a1,0x3(v1)
wsbh a1,a1
rotr a1,a1,0x10
lw v0,0x48(sp)
addiu v1,v1,0x4
lw a0,0x0(s8)
or a2,s7,zero
sw v1,0x44(sp)
sw v0,0x10(sp)
sw a1,0x3c(sp)
b 0x002e3708
_sw zero,0x38(sp)
li v0,0xa
beq s0,v0,0x002e3540
_sltiu v0,s0,0xb
bne v0,zero,0x002e30cc
_sltiu v0,s0,0xd
bne v0,zero,0x002e381c
_addiu v0,a1,0x1
lbu v1,0x0(a1)
seb v0,v1
bltz v0,0x002e3c4c
_addiu a0,a1,0x1
li v0,0x1
andi a1,v1,0x40
sw v0,0x40(sp)
beq a1,zero,0x002e2f68
_or v0,zero,zero
li a1,-0x80
li v0,-0x1
or v1,v1,a1
li a1,0x31
sw v0,0x28(sp)
sw v1,0x2c(sp)
beq s3,a1,0x002e313c
_sw a0,0x44(sp)
sltiu v0,s3,0x32
beq v0,zero,0x002e3844
_li v0,0x6e
lw a1,0x30(s8)
lw v0,0x34(s8)
bne a1,v0,0x002e314c
_lw t0,0x24(sp)
lw t9,-0x68a4(gp)
addiu a2,sp,0x20
lw a0,0x50(sp)
bal 0x002e7a4c
_addiu s4,s4,0x8
lw gp,0x18(sp)
bne s4,s2,0x002e2db4
_lw v0,0x28(s8)
beq v0,zero,0x002e3df8
_lw a2,-0x7924(gp)
lw a3,0xc(s8)
lw v1,0x4(v0)
lw v0,0x44(sp)
lw a0,0x8(s8)
subu s1,v0,s1
sra v0,s1,0x1f
addu a3,s1,a3
addu v0,v0,a0
sltu s1,a3,s1
bltz v1,0x002e3a94
_addu s1,s1,v0
sw s1,0x20(s8)
sw a3,0x24(s8)
lw ra,0x84(sp)
li v1,0x1
lw s7,0x7c(sp)
li v0,0x1
lw s6,0x78(sp)
lw s5,0x74(sp)
lw s4,0x70(sp)
lw s3,0x6c(sp)
lw s2,0x68(sp)
lw s1,0x64(sp)
lw s0,0x60(sp)
sb v1,0x38(s8)
lw s8,0x80(sp)
jr ra
_addiu sp,sp,0x88
beq s0,v0,0x002e3788
_sltiu v0,s0,0x16
beq v0,zero,0x002e33b4
_li v0,0x11
beq s0,v0,0x002e37b4
_sltiu v0,s0,0x12
bne v0,zero,0x002e32f0
_li v0,0x13
beq s0,v0,0x002e3908
_sltiu v0,s0,0x14
beq v0,zero,0x002e388c
_lw v1,-0x68f0(gp)
lw v0,0x0(s8)
lw a0,0x8(v0)
lw v0,0x0(a0)
lw t9,0xc(v0)
bne t9,v1,0x002e3cd0
_nop
lw t9,0xe8(v0)
jalr t9
_nop
lw gp,0x18(sp)
lw v1,0x44(sp)
lbu a0,0x1(v1)
beq v0,zero,0x002e3cb8
_lbu a1,0x0(v1)
sll a1,a1,0x8
or a0,a1,a0
addiu v1,v1,0x2
sw a0,0x2c(sp)
li v0,0x31
sw zero,0x28(sp)
bne s3,v0,0x002e39a0
_sw v1,0x44(sp)
lw v1,0x2c(sp)
lw v0,0x28(sp)
sw v1,0x6c(s8)
b 0x002e313c
_sw v0,0x68(s8)
li v0,0x8
bne s0,v0,0x002e32b0
_lw t9,-0x36a4(gp)
or a0,a1,zero
sw a1,0x28(sp)
jalr t9
_sw a1,0x58(sp)
li a0,0x31
lw a1,0x58(sp)
addiu v1,v0,0x1
lw gp,0x18(sp)
sw v0,0x40(sp)
addu v1,a1,v1
beq s3,a0,0x002e313c
_sw v1,0x44(sp)
sltiu v0,s3,0x32
beq v0,zero,0x002e3298
_li v0,0x6e
li v0,0x1
beq s3,v0,0x002e313c
_nop
li v0,0x3
bne s3,v0,0x002e313c
_li v0,0x8
bne s0,v0,0x002e3530
_li v0,0xe
lw v0,0x28(sp)
sw v0,0x3c(s8)
lw a1,0x30(s8)
lw v0,0x34(s8)
beq a1,v0,0x002e2f98
_lw t0,0x24(sp)
addiu v0,a1,0x18
lw a3,0x28(sp)
addiu s4,s4,0x8
lw a2,0x2c(sp)
lw a0,0x30(sp)
lw v1,0x34(sp)
lw t4,0x20(sp)
sw t0,0x4(a1)
sw a3,0x8(a1)
sw t4,0x0(a1)
sw a2,0xc(a1)
sw a0,0x10(a1)
sw v1,0x14(a1)
sw v0,0x30(s8)
beq s4,s2,0x002e2fb8
_lw v0,0x28(s8)
lw v0,0x8(v0)
li v1,0x16
lw a1,0x44(sp)
addu v0,v0,s4
lw s0,0x4(v0)
bne s0,v1,0x002e2dd0
_lw s3,0x0(v0)
lbu s0,0x0(a1)
seb v0,s0
bltz v0,0x002e3504
_addiu a0,a1,0x1
li v0,0x1
or a1,a0,zero
sw v0,0x40(sp)
sw a1,0x44(sp)
subu v0,a1,s1
lw a3,0xc(s8)
lw a2,0x8(s8)
li v1,0xe
sra s7,v0,0x1f
sw s3,0x20(sp)
addu a3,v0,a3
sw s0,0x24(sp)
addu s7,s7,a2
sw zero,0x30(sp)
sltu v0,a3,v0
bne s0,v1,0x002e2e04
_addu s7,v0,s7
lw a0,0x0(s8)
li v0,0x4
lw v1,0x48(a0)
beq v1,v0,0x002e3b90
_lw t9,0x54(sp)
or a1,s6,zero
jalr t9
_sw a3,0x58(sp)
lw a3,0x58(sp)
sw v1,0x3c(sp)
sw v0,0x38(sp)
lw v0,0x48(sp)
or a2,s7,zero
lw a0,0x0(s8)
lw t9,0x4c(sp)
jalr t9
_sw v0,0x10(sp)
li v1,0x31
lw a1,0x3c(sp)
lw a0,0x38(sp)
lw gp,0x18(sp)
sw v0,0x30(sp)
sw a1,0x2c(sp)
beq s3,v1,0x002e313c
_sw a0,0x28(sp)
sltiu v1,s3,0x32
beq v1,zero,0x002e3c70
_nop
li v0,0x1
beq s3,v0,0x002e313c
_li v0,0x3
bne s3,v0,0x002e313c
_lw v0,0x30(sp)
lw v1,0x2c(sp)
sw v0,0x58(s8)
sw v1,0x44(s8)
lw v0,0x28(sp)
b 0x002e313c
_sw v0,0x40(s8)
beq s3,v0,0x002e32a8
_li v0,0x2007
bne s3,v0,0x002e313c
_nop
b 0x002e313c
_sw a1,0x48(s8)
li v0,0x9
bne s0,v0,0x002e3490
_lw ra,0x84(sp)
lbu a2,0x0(a1)
seb v0,a2
bltz v0,0x002e3c28
_addiu a0,a1,0x1
li v1,0x1
li v0,0x1
sw v1,0x40(sp)
addu v0,a2,v0
sw a2,0x30(sp)
sw a0,0x28(sp)
addu v0,a1,v0
b 0x002e382c
_sw v0,0x44(sp)
li v0,0xf
beq s0,v0,0x002e34d8
_li v0,0x10
bne s0,v0,0x002e3490
_lw ra,0x84(sp)
lw a0,0x0(s8)
li a1,0x4
lw v1,0x50(a0)
lw v0,0x48(a0)
lw a2,0x4c(a0)
sltiu v1,v1,0x3
movn v0,a2,v1
beq v0,a1,0x002e3b40
_lw t9,0x54(sp)
or a1,s6,zero
jalr t9
_sw a3,0x58(sp)
lw a3,0x58(sp)
sw v1,0x3c(sp)
sw v0,0x38(sp)
lw v0,0x48(sp)
or a2,s7,zero
lw a0,0x0(s8)
lw t9,0x4c(sp)
jalr t9
_sw v0,0x10(sp)
li a0,0x31
lw v1,0x3c(sp)
lw gp,0x18(sp)
sw v0,0x30(sp)
sw v1,0x2c(sp)
lw v0,0x38(sp)
beq s3,a0,0x002e30b8
_sw v0,0x28(sp)
sltiu v0,s3,0x32
bne v0,zero,0x002e39ac
_li v0,0x1
li v0,0x6e
beq s3,v0,0x002e3854
_li v0,0x2007
beq s3,v0,0x002e3858
_li v0,0x8
li v0,0x47
bne s3,v0,0x002e313c
_lw v1,0x28(sp)
lw v0,0x2c(sp)
sw v1,0x60(s8)
b 0x002e313c
_sw v0,0x64(s8)
li v0,0x19
beq s0,v0,0x002e3578
_sltiu v0,s0,0x1a
beq v0,zero,0x002e3410
_li v0,0x20
li v0,0x17
bne s0,v0,0x002e3480
_li v0,0x4
lw a0,0x0(s8)
lw v1,0x48(a0)
beq v1,v0,0x002e3af0
_lw t9,0x54(sp)
or a1,s6,zero
jalr t9
_sw a3,0x58(sp)
lw a3,0x58(sp)
sw v1,0x3c(sp)
sw v0,0x38(sp)
lw v0,0x48(sp)
or a2,s7,zero
lw a0,0x0(s8)
b 0x002e3970
_sw v0,0x10(sp)
bne s0,v0,0x002e34c0
_lw v1,-0x68f0(gp)
lw v0,0x0(s8)
lw a0,0x8(v0)
lw v0,0x0(a0)
lw t9,0xc(v0)
bne t9,v1,0x002e3d50
_nop
lw t9,0xe8(v0)
jalr t9
_nop
lw gp,0x18(sp)
lw v1,0x44(sp)
lwl a1,0x4(v1)
lwl a0,0x0(v1)
lwr a1,0x7(v1)
bne v0,zero,0x002e346c
_lwr a0,0x3(v1)
wsbh v0,a0
wsbh a0,a1
rotr v0,v0,0x10
rotr a0,a0,0x10
or a1,v0,zero
addiu v1,v1,0x8
sw a0,0x28(sp)
sw a1,0x2c(sp)
b 0x002e3588
_sw v1,0x44(sp)
li v0,0x18
beq s0,v0,0x002e32bc
_nop
lw ra,0x84(sp)
or v0,zero,zero
lw s8,0x80(sp)
lw s7,0x7c(sp)
lw s6,0x78(sp)
lw s5,0x74(sp)
lw s4,0x70(sp)
lw s3,0x6c(sp)
lw s2,0x68(sp)
lw s1,0x64(sp)
lw s0,0x60(sp)
jr ra
_addiu sp,sp,0x88
sltiu v0,s0,0x20
bne v0,zero,0x002e348c
_addiu v0,s0,-0x1f01
sltiu v0,v0,0x2
beq v0,zero,0x002e3490
_lw ra,0x84(sp)
lbu a2,0x0(a1)
seb v0,a2
bltz v0,0x002e3c04
_addiu a0,a1,0x1
li v1,0x1
or v0,zero,zero
sw v1,0x40(sp)
sw v0,0x28(sp)
sw a2,0x2c(sp)
b 0x002e382c
_sw a0,0x44(sp)
lw t9,-0x68c0(gp)
or a2,s0,zero
jalr t9
_or a1,s5,zero
lw a1,0x44(sp)
or s0,v1,zero
lw a0,0x40(sp)
lw gp,0x18(sp)
addu a1,a1,a0
b 0x002e31c8
_sw a1,0x44(sp)
bne s0,v0,0x002e313c
_lw v0,0x30(sp)
b 0x002e3284
_lw v1,0x2c(sp)
addiu v0,a1,0x1
sw v0,0x44(sp)
lbu v1,0x0(a1)
sw v0,0x28(sp)
addu v0,v0,v1
sw v1,0x30(sp)
sw v0,0x44(sp)
li v0,0x31
beq s3,v0,0x002e313c
_sltiu v0,s3,0x32
bne v0,zero,0x002e3118
_li v0,0x1
b 0x002e3140
_lw a1,0x30(s8)
li v1,0x1
or v0,zero,zero
sw v1,0x2c(sp)
sw v0,0x28(sp)
li v0,0x6e
beq s3,v0,0x002e313c
_li v0,0x2007
beq s3,v0,0x002e313c
_li v0,0x3
bne s3,v0,0x002e313c
_li v0,0x8
b 0x002e312c
_nop
lw a0,0x0(s8)
lw v1,0x4c(a0)
beq v1,v0,0x002e3aa0
_lw t9,0x54(sp)
or a1,s6,zero
jalr t9
_sw a3,0x58(sp)
lw a3,0x58(sp)
sw v1,0x3c(sp)
sw v0,0x38(sp)
lw v0,0x48(sp)
or a2,s7,zero
lw a0,0x0(s8)
lw t9,0x4c(sp)
jalr t9
_sw v0,0x10(sp)
li a0,0x31
lw v1,0x3c(sp)
lw gp,0x18(sp)
sw v0,0x30(sp)
sw v1,0x2c(sp)
lw v0,0x38(sp)
beq s3,a0,0x002e30b8
_sw v0,0x28(sp)
sltiu v0,s3,0x32
bne v0,zero,0x002e3c8c
_li v0,0x6e
beq s3,v0,0x002e313c
_li v0,0x2007
bne s3,v0,0x002e339c
_li v0,0x47
b 0x002e3140
_lw a1,0x30(s8)
lw v0,0x0(s8)
lw v1,-0x68f0(gp)
lw a0,0x8(v0)
lw v0,0x0(a0)
lw t9,0xc(v0)
bne t9,v1,0x002e3d10
_nop
lw t9,0xe8(v0)
jalr t9
_nop
lw gp,0x18(sp)
lw v1,0x44(sp)
lwl a0,0x0(v1)
bne v0,zero,0x002e3674
_lwr a0,0x3(v1)
wsbh a0,a0
rotr a0,a0,0x10
addiu v1,v1,0x4
sw a0,0x30(sp)
addu a0,v1,a0
sw v1,0x28(sp)
b 0x002e355c
_sw a0,0x44(sp)
lw v0,0x0(s8)
lw v1,-0x68f0(gp)
sw a3,0x58(sp)
lw a0,0x8(v0)
lw v0,0x0(a0)
lw t9,0xc(v0)
bne t9,v1,0x002e3d40
_nop
lw t9,0xe8(v0)
jalr t9
_nop
lw a3,0x58(sp)
lw v1,0x44(sp)
lwl t4,0x4(v1)
lwl a1,0x0(v1)
lwr t4,0x7(v1)
bne v0,zero,0x002e36e8
_lwr a1,0x3(v1)
wsbh v0,a1
wsbh a1,t4
rotr v0,v0,0x10
rotr a1,a1,0x10
or t4,v0,zero
lw v0,0x48(sp)
addiu v1,v1,0x8
lw a0,0x0(s8)
or a2,s7,zero
sw v1,0x44(sp)
sw v0,0x10(sp)
sw a1,0x38(sp)
sw t4,0x3c(sp)
lw t9,0x4c(sp)
jalr t9
_nop
lw v1,0x3c(sp)
lw gp,0x18(sp)
sw v0,0x30(sp)
sw v1,0x2c(sp)
lw v0,0x38(sp)
b 0x002e355c
_sw v0,0x28(sp)
lw v0,0x0(s8)
lw v1,-0x68f0(gp)
lw a0,0x8(v0)
lw v0,0x0(a0)
lw t9,0xc(v0)
bne t9,v1,0x002e3d20
_nop
lw t9,0xe8(v0)
jalr t9
_nop
lw gp,0x18(sp)
lw v1,0x44(sp)
lbu a0,0x1(v1)
beq v0,zero,0x002e3cac
_lbu a1,0x0(v1)
sll a1,a1,0x8
or a0,a1,a0
addiu v1,v1,0x2
sw a0,0x2c(sp)
sw zero,0x28(sp)
b 0x002e355c
_sw v1,0x44(sp)
lbu a2,0x0(a1)
seb v0,a2
bltz v0,0x002e3be0
_addiu a0,a1,0x1
li v1,0x1
or v0,zero,zero
sw v1,0x40(sp)
sw v0,0x28(sp)
sw a2,0x2c(sp)
b 0x002e3994
_sw a0,0x44(sp)
addiu v0,a1,0x1
li a0,0x31
sw v0,0x44(sp)
or v1,zero,zero
lbu v0,0x0(a1)
sw zero,0x28(sp)
beq s3,a0,0x002e30b8
_sw v0,0x2c(sp)
sltiu a0,s3,0x32
beq a0,zero,0x002e37f4
_li a0,0x1
bne s3,a0,0x002e3120
_nop
sw v1,0x20(s8)
b 0x002e313c
_sw v0,0x24(s8)
li a0,0x6e
beq s3,a0,0x002e3854
_li a0,0x2007
beq s3,a0,0x002e3854
_li a0,0x47
bne s3,a0,0x002e313c
_nop
sw v1,0x60(s8)
b 0x002e313c
_sw v0,0x64(s8)
sw v0,0x44(sp)
lbu v0,0x0(a1)
sw zero,0x28(sp)
sw v0,0x2c(sp)
li v0,0x31
beq s3,v0,0x002e313c
_sltiu v0,s3,0x32
bne v0,zero,0x002e3118
_li v0,0x1
li v0,0x6e
beq s3,v0,0x002e3854
_li v0,0x2007
bne s3,v0,0x002e313c
_nop
li v0,0x8
bne s0,v0,0x002e386c
_li v0,0xe
lw a1,0x28(sp)
b 0x002e313c
_sw a1,0x48(s8)
bne s0,v0,0x002e313c
_lw v0,0x30(sp)
lw a1,0x2c(sp)
lw a0,0x28(sp)
sw v0,0x58(s8)
sw a1,0x54(s8)
b 0x002e313c
_sw a0,0x50(s8)
lw v0,0x0(s8)
sw a3,0x58(sp)
lw a0,0x8(v0)
lw v0,0x0(a0)
lw t9,0xc(v0)
bne t9,v1,0x002e3d30
_nop
lw t9,0xe8(v0)
jalr t9
_nop
lw a3,0x58(sp)
lw v1,0x44(sp)
lwl t4,0x4(v1)
lwl a1,0x0(v1)
lwr t4,0x7(v1)
bne v0,zero,0x002e38e4
_lwr a1,0x3(v1)
wsbh v0,a1
wsbh a1,t4
rotr v0,v0,0x10
rotr a1,a1,0x10
or t4,v0,zero
lw v0,0x48(sp)
addiu v1,v1,0x8
lw a0,0x0(s8)
or a2,s7,zero
sw v1,0x44(sp)
sw v0,0x10(sp)
sw a1,0x38(sp)
b 0x002e3970
_sw t4,0x3c(sp)
lw v0,0x0(s8)
lw v1,-0x68f0(gp)
sw a3,0x58(sp)
lw a0,0x8(v0)
lw v0,0x0(a0)
lw t9,0xc(v0)
bne t9,v1,0x002e3d00
_nop
lw t9,0xe8(v0)
jalr t9
_nop
lw a3,0x58(sp)
lw v1,0x44(sp)
lwl a1,0x0(v1)
bne v0,zero,0x002e3950
_lwr a1,0x3(v1)
wsbh a1,a1
rotr a1,a1,0x10
lw v0,0x48(sp)
addiu v1,v1,0x4
lw a0,0x0(s8)
or a2,s7,zero
sw v1,0x44(sp)
sw v0,0x10(sp)
sw a1,0x3c(sp)
sw zero,0x38(sp)
lw t9,0x4c(sp)
jalr t9
_nop
lw v1,0x3c(sp)
lw gp,0x18(sp)
sw v0,0x30(sp)
sw v1,0x2c(sp)
lw v0,0x38(sp)
sw v0,0x28(sp)
li v0,0x31
beq s3,v0,0x002e30bc
_lw v1,0x2c(sp)
sltiu v0,s3,0x32
beq v0,zero,0x002e3384
_li v0,0x1
bne s3,v0,0x002e313c
_lw v0,0x30(sp)
bne v0,zero,0x002e313c
_lw v1,0x28(sp)
lw v0,0x2c(sp)
sw v1,0x20(s8)
b 0x002e313c
_sw v0,0x24(s8)
bal 0x002e20a8
_nop
or v0,zero,zero
lw ra,0x84(sp)
lw s8,0x80(sp)
lw s7,0x7c(sp)
lw s6,0x78(sp)
lw s5,0x74(sp)
lw s4,0x70(sp)
lw s3,0x6c(sp)
lw s2,0x68(sp)
lw s1,0x64(sp)
lw s0,0x60(sp)
jr ra
_addiu sp,sp,0x88
sll s3,s0,0x1
lw v1,0x30(s8)
addu s3,s3,s0
subu s6,v1,s4
beq s0,zero,0x002e3cc4
_sll s3,s3,0x3
lw t9,-0x7e98(gp)
or a0,s3,zero
jalr t9
_sw v1,0x48(sp)
lw gp,0x18(sp)
or s7,v0,zero
lw s5,0x2c(s8)
lw v1,0x48(sp)
beq s4,v1,0x002e3a5c
_lw t9,-0x3748(gp)
or a2,s6,zero
or a1,s4,zero
jalr t9
_or a0,s7,zero
lw gp,0x18(sp)
beq s5,zero,0x002e3a70
_lw t9,-0x7f44(gp)
jalr t9
_or a0,s5,zero
lw gp,0x18(sp)
addu s6,s7,s6
lw v0,0x28(s8)
addu s3,s7,s3
sw s7,0x2c(s8)
sw s6,0x30(s8)
bne s0,zero,0x002e2d90
_sw s3,0x34(s8)
b 0x002e2fb8
_nop
sw s1,0x18(s8)
b 0x002e2ff4
_sw a3,0x1c(s8)
lw a0,0x8(a0)
lw v1,-0x68f0(gp)
sw a3,0x58(sp)
lw v0,0x0(a0)
lw t9,0xc(v0)
bne t9,v1,0x002e3dc0
_nop
lw t9,0xe8(v0)
jalr t9
_nop
lw a3,0x58(sp)
lw v1,0x44(sp)
lwl a0,0x0(v1)
beq v0,zero,0x002e3d84
_lwr a0,0x3(v1)
addiu v1,v1,0x4
sw a0,0x3c(sp)
sw zero,0x38(sp)
b 0x002e35d4
_sw v1,0x44(sp)
lw a0,0x8(a0)
lw v1,-0x68f0(gp)
sw a3,0x58(sp)
lw v0,0x0(a0)
lw t9,0xc(v0)
bne t9,v1,0x002e3d90
_nop
lw t9,0xe8(v0)
jalr t9
_nop
lw a3,0x58(sp)
lw v1,0x44(sp)
lwl a0,0x0(v1)
beq v0,zero,0x002e3d78
_lwr a0,0x3(v1)
addiu v1,v1,0x4
sw a0,0x3c(sp)
sw zero,0x38(sp)
b 0x002e33fc
_sw v1,0x44(sp)
lw a0,0x8(a0)
lw v1,-0x68f0(gp)
sw a3,0x58(sp)
lw v0,0x0(a0)
lw t9,0xc(v0)
bne t9,v1,0x002e3db0
_nop
lw t9,0xe8(v0)
jalr t9
_nop
lw a3,0x58(sp)
lw v1,0x44(sp)
lwl a0,0x0(v1)
beq v0,zero,0x002e3d6c
_lwr a0,0x3(v1)
addiu v1,v1,0x4
sw a0,0x3c(sp)
sw zero,0x38(sp)
b 0x002e3340
_sw v1,0x44(sp)
lw a0,0x8(a0)
lw v1,-0x68f0(gp)
sw a3,0x58(sp)
lw v0,0x0(a0)
lw t9,0xc(v0)
bne t9,v1,0x002e3da0
_nop
lw t9,0xe8(v0)
jalr t9
_nop
lw a3,0x58(sp)
lw v1,0x44(sp)
lwl a0,0x0(v1)
beq v0,zero,0x002e3d60
_lwr a0,0x3(v1)
addiu v1,v1,0x4
sw a0,0x3c(sp)
sw zero,0x38(sp)
b 0x002e3228
_sw v1,0x44(sp)
lw t9,-0x68c0(gp)
jalr t9
_or a1,s5,zero
lw a0,0x44(sp)
or a2,v1,zero
lw a1,0x40(sp)
lw gp,0x18(sp)
b 0x002e37a4
_addu a0,a0,a1
lw t9,-0x68c0(gp)
jalr t9
_or a1,s5,zero
lw a0,0x44(sp)
or a2,v1,zero
lw a1,0x40(sp)
lw gp,0x18(sp)
b 0x002e34f4
_addu a0,a0,a1
lw t9,-0x68c0(gp)
jalr t9
_or a1,s5,zero
lw a1,0x44(sp)
or a2,v1,zero
lw v0,0x40(sp)
lw gp,0x18(sp)
b 0x002e32d8
_addu a0,a1,v0
lw t9,-0x68c4(gp)
or a1,s5,zero
jalr t9
_or a2,v1,zero
lw a0,0x44(sp)
lw a1,0x40(sp)
lw gp,0x18(sp)
b 0x002e2f68
_addu a0,a0,a1
li v1,0x6e
beq s3,v1,0x002e387c
_li v1,0x2007
bne s3,v1,0x002e313c
_nop
b 0x002e3880
_sw v0,0x58(s8)
li v0,0x1
bne s3,v0,0x002e3120
_lw v0,0x30(sp)
b 0x002e39b4
_nop
sll v0,v1,0x8
b 0x002e2e88
_or v0,v0,a1
sll a0,a0,0x8
b 0x002e3774
_or a0,a0,a1
sll a0,a0,0x8
b 0x002e30a0
_or a0,a0,a1
or s7,zero,zero
b 0x002e3a40
_or s5,s4,zero
jalr t9
_nop
b 0x002e3088
_lw gp,0x18(sp)
jalr t9
_nop
b 0x002e2e70
_lw gp,0x18(sp)
jalr t9
_nop
b 0x002e2ee0
_lw a3,0x58(sp)
jalr t9
_nop
b 0x002e3938
_lw a3,0x58(sp)
jalr t9
_nop
b 0x002e365c
_lw gp,0x18(sp)
jalr t9
_nop
b 0x002e375c
_lw gp,0x18(sp)
jalr t9
_nop
b 0x002e38b8
_lw a3,0x58(sp)
jalr t9
_nop
b 0x002e36bc
_lw a3,0x58(sp)
jalr t9
_nop
b 0x002e3440
_lw gp,0x18(sp)
wsbh a0,a0
b 0x002e3bcc
_rotr a0,a0,0x10
wsbh a0,a0
b 0x002e3b7c
_rotr a0,a0,0x10
wsbh a0,a0
b 0x002e3b2c
_rotr a0,a0,0x10
wsbh a0,a0
b 0x002e3adc
_rotr a0,a0,0x10
jalr t9
_nop
b 0x002e3b1c
_lw a3,0x58(sp)
jalr t9
_nop
b 0x002e3bbc
_lw a3,0x58(sp)
jalr t9
_nop
b 0x002e3b6c
_lw a3,0x58(sp)
jalr t9
_nop
b 0x002e3acc
_lw a3,0x58(sp)
lw a2,-0x7924(gp)
li a1,0x2a9
lw a0,-0x7924(gp)
lw t9,-0x7810(gp)
addiu a2,a2,0x7414
jalr t9
_addiu a0,a0,0x7090
lw t9,-0x73cc(gp)
jalr t9
_addiu a0,a0,-0xda4
li a1,0x206
lw a0,-0x7924(gp)
lw t9,-0x7810(gp)
addiu a2,a2,0x7404
jalr t9
_addiu a0,a0,0x7108
(translation_unit "undefined4 FUN_002e2ca8(int *param_1)\n\n{\n  byte bVar1;\n  uint uVar2;\n  uint uVar3;\n  uint uVar4;\n  uint uVar5;\n  ushort uVar6;\n  ulonglong uVar7;\n  int iVar8;\n  uint *puVar9;\n  int iVar10;\n  uint *puVar11;\n  undefined4 uVar12;\n  uint extraout_v1;\n  undefined8 *puVar13;\n  uint extraout_v1_00;\n  Dwarf_info_reader *this;\n  byte *pbVar14;\n  uint uVar15;\n  uint uVar16;\n  int iVar17;\n  uint *puVar18;\n  uint uVar19;\n  int iVar20;\n  int iVar21;\n  uint uVar22;\n  undefined8 *puVar23;\n  undefined8 *puVar24;\n  code *pcVar25;\n  ulonglong uVar26;\n  uint local_68;\n  uint local_64;\n  undefined8 local_60;\n  uint local_58;\n  uint local_54;\n  undefined8 local_50;\n  int local_48;\n  uint *local_44;\n  undefined8 *local_40;\n  code *local_3c;\n  vector<gold::Dwarf_die::Attribute_value,std::allocator<gold::Dwarf_die::Attribute_value>>\n  *local_38;\n  code *local_34;\n  uint *local_30;\n  \n  iVar8 = param_1[10];\n  if (iVar8 == 0) {\n    uVar12 = (*(code *)PTR_do_gold_unreachable_004c1a30)\n                       (PTR_s_in_a_linker_script_004c191c + 0x7090,0x2a9,\n                        PTR_s_in_a_linker_script_004c191c + 0x7414);\n    return uVar12;\n  }\n  this = (Dwarf_info_reader *)*param_1;\n  iVar17 = param_1[3];\n  iVar20 = *(int *)(this + 0x2c) + *(int *)(this + 0x3c) + iVar17;\n  if ((uint)(*(int *)(this + 0x2c) + *(int *)(this + 0x3c) + *(int *)(this + 0x44)) < iVar20 + 1U) {\n    gold::Dwarf_info_reader::warn_corrupt_debug_section(this);\n    return 0;\n  }\n  local_38 = (vector<gold::Dwarf_die::Attribute_value,std::allocator<gold::Dwarf_die::Attribute_value>>\n              *)(param_1 + 0xb);\n  if (iVar20 == 0) {\n    return 0;\n  }\n  iVar21 = *(int *)(iVar8 + 0xc) - *(int *)(iVar8 + 8);\n  local_44 = (uint *)(iVar20 + param_1[5]);\n  uVar19 = iVar21 >> 3;\n  if (0xaaaaaaa < uVar19) {\n    uVar12 = (*(code *)PTR___throw_length_error_004c1e74)(PTR_s__s_004c1a50 + -0xda4);\n    return uVar12;\n  }\n  puVar23 = (undefined8 *)param_1[0xb];\n  if ((uint)((param_1[0xd] - (int)puVar23 >> 3) * -0x55555555) < uVar19) {\n    puVar13 = (undefined8 *)param_1[0xc];\n    iVar17 = (int)puVar13 - (int)puVar23;\n    if (uVar19 == 0) {\n      iVar10 = 0;\n      puVar24 = puVar23;\n    }\n    else {\n      local_40 = puVar13;\n      iVar10 = (*(code *)PTR_operator_new_004c13a8)(uVar19 * 0x18);\n      puVar13 = local_40;\n      puVar24 = (undefined8 *)param_1[0xb];\n    }\n    if (puVar23 != puVar13) {\n      (*(code *)PTR_memmove_004c5af8)(iVar10,puVar23,iVar17);\n    }\n    if (puVar24 != (undefined8 *)0x0) {\n      (*(code *)PTR_operator_delete_004c12fc)(puVar24);\n    }\n    iVar8 = param_1[10];\n    param_1[0xb] = iVar10;\n    param_1[0xc] = iVar10 + iVar17;\n    param_1[0xd] = iVar10 + uVar19 * 0x18;\n    if (uVar19 != 0) goto LAB_002e2d90;\nLAB_002e2fb8:\n    if (iVar8 == 0) {\n      uVar12 = (*(code *)PTR_do_gold_unreachable_004c1a30)\n                         (PTR_s_in_a_linker_script_004c191c + 0x7108,0x206,\n                          PTR_s_in_a_linker_script_004c191c + 0x7404);\n      return uVar12;\n    }\n    iVar17 = param_1[3];\n  }\n  else if (uVar19 != 0) {\nLAB_002e2d90:\n    local_3c = (code *)PTR_lookup_reloc_004c2994;\n    iVar17 = 0;\n    local_34 = (code *)PTR_read_from_pointer<64>_004c2998;\n    local_40 = &local_50;\nLAB_002e2db4:\n    puVar9 = (uint *)(*(int *)(iVar8 + 8) + iVar17);\n    uVar19 = puVar9[1];\n    uVar22 = *puVar9;\n    uVar26 = local_60;\n    if (uVar19 == 0x16) goto LAB_002e31a8;\nLAB_002e2dd0:\n    puVar9 = (uint *)((int)local_44 - iVar20);\n    puVar18 = (uint *)((int)puVar9 + param_1[3]);\n    iVar8 = (uint)(puVar18 < puVar9) + ((int)puVar9 >> 0x1f) + param_1[2];\n    local_64 = uVar19;\n    if (uVar19 == 0xe) goto LAB_002e31fc;\n    do {\n      local_60._4_4_ = (uint *)uVar26;\n      local_58 = 0;\n      local_68 = uVar22;\n      local_64 = uVar19;\n      local_60 = uVar26;\n      if (0xe < uVar19) {\n        if (uVar19 == 0x15) {\n          if ((char)*(byte *)local_44 < '\0') {\n            uVar26 = (*(code *)PTR_read_unsigned_LEB_128_x_004c2980)\n                               ((uint *)((int)local_44 + 1),&local_48);\n            local_44 = (uint *)((int)local_44 + local_48);\n          }\n          else {\n            uVar26 = (ulonglong)*(byte *)local_44;\n            local_48 = 1;\n            local_44 = (uint *)((int)local_44 + 1);\n          }\n          goto joined_r0x002e3998;\n        }\n        if (0x15 < uVar19) {\n          if (uVar19 == 0x19) {\n            local_60._4_4_ = (uint *)0x1;\n            local_60._0_4_ = (uint *)0x0;\n          }\n          else {\n            if (uVar19 < 0x1a) {\n              if (uVar19 != 0x17) {\n                if (uVar19 != 0x18) {\n                  return 0;\n                }\n                goto LAB_002e32bc;\n              }\n              iVar8 = *param_1;\n              if (*(int *)(iVar8 + 0x48) == 4) {\n                pcVar25 = *(code **)(**(int **)(iVar8 + 8) + 0xc);\n                if (pcVar25 == (code *)PTR_is_big_endian_004c2950) {\n                  local_30 = puVar18;\n                  iVar8 = (**(code **)(**(int **)(iVar8 + 8) + 0xe8))();\n                }\n                else {\n                  local_30 = puVar18;\n                  iVar8 = (*pcVar25)();\n                }\n                uVar15 = *local_44;\n                if (iVar8 == 0) {\n                  uVar15 = (((uVar15 >> 0x10) << 0x18 | (uVar15 >> 0x18) << 0x10) >> 0x10) +\n                           ((uVar15 & 0xff) << 8 | uVar15 >> 8 & 0xff) * 0x10000;\n                }\n                local_44 = local_44 + 1;\n                uVar26 = (ulonglong)uVar15;\n              }\n              else {\n                local_30 = puVar18;\n                uVar26 = (*local_34)(iVar8,&local_44);\n              }\n              iVar8 = *param_1;\n              goto LAB_002e3970;\n            }\n            if (uVar19 != 0x20) {\n              if (uVar19 < 0x20) {\n                return 0;\n              }\n              if (1 < uVar19 - 0x1f01) {\n                return 0;\n              }\nLAB_002e34d8:\n              if ((char)*(byte *)local_44 < '\0') {\n                uVar26 = (*(code *)PTR_read_unsigned_LEB_128_x_004c2980)\n                                   ((uint *)((int)local_44 + 1),&local_48);\n                local_44 = (uint *)((int)local_44 + local_48);\n              }\n              else {\n                uVar26 = (ulonglong)*(byte *)local_44;\n                local_48 = 1;\n                local_44 = (uint *)((int)local_44 + 1);\n              }\n              goto LAB_002e382c;\n            }\n            pcVar25 = *(code **)(**(int **)(*param_1 + 8) + 0xc);\n            if (pcVar25 == (code *)PTR_is_big_endian_004c2950) {\n              iVar8 = (**(code **)(**(int **)(*param_1 + 8) + 0xe8))();\n            }\n            else {\n              iVar8 = (*pcVar25)();\n            }\n            local_60._4_4_ = (uint *)local_44[1];\n            local_60._0_4_ = (uint *)*local_44;\n            if (iVar8 == 0) {\n              uVar15 = (uint)local_60._4_4_ & 0xff;\n              uVar16 = (uint)local_60._4_4_ >> 8;\n              uVar2 = (uint)local_60._4_4_ >> 0x10;\n              uVar4 = (uint)local_60._4_4_ >> 0x18;\n              local_60._4_4_ =\n                   (uint *)(((((uint)local_60._0_4_ >> 0x10) << 0x18 |\n                             ((uint)local_60._0_4_ >> 0x18) << 0x10) >> 0x10) +\n                           (((uint)local_60._0_4_ & 0xff) << 8 | (uint)local_60._0_4_ >> 8 & 0xff) *\n                           0x10000);\n              local_60._0_4_ =\n                   (uint *)(((uVar2 << 0x18 | uVar4 << 0x10) >> 0x10) +\n                           (uVar15 << 8 | uVar16 & 0xff) * 0x10000);\n            }\n            local_44 = local_44 + 2;\n          }\n          uVar7 = CONCAT44(local_60._0_4_,local_60._4_4_);\n          if (uVar22 == 0x6e) goto LAB_002e313c;\n          uVar7 = CONCAT44(local_60._0_4_,local_60._4_4_);\n          uVar26 = CONCAT44(local_60._0_4_,local_60._4_4_);\n          if (uVar22 == 0x2007) goto LAB_002e313c;\n          goto joined_r0x002e3124;\n        }\n        if (uVar19 == 0x11) {\n          puVar9 = (uint *)((int)local_44 + 1);\n          uVar15 = (uint)*(byte *)local_44;\n          uVar26 = (ulonglong)uVar15;\n          local_44 = puVar9;\n          if (uVar22 == 0x31) goto LAB_002e30bc;\n          if (0x31 < uVar22) {\n            uVar26 = (ulonglong)uVar15;\n            if ((uVar22 != 0x6e) && (uVar26 = (ulonglong)uVar15, uVar22 != 0x2007)) {\n              uVar7 = (ulonglong)uVar15;\n              if (uVar22 != 0x47) goto LAB_002e313c;\n              param_1[0x18] = 0;\n              param_1[0x19] = uVar15;\n              uVar7 = (ulonglong)uVar15;\n              goto LAB_002e313c;\n            }\n            goto LAB_002e3858;\n          }\n          if (uVar22 == 1) {\n            param_1[8] = 0;\n            param_1[9] = uVar15;\n            uVar7 = (ulonglong)uVar15;\n            goto LAB_002e313c;\n          }\n          goto joined_r0x002e3124;\n        }\n        if (uVar19 < 0x12) {\n          if (uVar19 == 0xf) goto LAB_002e34d8;\n          if (uVar19 != 0x10) {\n            return 0;\n          }\n          iVar10 = *param_1;\n          iVar8 = *(int *)(iVar10 + 0x48);\n          if (*(uint *)(iVar10 + 0x50) < 3) {\n            iVar8 = *(int *)(iVar10 + 0x4c);\n          }\n          if (iVar8 == 4) {\n            pcVar25 = *(code **)(**(int **)(iVar10 + 8) + 0xc);\n            if (pcVar25 == (code *)PTR_is_big_endian_004c2950) {\n              local_30 = puVar18;\n              iVar8 = (**(code **)(**(int **)(iVar10 + 8) + 0xe8))();\n            }\n            else {\n              local_30 = puVar18;\n              iVar8 = (*pcVar25)();\n            }\n            uVar15 = *local_44;\n            if (iVar8 == 0) {\n              uVar15 = (((uVar15 >> 0x10) << 0x18 | (uVar15 >> 0x18) << 0x10) >> 0x10) +\n                       ((uVar15 & 0xff) << 8 | uVar15 >> 8 & 0xff) * 0x10000;\n            }\n            local_44 = local_44 + 1;\n            uVar26 = (ulonglong)uVar15;\n          }\n          else {\n            local_30 = puVar18;\n            uVar26 = (*local_34)(iVar10,&local_44);\n          }\n          local_50 = uVar26;\n          local_58 = (*local_3c)(*param_1);\n          uVar26 = local_50;\n        }\n        else {\n          if (uVar19 == 0x13) {\n            pcVar25 = *(code **)(**(int **)(*param_1 + 8) + 0xc);\n            if (pcVar25 == (code *)PTR_is_big_endian_004c2950) {\n              local_30 = puVar18;\n              iVar8 = (**(code **)(**(int **)(*param_1 + 8) + 0xe8))();\n            }\n            else {\n              local_30 = puVar18;\n              iVar8 = (*pcVar25)();\n            }\n            uVar15 = *local_44;\n            if (iVar8 == 0) {\n              uVar15 = (((uVar15 >> 0x10) << 0x18 | (uVar15 >> 0x18) << 0x10) >> 0x10) +\n                       ((uVar15 & 0xff) << 8 | uVar15 >> 8 & 0xff) * 0x10000;\n            }\n            local_44 = local_44 + 1;\n            iVar8 = *param_1;\n            uVar26 = (ulonglong)uVar15;\n          }\n          else {\n            if (uVar19 < 0x14) {\n              pcVar25 = *(code **)(**(int **)(*param_1 + 8) + 0xc);\n              if (pcVar25 == (code *)PTR_is_big_endian_004c2950) {\n                iVar8 = (**(code **)(**(int **)(*param_1 + 8) + 0xe8))();\n              }\n              else {\n                iVar8 = (*pcVar25)();\n              }\n              uVar6 = *(ushort *)local_44;\n              if (iVar8 == 0) {\n                uVar6 = CONCAT11(*(byte *)((int)local_44 + 1),*(byte *)local_44);\n              }\n              local_44 = (uint *)((int)local_44 + 2);\n              uVar26 = (ulonglong)uVar6;\n              goto joined_r0x002e3998;\n            }\n            pcVar25 = *(code **)(**(int **)(*param_1 + 8) + 0xc);\n            if (pcVar25 == (code *)PTR_is_big_endian_004c2950) {\n              local_30 = puVar18;\n              iVar8 = (**(code **)(**(int **)(*param_1 + 8) + 0xe8))();\n            }\n            else {\n              local_30 = puVar18;\n              iVar8 = (*pcVar25)();\n            }\n            uVar15 = local_44[1];\n            uVar16 = *local_44;\n            if (iVar8 == 0) {\n              uVar2 = uVar15 & 0xff;\n              uVar4 = uVar15 >> 8;\n              uVar3 = uVar15 >> 0x10;\n              uVar5 = uVar15 >> 0x18;\n              uVar15 = (((uVar16 >> 0x10) << 0x18 | (uVar16 >> 0x18) << 0x10) >> 0x10) +\n                       ((uVar16 & 0xff) << 8 | uVar16 >> 8 & 0xff) * 0x10000;\n              uVar16 = ((uVar3 << 0x18 | uVar5 << 0x10) >> 0x10) +\n                       (uVar2 << 8 | uVar4 & 0xff) * 0x10000;\n            }\n            uVar26 = CONCAT44(uVar16,uVar15);\n            local_44 = local_44 + 2;\n            iVar8 = *param_1;\n          }\nLAB_002e3970:\n          local_50 = uVar26;\n          local_58 = (*local_3c)(iVar8);\n          uVar26 = local_50;\n        }\njoined_r0x002e3998:\n        if (uVar22 == 0x31) {\nLAB_002e30bc:\n          *(ulonglong *)(param_1 + 0x1a) = uVar26;\n          uVar7 = uVar26;\n          goto LAB_002e313c;\n        }\n        if (uVar22 < 0x32) {\n          uVar7 = uVar26;\n          if (uVar22 != 1) goto LAB_002e313c;\nLAB_002e39b4:\n          uVar7 = uVar26;\n          if (local_58 != 0) goto LAB_002e313c;\n          *(ulonglong *)(param_1 + 8) = uVar26;\n          goto LAB_002e313c;\n        }\n        if ((uVar22 != 0x6e) && (uVar22 != 0x2007)) {\nLAB_002e339c:\n          uVar7 = uVar26;\n          if (uVar22 != 0x47) goto LAB_002e313c;\n          *(ulonglong *)(param_1 + 0x18) = uVar26;\n          goto LAB_002e313c;\n        }\n        goto LAB_002e3858;\n      }\n      if (uVar19 == 7) {\n        pcVar25 = *(code **)(**(int **)(*param_1 + 8) + 0xc);\n        if (pcVar25 == (code *)PTR_is_big_endian_004c2950) {\n          local_30 = puVar18;\n          iVar10 = (**(code **)(**(int **)(*param_1 + 8) + 0xe8))();\n        }\n        else {\n          local_30 = puVar18;\n          iVar10 = (*pcVar25)();\n        }\n        local_50._4_4_ = (uint *)local_44[1];\n        puVar9 = (uint *)*local_44;\n        if (iVar10 == 0) {\n          uVar15 = (uint)local_50._4_4_ & 0xff;\n          uVar16 = (uint)local_50._4_4_ >> 8;\n          uVar2 = (uint)local_50._4_4_ >> 0x10;\n          uVar4 = (uint)local_50._4_4_ >> 0x18;\n          local_50._4_4_ =\n               (uint *)(((((uint)puVar9 >> 0x10) << 0x18 | ((uint)puVar9 >> 0x18) << 0x10) >> 0x10)\n                       + (((uint)puVar9 & 0xff) << 8 | (uint)puVar9 >> 8 & 0xff) * 0x10000);\n          puVar9 = (uint *)(((uVar2 << 0x18 | uVar4 << 0x10) >> 0x10) +\n                           (uVar15 << 8 | uVar16 & 0xff) * 0x10000);\n        }\n        local_44 = local_44 + 2;\n        iVar10 = *param_1;\n        local_50._0_4_ = puVar9;\nLAB_002e3708:\n        local_58 = (*local_3c)(iVar10,puVar9,iVar8,local_30,local_40);\n        local_60._4_4_ = local_50._4_4_;\n        local_60._0_4_ = local_50._0_4_;\n        goto LAB_002e355c;\n      }\n      if (7 < uVar19) {\n        if (uVar19 == 10) {\n          local_60._0_4_ = (uint *)((int)local_44 + 1);\n          local_58 = (uint)*(byte *)local_44;\n          local_44 = (uint *)((int)local_60._0_4_ + local_58);\n          goto LAB_002e355c;\n        }\n        if (uVar19 < 0xb) {\n          if (uVar19 != 8) {\n            if (uVar19 != 9) {\n              return 0;\n            }\nLAB_002e32bc:\n            uVar15 = (uint)*(byte *)local_44;\n            pbVar14 = (byte *)((int)local_44 + 1);\n            if ((char)*(byte *)local_44 < '\0') {\n              (*(code *)PTR_read_unsigned_LEB_128_x_004c2980)(pbVar14,&local_48);\n              pbVar14 = (byte *)((int)local_44 + local_48);\n              uVar15 = extraout_v1_00;\n            }\n            else {\n              local_48 = 1;\n            }\n            uVar26 = CONCAT44(pbVar14,local_60._4_4_);\n            local_58 = uVar15;\n            local_44 = (uint *)((int)local_44 + uVar15 + local_48);\n            goto LAB_002e382c;\n          }\n          local_60._0_4_ = local_44;\n          local_30 = local_44;\n          local_48 = (*(code *)PTR_strlen_004c5b9c)(local_44);\n          uVar26 = CONCAT44(local_60._0_4_,local_60._4_4_);\n          local_44 = (uint *)((int)local_30 + local_48 + 1);\n          uVar7 = CONCAT44(local_60._0_4_,local_60._4_4_);\n          if (uVar22 == 0x31) goto LAB_002e313c;\n          if (0x31 < uVar22) {\n            if ((uVar22 != 0x6e) &&\n               (uVar7 = CONCAT44(local_60._0_4_,local_60._4_4_), uVar22 != 0x2007))\n            goto LAB_002e313c;\n            param_1[0x12] = (int)local_30;\n            uVar7 = uVar26;\n            goto LAB_002e313c;\n          }\nLAB_002e3118:\n          uVar7 = uVar26;\n          if (uVar22 == 1) goto LAB_002e313c;\njoined_r0x002e3124:\n          uVar7 = uVar26;\n          if (uVar22 != 3) goto LAB_002e313c;\n          local_60._0_4_ = (uint *)(uVar26 >> 0x20);\n          if (uVar19 == 8) {\n            param_1[0xf] = (int)local_60._0_4_;\n            goto LAB_002e313c;\n          }\n          if (uVar19 != 0xe) goto LAB_002e313c;\n          goto LAB_002e3284;\n        }\n        if (uVar19 < 0xd) {\n          uVar26 = (ulonglong)*(byte *)local_44;\n          local_44 = (uint *)((int)local_44 + 1);\nLAB_002e382c:\n          uVar7 = uVar26;\n          if (uVar22 == 0x31) goto LAB_002e313c;\n          if (uVar22 < 0x32) goto LAB_002e3118;\n        }\n        else {\n          bVar1 = *(byte *)local_44;\n          uVar15 = (uint)bVar1;\n          puVar9 = (uint *)((int)local_44 + 1);\n          if ((char)bVar1 < '\0') {\n            uVar26 = (*(code *)PTR_read_signed_LEB_128_x_004c297c)(puVar9,&local_48,uVar15);\n            puVar9 = (uint *)((int)local_44 + local_48);\n          }\n          else {\n            local_48 = 1;\n            uVar26 = (ulonglong)uVar15;\n            if ((bVar1 & 0x40) != 0) {\n              uVar26 = CONCAT44(0xffffffff,uVar15 | 0xffffff80);\n            }\n          }\n          local_44 = puVar9;\n          uVar7 = uVar26;\n          if (uVar22 == 0x31) goto LAB_002e313c;\n          if (uVar22 < 0x32) {\n            puVar9 = (uint *)param_1[0xc];\n            if (puVar9 != (uint *)param_1[0xd]) goto LAB_002e314c;\nLAB_002e2f98:\n            iVar17 = iVar17 + 8;\n            local_60 = uVar26;\n            std::\n            vector<gold::Dwarf_die::Attribute_value,std::allocator<gold::Dwarf_die::Attribute_value>>\n            ::_M_realloc_insert<gold::Dwarf_die::Attribute_value_const&>(local_38,puVar9,&local_68);\n            iVar8 = param_1[10];\n            if (iVar17 == iVar21) goto LAB_002e2fb8;\n            goto LAB_002e2db4;\n          }\n        }\n        if ((uVar22 != 0x6e) && (uVar7 = uVar26, uVar22 != 0x2007)) goto LAB_002e313c;\nLAB_002e3858:\n        local_60._0_4_ = (uint *)(uVar26 >> 0x20);\n        uVar7 = uVar26;\n        if (uVar19 == 8) {\n          param_1[0x12] = (int)local_60._0_4_;\n          goto LAB_002e313c;\n        }\n        if (uVar19 != 0xe) goto LAB_002e313c;\n        goto LAB_002e387c;\n      }\n      if (uVar19 == 4) {\n        pcVar25 = *(code **)(**(int **)(*param_1 + 8) + 0xc);\n        if (pcVar25 == (code *)PTR_is_big_endian_004c2950) {\n          iVar8 = (**(code **)(**(int **)(*param_1 + 8) + 0xe8))();\n        }\n        else {\n          iVar8 = (*pcVar25)();\n        }\n        local_58 = *local_44;\n        if (iVar8 == 0) {\n          local_58 = (((local_58 >> 0x10) << 0x18 | (local_58 >> 0x18) << 0x10) >> 0x10) +\n                     ((local_58 & 0xff) << 8 | local_58 >> 8 & 0xff) * 0x10000;\n        }\n        local_60._0_4_ = local_44 + 1;\n        local_44 = (uint *)((int)local_60._0_4_ + local_58);\nLAB_002e355c:\n        uVar26 = CONCAT44(local_60._0_4_,local_60._4_4_);\n        uVar7 = uVar26;\n        if (uVar22 == 0x31) goto LAB_002e313c;\n        if (uVar22 < 0x32) goto LAB_002e3118;\n        puVar9 = (uint *)param_1[0xc];\n      }\n      else {\n        if (4 < uVar19) {\n          if (uVar19 != 5) {\n            if (uVar19 != 6) {\n              return 0;\n            }\n            pcVar25 = *(code **)(**(int **)(*param_1 + 8) + 0xc);\n            if (pcVar25 == (code *)PTR_is_big_endian_004c2950) {\n              local_30 = puVar18;\n              iVar10 = (**(code **)(**(int **)(*param_1 + 8) + 0xe8))();\n            }\n            else {\n              local_30 = puVar18;\n              iVar10 = (*pcVar25)();\n            }\n            puVar9 = (uint *)*local_44;\n            if (iVar10 == 0) {\n              puVar9 = (uint *)(((((uint)puVar9 >> 0x10) << 0x18 | ((uint)puVar9 >> 0x18) << 0x10)\n                                >> 0x10) +\n                               (((uint)puVar9 & 0xff) << 8 | (uint)puVar9 >> 8 & 0xff) * 0x10000);\n            }\n            local_44 = local_44 + 1;\n            iVar10 = *param_1;\n            local_50._0_4_ = (uint *)0x0;\n            local_50._4_4_ = puVar9;\n            goto LAB_002e3708;\n          }\n          pcVar25 = *(code **)(**(int **)(*param_1 + 8) + 0xc);\n          if (pcVar25 == (code *)PTR_is_big_endian_004c2950) {\n            iVar8 = (**(code **)(**(int **)(*param_1 + 8) + 0xe8))();\n          }\n          else {\n            iVar8 = (*pcVar25)();\n          }\n          uVar6 = *(ushort *)local_44;\n          if (iVar8 == 0) {\n            uVar6 = CONCAT11(*(byte *)((int)local_44 + 1),*(byte *)local_44);\n          }\n          local_60._4_4_ = (uint *)(uint)uVar6;\n          local_44 = (uint *)((int)local_44 + 2);\n          local_60._0_4_ = (uint *)0x0;\n          goto LAB_002e355c;\n        }\n        if (uVar19 != 1) {\n          if (uVar19 != 3) {\n            return 0;\n          }\n          pcVar25 = *(code **)(**(int **)(*param_1 + 8) + 0xc);\n          if (pcVar25 == (code *)PTR_is_big_endian_004c2950) {\n            iVar8 = (**(code **)(**(int **)(*param_1 + 8) + 0xe8))();\n          }\n          else {\n            iVar8 = (*pcVar25)();\n          }\n          uVar6 = *(ushort *)local_44;\n          if (iVar8 == 0) {\n            uVar6 = CONCAT11(*(byte *)((int)local_44 + 1),*(byte *)local_44);\n          }\n          local_58 = (uint)uVar6;\n          local_60._0_4_ = (uint *)((int)local_44 + 2);\n          local_44 = (uint *)((int)local_60._0_4_ + local_58);\n          goto LAB_002e355c;\n        }\n        iVar8 = *param_1;\n        if (*(int *)(iVar8 + 0x4c) == 4) {\n          pcVar25 = *(code **)(**(int **)(iVar8 + 8) + 0xc);\n          if (pcVar25 == (code *)PTR_is_big_endian_004c2950) {\n            local_30 = puVar18;\n            iVar8 = (**(code **)(**(int **)(iVar8 + 8) + 0xe8))();\n          }\n          else {\n            local_30 = puVar18;\n            iVar8 = (*pcVar25)();\n          }\n          uVar15 = *local_44;\n          if (iVar8 == 0) {\n            uVar15 = (((uVar15 >> 0x10) << 0x18 | (uVar15 >> 0x18) << 0x10) >> 0x10) +\n                     ((uVar15 & 0xff) << 8 | uVar15 >> 8 & 0xff) * 0x10000;\n          }\n          local_44 = local_44 + 1;\n          uVar26 = (ulonglong)uVar15;\n        }\n        else {\n          local_30 = puVar18;\n          uVar26 = (*local_34)(iVar8,&local_44);\n        }\n        local_50 = uVar26;\n        local_58 = (*local_3c)(*param_1);\n        uVar26 = local_50;\n        if (uVar22 == 0x31) goto LAB_002e30bc;\n        if (uVar22 < 0x32) {\n          if (uVar22 != 1) goto joined_r0x002e3124;\n          goto LAB_002e39b4;\n        }\n        uVar7 = local_50;\n        if (uVar22 == 0x6e) goto LAB_002e313c;\n        if (uVar22 != 0x2007) goto LAB_002e339c;\n        puVar9 = (uint *)param_1[0xc];\n      }\n      while( true ) {\n        if (puVar9 == (uint *)param_1[0xd]) goto LAB_002e2f98;\nLAB_002e314c:\n        local_60._0_4_ = (uint *)(uVar26 >> 0x20);\n        local_60._4_4_ = (uint *)uVar26;\n        iVar17 = iVar17 + 8;\n        puVar9[1] = local_64;\n        puVar9[2] = (uint)local_60._0_4_;\n        *puVar9 = local_68;\n        puVar9[3] = (uint)local_60._4_4_;\n        puVar9[4] = local_58;\n        puVar9[5] = local_54;\n        param_1[0xc] = (int)(puVar9 + 6);\n        iVar8 = param_1[10];\n        local_60 = uVar26;\n        if (iVar17 == iVar21) goto LAB_002e2fb8;\n        puVar9 = (uint *)(*(int *)(iVar8 + 8) + iVar17);\n        uVar19 = puVar9[1];\n        uVar22 = *puVar9;\n        if (uVar19 != 0x16) goto LAB_002e2dd0;\nLAB_002e31a8:\n        uVar19 = (uint)*(byte *)local_44;\n        puVar9 = (uint *)((int)local_44 + 1);\n        if ((char)*(byte *)local_44 < '\0') {\n          local_60 = uVar26;\n          (*(code *)PTR_read_unsigned_LEB_128_x_004c2980)(puVar9,&local_48,uVar19);\n          puVar9 = (uint *)((int)local_44 + local_48);\n          uVar19 = extraout_v1;\n          uVar26 = local_60;\n        }\n        else {\n          local_48 = 1;\n        }\n        puVar11 = (uint *)((int)puVar9 - iVar20);\n        puVar18 = (uint *)((int)puVar11 + param_1[3]);\n        iVar8 = (uint)(puVar18 < puVar11) + ((int)puVar11 >> 0x1f) + param_1[2];\n        local_64 = uVar19;\n        local_44 = puVar9;\n        if (uVar19 != 0xe) break;\nLAB_002e31fc:\n        local_58 = 0;\n        iVar8 = *param_1;\n        local_68 = uVar22;\n        local_30 = puVar18;\n        local_60 = uVar26;\n        if (*(int *)(iVar8 + 0x48) == 4) {\n          pcVar25 = *(code **)(**(int **)(iVar8 + 8) + 0xc);\n          if (pcVar25 == (code *)PTR_is_big_endian_004c2950) {\n            iVar8 = (**(code **)(**(int **)(iVar8 + 8) + 0xe8))();\n          }\n          else {\n            iVar8 = (*pcVar25)();\n          }\n          uVar19 = *local_44;\n          if (iVar8 == 0) {\n            uVar19 = (((uVar19 >> 0x10) << 0x18 | (uVar19 >> 0x18) << 0x10) >> 0x10) +\n                     ((uVar19 & 0xff) << 8 | uVar19 >> 8 & 0xff) * 0x10000;\n          }\n          local_44 = local_44 + 1;\n          uVar26 = (ulonglong)uVar19;\n        }\n        else {\n          uVar26 = (*local_34)(iVar8,&local_44);\n        }\n        local_50 = uVar26;\n        local_58 = (*local_3c)(*param_1);\n        uVar7 = local_50;\n        if (uVar22 != 0x31) {\n          uVar26 = local_50;\n          if (uVar22 < 0x32) {\n            if ((uVar22 != 1) && (uVar22 == 3)) {\nLAB_002e3284:\n              param_1[0x16] = local_58;\n              *(ulonglong *)(param_1 + 0x10) = uVar26;\n              uVar7 = uVar26;\n            }\n          }\n          else {\n            if (uVar22 == 0x6e) {\nLAB_002e387c:\n              param_1[0x16] = local_58;\n            }\n            else {\n              if (uVar22 != 0x2007) goto LAB_002e313c;\n              param_1[0x16] = local_58;\n            }\n            *(ulonglong *)(param_1 + 0x14) = uVar26;\n            uVar7 = uVar26;\n          }\n        }\nLAB_002e313c:\n        puVar9 = (uint *)param_1[0xc];\n        uVar26 = uVar7;\n      }\n    } while( true );\n  }\n  uVar22 = (int)local_44 - iVar20;\n  uVar19 = uVar22 + iVar17;\n  iVar17 = (uint)(uVar19 < uVar22) + ((int)uVar22 >> 0x1f) + param_1[2];\n  if (*(int *)(iVar8 + 4) < 0) {\n    param_1[6] = iVar17;\n    param_1[7] = uVar19;\n  }\n  else {\n    param_1[8] = iVar17;\n    param_1[9] = uVar19;\n  }\n  *(undefined1 *)(param_1 + 0xe) = 1;\n  return 1;\n}\n\n" (function_definition "undefined4 FUN_002e2ca8(int *param_1)\n\n{\n  byte bVar1;\n  uint uVar2;\n  uint uVar3;\n  uint uVar4;\n  uint uVar5;\n  ushort uVar6;\n  ulonglong uVar7;\n  int iVar8;\n  uint *puVar9;\n  int iVar10;\n  uint *puVar11;\n  undefined4 uVar12;\n  uint extraout_v1;\n  undefined8 *puVar13;\n  uint extraout_v1_00;\n  Dwarf_info_reader *this;\n  byte *pbVar14;\n  uint uVar15;\n  uint uVar16;\n  int iVar17;\n  uint *puVar18;\n  uint uVar19;\n  int iVar20;\n  int iVar21;\n  uint uVar22;\n  undefined8 *puVar23;\n  undefined8 *puVar24;\n  code *pcVar25;\n  ulonglong uVar26;\n  uint local_68;\n  uint local_64;\n  undefined8 local_60;\n  uint local_58;\n  uint local_54;\n  undefined8 local_50;\n  int local_48;\n  uint *local_44;\n  undefined8 *local_40;\n  code *local_3c;\n  vector<gold::Dwarf_die::Attribute_value,std::allocator<gold::Dwarf_die::Attribute_value>>\n  *local_38;\n  code *local_34;\n  uint *local_30;\n  \n  iVar8 = param_1[10];\n  if (iVar8 == 0) {\n    uVar12 = (*(code *)PTR_do_gold_unreachable_004c1a30)\n                       (PTR_s_in_a_linker_script_004c191c + 0x7090,0x2a9,\n                        PTR_s_in_a_linker_script_004c191c + 0x7414);\n    return uVar12;\n  }\n  this = (Dwarf_info_reader *)*param_1;\n  iVar17 = param_1[3];\n  iVar20 = *(int *)(this + 0x2c) + *(int *)(this + 0x3c) + iVar17;\n  if ((uint)(*(int *)(this + 0x2c) + *(int *)(this + 0x3c) + *(int *)(this + 0x44)) < iVar20 + 1U) {\n    gold::Dwarf_info_reader::warn_corrupt_debug_section(this);\n    return 0;\n  }\n  local_38 = (vector<gold::Dwarf_die::Attribute_value,std::allocator<gold::Dwarf_die::Attribute_value>>\n              *)(param_1 + 0xb);\n  if (iVar20 == 0) {\n    return 0;\n  }\n  iVar21 = *(int *)(iVar8 + 0xc) - *(int *)(iVar8 + 8);\n  local_44 = (uint *)(iVar20 + param_1[5]);\n  uVar19 = iVar21 >> 3;\n  if (0xaaaaaaa < uVar19) {\n    uVar12 = (*(code *)PTR___throw_length_error_004c1e74)(PTR_s__s_004c1a50 + -0xda4);\n    return uVar12;\n  }\n  puVar23 = (undefined8 *)param_1[0xb];\n  if ((uint)((param_1[0xd] - (int)puVar23 >> 3) * -0x55555555) < uVar19) {\n    puVar13 = (undefined8 *)param_1[0xc];\n    iVar17 = (int)puVar13 - (int)puVar23;\n    if (uVar19 == 0) {\n      iVar10 = 0;\n      puVar24 = puVar23;\n    }\n    else {\n      local_40 = puVar13;\n      iVar10 = (*(code *)PTR_operator_new_004c13a8)(uVar19 * 0x18);\n      puVar13 = local_40;\n      puVar24 = (undefined8 *)param_1[0xb];\n    }\n    if (puVar23 != puVar13) {\n      (*(code *)PTR_memmove_004c5af8)(iVar10,puVar23,iVar17);\n    }\n    if (puVar24 != (undefined8 *)0x0) {\n      (*(code *)PTR_operator_delete_004c12fc)(puVar24);\n    }\n    iVar8 = param_1[10];\n    param_1[0xb] = iVar10;\n    param_1[0xc] = iVar10 + iVar17;\n    param_1[0xd] = iVar10 + uVar19 * 0x18;\n    if (uVar19 != 0) goto LAB_002e2d90;\nLAB_002e2fb8:\n    if (iVar8 == 0) {\n      uVar12 = (*(code *)PTR_do_gold_unreachable_004c1a30)\n                         (PTR_s_in_a_linker_script_004c191c + 0x7108,0x206,\n                          PTR_s_in_a_linker_script_004c191c + 0x7404);\n      return uVar12;\n    }\n    iVar17 = param_1[3];\n  }\n  else if (uVar19 != 0) {\nLAB_002e2d90:\n    local_3c = (code *)PTR_lookup_reloc_004c2994;\n    iVar17 = 0;\n    local_34 = (code *)PTR_read_from_pointer<64>_004c2998;\n    local_40 = &local_50;\nLAB_002e2db4:\n    puVar9 = (uint *)(*(int *)(iVar8 + 8) + iVar17);\n    uVar19 = puVar9[1];\n    uVar22 = *puVar9;\n    uVar26 = local_60;\n    if (uVar19 == 0x16) goto LAB_002e31a8;\nLAB_002e2dd0:\n    puVar9 = (uint *)((int)local_44 - iVar20);\n    puVar18 = (uint *)((int)puVar9 + param_1[3]);\n    iVar8 = (uint)(puVar18 < puVar9) + ((int)puVar9 >> 0x1f) + param_1[2];\n    local_64 = uVar19;\n    if (uVar19 == 0xe) goto LAB_002e31fc;\n    do {\n      local_60._4_4_ = (uint *)uVar26;\n      local_58 = 0;\n      local_68 = uVar22;\n      local_64 = uVar19;\n      local_60 = uVar26;\n      if (0xe < uVar19) {\n        if (uVar19 == 0x15) {\n          if ((char)*(byte *)local_44 < '\0') {\n            uVar26 = (*(code *)PTR_read_unsigned_LEB_128_x_004c2980)\n                               ((uint *)((int)local_44 + 1),&local_48);\n            local_44 = (uint *)((int)local_44 + local_48);\n          }\n          else {\n            uVar26 = (ulonglong)*(byte *)local_44;\n            local_48 = 1;\n            local_44 = (uint *)((int)local_44 + 1);\n          }\n          goto joined_r0x002e3998;\n        }\n        if (0x15 < uVar19) {\n          if (uVar19 == 0x19) {\n            local_60._4_4_ = (uint *)0x1;\n            local_60._0_4_ = (uint *)0x0;\n          }\n          else {\n            if (uVar19 < 0x1a) {\n              if (uVar19 != 0x17) {\n                if (uVar19 != 0x18) {\n                  return 0;\n                }\n                goto LAB_002e32bc;\n              }\n              iVar8 = *param_1;\n              if (*(int *)(iVar8 + 0x48) == 4) {\n                pcVar25 = *(code **)(**(int **)(iVar8 + 8) + 0xc);\n                if (pcVar25 == (code *)PTR_is_big_endian_004c2950) {\n                  local_30 = puVar18;\n                  iVar8 = (**(code **)(**(int **)(iVar8 + 8) + 0xe8))();\n                }\n                else {\n                  local_30 = puVar18;\n                  iVar8 = (*pcVar25)();\n                }\n                uVar15 = *local_44;\n                if (iVar8 == 0) {\n                  uVar15 = (((uVar15 >> 0x10) << 0x18 | (uVar15 >> 0x18) << 0x10) >> 0x10) +\n                           ((uVar15 & 0xff) << 8 | uVar15 >> 8 & 0xff) * 0x10000;\n                }\n                local_44 = local_44 + 1;\n                uVar26 = (ulonglong)uVar15;\n              }\n              else {\n                local_30 = puVar18;\n                uVar26 = (*local_34)(iVar8,&local_44);\n              }\n              iVar8 = *param_1;\n              goto LAB_002e3970;\n            }\n            if (uVar19 != 0x20) {\n              if (uVar19 < 0x20) {\n                return 0;\n              }\n              if (1 < uVar19 - 0x1f01) {\n                return 0;\n              }\nLAB_002e34d8:\n              if ((char)*(byte *)local_44 < '\0') {\n                uVar26 = (*(code *)PTR_read_unsigned_LEB_128_x_004c2980)\n                                   ((uint *)((int)local_44 + 1),&local_48);\n                local_44 = (uint *)((int)local_44 + local_48);\n              }\n              else {\n                uVar26 = (ulonglong)*(byte *)local_44;\n                local_48 = 1;\n                local_44 = (uint *)((int)local_44 + 1);\n              }\n              goto LAB_002e382c;\n            }\n            pcVar25 = *(code **)(**(int **)(*param_1 + 8) + 0xc);\n            if (pcVar25 == (code *)PTR_is_big_endian_004c2950) {\n              iVar8 = (**(code **)(**(int **)(*param_1 + 8) + 0xe8))();\n            }\n            else {\n              iVar8 = (*pcVar25)();\n            }\n            local_60._4_4_ = (uint *)local_44[1];\n            local_60._0_4_ = (uint *)*local_44;\n            if (iVar8 == 0) {\n              uVar15 = (uint)local_60._4_4_ & 0xff;\n              uVar16 = (uint)local_60._4_4_ >> 8;\n              uVar2 = (uint)local_60._4_4_ >> 0x10;\n              uVar4 = (uint)local_60._4_4_ >> 0x18;\n              local_60._4_4_ =\n                   (uint *)(((((uint)local_60._0_4_ >> 0x10) << 0x18 |\n                             ((uint)local_60._0_4_ >> 0x18) << 0x10) >> 0x10) +\n                           (((uint)local_60._0_4_ & 0xff) << 8 | (uint)local_60._0_4_ >> 8 & 0xff) *\n                           0x10000);\n              local_60._0_4_ =\n                   (uint *)(((uVar2 << 0x18 | uVar4 << 0x10) >> 0x10) +\n                           (uVar15 << 8 | uVar16 & 0xff) * 0x10000);\n            }\n            local_44 = local_44 + 2;\n          }\n          uVar7 = CONCAT44(local_60._0_4_,local_60._4_4_);\n          if (uVar22 == 0x6e) goto LAB_002e313c;\n          uVar7 = CONCAT44(local_60._0_4_,local_60._4_4_);\n          uVar26 = CONCAT44(local_60._0_4_,local_60._4_4_);\n          if (uVar22 == 0x2007) goto LAB_002e313c;\n          goto joined_r0x002e3124;\n        }\n        if (uVar19 == 0x11) {\n          puVar9 = (uint *)((int)local_44 + 1);\n          uVar15 = (uint)*(byte *)local_44;\n          uVar26 = (ulonglong)uVar15;\n          local_44 = puVar9;\n          if (uVar22 == 0x31) goto LAB_002e30bc;\n          if (0x31 < uVar22) {\n            uVar26 = (ulonglong)uVar15;\n            if ((uVar22 != 0x6e) && (uVar26 = (ulonglong)uVar15, uVar22 != 0x2007)) {\n              uVar7 = (ulonglong)uVar15;\n              if (uVar22 != 0x47) goto LAB_002e313c;\n              param_1[0x18] = 0;\n              param_1[0x19] = uVar15;\n              uVar7 = (ulonglong)uVar15;\n              goto LAB_002e313c;\n            }\n            goto LAB_002e3858;\n          }\n          if (uVar22 == 1) {\n            param_1[8] = 0;\n            param_1[9] = uVar15;\n            uVar7 = (ulonglong)uVar15;\n            goto LAB_002e313c;\n          }\n          goto joined_r0x002e3124;\n        }\n        if (uVar19 < 0x12) {\n          if (uVar19 == 0xf) goto LAB_002e34d8;\n          if (uVar19 != 0x10) {\n            return 0;\n          }\n          iVar10 = *param_1;\n          iVar8 = *(int *)(iVar10 + 0x48);\n          if (*(uint *)(iVar10 + 0x50) < 3) {\n            iVar8 = *(int *)(iVar10 + 0x4c);\n          }\n          if (iVar8 == 4) {\n            pcVar25 = *(code **)(**(int **)(iVar10 + 8) + 0xc);\n            if (pcVar25 == (code *)PTR_is_big_endian_004c2950) {\n              local_30 = puVar18;\n              iVar8 = (**(code **)(**(int **)(iVar10 + 8) + 0xe8))();\n            }\n            else {\n              local_30 = puVar18;\n              iVar8 = (*pcVar25)();\n            }\n            uVar15 = *local_44;\n            if (iVar8 == 0) {\n              uVar15 = (((uVar15 >> 0x10) << 0x18 | (uVar15 >> 0x18) << 0x10) >> 0x10) +\n                       ((uVar15 & 0xff) << 8 | uVar15 >> 8 & 0xff) * 0x10000;\n            }\n            local_44 = local_44 + 1;\n            uVar26 = (ulonglong)uVar15;\n          }\n          else {\n            local_30 = puVar18;\n            uVar26 = (*local_34)(iVar10,&local_44);\n          }\n          local_50 = uVar26;\n          local_58 = (*local_3c)(*param_1);\n          uVar26 = local_50;\n        }\n        else {\n          if (uVar19 == 0x13) {\n            pcVar25 = *(code **)(**(int **)(*param_1 + 8) + 0xc);\n            if (pcVar25 == (code *)PTR_is_big_endian_004c2950) {\n              local_30 = puVar18;\n              iVar8 = (**(code **)(**(int **)(*param_1 + 8) + 0xe8))();\n            }\n            else {\n              local_30 = puVar18;\n              iVar8 = (*pcVar25)();\n            }\n            uVar15 = *local_44;\n            if (iVar8 == 0) {\n              uVar15 = (((uVar15 >> 0x10) << 0x18 | (uVar15 >> 0x18) << 0x10) >> 0x10) +\n                       ((uVar15 & 0xff) << 8 | uVar15 >> 8 & 0xff) * 0x10000;\n            }\n            local_44 = local_44 + 1;\n            iVar8 = *param_1;\n            uVar26 = (ulonglong)uVar15;\n          }\n          else {\n            if (uVar19 < 0x14) {\n              pcVar25 = *(code **)(**(int **)(*param_1 + 8) + 0xc);\n              if (pcVar25 == (code *)PTR_is_big_endian_004c2950) {\n                iVar8 = (**(code **)(**(int **)(*param_1 + 8) + 0xe8))();\n              }\n              else {\n                iVar8 = (*pcVar25)();\n              }\n              uVar6 = *(ushort *)local_44;\n              if (iVar8 == 0) {\n                uVar6 = CONCAT11(*(byte *)((int)local_44 + 1),*(byte *)local_44);\n              }\n              local_44 = (uint *)((int)local_44 + 2);\n              uVar26 = (ulonglong)uVar6;\n              goto joined_r0x002e3998;\n            }\n            pcVar25 = *(code **)(**(int **)(*param_1 + 8) + 0xc);\n            if (pcVar25 == (code *)PTR_is_big_endian_004c2950) {\n              local_30 = puVar18;\n              iVar8 = (**(code **)(**(int **)(*param_1 + 8) + 0xe8))();\n            }\n            else {\n              local_30 = puVar18;\n              iVar8 = (*pcVar25)();\n            }\n            uVar15 = local_44[1];\n            uVar16 = *local_44;\n            if (iVar8 == 0) {\n              uVar2 = uVar15 & 0xff;\n              uVar4 = uVar15 >> 8;\n              uVar3 = uVar15 >> 0x10;\n              uVar5 = uVar15 >> 0x18;\n              uVar15 = (((uVar16 >> 0x10) << 0x18 | (uVar16 >> 0x18) << 0x10) >> 0x10) +\n                       ((uVar16 & 0xff) << 8 | uVar16 >> 8 & 0xff) * 0x10000;\n              uVar16 = ((uVar3 << 0x18 | uVar5 << 0x10) >> 0x10) +\n                       (uVar2 << 8 | uVar4 & 0xff) * 0x10000;\n            }\n            uVar26 = CONCAT44(uVar16,uVar15);\n            local_44 = local_44 + 2;\n            iVar8 = *param_1;\n          }\nLAB_002e3970:\n          local_50 = uVar26;\n          local_58 = (*local_3c)(iVar8);\n          uVar26 = local_50;\n        }\njoined_r0x002e3998:\n        if (uVar22 == 0x31) {\nLAB_002e30bc:\n          *(ulonglong *)(param_1 + 0x1a) = uVar26;\n          uVar7 = uVar26;\n          goto LAB_002e313c;\n        }\n        if (uVar22 < 0x32) {\n          uVar7 = uVar26;\n          if (uVar22 != 1) goto LAB_002e313c;\nLAB_002e39b4:\n          uVar7 = uVar26;\n          if (local_58 != 0) goto LAB_002e313c;\n          *(ulonglong *)(param_1 + 8) = uVar26;\n          goto LAB_002e313c;\n        }\n        if ((uVar22 != 0x6e) && (uVar22 != 0x2007)) {\nLAB_002e339c:\n          uVar7 = uVar26;\n          if (uVar22 != 0x47) goto LAB_002e313c;\n          *(ulonglong *)(param_1 + 0x18) = uVar26;\n          goto LAB_002e313c;\n        }\n        goto LAB_002e3858;\n      }\n      if (uVar19 == 7) {\n        pcVar25 = *(code **)(**(int **)(*param_1 + 8) + 0xc);\n        if (pcVar25 == (code *)PTR_is_big_endian_004c2950) {\n          local_30 = puVar18;\n          iVar10 = (**(code **)(**(int **)(*param_1 + 8) + 0xe8))();\n        }\n        else {\n          local_30 = puVar18;\n          iVar10 = (*pcVar25)();\n        }\n        local_50._4_4_ = (uint *)local_44[1];\n        puVar9 = (uint *)*local_44;\n        if (iVar10 == 0) {\n          uVar15 = (uint)local_50._4_4_ & 0xff;\n          uVar16 = (uint)local_50._4_4_ >> 8;\n          uVar2 = (uint)local_50._4_4_ >> 0x10;\n          uVar4 = (uint)local_50._4_4_ >> 0x18;\n          local_50._4_4_ =\n               (uint *)(((((uint)puVar9 >> 0x10) << 0x18 | ((uint)puVar9 >> 0x18) << 0x10) >> 0x10)\n                       + (((uint)puVar9 & 0xff) << 8 | (uint)puVar9 >> 8 & 0xff) * 0x10000);\n          puVar9 = (uint *)(((uVar2 << 0x18 | uVar4 << 0x10) >> 0x10) +\n                           (uVar15 << 8 | uVar16 & 0xff) * 0x10000);\n        }\n        local_44 = local_44 + 2;\n        iVar10 = *param_1;\n        local_50._0_4_ = puVar9;\nLAB_002e3708:\n        local_58 = (*local_3c)(iVar10,puVar9,iVar8,local_30,local_40);\n        local_60._4_4_ = local_50._4_4_;\n        local_60._0_4_ = local_50._0_4_;\n        goto LAB_002e355c;\n      }\n      if (7 < uVar19) {\n        if (uVar19 == 10) {\n          local_60._0_4_ = (uint *)((int)local_44 + 1);\n          local_58 = (uint)*(byte *)local_44;\n          local_44 = (uint *)((int)local_60._0_4_ + local_58);\n          goto LAB_002e355c;\n        }\n        if (uVar19 < 0xb) {\n          if (uVar19 != 8) {\n            if (uVar19 != 9) {\n              return 0;\n            }\nLAB_002e32bc:\n            uVar15 = (uint)*(byte *)local_44;\n            pbVar14 = (byte *)((int)local_44 + 1);\n            if ((char)*(byte *)local_44 < '\0') {\n              (*(code *)PTR_read_unsigned_LEB_128_x_004c2980)(pbVar14,&local_48);\n              pbVar14 = (byte *)((int)local_44 + local_48);\n              uVar15 = extraout_v1_00;\n            }\n            else {\n              local_48 = 1;\n            }\n            uVar26 = CONCAT44(pbVar14,local_60._4_4_);\n            local_58 = uVar15;\n            local_44 = (uint *)((int)local_44 + uVar15 + local_48);\n            goto LAB_002e382c;\n          }\n          local_60._0_4_ = local_44;\n          local_30 = local_44;\n          local_48 = (*(code *)PTR_strlen_004c5b9c)(local_44);\n          uVar26 = CONCAT44(local_60._0_4_,local_60._4_4_);\n          local_44 = (uint *)((int)local_30 + local_48 + 1);\n          uVar7 = CONCAT44(local_60._0_4_,local_60._4_4_);\n          if (uVar22 == 0x31) goto LAB_002e313c;\n          if (0x31 < uVar22) {\n            if ((uVar22 != 0x6e) &&\n               (uVar7 = CONCAT44(local_60._0_4_,local_60._4_4_), uVar22 != 0x2007))\n            goto LAB_002e313c;\n            param_1[0x12] = (int)local_30;\n            uVar7 = uVar26;\n            goto LAB_002e313c;\n          }\nLAB_002e3118:\n          uVar7 = uVar26;\n          if (uVar22 == 1) goto LAB_002e313c;\njoined_r0x002e3124:\n          uVar7 = uVar26;\n          if (uVar22 != 3) goto LAB_002e313c;\n          local_60._0_4_ = (uint *)(uVar26 >> 0x20);\n          if (uVar19 == 8) {\n            param_1[0xf] = (int)local_60._0_4_;\n            goto LAB_002e313c;\n          }\n          if (uVar19 != 0xe) goto LAB_002e313c;\n          goto LAB_002e3284;\n        }\n        if (uVar19 < 0xd) {\n          uVar26 = (ulonglong)*(byte *)local_44;\n          local_44 = (uint *)((int)local_44 + 1);\nLAB_002e382c:\n          uVar7 = uVar26;\n          if (uVar22 == 0x31) goto LAB_002e313c;\n          if (uVar22 < 0x32) goto LAB_002e3118;\n        }\n        else {\n          bVar1 = *(byte *)local_44;\n          uVar15 = (uint)bVar1;\n          puVar9 = (uint *)((int)local_44 + 1);\n          if ((char)bVar1 < '\0') {\n            uVar26 = (*(code *)PTR_read_signed_LEB_128_x_004c297c)(puVar9,&local_48,uVar15);\n            puVar9 = (uint *)((int)local_44 + local_48);\n          }\n          else {\n            local_48 = 1;\n            uVar26 = (ulonglong)uVar15;\n            if ((bVar1 & 0x40) != 0) {\n              uVar26 = CONCAT44(0xffffffff,uVar15 | 0xffffff80);\n            }\n          }\n          local_44 = puVar9;\n          uVar7 = uVar26;\n          if (uVar22 == 0x31) goto LAB_002e313c;\n          if (uVar22 < 0x32) {\n            puVar9 = (uint *)param_1[0xc];\n            if (puVar9 != (uint *)param_1[0xd]) goto LAB_002e314c;\nLAB_002e2f98:\n            iVar17 = iVar17 + 8;\n            local_60 = uVar26;\n            std::\n            vector<gold::Dwarf_die::Attribute_value,std::allocator<gold::Dwarf_die::Attribute_value>>\n            ::_M_realloc_insert<gold::Dwarf_die::Attribute_value_const&>(local_38,puVar9,&local_68);\n            iVar8 = param_1[10];\n            if (iVar17 == iVar21) goto LAB_002e2fb8;\n            goto LAB_002e2db4;\n          }\n        }\n        if ((uVar22 != 0x6e) && (uVar7 = uVar26, uVar22 != 0x2007)) goto LAB_002e313c;\nLAB_002e3858:\n        local_60._0_4_ = (uint *)(uVar26 >> 0x20);\n        uVar7 = uVar26;\n        if (uVar19 == 8) {\n          param_1[0x12] = (int)local_60._0_4_;\n          goto LAB_002e313c;\n        }\n        if (uVar19 != 0xe) goto LAB_002e313c;\n        goto LAB_002e387c;\n      }\n      if (uVar19 == 4) {\n        pcVar25 = *(code **)(**(int **)(*param_1 + 8) + 0xc);\n        if (pcVar25 == (code *)PTR_is_big_endian_004c2950) {\n          iVar8 = (**(code **)(**(int **)(*param_1 + 8) + 0xe8))();\n        }\n        else {\n          iVar8 = (*pcVar25)();\n        }\n        local_58 = *local_44;\n        if (iVar8 == 0) {\n          local_58 = (((local_58 >> 0x10) << 0x18 | (local_58 >> 0x18) << 0x10) >> 0x10) +\n                     ((local_58 & 0xff) << 8 | local_58 >> 8 & 0xff) * 0x10000;\n        }\n        local_60._0_4_ = local_44 + 1;\n        local_44 = (uint *)((int)local_60._0_4_ + local_58);\nLAB_002e355c:\n        uVar26 = CONCAT44(local_60._0_4_,local_60._4_4_);\n        uVar7 = uVar26;\n        if (uVar22 == 0x31) goto LAB_002e313c;\n        if (uVar22 < 0x32) goto LAB_002e3118;\n        puVar9 = (uint *)param_1[0xc];\n      }\n      else {\n        if (4 < uVar19) {\n          if (uVar19 != 5) {\n            if (uVar19 != 6) {\n              return 0;\n            }\n            pcVar25 = *(code **)(**(int **)(*param_1 + 8) + 0xc);\n            if (pcVar25 == (code *)PTR_is_big_endian_004c2950) {\n              local_30 = puVar18;\n              iVar10 = (**(code **)(**(int **)(*param_1 + 8) + 0xe8))();\n            }\n            else {\n              local_30 = puVar18;\n              iVar10 = (*pcVar25)();\n            }\n            puVar9 = (uint *)*local_44;\n            if (iVar10 == 0) {\n              puVar9 = (uint *)(((((uint)puVar9 >> 0x10) << 0x18 | ((uint)puVar9 >> 0x18) << 0x10)\n                                >> 0x10) +\n                               (((uint)puVar9 & 0xff) << 8 | (uint)puVar9 >> 8 & 0xff) * 0x10000);\n            }\n            local_44 = local_44 + 1;\n            iVar10 = *param_1;\n            local_50._0_4_ = (uint *)0x0;\n            local_50._4_4_ = puVar9;\n            goto LAB_002e3708;\n          }\n          pcVar25 = *(code **)(**(int **)(*param_1 + 8) + 0xc);\n          if (pcVar25 == (code *)PTR_is_big_endian_004c2950) {\n            iVar8 = (**(code **)(**(int **)(*param_1 + 8) + 0xe8))();\n          }\n          else {\n            iVar8 = (*pcVar25)();\n          }\n          uVar6 = *(ushort *)local_44;\n          if (iVar8 == 0) {\n            uVar6 = CONCAT11(*(byte *)((int)local_44 + 1),*(byte *)local_44);\n          }\n          local_60._4_4_ = (uint *)(uint)uVar6;\n          local_44 = (uint *)((int)local_44 + 2);\n          local_60._0_4_ = (uint *)0x0;\n          goto LAB_002e355c;\n        }\n        if (uVar19 != 1) {\n          if (uVar19 != 3) {\n            return 0;\n          }\n          pcVar25 = *(code **)(**(int **)(*param_1 + 8) + 0xc);\n          if (pcVar25 == (code *)PTR_is_big_endian_004c2950) {\n            iVar8 = (**(code **)(**(int **)(*param_1 + 8) + 0xe8))();\n          }\n          else {\n            iVar8 = (*pcVar25)();\n          }\n          uVar6 = *(ushort *)local_44;\n          if (iVar8 == 0) {\n            uVar6 = CONCAT11(*(byte *)((int)local_44 + 1),*(byte *)local_44);\n          }\n          local_58 = (uint)uVar6;\n          local_60._0_4_ = (uint *)((int)local_44 + 2);\n          local_44 = (uint *)((int)local_60._0_4_ + local_58);\n          goto LAB_002e355c;\n        }\n        iVar8 = *param_1;\n        if (*(int *)(iVar8 + 0x4c) == 4) {\n          pcVar25 = *(code **)(**(int **)(iVar8 + 8) + 0xc);\n          if (pcVar25 == (code *)PTR_is_big_endian_004c2950) {\n            local_30 = puVar18;\n            iVar8 = (**(code **)(**(int **)(iVar8 + 8) + 0xe8))();\n          }\n          else {\n            local_30 = puVar18;\n            iVar8 = (*pcVar25)();\n          }\n          uVar15 = *local_44;\n          if (iVar8 == 0) {\n            uVar15 = (((uVar15 >> 0x10) << 0x18 | (uVar15 >> 0x18) << 0x10) >> 0x10) +\n                     ((uVar15 & 0xff) << 8 | uVar15 >> 8 & 0xff) * 0x10000;\n          }\n          local_44 = local_44 + 1;\n          uVar26 = (ulonglong)uVar15;\n        }\n        else {\n          local_30 = puVar18;\n          uVar26 = (*local_34)(iVar8,&local_44);\n        }\n        local_50 = uVar26;\n        local_58 = (*local_3c)(*param_1);\n        uVar26 = local_50;\n        if (uVar22 == 0x31) goto LAB_002e30bc;\n        if (uVar22 < 0x32) {\n          if (uVar22 != 1) goto joined_r0x002e3124;\n          goto LAB_002e39b4;\n        }\n        uVar7 = local_50;\n        if (uVar22 == 0x6e) goto LAB_002e313c;\n        if (uVar22 != 0x2007) goto LAB_002e339c;\n        puVar9 = (uint *)param_1[0xc];\n      }\n      while( true ) {\n        if (puVar9 == (uint *)param_1[0xd]) goto LAB_002e2f98;\nLAB_002e314c:\n        local_60._0_4_ = (uint *)(uVar26 >> 0x20);\n        local_60._4_4_ = (uint *)uVar26;\n        iVar17 = iVar17 + 8;\n        puVar9[1] = local_64;\n        puVar9[2] = (uint)local_60._0_4_;\n        *puVar9 = local_68;\n        puVar9[3] = (uint)local_60._4_4_;\n        puVar9[4] = local_58;\n        puVar9[5] = local_54;\n        param_1[0xc] = (int)(puVar9 + 6);\n        iVar8 = param_1[10];\n        local_60 = uVar26;\n        if (iVar17 == iVar21) goto LAB_002e2fb8;\n        puVar9 = (uint *)(*(int *)(iVar8 + 8) + iVar17);\n        uVar19 = puVar9[1];\n        uVar22 = *puVar9;\n        if (uVar19 != 0x16) goto LAB_002e2dd0;\nLAB_002e31a8:\n        uVar19 = (uint)*(byte *)local_44;\n        puVar9 = (uint *)((int)local_44 + 1);\n        if ((char)*(byte *)local_44 < '\0') {\n          local_60 = uVar26;\n          (*(code *)PTR_read_unsigned_LEB_128_x_004c2980)(puVar9,&local_48,uVar19);\n          puVar9 = (uint *)((int)local_44 + local_48);\n          uVar19 = extraout_v1;\n          uVar26 = local_60;\n        }\n        else {\n          local_48 = 1;\n        }\n        puVar11 = (uint *)((int)puVar9 - iVar20);\n        puVar18 = (uint *)((int)puVar11 + param_1[3]);\n        iVar8 = (uint)(puVar18 < puVar11) + ((int)puVar11 >> 0x1f) + param_1[2];\n        local_64 = uVar19;\n        local_44 = puVar9;\n        if (uVar19 != 0xe) break;\nLAB_002e31fc:\n        local_58 = 0;\n        iVar8 = *param_1;\n        local_68 = uVar22;\n        local_30 = puVar18;\n        local_60 = uVar26;\n        if (*(int *)(iVar8 + 0x48) == 4) {\n          pcVar25 = *(code **)(**(int **)(iVar8 + 8) + 0xc);\n          if (pcVar25 == (code *)PTR_is_big_endian_004c2950) {\n            iVar8 = (**(code **)(**(int **)(iVar8 + 8) + 0xe8))();\n          }\n          else {\n            iVar8 = (*pcVar25)();\n          }\n          uVar19 = *local_44;\n          if (iVar8 == 0) {\n            uVar19 = (((uVar19 >> 0x10) << 0x18 | (uVar19 >> 0x18) << 0x10) >> 0x10) +\n                     ((uVar19 & 0xff) << 8 | uVar19 >> 8 & 0xff) * 0x10000;\n          }\n          local_44 = local_44 + 1;\n          uVar26 = (ulonglong)uVar19;\n        }\n        else {\n          uVar26 = (*local_34)(iVar8,&local_44);\n        }\n        local_50 = uVar26;\n        local_58 = (*local_3c)(*param_1);\n        uVar7 = local_50;\n        if (uVar22 != 0x31) {\n          uVar26 = local_50;\n          if (uVar22 < 0x32) {\n            if ((uVar22 != 1) && (uVar22 == 3)) {\nLAB_002e3284:\n              param_1[0x16] = local_58;\n              *(ulonglong *)(param_1 + 0x10) = uVar26;\n              uVar7 = uVar26;\n            }\n          }\n          else {\n            if (uVar22 == 0x6e) {\nLAB_002e387c:\n              param_1[0x16] = local_58;\n            }\n            else {\n              if (uVar22 != 0x2007) goto LAB_002e313c;\n              param_1[0x16] = local_58;\n            }\n            *(ulonglong *)(param_1 + 0x14) = uVar26;\n            uVar7 = uVar26;\n          }\n        }\nLAB_002e313c:\n        puVar9 = (uint *)param_1[0xc];\n        uVar26 = uVar7;\n      }\n    } while( true );\n  }\n  uVar22 = (int)local_44 - iVar20;\n  uVar19 = uVar22 + iVar17;\n  iVar17 = (uint)(uVar19 < uVar22) + ((int)uVar22 >> 0x1f) + param_1[2];\n  if (*(int *)(iVar8 + 4) < 0) {\n    param_1[6] = iVar17;\n    param_1[7] = uVar19;\n  }\n  else {\n    param_1[8] = iVar17;\n    param_1[9] = uVar19;\n  }\n  *(undefined1 *)(param_1 + 0xe) = 1;\n  return 1;\n}" type_identifier (function_declarator "FUN_002e2ca8(int *param_1)" identifier (parameter_list "(int *param_1)" ( (parameter_declaration "int *param_1" primitive_type (pointer_declarator "*param_1" * identifier)) ))) (compound_statement "{\n  byte bVar1;\n  uint uVar2;\n  uint uVar3;\n  uint uVar4;\n  uint uVar5;\n  ushort uVar6;\n  ulonglong uVar7;\n  int iVar8;\n  uint *puVar9;\n  int iVar10;\n  uint *puVar11;\n  undefined4 uVar12;\n  uint extraout_v1;\n  undefined8 *puVar13;\n  uint extraout_v1_00;\n  Dwarf_info_reader *this;\n  byte *pbVar14;\n  uint uVar15;\n  uint uVar16;\n  int iVar17;\n  uint *puVar18;\n  uint uVar19;\n  int iVar20;\n  int iVar21;\n  uint uVar22;\n  undefined8 *puVar23;\n  undefined8 *puVar24;\n  code *pcVar25;\n  ulonglong uVar26;\n  uint local_68;\n  uint local_64;\n  undefined8 local_60;\n  uint local_58;\n  uint local_54;\n  undefined8 local_50;\n  int local_48;\n  uint *local_44;\n  undefined8 *local_40;\n  code *local_3c;\n  vector<gold::Dwarf_die::Attribute_value,std::allocator<gold::Dwarf_die::Attribute_value>>\n  *local_38;\n  code *local_34;\n  uint *local_30;\n  \n  iVar8 = param_1[10];\n  if (iVar8 == 0) {\n    uVar12 = (*(code *)PTR_do_gold_unreachable_004c1a30)\n                       (PTR_s_in_a_linker_script_004c191c + 0x7090,0x2a9,\n                        PTR_s_in_a_linker_script_004c191c + 0x7414);\n    return uVar12;\n  }\n  this = (Dwarf_info_reader *)*param_1;\n  iVar17 = param_1[3];\n  iVar20 = *(int *)(this + 0x2c) + *(int *)(this + 0x3c) + iVar17;\n  if ((uint)(*(int *)(this + 0x2c) + *(int *)(this + 0x3c) + *(int *)(this + 0x44)) < iVar20 + 1U) {\n    gold::Dwarf_info_reader::warn_corrupt_debug_section(this);\n    return 0;\n  }\n  local_38 = (vector<gold::Dwarf_die::Attribute_value,std::allocator<gold::Dwarf_die::Attribute_value>>\n              *)(param_1 + 0xb);\n  if (iVar20 == 0) {\n    return 0;\n  }\n  iVar21 = *(int *)(iVar8 + 0xc) - *(int *)(iVar8 + 8);\n  local_44 = (uint *)(iVar20 + param_1[5]);\n  uVar19 = iVar21 >> 3;\n  if (0xaaaaaaa < uVar19) {\n    uVar12 = (*(code *)PTR___throw_length_error_004c1e74)(PTR_s__s_004c1a50 + -0xda4);\n    return uVar12;\n  }\n  puVar23 = (undefined8 *)param_1[0xb];\n  if ((uint)((param_1[0xd] - (int)puVar23 >> 3) * -0x55555555) < uVar19) {\n    puVar13 = (undefined8 *)param_1[0xc];\n    iVar17 = (int)puVar13 - (int)puVar23;\n    if (uVar19 == 0) {\n      iVar10 = 0;\n      puVar24 = puVar23;\n    }\n    else {\n      local_40 = puVar13;\n      iVar10 = (*(code *)PTR_operator_new_004c13a8)(uVar19 * 0x18);\n      puVar13 = local_40;\n      puVar24 = (undefined8 *)param_1[0xb];\n    }\n    if (puVar23 != puVar13) {\n      (*(code *)PTR_memmove_004c5af8)(iVar10,puVar23,iVar17);\n    }\n    if (puVar24 != (undefined8 *)0x0) {\n      (*(code *)PTR_operator_delete_004c12fc)(puVar24);\n    }\n    iVar8 = param_1[10];\n    param_1[0xb] = iVar10;\n    param_1[0xc] = iVar10 + iVar17;\n    param_1[0xd] = iVar10 + uVar19 * 0x18;\n    if (uVar19 != 0) goto LAB_002e2d90;\nLAB_002e2fb8:\n    if (iVar8 == 0) {\n      uVar12 = (*(code *)PTR_do_gold_unreachable_004c1a30)\n                         (PTR_s_in_a_linker_script_004c191c + 0x7108,0x206,\n                          PTR_s_in_a_linker_script_004c191c + 0x7404);\n      return uVar12;\n    }\n    iVar17 = param_1[3];\n  }\n  else if (uVar19 != 0) {\nLAB_002e2d90:\n    local_3c = (code *)PTR_lookup_reloc_004c2994;\n    iVar17 = 0;\n    local_34 = (code *)PTR_read_from_pointer<64>_004c2998;\n    local_40 = &local_50;\nLAB_002e2db4:\n    puVar9 = (uint *)(*(int *)(iVar8 + 8) + iVar17);\n    uVar19 = puVar9[1];\n    uVar22 = *puVar9;\n    uVar26 = local_60;\n    if (uVar19 == 0x16) goto LAB_002e31a8;\nLAB_002e2dd0:\n    puVar9 = (uint *)((int)local_44 - iVar20);\n    puVar18 = (uint *)((int)puVar9 + param_1[3]);\n    iVar8 = (uint)(puVar18 < puVar9) + ((int)puVar9 >> 0x1f) + param_1[2];\n    local_64 = uVar19;\n    if (uVar19 == 0xe) goto LAB_002e31fc;\n    do {\n      local_60._4_4_ = (uint *)uVar26;\n      local_58 = 0;\n      local_68 = uVar22;\n      local_64 = uVar19;\n      local_60 = uVar26;\n      if (0xe < uVar19) {\n        if (uVar19 == 0x15) {\n          if ((char)*(byte *)local_44 < '\0') {\n            uVar26 = (*(code *)PTR_read_unsigned_LEB_128_x_004c2980)\n                               ((uint *)((int)local_44 + 1),&local_48);\n            local_44 = (uint *)((int)local_44 + local_48);\n          }\n          else {\n            uVar26 = (ulonglong)*(byte *)local_44;\n            local_48 = 1;\n            local_44 = (uint *)((int)local_44 + 1);\n          }\n          goto joined_r0x002e3998;\n        }\n        if (0x15 < uVar19) {\n          if (uVar19 == 0x19) {\n            local_60._4_4_ = (uint *)0x1;\n            local_60._0_4_ = (uint *)0x0;\n          }\n          else {\n            if (uVar19 < 0x1a) {\n              if (uVar19 != 0x17) {\n                if (uVar19 != 0x18) {\n                  return 0;\n                }\n                goto LAB_002e32bc;\n              }\n              iVar8 = *param_1;\n              if (*(int *)(iVar8 + 0x48) == 4) {\n                pcVar25 = *(code **)(**(int **)(iVar8 + 8) + 0xc);\n                if (pcVar25 == (code *)PTR_is_big_endian_004c2950) {\n                  local_30 = puVar18;\n                  iVar8 = (**(code **)(**(int **)(iVar8 + 8) + 0xe8))();\n                }\n                else {\n                  local_30 = puVar18;\n                  iVar8 = (*pcVar25)();\n                }\n                uVar15 = *local_44;\n                if (iVar8 == 0) {\n                  uVar15 = (((uVar15 >> 0x10) << 0x18 | (uVar15 >> 0x18) << 0x10) >> 0x10) +\n                           ((uVar15 & 0xff) << 8 | uVar15 >> 8 & 0xff) * 0x10000;\n                }\n                local_44 = local_44 + 1;\n                uVar26 = (ulonglong)uVar15;\n              }\n              else {\n                local_30 = puVar18;\n                uVar26 = (*local_34)(iVar8,&local_44);\n              }\n              iVar8 = *param_1;\n              goto LAB_002e3970;\n            }\n            if (uVar19 != 0x20) {\n              if (uVar19 < 0x20) {\n                return 0;\n              }\n              if (1 < uVar19 - 0x1f01) {\n                return 0;\n              }\nLAB_002e34d8:\n              if ((char)*(byte *)local_44 < '\0') {\n                uVar26 = (*(code *)PTR_read_unsigned_LEB_128_x_004c2980)\n                                   ((uint *)((int)local_44 + 1),&local_48);\n                local_44 = (uint *)((int)local_44 + local_48);\n              }\n              else {\n                uVar26 = (ulonglong)*(byte *)local_44;\n                local_48 = 1;\n                local_44 = (uint *)((int)local_44 + 1);\n              }\n              goto LAB_002e382c;\n            }\n            pcVar25 = *(code **)(**(int **)(*param_1 + 8) + 0xc);\n            if (pcVar25 == (code *)PTR_is_big_endian_004c2950) {\n              iVar8 = (**(code **)(**(int **)(*param_1 + 8) + 0xe8))();\n            }\n            else {\n              iVar8 = (*pcVar25)();\n            }\n            local_60._4_4_ = (uint *)local_44[1];\n            local_60._0_4_ = (uint *)*local_44;\n            if (iVar8 == 0) {\n              uVar15 = (uint)local_60._4_4_ & 0xff;\n              uVar16 = (uint)local_60._4_4_ >> 8;\n              uVar2 = (uint)local_60._4_4_ >> 0x10;\n              uVar4 = (uint)local_60._4_4_ >> 0x18;\n              local_60._4_4_ =\n                   (uint *)(((((uint)local_60._0_4_ >> 0x10) << 0x18 |\n                             ((uint)local_60._0_4_ >> 0x18) << 0x10) >> 0x10) +\n                           (((uint)local_60._0_4_ & 0xff) << 8 | (uint)local_60._0_4_ >> 8 & 0xff) *\n                           0x10000);\n              local_60._0_4_ =\n                   (uint *)(((uVar2 << 0x18 | uVar4 << 0x10) >> 0x10) +\n                           (uVar15 << 8 | uVar16 & 0xff) * 0x10000);\n            }\n            local_44 = local_44 + 2;\n          }\n          uVar7 = CONCAT44(local_60._0_4_,local_60._4_4_);\n          if (uVar22 == 0x6e) goto LAB_002e313c;\n          uVar7 = CONCAT44(local_60._0_4_,local_60._4_4_);\n          uVar26 = CONCAT44(local_60._0_4_,local_60._4_4_);\n          if (uVar22 == 0x2007) goto LAB_002e313c;\n          goto joined_r0x002e3124;\n        }\n        if (uVar19 == 0x11) {\n          puVar9 = (uint *)((int)local_44 + 1);\n          uVar15 = (uint)*(byte *)local_44;\n          uVar26 = (ulonglong)uVar15;\n          local_44 = puVar9;\n          if (uVar22 == 0x31) goto LAB_002e30bc;\n          if (0x31 < uVar22) {\n            uVar26 = (ulonglong)uVar15;\n            if ((uVar22 != 0x6e) && (uVar26 = (ulonglong)uVar15, uVar22 != 0x2007)) {\n              uVar7 = (ulonglong)uVar15;\n              if (uVar22 != 0x47) goto LAB_002e313c;\n              param_1[0x18] = 0;\n              param_1[0x19] = uVar15;\n              uVar7 = (ulonglong)uVar15;\n              goto LAB_002e313c;\n            }\n            goto LAB_002e3858;\n          }\n          if (uVar22 == 1) {\n            param_1[8] = 0;\n            param_1[9] = uVar15;\n            uVar7 = (ulonglong)uVar15;\n            goto LAB_002e313c;\n          }\n          goto joined_r0x002e3124;\n        }\n        if (uVar19 < 0x12) {\n          if (uVar19 == 0xf) goto LAB_002e34d8;\n          if (uVar19 != 0x10) {\n            return 0;\n          }\n          iVar10 = *param_1;\n          iVar8 = *(int *)(iVar10 + 0x48);\n          if (*(uint *)(iVar10 + 0x50) < 3) {\n            iVar8 = *(int *)(iVar10 + 0x4c);\n          }\n          if (iVar8 == 4) {\n            pcVar25 = *(code **)(**(int **)(iVar10 + 8) + 0xc);\n            if (pcVar25 == (code *)PTR_is_big_endian_004c2950) {\n              local_30 = puVar18;\n              iVar8 = (**(code **)(**(int **)(iVar10 + 8) + 0xe8))();\n            }\n            else {\n              local_30 = puVar18;\n              iVar8 = (*pcVar25)();\n            }\n            uVar15 = *local_44;\n            if (iVar8 == 0) {\n              uVar15 = (((uVar15 >> 0x10) << 0x18 | (uVar15 >> 0x18) << 0x10) >> 0x10) +\n                       ((uVar15 & 0xff) << 8 | uVar15 >> 8 & 0xff) * 0x10000;\n            }\n            local_44 = local_44 + 1;\n            uVar26 = (ulonglong)uVar15;\n          }\n          else {\n            local_30 = puVar18;\n            uVar26 = (*local_34)(iVar10,&local_44);\n          }\n          local_50 = uVar26;\n          local_58 = (*local_3c)(*param_1);\n          uVar26 = local_50;\n        }\n        else {\n          if (uVar19 == 0x13) {\n            pcVar25 = *(code **)(**(int **)(*param_1 + 8) + 0xc);\n            if (pcVar25 == (code *)PTR_is_big_endian_004c2950) {\n              local_30 = puVar18;\n              iVar8 = (**(code **)(**(int **)(*param_1 + 8) + 0xe8))();\n            }\n            else {\n              local_30 = puVar18;\n              iVar8 = (*pcVar25)();\n            }\n            uVar15 = *local_44;\n            if (iVar8 == 0) {\n              uVar15 = (((uVar15 >> 0x10) << 0x18 | (uVar15 >> 0x18) << 0x10) >> 0x10) +\n                       ((uVar15 & 0xff) << 8 | uVar15 >> 8 & 0xff) * 0x10000;\n            }\n            local_44 = local_44 + 1;\n            iVar8 = *param_1;\n            uVar26 = (ulonglong)uVar15;\n          }\n          else {\n            if (uVar19 < 0x14) {\n              pcVar25 = *(code **)(**(int **)(*param_1 + 8) + 0xc);\n              if (pcVar25 == (code *)PTR_is_big_endian_004c2950) {\n                iVar8 = (**(code **)(**(int **)(*param_1 + 8) + 0xe8))();\n              }\n              else {\n                iVar8 = (*pcVar25)();\n              }\n              uVar6 = *(ushort *)local_44;\n              if (iVar8 == 0) {\n                uVar6 = CONCAT11(*(byte *)((int)local_44 + 1),*(byte *)local_44);\n              }\n              local_44 = (uint *)((int)local_44 + 2);\n              uVar26 = (ulonglong)uVar6;\n              goto joined_r0x002e3998;\n            }\n            pcVar25 = *(code **)(**(int **)(*param_1 + 8) + 0xc);\n            if (pcVar25 == (code *)PTR_is_big_endian_004c2950) {\n              local_30 = puVar18;\n              iVar8 = (**(code **)(**(int **)(*param_1 + 8) + 0xe8))();\n            }\n            else {\n              local_30 = puVar18;\n              iVar8 = (*pcVar25)();\n            }\n            uVar15 = local_44[1];\n            uVar16 = *local_44;\n            if (iVar8 == 0) {\n              uVar2 = uVar15 & 0xff;\n              uVar4 = uVar15 >> 8;\n              uVar3 = uVar15 >> 0x10;\n              uVar5 = uVar15 >> 0x18;\n              uVar15 = (((uVar16 >> 0x10) << 0x18 | (uVar16 >> 0x18) << 0x10) >> 0x10) +\n                       ((uVar16 & 0xff) << 8 | uVar16 >> 8 & 0xff) * 0x10000;\n              uVar16 = ((uVar3 << 0x18 | uVar5 << 0x10) >> 0x10) +\n                       (uVar2 << 8 | uVar4 & 0xff) * 0x10000;\n            }\n            uVar26 = CONCAT44(uVar16,uVar15);\n            local_44 = local_44 + 2;\n            iVar8 = *param_1;\n          }\nLAB_002e3970:\n          local_50 = uVar26;\n          local_58 = (*local_3c)(iVar8);\n          uVar26 = local_50;\n        }\njoined_r0x002e3998:\n        if (uVar22 == 0x31) {\nLAB_002e30bc:\n          *(ulonglong *)(param_1 + 0x1a) = uVar26;\n          uVar7 = uVar26;\n          goto LAB_002e313c;\n        }\n        if (uVar22 < 0x32) {\n          uVar7 = uVar26;\n          if (uVar22 != 1) goto LAB_002e313c;\nLAB_002e39b4:\n          uVar7 = uVar26;\n          if (local_58 != 0) goto LAB_002e313c;\n          *(ulonglong *)(param_1 + 8) = uVar26;\n          goto LAB_002e313c;\n        }\n        if ((uVar22 != 0x6e) && (uVar22 != 0x2007)) {\nLAB_002e339c:\n          uVar7 = uVar26;\n          if (uVar22 != 0x47) goto LAB_002e313c;\n          *(ulonglong *)(param_1 + 0x18) = uVar26;\n          goto LAB_002e313c;\n        }\n        goto LAB_002e3858;\n      }\n      if (uVar19 == 7) {\n        pcVar25 = *(code **)(**(int **)(*param_1 + 8) + 0xc);\n        if (pcVar25 == (code *)PTR_is_big_endian_004c2950) {\n          local_30 = puVar18;\n          iVar10 = (**(code **)(**(int **)(*param_1 + 8) + 0xe8))();\n        }\n        else {\n          local_30 = puVar18;\n          iVar10 = (*pcVar25)();\n        }\n        local_50._4_4_ = (uint *)local_44[1];\n        puVar9 = (uint *)*local_44;\n        if (iVar10 == 0) {\n          uVar15 = (uint)local_50._4_4_ & 0xff;\n          uVar16 = (uint)local_50._4_4_ >> 8;\n          uVar2 = (uint)local_50._4_4_ >> 0x10;\n          uVar4 = (uint)local_50._4_4_ >> 0x18;\n          local_50._4_4_ =\n               (uint *)(((((uint)puVar9 >> 0x10) << 0x18 | ((uint)puVar9 >> 0x18) << 0x10) >> 0x10)\n                       + (((uint)puVar9 & 0xff) << 8 | (uint)puVar9 >> 8 & 0xff) * 0x10000);\n          puVar9 = (uint *)(((uVar2 << 0x18 | uVar4 << 0x10) >> 0x10) +\n                           (uVar15 << 8 | uVar16 & 0xff) * 0x10000);\n        }\n        local_44 = local_44 + 2;\n        iVar10 = *param_1;\n        local_50._0_4_ = puVar9;\nLAB_002e3708:\n        local_58 = (*local_3c)(iVar10,puVar9,iVar8,local_30,local_40);\n        local_60._4_4_ = local_50._4_4_;\n        local_60._0_4_ = local_50._0_4_;\n        goto LAB_002e355c;\n      }\n      if (7 < uVar19) {\n        if (uVar19 == 10) {\n          local_60._0_4_ = (uint *)((int)local_44 + 1);\n          local_58 = (uint)*(byte *)local_44;\n          local_44 = (uint *)((int)local_60._0_4_ + local_58);\n          goto LAB_002e355c;\n        }\n        if (uVar19 < 0xb) {\n          if (uVar19 != 8) {\n            if (uVar19 != 9) {\n              return 0;\n            }\nLAB_002e32bc:\n            uVar15 = (uint)*(byte *)local_44;\n            pbVar14 = (byte *)((int)local_44 + 1);\n            if ((char)*(byte *)local_44 < '\0') {\n              (*(code *)PTR_read_unsigned_LEB_128_x_004c2980)(pbVar14,&local_48);\n              pbVar14 = (byte *)((int)local_44 + local_48);\n              uVar15 = extraout_v1_00;\n            }\n            else {\n              local_48 = 1;\n            }\n            uVar26 = CONCAT44(pbVar14,local_60._4_4_);\n            local_58 = uVar15;\n            local_44 = (uint *)((int)local_44 + uVar15 + local_48);\n            goto LAB_002e382c;\n          }\n          local_60._0_4_ = local_44;\n          local_30 = local_44;\n          local_48 = (*(code *)PTR_strlen_004c5b9c)(local_44);\n          uVar26 = CONCAT44(local_60._0_4_,local_60._4_4_);\n          local_44 = (uint *)((int)local_30 + local_48 + 1);\n          uVar7 = CONCAT44(local_60._0_4_,local_60._4_4_);\n          if (uVar22 == 0x31) goto LAB_002e313c;\n          if (0x31 < uVar22) {\n            if ((uVar22 != 0x6e) &&\n               (uVar7 = CONCAT44(local_60._0_4_,local_60._4_4_), uVar22 != 0x2007))\n            goto LAB_002e313c;\n            param_1[0x12] = (int)local_30;\n            uVar7 = uVar26;\n            goto LAB_002e313c;\n          }\nLAB_002e3118:\n          uVar7 = uVar26;\n          if (uVar22 == 1) goto LAB_002e313c;\njoined_r0x002e3124:\n          uVar7 = uVar26;\n          if (uVar22 != 3) goto LAB_002e313c;\n          local_60._0_4_ = (uint *)(uVar26 >> 0x20);\n          if (uVar19 == 8) {\n            param_1[0xf] = (int)local_60._0_4_;\n            goto LAB_002e313c;\n          }\n          if (uVar19 != 0xe) goto LAB_002e313c;\n          goto LAB_002e3284;\n        }\n        if (uVar19 < 0xd) {\n          uVar26 = (ulonglong)*(byte *)local_44;\n          local_44 = (uint *)((int)local_44 + 1);\nLAB_002e382c:\n          uVar7 = uVar26;\n          if (uVar22 == 0x31) goto LAB_002e313c;\n          if (uVar22 < 0x32) goto LAB_002e3118;\n        }\n        else {\n          bVar1 = *(byte *)local_44;\n          uVar15 = (uint)bVar1;\n          puVar9 = (uint *)((int)local_44 + 1);\n          if ((char)bVar1 < '\0') {\n            uVar26 = (*(code *)PTR_read_signed_LEB_128_x_004c297c)(puVar9,&local_48,uVar15);\n            puVar9 = (uint *)((int)local_44 + local_48);\n          }\n          else {\n            local_48 = 1;\n            uVar26 = (ulonglong)uVar15;\n            if ((bVar1 & 0x40) != 0) {\n              uVar26 = CONCAT44(0xffffffff,uVar15 | 0xffffff80);\n            }\n          }\n          local_44 = puVar9;\n          uVar7 = uVar26;\n          if (uVar22 == 0x31) goto LAB_002e313c;\n          if (uVar22 < 0x32) {\n            puVar9 = (uint *)param_1[0xc];\n            if (puVar9 != (uint *)param_1[0xd]) goto LAB_002e314c;\nLAB_002e2f98:\n            iVar17 = iVar17 + 8;\n            local_60 = uVar26;\n            std::\n            vector<gold::Dwarf_die::Attribute_value,std::allocator<gold::Dwarf_die::Attribute_value>>\n            ::_M_realloc_insert<gold::Dwarf_die::Attribute_value_const&>(local_38,puVar9,&local_68);\n            iVar8 = param_1[10];\n            if (iVar17 == iVar21) goto LAB_002e2fb8;\n            goto LAB_002e2db4;\n          }\n        }\n        if ((uVar22 != 0x6e) && (uVar7 = uVar26, uVar22 != 0x2007)) goto LAB_002e313c;\nLAB_002e3858:\n        local_60._0_4_ = (uint *)(uVar26 >> 0x20);\n        uVar7 = uVar26;\n        if (uVar19 == 8) {\n          param_1[0x12] = (int)local_60._0_4_;\n          goto LAB_002e313c;\n        }\n        if (uVar19 != 0xe) goto LAB_002e313c;\n        goto LAB_002e387c;\n      }\n      if (uVar19 == 4) {\n        pcVar25 = *(code **)(**(int **)(*param_1 + 8) + 0xc);\n        if (pcVar25 == (code *)PTR_is_big_endian_004c2950) {\n          iVar8 = (**(code **)(**(int **)(*param_1 + 8) + 0xe8))();\n        }\n        else {\n          iVar8 = (*pcVar25)();\n        }\n        local_58 = *local_44;\n        if (iVar8 == 0) {\n          local_58 = (((local_58 >> 0x10) << 0x18 | (local_58 >> 0x18) << 0x10) >> 0x10) +\n                     ((local_58 & 0xff) << 8 | local_58 >> 8 & 0xff) * 0x10000;\n        }\n        local_60._0_4_ = local_44 + 1;\n        local_44 = (uint *)((int)local_60._0_4_ + local_58);\nLAB_002e355c:\n        uVar26 = CONCAT44(local_60._0_4_,local_60._4_4_);\n        uVar7 = uVar26;\n        if (uVar22 == 0x31) goto LAB_002e313c;\n        if (uVar22 < 0x32) goto LAB_002e3118;\n        puVar9 = (uint *)param_1[0xc];\n      }\n      else {\n        if (4 < uVar19) {\n          if (uVar19 != 5) {\n            if (uVar19 != 6) {\n              return 0;\n            }\n            pcVar25 = *(code **)(**(int **)(*param_1 + 8) + 0xc);\n            if (pcVar25 == (code *)PTR_is_big_endian_004c2950) {\n              local_30 = puVar18;\n              iVar10 = (**(code **)(**(int **)(*param_1 + 8) + 0xe8))();\n            }\n            else {\n              local_30 = puVar18;\n              iVar10 = (*pcVar25)();\n            }\n            puVar9 = (uint *)*local_44;\n            if (iVar10 == 0) {\n              puVar9 = (uint *)(((((uint)puVar9 >> 0x10) << 0x18 | ((uint)puVar9 >> 0x18) << 0x10)\n                                >> 0x10) +\n                               (((uint)puVar9 & 0xff) << 8 | (uint)puVar9 >> 8 & 0xff) * 0x10000);\n            }\n            local_44 = local_44 + 1;\n            iVar10 = *param_1;\n            local_50._0_4_ = (uint *)0x0;\n            local_50._4_4_ = puVar9;\n            goto LAB_002e3708;\n          }\n          pcVar25 = *(code **)(**(int **)(*param_1 + 8) + 0xc);\n          if (pcVar25 == (code *)PTR_is_big_endian_004c2950) {\n            iVar8 = (**(code **)(**(int **)(*param_1 + 8) + 0xe8))();\n          }\n          else {\n            iVar8 = (*pcVar25)();\n          }\n          uVar6 = *(ushort *)local_44;\n          if (iVar8 == 0) {\n            uVar6 = CONCAT11(*(byte *)((int)local_44 + 1),*(byte *)local_44);\n          }\n          local_60._4_4_ = (uint *)(uint)uVar6;\n          local_44 = (uint *)((int)local_44 + 2);\n          local_60._0_4_ = (uint *)0x0;\n          goto LAB_002e355c;\n        }\n        if (uVar19 != 1) {\n          if (uVar19 != 3) {\n            return 0;\n          }\n          pcVar25 = *(code **)(**(int **)(*param_1 + 8) + 0xc);\n          if (pcVar25 == (code *)PTR_is_big_endian_004c2950) {\n            iVar8 = (**(code **)(**(int **)(*param_1 + 8) + 0xe8))();\n          }\n          else {\n            iVar8 = (*pcVar25)();\n          }\n          uVar6 = *(ushort *)local_44;\n          if (iVar8 == 0) {\n            uVar6 = CONCAT11(*(byte *)((int)local_44 + 1),*(byte *)local_44);\n          }\n          local_58 = (uint)uVar6;\n          local_60._0_4_ = (uint *)((int)local_44 + 2);\n          local_44 = (uint *)((int)local_60._0_4_ + local_58);\n          goto LAB_002e355c;\n        }\n        iVar8 = *param_1;\n        if (*(int *)(iVar8 + 0x4c) == 4) {\n          pcVar25 = *(code **)(**(int **)(iVar8 + 8) + 0xc);\n          if (pcVar25 == (code *)PTR_is_big_endian_004c2950) {\n            local_30 = puVar18;\n            iVar8 = (**(code **)(**(int **)(iVar8 + 8) + 0xe8))();\n          }\n          else {\n            local_30 = puVar18;\n            iVar8 = (*pcVar25)();\n          }\n          uVar15 = *local_44;\n          if (iVar8 == 0) {\n            uVar15 = (((uVar15 >> 0x10) << 0x18 | (uVar15 >> 0x18) << 0x10) >> 0x10) +\n                     ((uVar15 & 0xff) << 8 | uVar15 >> 8 & 0xff) * 0x10000;\n          }\n          local_44 = local_44 + 1;\n          uVar26 = (ulonglong)uVar15;\n        }\n        else {\n          local_30 = puVar18;\n          uVar26 = (*local_34)(iVar8,&local_44);\n        }\n        local_50 = uVar26;\n        local_58 = (*local_3c)(*param_1);\n        uVar26 = local_50;\n        if (uVar22 == 0x31) goto LAB_002e30bc;\n        if (uVar22 < 0x32) {\n          if (uVar22 != 1) goto joined_r0x002e3124;\n          goto LAB_002e39b4;\n        }\n        uVar7 = local_50;\n        if (uVar22 == 0x6e) goto LAB_002e313c;\n        if (uVar22 != 0x2007) goto LAB_002e339c;\n        puVar9 = (uint *)param_1[0xc];\n      }\n      while( true ) {\n        if (puVar9 == (uint *)param_1[0xd]) goto LAB_002e2f98;\nLAB_002e314c:\n        local_60._0_4_ = (uint *)(uVar26 >> 0x20);\n        local_60._4_4_ = (uint *)uVar26;\n        iVar17 = iVar17 + 8;\n        puVar9[1] = local_64;\n        puVar9[2] = (uint)local_60._0_4_;\n        *puVar9 = local_68;\n        puVar9[3] = (uint)local_60._4_4_;\n        puVar9[4] = local_58;\n        puVar9[5] = local_54;\n        param_1[0xc] = (int)(puVar9 + 6);\n        iVar8 = param_1[10];\n        local_60 = uVar26;\n        if (iVar17 == iVar21) goto LAB_002e2fb8;\n        puVar9 = (uint *)(*(int *)(iVar8 + 8) + iVar17);\n        uVar19 = puVar9[1];\n        uVar22 = *puVar9;\n        if (uVar19 != 0x16) goto LAB_002e2dd0;\nLAB_002e31a8:\n        uVar19 = (uint)*(byte *)local_44;\n        puVar9 = (uint *)((int)local_44 + 1);\n        if ((char)*(byte *)local_44 < '\0') {\n          local_60 = uVar26;\n          (*(code *)PTR_read_unsigned_LEB_128_x_004c2980)(puVar9,&local_48,uVar19);\n          puVar9 = (uint *)((int)local_44 + local_48);\n          uVar19 = extraout_v1;\n          uVar26 = local_60;\n        }\n        else {\n          local_48 = 1;\n        }\n        puVar11 = (uint *)((int)puVar9 - iVar20);\n        puVar18 = (uint *)((int)puVar11 + param_1[3]);\n        iVar8 = (uint)(puVar18 < puVar11) + ((int)puVar11 >> 0x1f) + param_1[2];\n        local_64 = uVar19;\n        local_44 = puVar9;\n        if (uVar19 != 0xe) break;\nLAB_002e31fc:\n        local_58 = 0;\n        iVar8 = *param_1;\n        local_68 = uVar22;\n        local_30 = puVar18;\n        local_60 = uVar26;\n        if (*(int *)(iVar8 + 0x48) == 4) {\n          pcVar25 = *(code **)(**(int **)(iVar8 + 8) + 0xc);\n          if (pcVar25 == (code *)PTR_is_big_endian_004c2950) {\n            iVar8 = (**(code **)(**(int **)(iVar8 + 8) + 0xe8))();\n          }\n          else {\n            iVar8 = (*pcVar25)();\n          }\n          uVar19 = *local_44;\n          if (iVar8 == 0) {\n            uVar19 = (((uVar19 >> 0x10) << 0x18 | (uVar19 >> 0x18) << 0x10) >> 0x10) +\n                     ((uVar19 & 0xff) << 8 | uVar19 >> 8 & 0xff) * 0x10000;\n          }\n          local_44 = local_44 + 1;\n          uVar26 = (ulonglong)uVar19;\n        }\n        else {\n          uVar26 = (*local_34)(iVar8,&local_44);\n        }\n        local_50 = uVar26;\n        local_58 = (*local_3c)(*param_1);\n        uVar7 = local_50;\n        if (uVar22 != 0x31) {\n          uVar26 = local_50;\n          if (uVar22 < 0x32) {\n            if ((uVar22 != 1) && (uVar22 == 3)) {\nLAB_002e3284:\n              param_1[0x16] = local_58;\n              *(ulonglong *)(param_1 + 0x10) = uVar26;\n              uVar7 = uVar26;\n            }\n          }\n          else {\n            if (uVar22 == 0x6e) {\nLAB_002e387c:\n              param_1[0x16] = local_58;\n            }\n            else {\n              if (uVar22 != 0x2007) goto LAB_002e313c;\n              param_1[0x16] = local_58;\n            }\n            *(ulonglong *)(param_1 + 0x14) = uVar26;\n            uVar7 = uVar26;\n          }\n        }\nLAB_002e313c:\n        puVar9 = (uint *)param_1[0xc];\n        uVar26 = uVar7;\n      }\n    } while( true );\n  }\n  uVar22 = (int)local_44 - iVar20;\n  uVar19 = uVar22 + iVar17;\n  iVar17 = (uint)(uVar19 < uVar22) + ((int)uVar22 >> 0x1f) + param_1[2];\n  if (*(int *)(iVar8 + 4) < 0) {\n    param_1[6] = iVar17;\n    param_1[7] = uVar19;\n  }\n  else {\n    param_1[8] = iVar17;\n    param_1[9] = uVar19;\n  }\n  *(undefined1 *)(param_1 + 0xe) = 1;\n  return 1;\n}" { (declaration "byte bVar1;" type_identifier identifier ;) (declaration "uint uVar2;" type_identifier identifier ;) (declaration "uint uVar3;" type_identifier identifier ;) (declaration "uint uVar4;" type_identifier identifier ;) (declaration "uint uVar5;" type_identifier identifier ;) (declaration "ushort uVar6;" type_identifier identifier ;) (declaration "ulonglong uVar7;" type_identifier identifier ;) (declaration "int iVar8;" primitive_type identifier ;) (declaration "uint *puVar9;" type_identifier (pointer_declarator "*puVar9" * identifier) ;) (declaration "int iVar10;" primitive_type identifier ;) (declaration "uint *puVar11;" type_identifier (pointer_declarator "*puVar11" * identifier) ;) (declaration "undefined4 uVar12;" type_identifier identifier ;) (declaration "uint extraout_v1;" type_identifier identifier ;) (declaration "undefined8 *puVar13;" type_identifier (pointer_declarator "*puVar13" * identifier) ;) (declaration "uint extraout_v1_00;" type_identifier identifier ;) (declaration "Dwarf_info_reader *this;" type_identifier (pointer_declarator "*this" * identifier) ;) (declaration "byte *pbVar14;" type_identifier (pointer_declarator "*pbVar14" * identifier) ;) (declaration "uint uVar15;" type_identifier identifier ;) (declaration "uint uVar16;" type_identifier identifier ;) (declaration "int iVar17;" primitive_type identifier ;) (declaration "uint *puVar18;" type_identifier (pointer_declarator "*puVar18" * identifier) ;) (declaration "uint uVar19;" type_identifier identifier ;) (declaration "int iVar20;" primitive_type identifier ;) (declaration "int iVar21;" primitive_type identifier ;) (declaration "uint uVar22;" type_identifier identifier ;) (declaration "undefined8 *puVar23;" type_identifier (pointer_declarator "*puVar23" * identifier) ;) (declaration "undefined8 *puVar24;" type_identifier (pointer_declarator "*puVar24" * identifier) ;) (declaration "code *pcVar25;" type_identifier (pointer_declarator "*pcVar25" * identifier) ;) (declaration "ulonglong uVar26;" type_identifier identifier ;) (declaration "uint local_68;" type_identifier identifier ;) (declaration "uint local_64;" type_identifier identifier ;) (declaration "undefined8 local_60;" type_identifier identifier ;) (declaration "uint local_58;" type_identifier identifier ;) (declaration "uint local_54;" type_identifier identifier ;) (declaration "undefined8 local_50;" type_identifier identifier ;) (declaration "int local_48;" primitive_type identifier ;) (declaration "uint *local_44;" type_identifier (pointer_declarator "*local_44" * identifier) ;) (declaration "undefined8 *local_40;" type_identifier (pointer_declarator "*local_40" * identifier) ;) (declaration "code *local_3c;" type_identifier (pointer_declarator "*local_3c" * identifier) ;) (ERROR "vector<gold::" (binary_expression "vector<gold" identifier < identifier) : :) (labeled_statement "Dwarf_die::Attribute_value,std::allocator<gold::Dwarf_die::Attribute_value>>\n  *local_38;" 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  *local_38;" statement_identifier : (ERROR ":" :) (expression_statement "Attribute_value>>\n  *local_38;" (binary_expression "Attribute_value>>\n  *local_38" identifier >> (pointer_expression "*local_38" * identifier)) ;))) (declaration "code *local_34;" type_identifier (pointer_declarator "*local_34" * identifier) ;) (declaration "uint *local_30;" type_identifier (pointer_declarator "*local_30" * identifier) ;) (expression_statement "iVar8 = param_1[10];" (assignment_expression "iVar8 = param_1[10]" identifier = (subscript_expression "param_1[10]" identifier [ number_literal ])) ;) (if_statement "if (iVar8 == 0) {\n    uVar12 = (*(code *)PTR_do_gold_unreachable_004c1a30)\n                       (PTR_s_in_a_linker_script_004c191c + 0x7090,0x2a9,\n                        PTR_s_in_a_linker_script_004c191c + 0x7414);\n    return uVar12;\n  }" if (parenthesized_expression "(iVar8 == 0)" ( (binary_expression "iVar8 == 0" identifier == number_literal) )) (compound_statement "{\n    uVar12 = (*(code *)PTR_do_gold_unreachable_004c1a30)\n                       (PTR_s_in_a_linker_script_004c191c + 0x7090,0x2a9,\n                        PTR_s_in_a_linker_script_004c191c + 0x7414);\n    return uVar12;\n  }" { (expression_statement "uVar12 = (*(code *)PTR_do_gold_unreachable_004c1a30)\n                       (PTR_s_in_a_linker_script_004c191c + 0x7090,0x2a9,\n                        PTR_s_in_a_linker_script_004c191c + 0x7414);" (assignment_expression "uVar12 = (*(code *)PTR_do_gold_unreachable_004c1a30)\n                       (PTR_s_in_a_linker_script_004c191c + 0x7090,0x2a9,\n                        PTR_s_in_a_linker_script_004c191c + 0x7414)" identifier = (call_expression "(*(code *)PTR_do_gold_unreachable_004c1a30)\n                       (PTR_s_in_a_linker_script_004c191c + 0x7090,0x2a9,\n                        PTR_s_in_a_linker_script_004c191c + 0x7414)" (parenthesized_expression "(*(code *)PTR_do_gold_unreachable_004c1a30)" ( (pointer_expression "*(code *)PTR_do_gold_unreachable_004c1a30" * (cast_expression "(code *)PTR_do_gold_unreachable_004c1a30" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(PTR_s_in_a_linker_script_004c191c + 0x7090,0x2a9,\n                        PTR_s_in_a_linker_script_004c191c + 0x7414)" ( (binary_expression "PTR_s_in_a_linker_script_004c191c + 0x7090" identifier + number_literal) , number_literal , (binary_expression "PTR_s_in_a_linker_script_004c191c + 0x7414" identifier + number_literal) )))) ;) (return_statement "return uVar12;" return identifier ;) })) (expression_statement "this = (Dwarf_info_reader *)*param_1;" (assignment_expression "this = (Dwarf_info_reader *)*param_1" identifier = (cast_expression "(Dwarf_info_reader *)*param_1" ( (type_descriptor "Dwarf_info_reader *" type_identifier (abstract_pointer_declarator "*" *)) ) (pointer_expression "*param_1" * identifier))) ;) (expression_statement "iVar17 = param_1[3];" (assignment_expression "iVar17 = param_1[3]" identifier = (subscript_expression "param_1[3]" identifier [ number_literal ])) ;) (expression_statement "iVar20 = *(int *)(this + 0x2c) + *(int *)(this + 0x3c) + iVar17;" (assignment_expression "iVar20 = *(int *)(this + 0x2c) + *(int *)(this + 0x3c) + iVar17" identifier = (binary_expression "*(int *)(this + 0x2c) + *(int *)(this + 0x3c) + iVar17" (binary_expression "*(int *)(this + 0x2c) + *(int *)(this + 0x3c)" (pointer_expression "*(int *)(this + 0x2c)" * (cast_expression "(int *)(this + 0x2c)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(this + 0x2c)" ( (binary_expression "this + 0x2c" identifier + number_literal) )))) + (pointer_expression "*(int *)(this + 0x3c)" * (cast_expression "(int *)(this + 0x3c)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(this + 0x3c)" ( (binary_expression "this + 0x3c" identifier + number_literal) ))))) + identifier)) ;) (if_statement "if ((uint)(*(int *)(this + 0x2c) + *(int *)(this + 0x3c) + *(int *)(this + 0x44)) < iVar20 + 1U) {\n    gold::Dwarf_info_reader::warn_corrupt_debug_section(this);\n    return 0;\n  }" if (parenthesized_expression "((uint)(*(int *)(this + 0x2c) + *(int *)(this + 0x3c) + *(int *)(this + 0x44)) < iVar20 + 1U)" ( (binary_expression "(uint)(*(int *)(this + 0x2c) + *(int *)(this + 0x3c) + *(int *)(this + 0x44)) < iVar20 + 1U" (call_expression "(uint)(*(int *)(this + 0x2c) + *(int *)(this + 0x3c) + *(int *)(this + 0x44))" (parenthesized_expression "(uint)" ( identifier )) (argument_list "(*(int *)(this + 0x2c) + *(int *)(this + 0x3c) + *(int *)(this + 0x44))" ( (binary_expression "*(int *)(this + 0x2c) + *(int *)(this + 0x3c) + *(int *)(this + 0x44)" (binary_expression "*(int *)(this + 0x2c) + *(int *)(this + 0x3c)" (pointer_expression "*(int *)(this + 0x2c)" * (cast_expression "(int *)(this + 0x2c)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(this + 0x2c)" ( (binary_expression "this + 0x2c" identifier + number_literal) )))) + (pointer_expression "*(int *)(this + 0x3c)" * (cast_expression "(int *)(this + 0x3c)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(this + 0x3c)" ( (binary_expression "this + 0x3c" identifier + number_literal) ))))) + (pointer_expression "*(int *)(this + 0x44)" * (cast_expression "(int *)(this + 0x44)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(this + 0x44)" ( (binary_expression "this + 0x44" identifier + number_literal) ))))) ))) < (binary_expression "iVar20 + 1U" identifier + number_literal)) )) (compound_statement "{\n    gold::Dwarf_info_reader::warn_corrupt_debug_section(this);\n    return 0;\n  }" { (labeled_statement "gold::Dwarf_info_reader::warn_corrupt_debug_section(this);" statement_identifier : (ERROR ":" :) (labeled_statement "Dwarf_info_reader::warn_corrupt_debug_section(this);" statement_identifier : (ERROR ":" :) (expression_statement "warn_corrupt_debug_section(this);" (call_expression "warn_corrupt_debug_section(this)" identifier (argument_list "(this)" ( identifier ))) ;))) (return_statement "return 0;" return number_literal ;) })) (expression_statement "local_38 = (vector<gold::Dwarf_die::Attribute_value,std::allocator<gold::Dwarf_die::Attribute_value>>\n              *)(param_1 + 0xb);" (assignment_expression "local_38 = (vector<gold::Dwarf_die::Attribute_value,std::allocator<gold::Dwarf_die::Attribute_value>>\n              *)(param_1 + 0xb)" identifier = (call_expression "(vector<gold::Dwarf_die::Attribute_value,std::allocator<gold::Dwarf_die::Attribute_value>>\n              *)(param_1 + 0xb)" (parenthesized_expression "(vector<gold::Dwarf_die::Attribute_value,std::allocator<gold::Dwarf_die::Attribute_value>>\n              *)" ( (ERROR "vector<gold::Dwarf_die::Attribute_value,std::allocator<gold::Dwarf_die::" (binary_expression "vector<gold" identifier < identifier) : : identifier : : (comma_expression "Attribute_value,std" identifier , identifier) : : (binary_expression "allocator<gold" identifier < identifier) : : identifier : :) (binary_expression "Attribute_value>>\n              *" identifier >> (pointer_expression "*" * identifier)) )) (argument_list "(param_1 + 0xb)" ( (binary_expression "param_1 + 0xb" identifier + number_literal) )))) ;) (if_statement "if (iVar20 == 0) {\n    return 0;\n  }" if (parenthesized_expression "(iVar20 == 0)" ( (binary_expression "iVar20 == 0" identifier == number_literal) )) (compound_statement "{\n    return 0;\n  }" { (return_statement "return 0;" return number_literal ;) })) (expression_statement "iVar21 = *(int *)(iVar8 + 0xc) - *(int *)(iVar8 + 8);" (assignment_expression "iVar21 = *(int *)(iVar8 + 0xc) - *(int *)(iVar8 + 8)" identifier = (binary_expression "*(int *)(iVar8 + 0xc) - *(int *)(iVar8 + 8)" (pointer_expression "*(int *)(iVar8 + 0xc)" * (cast_expression "(int *)(iVar8 + 0xc)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar8 + 0xc)" ( (binary_expression "iVar8 + 0xc" identifier + number_literal) )))) - (pointer_expression "*(int *)(iVar8 + 8)" * (cast_expression "(int *)(iVar8 + 8)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar8 + 8)" ( (binary_expression "iVar8 + 8" identifier + number_literal) )))))) ;) (expression_statement "local_44 = (uint *)(iVar20 + param_1[5]);" (assignment_expression "local_44 = (uint *)(iVar20 + param_1[5])" identifier = (cast_expression "(uint *)(iVar20 + param_1[5])" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar20 + param_1[5])" ( (binary_expression "iVar20 + param_1[5]" identifier + (subscript_expression "param_1[5]" identifier [ number_literal ])) )))) ;) (expression_statement "uVar19 = iVar21 >> 3;" (assignment_expression "uVar19 = iVar21 >> 3" identifier = (binary_expression "iVar21 >> 3" identifier >> number_literal)) ;) (if_statement "if (0xaaaaaaa < uVar19) {\n    uVar12 = (*(code *)PTR___throw_length_error_004c1e74)(PTR_s__s_004c1a50 + -0xda4);\n    return uVar12;\n  }" if (parenthesized_expression "(0xaaaaaaa < uVar19)" ( (binary_expression "0xaaaaaaa < uVar19" number_literal < identifier) )) (compound_statement "{\n    uVar12 = (*(code *)PTR___throw_length_error_004c1e74)(PTR_s__s_004c1a50 + -0xda4);\n    return uVar12;\n  }" { (expression_statement "uVar12 = (*(code *)PTR___throw_length_error_004c1e74)(PTR_s__s_004c1a50 + -0xda4);" (assignment_expression "uVar12 = (*(code *)PTR___throw_length_error_004c1e74)(PTR_s__s_004c1a50 + -0xda4)" identifier = (call_expression "(*(code *)PTR___throw_length_error_004c1e74)(PTR_s__s_004c1a50 + -0xda4)" (parenthesized_expression "(*(code *)PTR___throw_length_error_004c1e74)" ( (pointer_expression "*(code *)PTR___throw_length_error_004c1e74" * (cast_expression "(code *)PTR___throw_length_error_004c1e74" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(PTR_s__s_004c1a50 + -0xda4)" ( (binary_expression "PTR_s__s_004c1a50 + -0xda4" identifier + number_literal) )))) ;) (return_statement "return uVar12;" return identifier ;) })) (expression_statement "puVar23 = (undefined8 *)param_1[0xb];" (assignment_expression "puVar23 = (undefined8 *)param_1[0xb]" identifier = (cast_expression "(undefined8 *)param_1[0xb]" ( (type_descriptor "undefined8 *" type_identifier (abstract_pointer_declarator "*" *)) ) (subscript_expression "param_1[0xb]" identifier [ number_literal ]))) ;) (if_statement "if ((uint)((param_1[0xd] - (int)puVar23 >> 3) * -0x55555555) < uVar19) {\n    puVar13 = (undefined8 *)param_1[0xc];\n    iVar17 = (int)puVar13 - (int)puVar23;\n    if (uVar19 == 0) {\n      iVar10 = 0;\n      puVar24 = puVar23;\n    }\n    else {\n      local_40 = puVar13;\n      iVar10 = (*(code *)PTR_operator_new_004c13a8)(uVar19 * 0x18);\n      puVar13 = local_40;\n      puVar24 = (undefined8 *)param_1[0xb];\n    }\n    if (puVar23 != puVar13) {\n      (*(code *)PTR_memmove_004c5af8)(iVar10,puVar23,iVar17);\n    }\n    if (puVar24 != (undefined8 *)0x0) {\n      (*(code *)PTR_operator_delete_004c12fc)(puVar24);\n    }\n    iVar8 = param_1[10];\n    param_1[0xb] = iVar10;\n    param_1[0xc] = iVar10 + iVar17;\n    param_1[0xd] = iVar10 + uVar19 * 0x18;\n    if (uVar19 != 0) goto LAB_002e2d90;\nLAB_002e2fb8:\n    if (iVar8 == 0) {\n      uVar12 = (*(code *)PTR_do_gold_unreachable_004c1a30)\n                         (PTR_s_in_a_linker_script_004c191c + 0x7108,0x206,\n                          PTR_s_in_a_linker_script_004c191c + 0x7404);\n      return uVar12;\n    }\n    iVar17 = param_1[3];\n  }\n  else if (uVar19 != 0) {\nLAB_002e2d90:\n    local_3c = (code *)PTR_lookup_reloc_004c2994;\n    iVar17 = 0;\n    local_34 = (code *)PTR_read_from_pointer<64>_004c2998;\n    local_40 = &local_50;\nLAB_002e2db4:\n    puVar9 = (uint *)(*(int *)(iVar8 + 8) + iVar17);\n    uVar19 = puVar9[1];\n    uVar22 = *puVar9;\n    uVar26 = local_60;\n    if (uVar19 == 0x16) goto LAB_002e31a8;\nLAB_002e2dd0:\n    puVar9 = (uint *)((int)local_44 - iVar20);\n    puVar18 = (uint *)((int)puVar9 + param_1[3]);\n    iVar8 = (uint)(puVar18 < puVar9) + ((int)puVar9 >> 0x1f) + param_1[2];\n    local_64 = uVar19;\n    if (uVar19 == 0xe) goto LAB_002e31fc;\n    do {\n      local_60._4_4_ = (uint *)uVar26;\n      local_58 = 0;\n      local_68 = uVar22;\n      local_64 = uVar19;\n      local_60 = uVar26;\n      if (0xe < uVar19) {\n        if (uVar19 == 0x15) {\n          if ((char)*(byte *)local_44 < '\0') {\n            uVar26 = (*(code *)PTR_read_unsigned_LEB_128_x_004c2980)\n                               ((uint *)((int)local_44 + 1),&local_48);\n            local_44 = (uint *)((int)local_44 + local_48);\n          }\n          else {\n            uVar26 = (ulonglong)*(byte *)local_44;\n            local_48 = 1;\n            local_44 = (uint *)((int)local_44 + 1);\n          }\n          goto joined_r0x002e3998;\n        }\n        if (0x15 < uVar19) {\n          if (uVar19 == 0x19) {\n            local_60._4_4_ = (uint *)0x1;\n            local_60._0_4_ = (uint *)0x0;\n          }\n          else {\n            if (uVar19 < 0x1a) {\n              if (uVar19 != 0x17) {\n                if (uVar19 != 0x18) {\n                  return 0;\n                }\n                goto LAB_002e32bc;\n              }\n              iVar8 = *param_1;\n              if (*(int *)(iVar8 + 0x48) == 4) {\n                pcVar25 = *(code **)(**(int **)(iVar8 + 8) + 0xc);\n                if (pcVar25 == (code *)PTR_is_big_endian_004c2950) {\n                  local_30 = puVar18;\n                  iVar8 = (**(code **)(**(int **)(iVar8 + 8) + 0xe8))();\n                }\n                else {\n                  local_30 = puVar18;\n                  iVar8 = (*pcVar25)();\n                }\n                uVar15 = *local_44;\n                if (iVar8 == 0) {\n                  uVar15 = (((uVar15 >> 0x10) << 0x18 | (uVar15 >> 0x18) << 0x10) >> 0x10) +\n                           ((uVar15 & 0xff) << 8 | uVar15 >> 8 & 0xff) * 0x10000;\n                }\n                local_44 = local_44 + 1;\n                uVar26 = (ulonglong)uVar15;\n              }\n              else {\n                local_30 = puVar18;\n                uVar26 = (*local_34)(iVar8,&local_44);\n              }\n              iVar8 = *param_1;\n              goto LAB_002e3970;\n            }\n            if (uVar19 != 0x20) {\n              if (uVar19 < 0x20) {\n                return 0;\n              }\n              if (1 < uVar19 - 0x1f01) {\n                return 0;\n              }\nLAB_002e34d8:\n              if ((char)*(byte *)local_44 < '\0') {\n                uVar26 = (*(code *)PTR_read_unsigned_LEB_128_x_004c2980)\n                                   ((uint *)((int)local_44 + 1),&local_48);\n                local_44 = (uint *)((int)local_44 + local_48);\n              }\n              else {\n                uVar26 = (ulonglong)*(byte *)local_44;\n                local_48 = 1;\n                local_44 = (uint *)((int)local_44 + 1);\n              }\n              goto LAB_002e382c;\n            }\n            pcVar25 = *(code **)(**(int **)(*param_1 + 8) + 0xc);\n            if (pcVar25 == (code *)PTR_is_big_endian_004c2950) {\n              iVar8 = (**(code **)(**(int **)(*param_1 + 8) + 0xe8))();\n            }\n            else {\n              iVar8 = (*pcVar25)();\n            }\n            local_60._4_4_ = (uint *)local_44[1];\n            local_60._0_4_ = (uint *)*local_44;\n            if (iVar8 == 0) {\n              uVar15 = (uint)local_60._4_4_ & 0xff;\n              uVar16 = (uint)local_60._4_4_ >> 8;\n              uVar2 = (uint)local_60._4_4_ >> 0x10;\n              uVar4 = (uint)local_60._4_4_ >> 0x18;\n              local_60._4_4_ =\n                   (uint *)(((((uint)local_60._0_4_ >> 0x10) << 0x18 |\n                             ((uint)local_60._0_4_ >> 0x18) << 0x10) >> 0x10) +\n                           (((uint)local_60._0_4_ & 0xff) << 8 | (uint)local_60._0_4_ >> 8 & 0xff) *\n                           0x10000);\n              local_60._0_4_ =\n                   (uint *)(((uVar2 << 0x18 | uVar4 << 0x10) >> 0x10) +\n                           (uVar15 << 8 | uVar16 & 0xff) * 0x10000);\n            }\n            local_44 = local_44 + 2;\n          }\n          uVar7 = CONCAT44(local_60._0_4_,local_60._4_4_);\n          if (uVar22 == 0x6e) goto LAB_002e313c;\n          uVar7 = CONCAT44(local_60._0_4_,local_60._4_4_);\n          uVar26 = CONCAT44(local_60._0_4_,local_60._4_4_);\n          if (uVar22 == 0x2007) goto LAB_002e313c;\n          goto joined_r0x002e3124;\n        }\n        if (uVar19 == 0x11) {\n          puVar9 = (uint *)((int)local_44 + 1);\n          uVar15 = (uint)*(byte *)local_44;\n          uVar26 = (ulonglong)uVar15;\n          local_44 = puVar9;\n          if (uVar22 == 0x31) goto LAB_002e30bc;\n          if (0x31 < uVar22) {\n            uVar26 = (ulonglong)uVar15;\n            if ((uVar22 != 0x6e) && (uVar26 = (ulonglong)uVar15, uVar22 != 0x2007)) {\n              uVar7 = (ulonglong)uVar15;\n              if (uVar22 != 0x47) goto LAB_002e313c;\n              param_1[0x18] = 0;\n              param_1[0x19] = uVar15;\n              uVar7 = (ulonglong)uVar15;\n              goto LAB_002e313c;\n            }\n            goto LAB_002e3858;\n          }\n          if (uVar22 == 1) {\n            param_1[8] = 0;\n            param_1[9] = uVar15;\n            uVar7 = (ulonglong)uVar15;\n            goto LAB_002e313c;\n          }\n          goto joined_r0x002e3124;\n        }\n        if (uVar19 < 0x12) {\n          if (uVar19 == 0xf) goto LAB_002e34d8;\n          if (uVar19 != 0x10) {\n            return 0;\n          }\n          iVar10 = *param_1;\n          iVar8 = *(int *)(iVar10 + 0x48);\n          if (*(uint *)(iVar10 + 0x50) < 3) {\n            iVar8 = *(int *)(iVar10 + 0x4c);\n          }\n          if (iVar8 == 4) {\n            pcVar25 = *(code **)(**(int **)(iVar10 + 8) + 0xc);\n            if (pcVar25 == (code *)PTR_is_big_endian_004c2950) {\n              local_30 = puVar18;\n              iVar8 = (**(code **)(**(int **)(iVar10 + 8) + 0xe8))();\n            }\n            else {\n              local_30 = puVar18;\n              iVar8 = (*pcVar25)();\n            }\n            uVar15 = *local_44;\n            if (iVar8 == 0) {\n              uVar15 = (((uVar15 >> 0x10) << 0x18 | (uVar15 >> 0x18) << 0x10) >> 0x10) +\n                       ((uVar15 & 0xff) << 8 | uVar15 >> 8 & 0xff) * 0x10000;\n            }\n            local_44 = local_44 + 1;\n            uVar26 = (ulonglong)uVar15;\n          }\n          else {\n            local_30 = puVar18;\n            uVar26 = (*local_34)(iVar10,&local_44);\n          }\n          local_50 = uVar26;\n          local_58 = (*local_3c)(*param_1);\n          uVar26 = local_50;\n        }\n        else {\n          if (uVar19 == 0x13) {\n            pcVar25 = *(code **)(**(int **)(*param_1 + 8) + 0xc);\n            if (pcVar25 == (code *)PTR_is_big_endian_004c2950) {\n              local_30 = puVar18;\n              iVar8 = (**(code **)(**(int **)(*param_1 + 8) + 0xe8))();\n            }\n            else {\n              local_30 = puVar18;\n              iVar8 = (*pcVar25)();\n            }\n            uVar15 = *local_44;\n            if (iVar8 == 0) {\n              uVar15 = (((uVar15 >> 0x10) << 0x18 | (uVar15 >> 0x18) << 0x10) >> 0x10) +\n                       ((uVar15 & 0xff) << 8 | uVar15 >> 8 & 0xff) * 0x10000;\n            }\n            local_44 = local_44 + 1;\n            iVar8 = *param_1;\n            uVar26 = (ulonglong)uVar15;\n          }\n          else {\n            if (uVar19 < 0x14) {\n              pcVar25 = *(code **)(**(int **)(*param_1 + 8) + 0xc);\n              if (pcVar25 == (code *)PTR_is_big_endian_004c2950) {\n                iVar8 = (**(code **)(**(int **)(*param_1 + 8) + 0xe8))();\n              }\n              else {\n                iVar8 = (*pcVar25)();\n              }\n              uVar6 = *(ushort *)local_44;\n              if (iVar8 == 0) {\n                uVar6 = CONCAT11(*(byte *)((int)local_44 + 1),*(byte *)local_44);\n              }\n              local_44 = (uint *)((int)local_44 + 2);\n              uVar26 = (ulonglong)uVar6;\n              goto joined_r0x002e3998;\n            }\n            pcVar25 = *(code **)(**(int **)(*param_1 + 8) + 0xc);\n            if (pcVar25 == (code *)PTR_is_big_endian_004c2950) {\n              local_30 = puVar18;\n              iVar8 = (**(code **)(**(int **)(*param_1 + 8) + 0xe8))();\n            }\n            else {\n              local_30 = puVar18;\n              iVar8 = (*pcVar25)();\n            }\n            uVar15 = local_44[1];\n            uVar16 = *local_44;\n            if (iVar8 == 0) {\n              uVar2 = uVar15 & 0xff;\n              uVar4 = uVar15 >> 8;\n              uVar3 = uVar15 >> 0x10;\n              uVar5 = uVar15 >> 0x18;\n              uVar15 = (((uVar16 >> 0x10) << 0x18 | (uVar16 >> 0x18) << 0x10) >> 0x10) +\n                       ((uVar16 & 0xff) << 8 | uVar16 >> 8 & 0xff) * 0x10000;\n              uVar16 = ((uVar3 << 0x18 | uVar5 << 0x10) >> 0x10) +\n                       (uVar2 << 8 | uVar4 & 0xff) * 0x10000;\n            }\n            uVar26 = CONCAT44(uVar16,uVar15);\n            local_44 = local_44 + 2;\n            iVar8 = *param_1;\n          }\nLAB_002e3970:\n          local_50 = uVar26;\n          local_58 = (*local_3c)(iVar8);\n          uVar26 = local_50;\n        }\njoined_r0x002e3998:\n        if (uVar22 == 0x31) {\nLAB_002e30bc:\n          *(ulonglong *)(param_1 + 0x1a) = uVar26;\n          uVar7 = uVar26;\n          goto LAB_002e313c;\n        }\n        if (uVar22 < 0x32) {\n          uVar7 = uVar26;\n          if (uVar22 != 1) goto LAB_002e313c;\nLAB_002e39b4:\n          uVar7 = uVar26;\n          if (local_58 != 0) goto LAB_002e313c;\n          *(ulonglong *)(param_1 + 8) = uVar26;\n          goto LAB_002e313c;\n        }\n        if ((uVar22 != 0x6e) && (uVar22 != 0x2007)) {\nLAB_002e339c:\n          uVar7 = uVar26;\n          if (uVar22 != 0x47) goto LAB_002e313c;\n          *(ulonglong *)(param_1 + 0x18) = uVar26;\n          goto LAB_002e313c;\n        }\n        goto LAB_002e3858;\n      }\n      if (uVar19 == 7) {\n        pcVar25 = *(code **)(**(int **)(*param_1 + 8) + 0xc);\n        if (pcVar25 == (code *)PTR_is_big_endian_004c2950) {\n          local_30 = puVar18;\n          iVar10 = (**(code **)(**(int **)(*param_1 + 8) + 0xe8))();\n        }\n        else {\n          local_30 = puVar18;\n          iVar10 = (*pcVar25)();\n        }\n        local_50._4_4_ = (uint *)local_44[1];\n        puVar9 = (uint *)*local_44;\n        if (iVar10 == 0) {\n          uVar15 = (uint)local_50._4_4_ & 0xff;\n          uVar16 = (uint)local_50._4_4_ >> 8;\n          uVar2 = (uint)local_50._4_4_ >> 0x10;\n          uVar4 = (uint)local_50._4_4_ >> 0x18;\n          local_50._4_4_ =\n               (uint *)(((((uint)puVar9 >> 0x10) << 0x18 | ((uint)puVar9 >> 0x18) << 0x10) >> 0x10)\n                       + (((uint)puVar9 & 0xff) << 8 | (uint)puVar9 >> 8 & 0xff) * 0x10000);\n          puVar9 = (uint *)(((uVar2 << 0x18 | uVar4 << 0x10) >> 0x10) +\n                           (uVar15 << 8 | uVar16 & 0xff) * 0x10000);\n        }\n        local_44 = local_44 + 2;\n        iVar10 = *param_1;\n        local_50._0_4_ = puVar9;\nLAB_002e3708:\n        local_58 = (*local_3c)(iVar10,puVar9,iVar8,local_30,local_40);\n        local_60._4_4_ = local_50._4_4_;\n        local_60._0_4_ = local_50._0_4_;\n        goto LAB_002e355c;\n      }\n      if (7 < uVar19) {\n        if (uVar19 == 10) {\n          local_60._0_4_ = (uint *)((int)local_44 + 1);\n          local_58 = (uint)*(byte *)local_44;\n          local_44 = (uint *)((int)local_60._0_4_ + local_58);\n          goto LAB_002e355c;\n        }\n        if (uVar19 < 0xb) {\n          if (uVar19 != 8) {\n            if (uVar19 != 9) {\n              return 0;\n            }\nLAB_002e32bc:\n            uVar15 = (uint)*(byte *)local_44;\n            pbVar14 = (byte *)((int)local_44 + 1);\n            if ((char)*(byte *)local_44 < '\0') {\n              (*(code *)PTR_read_unsigned_LEB_128_x_004c2980)(pbVar14,&local_48);\n              pbVar14 = (byte *)((int)local_44 + local_48);\n              uVar15 = extraout_v1_00;\n            }\n            else {\n              local_48 = 1;\n            }\n            uVar26 = CONCAT44(pbVar14,local_60._4_4_);\n            local_58 = uVar15;\n            local_44 = (uint *)((int)local_44 + uVar15 + local_48);\n            goto LAB_002e382c;\n          }\n          local_60._0_4_ = local_44;\n          local_30 = local_44;\n          local_48 = (*(code *)PTR_strlen_004c5b9c)(local_44);\n          uVar26 = CONCAT44(local_60._0_4_,local_60._4_4_);\n          local_44 = (uint *)((int)local_30 + local_48 + 1);\n          uVar7 = CONCAT44(local_60._0_4_,local_60._4_4_);\n          if (uVar22 == 0x31) goto LAB_002e313c;\n          if (0x31 < uVar22) {\n            if ((uVar22 != 0x6e) &&\n               (uVar7 = CONCAT44(local_60._0_4_,local_60._4_4_), uVar22 != 0x2007))\n            goto LAB_002e313c;\n            param_1[0x12] = (int)local_30;\n            uVar7 = uVar26;\n            goto LAB_002e313c;\n          }\nLAB_002e3118:\n          uVar7 = uVar26;\n          if (uVar22 == 1) goto LAB_002e313c;\njoined_r0x002e3124:\n          uVar7 = uVar26;\n          if (uVar22 != 3) goto LAB_002e313c;\n          local_60._0_4_ = (uint *)(uVar26 >> 0x20);\n          if (uVar19 == 8) {\n            param_1[0xf] = (int)local_60._0_4_;\n            goto LAB_002e313c;\n          }\n          if (uVar19 != 0xe) goto LAB_002e313c;\n          goto LAB_002e3284;\n        }\n        if (uVar19 < 0xd) {\n          uVar26 = (ulonglong)*(byte *)local_44;\n          local_44 = (uint *)((int)local_44 + 1);\nLAB_002e382c:\n          uVar7 = uVar26;\n          if (uVar22 == 0x31) goto LAB_002e313c;\n          if (uVar22 < 0x32) goto LAB_002e3118;\n        }\n        else {\n          bVar1 = *(byte *)local_44;\n          uVar15 = (uint)bVar1;\n          puVar9 = (uint *)((int)local_44 + 1);\n          if ((char)bVar1 < '\0') {\n            uVar26 = (*(code *)PTR_read_signed_LEB_128_x_004c297c)(puVar9,&local_48,uVar15);\n            puVar9 = (uint *)((int)local_44 + local_48);\n          }\n          else {\n            local_48 = 1;\n            uVar26 = (ulonglong)uVar15;\n            if ((bVar1 & 0x40) != 0) {\n              uVar26 = CONCAT44(0xffffffff,uVar15 | 0xffffff80);\n            }\n          }\n          local_44 = puVar9;\n          uVar7 = uVar26;\n          if (uVar22 == 0x31) goto LAB_002e313c;\n          if (uVar22 < 0x32) {\n            puVar9 = (uint *)param_1[0xc];\n            if (puVar9 != (uint *)param_1[0xd]) goto LAB_002e314c;\nLAB_002e2f98:\n            iVar17 = iVar17 + 8;\n            local_60 = uVar26;\n            std::\n            vector<gold::Dwarf_die::Attribute_value,std::allocator<gold::Dwarf_die::Attribute_value>>\n            ::_M_realloc_insert<gold::Dwarf_die::Attribute_value_const&>(local_38,puVar9,&local_68);\n            iVar8 = param_1[10];\n            if (iVar17 == iVar21) goto LAB_002e2fb8;\n            goto LAB_002e2db4;\n          }\n        }\n        if ((uVar22 != 0x6e) && (uVar7 = uVar26, uVar22 != 0x2007)) goto LAB_002e313c;\nLAB_002e3858:\n        local_60._0_4_ = (uint *)(uVar26 >> 0x20);\n        uVar7 = uVar26;\n        if (uVar19 == 8) {\n          param_1[0x12] = (int)local_60._0_4_;\n          goto LAB_002e313c;\n        }\n        if (uVar19 != 0xe) goto LAB_002e313c;\n        goto LAB_002e387c;\n      }\n      if (uVar19 == 4) {\n        pcVar25 = *(code **)(**(int **)(*param_1 + 8) + 0xc);\n        if (pcVar25 == (code *)PTR_is_big_endian_004c2950) {\n          iVar8 = (**(code **)(**(int **)(*param_1 + 8) + 0xe8))();\n        }\n        else {\n          iVar8 = (*pcVar25)();\n        }\n        local_58 = *local_44;\n        if (iVar8 == 0) {\n          local_58 = (((local_58 >> 0x10) << 0x18 | (local_58 >> 0x18) << 0x10) >> 0x10) +\n                     ((local_58 & 0xff) << 8 | local_58 >> 8 & 0xff) * 0x10000;\n        }\n        local_60._0_4_ = local_44 + 1;\n        local_44 = (uint *)((int)local_60._0_4_ + local_58);\nLAB_002e355c:\n        uVar26 = CONCAT44(local_60._0_4_,local_60._4_4_);\n        uVar7 = uVar26;\n        if (uVar22 == 0x31) goto LAB_002e313c;\n        if (uVar22 < 0x32) goto LAB_002e3118;\n        puVar9 = (uint *)param_1[0xc];\n      }\n      else {\n        if (4 < uVar19) {\n          if (uVar19 != 5) {\n            if (uVar19 != 6) {\n              return 0;\n            }\n            pcVar25 = *(code **)(**(int **)(*param_1 + 8) + 0xc);\n            if (pcVar25 == (code *)PTR_is_big_endian_004c2950) {\n              local_30 = puVar18;\n              iVar10 = (**(code **)(**(int **)(*param_1 + 8) + 0xe8))();\n            }\n            else {\n              local_30 = puVar18;\n              iVar10 = (*pcVar25)();\n            }\n            puVar9 = (uint *)*local_44;\n            if (iVar10 == 0) {\n              puVar9 = (uint *)(((((uint)puVar9 >> 0x10) << 0x18 | ((uint)puVar9 >> 0x18) << 0x10)\n                                >> 0x10) +\n                               (((uint)puVar9 & 0xff) << 8 | (uint)puVar9 >> 8 & 0xff) * 0x10000);\n            }\n            local_44 = local_44 + 1;\n            iVar10 = *param_1;\n            local_50._0_4_ = (uint *)0x0;\n            local_50._4_4_ = puVar9;\n            goto LAB_002e3708;\n          }\n          pcVar25 = *(code **)(**(int **)(*param_1 + 8) + 0xc);\n          if (pcVar25 == (code *)PTR_is_big_endian_004c2950) {\n            iVar8 = (**(code **)(**(int **)(*param_1 + 8) + 0xe8))();\n          }\n          else {\n            iVar8 = (*pcVar25)();\n          }\n          uVar6 = *(ushort *)local_44;\n          if (iVar8 == 0) {\n            uVar6 = CONCAT11(*(byte *)((int)local_44 + 1),*(byte *)local_44);\n          }\n          local_60._4_4_ = (uint *)(uint)uVar6;\n          local_44 = (uint *)((int)local_44 + 2);\n          local_60._0_4_ = (uint *)0x0;\n          goto LAB_002e355c;\n        }\n        if (uVar19 != 1) {\n          if (uVar19 != 3) {\n            return 0;\n          }\n          pcVar25 = *(code **)(**(int **)(*param_1 + 8) + 0xc);\n          if (pcVar25 == (code *)PTR_is_big_endian_004c2950) {\n            iVar8 = (**(code **)(**(int **)(*param_1 + 8) + 0xe8))();\n          }\n          else {\n            iVar8 = (*pcVar25)();\n          }\n          uVar6 = *(ushort *)local_44;\n          if (iVar8 == 0) {\n            uVar6 = CONCAT11(*(byte *)((int)local_44 + 1),*(byte *)local_44);\n          }\n          local_58 = (uint)uVar6;\n          local_60._0_4_ = (uint *)((int)local_44 + 2);\n          local_44 = (uint *)((int)local_60._0_4_ + local_58);\n          goto LAB_002e355c;\n        }\n        iVar8 = *param_1;\n        if (*(int *)(iVar8 + 0x4c) == 4) {\n          pcVar25 = *(code **)(**(int **)(iVar8 + 8) + 0xc);\n          if (pcVar25 == (code *)PTR_is_big_endian_004c2950) {\n            local_30 = puVar18;\n            iVar8 = (**(code **)(**(int **)(iVar8 + 8) + 0xe8))();\n          }\n          else {\n            local_30 = puVar18;\n            iVar8 = (*pcVar25)();\n          }\n          uVar15 = *local_44;\n          if (iVar8 == 0) {\n            uVar15 = (((uVar15 >> 0x10) << 0x18 | (uVar15 >> 0x18) << 0x10) >> 0x10) +\n                     ((uVar15 & 0xff) << 8 | uVar15 >> 8 & 0xff) * 0x10000;\n          }\n          local_44 = local_44 + 1;\n          uVar26 = (ulonglong)uVar15;\n        }\n        else {\n          local_30 = puVar18;\n          uVar26 = (*local_34)(iVar8,&local_44);\n        }\n        local_50 = uVar26;\n        local_58 = (*local_3c)(*param_1);\n        uVar26 = local_50;\n        if (uVar22 == 0x31) goto LAB_002e30bc;\n        if (uVar22 < 0x32) {\n          if (uVar22 != 1) goto joined_r0x002e3124;\n          goto LAB_002e39b4;\n        }\n        uVar7 = local_50;\n        if (uVar22 == 0x6e) goto LAB_002e313c;\n        if (uVar22 != 0x2007) goto LAB_002e339c;\n        puVar9 = (uint *)param_1[0xc];\n      }\n      while( true ) {\n        if (puVar9 == (uint *)param_1[0xd]) goto LAB_002e2f98;\nLAB_002e314c:\n        local_60._0_4_ = (uint *)(uVar26 >> 0x20);\n        local_60._4_4_ = (uint *)uVar26;\n        iVar17 = iVar17 + 8;\n        puVar9[1] = local_64;\n        puVar9[2] = (uint)local_60._0_4_;\n        *puVar9 = local_68;\n        puVar9[3] = (uint)local_60._4_4_;\n        puVar9[4] = local_58;\n        puVar9[5] = local_54;\n        param_1[0xc] = (int)(puVar9 + 6);\n        iVar8 = param_1[10];\n        local_60 = uVar26;\n        if (iVar17 == iVar21) goto LAB_002e2fb8;\n        puVar9 = (uint *)(*(int *)(iVar8 + 8) + iVar17);\n        uVar19 = puVar9[1];\n        uVar22 = *puVar9;\n        if (uVar19 != 0x16) goto LAB_002e2dd0;\nLAB_002e31a8:\n        uVar19 = (uint)*(byte *)local_44;\n        puVar9 = (uint *)((int)local_44 + 1);\n        if ((char)*(byte *)local_44 < '\0') {\n          local_60 = uVar26;\n          (*(code *)PTR_read_unsigned_LEB_128_x_004c2980)(puVar9,&local_48,uVar19);\n          puVar9 = (uint *)((int)local_44 + local_48);\n          uVar19 = extraout_v1;\n          uVar26 = local_60;\n        }\n        else {\n          local_48 = 1;\n        }\n        puVar11 = (uint *)((int)puVar9 - iVar20);\n        puVar18 = (uint *)((int)puVar11 + param_1[3]);\n        iVar8 = (uint)(puVar18 < puVar11) + ((int)puVar11 >> 0x1f) + param_1[2];\n        local_64 = uVar19;\n        local_44 = puVar9;\n        if (uVar19 != 0xe) break;\nLAB_002e31fc:\n        local_58 = 0;\n        iVar8 = *param_1;\n        local_68 = uVar22;\n        local_30 = puVar18;\n        local_60 = uVar26;\n        if (*(int *)(iVar8 + 0x48) == 4) {\n          pcVar25 = *(code **)(**(int **)(iVar8 + 8) + 0xc);\n          if (pcVar25 == (code *)PTR_is_big_endian_004c2950) {\n            iVar8 = (**(code **)(**(int **)(iVar8 + 8) + 0xe8))();\n          }\n          else {\n            iVar8 = (*pcVar25)();\n          }\n          uVar19 = *local_44;\n          if (iVar8 == 0) {\n            uVar19 = (((uVar19 >> 0x10) << 0x18 | (uVar19 >> 0x18) << 0x10) >> 0x10) +\n                     ((uVar19 & 0xff) << 8 | uVar19 >> 8 & 0xff) * 0x10000;\n          }\n          local_44 = local_44 + 1;\n          uVar26 = (ulonglong)uVar19;\n        }\n        else {\n          uVar26 = (*local_34)(iVar8,&local_44);\n        }\n        local_50 = uVar26;\n        local_58 = (*local_3c)(*param_1);\n        uVar7 = local_50;\n        if (uVar22 != 0x31) {\n          uVar26 = local_50;\n          if (uVar22 < 0x32) {\n            if ((uVar22 != 1) && (uVar22 == 3)) {\nLAB_002e3284:\n              param_1[0x16] = local_58;\n              *(ulonglong *)(param_1 + 0x10) = uVar26;\n              uVar7 = uVar26;\n            }\n          }\n          else {\n            if (uVar22 == 0x6e) {\nLAB_002e387c:\n              param_1[0x16] = local_58;\n            }\n            else {\n              if (uVar22 != 0x2007) goto LAB_002e313c;\n              param_1[0x16] = local_58;\n            }\n            *(ulonglong *)(param_1 + 0x14) = uVar26;\n            uVar7 = uVar26;\n          }\n        }\nLAB_002e313c:\n        puVar9 = (uint *)param_1[0xc];\n        uVar26 = uVar7;\n      }\n    } while( true );\n  }" if (parenthesized_expression "((uint)((param_1[0xd] - (int)puVar23 >> 3) * -0x55555555) < uVar19)" ( (binary_expression "(uint)((param_1[0xd] - (int)puVar23 >> 3) * -0x55555555) < uVar19" (call_expression "(uint)((param_1[0xd] - (int)puVar23 >> 3) * -0x55555555)" (parenthesized_expression "(uint)" ( identifier )) (argument_list "((param_1[0xd] - (int)puVar23 >> 3) * -0x55555555)" ( (binary_expression "(param_1[0xd] - (int)puVar23 >> 3) * -0x55555555" (parenthesized_expression "(param_1[0xd] - (int)puVar23 >> 3)" ( (binary_expression "param_1[0xd] - (int)puVar23 >> 3" (binary_expression "param_1[0xd] - (int)puVar23" (subscript_expression "param_1[0xd]" identifier [ number_literal ]) - (cast_expression "(int)puVar23" ( (type_descriptor "int" primitive_type) ) identifier)) >> number_literal) )) * number_literal) ))) < identifier) )) (compound_statement "{\n    puVar13 = (undefined8 *)param_1[0xc];\n    iVar17 = (int)puVar13 - (int)puVar23;\n    if (uVar19 == 0) {\n      iVar10 = 0;\n      puVar24 = puVar23;\n    }\n    else {\n      local_40 = puVar13;\n      iVar10 = (*(code *)PTR_operator_new_004c13a8)(uVar19 * 0x18);\n      puVar13 = local_40;\n      puVar24 = (undefined8 *)param_1[0xb];\n    }\n    if (puVar23 != puVar13) {\n      (*(code *)PTR_memmove_004c5af8)(iVar10,puVar23,iVar17);\n    }\n    if (puVar24 != (undefined8 *)0x0) {\n      (*(code *)PTR_operator_delete_004c12fc)(puVar24);\n    }\n    iVar8 = param_1[10];\n    param_1[0xb] = iVar10;\n    param_1[0xc] = iVar10 + iVar17;\n    param_1[0xd] = iVar10 + uVar19 * 0x18;\n    if (uVar19 != 0) goto LAB_002e2d90;\nLAB_002e2fb8:\n    if (iVar8 == 0) {\n      uVar12 = (*(code *)PTR_do_gold_unreachable_004c1a30)\n                         (PTR_s_in_a_linker_script_004c191c + 0x7108,0x206,\n                          PTR_s_in_a_linker_script_004c191c + 0x7404);\n      return uVar12;\n    }\n    iVar17 = param_1[3];\n  }" { (expression_statement "puVar13 = (undefined8 *)param_1[0xc];" (assignment_expression "puVar13 = (undefined8 *)param_1[0xc]" identifier = (cast_expression "(undefined8 *)param_1[0xc]" ( (type_descriptor "undefined8 *" type_identifier (abstract_pointer_declarator "*" *)) ) (subscript_expression "param_1[0xc]" identifier [ number_literal ]))) ;) (expression_statement "iVar17 = (int)puVar13 - (int)puVar23;" (assignment_expression "iVar17 = (int)puVar13 - (int)puVar23" identifier = (binary_expression "(int)puVar13 - (int)puVar23" (cast_expression "(int)puVar13" ( (type_descriptor "int" primitive_type) ) identifier) - (cast_expression "(int)puVar23" ( (type_descriptor "int" primitive_type) ) identifier))) ;) (if_statement "if (uVar19 == 0) {\n      iVar10 = 0;\n      puVar24 = puVar23;\n    }\n    else {\n      local_40 = puVar13;\n      iVar10 = (*(code *)PTR_operator_new_004c13a8)(uVar19 * 0x18);\n      puVar13 = local_40;\n      puVar24 = (undefined8 *)param_1[0xb];\n    }" if (parenthesized_expression "(uVar19 == 0)" ( (binary_expression "uVar19 == 0" identifier == number_literal) )) (compound_statement "{\n      iVar10 = 0;\n      puVar24 = puVar23;\n    }" { (expression_statement "iVar10 = 0;" (assignment_expression "iVar10 = 0" identifier = number_literal) ;) (expression_statement "puVar24 = puVar23;" (assignment_expression "puVar24 = puVar23" identifier = identifier) ;) }) (else_clause "else {\n      local_40 = puVar13;\n      iVar10 = (*(code *)PTR_operator_new_004c13a8)(uVar19 * 0x18);\n      puVar13 = local_40;\n      puVar24 = (undefined8 *)param_1[0xb];\n    }" else (compound_statement "{\n      local_40 = puVar13;\n      iVar10 = (*(code *)PTR_operator_new_004c13a8)(uVar19 * 0x18);\n      puVar13 = local_40;\n      puVar24 = (undefined8 *)param_1[0xb];\n    }" { (expression_statement "local_40 = puVar13;" (assignment_expression "local_40 = puVar13" identifier = identifier) ;) (expression_statement "iVar10 = (*(code *)PTR_operator_new_004c13a8)(uVar19 * 0x18);" (assignment_expression "iVar10 = (*(code *)PTR_operator_new_004c13a8)(uVar19 * 0x18)" identifier = (call_expression "(*(code *)PTR_operator_new_004c13a8)(uVar19 * 0x18)" (parenthesized_expression "(*(code *)PTR_operator_new_004c13a8)" ( (pointer_expression "*(code *)PTR_operator_new_004c13a8" * (cast_expression "(code *)PTR_operator_new_004c13a8" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(uVar19 * 0x18)" ( (binary_expression "uVar19 * 0x18" identifier * number_literal) )))) ;) (expression_statement "puVar13 = local_40;" (assignment_expression "puVar13 = local_40" identifier = identifier) ;) (expression_statement "puVar24 = (undefined8 *)param_1[0xb];" (assignment_expression "puVar24 = (undefined8 *)param_1[0xb]" identifier = (cast_expression "(undefined8 *)param_1[0xb]" ( (type_descriptor "undefined8 *" type_identifier (abstract_pointer_declarator "*" *)) ) (subscript_expression "param_1[0xb]" identifier [ number_literal ]))) ;) }))) (if_statement "if (puVar23 != puVar13) {\n      (*(code *)PTR_memmove_004c5af8)(iVar10,puVar23,iVar17);\n    }" if (parenthesized_expression "(puVar23 != puVar13)" ( (binary_expression "puVar23 != puVar13" identifier != identifier) )) (compound_statement "{\n      (*(code *)PTR_memmove_004c5af8)(iVar10,puVar23,iVar17);\n    }" { (expression_statement "(*(code *)PTR_memmove_004c5af8)(iVar10,puVar23,iVar17);" (call_expression "(*(code *)PTR_memmove_004c5af8)(iVar10,puVar23,iVar17)" (parenthesized_expression "(*(code *)PTR_memmove_004c5af8)" ( (pointer_expression "*(code *)PTR_memmove_004c5af8" * (cast_expression "(code *)PTR_memmove_004c5af8" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(iVar10,puVar23,iVar17)" ( identifier , identifier , identifier ))) ;) })) (if_statement "if (puVar24 != (undefined8 *)0x0) {\n      (*(code *)PTR_operator_delete_004c12fc)(puVar24);\n    }" if (parenthesized_expression "(puVar24 != (undefined8 *)0x0)" ( (binary_expression "puVar24 != (undefined8 *)0x0" identifier != (cast_expression "(undefined8 *)0x0" ( (type_descriptor "undefined8 *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n      (*(code *)PTR_operator_delete_004c12fc)(puVar24);\n    }" { (expression_statement "(*(code *)PTR_operator_delete_004c12fc)(puVar24);" (call_expression "(*(code *)PTR_operator_delete_004c12fc)(puVar24)" (parenthesized_expression "(*(code *)PTR_operator_delete_004c12fc)" ( (pointer_expression "*(code *)PTR_operator_delete_004c12fc" * (cast_expression "(code *)PTR_operator_delete_004c12fc" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(puVar24)" ( identifier ))) ;) })) (expression_statement "iVar8 = param_1[10];" (assignment_expression "iVar8 = param_1[10]" identifier = (subscript_expression "param_1[10]" identifier [ number_literal ])) ;) (expression_statement "param_1[0xb] = iVar10;" (assignment_expression "param_1[0xb] = iVar10" (subscript_expression "param_1[0xb]" identifier [ number_literal ]) = identifier) ;) (expression_statement "param_1[0xc] = iVar10 + iVar17;" (assignment_expression "param_1[0xc] = iVar10 + iVar17" (subscript_expression "param_1[0xc]" identifier [ number_literal ]) = (binary_expression "iVar10 + iVar17" identifier + identifier)) ;) (expression_statement "param_1[0xd] = iVar10 + uVar19 * 0x18;" (assignment_expression "param_1[0xd] = iVar10 + uVar19 * 0x18" (subscript_expression "param_1[0xd]" identifier [ number_literal ]) = (binary_expression "iVar10 + uVar19 * 0x18" identifier + (binary_expression "uVar19 * 0x18" identifier * number_literal))) ;) (if_statement "if (uVar19 != 0) goto LAB_002e2d90;" if (parenthesized_expression "(uVar19 != 0)" ( (binary_expression "uVar19 != 0" identifier != number_literal) )) (goto_statement "goto LAB_002e2d90;" goto statement_identifier ;)) (labeled_statement "LAB_002e2fb8:\n    if (iVar8 == 0) {\n      uVar12 = (*(code *)PTR_do_gold_unreachable_004c1a30)\n                         (PTR_s_in_a_linker_script_004c191c + 0x7108,0x206,\n                          PTR_s_in_a_linker_script_004c191c + 0x7404);\n      return uVar12;\n    }" statement_identifier : (if_statement "if (iVar8 == 0) {\n      uVar12 = (*(code *)PTR_do_gold_unreachable_004c1a30)\n                         (PTR_s_in_a_linker_script_004c191c + 0x7108,0x206,\n                          PTR_s_in_a_linker_script_004c191c + 0x7404);\n      return uVar12;\n    }" if (parenthesized_expression "(iVar8 == 0)" ( (binary_expression "iVar8 == 0" identifier == number_literal) )) (compound_statement "{\n      uVar12 = (*(code *)PTR_do_gold_unreachable_004c1a30)\n                         (PTR_s_in_a_linker_script_004c191c + 0x7108,0x206,\n                          PTR_s_in_a_linker_script_004c191c + 0x7404);\n      return uVar12;\n    }" { (expression_statement "uVar12 = (*(code *)PTR_do_gold_unreachable_004c1a30)\n                         (PTR_s_in_a_linker_script_004c191c + 0x7108,0x206,\n                          PTR_s_in_a_linker_script_004c191c + 0x7404);" (assignment_expression "uVar12 = (*(code *)PTR_do_gold_unreachable_004c1a30)\n                         (PTR_s_in_a_linker_script_004c191c + 0x7108,0x206,\n                          PTR_s_in_a_linker_script_004c191c + 0x7404)" identifier = (call_expression "(*(code *)PTR_do_gold_unreachable_004c1a30)\n                         (PTR_s_in_a_linker_script_004c191c + 0x7108,0x206,\n                          PTR_s_in_a_linker_script_004c191c + 0x7404)" (parenthesized_expression "(*(code *)PTR_do_gold_unreachable_004c1a30)" ( (pointer_expression "*(code *)PTR_do_gold_unreachable_004c1a30" * (cast_expression "(code *)PTR_do_gold_unreachable_004c1a30" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(PTR_s_in_a_linker_script_004c191c + 0x7108,0x206,\n                          PTR_s_in_a_linker_script_004c191c + 0x7404)" ( (binary_expression "PTR_s_in_a_linker_script_004c191c + 0x7108" identifier + number_literal) , number_literal , (binary_expression "PTR_s_in_a_linker_script_004c191c + 0x7404" identifier + number_literal) )))) ;) (return_statement "return uVar12;" return identifier ;) }))) (expression_statement "iVar17 = param_1[3];" (assignment_expression "iVar17 = param_1[3]" identifier = (subscript_expression "param_1[3]" identifier [ number_literal ])) ;) }) (else_clause "else if (uVar19 != 0) {\nLAB_002e2d90:\n    local_3c = (code *)PTR_lookup_reloc_004c2994;\n    iVar17 = 0;\n    local_34 = (code *)PTR_read_from_pointer<64>_004c2998;\n    local_40 = &local_50;\nLAB_002e2db4:\n    puVar9 = (uint *)(*(int *)(iVar8 + 8) + iVar17);\n    uVar19 = puVar9[1];\n    uVar22 = *puVar9;\n    uVar26 = local_60;\n    if (uVar19 == 0x16) goto LAB_002e31a8;\nLAB_002e2dd0:\n    puVar9 = (uint *)((int)local_44 - iVar20);\n    puVar18 = (uint *)((int)puVar9 + param_1[3]);\n    iVar8 = (uint)(puVar18 < puVar9) + ((int)puVar9 >> 0x1f) + param_1[2];\n    local_64 = uVar19;\n    if (uVar19 == 0xe) goto LAB_002e31fc;\n    do {\n      local_60._4_4_ = (uint *)uVar26;\n      local_58 = 0;\n      local_68 = uVar22;\n      local_64 = uVar19;\n      local_60 = uVar26;\n      if (0xe < uVar19) {\n        if (uVar19 == 0x15) {\n          if ((char)*(byte *)local_44 < '\0') {\n            uVar26 = (*(code *)PTR_read_unsigned_LEB_128_x_004c2980)\n                               ((uint *)((int)local_44 + 1),&local_48);\n            local_44 = (uint *)((int)local_44 + local_48);\n          }\n          else {\n            uVar26 = (ulonglong)*(byte *)local_44;\n            local_48 = 1;\n            local_44 = (uint *)((int)local_44 + 1);\n          }\n          goto joined_r0x002e3998;\n        }\n        if (0x15 < uVar19) {\n          if (uVar19 == 0x19) {\n            local_60._4_4_ = (uint *)0x1;\n            local_60._0_4_ = (uint *)0x0;\n          }\n          else {\n            if (uVar19 < 0x1a) {\n              if (uVar19 != 0x17) {\n                if (uVar19 != 0x18) {\n                  return 0;\n                }\n                goto LAB_002e32bc;\n              }\n              iVar8 = *param_1;\n              if (*(int *)(iVar8 + 0x48) == 4) {\n                pcVar25 = *(code **)(**(int **)(iVar8 + 8) + 0xc);\n                if (pcVar25 == (code *)PTR_is_big_endian_004c2950) {\n                  local_30 = puVar18;\n                  iVar8 = (**(code **)(**(int **)(iVar8 + 8) + 0xe8))();\n                }\n                else {\n                  local_30 = puVar18;\n                  iVar8 = (*pcVar25)();\n                }\n                uVar15 = *local_44;\n                if (iVar8 == 0) {\n                  uVar15 = (((uVar15 >> 0x10) << 0x18 | (uVar15 >> 0x18) << 0x10) >> 0x10) +\n                           ((uVar15 & 0xff) << 8 | uVar15 >> 8 & 0xff) * 0x10000;\n                }\n                local_44 = local_44 + 1;\n                uVar26 = (ulonglong)uVar15;\n              }\n              else {\n                local_30 = puVar18;\n                uVar26 = (*local_34)(iVar8,&local_44);\n              }\n              iVar8 = *param_1;\n              goto LAB_002e3970;\n            }\n            if (uVar19 != 0x20) {\n              if (uVar19 < 0x20) {\n                return 0;\n              }\n              if (1 < uVar19 - 0x1f01) {\n                return 0;\n              }\nLAB_002e34d8:\n              if ((char)*(byte *)local_44 < '\0') {\n                uVar26 = (*(code *)PTR_read_unsigned_LEB_128_x_004c2980)\n                                   ((uint *)((int)local_44 + 1),&local_48);\n                local_44 = (uint *)((int)local_44 + local_48);\n              }\n              else {\n                uVar26 = (ulonglong)*(byte *)local_44;\n                local_48 = 1;\n                local_44 = (uint *)((int)local_44 + 1);\n              }\n              goto LAB_002e382c;\n            }\n            pcVar25 = *(code **)(**(int **)(*param_1 + 8) + 0xc);\n            if (pcVar25 == (code *)PTR_is_big_endian_004c2950) {\n              iVar8 = (**(code **)(**(int **)(*param_1 + 8) + 0xe8))();\n            }\n            else {\n              iVar8 = (*pcVar25)();\n            }\n            local_60._4_4_ = (uint *)local_44[1];\n            local_60._0_4_ = (uint *)*local_44;\n            if (iVar8 == 0) {\n              uVar15 = (uint)local_60._4_4_ & 0xff;\n              uVar16 = (uint)local_60._4_4_ >> 8;\n              uVar2 = (uint)local_60._4_4_ >> 0x10;\n              uVar4 = (uint)local_60._4_4_ >> 0x18;\n              local_60._4_4_ =\n                   (uint *)(((((uint)local_60._0_4_ >> 0x10) << 0x18 |\n                             ((uint)local_60._0_4_ >> 0x18) << 0x10) >> 0x10) +\n                           (((uint)local_60._0_4_ & 0xff) << 8 | (uint)local_60._0_4_ >> 8 & 0xff) *\n                           0x10000);\n              local_60._0_4_ =\n                   (uint *)(((uVar2 << 0x18 | uVar4 << 0x10) >> 0x10) +\n                           (uVar15 << 8 | uVar16 & 0xff) * 0x10000);\n            }\n            local_44 = local_44 + 2;\n          }\n          uVar7 = CONCAT44(local_60._0_4_,local_60._4_4_);\n          if (uVar22 == 0x6e) goto LAB_002e313c;\n          uVar7 = CONCAT44(local_60._0_4_,local_60._4_4_);\n          uVar26 = CONCAT44(local_60._0_4_,local_60._4_4_);\n          if (uVar22 == 0x2007) goto LAB_002e313c;\n          goto joined_r0x002e3124;\n        }\n        if (uVar19 == 0x11) {\n          puVar9 = (uint *)((int)local_44 + 1);\n          uVar15 = (uint)*(byte *)local_44;\n          uVar26 = (ulonglong)uVar15;\n          local_44 = puVar9;\n          if (uVar22 == 0x31) goto LAB_002e30bc;\n          if (0x31 < uVar22) {\n            uVar26 = (ulonglong)uVar15;\n            if ((uVar22 != 0x6e) && (uVar26 = (ulonglong)uVar15, uVar22 != 0x2007)) {\n              uVar7 = (ulonglong)uVar15;\n              if (uVar22 != 0x47) goto LAB_002e313c;\n              param_1[0x18] = 0;\n              param_1[0x19] = uVar15;\n              uVar7 = (ulonglong)uVar15;\n              goto LAB_002e313c;\n            }\n            goto LAB_002e3858;\n          }\n          if (uVar22 == 1) {\n            param_1[8] = 0;\n            param_1[9] = uVar15;\n            uVar7 = (ulonglong)uVar15;\n            goto LAB_002e313c;\n          }\n          goto joined_r0x002e3124;\n        }\n        if (uVar19 < 0x12) {\n          if (uVar19 == 0xf) goto LAB_002e34d8;\n          if (uVar19 != 0x10) {\n            return 0;\n          }\n          iVar10 = *param_1;\n          iVar8 = *(int *)(iVar10 + 0x48);\n          if (*(uint *)(iVar10 + 0x50) < 3) {\n            iVar8 = *(int *)(iVar10 + 0x4c);\n          }\n          if (iVar8 == 4) {\n            pcVar25 = *(code **)(**(int **)(iVar10 + 8) + 0xc);\n            if (pcVar25 == (code *)PTR_is_big_endian_004c2950) {\n              local_30 = puVar18;\n              iVar8 = (**(code **)(**(int **)(iVar10 + 8) + 0xe8))();\n            }\n            else {\n              local_30 = puVar18;\n              iVar8 = (*pcVar25)();\n            }\n            uVar15 = *local_44;\n            if (iVar8 == 0) {\n              uVar15 = (((uVar15 >> 0x10) << 0x18 | (uVar15 >> 0x18) << 0x10) >> 0x10) +\n                       ((uVar15 & 0xff) << 8 | uVar15 >> 8 & 0xff) * 0x10000;\n            }\n            local_44 = local_44 + 1;\n            uVar26 = (ulonglong)uVar15;\n          }\n          else {\n            local_30 = puVar18;\n            uVar26 = (*local_34)(iVar10,&local_44);\n          }\n          local_50 = uVar26;\n          local_58 = (*local_3c)(*param_1);\n          uVar26 = local_50;\n        }\n        else {\n          if (uVar19 == 0x13) {\n            pcVar25 = *(code **)(**(int **)(*param_1 + 8) + 0xc);\n            if (pcVar25 == (code *)PTR_is_big_endian_004c2950) {\n              local_30 = puVar18;\n              iVar8 = (**(code **)(**(int **)(*param_1 + 8) + 0xe8))();\n            }\n            else {\n              local_30 = puVar18;\n              iVar8 = (*pcVar25)();\n            }\n            uVar15 = *local_44;\n            if (iVar8 == 0) {\n              uVar15 = (((uVar15 >> 0x10) << 0x18 | (uVar15 >> 0x18) << 0x10) >> 0x10) +\n                       ((uVar15 & 0xff) << 8 | uVar15 >> 8 & 0xff) * 0x10000;\n            }\n            local_44 = local_44 + 1;\n            iVar8 = *param_1;\n            uVar26 = (ulonglong)uVar15;\n          }\n          else {\n            if (uVar19 < 0x14) {\n              pcVar25 = *(code **)(**(int **)(*param_1 + 8) + 0xc);\n              if (pcVar25 == (code *)PTR_is_big_endian_004c2950) {\n                iVar8 = (**(code **)(**(int **)(*param_1 + 8) + 0xe8))();\n              }\n              else {\n                iVar8 = (*pcVar25)();\n              }\n              uVar6 = *(ushort *)local_44;\n              if (iVar8 == 0) {\n                uVar6 = CONCAT11(*(byte *)((int)local_44 + 1),*(byte *)local_44);\n              }\n              local_44 = (uint *)((int)local_44 + 2);\n              uVar26 = (ulonglong)uVar6;\n              goto joined_r0x002e3998;\n            }\n            pcVar25 = *(code **)(**(int **)(*param_1 + 8) + 0xc);\n            if (pcVar25 == (code *)PTR_is_big_endian_004c2950) {\n              local_30 = puVar18;\n              iVar8 = (**(code **)(**(int **)(*param_1 + 8) + 0xe8))();\n            }\n            else {\n              local_30 = puVar18;\n              iVar8 = (*pcVar25)();\n            }\n            uVar15 = local_44[1];\n            uVar16 = *local_44;\n            if (iVar8 == 0) {\n              uVar2 = uVar15 & 0xff;\n              uVar4 = uVar15 >> 8;\n              uVar3 = uVar15 >> 0x10;\n              uVar5 = uVar15 >> 0x18;\n              uVar15 = (((uVar16 >> 0x10) << 0x18 | (uVar16 >> 0x18) << 0x10) >> 0x10) +\n                       ((uVar16 & 0xff) << 8 | uVar16 >> 8 & 0xff) * 0x10000;\n              uVar16 = ((uVar3 << 0x18 | uVar5 << 0x10) >> 0x10) +\n                       (uVar2 << 8 | uVar4 & 0xff) * 0x10000;\n            }\n            uVar26 = CONCAT44(uVar16,uVar15);\n            local_44 = local_44 + 2;\n            iVar8 = *param_1;\n          }\nLAB_002e3970:\n          local_50 = uVar26;\n          local_58 = (*local_3c)(iVar8);\n          uVar26 = local_50;\n        }\njoined_r0x002e3998:\n        if (uVar22 == 0x31) {\nLAB_002e30bc:\n          *(ulonglong *)(param_1 + 0x1a) = uVar26;\n          uVar7 = uVar26;\n          goto LAB_002e313c;\n        }\n        if (uVar22 < 0x32) {\n          uVar7 = uVar26;\n          if (uVar22 != 1) goto LAB_002e313c;\nLAB_002e39b4:\n          uVar7 = uVar26;\n          if (local_58 != 0) goto LAB_002e313c;\n          *(ulonglong *)(param_1 + 8) = uVar26;\n          goto LAB_002e313c;\n        }\n        if ((uVar22 != 0x6e) && (uVar22 != 0x2007)) {\nLAB_002e339c:\n          uVar7 = uVar26;\n          if (uVar22 != 0x47) goto LAB_002e313c;\n          *(ulonglong *)(param_1 + 0x18) = uVar26;\n          goto LAB_002e313c;\n        }\n        goto LAB_002e3858;\n      }\n      if (uVar19 == 7) {\n        pcVar25 = *(code **)(**(int **)(*param_1 + 8) + 0xc);\n        if (pcVar25 == (code *)PTR_is_big_endian_004c2950) {\n          local_30 = puVar18;\n          iVar10 = (**(code **)(**(int **)(*param_1 + 8) + 0xe8))();\n        }\n        else {\n          local_30 = puVar18;\n          iVar10 = (*pcVar25)();\n        }\n        local_50._4_4_ = (uint *)local_44[1];\n        puVar9 = (uint *)*local_44;\n        if (iVar10 == 0) {\n          uVar15 = (uint)local_50._4_4_ & 0xff;\n          uVar16 = (uint)local_50._4_4_ >> 8;\n          uVar2 = (uint)local_50._4_4_ >> 0x10;\n          uVar4 = (uint)local_50._4_4_ >> 0x18;\n          local_50._4_4_ =\n               (uint *)(((((uint)puVar9 >> 0x10) << 0x18 | ((uint)puVar9 >> 0x18) << 0x10) >> 0x10)\n                       + (((uint)puVar9 & 0xff) << 8 | (uint)puVar9 >> 8 & 0xff) * 0x10000);\n          puVar9 = (uint *)(((uVar2 << 0x18 | uVar4 << 0x10) >> 0x10) +\n                           (uVar15 << 8 | uVar16 & 0xff) * 0x10000);\n        }\n        local_44 = local_44 + 2;\n        iVar10 = *param_1;\n        local_50._0_4_ = puVar9;\nLAB_002e3708:\n        local_58 = (*local_3c)(iVar10,puVar9,iVar8,local_30,local_40);\n        local_60._4_4_ = local_50._4_4_;\n        local_60._0_4_ = local_50._0_4_;\n        goto LAB_002e355c;\n      }\n      if (7 < uVar19) {\n        if (uVar19 == 10) {\n          local_60._0_4_ = (uint *)((int)local_44 + 1);\n          local_58 = (uint)*(byte *)local_44;\n          local_44 = (uint *)((int)local_60._0_4_ + local_58);\n          goto LAB_002e355c;\n        }\n        if (uVar19 < 0xb) {\n          if (uVar19 != 8) {\n            if (uVar19 != 9) {\n              return 0;\n            }\nLAB_002e32bc:\n            uVar15 = (uint)*(byte *)local_44;\n            pbVar14 = (byte *)((int)local_44 + 1);\n            if ((char)*(byte *)local_44 < '\0') {\n              (*(code *)PTR_read_unsigned_LEB_128_x_004c2980)(pbVar14,&local_48);\n              pbVar14 = (byte *)((int)local_44 + local_48);\n              uVar15 = extraout_v1_00;\n            }\n            else {\n              local_48 = 1;\n            }\n            uVar26 = CONCAT44(pbVar14,local_60._4_4_);\n            local_58 = uVar15;\n            local_44 = (uint *)((int)local_44 + uVar15 + local_48);\n            goto LAB_002e382c;\n          }\n          local_60._0_4_ = local_44;\n          local_30 = local_44;\n          local_48 = (*(code *)PTR_strlen_004c5b9c)(local_44);\n          uVar26 = CONCAT44(local_60._0_4_,local_60._4_4_);\n          local_44 = (uint *)((int)local_30 + local_48 + 1);\n          uVar7 = CONCAT44(local_60._0_4_,local_60._4_4_);\n          if (uVar22 == 0x31) goto LAB_002e313c;\n          if (0x31 < uVar22) {\n            if ((uVar22 != 0x6e) &&\n               (uVar7 = CONCAT44(local_60._0_4_,local_60._4_4_), uVar22 != 0x2007))\n            goto LAB_002e313c;\n            param_1[0x12] = (int)local_30;\n            uVar7 = uVar26;\n            goto LAB_002e313c;\n          }\nLAB_002e3118:\n          uVar7 = uVar26;\n          if (uVar22 == 1) goto LAB_002e313c;\njoined_r0x002e3124:\n          uVar7 = uVar26;\n          if (uVar22 != 3) goto LAB_002e313c;\n          local_60._0_4_ = (uint *)(uVar26 >> 0x20);\n          if (uVar19 == 8) {\n            param_1[0xf] = (int)local_60._0_4_;\n            goto LAB_002e313c;\n          }\n          if (uVar19 != 0xe) goto LAB_002e313c;\n          goto LAB_002e3284;\n        }\n        if (uVar19 < 0xd) {\n          uVar26 = (ulonglong)*(byte *)local_44;\n          local_44 = (uint *)((int)local_44 + 1);\nLAB_002e382c:\n          uVar7 = uVar26;\n          if (uVar22 == 0x31) goto LAB_002e313c;\n          if (uVar22 < 0x32) goto LAB_002e3118;\n        }\n        else {\n          bVar1 = *(byte *)local_44;\n          uVar15 = (uint)bVar1;\n          puVar9 = (uint *)((int)local_44 + 1);\n          if ((char)bVar1 < '\0') {\n            uVar26 = (*(code *)PTR_read_signed_LEB_128_x_004c297c)(puVar9,&local_48,uVar15);\n            puVar9 = (uint *)((int)local_44 + local_48);\n          }\n          else {\n            local_48 = 1;\n            uVar26 = (ulonglong)uVar15;\n            if ((bVar1 & 0x40) != 0) {\n              uVar26 = CONCAT44(0xffffffff,uVar15 | 0xffffff80);\n            }\n          }\n          local_44 = puVar9;\n          uVar7 = uVar26;\n          if (uVar22 == 0x31) goto LAB_002e313c;\n          if (uVar22 < 0x32) {\n            puVar9 = (uint *)param_1[0xc];\n            if (puVar9 != (uint *)param_1[0xd]) goto LAB_002e314c;\nLAB_002e2f98:\n            iVar17 = iVar17 + 8;\n            local_60 = uVar26;\n            std::\n            vector<gold::Dwarf_die::Attribute_value,std::allocator<gold::Dwarf_die::Attribute_value>>\n            ::_M_realloc_insert<gold::Dwarf_die::Attribute_value_const&>(local_38,puVar9,&local_68);\n            iVar8 = param_1[10];\n            if (iVar17 == iVar21) goto LAB_002e2fb8;\n            goto LAB_002e2db4;\n          }\n        }\n        if ((uVar22 != 0x6e) && (uVar7 = uVar26, uVar22 != 0x2007)) goto LAB_002e313c;\nLAB_002e3858:\n        local_60._0_4_ = (uint *)(uVar26 >> 0x20);\n        uVar7 = uVar26;\n        if (uVar19 == 8) {\n          param_1[0x12] = (int)local_60._0_4_;\n          goto LAB_002e313c;\n        }\n        if (uVar19 != 0xe) goto LAB_002e313c;\n        goto LAB_002e387c;\n      }\n      if (uVar19 == 4) {\n        pcVar25 = *(code **)(**(int **)(*param_1 + 8) + 0xc);\n        if (pcVar25 == (code *)PTR_is_big_endian_004c2950) {\n          iVar8 = (**(code **)(**(int **)(*param_1 + 8) + 0xe8))();\n        }\n        else {\n          iVar8 = (*pcVar25)();\n        }\n        local_58 = *local_44;\n        if (iVar8 == 0) {\n          local_58 = (((local_58 >> 0x10) << 0x18 | (local_58 >> 0x18) << 0x10) >> 0x10) +\n                     ((local_58 & 0xff) << 8 | local_58 >> 8 & 0xff) * 0x10000;\n        }\n        local_60._0_4_ = local_44 + 1;\n        local_44 = (uint *)((int)local_60._0_4_ + local_58);\nLAB_002e355c:\n        uVar26 = CONCAT44(local_60._0_4_,local_60._4_4_);\n        uVar7 = uVar26;\n        if (uVar22 == 0x31) goto LAB_002e313c;\n        if (uVar22 < 0x32) goto LAB_002e3118;\n        puVar9 = (uint *)param_1[0xc];\n      }\n      else {\n        if (4 < uVar19) {\n          if (uVar19 != 5) {\n            if (uVar19 != 6) {\n              return 0;\n            }\n            pcVar25 = *(code **)(**(int **)(*param_1 + 8) + 0xc);\n            if (pcVar25 == (code *)PTR_is_big_endian_004c2950) {\n              local_30 = puVar18;\n              iVar10 = (**(code **)(**(int **)(*param_1 + 8) + 0xe8))();\n            }\n            else {\n              local_30 = puVar18;\n              iVar10 = (*pcVar25)();\n            }\n            puVar9 = (uint *)*local_44;\n            if (iVar10 == 0) {\n              puVar9 = (uint *)(((((uint)puVar9 >> 0x10) << 0x18 | ((uint)puVar9 >> 0x18) << 0x10)\n                                >> 0x10) +\n                               (((uint)puVar9 & 0xff) << 8 | (uint)puVar9 >> 8 & 0xff) * 0x10000);\n            }\n            local_44 = local_44 + 1;\n            iVar10 = *param_1;\n            local_50._0_4_ = (uint *)0x0;\n            local_50._4_4_ = puVar9;\n            goto LAB_002e3708;\n          }\n          pcVar25 = *(code **)(**(int **)(*param_1 + 8) + 0xc);\n          if (pcVar25 == (code *)PTR_is_big_endian_004c2950) {\n            iVar8 = (**(code **)(**(int **)(*param_1 + 8) + 0xe8))();\n          }\n          else {\n            iVar8 = (*pcVar25)();\n          }\n          uVar6 = *(ushort *)local_44;\n          if (iVar8 == 0) {\n            uVar6 = CONCAT11(*(byte *)((int)local_44 + 1),*(byte *)local_44);\n          }\n          local_60._4_4_ = (uint *)(uint)uVar6;\n          local_44 = (uint *)((int)local_44 + 2);\n          local_60._0_4_ = (uint *)0x0;\n          goto LAB_002e355c;\n        }\n        if (uVar19 != 1) {\n          if (uVar19 != 3) {\n            return 0;\n          }\n          pcVar25 = *(code **)(**(int **)(*param_1 + 8) + 0xc);\n          if (pcVar25 == (code *)PTR_is_big_endian_004c2950) {\n            iVar8 = (**(code **)(**(int **)(*param_1 + 8) + 0xe8))();\n          }\n          else {\n            iVar8 = (*pcVar25)();\n          }\n          uVar6 = *(ushort *)local_44;\n          if (iVar8 == 0) {\n            uVar6 = CONCAT11(*(byte *)((int)local_44 + 1),*(byte *)local_44);\n          }\n          local_58 = (uint)uVar6;\n          local_60._0_4_ = (uint *)((int)local_44 + 2);\n          local_44 = (uint *)((int)local_60._0_4_ + local_58);\n          goto LAB_002e355c;\n        }\n        iVar8 = *param_1;\n        if (*(int *)(iVar8 + 0x4c) == 4) {\n          pcVar25 = *(code **)(**(int **)(iVar8 + 8) + 0xc);\n          if (pcVar25 == (code *)PTR_is_big_endian_004c2950) {\n            local_30 = puVar18;\n            iVar8 = (**(code **)(**(int **)(iVar8 + 8) + 0xe8))();\n          }\n          else {\n            local_30 = puVar18;\n            iVar8 = (*pcVar25)();\n          }\n          uVar15 = *local_44;\n          if (iVar8 == 0) {\n            uVar15 = (((uVar15 >> 0x10) << 0x18 | (uVar15 >> 0x18) << 0x10) >> 0x10) +\n                     ((uVar15 & 0xff) << 8 | uVar15 >> 8 & 0xff) * 0x10000;\n          }\n          local_44 = local_44 + 1;\n          uVar26 = (ulonglong)uVar15;\n        }\n        else {\n          local_30 = puVar18;\n          uVar26 = (*local_34)(iVar8,&local_44);\n        }\n        local_50 = uVar26;\n        local_58 = (*local_3c)(*param_1);\n        uVar26 = local_50;\n        if (uVar22 == 0x31) goto LAB_002e30bc;\n        if (uVar22 < 0x32) {\n          if (uVar22 != 1) goto joined_r0x002e3124;\n          goto LAB_002e39b4;\n        }\n        uVar7 = local_50;\n        if (uVar22 == 0x6e) goto LAB_002e313c;\n        if (uVar22 != 0x2007) goto LAB_002e339c;\n        puVar9 = (uint *)param_1[0xc];\n      }\n      while( true ) {\n        if (puVar9 == (uint *)param_1[0xd]) goto LAB_002e2f98;\nLAB_002e314c:\n        local_60._0_4_ = (uint *)(uVar26 >> 0x20);\n        local_60._4_4_ = (uint *)uVar26;\n        iVar17 = iVar17 + 8;\n        puVar9[1] = local_64;\n        puVar9[2] = (uint)local_60._0_4_;\n        *puVar9 = local_68;\n        puVar9[3] = (uint)local_60._4_4_;\n        puVar9[4] = local_58;\n        puVar9[5] = local_54;\n        param_1[0xc] = (int)(puVar9 + 6);\n        iVar8 = param_1[10];\n        local_60 = uVar26;\n        if (iVar17 == iVar21) goto LAB_002e2fb8;\n        puVar9 = (uint *)(*(int *)(iVar8 + 8) + iVar17);\n        uVar19 = puVar9[1];\n        uVar22 = *puVar9;\n        if (uVar19 != 0x16) goto LAB_002e2dd0;\nLAB_002e31a8:\n        uVar19 = (uint)*(byte *)local_44;\n        puVar9 = (uint *)((int)local_44 + 1);\n        if ((char)*(byte *)local_44 < '\0') {\n          local_60 = uVar26;\n          (*(code *)PTR_read_unsigned_LEB_128_x_004c2980)(puVar9,&local_48,uVar19);\n          puVar9 = (uint *)((int)local_44 + local_48);\n          uVar19 = extraout_v1;\n          uVar26 = local_60;\n        }\n        else {\n          local_48 = 1;\n        }\n        puVar11 = (uint *)((int)puVar9 - iVar20);\n        puVar18 = (uint *)((int)puVar11 + param_1[3]);\n        iVar8 = (uint)(puVar18 < puVar11) + ((int)puVar11 >> 0x1f) + param_1[2];\n        local_64 = uVar19;\n        local_44 = puVar9;\n        if (uVar19 != 0xe) break;\nLAB_002e31fc:\n        local_58 = 0;\n        iVar8 = *param_1;\n        local_68 = uVar22;\n        local_30 = puVar18;\n        local_60 = uVar26;\n        if (*(int *)(iVar8 + 0x48) == 4) {\n          pcVar25 = *(code **)(**(int **)(iVar8 + 8) + 0xc);\n          if (pcVar25 == (code *)PTR_is_big_endian_004c2950) {\n            iVar8 = (**(code **)(**(int **)(iVar8 + 8) + 0xe8))();\n          }\n          else {\n            iVar8 = (*pcVar25)();\n          }\n          uVar19 = *local_44;\n          if (iVar8 == 0) {\n            uVar19 = (((uVar19 >> 0x10) << 0x18 | (uVar19 >> 0x18) << 0x10) >> 0x10) +\n                     ((uVar19 & 0xff) << 8 | uVar19 >> 8 & 0xff) * 0x10000;\n          }\n          local_44 = local_44 + 1;\n          uVar26 = (ulonglong)uVar19;\n        }\n        else {\n          uVar26 = (*local_34)(iVar8,&local_44);\n        }\n        local_50 = uVar26;\n        local_58 = (*local_3c)(*param_1);\n        uVar7 = local_50;\n        if (uVar22 != 0x31) {\n          uVar26 = local_50;\n          if (uVar22 < 0x32) {\n            if ((uVar22 != 1) && (uVar22 == 3)) {\nLAB_002e3284:\n              param_1[0x16] = local_58;\n              *(ulonglong *)(param_1 + 0x10) = uVar26;\n              uVar7 = uVar26;\n            }\n          }\n          else {\n            if (uVar22 == 0x6e) {\nLAB_002e387c:\n              param_1[0x16] = local_58;\n            }\n            else {\n              if (uVar22 != 0x2007) goto LAB_002e313c;\n              param_1[0x16] = local_58;\n            }\n            *(ulonglong *)(param_1 + 0x14) = uVar26;\n            uVar7 = uVar26;\n          }\n        }\nLAB_002e313c:\n        puVar9 = (uint *)param_1[0xc];\n        uVar26 = uVar7;\n      }\n    } while( true );\n  }" else (if_statement "if (uVar19 != 0) {\nLAB_002e2d90:\n    local_3c = (code *)PTR_lookup_reloc_004c2994;\n    iVar17 = 0;\n    local_34 = (code *)PTR_read_from_pointer<64>_004c2998;\n    local_40 = &local_50;\nLAB_002e2db4:\n    puVar9 = (uint *)(*(int *)(iVar8 + 8) + iVar17);\n    uVar19 = puVar9[1];\n    uVar22 = *puVar9;\n    uVar26 = local_60;\n    if (uVar19 == 0x16) goto LAB_002e31a8;\nLAB_002e2dd0:\n    puVar9 = (uint *)((int)local_44 - iVar20);\n    puVar18 = (uint *)((int)puVar9 + param_1[3]);\n    iVar8 = (uint)(puVar18 < puVar9) + ((int)puVar9 >> 0x1f) + param_1[2];\n    local_64 = uVar19;\n    if (uVar19 == 0xe) goto LAB_002e31fc;\n    do {\n      local_60._4_4_ = (uint *)uVar26;\n      local_58 = 0;\n      local_68 = uVar22;\n      local_64 = uVar19;\n      local_60 = uVar26;\n      if (0xe < uVar19) {\n        if (uVar19 == 0x15) {\n          if ((char)*(byte *)local_44 < '\0') {\n            uVar26 = (*(code *)PTR_read_unsigned_LEB_128_x_004c2980)\n                               ((uint *)((int)local_44 + 1),&local_48);\n            local_44 = (uint *)((int)local_44 + local_48);\n          }\n          else {\n            uVar26 = (ulonglong)*(byte *)local_44;\n            local_48 = 1;\n            local_44 = (uint *)((int)local_44 + 1);\n          }\n          goto joined_r0x002e3998;\n        }\n        if (0x15 < uVar19) {\n          if (uVar19 == 0x19) {\n            local_60._4_4_ = (uint *)0x1;\n            local_60._0_4_ = (uint *)0x0;\n          }\n          else {\n            if (uVar19 < 0x1a) {\n              if (uVar19 != 0x17) {\n                if (uVar19 != 0x18) {\n                  return 0;\n                }\n                goto LAB_002e32bc;\n              }\n              iVar8 = *param_1;\n              if (*(int *)(iVar8 + 0x48) == 4) {\n                pcVar25 = *(code **)(**(int **)(iVar8 + 8) + 0xc);\n                if (pcVar25 == (code *)PTR_is_big_endian_004c2950) {\n                  local_30 = puVar18;\n                  iVar8 = (**(code **)(**(int **)(iVar8 + 8) + 0xe8))();\n                }\n                else {\n                  local_30 = puVar18;\n                  iVar8 = (*pcVar25)();\n                }\n                uVar15 = *local_44;\n                if (iVar8 == 0) {\n                  uVar15 = (((uVar15 >> 0x10) << 0x18 | (uVar15 >> 0x18) << 0x10) >> 0x10) +\n                           ((uVar15 & 0xff) << 8 | uVar15 >> 8 & 0xff) * 0x10000;\n                }\n                local_44 = local_44 + 1;\n                uVar26 = (ulonglong)uVar15;\n              }\n              else {\n                local_30 = puVar18;\n                uVar26 = (*local_34)(iVar8,&local_44);\n              }\n              iVar8 = *param_1;\n              goto LAB_002e3970;\n            }\n            if (uVar19 != 0x20) {\n              if (uVar19 < 0x20) {\n                return 0;\n              }\n              if (1 < uVar19 - 0x1f01) {\n                return 0;\n              }\nLAB_002e34d8:\n              if ((char)*(byte *)local_44 < '\0') {\n                uVar26 = (*(code *)PTR_read_unsigned_LEB_128_x_004c2980)\n                                   ((uint *)((int)local_44 + 1),&local_48);\n                local_44 = (uint *)((int)local_44 + local_48);\n              }\n              else {\n                uVar26 = (ulonglong)*(byte *)local_44;\n                local_48 = 1;\n                local_44 = (uint *)((int)local_44 + 1);\n              }\n              goto LAB_002e382c;\n            }\n            pcVar25 = *(code **)(**(int **)(*param_1 + 8) + 0xc);\n            if (pcVar25 == (code *)PTR_is_big_endian_004c2950) {\n              iVar8 = (**(code **)(**(int **)(*param_1 + 8) + 0xe8))();\n            }\n            else {\n              iVar8 = (*pcVar25)();\n            }\n            local_60._4_4_ = (uint *)local_44[1];\n            local_60._0_4_ = (uint *)*local_44;\n            if (iVar8 == 0) {\n              uVar15 = (uint)local_60._4_4_ & 0xff;\n              uVar16 = (uint)local_60._4_4_ >> 8;\n              uVar2 = (uint)local_60._4_4_ >> 0x10;\n              uVar4 = (uint)local_60._4_4_ >> 0x18;\n              local_60._4_4_ =\n                   (uint *)(((((uint)local_60._0_4_ >> 0x10) << 0x18 |\n                             ((uint)local_60._0_4_ >> 0x18) << 0x10) >> 0x10) +\n                           (((uint)local_60._0_4_ & 0xff) << 8 | (uint)local_60._0_4_ >> 8 & 0xff) *\n                           0x10000);\n              local_60._0_4_ =\n                   (uint *)(((uVar2 << 0x18 | uVar4 << 0x10) >> 0x10) +\n                           (uVar15 << 8 | uVar16 & 0xff) * 0x10000);\n            }\n            local_44 = local_44 + 2;\n          }\n          uVar7 = CONCAT44(local_60._0_4_,local_60._4_4_);\n          if (uVar22 == 0x6e) goto LAB_002e313c;\n          uVar7 = CONCAT44(local_60._0_4_,local_60._4_4_);\n          uVar26 = CONCAT44(local_60._0_4_,local_60._4_4_);\n          if (uVar22 == 0x2007) goto LAB_002e313c;\n          goto joined_r0x002e3124;\n        }\n        if (uVar19 == 0x11) {\n          puVar9 = (uint *)((int)local_44 + 1);\n          uVar15 = (uint)*(byte *)local_44;\n          uVar26 = (ulonglong)uVar15;\n          local_44 = puVar9;\n          if (uVar22 == 0x31) goto LAB_002e30bc;\n          if (0x31 < uVar22) {\n            uVar26 = (ulonglong)uVar15;\n            if ((uVar22 != 0x6e) && (uVar26 = (ulonglong)uVar15, uVar22 != 0x2007)) {\n              uVar7 = (ulonglong)uVar15;\n              if (uVar22 != 0x47) goto LAB_002e313c;\n              param_1[0x18] = 0;\n              param_1[0x19] = uVar15;\n              uVar7 = (ulonglong)uVar15;\n              goto LAB_002e313c;\n            }\n            goto LAB_002e3858;\n          }\n          if (uVar22 == 1) {\n            param_1[8] = 0;\n            param_1[9] = uVar15;\n            uVar7 = (ulonglong)uVar15;\n            goto LAB_002e313c;\n          }\n          goto joined_r0x002e3124;\n        }\n        if (uVar19 < 0x12) {\n          if (uVar19 == 0xf) goto LAB_002e34d8;\n          if (uVar19 != 0x10) {\n            return 0;\n          }\n          iVar10 = *param_1;\n          iVar8 = *(int *)(iVar10 + 0x48);\n          if (*(uint *)(iVar10 + 0x50) < 3) {\n            iVar8 = *(int *)(iVar10 + 0x4c);\n          }\n          if (iVar8 == 4) {\n            pcVar25 = *(code **)(**(int **)(iVar10 + 8) + 0xc);\n            if (pcVar25 == (code *)PTR_is_big_endian_004c2950) {\n              local_30 = puVar18;\n              iVar8 = (**(code **)(**(int **)(iVar10 + 8) + 0xe8))();\n            }\n            else {\n              local_30 = puVar18;\n              iVar8 = (*pcVar25)();\n            }\n            uVar15 = *local_44;\n            if (iVar8 == 0) {\n              uVar15 = (((uVar15 >> 0x10) << 0x18 | (uVar15 >> 0x18) << 0x10) >> 0x10) +\n                       ((uVar15 & 0xff) << 8 | uVar15 >> 8 & 0xff) * 0x10000;\n            }\n            local_44 = local_44 + 1;\n            uVar26 = (ulonglong)uVar15;\n          }\n          else {\n            local_30 = puVar18;\n            uVar26 = (*local_34)(iVar10,&local_44);\n          }\n          local_50 = uVar26;\n          local_58 = (*local_3c)(*param_1);\n          uVar26 = local_50;\n        }\n        else {\n          if (uVar19 == 0x13) {\n            pcVar25 = *(code **)(**(int **)(*param_1 + 8) + 0xc);\n            if (pcVar25 == (code *)PTR_is_big_endian_004c2950) {\n              local_30 = puVar18;\n              iVar8 = (**(code **)(**(int **)(*param_1 + 8) + 0xe8))();\n            }\n            else {\n              local_30 = puVar18;\n              iVar8 = (*pcVar25)();\n            }\n            uVar15 = *local_44;\n            if (iVar8 == 0) {\n              uVar15 = (((uVar15 >> 0x10) << 0x18 | (uVar15 >> 0x18) << 0x10) >> 0x10) +\n                       ((uVar15 & 0xff) << 8 | uVar15 >> 8 & 0xff) * 0x10000;\n            }\n            local_44 = local_44 + 1;\n            iVar8 = *param_1;\n            uVar26 = (ulonglong)uVar15;\n          }\n          else {\n            if (uVar19 < 0x14) {\n              pcVar25 = *(code **)(**(int **)(*param_1 + 8) + 0xc);\n              if (pcVar25 == (code *)PTR_is_big_endian_004c2950) {\n                iVar8 = (**(code **)(**(int **)(*param_1 + 8) + 0xe8))();\n              }\n              else {\n                iVar8 = (*pcVar25)();\n              }\n              uVar6 = *(ushort *)local_44;\n              if (iVar8 == 0) {\n                uVar6 = CONCAT11(*(byte *)((int)local_44 + 1),*(byte *)local_44);\n              }\n              local_44 = (uint *)((int)local_44 + 2);\n              uVar26 = (ulonglong)uVar6;\n              goto joined_r0x002e3998;\n            }\n            pcVar25 = *(code **)(**(int **)(*param_1 + 8) + 0xc);\n            if (pcVar25 == (code *)PTR_is_big_endian_004c2950) {\n              local_30 = puVar18;\n              iVar8 = (**(code **)(**(int **)(*param_1 + 8) + 0xe8))();\n            }\n            else {\n              local_30 = puVar18;\n              iVar8 = (*pcVar25)();\n            }\n            uVar15 = local_44[1];\n            uVar16 = *local_44;\n            if (iVar8 == 0) {\n              uVar2 = uVar15 & 0xff;\n              uVar4 = uVar15 >> 8;\n              uVar3 = uVar15 >> 0x10;\n              uVar5 = uVar15 >> 0x18;\n              uVar15 = (((uVar16 >> 0x10) << 0x18 | (uVar16 >> 0x18) << 0x10) >> 0x10) +\n                       ((uVar16 & 0xff) << 8 | uVar16 >> 8 & 0xff) * 0x10000;\n              uVar16 = ((uVar3 << 0x18 | uVar5 << 0x10) >> 0x10) +\n                       (uVar2 << 8 | uVar4 & 0xff) * 0x10000;\n            }\n            uVar26 = CONCAT44(uVar16,uVar15);\n            local_44 = local_44 + 2;\n            iVar8 = *param_1;\n          }\nLAB_002e3970:\n          local_50 = uVar26;\n          local_58 = (*local_3c)(iVar8);\n          uVar26 = local_50;\n        }\njoined_r0x002e3998:\n        if (uVar22 == 0x31) {\nLAB_002e30bc:\n          *(ulonglong *)(param_1 + 0x1a) = uVar26;\n          uVar7 = uVar26;\n          goto LAB_002e313c;\n        }\n        if (uVar22 < 0x32) {\n          uVar7 = uVar26;\n          if (uVar22 != 1) goto LAB_002e313c;\nLAB_002e39b4:\n          uVar7 = uVar26;\n          if (local_58 != 0) goto LAB_002e313c;\n          *(ulonglong *)(param_1 + 8) = uVar26;\n          goto LAB_002e313c;\n        }\n        if ((uVar22 != 0x6e) && (uVar22 != 0x2007)) {\nLAB_002e339c:\n          uVar7 = uVar26;\n          if (uVar22 != 0x47) goto LAB_002e313c;\n          *(ulonglong *)(param_1 + 0x18) = uVar26;\n          goto LAB_002e313c;\n        }\n        goto LAB_002e3858;\n      }\n      if (uVar19 == 7) {\n        pcVar25 = *(code **)(**(int **)(*param_1 + 8) + 0xc);\n        if (pcVar25 == (code *)PTR_is_big_endian_004c2950) {\n          local_30 = puVar18;\n          iVar10 = (**(code **)(**(int **)(*param_1 + 8) + 0xe8))();\n        }\n        else {\n          local_30 = puVar18;\n          iVar10 = (*pcVar25)();\n        }\n        local_50._4_4_ = (uint *)local_44[1];\n        puVar9 = (uint *)*local_44;\n        if (iVar10 == 0) {\n          uVar15 = (uint)local_50._4_4_ & 0xff;\n          uVar16 = (uint)local_50._4_4_ >> 8;\n          uVar2 = (uint)local_50._4_4_ >> 0x10;\n          uVar4 = (uint)local_50._4_4_ >> 0x18;\n          local_50._4_4_ =\n               (uint *)(((((uint)puVar9 >> 0x10) << 0x18 | ((uint)puVar9 >> 0x18) << 0x10) >> 0x10)\n                       + (((uint)puVar9 & 0xff) << 8 | (uint)puVar9 >> 8 & 0xff) * 0x10000);\n          puVar9 = (uint *)(((uVar2 << 0x18 | uVar4 << 0x10) >> 0x10) +\n                           (uVar15 << 8 | uVar16 & 0xff) * 0x10000);\n        }\n        local_44 = local_44 + 2;\n        iVar10 = *param_1;\n        local_50._0_4_ = puVar9;\nLAB_002e3708:\n        local_58 = (*local_3c)(iVar10,puVar9,iVar8,local_30,local_40);\n        local_60._4_4_ = local_50._4_4_;\n        local_60._0_4_ = local_50._0_4_;\n        goto LAB_002e355c;\n      }\n      if (7 < uVar19) {\n        if (uVar19 == 10) {\n          local_60._0_4_ = (uint *)((int)local_44 + 1);\n          local_58 = (uint)*(byte *)local_44;\n          local_44 = (uint *)((int)local_60._0_4_ + local_58);\n          goto LAB_002e355c;\n        }\n        if (uVar19 < 0xb) {\n          if (uVar19 != 8) {\n            if (uVar19 != 9) {\n              return 0;\n            }\nLAB_002e32bc:\n            uVar15 = (uint)*(byte *)local_44;\n            pbVar14 = (byte *)((int)local_44 + 1);\n            if ((char)*(byte *)local_44 < '\0') {\n              (*(code *)PTR_read_unsigned_LEB_128_x_004c2980)(pbVar14,&local_48);\n              pbVar14 = (byte *)((int)local_44 + local_48);\n              uVar15 = extraout_v1_00;\n            }\n            else {\n              local_48 = 1;\n            }\n            uVar26 = CONCAT44(pbVar14,local_60._4_4_);\n            local_58 = uVar15;\n            local_44 = (uint *)((int)local_44 + uVar15 + local_48);\n            goto LAB_002e382c;\n          }\n          local_60._0_4_ = local_44;\n          local_30 = local_44;\n          local_48 = (*(code *)PTR_strlen_004c5b9c)(local_44);\n          uVar26 = CONCAT44(local_60._0_4_,local_60._4_4_);\n          local_44 = (uint *)((int)local_30 + local_48 + 1);\n          uVar7 = CONCAT44(local_60._0_4_,local_60._4_4_);\n          if (uVar22 == 0x31) goto LAB_002e313c;\n          if (0x31 < uVar22) {\n            if ((uVar22 != 0x6e) &&\n               (uVar7 = CONCAT44(local_60._0_4_,local_60._4_4_), uVar22 != 0x2007))\n            goto LAB_002e313c;\n            param_1[0x12] = (int)local_30;\n            uVar7 = uVar26;\n            goto LAB_002e313c;\n          }\nLAB_002e3118:\n          uVar7 = uVar26;\n          if (uVar22 == 1) goto LAB_002e313c;\njoined_r0x002e3124:\n          uVar7 = uVar26;\n          if (uVar22 != 3) goto LAB_002e313c;\n          local_60._0_4_ = (uint *)(uVar26 >> 0x20);\n          if (uVar19 == 8) {\n            param_1[0xf] = (int)local_60._0_4_;\n            goto LAB_002e313c;\n          }\n          if (uVar19 != 0xe) goto LAB_002e313c;\n          goto LAB_002e3284;\n        }\n        if (uVar19 < 0xd) {\n          uVar26 = (ulonglong)*(byte *)local_44;\n          local_44 = (uint *)((int)local_44 + 1);\nLAB_002e382c:\n          uVar7 = uVar26;\n          if (uVar22 == 0x31) goto LAB_002e313c;\n          if (uVar22 < 0x32) goto LAB_002e3118;\n        }\n        else {\n          bVar1 = *(byte *)local_44;\n          uVar15 = (uint)bVar1;\n          puVar9 = (uint *)((int)local_44 + 1);\n          if ((char)bVar1 < '\0') {\n            uVar26 = (*(code *)PTR_read_signed_LEB_128_x_004c297c)(puVar9,&local_48,uVar15);\n            puVar9 = (uint *)((int)local_44 + local_48);\n          }\n          else {\n            local_48 = 1;\n            uVar26 = (ulonglong)uVar15;\n            if ((bVar1 & 0x40) != 0) {\n              uVar26 = CONCAT44(0xffffffff,uVar15 | 0xffffff80);\n            }\n          }\n          local_44 = puVar9;\n          uVar7 = uVar26;\n          if (uVar22 == 0x31) goto LAB_002e313c;\n          if (uVar22 < 0x32) {\n            puVar9 = (uint *)param_1[0xc];\n            if (puVar9 != (uint *)param_1[0xd]) goto LAB_002e314c;\nLAB_002e2f98:\n            iVar17 = iVar17 + 8;\n            local_60 = uVar26;\n            std::\n            vector<gold::Dwarf_die::Attribute_value,std::allocator<gold::Dwarf_die::Attribute_value>>\n            ::_M_realloc_insert<gold::Dwarf_die::Attribute_value_const&>(local_38,puVar9,&local_68);\n            iVar8 = param_1[10];\n            if (iVar17 == iVar21) goto LAB_002e2fb8;\n            goto LAB_002e2db4;\n          }\n        }\n        if ((uVar22 != 0x6e) && (uVar7 = uVar26, uVar22 != 0x2007)) goto LAB_002e313c;\nLAB_002e3858:\n        local_60._0_4_ = (uint *)(uVar26 >> 0x20);\n        uVar7 = uVar26;\n        if (uVar19 == 8) {\n          param_1[0x12] = (int)local_60._0_4_;\n          goto LAB_002e313c;\n        }\n        if (uVar19 != 0xe) goto LAB_002e313c;\n        goto LAB_002e387c;\n      }\n      if (uVar19 == 4) {\n        pcVar25 = *(code **)(**(int **)(*param_1 + 8) + 0xc);\n        if (pcVar25 == (code *)PTR_is_big_endian_004c2950) {\n          iVar8 = (**(code **)(**(int **)(*param_1 + 8) + 0xe8))();\n        }\n        else {\n          iVar8 = (*pcVar25)();\n        }\n        local_58 = *local_44;\n        if (iVar8 == 0) {\n          local_58 = (((local_58 >> 0x10) << 0x18 | (local_58 >> 0x18) << 0x10) >> 0x10) +\n                     ((local_58 & 0xff) << 8 | local_58 >> 8 & 0xff) * 0x10000;\n        }\n        local_60._0_4_ = local_44 + 1;\n        local_44 = (uint *)((int)local_60._0_4_ + local_58);\nLAB_002e355c:\n        uVar26 = CONCAT44(local_60._0_4_,local_60._4_4_);\n        uVar7 = uVar26;\n        if (uVar22 == 0x31) goto LAB_002e313c;\n        if (uVar22 < 0x32) goto LAB_002e3118;\n        puVar9 = (uint *)param_1[0xc];\n      }\n      else {\n        if (4 < uVar19) {\n          if (uVar19 != 5) {\n            if (uVar19 != 6) {\n              return 0;\n            }\n            pcVar25 = *(code **)(**(int **)(*param_1 + 8) + 0xc);\n            if (pcVar25 == (code *)PTR_is_big_endian_004c2950) {\n              local_30 = puVar18;\n              iVar10 = (**(code **)(**(int **)(*param_1 + 8) + 0xe8))();\n            }\n            else {\n              local_30 = puVar18;\n              iVar10 = (*pcVar25)();\n            }\n            puVar9 = (uint *)*local_44;\n            if (iVar10 == 0) {\n              puVar9 = (uint *)(((((uint)puVar9 >> 0x10) << 0x18 | ((uint)puVar9 >> 0x18) << 0x10)\n                                >> 0x10) +\n                               (((uint)puVar9 & 0xff) << 8 | (uint)puVar9 >> 8 & 0xff) * 0x10000);\n            }\n            local_44 = local_44 + 1;\n            iVar10 = *param_1;\n            local_50._0_4_ = (uint *)0x0;\n            local_50._4_4_ = puVar9;\n            goto LAB_002e3708;\n          }\n          pcVar25 = *(code **)(**(int **)(*param_1 + 8) + 0xc);\n          if (pcVar25 == (code *)PTR_is_big_endian_004c2950) {\n            iVar8 = (**(code **)(**(int **)(*param_1 + 8) + 0xe8))();\n          }\n          else {\n            iVar8 = (*pcVar25)();\n          }\n          uVar6 = *(ushort *)local_44;\n          if (iVar8 == 0) {\n            uVar6 = CONCAT11(*(byte *)((int)local_44 + 1),*(byte *)local_44);\n          }\n          local_60._4_4_ = (uint *)(uint)uVar6;\n          local_44 = (uint *)((int)local_44 + 2);\n          local_60._0_4_ = (uint *)0x0;\n          goto LAB_002e355c;\n        }\n        if (uVar19 != 1) {\n          if (uVar19 != 3) {\n            return 0;\n          }\n          pcVar25 = *(code **)(**(int **)(*param_1 + 8) + 0xc);\n          if (pcVar25 == (code *)PTR_is_big_endian_004c2950) {\n            iVar8 = (**(code **)(**(int **)(*param_1 + 8) + 0xe8))();\n          }\n          else {\n            iVar8 = (*pcVar25)();\n          }\n          uVar6 = *(ushort *)local_44;\n          if (iVar8 == 0) {\n            uVar6 = CONCAT11(*(byte *)((int)local_44 + 1),*(byte *)local_44);\n          }\n          local_58 = (uint)uVar6;\n          local_60._0_4_ = (uint *)((int)local_44 + 2);\n          local_44 = (uint *)((int)local_60._0_4_ + local_58);\n          goto LAB_002e355c;\n        }\n        iVar8 = *param_1;\n        if (*(int *)(iVar8 + 0x4c) == 4) {\n          pcVar25 = *(code **)(**(int **)(iVar8 + 8) + 0xc);\n          if (pcVar25 == (code *)PTR_is_big_endian_004c2950) {\n            local_30 = puVar18;\n            iVar8 = (**(code **)(**(int **)(iVar8 + 8) + 0xe8))();\n          }\n          else {\n            local_30 = puVar18;\n            iVar8 = (*pcVar25)();\n          }\n          uVar15 = *local_44;\n          if (iVar8 == 0) {\n            uVar15 = (((uVar15 >> 0x10) << 0x18 | (uVar15 >> 0x18) << 0x10) >> 0x10) +\n                     ((uVar15 & 0xff) << 8 | uVar15 >> 8 & 0xff) * 0x10000;\n          }\n          local_44 = local_44 + 1;\n          uVar26 = (ulonglong)uVar15;\n        }\n        else {\n          local_30 = puVar18;\n          uVar26 = (*local_34)(iVar8,&local_44);\n        }\n        local_50 = uVar26;\n        local_58 = (*local_3c)(*param_1);\n        uVar26 = local_50;\n        if (uVar22 == 0x31) goto LAB_002e30bc;\n        if (uVar22 < 0x32) {\n          if (uVar22 != 1) goto joined_r0x002e3124;\n          goto LAB_002e39b4;\n        }\n        uVar7 = local_50;\n        if (uVar22 == 0x6e) goto LAB_002e313c;\n        if (uVar22 != 0x2007) goto LAB_002e339c;\n        puVar9 = (uint *)param_1[0xc];\n      }\n      while( true ) {\n        if (puVar9 == (uint *)param_1[0xd]) goto LAB_002e2f98;\nLAB_002e314c:\n        local_60._0_4_ = (uint *)(uVar26 >> 0x20);\n        local_60._4_4_ = (uint *)uVar26;\n        iVar17 = iVar17 + 8;\n        puVar9[1] = local_64;\n        puVar9[2] = (uint)local_60._0_4_;\n        *puVar9 = local_68;\n        puVar9[3] = (uint)local_60._4_4_;\n        puVar9[4] = local_58;\n        puVar9[5] = local_54;\n        param_1[0xc] = (int)(puVar9 + 6);\n        iVar8 = param_1[10];\n        local_60 = uVar26;\n        if (iVar17 == iVar21) goto LAB_002e2fb8;\n        puVar9 = (uint *)(*(int *)(iVar8 + 8) + iVar17);\n        uVar19 = puVar9[1];\n        uVar22 = *puVar9;\n        if (uVar19 != 0x16) goto LAB_002e2dd0;\nLAB_002e31a8:\n        uVar19 = (uint)*(byte *)local_44;\n        puVar9 = (uint *)((int)local_44 + 1);\n        if ((char)*(byte *)local_44 < '\0') {\n          local_60 = uVar26;\n          (*(code *)PTR_read_unsigned_LEB_128_x_004c2980)(puVar9,&local_48,uVar19);\n          puVar9 = (uint *)((int)local_44 + local_48);\n          uVar19 = extraout_v1;\n          uVar26 = local_60;\n        }\n        else {\n          local_48 = 1;\n        }\n        puVar11 = (uint *)((int)puVar9 - iVar20);\n        puVar18 = (uint *)((int)puVar11 + param_1[3]);\n        iVar8 = (uint)(puVar18 < puVar11) + ((int)puVar11 >> 0x1f) + param_1[2];\n        local_64 = uVar19;\n        local_44 = puVar9;\n        if (uVar19 != 0xe) break;\nLAB_002e31fc:\n        local_58 = 0;\n        iVar8 = *param_1;\n        local_68 = uVar22;\n        local_30 = puVar18;\n        local_60 = uVar26;\n        if (*(int *)(iVar8 + 0x48) == 4) {\n          pcVar25 = *(code **)(**(int **)(iVar8 + 8) + 0xc);\n          if (pcVar25 == (code *)PTR_is_big_endian_004c2950) {\n            iVar8 = (**(code **)(**(int **)(iVar8 + 8) + 0xe8))();\n          }\n          else {\n            iVar8 = (*pcVar25)();\n          }\n          uVar19 = *local_44;\n          if (iVar8 == 0) {\n            uVar19 = (((uVar19 >> 0x10) << 0x18 | (uVar19 >> 0x18) << 0x10) >> 0x10) +\n                     ((uVar19 & 0xff) << 8 | uVar19 >> 8 & 0xff) * 0x10000;\n          }\n          local_44 = local_44 + 1;\n          uVar26 = (ulonglong)uVar19;\n        }\n        else {\n          uVar26 = (*local_34)(iVar8,&local_44);\n        }\n        local_50 = uVar26;\n        local_58 = (*local_3c)(*param_1);\n        uVar7 = local_50;\n        if (uVar22 != 0x31) {\n          uVar26 = local_50;\n          if (uVar22 < 0x32) {\n            if ((uVar22 != 1) && (uVar22 == 3)) {\nLAB_002e3284:\n              param_1[0x16] = local_58;\n              *(ulonglong *)(param_1 + 0x10) = uVar26;\n              uVar7 = uVar26;\n            }\n          }\n          else {\n            if (uVar22 == 0x6e) {\nLAB_002e387c:\n              param_1[0x16] = local_58;\n            }\n            else {\n              if (uVar22 != 0x2007) goto LAB_002e313c;\n              param_1[0x16] = local_58;\n            }\n            *(ulonglong *)(param_1 + 0x14) = uVar26;\n            uVar7 = uVar26;\n          }\n        }\nLAB_002e313c:\n        puVar9 = (uint *)param_1[0xc];\n        uVar26 = uVar7;\n      }\n    } while( true );\n  }" if (parenthesized_expression "(uVar19 != 0)" ( (binary_expression "uVar19 != 0" identifier != number_literal) )) (compound_statement "{\nLAB_002e2d90:\n    local_3c = (code *)PTR_lookup_reloc_004c2994;\n    iVar17 = 0;\n    local_34 = (code *)PTR_read_from_pointer<64>_004c2998;\n    local_40 = &local_50;\nLAB_002e2db4:\n    puVar9 = (uint *)(*(int *)(iVar8 + 8) + iVar17);\n    uVar19 = puVar9[1];\n    uVar22 = *puVar9;\n    uVar26 = local_60;\n    if (uVar19 == 0x16) goto LAB_002e31a8;\nLAB_002e2dd0:\n    puVar9 = (uint *)((int)local_44 - iVar20);\n    puVar18 = (uint *)((int)puVar9 + param_1[3]);\n    iVar8 = (uint)(puVar18 < puVar9) + ((int)puVar9 >> 0x1f) + param_1[2];\n    local_64 = uVar19;\n    if (uVar19 == 0xe) goto LAB_002e31fc;\n    do {\n      local_60._4_4_ = (uint *)uVar26;\n      local_58 = 0;\n      local_68 = uVar22;\n      local_64 = uVar19;\n      local_60 = uVar26;\n      if (0xe < uVar19) {\n        if (uVar19 == 0x15) {\n          if ((char)*(byte *)local_44 < '\0') {\n            uVar26 = (*(code *)PTR_read_unsigned_LEB_128_x_004c2980)\n                               ((uint *)((int)local_44 + 1),&local_48);\n            local_44 = (uint *)((int)local_44 + local_48);\n          }\n          else {\n            uVar26 = (ulonglong)*(byte *)local_44;\n            local_48 = 1;\n            local_44 = (uint *)((int)local_44 + 1);\n          }\n          goto joined_r0x002e3998;\n        }\n        if (0x15 < uVar19) {\n          if (uVar19 == 0x19) {\n            local_60._4_4_ = (uint *)0x1;\n            local_60._0_4_ = (uint *)0x0;\n          }\n          else {\n            if (uVar19 < 0x1a) {\n              if (uVar19 != 0x17) {\n                if (uVar19 != 0x18) {\n                  return 0;\n                }\n                goto LAB_002e32bc;\n              }\n              iVar8 = *param_1;\n              if (*(int *)(iVar8 + 0x48) == 4) {\n                pcVar25 = *(code **)(**(int **)(iVar8 + 8) + 0xc);\n                if (pcVar25 == (code *)PTR_is_big_endian_004c2950) {\n                  local_30 = puVar18;\n                  iVar8 = (**(code **)(**(int **)(iVar8 + 8) + 0xe8))();\n                }\n                else {\n                  local_30 = puVar18;\n                  iVar8 = (*pcVar25)();\n                }\n                uVar15 = *local_44;\n                if (iVar8 == 0) {\n                  uVar15 = (((uVar15 >> 0x10) << 0x18 | (uVar15 >> 0x18) << 0x10) >> 0x10) +\n                           ((uVar15 & 0xff) << 8 | uVar15 >> 8 & 0xff) * 0x10000;\n                }\n                local_44 = local_44 + 1;\n                uVar26 = (ulonglong)uVar15;\n              }\n              else {\n                local_30 = puVar18;\n                uVar26 = (*local_34)(iVar8,&local_44);\n              }\n              iVar8 = *param_1;\n              goto LAB_002e3970;\n            }\n            if (uVar19 != 0x20) {\n              if (uVar19 < 0x20) {\n                return 0;\n              }\n              if (1 < uVar19 - 0x1f01) {\n                return 0;\n              }\nLAB_002e34d8:\n              if ((char)*(byte *)local_44 < '\0') {\n                uVar26 = (*(code *)PTR_read_unsigned_LEB_128_x_004c2980)\n                                   ((uint *)((int)local_44 + 1),&local_48);\n                local_44 = (uint *)((int)local_44 + local_48);\n              }\n              else {\n                uVar26 = (ulonglong)*(byte *)local_44;\n                local_48 = 1;\n                local_44 = (uint *)((int)local_44 + 1);\n              }\n              goto LAB_002e382c;\n            }\n            pcVar25 = *(code **)(**(int **)(*param_1 + 8) + 0xc);\n            if (pcVar25 == (code *)PTR_is_big_endian_004c2950) {\n              iVar8 = (**(code **)(**(int **)(*param_1 + 8) + 0xe8))();\n            }\n            else {\n              iVar8 = (*pcVar25)();\n            }\n            local_60._4_4_ = (uint *)local_44[1];\n            local_60._0_4_ = (uint *)*local_44;\n            if (iVar8 == 0) {\n              uVar15 = (uint)local_60._4_4_ & 0xff;\n              uVar16 = (uint)local_60._4_4_ >> 8;\n              uVar2 = (uint)local_60._4_4_ >> 0x10;\n              uVar4 = (uint)local_60._4_4_ >> 0x18;\n              local_60._4_4_ =\n                   (uint *)(((((uint)local_60._0_4_ >> 0x10) << 0x18 |\n                             ((uint)local_60._0_4_ >> 0x18) << 0x10) >> 0x10) +\n                           (((uint)local_60._0_4_ & 0xff) << 8 | (uint)local_60._0_4_ >> 8 & 0xff) *\n                           0x10000);\n              local_60._0_4_ =\n                   (uint *)(((uVar2 << 0x18 | uVar4 << 0x10) >> 0x10) +\n                           (uVar15 << 8 | uVar16 & 0xff) * 0x10000);\n            }\n            local_44 = local_44 + 2;\n          }\n          uVar7 = CONCAT44(local_60._0_4_,local_60._4_4_);\n          if (uVar22 == 0x6e) goto LAB_002e313c;\n          uVar7 = CONCAT44(local_60._0_4_,local_60._4_4_);\n          uVar26 = CONCAT44(local_60._0_4_,local_60._4_4_);\n          if (uVar22 == 0x2007) goto LAB_002e313c;\n          goto joined_r0x002e3124;\n        }\n        if (uVar19 == 0x11) {\n          puVar9 = (uint *)((int)local_44 + 1);\n          uVar15 = (uint)*(byte *)local_44;\n          uVar26 = (ulonglong)uVar15;\n          local_44 = puVar9;\n          if (uVar22 == 0x31) goto LAB_002e30bc;\n          if (0x31 < uVar22) {\n            uVar26 = (ulonglong)uVar15;\n            if ((uVar22 != 0x6e) && (uVar26 = (ulonglong)uVar15, uVar22 != 0x2007)) {\n              uVar7 = (ulonglong)uVar15;\n              if (uVar22 != 0x47) goto LAB_002e313c;\n              param_1[0x18] = 0;\n              param_1[0x19] = uVar15;\n              uVar7 = (ulonglong)uVar15;\n              goto LAB_002e313c;\n            }\n            goto LAB_002e3858;\n          }\n          if (uVar22 == 1) {\n            param_1[8] = 0;\n            param_1[9] = uVar15;\n            uVar7 = (ulonglong)uVar15;\n            goto LAB_002e313c;\n          }\n          goto joined_r0x002e3124;\n        }\n        if (uVar19 < 0x12) {\n          if (uVar19 == 0xf) goto LAB_002e34d8;\n          if (uVar19 != 0x10) {\n            return 0;\n          }\n          iVar10 = *param_1;\n          iVar8 = *(int *)(iVar10 + 0x48);\n          if (*(uint *)(iVar10 + 0x50) < 3) {\n            iVar8 = *(int *)(iVar10 + 0x4c);\n          }\n          if (iVar8 == 4) {\n            pcVar25 = *(code **)(**(int **)(iVar10 + 8) + 0xc);\n            if (pcVar25 == (code *)PTR_is_big_endian_004c2950) {\n              local_30 = puVar18;\n              iVar8 = (**(code **)(**(int **)(iVar10 + 8) + 0xe8))();\n            }\n            else {\n              local_30 = puVar18;\n              iVar8 = (*pcVar25)();\n            }\n            uVar15 = *local_44;\n            if (iVar8 == 0) {\n              uVar15 = (((uVar15 >> 0x10) << 0x18 | (uVar15 >> 0x18) << 0x10) >> 0x10) +\n                       ((uVar15 & 0xff) << 8 | uVar15 >> 8 & 0xff) * 0x10000;\n            }\n            local_44 = local_44 + 1;\n            uVar26 = (ulonglong)uVar15;\n          }\n          else {\n            local_30 = puVar18;\n            uVar26 = (*local_34)(iVar10,&local_44);\n          }\n          local_50 = uVar26;\n          local_58 = (*local_3c)(*param_1);\n          uVar26 = local_50;\n        }\n        else {\n          if (uVar19 == 0x13) {\n            pcVar25 = *(code **)(**(int **)(*param_1 + 8) + 0xc);\n            if (pcVar25 == (code *)PTR_is_big_endian_004c2950) {\n              local_30 = puVar18;\n              iVar8 = (**(code **)(**(int **)(*param_1 + 8) + 0xe8))();\n            }\n            else {\n              local_30 = puVar18;\n              iVar8 = (*pcVar25)();\n            }\n            uVar15 = *local_44;\n            if (iVar8 == 0) {\n              uVar15 = (((uVar15 >> 0x10) << 0x18 | (uVar15 >> 0x18) << 0x10) >> 0x10) +\n                       ((uVar15 & 0xff) << 8 | uVar15 >> 8 & 0xff) * 0x10000;\n            }\n            local_44 = local_44 + 1;\n            iVar8 = *param_1;\n            uVar26 = (ulonglong)uVar15;\n          }\n          else {\n            if (uVar19 < 0x14) {\n              pcVar25 = *(code **)(**(int **)(*param_1 + 8) + 0xc);\n              if (pcVar25 == (code *)PTR_is_big_endian_004c2950) {\n                iVar8 = (**(code **)(**(int **)(*param_1 + 8) + 0xe8))();\n              }\n              else {\n                iVar8 = (*pcVar25)();\n              }\n              uVar6 = *(ushort *)local_44;\n              if (iVar8 == 0) {\n                uVar6 = CONCAT11(*(byte *)((int)local_44 + 1),*(byte *)local_44);\n              }\n              local_44 = (uint *)((int)local_44 + 2);\n              uVar26 = (ulonglong)uVar6;\n              goto joined_r0x002e3998;\n            }\n            pcVar25 = *(code **)(**(int **)(*param_1 + 8) + 0xc);\n            if (pcVar25 == (code *)PTR_is_big_endian_004c2950) {\n              local_30 = puVar18;\n              iVar8 = (**(code **)(**(int **)(*param_1 + 8) + 0xe8))();\n            }\n            else {\n              local_30 = puVar18;\n              iVar8 = (*pcVar25)();\n            }\n            uVar15 = local_44[1];\n            uVar16 = *local_44;\n            if (iVar8 == 0) {\n              uVar2 = uVar15 & 0xff;\n              uVar4 = uVar15 >> 8;\n              uVar3 = uVar15 >> 0x10;\n              uVar5 = uVar15 >> 0x18;\n              uVar15 = (((uVar16 >> 0x10) << 0x18 | (uVar16 >> 0x18) << 0x10) >> 0x10) +\n                       ((uVar16 & 0xff) << 8 | uVar16 >> 8 & 0xff) * 0x10000;\n              uVar16 = ((uVar3 << 0x18 | uVar5 << 0x10) >> 0x10) +\n                       (uVar2 << 8 | uVar4 & 0xff) * 0x10000;\n            }\n            uVar26 = CONCAT44(uVar16,uVar15);\n            local_44 = local_44 + 2;\n            iVar8 = *param_1;\n          }\nLAB_002e3970:\n          local_50 = uVar26;\n          local_58 = (*local_3c)(iVar8);\n          uVar26 = local_50;\n        }\njoined_r0x002e3998:\n        if (uVar22 == 0x31) {\nLAB_002e30bc:\n          *(ulonglong *)(param_1 + 0x1a) = uVar26;\n          uVar7 = uVar26;\n          goto LAB_002e313c;\n        }\n        if (uVar22 < 0x32) {\n          uVar7 = uVar26;\n          if (uVar22 != 1) goto LAB_002e313c;\nLAB_002e39b4:\n          uVar7 = uVar26;\n          if (local_58 != 0) goto LAB_002e313c;\n          *(ulonglong *)(param_1 + 8) = uVar26;\n          goto LAB_002e313c;\n        }\n        if ((uVar22 != 0x6e) && (uVar22 != 0x2007)) {\nLAB_002e339c:\n          uVar7 = uVar26;\n          if (uVar22 != 0x47) goto LAB_002e313c;\n          *(ulonglong *)(param_1 + 0x18) = uVar26;\n          goto LAB_002e313c;\n        }\n        goto LAB_002e3858;\n      }\n      if (uVar19 == 7) {\n        pcVar25 = *(code **)(**(int **)(*param_1 + 8) + 0xc);\n        if (pcVar25 == (code *)PTR_is_big_endian_004c2950) {\n          local_30 = puVar18;\n          iVar10 = (**(code **)(**(int **)(*param_1 + 8) + 0xe8))();\n        }\n        else {\n          local_30 = puVar18;\n          iVar10 = (*pcVar25)();\n        }\n        local_50._4_4_ = (uint *)local_44[1];\n        puVar9 = (uint *)*local_44;\n        if (iVar10 == 0) {\n          uVar15 = (uint)local_50._4_4_ & 0xff;\n          uVar16 = (uint)local_50._4_4_ >> 8;\n          uVar2 = (uint)local_50._4_4_ >> 0x10;\n          uVar4 = (uint)local_50._4_4_ >> 0x18;\n          local_50._4_4_ =\n               (uint *)(((((uint)puVar9 >> 0x10) << 0x18 | ((uint)puVar9 >> 0x18) << 0x10) >> 0x10)\n                       + (((uint)puVar9 & 0xff) << 8 | (uint)puVar9 >> 8 & 0xff) * 0x10000);\n          puVar9 = (uint *)(((uVar2 << 0x18 | uVar4 << 0x10) >> 0x10) +\n                           (uVar15 << 8 | uVar16 & 0xff) * 0x10000);\n        }\n        local_44 = local_44 + 2;\n        iVar10 = *param_1;\n        local_50._0_4_ = puVar9;\nLAB_002e3708:\n        local_58 = (*local_3c)(iVar10,puVar9,iVar8,local_30,local_40);\n        local_60._4_4_ = local_50._4_4_;\n        local_60._0_4_ = local_50._0_4_;\n        goto LAB_002e355c;\n      }\n      if (7 < uVar19) {\n        if (uVar19 == 10) {\n          local_60._0_4_ = (uint *)((int)local_44 + 1);\n          local_58 = (uint)*(byte *)local_44;\n          local_44 = (uint *)((int)local_60._0_4_ + local_58);\n          goto LAB_002e355c;\n        }\n        if (uVar19 < 0xb) {\n          if (uVar19 != 8) {\n            if (uVar19 != 9) {\n              return 0;\n            }\nLAB_002e32bc:\n            uVar15 = (uint)*(byte *)local_44;\n            pbVar14 = (byte *)((int)local_44 + 1);\n            if ((char)*(byte *)local_44 < '\0') {\n              (*(code *)PTR_read_unsigned_LEB_128_x_004c2980)(pbVar14,&local_48);\n              pbVar14 = (byte *)((int)local_44 + local_48);\n              uVar15 = extraout_v1_00;\n            }\n            else {\n              local_48 = 1;\n            }\n            uVar26 = CONCAT44(pbVar14,local_60._4_4_);\n            local_58 = uVar15;\n            local_44 = (uint *)((int)local_44 + uVar15 + local_48);\n            goto LAB_002e382c;\n          }\n          local_60._0_4_ = local_44;\n          local_30 = local_44;\n          local_48 = (*(code *)PTR_strlen_004c5b9c)(local_44);\n          uVar26 = CONCAT44(local_60._0_4_,local_60._4_4_);\n          local_44 = (uint *)((int)local_30 + local_48 + 1);\n          uVar7 = CONCAT44(local_60._0_4_,local_60._4_4_);\n          if (uVar22 == 0x31) goto LAB_002e313c;\n          if (0x31 < uVar22) {\n            if ((uVar22 != 0x6e) &&\n               (uVar7 = CONCAT44(local_60._0_4_,local_60._4_4_), uVar22 != 0x2007))\n            goto LAB_002e313c;\n            param_1[0x12] = (int)local_30;\n            uVar7 = uVar26;\n            goto LAB_002e313c;\n          }\nLAB_002e3118:\n          uVar7 = uVar26;\n          if (uVar22 == 1) goto LAB_002e313c;\njoined_r0x002e3124:\n          uVar7 = uVar26;\n          if (uVar22 != 3) goto LAB_002e313c;\n          local_60._0_4_ = (uint *)(uVar26 >> 0x20);\n          if (uVar19 == 8) {\n            param_1[0xf] = (int)local_60._0_4_;\n            goto LAB_002e313c;\n          }\n          if (uVar19 != 0xe) goto LAB_002e313c;\n          goto LAB_002e3284;\n        }\n        if (uVar19 < 0xd) {\n          uVar26 = (ulonglong)*(byte *)local_44;\n          local_44 = (uint *)((int)local_44 + 1);\nLAB_002e382c:\n          uVar7 = uVar26;\n          if (uVar22 == 0x31) goto LAB_002e313c;\n          if (uVar22 < 0x32) goto LAB_002e3118;\n        }\n        else {\n          bVar1 = *(byte *)local_44;\n          uVar15 = (uint)bVar1;\n          puVar9 = (uint *)((int)local_44 + 1);\n          if ((char)bVar1 < '\0') {\n            uVar26 = (*(code *)PTR_read_signed_LEB_128_x_004c297c)(puVar9,&local_48,uVar15);\n            puVar9 = (uint *)((int)local_44 + local_48);\n          }\n          else {\n            local_48 = 1;\n            uVar26 = (ulonglong)uVar15;\n            if ((bVar1 & 0x40) != 0) {\n              uVar26 = CONCAT44(0xffffffff,uVar15 | 0xffffff80);\n            }\n          }\n          local_44 = puVar9;\n          uVar7 = uVar26;\n          if (uVar22 == 0x31) goto LAB_002e313c;\n          if (uVar22 < 0x32) {\n            puVar9 = (uint *)param_1[0xc];\n            if (puVar9 != (uint *)param_1[0xd]) goto LAB_002e314c;\nLAB_002e2f98:\n            iVar17 = iVar17 + 8;\n            local_60 = uVar26;\n            std::\n            vector<gold::Dwarf_die::Attribute_value,std::allocator<gold::Dwarf_die::Attribute_value>>\n            ::_M_realloc_insert<gold::Dwarf_die::Attribute_value_const&>(local_38,puVar9,&local_68);\n            iVar8 = param_1[10];\n            if (iVar17 == iVar21) goto LAB_002e2fb8;\n            goto LAB_002e2db4;\n          }\n        }\n        if ((uVar22 != 0x6e) && (uVar7 = uVar26, uVar22 != 0x2007)) goto LAB_002e313c;\nLAB_002e3858:\n        local_60._0_4_ = (uint *)(uVar26 >> 0x20);\n        uVar7 = uVar26;\n        if (uVar19 == 8) {\n          param_1[0x12] = (int)local_60._0_4_;\n          goto LAB_002e313c;\n        }\n        if (uVar19 != 0xe) goto LAB_002e313c;\n        goto LAB_002e387c;\n      }\n      if (uVar19 == 4) {\n        pcVar25 = *(code **)(**(int **)(*param_1 + 8) + 0xc);\n        if (pcVar25 == (code *)PTR_is_big_endian_004c2950) {\n          iVar8 = (**(code **)(**(int **)(*param_1 + 8) + 0xe8))();\n        }\n        else {\n          iVar8 = (*pcVar25)();\n        }\n        local_58 = *local_44;\n        if (iVar8 == 0) {\n          local_58 = (((local_58 >> 0x10) << 0x18 | (local_58 >> 0x18) << 0x10) >> 0x10) +\n                     ((local_58 & 0xff) << 8 | local_58 >> 8 & 0xff) * 0x10000;\n        }\n        local_60._0_4_ = local_44 + 1;\n        local_44 = (uint *)((int)local_60._0_4_ + local_58);\nLAB_002e355c:\n        uVar26 = CONCAT44(local_60._0_4_,local_60._4_4_);\n        uVar7 = uVar26;\n        if (uVar22 == 0x31) goto LAB_002e313c;\n        if (uVar22 < 0x32) goto LAB_002e3118;\n        puVar9 = (uint *)param_1[0xc];\n      }\n      else {\n        if (4 < uVar19) {\n          if (uVar19 != 5) {\n            if (uVar19 != 6) {\n              return 0;\n            }\n            pcVar25 = *(code **)(**(int **)(*param_1 + 8) + 0xc);\n            if (pcVar25 == (code *)PTR_is_big_endian_004c2950) {\n              local_30 = puVar18;\n              iVar10 = (**(code **)(**(int **)(*param_1 + 8) + 0xe8))();\n            }\n            else {\n              local_30 = puVar18;\n              iVar10 = (*pcVar25)();\n            }\n            puVar9 = (uint *)*local_44;\n            if (iVar10 == 0) {\n              puVar9 = (uint *)(((((uint)puVar9 >> 0x10) << 0x18 | ((uint)puVar9 >> 0x18) << 0x10)\n                                >> 0x10) +\n                               (((uint)puVar9 & 0xff) << 8 | (uint)puVar9 >> 8 & 0xff) * 0x10000);\n            }\n            local_44 = local_44 + 1;\n            iVar10 = *param_1;\n            local_50._0_4_ = (uint *)0x0;\n            local_50._4_4_ = puVar9;\n            goto LAB_002e3708;\n          }\n          pcVar25 = *(code **)(**(int **)(*param_1 + 8) + 0xc);\n          if (pcVar25 == (code *)PTR_is_big_endian_004c2950) {\n            iVar8 = (**(code **)(**(int **)(*param_1 + 8) + 0xe8))();\n          }\n          else {\n            iVar8 = (*pcVar25)();\n          }\n          uVar6 = *(ushort *)local_44;\n          if (iVar8 == 0) {\n            uVar6 = CONCAT11(*(byte *)((int)local_44 + 1),*(byte *)local_44);\n          }\n          local_60._4_4_ = (uint *)(uint)uVar6;\n          local_44 = (uint *)((int)local_44 + 2);\n          local_60._0_4_ = (uint *)0x0;\n          goto LAB_002e355c;\n        }\n        if (uVar19 != 1) {\n          if (uVar19 != 3) {\n            return 0;\n          }\n          pcVar25 = *(code **)(**(int **)(*param_1 + 8) + 0xc);\n          if (pcVar25 == (code *)PTR_is_big_endian_004c2950) {\n            iVar8 = (**(code **)(**(int **)(*param_1 + 8) + 0xe8))();\n          }\n          else {\n            iVar8 = (*pcVar25)();\n          }\n          uVar6 = *(ushort *)local_44;\n          if (iVar8 == 0) {\n            uVar6 = CONCAT11(*(byte *)((int)local_44 + 1),*(byte *)local_44);\n          }\n          local_58 = (uint)uVar6;\n          local_60._0_4_ = (uint *)((int)local_44 + 2);\n          local_44 = (uint *)((int)local_60._0_4_ + local_58);\n          goto LAB_002e355c;\n        }\n        iVar8 = *param_1;\n        if (*(int *)(iVar8 + 0x4c) == 4) {\n          pcVar25 = *(code **)(**(int **)(iVar8 + 8) + 0xc);\n          if (pcVar25 == (code *)PTR_is_big_endian_004c2950) {\n            local_30 = puVar18;\n            iVar8 = (**(code **)(**(int **)(iVar8 + 8) + 0xe8))();\n          }\n          else {\n            local_30 = puVar18;\n            iVar8 = (*pcVar25)();\n          }\n          uVar15 = *local_44;\n          if (iVar8 == 0) {\n            uVar15 = (((uVar15 >> 0x10) << 0x18 | (uVar15 >> 0x18) << 0x10) >> 0x10) +\n                     ((uVar15 & 0xff) << 8 | uVar15 >> 8 & 0xff) * 0x10000;\n          }\n          local_44 = local_44 + 1;\n          uVar26 = (ulonglong)uVar15;\n        }\n        else {\n          local_30 = puVar18;\n          uVar26 = (*local_34)(iVar8,&local_44);\n        }\n        local_50 = uVar26;\n        local_58 = (*local_3c)(*param_1);\n        uVar26 = local_50;\n        if (uVar22 == 0x31) goto LAB_002e30bc;\n        if (uVar22 < 0x32) {\n          if (uVar22 != 1) goto joined_r0x002e3124;\n          goto LAB_002e39b4;\n        }\n        uVar7 = local_50;\n        if (uVar22 == 0x6e) goto LAB_002e313c;\n        if (uVar22 != 0x2007) goto LAB_002e339c;\n        puVar9 = (uint *)param_1[0xc];\n      }\n      while( true ) {\n        if (puVar9 == (uint *)param_1[0xd]) goto LAB_002e2f98;\nLAB_002e314c:\n        local_60._0_4_ = (uint *)(uVar26 >> 0x20);\n        local_60._4_4_ = (uint *)uVar26;\n        iVar17 = iVar17 + 8;\n        puVar9[1] = local_64;\n        puVar9[2] = (uint)local_60._0_4_;\n        *puVar9 = local_68;\n        puVar9[3] = (uint)local_60._4_4_;\n        puVar9[4] = local_58;\n        puVar9[5] = local_54;\n        param_1[0xc] = (int)(puVar9 + 6);\n        iVar8 = param_1[10];\n        local_60 = uVar26;\n        if (iVar17 == iVar21) goto LAB_002e2fb8;\n        puVar9 = (uint *)(*(int *)(iVar8 + 8) + iVar17);\n        uVar19 = puVar9[1];\n        uVar22 = *puVar9;\n        if (uVar19 != 0x16) goto LAB_002e2dd0;\nLAB_002e31a8:\n        uVar19 = (uint)*(byte *)local_44;\n        puVar9 = (uint *)((int)local_44 + 1);\n        if ((char)*(byte *)local_44 < '\0') {\n          local_60 = uVar26;\n          (*(code *)PTR_read_unsigned_LEB_128_x_004c2980)(puVar9,&local_48,uVar19);\n          puVar9 = (uint *)((int)local_44 + local_48);\n          uVar19 = extraout_v1;\n          uVar26 = local_60;\n        }\n        else {\n          local_48 = 1;\n        }\n        puVar11 = (uint *)((int)puVar9 - iVar20);\n        puVar18 = (uint *)((int)puVar11 + param_1[3]);\n        iVar8 = (uint)(puVar18 < puVar11) + ((int)puVar11 >> 0x1f) + param_1[2];\n        local_64 = uVar19;\n        local_44 = puVar9;\n        if (uVar19 != 0xe) break;\nLAB_002e31fc:\n        local_58 = 0;\n        iVar8 = *param_1;\n        local_68 = uVar22;\n        local_30 = puVar18;\n        local_60 = uVar26;\n        if (*(int *)(iVar8 + 0x48) == 4) {\n          pcVar25 = *(code **)(**(int **)(iVar8 + 8) + 0xc);\n          if (pcVar25 == (code *)PTR_is_big_endian_004c2950) {\n            iVar8 = (**(code **)(**(int **)(iVar8 + 8) + 0xe8))();\n          }\n          else {\n            iVar8 = (*pcVar25)();\n          }\n          uVar19 = *local_44;\n          if (iVar8 == 0) {\n            uVar19 = (((uVar19 >> 0x10) << 0x18 | (uVar19 >> 0x18) << 0x10) >> 0x10) +\n                     ((uVar19 & 0xff) << 8 | uVar19 >> 8 & 0xff) * 0x10000;\n          }\n          local_44 = local_44 + 1;\n          uVar26 = (ulonglong)uVar19;\n        }\n        else {\n          uVar26 = (*local_34)(iVar8,&local_44);\n        }\n        local_50 = uVar26;\n        local_58 = (*local_3c)(*param_1);\n        uVar7 = local_50;\n        if (uVar22 != 0x31) {\n          uVar26 = local_50;\n          if (uVar22 < 0x32) {\n            if ((uVar22 != 1) && (uVar22 == 3)) {\nLAB_002e3284:\n              param_1[0x16] = local_58;\n              *(ulonglong *)(param_1 + 0x10) = uVar26;\n              uVar7 = uVar26;\n            }\n          }\n          else {\n            if (uVar22 == 0x6e) {\nLAB_002e387c:\n              param_1[0x16] = local_58;\n            }\n            else {\n              if (uVar22 != 0x2007) goto LAB_002e313c;\n              param_1[0x16] = local_58;\n            }\n            *(ulonglong *)(param_1 + 0x14) = uVar26;\n            uVar7 = uVar26;\n          }\n        }\nLAB_002e313c:\n        puVar9 = (uint *)param_1[0xc];\n        uVar26 = uVar7;\n      }\n    } while( true );\n  }" { (labeled_statement "LAB_002e2d90:\n    local_3c = (code *)PTR_lookup_reloc_004c2994;" statement_identifier : (expression_statement "local_3c = (code *)PTR_lookup_reloc_004c2994;" (assignment_expression "local_3c = (code *)PTR_lookup_reloc_004c2994" identifier = (cast_expression "(code *)PTR_lookup_reloc_004c2994" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) ;)) (expression_statement "iVar17 = 0;" (assignment_expression "iVar17 = 0" identifier = number_literal) ;) (expression_statement "local_34 = (code *)PTR_read_from_pointer<64>_004c2998;" (assignment_expression "local_34 = (code *)PTR_read_from_pointer<64>_004c2998" identifier = (binary_expression "(code *)PTR_read_from_pointer<64>_004c2998" (binary_expression "(code *)PTR_read_from_pointer<64" (cast_expression "(code *)PTR_read_from_pointer" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier) < number_literal) > identifier)) ;) (expression_statement "local_40 = &local_50;" (assignment_expression "local_40 = &local_50" identifier = (pointer_expression "&local_50" & identifier)) ;) (labeled_statement "LAB_002e2db4:\n    puVar9 = (uint *)(*(int *)(iVar8 + 8) + iVar17);" statement_identifier : (expression_statement "puVar9 = (uint *)(*(int *)(iVar8 + 8) + iVar17);" (assignment_expression "puVar9 = (uint *)(*(int *)(iVar8 + 8) + iVar17)" identifier = (cast_expression "(uint *)(*(int *)(iVar8 + 8) + iVar17)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*(int *)(iVar8 + 8) + iVar17)" ( (binary_expression "*(int *)(iVar8 + 8) + iVar17" (pointer_expression "*(int *)(iVar8 + 8)" * (cast_expression "(int *)(iVar8 + 8)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar8 + 8)" ( (binary_expression "iVar8 + 8" identifier + number_literal) )))) + identifier) )))) ;)) (expression_statement "uVar19 = puVar9[1];" (assignment_expression "uVar19 = puVar9[1]" identifier = (subscript_expression "puVar9[1]" identifier [ number_literal ])) ;) (expression_statement "uVar22 = *puVar9;" (assignment_expression "uVar22 = *puVar9" identifier = (pointer_expression "*puVar9" * identifier)) ;) (expression_statement "uVar26 = local_60;" (assignment_expression "uVar26 = local_60" identifier = identifier) ;) (if_statement "if (uVar19 == 0x16) goto LAB_002e31a8;" if (parenthesized_expression "(uVar19 == 0x16)" ( (binary_expression "uVar19 == 0x16" identifier == number_literal) )) (goto_statement "goto LAB_002e31a8;" goto statement_identifier ;)) (labeled_statement "LAB_002e2dd0:\n    puVar9 = (uint *)((int)local_44 - iVar20);" statement_identifier : (expression_statement "puVar9 = (uint *)((int)local_44 - iVar20);" (assignment_expression "puVar9 = (uint *)((int)local_44 - iVar20)" identifier = (cast_expression "(uint *)((int)local_44 - iVar20)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)local_44 - iVar20)" ( (binary_expression "(int)local_44 - iVar20" (cast_expression "(int)local_44" ( (type_descriptor "int" primitive_type) ) identifier) - identifier) )))) ;)) (expression_statement "puVar18 = (uint *)((int)puVar9 + param_1[3]);" (assignment_expression "puVar18 = (uint *)((int)puVar9 + param_1[3])" identifier = (cast_expression "(uint *)((int)puVar9 + param_1[3])" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)puVar9 + param_1[3])" ( (binary_expression "(int)puVar9 + param_1[3]" (cast_expression "(int)puVar9" ( (type_descriptor "int" primitive_type) ) identifier) + (subscript_expression "param_1[3]" identifier [ number_literal ])) )))) ;) (expression_statement "iVar8 = (uint)(puVar18 < puVar9) + ((int)puVar9 >> 0x1f) + param_1[2];" (assignment_expression "iVar8 = (uint)(puVar18 < puVar9) + ((int)puVar9 >> 0x1f) + param_1[2]" identifier = (binary_expression "(uint)(puVar18 < puVar9) + ((int)puVar9 >> 0x1f) + param_1[2]" (binary_expression "(uint)(puVar18 < puVar9) + ((int)puVar9 >> 0x1f)" (call_expression "(uint)(puVar18 < puVar9)" (parenthesized_expression "(uint)" ( identifier )) (argument_list "(puVar18 < puVar9)" ( (binary_expression "puVar18 < puVar9" identifier < identifier) ))) + (parenthesized_expression "((int)puVar9 >> 0x1f)" ( (binary_expression "(int)puVar9 >> 0x1f" (cast_expression "(int)puVar9" ( (type_descriptor "int" primitive_type) ) identifier) >> number_literal) ))) + (subscript_expression "param_1[2]" identifier [ number_literal ]))) ;) (expression_statement "local_64 = uVar19;" (assignment_expression "local_64 = uVar19" identifier = identifier) ;) (if_statement "if (uVar19 == 0xe) goto LAB_002e31fc;" if (parenthesized_expression "(uVar19 == 0xe)" ( (binary_expression "uVar19 == 0xe" identifier == number_literal) )) (goto_statement "goto LAB_002e31fc;" goto statement_identifier ;)) (do_statement "do {\n      local_60._4_4_ = (uint *)uVar26;\n      local_58 = 0;\n      local_68 = uVar22;\n      local_64 = uVar19;\n      local_60 = uVar26;\n      if (0xe < uVar19) {\n        if (uVar19 == 0x15) {\n          if ((char)*(byte *)local_44 < '\0') {\n            uVar26 = (*(code *)PTR_read_unsigned_LEB_128_x_004c2980)\n                               ((uint *)((int)local_44 + 1),&local_48);\n            local_44 = (uint *)((int)local_44 + local_48);\n          }\n          else {\n            uVar26 = (ulonglong)*(byte *)local_44;\n            local_48 = 1;\n            local_44 = (uint *)((int)local_44 + 1);\n          }\n          goto joined_r0x002e3998;\n        }\n        if (0x15 < uVar19) {\n          if (uVar19 == 0x19) {\n            local_60._4_4_ = (uint *)0x1;\n            local_60._0_4_ = (uint *)0x0;\n          }\n          else {\n            if (uVar19 < 0x1a) {\n              if (uVar19 != 0x17) {\n                if (uVar19 != 0x18) {\n                  return 0;\n                }\n                goto LAB_002e32bc;\n              }\n              iVar8 = *param_1;\n              if (*(int *)(iVar8 + 0x48) == 4) {\n                pcVar25 = *(code **)(**(int **)(iVar8 + 8) + 0xc);\n                if (pcVar25 == (code *)PTR_is_big_endian_004c2950) {\n                  local_30 = puVar18;\n                  iVar8 = (**(code **)(**(int **)(iVar8 + 8) + 0xe8))();\n                }\n                else {\n                  local_30 = puVar18;\n                  iVar8 = (*pcVar25)();\n                }\n                uVar15 = *local_44;\n                if (iVar8 == 0) {\n                  uVar15 = (((uVar15 >> 0x10) << 0x18 | (uVar15 >> 0x18) << 0x10) >> 0x10) +\n                           ((uVar15 & 0xff) << 8 | uVar15 >> 8 & 0xff) * 0x10000;\n                }\n                local_44 = local_44 + 1;\n                uVar26 = (ulonglong)uVar15;\n              }\n              else {\n                local_30 = puVar18;\n                uVar26 = (*local_34)(iVar8,&local_44);\n              }\n              iVar8 = *param_1;\n              goto LAB_002e3970;\n            }\n            if (uVar19 != 0x20) {\n              if (uVar19 < 0x20) {\n                return 0;\n              }\n              if (1 < uVar19 - 0x1f01) {\n                return 0;\n              }\nLAB_002e34d8:\n              if ((char)*(byte *)local_44 < '\0') {\n                uVar26 = (*(code *)PTR_read_unsigned_LEB_128_x_004c2980)\n                                   ((uint *)((int)local_44 + 1),&local_48);\n                local_44 = (uint *)((int)local_44 + local_48);\n              }\n              else {\n                uVar26 = (ulonglong)*(byte *)local_44;\n                local_48 = 1;\n                local_44 = (uint *)((int)local_44 + 1);\n              }\n              goto LAB_002e382c;\n            }\n            pcVar25 = *(code **)(**(int **)(*param_1 + 8) + 0xc);\n            if (pcVar25 == (code *)PTR_is_big_endian_004c2950) {\n              iVar8 = (**(code **)(**(int **)(*param_1 + 8) + 0xe8))();\n            }\n            else {\n              iVar8 = (*pcVar25)();\n            }\n            local_60._4_4_ = (uint *)local_44[1];\n            local_60._0_4_ = (uint *)*local_44;\n            if (iVar8 == 0) {\n              uVar15 = (uint)local_60._4_4_ & 0xff;\n              uVar16 = (uint)local_60._4_4_ >> 8;\n              uVar2 = (uint)local_60._4_4_ >> 0x10;\n              uVar4 = (uint)local_60._4_4_ >> 0x18;\n              local_60._4_4_ =\n                   (uint *)(((((uint)local_60._0_4_ >> 0x10) << 0x18 |\n                             ((uint)local_60._0_4_ >> 0x18) << 0x10) >> 0x10) +\n                           (((uint)local_60._0_4_ & 0xff) << 8 | (uint)local_60._0_4_ >> 8 & 0xff) *\n                           0x10000);\n              local_60._0_4_ =\n                   (uint *)(((uVar2 << 0x18 | uVar4 << 0x10) >> 0x10) +\n                           (uVar15 << 8 | uVar16 & 0xff) * 0x10000);\n            }\n            local_44 = local_44 + 2;\n          }\n          uVar7 = CONCAT44(local_60._0_4_,local_60._4_4_);\n          if (uVar22 == 0x6e) goto LAB_002e313c;\n          uVar7 = CONCAT44(local_60._0_4_,local_60._4_4_);\n          uVar26 = CONCAT44(local_60._0_4_,local_60._4_4_);\n          if (uVar22 == 0x2007) goto LAB_002e313c;\n          goto joined_r0x002e3124;\n        }\n        if (uVar19 == 0x11) {\n          puVar9 = (uint *)((int)local_44 + 1);\n          uVar15 = (uint)*(byte *)local_44;\n          uVar26 = (ulonglong)uVar15;\n          local_44 = puVar9;\n          if (uVar22 == 0x31) goto LAB_002e30bc;\n          if (0x31 < uVar22) {\n            uVar26 = (ulonglong)uVar15;\n            if ((uVar22 != 0x6e) && (uVar26 = (ulonglong)uVar15, uVar22 != 0x2007)) {\n              uVar7 = (ulonglong)uVar15;\n              if (uVar22 != 0x47) goto LAB_002e313c;\n              param_1[0x18] = 0;\n              param_1[0x19] = uVar15;\n              uVar7 = (ulonglong)uVar15;\n              goto LAB_002e313c;\n            }\n            goto LAB_002e3858;\n          }\n          if (uVar22 == 1) {\n            param_1[8] = 0;\n            param_1[9] = uVar15;\n            uVar7 = (ulonglong)uVar15;\n            goto LAB_002e313c;\n          }\n          goto joined_r0x002e3124;\n        }\n        if (uVar19 < 0x12) {\n          if (uVar19 == 0xf) goto LAB_002e34d8;\n          if (uVar19 != 0x10) {\n            return 0;\n          }\n          iVar10 = *param_1;\n          iVar8 = *(int *)(iVar10 + 0x48);\n          if (*(uint *)(iVar10 + 0x50) < 3) {\n            iVar8 = *(int *)(iVar10 + 0x4c);\n          }\n          if (iVar8 == 4) {\n            pcVar25 = *(code **)(**(int **)(iVar10 + 8) + 0xc);\n            if (pcVar25 == (code *)PTR_is_big_endian_004c2950) {\n              local_30 = puVar18;\n              iVar8 = (**(code **)(**(int **)(iVar10 + 8) + 0xe8))();\n            }\n            else {\n              local_30 = puVar18;\n              iVar8 = (*pcVar25)();\n            }\n            uVar15 = *local_44;\n            if (iVar8 == 0) {\n              uVar15 = (((uVar15 >> 0x10) << 0x18 | (uVar15 >> 0x18) << 0x10) >> 0x10) +\n                       ((uVar15 & 0xff) << 8 | uVar15 >> 8 & 0xff) * 0x10000;\n            }\n            local_44 = local_44 + 1;\n            uVar26 = (ulonglong)uVar15;\n          }\n          else {\n            local_30 = puVar18;\n            uVar26 = (*local_34)(iVar10,&local_44);\n          }\n          local_50 = uVar26;\n          local_58 = (*local_3c)(*param_1);\n          uVar26 = local_50;\n        }\n        else {\n          if (uVar19 == 0x13) {\n            pcVar25 = *(code **)(**(int **)(*param_1 + 8) + 0xc);\n            if (pcVar25 == (code *)PTR_is_big_endian_004c2950) {\n              local_30 = puVar18;\n              iVar8 = (**(code **)(**(int **)(*param_1 + 8) + 0xe8))();\n            }\n            else {\n              local_30 = puVar18;\n              iVar8 = (*pcVar25)();\n            }\n            uVar15 = *local_44;\n            if (iVar8 == 0) {\n              uVar15 = (((uVar15 >> 0x10) << 0x18 | (uVar15 >> 0x18) << 0x10) >> 0x10) +\n                       ((uVar15 & 0xff) << 8 | uVar15 >> 8 & 0xff) * 0x10000;\n            }\n            local_44 = local_44 + 1;\n            iVar8 = *param_1;\n            uVar26 = (ulonglong)uVar15;\n          }\n          else {\n            if (uVar19 < 0x14) {\n              pcVar25 = *(code **)(**(int **)(*param_1 + 8) + 0xc);\n              if (pcVar25 == (code *)PTR_is_big_endian_004c2950) {\n                iVar8 = (**(code **)(**(int **)(*param_1 + 8) + 0xe8))();\n              }\n              else {\n                iVar8 = (*pcVar25)();\n              }\n              uVar6 = *(ushort *)local_44;\n              if (iVar8 == 0) {\n                uVar6 = CONCAT11(*(byte *)((int)local_44 + 1),*(byte *)local_44);\n              }\n              local_44 = (uint *)((int)local_44 + 2);\n              uVar26 = (ulonglong)uVar6;\n              goto joined_r0x002e3998;\n            }\n            pcVar25 = *(code **)(**(int **)(*param_1 + 8) + 0xc);\n            if (pcVar25 == (code *)PTR_is_big_endian_004c2950) {\n              local_30 = puVar18;\n              iVar8 = (**(code **)(**(int **)(*param_1 + 8) + 0xe8))();\n            }\n            else {\n              local_30 = puVar18;\n              iVar8 = (*pcVar25)();\n            }\n            uVar15 = local_44[1];\n            uVar16 = *local_44;\n            if (iVar8 == 0) {\n              uVar2 = uVar15 & 0xff;\n              uVar4 = uVar15 >> 8;\n              uVar3 = uVar15 >> 0x10;\n              uVar5 = uVar15 >> 0x18;\n              uVar15 = (((uVar16 >> 0x10) << 0x18 | (uVar16 >> 0x18) << 0x10) >> 0x10) +\n                       ((uVar16 & 0xff) << 8 | uVar16 >> 8 & 0xff) * 0x10000;\n              uVar16 = ((uVar3 << 0x18 | uVar5 << 0x10) >> 0x10) +\n                       (uVar2 << 8 | uVar4 & 0xff) * 0x10000;\n            }\n            uVar26 = CONCAT44(uVar16,uVar15);\n            local_44 = local_44 + 2;\n            iVar8 = *param_1;\n          }\nLAB_002e3970:\n          local_50 = uVar26;\n          local_58 = (*local_3c)(iVar8);\n          uVar26 = local_50;\n        }\njoined_r0x002e3998:\n        if (uVar22 == 0x31) {\nLAB_002e30bc:\n          *(ulonglong *)(param_1 + 0x1a) = uVar26;\n          uVar7 = uVar26;\n          goto LAB_002e313c;\n        }\n        if (uVar22 < 0x32) {\n          uVar7 = uVar26;\n          if (uVar22 != 1) goto LAB_002e313c;\nLAB_002e39b4:\n          uVar7 = uVar26;\n          if (local_58 != 0) goto LAB_002e313c;\n          *(ulonglong *)(param_1 + 8) = uVar26;\n          goto LAB_002e313c;\n        }\n        if ((uVar22 != 0x6e) && (uVar22 != 0x2007)) {\nLAB_002e339c:\n          uVar7 = uVar26;\n          if (uVar22 != 0x47) goto LAB_002e313c;\n          *(ulonglong *)(param_1 + 0x18) = uVar26;\n          goto LAB_002e313c;\n        }\n        goto LAB_002e3858;\n      }\n      if (uVar19 == 7) {\n        pcVar25 = *(code **)(**(int **)(*param_1 + 8) + 0xc);\n        if (pcVar25 == (code *)PTR_is_big_endian_004c2950) {\n          local_30 = puVar18;\n          iVar10 = (**(code **)(**(int **)(*param_1 + 8) + 0xe8))();\n        }\n        else {\n          local_30 = puVar18;\n          iVar10 = (*pcVar25)();\n        }\n        local_50._4_4_ = (uint *)local_44[1];\n        puVar9 = (uint *)*local_44;\n        if (iVar10 == 0) {\n          uVar15 = (uint)local_50._4_4_ & 0xff;\n          uVar16 = (uint)local_50._4_4_ >> 8;\n          uVar2 = (uint)local_50._4_4_ >> 0x10;\n          uVar4 = (uint)local_50._4_4_ >> 0x18;\n          local_50._4_4_ =\n               (uint *)(((((uint)puVar9 >> 0x10) << 0x18 | ((uint)puVar9 >> 0x18) << 0x10) >> 0x10)\n                       + (((uint)puVar9 & 0xff) << 8 | (uint)puVar9 >> 8 & 0xff) * 0x10000);\n          puVar9 = (uint *)(((uVar2 << 0x18 | uVar4 << 0x10) >> 0x10) +\n                           (uVar15 << 8 | uVar16 & 0xff) * 0x10000);\n        }\n        local_44 = local_44 + 2;\n        iVar10 = *param_1;\n        local_50._0_4_ = puVar9;\nLAB_002e3708:\n        local_58 = (*local_3c)(iVar10,puVar9,iVar8,local_30,local_40);\n        local_60._4_4_ = local_50._4_4_;\n        local_60._0_4_ = local_50._0_4_;\n        goto LAB_002e355c;\n      }\n      if (7 < uVar19) {\n        if (uVar19 == 10) {\n          local_60._0_4_ = (uint *)((int)local_44 + 1);\n          local_58 = (uint)*(byte *)local_44;\n          local_44 = (uint *)((int)local_60._0_4_ + local_58);\n          goto LAB_002e355c;\n        }\n        if (uVar19 < 0xb) {\n          if (uVar19 != 8) {\n            if (uVar19 != 9) {\n              return 0;\n            }\nLAB_002e32bc:\n            uVar15 = (uint)*(byte *)local_44;\n            pbVar14 = (byte *)((int)local_44 + 1);\n            if ((char)*(byte *)local_44 < '\0') {\n              (*(code *)PTR_read_unsigned_LEB_128_x_004c2980)(pbVar14,&local_48);\n              pbVar14 = (byte *)((int)local_44 + local_48);\n              uVar15 = extraout_v1_00;\n            }\n            else {\n              local_48 = 1;\n            }\n            uVar26 = CONCAT44(pbVar14,local_60._4_4_);\n            local_58 = uVar15;\n            local_44 = (uint *)((int)local_44 + uVar15 + local_48);\n            goto LAB_002e382c;\n          }\n          local_60._0_4_ = local_44;\n          local_30 = local_44;\n          local_48 = (*(code *)PTR_strlen_004c5b9c)(local_44);\n          uVar26 = CONCAT44(local_60._0_4_,local_60._4_4_);\n          local_44 = (uint *)((int)local_30 + local_48 + 1);\n          uVar7 = CONCAT44(local_60._0_4_,local_60._4_4_);\n          if (uVar22 == 0x31) goto LAB_002e313c;\n          if (0x31 < uVar22) {\n            if ((uVar22 != 0x6e) &&\n               (uVar7 = CONCAT44(local_60._0_4_,local_60._4_4_), uVar22 != 0x2007))\n            goto LAB_002e313c;\n            param_1[0x12] = (int)local_30;\n            uVar7 = uVar26;\n            goto LAB_002e313c;\n          }\nLAB_002e3118:\n          uVar7 = uVar26;\n          if (uVar22 == 1) goto LAB_002e313c;\njoined_r0x002e3124:\n          uVar7 = uVar26;\n          if (uVar22 != 3) goto LAB_002e313c;\n          local_60._0_4_ = (uint *)(uVar26 >> 0x20);\n          if (uVar19 == 8) {\n            param_1[0xf] = (int)local_60._0_4_;\n            goto LAB_002e313c;\n          }\n          if (uVar19 != 0xe) goto LAB_002e313c;\n          goto LAB_002e3284;\n        }\n        if (uVar19 < 0xd) {\n          uVar26 = (ulonglong)*(byte *)local_44;\n          local_44 = (uint *)((int)local_44 + 1);\nLAB_002e382c:\n          uVar7 = uVar26;\n          if (uVar22 == 0x31) goto LAB_002e313c;\n          if (uVar22 < 0x32) goto LAB_002e3118;\n        }\n        else {\n          bVar1 = *(byte *)local_44;\n          uVar15 = (uint)bVar1;\n          puVar9 = (uint *)((int)local_44 + 1);\n          if ((char)bVar1 < '\0') {\n            uVar26 = (*(code *)PTR_read_signed_LEB_128_x_004c297c)(puVar9,&local_48,uVar15);\n            puVar9 = (uint *)((int)local_44 + local_48);\n          }\n          else {\n            local_48 = 1;\n            uVar26 = (ulonglong)uVar15;\n            if ((bVar1 & 0x40) != 0) {\n              uVar26 = CONCAT44(0xffffffff,uVar15 | 0xffffff80);\n            }\n          }\n          local_44 = puVar9;\n          uVar7 = uVar26;\n          if (uVar22 == 0x31) goto LAB_002e313c;\n          if (uVar22 < 0x32) {\n            puVar9 = (uint *)param_1[0xc];\n            if (puVar9 != (uint *)param_1[0xd]) goto LAB_002e314c;\nLAB_002e2f98:\n            iVar17 = iVar17 + 8;\n            local_60 = uVar26;\n            std::\n            vector<gold::Dwarf_die::Attribute_value,std::allocator<gold::Dwarf_die::Attribute_value>>\n            ::_M_realloc_insert<gold::Dwarf_die::Attribute_value_const&>(local_38,puVar9,&local_68);\n            iVar8 = param_1[10];\n            if (iVar17 == iVar21) goto LAB_002e2fb8;\n            goto LAB_002e2db4;\n          }\n        }\n        if ((uVar22 != 0x6e) && (uVar7 = uVar26, uVar22 != 0x2007)) goto LAB_002e313c;\nLAB_002e3858:\n        local_60._0_4_ = (uint *)(uVar26 >> 0x20);\n        uVar7 = uVar26;\n        if (uVar19 == 8) {\n          param_1[0x12] = (int)local_60._0_4_;\n          goto LAB_002e313c;\n        }\n        if (uVar19 != 0xe) goto LAB_002e313c;\n        goto LAB_002e387c;\n      }\n      if (uVar19 == 4) {\n        pcVar25 = *(code **)(**(int **)(*param_1 + 8) + 0xc);\n        if (pcVar25 == (code *)PTR_is_big_endian_004c2950) {\n          iVar8 = (**(code **)(**(int **)(*param_1 + 8) + 0xe8))();\n        }\n        else {\n          iVar8 = (*pcVar25)();\n        }\n        local_58 = *local_44;\n        if (iVar8 == 0) {\n          local_58 = (((local_58 >> 0x10) << 0x18 | (local_58 >> 0x18) << 0x10) >> 0x10) +\n                     ((local_58 & 0xff) << 8 | local_58 >> 8 & 0xff) * 0x10000;\n        }\n        local_60._0_4_ = local_44 + 1;\n        local_44 = (uint *)((int)local_60._0_4_ + local_58);\nLAB_002e355c:\n        uVar26 = CONCAT44(local_60._0_4_,local_60._4_4_);\n        uVar7 = uVar26;\n        if (uVar22 == 0x31) goto LAB_002e313c;\n        if (uVar22 < 0x32) goto LAB_002e3118;\n        puVar9 = (uint *)param_1[0xc];\n      }\n      else {\n        if (4 < uVar19) {\n          if (uVar19 != 5) {\n            if (uVar19 != 6) {\n              return 0;\n            }\n            pcVar25 = *(code **)(**(int **)(*param_1 + 8) + 0xc);\n            if (pcVar25 == (code *)PTR_is_big_endian_004c2950) {\n              local_30 = puVar18;\n              iVar10 = (**(code **)(**(int **)(*param_1 + 8) + 0xe8))();\n            }\n            else {\n              local_30 = puVar18;\n              iVar10 = (*pcVar25)();\n            }\n            puVar9 = (uint *)*local_44;\n            if (iVar10 == 0) {\n              puVar9 = (uint *)(((((uint)puVar9 >> 0x10) << 0x18 | ((uint)puVar9 >> 0x18) << 0x10)\n                                >> 0x10) +\n                               (((uint)puVar9 & 0xff) << 8 | (uint)puVar9 >> 8 & 0xff) * 0x10000);\n            }\n            local_44 = local_44 + 1;\n            iVar10 = *param_1;\n            local_50._0_4_ = (uint *)0x0;\n            local_50._4_4_ = puVar9;\n            goto LAB_002e3708;\n          }\n          pcVar25 = *(code **)(**(int **)(*param_1 + 8) + 0xc);\n          if (pcVar25 == (code *)PTR_is_big_endian_004c2950) {\n            iVar8 = (**(code **)(**(int **)(*param_1 + 8) + 0xe8))();\n          }\n          else {\n            iVar8 = (*pcVar25)();\n          }\n          uVar6 = *(ushort *)local_44;\n          if (iVar8 == 0) {\n            uVar6 = CONCAT11(*(byte *)((int)local_44 + 1),*(byte *)local_44);\n          }\n          local_60._4_4_ = (uint *)(uint)uVar6;\n          local_44 = (uint *)((int)local_44 + 2);\n          local_60._0_4_ = (uint *)0x0;\n          goto LAB_002e355c;\n        }\n        if (uVar19 != 1) {\n          if (uVar19 != 3) {\n            return 0;\n          }\n          pcVar25 = *(code **)(**(int **)(*param_1 + 8) + 0xc);\n          if (pcVar25 == (code *)PTR_is_big_endian_004c2950) {\n            iVar8 = (**(code **)(**(int **)(*param_1 + 8) + 0xe8))();\n          }\n          else {\n            iVar8 = (*pcVar25)();\n          }\n          uVar6 = *(ushort *)local_44;\n          if (iVar8 == 0) {\n            uVar6 = CONCAT11(*(byte *)((int)local_44 + 1),*(byte *)local_44);\n          }\n          local_58 = (uint)uVar6;\n          local_60._0_4_ = (uint *)((int)local_44 + 2);\n          local_44 = (uint *)((int)local_60._0_4_ + local_58);\n          goto LAB_002e355c;\n        }\n        iVar8 = *param_1;\n        if (*(int *)(iVar8 + 0x4c) == 4) {\n          pcVar25 = *(code **)(**(int **)(iVar8 + 8) + 0xc);\n          if (pcVar25 == (code *)PTR_is_big_endian_004c2950) {\n            local_30 = puVar18;\n            iVar8 = (**(code **)(**(int **)(iVar8 + 8) + 0xe8))();\n          }\n          else {\n            local_30 = puVar18;\n            iVar8 = (*pcVar25)();\n          }\n          uVar15 = *local_44;\n          if (iVar8 == 0) {\n            uVar15 = (((uVar15 >> 0x10) << 0x18 | (uVar15 >> 0x18) << 0x10) >> 0x10) +\n                     ((uVar15 & 0xff) << 8 | uVar15 >> 8 & 0xff) * 0x10000;\n          }\n          local_44 = local_44 + 1;\n          uVar26 = (ulonglong)uVar15;\n        }\n        else {\n          local_30 = puVar18;\n          uVar26 = (*local_34)(iVar8,&local_44);\n        }\n        local_50 = uVar26;\n        local_58 = (*local_3c)(*param_1);\n        uVar26 = local_50;\n        if (uVar22 == 0x31) goto LAB_002e30bc;\n        if (uVar22 < 0x32) {\n          if (uVar22 != 1) goto joined_r0x002e3124;\n          goto LAB_002e39b4;\n        }\n        uVar7 = local_50;\n        if (uVar22 == 0x6e) goto LAB_002e313c;\n        if (uVar22 != 0x2007) goto LAB_002e339c;\n        puVar9 = (uint *)param_1[0xc];\n      }\n      while( true ) {\n        if (puVar9 == (uint *)param_1[0xd]) goto LAB_002e2f98;\nLAB_002e314c:\n        local_60._0_4_ = (uint *)(uVar26 >> 0x20);\n        local_60._4_4_ = (uint *)uVar26;\n        iVar17 = iVar17 + 8;\n        puVar9[1] = local_64;\n        puVar9[2] = (uint)local_60._0_4_;\n        *puVar9 = local_68;\n        puVar9[3] = (uint)local_60._4_4_;\n        puVar9[4] = local_58;\n        puVar9[5] = local_54;\n        param_1[0xc] = (int)(puVar9 + 6);\n        iVar8 = param_1[10];\n        local_60 = uVar26;\n        if (iVar17 == iVar21) goto LAB_002e2fb8;\n        puVar9 = (uint *)(*(int *)(iVar8 + 8) + iVar17);\n        uVar19 = puVar9[1];\n        uVar22 = *puVar9;\n        if (uVar19 != 0x16) goto LAB_002e2dd0;\nLAB_002e31a8:\n        uVar19 = (uint)*(byte *)local_44;\n        puVar9 = (uint *)((int)local_44 + 1);\n        if ((char)*(byte *)local_44 < '\0') {\n          local_60 = uVar26;\n          (*(code *)PTR_read_unsigned_LEB_128_x_004c2980)(puVar9,&local_48,uVar19);\n          puVar9 = (uint *)((int)local_44 + local_48);\n          uVar19 = extraout_v1;\n          uVar26 = local_60;\n        }\n        else {\n          local_48 = 1;\n        }\n        puVar11 = (uint *)((int)puVar9 - iVar20);\n        puVar18 = (uint *)((int)puVar11 + param_1[3]);\n        iVar8 = (uint)(puVar18 < puVar11) + ((int)puVar11 >> 0x1f) + param_1[2];\n        local_64 = uVar19;\n        local_44 = puVar9;\n        if (uVar19 != 0xe) break;\nLAB_002e31fc:\n        local_58 = 0;\n        iVar8 = *param_1;\n        local_68 = uVar22;\n        local_30 = puVar18;\n        local_60 = uVar26;\n        if (*(int *)(iVar8 + 0x48) == 4) {\n          pcVar25 = *(code **)(**(int **)(iVar8 + 8) + 0xc);\n          if (pcVar25 == (code *)PTR_is_big_endian_004c2950) {\n            iVar8 = (**(code **)(**(int **)(iVar8 + 8) + 0xe8))();\n          }\n          else {\n            iVar8 = (*pcVar25)();\n          }\n          uVar19 = *local_44;\n          if (iVar8 == 0) {\n            uVar19 = (((uVar19 >> 0x10) << 0x18 | (uVar19 >> 0x18) << 0x10) >> 0x10) +\n                     ((uVar19 & 0xff) << 8 | uVar19 >> 8 & 0xff) * 0x10000;\n          }\n          local_44 = local_44 + 1;\n          uVar26 = (ulonglong)uVar19;\n        }\n        else {\n          uVar26 = (*local_34)(iVar8,&local_44);\n        }\n        local_50 = uVar26;\n        local_58 = (*local_3c)(*param_1);\n        uVar7 = local_50;\n        if (uVar22 != 0x31) {\n          uVar26 = local_50;\n          if (uVar22 < 0x32) {\n            if ((uVar22 != 1) && (uVar22 == 3)) {\nLAB_002e3284:\n              param_1[0x16] = local_58;\n              *(ulonglong *)(param_1 + 0x10) = uVar26;\n              uVar7 = uVar26;\n            }\n          }\n          else {\n            if (uVar22 == 0x6e) {\nLAB_002e387c:\n              param_1[0x16] = local_58;\n            }\n            else {\n              if (uVar22 != 0x2007) goto LAB_002e313c;\n              param_1[0x16] = local_58;\n            }\n            *(ulonglong *)(param_1 + 0x14) = uVar26;\n            uVar7 = uVar26;\n          }\n        }\nLAB_002e313c:\n        puVar9 = (uint *)param_1[0xc];\n        uVar26 = uVar7;\n      }\n    } while( true );" do (compound_statement "{\n      local_60._4_4_ = (uint *)uVar26;\n      local_58 = 0;\n      local_68 = uVar22;\n      local_64 = uVar19;\n      local_60 = uVar26;\n      if (0xe < uVar19) {\n        if (uVar19 == 0x15) {\n          if ((char)*(byte *)local_44 < '\0') {\n            uVar26 = (*(code *)PTR_read_unsigned_LEB_128_x_004c2980)\n                               ((uint *)((int)local_44 + 1),&local_48);\n            local_44 = (uint *)((int)local_44 + local_48);\n          }\n          else {\n            uVar26 = (ulonglong)*(byte *)local_44;\n            local_48 = 1;\n            local_44 = (uint *)((int)local_44 + 1);\n          }\n          goto joined_r0x002e3998;\n        }\n        if (0x15 < uVar19) {\n          if (uVar19 == 0x19) {\n            local_60._4_4_ = (uint *)0x1;\n            local_60._0_4_ = (uint *)0x0;\n          }\n          else {\n            if (uVar19 < 0x1a) {\n              if (uVar19 != 0x17) {\n                if (uVar19 != 0x18) {\n                  return 0;\n                }\n                goto LAB_002e32bc;\n              }\n              iVar8 = *param_1;\n              if (*(int *)(iVar8 + 0x48) == 4) {\n                pcVar25 = *(code **)(**(int **)(iVar8 + 8) + 0xc);\n                if (pcVar25 == (code *)PTR_is_big_endian_004c2950) {\n                  local_30 = puVar18;\n                  iVar8 = (**(code **)(**(int **)(iVar8 + 8) + 0xe8))();\n                }\n                else {\n                  local_30 = puVar18;\n                  iVar8 = (*pcVar25)();\n                }\n                uVar15 = *local_44;\n                if (iVar8 == 0) {\n                  uVar15 = (((uVar15 >> 0x10) << 0x18 | (uVar15 >> 0x18) << 0x10) >> 0x10) +\n                           ((uVar15 & 0xff) << 8 | uVar15 >> 8 & 0xff) * 0x10000;\n                }\n                local_44 = local_44 + 1;\n                uVar26 = (ulonglong)uVar15;\n              }\n              else {\n                local_30 = puVar18;\n                uVar26 = (*local_34)(iVar8,&local_44);\n              }\n              iVar8 = *param_1;\n              goto LAB_002e3970;\n            }\n            if (uVar19 != 0x20) {\n              if (uVar19 < 0x20) {\n                return 0;\n              }\n              if (1 < uVar19 - 0x1f01) {\n                return 0;\n              }\nLAB_002e34d8:\n              if ((char)*(byte *)local_44 < '\0') {\n                uVar26 = (*(code *)PTR_read_unsigned_LEB_128_x_004c2980)\n                                   ((uint *)((int)local_44 + 1),&local_48);\n                local_44 = (uint *)((int)local_44 + local_48);\n              }\n              else {\n                uVar26 = (ulonglong)*(byte *)local_44;\n                local_48 = 1;\n                local_44 = (uint *)((int)local_44 + 1);\n              }\n              goto LAB_002e382c;\n            }\n            pcVar25 = *(code **)(**(int **)(*param_1 + 8) + 0xc);\n            if (pcVar25 == (code *)PTR_is_big_endian_004c2950) {\n              iVar8 = (**(code **)(**(int **)(*param_1 + 8) + 0xe8))();\n            }\n            else {\n              iVar8 = (*pcVar25)();\n            }\n            local_60._4_4_ = (uint *)local_44[1];\n            local_60._0_4_ = (uint *)*local_44;\n            if (iVar8 == 0) {\n              uVar15 = (uint)local_60._4_4_ & 0xff;\n              uVar16 = (uint)local_60._4_4_ >> 8;\n              uVar2 = (uint)local_60._4_4_ >> 0x10;\n              uVar4 = (uint)local_60._4_4_ >> 0x18;\n              local_60._4_4_ =\n                   (uint *)(((((uint)local_60._0_4_ >> 0x10) << 0x18 |\n                             ((uint)local_60._0_4_ >> 0x18) << 0x10) >> 0x10) +\n                           (((uint)local_60._0_4_ & 0xff) << 8 | (uint)local_60._0_4_ >> 8 & 0xff) *\n                           0x10000);\n              local_60._0_4_ =\n                   (uint *)(((uVar2 << 0x18 | uVar4 << 0x10) >> 0x10) +\n                           (uVar15 << 8 | uVar16 & 0xff) * 0x10000);\n            }\n            local_44 = local_44 + 2;\n          }\n          uVar7 = CONCAT44(local_60._0_4_,local_60._4_4_);\n          if (uVar22 == 0x6e) goto LAB_002e313c;\n          uVar7 = CONCAT44(local_60._0_4_,local_60._4_4_);\n          uVar26 = CONCAT44(local_60._0_4_,local_60._4_4_);\n          if (uVar22 == 0x2007) goto LAB_002e313c;\n          goto joined_r0x002e3124;\n        }\n        if (uVar19 == 0x11) {\n          puVar9 = (uint *)((int)local_44 + 1);\n          uVar15 = (uint)*(byte *)local_44;\n          uVar26 = (ulonglong)uVar15;\n          local_44 = puVar9;\n          if (uVar22 == 0x31) goto LAB_002e30bc;\n          if (0x31 < uVar22) {\n            uVar26 = (ulonglong)uVar15;\n            if ((uVar22 != 0x6e) && (uVar26 = (ulonglong)uVar15, uVar22 != 0x2007)) {\n              uVar7 = (ulonglong)uVar15;\n              if (uVar22 != 0x47) goto LAB_002e313c;\n              param_1[0x18] = 0;\n              param_1[0x19] = uVar15;\n              uVar7 = (ulonglong)uVar15;\n              goto LAB_002e313c;\n            }\n            goto LAB_002e3858;\n          }\n          if (uVar22 == 1) {\n            param_1[8] = 0;\n            param_1[9] = uVar15;\n            uVar7 = (ulonglong)uVar15;\n            goto LAB_002e313c;\n          }\n          goto joined_r0x002e3124;\n        }\n        if (uVar19 < 0x12) {\n          if (uVar19 == 0xf) goto LAB_002e34d8;\n          if (uVar19 != 0x10) {\n            return 0;\n          }\n          iVar10 = *param_1;\n          iVar8 = *(int *)(iVar10 + 0x48);\n          if (*(uint *)(iVar10 + 0x50) < 3) {\n            iVar8 = *(int *)(iVar10 + 0x4c);\n          }\n          if (iVar8 == 4) {\n            pcVar25 = *(code **)(**(int **)(iVar10 + 8) + 0xc);\n            if (pcVar25 == (code *)PTR_is_big_endian_004c2950) {\n              local_30 = puVar18;\n              iVar8 = (**(code **)(**(int **)(iVar10 + 8) + 0xe8))();\n            }\n            else {\n              local_30 = puVar18;\n              iVar8 = (*pcVar25)();\n            }\n            uVar15 = *local_44;\n            if (iVar8 == 0) {\n              uVar15 = (((uVar15 >> 0x10) << 0x18 | (uVar15 >> 0x18) << 0x10) >> 0x10) +\n                       ((uVar15 & 0xff) << 8 | uVar15 >> 8 & 0xff) * 0x10000;\n            }\n            local_44 = local_44 + 1;\n            uVar26 = (ulonglong)uVar15;\n          }\n          else {\n            local_30 = puVar18;\n            uVar26 = (*local_34)(iVar10,&local_44);\n          }\n          local_50 = uVar26;\n          local_58 = (*local_3c)(*param_1);\n          uVar26 = local_50;\n        }\n        else {\n          if (uVar19 == 0x13) {\n            pcVar25 = *(code **)(**(int **)(*param_1 + 8) + 0xc);\n            if (pcVar25 == (code *)PTR_is_big_endian_004c2950) {\n              local_30 = puVar18;\n              iVar8 = (**(code **)(**(int **)(*param_1 + 8) + 0xe8))();\n            }\n            else {\n              local_30 = puVar18;\n              iVar8 = (*pcVar25)();\n            }\n            uVar15 = *local_44;\n            if (iVar8 == 0) {\n              uVar15 = (((uVar15 >> 0x10) << 0x18 | (uVar15 >> 0x18) << 0x10) >> 0x10) +\n                       ((uVar15 & 0xff) << 8 | uVar15 >> 8 & 0xff) * 0x10000;\n            }\n            local_44 = local_44 + 1;\n            iVar8 = *param_1;\n            uVar26 = (ulonglong)uVar15;\n          }\n          else {\n            if (uVar19 < 0x14) {\n              pcVar25 = *(code **)(**(int **)(*param_1 + 8) + 0xc);\n              if (pcVar25 == (code *)PTR_is_big_endian_004c2950) {\n                iVar8 = (**(code **)(**(int **)(*param_1 + 8) + 0xe8))();\n              }\n              else {\n                iVar8 = (*pcVar25)();\n              }\n              uVar6 = *(ushort *)local_44;\n              if (iVar8 == 0) {\n                uVar6 = CONCAT11(*(byte *)((int)local_44 + 1),*(byte *)local_44);\n              }\n              local_44 = (uint *)((int)local_44 + 2);\n              uVar26 = (ulonglong)uVar6;\n              goto joined_r0x002e3998;\n            }\n            pcVar25 = *(code **)(**(int **)(*param_1 + 8) + 0xc);\n            if (pcVar25 == (code *)PTR_is_big_endian_004c2950) {\n              local_30 = puVar18;\n              iVar8 = (**(code **)(**(int **)(*param_1 + 8) + 0xe8))();\n            }\n            else {\n              local_30 = puVar18;\n              iVar8 = (*pcVar25)();\n            }\n            uVar15 = local_44[1];\n            uVar16 = *local_44;\n            if (iVar8 == 0) {\n              uVar2 = uVar15 & 0xff;\n              uVar4 = uVar15 >> 8;\n              uVar3 = uVar15 >> 0x10;\n              uVar5 = uVar15 >> 0x18;\n              uVar15 = (((uVar16 >> 0x10) << 0x18 | (uVar16 >> 0x18) << 0x10) >> 0x10) +\n                       ((uVar16 & 0xff) << 8 | uVar16 >> 8 & 0xff) * 0x10000;\n              uVar16 = ((uVar3 << 0x18 | uVar5 << 0x10) >> 0x10) +\n                       (uVar2 << 8 | uVar4 & 0xff) * 0x10000;\n            }\n            uVar26 = CONCAT44(uVar16,uVar15);\n            local_44 = local_44 + 2;\n            iVar8 = *param_1;\n          }\nLAB_002e3970:\n          local_50 = uVar26;\n          local_58 = (*local_3c)(iVar8);\n          uVar26 = local_50;\n        }\njoined_r0x002e3998:\n        if (uVar22 == 0x31) {\nLAB_002e30bc:\n          *(ulonglong *)(param_1 + 0x1a) = uVar26;\n          uVar7 = uVar26;\n          goto LAB_002e313c;\n        }\n        if (uVar22 < 0x32) {\n          uVar7 = uVar26;\n          if (uVar22 != 1) goto LAB_002e313c;\nLAB_002e39b4:\n          uVar7 = uVar26;\n          if (local_58 != 0) goto LAB_002e313c;\n          *(ulonglong *)(param_1 + 8) = uVar26;\n          goto LAB_002e313c;\n        }\n        if ((uVar22 != 0x6e) && (uVar22 != 0x2007)) {\nLAB_002e339c:\n          uVar7 = uVar26;\n          if (uVar22 != 0x47) goto LAB_002e313c;\n          *(ulonglong *)(param_1 + 0x18) = uVar26;\n          goto LAB_002e313c;\n        }\n        goto LAB_002e3858;\n      }\n      if (uVar19 == 7) {\n        pcVar25 = *(code **)(**(int **)(*param_1 + 8) + 0xc);\n        if (pcVar25 == (code *)PTR_is_big_endian_004c2950) {\n          local_30 = puVar18;\n          iVar10 = (**(code **)(**(int **)(*param_1 + 8) + 0xe8))();\n        }\n        else {\n          local_30 = puVar18;\n          iVar10 = (*pcVar25)();\n        }\n        local_50._4_4_ = (uint *)local_44[1];\n        puVar9 = (uint *)*local_44;\n        if (iVar10 == 0) {\n          uVar15 = (uint)local_50._4_4_ & 0xff;\n          uVar16 = (uint)local_50._4_4_ >> 8;\n          uVar2 = (uint)local_50._4_4_ >> 0x10;\n          uVar4 = (uint)local_50._4_4_ >> 0x18;\n          local_50._4_4_ =\n               (uint *)(((((uint)puVar9 >> 0x10) << 0x18 | ((uint)puVar9 >> 0x18) << 0x10) >> 0x10)\n                       + (((uint)puVar9 & 0xff) << 8 | (uint)puVar9 >> 8 & 0xff) * 0x10000);\n          puVar9 = (uint *)(((uVar2 << 0x18 | uVar4 << 0x10) >> 0x10) +\n                           (uVar15 << 8 | uVar16 & 0xff) * 0x10000);\n        }\n        local_44 = local_44 + 2;\n        iVar10 = *param_1;\n        local_50._0_4_ = puVar9;\nLAB_002e3708:\n        local_58 = (*local_3c)(iVar10,puVar9,iVar8,local_30,local_40);\n        local_60._4_4_ = local_50._4_4_;\n        local_60._0_4_ = local_50._0_4_;\n        goto LAB_002e355c;\n      }\n      if (7 < uVar19) {\n        if (uVar19 == 10) {\n          local_60._0_4_ = (uint *)((int)local_44 + 1);\n          local_58 = (uint)*(byte *)local_44;\n          local_44 = (uint *)((int)local_60._0_4_ + local_58);\n          goto LAB_002e355c;\n        }\n        if (uVar19 < 0xb) {\n          if (uVar19 != 8) {\n            if (uVar19 != 9) {\n              return 0;\n            }\nLAB_002e32bc:\n            uVar15 = (uint)*(byte *)local_44;\n            pbVar14 = (byte *)((int)local_44 + 1);\n            if ((char)*(byte *)local_44 < '\0') {\n              (*(code *)PTR_read_unsigned_LEB_128_x_004c2980)(pbVar14,&local_48);\n              pbVar14 = (byte *)((int)local_44 + local_48);\n              uVar15 = extraout_v1_00;\n            }\n            else {\n              local_48 = 1;\n            }\n            uVar26 = CONCAT44(pbVar14,local_60._4_4_);\n            local_58 = uVar15;\n            local_44 = (uint *)((int)local_44 + uVar15 + local_48);\n            goto LAB_002e382c;\n          }\n          local_60._0_4_ = local_44;\n          local_30 = local_44;\n          local_48 = (*(code *)PTR_strlen_004c5b9c)(local_44);\n          uVar26 = CONCAT44(local_60._0_4_,local_60._4_4_);\n          local_44 = (uint *)((int)local_30 + local_48 + 1);\n          uVar7 = CONCAT44(local_60._0_4_,local_60._4_4_);\n          if (uVar22 == 0x31) goto LAB_002e313c;\n          if (0x31 < uVar22) {\n            if ((uVar22 != 0x6e) &&\n               (uVar7 = CONCAT44(local_60._0_4_,local_60._4_4_), uVar22 != 0x2007))\n            goto LAB_002e313c;\n            param_1[0x12] = (int)local_30;\n            uVar7 = uVar26;\n            goto LAB_002e313c;\n          }\nLAB_002e3118:\n          uVar7 = uVar26;\n          if (uVar22 == 1) goto LAB_002e313c;\njoined_r0x002e3124:\n          uVar7 = uVar26;\n          if (uVar22 != 3) goto LAB_002e313c;\n          local_60._0_4_ = (uint *)(uVar26 >> 0x20);\n          if (uVar19 == 8) {\n            param_1[0xf] = (int)local_60._0_4_;\n            goto LAB_002e313c;\n          }\n          if (uVar19 != 0xe) goto LAB_002e313c;\n          goto LAB_002e3284;\n        }\n        if (uVar19 < 0xd) {\n          uVar26 = (ulonglong)*(byte *)local_44;\n          local_44 = (uint *)((int)local_44 + 1);\nLAB_002e382c:\n          uVar7 = uVar26;\n          if (uVar22 == 0x31) goto LAB_002e313c;\n          if (uVar22 < 0x32) goto LAB_002e3118;\n        }\n        else {\n          bVar1 = *(byte *)local_44;\n          uVar15 = (uint)bVar1;\n          puVar9 = (uint *)((int)local_44 + 1);\n          if ((char)bVar1 < '\0') {\n            uVar26 = (*(code *)PTR_read_signed_LEB_128_x_004c297c)(puVar9,&local_48,uVar15);\n            puVar9 = (uint *)((int)local_44 + local_48);\n          }\n          else {\n            local_48 = 1;\n            uVar26 = (ulonglong)uVar15;\n            if ((bVar1 & 0x40) != 0) {\n              uVar26 = CONCAT44(0xffffffff,uVar15 | 0xffffff80);\n            }\n          }\n          local_44 = puVar9;\n          uVar7 = uVar26;\n          if (uVar22 == 0x31) goto LAB_002e313c;\n          if (uVar22 < 0x32) {\n            puVar9 = (uint *)param_1[0xc];\n            if (puVar9 != (uint *)param_1[0xd]) goto LAB_002e314c;\nLAB_002e2f98:\n            iVar17 = iVar17 + 8;\n            local_60 = uVar26;\n            std::\n            vector<gold::Dwarf_die::Attribute_value,std::allocator<gold::Dwarf_die::Attribute_value>>\n            ::_M_realloc_insert<gold::Dwarf_die::Attribute_value_const&>(local_38,puVar9,&local_68);\n            iVar8 = param_1[10];\n            if (iVar17 == iVar21) goto LAB_002e2fb8;\n            goto LAB_002e2db4;\n          }\n        }\n        if ((uVar22 != 0x6e) && (uVar7 = uVar26, uVar22 != 0x2007)) goto LAB_002e313c;\nLAB_002e3858:\n        local_60._0_4_ = (uint *)(uVar26 >> 0x20);\n        uVar7 = uVar26;\n        if (uVar19 == 8) {\n          param_1[0x12] = (int)local_60._0_4_;\n          goto LAB_002e313c;\n        }\n        if (uVar19 != 0xe) goto LAB_002e313c;\n        goto LAB_002e387c;\n      }\n      if (uVar19 == 4) {\n        pcVar25 = *(code **)(**(int **)(*param_1 + 8) + 0xc);\n        if (pcVar25 == (code *)PTR_is_big_endian_004c2950) {\n          iVar8 = (**(code **)(**(int **)(*param_1 + 8) + 0xe8))();\n        }\n        else {\n          iVar8 = (*pcVar25)();\n        }\n        local_58 = *local_44;\n        if (iVar8 == 0) {\n          local_58 = (((local_58 >> 0x10) << 0x18 | (local_58 >> 0x18) << 0x10) >> 0x10) +\n                     ((local_58 & 0xff) << 8 | local_58 >> 8 & 0xff) * 0x10000;\n        }\n        local_60._0_4_ = local_44 + 1;\n        local_44 = (uint *)((int)local_60._0_4_ + local_58);\nLAB_002e355c:\n        uVar26 = CONCAT44(local_60._0_4_,local_60._4_4_);\n        uVar7 = uVar26;\n        if (uVar22 == 0x31) goto LAB_002e313c;\n        if (uVar22 < 0x32) goto LAB_002e3118;\n        puVar9 = (uint *)param_1[0xc];\n      }\n      else {\n        if (4 < uVar19) {\n          if (uVar19 != 5) {\n            if (uVar19 != 6) {\n              return 0;\n            }\n            pcVar25 = *(code **)(**(int **)(*param_1 + 8) + 0xc);\n            if (pcVar25 == (code *)PTR_is_big_endian_004c2950) {\n              local_30 = puVar18;\n              iVar10 = (**(code **)(**(int **)(*param_1 + 8) + 0xe8))();\n            }\n            else {\n              local_30 = puVar18;\n              iVar10 = (*pcVar25)();\n            }\n            puVar9 = (uint *)*local_44;\n            if (iVar10 == 0) {\n              puVar9 = (uint *)(((((uint)puVar9 >> 0x10) << 0x18 | ((uint)puVar9 >> 0x18) << 0x10)\n                                >> 0x10) +\n                               (((uint)puVar9 & 0xff) << 8 | (uint)puVar9 >> 8 & 0xff) * 0x10000);\n            }\n            local_44 = local_44 + 1;\n            iVar10 = *param_1;\n            local_50._0_4_ = (uint *)0x0;\n            local_50._4_4_ = puVar9;\n            goto LAB_002e3708;\n          }\n          pcVar25 = *(code **)(**(int **)(*param_1 + 8) + 0xc);\n          if (pcVar25 == (code *)PTR_is_big_endian_004c2950) {\n            iVar8 = (**(code **)(**(int **)(*param_1 + 8) + 0xe8))();\n          }\n          else {\n            iVar8 = (*pcVar25)();\n          }\n          uVar6 = *(ushort *)local_44;\n          if (iVar8 == 0) {\n            uVar6 = CONCAT11(*(byte *)((int)local_44 + 1),*(byte *)local_44);\n          }\n          local_60._4_4_ = (uint *)(uint)uVar6;\n          local_44 = (uint *)((int)local_44 + 2);\n          local_60._0_4_ = (uint *)0x0;\n          goto LAB_002e355c;\n        }\n        if (uVar19 != 1) {\n          if (uVar19 != 3) {\n            return 0;\n          }\n          pcVar25 = *(code **)(**(int **)(*param_1 + 8) + 0xc);\n          if (pcVar25 == (code *)PTR_is_big_endian_004c2950) {\n            iVar8 = (**(code **)(**(int **)(*param_1 + 8) + 0xe8))();\n          }\n          else {\n            iVar8 = (*pcVar25)();\n          }\n          uVar6 = *(ushort *)local_44;\n          if (iVar8 == 0) {\n            uVar6 = CONCAT11(*(byte *)((int)local_44 + 1),*(byte *)local_44);\n          }\n          local_58 = (uint)uVar6;\n          local_60._0_4_ = (uint *)((int)local_44 + 2);\n          local_44 = (uint *)((int)local_60._0_4_ + local_58);\n          goto LAB_002e355c;\n        }\n        iVar8 = *param_1;\n        if (*(int *)(iVar8 + 0x4c) == 4) {\n          pcVar25 = *(code **)(**(int **)(iVar8 + 8) + 0xc);\n          if (pcVar25 == (code *)PTR_is_big_endian_004c2950) {\n            local_30 = puVar18;\n            iVar8 = (**(code **)(**(int **)(iVar8 + 8) + 0xe8))();\n          }\n          else {\n            local_30 = puVar18;\n            iVar8 = (*pcVar25)();\n          }\n          uVar15 = *local_44;\n          if (iVar8 == 0) {\n            uVar15 = (((uVar15 >> 0x10) << 0x18 | (uVar15 >> 0x18) << 0x10) >> 0x10) +\n                     ((uVar15 & 0xff) << 8 | uVar15 >> 8 & 0xff) * 0x10000;\n          }\n          local_44 = local_44 + 1;\n          uVar26 = (ulonglong)uVar15;\n        }\n        else {\n          local_30 = puVar18;\n          uVar26 = (*local_34)(iVar8,&local_44);\n        }\n        local_50 = uVar26;\n        local_58 = (*local_3c)(*param_1);\n        uVar26 = local_50;\n        if (uVar22 == 0x31) goto LAB_002e30bc;\n        if (uVar22 < 0x32) {\n          if (uVar22 != 1) goto joined_r0x002e3124;\n          goto LAB_002e39b4;\n        }\n        uVar7 = local_50;\n        if (uVar22 == 0x6e) goto LAB_002e313c;\n        if (uVar22 != 0x2007) goto LAB_002e339c;\n        puVar9 = (uint *)param_1[0xc];\n      }\n      while( true ) {\n        if (puVar9 == (uint *)param_1[0xd]) goto LAB_002e2f98;\nLAB_002e314c:\n        local_60._0_4_ = (uint *)(uVar26 >> 0x20);\n        local_60._4_4_ = (uint *)uVar26;\n        iVar17 = iVar17 + 8;\n        puVar9[1] = local_64;\n        puVar9[2] = (uint)local_60._0_4_;\n        *puVar9 = local_68;\n        puVar9[3] = (uint)local_60._4_4_;\n        puVar9[4] = local_58;\n        puVar9[5] = local_54;\n        param_1[0xc] = (int)(puVar9 + 6);\n        iVar8 = param_1[10];\n        local_60 = uVar26;\n        if (iVar17 == iVar21) goto LAB_002e2fb8;\n        puVar9 = (uint *)(*(int *)(iVar8 + 8) + iVar17);\n        uVar19 = puVar9[1];\n        uVar22 = *puVar9;\n        if (uVar19 != 0x16) goto LAB_002e2dd0;\nLAB_002e31a8:\n        uVar19 = (uint)*(byte *)local_44;\n        puVar9 = (uint *)((int)local_44 + 1);\n        if ((char)*(byte *)local_44 < '\0') {\n          local_60 = uVar26;\n          (*(code *)PTR_read_unsigned_LEB_128_x_004c2980)(puVar9,&local_48,uVar19);\n          puVar9 = (uint *)((int)local_44 + local_48);\n          uVar19 = extraout_v1;\n          uVar26 = local_60;\n        }\n        else {\n          local_48 = 1;\n        }\n        puVar11 = (uint *)((int)puVar9 - iVar20);\n        puVar18 = (uint *)((int)puVar11 + param_1[3]);\n        iVar8 = (uint)(puVar18 < puVar11) + ((int)puVar11 >> 0x1f) + param_1[2];\n        local_64 = uVar19;\n        local_44 = puVar9;\n        if (uVar19 != 0xe) break;\nLAB_002e31fc:\n        local_58 = 0;\n        iVar8 = *param_1;\n        local_68 = uVar22;\n        local_30 = puVar18;\n        local_60 = uVar26;\n        if (*(int *)(iVar8 + 0x48) == 4) {\n          pcVar25 = *(code **)(**(int **)(iVar8 + 8) + 0xc);\n          if (pcVar25 == (code *)PTR_is_big_endian_004c2950) {\n            iVar8 = (**(code **)(**(int **)(iVar8 + 8) + 0xe8))();\n          }\n          else {\n            iVar8 = (*pcVar25)();\n          }\n          uVar19 = *local_44;\n          if (iVar8 == 0) {\n            uVar19 = (((uVar19 >> 0x10) << 0x18 | (uVar19 >> 0x18) << 0x10) >> 0x10) +\n                     ((uVar19 & 0xff) << 8 | uVar19 >> 8 & 0xff) * 0x10000;\n          }\n          local_44 = local_44 + 1;\n          uVar26 = (ulonglong)uVar19;\n        }\n        else {\n          uVar26 = (*local_34)(iVar8,&local_44);\n        }\n        local_50 = uVar26;\n        local_58 = (*local_3c)(*param_1);\n        uVar7 = local_50;\n        if (uVar22 != 0x31) {\n          uVar26 = local_50;\n          if (uVar22 < 0x32) {\n            if ((uVar22 != 1) && (uVar22 == 3)) {\nLAB_002e3284:\n              param_1[0x16] = local_58;\n              *(ulonglong *)(param_1 + 0x10) = uVar26;\n              uVar7 = uVar26;\n            }\n          }\n          else {\n            if (uVar22 == 0x6e) {\nLAB_002e387c:\n              param_1[0x16] = local_58;\n            }\n            else {\n              if (uVar22 != 0x2007) goto LAB_002e313c;\n              param_1[0x16] = local_58;\n            }\n            *(ulonglong *)(param_1 + 0x14) = uVar26;\n            uVar7 = uVar26;\n          }\n        }\nLAB_002e313c:\n        puVar9 = (uint *)param_1[0xc];\n        uVar26 = uVar7;\n      }\n    }" { (expression_statement "local_60._4_4_ = (uint *)uVar26;" (assignment_expression "local_60._4_4_ = (uint *)uVar26" (field_expression "local_60._4_4_" identifier . field_identifier) = (cast_expression "(uint *)uVar26" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) ;) (expression_statement "local_58 = 0;" (assignment_expression "local_58 = 0" identifier = number_literal) ;) (expression_statement "local_68 = uVar22;" (assignment_expression "local_68 = uVar22" identifier = identifier) ;) (expression_statement "local_64 = uVar19;" (assignment_expression "local_64 = uVar19" identifier = identifier) ;) (expression_statement "local_60 = uVar26;" (assignment_expression "local_60 = uVar26" identifier = identifier) ;) (if_statement "if (0xe < uVar19) {\n        if (uVar19 == 0x15) {\n          if ((char)*(byte *)local_44 < '\0') {\n            uVar26 = (*(code *)PTR_read_unsigned_LEB_128_x_004c2980)\n                               ((uint *)((int)local_44 + 1),&local_48);\n            local_44 = (uint *)((int)local_44 + local_48);\n          }\n          else {\n            uVar26 = (ulonglong)*(byte *)local_44;\n            local_48 = 1;\n            local_44 = (uint *)((int)local_44 + 1);\n          }\n          goto joined_r0x002e3998;\n        }\n        if (0x15 < uVar19) {\n          if (uVar19 == 0x19) {\n            local_60._4_4_ = (uint *)0x1;\n            local_60._0_4_ = (uint *)0x0;\n          }\n          else {\n            if (uVar19 < 0x1a) {\n              if (uVar19 != 0x17) {\n                if (uVar19 != 0x18) {\n                  return 0;\n                }\n                goto LAB_002e32bc;\n              }\n              iVar8 = *param_1;\n              if (*(int *)(iVar8 + 0x48) == 4) {\n                pcVar25 = *(code **)(**(int **)(iVar8 + 8) + 0xc);\n                if (pcVar25 == (code *)PTR_is_big_endian_004c2950) {\n                  local_30 = puVar18;\n                  iVar8 = (**(code **)(**(int **)(iVar8 + 8) + 0xe8))();\n                }\n                else {\n                  local_30 = puVar18;\n                  iVar8 = (*pcVar25)();\n                }\n                uVar15 = *local_44;\n                if (iVar8 == 0) {\n                  uVar15 = (((uVar15 >> 0x10) << 0x18 | (uVar15 >> 0x18) << 0x10) >> 0x10) +\n                           ((uVar15 & 0xff) << 8 | uVar15 >> 8 & 0xff) * 0x10000;\n                }\n                local_44 = local_44 + 1;\n                uVar26 = (ulonglong)uVar15;\n              }\n              else {\n                local_30 = puVar18;\n                uVar26 = (*local_34)(iVar8,&local_44);\n              }\n              iVar8 = *param_1;\n              goto LAB_002e3970;\n            }\n            if (uVar19 != 0x20) {\n              if (uVar19 < 0x20) {\n                return 0;\n              }\n              if (1 < uVar19 - 0x1f01) {\n                return 0;\n              }\nLAB_002e34d8:\n              if ((char)*(byte *)local_44 < '\0') {\n                uVar26 = (*(code *)PTR_read_unsigned_LEB_128_x_004c2980)\n                                   ((uint *)((int)local_44 + 1),&local_48);\n                local_44 = (uint *)((int)local_44 + local_48);\n              }\n              else {\n                uVar26 = (ulonglong)*(byte *)local_44;\n                local_48 = 1;\n                local_44 = (uint *)((int)local_44 + 1);\n              }\n              goto LAB_002e382c;\n            }\n            pcVar25 = *(code **)(**(int **)(*param_1 + 8) + 0xc);\n            if (pcVar25 == (code *)PTR_is_big_endian_004c2950) {\n              iVar8 = (**(code **)(**(int **)(*param_1 + 8) + 0xe8))();\n            }\n            else {\n              iVar8 = (*pcVar25)();\n            }\n            local_60._4_4_ = (uint *)local_44[1];\n            local_60._0_4_ = (uint *)*local_44;\n            if (iVar8 == 0) {\n              uVar15 = (uint)local_60._4_4_ & 0xff;\n              uVar16 = (uint)local_60._4_4_ >> 8;\n              uVar2 = (uint)local_60._4_4_ >> 0x10;\n              uVar4 = (uint)local_60._4_4_ >> 0x18;\n              local_60._4_4_ =\n                   (uint *)(((((uint)local_60._0_4_ >> 0x10) << 0x18 |\n                             ((uint)local_60._0_4_ >> 0x18) << 0x10) >> 0x10) +\n                           (((uint)local_60._0_4_ & 0xff) << 8 | (uint)local_60._0_4_ >> 8 & 0xff) *\n                           0x10000);\n              local_60._0_4_ =\n                   (uint *)(((uVar2 << 0x18 | uVar4 << 0x10) >> 0x10) +\n                           (uVar15 << 8 | uVar16 & 0xff) * 0x10000);\n            }\n            local_44 = local_44 + 2;\n          }\n          uVar7 = CONCAT44(local_60._0_4_,local_60._4_4_);\n          if (uVar22 == 0x6e) goto LAB_002e313c;\n          uVar7 = CONCAT44(local_60._0_4_,local_60._4_4_);\n          uVar26 = CONCAT44(local_60._0_4_,local_60._4_4_);\n          if (uVar22 == 0x2007) goto LAB_002e313c;\n          goto joined_r0x002e3124;\n        }\n        if (uVar19 == 0x11) {\n          puVar9 = (uint *)((int)local_44 + 1);\n          uVar15 = (uint)*(byte *)local_44;\n          uVar26 = (ulonglong)uVar15;\n          local_44 = puVar9;\n          if (uVar22 == 0x31) goto LAB_002e30bc;\n          if (0x31 < uVar22) {\n            uVar26 = (ulonglong)uVar15;\n            if ((uVar22 != 0x6e) && (uVar26 = (ulonglong)uVar15, uVar22 != 0x2007)) {\n              uVar7 = (ulonglong)uVar15;\n              if (uVar22 != 0x47) goto LAB_002e313c;\n              param_1[0x18] = 0;\n              param_1[0x19] = uVar15;\n              uVar7 = (ulonglong)uVar15;\n              goto LAB_002e313c;\n            }\n            goto LAB_002e3858;\n          }\n          if (uVar22 == 1) {\n            param_1[8] = 0;\n            param_1[9] = uVar15;\n            uVar7 = (ulonglong)uVar15;\n            goto LAB_002e313c;\n          }\n          goto joined_r0x002e3124;\n        }\n        if (uVar19 < 0x12) {\n          if (uVar19 == 0xf) goto LAB_002e34d8;\n          if (uVar19 != 0x10) {\n            return 0;\n          }\n          iVar10 = *param_1;\n          iVar8 = *(int *)(iVar10 + 0x48);\n          if (*(uint *)(iVar10 + 0x50) < 3) {\n            iVar8 = *(int *)(iVar10 + 0x4c);\n          }\n          if (iVar8 == 4) {\n            pcVar25 = *(code **)(**(int **)(iVar10 + 8) + 0xc);\n            if (pcVar25 == (code *)PTR_is_big_endian_004c2950) {\n              local_30 = puVar18;\n              iVar8 = (**(code **)(**(int **)(iVar10 + 8) + 0xe8))();\n            }\n            else {\n              local_30 = puVar18;\n              iVar8 = (*pcVar25)();\n            }\n            uVar15 = *local_44;\n            if (iVar8 == 0) {\n              uVar15 = (((uVar15 >> 0x10) << 0x18 | (uVar15 >> 0x18) << 0x10) >> 0x10) +\n                       ((uVar15 & 0xff) << 8 | uVar15 >> 8 & 0xff) * 0x10000;\n            }\n            local_44 = local_44 + 1;\n            uVar26 = (ulonglong)uVar15;\n          }\n          else {\n            local_30 = puVar18;\n            uVar26 = (*local_34)(iVar10,&local_44);\n          }\n          local_50 = uVar26;\n          local_58 = (*local_3c)(*param_1);\n          uVar26 = local_50;\n        }\n        else {\n          if (uVar19 == 0x13) {\n            pcVar25 = *(code **)(**(int **)(*param_1 + 8) + 0xc);\n            if (pcVar25 == (code *)PTR_is_big_endian_004c2950) {\n              local_30 = puVar18;\n              iVar8 = (**(code **)(**(int **)(*param_1 + 8) + 0xe8))();\n            }\n            else {\n              local_30 = puVar18;\n              iVar8 = (*pcVar25)();\n            }\n            uVar15 = *local_44;\n            if (iVar8 == 0) {\n              uVar15 = (((uVar15 >> 0x10) << 0x18 | (uVar15 >> 0x18) << 0x10) >> 0x10) +\n                       ((uVar15 & 0xff) << 8 | uVar15 >> 8 & 0xff) * 0x10000;\n            }\n            local_44 = local_44 + 1;\n            iVar8 = *param_1;\n            uVar26 = (ulonglong)uVar15;\n          }\n          else {\n            if (uVar19 < 0x14) {\n              pcVar25 = *(code **)(**(int **)(*param_1 + 8) + 0xc);\n              if (pcVar25 == (code *)PTR_is_big_endian_004c2950) {\n                iVar8 = (**(code **)(**(int **)(*param_1 + 8) + 0xe8))();\n              }\n              else {\n                iVar8 = (*pcVar25)();\n              }\n              uVar6 = *(ushort *)local_44;\n              if (iVar8 == 0) {\n                uVar6 = CONCAT11(*(byte *)((int)local_44 + 1),*(byte *)local_44);\n              }\n              local_44 = (uint *)((int)local_44 + 2);\n              uVar26 = (ulonglong)uVar6;\n              goto joined_r0x002e3998;\n            }\n            pcVar25 = *(code **)(**(int **)(*param_1 + 8) + 0xc);\n            if (pcVar25 == (code *)PTR_is_big_endian_004c2950) {\n              local_30 = puVar18;\n              iVar8 = (**(code **)(**(int **)(*param_1 + 8) + 0xe8))();\n            }\n            else {\n              local_30 = puVar18;\n              iVar8 = (*pcVar25)();\n            }\n            uVar15 = local_44[1];\n            uVar16 = *local_44;\n            if (iVar8 == 0) {\n              uVar2 = uVar15 & 0xff;\n              uVar4 = uVar15 >> 8;\n              uVar3 = uVar15 >> 0x10;\n              uVar5 = uVar15 >> 0x18;\n              uVar15 = (((uVar16 >> 0x10) << 0x18 | (uVar16 >> 0x18) << 0x10) >> 0x10) +\n                       ((uVar16 & 0xff) << 8 | uVar16 >> 8 & 0xff) * 0x10000;\n              uVar16 = ((uVar3 << 0x18 | uVar5 << 0x10) >> 0x10) +\n                       (uVar2 << 8 | uVar4 & 0xff) * 0x10000;\n            }\n            uVar26 = CONCAT44(uVar16,uVar15);\n            local_44 = local_44 + 2;\n            iVar8 = *param_1;\n          }\nLAB_002e3970:\n          local_50 = uVar26;\n          local_58 = (*local_3c)(iVar8);\n          uVar26 = local_50;\n        }\njoined_r0x002e3998:\n        if (uVar22 == 0x31) {\nLAB_002e30bc:\n          *(ulonglong *)(param_1 + 0x1a) = uVar26;\n          uVar7 = uVar26;\n          goto LAB_002e313c;\n        }\n        if (uVar22 < 0x32) {\n          uVar7 = uVar26;\n          if (uVar22 != 1) goto LAB_002e313c;\nLAB_002e39b4:\n          uVar7 = uVar26;\n          if (local_58 != 0) goto LAB_002e313c;\n          *(ulonglong *)(param_1 + 8) = uVar26;\n          goto LAB_002e313c;\n        }\n        if ((uVar22 != 0x6e) && (uVar22 != 0x2007)) {\nLAB_002e339c:\n          uVar7 = uVar26;\n          if (uVar22 != 0x47) goto LAB_002e313c;\n          *(ulonglong *)(param_1 + 0x18) = uVar26;\n          goto LAB_002e313c;\n        }\n        goto LAB_002e3858;\n      }" if (parenthesized_expression "(0xe < uVar19)" ( (binary_expression "0xe < uVar19" number_literal < identifier) )) (compound_statement "{\n        if (uVar19 == 0x15) {\n          if ((char)*(byte *)local_44 < '\0') {\n            uVar26 = (*(code *)PTR_read_unsigned_LEB_128_x_004c2980)\n                               ((uint *)((int)local_44 + 1),&local_48);\n            local_44 = (uint *)((int)local_44 + local_48);\n          }\n          else {\n            uVar26 = (ulonglong)*(byte *)local_44;\n            local_48 = 1;\n            local_44 = (uint *)((int)local_44 + 1);\n          }\n          goto joined_r0x002e3998;\n        }\n        if (0x15 < uVar19) {\n          if (uVar19 == 0x19) {\n            local_60._4_4_ = (uint *)0x1;\n            local_60._0_4_ = (uint *)0x0;\n          }\n          else {\n            if (uVar19 < 0x1a) {\n              if (uVar19 != 0x17) {\n                if (uVar19 != 0x18) {\n                  return 0;\n                }\n                goto LAB_002e32bc;\n              }\n              iVar8 = *param_1;\n              if (*(int *)(iVar8 + 0x48) == 4) {\n                pcVar25 = *(code **)(**(int **)(iVar8 + 8) + 0xc);\n                if (pcVar25 == (code *)PTR_is_big_endian_004c2950) {\n                  local_30 = puVar18;\n                  iVar8 = (**(code **)(**(int **)(iVar8 + 8) + 0xe8))();\n                }\n                else {\n                  local_30 = puVar18;\n                  iVar8 = (*pcVar25)();\n                }\n                uVar15 = *local_44;\n                if (iVar8 == 0) {\n                  uVar15 = (((uVar15 >> 0x10) << 0x18 | (uVar15 >> 0x18) << 0x10) >> 0x10) +\n                           ((uVar15 & 0xff) << 8 | uVar15 >> 8 & 0xff) * 0x10000;\n                }\n                local_44 = local_44 + 1;\n                uVar26 = (ulonglong)uVar15;\n              }\n              else {\n                local_30 = puVar18;\n                uVar26 = (*local_34)(iVar8,&local_44);\n              }\n              iVar8 = *param_1;\n              goto LAB_002e3970;\n            }\n            if (uVar19 != 0x20) {\n              if (uVar19 < 0x20) {\n                return 0;\n              }\n              if (1 < uVar19 - 0x1f01) {\n                return 0;\n              }\nLAB_002e34d8:\n              if ((char)*(byte *)local_44 < '\0') {\n                uVar26 = (*(code *)PTR_read_unsigned_LEB_128_x_004c2980)\n                                   ((uint *)((int)local_44 + 1),&local_48);\n                local_44 = (uint *)((int)local_44 + local_48);\n              }\n              else {\n                uVar26 = (ulonglong)*(byte *)local_44;\n                local_48 = 1;\n                local_44 = (uint *)((int)local_44 + 1);\n              }\n              goto LAB_002e382c;\n            }\n            pcVar25 = *(code **)(**(int **)(*param_1 + 8) + 0xc);\n            if (pcVar25 == (code *)PTR_is_big_endian_004c2950) {\n              iVar8 = (**(code **)(**(int **)(*param_1 + 8) + 0xe8))();\n            }\n            else {\n              iVar8 = (*pcVar25)();\n            }\n            local_60._4_4_ = (uint *)local_44[1];\n            local_60._0_4_ = (uint *)*local_44;\n            if (iVar8 == 0) {\n              uVar15 = (uint)local_60._4_4_ & 0xff;\n              uVar16 = (uint)local_60._4_4_ >> 8;\n              uVar2 = (uint)local_60._4_4_ >> 0x10;\n              uVar4 = (uint)local_60._4_4_ >> 0x18;\n              local_60._4_4_ =\n                   (uint *)(((((uint)local_60._0_4_ >> 0x10) << 0x18 |\n                             ((uint)local_60._0_4_ >> 0x18) << 0x10) >> 0x10) +\n                           (((uint)local_60._0_4_ & 0xff) << 8 | (uint)local_60._0_4_ >> 8 & 0xff) *\n                           0x10000);\n              local_60._0_4_ =\n                   (uint *)(((uVar2 << 0x18 | uVar4 << 0x10) >> 0x10) +\n                           (uVar15 << 8 | uVar16 & 0xff) * 0x10000);\n            }\n            local_44 = local_44 + 2;\n          }\n          uVar7 = CONCAT44(local_60._0_4_,local_60._4_4_);\n          if (uVar22 == 0x6e) goto LAB_002e313c;\n          uVar7 = CONCAT44(local_60._0_4_,local_60._4_4_);\n          uVar26 = CONCAT44(local_60._0_4_,local_60._4_4_);\n          if (uVar22 == 0x2007) goto LAB_002e313c;\n          goto joined_r0x002e3124;\n        }\n        if (uVar19 == 0x11) {\n          puVar9 = (uint *)((int)local_44 + 1);\n          uVar15 = (uint)*(byte *)local_44;\n          uVar26 = (ulonglong)uVar15;\n          local_44 = puVar9;\n          if (uVar22 == 0x31) goto LAB_002e30bc;\n          if (0x31 < uVar22) {\n            uVar26 = (ulonglong)uVar15;\n            if ((uVar22 != 0x6e) && (uVar26 = (ulonglong)uVar15, uVar22 != 0x2007)) {\n              uVar7 = (ulonglong)uVar15;\n              if (uVar22 != 0x47) goto LAB_002e313c;\n              param_1[0x18] = 0;\n              param_1[0x19] = uVar15;\n              uVar7 = (ulonglong)uVar15;\n              goto LAB_002e313c;\n            }\n            goto LAB_002e3858;\n          }\n          if (uVar22 == 1) {\n            param_1[8] = 0;\n            param_1[9] = uVar15;\n            uVar7 = (ulonglong)uVar15;\n            goto LAB_002e313c;\n          }\n          goto joined_r0x002e3124;\n        }\n        if (uVar19 < 0x12) {\n          if (uVar19 == 0xf) goto LAB_002e34d8;\n          if (uVar19 != 0x10) {\n            return 0;\n          }\n          iVar10 = *param_1;\n          iVar8 = *(int *)(iVar10 + 0x48);\n          if (*(uint *)(iVar10 + 0x50) < 3) {\n            iVar8 = *(int *)(iVar10 + 0x4c);\n          }\n          if (iVar8 == 4) {\n            pcVar25 = *(code **)(**(int **)(iVar10 + 8) + 0xc);\n            if (pcVar25 == (code *)PTR_is_big_endian_004c2950) {\n              local_30 = puVar18;\n              iVar8 = (**(code **)(**(int **)(iVar10 + 8) + 0xe8))();\n            }\n            else {\n              local_30 = puVar18;\n              iVar8 = (*pcVar25)();\n            }\n            uVar15 = *local_44;\n            if (iVar8 == 0) {\n              uVar15 = (((uVar15 >> 0x10) << 0x18 | (uVar15 >> 0x18) << 0x10) >> 0x10) +\n                       ((uVar15 & 0xff) << 8 | uVar15 >> 8 & 0xff) * 0x10000;\n            }\n            local_44 = local_44 + 1;\n            uVar26 = (ulonglong)uVar15;\n          }\n          else {\n            local_30 = puVar18;\n            uVar26 = (*local_34)(iVar10,&local_44);\n          }\n          local_50 = uVar26;\n          local_58 = (*local_3c)(*param_1);\n          uVar26 = local_50;\n        }\n        else {\n          if (uVar19 == 0x13) {\n            pcVar25 = *(code **)(**(int **)(*param_1 + 8) + 0xc);\n            if (pcVar25 == (code *)PTR_is_big_endian_004c2950) {\n              local_30 = puVar18;\n              iVar8 = (**(code **)(**(int **)(*param_1 + 8) + 0xe8))();\n            }\n            else {\n              local_30 = puVar18;\n              iVar8 = (*pcVar25)();\n            }\n            uVar15 = *local_44;\n            if (iVar8 == 0) {\n              uVar15 = (((uVar15 >> 0x10) << 0x18 | (uVar15 >> 0x18) << 0x10) >> 0x10) +\n                       ((uVar15 & 0xff) << 8 | uVar15 >> 8 & 0xff) * 0x10000;\n            }\n            local_44 = local_44 + 1;\n            iVar8 = *param_1;\n            uVar26 = (ulonglong)uVar15;\n          }\n          else {\n            if (uVar19 < 0x14) {\n              pcVar25 = *(code **)(**(int **)(*param_1 + 8) + 0xc);\n              if (pcVar25 == (code *)PTR_is_big_endian_004c2950) {\n                iVar8 = (**(code **)(**(int **)(*param_1 + 8) + 0xe8))();\n              }\n              else {\n                iVar8 = (*pcVar25)();\n              }\n              uVar6 = *(ushort *)local_44;\n              if (iVar8 == 0) {\n                uVar6 = CONCAT11(*(byte *)((int)local_44 + 1),*(byte *)local_44);\n              }\n              local_44 = (uint *)((int)local_44 + 2);\n              uVar26 = (ulonglong)uVar6;\n              goto joined_r0x002e3998;\n            }\n            pcVar25 = *(code **)(**(int **)(*param_1 + 8) + 0xc);\n            if (pcVar25 == (code *)PTR_is_big_endian_004c2950) {\n              local_30 = puVar18;\n              iVar8 = (**(code **)(**(int **)(*param_1 + 8) + 0xe8))();\n            }\n            else {\n              local_30 = puVar18;\n              iVar8 = (*pcVar25)();\n            }\n            uVar15 = local_44[1];\n            uVar16 = *local_44;\n            if (iVar8 == 0) {\n              uVar2 = uVar15 & 0xff;\n              uVar4 = uVar15 >> 8;\n              uVar3 = uVar15 >> 0x10;\n              uVar5 = uVar15 >> 0x18;\n              uVar15 = (((uVar16 >> 0x10) << 0x18 | (uVar16 >> 0x18) << 0x10) >> 0x10) +\n                       ((uVar16 & 0xff) << 8 | uVar16 >> 8 & 0xff) * 0x10000;\n              uVar16 = ((uVar3 << 0x18 | uVar5 << 0x10) >> 0x10) +\n                       (uVar2 << 8 | uVar4 & 0xff) * 0x10000;\n            }\n            uVar26 = CONCAT44(uVar16,uVar15);\n            local_44 = local_44 + 2;\n            iVar8 = *param_1;\n          }\nLAB_002e3970:\n          local_50 = uVar26;\n          local_58 = (*local_3c)(iVar8);\n          uVar26 = local_50;\n        }\njoined_r0x002e3998:\n        if (uVar22 == 0x31) {\nLAB_002e30bc:\n          *(ulonglong *)(param_1 + 0x1a) = uVar26;\n          uVar7 = uVar26;\n          goto LAB_002e313c;\n        }\n        if (uVar22 < 0x32) {\n          uVar7 = uVar26;\n          if (uVar22 != 1) goto LAB_002e313c;\nLAB_002e39b4:\n          uVar7 = uVar26;\n          if (local_58 != 0) goto LAB_002e313c;\n          *(ulonglong *)(param_1 + 8) = uVar26;\n          goto LAB_002e313c;\n        }\n        if ((uVar22 != 0x6e) && (uVar22 != 0x2007)) {\nLAB_002e339c:\n          uVar7 = uVar26;\n          if (uVar22 != 0x47) goto LAB_002e313c;\n          *(ulonglong *)(param_1 + 0x18) = uVar26;\n          goto LAB_002e313c;\n        }\n        goto LAB_002e3858;\n      }" { (if_statement "if (uVar19 == 0x15) {\n          if ((char)*(byte *)local_44 < '\0') {\n            uVar26 = (*(code *)PTR_read_unsigned_LEB_128_x_004c2980)\n                               ((uint *)((int)local_44 + 1),&local_48);\n            local_44 = (uint *)((int)local_44 + local_48);\n          }\n          else {\n            uVar26 = (ulonglong)*(byte *)local_44;\n            local_48 = 1;\n            local_44 = (uint *)((int)local_44 + 1);\n          }\n          goto joined_r0x002e3998;\n        }" if (parenthesized_expression "(uVar19 == 0x15)" ( (binary_expression "uVar19 == 0x15" identifier == number_literal) )) (compound_statement "{\n          if ((char)*(byte *)local_44 < '\0') {\n            uVar26 = (*(code *)PTR_read_unsigned_LEB_128_x_004c2980)\n                               ((uint *)((int)local_44 + 1),&local_48);\n            local_44 = (uint *)((int)local_44 + local_48);\n          }\n          else {\n            uVar26 = (ulonglong)*(byte *)local_44;\n            local_48 = 1;\n            local_44 = (uint *)((int)local_44 + 1);\n          }\n          goto joined_r0x002e3998;\n        }" { (if_statement "if ((char)*(byte *)local_44 < '\0') {\n            uVar26 = (*(code *)PTR_read_unsigned_LEB_128_x_004c2980)\n                               ((uint *)((int)local_44 + 1),&local_48);\n            local_44 = (uint *)((int)local_44 + local_48);\n          }\n          else {\n            uVar26 = (ulonglong)*(byte *)local_44;\n            local_48 = 1;\n            local_44 = (uint *)((int)local_44 + 1);\n          }" if (parenthesized_expression "((char)*(byte *)local_44 < '\0')" ( (binary_expression "(char)*(byte *)local_44 < '\0'" (cast_expression "(char)*(byte *)local_44" ( (type_descriptor "char" primitive_type) ) (pointer_expression "*(byte *)local_44" * (cast_expression "(byte *)local_44" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier))) < (char_literal "'\0'" ' escape_sequence ')) )) (compound_statement "{\n            uVar26 = (*(code *)PTR_read_unsigned_LEB_128_x_004c2980)\n                               ((uint *)((int)local_44 + 1),&local_48);\n            local_44 = (uint *)((int)local_44 + local_48);\n          }" { (expression_statement "uVar26 = (*(code *)PTR_read_unsigned_LEB_128_x_004c2980)\n                               ((uint *)((int)local_44 + 1),&local_48);" (assignment_expression "uVar26 = (*(code *)PTR_read_unsigned_LEB_128_x_004c2980)\n                               ((uint *)((int)local_44 + 1),&local_48)" identifier = (call_expression "(*(code *)PTR_read_unsigned_LEB_128_x_004c2980)\n                               ((uint *)((int)local_44 + 1),&local_48)" (parenthesized_expression "(*(code *)PTR_read_unsigned_LEB_128_x_004c2980)" ( (pointer_expression "*(code *)PTR_read_unsigned_LEB_128_x_004c2980" * (cast_expression "(code *)PTR_read_unsigned_LEB_128_x_004c2980" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "((uint *)((int)local_44 + 1),&local_48)" ( (cast_expression "(uint *)((int)local_44 + 1)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)local_44 + 1)" ( (binary_expression "(int)local_44 + 1" (cast_expression "(int)local_44" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) ))) , (pointer_expression "&local_48" & identifier) )))) ;) (expression_statement "local_44 = (uint *)((int)local_44 + local_48);" (assignment_expression "local_44 = (uint *)((int)local_44 + local_48)" identifier = (cast_expression "(uint *)((int)local_44 + local_48)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)local_44 + local_48)" ( (binary_expression "(int)local_44 + local_48" (cast_expression "(int)local_44" ( (type_descriptor "int" primitive_type) ) identifier) + identifier) )))) ;) }) (else_clause "else {\n            uVar26 = (ulonglong)*(byte *)local_44;\n            local_48 = 1;\n            local_44 = (uint *)((int)local_44 + 1);\n          }" else (compound_statement "{\n            uVar26 = (ulonglong)*(byte *)local_44;\n            local_48 = 1;\n            local_44 = (uint *)((int)local_44 + 1);\n          }" { (expression_statement "uVar26 = (ulonglong)*(byte *)local_44;" (assignment_expression "uVar26 = (ulonglong)*(byte *)local_44" identifier = (binary_expression "(ulonglong)*(byte *)local_44" (parenthesized_expression "(ulonglong)" ( identifier )) * (cast_expression "(byte *)local_44" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier))) ;) (expression_statement "local_48 = 1;" (assignment_expression "local_48 = 1" identifier = number_literal) ;) (expression_statement "local_44 = (uint *)((int)local_44 + 1);" (assignment_expression "local_44 = (uint *)((int)local_44 + 1)" identifier = (cast_expression "(uint *)((int)local_44 + 1)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)local_44 + 1)" ( (binary_expression "(int)local_44 + 1" (cast_expression "(int)local_44" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) ;) }))) (goto_statement "goto joined_r0x002e3998;" goto statement_identifier ;) })) (if_statement "if (0x15 < uVar19) {\n          if (uVar19 == 0x19) {\n            local_60._4_4_ = (uint *)0x1;\n            local_60._0_4_ = (uint *)0x0;\n          }\n          else {\n            if (uVar19 < 0x1a) {\n              if (uVar19 != 0x17) {\n                if (uVar19 != 0x18) {\n                  return 0;\n                }\n                goto LAB_002e32bc;\n              }\n              iVar8 = *param_1;\n              if (*(int *)(iVar8 + 0x48) == 4) {\n                pcVar25 = *(code **)(**(int **)(iVar8 + 8) + 0xc);\n                if (pcVar25 == (code *)PTR_is_big_endian_004c2950) {\n                  local_30 = puVar18;\n                  iVar8 = (**(code **)(**(int **)(iVar8 + 8) + 0xe8))();\n                }\n                else {\n                  local_30 = puVar18;\n                  iVar8 = (*pcVar25)();\n                }\n                uVar15 = *local_44;\n                if (iVar8 == 0) {\n                  uVar15 = (((uVar15 >> 0x10) << 0x18 | (uVar15 >> 0x18) << 0x10) >> 0x10) +\n                           ((uVar15 & 0xff) << 8 | uVar15 >> 8 & 0xff) * 0x10000;\n                }\n                local_44 = local_44 + 1;\n                uVar26 = (ulonglong)uVar15;\n              }\n              else {\n                local_30 = puVar18;\n                uVar26 = (*local_34)(iVar8,&local_44);\n              }\n              iVar8 = *param_1;\n              goto LAB_002e3970;\n            }\n            if (uVar19 != 0x20) {\n              if (uVar19 < 0x20) {\n                return 0;\n              }\n              if (1 < uVar19 - 0x1f01) {\n                return 0;\n              }\nLAB_002e34d8:\n              if ((char)*(byte *)local_44 < '\0') {\n                uVar26 = (*(code *)PTR_read_unsigned_LEB_128_x_004c2980)\n                                   ((uint *)((int)local_44 + 1),&local_48);\n                local_44 = (uint *)((int)local_44 + local_48);\n              }\n              else {\n                uVar26 = (ulonglong)*(byte *)local_44;\n                local_48 = 1;\n                local_44 = (uint *)((int)local_44 + 1);\n              }\n              goto LAB_002e382c;\n            }\n            pcVar25 = *(code **)(**(int **)(*param_1 + 8) + 0xc);\n            if (pcVar25 == (code *)PTR_is_big_endian_004c2950) {\n              iVar8 = (**(code **)(**(int **)(*param_1 + 8) + 0xe8))();\n            }\n            else {\n              iVar8 = (*pcVar25)();\n            }\n            local_60._4_4_ = (uint *)local_44[1];\n            local_60._0_4_ = (uint *)*local_44;\n            if (iVar8 == 0) {\n              uVar15 = (uint)local_60._4_4_ & 0xff;\n              uVar16 = (uint)local_60._4_4_ >> 8;\n              uVar2 = (uint)local_60._4_4_ >> 0x10;\n              uVar4 = (uint)local_60._4_4_ >> 0x18;\n              local_60._4_4_ =\n                   (uint *)(((((uint)local_60._0_4_ >> 0x10) << 0x18 |\n                             ((uint)local_60._0_4_ >> 0x18) << 0x10) >> 0x10) +\n                           (((uint)local_60._0_4_ & 0xff) << 8 | (uint)local_60._0_4_ >> 8 & 0xff) *\n                           0x10000);\n              local_60._0_4_ =\n                   (uint *)(((uVar2 << 0x18 | uVar4 << 0x10) >> 0x10) +\n                           (uVar15 << 8 | uVar16 & 0xff) * 0x10000);\n            }\n            local_44 = local_44 + 2;\n          }\n          uVar7 = CONCAT44(local_60._0_4_,local_60._4_4_);\n          if (uVar22 == 0x6e) goto LAB_002e313c;\n          uVar7 = CONCAT44(local_60._0_4_,local_60._4_4_);\n          uVar26 = CONCAT44(local_60._0_4_,local_60._4_4_);\n          if (uVar22 == 0x2007) goto LAB_002e313c;\n          goto joined_r0x002e3124;\n        }" if (parenthesized_expression "(0x15 < uVar19)" ( (binary_expression "0x15 < uVar19" number_literal < identifier) )) (compound_statement "{\n          if (uVar19 == 0x19) {\n            local_60._4_4_ = (uint *)0x1;\n            local_60._0_4_ = (uint *)0x0;\n          }\n          else {\n            if (uVar19 < 0x1a) {\n              if (uVar19 != 0x17) {\n                if (uVar19 != 0x18) {\n                  return 0;\n                }\n                goto LAB_002e32bc;\n              }\n              iVar8 = *param_1;\n              if (*(int *)(iVar8 + 0x48) == 4) {\n                pcVar25 = *(code **)(**(int **)(iVar8 + 8) + 0xc);\n                if (pcVar25 == (code *)PTR_is_big_endian_004c2950) {\n                  local_30 = puVar18;\n                  iVar8 = (**(code **)(**(int **)(iVar8 + 8) + 0xe8))();\n                }\n                else {\n                  local_30 = puVar18;\n                  iVar8 = (*pcVar25)();\n                }\n                uVar15 = *local_44;\n                if (iVar8 == 0) {\n                  uVar15 = (((uVar15 >> 0x10) << 0x18 | (uVar15 >> 0x18) << 0x10) >> 0x10) +\n                           ((uVar15 & 0xff) << 8 | uVar15 >> 8 & 0xff) * 0x10000;\n                }\n                local_44 = local_44 + 1;\n                uVar26 = (ulonglong)uVar15;\n              }\n              else {\n                local_30 = puVar18;\n                uVar26 = (*local_34)(iVar8,&local_44);\n              }\n              iVar8 = *param_1;\n              goto LAB_002e3970;\n            }\n            if (uVar19 != 0x20) {\n              if (uVar19 < 0x20) {\n                return 0;\n              }\n              if (1 < uVar19 - 0x1f01) {\n                return 0;\n              }\nLAB_002e34d8:\n              if ((char)*(byte *)local_44 < '\0') {\n                uVar26 = (*(code *)PTR_read_unsigned_LEB_128_x_004c2980)\n                                   ((uint *)((int)local_44 + 1),&local_48);\n                local_44 = (uint *)((int)local_44 + local_48);\n              }\n              else {\n                uVar26 = (ulonglong)*(byte *)local_44;\n                local_48 = 1;\n                local_44 = (uint *)((int)local_44 + 1);\n              }\n              goto LAB_002e382c;\n            }\n            pcVar25 = *(code **)(**(int **)(*param_1 + 8) + 0xc);\n            if (pcVar25 == (code *)PTR_is_big_endian_004c2950) {\n              iVar8 = (**(code **)(**(int **)(*param_1 + 8) + 0xe8))();\n            }\n            else {\n              iVar8 = (*pcVar25)();\n            }\n            local_60._4_4_ = (uint *)local_44[1];\n            local_60._0_4_ = (uint *)*local_44;\n            if (iVar8 == 0) {\n              uVar15 = (uint)local_60._4_4_ & 0xff;\n              uVar16 = (uint)local_60._4_4_ >> 8;\n              uVar2 = (uint)local_60._4_4_ >> 0x10;\n              uVar4 = (uint)local_60._4_4_ >> 0x18;\n              local_60._4_4_ =\n                   (uint *)(((((uint)local_60._0_4_ >> 0x10) << 0x18 |\n                             ((uint)local_60._0_4_ >> 0x18) << 0x10) >> 0x10) +\n                           (((uint)local_60._0_4_ & 0xff) << 8 | (uint)local_60._0_4_ >> 8 & 0xff) *\n                           0x10000);\n              local_60._0_4_ =\n                   (uint *)(((uVar2 << 0x18 | uVar4 << 0x10) >> 0x10) +\n                           (uVar15 << 8 | uVar16 & 0xff) * 0x10000);\n            }\n            local_44 = local_44 + 2;\n          }\n          uVar7 = CONCAT44(local_60._0_4_,local_60._4_4_);\n          if (uVar22 == 0x6e) goto LAB_002e313c;\n          uVar7 = CONCAT44(local_60._0_4_,local_60._4_4_);\n          uVar26 = CONCAT44(local_60._0_4_,local_60._4_4_);\n          if (uVar22 == 0x2007) goto LAB_002e313c;\n          goto joined_r0x002e3124;\n        }" { (if_statement "if (uVar19 == 0x19) {\n            local_60._4_4_ = (uint *)0x1;\n            local_60._0_4_ = (uint *)0x0;\n          }\n          else {\n            if (uVar19 < 0x1a) {\n              if (uVar19 != 0x17) {\n                if (uVar19 != 0x18) {\n                  return 0;\n                }\n                goto LAB_002e32bc;\n              }\n              iVar8 = *param_1;\n              if (*(int *)(iVar8 + 0x48) == 4) {\n                pcVar25 = *(code **)(**(int **)(iVar8 + 8) + 0xc);\n                if (pcVar25 == (code *)PTR_is_big_endian_004c2950) {\n                  local_30 = puVar18;\n                  iVar8 = (**(code **)(**(int **)(iVar8 + 8) + 0xe8))();\n                }\n                else {\n                  local_30 = puVar18;\n                  iVar8 = (*pcVar25)();\n                }\n                uVar15 = *local_44;\n                if (iVar8 == 0) {\n                  uVar15 = (((uVar15 >> 0x10) << 0x18 | (uVar15 >> 0x18) << 0x10) >> 0x10) +\n                           ((uVar15 & 0xff) << 8 | uVar15 >> 8 & 0xff) * 0x10000;\n                }\n                local_44 = local_44 + 1;\n                uVar26 = (ulonglong)uVar15;\n              }\n              else {\n                local_30 = puVar18;\n                uVar26 = (*local_34)(iVar8,&local_44);\n              }\n              iVar8 = *param_1;\n              goto LAB_002e3970;\n            }\n            if (uVar19 != 0x20) {\n              if (uVar19 < 0x20) {\n                return 0;\n              }\n              if (1 < uVar19 - 0x1f01) {\n                return 0;\n              }\nLAB_002e34d8:\n              if ((char)*(byte *)local_44 < '\0') {\n                uVar26 = (*(code *)PTR_read_unsigned_LEB_128_x_004c2980)\n                                   ((uint *)((int)local_44 + 1),&local_48);\n                local_44 = (uint *)((int)local_44 + local_48);\n              }\n              else {\n                uVar26 = (ulonglong)*(byte *)local_44;\n                local_48 = 1;\n                local_44 = (uint *)((int)local_44 + 1);\n              }\n              goto LAB_002e382c;\n            }\n            pcVar25 = *(code **)(**(int **)(*param_1 + 8) + 0xc);\n            if (pcVar25 == (code *)PTR_is_big_endian_004c2950) {\n              iVar8 = (**(code **)(**(int **)(*param_1 + 8) + 0xe8))();\n            }\n            else {\n              iVar8 = (*pcVar25)();\n            }\n            local_60._4_4_ = (uint *)local_44[1];\n            local_60._0_4_ = (uint *)*local_44;\n            if (iVar8 == 0) {\n              uVar15 = (uint)local_60._4_4_ & 0xff;\n              uVar16 = (uint)local_60._4_4_ >> 8;\n              uVar2 = (uint)local_60._4_4_ >> 0x10;\n              uVar4 = (uint)local_60._4_4_ >> 0x18;\n              local_60._4_4_ =\n                   (uint *)(((((uint)local_60._0_4_ >> 0x10) << 0x18 |\n                             ((uint)local_60._0_4_ >> 0x18) << 0x10) >> 0x10) +\n                           (((uint)local_60._0_4_ & 0xff) << 8 | (uint)local_60._0_4_ >> 8 & 0xff) *\n                           0x10000);\n              local_60._0_4_ =\n                   (uint *)(((uVar2 << 0x18 | uVar4 << 0x10) >> 0x10) +\n                           (uVar15 << 8 | uVar16 & 0xff) * 0x10000);\n            }\n            local_44 = local_44 + 2;\n          }" if (parenthesized_expression "(uVar19 == 0x19)" ( (binary_expression "uVar19 == 0x19" identifier == number_literal) )) (compound_statement "{\n            local_60._4_4_ = (uint *)0x1;\n            local_60._0_4_ = (uint *)0x0;\n          }" { (expression_statement "local_60._4_4_ = (uint *)0x1;" (assignment_expression "local_60._4_4_ = (uint *)0x1" (field_expression "local_60._4_4_" identifier . field_identifier) = (cast_expression "(uint *)0x1" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (expression_statement "local_60._0_4_ = (uint *)0x0;" (assignment_expression "local_60._0_4_ = (uint *)0x0" (field_expression "local_60._0_4_" identifier . field_identifier) = (cast_expression "(uint *)0x0" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ;) }) (else_clause "else {\n            if (uVar19 < 0x1a) {\n              if (uVar19 != 0x17) {\n                if (uVar19 != 0x18) {\n                  return 0;\n                }\n                goto LAB_002e32bc;\n              }\n              iVar8 = *param_1;\n              if (*(int *)(iVar8 + 0x48) == 4) {\n                pcVar25 = *(code **)(**(int **)(iVar8 + 8) + 0xc);\n                if (pcVar25 == (code *)PTR_is_big_endian_004c2950) {\n                  local_30 = puVar18;\n                  iVar8 = (**(code **)(**(int **)(iVar8 + 8) + 0xe8))();\n                }\n                else {\n                  local_30 = puVar18;\n                  iVar8 = (*pcVar25)();\n                }\n                uVar15 = *local_44;\n                if (iVar8 == 0) {\n                  uVar15 = (((uVar15 >> 0x10) << 0x18 | (uVar15 >> 0x18) << 0x10) >> 0x10) +\n                           ((uVar15 & 0xff) << 8 | uVar15 >> 8 & 0xff) * 0x10000;\n                }\n                local_44 = local_44 + 1;\n                uVar26 = (ulonglong)uVar15;\n              }\n              else {\n                local_30 = puVar18;\n                uVar26 = (*local_34)(iVar8,&local_44);\n              }\n              iVar8 = *param_1;\n              goto LAB_002e3970;\n            }\n            if (uVar19 != 0x20) {\n              if (uVar19 < 0x20) {\n                return 0;\n              }\n              if (1 < uVar19 - 0x1f01) {\n                return 0;\n              }\nLAB_002e34d8:\n              if ((char)*(byte *)local_44 < '\0') {\n                uVar26 = (*(code *)PTR_read_unsigned_LEB_128_x_004c2980)\n                                   ((uint *)((int)local_44 + 1),&local_48);\n                local_44 = (uint *)((int)local_44 + local_48);\n              }\n              else {\n                uVar26 = (ulonglong)*(byte *)local_44;\n                local_48 = 1;\n                local_44 = (uint *)((int)local_44 + 1);\n              }\n              goto LAB_002e382c;\n            }\n            pcVar25 = *(code **)(**(int **)(*param_1 + 8) + 0xc);\n            if (pcVar25 == (code *)PTR_is_big_endian_004c2950) {\n              iVar8 = (**(code **)(**(int **)(*param_1 + 8) + 0xe8))();\n            }\n            else {\n              iVar8 = (*pcVar25)();\n            }\n            local_60._4_4_ = (uint *)local_44[1];\n            local_60._0_4_ = (uint *)*local_44;\n            if (iVar8 == 0) {\n              uVar15 = (uint)local_60._4_4_ & 0xff;\n              uVar16 = (uint)local_60._4_4_ >> 8;\n              uVar2 = (uint)local_60._4_4_ >> 0x10;\n              uVar4 = (uint)local_60._4_4_ >> 0x18;\n              local_60._4_4_ =\n                   (uint *)(((((uint)local_60._0_4_ >> 0x10) << 0x18 |\n                             ((uint)local_60._0_4_ >> 0x18) << 0x10) >> 0x10) +\n                           (((uint)local_60._0_4_ & 0xff) << 8 | (uint)local_60._0_4_ >> 8 & 0xff) *\n                           0x10000);\n              local_60._0_4_ =\n                   (uint *)(((uVar2 << 0x18 | uVar4 << 0x10) >> 0x10) +\n                           (uVar15 << 8 | uVar16 & 0xff) * 0x10000);\n            }\n            local_44 = local_44 + 2;\n          }" else (compound_statement "{\n            if (uVar19 < 0x1a) {\n              if (uVar19 != 0x17) {\n                if (uVar19 != 0x18) {\n                  return 0;\n                }\n                goto LAB_002e32bc;\n              }\n              iVar8 = *param_1;\n              if (*(int *)(iVar8 + 0x48) == 4) {\n                pcVar25 = *(code **)(**(int **)(iVar8 + 8) + 0xc);\n                if (pcVar25 == (code *)PTR_is_big_endian_004c2950) {\n                  local_30 = puVar18;\n                  iVar8 = (**(code **)(**(int **)(iVar8 + 8) + 0xe8))();\n                }\n                else {\n                  local_30 = puVar18;\n                  iVar8 = (*pcVar25)();\n                }\n                uVar15 = *local_44;\n                if (iVar8 == 0) {\n                  uVar15 = (((uVar15 >> 0x10) << 0x18 | (uVar15 >> 0x18) << 0x10) >> 0x10) +\n                           ((uVar15 & 0xff) << 8 | uVar15 >> 8 & 0xff) * 0x10000;\n                }\n                local_44 = local_44 + 1;\n                uVar26 = (ulonglong)uVar15;\n              }\n              else {\n                local_30 = puVar18;\n                uVar26 = (*local_34)(iVar8,&local_44);\n              }\n              iVar8 = *param_1;\n              goto LAB_002e3970;\n            }\n            if (uVar19 != 0x20) {\n              if (uVar19 < 0x20) {\n                return 0;\n              }\n              if (1 < uVar19 - 0x1f01) {\n                return 0;\n              }\nLAB_002e34d8:\n              if ((char)*(byte *)local_44 < '\0') {\n                uVar26 = (*(code *)PTR_read_unsigned_LEB_128_x_004c2980)\n                                   ((uint *)((int)local_44 + 1),&local_48);\n                local_44 = (uint *)((int)local_44 + local_48);\n              }\n              else {\n                uVar26 = (ulonglong)*(byte *)local_44;\n                local_48 = 1;\n                local_44 = (uint *)((int)local_44 + 1);\n              }\n              goto LAB_002e382c;\n            }\n            pcVar25 = *(code **)(**(int **)(*param_1 + 8) + 0xc);\n            if (pcVar25 == (code *)PTR_is_big_endian_004c2950) {\n              iVar8 = (**(code **)(**(int **)(*param_1 + 8) + 0xe8))();\n            }\n            else {\n              iVar8 = (*pcVar25)();\n            }\n            local_60._4_4_ = (uint *)local_44[1];\n            local_60._0_4_ = (uint *)*local_44;\n            if (iVar8 == 0) {\n              uVar15 = (uint)local_60._4_4_ & 0xff;\n              uVar16 = (uint)local_60._4_4_ >> 8;\n              uVar2 = (uint)local_60._4_4_ >> 0x10;\n              uVar4 = (uint)local_60._4_4_ >> 0x18;\n              local_60._4_4_ =\n                   (uint *)(((((uint)local_60._0_4_ >> 0x10) << 0x18 |\n                             ((uint)local_60._0_4_ >> 0x18) << 0x10) >> 0x10) +\n                           (((uint)local_60._0_4_ & 0xff) << 8 | (uint)local_60._0_4_ >> 8 & 0xff) *\n                           0x10000);\n              local_60._0_4_ =\n                   (uint *)(((uVar2 << 0x18 | uVar4 << 0x10) >> 0x10) +\n                           (uVar15 << 8 | uVar16 & 0xff) * 0x10000);\n            }\n            local_44 = local_44 + 2;\n          }" { (if_statement "if (uVar19 < 0x1a) {\n              if (uVar19 != 0x17) {\n                if (uVar19 != 0x18) {\n                  return 0;\n                }\n                goto LAB_002e32bc;\n              }\n              iVar8 = *param_1;\n              if (*(int *)(iVar8 + 0x48) == 4) {\n                pcVar25 = *(code **)(**(int **)(iVar8 + 8) + 0xc);\n                if (pcVar25 == (code *)PTR_is_big_endian_004c2950) {\n                  local_30 = puVar18;\n                  iVar8 = (**(code **)(**(int **)(iVar8 + 8) + 0xe8))();\n                }\n                else {\n                  local_30 = puVar18;\n                  iVar8 = (*pcVar25)();\n                }\n                uVar15 = *local_44;\n                if (iVar8 == 0) {\n                  uVar15 = (((uVar15 >> 0x10) << 0x18 | (uVar15 >> 0x18) << 0x10) >> 0x10) +\n                           ((uVar15 & 0xff) << 8 | uVar15 >> 8 & 0xff) * 0x10000;\n                }\n                local_44 = local_44 + 1;\n                uVar26 = (ulonglong)uVar15;\n              }\n              else {\n                local_30 = puVar18;\n                uVar26 = (*local_34)(iVar8,&local_44);\n              }\n              iVar8 = *param_1;\n              goto LAB_002e3970;\n            }" if (parenthesized_expression "(uVar19 < 0x1a)" ( (binary_expression "uVar19 < 0x1a" identifier < number_literal) )) (compound_statement "{\n              if (uVar19 != 0x17) {\n                if (uVar19 != 0x18) {\n                  return 0;\n                }\n                goto LAB_002e32bc;\n              }\n              iVar8 = *param_1;\n              if (*(int *)(iVar8 + 0x48) == 4) {\n                pcVar25 = *(code **)(**(int **)(iVar8 + 8) + 0xc);\n                if (pcVar25 == (code *)PTR_is_big_endian_004c2950) {\n                  local_30 = puVar18;\n                  iVar8 = (**(code **)(**(int **)(iVar8 + 8) + 0xe8))();\n                }\n                else {\n                  local_30 = puVar18;\n                  iVar8 = (*pcVar25)();\n                }\n                uVar15 = *local_44;\n                if (iVar8 == 0) {\n                  uVar15 = (((uVar15 >> 0x10) << 0x18 | (uVar15 >> 0x18) << 0x10) >> 0x10) +\n                           ((uVar15 & 0xff) << 8 | uVar15 >> 8 & 0xff) * 0x10000;\n                }\n                local_44 = local_44 + 1;\n                uVar26 = (ulonglong)uVar15;\n              }\n              else {\n                local_30 = puVar18;\n                uVar26 = (*local_34)(iVar8,&local_44);\n              }\n              iVar8 = *param_1;\n              goto LAB_002e3970;\n            }" { (if_statement "if (uVar19 != 0x17) {\n                if (uVar19 != 0x18) {\n                  return 0;\n                }\n                goto LAB_002e32bc;\n              }" if (parenthesized_expression "(uVar19 != 0x17)" ( (binary_expression "uVar19 != 0x17" identifier != number_literal) )) (compound_statement "{\n                if (uVar19 != 0x18) {\n                  return 0;\n                }\n                goto LAB_002e32bc;\n              }" { (if_statement "if (uVar19 != 0x18) {\n                  return 0;\n                }" if (parenthesized_expression "(uVar19 != 0x18)" ( (binary_expression "uVar19 != 0x18" identifier != number_literal) )) (compound_statement "{\n                  return 0;\n                }" { (return_statement "return 0;" return number_literal ;) })) (goto_statement "goto LAB_002e32bc;" goto statement_identifier ;) })) (expression_statement "iVar8 = *param_1;" (assignment_expression "iVar8 = *param_1" identifier = (pointer_expression "*param_1" * identifier)) ;) (if_statement "if (*(int *)(iVar8 + 0x48) == 4) {\n                pcVar25 = *(code **)(**(int **)(iVar8 + 8) + 0xc);\n                if (pcVar25 == (code *)PTR_is_big_endian_004c2950) {\n                  local_30 = puVar18;\n                  iVar8 = (**(code **)(**(int **)(iVar8 + 8) + 0xe8))();\n                }\n                else {\n                  local_30 = puVar18;\n                  iVar8 = (*pcVar25)();\n                }\n                uVar15 = *local_44;\n                if (iVar8 == 0) {\n                  uVar15 = (((uVar15 >> 0x10) << 0x18 | (uVar15 >> 0x18) << 0x10) >> 0x10) +\n                           ((uVar15 & 0xff) << 8 | uVar15 >> 8 & 0xff) * 0x10000;\n                }\n                local_44 = local_44 + 1;\n                uVar26 = (ulonglong)uVar15;\n              }\n              else {\n                local_30 = puVar18;\n                uVar26 = (*local_34)(iVar8,&local_44);\n              }" if (parenthesized_expression "(*(int *)(iVar8 + 0x48) == 4)" ( (binary_expression "*(int *)(iVar8 + 0x48) == 4" (pointer_expression "*(int *)(iVar8 + 0x48)" * (cast_expression "(int *)(iVar8 + 0x48)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar8 + 0x48)" ( (binary_expression "iVar8 + 0x48" identifier + number_literal) )))) == number_literal) )) (compound_statement "{\n                pcVar25 = *(code **)(**(int **)(iVar8 + 8) + 0xc);\n                if (pcVar25 == (code *)PTR_is_big_endian_004c2950) {\n                  local_30 = puVar18;\n                  iVar8 = (**(code **)(**(int **)(iVar8 + 8) + 0xe8))();\n                }\n                else {\n                  local_30 = puVar18;\n                  iVar8 = (*pcVar25)();\n                }\n                uVar15 = *local_44;\n                if (iVar8 == 0) {\n                  uVar15 = (((uVar15 >> 0x10) << 0x18 | (uVar15 >> 0x18) << 0x10) >> 0x10) +\n                           ((uVar15 & 0xff) << 8 | uVar15 >> 8 & 0xff) * 0x10000;\n                }\n                local_44 = local_44 + 1;\n                uVar26 = (ulonglong)uVar15;\n              }" { (expression_statement "pcVar25 = *(code **)(**(int **)(iVar8 + 8) + 0xc);" (assignment_expression "pcVar25 = *(code **)(**(int **)(iVar8 + 8) + 0xc)" identifier = (pointer_expression "*(code **)(**(int **)(iVar8 + 8) + 0xc)" * (cast_expression "(code **)(**(int **)(iVar8 + 8) + 0xc)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(**(int **)(iVar8 + 8) + 0xc)" ( (binary_expression "**(int **)(iVar8 + 8) + 0xc" (pointer_expression "**(int **)(iVar8 + 8)" * (pointer_expression "*(int **)(iVar8 + 8)" * (cast_expression "(int **)(iVar8 + 8)" ( (type_descriptor "int **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(iVar8 + 8)" ( (binary_expression "iVar8 + 8" identifier + number_literal) ))))) + number_literal) ))))) ;) (if_statement "if (pcVar25 == (code *)PTR_is_big_endian_004c2950) {\n                  local_30 = puVar18;\n                  iVar8 = (**(code **)(**(int **)(iVar8 + 8) + 0xe8))();\n                }\n                else {\n                  local_30 = puVar18;\n                  iVar8 = (*pcVar25)();\n                }" if (parenthesized_expression "(pcVar25 == (code *)PTR_is_big_endian_004c2950)" ( (binary_expression "pcVar25 == (code *)PTR_is_big_endian_004c2950" identifier == (cast_expression "(code *)PTR_is_big_endian_004c2950" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (compound_statement "{\n                  local_30 = puVar18;\n                  iVar8 = (**(code **)(**(int **)(iVar8 + 8) + 0xe8))();\n                }" { (expression_statement "local_30 = puVar18;" (assignment_expression "local_30 = puVar18" identifier = identifier) ;) (expression_statement "iVar8 = (**(code **)(**(int **)(iVar8 + 8) + 0xe8))();" (assignment_expression "iVar8 = (**(code **)(**(int **)(iVar8 + 8) + 0xe8))()" identifier = (call_expression "(**(code **)(**(int **)(iVar8 + 8) + 0xe8))()" (parenthesized_expression "(**(code **)(**(int **)(iVar8 + 8) + 0xe8))" ( (pointer_expression "**(code **)(**(int **)(iVar8 + 8) + 0xe8)" * (pointer_expression "*(code **)(**(int **)(iVar8 + 8) + 0xe8)" * (cast_expression "(code **)(**(int **)(iVar8 + 8) + 0xe8)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(**(int **)(iVar8 + 8) + 0xe8)" ( (binary_expression "**(int **)(iVar8 + 8) + 0xe8" (pointer_expression "**(int **)(iVar8 + 8)" * (pointer_expression "*(int **)(iVar8 + 8)" * (cast_expression "(int **)(iVar8 + 8)" ( (type_descriptor "int **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(iVar8 + 8)" ( (binary_expression "iVar8 + 8" identifier + number_literal) ))))) + number_literal) ))))) )) (argument_list "()" ( )))) ;) }) (else_clause "else {\n                  local_30 = puVar18;\n                  iVar8 = (*pcVar25)();\n                }" else (compound_statement "{\n                  local_30 = puVar18;\n                  iVar8 = (*pcVar25)();\n                }" { (expression_statement "local_30 = puVar18;" (assignment_expression "local_30 = puVar18" identifier = identifier) ;) (expression_statement "iVar8 = (*pcVar25)();" (assignment_expression "iVar8 = (*pcVar25)()" identifier = (call_expression "(*pcVar25)()" (parenthesized_expression "(*pcVar25)" ( (pointer_expression "*pcVar25" * identifier) )) (argument_list "()" ( )))) ;) }))) (expression_statement "uVar15 = *local_44;" (assignment_expression "uVar15 = *local_44" identifier = (pointer_expression "*local_44" * identifier)) ;) (if_statement "if (iVar8 == 0) {\n                  uVar15 = (((uVar15 >> 0x10) << 0x18 | (uVar15 >> 0x18) << 0x10) >> 0x10) +\n                           ((uVar15 & 0xff) << 8 | uVar15 >> 8 & 0xff) * 0x10000;\n                }" if (parenthesized_expression "(iVar8 == 0)" ( (binary_expression "iVar8 == 0" identifier == number_literal) )) (compound_statement "{\n                  uVar15 = (((uVar15 >> 0x10) << 0x18 | (uVar15 >> 0x18) << 0x10) >> 0x10) +\n                           ((uVar15 & 0xff) << 8 | uVar15 >> 8 & 0xff) * 0x10000;\n                }" { (expression_statement "uVar15 = (((uVar15 >> 0x10) << 0x18 | (uVar15 >> 0x18) << 0x10) >> 0x10) +\n                           ((uVar15 & 0xff) << 8 | uVar15 >> 8 & 0xff) * 0x10000;" (assignment_expression "uVar15 = (((uVar15 >> 0x10) << 0x18 | (uVar15 >> 0x18) << 0x10) >> 0x10) +\n                           ((uVar15 & 0xff) << 8 | uVar15 >> 8 & 0xff) * 0x10000" identifier = (binary_expression "(((uVar15 >> 0x10) << 0x18 | (uVar15 >> 0x18) << 0x10) >> 0x10) +\n                           ((uVar15 & 0xff) << 8 | uVar15 >> 8 & 0xff) * 0x10000" (parenthesized_expression "(((uVar15 >> 0x10) << 0x18 | (uVar15 >> 0x18) << 0x10) >> 0x10)" ( (binary_expression "((uVar15 >> 0x10) << 0x18 | (uVar15 >> 0x18) << 0x10) >> 0x10" (parenthesized_expression "((uVar15 >> 0x10) << 0x18 | (uVar15 >> 0x18) << 0x10)" ( (binary_expression "(uVar15 >> 0x10) << 0x18 | (uVar15 >> 0x18) << 0x10" (binary_expression "(uVar15 >> 0x10) << 0x18" (parenthesized_expression "(uVar15 >> 0x10)" ( (binary_expression "uVar15 >> 0x10" identifier >> number_literal) )) << number_literal) | (binary_expression "(uVar15 >> 0x18) << 0x10" (parenthesized_expression "(uVar15 >> 0x18)" ( (binary_expression "uVar15 >> 0x18" identifier >> number_literal) )) << number_literal)) )) >> number_literal) )) + (binary_expression "((uVar15 & 0xff) << 8 | uVar15 >> 8 & 0xff) * 0x10000" (parenthesized_expression "((uVar15 & 0xff) << 8 | uVar15 >> 8 & 0xff)" ( (binary_expression "(uVar15 & 0xff) << 8 | uVar15 >> 8 & 0xff" (binary_expression "(uVar15 & 0xff) << 8" (parenthesized_expression "(uVar15 & 0xff)" ( (binary_expression "uVar15 & 0xff" identifier & number_literal) )) << number_literal) | (binary_expression "uVar15 >> 8 & 0xff" (binary_expression "uVar15 >> 8" identifier >> number_literal) & number_literal)) )) * number_literal))) ;) })) (expression_statement "local_44 = local_44 + 1;" (assignment_expression "local_44 = local_44 + 1" identifier = (binary_expression "local_44 + 1" identifier + number_literal)) ;) (expression_statement "uVar26 = (ulonglong)uVar15;" (assignment_expression "uVar26 = (ulonglong)uVar15" identifier = (cast_expression "(ulonglong)uVar15" ( (type_descriptor "ulonglong" type_identifier) ) identifier)) ;) }) (else_clause "else {\n                local_30 = puVar18;\n                uVar26 = (*local_34)(iVar8,&local_44);\n              }" else (compound_statement "{\n                local_30 = puVar18;\n                uVar26 = (*local_34)(iVar8,&local_44);\n              }" { (expression_statement "local_30 = puVar18;" (assignment_expression "local_30 = puVar18" identifier = identifier) ;) (expression_statement "uVar26 = (*local_34)(iVar8,&local_44);" (assignment_expression "uVar26 = (*local_34)(iVar8,&local_44)" identifier = (call_expression "(*local_34)(iVar8,&local_44)" (parenthesized_expression "(*local_34)" ( (pointer_expression "*local_34" * identifier) )) (argument_list "(iVar8,&local_44)" ( identifier , (pointer_expression "&local_44" & identifier) )))) ;) }))) (expression_statement "iVar8 = *param_1;" (assignment_expression "iVar8 = *param_1" identifier = (pointer_expression "*param_1" * identifier)) ;) (goto_statement "goto LAB_002e3970;" goto statement_identifier ;) })) (if_statement "if (uVar19 != 0x20) {\n              if (uVar19 < 0x20) {\n                return 0;\n              }\n              if (1 < uVar19 - 0x1f01) {\n                return 0;\n              }\nLAB_002e34d8:\n              if ((char)*(byte *)local_44 < '\0') {\n                uVar26 = (*(code *)PTR_read_unsigned_LEB_128_x_004c2980)\n                                   ((uint *)((int)local_44 + 1),&local_48);\n                local_44 = (uint *)((int)local_44 + local_48);\n              }\n              else {\n                uVar26 = (ulonglong)*(byte *)local_44;\n                local_48 = 1;\n                local_44 = (uint *)((int)local_44 + 1);\n              }\n              goto LAB_002e382c;\n            }" if (parenthesized_expression "(uVar19 != 0x20)" ( (binary_expression "uVar19 != 0x20" identifier != number_literal) )) (compound_statement "{\n              if (uVar19 < 0x20) {\n                return 0;\n              }\n              if (1 < uVar19 - 0x1f01) {\n                return 0;\n              }\nLAB_002e34d8:\n              if ((char)*(byte *)local_44 < '\0') {\n                uVar26 = (*(code *)PTR_read_unsigned_LEB_128_x_004c2980)\n                                   ((uint *)((int)local_44 + 1),&local_48);\n                local_44 = (uint *)((int)local_44 + local_48);\n              }\n              else {\n                uVar26 = (ulonglong)*(byte *)local_44;\n                local_48 = 1;\n                local_44 = (uint *)((int)local_44 + 1);\n              }\n              goto LAB_002e382c;\n            }" { (if_statement "if (uVar19 < 0x20) {\n                return 0;\n              }" if (parenthesized_expression "(uVar19 < 0x20)" ( (binary_expression "uVar19 < 0x20" identifier < number_literal) )) (compound_statement "{\n                return 0;\n              }" { (return_statement "return 0;" return number_literal ;) })) (if_statement "if (1 < uVar19 - 0x1f01) {\n                return 0;\n              }" if (parenthesized_expression "(1 < uVar19 - 0x1f01)" ( (binary_expression "1 < uVar19 - 0x1f01" number_literal < (binary_expression "uVar19 - 0x1f01" identifier - number_literal)) )) (compound_statement "{\n                return 0;\n              }" { (return_statement "return 0;" return number_literal ;) })) (labeled_statement "LAB_002e34d8:\n              if ((char)*(byte *)local_44 < '\0') {\n                uVar26 = (*(code *)PTR_read_unsigned_LEB_128_x_004c2980)\n                                   ((uint *)((int)local_44 + 1),&local_48);\n                local_44 = (uint *)((int)local_44 + local_48);\n              }\n              else {\n                uVar26 = (ulonglong)*(byte *)local_44;\n                local_48 = 1;\n                local_44 = (uint *)((int)local_44 + 1);\n              }" statement_identifier : (if_statement "if ((char)*(byte *)local_44 < '\0') {\n                uVar26 = (*(code *)PTR_read_unsigned_LEB_128_x_004c2980)\n                                   ((uint *)((int)local_44 + 1),&local_48);\n                local_44 = (uint *)((int)local_44 + local_48);\n              }\n              else {\n                uVar26 = (ulonglong)*(byte *)local_44;\n                local_48 = 1;\n                local_44 = (uint *)((int)local_44 + 1);\n              }" if (parenthesized_expression "((char)*(byte *)local_44 < '\0')" ( (binary_expression "(char)*(byte *)local_44 < '\0'" (cast_expression "(char)*(byte *)local_44" ( (type_descriptor "char" primitive_type) ) (pointer_expression "*(byte *)local_44" * (cast_expression "(byte *)local_44" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier))) < (char_literal "'\0'" ' escape_sequence ')) )) (compound_statement "{\n                uVar26 = (*(code *)PTR_read_unsigned_LEB_128_x_004c2980)\n                                   ((uint *)((int)local_44 + 1),&local_48);\n                local_44 = (uint *)((int)local_44 + local_48);\n              }" { (expression_statement "uVar26 = (*(code *)PTR_read_unsigned_LEB_128_x_004c2980)\n                                   ((uint *)((int)local_44 + 1),&local_48);" (assignment_expression "uVar26 = (*(code *)PTR_read_unsigned_LEB_128_x_004c2980)\n                                   ((uint *)((int)local_44 + 1),&local_48)" identifier = (call_expression "(*(code *)PTR_read_unsigned_LEB_128_x_004c2980)\n                                   ((uint *)((int)local_44 + 1),&local_48)" (parenthesized_expression "(*(code *)PTR_read_unsigned_LEB_128_x_004c2980)" ( (pointer_expression "*(code *)PTR_read_unsigned_LEB_128_x_004c2980" * (cast_expression "(code *)PTR_read_unsigned_LEB_128_x_004c2980" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "((uint *)((int)local_44 + 1),&local_48)" ( (cast_expression "(uint *)((int)local_44 + 1)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)local_44 + 1)" ( (binary_expression "(int)local_44 + 1" (cast_expression "(int)local_44" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) ))) , (pointer_expression "&local_48" & identifier) )))) ;) (expression_statement "local_44 = (uint *)((int)local_44 + local_48);" (assignment_expression "local_44 = (uint *)((int)local_44 + local_48)" identifier = (cast_expression "(uint *)((int)local_44 + local_48)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)local_44 + local_48)" ( (binary_expression "(int)local_44 + local_48" (cast_expression "(int)local_44" ( (type_descriptor "int" primitive_type) ) identifier) + identifier) )))) ;) }) (else_clause "else {\n                uVar26 = (ulonglong)*(byte *)local_44;\n                local_48 = 1;\n                local_44 = (uint *)((int)local_44 + 1);\n              }" else (compound_statement "{\n                uVar26 = (ulonglong)*(byte *)local_44;\n                local_48 = 1;\n                local_44 = (uint *)((int)local_44 + 1);\n              }" { (expression_statement "uVar26 = (ulonglong)*(byte *)local_44;" (assignment_expression "uVar26 = (ulonglong)*(byte *)local_44" identifier = (binary_expression "(ulonglong)*(byte *)local_44" (parenthesized_expression "(ulonglong)" ( identifier )) * (cast_expression "(byte *)local_44" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier))) ;) (expression_statement "local_48 = 1;" (assignment_expression "local_48 = 1" identifier = number_literal) ;) (expression_statement "local_44 = (uint *)((int)local_44 + 1);" (assignment_expression "local_44 = (uint *)((int)local_44 + 1)" identifier = (cast_expression "(uint *)((int)local_44 + 1)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)local_44 + 1)" ( (binary_expression "(int)local_44 + 1" (cast_expression "(int)local_44" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) ;) })))) (goto_statement "goto LAB_002e382c;" goto statement_identifier ;) })) (expression_statement "pcVar25 = *(code **)(**(int **)(*param_1 + 8) + 0xc);" (assignment_expression "pcVar25 = *(code **)(**(int **)(*param_1 + 8) + 0xc)" identifier = (pointer_expression "*(code **)(**(int **)(*param_1 + 8) + 0xc)" * (cast_expression "(code **)(**(int **)(*param_1 + 8) + 0xc)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(**(int **)(*param_1 + 8) + 0xc)" ( (binary_expression "**(int **)(*param_1 + 8) + 0xc" (pointer_expression "**(int **)(*param_1 + 8)" * (pointer_expression "*(int **)(*param_1 + 8)" * (cast_expression "(int **)(*param_1 + 8)" ( (type_descriptor "int **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(*param_1 + 8)" ( (binary_expression "*param_1 + 8" (pointer_expression "*param_1" * identifier) + number_literal) ))))) + number_literal) ))))) ;) (if_statement "if (pcVar25 == (code *)PTR_is_big_endian_004c2950) {\n              iVar8 = (**(code **)(**(int **)(*param_1 + 8) + 0xe8))();\n            }\n            else {\n              iVar8 = (*pcVar25)();\n            }" if (parenthesized_expression "(pcVar25 == (code *)PTR_is_big_endian_004c2950)" ( (binary_expression "pcVar25 == (code *)PTR_is_big_endian_004c2950" identifier == (cast_expression "(code *)PTR_is_big_endian_004c2950" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (compound_statement "{\n              iVar8 = (**(code **)(**(int **)(*param_1 + 8) + 0xe8))();\n            }" { (expression_statement "iVar8 = (**(code **)(**(int **)(*param_1 + 8) + 0xe8))();" (assignment_expression "iVar8 = (**(code **)(**(int **)(*param_1 + 8) + 0xe8))()" identifier = (call_expression "(**(code **)(**(int **)(*param_1 + 8) + 0xe8))()" (parenthesized_expression "(**(code **)(**(int **)(*param_1 + 8) + 0xe8))" ( (pointer_expression "**(code **)(**(int **)(*param_1 + 8) + 0xe8)" * (pointer_expression "*(code **)(**(int **)(*param_1 + 8) + 0xe8)" * (cast_expression "(code **)(**(int **)(*param_1 + 8) + 0xe8)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(**(int **)(*param_1 + 8) + 0xe8)" ( (binary_expression "**(int **)(*param_1 + 8) + 0xe8" (pointer_expression "**(int **)(*param_1 + 8)" * (pointer_expression "*(int **)(*param_1 + 8)" * (cast_expression "(int **)(*param_1 + 8)" ( (type_descriptor "int **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(*param_1 + 8)" ( (binary_expression "*param_1 + 8" (pointer_expression "*param_1" * identifier) + number_literal) ))))) + number_literal) ))))) )) (argument_list "()" ( )))) ;) }) (else_clause "else {\n              iVar8 = (*pcVar25)();\n            }" else (compound_statement "{\n              iVar8 = (*pcVar25)();\n            }" { (expression_statement "iVar8 = (*pcVar25)();" (assignment_expression "iVar8 = (*pcVar25)()" identifier = (call_expression "(*pcVar25)()" (parenthesized_expression "(*pcVar25)" ( (pointer_expression "*pcVar25" * identifier) )) (argument_list "()" ( )))) ;) }))) (expression_statement "local_60._4_4_ = (uint *)local_44[1];" (assignment_expression "local_60._4_4_ = (uint *)local_44[1]" (field_expression "local_60._4_4_" identifier . field_identifier) = (cast_expression "(uint *)local_44[1]" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (subscript_expression "local_44[1]" identifier [ number_literal ]))) ;) (expression_statement "local_60._0_4_ = (uint *)*local_44;" (assignment_expression "local_60._0_4_ = (uint *)*local_44" (field_expression "local_60._0_4_" identifier . field_identifier) = (cast_expression "(uint *)*local_44" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (pointer_expression "*local_44" * identifier))) ;) (if_statement "if (iVar8 == 0) {\n              uVar15 = (uint)local_60._4_4_ & 0xff;\n              uVar16 = (uint)local_60._4_4_ >> 8;\n              uVar2 = (uint)local_60._4_4_ >> 0x10;\n              uVar4 = (uint)local_60._4_4_ >> 0x18;\n              local_60._4_4_ =\n                   (uint *)(((((uint)local_60._0_4_ >> 0x10) << 0x18 |\n                             ((uint)local_60._0_4_ >> 0x18) << 0x10) >> 0x10) +\n                           (((uint)local_60._0_4_ & 0xff) << 8 | (uint)local_60._0_4_ >> 8 & 0xff) *\n                           0x10000);\n              local_60._0_4_ =\n                   (uint *)(((uVar2 << 0x18 | uVar4 << 0x10) >> 0x10) +\n                           (uVar15 << 8 | uVar16 & 0xff) * 0x10000);\n            }" if (parenthesized_expression "(iVar8 == 0)" ( (binary_expression "iVar8 == 0" identifier == number_literal) )) (compound_statement "{\n              uVar15 = (uint)local_60._4_4_ & 0xff;\n              uVar16 = (uint)local_60._4_4_ >> 8;\n              uVar2 = (uint)local_60._4_4_ >> 0x10;\n              uVar4 = (uint)local_60._4_4_ >> 0x18;\n              local_60._4_4_ =\n                   (uint *)(((((uint)local_60._0_4_ >> 0x10) << 0x18 |\n                             ((uint)local_60._0_4_ >> 0x18) << 0x10) >> 0x10) +\n                           (((uint)local_60._0_4_ & 0xff) << 8 | (uint)local_60._0_4_ >> 8 & 0xff) *\n                           0x10000);\n              local_60._0_4_ =\n                   (uint *)(((uVar2 << 0x18 | uVar4 << 0x10) >> 0x10) +\n                           (uVar15 << 8 | uVar16 & 0xff) * 0x10000);\n            }" { (expression_statement "uVar15 = (uint)local_60._4_4_ & 0xff;" (assignment_expression "uVar15 = (uint)local_60._4_4_ & 0xff" identifier = (binary_expression "(uint)local_60._4_4_ & 0xff" (cast_expression "(uint)local_60._4_4_" ( (type_descriptor "uint" type_identifier) ) (field_expression "local_60._4_4_" identifier . field_identifier)) & number_literal)) ;) (expression_statement "uVar16 = (uint)local_60._4_4_ >> 8;" (assignment_expression "uVar16 = (uint)local_60._4_4_ >> 8" identifier = (binary_expression "(uint)local_60._4_4_ >> 8" (cast_expression "(uint)local_60._4_4_" ( (type_descriptor "uint" type_identifier) ) (field_expression "local_60._4_4_" identifier . field_identifier)) >> number_literal)) ;) (expression_statement "uVar2 = (uint)local_60._4_4_ >> 0x10;" (assignment_expression "uVar2 = (uint)local_60._4_4_ >> 0x10" identifier = (binary_expression "(uint)local_60._4_4_ >> 0x10" (cast_expression "(uint)local_60._4_4_" ( (type_descriptor "uint" type_identifier) ) (field_expression "local_60._4_4_" identifier . field_identifier)) >> number_literal)) ;) (expression_statement "uVar4 = (uint)local_60._4_4_ >> 0x18;" (assignment_expression "uVar4 = (uint)local_60._4_4_ >> 0x18" identifier = (binary_expression "(uint)local_60._4_4_ >> 0x18" (cast_expression "(uint)local_60._4_4_" ( (type_descriptor "uint" type_identifier) ) (field_expression "local_60._4_4_" identifier . field_identifier)) >> number_literal)) ;) (expression_statement "local_60._4_4_ =\n                   (uint *)(((((uint)local_60._0_4_ >> 0x10) << 0x18 |\n                             ((uint)local_60._0_4_ >> 0x18) << 0x10) >> 0x10) +\n                           (((uint)local_60._0_4_ & 0xff) << 8 | (uint)local_60._0_4_ >> 8 & 0xff) *\n                           0x10000);" (assignment_expression "local_60._4_4_ =\n                   (uint *)(((((uint)local_60._0_4_ >> 0x10) << 0x18 |\n                             ((uint)local_60._0_4_ >> 0x18) << 0x10) >> 0x10) +\n                           (((uint)local_60._0_4_ & 0xff) << 8 | (uint)local_60._0_4_ >> 8 & 0xff) *\n                           0x10000)" (field_expression "local_60._4_4_" identifier . field_identifier) = (cast_expression "(uint *)(((((uint)local_60._0_4_ >> 0x10) << 0x18 |\n                             ((uint)local_60._0_4_ >> 0x18) << 0x10) >> 0x10) +\n                           (((uint)local_60._0_4_ & 0xff) << 8 | (uint)local_60._0_4_ >> 8 & 0xff) *\n                           0x10000)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(((((uint)local_60._0_4_ >> 0x10) << 0x18 |\n                             ((uint)local_60._0_4_ >> 0x18) << 0x10) >> 0x10) +\n                           (((uint)local_60._0_4_ & 0xff) << 8 | (uint)local_60._0_4_ >> 8 & 0xff) *\n                           0x10000)" ( (binary_expression "((((uint)local_60._0_4_ >> 0x10) << 0x18 |\n                             ((uint)local_60._0_4_ >> 0x18) << 0x10) >> 0x10) +\n                           (((uint)local_60._0_4_ & 0xff) << 8 | (uint)local_60._0_4_ >> 8 & 0xff) *\n                           0x10000" (parenthesized_expression "((((uint)local_60._0_4_ >> 0x10) << 0x18 |\n                             ((uint)local_60._0_4_ >> 0x18) << 0x10) >> 0x10)" ( (binary_expression "(((uint)local_60._0_4_ >> 0x10) << 0x18 |\n                             ((uint)local_60._0_4_ >> 0x18) << 0x10) >> 0x10" (parenthesized_expression "(((uint)local_60._0_4_ >> 0x10) << 0x18 |\n                             ((uint)local_60._0_4_ >> 0x18) << 0x10)" ( (binary_expression "((uint)local_60._0_4_ >> 0x10) << 0x18 |\n                             ((uint)local_60._0_4_ >> 0x18) << 0x10" (binary_expression "((uint)local_60._0_4_ >> 0x10) << 0x18" (parenthesized_expression "((uint)local_60._0_4_ >> 0x10)" ( (binary_expression "(uint)local_60._0_4_ >> 0x10" (cast_expression "(uint)local_60._0_4_" ( (type_descriptor "uint" type_identifier) ) (field_expression "local_60._0_4_" identifier . field_identifier)) >> number_literal) )) << number_literal) | (binary_expression "((uint)local_60._0_4_ >> 0x18) << 0x10" (parenthesized_expression "((uint)local_60._0_4_ >> 0x18)" ( (binary_expression "(uint)local_60._0_4_ >> 0x18" (cast_expression "(uint)local_60._0_4_" ( (type_descriptor "uint" type_identifier) ) (field_expression "local_60._0_4_" identifier . field_identifier)) >> number_literal) )) << number_literal)) )) >> number_literal) )) + (binary_expression "(((uint)local_60._0_4_ & 0xff) << 8 | (uint)local_60._0_4_ >> 8 & 0xff) *\n                           0x10000" (parenthesized_expression "(((uint)local_60._0_4_ & 0xff) << 8 | (uint)local_60._0_4_ >> 8 & 0xff)" ( (binary_expression "((uint)local_60._0_4_ & 0xff) << 8 | (uint)local_60._0_4_ >> 8 & 0xff" (binary_expression "((uint)local_60._0_4_ & 0xff) << 8" (parenthesized_expression "((uint)local_60._0_4_ & 0xff)" ( (binary_expression "(uint)local_60._0_4_ & 0xff" (cast_expression "(uint)local_60._0_4_" ( (type_descriptor "uint" type_identifier) ) (field_expression "local_60._0_4_" identifier . field_identifier)) & number_literal) )) << number_literal) | (binary_expression "(uint)local_60._0_4_ >> 8 & 0xff" (binary_expression "(uint)local_60._0_4_ >> 8" (cast_expression "(uint)local_60._0_4_" ( (type_descriptor "uint" type_identifier) ) (field_expression "local_60._0_4_" identifier . field_identifier)) >> number_literal) & number_literal)) )) * number_literal)) )))) ;) (expression_statement "local_60._0_4_ =\n                   (uint *)(((uVar2 << 0x18 | uVar4 << 0x10) >> 0x10) +\n                           (uVar15 << 8 | uVar16 & 0xff) * 0x10000);" (assignment_expression "local_60._0_4_ =\n                   (uint *)(((uVar2 << 0x18 | uVar4 << 0x10) >> 0x10) +\n                           (uVar15 << 8 | uVar16 & 0xff) * 0x10000)" (field_expression "local_60._0_4_" identifier . field_identifier) = (cast_expression "(uint *)(((uVar2 << 0x18 | uVar4 << 0x10) >> 0x10) +\n                           (uVar15 << 8 | uVar16 & 0xff) * 0x10000)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(((uVar2 << 0x18 | uVar4 << 0x10) >> 0x10) +\n                           (uVar15 << 8 | uVar16 & 0xff) * 0x10000)" ( (binary_expression "((uVar2 << 0x18 | uVar4 << 0x10) >> 0x10) +\n                           (uVar15 << 8 | uVar16 & 0xff) * 0x10000" (parenthesized_expression "((uVar2 << 0x18 | uVar4 << 0x10) >> 0x10)" ( (binary_expression "(uVar2 << 0x18 | uVar4 << 0x10) >> 0x10" (parenthesized_expression "(uVar2 << 0x18 | uVar4 << 0x10)" ( (binary_expression "uVar2 << 0x18 | uVar4 << 0x10" (binary_expression "uVar2 << 0x18" identifier << number_literal) | (binary_expression "uVar4 << 0x10" identifier << number_literal)) )) >> number_literal) )) + (binary_expression "(uVar15 << 8 | uVar16 & 0xff) * 0x10000" (parenthesized_expression "(uVar15 << 8 | uVar16 & 0xff)" ( (binary_expression "uVar15 << 8 | uVar16 & 0xff" (binary_expression "uVar15 << 8" identifier << number_literal) | (binary_expression "uVar16 & 0xff" identifier & number_literal)) )) * number_literal)) )))) ;) })) (expression_statement "local_44 = local_44 + 2;" (assignment_expression "local_44 = local_44 + 2" identifier = (binary_expression "local_44 + 2" identifier + number_literal)) ;) }))) (expression_statement "uVar7 = CONCAT44(local_60._0_4_,local_60._4_4_);" (assignment_expression "uVar7 = CONCAT44(local_60._0_4_,local_60._4_4_)" identifier = (call_expression "CONCAT44(local_60._0_4_,local_60._4_4_)" identifier (argument_list "(local_60._0_4_,local_60._4_4_)" ( (field_expression "local_60._0_4_" identifier . field_identifier) , (field_expression "local_60._4_4_" identifier . field_identifier) )))) ;) (if_statement "if (uVar22 == 0x6e) goto LAB_002e313c;" if (parenthesized_expression "(uVar22 == 0x6e)" ( (binary_expression "uVar22 == 0x6e" identifier == number_literal) )) (goto_statement "goto LAB_002e313c;" goto statement_identifier ;)) (expression_statement "uVar7 = CONCAT44(local_60._0_4_,local_60._4_4_);" (assignment_expression "uVar7 = CONCAT44(local_60._0_4_,local_60._4_4_)" identifier = (call_expression "CONCAT44(local_60._0_4_,local_60._4_4_)" identifier (argument_list "(local_60._0_4_,local_60._4_4_)" ( (field_expression "local_60._0_4_" identifier . field_identifier) , (field_expression "local_60._4_4_" identifier . field_identifier) )))) ;) (expression_statement "uVar26 = CONCAT44(local_60._0_4_,local_60._4_4_);" (assignment_expression "uVar26 = CONCAT44(local_60._0_4_,local_60._4_4_)" identifier = (call_expression "CONCAT44(local_60._0_4_,local_60._4_4_)" identifier (argument_list "(local_60._0_4_,local_60._4_4_)" ( (field_expression "local_60._0_4_" identifier . field_identifier) , (field_expression "local_60._4_4_" identifier . field_identifier) )))) ;) (if_statement "if (uVar22 == 0x2007) goto LAB_002e313c;" if (parenthesized_expression "(uVar22 == 0x2007)" ( (binary_expression "uVar22 == 0x2007" identifier == number_literal) )) (goto_statement "goto LAB_002e313c;" goto statement_identifier ;)) (goto_statement "goto joined_r0x002e3124;" goto statement_identifier ;) })) (if_statement "if (uVar19 == 0x11) {\n          puVar9 = (uint *)((int)local_44 + 1);\n          uVar15 = (uint)*(byte *)local_44;\n          uVar26 = (ulonglong)uVar15;\n          local_44 = puVar9;\n          if (uVar22 == 0x31) goto LAB_002e30bc;\n          if (0x31 < uVar22) {\n            uVar26 = (ulonglong)uVar15;\n            if ((uVar22 != 0x6e) && (uVar26 = (ulonglong)uVar15, uVar22 != 0x2007)) {\n              uVar7 = (ulonglong)uVar15;\n              if (uVar22 != 0x47) goto LAB_002e313c;\n              param_1[0x18] = 0;\n              param_1[0x19] = uVar15;\n              uVar7 = (ulonglong)uVar15;\n              goto LAB_002e313c;\n            }\n            goto LAB_002e3858;\n          }\n          if (uVar22 == 1) {\n            param_1[8] = 0;\n            param_1[9] = uVar15;\n            uVar7 = (ulonglong)uVar15;\n            goto LAB_002e313c;\n          }\n          goto joined_r0x002e3124;\n        }" if (parenthesized_expression "(uVar19 == 0x11)" ( (binary_expression "uVar19 == 0x11" identifier == number_literal) )) (compound_statement "{\n          puVar9 = (uint *)((int)local_44 + 1);\n          uVar15 = (uint)*(byte *)local_44;\n          uVar26 = (ulonglong)uVar15;\n          local_44 = puVar9;\n          if (uVar22 == 0x31) goto LAB_002e30bc;\n          if (0x31 < uVar22) {\n            uVar26 = (ulonglong)uVar15;\n            if ((uVar22 != 0x6e) && (uVar26 = (ulonglong)uVar15, uVar22 != 0x2007)) {\n              uVar7 = (ulonglong)uVar15;\n              if (uVar22 != 0x47) goto LAB_002e313c;\n              param_1[0x18] = 0;\n              param_1[0x19] = uVar15;\n              uVar7 = (ulonglong)uVar15;\n              goto LAB_002e313c;\n            }\n            goto LAB_002e3858;\n          }\n          if (uVar22 == 1) {\n            param_1[8] = 0;\n            param_1[9] = uVar15;\n            uVar7 = (ulonglong)uVar15;\n            goto LAB_002e313c;\n          }\n          goto joined_r0x002e3124;\n        }" { (expression_statement "puVar9 = (uint *)((int)local_44 + 1);" (assignment_expression "puVar9 = (uint *)((int)local_44 + 1)" identifier = (cast_expression "(uint *)((int)local_44 + 1)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)local_44 + 1)" ( (binary_expression "(int)local_44 + 1" (cast_expression "(int)local_44" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) ;) (expression_statement "uVar15 = (uint)*(byte *)local_44;" (assignment_expression "uVar15 = (uint)*(byte *)local_44" identifier = (binary_expression "(uint)*(byte *)local_44" (parenthesized_expression "(uint)" ( identifier )) * (cast_expression "(byte *)local_44" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier))) ;) (expression_statement "uVar26 = (ulonglong)uVar15;" (assignment_expression "uVar26 = (ulonglong)uVar15" identifier = (cast_expression "(ulonglong)uVar15" ( (type_descriptor "ulonglong" type_identifier) ) identifier)) ;) (expression_statement "local_44 = puVar9;" (assignment_expression "local_44 = puVar9" identifier = identifier) ;) (if_statement "if (uVar22 == 0x31) goto LAB_002e30bc;" if (parenthesized_expression "(uVar22 == 0x31)" ( (binary_expression "uVar22 == 0x31" identifier == number_literal) )) (goto_statement "goto LAB_002e30bc;" goto statement_identifier ;)) (if_statement "if (0x31 < uVar22) {\n            uVar26 = (ulonglong)uVar15;\n            if ((uVar22 != 0x6e) && (uVar26 = (ulonglong)uVar15, uVar22 != 0x2007)) {\n              uVar7 = (ulonglong)uVar15;\n              if (uVar22 != 0x47) goto LAB_002e313c;\n              param_1[0x18] = 0;\n              param_1[0x19] = uVar15;\n              uVar7 = (ulonglong)uVar15;\n              goto LAB_002e313c;\n            }\n            goto LAB_002e3858;\n          }" if (parenthesized_expression "(0x31 < uVar22)" ( (binary_expression "0x31 < uVar22" number_literal < identifier) )) (compound_statement "{\n            uVar26 = (ulonglong)uVar15;\n            if ((uVar22 != 0x6e) && (uVar26 = (ulonglong)uVar15, uVar22 != 0x2007)) {\n              uVar7 = (ulonglong)uVar15;\n              if (uVar22 != 0x47) goto LAB_002e313c;\n              param_1[0x18] = 0;\n              param_1[0x19] = uVar15;\n              uVar7 = (ulonglong)uVar15;\n              goto LAB_002e313c;\n            }\n            goto LAB_002e3858;\n          }" { (expression_statement "uVar26 = (ulonglong)uVar15;" (assignment_expression "uVar26 = (ulonglong)uVar15" identifier = (cast_expression "(ulonglong)uVar15" ( (type_descriptor "ulonglong" type_identifier) ) identifier)) ;) (if_statement "if ((uVar22 != 0x6e) && (uVar26 = (ulonglong)uVar15, uVar22 != 0x2007)) {\n              uVar7 = (ulonglong)uVar15;\n              if (uVar22 != 0x47) goto LAB_002e313c;\n              param_1[0x18] = 0;\n              param_1[0x19] = uVar15;\n              uVar7 = (ulonglong)uVar15;\n              goto LAB_002e313c;\n            }" if (parenthesized_expression "((uVar22 != 0x6e) && (uVar26 = (ulonglong)uVar15, uVar22 != 0x2007))" ( (binary_expression "(uVar22 != 0x6e) && (uVar26 = (ulonglong)uVar15, uVar22 != 0x2007)" (parenthesized_expression "(uVar22 != 0x6e)" ( (binary_expression "uVar22 != 0x6e" identifier != number_literal) )) && (parenthesized_expression "(uVar26 = (ulonglong)uVar15, uVar22 != 0x2007)" ( (comma_expression "uVar26 = (ulonglong)uVar15, uVar22 != 0x2007" (assignment_expression "uVar26 = (ulonglong)uVar15" identifier = (cast_expression "(ulonglong)uVar15" ( (type_descriptor "ulonglong" type_identifier) ) identifier)) , (binary_expression "uVar22 != 0x2007" identifier != number_literal)) ))) )) (compound_statement "{\n              uVar7 = (ulonglong)uVar15;\n              if (uVar22 != 0x47) goto LAB_002e313c;\n              param_1[0x18] = 0;\n              param_1[0x19] = uVar15;\n              uVar7 = (ulonglong)uVar15;\n              goto LAB_002e313c;\n            }" { (expression_statement "uVar7 = (ulonglong)uVar15;" (assignment_expression "uVar7 = (ulonglong)uVar15" identifier = (cast_expression "(ulonglong)uVar15" ( (type_descriptor "ulonglong" type_identifier) ) identifier)) ;) (if_statement "if (uVar22 != 0x47) goto LAB_002e313c;" if (parenthesized_expression "(uVar22 != 0x47)" ( (binary_expression "uVar22 != 0x47" identifier != number_literal) )) (goto_statement "goto LAB_002e313c;" goto statement_identifier ;)) (expression_statement "param_1[0x18] = 0;" (assignment_expression "param_1[0x18] = 0" (subscript_expression "param_1[0x18]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "param_1[0x19] = uVar15;" (assignment_expression "param_1[0x19] = uVar15" (subscript_expression "param_1[0x19]" identifier [ number_literal ]) = identifier) ;) (expression_statement "uVar7 = (ulonglong)uVar15;" (assignment_expression "uVar7 = (ulonglong)uVar15" identifier = (cast_expression "(ulonglong)uVar15" ( (type_descriptor "ulonglong" type_identifier) ) identifier)) ;) (goto_statement "goto LAB_002e313c;" goto statement_identifier ;) })) (goto_statement "goto LAB_002e3858;" goto statement_identifier ;) })) (if_statement "if (uVar22 == 1) {\n            param_1[8] = 0;\n            param_1[9] = uVar15;\n            uVar7 = (ulonglong)uVar15;\n            goto LAB_002e313c;\n          }" if (parenthesized_expression "(uVar22 == 1)" ( (binary_expression "uVar22 == 1" identifier == number_literal) )) (compound_statement "{\n            param_1[8] = 0;\n            param_1[9] = uVar15;\n            uVar7 = (ulonglong)uVar15;\n            goto LAB_002e313c;\n          }" { (expression_statement "param_1[8] = 0;" (assignment_expression "param_1[8] = 0" (subscript_expression "param_1[8]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "param_1[9] = uVar15;" (assignment_expression "param_1[9] = uVar15" (subscript_expression "param_1[9]" identifier [ number_literal ]) = identifier) ;) (expression_statement "uVar7 = (ulonglong)uVar15;" (assignment_expression "uVar7 = (ulonglong)uVar15" identifier = (cast_expression "(ulonglong)uVar15" ( (type_descriptor "ulonglong" type_identifier) ) identifier)) ;) (goto_statement "goto LAB_002e313c;" goto statement_identifier ;) })) (goto_statement "goto joined_r0x002e3124;" goto statement_identifier ;) })) (if_statement "if (uVar19 < 0x12) {\n          if (uVar19 == 0xf) goto LAB_002e34d8;\n          if (uVar19 != 0x10) {\n            return 0;\n          }\n          iVar10 = *param_1;\n          iVar8 = *(int *)(iVar10 + 0x48);\n          if (*(uint *)(iVar10 + 0x50) < 3) {\n            iVar8 = *(int *)(iVar10 + 0x4c);\n          }\n          if (iVar8 == 4) {\n            pcVar25 = *(code **)(**(int **)(iVar10 + 8) + 0xc);\n            if (pcVar25 == (code *)PTR_is_big_endian_004c2950) {\n              local_30 = puVar18;\n              iVar8 = (**(code **)(**(int **)(iVar10 + 8) + 0xe8))();\n            }\n            else {\n              local_30 = puVar18;\n              iVar8 = (*pcVar25)();\n            }\n            uVar15 = *local_44;\n            if (iVar8 == 0) {\n              uVar15 = (((uVar15 >> 0x10) << 0x18 | (uVar15 >> 0x18) << 0x10) >> 0x10) +\n                       ((uVar15 & 0xff) << 8 | uVar15 >> 8 & 0xff) * 0x10000;\n            }\n            local_44 = local_44 + 1;\n            uVar26 = (ulonglong)uVar15;\n          }\n          else {\n            local_30 = puVar18;\n            uVar26 = (*local_34)(iVar10,&local_44);\n          }\n          local_50 = uVar26;\n          local_58 = (*local_3c)(*param_1);\n          uVar26 = local_50;\n        }\n        else {\n          if (uVar19 == 0x13) {\n            pcVar25 = *(code **)(**(int **)(*param_1 + 8) + 0xc);\n            if (pcVar25 == (code *)PTR_is_big_endian_004c2950) {\n              local_30 = puVar18;\n              iVar8 = (**(code **)(**(int **)(*param_1 + 8) + 0xe8))();\n            }\n            else {\n              local_30 = puVar18;\n              iVar8 = (*pcVar25)();\n            }\n            uVar15 = *local_44;\n            if (iVar8 == 0) {\n              uVar15 = (((uVar15 >> 0x10) << 0x18 | (uVar15 >> 0x18) << 0x10) >> 0x10) +\n                       ((uVar15 & 0xff) << 8 | uVar15 >> 8 & 0xff) * 0x10000;\n            }\n            local_44 = local_44 + 1;\n            iVar8 = *param_1;\n            uVar26 = (ulonglong)uVar15;\n          }\n          else {\n            if (uVar19 < 0x14) {\n              pcVar25 = *(code **)(**(int **)(*param_1 + 8) + 0xc);\n              if (pcVar25 == (code *)PTR_is_big_endian_004c2950) {\n                iVar8 = (**(code **)(**(int **)(*param_1 + 8) + 0xe8))();\n              }\n              else {\n                iVar8 = (*pcVar25)();\n              }\n              uVar6 = *(ushort *)local_44;\n              if (iVar8 == 0) {\n                uVar6 = CONCAT11(*(byte *)((int)local_44 + 1),*(byte *)local_44);\n              }\n              local_44 = (uint *)((int)local_44 + 2);\n              uVar26 = (ulonglong)uVar6;\n              goto joined_r0x002e3998;\n            }\n            pcVar25 = *(code **)(**(int **)(*param_1 + 8) + 0xc);\n            if (pcVar25 == (code *)PTR_is_big_endian_004c2950) {\n              local_30 = puVar18;\n              iVar8 = (**(code **)(**(int **)(*param_1 + 8) + 0xe8))();\n            }\n            else {\n              local_30 = puVar18;\n              iVar8 = (*pcVar25)();\n            }\n            uVar15 = local_44[1];\n            uVar16 = *local_44;\n            if (iVar8 == 0) {\n              uVar2 = uVar15 & 0xff;\n              uVar4 = uVar15 >> 8;\n              uVar3 = uVar15 >> 0x10;\n              uVar5 = uVar15 >> 0x18;\n              uVar15 = (((uVar16 >> 0x10) << 0x18 | (uVar16 >> 0x18) << 0x10) >> 0x10) +\n                       ((uVar16 & 0xff) << 8 | uVar16 >> 8 & 0xff) * 0x10000;\n              uVar16 = ((uVar3 << 0x18 | uVar5 << 0x10) >> 0x10) +\n                       (uVar2 << 8 | uVar4 & 0xff) * 0x10000;\n            }\n            uVar26 = CONCAT44(uVar16,uVar15);\n            local_44 = local_44 + 2;\n            iVar8 = *param_1;\n          }\nLAB_002e3970:\n          local_50 = uVar26;\n          local_58 = (*local_3c)(iVar8);\n          uVar26 = local_50;\n        }" if (parenthesized_expression "(uVar19 < 0x12)" ( (binary_expression "uVar19 < 0x12" identifier < number_literal) )) (compound_statement "{\n          if (uVar19 == 0xf) goto LAB_002e34d8;\n          if (uVar19 != 0x10) {\n            return 0;\n          }\n          iVar10 = *param_1;\n          iVar8 = *(int *)(iVar10 + 0x48);\n          if (*(uint *)(iVar10 + 0x50) < 3) {\n            iVar8 = *(int *)(iVar10 + 0x4c);\n          }\n          if (iVar8 == 4) {\n            pcVar25 = *(code **)(**(int **)(iVar10 + 8) + 0xc);\n            if (pcVar25 == (code *)PTR_is_big_endian_004c2950) {\n              local_30 = puVar18;\n              iVar8 = (**(code **)(**(int **)(iVar10 + 8) + 0xe8))();\n            }\n            else {\n              local_30 = puVar18;\n              iVar8 = (*pcVar25)();\n            }\n            uVar15 = *local_44;\n            if (iVar8 == 0) {\n              uVar15 = (((uVar15 >> 0x10) << 0x18 | (uVar15 >> 0x18) << 0x10) >> 0x10) +\n                       ((uVar15 & 0xff) << 8 | uVar15 >> 8 & 0xff) * 0x10000;\n            }\n            local_44 = local_44 + 1;\n            uVar26 = (ulonglong)uVar15;\n          }\n          else {\n            local_30 = puVar18;\n            uVar26 = (*local_34)(iVar10,&local_44);\n          }\n          local_50 = uVar26;\n          local_58 = (*local_3c)(*param_1);\n          uVar26 = local_50;\n        }" { (if_statement "if (uVar19 == 0xf) goto LAB_002e34d8;" if (parenthesized_expression "(uVar19 == 0xf)" ( (binary_expression "uVar19 == 0xf" identifier == number_literal) )) (goto_statement "goto LAB_002e34d8;" goto statement_identifier ;)) (if_statement "if (uVar19 != 0x10) {\n            return 0;\n          }" if (parenthesized_expression "(uVar19 != 0x10)" ( (binary_expression "uVar19 != 0x10" identifier != number_literal) )) (compound_statement "{\n            return 0;\n          }" { (return_statement "return 0;" return number_literal ;) })) (expression_statement "iVar10 = *param_1;" (assignment_expression "iVar10 = *param_1" identifier = (pointer_expression "*param_1" * identifier)) ;) (expression_statement "iVar8 = *(int *)(iVar10 + 0x48);" (assignment_expression "iVar8 = *(int *)(iVar10 + 0x48)" identifier = (pointer_expression "*(int *)(iVar10 + 0x48)" * (cast_expression "(int *)(iVar10 + 0x48)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar10 + 0x48)" ( (binary_expression "iVar10 + 0x48" identifier + number_literal) ))))) ;) (if_statement "if (*(uint *)(iVar10 + 0x50) < 3) {\n            iVar8 = *(int *)(iVar10 + 0x4c);\n          }" if (parenthesized_expression "(*(uint *)(iVar10 + 0x50) < 3)" ( (binary_expression "*(uint *)(iVar10 + 0x50) < 3" (pointer_expression "*(uint *)(iVar10 + 0x50)" * (cast_expression "(uint *)(iVar10 + 0x50)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar10 + 0x50)" ( (binary_expression "iVar10 + 0x50" identifier + number_literal) )))) < number_literal) )) (compound_statement "{\n            iVar8 = *(int *)(iVar10 + 0x4c);\n          }" { (expression_statement "iVar8 = *(int *)(iVar10 + 0x4c);" (assignment_expression "iVar8 = *(int *)(iVar10 + 0x4c)" identifier = (pointer_expression "*(int *)(iVar10 + 0x4c)" * (cast_expression "(int *)(iVar10 + 0x4c)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar10 + 0x4c)" ( (binary_expression "iVar10 + 0x4c" identifier + number_literal) ))))) ;) })) (if_statement "if (iVar8 == 4) {\n            pcVar25 = *(code **)(**(int **)(iVar10 + 8) + 0xc);\n            if (pcVar25 == (code *)PTR_is_big_endian_004c2950) {\n              local_30 = puVar18;\n              iVar8 = (**(code **)(**(int **)(iVar10 + 8) + 0xe8))();\n            }\n            else {\n              local_30 = puVar18;\n              iVar8 = (*pcVar25)();\n            }\n            uVar15 = *local_44;\n            if (iVar8 == 0) {\n              uVar15 = (((uVar15 >> 0x10) << 0x18 | (uVar15 >> 0x18) << 0x10) >> 0x10) +\n                       ((uVar15 & 0xff) << 8 | uVar15 >> 8 & 0xff) * 0x10000;\n            }\n            local_44 = local_44 + 1;\n            uVar26 = (ulonglong)uVar15;\n          }\n          else {\n            local_30 = puVar18;\n            uVar26 = (*local_34)(iVar10,&local_44);\n          }" if (parenthesized_expression "(iVar8 == 4)" ( (binary_expression "iVar8 == 4" identifier == number_literal) )) (compound_statement "{\n            pcVar25 = *(code **)(**(int **)(iVar10 + 8) + 0xc);\n            if (pcVar25 == (code *)PTR_is_big_endian_004c2950) {\n              local_30 = puVar18;\n              iVar8 = (**(code **)(**(int **)(iVar10 + 8) + 0xe8))();\n            }\n            else {\n              local_30 = puVar18;\n              iVar8 = (*pcVar25)();\n            }\n            uVar15 = *local_44;\n            if (iVar8 == 0) {\n              uVar15 = (((uVar15 >> 0x10) << 0x18 | (uVar15 >> 0x18) << 0x10) >> 0x10) +\n                       ((uVar15 & 0xff) << 8 | uVar15 >> 8 & 0xff) * 0x10000;\n            }\n            local_44 = local_44 + 1;\n            uVar26 = (ulonglong)uVar15;\n          }" { (expression_statement "pcVar25 = *(code **)(**(int **)(iVar10 + 8) + 0xc);" (assignment_expression "pcVar25 = *(code **)(**(int **)(iVar10 + 8) + 0xc)" identifier = (pointer_expression "*(code **)(**(int **)(iVar10 + 8) + 0xc)" * (cast_expression "(code **)(**(int **)(iVar10 + 8) + 0xc)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(**(int **)(iVar10 + 8) + 0xc)" ( (binary_expression "**(int **)(iVar10 + 8) + 0xc" (pointer_expression "**(int **)(iVar10 + 8)" * (pointer_expression "*(int **)(iVar10 + 8)" * (cast_expression "(int **)(iVar10 + 8)" ( (type_descriptor "int **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(iVar10 + 8)" ( (binary_expression "iVar10 + 8" identifier + number_literal) ))))) + number_literal) ))))) ;) (if_statement "if (pcVar25 == (code *)PTR_is_big_endian_004c2950) {\n              local_30 = puVar18;\n              iVar8 = (**(code **)(**(int **)(iVar10 + 8) + 0xe8))();\n            }\n            else {\n              local_30 = puVar18;\n              iVar8 = (*pcVar25)();\n            }" if (parenthesized_expression "(pcVar25 == (code *)PTR_is_big_endian_004c2950)" ( (binary_expression "pcVar25 == (code *)PTR_is_big_endian_004c2950" identifier == (cast_expression "(code *)PTR_is_big_endian_004c2950" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (compound_statement "{\n              local_30 = puVar18;\n              iVar8 = (**(code **)(**(int **)(iVar10 + 8) + 0xe8))();\n            }" { (expression_statement "local_30 = puVar18;" (assignment_expression "local_30 = puVar18" identifier = identifier) ;) (expression_statement "iVar8 = (**(code **)(**(int **)(iVar10 + 8) + 0xe8))();" (assignment_expression "iVar8 = (**(code **)(**(int **)(iVar10 + 8) + 0xe8))()" identifier = (call_expression "(**(code **)(**(int **)(iVar10 + 8) + 0xe8))()" (parenthesized_expression "(**(code **)(**(int **)(iVar10 + 8) + 0xe8))" ( (pointer_expression "**(code **)(**(int **)(iVar10 + 8) + 0xe8)" * (pointer_expression "*(code **)(**(int **)(iVar10 + 8) + 0xe8)" * (cast_expression "(code **)(**(int **)(iVar10 + 8) + 0xe8)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(**(int **)(iVar10 + 8) + 0xe8)" ( (binary_expression "**(int **)(iVar10 + 8) + 0xe8" (pointer_expression "**(int **)(iVar10 + 8)" * (pointer_expression "*(int **)(iVar10 + 8)" * (cast_expression "(int **)(iVar10 + 8)" ( (type_descriptor "int **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(iVar10 + 8)" ( (binary_expression "iVar10 + 8" identifier + number_literal) ))))) + number_literal) ))))) )) (argument_list "()" ( )))) ;) }) (else_clause "else {\n              local_30 = puVar18;\n              iVar8 = (*pcVar25)();\n            }" else (compound_statement "{\n              local_30 = puVar18;\n              iVar8 = (*pcVar25)();\n            }" { (expression_statement "local_30 = puVar18;" (assignment_expression "local_30 = puVar18" identifier = identifier) ;) (expression_statement "iVar8 = (*pcVar25)();" (assignment_expression "iVar8 = (*pcVar25)()" identifier = (call_expression "(*pcVar25)()" (parenthesized_expression "(*pcVar25)" ( (pointer_expression "*pcVar25" * identifier) )) (argument_list "()" ( )))) ;) }))) (expression_statement "uVar15 = *local_44;" (assignment_expression "uVar15 = *local_44" identifier = (pointer_expression "*local_44" * identifier)) ;) (if_statement "if (iVar8 == 0) {\n              uVar15 = (((uVar15 >> 0x10) << 0x18 | (uVar15 >> 0x18) << 0x10) >> 0x10) +\n                       ((uVar15 & 0xff) << 8 | uVar15 >> 8 & 0xff) * 0x10000;\n            }" if (parenthesized_expression "(iVar8 == 0)" ( (binary_expression "iVar8 == 0" identifier == number_literal) )) (compound_statement "{\n              uVar15 = (((uVar15 >> 0x10) << 0x18 | (uVar15 >> 0x18) << 0x10) >> 0x10) +\n                       ((uVar15 & 0xff) << 8 | uVar15 >> 8 & 0xff) * 0x10000;\n            }" { (expression_statement "uVar15 = (((uVar15 >> 0x10) << 0x18 | (uVar15 >> 0x18) << 0x10) >> 0x10) +\n                       ((uVar15 & 0xff) << 8 | uVar15 >> 8 & 0xff) * 0x10000;" (assignment_expression "uVar15 = (((uVar15 >> 0x10) << 0x18 | (uVar15 >> 0x18) << 0x10) >> 0x10) +\n                       ((uVar15 & 0xff) << 8 | uVar15 >> 8 & 0xff) * 0x10000" identifier = (binary_expression "(((uVar15 >> 0x10) << 0x18 | (uVar15 >> 0x18) << 0x10) >> 0x10) +\n                       ((uVar15 & 0xff) << 8 | uVar15 >> 8 & 0xff) * 0x10000" (parenthesized_expression "(((uVar15 >> 0x10) << 0x18 | (uVar15 >> 0x18) << 0x10) >> 0x10)" ( (binary_expression "((uVar15 >> 0x10) << 0x18 | (uVar15 >> 0x18) << 0x10) >> 0x10" (parenthesized_expression "((uVar15 >> 0x10) << 0x18 | (uVar15 >> 0x18) << 0x10)" ( (binary_expression "(uVar15 >> 0x10) << 0x18 | (uVar15 >> 0x18) << 0x10" (binary_expression "(uVar15 >> 0x10) << 0x18" (parenthesized_expression "(uVar15 >> 0x10)" ( (binary_expression "uVar15 >> 0x10" identifier >> number_literal) )) << number_literal) | (binary_expression "(uVar15 >> 0x18) << 0x10" (parenthesized_expression "(uVar15 >> 0x18)" ( (binary_expression "uVar15 >> 0x18" identifier >> number_literal) )) << number_literal)) )) >> number_literal) )) + (binary_expression "((uVar15 & 0xff) << 8 | uVar15 >> 8 & 0xff) * 0x10000" (parenthesized_expression "((uVar15 & 0xff) << 8 | uVar15 >> 8 & 0xff)" ( (binary_expression "(uVar15 & 0xff) << 8 | uVar15 >> 8 & 0xff" (binary_expression "(uVar15 & 0xff) << 8" (parenthesized_expression "(uVar15 & 0xff)" ( (binary_expression "uVar15 & 0xff" identifier & number_literal) )) << number_literal) | (binary_expression "uVar15 >> 8 & 0xff" (binary_expression "uVar15 >> 8" identifier >> number_literal) & number_literal)) )) * number_literal))) ;) })) (expression_statement "local_44 = local_44 + 1;" (assignment_expression "local_44 = local_44 + 1" identifier = (binary_expression "local_44 + 1" identifier + number_literal)) ;) (expression_statement "uVar26 = (ulonglong)uVar15;" (assignment_expression "uVar26 = (ulonglong)uVar15" identifier = (cast_expression "(ulonglong)uVar15" ( (type_descriptor "ulonglong" type_identifier) ) identifier)) ;) }) (else_clause "else {\n            local_30 = puVar18;\n            uVar26 = (*local_34)(iVar10,&local_44);\n          }" else (compound_statement "{\n            local_30 = puVar18;\n            uVar26 = (*local_34)(iVar10,&local_44);\n          }" { (expression_statement "local_30 = puVar18;" (assignment_expression "local_30 = puVar18" identifier = identifier) ;) (expression_statement "uVar26 = (*local_34)(iVar10,&local_44);" (assignment_expression "uVar26 = (*local_34)(iVar10,&local_44)" identifier = (call_expression "(*local_34)(iVar10,&local_44)" (parenthesized_expression "(*local_34)" ( (pointer_expression "*local_34" * identifier) )) (argument_list "(iVar10,&local_44)" ( identifier , (pointer_expression "&local_44" & identifier) )))) ;) }))) (expression_statement "local_50 = uVar26;" (assignment_expression "local_50 = uVar26" identifier = identifier) ;) (expression_statement "local_58 = (*local_3c)(*param_1);" (assignment_expression "local_58 = (*local_3c)(*param_1)" identifier = (call_expression "(*local_3c)(*param_1)" (parenthesized_expression "(*local_3c)" ( (pointer_expression "*local_3c" * identifier) )) (argument_list "(*param_1)" ( (pointer_expression "*param_1" * identifier) )))) ;) (expression_statement "uVar26 = local_50;" (assignment_expression "uVar26 = local_50" identifier = identifier) ;) }) (else_clause "else {\n          if (uVar19 == 0x13) {\n            pcVar25 = *(code **)(**(int **)(*param_1 + 8) + 0xc);\n            if (pcVar25 == (code *)PTR_is_big_endian_004c2950) {\n              local_30 = puVar18;\n              iVar8 = (**(code **)(**(int **)(*param_1 + 8) + 0xe8))();\n            }\n            else {\n              local_30 = puVar18;\n              iVar8 = (*pcVar25)();\n            }\n            uVar15 = *local_44;\n            if (iVar8 == 0) {\n              uVar15 = (((uVar15 >> 0x10) << 0x18 | (uVar15 >> 0x18) << 0x10) >> 0x10) +\n                       ((uVar15 & 0xff) << 8 | uVar15 >> 8 & 0xff) * 0x10000;\n            }\n            local_44 = local_44 + 1;\n            iVar8 = *param_1;\n            uVar26 = (ulonglong)uVar15;\n          }\n          else {\n            if (uVar19 < 0x14) {\n              pcVar25 = *(code **)(**(int **)(*param_1 + 8) + 0xc);\n              if (pcVar25 == (code *)PTR_is_big_endian_004c2950) {\n                iVar8 = (**(code **)(**(int **)(*param_1 + 8) + 0xe8))();\n              }\n              else {\n                iVar8 = (*pcVar25)();\n              }\n              uVar6 = *(ushort *)local_44;\n              if (iVar8 == 0) {\n                uVar6 = CONCAT11(*(byte *)((int)local_44 + 1),*(byte *)local_44);\n              }\n              local_44 = (uint *)((int)local_44 + 2);\n              uVar26 = (ulonglong)uVar6;\n              goto joined_r0x002e3998;\n            }\n            pcVar25 = *(code **)(**(int **)(*param_1 + 8) + 0xc);\n            if (pcVar25 == (code *)PTR_is_big_endian_004c2950) {\n              local_30 = puVar18;\n              iVar8 = (**(code **)(**(int **)(*param_1 + 8) + 0xe8))();\n            }\n            else {\n              local_30 = puVar18;\n              iVar8 = (*pcVar25)();\n            }\n            uVar15 = local_44[1];\n            uVar16 = *local_44;\n            if (iVar8 == 0) {\n              uVar2 = uVar15 & 0xff;\n              uVar4 = uVar15 >> 8;\n              uVar3 = uVar15 >> 0x10;\n              uVar5 = uVar15 >> 0x18;\n              uVar15 = (((uVar16 >> 0x10) << 0x18 | (uVar16 >> 0x18) << 0x10) >> 0x10) +\n                       ((uVar16 & 0xff) << 8 | uVar16 >> 8 & 0xff) * 0x10000;\n              uVar16 = ((uVar3 << 0x18 | uVar5 << 0x10) >> 0x10) +\n                       (uVar2 << 8 | uVar4 & 0xff) * 0x10000;\n            }\n            uVar26 = CONCAT44(uVar16,uVar15);\n            local_44 = local_44 + 2;\n            iVar8 = *param_1;\n          }\nLAB_002e3970:\n          local_50 = uVar26;\n          local_58 = (*local_3c)(iVar8);\n          uVar26 = local_50;\n        }" else (compound_statement "{\n          if (uVar19 == 0x13) {\n            pcVar25 = *(code **)(**(int **)(*param_1 + 8) + 0xc);\n            if (pcVar25 == (code *)PTR_is_big_endian_004c2950) {\n              local_30 = puVar18;\n              iVar8 = (**(code **)(**(int **)(*param_1 + 8) + 0xe8))();\n            }\n            else {\n              local_30 = puVar18;\n              iVar8 = (*pcVar25)();\n            }\n            uVar15 = *local_44;\n            if (iVar8 == 0) {\n              uVar15 = (((uVar15 >> 0x10) << 0x18 | (uVar15 >> 0x18) << 0x10) >> 0x10) +\n                       ((uVar15 & 0xff) << 8 | uVar15 >> 8 & 0xff) * 0x10000;\n            }\n            local_44 = local_44 + 1;\n            iVar8 = *param_1;\n            uVar26 = (ulonglong)uVar15;\n          }\n          else {\n            if (uVar19 < 0x14) {\n              pcVar25 = *(code **)(**(int **)(*param_1 + 8) + 0xc);\n              if (pcVar25 == (code *)PTR_is_big_endian_004c2950) {\n                iVar8 = (**(code **)(**(int **)(*param_1 + 8) + 0xe8))();\n              }\n              else {\n                iVar8 = (*pcVar25)();\n              }\n              uVar6 = *(ushort *)local_44;\n              if (iVar8 == 0) {\n                uVar6 = CONCAT11(*(byte *)((int)local_44 + 1),*(byte *)local_44);\n              }\n              local_44 = (uint *)((int)local_44 + 2);\n              uVar26 = (ulonglong)uVar6;\n              goto joined_r0x002e3998;\n            }\n            pcVar25 = *(code **)(**(int **)(*param_1 + 8) + 0xc);\n            if (pcVar25 == (code *)PTR_is_big_endian_004c2950) {\n              local_30 = puVar18;\n              iVar8 = (**(code **)(**(int **)(*param_1 + 8) + 0xe8))();\n            }\n            else {\n              local_30 = puVar18;\n              iVar8 = (*pcVar25)();\n            }\n            uVar15 = local_44[1];\n            uVar16 = *local_44;\n            if (iVar8 == 0) {\n              uVar2 = uVar15 & 0xff;\n              uVar4 = uVar15 >> 8;\n              uVar3 = uVar15 >> 0x10;\n              uVar5 = uVar15 >> 0x18;\n              uVar15 = (((uVar16 >> 0x10) << 0x18 | (uVar16 >> 0x18) << 0x10) >> 0x10) +\n                       ((uVar16 & 0xff) << 8 | uVar16 >> 8 & 0xff) * 0x10000;\n              uVar16 = ((uVar3 << 0x18 | uVar5 << 0x10) >> 0x10) +\n                       (uVar2 << 8 | uVar4 & 0xff) * 0x10000;\n            }\n            uVar26 = CONCAT44(uVar16,uVar15);\n            local_44 = local_44 + 2;\n            iVar8 = *param_1;\n          }\nLAB_002e3970:\n          local_50 = uVar26;\n          local_58 = (*local_3c)(iVar8);\n          uVar26 = local_50;\n        }" { (if_statement "if (uVar19 == 0x13) {\n            pcVar25 = *(code **)(**(int **)(*param_1 + 8) + 0xc);\n            if (pcVar25 == (code *)PTR_is_big_endian_004c2950) {\n              local_30 = puVar18;\n              iVar8 = (**(code **)(**(int **)(*param_1 + 8) + 0xe8))();\n            }\n            else {\n              local_30 = puVar18;\n              iVar8 = (*pcVar25)();\n            }\n            uVar15 = *local_44;\n            if (iVar8 == 0) {\n              uVar15 = (((uVar15 >> 0x10) << 0x18 | (uVar15 >> 0x18) << 0x10) >> 0x10) +\n                       ((uVar15 & 0xff) << 8 | uVar15 >> 8 & 0xff) * 0x10000;\n            }\n            local_44 = local_44 + 1;\n            iVar8 = *param_1;\n            uVar26 = (ulonglong)uVar15;\n          }\n          else {\n            if (uVar19 < 0x14) {\n              pcVar25 = *(code **)(**(int **)(*param_1 + 8) + 0xc);\n              if (pcVar25 == (code *)PTR_is_big_endian_004c2950) {\n                iVar8 = (**(code **)(**(int **)(*param_1 + 8) + 0xe8))();\n              }\n              else {\n                iVar8 = (*pcVar25)();\n              }\n              uVar6 = *(ushort *)local_44;\n              if (iVar8 == 0) {\n                uVar6 = CONCAT11(*(byte *)((int)local_44 + 1),*(byte *)local_44);\n              }\n              local_44 = (uint *)((int)local_44 + 2);\n              uVar26 = (ulonglong)uVar6;\n              goto joined_r0x002e3998;\n            }\n            pcVar25 = *(code **)(**(int **)(*param_1 + 8) + 0xc);\n            if (pcVar25 == (code *)PTR_is_big_endian_004c2950) {\n              local_30 = puVar18;\n              iVar8 = (**(code **)(**(int **)(*param_1 + 8) + 0xe8))();\n            }\n            else {\n              local_30 = puVar18;\n              iVar8 = (*pcVar25)();\n            }\n            uVar15 = local_44[1];\n            uVar16 = *local_44;\n            if (iVar8 == 0) {\n              uVar2 = uVar15 & 0xff;\n              uVar4 = uVar15 >> 8;\n              uVar3 = uVar15 >> 0x10;\n              uVar5 = uVar15 >> 0x18;\n              uVar15 = (((uVar16 >> 0x10) << 0x18 | (uVar16 >> 0x18) << 0x10) >> 0x10) +\n                       ((uVar16 & 0xff) << 8 | uVar16 >> 8 & 0xff) * 0x10000;\n              uVar16 = ((uVar3 << 0x18 | uVar5 << 0x10) >> 0x10) +\n                       (uVar2 << 8 | uVar4 & 0xff) * 0x10000;\n            }\n            uVar26 = CONCAT44(uVar16,uVar15);\n            local_44 = local_44 + 2;\n            iVar8 = *param_1;\n          }" if (parenthesized_expression "(uVar19 == 0x13)" ( (binary_expression "uVar19 == 0x13" identifier == number_literal) )) (compound_statement "{\n            pcVar25 = *(code **)(**(int **)(*param_1 + 8) + 0xc);\n            if (pcVar25 == (code *)PTR_is_big_endian_004c2950) {\n              local_30 = puVar18;\n              iVar8 = (**(code **)(**(int **)(*param_1 + 8) + 0xe8))();\n            }\n            else {\n              local_30 = puVar18;\n              iVar8 = (*pcVar25)();\n            }\n            uVar15 = *local_44;\n            if (iVar8 == 0) {\n              uVar15 = (((uVar15 >> 0x10) << 0x18 | (uVar15 >> 0x18) << 0x10) >> 0x10) +\n                       ((uVar15 & 0xff) << 8 | uVar15 >> 8 & 0xff) * 0x10000;\n            }\n            local_44 = local_44 + 1;\n            iVar8 = *param_1;\n            uVar26 = (ulonglong)uVar15;\n          }" { (expression_statement "pcVar25 = *(code **)(**(int **)(*param_1 + 8) + 0xc);" (assignment_expression "pcVar25 = *(code **)(**(int **)(*param_1 + 8) + 0xc)" identifier = (pointer_expression "*(code **)(**(int **)(*param_1 + 8) + 0xc)" * (cast_expression "(code **)(**(int **)(*param_1 + 8) + 0xc)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(**(int **)(*param_1 + 8) + 0xc)" ( (binary_expression "**(int **)(*param_1 + 8) + 0xc" (pointer_expression "**(int **)(*param_1 + 8)" * (pointer_expression "*(int **)(*param_1 + 8)" * (cast_expression "(int **)(*param_1 + 8)" ( (type_descriptor "int **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(*param_1 + 8)" ( (binary_expression "*param_1 + 8" (pointer_expression "*param_1" * identifier) + number_literal) ))))) + number_literal) ))))) ;) (if_statement "if (pcVar25 == (code *)PTR_is_big_endian_004c2950) {\n              local_30 = puVar18;\n              iVar8 = (**(code **)(**(int **)(*param_1 + 8) + 0xe8))();\n            }\n            else {\n              local_30 = puVar18;\n              iVar8 = (*pcVar25)();\n            }" if (parenthesized_expression "(pcVar25 == (code *)PTR_is_big_endian_004c2950)" ( (binary_expression "pcVar25 == (code *)PTR_is_big_endian_004c2950" identifier == (cast_expression "(code *)PTR_is_big_endian_004c2950" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (compound_statement "{\n              local_30 = puVar18;\n              iVar8 = (**(code **)(**(int **)(*param_1 + 8) + 0xe8))();\n            }" { (expression_statement "local_30 = puVar18;" (assignment_expression "local_30 = puVar18" identifier = identifier) ;) (expression_statement "iVar8 = (**(code **)(**(int **)(*param_1 + 8) + 0xe8))();" (assignment_expression "iVar8 = (**(code **)(**(int **)(*param_1 + 8) + 0xe8))()" identifier = (call_expression "(**(code **)(**(int **)(*param_1 + 8) + 0xe8))()" (parenthesized_expression "(**(code **)(**(int **)(*param_1 + 8) + 0xe8))" ( (pointer_expression "**(code **)(**(int **)(*param_1 + 8) + 0xe8)" * (pointer_expression "*(code **)(**(int **)(*param_1 + 8) + 0xe8)" * (cast_expression "(code **)(**(int **)(*param_1 + 8) + 0xe8)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(**(int **)(*param_1 + 8) + 0xe8)" ( (binary_expression "**(int **)(*param_1 + 8) + 0xe8" (pointer_expression "**(int **)(*param_1 + 8)" * (pointer_expression "*(int **)(*param_1 + 8)" * (cast_expression "(int **)(*param_1 + 8)" ( (type_descriptor "int **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(*param_1 + 8)" ( (binary_expression "*param_1 + 8" (pointer_expression "*param_1" * identifier) + number_literal) ))))) + number_literal) ))))) )) (argument_list "()" ( )))) ;) }) (else_clause "else {\n              local_30 = puVar18;\n              iVar8 = (*pcVar25)();\n            }" else (compound_statement "{\n              local_30 = puVar18;\n              iVar8 = (*pcVar25)();\n            }" { (expression_statement "local_30 = puVar18;" (assignment_expression "local_30 = puVar18" identifier = identifier) ;) (expression_statement "iVar8 = (*pcVar25)();" (assignment_expression "iVar8 = (*pcVar25)()" identifier = (call_expression "(*pcVar25)()" (parenthesized_expression "(*pcVar25)" ( (pointer_expression "*pcVar25" * identifier) )) (argument_list "()" ( )))) ;) }))) (expression_statement "uVar15 = *local_44;" (assignment_expression "uVar15 = *local_44" identifier = (pointer_expression "*local_44" * identifier)) ;) (if_statement "if (iVar8 == 0) {\n              uVar15 = (((uVar15 >> 0x10) << 0x18 | (uVar15 >> 0x18) << 0x10) >> 0x10) +\n                       ((uVar15 & 0xff) << 8 | uVar15 >> 8 & 0xff) * 0x10000;\n            }" if (parenthesized_expression "(iVar8 == 0)" ( (binary_expression "iVar8 == 0" identifier == number_literal) )) (compound_statement "{\n              uVar15 = (((uVar15 >> 0x10) << 0x18 | (uVar15 >> 0x18) << 0x10) >> 0x10) +\n                       ((uVar15 & 0xff) << 8 | uVar15 >> 8 & 0xff) * 0x10000;\n            }" { (expression_statement "uVar15 = (((uVar15 >> 0x10) << 0x18 | (uVar15 >> 0x18) << 0x10) >> 0x10) +\n                       ((uVar15 & 0xff) << 8 | uVar15 >> 8 & 0xff) * 0x10000;" (assignment_expression "uVar15 = (((uVar15 >> 0x10) << 0x18 | (uVar15 >> 0x18) << 0x10) >> 0x10) +\n                       ((uVar15 & 0xff) << 8 | uVar15 >> 8 & 0xff) * 0x10000" identifier = (binary_expression "(((uVar15 >> 0x10) << 0x18 | (uVar15 >> 0x18) << 0x10) >> 0x10) +\n                       ((uVar15 & 0xff) << 8 | uVar15 >> 8 & 0xff) * 0x10000" (parenthesized_expression "(((uVar15 >> 0x10) << 0x18 | (uVar15 >> 0x18) << 0x10) >> 0x10)" ( (binary_expression "((uVar15 >> 0x10) << 0x18 | (uVar15 >> 0x18) << 0x10) >> 0x10" (parenthesized_expression "((uVar15 >> 0x10) << 0x18 | (uVar15 >> 0x18) << 0x10)" ( (binary_expression "(uVar15 >> 0x10) << 0x18 | (uVar15 >> 0x18) << 0x10" (binary_expression "(uVar15 >> 0x10) << 0x18" (parenthesized_expression "(uVar15 >> 0x10)" ( (binary_expression "uVar15 >> 0x10" identifier >> number_literal) )) << number_literal) | (binary_expression "(uVar15 >> 0x18) << 0x10" (parenthesized_expression "(uVar15 >> 0x18)" ( (binary_expression "uVar15 >> 0x18" identifier >> number_literal) )) << number_literal)) )) >> number_literal) )) + (binary_expression "((uVar15 & 0xff) << 8 | uVar15 >> 8 & 0xff) * 0x10000" (parenthesized_expression "((uVar15 & 0xff) << 8 | uVar15 >> 8 & 0xff)" ( (binary_expression "(uVar15 & 0xff) << 8 | uVar15 >> 8 & 0xff" (binary_expression "(uVar15 & 0xff) << 8" (parenthesized_expression "(uVar15 & 0xff)" ( (binary_expression "uVar15 & 0xff" identifier & number_literal) )) << number_literal) | (binary_expression "uVar15 >> 8 & 0xff" (binary_expression "uVar15 >> 8" identifier >> number_literal) & number_literal)) )) * number_literal))) ;) })) (expression_statement "local_44 = local_44 + 1;" (assignment_expression "local_44 = local_44 + 1" identifier = (binary_expression "local_44 + 1" identifier + number_literal)) ;) (expression_statement "iVar8 = *param_1;" (assignment_expression "iVar8 = *param_1" identifier = (pointer_expression "*param_1" * identifier)) ;) (expression_statement "uVar26 = (ulonglong)uVar15;" (assignment_expression "uVar26 = (ulonglong)uVar15" identifier = (cast_expression "(ulonglong)uVar15" ( (type_descriptor "ulonglong" type_identifier) ) identifier)) ;) }) (else_clause "else {\n            if (uVar19 < 0x14) {\n              pcVar25 = *(code **)(**(int **)(*param_1 + 8) + 0xc);\n              if (pcVar25 == (code *)PTR_is_big_endian_004c2950) {\n                iVar8 = (**(code **)(**(int **)(*param_1 + 8) + 0xe8))();\n              }\n              else {\n                iVar8 = (*pcVar25)();\n              }\n              uVar6 = *(ushort *)local_44;\n              if (iVar8 == 0) {\n                uVar6 = CONCAT11(*(byte *)((int)local_44 + 1),*(byte *)local_44);\n              }\n              local_44 = (uint *)((int)local_44 + 2);\n              uVar26 = (ulonglong)uVar6;\n              goto joined_r0x002e3998;\n            }\n            pcVar25 = *(code **)(**(int **)(*param_1 + 8) + 0xc);\n            if (pcVar25 == (code *)PTR_is_big_endian_004c2950) {\n              local_30 = puVar18;\n              iVar8 = (**(code **)(**(int **)(*param_1 + 8) + 0xe8))();\n            }\n            else {\n              local_30 = puVar18;\n              iVar8 = (*pcVar25)();\n            }\n            uVar15 = local_44[1];\n            uVar16 = *local_44;\n            if (iVar8 == 0) {\n              uVar2 = uVar15 & 0xff;\n              uVar4 = uVar15 >> 8;\n              uVar3 = uVar15 >> 0x10;\n              uVar5 = uVar15 >> 0x18;\n              uVar15 = (((uVar16 >> 0x10) << 0x18 | (uVar16 >> 0x18) << 0x10) >> 0x10) +\n                       ((uVar16 & 0xff) << 8 | uVar16 >> 8 & 0xff) * 0x10000;\n              uVar16 = ((uVar3 << 0x18 | uVar5 << 0x10) >> 0x10) +\n                       (uVar2 << 8 | uVar4 & 0xff) * 0x10000;\n            }\n            uVar26 = CONCAT44(uVar16,uVar15);\n            local_44 = local_44 + 2;\n            iVar8 = *param_1;\n          }" else (compound_statement "{\n            if (uVar19 < 0x14) {\n              pcVar25 = *(code **)(**(int **)(*param_1 + 8) + 0xc);\n              if (pcVar25 == (code *)PTR_is_big_endian_004c2950) {\n                iVar8 = (**(code **)(**(int **)(*param_1 + 8) + 0xe8))();\n              }\n              else {\n                iVar8 = (*pcVar25)();\n              }\n              uVar6 = *(ushort *)local_44;\n              if (iVar8 == 0) {\n                uVar6 = CONCAT11(*(byte *)((int)local_44 + 1),*(byte *)local_44);\n              }\n              local_44 = (uint *)((int)local_44 + 2);\n              uVar26 = (ulonglong)uVar6;\n              goto joined_r0x002e3998;\n            }\n            pcVar25 = *(code **)(**(int **)(*param_1 + 8) + 0xc);\n            if (pcVar25 == (code *)PTR_is_big_endian_004c2950) {\n              local_30 = puVar18;\n              iVar8 = (**(code **)(**(int **)(*param_1 + 8) + 0xe8))();\n            }\n            else {\n              local_30 = puVar18;\n              iVar8 = (*pcVar25)();\n            }\n            uVar15 = local_44[1];\n            uVar16 = *local_44;\n            if (iVar8 == 0) {\n              uVar2 = uVar15 & 0xff;\n              uVar4 = uVar15 >> 8;\n              uVar3 = uVar15 >> 0x10;\n              uVar5 = uVar15 >> 0x18;\n              uVar15 = (((uVar16 >> 0x10) << 0x18 | (uVar16 >> 0x18) << 0x10) >> 0x10) +\n                       ((uVar16 & 0xff) << 8 | uVar16 >> 8 & 0xff) * 0x10000;\n              uVar16 = ((uVar3 << 0x18 | uVar5 << 0x10) >> 0x10) +\n                       (uVar2 << 8 | uVar4 & 0xff) * 0x10000;\n            }\n            uVar26 = CONCAT44(uVar16,uVar15);\n            local_44 = local_44 + 2;\n            iVar8 = *param_1;\n          }" { (if_statement "if (uVar19 < 0x14) {\n              pcVar25 = *(code **)(**(int **)(*param_1 + 8) + 0xc);\n              if (pcVar25 == (code *)PTR_is_big_endian_004c2950) {\n                iVar8 = (**(code **)(**(int **)(*param_1 + 8) + 0xe8))();\n              }\n              else {\n                iVar8 = (*pcVar25)();\n              }\n              uVar6 = *(ushort *)local_44;\n              if (iVar8 == 0) {\n                uVar6 = CONCAT11(*(byte *)((int)local_44 + 1),*(byte *)local_44);\n              }\n              local_44 = (uint *)((int)local_44 + 2);\n              uVar26 = (ulonglong)uVar6;\n              goto joined_r0x002e3998;\n            }" if (parenthesized_expression "(uVar19 < 0x14)" ( (binary_expression "uVar19 < 0x14" identifier < number_literal) )) (compound_statement "{\n              pcVar25 = *(code **)(**(int **)(*param_1 + 8) + 0xc);\n              if (pcVar25 == (code *)PTR_is_big_endian_004c2950) {\n                iVar8 = (**(code **)(**(int **)(*param_1 + 8) + 0xe8))();\n              }\n              else {\n                iVar8 = (*pcVar25)();\n              }\n              uVar6 = *(ushort *)local_44;\n              if (iVar8 == 0) {\n                uVar6 = CONCAT11(*(byte *)((int)local_44 + 1),*(byte *)local_44);\n              }\n              local_44 = (uint *)((int)local_44 + 2);\n              uVar26 = (ulonglong)uVar6;\n              goto joined_r0x002e3998;\n            }" { (expression_statement "pcVar25 = *(code **)(**(int **)(*param_1 + 8) + 0xc);" (assignment_expression "pcVar25 = *(code **)(**(int **)(*param_1 + 8) + 0xc)" identifier = (pointer_expression "*(code **)(**(int **)(*param_1 + 8) + 0xc)" * (cast_expression "(code **)(**(int **)(*param_1 + 8) + 0xc)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(**(int **)(*param_1 + 8) + 0xc)" ( (binary_expression "**(int **)(*param_1 + 8) + 0xc" (pointer_expression "**(int **)(*param_1 + 8)" * (pointer_expression "*(int **)(*param_1 + 8)" * (cast_expression "(int **)(*param_1 + 8)" ( (type_descriptor "int **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(*param_1 + 8)" ( (binary_expression "*param_1 + 8" (pointer_expression "*param_1" * identifier) + number_literal) ))))) + number_literal) ))))) ;) (if_statement "if (pcVar25 == (code *)PTR_is_big_endian_004c2950) {\n                iVar8 = (**(code **)(**(int **)(*param_1 + 8) + 0xe8))();\n              }\n              else {\n                iVar8 = (*pcVar25)();\n              }" if (parenthesized_expression "(pcVar25 == (code *)PTR_is_big_endian_004c2950)" ( (binary_expression "pcVar25 == (code *)PTR_is_big_endian_004c2950" identifier == (cast_expression "(code *)PTR_is_big_endian_004c2950" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (compound_statement "{\n                iVar8 = (**(code **)(**(int **)(*param_1 + 8) + 0xe8))();\n              }" { (expression_statement "iVar8 = (**(code **)(**(int **)(*param_1 + 8) + 0xe8))();" (assignment_expression "iVar8 = (**(code **)(**(int **)(*param_1 + 8) + 0xe8))()" identifier = (call_expression "(**(code **)(**(int **)(*param_1 + 8) + 0xe8))()" (parenthesized_expression "(**(code **)(**(int **)(*param_1 + 8) + 0xe8))" ( (pointer_expression "**(code **)(**(int **)(*param_1 + 8) + 0xe8)" * (pointer_expression "*(code **)(**(int **)(*param_1 + 8) + 0xe8)" * (cast_expression "(code **)(**(int **)(*param_1 + 8) + 0xe8)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(**(int **)(*param_1 + 8) + 0xe8)" ( (binary_expression "**(int **)(*param_1 + 8) + 0xe8" (pointer_expression "**(int **)(*param_1 + 8)" * (pointer_expression "*(int **)(*param_1 + 8)" * (cast_expression "(int **)(*param_1 + 8)" ( (type_descriptor "int **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(*param_1 + 8)" ( (binary_expression "*param_1 + 8" (pointer_expression "*param_1" * identifier) + number_literal) ))))) + number_literal) ))))) )) (argument_list "()" ( )))) ;) }) (else_clause "else {\n                iVar8 = (*pcVar25)();\n              }" else (compound_statement "{\n                iVar8 = (*pcVar25)();\n              }" { (expression_statement "iVar8 = (*pcVar25)();" (assignment_expression "iVar8 = (*pcVar25)()" identifier = (call_expression "(*pcVar25)()" (parenthesized_expression "(*pcVar25)" ( (pointer_expression "*pcVar25" * identifier) )) (argument_list "()" ( )))) ;) }))) (expression_statement "uVar6 = *(ushort *)local_44;" (assignment_expression "uVar6 = *(ushort *)local_44" identifier = (pointer_expression "*(ushort *)local_44" * (cast_expression "(ushort *)local_44" ( (type_descriptor "ushort *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier))) ;) (if_statement "if (iVar8 == 0) {\n                uVar6 = CONCAT11(*(byte *)((int)local_44 + 1),*(byte *)local_44);\n              }" if (parenthesized_expression "(iVar8 == 0)" ( (binary_expression "iVar8 == 0" identifier == number_literal) )) (compound_statement "{\n                uVar6 = CONCAT11(*(byte *)((int)local_44 + 1),*(byte *)local_44);\n              }" { (expression_statement "uVar6 = CONCAT11(*(byte *)((int)local_44 + 1),*(byte *)local_44);" (assignment_expression "uVar6 = CONCAT11(*(byte *)((int)local_44 + 1),*(byte *)local_44)" identifier = (call_expression "CONCAT11(*(byte *)((int)local_44 + 1),*(byte *)local_44)" identifier (argument_list "(*(byte *)((int)local_44 + 1),*(byte *)local_44)" ( (pointer_expression "*(byte *)((int)local_44 + 1)" * (cast_expression "(byte *)((int)local_44 + 1)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)local_44 + 1)" ( (binary_expression "(int)local_44 + 1" (cast_expression "(int)local_44" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) , (pointer_expression "*(byte *)local_44" * (cast_expression "(byte *)local_44" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )))) ;) })) (expression_statement "local_44 = (uint *)((int)local_44 + 2);" (assignment_expression "local_44 = (uint *)((int)local_44 + 2)" identifier = (cast_expression "(uint *)((int)local_44 + 2)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)local_44 + 2)" ( (binary_expression "(int)local_44 + 2" (cast_expression "(int)local_44" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) ;) (expression_statement "uVar26 = (ulonglong)uVar6;" (assignment_expression "uVar26 = (ulonglong)uVar6" identifier = (cast_expression "(ulonglong)uVar6" ( (type_descriptor "ulonglong" type_identifier) ) identifier)) ;) (goto_statement "goto joined_r0x002e3998;" goto statement_identifier ;) })) (expression_statement "pcVar25 = *(code **)(**(int **)(*param_1 + 8) + 0xc);" (assignment_expression "pcVar25 = *(code **)(**(int **)(*param_1 + 8) + 0xc)" identifier = (pointer_expression "*(code **)(**(int **)(*param_1 + 8) + 0xc)" * (cast_expression "(code **)(**(int **)(*param_1 + 8) + 0xc)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(**(int **)(*param_1 + 8) + 0xc)" ( (binary_expression "**(int **)(*param_1 + 8) + 0xc" (pointer_expression "**(int **)(*param_1 + 8)" * (pointer_expression "*(int **)(*param_1 + 8)" * (cast_expression "(int **)(*param_1 + 8)" ( (type_descriptor "int **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(*param_1 + 8)" ( (binary_expression "*param_1 + 8" (pointer_expression "*param_1" * identifier) + number_literal) ))))) + number_literal) ))))) ;) (if_statement "if (pcVar25 == (code *)PTR_is_big_endian_004c2950) {\n              local_30 = puVar18;\n              iVar8 = (**(code **)(**(int **)(*param_1 + 8) + 0xe8))();\n            }\n            else {\n              local_30 = puVar18;\n              iVar8 = (*pcVar25)();\n            }" if (parenthesized_expression "(pcVar25 == (code *)PTR_is_big_endian_004c2950)" ( (binary_expression "pcVar25 == (code *)PTR_is_big_endian_004c2950" identifier == (cast_expression "(code *)PTR_is_big_endian_004c2950" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (compound_statement "{\n              local_30 = puVar18;\n              iVar8 = (**(code **)(**(int **)(*param_1 + 8) + 0xe8))();\n            }" { (expression_statement "local_30 = puVar18;" (assignment_expression "local_30 = puVar18" identifier = identifier) ;) (expression_statement "iVar8 = (**(code **)(**(int **)(*param_1 + 8) + 0xe8))();" (assignment_expression "iVar8 = (**(code **)(**(int **)(*param_1 + 8) + 0xe8))()" identifier = (call_expression "(**(code **)(**(int **)(*param_1 + 8) + 0xe8))()" (parenthesized_expression "(**(code **)(**(int **)(*param_1 + 8) + 0xe8))" ( (pointer_expression "**(code **)(**(int **)(*param_1 + 8) + 0xe8)" * (pointer_expression "*(code **)(**(int **)(*param_1 + 8) + 0xe8)" * (cast_expression "(code **)(**(int **)(*param_1 + 8) + 0xe8)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(**(int **)(*param_1 + 8) + 0xe8)" ( (binary_expression "**(int **)(*param_1 + 8) + 0xe8" (pointer_expression "**(int **)(*param_1 + 8)" * (pointer_expression "*(int **)(*param_1 + 8)" * (cast_expression "(int **)(*param_1 + 8)" ( (type_descriptor "int **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(*param_1 + 8)" ( (binary_expression "*param_1 + 8" (pointer_expression "*param_1" * identifier) + number_literal) ))))) + number_literal) ))))) )) (argument_list "()" ( )))) ;) }) (else_clause "else {\n              local_30 = puVar18;\n              iVar8 = (*pcVar25)();\n            }" else (compound_statement "{\n              local_30 = puVar18;\n              iVar8 = (*pcVar25)();\n            }" { (expression_statement "local_30 = puVar18;" (assignment_expression "local_30 = puVar18" identifier = identifier) ;) (expression_statement "iVar8 = (*pcVar25)();" (assignment_expression "iVar8 = (*pcVar25)()" identifier = (call_expression "(*pcVar25)()" (parenthesized_expression "(*pcVar25)" ( (pointer_expression "*pcVar25" * identifier) )) (argument_list "()" ( )))) ;) }))) (expression_statement "uVar15 = local_44[1];" (assignment_expression "uVar15 = local_44[1]" identifier = (subscript_expression "local_44[1]" identifier [ number_literal ])) ;) (expression_statement "uVar16 = *local_44;" (assignment_expression "uVar16 = *local_44" identifier = (pointer_expression "*local_44" * identifier)) ;) (if_statement "if (iVar8 == 0) {\n              uVar2 = uVar15 & 0xff;\n              uVar4 = uVar15 >> 8;\n              uVar3 = uVar15 >> 0x10;\n              uVar5 = uVar15 >> 0x18;\n              uVar15 = (((uVar16 >> 0x10) << 0x18 | (uVar16 >> 0x18) << 0x10) >> 0x10) +\n                       ((uVar16 & 0xff) << 8 | uVar16 >> 8 & 0xff) * 0x10000;\n              uVar16 = ((uVar3 << 0x18 | uVar5 << 0x10) >> 0x10) +\n                       (uVar2 << 8 | uVar4 & 0xff) * 0x10000;\n            }" if (parenthesized_expression "(iVar8 == 0)" ( (binary_expression "iVar8 == 0" identifier == number_literal) )) (compound_statement "{\n              uVar2 = uVar15 & 0xff;\n              uVar4 = uVar15 >> 8;\n              uVar3 = uVar15 >> 0x10;\n              uVar5 = uVar15 >> 0x18;\n              uVar15 = (((uVar16 >> 0x10) << 0x18 | (uVar16 >> 0x18) << 0x10) >> 0x10) +\n                       ((uVar16 & 0xff) << 8 | uVar16 >> 8 & 0xff) * 0x10000;\n              uVar16 = ((uVar3 << 0x18 | uVar5 << 0x10) >> 0x10) +\n                       (uVar2 << 8 | uVar4 & 0xff) * 0x10000;\n            }" { (expression_statement "uVar2 = uVar15 & 0xff;" (assignment_expression "uVar2 = uVar15 & 0xff" identifier = (binary_expression "uVar15 & 0xff" identifier & number_literal)) ;) (expression_statement "uVar4 = uVar15 >> 8;" (assignment_expression "uVar4 = uVar15 >> 8" identifier = (binary_expression "uVar15 >> 8" identifier >> number_literal)) ;) (expression_statement "uVar3 = uVar15 >> 0x10;" (assignment_expression "uVar3 = uVar15 >> 0x10" identifier = (binary_expression "uVar15 >> 0x10" identifier >> number_literal)) ;) (expression_statement "uVar5 = uVar15 >> 0x18;" (assignment_expression "uVar5 = uVar15 >> 0x18" identifier = (binary_expression "uVar15 >> 0x18" identifier >> number_literal)) ;) (expression_statement "uVar15 = (((uVar16 >> 0x10) << 0x18 | (uVar16 >> 0x18) << 0x10) >> 0x10) +\n                       ((uVar16 & 0xff) << 8 | uVar16 >> 8 & 0xff) * 0x10000;" (assignment_expression "uVar15 = (((uVar16 >> 0x10) << 0x18 | (uVar16 >> 0x18) << 0x10) >> 0x10) +\n                       ((uVar16 & 0xff) << 8 | uVar16 >> 8 & 0xff) * 0x10000" identifier = (binary_expression "(((uVar16 >> 0x10) << 0x18 | (uVar16 >> 0x18) << 0x10) >> 0x10) +\n                       ((uVar16 & 0xff) << 8 | uVar16 >> 8 & 0xff) * 0x10000" (parenthesized_expression "(((uVar16 >> 0x10) << 0x18 | (uVar16 >> 0x18) << 0x10) >> 0x10)" ( (binary_expression "((uVar16 >> 0x10) << 0x18 | (uVar16 >> 0x18) << 0x10) >> 0x10" (parenthesized_expression "((uVar16 >> 0x10) << 0x18 | (uVar16 >> 0x18) << 0x10)" ( (binary_expression "(uVar16 >> 0x10) << 0x18 | (uVar16 >> 0x18) << 0x10" (binary_expression "(uVar16 >> 0x10) << 0x18" (parenthesized_expression "(uVar16 >> 0x10)" ( (binary_expression "uVar16 >> 0x10" identifier >> number_literal) )) << number_literal) | (binary_expression "(uVar16 >> 0x18) << 0x10" (parenthesized_expression "(uVar16 >> 0x18)" ( (binary_expression "uVar16 >> 0x18" identifier >> number_literal) )) << number_literal)) )) >> number_literal) )) + (binary_expression "((uVar16 & 0xff) << 8 | uVar16 >> 8 & 0xff) * 0x10000" (parenthesized_expression "((uVar16 & 0xff) << 8 | uVar16 >> 8 & 0xff)" ( (binary_expression "(uVar16 & 0xff) << 8 | uVar16 >> 8 & 0xff" (binary_expression "(uVar16 & 0xff) << 8" (parenthesized_expression "(uVar16 & 0xff)" ( (binary_expression "uVar16 & 0xff" identifier & number_literal) )) << number_literal) | (binary_expression "uVar16 >> 8 & 0xff" (binary_expression "uVar16 >> 8" identifier >> number_literal) & number_literal)) )) * number_literal))) ;) (expression_statement "uVar16 = ((uVar3 << 0x18 | uVar5 << 0x10) >> 0x10) +\n                       (uVar2 << 8 | uVar4 & 0xff) * 0x10000;" (assignment_expression "uVar16 = ((uVar3 << 0x18 | uVar5 << 0x10) >> 0x10) +\n                       (uVar2 << 8 | uVar4 & 0xff) * 0x10000" identifier = (binary_expression "((uVar3 << 0x18 | uVar5 << 0x10) >> 0x10) +\n                       (uVar2 << 8 | uVar4 & 0xff) * 0x10000" (parenthesized_expression "((uVar3 << 0x18 | uVar5 << 0x10) >> 0x10)" ( (binary_expression "(uVar3 << 0x18 | uVar5 << 0x10) >> 0x10" (parenthesized_expression "(uVar3 << 0x18 | uVar5 << 0x10)" ( (binary_expression "uVar3 << 0x18 | uVar5 << 0x10" (binary_expression "uVar3 << 0x18" identifier << number_literal) | (binary_expression "uVar5 << 0x10" identifier << number_literal)) )) >> number_literal) )) + (binary_expression "(uVar2 << 8 | uVar4 & 0xff) * 0x10000" (parenthesized_expression "(uVar2 << 8 | uVar4 & 0xff)" ( (binary_expression "uVar2 << 8 | uVar4 & 0xff" (binary_expression "uVar2 << 8" identifier << number_literal) | (binary_expression "uVar4 & 0xff" identifier & number_literal)) )) * number_literal))) ;) })) (expression_statement "uVar26 = CONCAT44(uVar16,uVar15);" (assignment_expression "uVar26 = CONCAT44(uVar16,uVar15)" identifier = (call_expression "CONCAT44(uVar16,uVar15)" identifier (argument_list "(uVar16,uVar15)" ( identifier , identifier )))) ;) (expression_statement "local_44 = local_44 + 2;" (assignment_expression "local_44 = local_44 + 2" identifier = (binary_expression "local_44 + 2" identifier + number_literal)) ;) (expression_statement "iVar8 = *param_1;" (assignment_expression "iVar8 = *param_1" identifier = (pointer_expression "*param_1" * identifier)) ;) }))) (labeled_statement "LAB_002e3970:\n          local_50 = uVar26;" statement_identifier : (expression_statement "local_50 = uVar26;" (assignment_expression "local_50 = uVar26" identifier = identifier) ;)) (expression_statement "local_58 = (*local_3c)(iVar8);" (assignment_expression "local_58 = (*local_3c)(iVar8)" identifier = (call_expression "(*local_3c)(iVar8)" (parenthesized_expression "(*local_3c)" ( (pointer_expression "*local_3c" * identifier) )) (argument_list "(iVar8)" ( identifier )))) ;) (expression_statement "uVar26 = local_50;" (assignment_expression "uVar26 = local_50" identifier = identifier) ;) }))) (labeled_statement "joined_r0x002e3998:\n        if (uVar22 == 0x31) {\nLAB_002e30bc:\n          *(ulonglong *)(param_1 + 0x1a) = uVar26;\n          uVar7 = uVar26;\n          goto LAB_002e313c;\n        }" statement_identifier : (if_statement "if (uVar22 == 0x31) {\nLAB_002e30bc:\n          *(ulonglong *)(param_1 + 0x1a) = uVar26;\n          uVar7 = uVar26;\n          goto LAB_002e313c;\n        }" if (parenthesized_expression "(uVar22 == 0x31)" ( (binary_expression "uVar22 == 0x31" identifier == number_literal) )) (compound_statement "{\nLAB_002e30bc:\n          *(ulonglong *)(param_1 + 0x1a) = uVar26;\n          uVar7 = uVar26;\n          goto LAB_002e313c;\n        }" { (labeled_statement "LAB_002e30bc:\n          *(ulonglong *)(param_1 + 0x1a) = uVar26;" statement_identifier : (expression_statement "*(ulonglong *)(param_1 + 0x1a) = uVar26;" (assignment_expression "*(ulonglong *)(param_1 + 0x1a) = uVar26" (pointer_expression "*(ulonglong *)(param_1 + 0x1a)" * (cast_expression "(ulonglong *)(param_1 + 0x1a)" ( (type_descriptor "ulonglong *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x1a)" ( (binary_expression "param_1 + 0x1a" identifier + number_literal) )))) = identifier) ;)) (expression_statement "uVar7 = uVar26;" (assignment_expression "uVar7 = uVar26" identifier = identifier) ;) (goto_statement "goto LAB_002e313c;" goto statement_identifier ;) }))) (if_statement "if (uVar22 < 0x32) {\n          uVar7 = uVar26;\n          if (uVar22 != 1) goto LAB_002e313c;\nLAB_002e39b4:\n          uVar7 = uVar26;\n          if (local_58 != 0) goto LAB_002e313c;\n          *(ulonglong *)(param_1 + 8) = uVar26;\n          goto LAB_002e313c;\n        }" if (parenthesized_expression "(uVar22 < 0x32)" ( (binary_expression "uVar22 < 0x32" identifier < number_literal) )) (compound_statement "{\n          uVar7 = uVar26;\n          if (uVar22 != 1) goto LAB_002e313c;\nLAB_002e39b4:\n          uVar7 = uVar26;\n          if (local_58 != 0) goto LAB_002e313c;\n          *(ulonglong *)(param_1 + 8) = uVar26;\n          goto LAB_002e313c;\n        }" { (expression_statement "uVar7 = uVar26;" (assignment_expression "uVar7 = uVar26" identifier = identifier) ;) (if_statement "if (uVar22 != 1) goto LAB_002e313c;" if (parenthesized_expression "(uVar22 != 1)" ( (binary_expression "uVar22 != 1" identifier != number_literal) )) (goto_statement "goto LAB_002e313c;" goto statement_identifier ;)) (labeled_statement "LAB_002e39b4:\n          uVar7 = uVar26;" statement_identifier : (expression_statement "uVar7 = uVar26;" (assignment_expression "uVar7 = uVar26" identifier = identifier) ;)) (if_statement "if (local_58 != 0) goto LAB_002e313c;" if (parenthesized_expression "(local_58 != 0)" ( (binary_expression "local_58 != 0" identifier != number_literal) )) (goto_statement "goto LAB_002e313c;" goto statement_identifier ;)) (expression_statement "*(ulonglong *)(param_1 + 8) = uVar26;" (assignment_expression "*(ulonglong *)(param_1 + 8) = uVar26" (pointer_expression "*(ulonglong *)(param_1 + 8)" * (cast_expression "(ulonglong *)(param_1 + 8)" ( (type_descriptor "ulonglong *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 8)" ( (binary_expression "param_1 + 8" identifier + number_literal) )))) = identifier) ;) (goto_statement "goto LAB_002e313c;" goto statement_identifier ;) })) (if_statement "if ((uVar22 != 0x6e) && (uVar22 != 0x2007)) {\nLAB_002e339c:\n          uVar7 = uVar26;\n          if (uVar22 != 0x47) goto LAB_002e313c;\n          *(ulonglong *)(param_1 + 0x18) = uVar26;\n          goto LAB_002e313c;\n        }" if (parenthesized_expression "((uVar22 != 0x6e) && (uVar22 != 0x2007))" ( (binary_expression "(uVar22 != 0x6e) && (uVar22 != 0x2007)" (parenthesized_expression "(uVar22 != 0x6e)" ( (binary_expression "uVar22 != 0x6e" identifier != number_literal) )) && (parenthesized_expression "(uVar22 != 0x2007)" ( (binary_expression "uVar22 != 0x2007" identifier != number_literal) ))) )) (compound_statement "{\nLAB_002e339c:\n          uVar7 = uVar26;\n          if (uVar22 != 0x47) goto LAB_002e313c;\n          *(ulonglong *)(param_1 + 0x18) = uVar26;\n          goto LAB_002e313c;\n        }" { (labeled_statement "LAB_002e339c:\n          uVar7 = uVar26;" statement_identifier : (expression_statement "uVar7 = uVar26;" (assignment_expression "uVar7 = uVar26" identifier = identifier) ;)) (if_statement "if (uVar22 != 0x47) goto LAB_002e313c;" if (parenthesized_expression "(uVar22 != 0x47)" ( (binary_expression "uVar22 != 0x47" identifier != number_literal) )) (goto_statement "goto LAB_002e313c;" goto statement_identifier ;)) (expression_statement "*(ulonglong *)(param_1 + 0x18) = uVar26;" (assignment_expression "*(ulonglong *)(param_1 + 0x18) = uVar26" (pointer_expression "*(ulonglong *)(param_1 + 0x18)" * (cast_expression "(ulonglong *)(param_1 + 0x18)" ( (type_descriptor "ulonglong *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x18)" ( (binary_expression "param_1 + 0x18" identifier + number_literal) )))) = identifier) ;) (goto_statement "goto LAB_002e313c;" goto statement_identifier ;) })) (goto_statement "goto LAB_002e3858;" goto statement_identifier ;) })) (if_statement "if (uVar19 == 7) {\n        pcVar25 = *(code **)(**(int **)(*param_1 + 8) + 0xc);\n        if (pcVar25 == (code *)PTR_is_big_endian_004c2950) {\n          local_30 = puVar18;\n          iVar10 = (**(code **)(**(int **)(*param_1 + 8) + 0xe8))();\n        }\n        else {\n          local_30 = puVar18;\n          iVar10 = (*pcVar25)();\n        }\n        local_50._4_4_ = (uint *)local_44[1];\n        puVar9 = (uint *)*local_44;\n        if (iVar10 == 0) {\n          uVar15 = (uint)local_50._4_4_ & 0xff;\n          uVar16 = (uint)local_50._4_4_ >> 8;\n          uVar2 = (uint)local_50._4_4_ >> 0x10;\n          uVar4 = (uint)local_50._4_4_ >> 0x18;\n          local_50._4_4_ =\n               (uint *)(((((uint)puVar9 >> 0x10) << 0x18 | ((uint)puVar9 >> 0x18) << 0x10) >> 0x10)\n                       + (((uint)puVar9 & 0xff) << 8 | (uint)puVar9 >> 8 & 0xff) * 0x10000);\n          puVar9 = (uint *)(((uVar2 << 0x18 | uVar4 << 0x10) >> 0x10) +\n                           (uVar15 << 8 | uVar16 & 0xff) * 0x10000);\n        }\n        local_44 = local_44 + 2;\n        iVar10 = *param_1;\n        local_50._0_4_ = puVar9;\nLAB_002e3708:\n        local_58 = (*local_3c)(iVar10,puVar9,iVar8,local_30,local_40);\n        local_60._4_4_ = local_50._4_4_;\n        local_60._0_4_ = local_50._0_4_;\n        goto LAB_002e355c;\n      }" if (parenthesized_expression "(uVar19 == 7)" ( (binary_expression "uVar19 == 7" identifier == number_literal) )) (compound_statement "{\n        pcVar25 = *(code **)(**(int **)(*param_1 + 8) + 0xc);\n        if (pcVar25 == (code *)PTR_is_big_endian_004c2950) {\n          local_30 = puVar18;\n          iVar10 = (**(code **)(**(int **)(*param_1 + 8) + 0xe8))();\n        }\n        else {\n          local_30 = puVar18;\n          iVar10 = (*pcVar25)();\n        }\n        local_50._4_4_ = (uint *)local_44[1];\n        puVar9 = (uint *)*local_44;\n        if (iVar10 == 0) {\n          uVar15 = (uint)local_50._4_4_ & 0xff;\n          uVar16 = (uint)local_50._4_4_ >> 8;\n          uVar2 = (uint)local_50._4_4_ >> 0x10;\n          uVar4 = (uint)local_50._4_4_ >> 0x18;\n          local_50._4_4_ =\n               (uint *)(((((uint)puVar9 >> 0x10) << 0x18 | ((uint)puVar9 >> 0x18) << 0x10) >> 0x10)\n                       + (((uint)puVar9 & 0xff) << 8 | (uint)puVar9 >> 8 & 0xff) * 0x10000);\n          puVar9 = (uint *)(((uVar2 << 0x18 | uVar4 << 0x10) >> 0x10) +\n                           (uVar15 << 8 | uVar16 & 0xff) * 0x10000);\n        }\n        local_44 = local_44 + 2;\n        iVar10 = *param_1;\n        local_50._0_4_ = puVar9;\nLAB_002e3708:\n        local_58 = (*local_3c)(iVar10,puVar9,iVar8,local_30,local_40);\n        local_60._4_4_ = local_50._4_4_;\n        local_60._0_4_ = local_50._0_4_;\n        goto LAB_002e355c;\n      }" { (expression_statement "pcVar25 = *(code **)(**(int **)(*param_1 + 8) + 0xc);" (assignment_expression "pcVar25 = *(code **)(**(int **)(*param_1 + 8) + 0xc)" identifier = (pointer_expression "*(code **)(**(int **)(*param_1 + 8) + 0xc)" * (cast_expression "(code **)(**(int **)(*param_1 + 8) + 0xc)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(**(int **)(*param_1 + 8) + 0xc)" ( (binary_expression "**(int **)(*param_1 + 8) + 0xc" (pointer_expression "**(int **)(*param_1 + 8)" * (pointer_expression "*(int **)(*param_1 + 8)" * (cast_expression "(int **)(*param_1 + 8)" ( (type_descriptor "int **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(*param_1 + 8)" ( (binary_expression "*param_1 + 8" (pointer_expression "*param_1" * identifier) + number_literal) ))))) + number_literal) ))))) ;) (if_statement "if (pcVar25 == (code *)PTR_is_big_endian_004c2950) {\n          local_30 = puVar18;\n          iVar10 = (**(code **)(**(int **)(*param_1 + 8) + 0xe8))();\n        }\n        else {\n          local_30 = puVar18;\n          iVar10 = (*pcVar25)();\n        }" if (parenthesized_expression "(pcVar25 == (code *)PTR_is_big_endian_004c2950)" ( (binary_expression "pcVar25 == (code *)PTR_is_big_endian_004c2950" identifier == (cast_expression "(code *)PTR_is_big_endian_004c2950" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (compound_statement "{\n          local_30 = puVar18;\n          iVar10 = (**(code **)(**(int **)(*param_1 + 8) + 0xe8))();\n        }" { (expression_statement "local_30 = puVar18;" (assignment_expression "local_30 = puVar18" identifier = identifier) ;) (expression_statement "iVar10 = (**(code **)(**(int **)(*param_1 + 8) + 0xe8))();" (assignment_expression "iVar10 = (**(code **)(**(int **)(*param_1 + 8) + 0xe8))()" identifier = (call_expression "(**(code **)(**(int **)(*param_1 + 8) + 0xe8))()" (parenthesized_expression "(**(code **)(**(int **)(*param_1 + 8) + 0xe8))" ( (pointer_expression "**(code **)(**(int **)(*param_1 + 8) + 0xe8)" * (pointer_expression "*(code **)(**(int **)(*param_1 + 8) + 0xe8)" * (cast_expression "(code **)(**(int **)(*param_1 + 8) + 0xe8)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(**(int **)(*param_1 + 8) + 0xe8)" ( (binary_expression "**(int **)(*param_1 + 8) + 0xe8" (pointer_expression "**(int **)(*param_1 + 8)" * (pointer_expression "*(int **)(*param_1 + 8)" * (cast_expression "(int **)(*param_1 + 8)" ( (type_descriptor "int **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(*param_1 + 8)" ( (binary_expression "*param_1 + 8" (pointer_expression "*param_1" * identifier) + number_literal) ))))) + number_literal) ))))) )) (argument_list "()" ( )))) ;) }) (else_clause "else {\n          local_30 = puVar18;\n          iVar10 = (*pcVar25)();\n        }" else (compound_statement "{\n          local_30 = puVar18;\n          iVar10 = (*pcVar25)();\n        }" { (expression_statement "local_30 = puVar18;" (assignment_expression "local_30 = puVar18" identifier = identifier) ;) (expression_statement "iVar10 = (*pcVar25)();" (assignment_expression "iVar10 = (*pcVar25)()" identifier = (call_expression "(*pcVar25)()" (parenthesized_expression "(*pcVar25)" ( (pointer_expression "*pcVar25" * identifier) )) (argument_list "()" ( )))) ;) }))) (expression_statement "local_50._4_4_ = (uint *)local_44[1];" (assignment_expression "local_50._4_4_ = (uint *)local_44[1]" (field_expression "local_50._4_4_" identifier . field_identifier) = (cast_expression "(uint *)local_44[1]" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (subscript_expression "local_44[1]" identifier [ number_literal ]))) ;) (expression_statement "puVar9 = (uint *)*local_44;" (assignment_expression "puVar9 = (uint *)*local_44" identifier = (cast_expression "(uint *)*local_44" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (pointer_expression "*local_44" * identifier))) ;) (if_statement "if (iVar10 == 0) {\n          uVar15 = (uint)local_50._4_4_ & 0xff;\n          uVar16 = (uint)local_50._4_4_ >> 8;\n          uVar2 = (uint)local_50._4_4_ >> 0x10;\n          uVar4 = (uint)local_50._4_4_ >> 0x18;\n          local_50._4_4_ =\n               (uint *)(((((uint)puVar9 >> 0x10) << 0x18 | ((uint)puVar9 >> 0x18) << 0x10) >> 0x10)\n                       + (((uint)puVar9 & 0xff) << 8 | (uint)puVar9 >> 8 & 0xff) * 0x10000);\n          puVar9 = (uint *)(((uVar2 << 0x18 | uVar4 << 0x10) >> 0x10) +\n                           (uVar15 << 8 | uVar16 & 0xff) * 0x10000);\n        }" if (parenthesized_expression "(iVar10 == 0)" ( (binary_expression "iVar10 == 0" identifier == number_literal) )) (compound_statement "{\n          uVar15 = (uint)local_50._4_4_ & 0xff;\n          uVar16 = (uint)local_50._4_4_ >> 8;\n          uVar2 = (uint)local_50._4_4_ >> 0x10;\n          uVar4 = (uint)local_50._4_4_ >> 0x18;\n          local_50._4_4_ =\n               (uint *)(((((uint)puVar9 >> 0x10) << 0x18 | ((uint)puVar9 >> 0x18) << 0x10) >> 0x10)\n                       + (((uint)puVar9 & 0xff) << 8 | (uint)puVar9 >> 8 & 0xff) * 0x10000);\n          puVar9 = (uint *)(((uVar2 << 0x18 | uVar4 << 0x10) >> 0x10) +\n                           (uVar15 << 8 | uVar16 & 0xff) * 0x10000);\n        }" { (expression_statement "uVar15 = (uint)local_50._4_4_ & 0xff;" (assignment_expression "uVar15 = (uint)local_50._4_4_ & 0xff" identifier = (binary_expression "(uint)local_50._4_4_ & 0xff" (cast_expression "(uint)local_50._4_4_" ( (type_descriptor "uint" type_identifier) ) (field_expression "local_50._4_4_" identifier . field_identifier)) & number_literal)) ;) (expression_statement "uVar16 = (uint)local_50._4_4_ >> 8;" (assignment_expression "uVar16 = (uint)local_50._4_4_ >> 8" identifier = (binary_expression "(uint)local_50._4_4_ >> 8" (cast_expression "(uint)local_50._4_4_" ( (type_descriptor "uint" type_identifier) ) (field_expression "local_50._4_4_" identifier . field_identifier)) >> number_literal)) ;) (expression_statement "uVar2 = (uint)local_50._4_4_ >> 0x10;" (assignment_expression "uVar2 = (uint)local_50._4_4_ >> 0x10" identifier = (binary_expression "(uint)local_50._4_4_ >> 0x10" (cast_expression "(uint)local_50._4_4_" ( (type_descriptor "uint" type_identifier) ) (field_expression "local_50._4_4_" identifier . field_identifier)) >> number_literal)) ;) (expression_statement "uVar4 = (uint)local_50._4_4_ >> 0x18;" (assignment_expression "uVar4 = (uint)local_50._4_4_ >> 0x18" identifier = (binary_expression "(uint)local_50._4_4_ >> 0x18" (cast_expression "(uint)local_50._4_4_" ( (type_descriptor "uint" type_identifier) ) (field_expression "local_50._4_4_" identifier . field_identifier)) >> number_literal)) ;) (expression_statement "local_50._4_4_ =\n               (uint *)(((((uint)puVar9 >> 0x10) << 0x18 | ((uint)puVar9 >> 0x18) << 0x10) >> 0x10)\n                       + (((uint)puVar9 & 0xff) << 8 | (uint)puVar9 >> 8 & 0xff) * 0x10000);" (assignment_expression "local_50._4_4_ =\n               (uint *)(((((uint)puVar9 >> 0x10) << 0x18 | ((uint)puVar9 >> 0x18) << 0x10) >> 0x10)\n                       + (((uint)puVar9 & 0xff) << 8 | (uint)puVar9 >> 8 & 0xff) * 0x10000)" (field_expression "local_50._4_4_" identifier . field_identifier) = (cast_expression "(uint *)(((((uint)puVar9 >> 0x10) << 0x18 | ((uint)puVar9 >> 0x18) << 0x10) >> 0x10)\n                       + (((uint)puVar9 & 0xff) << 8 | (uint)puVar9 >> 8 & 0xff) * 0x10000)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(((((uint)puVar9 >> 0x10) << 0x18 | ((uint)puVar9 >> 0x18) << 0x10) >> 0x10)\n                       + (((uint)puVar9 & 0xff) << 8 | (uint)puVar9 >> 8 & 0xff) * 0x10000)" ( (binary_expression "((((uint)puVar9 >> 0x10) << 0x18 | ((uint)puVar9 >> 0x18) << 0x10) >> 0x10)\n                       + (((uint)puVar9 & 0xff) << 8 | (uint)puVar9 >> 8 & 0xff) * 0x10000" (parenthesized_expression "((((uint)puVar9 >> 0x10) << 0x18 | ((uint)puVar9 >> 0x18) << 0x10) >> 0x10)" ( (binary_expression "(((uint)puVar9 >> 0x10) << 0x18 | ((uint)puVar9 >> 0x18) << 0x10) >> 0x10" (parenthesized_expression "(((uint)puVar9 >> 0x10) << 0x18 | ((uint)puVar9 >> 0x18) << 0x10)" ( (binary_expression "((uint)puVar9 >> 0x10) << 0x18 | ((uint)puVar9 >> 0x18) << 0x10" (binary_expression "((uint)puVar9 >> 0x10) << 0x18" (parenthesized_expression "((uint)puVar9 >> 0x10)" ( (binary_expression "(uint)puVar9 >> 0x10" (cast_expression "(uint)puVar9" ( (type_descriptor "uint" type_identifier) ) identifier) >> number_literal) )) << number_literal) | (binary_expression "((uint)puVar9 >> 0x18) << 0x10" (parenthesized_expression "((uint)puVar9 >> 0x18)" ( (binary_expression "(uint)puVar9 >> 0x18" (cast_expression "(uint)puVar9" ( (type_descriptor "uint" type_identifier) ) identifier) >> number_literal) )) << number_literal)) )) >> number_literal) )) + (binary_expression "(((uint)puVar9 & 0xff) << 8 | (uint)puVar9 >> 8 & 0xff) * 0x10000" (parenthesized_expression "(((uint)puVar9 & 0xff) << 8 | (uint)puVar9 >> 8 & 0xff)" ( (binary_expression "((uint)puVar9 & 0xff) << 8 | (uint)puVar9 >> 8 & 0xff" (binary_expression "((uint)puVar9 & 0xff) << 8" (parenthesized_expression "((uint)puVar9 & 0xff)" ( (binary_expression "(uint)puVar9 & 0xff" (cast_expression "(uint)puVar9" ( (type_descriptor "uint" type_identifier) ) identifier) & number_literal) )) << number_literal) | (binary_expression "(uint)puVar9 >> 8 & 0xff" (binary_expression "(uint)puVar9 >> 8" (cast_expression "(uint)puVar9" ( (type_descriptor "uint" type_identifier) ) identifier) >> number_literal) & number_literal)) )) * number_literal)) )))) ;) (expression_statement "puVar9 = (uint *)(((uVar2 << 0x18 | uVar4 << 0x10) >> 0x10) +\n                           (uVar15 << 8 | uVar16 & 0xff) * 0x10000);" (assignment_expression "puVar9 = (uint *)(((uVar2 << 0x18 | uVar4 << 0x10) >> 0x10) +\n                           (uVar15 << 8 | uVar16 & 0xff) * 0x10000)" identifier = (cast_expression "(uint *)(((uVar2 << 0x18 | uVar4 << 0x10) >> 0x10) +\n                           (uVar15 << 8 | uVar16 & 0xff) * 0x10000)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(((uVar2 << 0x18 | uVar4 << 0x10) >> 0x10) +\n                           (uVar15 << 8 | uVar16 & 0xff) * 0x10000)" ( (binary_expression "((uVar2 << 0x18 | uVar4 << 0x10) >> 0x10) +\n                           (uVar15 << 8 | uVar16 & 0xff) * 0x10000" (parenthesized_expression "((uVar2 << 0x18 | uVar4 << 0x10) >> 0x10)" ( (binary_expression "(uVar2 << 0x18 | uVar4 << 0x10) >> 0x10" (parenthesized_expression "(uVar2 << 0x18 | uVar4 << 0x10)" ( (binary_expression "uVar2 << 0x18 | uVar4 << 0x10" (binary_expression "uVar2 << 0x18" identifier << number_literal) | (binary_expression "uVar4 << 0x10" identifier << number_literal)) )) >> number_literal) )) + (binary_expression "(uVar15 << 8 | uVar16 & 0xff) * 0x10000" (parenthesized_expression "(uVar15 << 8 | uVar16 & 0xff)" ( (binary_expression "uVar15 << 8 | uVar16 & 0xff" (binary_expression "uVar15 << 8" identifier << number_literal) | (binary_expression "uVar16 & 0xff" identifier & number_literal)) )) * number_literal)) )))) ;) })) (expression_statement "local_44 = local_44 + 2;" (assignment_expression "local_44 = local_44 + 2" identifier = (binary_expression "local_44 + 2" identifier + number_literal)) ;) (expression_statement "iVar10 = *param_1;" (assignment_expression "iVar10 = *param_1" identifier = (pointer_expression "*param_1" * identifier)) ;) (expression_statement "local_50._0_4_ = puVar9;" (assignment_expression "local_50._0_4_ = puVar9" (field_expression "local_50._0_4_" identifier . field_identifier) = identifier) ;) (labeled_statement "LAB_002e3708:\n        local_58 = (*local_3c)(iVar10,puVar9,iVar8,local_30,local_40);" statement_identifier : (expression_statement "local_58 = (*local_3c)(iVar10,puVar9,iVar8,local_30,local_40);" (assignment_expression "local_58 = (*local_3c)(iVar10,puVar9,iVar8,local_30,local_40)" identifier = (call_expression "(*local_3c)(iVar10,puVar9,iVar8,local_30,local_40)" (parenthesized_expression "(*local_3c)" ( (pointer_expression "*local_3c" * identifier) )) (argument_list "(iVar10,puVar9,iVar8,local_30,local_40)" ( identifier , identifier , identifier , identifier , identifier )))) ;)) (expression_statement "local_60._4_4_ = local_50._4_4_;" (assignment_expression "local_60._4_4_ = local_50._4_4_" (field_expression "local_60._4_4_" identifier . field_identifier) = (field_expression "local_50._4_4_" identifier . field_identifier)) ;) (expression_statement "local_60._0_4_ = local_50._0_4_;" (assignment_expression "local_60._0_4_ = local_50._0_4_" (field_expression "local_60._0_4_" identifier . field_identifier) = (field_expression "local_50._0_4_" identifier . field_identifier)) ;) (goto_statement "goto LAB_002e355c;" goto statement_identifier ;) })) (if_statement "if (7 < uVar19) {\n        if (uVar19 == 10) {\n          local_60._0_4_ = (uint *)((int)local_44 + 1);\n          local_58 = (uint)*(byte *)local_44;\n          local_44 = (uint *)((int)local_60._0_4_ + local_58);\n          goto LAB_002e355c;\n        }\n        if (uVar19 < 0xb) {\n          if (uVar19 != 8) {\n            if (uVar19 != 9) {\n              return 0;\n            }\nLAB_002e32bc:\n            uVar15 = (uint)*(byte *)local_44;\n            pbVar14 = (byte *)((int)local_44 + 1);\n            if ((char)*(byte *)local_44 < '\0') {\n              (*(code *)PTR_read_unsigned_LEB_128_x_004c2980)(pbVar14,&local_48);\n              pbVar14 = (byte *)((int)local_44 + local_48);\n              uVar15 = extraout_v1_00;\n            }\n            else {\n              local_48 = 1;\n            }\n            uVar26 = CONCAT44(pbVar14,local_60._4_4_);\n            local_58 = uVar15;\n            local_44 = (uint *)((int)local_44 + uVar15 + local_48);\n            goto LAB_002e382c;\n          }\n          local_60._0_4_ = local_44;\n          local_30 = local_44;\n          local_48 = (*(code *)PTR_strlen_004c5b9c)(local_44);\n          uVar26 = CONCAT44(local_60._0_4_,local_60._4_4_);\n          local_44 = (uint *)((int)local_30 + local_48 + 1);\n          uVar7 = CONCAT44(local_60._0_4_,local_60._4_4_);\n          if (uVar22 == 0x31) goto LAB_002e313c;\n          if (0x31 < uVar22) {\n            if ((uVar22 != 0x6e) &&\n               (uVar7 = CONCAT44(local_60._0_4_,local_60._4_4_), uVar22 != 0x2007))\n            goto LAB_002e313c;\n            param_1[0x12] = (int)local_30;\n            uVar7 = uVar26;\n            goto LAB_002e313c;\n          }\nLAB_002e3118:\n          uVar7 = uVar26;\n          if (uVar22 == 1) goto LAB_002e313c;\njoined_r0x002e3124:\n          uVar7 = uVar26;\n          if (uVar22 != 3) goto LAB_002e313c;\n          local_60._0_4_ = (uint *)(uVar26 >> 0x20);\n          if (uVar19 == 8) {\n            param_1[0xf] = (int)local_60._0_4_;\n            goto LAB_002e313c;\n          }\n          if (uVar19 != 0xe) goto LAB_002e313c;\n          goto LAB_002e3284;\n        }\n        if (uVar19 < 0xd) {\n          uVar26 = (ulonglong)*(byte *)local_44;\n          local_44 = (uint *)((int)local_44 + 1);\nLAB_002e382c:\n          uVar7 = uVar26;\n          if (uVar22 == 0x31) goto LAB_002e313c;\n          if (uVar22 < 0x32) goto LAB_002e3118;\n        }\n        else {\n          bVar1 = *(byte *)local_44;\n          uVar15 = (uint)bVar1;\n          puVar9 = (uint *)((int)local_44 + 1);\n          if ((char)bVar1 < '\0') {\n            uVar26 = (*(code *)PTR_read_signed_LEB_128_x_004c297c)(puVar9,&local_48,uVar15);\n            puVar9 = (uint *)((int)local_44 + local_48);\n          }\n          else {\n            local_48 = 1;\n            uVar26 = (ulonglong)uVar15;\n            if ((bVar1 & 0x40) != 0) {\n              uVar26 = CONCAT44(0xffffffff,uVar15 | 0xffffff80);\n            }\n          }\n          local_44 = puVar9;\n          uVar7 = uVar26;\n          if (uVar22 == 0x31) goto LAB_002e313c;\n          if (uVar22 < 0x32) {\n            puVar9 = (uint *)param_1[0xc];\n            if (puVar9 != (uint *)param_1[0xd]) goto LAB_002e314c;\nLAB_002e2f98:\n            iVar17 = iVar17 + 8;\n            local_60 = uVar26;\n            std::\n            vector<gold::Dwarf_die::Attribute_value,std::allocator<gold::Dwarf_die::Attribute_value>>\n            ::_M_realloc_insert<gold::Dwarf_die::Attribute_value_const&>(local_38,puVar9,&local_68);\n            iVar8 = param_1[10];\n            if (iVar17 == iVar21) goto LAB_002e2fb8;\n            goto LAB_002e2db4;\n          }\n        }\n        if ((uVar22 != 0x6e) && (uVar7 = uVar26, uVar22 != 0x2007)) goto LAB_002e313c;\nLAB_002e3858:\n        local_60._0_4_ = (uint *)(uVar26 >> 0x20);\n        uVar7 = uVar26;\n        if (uVar19 == 8) {\n          param_1[0x12] = (int)local_60._0_4_;\n          goto LAB_002e313c;\n        }\n        if (uVar19 != 0xe) goto LAB_002e313c;\n        goto LAB_002e387c;\n      }" if (parenthesized_expression "(7 < uVar19)" ( (binary_expression "7 < uVar19" number_literal < identifier) )) (compound_statement "{\n        if (uVar19 == 10) {\n          local_60._0_4_ = (uint *)((int)local_44 + 1);\n          local_58 = (uint)*(byte *)local_44;\n          local_44 = (uint *)((int)local_60._0_4_ + local_58);\n          goto LAB_002e355c;\n        }\n        if (uVar19 < 0xb) {\n          if (uVar19 != 8) {\n            if (uVar19 != 9) {\n              return 0;\n            }\nLAB_002e32bc:\n            uVar15 = (uint)*(byte *)local_44;\n            pbVar14 = (byte *)((int)local_44 + 1);\n            if ((char)*(byte *)local_44 < '\0') {\n              (*(code *)PTR_read_unsigned_LEB_128_x_004c2980)(pbVar14,&local_48);\n              pbVar14 = (byte *)((int)local_44 + local_48);\n              uVar15 = extraout_v1_00;\n            }\n            else {\n              local_48 = 1;\n            }\n            uVar26 = CONCAT44(pbVar14,local_60._4_4_);\n            local_58 = uVar15;\n            local_44 = (uint *)((int)local_44 + uVar15 + local_48);\n            goto LAB_002e382c;\n          }\n          local_60._0_4_ = local_44;\n          local_30 = local_44;\n          local_48 = (*(code *)PTR_strlen_004c5b9c)(local_44);\n          uVar26 = CONCAT44(local_60._0_4_,local_60._4_4_);\n          local_44 = (uint *)((int)local_30 + local_48 + 1);\n          uVar7 = CONCAT44(local_60._0_4_,local_60._4_4_);\n          if (uVar22 == 0x31) goto LAB_002e313c;\n          if (0x31 < uVar22) {\n            if ((uVar22 != 0x6e) &&\n               (uVar7 = CONCAT44(local_60._0_4_,local_60._4_4_), uVar22 != 0x2007))\n            goto LAB_002e313c;\n            param_1[0x12] = (int)local_30;\n            uVar7 = uVar26;\n            goto LAB_002e313c;\n          }\nLAB_002e3118:\n          uVar7 = uVar26;\n          if (uVar22 == 1) goto LAB_002e313c;\njoined_r0x002e3124:\n          uVar7 = uVar26;\n          if (uVar22 != 3) goto LAB_002e313c;\n          local_60._0_4_ = (uint *)(uVar26 >> 0x20);\n          if (uVar19 == 8) {\n            param_1[0xf] = (int)local_60._0_4_;\n            goto LAB_002e313c;\n          }\n          if (uVar19 != 0xe) goto LAB_002e313c;\n          goto LAB_002e3284;\n        }\n        if (uVar19 < 0xd) {\n          uVar26 = (ulonglong)*(byte *)local_44;\n          local_44 = (uint *)((int)local_44 + 1);\nLAB_002e382c:\n          uVar7 = uVar26;\n          if (uVar22 == 0x31) goto LAB_002e313c;\n          if (uVar22 < 0x32) goto LAB_002e3118;\n        }\n        else {\n          bVar1 = *(byte *)local_44;\n          uVar15 = (uint)bVar1;\n          puVar9 = (uint *)((int)local_44 + 1);\n          if ((char)bVar1 < '\0') {\n            uVar26 = (*(code *)PTR_read_signed_LEB_128_x_004c297c)(puVar9,&local_48,uVar15);\n            puVar9 = (uint *)((int)local_44 + local_48);\n          }\n          else {\n            local_48 = 1;\n            uVar26 = (ulonglong)uVar15;\n            if ((bVar1 & 0x40) != 0) {\n              uVar26 = CONCAT44(0xffffffff,uVar15 | 0xffffff80);\n            }\n          }\n          local_44 = puVar9;\n          uVar7 = uVar26;\n          if (uVar22 == 0x31) goto LAB_002e313c;\n          if (uVar22 < 0x32) {\n            puVar9 = (uint *)param_1[0xc];\n            if (puVar9 != (uint *)param_1[0xd]) goto LAB_002e314c;\nLAB_002e2f98:\n            iVar17 = iVar17 + 8;\n            local_60 = uVar26;\n            std::\n            vector<gold::Dwarf_die::Attribute_value,std::allocator<gold::Dwarf_die::Attribute_value>>\n            ::_M_realloc_insert<gold::Dwarf_die::Attribute_value_const&>(local_38,puVar9,&local_68);\n            iVar8 = param_1[10];\n            if (iVar17 == iVar21) goto LAB_002e2fb8;\n            goto LAB_002e2db4;\n          }\n        }\n        if ((uVar22 != 0x6e) && (uVar7 = uVar26, uVar22 != 0x2007)) goto LAB_002e313c;\nLAB_002e3858:\n        local_60._0_4_ = (uint *)(uVar26 >> 0x20);\n        uVar7 = uVar26;\n        if (uVar19 == 8) {\n          param_1[0x12] = (int)local_60._0_4_;\n          goto LAB_002e313c;\n        }\n        if (uVar19 != 0xe) goto LAB_002e313c;\n        goto LAB_002e387c;\n      }" { (if_statement "if (uVar19 == 10) {\n          local_60._0_4_ = (uint *)((int)local_44 + 1);\n          local_58 = (uint)*(byte *)local_44;\n          local_44 = (uint *)((int)local_60._0_4_ + local_58);\n          goto LAB_002e355c;\n        }" if (parenthesized_expression "(uVar19 == 10)" ( (binary_expression "uVar19 == 10" identifier == number_literal) )) (compound_statement "{\n          local_60._0_4_ = (uint *)((int)local_44 + 1);\n          local_58 = (uint)*(byte *)local_44;\n          local_44 = (uint *)((int)local_60._0_4_ + local_58);\n          goto LAB_002e355c;\n        }" { (expression_statement "local_60._0_4_ = (uint *)((int)local_44 + 1);" (assignment_expression "local_60._0_4_ = (uint *)((int)local_44 + 1)" (field_expression "local_60._0_4_" identifier . field_identifier) = (cast_expression "(uint *)((int)local_44 + 1)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)local_44 + 1)" ( (binary_expression "(int)local_44 + 1" (cast_expression "(int)local_44" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) ;) (expression_statement "local_58 = (uint)*(byte *)local_44;" (assignment_expression "local_58 = (uint)*(byte *)local_44" identifier = (binary_expression "(uint)*(byte *)local_44" (parenthesized_expression "(uint)" ( identifier )) * (cast_expression "(byte *)local_44" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier))) ;) (expression_statement "local_44 = (uint *)((int)local_60._0_4_ + local_58);" (assignment_expression "local_44 = (uint *)((int)local_60._0_4_ + local_58)" identifier = (cast_expression "(uint *)((int)local_60._0_4_ + local_58)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)local_60._0_4_ + local_58)" ( (binary_expression "(int)local_60._0_4_ + local_58" (cast_expression "(int)local_60._0_4_" ( (type_descriptor "int" primitive_type) ) (field_expression "local_60._0_4_" identifier . field_identifier)) + identifier) )))) ;) (goto_statement "goto LAB_002e355c;" goto statement_identifier ;) })) (if_statement "if (uVar19 < 0xb) {\n          if (uVar19 != 8) {\n            if (uVar19 != 9) {\n              return 0;\n            }\nLAB_002e32bc:\n            uVar15 = (uint)*(byte *)local_44;\n            pbVar14 = (byte *)((int)local_44 + 1);\n            if ((char)*(byte *)local_44 < '\0') {\n              (*(code *)PTR_read_unsigned_LEB_128_x_004c2980)(pbVar14,&local_48);\n              pbVar14 = (byte *)((int)local_44 + local_48);\n              uVar15 = extraout_v1_00;\n            }\n            else {\n              local_48 = 1;\n            }\n            uVar26 = CONCAT44(pbVar14,local_60._4_4_);\n            local_58 = uVar15;\n            local_44 = (uint *)((int)local_44 + uVar15 + local_48);\n            goto LAB_002e382c;\n          }\n          local_60._0_4_ = local_44;\n          local_30 = local_44;\n          local_48 = (*(code *)PTR_strlen_004c5b9c)(local_44);\n          uVar26 = CONCAT44(local_60._0_4_,local_60._4_4_);\n          local_44 = (uint *)((int)local_30 + local_48 + 1);\n          uVar7 = CONCAT44(local_60._0_4_,local_60._4_4_);\n          if (uVar22 == 0x31) goto LAB_002e313c;\n          if (0x31 < uVar22) {\n            if ((uVar22 != 0x6e) &&\n               (uVar7 = CONCAT44(local_60._0_4_,local_60._4_4_), uVar22 != 0x2007))\n            goto LAB_002e313c;\n            param_1[0x12] = (int)local_30;\n            uVar7 = uVar26;\n            goto LAB_002e313c;\n          }\nLAB_002e3118:\n          uVar7 = uVar26;\n          if (uVar22 == 1) goto LAB_002e313c;\njoined_r0x002e3124:\n          uVar7 = uVar26;\n          if (uVar22 != 3) goto LAB_002e313c;\n          local_60._0_4_ = (uint *)(uVar26 >> 0x20);\n          if (uVar19 == 8) {\n            param_1[0xf] = (int)local_60._0_4_;\n            goto LAB_002e313c;\n          }\n          if (uVar19 != 0xe) goto LAB_002e313c;\n          goto LAB_002e3284;\n        }" if (parenthesized_expression "(uVar19 < 0xb)" ( (binary_expression "uVar19 < 0xb" identifier < number_literal) )) (compound_statement "{\n          if (uVar19 != 8) {\n            if (uVar19 != 9) {\n              return 0;\n            }\nLAB_002e32bc:\n            uVar15 = (uint)*(byte *)local_44;\n            pbVar14 = (byte *)((int)local_44 + 1);\n            if ((char)*(byte *)local_44 < '\0') {\n              (*(code *)PTR_read_unsigned_LEB_128_x_004c2980)(pbVar14,&local_48);\n              pbVar14 = (byte *)((int)local_44 + local_48);\n              uVar15 = extraout_v1_00;\n            }\n            else {\n              local_48 = 1;\n            }\n            uVar26 = CONCAT44(pbVar14,local_60._4_4_);\n            local_58 = uVar15;\n            local_44 = (uint *)((int)local_44 + uVar15 + local_48);\n            goto LAB_002e382c;\n          }\n          local_60._0_4_ = local_44;\n          local_30 = local_44;\n          local_48 = (*(code *)PTR_strlen_004c5b9c)(local_44);\n          uVar26 = CONCAT44(local_60._0_4_,local_60._4_4_);\n          local_44 = (uint *)((int)local_30 + local_48 + 1);\n          uVar7 = CONCAT44(local_60._0_4_,local_60._4_4_);\n          if (uVar22 == 0x31) goto LAB_002e313c;\n          if (0x31 < uVar22) {\n            if ((uVar22 != 0x6e) &&\n               (uVar7 = CONCAT44(local_60._0_4_,local_60._4_4_), uVar22 != 0x2007))\n            goto LAB_002e313c;\n            param_1[0x12] = (int)local_30;\n            uVar7 = uVar26;\n            goto LAB_002e313c;\n          }\nLAB_002e3118:\n          uVar7 = uVar26;\n          if (uVar22 == 1) goto LAB_002e313c;\njoined_r0x002e3124:\n          uVar7 = uVar26;\n          if (uVar22 != 3) goto LAB_002e313c;\n          local_60._0_4_ = (uint *)(uVar26 >> 0x20);\n          if (uVar19 == 8) {\n            param_1[0xf] = (int)local_60._0_4_;\n            goto LAB_002e313c;\n          }\n          if (uVar19 != 0xe) goto LAB_002e313c;\n          goto LAB_002e3284;\n        }" { (if_statement "if (uVar19 != 8) {\n            if (uVar19 != 9) {\n              return 0;\n            }\nLAB_002e32bc:\n            uVar15 = (uint)*(byte *)local_44;\n            pbVar14 = (byte *)((int)local_44 + 1);\n            if ((char)*(byte *)local_44 < '\0') {\n              (*(code *)PTR_read_unsigned_LEB_128_x_004c2980)(pbVar14,&local_48);\n              pbVar14 = (byte *)((int)local_44 + local_48);\n              uVar15 = extraout_v1_00;\n            }\n            else {\n              local_48 = 1;\n            }\n            uVar26 = CONCAT44(pbVar14,local_60._4_4_);\n            local_58 = uVar15;\n            local_44 = (uint *)((int)local_44 + uVar15 + local_48);\n            goto LAB_002e382c;\n          }" if (parenthesized_expression "(uVar19 != 8)" ( (binary_expression "uVar19 != 8" identifier != number_literal) )) (compound_statement "{\n            if (uVar19 != 9) {\n              return 0;\n            }\nLAB_002e32bc:\n            uVar15 = (uint)*(byte *)local_44;\n            pbVar14 = (byte *)((int)local_44 + 1);\n            if ((char)*(byte *)local_44 < '\0') {\n              (*(code *)PTR_read_unsigned_LEB_128_x_004c2980)(pbVar14,&local_48);\n              pbVar14 = (byte *)((int)local_44 + local_48);\n              uVar15 = extraout_v1_00;\n            }\n            else {\n              local_48 = 1;\n            }\n            uVar26 = CONCAT44(pbVar14,local_60._4_4_);\n            local_58 = uVar15;\n            local_44 = (uint *)((int)local_44 + uVar15 + local_48);\n            goto LAB_002e382c;\n          }" { (if_statement "if (uVar19 != 9) {\n              return 0;\n            }" if (parenthesized_expression "(uVar19 != 9)" ( (binary_expression "uVar19 != 9" identifier != number_literal) )) (compound_statement "{\n              return 0;\n            }" { (return_statement "return 0;" return number_literal ;) })) (labeled_statement "LAB_002e32bc:\n            uVar15 = (uint)*(byte *)local_44;" statement_identifier : (expression_statement "uVar15 = (uint)*(byte *)local_44;" (assignment_expression "uVar15 = (uint)*(byte *)local_44" identifier = (binary_expression "(uint)*(byte *)local_44" (parenthesized_expression "(uint)" ( identifier )) * (cast_expression "(byte *)local_44" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier))) ;)) (expression_statement "pbVar14 = (byte *)((int)local_44 + 1);" (assignment_expression "pbVar14 = (byte *)((int)local_44 + 1)" identifier = (cast_expression "(byte *)((int)local_44 + 1)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)local_44 + 1)" ( (binary_expression "(int)local_44 + 1" (cast_expression "(int)local_44" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) ;) (if_statement "if ((char)*(byte *)local_44 < '\0') {\n              (*(code *)PTR_read_unsigned_LEB_128_x_004c2980)(pbVar14,&local_48);\n              pbVar14 = (byte *)((int)local_44 + local_48);\n              uVar15 = extraout_v1_00;\n            }\n            else {\n              local_48 = 1;\n            }" if (parenthesized_expression "((char)*(byte *)local_44 < '\0')" ( (binary_expression "(char)*(byte *)local_44 < '\0'" (cast_expression "(char)*(byte *)local_44" ( (type_descriptor "char" primitive_type) ) (pointer_expression "*(byte *)local_44" * (cast_expression "(byte *)local_44" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier))) < (char_literal "'\0'" ' escape_sequence ')) )) (compound_statement "{\n              (*(code *)PTR_read_unsigned_LEB_128_x_004c2980)(pbVar14,&local_48);\n              pbVar14 = (byte *)((int)local_44 + local_48);\n              uVar15 = extraout_v1_00;\n            }" { (expression_statement "(*(code *)PTR_read_unsigned_LEB_128_x_004c2980)(pbVar14,&local_48);" (call_expression "(*(code *)PTR_read_unsigned_LEB_128_x_004c2980)(pbVar14,&local_48)" (parenthesized_expression "(*(code *)PTR_read_unsigned_LEB_128_x_004c2980)" ( (pointer_expression "*(code *)PTR_read_unsigned_LEB_128_x_004c2980" * (cast_expression "(code *)PTR_read_unsigned_LEB_128_x_004c2980" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(pbVar14,&local_48)" ( identifier , (pointer_expression "&local_48" & identifier) ))) ;) (expression_statement "pbVar14 = (byte *)((int)local_44 + local_48);" (assignment_expression "pbVar14 = (byte *)((int)local_44 + local_48)" identifier = (cast_expression "(byte *)((int)local_44 + local_48)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)local_44 + local_48)" ( (binary_expression "(int)local_44 + local_48" (cast_expression "(int)local_44" ( (type_descriptor "int" primitive_type) ) identifier) + identifier) )))) ;) (expression_statement "uVar15 = extraout_v1_00;" (assignment_expression "uVar15 = extraout_v1_00" identifier = identifier) ;) }) (else_clause "else {\n              local_48 = 1;\n            }" else (compound_statement "{\n              local_48 = 1;\n            }" { (expression_statement "local_48 = 1;" (assignment_expression "local_48 = 1" identifier = number_literal) ;) }))) (expression_statement "uVar26 = CONCAT44(pbVar14,local_60._4_4_);" (assignment_expression "uVar26 = CONCAT44(pbVar14,local_60._4_4_)" identifier = (call_expression "CONCAT44(pbVar14,local_60._4_4_)" identifier (argument_list "(pbVar14,local_60._4_4_)" ( identifier , (field_expression "local_60._4_4_" identifier . field_identifier) )))) ;) (expression_statement "local_58 = uVar15;" (assignment_expression "local_58 = uVar15" identifier = identifier) ;) (expression_statement "local_44 = (uint *)((int)local_44 + uVar15 + local_48);" (assignment_expression "local_44 = (uint *)((int)local_44 + uVar15 + local_48)" identifier = (cast_expression "(uint *)((int)local_44 + uVar15 + local_48)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)local_44 + uVar15 + local_48)" ( (binary_expression "(int)local_44 + uVar15 + local_48" (binary_expression "(int)local_44 + uVar15" (cast_expression "(int)local_44" ( (type_descriptor "int" primitive_type) ) identifier) + identifier) + identifier) )))) ;) (goto_statement "goto LAB_002e382c;" goto statement_identifier ;) })) (expression_statement "local_60._0_4_ = local_44;" (assignment_expression "local_60._0_4_ = local_44" (field_expression "local_60._0_4_" identifier . field_identifier) = identifier) ;) (expression_statement "local_30 = local_44;" (assignment_expression "local_30 = local_44" identifier = identifier) ;) (expression_statement "local_48 = (*(code *)PTR_strlen_004c5b9c)(local_44);" (assignment_expression "local_48 = (*(code *)PTR_strlen_004c5b9c)(local_44)" identifier = (call_expression "(*(code *)PTR_strlen_004c5b9c)(local_44)" (parenthesized_expression "(*(code *)PTR_strlen_004c5b9c)" ( (pointer_expression "*(code *)PTR_strlen_004c5b9c" * (cast_expression "(code *)PTR_strlen_004c5b9c" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(local_44)" ( identifier )))) ;) (expression_statement "uVar26 = CONCAT44(local_60._0_4_,local_60._4_4_);" (assignment_expression "uVar26 = CONCAT44(local_60._0_4_,local_60._4_4_)" identifier = (call_expression "CONCAT44(local_60._0_4_,local_60._4_4_)" identifier (argument_list "(local_60._0_4_,local_60._4_4_)" ( (field_expression "local_60._0_4_" identifier . field_identifier) , (field_expression "local_60._4_4_" identifier . field_identifier) )))) ;) (expression_statement "local_44 = (uint *)((int)local_30 + local_48 + 1);" (assignment_expression "local_44 = (uint *)((int)local_30 + local_48 + 1)" identifier = (cast_expression "(uint *)((int)local_30 + local_48 + 1)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)local_30 + local_48 + 1)" ( (binary_expression "(int)local_30 + local_48 + 1" (binary_expression "(int)local_30 + local_48" (cast_expression "(int)local_30" ( (type_descriptor "int" primitive_type) ) identifier) + identifier) + number_literal) )))) ;) (expression_statement "uVar7 = CONCAT44(local_60._0_4_,local_60._4_4_);" (assignment_expression "uVar7 = CONCAT44(local_60._0_4_,local_60._4_4_)" identifier = (call_expression "CONCAT44(local_60._0_4_,local_60._4_4_)" identifier (argument_list "(local_60._0_4_,local_60._4_4_)" ( (field_expression "local_60._0_4_" identifier . field_identifier) , (field_expression "local_60._4_4_" identifier . field_identifier) )))) ;) (if_statement "if (uVar22 == 0x31) goto LAB_002e313c;" if (parenthesized_expression "(uVar22 == 0x31)" ( (binary_expression "uVar22 == 0x31" identifier == number_literal) )) (goto_statement "goto LAB_002e313c;" goto statement_identifier ;)) (if_statement "if (0x31 < uVar22) {\n            if ((uVar22 != 0x6e) &&\n               (uVar7 = CONCAT44(local_60._0_4_,local_60._4_4_), uVar22 != 0x2007))\n            goto LAB_002e313c;\n            param_1[0x12] = (int)local_30;\n            uVar7 = uVar26;\n            goto LAB_002e313c;\n          }" if (parenthesized_expression "(0x31 < uVar22)" ( (binary_expression "0x31 < uVar22" number_literal < identifier) )) (compound_statement "{\n            if ((uVar22 != 0x6e) &&\n               (uVar7 = CONCAT44(local_60._0_4_,local_60._4_4_), uVar22 != 0x2007))\n            goto LAB_002e313c;\n            param_1[0x12] = (int)local_30;\n            uVar7 = uVar26;\n            goto LAB_002e313c;\n          }" { (if_statement "if ((uVar22 != 0x6e) &&\n               (uVar7 = CONCAT44(local_60._0_4_,local_60._4_4_), uVar22 != 0x2007))\n            goto LAB_002e313c;" if (parenthesized_expression "((uVar22 != 0x6e) &&\n               (uVar7 = CONCAT44(local_60._0_4_,local_60._4_4_), uVar22 != 0x2007))" ( (binary_expression "(uVar22 != 0x6e) &&\n               (uVar7 = CONCAT44(local_60._0_4_,local_60._4_4_), uVar22 != 0x2007)" (parenthesized_expression "(uVar22 != 0x6e)" ( (binary_expression "uVar22 != 0x6e" identifier != number_literal) )) && (parenthesized_expression "(uVar7 = CONCAT44(local_60._0_4_,local_60._4_4_), uVar22 != 0x2007)" ( (comma_expression "uVar7 = CONCAT44(local_60._0_4_,local_60._4_4_), uVar22 != 0x2007" (assignment_expression "uVar7 = CONCAT44(local_60._0_4_,local_60._4_4_)" identifier = (call_expression "CONCAT44(local_60._0_4_,local_60._4_4_)" identifier (argument_list "(local_60._0_4_,local_60._4_4_)" ( (field_expression "local_60._0_4_" identifier . field_identifier) , (field_expression "local_60._4_4_" identifier . field_identifier) )))) , (binary_expression "uVar22 != 0x2007" identifier != number_literal)) ))) )) (goto_statement "goto LAB_002e313c;" goto statement_identifier ;)) (expression_statement "param_1[0x12] = (int)local_30;" (assignment_expression "param_1[0x12] = (int)local_30" (subscript_expression "param_1[0x12]" identifier [ number_literal ]) = (cast_expression "(int)local_30" ( (type_descriptor "int" primitive_type) ) identifier)) ;) (expression_statement "uVar7 = uVar26;" (assignment_expression "uVar7 = uVar26" identifier = identifier) ;) (goto_statement "goto LAB_002e313c;" goto statement_identifier ;) })) (labeled_statement "LAB_002e3118:\n          uVar7 = uVar26;" statement_identifier : (expression_statement "uVar7 = uVar26;" (assignment_expression "uVar7 = uVar26" identifier = identifier) ;)) (if_statement "if (uVar22 == 1) goto LAB_002e313c;" if (parenthesized_expression "(uVar22 == 1)" ( (binary_expression "uVar22 == 1" identifier == number_literal) )) (goto_statement "goto LAB_002e313c;" goto statement_identifier ;)) (labeled_statement "joined_r0x002e3124:\n          uVar7 = uVar26;" statement_identifier : (expression_statement "uVar7 = uVar26;" (assignment_expression "uVar7 = uVar26" identifier = identifier) ;)) (if_statement "if (uVar22 != 3) goto LAB_002e313c;" if (parenthesized_expression "(uVar22 != 3)" ( (binary_expression "uVar22 != 3" identifier != number_literal) )) (goto_statement "goto LAB_002e313c;" goto statement_identifier ;)) (expression_statement "local_60._0_4_ = (uint *)(uVar26 >> 0x20);" (assignment_expression "local_60._0_4_ = (uint *)(uVar26 >> 0x20)" (field_expression "local_60._0_4_" identifier . field_identifier) = (cast_expression "(uint *)(uVar26 >> 0x20)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(uVar26 >> 0x20)" ( (binary_expression "uVar26 >> 0x20" identifier >> number_literal) )))) ;) (if_statement "if (uVar19 == 8) {\n            param_1[0xf] = (int)local_60._0_4_;\n            goto LAB_002e313c;\n          }" if (parenthesized_expression "(uVar19 == 8)" ( (binary_expression "uVar19 == 8" identifier == number_literal) )) (compound_statement "{\n            param_1[0xf] = (int)local_60._0_4_;\n            goto LAB_002e313c;\n          }" { (expression_statement "param_1[0xf] = (int)local_60._0_4_;" (assignment_expression "param_1[0xf] = (int)local_60._0_4_" (subscript_expression "param_1[0xf]" identifier [ number_literal ]) = (cast_expression "(int)local_60._0_4_" ( (type_descriptor "int" primitive_type) ) (field_expression "local_60._0_4_" identifier . field_identifier))) ;) (goto_statement "goto LAB_002e313c;" goto statement_identifier ;) })) (if_statement "if (uVar19 != 0xe) goto LAB_002e313c;" if (parenthesized_expression "(uVar19 != 0xe)" ( (binary_expression "uVar19 != 0xe" identifier != number_literal) )) (goto_statement "goto LAB_002e313c;" goto statement_identifier ;)) (goto_statement "goto LAB_002e3284;" goto statement_identifier ;) })) (if_statement "if (uVar19 < 0xd) {\n          uVar26 = (ulonglong)*(byte *)local_44;\n          local_44 = (uint *)((int)local_44 + 1);\nLAB_002e382c:\n          uVar7 = uVar26;\n          if (uVar22 == 0x31) goto LAB_002e313c;\n          if (uVar22 < 0x32) goto LAB_002e3118;\n        }\n        else {\n          bVar1 = *(byte *)local_44;\n          uVar15 = (uint)bVar1;\n          puVar9 = (uint *)((int)local_44 + 1);\n          if ((char)bVar1 < '\0') {\n            uVar26 = (*(code *)PTR_read_signed_LEB_128_x_004c297c)(puVar9,&local_48,uVar15);\n            puVar9 = (uint *)((int)local_44 + local_48);\n          }\n          else {\n            local_48 = 1;\n            uVar26 = (ulonglong)uVar15;\n            if ((bVar1 & 0x40) != 0) {\n              uVar26 = CONCAT44(0xffffffff,uVar15 | 0xffffff80);\n            }\n          }\n          local_44 = puVar9;\n          uVar7 = uVar26;\n          if (uVar22 == 0x31) goto LAB_002e313c;\n          if (uVar22 < 0x32) {\n            puVar9 = (uint *)param_1[0xc];\n            if (puVar9 != (uint *)param_1[0xd]) goto LAB_002e314c;\nLAB_002e2f98:\n            iVar17 = iVar17 + 8;\n            local_60 = uVar26;\n            std::\n            vector<gold::Dwarf_die::Attribute_value,std::allocator<gold::Dwarf_die::Attribute_value>>\n            ::_M_realloc_insert<gold::Dwarf_die::Attribute_value_const&>(local_38,puVar9,&local_68);\n            iVar8 = param_1[10];\n            if (iVar17 == iVar21) goto LAB_002e2fb8;\n            goto LAB_002e2db4;\n          }\n        }" if (parenthesized_expression "(uVar19 < 0xd)" ( (binary_expression "uVar19 < 0xd" identifier < number_literal) )) (compound_statement "{\n          uVar26 = (ulonglong)*(byte *)local_44;\n          local_44 = (uint *)((int)local_44 + 1);\nLAB_002e382c:\n          uVar7 = uVar26;\n          if (uVar22 == 0x31) goto LAB_002e313c;\n          if (uVar22 < 0x32) goto LAB_002e3118;\n        }" { (expression_statement "uVar26 = (ulonglong)*(byte *)local_44;" (assignment_expression "uVar26 = (ulonglong)*(byte *)local_44" identifier = (binary_expression "(ulonglong)*(byte *)local_44" (parenthesized_expression "(ulonglong)" ( identifier )) * (cast_expression "(byte *)local_44" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier))) ;) (expression_statement "local_44 = (uint *)((int)local_44 + 1);" (assignment_expression "local_44 = (uint *)((int)local_44 + 1)" identifier = (cast_expression "(uint *)((int)local_44 + 1)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)local_44 + 1)" ( (binary_expression "(int)local_44 + 1" (cast_expression "(int)local_44" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) ;) (labeled_statement "LAB_002e382c:\n          uVar7 = uVar26;" statement_identifier : (expression_statement "uVar7 = uVar26;" (assignment_expression "uVar7 = uVar26" identifier = identifier) ;)) (if_statement "if (uVar22 == 0x31) goto LAB_002e313c;" if (parenthesized_expression "(uVar22 == 0x31)" ( (binary_expression "uVar22 == 0x31" identifier == number_literal) )) (goto_statement "goto LAB_002e313c;" goto statement_identifier ;)) (if_statement "if (uVar22 < 0x32) goto LAB_002e3118;" if (parenthesized_expression "(uVar22 < 0x32)" ( (binary_expression "uVar22 < 0x32" identifier < number_literal) )) (goto_statement "goto LAB_002e3118;" goto statement_identifier ;)) }) (else_clause "else {\n          bVar1 = *(byte *)local_44;\n          uVar15 = (uint)bVar1;\n          puVar9 = (uint *)((int)local_44 + 1);\n          if ((char)bVar1 < '\0') {\n            uVar26 = (*(code *)PTR_read_signed_LEB_128_x_004c297c)(puVar9,&local_48,uVar15);\n            puVar9 = (uint *)((int)local_44 + local_48);\n          }\n          else {\n            local_48 = 1;\n            uVar26 = (ulonglong)uVar15;\n            if ((bVar1 & 0x40) != 0) {\n              uVar26 = CONCAT44(0xffffffff,uVar15 | 0xffffff80);\n            }\n          }\n          local_44 = puVar9;\n          uVar7 = uVar26;\n          if (uVar22 == 0x31) goto LAB_002e313c;\n          if (uVar22 < 0x32) {\n            puVar9 = (uint *)param_1[0xc];\n            if (puVar9 != (uint *)param_1[0xd]) goto LAB_002e314c;\nLAB_002e2f98:\n            iVar17 = iVar17 + 8;\n            local_60 = uVar26;\n            std::\n            vector<gold::Dwarf_die::Attribute_value,std::allocator<gold::Dwarf_die::Attribute_value>>\n            ::_M_realloc_insert<gold::Dwarf_die::Attribute_value_const&>(local_38,puVar9,&local_68);\n            iVar8 = param_1[10];\n            if (iVar17 == iVar21) goto LAB_002e2fb8;\n            goto LAB_002e2db4;\n          }\n        }" else (compound_statement "{\n          bVar1 = *(byte *)local_44;\n          uVar15 = (uint)bVar1;\n          puVar9 = (uint *)((int)local_44 + 1);\n          if ((char)bVar1 < '\0') {\n            uVar26 = (*(code *)PTR_read_signed_LEB_128_x_004c297c)(puVar9,&local_48,uVar15);\n            puVar9 = (uint *)((int)local_44 + local_48);\n          }\n          else {\n            local_48 = 1;\n            uVar26 = (ulonglong)uVar15;\n            if ((bVar1 & 0x40) != 0) {\n              uVar26 = CONCAT44(0xffffffff,uVar15 | 0xffffff80);\n            }\n          }\n          local_44 = puVar9;\n          uVar7 = uVar26;\n          if (uVar22 == 0x31) goto LAB_002e313c;\n          if (uVar22 < 0x32) {\n            puVar9 = (uint *)param_1[0xc];\n            if (puVar9 != (uint *)param_1[0xd]) goto LAB_002e314c;\nLAB_002e2f98:\n            iVar17 = iVar17 + 8;\n            local_60 = uVar26;\n            std::\n            vector<gold::Dwarf_die::Attribute_value,std::allocator<gold::Dwarf_die::Attribute_value>>\n            ::_M_realloc_insert<gold::Dwarf_die::Attribute_value_const&>(local_38,puVar9,&local_68);\n            iVar8 = param_1[10];\n            if (iVar17 == iVar21) goto LAB_002e2fb8;\n            goto LAB_002e2db4;\n          }\n        }" { (expression_statement "bVar1 = *(byte *)local_44;" (assignment_expression "bVar1 = *(byte *)local_44" identifier = (pointer_expression "*(byte *)local_44" * (cast_expression "(byte *)local_44" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier))) ;) (expression_statement "uVar15 = (uint)bVar1;" (assignment_expression "uVar15 = (uint)bVar1" identifier = (cast_expression "(uint)bVar1" ( (type_descriptor "uint" type_identifier) ) identifier)) ;) (expression_statement "puVar9 = (uint *)((int)local_44 + 1);" (assignment_expression "puVar9 = (uint *)((int)local_44 + 1)" identifier = (cast_expression "(uint *)((int)local_44 + 1)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)local_44 + 1)" ( (binary_expression "(int)local_44 + 1" (cast_expression "(int)local_44" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) ;) (if_statement "if ((char)bVar1 < '\0') {\n            uVar26 = (*(code *)PTR_read_signed_LEB_128_x_004c297c)(puVar9,&local_48,uVar15);\n            puVar9 = (uint *)((int)local_44 + local_48);\n          }\n          else {\n            local_48 = 1;\n            uVar26 = (ulonglong)uVar15;\n            if ((bVar1 & 0x40) != 0) {\n              uVar26 = CONCAT44(0xffffffff,uVar15 | 0xffffff80);\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            uVar26 = (*(code *)PTR_read_signed_LEB_128_x_004c297c)(puVar9,&local_48,uVar15);\n            puVar9 = (uint *)((int)local_44 + local_48);\n          }" { (expression_statement "uVar26 = (*(code *)PTR_read_signed_LEB_128_x_004c297c)(puVar9,&local_48,uVar15);" (assignment_expression "uVar26 = (*(code *)PTR_read_signed_LEB_128_x_004c297c)(puVar9,&local_48,uVar15)" identifier = (call_expression "(*(code *)PTR_read_signed_LEB_128_x_004c297c)(puVar9,&local_48,uVar15)" (parenthesized_expression "(*(code *)PTR_read_signed_LEB_128_x_004c297c)" ( (pointer_expression "*(code *)PTR_read_signed_LEB_128_x_004c297c" * (cast_expression "(code *)PTR_read_signed_LEB_128_x_004c297c" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(puVar9,&local_48,uVar15)" ( identifier , (pointer_expression "&local_48" & identifier) , identifier )))) ;) (expression_statement "puVar9 = (uint *)((int)local_44 + local_48);" (assignment_expression "puVar9 = (uint *)((int)local_44 + local_48)" identifier = (cast_expression "(uint *)((int)local_44 + local_48)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)local_44 + local_48)" ( (binary_expression "(int)local_44 + local_48" (cast_expression "(int)local_44" ( (type_descriptor "int" primitive_type) ) identifier) + identifier) )))) ;) }) (else_clause "else {\n            local_48 = 1;\n            uVar26 = (ulonglong)uVar15;\n            if ((bVar1 & 0x40) != 0) {\n              uVar26 = CONCAT44(0xffffffff,uVar15 | 0xffffff80);\n            }\n          }" else (compound_statement "{\n            local_48 = 1;\n            uVar26 = (ulonglong)uVar15;\n            if ((bVar1 & 0x40) != 0) {\n              uVar26 = CONCAT44(0xffffffff,uVar15 | 0xffffff80);\n            }\n          }" { (expression_statement "local_48 = 1;" (assignment_expression "local_48 = 1" identifier = number_literal) ;) (expression_statement "uVar26 = (ulonglong)uVar15;" (assignment_expression "uVar26 = (ulonglong)uVar15" identifier = (cast_expression "(ulonglong)uVar15" ( (type_descriptor "ulonglong" type_identifier) ) identifier)) ;) (if_statement "if ((bVar1 & 0x40) != 0) {\n              uVar26 = CONCAT44(0xffffffff,uVar15 | 0xffffff80);\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              uVar26 = CONCAT44(0xffffffff,uVar15 | 0xffffff80);\n            }" { (expression_statement "uVar26 = CONCAT44(0xffffffff,uVar15 | 0xffffff80);" (assignment_expression "uVar26 = CONCAT44(0xffffffff,uVar15 | 0xffffff80)" identifier = (call_expression "CONCAT44(0xffffffff,uVar15 | 0xffffff80)" identifier (argument_list "(0xffffffff,uVar15 | 0xffffff80)" ( number_literal , (binary_expression "uVar15 | 0xffffff80" identifier | number_literal) )))) ;) })) }))) (expression_statement "local_44 = puVar9;" (assignment_expression "local_44 = puVar9" identifier = identifier) ;) (expression_statement "uVar7 = uVar26;" (assignment_expression "uVar7 = uVar26" identifier = identifier) ;) (if_statement "if (uVar22 == 0x31) goto LAB_002e313c;" if (parenthesized_expression "(uVar22 == 0x31)" ( (binary_expression "uVar22 == 0x31" identifier == number_literal) )) (goto_statement "goto LAB_002e313c;" goto statement_identifier ;)) (if_statement "if (uVar22 < 0x32) {\n            puVar9 = (uint *)param_1[0xc];\n            if (puVar9 != (uint *)param_1[0xd]) goto LAB_002e314c;\nLAB_002e2f98:\n            iVar17 = iVar17 + 8;\n            local_60 = uVar26;\n            std::\n            vector<gold::Dwarf_die::Attribute_value,std::allocator<gold::Dwarf_die::Attribute_value>>\n            ::_M_realloc_insert<gold::Dwarf_die::Attribute_value_const&>(local_38,puVar9,&local_68);\n            iVar8 = param_1[10];\n            if (iVar17 == iVar21) goto LAB_002e2fb8;\n            goto LAB_002e2db4;\n          }" if (parenthesized_expression "(uVar22 < 0x32)" ( (binary_expression "uVar22 < 0x32" identifier < number_literal) )) (compound_statement "{\n            puVar9 = (uint *)param_1[0xc];\n            if (puVar9 != (uint *)param_1[0xd]) goto LAB_002e314c;\nLAB_002e2f98:\n            iVar17 = iVar17 + 8;\n            local_60 = uVar26;\n            std::\n            vector<gold::Dwarf_die::Attribute_value,std::allocator<gold::Dwarf_die::Attribute_value>>\n            ::_M_realloc_insert<gold::Dwarf_die::Attribute_value_const&>(local_38,puVar9,&local_68);\n            iVar8 = param_1[10];\n            if (iVar17 == iVar21) goto LAB_002e2fb8;\n            goto LAB_002e2db4;\n          }" { (expression_statement "puVar9 = (uint *)param_1[0xc];" (assignment_expression "puVar9 = (uint *)param_1[0xc]" identifier = (cast_expression "(uint *)param_1[0xc]" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (subscript_expression "param_1[0xc]" identifier [ number_literal ]))) ;) (if_statement "if (puVar9 != (uint *)param_1[0xd]) goto LAB_002e314c;" if (parenthesized_expression "(puVar9 != (uint *)param_1[0xd])" ( (binary_expression "puVar9 != (uint *)param_1[0xd]" identifier != (cast_expression "(uint *)param_1[0xd]" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (subscript_expression "param_1[0xd]" identifier [ number_literal ]))) )) (goto_statement "goto LAB_002e314c;" goto statement_identifier ;)) (labeled_statement "LAB_002e2f98:\n            iVar17 = iVar17 + 8;" statement_identifier : (expression_statement "iVar17 = iVar17 + 8;" (assignment_expression "iVar17 = iVar17 + 8" identifier = (binary_expression "iVar17 + 8" identifier + number_literal)) ;)) (expression_statement "local_60 = uVar26;" (assignment_expression "local_60 = uVar26" identifier = identifier) ;) (labeled_statement "std::\n            vector<gold::Dwarf_die::Attribute_value,std::allocator<gold::Dwarf_die::Attribute_value>>\n            ::_M_realloc_insert<gold::Dwarf_die::Attribute_value_const&>(local_38,puVar9,&local_68);" 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<gold::Dwarf_die::Attribute_value_const&>(local_38,puVar9,&local_68);" 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<gold::Dwarf_die::Attribute_value_const&>(local_38,puVar9,&local_68);" statement_identifier (ERROR "::Attribute_value>>\n            ::_M_realloc_insert<gold:" : : identifier >> : : (binary_expression "_M_realloc_insert<gold" identifier < identifier) :) : (labeled_statement "Dwarf_die::Attribute_value_const&>(local_38,puVar9,&local_68);" statement_identifier : (ERROR ":" :) (expression_statement "Attribute_value_const&>(local_38,puVar9,&local_68);" (binary_expression "Attribute_value_const&>(local_38,puVar9,&local_68)" identifier (ERROR "&" &) > (parenthesized_expression "(local_38,puVar9,&local_68)" ( (comma_expression "local_38,puVar9,&local_68" identifier , (comma_expression "puVar9,&local_68" identifier , (pointer_expression "&local_68" & identifier))) ))) ;))))) (expression_statement "iVar8 = param_1[10];" (assignment_expression "iVar8 = param_1[10]" identifier = (subscript_expression "param_1[10]" identifier [ number_literal ])) ;) (if_statement "if (iVar17 == iVar21) goto LAB_002e2fb8;" if (parenthesized_expression "(iVar17 == iVar21)" ( (binary_expression "iVar17 == iVar21" identifier == identifier) )) (goto_statement "goto LAB_002e2fb8;" goto statement_identifier ;)) (goto_statement "goto LAB_002e2db4;" goto statement_identifier ;) })) }))) (if_statement "if ((uVar22 != 0x6e) && (uVar7 = uVar26, uVar22 != 0x2007)) goto LAB_002e313c;" if (parenthesized_expression "((uVar22 != 0x6e) && (uVar7 = uVar26, uVar22 != 0x2007))" ( (binary_expression "(uVar22 != 0x6e) && (uVar7 = uVar26, uVar22 != 0x2007)" (parenthesized_expression "(uVar22 != 0x6e)" ( (binary_expression "uVar22 != 0x6e" identifier != number_literal) )) && (parenthesized_expression "(uVar7 = uVar26, uVar22 != 0x2007)" ( (comma_expression "uVar7 = uVar26, uVar22 != 0x2007" (assignment_expression "uVar7 = uVar26" identifier = identifier) , (binary_expression "uVar22 != 0x2007" identifier != number_literal)) ))) )) (goto_statement "goto LAB_002e313c;" goto statement_identifier ;)) (labeled_statement "LAB_002e3858:\n        local_60._0_4_ = (uint *)(uVar26 >> 0x20);" statement_identifier : (expression_statement "local_60._0_4_ = (uint *)(uVar26 >> 0x20);" (assignment_expression "local_60._0_4_ = (uint *)(uVar26 >> 0x20)" (field_expression "local_60._0_4_" identifier . field_identifier) = (cast_expression "(uint *)(uVar26 >> 0x20)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(uVar26 >> 0x20)" ( (binary_expression "uVar26 >> 0x20" identifier >> number_literal) )))) ;)) (expression_statement "uVar7 = uVar26;" (assignment_expression "uVar7 = uVar26" identifier = identifier) ;) (if_statement "if (uVar19 == 8) {\n          param_1[0x12] = (int)local_60._0_4_;\n          goto LAB_002e313c;\n        }" if (parenthesized_expression "(uVar19 == 8)" ( (binary_expression "uVar19 == 8" identifier == number_literal) )) (compound_statement "{\n          param_1[0x12] = (int)local_60._0_4_;\n          goto LAB_002e313c;\n        }" { (expression_statement "param_1[0x12] = (int)local_60._0_4_;" (assignment_expression "param_1[0x12] = (int)local_60._0_4_" (subscript_expression "param_1[0x12]" identifier [ number_literal ]) = (cast_expression "(int)local_60._0_4_" ( (type_descriptor "int" primitive_type) ) (field_expression "local_60._0_4_" identifier . field_identifier))) ;) (goto_statement "goto LAB_002e313c;" goto statement_identifier ;) })) (if_statement "if (uVar19 != 0xe) goto LAB_002e313c;" if (parenthesized_expression "(uVar19 != 0xe)" ( (binary_expression "uVar19 != 0xe" identifier != number_literal) )) (goto_statement "goto LAB_002e313c;" goto statement_identifier ;)) (goto_statement "goto LAB_002e387c;" goto statement_identifier ;) })) (if_statement "if (uVar19 == 4) {\n        pcVar25 = *(code **)(**(int **)(*param_1 + 8) + 0xc);\n        if (pcVar25 == (code *)PTR_is_big_endian_004c2950) {\n          iVar8 = (**(code **)(**(int **)(*param_1 + 8) + 0xe8))();\n        }\n        else {\n          iVar8 = (*pcVar25)();\n        }\n        local_58 = *local_44;\n        if (iVar8 == 0) {\n          local_58 = (((local_58 >> 0x10) << 0x18 | (local_58 >> 0x18) << 0x10) >> 0x10) +\n                     ((local_58 & 0xff) << 8 | local_58 >> 8 & 0xff) * 0x10000;\n        }\n        local_60._0_4_ = local_44 + 1;\n        local_44 = (uint *)((int)local_60._0_4_ + local_58);\nLAB_002e355c:\n        uVar26 = CONCAT44(local_60._0_4_,local_60._4_4_);\n        uVar7 = uVar26;\n        if (uVar22 == 0x31) goto LAB_002e313c;\n        if (uVar22 < 0x32) goto LAB_002e3118;\n        puVar9 = (uint *)param_1[0xc];\n      }\n      else {\n        if (4 < uVar19) {\n          if (uVar19 != 5) {\n            if (uVar19 != 6) {\n              return 0;\n            }\n            pcVar25 = *(code **)(**(int **)(*param_1 + 8) + 0xc);\n            if (pcVar25 == (code *)PTR_is_big_endian_004c2950) {\n              local_30 = puVar18;\n              iVar10 = (**(code **)(**(int **)(*param_1 + 8) + 0xe8))();\n            }\n            else {\n              local_30 = puVar18;\n              iVar10 = (*pcVar25)();\n            }\n            puVar9 = (uint *)*local_44;\n            if (iVar10 == 0) {\n              puVar9 = (uint *)(((((uint)puVar9 >> 0x10) << 0x18 | ((uint)puVar9 >> 0x18) << 0x10)\n                                >> 0x10) +\n                               (((uint)puVar9 & 0xff) << 8 | (uint)puVar9 >> 8 & 0xff) * 0x10000);\n            }\n            local_44 = local_44 + 1;\n            iVar10 = *param_1;\n            local_50._0_4_ = (uint *)0x0;\n            local_50._4_4_ = puVar9;\n            goto LAB_002e3708;\n          }\n          pcVar25 = *(code **)(**(int **)(*param_1 + 8) + 0xc);\n          if (pcVar25 == (code *)PTR_is_big_endian_004c2950) {\n            iVar8 = (**(code **)(**(int **)(*param_1 + 8) + 0xe8))();\n          }\n          else {\n            iVar8 = (*pcVar25)();\n          }\n          uVar6 = *(ushort *)local_44;\n          if (iVar8 == 0) {\n            uVar6 = CONCAT11(*(byte *)((int)local_44 + 1),*(byte *)local_44);\n          }\n          local_60._4_4_ = (uint *)(uint)uVar6;\n          local_44 = (uint *)((int)local_44 + 2);\n          local_60._0_4_ = (uint *)0x0;\n          goto LAB_002e355c;\n        }\n        if (uVar19 != 1) {\n          if (uVar19 != 3) {\n            return 0;\n          }\n          pcVar25 = *(code **)(**(int **)(*param_1 + 8) + 0xc);\n          if (pcVar25 == (code *)PTR_is_big_endian_004c2950) {\n            iVar8 = (**(code **)(**(int **)(*param_1 + 8) + 0xe8))();\n          }\n          else {\n            iVar8 = (*pcVar25)();\n          }\n          uVar6 = *(ushort *)local_44;\n          if (iVar8 == 0) {\n            uVar6 = CONCAT11(*(byte *)((int)local_44 + 1),*(byte *)local_44);\n          }\n          local_58 = (uint)uVar6;\n          local_60._0_4_ = (uint *)((int)local_44 + 2);\n          local_44 = (uint *)((int)local_60._0_4_ + local_58);\n          goto LAB_002e355c;\n        }\n        iVar8 = *param_1;\n        if (*(int *)(iVar8 + 0x4c) == 4) {\n          pcVar25 = *(code **)(**(int **)(iVar8 + 8) + 0xc);\n          if (pcVar25 == (code *)PTR_is_big_endian_004c2950) {\n            local_30 = puVar18;\n            iVar8 = (**(code **)(**(int **)(iVar8 + 8) + 0xe8))();\n          }\n          else {\n            local_30 = puVar18;\n            iVar8 = (*pcVar25)();\n          }\n          uVar15 = *local_44;\n          if (iVar8 == 0) {\n            uVar15 = (((uVar15 >> 0x10) << 0x18 | (uVar15 >> 0x18) << 0x10) >> 0x10) +\n                     ((uVar15 & 0xff) << 8 | uVar15 >> 8 & 0xff) * 0x10000;\n          }\n          local_44 = local_44 + 1;\n          uVar26 = (ulonglong)uVar15;\n        }\n        else {\n          local_30 = puVar18;\n          uVar26 = (*local_34)(iVar8,&local_44);\n        }\n        local_50 = uVar26;\n        local_58 = (*local_3c)(*param_1);\n        uVar26 = local_50;\n        if (uVar22 == 0x31) goto LAB_002e30bc;\n        if (uVar22 < 0x32) {\n          if (uVar22 != 1) goto joined_r0x002e3124;\n          goto LAB_002e39b4;\n        }\n        uVar7 = local_50;\n        if (uVar22 == 0x6e) goto LAB_002e313c;\n        if (uVar22 != 0x2007) goto LAB_002e339c;\n        puVar9 = (uint *)param_1[0xc];\n      }" if (parenthesized_expression "(uVar19 == 4)" ( (binary_expression "uVar19 == 4" identifier == number_literal) )) (compound_statement "{\n        pcVar25 = *(code **)(**(int **)(*param_1 + 8) + 0xc);\n        if (pcVar25 == (code *)PTR_is_big_endian_004c2950) {\n          iVar8 = (**(code **)(**(int **)(*param_1 + 8) + 0xe8))();\n        }\n        else {\n          iVar8 = (*pcVar25)();\n        }\n        local_58 = *local_44;\n        if (iVar8 == 0) {\n          local_58 = (((local_58 >> 0x10) << 0x18 | (local_58 >> 0x18) << 0x10) >> 0x10) +\n                     ((local_58 & 0xff) << 8 | local_58 >> 8 & 0xff) * 0x10000;\n        }\n        local_60._0_4_ = local_44 + 1;\n        local_44 = (uint *)((int)local_60._0_4_ + local_58);\nLAB_002e355c:\n        uVar26 = CONCAT44(local_60._0_4_,local_60._4_4_);\n        uVar7 = uVar26;\n        if (uVar22 == 0x31) goto LAB_002e313c;\n        if (uVar22 < 0x32) goto LAB_002e3118;\n        puVar9 = (uint *)param_1[0xc];\n      }" { (expression_statement "pcVar25 = *(code **)(**(int **)(*param_1 + 8) + 0xc);" (assignment_expression "pcVar25 = *(code **)(**(int **)(*param_1 + 8) + 0xc)" identifier = (pointer_expression "*(code **)(**(int **)(*param_1 + 8) + 0xc)" * (cast_expression "(code **)(**(int **)(*param_1 + 8) + 0xc)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(**(int **)(*param_1 + 8) + 0xc)" ( (binary_expression "**(int **)(*param_1 + 8) + 0xc" (pointer_expression "**(int **)(*param_1 + 8)" * (pointer_expression "*(int **)(*param_1 + 8)" * (cast_expression "(int **)(*param_1 + 8)" ( (type_descriptor "int **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(*param_1 + 8)" ( (binary_expression "*param_1 + 8" (pointer_expression "*param_1" * identifier) + number_literal) ))))) + number_literal) ))))) ;) (if_statement "if (pcVar25 == (code *)PTR_is_big_endian_004c2950) {\n          iVar8 = (**(code **)(**(int **)(*param_1 + 8) + 0xe8))();\n        }\n        else {\n          iVar8 = (*pcVar25)();\n        }" if (parenthesized_expression "(pcVar25 == (code *)PTR_is_big_endian_004c2950)" ( (binary_expression "pcVar25 == (code *)PTR_is_big_endian_004c2950" identifier == (cast_expression "(code *)PTR_is_big_endian_004c2950" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (compound_statement "{\n          iVar8 = (**(code **)(**(int **)(*param_1 + 8) + 0xe8))();\n        }" { (expression_statement "iVar8 = (**(code **)(**(int **)(*param_1 + 8) + 0xe8))();" (assignment_expression "iVar8 = (**(code **)(**(int **)(*param_1 + 8) + 0xe8))()" identifier = (call_expression "(**(code **)(**(int **)(*param_1 + 8) + 0xe8))()" (parenthesized_expression "(**(code **)(**(int **)(*param_1 + 8) + 0xe8))" ( (pointer_expression "**(code **)(**(int **)(*param_1 + 8) + 0xe8)" * (pointer_expression "*(code **)(**(int **)(*param_1 + 8) + 0xe8)" * (cast_expression "(code **)(**(int **)(*param_1 + 8) + 0xe8)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(**(int **)(*param_1 + 8) + 0xe8)" ( (binary_expression "**(int **)(*param_1 + 8) + 0xe8" (pointer_expression "**(int **)(*param_1 + 8)" * (pointer_expression "*(int **)(*param_1 + 8)" * (cast_expression "(int **)(*param_1 + 8)" ( (type_descriptor "int **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(*param_1 + 8)" ( (binary_expression "*param_1 + 8" (pointer_expression "*param_1" * identifier) + number_literal) ))))) + number_literal) ))))) )) (argument_list "()" ( )))) ;) }) (else_clause "else {\n          iVar8 = (*pcVar25)();\n        }" else (compound_statement "{\n          iVar8 = (*pcVar25)();\n        }" { (expression_statement "iVar8 = (*pcVar25)();" (assignment_expression "iVar8 = (*pcVar25)()" identifier = (call_expression "(*pcVar25)()" (parenthesized_expression "(*pcVar25)" ( (pointer_expression "*pcVar25" * identifier) )) (argument_list "()" ( )))) ;) }))) (expression_statement "local_58 = *local_44;" (assignment_expression "local_58 = *local_44" identifier = (pointer_expression "*local_44" * identifier)) ;) (if_statement "if (iVar8 == 0) {\n          local_58 = (((local_58 >> 0x10) << 0x18 | (local_58 >> 0x18) << 0x10) >> 0x10) +\n                     ((local_58 & 0xff) << 8 | local_58 >> 8 & 0xff) * 0x10000;\n        }" if (parenthesized_expression "(iVar8 == 0)" ( (binary_expression "iVar8 == 0" identifier == number_literal) )) (compound_statement "{\n          local_58 = (((local_58 >> 0x10) << 0x18 | (local_58 >> 0x18) << 0x10) >> 0x10) +\n                     ((local_58 & 0xff) << 8 | local_58 >> 8 & 0xff) * 0x10000;\n        }" { (expression_statement "local_58 = (((local_58 >> 0x10) << 0x18 | (local_58 >> 0x18) << 0x10) >> 0x10) +\n                     ((local_58 & 0xff) << 8 | local_58 >> 8 & 0xff) * 0x10000;" (assignment_expression "local_58 = (((local_58 >> 0x10) << 0x18 | (local_58 >> 0x18) << 0x10) >> 0x10) +\n                     ((local_58 & 0xff) << 8 | local_58 >> 8 & 0xff) * 0x10000" identifier = (binary_expression "(((local_58 >> 0x10) << 0x18 | (local_58 >> 0x18) << 0x10) >> 0x10) +\n                     ((local_58 & 0xff) << 8 | local_58 >> 8 & 0xff) * 0x10000" (parenthesized_expression "(((local_58 >> 0x10) << 0x18 | (local_58 >> 0x18) << 0x10) >> 0x10)" ( (binary_expression "((local_58 >> 0x10) << 0x18 | (local_58 >> 0x18) << 0x10) >> 0x10" (parenthesized_expression "((local_58 >> 0x10) << 0x18 | (local_58 >> 0x18) << 0x10)" ( (binary_expression "(local_58 >> 0x10) << 0x18 | (local_58 >> 0x18) << 0x10" (binary_expression "(local_58 >> 0x10) << 0x18" (parenthesized_expression "(local_58 >> 0x10)" ( (binary_expression "local_58 >> 0x10" identifier >> number_literal) )) << number_literal) | (binary_expression "(local_58 >> 0x18) << 0x10" (parenthesized_expression "(local_58 >> 0x18)" ( (binary_expression "local_58 >> 0x18" identifier >> number_literal) )) << number_literal)) )) >> number_literal) )) + (binary_expression "((local_58 & 0xff) << 8 | local_58 >> 8 & 0xff) * 0x10000" (parenthesized_expression "((local_58 & 0xff) << 8 | local_58 >> 8 & 0xff)" ( (binary_expression "(local_58 & 0xff) << 8 | local_58 >> 8 & 0xff" (binary_expression "(local_58 & 0xff) << 8" (parenthesized_expression "(local_58 & 0xff)" ( (binary_expression "local_58 & 0xff" identifier & number_literal) )) << number_literal) | (binary_expression "local_58 >> 8 & 0xff" (binary_expression "local_58 >> 8" identifier >> number_literal) & number_literal)) )) * number_literal))) ;) })) (expression_statement "local_60._0_4_ = local_44 + 1;" (assignment_expression "local_60._0_4_ = local_44 + 1" (field_expression "local_60._0_4_" identifier . field_identifier) = (binary_expression "local_44 + 1" identifier + number_literal)) ;) (expression_statement "local_44 = (uint *)((int)local_60._0_4_ + local_58);" (assignment_expression "local_44 = (uint *)((int)local_60._0_4_ + local_58)" identifier = (cast_expression "(uint *)((int)local_60._0_4_ + local_58)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)local_60._0_4_ + local_58)" ( (binary_expression "(int)local_60._0_4_ + local_58" (cast_expression "(int)local_60._0_4_" ( (type_descriptor "int" primitive_type) ) (field_expression "local_60._0_4_" identifier . field_identifier)) + identifier) )))) ;) (labeled_statement "LAB_002e355c:\n        uVar26 = CONCAT44(local_60._0_4_,local_60._4_4_);" statement_identifier : (expression_statement "uVar26 = CONCAT44(local_60._0_4_,local_60._4_4_);" (assignment_expression "uVar26 = CONCAT44(local_60._0_4_,local_60._4_4_)" identifier = (call_expression "CONCAT44(local_60._0_4_,local_60._4_4_)" identifier (argument_list "(local_60._0_4_,local_60._4_4_)" ( (field_expression "local_60._0_4_" identifier . field_identifier) , (field_expression "local_60._4_4_" identifier . field_identifier) )))) ;)) (expression_statement "uVar7 = uVar26;" (assignment_expression "uVar7 = uVar26" identifier = identifier) ;) (if_statement "if (uVar22 == 0x31) goto LAB_002e313c;" if (parenthesized_expression "(uVar22 == 0x31)" ( (binary_expression "uVar22 == 0x31" identifier == number_literal) )) (goto_statement "goto LAB_002e313c;" goto statement_identifier ;)) (if_statement "if (uVar22 < 0x32) goto LAB_002e3118;" if (parenthesized_expression "(uVar22 < 0x32)" ( (binary_expression "uVar22 < 0x32" identifier < number_literal) )) (goto_statement "goto LAB_002e3118;" goto statement_identifier ;)) (expression_statement "puVar9 = (uint *)param_1[0xc];" (assignment_expression "puVar9 = (uint *)param_1[0xc]" identifier = (cast_expression "(uint *)param_1[0xc]" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (subscript_expression "param_1[0xc]" identifier [ number_literal ]))) ;) }) (else_clause "else {\n        if (4 < uVar19) {\n          if (uVar19 != 5) {\n            if (uVar19 != 6) {\n              return 0;\n            }\n            pcVar25 = *(code **)(**(int **)(*param_1 + 8) + 0xc);\n            if (pcVar25 == (code *)PTR_is_big_endian_004c2950) {\n              local_30 = puVar18;\n              iVar10 = (**(code **)(**(int **)(*param_1 + 8) + 0xe8))();\n            }\n            else {\n              local_30 = puVar18;\n              iVar10 = (*pcVar25)();\n            }\n            puVar9 = (uint *)*local_44;\n            if (iVar10 == 0) {\n              puVar9 = (uint *)(((((uint)puVar9 >> 0x10) << 0x18 | ((uint)puVar9 >> 0x18) << 0x10)\n                                >> 0x10) +\n                               (((uint)puVar9 & 0xff) << 8 | (uint)puVar9 >> 8 & 0xff) * 0x10000);\n            }\n            local_44 = local_44 + 1;\n            iVar10 = *param_1;\n            local_50._0_4_ = (uint *)0x0;\n            local_50._4_4_ = puVar9;\n            goto LAB_002e3708;\n          }\n          pcVar25 = *(code **)(**(int **)(*param_1 + 8) + 0xc);\n          if (pcVar25 == (code *)PTR_is_big_endian_004c2950) {\n            iVar8 = (**(code **)(**(int **)(*param_1 + 8) + 0xe8))();\n          }\n          else {\n            iVar8 = (*pcVar25)();\n          }\n          uVar6 = *(ushort *)local_44;\n          if (iVar8 == 0) {\n            uVar6 = CONCAT11(*(byte *)((int)local_44 + 1),*(byte *)local_44);\n          }\n          local_60._4_4_ = (uint *)(uint)uVar6;\n          local_44 = (uint *)((int)local_44 + 2);\n          local_60._0_4_ = (uint *)0x0;\n          goto LAB_002e355c;\n        }\n        if (uVar19 != 1) {\n          if (uVar19 != 3) {\n            return 0;\n          }\n          pcVar25 = *(code **)(**(int **)(*param_1 + 8) + 0xc);\n          if (pcVar25 == (code *)PTR_is_big_endian_004c2950) {\n            iVar8 = (**(code **)(**(int **)(*param_1 + 8) + 0xe8))();\n          }\n          else {\n            iVar8 = (*pcVar25)();\n          }\n          uVar6 = *(ushort *)local_44;\n          if (iVar8 == 0) {\n            uVar6 = CONCAT11(*(byte *)((int)local_44 + 1),*(byte *)local_44);\n          }\n          local_58 = (uint)uVar6;\n          local_60._0_4_ = (uint *)((int)local_44 + 2);\n          local_44 = (uint *)((int)local_60._0_4_ + local_58);\n          goto LAB_002e355c;\n        }\n        iVar8 = *param_1;\n        if (*(int *)(iVar8 + 0x4c) == 4) {\n          pcVar25 = *(code **)(**(int **)(iVar8 + 8) + 0xc);\n          if (pcVar25 == (code *)PTR_is_big_endian_004c2950) {\n            local_30 = puVar18;\n            iVar8 = (**(code **)(**(int **)(iVar8 + 8) + 0xe8))();\n          }\n          else {\n            local_30 = puVar18;\n            iVar8 = (*pcVar25)();\n          }\n          uVar15 = *local_44;\n          if (iVar8 == 0) {\n            uVar15 = (((uVar15 >> 0x10) << 0x18 | (uVar15 >> 0x18) << 0x10) >> 0x10) +\n                     ((uVar15 & 0xff) << 8 | uVar15 >> 8 & 0xff) * 0x10000;\n          }\n          local_44 = local_44 + 1;\n          uVar26 = (ulonglong)uVar15;\n        }\n        else {\n          local_30 = puVar18;\n          uVar26 = (*local_34)(iVar8,&local_44);\n        }\n        local_50 = uVar26;\n        local_58 = (*local_3c)(*param_1);\n        uVar26 = local_50;\n        if (uVar22 == 0x31) goto LAB_002e30bc;\n        if (uVar22 < 0x32) {\n          if (uVar22 != 1) goto joined_r0x002e3124;\n          goto LAB_002e39b4;\n        }\n        uVar7 = local_50;\n        if (uVar22 == 0x6e) goto LAB_002e313c;\n        if (uVar22 != 0x2007) goto LAB_002e339c;\n        puVar9 = (uint *)param_1[0xc];\n      }" else (compound_statement "{\n        if (4 < uVar19) {\n          if (uVar19 != 5) {\n            if (uVar19 != 6) {\n              return 0;\n            }\n            pcVar25 = *(code **)(**(int **)(*param_1 + 8) + 0xc);\n            if (pcVar25 == (code *)PTR_is_big_endian_004c2950) {\n              local_30 = puVar18;\n              iVar10 = (**(code **)(**(int **)(*param_1 + 8) + 0xe8))();\n            }\n            else {\n              local_30 = puVar18;\n              iVar10 = (*pcVar25)();\n            }\n            puVar9 = (uint *)*local_44;\n            if (iVar10 == 0) {\n              puVar9 = (uint *)(((((uint)puVar9 >> 0x10) << 0x18 | ((uint)puVar9 >> 0x18) << 0x10)\n                                >> 0x10) +\n                               (((uint)puVar9 & 0xff) << 8 | (uint)puVar9 >> 8 & 0xff) * 0x10000);\n            }\n            local_44 = local_44 + 1;\n            iVar10 = *param_1;\n            local_50._0_4_ = (uint *)0x0;\n            local_50._4_4_ = puVar9;\n            goto LAB_002e3708;\n          }\n          pcVar25 = *(code **)(**(int **)(*param_1 + 8) + 0xc);\n          if (pcVar25 == (code *)PTR_is_big_endian_004c2950) {\n            iVar8 = (**(code **)(**(int **)(*param_1 + 8) + 0xe8))();\n          }\n          else {\n            iVar8 = (*pcVar25)();\n          }\n          uVar6 = *(ushort *)local_44;\n          if (iVar8 == 0) {\n            uVar6 = CONCAT11(*(byte *)((int)local_44 + 1),*(byte *)local_44);\n          }\n          local_60._4_4_ = (uint *)(uint)uVar6;\n          local_44 = (uint *)((int)local_44 + 2);\n          local_60._0_4_ = (uint *)0x0;\n          goto LAB_002e355c;\n        }\n        if (uVar19 != 1) {\n          if (uVar19 != 3) {\n            return 0;\n          }\n          pcVar25 = *(code **)(**(int **)(*param_1 + 8) + 0xc);\n          if (pcVar25 == (code *)PTR_is_big_endian_004c2950) {\n            iVar8 = (**(code **)(**(int **)(*param_1 + 8) + 0xe8))();\n          }\n          else {\n            iVar8 = (*pcVar25)();\n          }\n          uVar6 = *(ushort *)local_44;\n          if (iVar8 == 0) {\n            uVar6 = CONCAT11(*(byte *)((int)local_44 + 1),*(byte *)local_44);\n          }\n          local_58 = (uint)uVar6;\n          local_60._0_4_ = (uint *)((int)local_44 + 2);\n          local_44 = (uint *)((int)local_60._0_4_ + local_58);\n          goto LAB_002e355c;\n        }\n        iVar8 = *param_1;\n        if (*(int *)(iVar8 + 0x4c) == 4) {\n          pcVar25 = *(code **)(**(int **)(iVar8 + 8) + 0xc);\n          if (pcVar25 == (code *)PTR_is_big_endian_004c2950) {\n            local_30 = puVar18;\n            iVar8 = (**(code **)(**(int **)(iVar8 + 8) + 0xe8))();\n          }\n          else {\n            local_30 = puVar18;\n            iVar8 = (*pcVar25)();\n          }\n          uVar15 = *local_44;\n          if (iVar8 == 0) {\n            uVar15 = (((uVar15 >> 0x10) << 0x18 | (uVar15 >> 0x18) << 0x10) >> 0x10) +\n                     ((uVar15 & 0xff) << 8 | uVar15 >> 8 & 0xff) * 0x10000;\n          }\n          local_44 = local_44 + 1;\n          uVar26 = (ulonglong)uVar15;\n        }\n        else {\n          local_30 = puVar18;\n          uVar26 = (*local_34)(iVar8,&local_44);\n        }\n        local_50 = uVar26;\n        local_58 = (*local_3c)(*param_1);\n        uVar26 = local_50;\n        if (uVar22 == 0x31) goto LAB_002e30bc;\n        if (uVar22 < 0x32) {\n          if (uVar22 != 1) goto joined_r0x002e3124;\n          goto LAB_002e39b4;\n        }\n        uVar7 = local_50;\n        if (uVar22 == 0x6e) goto LAB_002e313c;\n        if (uVar22 != 0x2007) goto LAB_002e339c;\n        puVar9 = (uint *)param_1[0xc];\n      }" { (if_statement "if (4 < uVar19) {\n          if (uVar19 != 5) {\n            if (uVar19 != 6) {\n              return 0;\n            }\n            pcVar25 = *(code **)(**(int **)(*param_1 + 8) + 0xc);\n            if (pcVar25 == (code *)PTR_is_big_endian_004c2950) {\n              local_30 = puVar18;\n              iVar10 = (**(code **)(**(int **)(*param_1 + 8) + 0xe8))();\n            }\n            else {\n              local_30 = puVar18;\n              iVar10 = (*pcVar25)();\n            }\n            puVar9 = (uint *)*local_44;\n            if (iVar10 == 0) {\n              puVar9 = (uint *)(((((uint)puVar9 >> 0x10) << 0x18 | ((uint)puVar9 >> 0x18) << 0x10)\n                                >> 0x10) +\n                               (((uint)puVar9 & 0xff) << 8 | (uint)puVar9 >> 8 & 0xff) * 0x10000);\n            }\n            local_44 = local_44 + 1;\n            iVar10 = *param_1;\n            local_50._0_4_ = (uint *)0x0;\n            local_50._4_4_ = puVar9;\n            goto LAB_002e3708;\n          }\n          pcVar25 = *(code **)(**(int **)(*param_1 + 8) + 0xc);\n          if (pcVar25 == (code *)PTR_is_big_endian_004c2950) {\n            iVar8 = (**(code **)(**(int **)(*param_1 + 8) + 0xe8))();\n          }\n          else {\n            iVar8 = (*pcVar25)();\n          }\n          uVar6 = *(ushort *)local_44;\n          if (iVar8 == 0) {\n            uVar6 = CONCAT11(*(byte *)((int)local_44 + 1),*(byte *)local_44);\n          }\n          local_60._4_4_ = (uint *)(uint)uVar6;\n          local_44 = (uint *)((int)local_44 + 2);\n          local_60._0_4_ = (uint *)0x0;\n          goto LAB_002e355c;\n        }" if (parenthesized_expression "(4 < uVar19)" ( (binary_expression "4 < uVar19" number_literal < identifier) )) (compound_statement "{\n          if (uVar19 != 5) {\n            if (uVar19 != 6) {\n              return 0;\n            }\n            pcVar25 = *(code **)(**(int **)(*param_1 + 8) + 0xc);\n            if (pcVar25 == (code *)PTR_is_big_endian_004c2950) {\n              local_30 = puVar18;\n              iVar10 = (**(code **)(**(int **)(*param_1 + 8) + 0xe8))();\n            }\n            else {\n              local_30 = puVar18;\n              iVar10 = (*pcVar25)();\n            }\n            puVar9 = (uint *)*local_44;\n            if (iVar10 == 0) {\n              puVar9 = (uint *)(((((uint)puVar9 >> 0x10) << 0x18 | ((uint)puVar9 >> 0x18) << 0x10)\n                                >> 0x10) +\n                               (((uint)puVar9 & 0xff) << 8 | (uint)puVar9 >> 8 & 0xff) * 0x10000);\n            }\n            local_44 = local_44 + 1;\n            iVar10 = *param_1;\n            local_50._0_4_ = (uint *)0x0;\n            local_50._4_4_ = puVar9;\n            goto LAB_002e3708;\n          }\n          pcVar25 = *(code **)(**(int **)(*param_1 + 8) + 0xc);\n          if (pcVar25 == (code *)PTR_is_big_endian_004c2950) {\n            iVar8 = (**(code **)(**(int **)(*param_1 + 8) + 0xe8))();\n          }\n          else {\n            iVar8 = (*pcVar25)();\n          }\n          uVar6 = *(ushort *)local_44;\n          if (iVar8 == 0) {\n            uVar6 = CONCAT11(*(byte *)((int)local_44 + 1),*(byte *)local_44);\n          }\n          local_60._4_4_ = (uint *)(uint)uVar6;\n          local_44 = (uint *)((int)local_44 + 2);\n          local_60._0_4_ = (uint *)0x0;\n          goto LAB_002e355c;\n        }" { (if_statement "if (uVar19 != 5) {\n            if (uVar19 != 6) {\n              return 0;\n            }\n            pcVar25 = *(code **)(**(int **)(*param_1 + 8) + 0xc);\n            if (pcVar25 == (code *)PTR_is_big_endian_004c2950) {\n              local_30 = puVar18;\n              iVar10 = (**(code **)(**(int **)(*param_1 + 8) + 0xe8))();\n            }\n            else {\n              local_30 = puVar18;\n              iVar10 = (*pcVar25)();\n            }\n            puVar9 = (uint *)*local_44;\n            if (iVar10 == 0) {\n              puVar9 = (uint *)(((((uint)puVar9 >> 0x10) << 0x18 | ((uint)puVar9 >> 0x18) << 0x10)\n                                >> 0x10) +\n                               (((uint)puVar9 & 0xff) << 8 | (uint)puVar9 >> 8 & 0xff) * 0x10000);\n            }\n            local_44 = local_44 + 1;\n            iVar10 = *param_1;\n            local_50._0_4_ = (uint *)0x0;\n            local_50._4_4_ = puVar9;\n            goto LAB_002e3708;\n          }" if (parenthesized_expression "(uVar19 != 5)" ( (binary_expression "uVar19 != 5" identifier != number_literal) )) (compound_statement "{\n            if (uVar19 != 6) {\n              return 0;\n            }\n            pcVar25 = *(code **)(**(int **)(*param_1 + 8) + 0xc);\n            if (pcVar25 == (code *)PTR_is_big_endian_004c2950) {\n              local_30 = puVar18;\n              iVar10 = (**(code **)(**(int **)(*param_1 + 8) + 0xe8))();\n            }\n            else {\n              local_30 = puVar18;\n              iVar10 = (*pcVar25)();\n            }\n            puVar9 = (uint *)*local_44;\n            if (iVar10 == 0) {\n              puVar9 = (uint *)(((((uint)puVar9 >> 0x10) << 0x18 | ((uint)puVar9 >> 0x18) << 0x10)\n                                >> 0x10) +\n                               (((uint)puVar9 & 0xff) << 8 | (uint)puVar9 >> 8 & 0xff) * 0x10000);\n            }\n            local_44 = local_44 + 1;\n            iVar10 = *param_1;\n            local_50._0_4_ = (uint *)0x0;\n            local_50._4_4_ = puVar9;\n            goto LAB_002e3708;\n          }" { (if_statement "if (uVar19 != 6) {\n              return 0;\n            }" if (parenthesized_expression "(uVar19 != 6)" ( (binary_expression "uVar19 != 6" identifier != number_literal) )) (compound_statement "{\n              return 0;\n            }" { (return_statement "return 0;" return number_literal ;) })) (expression_statement "pcVar25 = *(code **)(**(int **)(*param_1 + 8) + 0xc);" (assignment_expression "pcVar25 = *(code **)(**(int **)(*param_1 + 8) + 0xc)" identifier = (pointer_expression "*(code **)(**(int **)(*param_1 + 8) + 0xc)" * (cast_expression "(code **)(**(int **)(*param_1 + 8) + 0xc)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(**(int **)(*param_1 + 8) + 0xc)" ( (binary_expression "**(int **)(*param_1 + 8) + 0xc" (pointer_expression "**(int **)(*param_1 + 8)" * (pointer_expression "*(int **)(*param_1 + 8)" * (cast_expression "(int **)(*param_1 + 8)" ( (type_descriptor "int **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(*param_1 + 8)" ( (binary_expression "*param_1 + 8" (pointer_expression "*param_1" * identifier) + number_literal) ))))) + number_literal) ))))) ;) (if_statement "if (pcVar25 == (code *)PTR_is_big_endian_004c2950) {\n              local_30 = puVar18;\n              iVar10 = (**(code **)(**(int **)(*param_1 + 8) + 0xe8))();\n            }\n            else {\n              local_30 = puVar18;\n              iVar10 = (*pcVar25)();\n            }" if (parenthesized_expression "(pcVar25 == (code *)PTR_is_big_endian_004c2950)" ( (binary_expression "pcVar25 == (code *)PTR_is_big_endian_004c2950" identifier == (cast_expression "(code *)PTR_is_big_endian_004c2950" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (compound_statement "{\n              local_30 = puVar18;\n              iVar10 = (**(code **)(**(int **)(*param_1 + 8) + 0xe8))();\n            }" { (expression_statement "local_30 = puVar18;" (assignment_expression "local_30 = puVar18" identifier = identifier) ;) (expression_statement "iVar10 = (**(code **)(**(int **)(*param_1 + 8) + 0xe8))();" (assignment_expression "iVar10 = (**(code **)(**(int **)(*param_1 + 8) + 0xe8))()" identifier = (call_expression "(**(code **)(**(int **)(*param_1 + 8) + 0xe8))()" (parenthesized_expression "(**(code **)(**(int **)(*param_1 + 8) + 0xe8))" ( (pointer_expression "**(code **)(**(int **)(*param_1 + 8) + 0xe8)" * (pointer_expression "*(code **)(**(int **)(*param_1 + 8) + 0xe8)" * (cast_expression "(code **)(**(int **)(*param_1 + 8) + 0xe8)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(**(int **)(*param_1 + 8) + 0xe8)" ( (binary_expression "**(int **)(*param_1 + 8) + 0xe8" (pointer_expression "**(int **)(*param_1 + 8)" * (pointer_expression "*(int **)(*param_1 + 8)" * (cast_expression "(int **)(*param_1 + 8)" ( (type_descriptor "int **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(*param_1 + 8)" ( (binary_expression "*param_1 + 8" (pointer_expression "*param_1" * identifier) + number_literal) ))))) + number_literal) ))))) )) (argument_list "()" ( )))) ;) }) (else_clause "else {\n              local_30 = puVar18;\n              iVar10 = (*pcVar25)();\n            }" else (compound_statement "{\n              local_30 = puVar18;\n              iVar10 = (*pcVar25)();\n            }" { (expression_statement "local_30 = puVar18;" (assignment_expression "local_30 = puVar18" identifier = identifier) ;) (expression_statement "iVar10 = (*pcVar25)();" (assignment_expression "iVar10 = (*pcVar25)()" identifier = (call_expression "(*pcVar25)()" (parenthesized_expression "(*pcVar25)" ( (pointer_expression "*pcVar25" * identifier) )) (argument_list "()" ( )))) ;) }))) (expression_statement "puVar9 = (uint *)*local_44;" (assignment_expression "puVar9 = (uint *)*local_44" identifier = (cast_expression "(uint *)*local_44" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (pointer_expression "*local_44" * identifier))) ;) (if_statement "if (iVar10 == 0) {\n              puVar9 = (uint *)(((((uint)puVar9 >> 0x10) << 0x18 | ((uint)puVar9 >> 0x18) << 0x10)\n                                >> 0x10) +\n                               (((uint)puVar9 & 0xff) << 8 | (uint)puVar9 >> 8 & 0xff) * 0x10000);\n            }" if (parenthesized_expression "(iVar10 == 0)" ( (binary_expression "iVar10 == 0" identifier == number_literal) )) (compound_statement "{\n              puVar9 = (uint *)(((((uint)puVar9 >> 0x10) << 0x18 | ((uint)puVar9 >> 0x18) << 0x10)\n                                >> 0x10) +\n                               (((uint)puVar9 & 0xff) << 8 | (uint)puVar9 >> 8 & 0xff) * 0x10000);\n            }" { (expression_statement "puVar9 = (uint *)(((((uint)puVar9 >> 0x10) << 0x18 | ((uint)puVar9 >> 0x18) << 0x10)\n                                >> 0x10) +\n                               (((uint)puVar9 & 0xff) << 8 | (uint)puVar9 >> 8 & 0xff) * 0x10000);" (assignment_expression "puVar9 = (uint *)(((((uint)puVar9 >> 0x10) << 0x18 | ((uint)puVar9 >> 0x18) << 0x10)\n                                >> 0x10) +\n                               (((uint)puVar9 & 0xff) << 8 | (uint)puVar9 >> 8 & 0xff) * 0x10000)" identifier = (cast_expression "(uint *)(((((uint)puVar9 >> 0x10) << 0x18 | ((uint)puVar9 >> 0x18) << 0x10)\n                                >> 0x10) +\n                               (((uint)puVar9 & 0xff) << 8 | (uint)puVar9 >> 8 & 0xff) * 0x10000)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(((((uint)puVar9 >> 0x10) << 0x18 | ((uint)puVar9 >> 0x18) << 0x10)\n                                >> 0x10) +\n                               (((uint)puVar9 & 0xff) << 8 | (uint)puVar9 >> 8 & 0xff) * 0x10000)" ( (binary_expression "((((uint)puVar9 >> 0x10) << 0x18 | ((uint)puVar9 >> 0x18) << 0x10)\n                                >> 0x10) +\n                               (((uint)puVar9 & 0xff) << 8 | (uint)puVar9 >> 8 & 0xff) * 0x10000" (parenthesized_expression "((((uint)puVar9 >> 0x10) << 0x18 | ((uint)puVar9 >> 0x18) << 0x10)\n                                >> 0x10)" ( (binary_expression "(((uint)puVar9 >> 0x10) << 0x18 | ((uint)puVar9 >> 0x18) << 0x10)\n                                >> 0x10" (parenthesized_expression "(((uint)puVar9 >> 0x10) << 0x18 | ((uint)puVar9 >> 0x18) << 0x10)" ( (binary_expression "((uint)puVar9 >> 0x10) << 0x18 | ((uint)puVar9 >> 0x18) << 0x10" (binary_expression "((uint)puVar9 >> 0x10) << 0x18" (parenthesized_expression "((uint)puVar9 >> 0x10)" ( (binary_expression "(uint)puVar9 >> 0x10" (cast_expression "(uint)puVar9" ( (type_descriptor "uint" type_identifier) ) identifier) >> number_literal) )) << number_literal) | (binary_expression "((uint)puVar9 >> 0x18) << 0x10" (parenthesized_expression "((uint)puVar9 >> 0x18)" ( (binary_expression "(uint)puVar9 >> 0x18" (cast_expression "(uint)puVar9" ( (type_descriptor "uint" type_identifier) ) identifier) >> number_literal) )) << number_literal)) )) >> number_literal) )) + (binary_expression "(((uint)puVar9 & 0xff) << 8 | (uint)puVar9 >> 8 & 0xff) * 0x10000" (parenthesized_expression "(((uint)puVar9 & 0xff) << 8 | (uint)puVar9 >> 8 & 0xff)" ( (binary_expression "((uint)puVar9 & 0xff) << 8 | (uint)puVar9 >> 8 & 0xff" (binary_expression "((uint)puVar9 & 0xff) << 8" (parenthesized_expression "((uint)puVar9 & 0xff)" ( (binary_expression "(uint)puVar9 & 0xff" (cast_expression "(uint)puVar9" ( (type_descriptor "uint" type_identifier) ) identifier) & number_literal) )) << number_literal) | (binary_expression "(uint)puVar9 >> 8 & 0xff" (binary_expression "(uint)puVar9 >> 8" (cast_expression "(uint)puVar9" ( (type_descriptor "uint" type_identifier) ) identifier) >> number_literal) & number_literal)) )) * number_literal)) )))) ;) })) (expression_statement "local_44 = local_44 + 1;" (assignment_expression "local_44 = local_44 + 1" identifier = (binary_expression "local_44 + 1" identifier + number_literal)) ;) (expression_statement "iVar10 = *param_1;" (assignment_expression "iVar10 = *param_1" identifier = (pointer_expression "*param_1" * identifier)) ;) (expression_statement "local_50._0_4_ = (uint *)0x0;" (assignment_expression "local_50._0_4_ = (uint *)0x0" (field_expression "local_50._0_4_" identifier . field_identifier) = (cast_expression "(uint *)0x0" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (expression_statement "local_50._4_4_ = puVar9;" (assignment_expression "local_50._4_4_ = puVar9" (field_expression "local_50._4_4_" identifier . field_identifier) = identifier) ;) (goto_statement "goto LAB_002e3708;" goto statement_identifier ;) })) (expression_statement "pcVar25 = *(code **)(**(int **)(*param_1 + 8) + 0xc);" (assignment_expression "pcVar25 = *(code **)(**(int **)(*param_1 + 8) + 0xc)" identifier = (pointer_expression "*(code **)(**(int **)(*param_1 + 8) + 0xc)" * (cast_expression "(code **)(**(int **)(*param_1 + 8) + 0xc)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(**(int **)(*param_1 + 8) + 0xc)" ( (binary_expression "**(int **)(*param_1 + 8) + 0xc" (pointer_expression "**(int **)(*param_1 + 8)" * (pointer_expression "*(int **)(*param_1 + 8)" * (cast_expression "(int **)(*param_1 + 8)" ( (type_descriptor "int **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(*param_1 + 8)" ( (binary_expression "*param_1 + 8" (pointer_expression "*param_1" * identifier) + number_literal) ))))) + number_literal) ))))) ;) (if_statement "if (pcVar25 == (code *)PTR_is_big_endian_004c2950) {\n            iVar8 = (**(code **)(**(int **)(*param_1 + 8) + 0xe8))();\n          }\n          else {\n            iVar8 = (*pcVar25)();\n          }" if (parenthesized_expression "(pcVar25 == (code *)PTR_is_big_endian_004c2950)" ( (binary_expression "pcVar25 == (code *)PTR_is_big_endian_004c2950" identifier == (cast_expression "(code *)PTR_is_big_endian_004c2950" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (compound_statement "{\n            iVar8 = (**(code **)(**(int **)(*param_1 + 8) + 0xe8))();\n          }" { (expression_statement "iVar8 = (**(code **)(**(int **)(*param_1 + 8) + 0xe8))();" (assignment_expression "iVar8 = (**(code **)(**(int **)(*param_1 + 8) + 0xe8))()" identifier = (call_expression "(**(code **)(**(int **)(*param_1 + 8) + 0xe8))()" (parenthesized_expression "(**(code **)(**(int **)(*param_1 + 8) + 0xe8))" ( (pointer_expression "**(code **)(**(int **)(*param_1 + 8) + 0xe8)" * (pointer_expression "*(code **)(**(int **)(*param_1 + 8) + 0xe8)" * (cast_expression "(code **)(**(int **)(*param_1 + 8) + 0xe8)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(**(int **)(*param_1 + 8) + 0xe8)" ( (binary_expression "**(int **)(*param_1 + 8) + 0xe8" (pointer_expression "**(int **)(*param_1 + 8)" * (pointer_expression "*(int **)(*param_1 + 8)" * (cast_expression "(int **)(*param_1 + 8)" ( (type_descriptor "int **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(*param_1 + 8)" ( (binary_expression "*param_1 + 8" (pointer_expression "*param_1" * identifier) + number_literal) ))))) + number_literal) ))))) )) (argument_list "()" ( )))) ;) }) (else_clause "else {\n            iVar8 = (*pcVar25)();\n          }" else (compound_statement "{\n            iVar8 = (*pcVar25)();\n          }" { (expression_statement "iVar8 = (*pcVar25)();" (assignment_expression "iVar8 = (*pcVar25)()" identifier = (call_expression "(*pcVar25)()" (parenthesized_expression "(*pcVar25)" ( (pointer_expression "*pcVar25" * identifier) )) (argument_list "()" ( )))) ;) }))) (expression_statement "uVar6 = *(ushort *)local_44;" (assignment_expression "uVar6 = *(ushort *)local_44" identifier = (pointer_expression "*(ushort *)local_44" * (cast_expression "(ushort *)local_44" ( (type_descriptor "ushort *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier))) ;) (if_statement "if (iVar8 == 0) {\n            uVar6 = CONCAT11(*(byte *)((int)local_44 + 1),*(byte *)local_44);\n          }" if (parenthesized_expression "(iVar8 == 0)" ( (binary_expression "iVar8 == 0" identifier == number_literal) )) (compound_statement "{\n            uVar6 = CONCAT11(*(byte *)((int)local_44 + 1),*(byte *)local_44);\n          }" { (expression_statement "uVar6 = CONCAT11(*(byte *)((int)local_44 + 1),*(byte *)local_44);" (assignment_expression "uVar6 = CONCAT11(*(byte *)((int)local_44 + 1),*(byte *)local_44)" identifier = (call_expression "CONCAT11(*(byte *)((int)local_44 + 1),*(byte *)local_44)" identifier (argument_list "(*(byte *)((int)local_44 + 1),*(byte *)local_44)" ( (pointer_expression "*(byte *)((int)local_44 + 1)" * (cast_expression "(byte *)((int)local_44 + 1)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)local_44 + 1)" ( (binary_expression "(int)local_44 + 1" (cast_expression "(int)local_44" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) , (pointer_expression "*(byte *)local_44" * (cast_expression "(byte *)local_44" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )))) ;) })) (expression_statement "local_60._4_4_ = (uint *)(uint)uVar6;" (assignment_expression "local_60._4_4_ = (uint *)(uint)uVar6" (field_expression "local_60._4_4_" identifier . field_identifier) = (cast_expression "(uint *)(uint)uVar6" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (cast_expression "(uint)uVar6" ( (type_descriptor "uint" type_identifier) ) identifier))) ;) (expression_statement "local_44 = (uint *)((int)local_44 + 2);" (assignment_expression "local_44 = (uint *)((int)local_44 + 2)" identifier = (cast_expression "(uint *)((int)local_44 + 2)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)local_44 + 2)" ( (binary_expression "(int)local_44 + 2" (cast_expression "(int)local_44" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) ;) (expression_statement "local_60._0_4_ = (uint *)0x0;" (assignment_expression "local_60._0_4_ = (uint *)0x0" (field_expression "local_60._0_4_" identifier . field_identifier) = (cast_expression "(uint *)0x0" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (goto_statement "goto LAB_002e355c;" goto statement_identifier ;) })) (if_statement "if (uVar19 != 1) {\n          if (uVar19 != 3) {\n            return 0;\n          }\n          pcVar25 = *(code **)(**(int **)(*param_1 + 8) + 0xc);\n          if (pcVar25 == (code *)PTR_is_big_endian_004c2950) {\n            iVar8 = (**(code **)(**(int **)(*param_1 + 8) + 0xe8))();\n          }\n          else {\n            iVar8 = (*pcVar25)();\n          }\n          uVar6 = *(ushort *)local_44;\n          if (iVar8 == 0) {\n            uVar6 = CONCAT11(*(byte *)((int)local_44 + 1),*(byte *)local_44);\n          }\n          local_58 = (uint)uVar6;\n          local_60._0_4_ = (uint *)((int)local_44 + 2);\n          local_44 = (uint *)((int)local_60._0_4_ + local_58);\n          goto LAB_002e355c;\n        }" if (parenthesized_expression "(uVar19 != 1)" ( (binary_expression "uVar19 != 1" identifier != number_literal) )) (compound_statement "{\n          if (uVar19 != 3) {\n            return 0;\n          }\n          pcVar25 = *(code **)(**(int **)(*param_1 + 8) + 0xc);\n          if (pcVar25 == (code *)PTR_is_big_endian_004c2950) {\n            iVar8 = (**(code **)(**(int **)(*param_1 + 8) + 0xe8))();\n          }\n          else {\n            iVar8 = (*pcVar25)();\n          }\n          uVar6 = *(ushort *)local_44;\n          if (iVar8 == 0) {\n            uVar6 = CONCAT11(*(byte *)((int)local_44 + 1),*(byte *)local_44);\n          }\n          local_58 = (uint)uVar6;\n          local_60._0_4_ = (uint *)((int)local_44 + 2);\n          local_44 = (uint *)((int)local_60._0_4_ + local_58);\n          goto LAB_002e355c;\n        }" { (if_statement "if (uVar19 != 3) {\n            return 0;\n          }" if (parenthesized_expression "(uVar19 != 3)" ( (binary_expression "uVar19 != 3" identifier != number_literal) )) (compound_statement "{\n            return 0;\n          }" { (return_statement "return 0;" return number_literal ;) })) (expression_statement "pcVar25 = *(code **)(**(int **)(*param_1 + 8) + 0xc);" (assignment_expression "pcVar25 = *(code **)(**(int **)(*param_1 + 8) + 0xc)" identifier = (pointer_expression "*(code **)(**(int **)(*param_1 + 8) + 0xc)" * (cast_expression "(code **)(**(int **)(*param_1 + 8) + 0xc)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(**(int **)(*param_1 + 8) + 0xc)" ( (binary_expression "**(int **)(*param_1 + 8) + 0xc" (pointer_expression "**(int **)(*param_1 + 8)" * (pointer_expression "*(int **)(*param_1 + 8)" * (cast_expression "(int **)(*param_1 + 8)" ( (type_descriptor "int **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(*param_1 + 8)" ( (binary_expression "*param_1 + 8" (pointer_expression "*param_1" * identifier) + number_literal) ))))) + number_literal) ))))) ;) (if_statement "if (pcVar25 == (code *)PTR_is_big_endian_004c2950) {\n            iVar8 = (**(code **)(**(int **)(*param_1 + 8) + 0xe8))();\n          }\n          else {\n            iVar8 = (*pcVar25)();\n          }" if (parenthesized_expression "(pcVar25 == (code *)PTR_is_big_endian_004c2950)" ( (binary_expression "pcVar25 == (code *)PTR_is_big_endian_004c2950" identifier == (cast_expression "(code *)PTR_is_big_endian_004c2950" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (compound_statement "{\n            iVar8 = (**(code **)(**(int **)(*param_1 + 8) + 0xe8))();\n          }" { (expression_statement "iVar8 = (**(code **)(**(int **)(*param_1 + 8) + 0xe8))();" (assignment_expression "iVar8 = (**(code **)(**(int **)(*param_1 + 8) + 0xe8))()" identifier = (call_expression "(**(code **)(**(int **)(*param_1 + 8) + 0xe8))()" (parenthesized_expression "(**(code **)(**(int **)(*param_1 + 8) + 0xe8))" ( (pointer_expression "**(code **)(**(int **)(*param_1 + 8) + 0xe8)" * (pointer_expression "*(code **)(**(int **)(*param_1 + 8) + 0xe8)" * (cast_expression "(code **)(**(int **)(*param_1 + 8) + 0xe8)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(**(int **)(*param_1 + 8) + 0xe8)" ( (binary_expression "**(int **)(*param_1 + 8) + 0xe8" (pointer_expression "**(int **)(*param_1 + 8)" * (pointer_expression "*(int **)(*param_1 + 8)" * (cast_expression "(int **)(*param_1 + 8)" ( (type_descriptor "int **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(*param_1 + 8)" ( (binary_expression "*param_1 + 8" (pointer_expression "*param_1" * identifier) + number_literal) ))))) + number_literal) ))))) )) (argument_list "()" ( )))) ;) }) (else_clause "else {\n            iVar8 = (*pcVar25)();\n          }" else (compound_statement "{\n            iVar8 = (*pcVar25)();\n          }" { (expression_statement "iVar8 = (*pcVar25)();" (assignment_expression "iVar8 = (*pcVar25)()" identifier = (call_expression "(*pcVar25)()" (parenthesized_expression "(*pcVar25)" ( (pointer_expression "*pcVar25" * identifier) )) (argument_list "()" ( )))) ;) }))) (expression_statement "uVar6 = *(ushort *)local_44;" (assignment_expression "uVar6 = *(ushort *)local_44" identifier = (pointer_expression "*(ushort *)local_44" * (cast_expression "(ushort *)local_44" ( (type_descriptor "ushort *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier))) ;) (if_statement "if (iVar8 == 0) {\n            uVar6 = CONCAT11(*(byte *)((int)local_44 + 1),*(byte *)local_44);\n          }" if (parenthesized_expression "(iVar8 == 0)" ( (binary_expression "iVar8 == 0" identifier == number_literal) )) (compound_statement "{\n            uVar6 = CONCAT11(*(byte *)((int)local_44 + 1),*(byte *)local_44);\n          }" { (expression_statement "uVar6 = CONCAT11(*(byte *)((int)local_44 + 1),*(byte *)local_44);" (assignment_expression "uVar6 = CONCAT11(*(byte *)((int)local_44 + 1),*(byte *)local_44)" identifier = (call_expression "CONCAT11(*(byte *)((int)local_44 + 1),*(byte *)local_44)" identifier (argument_list "(*(byte *)((int)local_44 + 1),*(byte *)local_44)" ( (pointer_expression "*(byte *)((int)local_44 + 1)" * (cast_expression "(byte *)((int)local_44 + 1)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)local_44 + 1)" ( (binary_expression "(int)local_44 + 1" (cast_expression "(int)local_44" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) , (pointer_expression "*(byte *)local_44" * (cast_expression "(byte *)local_44" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )))) ;) })) (expression_statement "local_58 = (uint)uVar6;" (assignment_expression "local_58 = (uint)uVar6" identifier = (cast_expression "(uint)uVar6" ( (type_descriptor "uint" type_identifier) ) identifier)) ;) (expression_statement "local_60._0_4_ = (uint *)((int)local_44 + 2);" (assignment_expression "local_60._0_4_ = (uint *)((int)local_44 + 2)" (field_expression "local_60._0_4_" identifier . field_identifier) = (cast_expression "(uint *)((int)local_44 + 2)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)local_44 + 2)" ( (binary_expression "(int)local_44 + 2" (cast_expression "(int)local_44" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) ;) (expression_statement "local_44 = (uint *)((int)local_60._0_4_ + local_58);" (assignment_expression "local_44 = (uint *)((int)local_60._0_4_ + local_58)" identifier = (cast_expression "(uint *)((int)local_60._0_4_ + local_58)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)local_60._0_4_ + local_58)" ( (binary_expression "(int)local_60._0_4_ + local_58" (cast_expression "(int)local_60._0_4_" ( (type_descriptor "int" primitive_type) ) (field_expression "local_60._0_4_" identifier . field_identifier)) + identifier) )))) ;) (goto_statement "goto LAB_002e355c;" goto statement_identifier ;) })) (expression_statement "iVar8 = *param_1;" (assignment_expression "iVar8 = *param_1" identifier = (pointer_expression "*param_1" * identifier)) ;) (if_statement "if (*(int *)(iVar8 + 0x4c) == 4) {\n          pcVar25 = *(code **)(**(int **)(iVar8 + 8) + 0xc);\n          if (pcVar25 == (code *)PTR_is_big_endian_004c2950) {\n            local_30 = puVar18;\n            iVar8 = (**(code **)(**(int **)(iVar8 + 8) + 0xe8))();\n          }\n          else {\n            local_30 = puVar18;\n            iVar8 = (*pcVar25)();\n          }\n          uVar15 = *local_44;\n          if (iVar8 == 0) {\n            uVar15 = (((uVar15 >> 0x10) << 0x18 | (uVar15 >> 0x18) << 0x10) >> 0x10) +\n                     ((uVar15 & 0xff) << 8 | uVar15 >> 8 & 0xff) * 0x10000;\n          }\n          local_44 = local_44 + 1;\n          uVar26 = (ulonglong)uVar15;\n        }\n        else {\n          local_30 = puVar18;\n          uVar26 = (*local_34)(iVar8,&local_44);\n        }" if (parenthesized_expression "(*(int *)(iVar8 + 0x4c) == 4)" ( (binary_expression "*(int *)(iVar8 + 0x4c) == 4" (pointer_expression "*(int *)(iVar8 + 0x4c)" * (cast_expression "(int *)(iVar8 + 0x4c)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar8 + 0x4c)" ( (binary_expression "iVar8 + 0x4c" identifier + number_literal) )))) == number_literal) )) (compound_statement "{\n          pcVar25 = *(code **)(**(int **)(iVar8 + 8) + 0xc);\n          if (pcVar25 == (code *)PTR_is_big_endian_004c2950) {\n            local_30 = puVar18;\n            iVar8 = (**(code **)(**(int **)(iVar8 + 8) + 0xe8))();\n          }\n          else {\n            local_30 = puVar18;\n            iVar8 = (*pcVar25)();\n          }\n          uVar15 = *local_44;\n          if (iVar8 == 0) {\n            uVar15 = (((uVar15 >> 0x10) << 0x18 | (uVar15 >> 0x18) << 0x10) >> 0x10) +\n                     ((uVar15 & 0xff) << 8 | uVar15 >> 8 & 0xff) * 0x10000;\n          }\n          local_44 = local_44 + 1;\n          uVar26 = (ulonglong)uVar15;\n        }" { (expression_statement "pcVar25 = *(code **)(**(int **)(iVar8 + 8) + 0xc);" (assignment_expression "pcVar25 = *(code **)(**(int **)(iVar8 + 8) + 0xc)" identifier = (pointer_expression "*(code **)(**(int **)(iVar8 + 8) + 0xc)" * (cast_expression "(code **)(**(int **)(iVar8 + 8) + 0xc)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(**(int **)(iVar8 + 8) + 0xc)" ( (binary_expression "**(int **)(iVar8 + 8) + 0xc" (pointer_expression "**(int **)(iVar8 + 8)" * (pointer_expression "*(int **)(iVar8 + 8)" * (cast_expression "(int **)(iVar8 + 8)" ( (type_descriptor "int **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(iVar8 + 8)" ( (binary_expression "iVar8 + 8" identifier + number_literal) ))))) + number_literal) ))))) ;) (if_statement "if (pcVar25 == (code *)PTR_is_big_endian_004c2950) {\n            local_30 = puVar18;\n            iVar8 = (**(code **)(**(int **)(iVar8 + 8) + 0xe8))();\n          }\n          else {\n            local_30 = puVar18;\n            iVar8 = (*pcVar25)();\n          }" if (parenthesized_expression "(pcVar25 == (code *)PTR_is_big_endian_004c2950)" ( (binary_expression "pcVar25 == (code *)PTR_is_big_endian_004c2950" identifier == (cast_expression "(code *)PTR_is_big_endian_004c2950" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (compound_statement "{\n            local_30 = puVar18;\n            iVar8 = (**(code **)(**(int **)(iVar8 + 8) + 0xe8))();\n          }" { (expression_statement "local_30 = puVar18;" (assignment_expression "local_30 = puVar18" identifier = identifier) ;) (expression_statement "iVar8 = (**(code **)(**(int **)(iVar8 + 8) + 0xe8))();" (assignment_expression "iVar8 = (**(code **)(**(int **)(iVar8 + 8) + 0xe8))()" identifier = (call_expression "(**(code **)(**(int **)(iVar8 + 8) + 0xe8))()" (parenthesized_expression "(**(code **)(**(int **)(iVar8 + 8) + 0xe8))" ( (pointer_expression "**(code **)(**(int **)(iVar8 + 8) + 0xe8)" * (pointer_expression "*(code **)(**(int **)(iVar8 + 8) + 0xe8)" * (cast_expression "(code **)(**(int **)(iVar8 + 8) + 0xe8)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(**(int **)(iVar8 + 8) + 0xe8)" ( (binary_expression "**(int **)(iVar8 + 8) + 0xe8" (pointer_expression "**(int **)(iVar8 + 8)" * (pointer_expression "*(int **)(iVar8 + 8)" * (cast_expression "(int **)(iVar8 + 8)" ( (type_descriptor "int **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(iVar8 + 8)" ( (binary_expression "iVar8 + 8" identifier + number_literal) ))))) + number_literal) ))))) )) (argument_list "()" ( )))) ;) }) (else_clause "else {\n            local_30 = puVar18;\n            iVar8 = (*pcVar25)();\n          }" else (compound_statement "{\n            local_30 = puVar18;\n            iVar8 = (*pcVar25)();\n          }" { (expression_statement "local_30 = puVar18;" (assignment_expression "local_30 = puVar18" identifier = identifier) ;) (expression_statement "iVar8 = (*pcVar25)();" (assignment_expression "iVar8 = (*pcVar25)()" identifier = (call_expression "(*pcVar25)()" (parenthesized_expression "(*pcVar25)" ( (pointer_expression "*pcVar25" * identifier) )) (argument_list "()" ( )))) ;) }))) (expression_statement "uVar15 = *local_44;" (assignment_expression "uVar15 = *local_44" identifier = (pointer_expression "*local_44" * identifier)) ;) (if_statement "if (iVar8 == 0) {\n            uVar15 = (((uVar15 >> 0x10) << 0x18 | (uVar15 >> 0x18) << 0x10) >> 0x10) +\n                     ((uVar15 & 0xff) << 8 | uVar15 >> 8 & 0xff) * 0x10000;\n          }" if (parenthesized_expression "(iVar8 == 0)" ( (binary_expression "iVar8 == 0" identifier == number_literal) )) (compound_statement "{\n            uVar15 = (((uVar15 >> 0x10) << 0x18 | (uVar15 >> 0x18) << 0x10) >> 0x10) +\n                     ((uVar15 & 0xff) << 8 | uVar15 >> 8 & 0xff) * 0x10000;\n          }" { (expression_statement "uVar15 = (((uVar15 >> 0x10) << 0x18 | (uVar15 >> 0x18) << 0x10) >> 0x10) +\n                     ((uVar15 & 0xff) << 8 | uVar15 >> 8 & 0xff) * 0x10000;" (assignment_expression "uVar15 = (((uVar15 >> 0x10) << 0x18 | (uVar15 >> 0x18) << 0x10) >> 0x10) +\n                     ((uVar15 & 0xff) << 8 | uVar15 >> 8 & 0xff) * 0x10000" identifier = (binary_expression "(((uVar15 >> 0x10) << 0x18 | (uVar15 >> 0x18) << 0x10) >> 0x10) +\n                     ((uVar15 & 0xff) << 8 | uVar15 >> 8 & 0xff) * 0x10000" (parenthesized_expression "(((uVar15 >> 0x10) << 0x18 | (uVar15 >> 0x18) << 0x10) >> 0x10)" ( (binary_expression "((uVar15 >> 0x10) << 0x18 | (uVar15 >> 0x18) << 0x10) >> 0x10" (parenthesized_expression "((uVar15 >> 0x10) << 0x18 | (uVar15 >> 0x18) << 0x10)" ( (binary_expression "(uVar15 >> 0x10) << 0x18 | (uVar15 >> 0x18) << 0x10" (binary_expression "(uVar15 >> 0x10) << 0x18" (parenthesized_expression "(uVar15 >> 0x10)" ( (binary_expression "uVar15 >> 0x10" identifier >> number_literal) )) << number_literal) | (binary_expression "(uVar15 >> 0x18) << 0x10" (parenthesized_expression "(uVar15 >> 0x18)" ( (binary_expression "uVar15 >> 0x18" identifier >> number_literal) )) << number_literal)) )) >> number_literal) )) + (binary_expression "((uVar15 & 0xff) << 8 | uVar15 >> 8 & 0xff) * 0x10000" (parenthesized_expression "((uVar15 & 0xff) << 8 | uVar15 >> 8 & 0xff)" ( (binary_expression "(uVar15 & 0xff) << 8 | uVar15 >> 8 & 0xff" (binary_expression "(uVar15 & 0xff) << 8" (parenthesized_expression "(uVar15 & 0xff)" ( (binary_expression "uVar15 & 0xff" identifier & number_literal) )) << number_literal) | (binary_expression "uVar15 >> 8 & 0xff" (binary_expression "uVar15 >> 8" identifier >> number_literal) & number_literal)) )) * number_literal))) ;) })) (expression_statement "local_44 = local_44 + 1;" (assignment_expression "local_44 = local_44 + 1" identifier = (binary_expression "local_44 + 1" identifier + number_literal)) ;) (expression_statement "uVar26 = (ulonglong)uVar15;" (assignment_expression "uVar26 = (ulonglong)uVar15" identifier = (cast_expression "(ulonglong)uVar15" ( (type_descriptor "ulonglong" type_identifier) ) identifier)) ;) }) (else_clause "else {\n          local_30 = puVar18;\n          uVar26 = (*local_34)(iVar8,&local_44);\n        }" else (compound_statement "{\n          local_30 = puVar18;\n          uVar26 = (*local_34)(iVar8,&local_44);\n        }" { (expression_statement "local_30 = puVar18;" (assignment_expression "local_30 = puVar18" identifier = identifier) ;) (expression_statement "uVar26 = (*local_34)(iVar8,&local_44);" (assignment_expression "uVar26 = (*local_34)(iVar8,&local_44)" identifier = (call_expression "(*local_34)(iVar8,&local_44)" (parenthesized_expression "(*local_34)" ( (pointer_expression "*local_34" * identifier) )) (argument_list "(iVar8,&local_44)" ( identifier , (pointer_expression "&local_44" & identifier) )))) ;) }))) (expression_statement "local_50 = uVar26;" (assignment_expression "local_50 = uVar26" identifier = identifier) ;) (expression_statement "local_58 = (*local_3c)(*param_1);" (assignment_expression "local_58 = (*local_3c)(*param_1)" identifier = (call_expression "(*local_3c)(*param_1)" (parenthesized_expression "(*local_3c)" ( (pointer_expression "*local_3c" * identifier) )) (argument_list "(*param_1)" ( (pointer_expression "*param_1" * identifier) )))) ;) (expression_statement "uVar26 = local_50;" (assignment_expression "uVar26 = local_50" identifier = identifier) ;) (if_statement "if (uVar22 == 0x31) goto LAB_002e30bc;" if (parenthesized_expression "(uVar22 == 0x31)" ( (binary_expression "uVar22 == 0x31" identifier == number_literal) )) (goto_statement "goto LAB_002e30bc;" goto statement_identifier ;)) (if_statement "if (uVar22 < 0x32) {\n          if (uVar22 != 1) goto joined_r0x002e3124;\n          goto LAB_002e39b4;\n        }" if (parenthesized_expression "(uVar22 < 0x32)" ( (binary_expression "uVar22 < 0x32" identifier < number_literal) )) (compound_statement "{\n          if (uVar22 != 1) goto joined_r0x002e3124;\n          goto LAB_002e39b4;\n        }" { (if_statement "if (uVar22 != 1) goto joined_r0x002e3124;" if (parenthesized_expression "(uVar22 != 1)" ( (binary_expression "uVar22 != 1" identifier != number_literal) )) (goto_statement "goto joined_r0x002e3124;" goto statement_identifier ;)) (goto_statement "goto LAB_002e39b4;" goto statement_identifier ;) })) (expression_statement "uVar7 = local_50;" (assignment_expression "uVar7 = local_50" identifier = identifier) ;) (if_statement "if (uVar22 == 0x6e) goto LAB_002e313c;" if (parenthesized_expression "(uVar22 == 0x6e)" ( (binary_expression "uVar22 == 0x6e" identifier == number_literal) )) (goto_statement "goto LAB_002e313c;" goto statement_identifier ;)) (if_statement "if (uVar22 != 0x2007) goto LAB_002e339c;" if (parenthesized_expression "(uVar22 != 0x2007)" ( (binary_expression "uVar22 != 0x2007" identifier != number_literal) )) (goto_statement "goto LAB_002e339c;" goto statement_identifier ;)) (expression_statement "puVar9 = (uint *)param_1[0xc];" (assignment_expression "puVar9 = (uint *)param_1[0xc]" identifier = (cast_expression "(uint *)param_1[0xc]" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (subscript_expression "param_1[0xc]" identifier [ number_literal ]))) ;) }))) (while_statement "while( true ) {\n        if (puVar9 == (uint *)param_1[0xd]) goto LAB_002e2f98;\nLAB_002e314c:\n        local_60._0_4_ = (uint *)(uVar26 >> 0x20);\n        local_60._4_4_ = (uint *)uVar26;\n        iVar17 = iVar17 + 8;\n        puVar9[1] = local_64;\n        puVar9[2] = (uint)local_60._0_4_;\n        *puVar9 = local_68;\n        puVar9[3] = (uint)local_60._4_4_;\n        puVar9[4] = local_58;\n        puVar9[5] = local_54;\n        param_1[0xc] = (int)(puVar9 + 6);\n        iVar8 = param_1[10];\n        local_60 = uVar26;\n        if (iVar17 == iVar21) goto LAB_002e2fb8;\n        puVar9 = (uint *)(*(int *)(iVar8 + 8) + iVar17);\n        uVar19 = puVar9[1];\n        uVar22 = *puVar9;\n        if (uVar19 != 0x16) goto LAB_002e2dd0;\nLAB_002e31a8:\n        uVar19 = (uint)*(byte *)local_44;\n        puVar9 = (uint *)((int)local_44 + 1);\n        if ((char)*(byte *)local_44 < '\0') {\n          local_60 = uVar26;\n          (*(code *)PTR_read_unsigned_LEB_128_x_004c2980)(puVar9,&local_48,uVar19);\n          puVar9 = (uint *)((int)local_44 + local_48);\n          uVar19 = extraout_v1;\n          uVar26 = local_60;\n        }\n        else {\n          local_48 = 1;\n        }\n        puVar11 = (uint *)((int)puVar9 - iVar20);\n        puVar18 = (uint *)((int)puVar11 + param_1[3]);\n        iVar8 = (uint)(puVar18 < puVar11) + ((int)puVar11 >> 0x1f) + param_1[2];\n        local_64 = uVar19;\n        local_44 = puVar9;\n        if (uVar19 != 0xe) break;\nLAB_002e31fc:\n        local_58 = 0;\n        iVar8 = *param_1;\n        local_68 = uVar22;\n        local_30 = puVar18;\n        local_60 = uVar26;\n        if (*(int *)(iVar8 + 0x48) == 4) {\n          pcVar25 = *(code **)(**(int **)(iVar8 + 8) + 0xc);\n          if (pcVar25 == (code *)PTR_is_big_endian_004c2950) {\n            iVar8 = (**(code **)(**(int **)(iVar8 + 8) + 0xe8))();\n          }\n          else {\n            iVar8 = (*pcVar25)();\n          }\n          uVar19 = *local_44;\n          if (iVar8 == 0) {\n            uVar19 = (((uVar19 >> 0x10) << 0x18 | (uVar19 >> 0x18) << 0x10) >> 0x10) +\n                     ((uVar19 & 0xff) << 8 | uVar19 >> 8 & 0xff) * 0x10000;\n          }\n          local_44 = local_44 + 1;\n          uVar26 = (ulonglong)uVar19;\n        }\n        else {\n          uVar26 = (*local_34)(iVar8,&local_44);\n        }\n        local_50 = uVar26;\n        local_58 = (*local_3c)(*param_1);\n        uVar7 = local_50;\n        if (uVar22 != 0x31) {\n          uVar26 = local_50;\n          if (uVar22 < 0x32) {\n            if ((uVar22 != 1) && (uVar22 == 3)) {\nLAB_002e3284:\n              param_1[0x16] = local_58;\n              *(ulonglong *)(param_1 + 0x10) = uVar26;\n              uVar7 = uVar26;\n            }\n          }\n          else {\n            if (uVar22 == 0x6e) {\nLAB_002e387c:\n              param_1[0x16] = local_58;\n            }\n            else {\n              if (uVar22 != 0x2007) goto LAB_002e313c;\n              param_1[0x16] = local_58;\n            }\n            *(ulonglong *)(param_1 + 0x14) = uVar26;\n            uVar7 = uVar26;\n          }\n        }\nLAB_002e313c:\n        puVar9 = (uint *)param_1[0xc];\n        uVar26 = uVar7;\n      }" while (parenthesized_expression "( true )" ( true )) (compound_statement "{\n        if (puVar9 == (uint *)param_1[0xd]) goto LAB_002e2f98;\nLAB_002e314c:\n        local_60._0_4_ = (uint *)(uVar26 >> 0x20);\n        local_60._4_4_ = (uint *)uVar26;\n        iVar17 = iVar17 + 8;\n        puVar9[1] = local_64;\n        puVar9[2] = (uint)local_60._0_4_;\n        *puVar9 = local_68;\n        puVar9[3] = (uint)local_60._4_4_;\n        puVar9[4] = local_58;\n        puVar9[5] = local_54;\n        param_1[0xc] = (int)(puVar9 + 6);\n        iVar8 = param_1[10];\n        local_60 = uVar26;\n        if (iVar17 == iVar21) goto LAB_002e2fb8;\n        puVar9 = (uint *)(*(int *)(iVar8 + 8) + iVar17);\n        uVar19 = puVar9[1];\n        uVar22 = *puVar9;\n        if (uVar19 != 0x16) goto LAB_002e2dd0;\nLAB_002e31a8:\n        uVar19 = (uint)*(byte *)local_44;\n        puVar9 = (uint *)((int)local_44 + 1);\n        if ((char)*(byte *)local_44 < '\0') {\n          local_60 = uVar26;\n          (*(code *)PTR_read_unsigned_LEB_128_x_004c2980)(puVar9,&local_48,uVar19);\n          puVar9 = (uint *)((int)local_44 + local_48);\n          uVar19 = extraout_v1;\n          uVar26 = local_60;\n        }\n        else {\n          local_48 = 1;\n        }\n        puVar11 = (uint *)((int)puVar9 - iVar20);\n        puVar18 = (uint *)((int)puVar11 + param_1[3]);\n        iVar8 = (uint)(puVar18 < puVar11) + ((int)puVar11 >> 0x1f) + param_1[2];\n        local_64 = uVar19;\n        local_44 = puVar9;\n        if (uVar19 != 0xe) break;\nLAB_002e31fc:\n        local_58 = 0;\n        iVar8 = *param_1;\n        local_68 = uVar22;\n        local_30 = puVar18;\n        local_60 = uVar26;\n        if (*(int *)(iVar8 + 0x48) == 4) {\n          pcVar25 = *(code **)(**(int **)(iVar8 + 8) + 0xc);\n          if (pcVar25 == (code *)PTR_is_big_endian_004c2950) {\n            iVar8 = (**(code **)(**(int **)(iVar8 + 8) + 0xe8))();\n          }\n          else {\n            iVar8 = (*pcVar25)();\n          }\n          uVar19 = *local_44;\n          if (iVar8 == 0) {\n            uVar19 = (((uVar19 >> 0x10) << 0x18 | (uVar19 >> 0x18) << 0x10) >> 0x10) +\n                     ((uVar19 & 0xff) << 8 | uVar19 >> 8 & 0xff) * 0x10000;\n          }\n          local_44 = local_44 + 1;\n          uVar26 = (ulonglong)uVar19;\n        }\n        else {\n          uVar26 = (*local_34)(iVar8,&local_44);\n        }\n        local_50 = uVar26;\n        local_58 = (*local_3c)(*param_1);\n        uVar7 = local_50;\n        if (uVar22 != 0x31) {\n          uVar26 = local_50;\n          if (uVar22 < 0x32) {\n            if ((uVar22 != 1) && (uVar22 == 3)) {\nLAB_002e3284:\n              param_1[0x16] = local_58;\n              *(ulonglong *)(param_1 + 0x10) = uVar26;\n              uVar7 = uVar26;\n            }\n          }\n          else {\n            if (uVar22 == 0x6e) {\nLAB_002e387c:\n              param_1[0x16] = local_58;\n            }\n            else {\n              if (uVar22 != 0x2007) goto LAB_002e313c;\n              param_1[0x16] = local_58;\n            }\n            *(ulonglong *)(param_1 + 0x14) = uVar26;\n            uVar7 = uVar26;\n          }\n        }\nLAB_002e313c:\n        puVar9 = (uint *)param_1[0xc];\n        uVar26 = uVar7;\n      }" { (if_statement "if (puVar9 == (uint *)param_1[0xd]) goto LAB_002e2f98;" if (parenthesized_expression "(puVar9 == (uint *)param_1[0xd])" ( (binary_expression "puVar9 == (uint *)param_1[0xd]" identifier == (cast_expression "(uint *)param_1[0xd]" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (subscript_expression "param_1[0xd]" identifier [ number_literal ]))) )) (goto_statement "goto LAB_002e2f98;" goto statement_identifier ;)) (labeled_statement "LAB_002e314c:\n        local_60._0_4_ = (uint *)(uVar26 >> 0x20);" statement_identifier : (expression_statement "local_60._0_4_ = (uint *)(uVar26 >> 0x20);" (assignment_expression "local_60._0_4_ = (uint *)(uVar26 >> 0x20)" (field_expression "local_60._0_4_" identifier . field_identifier) = (cast_expression "(uint *)(uVar26 >> 0x20)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(uVar26 >> 0x20)" ( (binary_expression "uVar26 >> 0x20" identifier >> number_literal) )))) ;)) (expression_statement "local_60._4_4_ = (uint *)uVar26;" (assignment_expression "local_60._4_4_ = (uint *)uVar26" (field_expression "local_60._4_4_" identifier . field_identifier) = (cast_expression "(uint *)uVar26" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) ;) (expression_statement "iVar17 = iVar17 + 8;" (assignment_expression "iVar17 = iVar17 + 8" identifier = (binary_expression "iVar17 + 8" identifier + number_literal)) ;) (expression_statement "puVar9[1] = local_64;" (assignment_expression "puVar9[1] = local_64" (subscript_expression "puVar9[1]" identifier [ number_literal ]) = identifier) ;) (expression_statement "puVar9[2] = (uint)local_60._0_4_;" (assignment_expression "puVar9[2] = (uint)local_60._0_4_" (subscript_expression "puVar9[2]" identifier [ number_literal ]) = (cast_expression "(uint)local_60._0_4_" ( (type_descriptor "uint" type_identifier) ) (field_expression "local_60._0_4_" identifier . field_identifier))) ;) (expression_statement "*puVar9 = local_68;" (assignment_expression "*puVar9 = local_68" (pointer_expression "*puVar9" * identifier) = identifier) ;) (expression_statement "puVar9[3] = (uint)local_60._4_4_;" (assignment_expression "puVar9[3] = (uint)local_60._4_4_" (subscript_expression "puVar9[3]" identifier [ number_literal ]) = (cast_expression "(uint)local_60._4_4_" ( (type_descriptor "uint" type_identifier) ) (field_expression "local_60._4_4_" identifier . field_identifier))) ;) (expression_statement "puVar9[4] = local_58;" (assignment_expression "puVar9[4] = local_58" (subscript_expression "puVar9[4]" identifier [ number_literal ]) = identifier) ;) (expression_statement "puVar9[5] = local_54;" (assignment_expression "puVar9[5] = local_54" (subscript_expression "puVar9[5]" identifier [ number_literal ]) = identifier) ;) (expression_statement "param_1[0xc] = (int)(puVar9 + 6);" (assignment_expression "param_1[0xc] = (int)(puVar9 + 6)" (subscript_expression "param_1[0xc]" identifier [ number_literal ]) = (cast_expression "(int)(puVar9 + 6)" ( (type_descriptor "int" primitive_type) ) (parenthesized_expression "(puVar9 + 6)" ( (binary_expression "puVar9 + 6" identifier + number_literal) )))) ;) (expression_statement "iVar8 = param_1[10];" (assignment_expression "iVar8 = param_1[10]" identifier = (subscript_expression "param_1[10]" identifier [ number_literal ])) ;) (expression_statement "local_60 = uVar26;" (assignment_expression "local_60 = uVar26" identifier = identifier) ;) (if_statement "if (iVar17 == iVar21) goto LAB_002e2fb8;" if (parenthesized_expression "(iVar17 == iVar21)" ( (binary_expression "iVar17 == iVar21" identifier == identifier) )) (goto_statement "goto LAB_002e2fb8;" goto statement_identifier ;)) (expression_statement "puVar9 = (uint *)(*(int *)(iVar8 + 8) + iVar17);" (assignment_expression "puVar9 = (uint *)(*(int *)(iVar8 + 8) + iVar17)" identifier = (cast_expression "(uint *)(*(int *)(iVar8 + 8) + iVar17)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*(int *)(iVar8 + 8) + iVar17)" ( (binary_expression "*(int *)(iVar8 + 8) + iVar17" (pointer_expression "*(int *)(iVar8 + 8)" * (cast_expression "(int *)(iVar8 + 8)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar8 + 8)" ( (binary_expression "iVar8 + 8" identifier + number_literal) )))) + identifier) )))) ;) (expression_statement "uVar19 = puVar9[1];" (assignment_expression "uVar19 = puVar9[1]" identifier = (subscript_expression "puVar9[1]" identifier [ number_literal ])) ;) (expression_statement "uVar22 = *puVar9;" (assignment_expression "uVar22 = *puVar9" identifier = (pointer_expression "*puVar9" * identifier)) ;) (if_statement "if (uVar19 != 0x16) goto LAB_002e2dd0;" if (parenthesized_expression "(uVar19 != 0x16)" ( (binary_expression "uVar19 != 0x16" identifier != number_literal) )) (goto_statement "goto LAB_002e2dd0;" goto statement_identifier ;)) (labeled_statement "LAB_002e31a8:\n        uVar19 = (uint)*(byte *)local_44;" statement_identifier : (expression_statement "uVar19 = (uint)*(byte *)local_44;" (assignment_expression "uVar19 = (uint)*(byte *)local_44" identifier = (binary_expression "(uint)*(byte *)local_44" (parenthesized_expression "(uint)" ( identifier )) * (cast_expression "(byte *)local_44" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier))) ;)) (expression_statement "puVar9 = (uint *)((int)local_44 + 1);" (assignment_expression "puVar9 = (uint *)((int)local_44 + 1)" identifier = (cast_expression "(uint *)((int)local_44 + 1)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)local_44 + 1)" ( (binary_expression "(int)local_44 + 1" (cast_expression "(int)local_44" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) ;) (if_statement "if ((char)*(byte *)local_44 < '\0') {\n          local_60 = uVar26;\n          (*(code *)PTR_read_unsigned_LEB_128_x_004c2980)(puVar9,&local_48,uVar19);\n          puVar9 = (uint *)((int)local_44 + local_48);\n          uVar19 = extraout_v1;\n          uVar26 = local_60;\n        }\n        else {\n          local_48 = 1;\n        }" if (parenthesized_expression "((char)*(byte *)local_44 < '\0')" ( (binary_expression "(char)*(byte *)local_44 < '\0'" (cast_expression "(char)*(byte *)local_44" ( (type_descriptor "char" primitive_type) ) (pointer_expression "*(byte *)local_44" * (cast_expression "(byte *)local_44" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier))) < (char_literal "'\0'" ' escape_sequence ')) )) (compound_statement "{\n          local_60 = uVar26;\n          (*(code *)PTR_read_unsigned_LEB_128_x_004c2980)(puVar9,&local_48,uVar19);\n          puVar9 = (uint *)((int)local_44 + local_48);\n          uVar19 = extraout_v1;\n          uVar26 = local_60;\n        }" { (expression_statement "local_60 = uVar26;" (assignment_expression "local_60 = uVar26" identifier = identifier) ;) (expression_statement "(*(code *)PTR_read_unsigned_LEB_128_x_004c2980)(puVar9,&local_48,uVar19);" (call_expression "(*(code *)PTR_read_unsigned_LEB_128_x_004c2980)(puVar9,&local_48,uVar19)" (parenthesized_expression "(*(code *)PTR_read_unsigned_LEB_128_x_004c2980)" ( (pointer_expression "*(code *)PTR_read_unsigned_LEB_128_x_004c2980" * (cast_expression "(code *)PTR_read_unsigned_LEB_128_x_004c2980" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(puVar9,&local_48,uVar19)" ( identifier , (pointer_expression "&local_48" & identifier) , identifier ))) ;) (expression_statement "puVar9 = (uint *)((int)local_44 + local_48);" (assignment_expression "puVar9 = (uint *)((int)local_44 + local_48)" identifier = (cast_expression "(uint *)((int)local_44 + local_48)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)local_44 + local_48)" ( (binary_expression "(int)local_44 + local_48" (cast_expression "(int)local_44" ( (type_descriptor "int" primitive_type) ) identifier) + identifier) )))) ;) (expression_statement "uVar19 = extraout_v1;" (assignment_expression "uVar19 = extraout_v1" identifier = identifier) ;) (expression_statement "uVar26 = local_60;" (assignment_expression "uVar26 = local_60" identifier = identifier) ;) }) (else_clause "else {\n          local_48 = 1;\n        }" else (compound_statement "{\n          local_48 = 1;\n        }" { (expression_statement "local_48 = 1;" (assignment_expression "local_48 = 1" identifier = number_literal) ;) }))) (expression_statement "puVar11 = (uint *)((int)puVar9 - iVar20);" (assignment_expression "puVar11 = (uint *)((int)puVar9 - iVar20)" identifier = (cast_expression "(uint *)((int)puVar9 - iVar20)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)puVar9 - iVar20)" ( (binary_expression "(int)puVar9 - iVar20" (cast_expression "(int)puVar9" ( (type_descriptor "int" primitive_type) ) identifier) - identifier) )))) ;) (expression_statement "puVar18 = (uint *)((int)puVar11 + param_1[3]);" (assignment_expression "puVar18 = (uint *)((int)puVar11 + param_1[3])" identifier = (cast_expression "(uint *)((int)puVar11 + param_1[3])" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)puVar11 + param_1[3])" ( (binary_expression "(int)puVar11 + param_1[3]" (cast_expression "(int)puVar11" ( (type_descriptor "int" primitive_type) ) identifier) + (subscript_expression "param_1[3]" identifier [ number_literal ])) )))) ;) (expression_statement "iVar8 = (uint)(puVar18 < puVar11) + ((int)puVar11 >> 0x1f) + param_1[2];" (assignment_expression "iVar8 = (uint)(puVar18 < puVar11) + ((int)puVar11 >> 0x1f) + param_1[2]" identifier = (binary_expression "(uint)(puVar18 < puVar11) + ((int)puVar11 >> 0x1f) + param_1[2]" (binary_expression "(uint)(puVar18 < puVar11) + ((int)puVar11 >> 0x1f)" (call_expression "(uint)(puVar18 < puVar11)" (parenthesized_expression "(uint)" ( identifier )) (argument_list "(puVar18 < puVar11)" ( (binary_expression "puVar18 < puVar11" identifier < identifier) ))) + (parenthesized_expression "((int)puVar11 >> 0x1f)" ( (binary_expression "(int)puVar11 >> 0x1f" (cast_expression "(int)puVar11" ( (type_descriptor "int" primitive_type) ) identifier) >> number_literal) ))) + (subscript_expression "param_1[2]" identifier [ number_literal ]))) ;) (expression_statement "local_64 = uVar19;" (assignment_expression "local_64 = uVar19" identifier = identifier) ;) (expression_statement "local_44 = puVar9;" (assignment_expression "local_44 = puVar9" identifier = identifier) ;) (if_statement "if (uVar19 != 0xe) break;" if (parenthesized_expression "(uVar19 != 0xe)" ( (binary_expression "uVar19 != 0xe" identifier != number_literal) )) (break_statement "break;" break ;)) (labeled_statement "LAB_002e31fc:\n        local_58 = 0;" statement_identifier : (expression_statement "local_58 = 0;" (assignment_expression "local_58 = 0" identifier = number_literal) ;)) (expression_statement "iVar8 = *param_1;" (assignment_expression "iVar8 = *param_1" identifier = (pointer_expression "*param_1" * identifier)) ;) (expression_statement "local_68 = uVar22;" (assignment_expression "local_68 = uVar22" identifier = identifier) ;) (expression_statement "local_30 = puVar18;" (assignment_expression "local_30 = puVar18" identifier = identifier) ;) (expression_statement "local_60 = uVar26;" (assignment_expression "local_60 = uVar26" identifier = identifier) ;) (if_statement "if (*(int *)(iVar8 + 0x48) == 4) {\n          pcVar25 = *(code **)(**(int **)(iVar8 + 8) + 0xc);\n          if (pcVar25 == (code *)PTR_is_big_endian_004c2950) {\n            iVar8 = (**(code **)(**(int **)(iVar8 + 8) + 0xe8))();\n          }\n          else {\n            iVar8 = (*pcVar25)();\n          }\n          uVar19 = *local_44;\n          if (iVar8 == 0) {\n            uVar19 = (((uVar19 >> 0x10) << 0x18 | (uVar19 >> 0x18) << 0x10) >> 0x10) +\n                     ((uVar19 & 0xff) << 8 | uVar19 >> 8 & 0xff) * 0x10000;\n          }\n          local_44 = local_44 + 1;\n          uVar26 = (ulonglong)uVar19;\n        }\n        else {\n          uVar26 = (*local_34)(iVar8,&local_44);\n        }" if (parenthesized_expression "(*(int *)(iVar8 + 0x48) == 4)" ( (binary_expression "*(int *)(iVar8 + 0x48) == 4" (pointer_expression "*(int *)(iVar8 + 0x48)" * (cast_expression "(int *)(iVar8 + 0x48)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar8 + 0x48)" ( (binary_expression "iVar8 + 0x48" identifier + number_literal) )))) == number_literal) )) (compound_statement "{\n          pcVar25 = *(code **)(**(int **)(iVar8 + 8) + 0xc);\n          if (pcVar25 == (code *)PTR_is_big_endian_004c2950) {\n            iVar8 = (**(code **)(**(int **)(iVar8 + 8) + 0xe8))();\n          }\n          else {\n            iVar8 = (*pcVar25)();\n          }\n          uVar19 = *local_44;\n          if (iVar8 == 0) {\n            uVar19 = (((uVar19 >> 0x10) << 0x18 | (uVar19 >> 0x18) << 0x10) >> 0x10) +\n                     ((uVar19 & 0xff) << 8 | uVar19 >> 8 & 0xff) * 0x10000;\n          }\n          local_44 = local_44 + 1;\n          uVar26 = (ulonglong)uVar19;\n        }" { (expression_statement "pcVar25 = *(code **)(**(int **)(iVar8 + 8) + 0xc);" (assignment_expression "pcVar25 = *(code **)(**(int **)(iVar8 + 8) + 0xc)" identifier = (pointer_expression "*(code **)(**(int **)(iVar8 + 8) + 0xc)" * (cast_expression "(code **)(**(int **)(iVar8 + 8) + 0xc)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(**(int **)(iVar8 + 8) + 0xc)" ( (binary_expression "**(int **)(iVar8 + 8) + 0xc" (pointer_expression "**(int **)(iVar8 + 8)" * (pointer_expression "*(int **)(iVar8 + 8)" * (cast_expression "(int **)(iVar8 + 8)" ( (type_descriptor "int **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(iVar8 + 8)" ( (binary_expression "iVar8 + 8" identifier + number_literal) ))))) + number_literal) ))))) ;) (if_statement "if (pcVar25 == (code *)PTR_is_big_endian_004c2950) {\n            iVar8 = (**(code **)(**(int **)(iVar8 + 8) + 0xe8))();\n          }\n          else {\n            iVar8 = (*pcVar25)();\n          }" if (parenthesized_expression "(pcVar25 == (code *)PTR_is_big_endian_004c2950)" ( (binary_expression "pcVar25 == (code *)PTR_is_big_endian_004c2950" identifier == (cast_expression "(code *)PTR_is_big_endian_004c2950" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (compound_statement "{\n            iVar8 = (**(code **)(**(int **)(iVar8 + 8) + 0xe8))();\n          }" { (expression_statement "iVar8 = (**(code **)(**(int **)(iVar8 + 8) + 0xe8))();" (assignment_expression "iVar8 = (**(code **)(**(int **)(iVar8 + 8) + 0xe8))()" identifier = (call_expression "(**(code **)(**(int **)(iVar8 + 8) + 0xe8))()" (parenthesized_expression "(**(code **)(**(int **)(iVar8 + 8) + 0xe8))" ( (pointer_expression "**(code **)(**(int **)(iVar8 + 8) + 0xe8)" * (pointer_expression "*(code **)(**(int **)(iVar8 + 8) + 0xe8)" * (cast_expression "(code **)(**(int **)(iVar8 + 8) + 0xe8)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(**(int **)(iVar8 + 8) + 0xe8)" ( (binary_expression "**(int **)(iVar8 + 8) + 0xe8" (pointer_expression "**(int **)(iVar8 + 8)" * (pointer_expression "*(int **)(iVar8 + 8)" * (cast_expression "(int **)(iVar8 + 8)" ( (type_descriptor "int **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(iVar8 + 8)" ( (binary_expression "iVar8 + 8" identifier + number_literal) ))))) + number_literal) ))))) )) (argument_list "()" ( )))) ;) }) (else_clause "else {\n            iVar8 = (*pcVar25)();\n          }" else (compound_statement "{\n            iVar8 = (*pcVar25)();\n          }" { (expression_statement "iVar8 = (*pcVar25)();" (assignment_expression "iVar8 = (*pcVar25)()" identifier = (call_expression "(*pcVar25)()" (parenthesized_expression "(*pcVar25)" ( (pointer_expression "*pcVar25" * identifier) )) (argument_list "()" ( )))) ;) }))) (expression_statement "uVar19 = *local_44;" (assignment_expression "uVar19 = *local_44" identifier = (pointer_expression "*local_44" * identifier)) ;) (if_statement "if (iVar8 == 0) {\n            uVar19 = (((uVar19 >> 0x10) << 0x18 | (uVar19 >> 0x18) << 0x10) >> 0x10) +\n                     ((uVar19 & 0xff) << 8 | uVar19 >> 8 & 0xff) * 0x10000;\n          }" if (parenthesized_expression "(iVar8 == 0)" ( (binary_expression "iVar8 == 0" identifier == number_literal) )) (compound_statement "{\n            uVar19 = (((uVar19 >> 0x10) << 0x18 | (uVar19 >> 0x18) << 0x10) >> 0x10) +\n                     ((uVar19 & 0xff) << 8 | uVar19 >> 8 & 0xff) * 0x10000;\n          }" { (expression_statement "uVar19 = (((uVar19 >> 0x10) << 0x18 | (uVar19 >> 0x18) << 0x10) >> 0x10) +\n                     ((uVar19 & 0xff) << 8 | uVar19 >> 8 & 0xff) * 0x10000;" (assignment_expression "uVar19 = (((uVar19 >> 0x10) << 0x18 | (uVar19 >> 0x18) << 0x10) >> 0x10) +\n                     ((uVar19 & 0xff) << 8 | uVar19 >> 8 & 0xff) * 0x10000" identifier = (binary_expression "(((uVar19 >> 0x10) << 0x18 | (uVar19 >> 0x18) << 0x10) >> 0x10) +\n                     ((uVar19 & 0xff) << 8 | uVar19 >> 8 & 0xff) * 0x10000" (parenthesized_expression "(((uVar19 >> 0x10) << 0x18 | (uVar19 >> 0x18) << 0x10) >> 0x10)" ( (binary_expression "((uVar19 >> 0x10) << 0x18 | (uVar19 >> 0x18) << 0x10) >> 0x10" (parenthesized_expression "((uVar19 >> 0x10) << 0x18 | (uVar19 >> 0x18) << 0x10)" ( (binary_expression "(uVar19 >> 0x10) << 0x18 | (uVar19 >> 0x18) << 0x10" (binary_expression "(uVar19 >> 0x10) << 0x18" (parenthesized_expression "(uVar19 >> 0x10)" ( (binary_expression "uVar19 >> 0x10" identifier >> number_literal) )) << number_literal) | (binary_expression "(uVar19 >> 0x18) << 0x10" (parenthesized_expression "(uVar19 >> 0x18)" ( (binary_expression "uVar19 >> 0x18" identifier >> number_literal) )) << number_literal)) )) >> number_literal) )) + (binary_expression "((uVar19 & 0xff) << 8 | uVar19 >> 8 & 0xff) * 0x10000" (parenthesized_expression "((uVar19 & 0xff) << 8 | uVar19 >> 8 & 0xff)" ( (binary_expression "(uVar19 & 0xff) << 8 | uVar19 >> 8 & 0xff" (binary_expression "(uVar19 & 0xff) << 8" (parenthesized_expression "(uVar19 & 0xff)" ( (binary_expression "uVar19 & 0xff" identifier & number_literal) )) << number_literal) | (binary_expression "uVar19 >> 8 & 0xff" (binary_expression "uVar19 >> 8" identifier >> number_literal) & number_literal)) )) * number_literal))) ;) })) (expression_statement "local_44 = local_44 + 1;" (assignment_expression "local_44 = local_44 + 1" identifier = (binary_expression "local_44 + 1" identifier + number_literal)) ;) (expression_statement "uVar26 = (ulonglong)uVar19;" (assignment_expression "uVar26 = (ulonglong)uVar19" identifier = (cast_expression "(ulonglong)uVar19" ( (type_descriptor "ulonglong" type_identifier) ) identifier)) ;) }) (else_clause "else {\n          uVar26 = (*local_34)(iVar8,&local_44);\n        }" else (compound_statement "{\n          uVar26 = (*local_34)(iVar8,&local_44);\n        }" { (expression_statement "uVar26 = (*local_34)(iVar8,&local_44);" (assignment_expression "uVar26 = (*local_34)(iVar8,&local_44)" identifier = (call_expression "(*local_34)(iVar8,&local_44)" (parenthesized_expression "(*local_34)" ( (pointer_expression "*local_34" * identifier) )) (argument_list "(iVar8,&local_44)" ( identifier , (pointer_expression "&local_44" & identifier) )))) ;) }))) (expression_statement "local_50 = uVar26;" (assignment_expression "local_50 = uVar26" identifier = identifier) ;) (expression_statement "local_58 = (*local_3c)(*param_1);" (assignment_expression "local_58 = (*local_3c)(*param_1)" identifier = (call_expression "(*local_3c)(*param_1)" (parenthesized_expression "(*local_3c)" ( (pointer_expression "*local_3c" * identifier) )) (argument_list "(*param_1)" ( (pointer_expression "*param_1" * identifier) )))) ;) (expression_statement "uVar7 = local_50;" (assignment_expression "uVar7 = local_50" identifier = identifier) ;) (if_statement "if (uVar22 != 0x31) {\n          uVar26 = local_50;\n          if (uVar22 < 0x32) {\n            if ((uVar22 != 1) && (uVar22 == 3)) {\nLAB_002e3284:\n              param_1[0x16] = local_58;\n              *(ulonglong *)(param_1 + 0x10) = uVar26;\n              uVar7 = uVar26;\n            }\n          }\n          else {\n            if (uVar22 == 0x6e) {\nLAB_002e387c:\n              param_1[0x16] = local_58;\n            }\n            else {\n              if (uVar22 != 0x2007) goto LAB_002e313c;\n              param_1[0x16] = local_58;\n            }\n            *(ulonglong *)(param_1 + 0x14) = uVar26;\n            uVar7 = uVar26;\n          }\n        }" if (parenthesized_expression "(uVar22 != 0x31)" ( (binary_expression "uVar22 != 0x31" identifier != number_literal) )) (compound_statement "{\n          uVar26 = local_50;\n          if (uVar22 < 0x32) {\n            if ((uVar22 != 1) && (uVar22 == 3)) {\nLAB_002e3284:\n              param_1[0x16] = local_58;\n              *(ulonglong *)(param_1 + 0x10) = uVar26;\n              uVar7 = uVar26;\n            }\n          }\n          else {\n            if (uVar22 == 0x6e) {\nLAB_002e387c:\n              param_1[0x16] = local_58;\n            }\n            else {\n              if (uVar22 != 0x2007) goto LAB_002e313c;\n              param_1[0x16] = local_58;\n            }\n            *(ulonglong *)(param_1 + 0x14) = uVar26;\n            uVar7 = uVar26;\n          }\n        }" { (expression_statement "uVar26 = local_50;" (assignment_expression "uVar26 = local_50" identifier = identifier) ;) (if_statement "if (uVar22 < 0x32) {\n            if ((uVar22 != 1) && (uVar22 == 3)) {\nLAB_002e3284:\n              param_1[0x16] = local_58;\n              *(ulonglong *)(param_1 + 0x10) = uVar26;\n              uVar7 = uVar26;\n            }\n          }\n          else {\n            if (uVar22 == 0x6e) {\nLAB_002e387c:\n              param_1[0x16] = local_58;\n            }\n            else {\n              if (uVar22 != 0x2007) goto LAB_002e313c;\n              param_1[0x16] = local_58;\n            }\n            *(ulonglong *)(param_1 + 0x14) = uVar26;\n            uVar7 = uVar26;\n          }" if (parenthesized_expression "(uVar22 < 0x32)" ( (binary_expression "uVar22 < 0x32" identifier < number_literal) )) (compound_statement "{\n            if ((uVar22 != 1) && (uVar22 == 3)) {\nLAB_002e3284:\n              param_1[0x16] = local_58;\n              *(ulonglong *)(param_1 + 0x10) = uVar26;\n              uVar7 = uVar26;\n            }\n          }" { (if_statement "if ((uVar22 != 1) && (uVar22 == 3)) {\nLAB_002e3284:\n              param_1[0x16] = local_58;\n              *(ulonglong *)(param_1 + 0x10) = uVar26;\n              uVar7 = uVar26;\n            }" if (parenthesized_expression "((uVar22 != 1) && (uVar22 == 3))" ( (binary_expression "(uVar22 != 1) && (uVar22 == 3)" (parenthesized_expression "(uVar22 != 1)" ( (binary_expression "uVar22 != 1" identifier != number_literal) )) && (parenthesized_expression "(uVar22 == 3)" ( (binary_expression "uVar22 == 3" identifier == number_literal) ))) )) (compound_statement "{\nLAB_002e3284:\n              param_1[0x16] = local_58;\n              *(ulonglong *)(param_1 + 0x10) = uVar26;\n              uVar7 = uVar26;\n            }" { (labeled_statement "LAB_002e3284:\n              param_1[0x16] = local_58;" statement_identifier : (expression_statement "param_1[0x16] = local_58;" (assignment_expression "param_1[0x16] = local_58" (subscript_expression "param_1[0x16]" identifier [ number_literal ]) = identifier) ;)) (expression_statement "*(ulonglong *)(param_1 + 0x10) = uVar26;" (assignment_expression "*(ulonglong *)(param_1 + 0x10) = uVar26" (pointer_expression "*(ulonglong *)(param_1 + 0x10)" * (cast_expression "(ulonglong *)(param_1 + 0x10)" ( (type_descriptor "ulonglong *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x10)" ( (binary_expression "param_1 + 0x10" identifier + number_literal) )))) = identifier) ;) (expression_statement "uVar7 = uVar26;" (assignment_expression "uVar7 = uVar26" identifier = identifier) ;) })) }) (else_clause "else {\n            if (uVar22 == 0x6e) {\nLAB_002e387c:\n              param_1[0x16] = local_58;\n            }\n            else {\n              if (uVar22 != 0x2007) goto LAB_002e313c;\n              param_1[0x16] = local_58;\n            }\n            *(ulonglong *)(param_1 + 0x14) = uVar26;\n            uVar7 = uVar26;\n          }" else (compound_statement "{\n            if (uVar22 == 0x6e) {\nLAB_002e387c:\n              param_1[0x16] = local_58;\n            }\n            else {\n              if (uVar22 != 0x2007) goto LAB_002e313c;\n              param_1[0x16] = local_58;\n            }\n            *(ulonglong *)(param_1 + 0x14) = uVar26;\n            uVar7 = uVar26;\n          }" { (if_statement "if (uVar22 == 0x6e) {\nLAB_002e387c:\n              param_1[0x16] = local_58;\n            }\n            else {\n              if (uVar22 != 0x2007) goto LAB_002e313c;\n              param_1[0x16] = local_58;\n            }" if (parenthesized_expression "(uVar22 == 0x6e)" ( (binary_expression "uVar22 == 0x6e" identifier == number_literal) )) (compound_statement "{\nLAB_002e387c:\n              param_1[0x16] = local_58;\n            }" { (labeled_statement "LAB_002e387c:\n              param_1[0x16] = local_58;" statement_identifier : (expression_statement "param_1[0x16] = local_58;" (assignment_expression "param_1[0x16] = local_58" (subscript_expression "param_1[0x16]" identifier [ number_literal ]) = identifier) ;)) }) (else_clause "else {\n              if (uVar22 != 0x2007) goto LAB_002e313c;\n              param_1[0x16] = local_58;\n            }" else (compound_statement "{\n              if (uVar22 != 0x2007) goto LAB_002e313c;\n              param_1[0x16] = local_58;\n            }" { (if_statement "if (uVar22 != 0x2007) goto LAB_002e313c;" if (parenthesized_expression "(uVar22 != 0x2007)" ( (binary_expression "uVar22 != 0x2007" identifier != number_literal) )) (goto_statement "goto LAB_002e313c;" goto statement_identifier ;)) (expression_statement "param_1[0x16] = local_58;" (assignment_expression "param_1[0x16] = local_58" (subscript_expression "param_1[0x16]" identifier [ number_literal ]) = identifier) ;) }))) (expression_statement "*(ulonglong *)(param_1 + 0x14) = uVar26;" (assignment_expression "*(ulonglong *)(param_1 + 0x14) = uVar26" (pointer_expression "*(ulonglong *)(param_1 + 0x14)" * (cast_expression "(ulonglong *)(param_1 + 0x14)" ( (type_descriptor "ulonglong *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x14)" ( (binary_expression "param_1 + 0x14" identifier + number_literal) )))) = identifier) ;) (expression_statement "uVar7 = uVar26;" (assignment_expression "uVar7 = uVar26" identifier = identifier) ;) }))) })) (labeled_statement "LAB_002e313c:\n        puVar9 = (uint *)param_1[0xc];" statement_identifier : (expression_statement "puVar9 = (uint *)param_1[0xc];" (assignment_expression "puVar9 = (uint *)param_1[0xc]" identifier = (cast_expression "(uint *)param_1[0xc]" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (subscript_expression "param_1[0xc]" identifier [ number_literal ]))) ;)) (expression_statement "uVar26 = uVar7;" (assignment_expression "uVar26 = uVar7" identifier = identifier) ;) })) }) while (parenthesized_expression "( true )" ( true )) ;) })))) (expression_statement "uVar22 = (int)local_44 - iVar20;" (assignment_expression "uVar22 = (int)local_44 - iVar20" identifier = (binary_expression "(int)local_44 - iVar20" (cast_expression "(int)local_44" ( (type_descriptor "int" primitive_type) ) identifier) - identifier)) ;) (expression_statement "uVar19 = uVar22 + iVar17;" (assignment_expression "uVar19 = uVar22 + iVar17" identifier = (binary_expression "uVar22 + iVar17" identifier + identifier)) ;) (expression_statement "iVar17 = (uint)(uVar19 < uVar22) + ((int)uVar22 >> 0x1f) + param_1[2];" (assignment_expression "iVar17 = (uint)(uVar19 < uVar22) + ((int)uVar22 >> 0x1f) + param_1[2]" identifier = (binary_expression "(uint)(uVar19 < uVar22) + ((int)uVar22 >> 0x1f) + param_1[2]" (binary_expression "(uint)(uVar19 < uVar22) + ((int)uVar22 >> 0x1f)" (call_expression "(uint)(uVar19 < uVar22)" (parenthesized_expression "(uint)" ( identifier )) (argument_list "(uVar19 < uVar22)" ( (binary_expression "uVar19 < uVar22" identifier < identifier) ))) + (parenthesized_expression "((int)uVar22 >> 0x1f)" ( (binary_expression "(int)uVar22 >> 0x1f" (cast_expression "(int)uVar22" ( (type_descriptor "int" primitive_type) ) identifier) >> number_literal) ))) + (subscript_expression "param_1[2]" identifier [ number_literal ]))) ;) (if_statement "if (*(int *)(iVar8 + 4) < 0) {\n    param_1[6] = iVar17;\n    param_1[7] = uVar19;\n  }\n  else {\n    param_1[8] = iVar17;\n    param_1[9] = uVar19;\n  }" if (parenthesized_expression "(*(int *)(iVar8 + 4) < 0)" ( (binary_expression "*(int *)(iVar8 + 4) < 0" (pointer_expression "*(int *)(iVar8 + 4)" * (cast_expression "(int *)(iVar8 + 4)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar8 + 4)" ( (binary_expression "iVar8 + 4" identifier + number_literal) )))) < number_literal) )) (compound_statement "{\n    param_1[6] = iVar17;\n    param_1[7] = uVar19;\n  }" { (expression_statement "param_1[6] = iVar17;" (assignment_expression "param_1[6] = iVar17" (subscript_expression "param_1[6]" identifier [ number_literal ]) = identifier) ;) (expression_statement "param_1[7] = uVar19;" (assignment_expression "param_1[7] = uVar19" (subscript_expression "param_1[7]" identifier [ number_literal ]) = identifier) ;) }) (else_clause "else {\n    param_1[8] = iVar17;\n    param_1[9] = uVar19;\n  }" else (compound_statement "{\n    param_1[8] = iVar17;\n    param_1[9] = uVar19;\n  }" { (expression_statement "param_1[8] = iVar17;" (assignment_expression "param_1[8] = iVar17" (subscript_expression "param_1[8]" identifier [ number_literal ]) = identifier) ;) (expression_statement "param_1[9] = uVar19;" (assignment_expression "param_1[9] = uVar19" (subscript_expression "param_1[9]" identifier [ number_literal ]) = identifier) ;) }))) (expression_statement "*(undefined1 *)(param_1 + 0xe) = 1;" (assignment_expression "*(undefined1 *)(param_1 + 0xe) = 1" (pointer_expression "*(undefined1 *)(param_1 + 0xe)" * (cast_expression "(undefined1 *)(param_1 + 0xe)" ( (type_descriptor "undefined1 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0xe)" ( (binary_expression "param_1 + 0xe" identifier + number_literal) )))) = number_literal) ;) (return_statement "return 1;" return number_literal ;) })))
(translation_unit "/* WARNING: Struct "Output_section_data": ignoring overlapping field "output_section_" */\n/* WARNING: Struct "Output_section": ignoring overlapping field "name_" */\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  uint uVar4;\n  uint uVar5;\n  ushort uVar6;\n  anon_union_8_5_56ef6665_for_val aVar7;\n  anon_union_8_5_56ef6665_for_val aVar8;\n  anon_union_8_5_56ef6665_for_val aVar9;\n  anon_union_8_5_56ef6665_for_val aVar10;\n  anon_union_8_5_56ef6665_for_val aVar11;\n  anon_union_8_5_56ef6665_for_val aVar12;\n  Abbrev_code *pAVar13;\n  uint *puVar14;\n  uchar *puVar15;\n  _func_int_varargs **pp_Var16;\n  int iVar17;\n  uchar *puVar18;\n  pointer pAVar19;\n  undefined1 uVar20;\n  bool bVar21;\n  uint extraout_v1;\n  anon_union_4_3_97895b06_for_aux extraout_v1_00;\n  Dwarf_info_reader *pDVar22;\n  uint uVar23;\n  undefined *puVar24;\n  Dwarf_die *this_00;\n  char *pcVar25;\n  iterator __position;\n  uint uVar26;\n  anon_union_4_3_97895b06_for_aux aVar27;\n  uchar *puVar28;\n  uint uVar29;\n  uchar *puVar30;\n  int iVar31;\n  uint uVar32;\n  pointer pAVar33;\n  int iVar34;\n  pointer pAVar35;\n  int iVar36;\n  _func_int_varargs *p_Var37;\n  ulonglong uVar38;\n  anon_union_8_5_56ef6665_for_val aVar39;\n  anon_union_8_5_56ef6665_for_val aVar40;\n  Attribute_value attr_value;\n  off_t str_off;\n  size_t len;\n  uchar *pattr;\n  anon_union_4_3_97895b06_for_aux local_40;\n  code *local_3c;\n  Attributes *local_38;\n  code *local_34;\n  uchar *local_30;\n  \n  pAVar13 = this->abbrev_code_;\n  if (pAVar13 == (Abbrev_code *)0x0) {\n    puVar24 = PTR_s_in_a_linker_script_004c191c + 0x7090;\n    (*(code *)PTR_do_gold_unreachable_004c1a30)\n              (puVar24,0x2a9,PTR_s_in_a_linker_script_004c191c + 0x7414);\n  }\n  else {\n    pDVar22 = this->dwinfo_;\n    iVar34 = (int)this->die_offset_;\n    iVar31 = (int)pDVar22->cu_offset_;\n    puVar30 = pDVar22->buffer_ + iVar31 + iVar34;\n    if (pDVar22->buffer_ + iVar31 + (int)pDVar22->cu_length_ < puVar30 + 1) {\n      Dwarf_info_reader::warn_corrupt_debug_section(pDVar22);\n      return false;\n    }\n    local_38 = &this->attributes_;\n    if (puVar30 == (uchar *)0x0) {\n      return false;\n    }\n    iVar31 = (int)(pAVar13->attributes).\n                  super__Vector_base<gold::Dwarf_abbrev_table::Attribute,_std::allocator<gold::Dwarf_abbrev_table::Attribute>_>\n                  ._M_impl._M_finish -\n             (int)(pAVar13->attributes).\n                  super__Vector_base<gold::Dwarf_abbrev_table::Attribute,_std::allocator<gold::Dwarf_abbrev_table::Attribute>_>\n                  ._M_impl._M_start;\n    pattr = puVar30 + (int)this->attr_offset_;\n    uVar29 = iVar31 >> 3;\n    puVar24 = PTR_s__s_004c1a50;\n    if (uVar29 < 0xaaaaaab) {\n      pAVar33 = (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 ((uint)(((int)(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 - (int)pAVar33 >> 3) * -0x55555555) < uVar29) {\n        aVar27 = (anon_union_4_3_97895b06_for_aux)\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        iVar34 = aVar27.shndx - (int)pAVar33;\n        if (uVar29 == 0) {\n          pAVar19 = (pointer)0x0;\n          pAVar35 = pAVar33;\n        }\n        else {\n          local_40 = aVar27;\n          pAVar19 = (pointer)(*(code *)PTR_operator_new_004c13a8)(uVar29 * 0x18);\n          aVar27 = local_40;\n          pAVar35 = (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 (pAVar33 != (pointer)aVar27.shndx) {\n          (*(code *)PTR_memmove_004c5af8)(pAVar19,pAVar33,iVar34);\n        }\n        if (pAVar35 != (pointer)0x0) {\n          (*(code *)PTR_operator_delete_004c12fc)(pAVar35);\n        }\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_start = pAVar19;\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)((int)pAVar19 + iVar34);\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 = pAVar19 + uVar29;\n        if (uVar29 != 0) goto LAB_002e2d90;\nLAB_002e2fb8:\n        if (pAVar13 == (Abbrev_code *)0x0) {\n          this_00 = (Dwarf_die *)(PTR_s_in_a_linker_script_004c191c + 0x7108);\n          (*(code *)PTR_do_gold_unreachable_004c1a30)\n                    (this_00,0x206,PTR_s_in_a_linker_script_004c191c + 0x7404);\n          if (this_00->attributes_read_ == false) {\n            bVar21 = read_attributes(this_00);\n            return bVar21;\n          }\n          return this_00->attributes_read_;\n        }\n        iVar34 = (int)this->die_offset_;\n      }\n      else if (uVar29 != 0) {\nLAB_002e2d90:\n        local_3c = (code *)PTR_lookup_reloc_004c2994;\n        iVar34 = 0;\n        local_34 = (code *)PTR_read_from_pointer<64>_004c2998;\n        local_40.shndx = (uint)&str_off;\nLAB_002e2db4:\n        puVar14 = (uint *)((int)&((pAVar13->attributes).\n                                  super__Vector_base<gold::Dwarf_abbrev_table::Attribute,_std::allocator<gold::Dwarf_abbrev_table::Attribute>_>\n                                  ._M_impl._M_start)->attr + iVar34);\n        uVar29 = puVar14[1];\n        uVar32 = *puVar14;\n        aVar40 = attr_value.val;\n        if (uVar29 == 0x16) goto LAB_002e31a8;\nLAB_002e2dd0:\n        puVar15 = pattr + -(int)puVar30;\n        puVar28 = puVar15 + (int)this->die_offset_;\n        iVar36 = (uint)(puVar28 < puVar15) + ((int)puVar15 >> 0x1f) + *(int *)&this->die_offset_;\n        attr_value.form = uVar29;\n        if (uVar29 == 0xe) goto LAB_002e31fc;\n        do {\n          attr_value.val.intval._4_4_ = (undefined4)aVar40.intval;\n          attr_value.aux.shndx = 0;\n          attr_value.attr = uVar32;\n          attr_value.form = uVar29;\n          attr_value.val = aVar40;\n          if (0xe < uVar29) {\n            if (uVar29 == 0x15) {\n              if ((char)*pattr < '\0') {\n                aVar39.intval = (*(code *)PTR_read_unsigned_LEB_128_x_004c2980)(pattr + 1,&len);\n                pattr = pattr + len;\n              }\n              else {\n                aVar39.intval._0_7_ = 0;\n                aVar39.intval._7_1_ = *pattr;\n                len = 1;\n                pattr = pattr + 1;\n              }\n              goto joined_r0x002e3998;\n            }\n            if (0x15 < uVar29) {\n              if (uVar29 == 0x19) {\n                attr_value.val.intval._4_4_ = 1;\n                attr_value.val.stringval = (char *)0x0;\n              }\n              else {\n                if (uVar29 < 0x1a) {\n                  if (uVar29 != 0x17) {\n                    if (uVar29 != 0x18) {\n                      return false;\n                    }\n                    goto LAB_002e32bc;\n                  }\n                  pDVar22 = this->dwinfo_;\n                  if (pDVar22->offset_size_ == 4) {\n                    pp_Var16 = (pDVar22->object_->super_Object)._vptr_Object;\n                    p_Var37 = pp_Var16[3];\n                    if (p_Var37 == (_func_int_varargs *)PTR_is_big_endian_004c2950) {\n                      local_30 = puVar28;\n                      iVar36 = (*pp_Var16[0x3a])();\n                    }\n                    else {\n                      local_30 = puVar28;\n                      iVar36 = (*p_Var37)();\n                    }\n                    uVar23 = *(uint *)pattr;\n                    if (iVar36 == 0) {\n                      uVar23 = (((uVar23 >> 0x10) << 0x18 | (uVar23 >> 0x18) << 0x10) >> 0x10) +\n                               ((uVar23 & 0xff) << 8 | uVar23 >> 8 & 0xff) * 0x10000;\n                    }\n                    pattr = pattr + 4;\n                    uVar38 = (ulonglong)uVar23;\n                  }\n                  else {\n                    local_30 = puVar28;\n                    uVar38 = (*local_34)(pDVar22,&pattr);\n                  }\n                  pDVar22 = this->dwinfo_;\n                  goto LAB_002e3970;\n                }\n                if (uVar29 != 0x20) {\n                  if (uVar29 < 0x20) {\n                    return false;\n                  }\n                  if (1 < uVar29 - 0x1f01) {\n                    return false;\n                  }\nLAB_002e34d8:\n                  if ((char)*pattr < '\0') {\n                    aVar40.intval = (*(code *)PTR_read_unsigned_LEB_128_x_004c2980)(pattr + 1,&len);\n                    pattr = pattr + len;\n                  }\n                  else {\n                    aVar40.intval._0_7_ = 0;\n                    aVar40.intval._7_1_ = *pattr;\n                    len = 1;\n                    pattr = pattr + 1;\n                  }\n                  goto LAB_002e382c;\n                }\n                pp_Var16 = (this->dwinfo_->object_->super_Object)._vptr_Object;\n                p_Var37 = pp_Var16[3];\n                if (p_Var37 == (_func_int_varargs *)PTR_is_big_endian_004c2950) {\n                  iVar36 = (*pp_Var16[0x3a])();\n                }\n                else {\n                  iVar36 = (*p_Var37)();\n                }\n                    /* WARNING: Load size is inaccurate */\n                attr_value.val._4_4_ = pattr[4];\n                    /* WARNING: Load size is inaccurate */\n                attr_value.val.blockval = *pattr;\n                if (iVar36 == 0) {\n                  uVar23 = attr_value.val.uintval._4_4_ & 0xff;\n                  uVar26 = (uint)attr_value.val.uintval._4_4_ >> 8;\n                  uVar2 = (uint)attr_value.val.uintval._4_4_ >> 0x10;\n                  uVar4 = (uint)attr_value.val.uintval._4_4_ >> 0x18;\n                  attr_value.val.intval._4_4_ =\n                       ((((uint)attr_value.val.stringval >> 0x10) << 0x18 |\n                        ((uint)attr_value.val.stringval >> 0x18) << 0x10) >> 0x10) +\n                       (((uint)attr_value.val.stringval & 0xff) << 8 |\n                       (uint)attr_value.val.stringval >> 8 & 0xff) * 0x10000;\n                  attr_value.val.stringval =\n                       (char *)(((uVar2 << 0x18 | uVar4 << 0x10) >> 0x10) +\n                               (uVar23 << 8 | uVar26 & 0xff) * 0x10000);\n                }\n                pattr = pattr + 8;\n              }\n              aVar39.stringval = attr_value.val.stringval;\n              aVar39.intval._4_4_ = attr_value.val.intval._4_4_;\n              aVar11.stringval = attr_value.val.stringval;\n              aVar11.intval._4_4_ = attr_value.val.intval._4_4_;\n              aVar7.stringval = attr_value.val.stringval;\n              aVar7.intval._4_4_ = attr_value.val.intval._4_4_;\n              if (uVar32 == 0x6e) goto LAB_002e313c;\n              aVar7 = aVar11;\n              if (uVar32 == 0x2007) goto LAB_002e313c;\n              goto joined_r0x002e3124;\n            }\n            if (uVar29 == 0x11) {\n              puVar15 = pattr + 1;\n              uVar23 = CONCAT31(0,*pattr);\n              aVar39.stringval = (char *)0x0;\n              aVar39.intval._4_4_ = uVar23;\n              aVar12.stringval = (char *)0x0;\n              aVar12.uintval._4_4_ = uVar23;\n              aVar40.stringval = (char *)0x0;\n              aVar40.uintval._4_4_ = uVar23;\n              aVar10.stringval = (char *)0x0;\n              aVar10.uintval._4_4_ = uVar23;\n              aVar7.stringval = (char *)0x0;\n              aVar7.uintval._4_4_ = uVar23;\n              aVar9.stringval = (char *)0x0;\n              aVar9.uintval._4_4_ = uVar23;\n              pattr = puVar15;\n              if (uVar32 == 0x31) goto LAB_002e30bc;\n              if (0x31 < uVar32) {\n                if ((uVar32 != 0x6e) && (aVar40 = aVar12, uVar32 != 0x2007)) {\n                  if (uVar32 != 0x47) goto LAB_002e313c;\n                  *(undefined4 *)&this->specification_ = 0;\n                  *(uint *)((int)&this->specification_ + 4) = uVar23;\n                  aVar7 = aVar10;\n                  goto LAB_002e313c;\n                }\n                goto LAB_002e3858;\n              }\n              if (uVar32 == 1) {\n                *(undefined4 *)&this->sibling_offset_ = 0;\n                *(uint *)((int)&this->sibling_offset_ + 4) = uVar23;\n                aVar7 = aVar9;\n                goto LAB_002e313c;\n              }\n              goto joined_r0x002e3124;\n            }\n            if (uVar29 < 0x12) {\n              if (uVar29 == 0xf) goto LAB_002e34d8;\n              if (uVar29 != 0x10) {\n                return false;\n              }\n              pDVar22 = this->dwinfo_;\n              uVar23 = pDVar22->offset_size_;\n              if (pDVar22->cu_version_ < 3) {\n                uVar23 = pDVar22->address_size_;\n              }\n              if (uVar23 == 4) {\n                pp_Var16 = (pDVar22->object_->super_Object)._vptr_Object;\n                p_Var37 = pp_Var16[3];\n                if (p_Var37 == (_func_int_varargs *)PTR_is_big_endian_004c2950) {\n                  local_30 = puVar28;\n                  iVar36 = (*pp_Var16[0x3a])();\n                }\n                else {\n                  local_30 = puVar28;\n                  iVar36 = (*p_Var37)();\n                }\n                uVar23 = *(uint *)pattr;\n                if (iVar36 == 0) {\n                  uVar23 = (((uVar23 >> 0x10) << 0x18 | (uVar23 >> 0x18) << 0x10) >> 0x10) +\n                           ((uVar23 & 0xff) << 8 | uVar23 >> 8 & 0xff) * 0x10000;\n                }\n                pattr = pattr + 4;\n                uVar38 = (ulonglong)uVar23;\n              }\n              else {\n                local_30 = puVar28;\n                uVar38 = (*local_34)(pDVar22,&pattr);\n              }\n              str_off = uVar38;\n              attr_value.aux.shndx = (*local_3c)(this->dwinfo_);\n              aVar39.refval = str_off;\n            }\n            else {\n              if (uVar29 == 0x13) {\n                pp_Var16 = (this->dwinfo_->object_->super_Object)._vptr_Object;\n                p_Var37 = pp_Var16[3];\n                if (p_Var37 == (_func_int_varargs *)PTR_is_big_endian_004c2950) {\n                  local_30 = puVar28;\n                  iVar36 = (*pp_Var16[0x3a])();\n                }\n                else {\n                  local_30 = puVar28;\n                  iVar36 = (*p_Var37)();\n                }\n                uVar23 = *(uint *)pattr;\n                if (iVar36 == 0) {\n                  uVar23 = (((uVar23 >> 0x10) << 0x18 | (uVar23 >> 0x18) << 0x10) >> 0x10) +\n                           ((uVar23 & 0xff) << 8 | uVar23 >> 8 & 0xff) * 0x10000;\n                }\n                pattr = pattr + 4;\n                pDVar22 = this->dwinfo_;\n                uVar38 = (ulonglong)uVar23;\n              }\n              else {\n                if (uVar29 < 0x14) {\n                  pp_Var16 = (this->dwinfo_->object_->super_Object)._vptr_Object;\n                  p_Var37 = pp_Var16[3];\n                  if (p_Var37 == (_func_int_varargs *)PTR_is_big_endian_004c2950) {\n                    iVar36 = (*pp_Var16[0x3a])();\n                  }\n                  else {\n                    iVar36 = (*p_Var37)();\n                  }\n                  uVar6 = *(ushort *)pattr;\n                  if (iVar36 == 0) {\n                    uVar6 = CONCAT11(pattr[1],*pattr);\n                  }\n                  aVar39.intval._0_6_ = 0;\n                  aVar39.intval._6_2_ = uVar6;\n                  pattr = pattr + 2;\n                  goto joined_r0x002e3998;\n                }\n                pp_Var16 = (this->dwinfo_->object_->super_Object)._vptr_Object;\n                p_Var37 = pp_Var16[3];\n                if (p_Var37 == (_func_int_varargs *)PTR_is_big_endian_004c2950) {\n                  local_30 = puVar28;\n                  iVar36 = (*pp_Var16[0x3a])();\n                }\n                else {\n                  local_30 = puVar28;\n                  iVar36 = (*p_Var37)();\n                }\n                uVar23 = *(uint *)(pattr + 4);\n                uVar26 = *(uint *)pattr;\n                if (iVar36 == 0) {\n                  uVar2 = uVar23 & 0xff;\n                  uVar4 = uVar23 >> 8;\n                  uVar3 = uVar23 >> 0x10;\n                  uVar5 = uVar23 >> 0x18;\n                  uVar23 = (((uVar26 >> 0x10) << 0x18 | (uVar26 >> 0x18) << 0x10) >> 0x10) +\n                           ((uVar26 & 0xff) << 8 | uVar26 >> 8 & 0xff) * 0x10000;\n                  uVar26 = ((uVar3 << 0x18 | uVar5 << 0x10) >> 0x10) +\n                           (uVar2 << 8 | uVar4 & 0xff) * 0x10000;\n                }\n                uVar38 = CONCAT44(uVar26,uVar23);\n                pattr = pattr + 8;\n                pDVar22 = this->dwinfo_;\n              }\nLAB_002e3970:\n              str_off = uVar38;\n              attr_value.aux.shndx = (*local_3c)(pDVar22);\n              aVar39.refval = str_off;\n            }\njoined_r0x002e3998:\n            if (uVar32 == 0x31) {\nLAB_002e30bc:\n              this->abstract_origin_ = (off_t)aVar39;\n              aVar7 = aVar39;\n              goto LAB_002e313c;\n            }\n            if (uVar32 < 0x32) {\n              aVar7 = aVar39;\n              if (uVar32 != 1) goto LAB_002e313c;\nLAB_002e39b4:\n              aVar7 = aVar39;\n              if (attr_value.aux.shndx != 0) goto LAB_002e313c;\n              this->sibling_offset_ = (off_t)aVar39;\n              goto LAB_002e313c;\n            }\n            aVar40 = aVar39;\n            if ((uVar32 != 0x6e) && (uVar32 != 0x2007)) {\nLAB_002e339c:\n              aVar7 = aVar39;\n              if (uVar32 != 0x47) goto LAB_002e313c;\n              this->specification_ = (off_t)aVar39;\n              goto LAB_002e313c;\n            }\n            goto LAB_002e3858;\n          }\n          if (uVar29 == 7) {\n            pp_Var16 = (this->dwinfo_->object_->super_Object)._vptr_Object;\n            p_Var37 = pp_Var16[3];\n            if (p_Var37 == (_func_int_varargs *)PTR_is_big_endian_004c2950) {\n              local_30 = puVar28;\n              iVar17 = (*pp_Var16[0x3a])();\n            }\n            else {\n              local_30 = puVar28;\n              iVar17 = (*p_Var37)();\n            }\n            str_off._4_4_ = *(char **)(pattr + 4);\n            pcVar25 = *(char **)pattr;\n            if (iVar17 == 0) {\n              uVar23 = (uint)str_off._4_4_ & 0xff;\n              uVar26 = (uint)str_off._4_4_ >> 8;\n              uVar2 = (uint)str_off._4_4_ >> 0x10;\n              uVar4 = (uint)str_off._4_4_ >> 0x18;\n              str_off._4_4_ =\n                   (char *)(((((uint)pcVar25 >> 0x10) << 0x18 | ((uint)pcVar25 >> 0x18) << 0x10) >>\n                            0x10) + (((uint)pcVar25 & 0xff) << 8 | (uint)pcVar25 >> 8 & 0xff) *\n                                    0x10000);\n              pcVar25 = (char *)(((uVar2 << 0x18 | uVar4 << 0x10) >> 0x10) +\n                                (uVar23 << 8 | uVar26 & 0xff) * 0x10000);\n            }\n            pattr = pattr + 8;\n            pDVar22 = this->dwinfo_;\n            str_off._0_4_ = pcVar25;\nLAB_002e3708:\n            attr_value.aux.shndx = (*local_3c)(pDVar22,pcVar25,iVar36,local_30,local_40.shndx);\n            attr_value.val._4_4_ = str_off._4_4_;\n            attr_value.val.stringval = str_off._0_4_;\n            goto LAB_002e355c;\n          }\n          if (7 < uVar29) {\n            if (uVar29 == 10) {\n              attr_value.val.stringval = (char *)(pattr + 1);\n              attr_value.aux.shndx._0_3_ = 0;\n              attr_value.aux.shndx._3_1_ = *pattr;\n              pattr = (uchar *)((int)attr_value.val.stringval + attr_value.aux.shndx);\n              goto LAB_002e355c;\n            }\n            if (uVar29 < 0xb) {\n              if (uVar29 != 8) {\n                if (uVar29 != 9) {\n                  return false;\n                }\nLAB_002e32bc:\n                aVar27.shndx._0_3_ = 0;\n                aVar27.shndx._3_1_ = *pattr;\n                puVar15 = pattr + 1;\n                if ((char)*pattr < '\0') {\n                  (*(code *)PTR_read_unsigned_LEB_128_x_004c2980)(puVar15,&len);\n                  puVar15 = pattr + len;\n                  aVar27 = extraout_v1_00;\n                }\n                else {\n                  len = 1;\n                }\n                aVar40.blockval = puVar15;\n                aVar40.intval._4_4_ = attr_value.val.intval._4_4_;\n                attr_value.aux = aVar27;\n                pattr = pattr + aVar27.shndx + len;\n                goto LAB_002e382c;\n              }\n              attr_value.val.blockval = pattr;\n              local_30 = pattr;\n              len = (*(code *)PTR_strlen_004c5b9c)(pattr);\n              aVar40.stringval = attr_value.val.stringval;\n              aVar40.intval._4_4_ = attr_value.val.intval._4_4_;\n              aVar8.stringval = attr_value.val.stringval;\n              aVar8.intval._4_4_ = attr_value.val.intval._4_4_;\n              aVar7.stringval = attr_value.val.stringval;\n              aVar7.intval._4_4_ = attr_value.val.intval._4_4_;\n              pattr = local_30 + len + 1;\n              if (uVar32 == 0x31) goto LAB_002e313c;\n              if (0x31 < uVar32) {\n                if ((uVar32 != 0x6e) && (aVar7 = aVar8, uVar32 != 0x2007)) goto LAB_002e313c;\n                this->linkage_name_ = (char *)local_30;\n                aVar7 = aVar40;\n                goto LAB_002e313c;\n              }\nLAB_002e3118:\n              aVar7 = aVar40;\n              aVar39 = aVar40;\n              if (uVar32 == 1) goto LAB_002e313c;\njoined_r0x002e3124:\n              aVar7 = aVar39;\n              if (uVar32 != 3) goto LAB_002e313c;\n              attr_value.val.stringval = (char *)((ulonglong)aVar39 >> 0x20);\n              if (uVar29 == 8) {\n                this->name_ = attr_value.val.stringval;\n                goto LAB_002e313c;\n              }\n              if (uVar29 != 0xe) goto LAB_002e313c;\n              goto LAB_002e3284;\n            }\n            if (uVar29 < 0xd) {\n              aVar40.intval._0_7_ = 0;\n              aVar40.uintval._7_1_ = *pattr;\n              pattr = pattr + 1;\nLAB_002e382c:\n              aVar7 = aVar40;\n              if (uVar32 == 0x31) goto LAB_002e313c;\n              if (uVar32 < 0x32) goto LAB_002e3118;\n            }\n            else {\n              bVar1 = *pattr;\n              uVar23 = CONCAT31(0,bVar1);\n              puVar15 = pattr + 1;\n              if ((char)bVar1 < '\0') {\n                aVar40.intval = (*(code *)PTR_read_signed_LEB_128_x_004c297c)(puVar15,&len,uVar23);\n                puVar15 = pattr + len;\n              }\n              else {\n                len = 1;\n                aVar40.stringval = (char *)0x0;\n                aVar40.uintval._4_4_ = uVar23;\n                if ((bVar1 & 0x40) != 0) {\n                  aVar40.stringval = (char *)0xffffffff;\n                  aVar40.uintval._4_4_ = uVar23 | 0xffffff80;\n                }\n              }\n              pattr = puVar15;\n              aVar7 = aVar40;\n              if (uVar32 == 0x31) goto LAB_002e313c;\n              if (uVar32 < 0x32) {\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                iVar36 = iVar34;\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_002e314c;\nLAB_002e2f98:\n                iVar34 = iVar34 + 8;\n                attr_value.val = aVar40;\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                          (local_38,__position,&attr_value);\n                pAVar13 = this->abbrev_code_;\n                if (iVar34 == iVar31) goto LAB_002e2fb8;\n                goto LAB_002e2db4;\n              }\n            }\n            if ((uVar32 != 0x6e) && (aVar7 = aVar40, uVar32 != 0x2007)) goto LAB_002e313c;\nLAB_002e3858:\n            attr_value.val._0_4_ = aVar40.stringval;\n            aVar7 = aVar40;\n            if (uVar29 == 8) {\n              this->linkage_name_ = attr_value.val.stringval;\n              goto LAB_002e313c;\n            }\n            if (uVar29 != 0xe) goto LAB_002e313c;\n            goto LAB_002e387c;\n          }\n          if (uVar29 == 4) {\n            pp_Var16 = (this->dwinfo_->object_->super_Object)._vptr_Object;\n            p_Var37 = pp_Var16[3];\n            if (p_Var37 == (_func_int_varargs *)PTR_is_big_endian_004c2950) {\n              iVar36 = (*pp_Var16[0x3a])();\n            }\n            else {\n              iVar36 = (*p_Var37)();\n            }\n            attr_value.aux.shndx = *(uint *)pattr;\n            if (iVar36 == 0) {\n              attr_value.aux.shndx =\n                   (((attr_value.aux.shndx >> 0x10) << 0x18 | (attr_value.aux.shndx >> 0x18) << 0x10\n                    ) >> 0x10) +\n                   ((attr_value.aux.shndx & 0xff) << 8 | attr_value.aux.shndx >> 8 & 0xff) * 0x10000\n              ;\n            }\n            attr_value.val.stringval = (char *)(pattr + 4);\n            pattr = (uchar *)((int)attr_value.val.stringval + attr_value.aux.shndx);\nLAB_002e355c:\n            aVar40.stringval = attr_value.val.stringval;\n            aVar40.intval._4_4_ = attr_value.val.intval._4_4_;\n            aVar7 = aVar40;\n            if (uVar32 == 0x31) goto LAB_002e313c;\n            if (uVar32 < 0x32) goto LAB_002e3118;\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          }\n          else {\n            if (4 < uVar29) {\n              if (uVar29 != 5) {\n                if (uVar29 != 6) {\n                  return false;\n                }\n                pp_Var16 = (this->dwinfo_->object_->super_Object)._vptr_Object;\n                p_Var37 = pp_Var16[3];\n                if (p_Var37 == (_func_int_varargs *)PTR_is_big_endian_004c2950) {\n                  local_30 = puVar28;\n                  iVar17 = (*pp_Var16[0x3a])();\n                }\n                else {\n                  local_30 = puVar28;\n                  iVar17 = (*p_Var37)();\n                }\n                pcVar25 = *(char **)pattr;\n                if (iVar17 == 0) {\n                  pcVar25 = (char *)(((((uint)pcVar25 >> 0x10) << 0x18 |\n                                      ((uint)pcVar25 >> 0x18) << 0x10) >> 0x10) +\n                                    (((uint)pcVar25 & 0xff) << 8 | (uint)pcVar25 >> 8 & 0xff) *\n                                    0x10000);\n                }\n                pattr = pattr + 4;\n                pDVar22 = this->dwinfo_;\n                str_off._0_4_ = (char *)0x0;\n                str_off._4_4_ = pcVar25;\n                goto LAB_002e3708;\n              }\n              pp_Var16 = (this->dwinfo_->object_->super_Object)._vptr_Object;\n              p_Var37 = pp_Var16[3];\n              if (p_Var37 == (_func_int_varargs *)PTR_is_big_endian_004c2950) {\n                iVar36 = (*pp_Var16[0x3a])();\n              }\n              else {\n                iVar36 = (*p_Var37)();\n              }\n              uVar6 = *(ushort *)pattr;\n              if (iVar36 == 0) {\n                uVar6 = CONCAT11(pattr[1],*pattr);\n              }\n              attr_value.val.intval._4_4_ = ZEXT24(uVar6);\n              pattr = pattr + 2;\n              attr_value.val.stringval = (char *)0x0;\n              goto LAB_002e355c;\n            }\n            if (uVar29 != 1) {\n              if (uVar29 != 3) {\n                return false;\n              }\n              pp_Var16 = (this->dwinfo_->object_->super_Object)._vptr_Object;\n              p_Var37 = pp_Var16[3];\n              if (p_Var37 == (_func_int_varargs *)PTR_is_big_endian_004c2950) {\n                iVar36 = (*pp_Var16[0x3a])();\n              }\n              else {\n                iVar36 = (*p_Var37)();\n              }\n              uVar6 = *(ushort *)pattr;\n              if (iVar36 == 0) {\n                uVar6 = CONCAT11(pattr[1],*pattr);\n              }\n              attr_value.aux.shndx._0_2_ = 0;\n              attr_value.aux.shndx._2_2_ = uVar6;\n              attr_value.val.stringval = (char *)(pattr + 2);\n              pattr = (uchar *)((int)attr_value.val.stringval + attr_value.aux.shndx);\n              goto LAB_002e355c;\n            }\n            pDVar22 = this->dwinfo_;\n            if (pDVar22->address_size_ == 4) {\n              pp_Var16 = (pDVar22->object_->super_Object)._vptr_Object;\n              p_Var37 = pp_Var16[3];\n              if (p_Var37 == (_func_int_varargs *)PTR_is_big_endian_004c2950) {\n                local_30 = puVar28;\n                iVar36 = (*pp_Var16[0x3a])();\n              }\n              else {\n                local_30 = puVar28;\n                iVar36 = (*p_Var37)();\n              }\n              uVar23 = *(uint *)pattr;\n              if (iVar36 == 0) {\n                uVar23 = (((uVar23 >> 0x10) << 0x18 | (uVar23 >> 0x18) << 0x10) >> 0x10) +\n                         ((uVar23 & 0xff) << 8 | uVar23 >> 8 & 0xff) * 0x10000;\n              }\n              pattr = pattr + 4;\n              uVar38 = (ulonglong)uVar23;\n            }\n            else {\n              local_30 = puVar28;\n              uVar38 = (*local_34)(pDVar22,&pattr);\n            }\n            str_off = uVar38;\n            attr_value.aux.shndx = (*local_3c)(this->dwinfo_);\n            aVar39.refval = str_off;\n            if (uVar32 == 0x31) goto LAB_002e30bc;\n            if (uVar32 < 0x32) {\n              if (uVar32 != 1) goto joined_r0x002e3124;\n              goto LAB_002e39b4;\n            }\n            aVar7.refval = str_off;\n            if (uVar32 == 0x6e) goto LAB_002e313c;\n            if (uVar32 != 0x2007) goto LAB_002e339c;\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            aVar40.refval = str_off;\n          }\n          while( true ) {\n            iVar36 = iVar34;\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_002e2f98;\nLAB_002e314c:\n            attr_value.val.stringval = (char *)((ulonglong)aVar40 >> 0x20);\n            attr_value.val.intval._4_4_ = (undefined4)aVar40.intval;\n            iVar34 = iVar36 + 8;\n            (__position._M_current)->form = attr_value.form;\n            ((__position._M_current)->val).stringval = attr_value.val.stringval;\n            (__position._M_current)->attr = attr_value.attr;\n            *(undefined4 *)((int)&(__position._M_current)->val + 4) = attr_value.val.intval._4_4_;\n            (__position._M_current)->aux = attr_value.aux;\n            *(undefined4 *)&(__position._M_current)->field_0x14 = attr_value._20_4_;\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            pAVar13 = this->abbrev_code_;\n            attr_value.val = aVar40;\n            if (iVar34 == iVar31) goto LAB_002e2fb8;\n            puVar14 = (uint *)((int)&(pAVar13->attributes).\n                                     super__Vector_base<gold::Dwarf_abbrev_table::Attribute,_std::allocator<gold::Dwarf_abbrev_table::Attribute>_>\n                                     ._M_impl._M_start[1].attr + iVar36);\n            uVar29 = puVar14[1];\n            uVar32 = *puVar14;\n            if (uVar29 != 0x16) goto LAB_002e2dd0;\nLAB_002e31a8:\n            uVar29 = (uint)*pattr;\n            puVar15 = pattr + 1;\n            if ((char)*pattr < '\0') {\n              attr_value.val = aVar40;\n              (*(code *)PTR_read_unsigned_LEB_128_x_004c2980)(puVar15,&len,uVar29);\n              puVar15 = pattr + len;\n              uVar29 = extraout_v1;\n              aVar40 = attr_value.val;\n            }\n            else {\n              len = 1;\n            }\n            puVar18 = puVar15 + -(int)puVar30;\n            puVar28 = puVar18 + (int)this->die_offset_;\n            iVar36 = (uint)(puVar28 < puVar18) + ((int)puVar18 >> 0x1f) + *(int *)&this->die_offset_\n            ;\n            attr_value.form = uVar29;\n            pattr = puVar15;\n            if (uVar29 != 0xe) break;\nLAB_002e31fc:\n            attr_value.aux.shndx = 0;\n            pDVar22 = this->dwinfo_;\n            attr_value.attr = uVar32;\n            local_30 = puVar28;\n            attr_value.val = aVar40;\n            if (pDVar22->offset_size_ == 4) {\n              pp_Var16 = (pDVar22->object_->super_Object)._vptr_Object;\n              p_Var37 = pp_Var16[3];\n              if (p_Var37 == (_func_int_varargs *)PTR_is_big_endian_004c2950) {\n                iVar36 = (*pp_Var16[0x3a])();\n              }\n              else {\n                iVar36 = (*p_Var37)();\n              }\n              uVar29 = *(uint *)pattr;\n              if (iVar36 == 0) {\n                uVar29 = (((uVar29 >> 0x10) << 0x18 | (uVar29 >> 0x18) << 0x10) >> 0x10) +\n                         ((uVar29 & 0xff) << 8 | uVar29 >> 8 & 0xff) * 0x10000;\n              }\n              pattr = pattr + 4;\n              uVar38 = (ulonglong)uVar29;\n            }\n            else {\n              uVar38 = (*local_34)(pDVar22,&pattr);\n            }\n            str_off = uVar38;\n            attr_value.aux.shndx = (*local_3c)(this->dwinfo_);\n            aVar7.refval = str_off;\n            if (uVar32 != 0x31) {\n              if (uVar32 < 0x32) {\n                if ((uVar32 != 1) && (aVar39.refval = str_off, uVar32 == 3)) {\nLAB_002e3284:\n                  this->string_shndx_ = (uint)attr_value.aux;\n                  this->name_off_ = (off_t)aVar39;\n                  aVar7 = aVar39;\n                }\n              }\n              else {\n                aVar40.refval = str_off;\n                if (uVar32 == 0x6e) {\nLAB_002e387c:\n                  this->string_shndx_ = (uint)attr_value.aux;\n                }\n                else {\n                  if (uVar32 != 0x2007) goto LAB_002e313c;\n                  this->string_shndx_ = (uint)attr_value.aux;\n                }\n                this->linkage_name_off_ = (off_t)aVar40;\n                aVar7 = aVar40;\n              }\n            }\nLAB_002e313c:\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            aVar40 = aVar7;\n          }\n        } while( true );\n      }\n      uVar32 = (int)pattr - (int)puVar30;\n      uVar29 = uVar32 + iVar34;\n      iVar31 = (uint)(uVar29 < uVar32) + ((int)uVar32 >> 0x1f) + *(int *)&this->die_offset_;\n      if (*(int *)&pAVar13->field_0x4 < 0) {\n        *(int *)&this->child_offset_ = iVar31;\n        *(uint *)((int)&this->child_offset_ + 4) = uVar29;\n      }\n      else {\n        *(int *)&this->sibling_offset_ = iVar31;\n        *(uint *)((int)&this->sibling_offset_ + 4) = uVar29;\n      }\n      this->attributes_read_ = true;\n      return true;\n    }\n  }\n  uVar20 = (*(code *)PTR___throw_length_error_004c1e74)(puVar24 + -0xda4);\n  return (bool)uVar20;\n}\n\n" comment 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  uint uVar4;\n  uint uVar5;\n  ushort uVar6;\n  anon_union_8_5_56ef6665_for_val aVar7;\n  anon_union_8_5_56ef6665_for_val aVar8;\n  anon_union_8_5_56ef6665_for_val aVar9;\n  anon_union_8_5_56ef6665_for_val aVar10;\n  anon_union_8_5_56ef6665_for_val aVar11;\n  anon_union_8_5_56ef6665_for_val aVar12;\n  Abbrev_code *pAVar13;\n  uint *puVar14;\n  uchar *puVar15;\n  _func_int_varargs **pp_Var16;\n  int iVar17;\n  uchar *puVar18;\n  pointer pAVar19;\n  undefined1 uVar20;\n  bool bVar21;\n  uint extraout_v1;\n  anon_union_4_3_97895b06_for_aux extraout_v1_00;\n  Dwarf_info_reader *pDVar22;\n  uint uVar23;\n  undefined *puVar24;\n  Dwarf_die *this_00;\n  char *pcVar25;\n  iterator __position;\n  uint uVar26;\n  anon_union_4_3_97895b06_for_aux aVar27;\n  uchar *puVar28;\n  uint uVar29;\n  uchar *puVar30;\n  int iVar31;\n  uint uVar32;\n  pointer pAVar33;\n  int iVar34;\n  pointer pAVar35;\n  int iVar36;\n  _func_int_varargs *p_Var37;\n  ulonglong uVar38;\n  anon_union_8_5_56ef6665_for_val aVar39;\n  anon_union_8_5_56ef6665_for_val aVar40;\n  Attribute_value attr_value;\n  off_t str_off;\n  size_t len;\n  uchar *pattr;\n  anon_union_4_3_97895b06_for_aux local_40;\n  code *local_3c;\n  Attributes *local_38;\n  code *local_34;\n  uchar *local_30;\n  \n  pAVar13 = this->abbrev_code_;\n  if (pAVar13 == (Abbrev_code *)0x0) {\n    puVar24 = PTR_s_in_a_linker_script_004c191c + 0x7090;\n    (*(code *)PTR_do_gold_unreachable_004c1a30)\n              (puVar24,0x2a9,PTR_s_in_a_linker_script_004c191c + 0x7414);\n  }\n  else {\n    pDVar22 = this->dwinfo_;\n    iVar34 = (int)this->die_offset_;\n    iVar31 = (int)pDVar22->cu_offset_;\n    puVar30 = pDVar22->buffer_ + iVar31 + iVar34;\n    if (pDVar22->buffer_ + iVar31 + (int)pDVar22->cu_length_ < puVar30 + 1) {\n      Dwarf_info_reader::warn_corrupt_debug_section(pDVar22);\n      return false;\n    }\n    local_38 = &this->attributes_;\n    if (puVar30 == (uchar *)0x0) {\n      return false;\n    }\n    iVar31 = (int)(pAVar13->attributes).\n                  super__Vector_base<gold::Dwarf_abbrev_table::Attribute,_std::allocator<gold::Dwarf_abbrev_table::Attribute>_>\n                  ._M_impl._M_finish -\n             (int)(pAVar13->attributes).\n                  super__Vector_base<gold::Dwarf_abbrev_table::Attribute,_std::allocator<gold::Dwarf_abbrev_table::Attribute>_>\n                  ._M_impl._M_start;\n    pattr = puVar30 + (int)this->attr_offset_;\n    uVar29 = iVar31 >> 3;\n    puVar24 = PTR_s__s_004c1a50;\n    if (uVar29 < 0xaaaaaab) {\n      pAVar33 = (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 ((uint)(((int)(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 - (int)pAVar33 >> 3) * -0x55555555) < uVar29) {\n        aVar27 = (anon_union_4_3_97895b06_for_aux)\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        iVar34 = aVar27.shndx - (int)pAVar33;\n        if (uVar29 == 0) {\n          pAVar19 = (pointer)0x0;\n          pAVar35 = pAVar33;\n        }\n        else {\n          local_40 = aVar27;\n          pAVar19 = (pointer)(*(code *)PTR_operator_new_004c13a8)(uVar29 * 0x18);\n          aVar27 = local_40;\n          pAVar35 = (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 (pAVar33 != (pointer)aVar27.shndx) {\n          (*(code *)PTR_memmove_004c5af8)(pAVar19,pAVar33,iVar34);\n        }\n        if (pAVar35 != (pointer)0x0) {\n          (*(code *)PTR_operator_delete_004c12fc)(pAVar35);\n        }\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_start = pAVar19;\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)((int)pAVar19 + iVar34);\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 = pAVar19 + uVar29;\n        if (uVar29 != 0) goto LAB_002e2d90;\nLAB_002e2fb8:\n        if (pAVar13 == (Abbrev_code *)0x0) {\n          this_00 = (Dwarf_die *)(PTR_s_in_a_linker_script_004c191c + 0x7108);\n          (*(code *)PTR_do_gold_unreachable_004c1a30)\n                    (this_00,0x206,PTR_s_in_a_linker_script_004c191c + 0x7404);\n          if (this_00->attributes_read_ == false) {\n            bVar21 = read_attributes(this_00);\n            return bVar21;\n          }\n          return this_00->attributes_read_;\n        }\n        iVar34 = (int)this->die_offset_;\n      }\n      else if (uVar29 != 0) {\nLAB_002e2d90:\n        local_3c = (code *)PTR_lookup_reloc_004c2994;\n        iVar34 = 0;\n        local_34 = (code *)PTR_read_from_pointer<64>_004c2998;\n        local_40.shndx = (uint)&str_off;\nLAB_002e2db4:\n        puVar14 = (uint *)((int)&((pAVar13->attributes).\n                                  super__Vector_base<gold::Dwarf_abbrev_table::Attribute,_std::allocator<gold::Dwarf_abbrev_table::Attribute>_>\n                                  ._M_impl._M_start)->attr + iVar34);\n        uVar29 = puVar14[1];\n        uVar32 = *puVar14;\n        aVar40 = attr_value.val;\n        if (uVar29 == 0x16) goto LAB_002e31a8;\nLAB_002e2dd0:\n        puVar15 = pattr + -(int)puVar30;\n        puVar28 = puVar15 + (int)this->die_offset_;\n        iVar36 = (uint)(puVar28 < puVar15) + ((int)puVar15 >> 0x1f) + *(int *)&this->die_offset_;\n        attr_value.form = uVar29;\n        if (uVar29 == 0xe) goto LAB_002e31fc;\n        do {\n          attr_value.val.intval._4_4_ = (undefined4)aVar40.intval;\n          attr_value.aux.shndx = 0;\n          attr_value.attr = uVar32;\n          attr_value.form = uVar29;\n          attr_value.val = aVar40;\n          if (0xe < uVar29) {\n            if (uVar29 == 0x15) {\n              if ((char)*pattr < '\0') {\n                aVar39.intval = (*(code *)PTR_read_unsigned_LEB_128_x_004c2980)(pattr + 1,&len);\n                pattr = pattr + len;\n              }\n              else {\n                aVar39.intval._0_7_ = 0;\n                aVar39.intval._7_1_ = *pattr;\n                len = 1;\n                pattr = pattr + 1;\n              }\n              goto joined_r0x002e3998;\n            }\n            if (0x15 < uVar29) {\n              if (uVar29 == 0x19) {\n                attr_value.val.intval._4_4_ = 1;\n                attr_value.val.stringval = (char *)0x0;\n              }\n              else {\n                if (uVar29 < 0x1a) {\n                  if (uVar29 != 0x17) {\n                    if (uVar29 != 0x18) {\n                      return false;\n                    }\n                    goto LAB_002e32bc;\n                  }\n                  pDVar22 = this->dwinfo_;\n                  if (pDVar22->offset_size_ == 4) {\n                    pp_Var16 = (pDVar22->object_->super_Object)._vptr_Object;\n                    p_Var37 = pp_Var16[3];\n                    if (p_Var37 == (_func_int_varargs *)PTR_is_big_endian_004c2950) {\n                      local_30 = puVar28;\n                      iVar36 = (*pp_Var16[0x3a])();\n                    }\n                    else {\n                      local_30 = puVar28;\n                      iVar36 = (*p_Var37)();\n                    }\n                    uVar23 = *(uint *)pattr;\n                    if (iVar36 == 0) {\n                      uVar23 = (((uVar23 >> 0x10) << 0x18 | (uVar23 >> 0x18) << 0x10) >> 0x10) +\n                               ((uVar23 & 0xff) << 8 | uVar23 >> 8 & 0xff) * 0x10000;\n                    }\n                    pattr = pattr + 4;\n                    uVar38 = (ulonglong)uVar23;\n                  }\n                  else {\n                    local_30 = puVar28;\n                    uVar38 = (*local_34)(pDVar22,&pattr);\n                  }\n                  pDVar22 = this->dwinfo_;\n                  goto LAB_002e3970;\n                }\n                if (uVar29 != 0x20) {\n                  if (uVar29 < 0x20) {\n                    return false;\n                  }\n                  if (1 < uVar29 - 0x1f01) {\n                    return false;\n                  }\nLAB_002e34d8:\n                  if ((char)*pattr < '\0') {\n                    aVar40.intval = (*(code *)PTR_read_unsigned_LEB_128_x_004c2980)(pattr + 1,&len);\n                    pattr = pattr + len;\n                  }\n                  else {\n                    aVar40.intval._0_7_ = 0;\n                    aVar40.intval._7_1_ = *pattr;\n                    len = 1;\n                    pattr = pattr + 1;\n                  }\n                  goto LAB_002e382c;\n                }\n                pp_Var16 = (this->dwinfo_->object_->super_Object)._vptr_Object;\n                p_Var37 = pp_Var16[3];\n                if (p_Var37 == (_func_int_varargs *)PTR_is_big_endian_004c2950) {\n                  iVar36 = (*pp_Var16[0x3a])();\n                }\n                else {\n                  iVar36 = (*p_Var37)();\n                }\n                    /* WARNING: Load size is inaccurate */\n                attr_value.val._4_4_ = pattr[4];\n                    /* WARNING: Load size is inaccurate */\n                attr_value.val.blockval = *pattr;\n                if (iVar36 == 0) {\n                  uVar23 = attr_value.val.uintval._4_4_ & 0xff;\n                  uVar26 = (uint)attr_value.val.uintval._4_4_ >> 8;\n                  uVar2 = (uint)attr_value.val.uintval._4_4_ >> 0x10;\n                  uVar4 = (uint)attr_value.val.uintval._4_4_ >> 0x18;\n                  attr_value.val.intval._4_4_ =\n                       ((((uint)attr_value.val.stringval >> 0x10) << 0x18 |\n                        ((uint)attr_value.val.stringval >> 0x18) << 0x10) >> 0x10) +\n                       (((uint)attr_value.val.stringval & 0xff) << 8 |\n                       (uint)attr_value.val.stringval >> 8 & 0xff) * 0x10000;\n                  attr_value.val.stringval =\n                       (char *)(((uVar2 << 0x18 | uVar4 << 0x10) >> 0x10) +\n                               (uVar23 << 8 | uVar26 & 0xff) * 0x10000);\n                }\n                pattr = pattr + 8;\n              }\n              aVar39.stringval = attr_value.val.stringval;\n              aVar39.intval._4_4_ = attr_value.val.intval._4_4_;\n              aVar11.stringval = attr_value.val.stringval;\n              aVar11.intval._4_4_ = attr_value.val.intval._4_4_;\n              aVar7.stringval = attr_value.val.stringval;\n              aVar7.intval._4_4_ = attr_value.val.intval._4_4_;\n              if (uVar32 == 0x6e) goto LAB_002e313c;\n              aVar7 = aVar11;\n              if (uVar32 == 0x2007) goto LAB_002e313c;\n              goto joined_r0x002e3124;\n            }\n            if (uVar29 == 0x11) {\n              puVar15 = pattr + 1;\n              uVar23 = CONCAT31(0,*pattr);\n              aVar39.stringval = (char *)0x0;\n              aVar39.intval._4_4_ = uVar23;\n              aVar12.stringval = (char *)0x0;\n              aVar12.uintval._4_4_ = uVar23;\n              aVar40.stringval = (char *)0x0;\n              aVar40.uintval._4_4_ = uVar23;\n              aVar10.stringval = (char *)0x0;\n              aVar10.uintval._4_4_ = uVar23;\n              aVar7.stringval = (char *)0x0;\n              aVar7.uintval._4_4_ = uVar23;\n              aVar9.stringval = (char *)0x0;\n              aVar9.uintval._4_4_ = uVar23;\n              pattr = puVar15;\n              if (uVar32 == 0x31) goto LAB_002e30bc;\n              if (0x31 < uVar32) {\n                if ((uVar32 != 0x6e) && (aVar40 = aVar12, uVar32 != 0x2007)) {\n                  if (uVar32 != 0x47) goto LAB_002e313c;\n                  *(undefined4 *)&this->specification_ = 0;\n                  *(uint *)((int)&this->specification_ + 4) = uVar23;\n                  aVar7 = aVar10;\n                  goto LAB_002e313c;\n                }\n                goto LAB_002e3858;\n              }\n              if (uVar32 == 1) {\n                *(undefined4 *)&this->sibling_offset_ = 0;\n                *(uint *)((int)&this->sibling_offset_ + 4) = uVar23;\n                aVar7 = aVar9;\n                goto LAB_002e313c;\n              }\n              goto joined_r0x002e3124;\n            }\n            if (uVar29 < 0x12) {\n              if (uVar29 == 0xf) goto LAB_002e34d8;\n              if (uVar29 != 0x10) {\n                return false;\n              }\n              pDVar22 = this->dwinfo_;\n              uVar23 = pDVar22->offset_size_;\n              if (pDVar22->cu_version_ < 3) {\n                uVar23 = pDVar22->address_size_;\n              }\n              if (uVar23 == 4) {\n                pp_Var16 = (pDVar22->object_->super_Object)._vptr_Object;\n                p_Var37 = pp_Var16[3];\n                if (p_Var37 == (_func_int_varargs *)PTR_is_big_endian_004c2950) {\n                  local_30 = puVar28;\n                  iVar36 = (*pp_Var16[0x3a])();\n                }\n                else {\n                  local_30 = puVar28;\n                  iVar36 = (*p_Var37)();\n                }\n                uVar23 = *(uint *)pattr;\n                if (iVar36 == 0) {\n                  uVar23 = (((uVar23 >> 0x10) << 0x18 | (uVar23 >> 0x18) << 0x10) >> 0x10) +\n                           ((uVar23 & 0xff) << 8 | uVar23 >> 8 & 0xff) * 0x10000;\n                }\n                pattr = pattr + 4;\n                uVar38 = (ulonglong)uVar23;\n              }\n              else {\n                local_30 = puVar28;\n                uVar38 = (*local_34)(pDVar22,&pattr);\n              }\n              str_off = uVar38;\n              attr_value.aux.shndx = (*local_3c)(this->dwinfo_);\n              aVar39.refval = str_off;\n            }\n            else {\n              if (uVar29 == 0x13) {\n                pp_Var16 = (this->dwinfo_->object_->super_Object)._vptr_Object;\n                p_Var37 = pp_Var16[3];\n                if (p_Var37 == (_func_int_varargs *)PTR_is_big_endian_004c2950) {\n                  local_30 = puVar28;\n                  iVar36 = (*pp_Var16[0x3a])();\n                }\n                else {\n                  local_30 = puVar28;\n                  iVar36 = (*p_Var37)();\n                }\n                uVar23 = *(uint *)pattr;\n                if (iVar36 == 0) {\n                  uVar23 = (((uVar23 >> 0x10) << 0x18 | (uVar23 >> 0x18) << 0x10) >> 0x10) +\n                           ((uVar23 & 0xff) << 8 | uVar23 >> 8 & 0xff) * 0x10000;\n                }\n                pattr = pattr + 4;\n                pDVar22 = this->dwinfo_;\n                uVar38 = (ulonglong)uVar23;\n              }\n              else {\n                if (uVar29 < 0x14) {\n                  pp_Var16 = (this->dwinfo_->object_->super_Object)._vptr_Object;\n                  p_Var37 = pp_Var16[3];\n                  if (p_Var37 == (_func_int_varargs *)PTR_is_big_endian_004c2950) {\n                    iVar36 = (*pp_Var16[0x3a])();\n                  }\n                  else {\n                    iVar36 = (*p_Var37)();\n                  }\n                  uVar6 = *(ushort *)pattr;\n                  if (iVar36 == 0) {\n                    uVar6 = CONCAT11(pattr[1],*pattr);\n                  }\n                  aVar39.intval._0_6_ = 0;\n                  aVar39.intval._6_2_ = uVar6;\n                  pattr = pattr + 2;\n                  goto joined_r0x002e3998;\n                }\n                pp_Var16 = (this->dwinfo_->object_->super_Object)._vptr_Object;\n                p_Var37 = pp_Var16[3];\n                if (p_Var37 == (_func_int_varargs *)PTR_is_big_endian_004c2950) {\n                  local_30 = puVar28;\n                  iVar36 = (*pp_Var16[0x3a])();\n                }\n                else {\n                  local_30 = puVar28;\n                  iVar36 = (*p_Var37)();\n                }\n                uVar23 = *(uint *)(pattr + 4);\n                uVar26 = *(uint *)pattr;\n                if (iVar36 == 0) {\n                  uVar2 = uVar23 & 0xff;\n                  uVar4 = uVar23 >> 8;\n                  uVar3 = uVar23 >> 0x10;\n                  uVar5 = uVar23 >> 0x18;\n                  uVar23 = (((uVar26 >> 0x10) << 0x18 | (uVar26 >> 0x18) << 0x10) >> 0x10) +\n                           ((uVar26 & 0xff) << 8 | uVar26 >> 8 & 0xff) * 0x10000;\n                  uVar26 = ((uVar3 << 0x18 | uVar5 << 0x10) >> 0x10) +\n                           (uVar2 << 8 | uVar4 & 0xff) * 0x10000;\n                }\n                uVar38 = CONCAT44(uVar26,uVar23);\n                pattr = pattr + 8;\n                pDVar22 = this->dwinfo_;\n              }\nLAB_002e3970:\n              str_off = uVar38;\n              attr_value.aux.shndx = (*local_3c)(pDVar22);\n              aVar39.refval = str_off;\n            }\njoined_r0x002e3998:\n            if (uVar32 == 0x31) {\nLAB_002e30bc:\n              this->abstract_origin_ = (off_t)aVar39;\n              aVar7 = aVar39;\n              goto LAB_002e313c;\n            }\n            if (uVar32 < 0x32) {\n              aVar7 = aVar39;\n              if (uVar32 != 1) goto LAB_002e313c;\nLAB_002e39b4:\n              aVar7 = aVar39;\n              if (attr_value.aux.shndx != 0) goto LAB_002e313c;\n              this->sibling_offset_ = (off_t)aVar39;\n              goto LAB_002e313c;\n            }\n            aVar40 = aVar39;\n            if ((uVar32 != 0x6e) && (uVar32 != 0x2007)) {\nLAB_002e339c:\n              aVar7 = aVar39;\n              if (uVar32 != 0x47) goto LAB_002e313c;\n              this->specification_ = (off_t)aVar39;\n              goto LAB_002e313c;\n            }\n            goto LAB_002e3858;\n          }\n          if (uVar29 == 7) {\n            pp_Var16 = (this->dwinfo_->object_->super_Object)._vptr_Object;\n            p_Var37 = pp_Var16[3];\n            if (p_Var37 == (_func_int_varargs *)PTR_is_big_endian_004c2950) {\n              local_30 = puVar28;\n              iVar17 = (*pp_Var16[0x3a])();\n            }\n            else {\n              local_30 = puVar28;\n              iVar17 = (*p_Var37)();\n            }\n            str_off._4_4_ = *(char **)(pattr + 4);\n            pcVar25 = *(char **)pattr;\n            if (iVar17 == 0) {\n              uVar23 = (uint)str_off._4_4_ & 0xff;\n              uVar26 = (uint)str_off._4_4_ >> 8;\n              uVar2 = (uint)str_off._4_4_ >> 0x10;\n              uVar4 = (uint)str_off._4_4_ >> 0x18;\n              str_off._4_4_ =\n                   (char *)(((((uint)pcVar25 >> 0x10) << 0x18 | ((uint)pcVar25 >> 0x18) << 0x10) >>\n                            0x10) + (((uint)pcVar25 & 0xff) << 8 | (uint)pcVar25 >> 8 & 0xff) *\n                                    0x10000);\n              pcVar25 = (char *)(((uVar2 << 0x18 | uVar4 << 0x10) >> 0x10) +\n                                (uVar23 << 8 | uVar26 & 0xff) * 0x10000);\n            }\n            pattr = pattr + 8;\n            pDVar22 = this->dwinfo_;\n            str_off._0_4_ = pcVar25;\nLAB_002e3708:\n            attr_value.aux.shndx = (*local_3c)(pDVar22,pcVar25,iVar36,local_30,local_40.shndx);\n            attr_value.val._4_4_ = str_off._4_4_;\n            attr_value.val.stringval = str_off._0_4_;\n            goto LAB_002e355c;\n          }\n          if (7 < uVar29) {\n            if (uVar29 == 10) {\n              attr_value.val.stringval = (char *)(pattr + 1);\n              attr_value.aux.shndx._0_3_ = 0;\n              attr_value.aux.shndx._3_1_ = *pattr;\n              pattr = (uchar *)((int)attr_value.val.stringval + attr_value.aux.shndx);\n              goto LAB_002e355c;\n            }\n            if (uVar29 < 0xb) {\n              if (uVar29 != 8) {\n                if (uVar29 != 9) {\n                  return false;\n                }\nLAB_002e32bc:\n                aVar27.shndx._0_3_ = 0;\n                aVar27.shndx._3_1_ = *pattr;\n                puVar15 = pattr + 1;\n                if ((char)*pattr < '\0') {\n                  (*(code *)PTR_read_unsigned_LEB_128_x_004c2980)(puVar15,&len);\n                  puVar15 = pattr + len;\n                  aVar27 = extraout_v1_00;\n                }\n                else {\n                  len = 1;\n                }\n                aVar40.blockval = puVar15;\n                aVar40.intval._4_4_ = attr_value.val.intval._4_4_;\n                attr_value.aux = aVar27;\n                pattr = pattr + aVar27.shndx + len;\n                goto LAB_002e382c;\n              }\n              attr_value.val.blockval = pattr;\n              local_30 = pattr;\n              len = (*(code *)PTR_strlen_004c5b9c)(pattr);\n              aVar40.stringval = attr_value.val.stringval;\n              aVar40.intval._4_4_ = attr_value.val.intval._4_4_;\n              aVar8.stringval = attr_value.val.stringval;\n              aVar8.intval._4_4_ = attr_value.val.intval._4_4_;\n              aVar7.stringval = attr_value.val.stringval;\n              aVar7.intval._4_4_ = attr_value.val.intval._4_4_;\n              pattr = local_30 + len + 1;\n              if (uVar32 == 0x31) goto LAB_002e313c;\n              if (0x31 < uVar32) {\n                if ((uVar32 != 0x6e) && (aVar7 = aVar8, uVar32 != 0x2007)) goto LAB_002e313c;\n                this->linkage_name_ = (char *)local_30;\n                aVar7 = aVar40;\n                goto LAB_002e313c;\n              }\nLAB_002e3118:\n              aVar7 = aVar40;\n              aVar39 = aVar40;\n              if (uVar32 == 1) goto LAB_002e313c;\njoined_r0x002e3124:\n              aVar7 = aVar39;\n              if (uVar32 != 3) goto LAB_002e313c;\n              attr_value.val.stringval = (char *)((ulonglong)aVar39 >> 0x20);\n              if (uVar29 == 8) {\n                this->name_ = attr_value.val.stringval;\n                goto LAB_002e313c;\n              }\n              if (uVar29 != 0xe) goto LAB_002e313c;\n              goto LAB_002e3284;\n            }\n            if (uVar29 < 0xd) {\n              aVar40.intval._0_7_ = 0;\n              aVar40.uintval._7_1_ = *pattr;\n              pattr = pattr + 1;\nLAB_002e382c:\n              aVar7 = aVar40;\n              if (uVar32 == 0x31) goto LAB_002e313c;\n              if (uVar32 < 0x32) goto LAB_002e3118;\n            }\n            else {\n              bVar1 = *pattr;\n              uVar23 = CONCAT31(0,bVar1);\n              puVar15 = pattr + 1;\n              if ((char)bVar1 < '\0') {\n                aVar40.intval = (*(code *)PTR_read_signed_LEB_128_x_004c297c)(puVar15,&len,uVar23);\n                puVar15 = pattr + len;\n              }\n              else {\n                len = 1;\n                aVar40.stringval = (char *)0x0;\n                aVar40.uintval._4_4_ = uVar23;\n                if ((bVar1 & 0x40) != 0) {\n                  aVar40.stringval = (char *)0xffffffff;\n                  aVar40.uintval._4_4_ = uVar23 | 0xffffff80;\n                }\n              }\n              pattr = puVar15;\n              aVar7 = aVar40;\n              if (uVar32 == 0x31) goto LAB_002e313c;\n              if (uVar32 < 0x32) {\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                iVar36 = iVar34;\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_002e314c;\nLAB_002e2f98:\n                iVar34 = iVar34 + 8;\n                attr_value.val = aVar40;\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                          (local_38,__position,&attr_value);\n                pAVar13 = this->abbrev_code_;\n                if (iVar34 == iVar31) goto LAB_002e2fb8;\n                goto LAB_002e2db4;\n              }\n            }\n            if ((uVar32 != 0x6e) && (aVar7 = aVar40, uVar32 != 0x2007)) goto LAB_002e313c;\nLAB_002e3858:\n            attr_value.val._0_4_ = aVar40.stringval;\n            aVar7 = aVar40;\n            if (uVar29 == 8) {\n              this->linkage_name_ = attr_value.val.stringval;\n              goto LAB_002e313c;\n            }\n            if (uVar29 != 0xe) goto LAB_002e313c;\n            goto LAB_002e387c;\n          }\n          if (uVar29 == 4) {\n            pp_Var16 = (this->dwinfo_->object_->super_Object)._vptr_Object;\n            p_Var37 = pp_Var16[3];\n            if (p_Var37 == (_func_int_varargs *)PTR_is_big_endian_004c2950) {\n              iVar36 = (*pp_Var16[0x3a])();\n            }\n            else {\n              iVar36 = (*p_Var37)();\n            }\n            attr_value.aux.shndx = *(uint *)pattr;\n            if (iVar36 == 0) {\n              attr_value.aux.shndx =\n                   (((attr_value.aux.shndx >> 0x10) << 0x18 | (attr_value.aux.shndx >> 0x18) << 0x10\n                    ) >> 0x10) +\n                   ((attr_value.aux.shndx & 0xff) << 8 | attr_value.aux.shndx >> 8 & 0xff) * 0x10000\n              ;\n            }\n            attr_value.val.stringval = (char *)(pattr + 4);\n            pattr = (uchar *)((int)attr_value.val.stringval + attr_value.aux.shndx);\nLAB_002e355c:\n            aVar40.stringval = attr_value.val.stringval;\n            aVar40.intval._4_4_ = attr_value.val.intval._4_4_;\n            aVar7 = aVar40;\n            if (uVar32 == 0x31) goto LAB_002e313c;\n            if (uVar32 < 0x32) goto LAB_002e3118;\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          }\n          else {\n            if (4 < uVar29) {\n              if (uVar29 != 5) {\n                if (uVar29 != 6) {\n                  return false;\n                }\n                pp_Var16 = (this->dwinfo_->object_->super_Object)._vptr_Object;\n                p_Var37 = pp_Var16[3];\n                if (p_Var37 == (_func_int_varargs *)PTR_is_big_endian_004c2950) {\n                  local_30 = puVar28;\n                  iVar17 = (*pp_Var16[0x3a])();\n                }\n                else {\n                  local_30 = puVar28;\n                  iVar17 = (*p_Var37)();\n                }\n                pcVar25 = *(char **)pattr;\n                if (iVar17 == 0) {\n                  pcVar25 = (char *)(((((uint)pcVar25 >> 0x10) << 0x18 |\n                                      ((uint)pcVar25 >> 0x18) << 0x10) >> 0x10) +\n                                    (((uint)pcVar25 & 0xff) << 8 | (uint)pcVar25 >> 8 & 0xff) *\n                                    0x10000);\n                }\n                pattr = pattr + 4;\n                pDVar22 = this->dwinfo_;\n                str_off._0_4_ = (char *)0x0;\n                str_off._4_4_ = pcVar25;\n                goto LAB_002e3708;\n              }\n              pp_Var16 = (this->dwinfo_->object_->super_Object)._vptr_Object;\n              p_Var37 = pp_Var16[3];\n              if (p_Var37 == (_func_int_varargs *)PTR_is_big_endian_004c2950) {\n                iVar36 = (*pp_Var16[0x3a])();\n              }\n              else {\n                iVar36 = (*p_Var37)();\n              }\n              uVar6 = *(ushort *)pattr;\n              if (iVar36 == 0) {\n                uVar6 = CONCAT11(pattr[1],*pattr);\n              }\n              attr_value.val.intval._4_4_ = ZEXT24(uVar6);\n              pattr = pattr + 2;\n              attr_value.val.stringval = (char *)0x0;\n              goto LAB_002e355c;\n            }\n            if (uVar29 != 1) {\n              if (uVar29 != 3) {\n                return false;\n              }\n              pp_Var16 = (this->dwinfo_->object_->super_Object)._vptr_Object;\n              p_Var37 = pp_Var16[3];\n              if (p_Var37 == (_func_int_varargs *)PTR_is_big_endian_004c2950) {\n                iVar36 = (*pp_Var16[0x3a])();\n              }\n              else {\n                iVar36 = (*p_Var37)();\n              }\n              uVar6 = *(ushort *)pattr;\n              if (iVar36 == 0) {\n                uVar6 = CONCAT11(pattr[1],*pattr);\n              }\n              attr_value.aux.shndx._0_2_ = 0;\n              attr_value.aux.shndx._2_2_ = uVar6;\n              attr_value.val.stringval = (char *)(pattr + 2);\n              pattr = (uchar *)((int)attr_value.val.stringval + attr_value.aux.shndx);\n              goto LAB_002e355c;\n            }\n            pDVar22 = this->dwinfo_;\n            if (pDVar22->address_size_ == 4) {\n              pp_Var16 = (pDVar22->object_->super_Object)._vptr_Object;\n              p_Var37 = pp_Var16[3];\n              if (p_Var37 == (_func_int_varargs *)PTR_is_big_endian_004c2950) {\n                local_30 = puVar28;\n                iVar36 = (*pp_Var16[0x3a])();\n              }\n              else {\n                local_30 = puVar28;\n                iVar36 = (*p_Var37)();\n              }\n              uVar23 = *(uint *)pattr;\n              if (iVar36 == 0) {\n                uVar23 = (((uVar23 >> 0x10) << 0x18 | (uVar23 >> 0x18) << 0x10) >> 0x10) +\n                         ((uVar23 & 0xff) << 8 | uVar23 >> 8 & 0xff) * 0x10000;\n              }\n              pattr = pattr + 4;\n              uVar38 = (ulonglong)uVar23;\n            }\n            else {\n              local_30 = puVar28;\n              uVar38 = (*local_34)(pDVar22,&pattr);\n            }\n            str_off = uVar38;\n            attr_value.aux.shndx = (*local_3c)(this->dwinfo_);\n            aVar39.refval = str_off;\n            if (uVar32 == 0x31) goto LAB_002e30bc;\n            if (uVar32 < 0x32) {\n              if (uVar32 != 1) goto joined_r0x002e3124;\n              goto LAB_002e39b4;\n            }\n            aVar7.refval = str_off;\n            if (uVar32 == 0x6e) goto LAB_002e313c;\n            if (uVar32 != 0x2007) goto LAB_002e339c;\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            aVar40.refval = str_off;\n          }\n          while( true ) {\n            iVar36 = iVar34;\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_002e2f98;\nLAB_002e314c:\n            attr_value.val.stringval = (char *)((ulonglong)aVar40 >> 0x20);\n            attr_value.val.intval._4_4_ = (undefined4)aVar40.intval;\n            iVar34 = iVar36 + 8;\n            (__position._M_current)->form = attr_value.form;\n            ((__position._M_current)->val).stringval = attr_value.val.stringval;\n            (__position._M_current)->attr = attr_value.attr;\n            *(undefined4 *)((int)&(__position._M_current)->val + 4) = attr_value.val.intval._4_4_;\n            (__position._M_current)->aux = attr_value.aux;\n            *(undefined4 *)&(__position._M_current)->field_0x14 = attr_value._20_4_;\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            pAVar13 = this->abbrev_code_;\n            attr_value.val = aVar40;\n            if (iVar34 == iVar31) goto LAB_002e2fb8;\n            puVar14 = (uint *)((int)&(pAVar13->attributes).\n                                     super__Vector_base<gold::Dwarf_abbrev_table::Attribute,_std::allocator<gold::Dwarf_abbrev_table::Attribute>_>\n                                     ._M_impl._M_start[1].attr + iVar36);\n            uVar29 = puVar14[1];\n            uVar32 = *puVar14;\n            if (uVar29 != 0x16) goto LAB_002e2dd0;\nLAB_002e31a8:\n            uVar29 = (uint)*pattr;\n            puVar15 = pattr + 1;\n            if ((char)*pattr < '\0') {\n              attr_value.val = aVar40;\n              (*(code *)PTR_read_unsigned_LEB_128_x_004c2980)(puVar15,&len,uVar29);\n              puVar15 = pattr + len;\n              uVar29 = extraout_v1;\n              aVar40 = attr_value.val;\n            }\n            else {\n              len = 1;\n            }\n            puVar18 = puVar15 + -(int)puVar30;\n            puVar28 = puVar18 + (int)this->die_offset_;\n            iVar36 = (uint)(puVar28 < puVar18) + ((int)puVar18 >> 0x1f) + *(int *)&this->die_offset_\n            ;\n            attr_value.form = uVar29;\n            pattr = puVar15;\n            if (uVar29 != 0xe) break;\nLAB_002e31fc:\n            attr_value.aux.shndx = 0;\n            pDVar22 = this->dwinfo_;\n            attr_value.attr = uVar32;\n            local_30 = puVar28;\n            attr_value.val = aVar40;\n            if (pDVar22->offset_size_ == 4) {\n              pp_Var16 = (pDVar22->object_->super_Object)._vptr_Object;\n              p_Var37 = pp_Var16[3];\n              if (p_Var37 == (_func_int_varargs *)PTR_is_big_endian_004c2950) {\n                iVar36 = (*pp_Var16[0x3a])();\n              }\n              else {\n                iVar36 = (*p_Var37)();\n              }\n              uVar29 = *(uint *)pattr;\n              if (iVar36 == 0) {\n                uVar29 = (((uVar29 >> 0x10) << 0x18 | (uVar29 >> 0x18) << 0x10) >> 0x10) +\n                         ((uVar29 & 0xff) << 8 | uVar29 >> 8 & 0xff) * 0x10000;\n              }\n              pattr = pattr + 4;\n              uVar38 = (ulonglong)uVar29;\n            }\n            else {\n              uVar38 = (*local_34)(pDVar22,&pattr);\n            }\n            str_off = uVar38;\n            attr_value.aux.shndx = (*local_3c)(this->dwinfo_);\n            aVar7.refval = str_off;\n            if (uVar32 != 0x31) {\n              if (uVar32 < 0x32) {\n                if ((uVar32 != 1) && (aVar39.refval = str_off, uVar32 == 3)) {\nLAB_002e3284:\n                  this->string_shndx_ = (uint)attr_value.aux;\n                  this->name_off_ = (off_t)aVar39;\n                  aVar7 = aVar39;\n                }\n              }\n              else {\n                aVar40.refval = str_off;\n                if (uVar32 == 0x6e) {\nLAB_002e387c:\n                  this->string_shndx_ = (uint)attr_value.aux;\n                }\n                else {\n                  if (uVar32 != 0x2007) goto LAB_002e313c;\n                  this->string_shndx_ = (uint)attr_value.aux;\n                }\n                this->linkage_name_off_ = (off_t)aVar40;\n                aVar7 = aVar40;\n              }\n            }\nLAB_002e313c:\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            aVar40 = aVar7;\n          }\n        } while( true );\n      }\n      uVar32 = (int)pattr - (int)puVar30;\n      uVar29 = uVar32 + iVar34;\n      iVar31 = (uint)(uVar29 < uVar32) + ((int)uVar32 >> 0x1f) + *(int *)&this->die_offset_;\n      if (*(int *)&pAVar13->field_0x4 < 0) {\n        *(int *)&this->child_offset_ = iVar31;\n        *(uint *)((int)&this->child_offset_ + 4) = uVar29;\n      }\n      else {\n        *(int *)&this->sibling_offset_ = iVar31;\n        *(uint *)((int)&this->sibling_offset_ + 4) = uVar29;\n      }\n      this->attributes_read_ = true;\n      return true;\n    }\n  }\n  uVar20 = (*(code *)PTR___throw_length_error_004c1e74)(puVar24 + -0xda4);\n  return (bool)uVar20;\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  uint uVar4;\n  uint uVar5;\n  ushort uVar6;\n  anon_union_8_5_56ef6665_for_val aVar7;\n  anon_union_8_5_56ef6665_for_val aVar8;\n  anon_union_8_5_56ef6665_for_val aVar9;\n  anon_union_8_5_56ef6665_for_val aVar10;\n  anon_union_8_5_56ef6665_for_val aVar11;\n  anon_union_8_5_56ef6665_for_val aVar12;\n  Abbrev_code *pAVar13;\n  uint *puVar14;\n  uchar *puVar15;\n  _func_int_varargs **pp_Var16;\n  int iVar17;\n  uchar *puVar18;\n  pointer pAVar19;\n  undefined1 uVar20;\n  bool bVar21;\n  uint extraout_v1;\n  anon_union_4_3_97895b06_for_aux extraout_v1_00;\n  Dwarf_info_reader *pDVar22;\n  uint uVar23;\n  undefined *puVar24;\n  Dwarf_die *this_00;\n  char *pcVar25;\n  iterator __position;\n  uint uVar26;\n  anon_union_4_3_97895b06_for_aux aVar27;\n  uchar *puVar28;\n  uint uVar29;\n  uchar *puVar30;\n  int iVar31;\n  uint uVar32;\n  pointer pAVar33;\n  int iVar34;\n  pointer pAVar35;\n  int iVar36;\n  _func_int_varargs *p_Var37;\n  ulonglong uVar38;\n  anon_union_8_5_56ef6665_for_val aVar39;\n  anon_union_8_5_56ef6665_for_val aVar40;\n  Attribute_value attr_value;\n  off_t str_off;\n  size_t len;\n  uchar *pattr;\n  anon_union_4_3_97895b06_for_aux local_40;\n  code *local_3c;\n  Attributes *local_38;\n  code *local_34;\n  uchar *local_30;\n  \n  pAVar13 = this->abbrev_code_;\n  if (pAVar13 == (Abbrev_code *)0x0) {\n    puVar24 = PTR_s_in_a_linker_script_004c191c + 0x7090;\n    (*(code *)PTR_do_gold_unreachable_004c1a30)\n              (puVar24,0x2a9,PTR_s_in_a_linker_script_004c191c + 0x7414);\n  }\n  else {\n    pDVar22 = this->dwinfo_;\n    iVar34 = (int)this->die_offset_;\n    iVar31 = (int)pDVar22->cu_offset_;\n    puVar30 = pDVar22->buffer_ + iVar31 + iVar34;\n    if (pDVar22->buffer_ + iVar31 + (int)pDVar22->cu_length_ < puVar30 + 1) {\n      Dwarf_info_reader::warn_corrupt_debug_section(pDVar22);\n      return false;\n    }\n    local_38 = &this->attributes_;\n    if (puVar30 == (uchar *)0x0) {\n      return false;\n    }\n    iVar31 = (int)(pAVar13->attributes).\n                  super__Vector_base<gold::Dwarf_abbrev_table::Attribute,_std::allocator<gold::Dwarf_abbrev_table::Attribute>_>\n                  ._M_impl._M_finish -\n             (int)(pAVar13->attributes).\n                  super__Vector_base<gold::Dwarf_abbrev_table::Attribute,_std::allocator<gold::Dwarf_abbrev_table::Attribute>_>\n                  ._M_impl._M_start;\n    pattr = puVar30 + (int)this->attr_offset_;\n    uVar29 = iVar31 >> 3;\n    puVar24 = PTR_s__s_004c1a50;\n    if (uVar29 < 0xaaaaaab) {\n      pAVar33 = (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 ((uint)(((int)(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 - (int)pAVar33 >> 3) * -0x55555555) < uVar29) {\n        aVar27 = (anon_union_4_3_97895b06_for_aux)\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        iVar34 = aVar27.shndx - (int)pAVar33;\n        if (uVar29 == 0) {\n          pAVar19 = (pointer)0x0;\n          pAVar35 = pAVar33;\n        }\n        else {\n          local_40 = aVar27;\n          pAVar19 = (pointer)(*(code *)PTR_operator_new_004c13a8)(uVar29 * 0x18);\n          aVar27 = local_40;\n          pAVar35 = (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 (pAVar33 != (pointer)aVar27.shndx) {\n          (*(code *)PTR_memmove_004c5af8)(pAVar19,pAVar33,iVar34);\n        }\n        if (pAVar35 != (pointer)0x0) {\n          (*(code *)PTR_operator_delete_004c12fc)(pAVar35);\n        }\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_start = pAVar19;\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)((int)pAVar19 + iVar34);\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 = pAVar19 + uVar29;\n        if (uVar29 != 0) goto LAB_002e2d90;\nLAB_002e2fb8:\n        if (pAVar13 == (Abbrev_code *)0x0) {\n          this_00 = (Dwarf_die *)(PTR_s_in_a_linker_script_004c191c + 0x7108);\n          (*(code *)PTR_do_gold_unreachable_004c1a30)\n                    (this_00,0x206,PTR_s_in_a_linker_script_004c191c + 0x7404);\n          if (this_00->attributes_read_ == false) {\n            bVar21 = read_attributes(this_00);\n            return bVar21;\n          }\n          return this_00->attributes_read_;\n        }\n        iVar34 = (int)this->die_offset_;\n      }\n      else if (uVar29 != 0) {\nLAB_002e2d90:\n        local_3c = (code *)PTR_lookup_reloc_004c2994;\n        iVar34 = 0;\n        local_34 = (code *)PTR_read_from_pointer<64>_004c2998;\n        local_40.shndx = (uint)&str_off;\nLAB_002e2db4:\n        puVar14 = (uint *)((int)&((pAVar13->attributes).\n                                  super__Vector_base<gold::Dwarf_abbrev_table::Attribute,_std::allocator<gold::Dwarf_abbrev_table::Attribute>_>\n                                  ._M_impl._M_start)->attr + iVar34);\n        uVar29 = puVar14[1];\n        uVar32 = *puVar14;\n        aVar40 = attr_value.val;\n        if (uVar29 == 0x16) goto LAB_002e31a8;\nLAB_002e2dd0:\n        puVar15 = pattr + -(int)puVar30;\n        puVar28 = puVar15 + (int)this->die_offset_;\n        iVar36 = (uint)(puVar28 < puVar15) + ((int)puVar15 >> 0x1f) + *(int *)&this->die_offset_;\n        attr_value.form = uVar29;\n        if (uVar29 == 0xe) goto LAB_002e31fc;\n        do {\n          attr_value.val.intval._4_4_ = (undefined4)aVar40.intval;\n          attr_value.aux.shndx = 0;\n          attr_value.attr = uVar32;\n          attr_value.form = uVar29;\n          attr_value.val = aVar40;\n          if (0xe < uVar29) {\n            if (uVar29 == 0x15) {\n              if ((char)*pattr < '\0') {\n                aVar39.intval = (*(code *)PTR_read_unsigned_LEB_128_x_004c2980)(pattr + 1,&len);\n                pattr = pattr + len;\n              }\n              else {\n                aVar39.intval._0_7_ = 0;\n                aVar39.intval._7_1_ = *pattr;\n                len = 1;\n                pattr = pattr + 1;\n              }\n              goto joined_r0x002e3998;\n            }\n            if (0x15 < uVar29) {\n              if (uVar29 == 0x19) {\n                attr_value.val.intval._4_4_ = 1;\n                attr_value.val.stringval = (char *)0x0;\n              }\n              else {\n                if (uVar29 < 0x1a) {\n                  if (uVar29 != 0x17) {\n                    if (uVar29 != 0x18) {\n                      return false;\n                    }\n                    goto LAB_002e32bc;\n                  }\n                  pDVar22 = this->dwinfo_;\n                  if (pDVar22->offset_size_ == 4) {\n                    pp_Var16 = (pDVar22->object_->super_Object)._vptr_Object;\n                    p_Var37 = pp_Var16[3];\n                    if (p_Var37 == (_func_int_varargs *)PTR_is_big_endian_004c2950) {\n                      local_30 = puVar28;\n                      iVar36 = (*pp_Var16[0x3a])();\n                    }\n                    else {\n                      local_30 = puVar28;\n                      iVar36 = (*p_Var37)();\n                    }\n                    uVar23 = *(uint *)pattr;\n                    if (iVar36 == 0) {\n                      uVar23 = (((uVar23 >> 0x10) << 0x18 | (uVar23 >> 0x18) << 0x10) >> 0x10) +\n                               ((uVar23 & 0xff) << 8 | uVar23 >> 8 & 0xff) * 0x10000;\n                    }\n                    pattr = pattr + 4;\n                    uVar38 = (ulonglong)uVar23;\n                  }\n                  else {\n                    local_30 = puVar28;\n                    uVar38 = (*local_34)(pDVar22,&pattr);\n                  }\n                  pDVar22 = this->dwinfo_;\n                  goto LAB_002e3970;\n                }\n                if (uVar29 != 0x20) {\n                  if (uVar29 < 0x20) {\n                    return false;\n                  }\n                  if (1 < uVar29 - 0x1f01) {\n                    return false;\n                  }\nLAB_002e34d8:\n                  if ((char)*pattr < '\0') {\n                    aVar40.intval = (*(code *)PTR_read_unsigned_LEB_128_x_004c2980)(pattr + 1,&len);\n                    pattr = pattr + len;\n                  }\n                  else {\n                    aVar40.intval._0_7_ = 0;\n                    aVar40.intval._7_1_ = *pattr;\n                    len = 1;\n                    pattr = pattr + 1;\n                  }\n                  goto LAB_002e382c;\n                }\n                pp_Var16 = (this->dwinfo_->object_->super_Object)._vptr_Object;\n                p_Var37 = pp_Var16[3];\n                if (p_Var37 == (_func_int_varargs *)PTR_is_big_endian_004c2950) {\n                  iVar36 = (*pp_Var16[0x3a])();\n                }\n                else {\n                  iVar36 = (*p_Var37)();\n                }\n                    /* WARNING: Load size is inaccurate */\n                attr_value.val._4_4_ = pattr[4];\n                    /* WARNING: Load size is inaccurate */\n                attr_value.val.blockval = *pattr;\n                if (iVar36 == 0) {\n                  uVar23 = attr_value.val.uintval._4_4_ & 0xff;\n                  uVar26 = (uint)attr_value.val.uintval._4_4_ >> 8;\n                  uVar2 = (uint)attr_value.val.uintval._4_4_ >> 0x10;\n                  uVar4 = (uint)attr_value.val.uintval._4_4_ >> 0x18;\n                  attr_value.val.intval._4_4_ =\n                       ((((uint)attr_value.val.stringval >> 0x10) << 0x18 |\n                        ((uint)attr_value.val.stringval >> 0x18) << 0x10) >> 0x10) +\n                       (((uint)attr_value.val.stringval & 0xff) << 8 |\n                       (uint)attr_value.val.stringval >> 8 & 0xff) * 0x10000;\n                  attr_value.val.stringval =\n                       (char *)(((uVar2 << 0x18 | uVar4 << 0x10) >> 0x10) +\n                               (uVar23 << 8 | uVar26 & 0xff) * 0x10000);\n                }\n                pattr = pattr + 8;\n              }\n              aVar39.stringval = attr_value.val.stringval;\n              aVar39.intval._4_4_ = attr_value.val.intval._4_4_;\n              aVar11.stringval = attr_value.val.stringval;\n              aVar11.intval._4_4_ = attr_value.val.intval._4_4_;\n              aVar7.stringval = attr_value.val.stringval;\n              aVar7.intval._4_4_ = attr_value.val.intval._4_4_;\n              if (uVar32 == 0x6e) goto LAB_002e313c;\n              aVar7 = aVar11;\n              if (uVar32 == 0x2007) goto LAB_002e313c;\n              goto joined_r0x002e3124;\n            }\n            if (uVar29 == 0x11) {\n              puVar15 = pattr + 1;\n              uVar23 = CONCAT31(0,*pattr);\n              aVar39.stringval = (char *)0x0;\n              aVar39.intval._4_4_ = uVar23;\n              aVar12.stringval = (char *)0x0;\n              aVar12.uintval._4_4_ = uVar23;\n              aVar40.stringval = (char *)0x0;\n              aVar40.uintval._4_4_ = uVar23;\n              aVar10.stringval = (char *)0x0;\n              aVar10.uintval._4_4_ = uVar23;\n              aVar7.stringval = (char *)0x0;\n              aVar7.uintval._4_4_ = uVar23;\n              aVar9.stringval = (char *)0x0;\n              aVar9.uintval._4_4_ = uVar23;\n              pattr = puVar15;\n              if (uVar32 == 0x31) goto LAB_002e30bc;\n              if (0x31 < uVar32) {\n                if ((uVar32 != 0x6e) && (aVar40 = aVar12, uVar32 != 0x2007)) {\n                  if (uVar32 != 0x47) goto LAB_002e313c;\n                  *(undefined4 *)&this->specification_ = 0;\n                  *(uint *)((int)&this->specification_ + 4) = uVar23;\n                  aVar7 = aVar10;\n                  goto LAB_002e313c;\n                }\n                goto LAB_002e3858;\n              }\n              if (uVar32 == 1) {\n                *(undefined4 *)&this->sibling_offset_ = 0;\n                *(uint *)((int)&this->sibling_offset_ + 4) = uVar23;\n                aVar7 = aVar9;\n                goto LAB_002e313c;\n              }\n              goto joined_r0x002e3124;\n            }\n            if (uVar29 < 0x12) {\n              if (uVar29 == 0xf) goto LAB_002e34d8;\n              if (uVar29 != 0x10) {\n                return false;\n              }\n              pDVar22 = this->dwinfo_;\n              uVar23 = pDVar22->offset_size_;\n              if (pDVar22->cu_version_ < 3) {\n                uVar23 = pDVar22->address_size_;\n              }\n              if (uVar23 == 4) {\n                pp_Var16 = (pDVar22->object_->super_Object)._vptr_Object;\n                p_Var37 = pp_Var16[3];\n                if (p_Var37 == (_func_int_varargs *)PTR_is_big_endian_004c2950) {\n                  local_30 = puVar28;\n                  iVar36 = (*pp_Var16[0x3a])();\n                }\n                else {\n                  local_30 = puVar28;\n                  iVar36 = (*p_Var37)();\n                }\n                uVar23 = *(uint *)pattr;\n                if (iVar36 == 0) {\n                  uVar23 = (((uVar23 >> 0x10) << 0x18 | (uVar23 >> 0x18) << 0x10) >> 0x10) +\n                           ((uVar23 & 0xff) << 8 | uVar23 >> 8 & 0xff) * 0x10000;\n                }\n                pattr = pattr + 4;\n                uVar38 = (ulonglong)uVar23;\n              }\n              else {\n                local_30 = puVar28;\n                uVar38 = (*local_34)(pDVar22,&pattr);\n              }\n              str_off = uVar38;\n              attr_value.aux.shndx = (*local_3c)(this->dwinfo_);\n              aVar39.refval = str_off;\n            }\n            else {\n              if (uVar29 == 0x13) {\n                pp_Var16 = (this->dwinfo_->object_->super_Object)._vptr_Object;\n                p_Var37 = pp_Var16[3];\n                if (p_Var37 == (_func_int_varargs *)PTR_is_big_endian_004c2950) {\n                  local_30 = puVar28;\n                  iVar36 = (*pp_Var16[0x3a])();\n                }\n                else {\n                  local_30 = puVar28;\n                  iVar36 = (*p_Var37)();\n                }\n                uVar23 = *(uint *)pattr;\n                if (iVar36 == 0) {\n                  uVar23 = (((uVar23 >> 0x10) << 0x18 | (uVar23 >> 0x18) << 0x10) >> 0x10) +\n                           ((uVar23 & 0xff) << 8 | uVar23 >> 8 & 0xff) * 0x10000;\n                }\n                pattr = pattr + 4;\n                pDVar22 = this->dwinfo_;\n                uVar38 = (ulonglong)uVar23;\n              }\n              else {\n                if (uVar29 < 0x14) {\n                  pp_Var16 = (this->dwinfo_->object_->super_Object)._vptr_Object;\n                  p_Var37 = pp_Var16[3];\n                  if (p_Var37 == (_func_int_varargs *)PTR_is_big_endian_004c2950) {\n                    iVar36 = (*pp_Var16[0x3a])();\n                  }\n                  else {\n                    iVar36 = (*p_Var37)();\n                  }\n                  uVar6 = *(ushort *)pattr;\n                  if (iVar36 == 0) {\n                    uVar6 = CONCAT11(pattr[1],*pattr);\n                  }\n                  aVar39.intval._0_6_ = 0;\n                  aVar39.intval._6_2_ = uVar6;\n                  pattr = pattr + 2;\n                  goto joined_r0x002e3998;\n                }\n                pp_Var16 = (this->dwinfo_->object_->super_Object)._vptr_Object;\n                p_Var37 = pp_Var16[3];\n                if (p_Var37 == (_func_int_varargs *)PTR_is_big_endian_004c2950) {\n                  local_30 = puVar28;\n                  iVar36 = (*pp_Var16[0x3a])();\n                }\n                else {\n                  local_30 = puVar28;\n                  iVar36 = (*p_Var37)();\n                }\n                uVar23 = *(uint *)(pattr + 4);\n                uVar26 = *(uint *)pattr;\n                if (iVar36 == 0) {\n                  uVar2 = uVar23 & 0xff;\n                  uVar4 = uVar23 >> 8;\n                  uVar3 = uVar23 >> 0x10;\n                  uVar5 = uVar23 >> 0x18;\n                  uVar23 = (((uVar26 >> 0x10) << 0x18 | (uVar26 >> 0x18) << 0x10) >> 0x10) +\n                           ((uVar26 & 0xff) << 8 | uVar26 >> 8 & 0xff) * 0x10000;\n                  uVar26 = ((uVar3 << 0x18 | uVar5 << 0x10) >> 0x10) +\n                           (uVar2 << 8 | uVar4 & 0xff) * 0x10000;\n                }\n                uVar38 = CONCAT44(uVar26,uVar23);\n                pattr = pattr + 8;\n                pDVar22 = this->dwinfo_;\n              }\nLAB_002e3970:\n              str_off = uVar38;\n              attr_value.aux.shndx = (*local_3c)(pDVar22);\n              aVar39.refval = str_off;\n            }\njoined_r0x002e3998:\n            if (uVar32 == 0x31) {\nLAB_002e30bc:\n              this->abstract_origin_ = (off_t)aVar39;\n              aVar7 = aVar39;\n              goto LAB_002e313c;\n            }\n            if (uVar32 < 0x32) {\n              aVar7 = aVar39;\n              if (uVar32 != 1) goto LAB_002e313c;\nLAB_002e39b4:\n              aVar7 = aVar39;\n              if (attr_value.aux.shndx != 0) goto LAB_002e313c;\n              this->sibling_offset_ = (off_t)aVar39;\n              goto LAB_002e313c;\n            }\n            aVar40 = aVar39;\n            if ((uVar32 != 0x6e) && (uVar32 != 0x2007)) {\nLAB_002e339c:\n              aVar7 = aVar39;\n              if (uVar32 != 0x47) goto LAB_002e313c;\n              this->specification_ = (off_t)aVar39;\n              goto LAB_002e313c;\n            }\n            goto LAB_002e3858;\n          }\n          if (uVar29 == 7) {\n            pp_Var16 = (this->dwinfo_->object_->super_Object)._vptr_Object;\n            p_Var37 = pp_Var16[3];\n            if (p_Var37 == (_func_int_varargs *)PTR_is_big_endian_004c2950) {\n              local_30 = puVar28;\n              iVar17 = (*pp_Var16[0x3a])();\n            }\n            else {\n              local_30 = puVar28;\n              iVar17 = (*p_Var37)();\n            }\n            str_off._4_4_ = *(char **)(pattr + 4);\n            pcVar25 = *(char **)pattr;\n            if (iVar17 == 0) {\n              uVar23 = (uint)str_off._4_4_ & 0xff;\n              uVar26 = (uint)str_off._4_4_ >> 8;\n              uVar2 = (uint)str_off._4_4_ >> 0x10;\n              uVar4 = (uint)str_off._4_4_ >> 0x18;\n              str_off._4_4_ =\n                   (char *)(((((uint)pcVar25 >> 0x10) << 0x18 | ((uint)pcVar25 >> 0x18) << 0x10) >>\n                            0x10) + (((uint)pcVar25 & 0xff) << 8 | (uint)pcVar25 >> 8 & 0xff) *\n                                    0x10000);\n              pcVar25 = (char *)(((uVar2 << 0x18 | uVar4 << 0x10) >> 0x10) +\n                                (uVar23 << 8 | uVar26 & 0xff) * 0x10000);\n            }\n            pattr = pattr + 8;\n            pDVar22 = this->dwinfo_;\n            str_off._0_4_ = pcVar25;\nLAB_002e3708:\n            attr_value.aux.shndx = (*local_3c)(pDVar22,pcVar25,iVar36,local_30,local_40.shndx);\n            attr_value.val._4_4_ = str_off._4_4_;\n            attr_value.val.stringval = str_off._0_4_;\n            goto LAB_002e355c;\n          }\n          if (7 < uVar29) {\n            if (uVar29 == 10) {\n              attr_value.val.stringval = (char *)(pattr + 1);\n              attr_value.aux.shndx._0_3_ = 0;\n              attr_value.aux.shndx._3_1_ = *pattr;\n              pattr = (uchar *)((int)attr_value.val.stringval + attr_value.aux.shndx);\n              goto LAB_002e355c;\n            }\n            if (uVar29 < 0xb) {\n              if (uVar29 != 8) {\n                if (uVar29 != 9) {\n                  return false;\n                }\nLAB_002e32bc:\n                aVar27.shndx._0_3_ = 0;\n                aVar27.shndx._3_1_ = *pattr;\n                puVar15 = pattr + 1;\n                if ((char)*pattr < '\0') {\n                  (*(code *)PTR_read_unsigned_LEB_128_x_004c2980)(puVar15,&len);\n                  puVar15 = pattr + len;\n                  aVar27 = extraout_v1_00;\n                }\n                else {\n                  len = 1;\n                }\n                aVar40.blockval = puVar15;\n                aVar40.intval._4_4_ = attr_value.val.intval._4_4_;\n                attr_value.aux = aVar27;\n                pattr = pattr + aVar27.shndx + len;\n                goto LAB_002e382c;\n              }\n              attr_value.val.blockval = pattr;\n              local_30 = pattr;\n              len = (*(code *)PTR_strlen_004c5b9c)(pattr);\n              aVar40.stringval = attr_value.val.stringval;\n              aVar40.intval._4_4_ = attr_value.val.intval._4_4_;\n              aVar8.stringval = attr_value.val.stringval;\n              aVar8.intval._4_4_ = attr_value.val.intval._4_4_;\n              aVar7.stringval = attr_value.val.stringval;\n              aVar7.intval._4_4_ = attr_value.val.intval._4_4_;\n              pattr = local_30 + len + 1;\n              if (uVar32 == 0x31) goto LAB_002e313c;\n              if (0x31 < uVar32) {\n                if ((uVar32 != 0x6e) && (aVar7 = aVar8, uVar32 != 0x2007)) goto LAB_002e313c;\n                this->linkage_name_ = (char *)local_30;\n                aVar7 = aVar40;\n                goto LAB_002e313c;\n              }\nLAB_002e3118:\n              aVar7 = aVar40;\n              aVar39 = aVar40;\n              if (uVar32 == 1) goto LAB_002e313c;\njoined_r0x002e3124:\n              aVar7 = aVar39;\n              if (uVar32 != 3) goto LAB_002e313c;\n              attr_value.val.stringval = (char *)((ulonglong)aVar39 >> 0x20);\n              if (uVar29 == 8) {\n                this->name_ = attr_value.val.stringval;\n                goto LAB_002e313c;\n              }\n              if (uVar29 != 0xe) goto LAB_002e313c;\n              goto LAB_002e3284;\n            }\n            if (uVar29 < 0xd) {\n              aVar40.intval._0_7_ = 0;\n              aVar40.uintval._7_1_ = *pattr;\n              pattr = pattr + 1;\nLAB_002e382c:\n              aVar7 = aVar40;\n              if (uVar32 == 0x31) goto LAB_002e313c;\n              if (uVar32 < 0x32) goto LAB_002e3118;\n            }\n            else {\n              bVar1 = *pattr;\n              uVar23 = CONCAT31(0,bVar1);\n              puVar15 = pattr + 1;\n              if ((char)bVar1 < '\0') {\n                aVar40.intval = (*(code *)PTR_read_signed_LEB_128_x_004c297c)(puVar15,&len,uVar23);\n                puVar15 = pattr + len;\n              }\n              else {\n                len = 1;\n                aVar40.stringval = (char *)0x0;\n                aVar40.uintval._4_4_ = uVar23;\n                if ((bVar1 & 0x40) != 0) {\n                  aVar40.stringval = (char *)0xffffffff;\n                  aVar40.uintval._4_4_ = uVar23 | 0xffffff80;\n                }\n              }\n              pattr = puVar15;\n              aVar7 = aVar40;\n              if (uVar32 == 0x31) goto LAB_002e313c;\n              if (uVar32 < 0x32) {\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                iVar36 = iVar34;\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_002e314c;\nLAB_002e2f98:\n                iVar34 = iVar34 + 8;\n                attr_value.val = aVar40;\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                          (local_38,__position,&attr_value);\n                pAVar13 = this->abbrev_code_;\n                if (iVar34 == iVar31) goto LAB_002e2fb8;\n                goto LAB_002e2db4;\n              }\n            }\n            if ((uVar32 != 0x6e) && (aVar7 = aVar40, uVar32 != 0x2007)) goto LAB_002e313c;\nLAB_002e3858:\n            attr_value.val._0_4_ = aVar40.stringval;\n            aVar7 = aVar40;\n            if (uVar29 == 8) {\n              this->linkage_name_ = attr_value.val.stringval;\n              goto LAB_002e313c;\n            }\n            if (uVar29 != 0xe) goto LAB_002e313c;\n            goto LAB_002e387c;\n          }\n          if (uVar29 == 4) {\n            pp_Var16 = (this->dwinfo_->object_->super_Object)._vptr_Object;\n            p_Var37 = pp_Var16[3];\n            if (p_Var37 == (_func_int_varargs *)PTR_is_big_endian_004c2950) {\n              iVar36 = (*pp_Var16[0x3a])();\n            }\n            else {\n              iVar36 = (*p_Var37)();\n            }\n            attr_value.aux.shndx = *(uint *)pattr;\n            if (iVar36 == 0) {\n              attr_value.aux.shndx =\n                   (((attr_value.aux.shndx >> 0x10) << 0x18 | (attr_value.aux.shndx >> 0x18) << 0x10\n                    ) >> 0x10) +\n                   ((attr_value.aux.shndx & 0xff) << 8 | attr_value.aux.shndx >> 8 & 0xff) * 0x10000\n              ;\n            }\n            attr_value.val.stringval = (char *)(pattr + 4);\n            pattr = (uchar *)((int)attr_value.val.stringval + attr_value.aux.shndx);\nLAB_002e355c:\n            aVar40.stringval = attr_value.val.stringval;\n            aVar40.intval._4_4_ = attr_value.val.intval._4_4_;\n            aVar7 = aVar40;\n            if (uVar32 == 0x31) goto LAB_002e313c;\n            if (uVar32 < 0x32) goto LAB_002e3118;\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          }\n          else {\n            if (4 < uVar29) {\n              if (uVar29 != 5) {\n                if (uVar29 != 6) {\n                  return false;\n                }\n                pp_Var16 = (this->dwinfo_->object_->super_Object)._vptr_Object;\n                p_Var37 = pp_Var16[3];\n                if (p_Var37 == (_func_int_varargs *)PTR_is_big_endian_004c2950) {\n                  local_30 = puVar28;\n                  iVar17 = (*pp_Var16[0x3a])();\n                }\n                else {\n                  local_30 = puVar28;\n                  iVar17 = (*p_Var37)();\n                }\n                pcVar25 = *(char **)pattr;\n                if (iVar17 == 0) {\n                  pcVar25 = (char *)(((((uint)pcVar25 >> 0x10) << 0x18 |\n                                      ((uint)pcVar25 >> 0x18) << 0x10) >> 0x10) +\n                                    (((uint)pcVar25 & 0xff) << 8 | (uint)pcVar25 >> 8 & 0xff) *\n                                    0x10000);\n                }\n                pattr = pattr + 4;\n                pDVar22 = this->dwinfo_;\n                str_off._0_4_ = (char *)0x0;\n                str_off._4_4_ = pcVar25;\n                goto LAB_002e3708;\n              }\n              pp_Var16 = (this->dwinfo_->object_->super_Object)._vptr_Object;\n              p_Var37 = pp_Var16[3];\n              if (p_Var37 == (_func_int_varargs *)PTR_is_big_endian_004c2950) {\n                iVar36 = (*pp_Var16[0x3a])();\n              }\n              else {\n                iVar36 = (*p_Var37)();\n              }\n              uVar6 = *(ushort *)pattr;\n              if (iVar36 == 0) {\n                uVar6 = CONCAT11(pattr[1],*pattr);\n              }\n              attr_value.val.intval._4_4_ = ZEXT24(uVar6);\n              pattr = pattr + 2;\n              attr_value.val.stringval = (char *)0x0;\n              goto LAB_002e355c;\n            }\n            if (uVar29 != 1) {\n              if (uVar29 != 3) {\n                return false;\n              }\n              pp_Var16 = (this->dwinfo_->object_->super_Object)._vptr_Object;\n              p_Var37 = pp_Var16[3];\n              if (p_Var37 == (_func_int_varargs *)PTR_is_big_endian_004c2950) {\n                iVar36 = (*pp_Var16[0x3a])();\n              }\n              else {\n                iVar36 = (*p_Var37)();\n              }\n              uVar6 = *(ushort *)pattr;\n              if (iVar36 == 0) {\n                uVar6 = CONCAT11(pattr[1],*pattr);\n              }\n              attr_value.aux.shndx._0_2_ = 0;\n              attr_value.aux.shndx._2_2_ = uVar6;\n              attr_value.val.stringval = (char *)(pattr + 2);\n              pattr = (uchar *)((int)attr_value.val.stringval + attr_value.aux.shndx);\n              goto LAB_002e355c;\n            }\n            pDVar22 = this->dwinfo_;\n            if (pDVar22->address_size_ == 4) {\n              pp_Var16 = (pDVar22->object_->super_Object)._vptr_Object;\n              p_Var37 = pp_Var16[3];\n              if (p_Var37 == (_func_int_varargs *)PTR_is_big_endian_004c2950) {\n                local_30 = puVar28;\n                iVar36 = (*pp_Var16[0x3a])();\n              }\n              else {\n                local_30 = puVar28;\n                iVar36 = (*p_Var37)();\n              }\n              uVar23 = *(uint *)pattr;\n              if (iVar36 == 0) {\n                uVar23 = (((uVar23 >> 0x10) << 0x18 | (uVar23 >> 0x18) << 0x10) >> 0x10) +\n                         ((uVar23 & 0xff) << 8 | uVar23 >> 8 & 0xff) * 0x10000;\n              }\n              pattr = pattr + 4;\n              uVar38 = (ulonglong)uVar23;\n            }\n            else {\n              local_30 = puVar28;\n              uVar38 = (*local_34)(pDVar22,&pattr);\n            }\n            str_off = uVar38;\n            attr_value.aux.shndx = (*local_3c)(this->dwinfo_);\n            aVar39.refval = str_off;\n            if (uVar32 == 0x31) goto LAB_002e30bc;\n            if (uVar32 < 0x32) {\n              if (uVar32 != 1) goto joined_r0x002e3124;\n              goto LAB_002e39b4;\n            }\n            aVar7.refval = str_off;\n            if (uVar32 == 0x6e) goto LAB_002e313c;\n            if (uVar32 != 0x2007) goto LAB_002e339c;\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            aVar40.refval = str_off;\n          }\n          while( true ) {\n            iVar36 = iVar34;\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_002e2f98;\nLAB_002e314c:\n            attr_value.val.stringval = (char *)((ulonglong)aVar40 >> 0x20);\n            attr_value.val.intval._4_4_ = (undefined4)aVar40.intval;\n            iVar34 = iVar36 + 8;\n            (__position._M_current)->form = attr_value.form;\n            ((__position._M_current)->val).stringval = attr_value.val.stringval;\n            (__position._M_current)->attr = attr_value.attr;\n            *(undefined4 *)((int)&(__position._M_current)->val + 4) = attr_value.val.intval._4_4_;\n            (__position._M_current)->aux = attr_value.aux;\n            *(undefined4 *)&(__position._M_current)->field_0x14 = attr_value._20_4_;\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            pAVar13 = this->abbrev_code_;\n            attr_value.val = aVar40;\n            if (iVar34 == iVar31) goto LAB_002e2fb8;\n            puVar14 = (uint *)((int)&(pAVar13->attributes).\n                                     super__Vector_base<gold::Dwarf_abbrev_table::Attribute,_std::allocator<gold::Dwarf_abbrev_table::Attribute>_>\n                                     ._M_impl._M_start[1].attr + iVar36);\n            uVar29 = puVar14[1];\n            uVar32 = *puVar14;\n            if (uVar29 != 0x16) goto LAB_002e2dd0;\nLAB_002e31a8:\n            uVar29 = (uint)*pattr;\n            puVar15 = pattr + 1;\n            if ((char)*pattr < '\0') {\n              attr_value.val = aVar40;\n              (*(code *)PTR_read_unsigned_LEB_128_x_004c2980)(puVar15,&len,uVar29);\n              puVar15 = pattr + len;\n              uVar29 = extraout_v1;\n              aVar40 = attr_value.val;\n            }\n            else {\n              len = 1;\n            }\n            puVar18 = puVar15 + -(int)puVar30;\n            puVar28 = puVar18 + (int)this->die_offset_;\n            iVar36 = (uint)(puVar28 < puVar18) + ((int)puVar18 >> 0x1f) + *(int *)&this->die_offset_\n            ;\n            attr_value.form = uVar29;\n            pattr = puVar15;\n            if (uVar29 != 0xe) break;\nLAB_002e31fc:\n            attr_value.aux.shndx = 0;\n            pDVar22 = this->dwinfo_;\n            attr_value.attr = uVar32;\n            local_30 = puVar28;\n            attr_value.val = aVar40;\n            if (pDVar22->offset_size_ == 4) {\n              pp_Var16 = (pDVar22->object_->super_Object)._vptr_Object;\n              p_Var37 = pp_Var16[3];\n              if (p_Var37 == (_func_int_varargs *)PTR_is_big_endian_004c2950) {\n                iVar36 = (*pp_Var16[0x3a])();\n              }\n              else {\n                iVar36 = (*p_Var37)();\n              }\n              uVar29 = *(uint *)pattr;\n              if (iVar36 == 0) {\n                uVar29 = (((uVar29 >> 0x10) << 0x18 | (uVar29 >> 0x18) << 0x10) >> 0x10) +\n                         ((uVar29 & 0xff) << 8 | uVar29 >> 8 & 0xff) * 0x10000;\n              }\n              pattr = pattr + 4;\n              uVar38 = (ulonglong)uVar29;\n            }\n            else {\n              uVar38 = (*local_34)(pDVar22,&pattr);\n            }\n            str_off = uVar38;\n            attr_value.aux.shndx = (*local_3c)(this->dwinfo_);\n            aVar7.refval = str_off;\n            if (uVar32 != 0x31) {\n              if (uVar32 < 0x32) {\n                if ((uVar32 != 1) && (aVar39.refval = str_off, uVar32 == 3)) {\nLAB_002e3284:\n                  this->string_shndx_ = (uint)attr_value.aux;\n                  this->name_off_ = (off_t)aVar39;\n                  aVar7 = aVar39;\n                }\n              }\n              else {\n                aVar40.refval = str_off;\n                if (uVar32 == 0x6e) {\nLAB_002e387c:\n                  this->string_shndx_ = (uint)attr_value.aux;\n                }\n                else {\n                  if (uVar32 != 0x2007) goto LAB_002e313c;\n                  this->string_shndx_ = (uint)attr_value.aux;\n                }\n                this->linkage_name_off_ = (off_t)aVar40;\n                aVar7 = aVar40;\n              }\n            }\nLAB_002e313c:\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            aVar40 = aVar7;\n          }\n        } while( true );\n      }\n      uVar32 = (int)pattr - (int)puVar30;\n      uVar29 = uVar32 + iVar34;\n      iVar31 = (uint)(uVar29 < uVar32) + ((int)uVar32 >> 0x1f) + *(int *)&this->die_offset_;\n      if (*(int *)&pAVar13->field_0x4 < 0) {\n        *(int *)&this->child_offset_ = iVar31;\n        *(uint *)((int)&this->child_offset_ + 4) = uVar29;\n      }\n      else {\n        *(int *)&this->sibling_offset_ = iVar31;\n        *(uint *)((int)&this->sibling_offset_ + 4) = uVar29;\n      }\n      this->attributes_read_ = true;\n      return true;\n    }\n  }\n  uVar20 = (*(code *)PTR___throw_length_error_004c1e74)(puVar24 + -0xda4);\n  return (bool)uVar20;\n}" { (declaration "byte bVar1;" type_identifier identifier ;) (declaration "uint uVar2;" type_identifier identifier ;) (declaration "uint uVar3;" type_identifier identifier ;) (declaration "uint uVar4;" type_identifier identifier ;) (declaration "uint uVar5;" type_identifier identifier ;) (declaration "ushort uVar6;" type_identifier identifier ;) (declaration "anon_union_8_5_56ef6665_for_val aVar7;" type_identifier identifier ;) (declaration "anon_union_8_5_56ef6665_for_val aVar8;" type_identifier identifier ;) (declaration "anon_union_8_5_56ef6665_for_val aVar9;" type_identifier identifier ;) (declaration "anon_union_8_5_56ef6665_for_val aVar10;" type_identifier identifier ;) (declaration "anon_union_8_5_56ef6665_for_val aVar11;" type_identifier identifier ;) (declaration "anon_union_8_5_56ef6665_for_val aVar12;" type_identifier identifier ;) (declaration "Abbrev_code *pAVar13;" type_identifier (pointer_declarator "*pAVar13" * identifier) ;) (declaration "uint *puVar14;" type_identifier (pointer_declarator "*puVar14" * identifier) ;) (declaration "uchar *puVar15;" type_identifier (pointer_declarator "*puVar15" * identifier) ;) (declaration "_func_int_varargs **pp_Var16;" type_identifier (pointer_declarator "**pp_Var16" * (pointer_declarator "*pp_Var16" * identifier)) ;) (declaration "int iVar17;" primitive_type identifier ;) (declaration "uchar *puVar18;" type_identifier (pointer_declarator "*puVar18" * identifier) ;) (declaration "pointer pAVar19;" type_identifier identifier ;) (declaration "undefined1 uVar20;" type_identifier identifier ;) (declaration "bool bVar21;" primitive_type identifier ;) (declaration "uint extraout_v1;" type_identifier identifier ;) (declaration "anon_union_4_3_97895b06_for_aux extraout_v1_00;" type_identifier identifier ;) (declaration "Dwarf_info_reader *pDVar22;" type_identifier (pointer_declarator "*pDVar22" * identifier) ;) (declaration "uint uVar23;" type_identifier identifier ;) (declaration "undefined *puVar24;" type_identifier (pointer_declarator "*puVar24" * identifier) ;) (declaration "Dwarf_die *this_00;" type_identifier (pointer_declarator "*this_00" * identifier) ;) (declaration "char *pcVar25;" primitive_type (pointer_declarator "*pcVar25" * identifier) ;) (declaration "iterator __position;" type_identifier identifier ;) (declaration "uint uVar26;" type_identifier identifier ;) (declaration "anon_union_4_3_97895b06_for_aux aVar27;" type_identifier identifier ;) (declaration "uchar *puVar28;" type_identifier (pointer_declarator "*puVar28" * identifier) ;) (declaration "uint uVar29;" type_identifier identifier ;) (declaration "uchar *puVar30;" type_identifier (pointer_declarator "*puVar30" * identifier) ;) (declaration "int iVar31;" primitive_type identifier ;) (declaration "uint uVar32;" type_identifier identifier ;) (declaration "pointer pAVar33;" type_identifier identifier ;) (declaration "int iVar34;" primitive_type identifier ;) (declaration "pointer pAVar35;" type_identifier identifier ;) (declaration "int iVar36;" primitive_type identifier ;) (declaration "_func_int_varargs *p_Var37;" type_identifier (pointer_declarator "*p_Var37" * identifier) ;) (declaration "ulonglong uVar38;" type_identifier identifier ;) (declaration "anon_union_8_5_56ef6665_for_val aVar39;" type_identifier identifier ;) (declaration "anon_union_8_5_56ef6665_for_val aVar40;" type_identifier identifier ;) (declaration "Attribute_value attr_value;" type_identifier identifier ;) (declaration "off_t str_off;" type_identifier identifier ;) (declaration "size_t len;" primitive_type identifier ;) (declaration "uchar *pattr;" type_identifier (pointer_declarator "*pattr" * identifier) ;) (declaration "anon_union_4_3_97895b06_for_aux local_40;" type_identifier identifier ;) (declaration "code *local_3c;" type_identifier (pointer_declarator "*local_3c" * identifier) ;) (declaration "Attributes *local_38;" type_identifier (pointer_declarator "*local_38" * identifier) ;) (declaration "code *local_34;" type_identifier (pointer_declarator "*local_34" * identifier) ;) (declaration "uchar *local_30;" type_identifier (pointer_declarator "*local_30" * 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    puVar24 = PTR_s_in_a_linker_script_004c191c + 0x7090;\n    (*(code *)PTR_do_gold_unreachable_004c1a30)\n              (puVar24,0x2a9,PTR_s_in_a_linker_script_004c191c + 0x7414);\n  }\n  else {\n    pDVar22 = this->dwinfo_;\n    iVar34 = (int)this->die_offset_;\n    iVar31 = (int)pDVar22->cu_offset_;\n    puVar30 = pDVar22->buffer_ + iVar31 + iVar34;\n    if (pDVar22->buffer_ + iVar31 + (int)pDVar22->cu_length_ < puVar30 + 1) {\n      Dwarf_info_reader::warn_corrupt_debug_section(pDVar22);\n      return false;\n    }\n    local_38 = &this->attributes_;\n    if (puVar30 == (uchar *)0x0) {\n      return false;\n    }\n    iVar31 = (int)(pAVar13->attributes).\n                  super__Vector_base<gold::Dwarf_abbrev_table::Attribute,_std::allocator<gold::Dwarf_abbrev_table::Attribute>_>\n                  ._M_impl._M_finish -\n             (int)(pAVar13->attributes).\n                  super__Vector_base<gold::Dwarf_abbrev_table::Attribute,_std::allocator<gold::Dwarf_abbrev_table::Attribute>_>\n                  ._M_impl._M_start;\n    pattr = puVar30 + (int)this->attr_offset_;\n    uVar29 = iVar31 >> 3;\n    puVar24 = PTR_s__s_004c1a50;\n    if (uVar29 < 0xaaaaaab) {\n      pAVar33 = (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 ((uint)(((int)(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 - (int)pAVar33 >> 3) * -0x55555555) < uVar29) {\n        aVar27 = (anon_union_4_3_97895b06_for_aux)\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        iVar34 = aVar27.shndx - (int)pAVar33;\n        if (uVar29 == 0) {\n          pAVar19 = (pointer)0x0;\n          pAVar35 = pAVar33;\n        }\n        else {\n          local_40 = aVar27;\n          pAVar19 = (pointer)(*(code *)PTR_operator_new_004c13a8)(uVar29 * 0x18);\n          aVar27 = local_40;\n          pAVar35 = (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 (pAVar33 != (pointer)aVar27.shndx) {\n          (*(code *)PTR_memmove_004c5af8)(pAVar19,pAVar33,iVar34);\n        }\n        if (pAVar35 != (pointer)0x0) {\n          (*(code *)PTR_operator_delete_004c12fc)(pAVar35);\n        }\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_start = pAVar19;\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)((int)pAVar19 + iVar34);\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 = pAVar19 + uVar29;\n        if (uVar29 != 0) goto LAB_002e2d90;\nLAB_002e2fb8:\n        if (pAVar13 == (Abbrev_code *)0x0) {\n          this_00 = (Dwarf_die *)(PTR_s_in_a_linker_script_004c191c + 0x7108);\n          (*(code *)PTR_do_gold_unreachable_004c1a30)\n                    (this_00,0x206,PTR_s_in_a_linker_script_004c191c + 0x7404);\n          if (this_00->attributes_read_ == false) {\n            bVar21 = read_attributes(this_00);\n            return bVar21;\n          }\n          return this_00->attributes_read_;\n        }\n        iVar34 = (int)this->die_offset_;\n      }\n      else if (uVar29 != 0) {\nLAB_002e2d90:\n        local_3c = (code *)PTR_lookup_reloc_004c2994;\n        iVar34 = 0;\n        local_34 = (code *)PTR_read_from_pointer<64>_004c2998;\n        local_40.shndx = (uint)&str_off;\nLAB_002e2db4:\n        puVar14 = (uint *)((int)&((pAVar13->attributes).\n                                  super__Vector_base<gold::Dwarf_abbrev_table::Attribute,_std::allocator<gold::Dwarf_abbrev_table::Attribute>_>\n                                  ._M_impl._M_start)->attr + iVar34);\n        uVar29 = puVar14[1];\n        uVar32 = *puVar14;\n        aVar40 = attr_value.val;\n        if (uVar29 == 0x16) goto LAB_002e31a8;\nLAB_002e2dd0:\n        puVar15 = pattr + -(int)puVar30;\n        puVar28 = puVar15 + (int)this->die_offset_;\n        iVar36 = (uint)(puVar28 < puVar15) + ((int)puVar15 >> 0x1f) + *(int *)&this->die_offset_;\n        attr_value.form = uVar29;\n        if (uVar29 == 0xe) goto LAB_002e31fc;\n        do {\n          attr_value.val.intval._4_4_ = (undefined4)aVar40.intval;\n          attr_value.aux.shndx = 0;\n          attr_value.attr = uVar32;\n          attr_value.form = uVar29;\n          attr_value.val = aVar40;\n          if (0xe < uVar29) {\n            if (uVar29 == 0x15) {\n              if ((char)*pattr < '\0') {\n                aVar39.intval = (*(code *)PTR_read_unsigned_LEB_128_x_004c2980)(pattr + 1,&len);\n                pattr = pattr + len;\n              }\n              else {\n                aVar39.intval._0_7_ = 0;\n                aVar39.intval._7_1_ = *pattr;\n                len = 1;\n                pattr = pattr + 1;\n              }\n              goto joined_r0x002e3998;\n            }\n            if (0x15 < uVar29) {\n              if (uVar29 == 0x19) {\n                attr_value.val.intval._4_4_ = 1;\n                attr_value.val.stringval = (char *)0x0;\n              }\n              else {\n                if (uVar29 < 0x1a) {\n                  if (uVar29 != 0x17) {\n                    if (uVar29 != 0x18) {\n                      return false;\n                    }\n                    goto LAB_002e32bc;\n                  }\n                  pDVar22 = this->dwinfo_;\n                  if (pDVar22->offset_size_ == 4) {\n                    pp_Var16 = (pDVar22->object_->super_Object)._vptr_Object;\n                    p_Var37 = pp_Var16[3];\n                    if (p_Var37 == (_func_int_varargs *)PTR_is_big_endian_004c2950) {\n                      local_30 = puVar28;\n                      iVar36 = (*pp_Var16[0x3a])();\n                    }\n                    else {\n                      local_30 = puVar28;\n                      iVar36 = (*p_Var37)();\n                    }\n                    uVar23 = *(uint *)pattr;\n                    if (iVar36 == 0) {\n                      uVar23 = (((uVar23 >> 0x10) << 0x18 | (uVar23 >> 0x18) << 0x10) >> 0x10) +\n                               ((uVar23 & 0xff) << 8 | uVar23 >> 8 & 0xff) * 0x10000;\n                    }\n                    pattr = pattr + 4;\n                    uVar38 = (ulonglong)uVar23;\n                  }\n                  else {\n                    local_30 = puVar28;\n                    uVar38 = (*local_34)(pDVar22,&pattr);\n                  }\n                  pDVar22 = this->dwinfo_;\n                  goto LAB_002e3970;\n                }\n                if (uVar29 != 0x20) {\n                  if (uVar29 < 0x20) {\n                    return false;\n                  }\n                  if (1 < uVar29 - 0x1f01) {\n                    return false;\n                  }\nLAB_002e34d8:\n                  if ((char)*pattr < '\0') {\n                    aVar40.intval = (*(code *)PTR_read_unsigned_LEB_128_x_004c2980)(pattr + 1,&len);\n                    pattr = pattr + len;\n                  }\n                  else {\n                    aVar40.intval._0_7_ = 0;\n                    aVar40.intval._7_1_ = *pattr;\n                    len = 1;\n                    pattr = pattr + 1;\n                  }\n                  goto LAB_002e382c;\n                }\n                pp_Var16 = (this->dwinfo_->object_->super_Object)._vptr_Object;\n                p_Var37 = pp_Var16[3];\n                if (p_Var37 == (_func_int_varargs *)PTR_is_big_endian_004c2950) {\n                  iVar36 = (*pp_Var16[0x3a])();\n                }\n                else {\n                  iVar36 = (*p_Var37)();\n                }\n                    /* WARNING: Load size is inaccurate */\n                attr_value.val._4_4_ = pattr[4];\n                    /* WARNING: Load size is inaccurate */\n                attr_value.val.blockval = *pattr;\n                if (iVar36 == 0) {\n                  uVar23 = attr_value.val.uintval._4_4_ & 0xff;\n                  uVar26 = (uint)attr_value.val.uintval._4_4_ >> 8;\n                  uVar2 = (uint)attr_value.val.uintval._4_4_ >> 0x10;\n                  uVar4 = (uint)attr_value.val.uintval._4_4_ >> 0x18;\n                  attr_value.val.intval._4_4_ =\n                       ((((uint)attr_value.val.stringval >> 0x10) << 0x18 |\n                        ((uint)attr_value.val.stringval >> 0x18) << 0x10) >> 0x10) +\n                       (((uint)attr_value.val.stringval & 0xff) << 8 |\n                       (uint)attr_value.val.stringval >> 8 & 0xff) * 0x10000;\n                  attr_value.val.stringval =\n                       (char *)(((uVar2 << 0x18 | uVar4 << 0x10) >> 0x10) +\n                               (uVar23 << 8 | uVar26 & 0xff) * 0x10000);\n                }\n                pattr = pattr + 8;\n              }\n              aVar39.stringval = attr_value.val.stringval;\n              aVar39.intval._4_4_ = attr_value.val.intval._4_4_;\n              aVar11.stringval = attr_value.val.stringval;\n              aVar11.intval._4_4_ = attr_value.val.intval._4_4_;\n              aVar7.stringval = attr_value.val.stringval;\n              aVar7.intval._4_4_ = attr_value.val.intval._4_4_;\n              if (uVar32 == 0x6e) goto LAB_002e313c;\n              aVar7 = aVar11;\n              if (uVar32 == 0x2007) goto LAB_002e313c;\n              goto joined_r0x002e3124;\n            }\n            if (uVar29 == 0x11) {\n              puVar15 = pattr + 1;\n              uVar23 = CONCAT31(0,*pattr);\n              aVar39.stringval = (char *)0x0;\n              aVar39.intval._4_4_ = uVar23;\n              aVar12.stringval = (char *)0x0;\n              aVar12.uintval._4_4_ = uVar23;\n              aVar40.stringval = (char *)0x0;\n              aVar40.uintval._4_4_ = uVar23;\n              aVar10.stringval = (char *)0x0;\n              aVar10.uintval._4_4_ = uVar23;\n              aVar7.stringval = (char *)0x0;\n              aVar7.uintval._4_4_ = uVar23;\n              aVar9.stringval = (char *)0x0;\n              aVar9.uintval._4_4_ = uVar23;\n              pattr = puVar15;\n              if (uVar32 == 0x31) goto LAB_002e30bc;\n              if (0x31 < uVar32) {\n                if ((uVar32 != 0x6e) && (aVar40 = aVar12, uVar32 != 0x2007)) {\n                  if (uVar32 != 0x47) goto LAB_002e313c;\n                  *(undefined4 *)&this->specification_ = 0;\n                  *(uint *)((int)&this->specification_ + 4) = uVar23;\n                  aVar7 = aVar10;\n                  goto LAB_002e313c;\n                }\n                goto LAB_002e3858;\n              }\n              if (uVar32 == 1) {\n                *(undefined4 *)&this->sibling_offset_ = 0;\n                *(uint *)((int)&this->sibling_offset_ + 4) = uVar23;\n                aVar7 = aVar9;\n                goto LAB_002e313c;\n              }\n              goto joined_r0x002e3124;\n            }\n            if (uVar29 < 0x12) {\n              if (uVar29 == 0xf) goto LAB_002e34d8;\n              if (uVar29 != 0x10) {\n                return false;\n              }\n              pDVar22 = this->dwinfo_;\n              uVar23 = pDVar22->offset_size_;\n              if (pDVar22->cu_version_ < 3) {\n                uVar23 = pDVar22->address_size_;\n              }\n              if (uVar23 == 4) {\n                pp_Var16 = (pDVar22->object_->super_Object)._vptr_Object;\n                p_Var37 = pp_Var16[3];\n                if (p_Var37 == (_func_int_varargs *)PTR_is_big_endian_004c2950) {\n                  local_30 = puVar28;\n                  iVar36 = (*pp_Var16[0x3a])();\n                }\n                else {\n                  local_30 = puVar28;\n                  iVar36 = (*p_Var37)();\n                }\n                uVar23 = *(uint *)pattr;\n                if (iVar36 == 0) {\n                  uVar23 = (((uVar23 >> 0x10) << 0x18 | (uVar23 >> 0x18) << 0x10) >> 0x10) +\n                           ((uVar23 & 0xff) << 8 | uVar23 >> 8 & 0xff) * 0x10000;\n                }\n                pattr = pattr + 4;\n                uVar38 = (ulonglong)uVar23;\n              }\n              else {\n                local_30 = puVar28;\n                uVar38 = (*local_34)(pDVar22,&pattr);\n              }\n              str_off = uVar38;\n              attr_value.aux.shndx = (*local_3c)(this->dwinfo_);\n              aVar39.refval = str_off;\n            }\n            else {\n              if (uVar29 == 0x13) {\n                pp_Var16 = (this->dwinfo_->object_->super_Object)._vptr_Object;\n                p_Var37 = pp_Var16[3];\n                if (p_Var37 == (_func_int_varargs *)PTR_is_big_endian_004c2950) {\n                  local_30 = puVar28;\n                  iVar36 = (*pp_Var16[0x3a])();\n                }\n                else {\n                  local_30 = puVar28;\n                  iVar36 = (*p_Var37)();\n                }\n                uVar23 = *(uint *)pattr;\n                if (iVar36 == 0) {\n                  uVar23 = (((uVar23 >> 0x10) << 0x18 | (uVar23 >> 0x18) << 0x10) >> 0x10) +\n                           ((uVar23 & 0xff) << 8 | uVar23 >> 8 & 0xff) * 0x10000;\n                }\n                pattr = pattr + 4;\n                pDVar22 = this->dwinfo_;\n                uVar38 = (ulonglong)uVar23;\n              }\n              else {\n                if (uVar29 < 0x14) {\n                  pp_Var16 = (this->dwinfo_->object_->super_Object)._vptr_Object;\n                  p_Var37 = pp_Var16[3];\n                  if (p_Var37 == (_func_int_varargs *)PTR_is_big_endian_004c2950) {\n                    iVar36 = (*pp_Var16[0x3a])();\n                  }\n                  else {\n                    iVar36 = (*p_Var37)();\n                  }\n                  uVar6 = *(ushort *)pattr;\n                  if (iVar36 == 0) {\n                    uVar6 = CONCAT11(pattr[1],*pattr);\n                  }\n                  aVar39.intval._0_6_ = 0;\n                  aVar39.intval._6_2_ = uVar6;\n                  pattr = pattr + 2;\n                  goto joined_r0x002e3998;\n                }\n                pp_Var16 = (this->dwinfo_->object_->super_Object)._vptr_Object;\n                p_Var37 = pp_Var16[3];\n                if (p_Var37 == (_func_int_varargs *)PTR_is_big_endian_004c2950) {\n                  local_30 = puVar28;\n                  iVar36 = (*pp_Var16[0x3a])();\n                }\n                else {\n                  local_30 = puVar28;\n                  iVar36 = (*p_Var37)();\n                }\n                uVar23 = *(uint *)(pattr + 4);\n                uVar26 = *(uint *)pattr;\n                if (iVar36 == 0) {\n                  uVar2 = uVar23 & 0xff;\n                  uVar4 = uVar23 >> 8;\n                  uVar3 = uVar23 >> 0x10;\n                  uVar5 = uVar23 >> 0x18;\n                  uVar23 = (((uVar26 >> 0x10) << 0x18 | (uVar26 >> 0x18) << 0x10) >> 0x10) +\n                           ((uVar26 & 0xff) << 8 | uVar26 >> 8 & 0xff) * 0x10000;\n                  uVar26 = ((uVar3 << 0x18 | uVar5 << 0x10) >> 0x10) +\n                           (uVar2 << 8 | uVar4 & 0xff) * 0x10000;\n                }\n                uVar38 = CONCAT44(uVar26,uVar23);\n                pattr = pattr + 8;\n                pDVar22 = this->dwinfo_;\n              }\nLAB_002e3970:\n              str_off = uVar38;\n              attr_value.aux.shndx = (*local_3c)(pDVar22);\n              aVar39.refval = str_off;\n            }\njoined_r0x002e3998:\n            if (uVar32 == 0x31) {\nLAB_002e30bc:\n              this->abstract_origin_ = (off_t)aVar39;\n              aVar7 = aVar39;\n              goto LAB_002e313c;\n            }\n            if (uVar32 < 0x32) {\n              aVar7 = aVar39;\n              if (uVar32 != 1) goto LAB_002e313c;\nLAB_002e39b4:\n              aVar7 = aVar39;\n              if (attr_value.aux.shndx != 0) goto LAB_002e313c;\n              this->sibling_offset_ = (off_t)aVar39;\n              goto LAB_002e313c;\n            }\n            aVar40 = aVar39;\n            if ((uVar32 != 0x6e) && (uVar32 != 0x2007)) {\nLAB_002e339c:\n              aVar7 = aVar39;\n              if (uVar32 != 0x47) goto LAB_002e313c;\n              this->specification_ = (off_t)aVar39;\n              goto LAB_002e313c;\n            }\n            goto LAB_002e3858;\n          }\n          if (uVar29 == 7) {\n            pp_Var16 = (this->dwinfo_->object_->super_Object)._vptr_Object;\n            p_Var37 = pp_Var16[3];\n            if (p_Var37 == (_func_int_varargs *)PTR_is_big_endian_004c2950) {\n              local_30 = puVar28;\n              iVar17 = (*pp_Var16[0x3a])();\n            }\n            else {\n              local_30 = puVar28;\n              iVar17 = (*p_Var37)();\n            }\n            str_off._4_4_ = *(char **)(pattr + 4);\n            pcVar25 = *(char **)pattr;\n            if (iVar17 == 0) {\n              uVar23 = (uint)str_off._4_4_ & 0xff;\n              uVar26 = (uint)str_off._4_4_ >> 8;\n              uVar2 = (uint)str_off._4_4_ >> 0x10;\n              uVar4 = (uint)str_off._4_4_ >> 0x18;\n              str_off._4_4_ =\n                   (char *)(((((uint)pcVar25 >> 0x10) << 0x18 | ((uint)pcVar25 >> 0x18) << 0x10) >>\n                            0x10) + (((uint)pcVar25 & 0xff) << 8 | (uint)pcVar25 >> 8 & 0xff) *\n                                    0x10000);\n              pcVar25 = (char *)(((uVar2 << 0x18 | uVar4 << 0x10) >> 0x10) +\n                                (uVar23 << 8 | uVar26 & 0xff) * 0x10000);\n            }\n            pattr = pattr + 8;\n            pDVar22 = this->dwinfo_;\n            str_off._0_4_ = pcVar25;\nLAB_002e3708:\n            attr_value.aux.shndx = (*local_3c)(pDVar22,pcVar25,iVar36,local_30,local_40.shndx);\n            attr_value.val._4_4_ = str_off._4_4_;\n            attr_value.val.stringval = str_off._0_4_;\n            goto LAB_002e355c;\n          }\n          if (7 < uVar29) {\n            if (uVar29 == 10) {\n              attr_value.val.stringval = (char *)(pattr + 1);\n              attr_value.aux.shndx._0_3_ = 0;\n              attr_value.aux.shndx._3_1_ = *pattr;\n              pattr = (uchar *)((int)attr_value.val.stringval + attr_value.aux.shndx);\n              goto LAB_002e355c;\n            }\n            if (uVar29 < 0xb) {\n              if (uVar29 != 8) {\n                if (uVar29 != 9) {\n                  return false;\n                }\nLAB_002e32bc:\n                aVar27.shndx._0_3_ = 0;\n                aVar27.shndx._3_1_ = *pattr;\n                puVar15 = pattr + 1;\n                if ((char)*pattr < '\0') {\n                  (*(code *)PTR_read_unsigned_LEB_128_x_004c2980)(puVar15,&len);\n                  puVar15 = pattr + len;\n                  aVar27 = extraout_v1_00;\n                }\n                else {\n                  len = 1;\n                }\n                aVar40.blockval = puVar15;\n                aVar40.intval._4_4_ = attr_value.val.intval._4_4_;\n                attr_value.aux = aVar27;\n                pattr = pattr + aVar27.shndx + len;\n                goto LAB_002e382c;\n              }\n              attr_value.val.blockval = pattr;\n              local_30 = pattr;\n              len = (*(code *)PTR_strlen_004c5b9c)(pattr);\n              aVar40.stringval = attr_value.val.stringval;\n              aVar40.intval._4_4_ = attr_value.val.intval._4_4_;\n              aVar8.stringval = attr_value.val.stringval;\n              aVar8.intval._4_4_ = attr_value.val.intval._4_4_;\n              aVar7.stringval = attr_value.val.stringval;\n              aVar7.intval._4_4_ = attr_value.val.intval._4_4_;\n              pattr = local_30 + len + 1;\n              if (uVar32 == 0x31) goto LAB_002e313c;\n              if (0x31 < uVar32) {\n                if ((uVar32 != 0x6e) && (aVar7 = aVar8, uVar32 != 0x2007)) goto LAB_002e313c;\n                this->linkage_name_ = (char *)local_30;\n                aVar7 = aVar40;\n                goto LAB_002e313c;\n              }\nLAB_002e3118:\n              aVar7 = aVar40;\n              aVar39 = aVar40;\n              if (uVar32 == 1) goto LAB_002e313c;\njoined_r0x002e3124:\n              aVar7 = aVar39;\n              if (uVar32 != 3) goto LAB_002e313c;\n              attr_value.val.stringval = (char *)((ulonglong)aVar39 >> 0x20);\n              if (uVar29 == 8) {\n                this->name_ = attr_value.val.stringval;\n                goto LAB_002e313c;\n              }\n              if (uVar29 != 0xe) goto LAB_002e313c;\n              goto LAB_002e3284;\n            }\n            if (uVar29 < 0xd) {\n              aVar40.intval._0_7_ = 0;\n              aVar40.uintval._7_1_ = *pattr;\n              pattr = pattr + 1;\nLAB_002e382c:\n              aVar7 = aVar40;\n              if (uVar32 == 0x31) goto LAB_002e313c;\n              if (uVar32 < 0x32) goto LAB_002e3118;\n            }\n            else {\n              bVar1 = *pattr;\n              uVar23 = CONCAT31(0,bVar1);\n              puVar15 = pattr + 1;\n              if ((char)bVar1 < '\0') {\n                aVar40.intval = (*(code *)PTR_read_signed_LEB_128_x_004c297c)(puVar15,&len,uVar23);\n                puVar15 = pattr + len;\n              }\n              else {\n                len = 1;\n                aVar40.stringval = (char *)0x0;\n                aVar40.uintval._4_4_ = uVar23;\n                if ((bVar1 & 0x40) != 0) {\n                  aVar40.stringval = (char *)0xffffffff;\n                  aVar40.uintval._4_4_ = uVar23 | 0xffffff80;\n                }\n              }\n              pattr = puVar15;\n              aVar7 = aVar40;\n              if (uVar32 == 0x31) goto LAB_002e313c;\n              if (uVar32 < 0x32) {\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                iVar36 = iVar34;\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_002e314c;\nLAB_002e2f98:\n                iVar34 = iVar34 + 8;\n                attr_value.val = aVar40;\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                          (local_38,__position,&attr_value);\n                pAVar13 = this->abbrev_code_;\n                if (iVar34 == iVar31) goto LAB_002e2fb8;\n                goto LAB_002e2db4;\n              }\n            }\n            if ((uVar32 != 0x6e) && (aVar7 = aVar40, uVar32 != 0x2007)) goto LAB_002e313c;\nLAB_002e3858:\n            attr_value.val._0_4_ = aVar40.stringval;\n            aVar7 = aVar40;\n            if (uVar29 == 8) {\n              this->linkage_name_ = attr_value.val.stringval;\n              goto LAB_002e313c;\n            }\n            if (uVar29 != 0xe) goto LAB_002e313c;\n            goto LAB_002e387c;\n          }\n          if (uVar29 == 4) {\n            pp_Var16 = (this->dwinfo_->object_->super_Object)._vptr_Object;\n            p_Var37 = pp_Var16[3];\n            if (p_Var37 == (_func_int_varargs *)PTR_is_big_endian_004c2950) {\n              iVar36 = (*pp_Var16[0x3a])();\n            }\n            else {\n              iVar36 = (*p_Var37)();\n            }\n            attr_value.aux.shndx = *(uint *)pattr;\n            if (iVar36 == 0) {\n              attr_value.aux.shndx =\n                   (((attr_value.aux.shndx >> 0x10) << 0x18 | (attr_value.aux.shndx >> 0x18) << 0x10\n                    ) >> 0x10) +\n                   ((attr_value.aux.shndx & 0xff) << 8 | attr_value.aux.shndx >> 8 & 0xff) * 0x10000\n              ;\n            }\n            attr_value.val.stringval = (char *)(pattr + 4);\n            pattr = (uchar *)((int)attr_value.val.stringval + attr_value.aux.shndx);\nLAB_002e355c:\n            aVar40.stringval = attr_value.val.stringval;\n            aVar40.intval._4_4_ = attr_value.val.intval._4_4_;\n            aVar7 = aVar40;\n            if (uVar32 == 0x31) goto LAB_002e313c;\n            if (uVar32 < 0x32) goto LAB_002e3118;\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          }\n          else {\n            if (4 < uVar29) {\n              if (uVar29 != 5) {\n                if (uVar29 != 6) {\n                  return false;\n                }\n                pp_Var16 = (this->dwinfo_->object_->super_Object)._vptr_Object;\n                p_Var37 = pp_Var16[3];\n                if (p_Var37 == (_func_int_varargs *)PTR_is_big_endian_004c2950) {\n                  local_30 = puVar28;\n                  iVar17 = (*pp_Var16[0x3a])();\n                }\n                else {\n                  local_30 = puVar28;\n                  iVar17 = (*p_Var37)();\n                }\n                pcVar25 = *(char **)pattr;\n                if (iVar17 == 0) {\n                  pcVar25 = (char *)(((((uint)pcVar25 >> 0x10) << 0x18 |\n                                      ((uint)pcVar25 >> 0x18) << 0x10) >> 0x10) +\n                                    (((uint)pcVar25 & 0xff) << 8 | (uint)pcVar25 >> 8 & 0xff) *\n                                    0x10000);\n                }\n                pattr = pattr + 4;\n                pDVar22 = this->dwinfo_;\n                str_off._0_4_ = (char *)0x0;\n                str_off._4_4_ = pcVar25;\n                goto LAB_002e3708;\n              }\n              pp_Var16 = (this->dwinfo_->object_->super_Object)._vptr_Object;\n              p_Var37 = pp_Var16[3];\n              if (p_Var37 == (_func_int_varargs *)PTR_is_big_endian_004c2950) {\n                iVar36 = (*pp_Var16[0x3a])();\n              }\n              else {\n                iVar36 = (*p_Var37)();\n              }\n              uVar6 = *(ushort *)pattr;\n              if (iVar36 == 0) {\n                uVar6 = CONCAT11(pattr[1],*pattr);\n              }\n              attr_value.val.intval._4_4_ = ZEXT24(uVar6);\n              pattr = pattr + 2;\n              attr_value.val.stringval = (char *)0x0;\n              goto LAB_002e355c;\n            }\n            if (uVar29 != 1) {\n              if (uVar29 != 3) {\n                return false;\n              }\n              pp_Var16 = (this->dwinfo_->object_->super_Object)._vptr_Object;\n              p_Var37 = pp_Var16[3];\n              if (p_Var37 == (_func_int_varargs *)PTR_is_big_endian_004c2950) {\n                iVar36 = (*pp_Var16[0x3a])();\n              }\n              else {\n                iVar36 = (*p_Var37)();\n              }\n              uVar6 = *(ushort *)pattr;\n              if (iVar36 == 0) {\n                uVar6 = CONCAT11(pattr[1],*pattr);\n              }\n              attr_value.aux.shndx._0_2_ = 0;\n              attr_value.aux.shndx._2_2_ = uVar6;\n              attr_value.val.stringval = (char *)(pattr + 2);\n              pattr = (uchar *)((int)attr_value.val.stringval + attr_value.aux.shndx);\n              goto LAB_002e355c;\n            }\n            pDVar22 = this->dwinfo_;\n            if (pDVar22->address_size_ == 4) {\n              pp_Var16 = (pDVar22->object_->super_Object)._vptr_Object;\n              p_Var37 = pp_Var16[3];\n              if (p_Var37 == (_func_int_varargs *)PTR_is_big_endian_004c2950) {\n                local_30 = puVar28;\n                iVar36 = (*pp_Var16[0x3a])();\n              }\n              else {\n                local_30 = puVar28;\n                iVar36 = (*p_Var37)();\n              }\n              uVar23 = *(uint *)pattr;\n              if (iVar36 == 0) {\n                uVar23 = (((uVar23 >> 0x10) << 0x18 | (uVar23 >> 0x18) << 0x10) >> 0x10) +\n                         ((uVar23 & 0xff) << 8 | uVar23 >> 8 & 0xff) * 0x10000;\n              }\n              pattr = pattr + 4;\n              uVar38 = (ulonglong)uVar23;\n            }\n            else {\n              local_30 = puVar28;\n              uVar38 = (*local_34)(pDVar22,&pattr);\n            }\n            str_off = uVar38;\n            attr_value.aux.shndx = (*local_3c)(this->dwinfo_);\n            aVar39.refval = str_off;\n            if (uVar32 == 0x31) goto LAB_002e30bc;\n            if (uVar32 < 0x32) {\n              if (uVar32 != 1) goto joined_r0x002e3124;\n              goto LAB_002e39b4;\n            }\n            aVar7.refval = str_off;\n            if (uVar32 == 0x6e) goto LAB_002e313c;\n            if (uVar32 != 0x2007) goto LAB_002e339c;\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            aVar40.refval = str_off;\n          }\n          while( true ) {\n            iVar36 = iVar34;\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_002e2f98;\nLAB_002e314c:\n            attr_value.val.stringval = (char *)((ulonglong)aVar40 >> 0x20);\n            attr_value.val.intval._4_4_ = (undefined4)aVar40.intval;\n            iVar34 = iVar36 + 8;\n            (__position._M_current)->form = attr_value.form;\n            ((__position._M_current)->val).stringval = attr_value.val.stringval;\n            (__position._M_current)->attr = attr_value.attr;\n            *(undefined4 *)((int)&(__position._M_current)->val + 4) = attr_value.val.intval._4_4_;\n            (__position._M_current)->aux = attr_value.aux;\n            *(undefined4 *)&(__position._M_current)->field_0x14 = attr_value._20_4_;\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            pAVar13 = this->abbrev_code_;\n            attr_value.val = aVar40;\n            if (iVar34 == iVar31) goto LAB_002e2fb8;\n            puVar14 = (uint *)((int)&(pAVar13->attributes).\n                                     super__Vector_base<gold::Dwarf_abbrev_table::Attribute,_std::allocator<gold::Dwarf_abbrev_table::Attribute>_>\n                                     ._M_impl._M_start[1].attr + iVar36);\n            uVar29 = puVar14[1];\n            uVar32 = *puVar14;\n            if (uVar29 != 0x16) goto LAB_002e2dd0;\nLAB_002e31a8:\n            uVar29 = (uint)*pattr;\n            puVar15 = pattr + 1;\n            if ((char)*pattr < '\0') {\n              attr_value.val = aVar40;\n              (*(code *)PTR_read_unsigned_LEB_128_x_004c2980)(puVar15,&len,uVar29);\n              puVar15 = pattr + len;\n              uVar29 = extraout_v1;\n              aVar40 = attr_value.val;\n            }\n            else {\n              len = 1;\n            }\n            puVar18 = puVar15 + -(int)puVar30;\n            puVar28 = puVar18 + (int)this->die_offset_;\n            iVar36 = (uint)(puVar28 < puVar18) + ((int)puVar18 >> 0x1f) + *(int *)&this->die_offset_\n            ;\n            attr_value.form = uVar29;\n            pattr = puVar15;\n            if (uVar29 != 0xe) break;\nLAB_002e31fc:\n            attr_value.aux.shndx = 0;\n            pDVar22 = this->dwinfo_;\n            attr_value.attr = uVar32;\n            local_30 = puVar28;\n            attr_value.val = aVar40;\n            if (pDVar22->offset_size_ == 4) {\n              pp_Var16 = (pDVar22->object_->super_Object)._vptr_Object;\n              p_Var37 = pp_Var16[3];\n              if (p_Var37 == (_func_int_varargs *)PTR_is_big_endian_004c2950) {\n                iVar36 = (*pp_Var16[0x3a])();\n              }\n              else {\n                iVar36 = (*p_Var37)();\n              }\n              uVar29 = *(uint *)pattr;\n              if (iVar36 == 0) {\n                uVar29 = (((uVar29 >> 0x10) << 0x18 | (uVar29 >> 0x18) << 0x10) >> 0x10) +\n                         ((uVar29 & 0xff) << 8 | uVar29 >> 8 & 0xff) * 0x10000;\n              }\n              pattr = pattr + 4;\n              uVar38 = (ulonglong)uVar29;\n            }\n            else {\n              uVar38 = (*local_34)(pDVar22,&pattr);\n            }\n            str_off = uVar38;\n            attr_value.aux.shndx = (*local_3c)(this->dwinfo_);\n            aVar7.refval = str_off;\n            if (uVar32 != 0x31) {\n              if (uVar32 < 0x32) {\n                if ((uVar32 != 1) && (aVar39.refval = str_off, uVar32 == 3)) {\nLAB_002e3284:\n                  this->string_shndx_ = (uint)attr_value.aux;\n                  this->name_off_ = (off_t)aVar39;\n                  aVar7 = aVar39;\n                }\n              }\n              else {\n                aVar40.refval = str_off;\n                if (uVar32 == 0x6e) {\nLAB_002e387c:\n                  this->string_shndx_ = (uint)attr_value.aux;\n                }\n                else {\n                  if (uVar32 != 0x2007) goto LAB_002e313c;\n                  this->string_shndx_ = (uint)attr_value.aux;\n                }\n                this->linkage_name_off_ = (off_t)aVar40;\n                aVar7 = aVar40;\n              }\n            }\nLAB_002e313c:\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            aVar40 = aVar7;\n          }\n        } while( true );\n      }\n      uVar32 = (int)pattr - (int)puVar30;\n      uVar29 = uVar32 + iVar34;\n      iVar31 = (uint)(uVar29 < uVar32) + ((int)uVar32 >> 0x1f) + *(int *)&this->die_offset_;\n      if (*(int *)&pAVar13->field_0x4 < 0) {\n        *(int *)&this->child_offset_ = iVar31;\n        *(uint *)((int)&this->child_offset_ + 4) = uVar29;\n      }\n      else {\n        *(int *)&this->sibling_offset_ = iVar31;\n        *(uint *)((int)&this->sibling_offset_ + 4) = uVar29;\n      }\n      this->attributes_read_ = true;\n      return true;\n    }\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    puVar24 = PTR_s_in_a_linker_script_004c191c + 0x7090;\n    (*(code *)PTR_do_gold_unreachable_004c1a30)\n              (puVar24,0x2a9,PTR_s_in_a_linker_script_004c191c + 0x7414);\n  }" { (expression_statement "puVar24 = PTR_s_in_a_linker_script_004c191c + 0x7090;" (assignment_expression "puVar24 = PTR_s_in_a_linker_script_004c191c + 0x7090" identifier = (binary_expression "PTR_s_in_a_linker_script_004c191c + 0x7090" identifier + number_literal)) ;) (expression_statement "(*(code *)PTR_do_gold_unreachable_004c1a30)\n              (puVar24,0x2a9,PTR_s_in_a_linker_script_004c191c + 0x7414);" (call_expression "(*(code *)PTR_do_gold_unreachable_004c1a30)\n              (puVar24,0x2a9,PTR_s_in_a_linker_script_004c191c + 0x7414)" (parenthesized_expression "(*(code *)PTR_do_gold_unreachable_004c1a30)" ( (pointer_expression "*(code *)PTR_do_gold_unreachable_004c1a30" * (cast_expression "(code *)PTR_do_gold_unreachable_004c1a30" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(puVar24,0x2a9,PTR_s_in_a_linker_script_004c191c + 0x7414)" ( identifier , number_literal , (binary_expression "PTR_s_in_a_linker_script_004c191c + 0x7414" identifier + number_literal) ))) ;) }) (else_clause "else {\n    pDVar22 = this->dwinfo_;\n    iVar34 = (int)this->die_offset_;\n    iVar31 = (int)pDVar22->cu_offset_;\n    puVar30 = pDVar22->buffer_ + iVar31 + iVar34;\n    if (pDVar22->buffer_ + iVar31 + (int)pDVar22->cu_length_ < puVar30 + 1) {\n      Dwarf_info_reader::warn_corrupt_debug_section(pDVar22);\n      return false;\n    }\n    local_38 = &this->attributes_;\n    if (puVar30 == (uchar *)0x0) {\n      return false;\n    }\n    iVar31 = (int)(pAVar13->attributes).\n                  super__Vector_base<gold::Dwarf_abbrev_table::Attribute,_std::allocator<gold::Dwarf_abbrev_table::Attribute>_>\n                  ._M_impl._M_finish -\n             (int)(pAVar13->attributes).\n                  super__Vector_base<gold::Dwarf_abbrev_table::Attribute,_std::allocator<gold::Dwarf_abbrev_table::Attribute>_>\n                  ._M_impl._M_start;\n    pattr = puVar30 + (int)this->attr_offset_;\n    uVar29 = iVar31 >> 3;\n    puVar24 = PTR_s__s_004c1a50;\n    if (uVar29 < 0xaaaaaab) {\n      pAVar33 = (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 ((uint)(((int)(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 - (int)pAVar33 >> 3) * -0x55555555) < uVar29) {\n        aVar27 = (anon_union_4_3_97895b06_for_aux)\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        iVar34 = aVar27.shndx - (int)pAVar33;\n        if (uVar29 == 0) {\n          pAVar19 = (pointer)0x0;\n          pAVar35 = pAVar33;\n        }\n        else {\n          local_40 = aVar27;\n          pAVar19 = (pointer)(*(code *)PTR_operator_new_004c13a8)(uVar29 * 0x18);\n          aVar27 = local_40;\n          pAVar35 = (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 (pAVar33 != (pointer)aVar27.shndx) {\n          (*(code *)PTR_memmove_004c5af8)(pAVar19,pAVar33,iVar34);\n        }\n        if (pAVar35 != (pointer)0x0) {\n          (*(code *)PTR_operator_delete_004c12fc)(pAVar35);\n        }\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_start = pAVar19;\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)((int)pAVar19 + iVar34);\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 = pAVar19 + uVar29;\n        if (uVar29 != 0) goto LAB_002e2d90;\nLAB_002e2fb8:\n        if (pAVar13 == (Abbrev_code *)0x0) {\n          this_00 = (Dwarf_die *)(PTR_s_in_a_linker_script_004c191c + 0x7108);\n          (*(code *)PTR_do_gold_unreachable_004c1a30)\n                    (this_00,0x206,PTR_s_in_a_linker_script_004c191c + 0x7404);\n          if (this_00->attributes_read_ == false) {\n            bVar21 = read_attributes(this_00);\n            return bVar21;\n          }\n          return this_00->attributes_read_;\n        }\n        iVar34 = (int)this->die_offset_;\n      }\n      else if (uVar29 != 0) {\nLAB_002e2d90:\n        local_3c = (code *)PTR_lookup_reloc_004c2994;\n        iVar34 = 0;\n        local_34 = (code *)PTR_read_from_pointer<64>_004c2998;\n        local_40.shndx = (uint)&str_off;\nLAB_002e2db4:\n        puVar14 = (uint *)((int)&((pAVar13->attributes).\n                                  super__Vector_base<gold::Dwarf_abbrev_table::Attribute,_std::allocator<gold::Dwarf_abbrev_table::Attribute>_>\n                                  ._M_impl._M_start)->attr + iVar34);\n        uVar29 = puVar14[1];\n        uVar32 = *puVar14;\n        aVar40 = attr_value.val;\n        if (uVar29 == 0x16) goto LAB_002e31a8;\nLAB_002e2dd0:\n        puVar15 = pattr + -(int)puVar30;\n        puVar28 = puVar15 + (int)this->die_offset_;\n        iVar36 = (uint)(puVar28 < puVar15) + ((int)puVar15 >> 0x1f) + *(int *)&this->die_offset_;\n        attr_value.form = uVar29;\n        if (uVar29 == 0xe) goto LAB_002e31fc;\n        do {\n          attr_value.val.intval._4_4_ = (undefined4)aVar40.intval;\n          attr_value.aux.shndx = 0;\n          attr_value.attr = uVar32;\n          attr_value.form = uVar29;\n          attr_value.val = aVar40;\n          if (0xe < uVar29) {\n            if (uVar29 == 0x15) {\n              if ((char)*pattr < '\0') {\n                aVar39.intval = (*(code *)PTR_read_unsigned_LEB_128_x_004c2980)(pattr + 1,&len);\n                pattr = pattr + len;\n              }\n              else {\n                aVar39.intval._0_7_ = 0;\n                aVar39.intval._7_1_ = *pattr;\n                len = 1;\n                pattr = pattr + 1;\n              }\n              goto joined_r0x002e3998;\n            }\n            if (0x15 < uVar29) {\n              if (uVar29 == 0x19) {\n                attr_value.val.intval._4_4_ = 1;\n                attr_value.val.stringval = (char *)0x0;\n              }\n              else {\n                if (uVar29 < 0x1a) {\n                  if (uVar29 != 0x17) {\n                    if (uVar29 != 0x18) {\n                      return false;\n                    }\n                    goto LAB_002e32bc;\n                  }\n                  pDVar22 = this->dwinfo_;\n                  if (pDVar22->offset_size_ == 4) {\n                    pp_Var16 = (pDVar22->object_->super_Object)._vptr_Object;\n                    p_Var37 = pp_Var16[3];\n                    if (p_Var37 == (_func_int_varargs *)PTR_is_big_endian_004c2950) {\n                      local_30 = puVar28;\n                      iVar36 = (*pp_Var16[0x3a])();\n                    }\n                    else {\n                      local_30 = puVar28;\n                      iVar36 = (*p_Var37)();\n                    }\n                    uVar23 = *(uint *)pattr;\n                    if (iVar36 == 0) {\n                      uVar23 = (((uVar23 >> 0x10) << 0x18 | (uVar23 >> 0x18) << 0x10) >> 0x10) +\n                               ((uVar23 & 0xff) << 8 | uVar23 >> 8 & 0xff) * 0x10000;\n                    }\n                    pattr = pattr + 4;\n                    uVar38 = (ulonglong)uVar23;\n                  }\n                  else {\n                    local_30 = puVar28;\n                    uVar38 = (*local_34)(pDVar22,&pattr);\n                  }\n                  pDVar22 = this->dwinfo_;\n                  goto LAB_002e3970;\n                }\n                if (uVar29 != 0x20) {\n                  if (uVar29 < 0x20) {\n                    return false;\n                  }\n                  if (1 < uVar29 - 0x1f01) {\n                    return false;\n                  }\nLAB_002e34d8:\n                  if ((char)*pattr < '\0') {\n                    aVar40.intval = (*(code *)PTR_read_unsigned_LEB_128_x_004c2980)(pattr + 1,&len);\n                    pattr = pattr + len;\n                  }\n                  else {\n                    aVar40.intval._0_7_ = 0;\n                    aVar40.intval._7_1_ = *pattr;\n                    len = 1;\n                    pattr = pattr + 1;\n                  }\n                  goto LAB_002e382c;\n                }\n                pp_Var16 = (this->dwinfo_->object_->super_Object)._vptr_Object;\n                p_Var37 = pp_Var16[3];\n                if (p_Var37 == (_func_int_varargs *)PTR_is_big_endian_004c2950) {\n                  iVar36 = (*pp_Var16[0x3a])();\n                }\n                else {\n                  iVar36 = (*p_Var37)();\n                }\n                    /* WARNING: Load size is inaccurate */\n                attr_value.val._4_4_ = pattr[4];\n                    /* WARNING: Load size is inaccurate */\n                attr_value.val.blockval = *pattr;\n                if (iVar36 == 0) {\n                  uVar23 = attr_value.val.uintval._4_4_ & 0xff;\n                  uVar26 = (uint)attr_value.val.uintval._4_4_ >> 8;\n                  uVar2 = (uint)attr_value.val.uintval._4_4_ >> 0x10;\n                  uVar4 = (uint)attr_value.val.uintval._4_4_ >> 0x18;\n                  attr_value.val.intval._4_4_ =\n                       ((((uint)attr_value.val.stringval >> 0x10) << 0x18 |\n                        ((uint)attr_value.val.stringval >> 0x18) << 0x10) >> 0x10) +\n                       (((uint)attr_value.val.stringval & 0xff) << 8 |\n                       (uint)attr_value.val.stringval >> 8 & 0xff) * 0x10000;\n                  attr_value.val.stringval =\n                       (char *)(((uVar2 << 0x18 | uVar4 << 0x10) >> 0x10) +\n                               (uVar23 << 8 | uVar26 & 0xff) * 0x10000);\n                }\n                pattr = pattr + 8;\n              }\n              aVar39.stringval = attr_value.val.stringval;\n              aVar39.intval._4_4_ = attr_value.val.intval._4_4_;\n              aVar11.stringval = attr_value.val.stringval;\n              aVar11.intval._4_4_ = attr_value.val.intval._4_4_;\n              aVar7.stringval = attr_value.val.stringval;\n              aVar7.intval._4_4_ = attr_value.val.intval._4_4_;\n              if (uVar32 == 0x6e) goto LAB_002e313c;\n              aVar7 = aVar11;\n              if (uVar32 == 0x2007) goto LAB_002e313c;\n              goto joined_r0x002e3124;\n            }\n            if (uVar29 == 0x11) {\n              puVar15 = pattr + 1;\n              uVar23 = CONCAT31(0,*pattr);\n              aVar39.stringval = (char *)0x0;\n              aVar39.intval._4_4_ = uVar23;\n              aVar12.stringval = (char *)0x0;\n              aVar12.uintval._4_4_ = uVar23;\n              aVar40.stringval = (char *)0x0;\n              aVar40.uintval._4_4_ = uVar23;\n              aVar10.stringval = (char *)0x0;\n              aVar10.uintval._4_4_ = uVar23;\n              aVar7.stringval = (char *)0x0;\n              aVar7.uintval._4_4_ = uVar23;\n              aVar9.stringval = (char *)0x0;\n              aVar9.uintval._4_4_ = uVar23;\n              pattr = puVar15;\n              if (uVar32 == 0x31) goto LAB_002e30bc;\n              if (0x31 < uVar32) {\n                if ((uVar32 != 0x6e) && (aVar40 = aVar12, uVar32 != 0x2007)) {\n                  if (uVar32 != 0x47) goto LAB_002e313c;\n                  *(undefined4 *)&this->specification_ = 0;\n                  *(uint *)((int)&this->specification_ + 4) = uVar23;\n                  aVar7 = aVar10;\n                  goto LAB_002e313c;\n                }\n                goto LAB_002e3858;\n              }\n              if (uVar32 == 1) {\n                *(undefined4 *)&this->sibling_offset_ = 0;\n                *(uint *)((int)&this->sibling_offset_ + 4) = uVar23;\n                aVar7 = aVar9;\n                goto LAB_002e313c;\n              }\n              goto joined_r0x002e3124;\n            }\n            if (uVar29 < 0x12) {\n              if (uVar29 == 0xf) goto LAB_002e34d8;\n              if (uVar29 != 0x10) {\n                return false;\n              }\n              pDVar22 = this->dwinfo_;\n              uVar23 = pDVar22->offset_size_;\n              if (pDVar22->cu_version_ < 3) {\n                uVar23 = pDVar22->address_size_;\n              }\n              if (uVar23 == 4) {\n                pp_Var16 = (pDVar22->object_->super_Object)._vptr_Object;\n                p_Var37 = pp_Var16[3];\n                if (p_Var37 == (_func_int_varargs *)PTR_is_big_endian_004c2950) {\n                  local_30 = puVar28;\n                  iVar36 = (*pp_Var16[0x3a])();\n                }\n                else {\n                  local_30 = puVar28;\n                  iVar36 = (*p_Var37)();\n                }\n                uVar23 = *(uint *)pattr;\n                if (iVar36 == 0) {\n                  uVar23 = (((uVar23 >> 0x10) << 0x18 | (uVar23 >> 0x18) << 0x10) >> 0x10) +\n                           ((uVar23 & 0xff) << 8 | uVar23 >> 8 & 0xff) * 0x10000;\n                }\n                pattr = pattr + 4;\n                uVar38 = (ulonglong)uVar23;\n              }\n              else {\n                local_30 = puVar28;\n                uVar38 = (*local_34)(pDVar22,&pattr);\n              }\n              str_off = uVar38;\n              attr_value.aux.shndx = (*local_3c)(this->dwinfo_);\n              aVar39.refval = str_off;\n            }\n            else {\n              if (uVar29 == 0x13) {\n                pp_Var16 = (this->dwinfo_->object_->super_Object)._vptr_Object;\n                p_Var37 = pp_Var16[3];\n                if (p_Var37 == (_func_int_varargs *)PTR_is_big_endian_004c2950) {\n                  local_30 = puVar28;\n                  iVar36 = (*pp_Var16[0x3a])();\n                }\n                else {\n                  local_30 = puVar28;\n                  iVar36 = (*p_Var37)();\n                }\n                uVar23 = *(uint *)pattr;\n                if (iVar36 == 0) {\n                  uVar23 = (((uVar23 >> 0x10) << 0x18 | (uVar23 >> 0x18) << 0x10) >> 0x10) +\n                           ((uVar23 & 0xff) << 8 | uVar23 >> 8 & 0xff) * 0x10000;\n                }\n                pattr = pattr + 4;\n                pDVar22 = this->dwinfo_;\n                uVar38 = (ulonglong)uVar23;\n              }\n              else {\n                if (uVar29 < 0x14) {\n                  pp_Var16 = (this->dwinfo_->object_->super_Object)._vptr_Object;\n                  p_Var37 = pp_Var16[3];\n                  if (p_Var37 == (_func_int_varargs *)PTR_is_big_endian_004c2950) {\n                    iVar36 = (*pp_Var16[0x3a])();\n                  }\n                  else {\n                    iVar36 = (*p_Var37)();\n                  }\n                  uVar6 = *(ushort *)pattr;\n                  if (iVar36 == 0) {\n                    uVar6 = CONCAT11(pattr[1],*pattr);\n                  }\n                  aVar39.intval._0_6_ = 0;\n                  aVar39.intval._6_2_ = uVar6;\n                  pattr = pattr + 2;\n                  goto joined_r0x002e3998;\n                }\n                pp_Var16 = (this->dwinfo_->object_->super_Object)._vptr_Object;\n                p_Var37 = pp_Var16[3];\n                if (p_Var37 == (_func_int_varargs *)PTR_is_big_endian_004c2950) {\n                  local_30 = puVar28;\n                  iVar36 = (*pp_Var16[0x3a])();\n                }\n                else {\n                  local_30 = puVar28;\n                  iVar36 = (*p_Var37)();\n                }\n                uVar23 = *(uint *)(pattr + 4);\n                uVar26 = *(uint *)pattr;\n                if (iVar36 == 0) {\n                  uVar2 = uVar23 & 0xff;\n                  uVar4 = uVar23 >> 8;\n                  uVar3 = uVar23 >> 0x10;\n                  uVar5 = uVar23 >> 0x18;\n                  uVar23 = (((uVar26 >> 0x10) << 0x18 | (uVar26 >> 0x18) << 0x10) >> 0x10) +\n                           ((uVar26 & 0xff) << 8 | uVar26 >> 8 & 0xff) * 0x10000;\n                  uVar26 = ((uVar3 << 0x18 | uVar5 << 0x10) >> 0x10) +\n                           (uVar2 << 8 | uVar4 & 0xff) * 0x10000;\n                }\n                uVar38 = CONCAT44(uVar26,uVar23);\n                pattr = pattr + 8;\n                pDVar22 = this->dwinfo_;\n              }\nLAB_002e3970:\n              str_off = uVar38;\n              attr_value.aux.shndx = (*local_3c)(pDVar22);\n              aVar39.refval = str_off;\n            }\njoined_r0x002e3998:\n            if (uVar32 == 0x31) {\nLAB_002e30bc:\n              this->abstract_origin_ = (off_t)aVar39;\n              aVar7 = aVar39;\n              goto LAB_002e313c;\n            }\n            if (uVar32 < 0x32) {\n              aVar7 = aVar39;\n              if (uVar32 != 1) goto LAB_002e313c;\nLAB_002e39b4:\n              aVar7 = aVar39;\n              if (attr_value.aux.shndx != 0) goto LAB_002e313c;\n              this->sibling_offset_ = (off_t)aVar39;\n              goto LAB_002e313c;\n            }\n            aVar40 = aVar39;\n            if ((uVar32 != 0x6e) && (uVar32 != 0x2007)) {\nLAB_002e339c:\n              aVar7 = aVar39;\n              if (uVar32 != 0x47) goto LAB_002e313c;\n              this->specification_ = (off_t)aVar39;\n              goto LAB_002e313c;\n            }\n            goto LAB_002e3858;\n          }\n          if (uVar29 == 7) {\n            pp_Var16 = (this->dwinfo_->object_->super_Object)._vptr_Object;\n            p_Var37 = pp_Var16[3];\n            if (p_Var37 == (_func_int_varargs *)PTR_is_big_endian_004c2950) {\n              local_30 = puVar28;\n              iVar17 = (*pp_Var16[0x3a])();\n            }\n            else {\n              local_30 = puVar28;\n              iVar17 = (*p_Var37)();\n            }\n            str_off._4_4_ = *(char **)(pattr + 4);\n            pcVar25 = *(char **)pattr;\n            if (iVar17 == 0) {\n              uVar23 = (uint)str_off._4_4_ & 0xff;\n              uVar26 = (uint)str_off._4_4_ >> 8;\n              uVar2 = (uint)str_off._4_4_ >> 0x10;\n              uVar4 = (uint)str_off._4_4_ >> 0x18;\n              str_off._4_4_ =\n                   (char *)(((((uint)pcVar25 >> 0x10) << 0x18 | ((uint)pcVar25 >> 0x18) << 0x10) >>\n                            0x10) + (((uint)pcVar25 & 0xff) << 8 | (uint)pcVar25 >> 8 & 0xff) *\n                                    0x10000);\n              pcVar25 = (char *)(((uVar2 << 0x18 | uVar4 << 0x10) >> 0x10) +\n                                (uVar23 << 8 | uVar26 & 0xff) * 0x10000);\n            }\n            pattr = pattr + 8;\n            pDVar22 = this->dwinfo_;\n            str_off._0_4_ = pcVar25;\nLAB_002e3708:\n            attr_value.aux.shndx = (*local_3c)(pDVar22,pcVar25,iVar36,local_30,local_40.shndx);\n            attr_value.val._4_4_ = str_off._4_4_;\n            attr_value.val.stringval = str_off._0_4_;\n            goto LAB_002e355c;\n          }\n          if (7 < uVar29) {\n            if (uVar29 == 10) {\n              attr_value.val.stringval = (char *)(pattr + 1);\n              attr_value.aux.shndx._0_3_ = 0;\n              attr_value.aux.shndx._3_1_ = *pattr;\n              pattr = (uchar *)((int)attr_value.val.stringval + attr_value.aux.shndx);\n              goto LAB_002e355c;\n            }\n            if (uVar29 < 0xb) {\n              if (uVar29 != 8) {\n                if (uVar29 != 9) {\n                  return false;\n                }\nLAB_002e32bc:\n                aVar27.shndx._0_3_ = 0;\n                aVar27.shndx._3_1_ = *pattr;\n                puVar15 = pattr + 1;\n                if ((char)*pattr < '\0') {\n                  (*(code *)PTR_read_unsigned_LEB_128_x_004c2980)(puVar15,&len);\n                  puVar15 = pattr + len;\n                  aVar27 = extraout_v1_00;\n                }\n                else {\n                  len = 1;\n                }\n                aVar40.blockval = puVar15;\n                aVar40.intval._4_4_ = attr_value.val.intval._4_4_;\n                attr_value.aux = aVar27;\n                pattr = pattr + aVar27.shndx + len;\n                goto LAB_002e382c;\n              }\n              attr_value.val.blockval = pattr;\n              local_30 = pattr;\n              len = (*(code *)PTR_strlen_004c5b9c)(pattr);\n              aVar40.stringval = attr_value.val.stringval;\n              aVar40.intval._4_4_ = attr_value.val.intval._4_4_;\n              aVar8.stringval = attr_value.val.stringval;\n              aVar8.intval._4_4_ = attr_value.val.intval._4_4_;\n              aVar7.stringval = attr_value.val.stringval;\n              aVar7.intval._4_4_ = attr_value.val.intval._4_4_;\n              pattr = local_30 + len + 1;\n              if (uVar32 == 0x31) goto LAB_002e313c;\n              if (0x31 < uVar32) {\n                if ((uVar32 != 0x6e) && (aVar7 = aVar8, uVar32 != 0x2007)) goto LAB_002e313c;\n                this->linkage_name_ = (char *)local_30;\n                aVar7 = aVar40;\n                goto LAB_002e313c;\n              }\nLAB_002e3118:\n              aVar7 = aVar40;\n              aVar39 = aVar40;\n              if (uVar32 == 1) goto LAB_002e313c;\njoined_r0x002e3124:\n              aVar7 = aVar39;\n              if (uVar32 != 3) goto LAB_002e313c;\n              attr_value.val.stringval = (char *)((ulonglong)aVar39 >> 0x20);\n              if (uVar29 == 8) {\n                this->name_ = attr_value.val.stringval;\n                goto LAB_002e313c;\n              }\n              if (uVar29 != 0xe) goto LAB_002e313c;\n              goto LAB_002e3284;\n            }\n            if (uVar29 < 0xd) {\n              aVar40.intval._0_7_ = 0;\n              aVar40.uintval._7_1_ = *pattr;\n              pattr = pattr + 1;\nLAB_002e382c:\n              aVar7 = aVar40;\n              if (uVar32 == 0x31) goto LAB_002e313c;\n              if (uVar32 < 0x32) goto LAB_002e3118;\n            }\n            else {\n              bVar1 = *pattr;\n              uVar23 = CONCAT31(0,bVar1);\n              puVar15 = pattr + 1;\n              if ((char)bVar1 < '\0') {\n                aVar40.intval = (*(code *)PTR_read_signed_LEB_128_x_004c297c)(puVar15,&len,uVar23);\n                puVar15 = pattr + len;\n              }\n              else {\n                len = 1;\n                aVar40.stringval = (char *)0x0;\n                aVar40.uintval._4_4_ = uVar23;\n                if ((bVar1 & 0x40) != 0) {\n                  aVar40.stringval = (char *)0xffffffff;\n                  aVar40.uintval._4_4_ = uVar23 | 0xffffff80;\n                }\n              }\n              pattr = puVar15;\n              aVar7 = aVar40;\n              if (uVar32 == 0x31) goto LAB_002e313c;\n              if (uVar32 < 0x32) {\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                iVar36 = iVar34;\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_002e314c;\nLAB_002e2f98:\n                iVar34 = iVar34 + 8;\n                attr_value.val = aVar40;\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                          (local_38,__position,&attr_value);\n                pAVar13 = this->abbrev_code_;\n                if (iVar34 == iVar31) goto LAB_002e2fb8;\n                goto LAB_002e2db4;\n              }\n            }\n            if ((uVar32 != 0x6e) && (aVar7 = aVar40, uVar32 != 0x2007)) goto LAB_002e313c;\nLAB_002e3858:\n            attr_value.val._0_4_ = aVar40.stringval;\n            aVar7 = aVar40;\n            if (uVar29 == 8) {\n              this->linkage_name_ = attr_value.val.stringval;\n              goto LAB_002e313c;\n            }\n            if (uVar29 != 0xe) goto LAB_002e313c;\n            goto LAB_002e387c;\n          }\n          if (uVar29 == 4) {\n            pp_Var16 = (this->dwinfo_->object_->super_Object)._vptr_Object;\n            p_Var37 = pp_Var16[3];\n            if (p_Var37 == (_func_int_varargs *)PTR_is_big_endian_004c2950) {\n              iVar36 = (*pp_Var16[0x3a])();\n            }\n            else {\n              iVar36 = (*p_Var37)();\n            }\n            attr_value.aux.shndx = *(uint *)pattr;\n            if (iVar36 == 0) {\n              attr_value.aux.shndx =\n                   (((attr_value.aux.shndx >> 0x10) << 0x18 | (attr_value.aux.shndx >> 0x18) << 0x10\n                    ) >> 0x10) +\n                   ((attr_value.aux.shndx & 0xff) << 8 | attr_value.aux.shndx >> 8 & 0xff) * 0x10000\n              ;\n            }\n            attr_value.val.stringval = (char *)(pattr + 4);\n            pattr = (uchar *)((int)attr_value.val.stringval + attr_value.aux.shndx);\nLAB_002e355c:\n            aVar40.stringval = attr_value.val.stringval;\n            aVar40.intval._4_4_ = attr_value.val.intval._4_4_;\n            aVar7 = aVar40;\n            if (uVar32 == 0x31) goto LAB_002e313c;\n            if (uVar32 < 0x32) goto LAB_002e3118;\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          }\n          else {\n            if (4 < uVar29) {\n              if (uVar29 != 5) {\n                if (uVar29 != 6) {\n                  return false;\n                }\n                pp_Var16 = (this->dwinfo_->object_->super_Object)._vptr_Object;\n                p_Var37 = pp_Var16[3];\n                if (p_Var37 == (_func_int_varargs *)PTR_is_big_endian_004c2950) {\n                  local_30 = puVar28;\n                  iVar17 = (*pp_Var16[0x3a])();\n                }\n                else {\n                  local_30 = puVar28;\n                  iVar17 = (*p_Var37)();\n                }\n                pcVar25 = *(char **)pattr;\n                if (iVar17 == 0) {\n                  pcVar25 = (char *)(((((uint)pcVar25 >> 0x10) << 0x18 |\n                                      ((uint)pcVar25 >> 0x18) << 0x10) >> 0x10) +\n                                    (((uint)pcVar25 & 0xff) << 8 | (uint)pcVar25 >> 8 & 0xff) *\n                                    0x10000);\n                }\n                pattr = pattr + 4;\n                pDVar22 = this->dwinfo_;\n                str_off._0_4_ = (char *)0x0;\n                str_off._4_4_ = pcVar25;\n                goto LAB_002e3708;\n              }\n              pp_Var16 = (this->dwinfo_->object_->super_Object)._vptr_Object;\n              p_Var37 = pp_Var16[3];\n              if (p_Var37 == (_func_int_varargs *)PTR_is_big_endian_004c2950) {\n                iVar36 = (*pp_Var16[0x3a])();\n              }\n              else {\n                iVar36 = (*p_Var37)();\n              }\n              uVar6 = *(ushort *)pattr;\n              if (iVar36 == 0) {\n                uVar6 = CONCAT11(pattr[1],*pattr);\n              }\n              attr_value.val.intval._4_4_ = ZEXT24(uVar6);\n              pattr = pattr + 2;\n              attr_value.val.stringval = (char *)0x0;\n              goto LAB_002e355c;\n            }\n            if (uVar29 != 1) {\n              if (uVar29 != 3) {\n                return false;\n              }\n              pp_Var16 = (this->dwinfo_->object_->super_Object)._vptr_Object;\n              p_Var37 = pp_Var16[3];\n              if (p_Var37 == (_func_int_varargs *)PTR_is_big_endian_004c2950) {\n                iVar36 = (*pp_Var16[0x3a])();\n              }\n              else {\n                iVar36 = (*p_Var37)();\n              }\n              uVar6 = *(ushort *)pattr;\n              if (iVar36 == 0) {\n                uVar6 = CONCAT11(pattr[1],*pattr);\n              }\n              attr_value.aux.shndx._0_2_ = 0;\n              attr_value.aux.shndx._2_2_ = uVar6;\n              attr_value.val.stringval = (char *)(pattr + 2);\n              pattr = (uchar *)((int)attr_value.val.stringval + attr_value.aux.shndx);\n              goto LAB_002e355c;\n            }\n            pDVar22 = this->dwinfo_;\n            if (pDVar22->address_size_ == 4) {\n              pp_Var16 = (pDVar22->object_->super_Object)._vptr_Object;\n              p_Var37 = pp_Var16[3];\n              if (p_Var37 == (_func_int_varargs *)PTR_is_big_endian_004c2950) {\n                local_30 = puVar28;\n                iVar36 = (*pp_Var16[0x3a])();\n              }\n              else {\n                local_30 = puVar28;\n                iVar36 = (*p_Var37)();\n              }\n              uVar23 = *(uint *)pattr;\n              if (iVar36 == 0) {\n                uVar23 = (((uVar23 >> 0x10) << 0x18 | (uVar23 >> 0x18) << 0x10) >> 0x10) +\n                         ((uVar23 & 0xff) << 8 | uVar23 >> 8 & 0xff) * 0x10000;\n              }\n              pattr = pattr + 4;\n              uVar38 = (ulonglong)uVar23;\n            }\n            else {\n              local_30 = puVar28;\n              uVar38 = (*local_34)(pDVar22,&pattr);\n            }\n            str_off = uVar38;\n            attr_value.aux.shndx = (*local_3c)(this->dwinfo_);\n            aVar39.refval = str_off;\n            if (uVar32 == 0x31) goto LAB_002e30bc;\n            if (uVar32 < 0x32) {\n              if (uVar32 != 1) goto joined_r0x002e3124;\n              goto LAB_002e39b4;\n            }\n            aVar7.refval = str_off;\n            if (uVar32 == 0x6e) goto LAB_002e313c;\n            if (uVar32 != 0x2007) goto LAB_002e339c;\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            aVar40.refval = str_off;\n          }\n          while( true ) {\n            iVar36 = iVar34;\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_002e2f98;\nLAB_002e314c:\n            attr_value.val.stringval = (char *)((ulonglong)aVar40 >> 0x20);\n            attr_value.val.intval._4_4_ = (undefined4)aVar40.intval;\n            iVar34 = iVar36 + 8;\n            (__position._M_current)->form = attr_value.form;\n            ((__position._M_current)->val).stringval = attr_value.val.stringval;\n            (__position._M_current)->attr = attr_value.attr;\n            *(undefined4 *)((int)&(__position._M_current)->val + 4) = attr_value.val.intval._4_4_;\n            (__position._M_current)->aux = attr_value.aux;\n            *(undefined4 *)&(__position._M_current)->field_0x14 = attr_value._20_4_;\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            pAVar13 = this->abbrev_code_;\n            attr_value.val = aVar40;\n            if (iVar34 == iVar31) goto LAB_002e2fb8;\n            puVar14 = (uint *)((int)&(pAVar13->attributes).\n                                     super__Vector_base<gold::Dwarf_abbrev_table::Attribute,_std::allocator<gold::Dwarf_abbrev_table::Attribute>_>\n                                     ._M_impl._M_start[1].attr + iVar36);\n            uVar29 = puVar14[1];\n            uVar32 = *puVar14;\n            if (uVar29 != 0x16) goto LAB_002e2dd0;\nLAB_002e31a8:\n            uVar29 = (uint)*pattr;\n            puVar15 = pattr + 1;\n            if ((char)*pattr < '\0') {\n              attr_value.val = aVar40;\n              (*(code *)PTR_read_unsigned_LEB_128_x_004c2980)(puVar15,&len,uVar29);\n              puVar15 = pattr + len;\n              uVar29 = extraout_v1;\n              aVar40 = attr_value.val;\n            }\n            else {\n              len = 1;\n            }\n            puVar18 = puVar15 + -(int)puVar30;\n            puVar28 = puVar18 + (int)this->die_offset_;\n            iVar36 = (uint)(puVar28 < puVar18) + ((int)puVar18 >> 0x1f) + *(int *)&this->die_offset_\n            ;\n            attr_value.form = uVar29;\n            pattr = puVar15;\n            if (uVar29 != 0xe) break;\nLAB_002e31fc:\n            attr_value.aux.shndx = 0;\n            pDVar22 = this->dwinfo_;\n            attr_value.attr = uVar32;\n            local_30 = puVar28;\n            attr_value.val = aVar40;\n            if (pDVar22->offset_size_ == 4) {\n              pp_Var16 = (pDVar22->object_->super_Object)._vptr_Object;\n              p_Var37 = pp_Var16[3];\n              if (p_Var37 == (_func_int_varargs *)PTR_is_big_endian_004c2950) {\n                iVar36 = (*pp_Var16[0x3a])();\n              }\n              else {\n                iVar36 = (*p_Var37)();\n              }\n              uVar29 = *(uint *)pattr;\n              if (iVar36 == 0) {\n                uVar29 = (((uVar29 >> 0x10) << 0x18 | (uVar29 >> 0x18) << 0x10) >> 0x10) +\n                         ((uVar29 & 0xff) << 8 | uVar29 >> 8 & 0xff) * 0x10000;\n              }\n              pattr = pattr + 4;\n              uVar38 = (ulonglong)uVar29;\n            }\n            else {\n              uVar38 = (*local_34)(pDVar22,&pattr);\n            }\n            str_off = uVar38;\n            attr_value.aux.shndx = (*local_3c)(this->dwinfo_);\n            aVar7.refval = str_off;\n            if (uVar32 != 0x31) {\n              if (uVar32 < 0x32) {\n                if ((uVar32 != 1) && (aVar39.refval = str_off, uVar32 == 3)) {\nLAB_002e3284:\n                  this->string_shndx_ = (uint)attr_value.aux;\n                  this->name_off_ = (off_t)aVar39;\n                  aVar7 = aVar39;\n                }\n              }\n              else {\n                aVar40.refval = str_off;\n                if (uVar32 == 0x6e) {\nLAB_002e387c:\n                  this->string_shndx_ = (uint)attr_value.aux;\n                }\n                else {\n                  if (uVar32 != 0x2007) goto LAB_002e313c;\n                  this->string_shndx_ = (uint)attr_value.aux;\n                }\n                this->linkage_name_off_ = (off_t)aVar40;\n                aVar7 = aVar40;\n              }\n            }\nLAB_002e313c:\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            aVar40 = aVar7;\n          }\n        } while( true );\n      }\n      uVar32 = (int)pattr - (int)puVar30;\n      uVar29 = uVar32 + iVar34;\n      iVar31 = (uint)(uVar29 < uVar32) + ((int)uVar32 >> 0x1f) + *(int *)&this->die_offset_;\n      if (*(int *)&pAVar13->field_0x4 < 0) {\n        *(int *)&this->child_offset_ = iVar31;\n        *(uint *)((int)&this->child_offset_ + 4) = uVar29;\n      }\n      else {\n        *(int *)&this->sibling_offset_ = iVar31;\n        *(uint *)((int)&this->sibling_offset_ + 4) = uVar29;\n      }\n      this->attributes_read_ = true;\n      return true;\n    }\n  }" else (compound_statement "{\n    pDVar22 = this->dwinfo_;\n    iVar34 = (int)this->die_offset_;\n    iVar31 = (int)pDVar22->cu_offset_;\n    puVar30 = pDVar22->buffer_ + iVar31 + iVar34;\n    if (pDVar22->buffer_ + iVar31 + (int)pDVar22->cu_length_ < puVar30 + 1) {\n      Dwarf_info_reader::warn_corrupt_debug_section(pDVar22);\n      return false;\n    }\n    local_38 = &this->attributes_;\n    if (puVar30 == (uchar *)0x0) {\n      return false;\n    }\n    iVar31 = (int)(pAVar13->attributes).\n                  super__Vector_base<gold::Dwarf_abbrev_table::Attribute,_std::allocator<gold::Dwarf_abbrev_table::Attribute>_>\n                  ._M_impl._M_finish -\n             (int)(pAVar13->attributes).\n                  super__Vector_base<gold::Dwarf_abbrev_table::Attribute,_std::allocator<gold::Dwarf_abbrev_table::Attribute>_>\n                  ._M_impl._M_start;\n    pattr = puVar30 + (int)this->attr_offset_;\n    uVar29 = iVar31 >> 3;\n    puVar24 = PTR_s__s_004c1a50;\n    if (uVar29 < 0xaaaaaab) {\n      pAVar33 = (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 ((uint)(((int)(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 - (int)pAVar33 >> 3) * -0x55555555) < uVar29) {\n        aVar27 = (anon_union_4_3_97895b06_for_aux)\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        iVar34 = aVar27.shndx - (int)pAVar33;\n        if (uVar29 == 0) {\n          pAVar19 = (pointer)0x0;\n          pAVar35 = pAVar33;\n        }\n        else {\n          local_40 = aVar27;\n          pAVar19 = (pointer)(*(code *)PTR_operator_new_004c13a8)(uVar29 * 0x18);\n          aVar27 = local_40;\n          pAVar35 = (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 (pAVar33 != (pointer)aVar27.shndx) {\n          (*(code *)PTR_memmove_004c5af8)(pAVar19,pAVar33,iVar34);\n        }\n        if (pAVar35 != (pointer)0x0) {\n          (*(code *)PTR_operator_delete_004c12fc)(pAVar35);\n        }\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_start = pAVar19;\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)((int)pAVar19 + iVar34);\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 = pAVar19 + uVar29;\n        if (uVar29 != 0) goto LAB_002e2d90;\nLAB_002e2fb8:\n        if (pAVar13 == (Abbrev_code *)0x0) {\n          this_00 = (Dwarf_die *)(PTR_s_in_a_linker_script_004c191c + 0x7108);\n          (*(code *)PTR_do_gold_unreachable_004c1a30)\n                    (this_00,0x206,PTR_s_in_a_linker_script_004c191c + 0x7404);\n          if (this_00->attributes_read_ == false) {\n            bVar21 = read_attributes(this_00);\n            return bVar21;\n          }\n          return this_00->attributes_read_;\n        }\n        iVar34 = (int)this->die_offset_;\n      }\n      else if (uVar29 != 0) {\nLAB_002e2d90:\n        local_3c = (code *)PTR_lookup_reloc_004c2994;\n        iVar34 = 0;\n        local_34 = (code *)PTR_read_from_pointer<64>_004c2998;\n        local_40.shndx = (uint)&str_off;\nLAB_002e2db4:\n        puVar14 = (uint *)((int)&((pAVar13->attributes).\n                                  super__Vector_base<gold::Dwarf_abbrev_table::Attribute,_std::allocator<gold::Dwarf_abbrev_table::Attribute>_>\n                                  ._M_impl._M_start)->attr + iVar34);\n        uVar29 = puVar14[1];\n        uVar32 = *puVar14;\n        aVar40 = attr_value.val;\n        if (uVar29 == 0x16) goto LAB_002e31a8;\nLAB_002e2dd0:\n        puVar15 = pattr + -(int)puVar30;\n        puVar28 = puVar15 + (int)this->die_offset_;\n        iVar36 = (uint)(puVar28 < puVar15) + ((int)puVar15 >> 0x1f) + *(int *)&this->die_offset_;\n        attr_value.form = uVar29;\n        if (uVar29 == 0xe) goto LAB_002e31fc;\n        do {\n          attr_value.val.intval._4_4_ = (undefined4)aVar40.intval;\n          attr_value.aux.shndx = 0;\n          attr_value.attr = uVar32;\n          attr_value.form = uVar29;\n          attr_value.val = aVar40;\n          if (0xe < uVar29) {\n            if (uVar29 == 0x15) {\n              if ((char)*pattr < '\0') {\n                aVar39.intval = (*(code *)PTR_read_unsigned_LEB_128_x_004c2980)(pattr + 1,&len);\n                pattr = pattr + len;\n              }\n              else {\n                aVar39.intval._0_7_ = 0;\n                aVar39.intval._7_1_ = *pattr;\n                len = 1;\n                pattr = pattr + 1;\n              }\n              goto joined_r0x002e3998;\n            }\n            if (0x15 < uVar29) {\n              if (uVar29 == 0x19) {\n                attr_value.val.intval._4_4_ = 1;\n                attr_value.val.stringval = (char *)0x0;\n              }\n              else {\n                if (uVar29 < 0x1a) {\n                  if (uVar29 != 0x17) {\n                    if (uVar29 != 0x18) {\n                      return false;\n                    }\n                    goto LAB_002e32bc;\n                  }\n                  pDVar22 = this->dwinfo_;\n                  if (pDVar22->offset_size_ == 4) {\n                    pp_Var16 = (pDVar22->object_->super_Object)._vptr_Object;\n                    p_Var37 = pp_Var16[3];\n                    if (p_Var37 == (_func_int_varargs *)PTR_is_big_endian_004c2950) {\n                      local_30 = puVar28;\n                      iVar36 = (*pp_Var16[0x3a])();\n                    }\n                    else {\n                      local_30 = puVar28;\n                      iVar36 = (*p_Var37)();\n                    }\n                    uVar23 = *(uint *)pattr;\n                    if (iVar36 == 0) {\n                      uVar23 = (((uVar23 >> 0x10) << 0x18 | (uVar23 >> 0x18) << 0x10) >> 0x10) +\n                               ((uVar23 & 0xff) << 8 | uVar23 >> 8 & 0xff) * 0x10000;\n                    }\n                    pattr = pattr + 4;\n                    uVar38 = (ulonglong)uVar23;\n                  }\n                  else {\n                    local_30 = puVar28;\n                    uVar38 = (*local_34)(pDVar22,&pattr);\n                  }\n                  pDVar22 = this->dwinfo_;\n                  goto LAB_002e3970;\n                }\n                if (uVar29 != 0x20) {\n                  if (uVar29 < 0x20) {\n                    return false;\n                  }\n                  if (1 < uVar29 - 0x1f01) {\n                    return false;\n                  }\nLAB_002e34d8:\n                  if ((char)*pattr < '\0') {\n                    aVar40.intval = (*(code *)PTR_read_unsigned_LEB_128_x_004c2980)(pattr + 1,&len);\n                    pattr = pattr + len;\n                  }\n                  else {\n                    aVar40.intval._0_7_ = 0;\n                    aVar40.intval._7_1_ = *pattr;\n                    len = 1;\n                    pattr = pattr + 1;\n                  }\n                  goto LAB_002e382c;\n                }\n                pp_Var16 = (this->dwinfo_->object_->super_Object)._vptr_Object;\n                p_Var37 = pp_Var16[3];\n                if (p_Var37 == (_func_int_varargs *)PTR_is_big_endian_004c2950) {\n                  iVar36 = (*pp_Var16[0x3a])();\n                }\n                else {\n                  iVar36 = (*p_Var37)();\n                }\n                    /* WARNING: Load size is inaccurate */\n                attr_value.val._4_4_ = pattr[4];\n                    /* WARNING: Load size is inaccurate */\n                attr_value.val.blockval = *pattr;\n                if (iVar36 == 0) {\n                  uVar23 = attr_value.val.uintval._4_4_ & 0xff;\n                  uVar26 = (uint)attr_value.val.uintval._4_4_ >> 8;\n                  uVar2 = (uint)attr_value.val.uintval._4_4_ >> 0x10;\n                  uVar4 = (uint)attr_value.val.uintval._4_4_ >> 0x18;\n                  attr_value.val.intval._4_4_ =\n                       ((((uint)attr_value.val.stringval >> 0x10) << 0x18 |\n                        ((uint)attr_value.val.stringval >> 0x18) << 0x10) >> 0x10) +\n                       (((uint)attr_value.val.stringval & 0xff) << 8 |\n                       (uint)attr_value.val.stringval >> 8 & 0xff) * 0x10000;\n                  attr_value.val.stringval =\n                       (char *)(((uVar2 << 0x18 | uVar4 << 0x10) >> 0x10) +\n                               (uVar23 << 8 | uVar26 & 0xff) * 0x10000);\n                }\n                pattr = pattr + 8;\n              }\n              aVar39.stringval = attr_value.val.stringval;\n              aVar39.intval._4_4_ = attr_value.val.intval._4_4_;\n              aVar11.stringval = attr_value.val.stringval;\n              aVar11.intval._4_4_ = attr_value.val.intval._4_4_;\n              aVar7.stringval = attr_value.val.stringval;\n              aVar7.intval._4_4_ = attr_value.val.intval._4_4_;\n              if (uVar32 == 0x6e) goto LAB_002e313c;\n              aVar7 = aVar11;\n              if (uVar32 == 0x2007) goto LAB_002e313c;\n              goto joined_r0x002e3124;\n            }\n            if (uVar29 == 0x11) {\n              puVar15 = pattr + 1;\n              uVar23 = CONCAT31(0,*pattr);\n              aVar39.stringval = (char *)0x0;\n              aVar39.intval._4_4_ = uVar23;\n              aVar12.stringval = (char *)0x0;\n              aVar12.uintval._4_4_ = uVar23;\n              aVar40.stringval = (char *)0x0;\n              aVar40.uintval._4_4_ = uVar23;\n              aVar10.stringval = (char *)0x0;\n              aVar10.uintval._4_4_ = uVar23;\n              aVar7.stringval = (char *)0x0;\n              aVar7.uintval._4_4_ = uVar23;\n              aVar9.stringval = (char *)0x0;\n              aVar9.uintval._4_4_ = uVar23;\n              pattr = puVar15;\n              if (uVar32 == 0x31) goto LAB_002e30bc;\n              if (0x31 < uVar32) {\n                if ((uVar32 != 0x6e) && (aVar40 = aVar12, uVar32 != 0x2007)) {\n                  if (uVar32 != 0x47) goto LAB_002e313c;\n                  *(undefined4 *)&this->specification_ = 0;\n                  *(uint *)((int)&this->specification_ + 4) = uVar23;\n                  aVar7 = aVar10;\n                  goto LAB_002e313c;\n                }\n                goto LAB_002e3858;\n              }\n              if (uVar32 == 1) {\n                *(undefined4 *)&this->sibling_offset_ = 0;\n                *(uint *)((int)&this->sibling_offset_ + 4) = uVar23;\n                aVar7 = aVar9;\n                goto LAB_002e313c;\n              }\n              goto joined_r0x002e3124;\n            }\n            if (uVar29 < 0x12) {\n              if (uVar29 == 0xf) goto LAB_002e34d8;\n              if (uVar29 != 0x10) {\n                return false;\n              }\n              pDVar22 = this->dwinfo_;\n              uVar23 = pDVar22->offset_size_;\n              if (pDVar22->cu_version_ < 3) {\n                uVar23 = pDVar22->address_size_;\n              }\n              if (uVar23 == 4) {\n                pp_Var16 = (pDVar22->object_->super_Object)._vptr_Object;\n                p_Var37 = pp_Var16[3];\n                if (p_Var37 == (_func_int_varargs *)PTR_is_big_endian_004c2950) {\n                  local_30 = puVar28;\n                  iVar36 = (*pp_Var16[0x3a])();\n                }\n                else {\n                  local_30 = puVar28;\n                  iVar36 = (*p_Var37)();\n                }\n                uVar23 = *(uint *)pattr;\n                if (iVar36 == 0) {\n                  uVar23 = (((uVar23 >> 0x10) << 0x18 | (uVar23 >> 0x18) << 0x10) >> 0x10) +\n                           ((uVar23 & 0xff) << 8 | uVar23 >> 8 & 0xff) * 0x10000;\n                }\n                pattr = pattr + 4;\n                uVar38 = (ulonglong)uVar23;\n              }\n              else {\n                local_30 = puVar28;\n                uVar38 = (*local_34)(pDVar22,&pattr);\n              }\n              str_off = uVar38;\n              attr_value.aux.shndx = (*local_3c)(this->dwinfo_);\n              aVar39.refval = str_off;\n            }\n            else {\n              if (uVar29 == 0x13) {\n                pp_Var16 = (this->dwinfo_->object_->super_Object)._vptr_Object;\n                p_Var37 = pp_Var16[3];\n                if (p_Var37 == (_func_int_varargs *)PTR_is_big_endian_004c2950) {\n                  local_30 = puVar28;\n                  iVar36 = (*pp_Var16[0x3a])();\n                }\n                else {\n                  local_30 = puVar28;\n                  iVar36 = (*p_Var37)();\n                }\n                uVar23 = *(uint *)pattr;\n                if (iVar36 == 0) {\n                  uVar23 = (((uVar23 >> 0x10) << 0x18 | (uVar23 >> 0x18) << 0x10) >> 0x10) +\n                           ((uVar23 & 0xff) << 8 | uVar23 >> 8 & 0xff) * 0x10000;\n                }\n                pattr = pattr + 4;\n                pDVar22 = this->dwinfo_;\n                uVar38 = (ulonglong)uVar23;\n              }\n              else {\n                if (uVar29 < 0x14) {\n                  pp_Var16 = (this->dwinfo_->object_->super_Object)._vptr_Object;\n                  p_Var37 = pp_Var16[3];\n                  if (p_Var37 == (_func_int_varargs *)PTR_is_big_endian_004c2950) {\n                    iVar36 = (*pp_Var16[0x3a])();\n                  }\n                  else {\n                    iVar36 = (*p_Var37)();\n                  }\n                  uVar6 = *(ushort *)pattr;\n                  if (iVar36 == 0) {\n                    uVar6 = CONCAT11(pattr[1],*pattr);\n                  }\n                  aVar39.intval._0_6_ = 0;\n                  aVar39.intval._6_2_ = uVar6;\n                  pattr = pattr + 2;\n                  goto joined_r0x002e3998;\n                }\n                pp_Var16 = (this->dwinfo_->object_->super_Object)._vptr_Object;\n                p_Var37 = pp_Var16[3];\n                if (p_Var37 == (_func_int_varargs *)PTR_is_big_endian_004c2950) {\n                  local_30 = puVar28;\n                  iVar36 = (*pp_Var16[0x3a])();\n                }\n                else {\n                  local_30 = puVar28;\n                  iVar36 = (*p_Var37)();\n                }\n                uVar23 = *(uint *)(pattr + 4);\n                uVar26 = *(uint *)pattr;\n                if (iVar36 == 0) {\n                  uVar2 = uVar23 & 0xff;\n                  uVar4 = uVar23 >> 8;\n                  uVar3 = uVar23 >> 0x10;\n                  uVar5 = uVar23 >> 0x18;\n                  uVar23 = (((uVar26 >> 0x10) << 0x18 | (uVar26 >> 0x18) << 0x10) >> 0x10) +\n                           ((uVar26 & 0xff) << 8 | uVar26 >> 8 & 0xff) * 0x10000;\n                  uVar26 = ((uVar3 << 0x18 | uVar5 << 0x10) >> 0x10) +\n                           (uVar2 << 8 | uVar4 & 0xff) * 0x10000;\n                }\n                uVar38 = CONCAT44(uVar26,uVar23);\n                pattr = pattr + 8;\n                pDVar22 = this->dwinfo_;\n              }\nLAB_002e3970:\n              str_off = uVar38;\n              attr_value.aux.shndx = (*local_3c)(pDVar22);\n              aVar39.refval = str_off;\n            }\njoined_r0x002e3998:\n            if (uVar32 == 0x31) {\nLAB_002e30bc:\n              this->abstract_origin_ = (off_t)aVar39;\n              aVar7 = aVar39;\n              goto LAB_002e313c;\n            }\n            if (uVar32 < 0x32) {\n              aVar7 = aVar39;\n              if (uVar32 != 1) goto LAB_002e313c;\nLAB_002e39b4:\n              aVar7 = aVar39;\n              if (attr_value.aux.shndx != 0) goto LAB_002e313c;\n              this->sibling_offset_ = (off_t)aVar39;\n              goto LAB_002e313c;\n            }\n            aVar40 = aVar39;\n            if ((uVar32 != 0x6e) && (uVar32 != 0x2007)) {\nLAB_002e339c:\n              aVar7 = aVar39;\n              if (uVar32 != 0x47) goto LAB_002e313c;\n              this->specification_ = (off_t)aVar39;\n              goto LAB_002e313c;\n            }\n            goto LAB_002e3858;\n          }\n          if (uVar29 == 7) {\n            pp_Var16 = (this->dwinfo_->object_->super_Object)._vptr_Object;\n            p_Var37 = pp_Var16[3];\n            if (p_Var37 == (_func_int_varargs *)PTR_is_big_endian_004c2950) {\n              local_30 = puVar28;\n              iVar17 = (*pp_Var16[0x3a])();\n            }\n            else {\n              local_30 = puVar28;\n              iVar17 = (*p_Var37)();\n            }\n            str_off._4_4_ = *(char **)(pattr + 4);\n            pcVar25 = *(char **)pattr;\n            if (iVar17 == 0) {\n              uVar23 = (uint)str_off._4_4_ & 0xff;\n              uVar26 = (uint)str_off._4_4_ >> 8;\n              uVar2 = (uint)str_off._4_4_ >> 0x10;\n              uVar4 = (uint)str_off._4_4_ >> 0x18;\n              str_off._4_4_ =\n                   (char *)(((((uint)pcVar25 >> 0x10) << 0x18 | ((uint)pcVar25 >> 0x18) << 0x10) >>\n                            0x10) + (((uint)pcVar25 & 0xff) << 8 | (uint)pcVar25 >> 8 & 0xff) *\n                                    0x10000);\n              pcVar25 = (char *)(((uVar2 << 0x18 | uVar4 << 0x10) >> 0x10) +\n                                (uVar23 << 8 | uVar26 & 0xff) * 0x10000);\n            }\n            pattr = pattr + 8;\n            pDVar22 = this->dwinfo_;\n            str_off._0_4_ = pcVar25;\nLAB_002e3708:\n            attr_value.aux.shndx = (*local_3c)(pDVar22,pcVar25,iVar36,local_30,local_40.shndx);\n            attr_value.val._4_4_ = str_off._4_4_;\n            attr_value.val.stringval = str_off._0_4_;\n            goto LAB_002e355c;\n          }\n          if (7 < uVar29) {\n            if (uVar29 == 10) {\n              attr_value.val.stringval = (char *)(pattr + 1);\n              attr_value.aux.shndx._0_3_ = 0;\n              attr_value.aux.shndx._3_1_ = *pattr;\n              pattr = (uchar *)((int)attr_value.val.stringval + attr_value.aux.shndx);\n              goto LAB_002e355c;\n            }\n            if (uVar29 < 0xb) {\n              if (uVar29 != 8) {\n                if (uVar29 != 9) {\n                  return false;\n                }\nLAB_002e32bc:\n                aVar27.shndx._0_3_ = 0;\n                aVar27.shndx._3_1_ = *pattr;\n                puVar15 = pattr + 1;\n                if ((char)*pattr < '\0') {\n                  (*(code *)PTR_read_unsigned_LEB_128_x_004c2980)(puVar15,&len);\n                  puVar15 = pattr + len;\n                  aVar27 = extraout_v1_00;\n                }\n                else {\n                  len = 1;\n                }\n                aVar40.blockval = puVar15;\n                aVar40.intval._4_4_ = attr_value.val.intval._4_4_;\n                attr_value.aux = aVar27;\n                pattr = pattr + aVar27.shndx + len;\n                goto LAB_002e382c;\n              }\n              attr_value.val.blockval = pattr;\n              local_30 = pattr;\n              len = (*(code *)PTR_strlen_004c5b9c)(pattr);\n              aVar40.stringval = attr_value.val.stringval;\n              aVar40.intval._4_4_ = attr_value.val.intval._4_4_;\n              aVar8.stringval = attr_value.val.stringval;\n              aVar8.intval._4_4_ = attr_value.val.intval._4_4_;\n              aVar7.stringval = attr_value.val.stringval;\n              aVar7.intval._4_4_ = attr_value.val.intval._4_4_;\n              pattr = local_30 + len + 1;\n              if (uVar32 == 0x31) goto LAB_002e313c;\n              if (0x31 < uVar32) {\n                if ((uVar32 != 0x6e) && (aVar7 = aVar8, uVar32 != 0x2007)) goto LAB_002e313c;\n                this->linkage_name_ = (char *)local_30;\n                aVar7 = aVar40;\n                goto LAB_002e313c;\n              }\nLAB_002e3118:\n              aVar7 = aVar40;\n              aVar39 = aVar40;\n              if (uVar32 == 1) goto LAB_002e313c;\njoined_r0x002e3124:\n              aVar7 = aVar39;\n              if (uVar32 != 3) goto LAB_002e313c;\n              attr_value.val.stringval = (char *)((ulonglong)aVar39 >> 0x20);\n              if (uVar29 == 8) {\n                this->name_ = attr_value.val.stringval;\n                goto LAB_002e313c;\n              }\n              if (uVar29 != 0xe) goto LAB_002e313c;\n              goto LAB_002e3284;\n            }\n            if (uVar29 < 0xd) {\n              aVar40.intval._0_7_ = 0;\n              aVar40.uintval._7_1_ = *pattr;\n              pattr = pattr + 1;\nLAB_002e382c:\n              aVar7 = aVar40;\n              if (uVar32 == 0x31) goto LAB_002e313c;\n              if (uVar32 < 0x32) goto LAB_002e3118;\n            }\n            else {\n              bVar1 = *pattr;\n              uVar23 = CONCAT31(0,bVar1);\n              puVar15 = pattr + 1;\n              if ((char)bVar1 < '\0') {\n                aVar40.intval = (*(code *)PTR_read_signed_LEB_128_x_004c297c)(puVar15,&len,uVar23);\n                puVar15 = pattr + len;\n              }\n              else {\n                len = 1;\n                aVar40.stringval = (char *)0x0;\n                aVar40.uintval._4_4_ = uVar23;\n                if ((bVar1 & 0x40) != 0) {\n                  aVar40.stringval = (char *)0xffffffff;\n                  aVar40.uintval._4_4_ = uVar23 | 0xffffff80;\n                }\n              }\n              pattr = puVar15;\n              aVar7 = aVar40;\n              if (uVar32 == 0x31) goto LAB_002e313c;\n              if (uVar32 < 0x32) {\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                iVar36 = iVar34;\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_002e314c;\nLAB_002e2f98:\n                iVar34 = iVar34 + 8;\n                attr_value.val = aVar40;\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                          (local_38,__position,&attr_value);\n                pAVar13 = this->abbrev_code_;\n                if (iVar34 == iVar31) goto LAB_002e2fb8;\n                goto LAB_002e2db4;\n              }\n            }\n            if ((uVar32 != 0x6e) && (aVar7 = aVar40, uVar32 != 0x2007)) goto LAB_002e313c;\nLAB_002e3858:\n            attr_value.val._0_4_ = aVar40.stringval;\n            aVar7 = aVar40;\n            if (uVar29 == 8) {\n              this->linkage_name_ = attr_value.val.stringval;\n              goto LAB_002e313c;\n            }\n            if (uVar29 != 0xe) goto LAB_002e313c;\n            goto LAB_002e387c;\n          }\n          if (uVar29 == 4) {\n            pp_Var16 = (this->dwinfo_->object_->super_Object)._vptr_Object;\n            p_Var37 = pp_Var16[3];\n            if (p_Var37 == (_func_int_varargs *)PTR_is_big_endian_004c2950) {\n              iVar36 = (*pp_Var16[0x3a])();\n            }\n            else {\n              iVar36 = (*p_Var37)();\n            }\n            attr_value.aux.shndx = *(uint *)pattr;\n            if (iVar36 == 0) {\n              attr_value.aux.shndx =\n                   (((attr_value.aux.shndx >> 0x10) << 0x18 | (attr_value.aux.shndx >> 0x18) << 0x10\n                    ) >> 0x10) +\n                   ((attr_value.aux.shndx & 0xff) << 8 | attr_value.aux.shndx >> 8 & 0xff) * 0x10000\n              ;\n            }\n            attr_value.val.stringval = (char *)(pattr + 4);\n            pattr = (uchar *)((int)attr_value.val.stringval + attr_value.aux.shndx);\nLAB_002e355c:\n            aVar40.stringval = attr_value.val.stringval;\n            aVar40.intval._4_4_ = attr_value.val.intval._4_4_;\n            aVar7 = aVar40;\n            if (uVar32 == 0x31) goto LAB_002e313c;\n            if (uVar32 < 0x32) goto LAB_002e3118;\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          }\n          else {\n            if (4 < uVar29) {\n              if (uVar29 != 5) {\n                if (uVar29 != 6) {\n                  return false;\n                }\n                pp_Var16 = (this->dwinfo_->object_->super_Object)._vptr_Object;\n                p_Var37 = pp_Var16[3];\n                if (p_Var37 == (_func_int_varargs *)PTR_is_big_endian_004c2950) {\n                  local_30 = puVar28;\n                  iVar17 = (*pp_Var16[0x3a])();\n                }\n                else {\n                  local_30 = puVar28;\n                  iVar17 = (*p_Var37)();\n                }\n                pcVar25 = *(char **)pattr;\n                if (iVar17 == 0) {\n                  pcVar25 = (char *)(((((uint)pcVar25 >> 0x10) << 0x18 |\n                                      ((uint)pcVar25 >> 0x18) << 0x10) >> 0x10) +\n                                    (((uint)pcVar25 & 0xff) << 8 | (uint)pcVar25 >> 8 & 0xff) *\n                                    0x10000);\n                }\n                pattr = pattr + 4;\n                pDVar22 = this->dwinfo_;\n                str_off._0_4_ = (char *)0x0;\n                str_off._4_4_ = pcVar25;\n                goto LAB_002e3708;\n              }\n              pp_Var16 = (this->dwinfo_->object_->super_Object)._vptr_Object;\n              p_Var37 = pp_Var16[3];\n              if (p_Var37 == (_func_int_varargs *)PTR_is_big_endian_004c2950) {\n                iVar36 = (*pp_Var16[0x3a])();\n              }\n              else {\n                iVar36 = (*p_Var37)();\n              }\n              uVar6 = *(ushort *)pattr;\n              if (iVar36 == 0) {\n                uVar6 = CONCAT11(pattr[1],*pattr);\n              }\n              attr_value.val.intval._4_4_ = ZEXT24(uVar6);\n              pattr = pattr + 2;\n              attr_value.val.stringval = (char *)0x0;\n              goto LAB_002e355c;\n            }\n            if (uVar29 != 1) {\n              if (uVar29 != 3) {\n                return false;\n              }\n              pp_Var16 = (this->dwinfo_->object_->super_Object)._vptr_Object;\n              p_Var37 = pp_Var16[3];\n              if (p_Var37 == (_func_int_varargs *)PTR_is_big_endian_004c2950) {\n                iVar36 = (*pp_Var16[0x3a])();\n              }\n              else {\n                iVar36 = (*p_Var37)();\n              }\n              uVar6 = *(ushort *)pattr;\n              if (iVar36 == 0) {\n                uVar6 = CONCAT11(pattr[1],*pattr);\n              }\n              attr_value.aux.shndx._0_2_ = 0;\n              attr_value.aux.shndx._2_2_ = uVar6;\n              attr_value.val.stringval = (char *)(pattr + 2);\n              pattr = (uchar *)((int)attr_value.val.stringval + attr_value.aux.shndx);\n              goto LAB_002e355c;\n            }\n            pDVar22 = this->dwinfo_;\n            if (pDVar22->address_size_ == 4) {\n              pp_Var16 = (pDVar22->object_->super_Object)._vptr_Object;\n              p_Var37 = pp_Var16[3];\n              if (p_Var37 == (_func_int_varargs *)PTR_is_big_endian_004c2950) {\n                local_30 = puVar28;\n                iVar36 = (*pp_Var16[0x3a])();\n              }\n              else {\n                local_30 = puVar28;\n                iVar36 = (*p_Var37)();\n              }\n              uVar23 = *(uint *)pattr;\n              if (iVar36 == 0) {\n                uVar23 = (((uVar23 >> 0x10) << 0x18 | (uVar23 >> 0x18) << 0x10) >> 0x10) +\n                         ((uVar23 & 0xff) << 8 | uVar23 >> 8 & 0xff) * 0x10000;\n              }\n              pattr = pattr + 4;\n              uVar38 = (ulonglong)uVar23;\n            }\n            else {\n              local_30 = puVar28;\n              uVar38 = (*local_34)(pDVar22,&pattr);\n            }\n            str_off = uVar38;\n            attr_value.aux.shndx = (*local_3c)(this->dwinfo_);\n            aVar39.refval = str_off;\n            if (uVar32 == 0x31) goto LAB_002e30bc;\n            if (uVar32 < 0x32) {\n              if (uVar32 != 1) goto joined_r0x002e3124;\n              goto LAB_002e39b4;\n            }\n            aVar7.refval = str_off;\n            if (uVar32 == 0x6e) goto LAB_002e313c;\n            if (uVar32 != 0x2007) goto LAB_002e339c;\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            aVar40.refval = str_off;\n          }\n          while( true ) {\n            iVar36 = iVar34;\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_002e2f98;\nLAB_002e314c:\n            attr_value.val.stringval = (char *)((ulonglong)aVar40 >> 0x20);\n            attr_value.val.intval._4_4_ = (undefined4)aVar40.intval;\n            iVar34 = iVar36 + 8;\n            (__position._M_current)->form = attr_value.form;\n            ((__position._M_current)->val).stringval = attr_value.val.stringval;\n            (__position._M_current)->attr = attr_value.attr;\n            *(undefined4 *)((int)&(__position._M_current)->val + 4) = attr_value.val.intval._4_4_;\n            (__position._M_current)->aux = attr_value.aux;\n            *(undefined4 *)&(__position._M_current)->field_0x14 = attr_value._20_4_;\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            pAVar13 = this->abbrev_code_;\n            attr_value.val = aVar40;\n            if (iVar34 == iVar31) goto LAB_002e2fb8;\n            puVar14 = (uint *)((int)&(pAVar13->attributes).\n                                     super__Vector_base<gold::Dwarf_abbrev_table::Attribute,_std::allocator<gold::Dwarf_abbrev_table::Attribute>_>\n                                     ._M_impl._M_start[1].attr + iVar36);\n            uVar29 = puVar14[1];\n            uVar32 = *puVar14;\n            if (uVar29 != 0x16) goto LAB_002e2dd0;\nLAB_002e31a8:\n            uVar29 = (uint)*pattr;\n            puVar15 = pattr + 1;\n            if ((char)*pattr < '\0') {\n              attr_value.val = aVar40;\n              (*(code *)PTR_read_unsigned_LEB_128_x_004c2980)(puVar15,&len,uVar29);\n              puVar15 = pattr + len;\n              uVar29 = extraout_v1;\n              aVar40 = attr_value.val;\n            }\n            else {\n              len = 1;\n            }\n            puVar18 = puVar15 + -(int)puVar30;\n            puVar28 = puVar18 + (int)this->die_offset_;\n            iVar36 = (uint)(puVar28 < puVar18) + ((int)puVar18 >> 0x1f) + *(int *)&this->die_offset_\n            ;\n            attr_value.form = uVar29;\n            pattr = puVar15;\n            if (uVar29 != 0xe) break;\nLAB_002e31fc:\n            attr_value.aux.shndx = 0;\n            pDVar22 = this->dwinfo_;\n            attr_value.attr = uVar32;\n            local_30 = puVar28;\n            attr_value.val = aVar40;\n            if (pDVar22->offset_size_ == 4) {\n              pp_Var16 = (pDVar22->object_->super_Object)._vptr_Object;\n              p_Var37 = pp_Var16[3];\n              if (p_Var37 == (_func_int_varargs *)PTR_is_big_endian_004c2950) {\n                iVar36 = (*pp_Var16[0x3a])();\n              }\n              else {\n                iVar36 = (*p_Var37)();\n              }\n              uVar29 = *(uint *)pattr;\n              if (iVar36 == 0) {\n                uVar29 = (((uVar29 >> 0x10) << 0x18 | (uVar29 >> 0x18) << 0x10) >> 0x10) +\n                         ((uVar29 & 0xff) << 8 | uVar29 >> 8 & 0xff) * 0x10000;\n              }\n              pattr = pattr + 4;\n              uVar38 = (ulonglong)uVar29;\n            }\n            else {\n              uVar38 = (*local_34)(pDVar22,&pattr);\n            }\n            str_off = uVar38;\n            attr_value.aux.shndx = (*local_3c)(this->dwinfo_);\n            aVar7.refval = str_off;\n            if (uVar32 != 0x31) {\n              if (uVar32 < 0x32) {\n                if ((uVar32 != 1) && (aVar39.refval = str_off, uVar32 == 3)) {\nLAB_002e3284:\n                  this->string_shndx_ = (uint)attr_value.aux;\n                  this->name_off_ = (off_t)aVar39;\n                  aVar7 = aVar39;\n                }\n              }\n              else {\n                aVar40.refval = str_off;\n                if (uVar32 == 0x6e) {\nLAB_002e387c:\n                  this->string_shndx_ = (uint)attr_value.aux;\n                }\n                else {\n                  if (uVar32 != 0x2007) goto LAB_002e313c;\n                  this->string_shndx_ = (uint)attr_value.aux;\n                }\n                this->linkage_name_off_ = (off_t)aVar40;\n                aVar7 = aVar40;\n              }\n            }\nLAB_002e313c:\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            aVar40 = aVar7;\n          }\n        } while( true );\n      }\n      uVar32 = (int)pattr - (int)puVar30;\n      uVar29 = uVar32 + iVar34;\n      iVar31 = (uint)(uVar29 < uVar32) + ((int)uVar32 >> 0x1f) + *(int *)&this->die_offset_;\n      if (*(int *)&pAVar13->field_0x4 < 0) {\n        *(int *)&this->child_offset_ = iVar31;\n        *(uint *)((int)&this->child_offset_ + 4) = uVar29;\n      }\n      else {\n        *(int *)&this->sibling_offset_ = iVar31;\n        *(uint *)((int)&this->sibling_offset_ + 4) = uVar29;\n      }\n      this->attributes_read_ = true;\n      return true;\n    }\n  }" { (expression_statement "pDVar22 = this->dwinfo_;" (assignment_expression "pDVar22 = this->dwinfo_" identifier = (field_expression "this->dwinfo_" identifier -> field_identifier)) ;) (expression_statement "iVar34 = (int)this->die_offset_;" (assignment_expression "iVar34 = (int)this->die_offset_" identifier = (cast_expression "(int)this->die_offset_" ( (type_descriptor "int" primitive_type) ) (field_expression "this->die_offset_" identifier -> field_identifier))) ;) (expression_statement "iVar31 = (int)pDVar22->cu_offset_;" (assignment_expression "iVar31 = (int)pDVar22->cu_offset_" identifier = (cast_expression "(int)pDVar22->cu_offset_" ( (type_descriptor "int" primitive_type) ) (field_expression "pDVar22->cu_offset_" identifier -> field_identifier))) ;) (expression_statement "puVar30 = pDVar22->buffer_ + iVar31 + iVar34;" (assignment_expression "puVar30 = pDVar22->buffer_ + iVar31 + iVar34" identifier = (binary_expression "pDVar22->buffer_ + iVar31 + iVar34" (binary_expression "pDVar22->buffer_ + iVar31" (field_expression "pDVar22->buffer_" identifier -> field_identifier) + identifier) + identifier)) ;) (if_statement "if (pDVar22->buffer_ + iVar31 + (int)pDVar22->cu_length_ < puVar30 + 1) {\n      Dwarf_info_reader::warn_corrupt_debug_section(pDVar22);\n      return false;\n    }" if (parenthesized_expression "(pDVar22->buffer_ + iVar31 + (int)pDVar22->cu_length_ < puVar30 + 1)" ( (binary_expression "pDVar22->buffer_ + iVar31 + (int)pDVar22->cu_length_ < puVar30 + 1" (binary_expression "pDVar22->buffer_ + iVar31 + (int)pDVar22->cu_length_" (binary_expression "pDVar22->buffer_ + iVar31" (field_expression "pDVar22->buffer_" identifier -> field_identifier) + identifier) + (cast_expression "(int)pDVar22->cu_length_" ( (type_descriptor "int" primitive_type) ) (field_expression "pDVar22->cu_length_" identifier -> field_identifier))) < (binary_expression "puVar30 + 1" identifier + number_literal)) )) (compound_statement "{\n      Dwarf_info_reader::warn_corrupt_debug_section(pDVar22);\n      return false;\n    }" { (labeled_statement "Dwarf_info_reader::warn_corrupt_debug_section(pDVar22);" statement_identifier : (ERROR ":" :) (expression_statement "warn_corrupt_debug_section(pDVar22);" (call_expression "warn_corrupt_debug_section(pDVar22)" identifier (argument_list "(pDVar22)" ( identifier ))) ;)) (return_statement "return false;" return false ;) })) (expression_statement "local_38 = &this->attributes_;" (assignment_expression "local_38 = &this->attributes_" identifier = (pointer_expression "&this->attributes_" & (field_expression "this->attributes_" identifier -> field_identifier))) ;) (if_statement "if (puVar30 == (uchar *)0x0) {\n      return false;\n    }" if (parenthesized_expression "(puVar30 == (uchar *)0x0)" ( (binary_expression "puVar30 == (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 "iVar31 = (int)(pAVar13->attributes).\n                  super__Vector_base<gold::" (assignment_expression "iVar31 = (int)(pAVar13->attributes).\n                  super__Vector_base<gold" identifier = (binary_expression "(int)(pAVar13->attributes).\n                  super__Vector_base<gold" (cast_expression "(int)(pAVar13->attributes).\n                  super__Vector_base" ( (type_descriptor "int" primitive_type) ) (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             (int)(pAVar13->attributes).\n                  super__Vector_base<gold::Dwarf_abbrev_table::Attribute,_std::allocator<gold::Dwarf_abbrev_table::Attribute>_>\n                  ._M_impl._M_start;" 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             (int)(pAVar13->attributes).\n                  super__Vector_base<gold::Dwarf_abbrev_table::Attribute,_std::allocator<gold::Dwarf_abbrev_table::Attribute>_>\n                  ._M_impl._M_start;" statement_identifier (ERROR "::Attribute>_>\n                  ._M_impl._M_finish -\n             (int)(pAVar13->attributes).\n                  super__Vector_base<gold:" : : (binary_expression "Attribute>_>\n                  ._M_impl._M_finish -\n             (int)(pAVar13->attributes).\n                  super__Vector_base<gold" (binary_expression "Attribute>_>\n                  ._M_impl._M_finish -\n             (int)(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 "(int)(pAVar13->attributes).\n                  super__Vector_base" ( (type_descriptor "int" primitive_type) ) (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;" 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;" statement_identifier : (ERROR ":" :) (expression_statement "Attribute>_>\n                  ._M_impl._M_start;" (field_expression "Attribute>_>\n                  ._M_impl._M_start" (field_expression "Attribute>_>\n                  ._M_impl" (binary_expression "Attribute>_" identifier > identifier) (ERROR ">" >) . field_identifier) . field_identifier) ;))))) (expression_statement "pattr = puVar30 + (int)this->attr_offset_;" (assignment_expression "pattr = puVar30 + (int)this->attr_offset_" identifier = (binary_expression "puVar30 + (int)this->attr_offset_" identifier + (cast_expression "(int)this->attr_offset_" ( (type_descriptor "int" primitive_type) ) (field_expression "this->attr_offset_" identifier -> field_identifier)))) ;) (expression_statement "uVar29 = iVar31 >> 3;" (assignment_expression "uVar29 = iVar31 >> 3" identifier = (binary_expression "iVar31 >> 3" identifier >> number_literal)) ;) (expression_statement "puVar24 = PTR_s__s_004c1a50;" (assignment_expression "puVar24 = PTR_s__s_004c1a50" identifier = identifier) ;) (if_statement "if (uVar29 < 0xaaaaaab) {\n      pAVar33 = (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 ((uint)(((int)(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 - (int)pAVar33 >> 3) * -0x55555555) < uVar29) {\n        aVar27 = (anon_union_4_3_97895b06_for_aux)\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        iVar34 = aVar27.shndx - (int)pAVar33;\n        if (uVar29 == 0) {\n          pAVar19 = (pointer)0x0;\n          pAVar35 = pAVar33;\n        }\n        else {\n          local_40 = aVar27;\n          pAVar19 = (pointer)(*(code *)PTR_operator_new_004c13a8)(uVar29 * 0x18);\n          aVar27 = local_40;\n          pAVar35 = (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 (pAVar33 != (pointer)aVar27.shndx) {\n          (*(code *)PTR_memmove_004c5af8)(pAVar19,pAVar33,iVar34);\n        }\n        if (pAVar35 != (pointer)0x0) {\n          (*(code *)PTR_operator_delete_004c12fc)(pAVar35);\n        }\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_start = pAVar19;\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)((int)pAVar19 + iVar34);\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 = pAVar19 + uVar29;\n        if (uVar29 != 0) goto LAB_002e2d90;\nLAB_002e2fb8:\n        if (pAVar13 == (Abbrev_code *)0x0) {\n          this_00 = (Dwarf_die *)(PTR_s_in_a_linker_script_004c191c + 0x7108);\n          (*(code *)PTR_do_gold_unreachable_004c1a30)\n                    (this_00,0x206,PTR_s_in_a_linker_script_004c191c + 0x7404);\n          if (this_00->attributes_read_ == false) {\n            bVar21 = read_attributes(this_00);\n            return bVar21;\n          }\n          return this_00->attributes_read_;\n        }\n        iVar34 = (int)this->die_offset_;\n      }\n      else if (uVar29 != 0) {\nLAB_002e2d90:\n        local_3c = (code *)PTR_lookup_reloc_004c2994;\n        iVar34 = 0;\n        local_34 = (code *)PTR_read_from_pointer<64>_004c2998;\n        local_40.shndx = (uint)&str_off;\nLAB_002e2db4:\n        puVar14 = (uint *)((int)&((pAVar13->attributes).\n                                  super__Vector_base<gold::Dwarf_abbrev_table::Attribute,_std::allocator<gold::Dwarf_abbrev_table::Attribute>_>\n                                  ._M_impl._M_start)->attr + iVar34);\n        uVar29 = puVar14[1];\n        uVar32 = *puVar14;\n        aVar40 = attr_value.val;\n        if (uVar29 == 0x16) goto LAB_002e31a8;\nLAB_002e2dd0:\n        puVar15 = pattr + -(int)puVar30;\n        puVar28 = puVar15 + (int)this->die_offset_;\n        iVar36 = (uint)(puVar28 < puVar15) + ((int)puVar15 >> 0x1f) + *(int *)&this->die_offset_;\n        attr_value.form = uVar29;\n        if (uVar29 == 0xe) goto LAB_002e31fc;\n        do {\n          attr_value.val.intval._4_4_ = (undefined4)aVar40.intval;\n          attr_value.aux.shndx = 0;\n          attr_value.attr = uVar32;\n          attr_value.form = uVar29;\n          attr_value.val = aVar40;\n          if (0xe < uVar29) {\n            if (uVar29 == 0x15) {\n              if ((char)*pattr < '\0') {\n                aVar39.intval = (*(code *)PTR_read_unsigned_LEB_128_x_004c2980)(pattr + 1,&len);\n                pattr = pattr + len;\n              }\n              else {\n                aVar39.intval._0_7_ = 0;\n                aVar39.intval._7_1_ = *pattr;\n                len = 1;\n                pattr = pattr + 1;\n              }\n              goto joined_r0x002e3998;\n            }\n            if (0x15 < uVar29) {\n              if (uVar29 == 0x19) {\n                attr_value.val.intval._4_4_ = 1;\n                attr_value.val.stringval = (char *)0x0;\n              }\n              else {\n                if (uVar29 < 0x1a) {\n                  if (uVar29 != 0x17) {\n                    if (uVar29 != 0x18) {\n                      return false;\n                    }\n                    goto LAB_002e32bc;\n                  }\n                  pDVar22 = this->dwinfo_;\n                  if (pDVar22->offset_size_ == 4) {\n                    pp_Var16 = (pDVar22->object_->super_Object)._vptr_Object;\n                    p_Var37 = pp_Var16[3];\n                    if (p_Var37 == (_func_int_varargs *)PTR_is_big_endian_004c2950) {\n                      local_30 = puVar28;\n                      iVar36 = (*pp_Var16[0x3a])();\n                    }\n                    else {\n                      local_30 = puVar28;\n                      iVar36 = (*p_Var37)();\n                    }\n                    uVar23 = *(uint *)pattr;\n                    if (iVar36 == 0) {\n                      uVar23 = (((uVar23 >> 0x10) << 0x18 | (uVar23 >> 0x18) << 0x10) >> 0x10) +\n                               ((uVar23 & 0xff) << 8 | uVar23 >> 8 & 0xff) * 0x10000;\n                    }\n                    pattr = pattr + 4;\n                    uVar38 = (ulonglong)uVar23;\n                  }\n                  else {\n                    local_30 = puVar28;\n                    uVar38 = (*local_34)(pDVar22,&pattr);\n                  }\n                  pDVar22 = this->dwinfo_;\n                  goto LAB_002e3970;\n                }\n                if (uVar29 != 0x20) {\n                  if (uVar29 < 0x20) {\n                    return false;\n                  }\n                  if (1 < uVar29 - 0x1f01) {\n                    return false;\n                  }\nLAB_002e34d8:\n                  if ((char)*pattr < '\0') {\n                    aVar40.intval = (*(code *)PTR_read_unsigned_LEB_128_x_004c2980)(pattr + 1,&len);\n                    pattr = pattr + len;\n                  }\n                  else {\n                    aVar40.intval._0_7_ = 0;\n                    aVar40.intval._7_1_ = *pattr;\n                    len = 1;\n                    pattr = pattr + 1;\n                  }\n                  goto LAB_002e382c;\n                }\n                pp_Var16 = (this->dwinfo_->object_->super_Object)._vptr_Object;\n                p_Var37 = pp_Var16[3];\n                if (p_Var37 == (_func_int_varargs *)PTR_is_big_endian_004c2950) {\n                  iVar36 = (*pp_Var16[0x3a])();\n                }\n                else {\n                  iVar36 = (*p_Var37)();\n                }\n                    /* WARNING: Load size is inaccurate */\n                attr_value.val._4_4_ = pattr[4];\n                    /* WARNING: Load size is inaccurate */\n                attr_value.val.blockval = *pattr;\n                if (iVar36 == 0) {\n                  uVar23 = attr_value.val.uintval._4_4_ & 0xff;\n                  uVar26 = (uint)attr_value.val.uintval._4_4_ >> 8;\n                  uVar2 = (uint)attr_value.val.uintval._4_4_ >> 0x10;\n                  uVar4 = (uint)attr_value.val.uintval._4_4_ >> 0x18;\n                  attr_value.val.intval._4_4_ =\n                       ((((uint)attr_value.val.stringval >> 0x10) << 0x18 |\n                        ((uint)attr_value.val.stringval >> 0x18) << 0x10) >> 0x10) +\n                       (((uint)attr_value.val.stringval & 0xff) << 8 |\n                       (uint)attr_value.val.stringval >> 8 & 0xff) * 0x10000;\n                  attr_value.val.stringval =\n                       (char *)(((uVar2 << 0x18 | uVar4 << 0x10) >> 0x10) +\n                               (uVar23 << 8 | uVar26 & 0xff) * 0x10000);\n                }\n                pattr = pattr + 8;\n              }\n              aVar39.stringval = attr_value.val.stringval;\n              aVar39.intval._4_4_ = attr_value.val.intval._4_4_;\n              aVar11.stringval = attr_value.val.stringval;\n              aVar11.intval._4_4_ = attr_value.val.intval._4_4_;\n              aVar7.stringval = attr_value.val.stringval;\n              aVar7.intval._4_4_ = attr_value.val.intval._4_4_;\n              if (uVar32 == 0x6e) goto LAB_002e313c;\n              aVar7 = aVar11;\n              if (uVar32 == 0x2007) goto LAB_002e313c;\n              goto joined_r0x002e3124;\n            }\n            if (uVar29 == 0x11) {\n              puVar15 = pattr + 1;\n              uVar23 = CONCAT31(0,*pattr);\n              aVar39.stringval = (char *)0x0;\n              aVar39.intval._4_4_ = uVar23;\n              aVar12.stringval = (char *)0x0;\n              aVar12.uintval._4_4_ = uVar23;\n              aVar40.stringval = (char *)0x0;\n              aVar40.uintval._4_4_ = uVar23;\n              aVar10.stringval = (char *)0x0;\n              aVar10.uintval._4_4_ = uVar23;\n              aVar7.stringval = (char *)0x0;\n              aVar7.uintval._4_4_ = uVar23;\n              aVar9.stringval = (char *)0x0;\n              aVar9.uintval._4_4_ = uVar23;\n              pattr = puVar15;\n              if (uVar32 == 0x31) goto LAB_002e30bc;\n              if (0x31 < uVar32) {\n                if ((uVar32 != 0x6e) && (aVar40 = aVar12, uVar32 != 0x2007)) {\n                  if (uVar32 != 0x47) goto LAB_002e313c;\n                  *(undefined4 *)&this->specification_ = 0;\n                  *(uint *)((int)&this->specification_ + 4) = uVar23;\n                  aVar7 = aVar10;\n                  goto LAB_002e313c;\n                }\n                goto LAB_002e3858;\n              }\n              if (uVar32 == 1) {\n                *(undefined4 *)&this->sibling_offset_ = 0;\n                *(uint *)((int)&this->sibling_offset_ + 4) = uVar23;\n                aVar7 = aVar9;\n                goto LAB_002e313c;\n              }\n              goto joined_r0x002e3124;\n            }\n            if (uVar29 < 0x12) {\n              if (uVar29 == 0xf) goto LAB_002e34d8;\n              if (uVar29 != 0x10) {\n                return false;\n              }\n              pDVar22 = this->dwinfo_;\n              uVar23 = pDVar22->offset_size_;\n              if (pDVar22->cu_version_ < 3) {\n                uVar23 = pDVar22->address_size_;\n              }\n              if (uVar23 == 4) {\n                pp_Var16 = (pDVar22->object_->super_Object)._vptr_Object;\n                p_Var37 = pp_Var16[3];\n                if (p_Var37 == (_func_int_varargs *)PTR_is_big_endian_004c2950) {\n                  local_30 = puVar28;\n                  iVar36 = (*pp_Var16[0x3a])();\n                }\n                else {\n                  local_30 = puVar28;\n                  iVar36 = (*p_Var37)();\n                }\n                uVar23 = *(uint *)pattr;\n                if (iVar36 == 0) {\n                  uVar23 = (((uVar23 >> 0x10) << 0x18 | (uVar23 >> 0x18) << 0x10) >> 0x10) +\n                           ((uVar23 & 0xff) << 8 | uVar23 >> 8 & 0xff) * 0x10000;\n                }\n                pattr = pattr + 4;\n                uVar38 = (ulonglong)uVar23;\n              }\n              else {\n                local_30 = puVar28;\n                uVar38 = (*local_34)(pDVar22,&pattr);\n              }\n              str_off = uVar38;\n              attr_value.aux.shndx = (*local_3c)(this->dwinfo_);\n              aVar39.refval = str_off;\n            }\n            else {\n              if (uVar29 == 0x13) {\n                pp_Var16 = (this->dwinfo_->object_->super_Object)._vptr_Object;\n                p_Var37 = pp_Var16[3];\n                if (p_Var37 == (_func_int_varargs *)PTR_is_big_endian_004c2950) {\n                  local_30 = puVar28;\n                  iVar36 = (*pp_Var16[0x3a])();\n                }\n                else {\n                  local_30 = puVar28;\n                  iVar36 = (*p_Var37)();\n                }\n                uVar23 = *(uint *)pattr;\n                if (iVar36 == 0) {\n                  uVar23 = (((uVar23 >> 0x10) << 0x18 | (uVar23 >> 0x18) << 0x10) >> 0x10) +\n                           ((uVar23 & 0xff) << 8 | uVar23 >> 8 & 0xff) * 0x10000;\n                }\n                pattr = pattr + 4;\n                pDVar22 = this->dwinfo_;\n                uVar38 = (ulonglong)uVar23;\n              }\n              else {\n                if (uVar29 < 0x14) {\n                  pp_Var16 = (this->dwinfo_->object_->super_Object)._vptr_Object;\n                  p_Var37 = pp_Var16[3];\n                  if (p_Var37 == (_func_int_varargs *)PTR_is_big_endian_004c2950) {\n                    iVar36 = (*pp_Var16[0x3a])();\n                  }\n                  else {\n                    iVar36 = (*p_Var37)();\n                  }\n                  uVar6 = *(ushort *)pattr;\n                  if (iVar36 == 0) {\n                    uVar6 = CONCAT11(pattr[1],*pattr);\n                  }\n                  aVar39.intval._0_6_ = 0;\n                  aVar39.intval._6_2_ = uVar6;\n                  pattr = pattr + 2;\n                  goto joined_r0x002e3998;\n                }\n                pp_Var16 = (this->dwinfo_->object_->super_Object)._vptr_Object;\n                p_Var37 = pp_Var16[3];\n                if (p_Var37 == (_func_int_varargs *)PTR_is_big_endian_004c2950) {\n                  local_30 = puVar28;\n                  iVar36 = (*pp_Var16[0x3a])();\n                }\n                else {\n                  local_30 = puVar28;\n                  iVar36 = (*p_Var37)();\n                }\n                uVar23 = *(uint *)(pattr + 4);\n                uVar26 = *(uint *)pattr;\n                if (iVar36 == 0) {\n                  uVar2 = uVar23 & 0xff;\n                  uVar4 = uVar23 >> 8;\n                  uVar3 = uVar23 >> 0x10;\n                  uVar5 = uVar23 >> 0x18;\n                  uVar23 = (((uVar26 >> 0x10) << 0x18 | (uVar26 >> 0x18) << 0x10) >> 0x10) +\n                           ((uVar26 & 0xff) << 8 | uVar26 >> 8 & 0xff) * 0x10000;\n                  uVar26 = ((uVar3 << 0x18 | uVar5 << 0x10) >> 0x10) +\n                           (uVar2 << 8 | uVar4 & 0xff) * 0x10000;\n                }\n                uVar38 = CONCAT44(uVar26,uVar23);\n                pattr = pattr + 8;\n                pDVar22 = this->dwinfo_;\n              }\nLAB_002e3970:\n              str_off = uVar38;\n              attr_value.aux.shndx = (*local_3c)(pDVar22);\n              aVar39.refval = str_off;\n            }\njoined_r0x002e3998:\n            if (uVar32 == 0x31) {\nLAB_002e30bc:\n              this->abstract_origin_ = (off_t)aVar39;\n              aVar7 = aVar39;\n              goto LAB_002e313c;\n            }\n            if (uVar32 < 0x32) {\n              aVar7 = aVar39;\n              if (uVar32 != 1) goto LAB_002e313c;\nLAB_002e39b4:\n              aVar7 = aVar39;\n              if (attr_value.aux.shndx != 0) goto LAB_002e313c;\n              this->sibling_offset_ = (off_t)aVar39;\n              goto LAB_002e313c;\n            }\n            aVar40 = aVar39;\n            if ((uVar32 != 0x6e) && (uVar32 != 0x2007)) {\nLAB_002e339c:\n              aVar7 = aVar39;\n              if (uVar32 != 0x47) goto LAB_002e313c;\n              this->specification_ = (off_t)aVar39;\n              goto LAB_002e313c;\n            }\n            goto LAB_002e3858;\n          }\n          if (uVar29 == 7) {\n            pp_Var16 = (this->dwinfo_->object_->super_Object)._vptr_Object;\n            p_Var37 = pp_Var16[3];\n            if (p_Var37 == (_func_int_varargs *)PTR_is_big_endian_004c2950) {\n              local_30 = puVar28;\n              iVar17 = (*pp_Var16[0x3a])();\n            }\n            else {\n              local_30 = puVar28;\n              iVar17 = (*p_Var37)();\n            }\n            str_off._4_4_ = *(char **)(pattr + 4);\n            pcVar25 = *(char **)pattr;\n            if (iVar17 == 0) {\n              uVar23 = (uint)str_off._4_4_ & 0xff;\n              uVar26 = (uint)str_off._4_4_ >> 8;\n              uVar2 = (uint)str_off._4_4_ >> 0x10;\n              uVar4 = (uint)str_off._4_4_ >> 0x18;\n              str_off._4_4_ =\n                   (char *)(((((uint)pcVar25 >> 0x10) << 0x18 | ((uint)pcVar25 >> 0x18) << 0x10) >>\n                            0x10) + (((uint)pcVar25 & 0xff) << 8 | (uint)pcVar25 >> 8 & 0xff) *\n                                    0x10000);\n              pcVar25 = (char *)(((uVar2 << 0x18 | uVar4 << 0x10) >> 0x10) +\n                                (uVar23 << 8 | uVar26 & 0xff) * 0x10000);\n            }\n            pattr = pattr + 8;\n            pDVar22 = this->dwinfo_;\n            str_off._0_4_ = pcVar25;\nLAB_002e3708:\n            attr_value.aux.shndx = (*local_3c)(pDVar22,pcVar25,iVar36,local_30,local_40.shndx);\n            attr_value.val._4_4_ = str_off._4_4_;\n            attr_value.val.stringval = str_off._0_4_;\n            goto LAB_002e355c;\n          }\n          if (7 < uVar29) {\n            if (uVar29 == 10) {\n              attr_value.val.stringval = (char *)(pattr + 1);\n              attr_value.aux.shndx._0_3_ = 0;\n              attr_value.aux.shndx._3_1_ = *pattr;\n              pattr = (uchar *)((int)attr_value.val.stringval + attr_value.aux.shndx);\n              goto LAB_002e355c;\n            }\n            if (uVar29 < 0xb) {\n              if (uVar29 != 8) {\n                if (uVar29 != 9) {\n                  return false;\n                }\nLAB_002e32bc:\n                aVar27.shndx._0_3_ = 0;\n                aVar27.shndx._3_1_ = *pattr;\n                puVar15 = pattr + 1;\n                if ((char)*pattr < '\0') {\n                  (*(code *)PTR_read_unsigned_LEB_128_x_004c2980)(puVar15,&len);\n                  puVar15 = pattr + len;\n                  aVar27 = extraout_v1_00;\n                }\n                else {\n                  len = 1;\n                }\n                aVar40.blockval = puVar15;\n                aVar40.intval._4_4_ = attr_value.val.intval._4_4_;\n                attr_value.aux = aVar27;\n                pattr = pattr + aVar27.shndx + len;\n                goto LAB_002e382c;\n              }\n              attr_value.val.blockval = pattr;\n              local_30 = pattr;\n              len = (*(code *)PTR_strlen_004c5b9c)(pattr);\n              aVar40.stringval = attr_value.val.stringval;\n              aVar40.intval._4_4_ = attr_value.val.intval._4_4_;\n              aVar8.stringval = attr_value.val.stringval;\n              aVar8.intval._4_4_ = attr_value.val.intval._4_4_;\n              aVar7.stringval = attr_value.val.stringval;\n              aVar7.intval._4_4_ = attr_value.val.intval._4_4_;\n              pattr = local_30 + len + 1;\n              if (uVar32 == 0x31) goto LAB_002e313c;\n              if (0x31 < uVar32) {\n                if ((uVar32 != 0x6e) && (aVar7 = aVar8, uVar32 != 0x2007)) goto LAB_002e313c;\n                this->linkage_name_ = (char *)local_30;\n                aVar7 = aVar40;\n                goto LAB_002e313c;\n              }\nLAB_002e3118:\n              aVar7 = aVar40;\n              aVar39 = aVar40;\n              if (uVar32 == 1) goto LAB_002e313c;\njoined_r0x002e3124:\n              aVar7 = aVar39;\n              if (uVar32 != 3) goto LAB_002e313c;\n              attr_value.val.stringval = (char *)((ulonglong)aVar39 >> 0x20);\n              if (uVar29 == 8) {\n                this->name_ = attr_value.val.stringval;\n                goto LAB_002e313c;\n              }\n              if (uVar29 != 0xe) goto LAB_002e313c;\n              goto LAB_002e3284;\n            }\n            if (uVar29 < 0xd) {\n              aVar40.intval._0_7_ = 0;\n              aVar40.uintval._7_1_ = *pattr;\n              pattr = pattr + 1;\nLAB_002e382c:\n              aVar7 = aVar40;\n              if (uVar32 == 0x31) goto LAB_002e313c;\n              if (uVar32 < 0x32) goto LAB_002e3118;\n            }\n            else {\n              bVar1 = *pattr;\n              uVar23 = CONCAT31(0,bVar1);\n              puVar15 = pattr + 1;\n              if ((char)bVar1 < '\0') {\n                aVar40.intval = (*(code *)PTR_read_signed_LEB_128_x_004c297c)(puVar15,&len,uVar23);\n                puVar15 = pattr + len;\n              }\n              else {\n                len = 1;\n                aVar40.stringval = (char *)0x0;\n                aVar40.uintval._4_4_ = uVar23;\n                if ((bVar1 & 0x40) != 0) {\n                  aVar40.stringval = (char *)0xffffffff;\n                  aVar40.uintval._4_4_ = uVar23 | 0xffffff80;\n                }\n              }\n              pattr = puVar15;\n              aVar7 = aVar40;\n              if (uVar32 == 0x31) goto LAB_002e313c;\n              if (uVar32 < 0x32) {\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                iVar36 = iVar34;\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_002e314c;\nLAB_002e2f98:\n                iVar34 = iVar34 + 8;\n                attr_value.val = aVar40;\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                          (local_38,__position,&attr_value);\n                pAVar13 = this->abbrev_code_;\n                if (iVar34 == iVar31) goto LAB_002e2fb8;\n                goto LAB_002e2db4;\n              }\n            }\n            if ((uVar32 != 0x6e) && (aVar7 = aVar40, uVar32 != 0x2007)) goto LAB_002e313c;\nLAB_002e3858:\n            attr_value.val._0_4_ = aVar40.stringval;\n            aVar7 = aVar40;\n            if (uVar29 == 8) {\n              this->linkage_name_ = attr_value.val.stringval;\n              goto LAB_002e313c;\n            }\n            if (uVar29 != 0xe) goto LAB_002e313c;\n            goto LAB_002e387c;\n          }\n          if (uVar29 == 4) {\n            pp_Var16 = (this->dwinfo_->object_->super_Object)._vptr_Object;\n            p_Var37 = pp_Var16[3];\n            if (p_Var37 == (_func_int_varargs *)PTR_is_big_endian_004c2950) {\n              iVar36 = (*pp_Var16[0x3a])();\n            }\n            else {\n              iVar36 = (*p_Var37)();\n            }\n            attr_value.aux.shndx = *(uint *)pattr;\n            if (iVar36 == 0) {\n              attr_value.aux.shndx =\n                   (((attr_value.aux.shndx >> 0x10) << 0x18 | (attr_value.aux.shndx >> 0x18) << 0x10\n                    ) >> 0x10) +\n                   ((attr_value.aux.shndx & 0xff) << 8 | attr_value.aux.shndx >> 8 & 0xff) * 0x10000\n              ;\n            }\n            attr_value.val.stringval = (char *)(pattr + 4);\n            pattr = (uchar *)((int)attr_value.val.stringval + attr_value.aux.shndx);\nLAB_002e355c:\n            aVar40.stringval = attr_value.val.stringval;\n            aVar40.intval._4_4_ = attr_value.val.intval._4_4_;\n            aVar7 = aVar40;\n            if (uVar32 == 0x31) goto LAB_002e313c;\n            if (uVar32 < 0x32) goto LAB_002e3118;\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          }\n          else {\n            if (4 < uVar29) {\n              if (uVar29 != 5) {\n                if (uVar29 != 6) {\n                  return false;\n                }\n                pp_Var16 = (this->dwinfo_->object_->super_Object)._vptr_Object;\n                p_Var37 = pp_Var16[3];\n                if (p_Var37 == (_func_int_varargs *)PTR_is_big_endian_004c2950) {\n                  local_30 = puVar28;\n                  iVar17 = (*pp_Var16[0x3a])();\n                }\n                else {\n                  local_30 = puVar28;\n                  iVar17 = (*p_Var37)();\n                }\n                pcVar25 = *(char **)pattr;\n                if (iVar17 == 0) {\n                  pcVar25 = (char *)(((((uint)pcVar25 >> 0x10) << 0x18 |\n                                      ((uint)pcVar25 >> 0x18) << 0x10) >> 0x10) +\n                                    (((uint)pcVar25 & 0xff) << 8 | (uint)pcVar25 >> 8 & 0xff) *\n                                    0x10000);\n                }\n                pattr = pattr + 4;\n                pDVar22 = this->dwinfo_;\n                str_off._0_4_ = (char *)0x0;\n                str_off._4_4_ = pcVar25;\n                goto LAB_002e3708;\n              }\n              pp_Var16 = (this->dwinfo_->object_->super_Object)._vptr_Object;\n              p_Var37 = pp_Var16[3];\n              if (p_Var37 == (_func_int_varargs *)PTR_is_big_endian_004c2950) {\n                iVar36 = (*pp_Var16[0x3a])();\n              }\n              else {\n                iVar36 = (*p_Var37)();\n              }\n              uVar6 = *(ushort *)pattr;\n              if (iVar36 == 0) {\n                uVar6 = CONCAT11(pattr[1],*pattr);\n              }\n              attr_value.val.intval._4_4_ = ZEXT24(uVar6);\n              pattr = pattr + 2;\n              attr_value.val.stringval = (char *)0x0;\n              goto LAB_002e355c;\n            }\n            if (uVar29 != 1) {\n              if (uVar29 != 3) {\n                return false;\n              }\n              pp_Var16 = (this->dwinfo_->object_->super_Object)._vptr_Object;\n              p_Var37 = pp_Var16[3];\n              if (p_Var37 == (_func_int_varargs *)PTR_is_big_endian_004c2950) {\n                iVar36 = (*pp_Var16[0x3a])();\n              }\n              else {\n                iVar36 = (*p_Var37)();\n              }\n              uVar6 = *(ushort *)pattr;\n              if (iVar36 == 0) {\n                uVar6 = CONCAT11(pattr[1],*pattr);\n              }\n              attr_value.aux.shndx._0_2_ = 0;\n              attr_value.aux.shndx._2_2_ = uVar6;\n              attr_value.val.stringval = (char *)(pattr + 2);\n              pattr = (uchar *)((int)attr_value.val.stringval + attr_value.aux.shndx);\n              goto LAB_002e355c;\n            }\n            pDVar22 = this->dwinfo_;\n            if (pDVar22->address_size_ == 4) {\n              pp_Var16 = (pDVar22->object_->super_Object)._vptr_Object;\n              p_Var37 = pp_Var16[3];\n              if (p_Var37 == (_func_int_varargs *)PTR_is_big_endian_004c2950) {\n                local_30 = puVar28;\n                iVar36 = (*pp_Var16[0x3a])();\n              }\n              else {\n                local_30 = puVar28;\n                iVar36 = (*p_Var37)();\n              }\n              uVar23 = *(uint *)pattr;\n              if (iVar36 == 0) {\n                uVar23 = (((uVar23 >> 0x10) << 0x18 | (uVar23 >> 0x18) << 0x10) >> 0x10) +\n                         ((uVar23 & 0xff) << 8 | uVar23 >> 8 & 0xff) * 0x10000;\n              }\n              pattr = pattr + 4;\n              uVar38 = (ulonglong)uVar23;\n            }\n            else {\n              local_30 = puVar28;\n              uVar38 = (*local_34)(pDVar22,&pattr);\n            }\n            str_off = uVar38;\n            attr_value.aux.shndx = (*local_3c)(this->dwinfo_);\n            aVar39.refval = str_off;\n            if (uVar32 == 0x31) goto LAB_002e30bc;\n            if (uVar32 < 0x32) {\n              if (uVar32 != 1) goto joined_r0x002e3124;\n              goto LAB_002e39b4;\n            }\n            aVar7.refval = str_off;\n            if (uVar32 == 0x6e) goto LAB_002e313c;\n            if (uVar32 != 0x2007) goto LAB_002e339c;\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            aVar40.refval = str_off;\n          }\n          while( true ) {\n            iVar36 = iVar34;\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_002e2f98;\nLAB_002e314c:\n            attr_value.val.stringval = (char *)((ulonglong)aVar40 >> 0x20);\n            attr_value.val.intval._4_4_ = (undefined4)aVar40.intval;\n            iVar34 = iVar36 + 8;\n            (__position._M_current)->form = attr_value.form;\n            ((__position._M_current)->val).stringval = attr_value.val.stringval;\n            (__position._M_current)->attr = attr_value.attr;\n            *(undefined4 *)((int)&(__position._M_current)->val + 4) = attr_value.val.intval._4_4_;\n            (__position._M_current)->aux = attr_value.aux;\n            *(undefined4 *)&(__position._M_current)->field_0x14 = attr_value._20_4_;\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            pAVar13 = this->abbrev_code_;\n            attr_value.val = aVar40;\n            if (iVar34 == iVar31) goto LAB_002e2fb8;\n            puVar14 = (uint *)((int)&(pAVar13->attributes).\n                                     super__Vector_base<gold::Dwarf_abbrev_table::Attribute,_std::allocator<gold::Dwarf_abbrev_table::Attribute>_>\n                                     ._M_impl._M_start[1].attr + iVar36);\n            uVar29 = puVar14[1];\n            uVar32 = *puVar14;\n            if (uVar29 != 0x16) goto LAB_002e2dd0;\nLAB_002e31a8:\n            uVar29 = (uint)*pattr;\n            puVar15 = pattr + 1;\n            if ((char)*pattr < '\0') {\n              attr_value.val = aVar40;\n              (*(code *)PTR_read_unsigned_LEB_128_x_004c2980)(puVar15,&len,uVar29);\n              puVar15 = pattr + len;\n              uVar29 = extraout_v1;\n              aVar40 = attr_value.val;\n            }\n            else {\n              len = 1;\n            }\n            puVar18 = puVar15 + -(int)puVar30;\n            puVar28 = puVar18 + (int)this->die_offset_;\n            iVar36 = (uint)(puVar28 < puVar18) + ((int)puVar18 >> 0x1f) + *(int *)&this->die_offset_\n            ;\n            attr_value.form = uVar29;\n            pattr = puVar15;\n            if (uVar29 != 0xe) break;\nLAB_002e31fc:\n            attr_value.aux.shndx = 0;\n            pDVar22 = this->dwinfo_;\n            attr_value.attr = uVar32;\n            local_30 = puVar28;\n            attr_value.val = aVar40;\n            if (pDVar22->offset_size_ == 4) {\n              pp_Var16 = (pDVar22->object_->super_Object)._vptr_Object;\n              p_Var37 = pp_Var16[3];\n              if (p_Var37 == (_func_int_varargs *)PTR_is_big_endian_004c2950) {\n                iVar36 = (*pp_Var16[0x3a])();\n              }\n              else {\n                iVar36 = (*p_Var37)();\n              }\n              uVar29 = *(uint *)pattr;\n              if (iVar36 == 0) {\n                uVar29 = (((uVar29 >> 0x10) << 0x18 | (uVar29 >> 0x18) << 0x10) >> 0x10) +\n                         ((uVar29 & 0xff) << 8 | uVar29 >> 8 & 0xff) * 0x10000;\n              }\n              pattr = pattr + 4;\n              uVar38 = (ulonglong)uVar29;\n            }\n            else {\n              uVar38 = (*local_34)(pDVar22,&pattr);\n            }\n            str_off = uVar38;\n            attr_value.aux.shndx = (*local_3c)(this->dwinfo_);\n            aVar7.refval = str_off;\n            if (uVar32 != 0x31) {\n              if (uVar32 < 0x32) {\n                if ((uVar32 != 1) && (aVar39.refval = str_off, uVar32 == 3)) {\nLAB_002e3284:\n                  this->string_shndx_ = (uint)attr_value.aux;\n                  this->name_off_ = (off_t)aVar39;\n                  aVar7 = aVar39;\n                }\n              }\n              else {\n                aVar40.refval = str_off;\n                if (uVar32 == 0x6e) {\nLAB_002e387c:\n                  this->string_shndx_ = (uint)attr_value.aux;\n                }\n                else {\n                  if (uVar32 != 0x2007) goto LAB_002e313c;\n                  this->string_shndx_ = (uint)attr_value.aux;\n                }\n                this->linkage_name_off_ = (off_t)aVar40;\n                aVar7 = aVar40;\n              }\n            }\nLAB_002e313c:\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            aVar40 = aVar7;\n          }\n        } while( true );\n      }\n      uVar32 = (int)pattr - (int)puVar30;\n      uVar29 = uVar32 + iVar34;\n      iVar31 = (uint)(uVar29 < uVar32) + ((int)uVar32 >> 0x1f) + *(int *)&this->die_offset_;\n      if (*(int *)&pAVar13->field_0x4 < 0) {\n        *(int *)&this->child_offset_ = iVar31;\n        *(uint *)((int)&this->child_offset_ + 4) = uVar29;\n      }\n      else {\n        *(int *)&this->sibling_offset_ = iVar31;\n        *(uint *)((int)&this->sibling_offset_ + 4) = uVar29;\n      }\n      this->attributes_read_ = true;\n      return true;\n    }" if (parenthesized_expression "(uVar29 < 0xaaaaaab)" ( (binary_expression "uVar29 < 0xaaaaaab" identifier < number_literal) )) (compound_statement "{\n      pAVar33 = (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 ((uint)(((int)(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 - (int)pAVar33 >> 3) * -0x55555555) < uVar29) {\n        aVar27 = (anon_union_4_3_97895b06_for_aux)\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        iVar34 = aVar27.shndx - (int)pAVar33;\n        if (uVar29 == 0) {\n          pAVar19 = (pointer)0x0;\n          pAVar35 = pAVar33;\n        }\n        else {\n          local_40 = aVar27;\n          pAVar19 = (pointer)(*(code *)PTR_operator_new_004c13a8)(uVar29 * 0x18);\n          aVar27 = local_40;\n          pAVar35 = (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 (pAVar33 != (pointer)aVar27.shndx) {\n          (*(code *)PTR_memmove_004c5af8)(pAVar19,pAVar33,iVar34);\n        }\n        if (pAVar35 != (pointer)0x0) {\n          (*(code *)PTR_operator_delete_004c12fc)(pAVar35);\n        }\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_start = pAVar19;\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)((int)pAVar19 + iVar34);\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 = pAVar19 + uVar29;\n        if (uVar29 != 0) goto LAB_002e2d90;\nLAB_002e2fb8:\n        if (pAVar13 == (Abbrev_code *)0x0) {\n          this_00 = (Dwarf_die *)(PTR_s_in_a_linker_script_004c191c + 0x7108);\n          (*(code *)PTR_do_gold_unreachable_004c1a30)\n                    (this_00,0x206,PTR_s_in_a_linker_script_004c191c + 0x7404);\n          if (this_00->attributes_read_ == false) {\n            bVar21 = read_attributes(this_00);\n            return bVar21;\n          }\n          return this_00->attributes_read_;\n        }\n        iVar34 = (int)this->die_offset_;\n      }\n      else if (uVar29 != 0) {\nLAB_002e2d90:\n        local_3c = (code *)PTR_lookup_reloc_004c2994;\n        iVar34 = 0;\n        local_34 = (code *)PTR_read_from_pointer<64>_004c2998;\n        local_40.shndx = (uint)&str_off;\nLAB_002e2db4:\n        puVar14 = (uint *)((int)&((pAVar13->attributes).\n                                  super__Vector_base<gold::Dwarf_abbrev_table::Attribute,_std::allocator<gold::Dwarf_abbrev_table::Attribute>_>\n                                  ._M_impl._M_start)->attr + iVar34);\n        uVar29 = puVar14[1];\n        uVar32 = *puVar14;\n        aVar40 = attr_value.val;\n        if (uVar29 == 0x16) goto LAB_002e31a8;\nLAB_002e2dd0:\n        puVar15 = pattr + -(int)puVar30;\n        puVar28 = puVar15 + (int)this->die_offset_;\n        iVar36 = (uint)(puVar28 < puVar15) + ((int)puVar15 >> 0x1f) + *(int *)&this->die_offset_;\n        attr_value.form = uVar29;\n        if (uVar29 == 0xe) goto LAB_002e31fc;\n        do {\n          attr_value.val.intval._4_4_ = (undefined4)aVar40.intval;\n          attr_value.aux.shndx = 0;\n          attr_value.attr = uVar32;\n          attr_value.form = uVar29;\n          attr_value.val = aVar40;\n          if (0xe < uVar29) {\n            if (uVar29 == 0x15) {\n              if ((char)*pattr < '\0') {\n                aVar39.intval = (*(code *)PTR_read_unsigned_LEB_128_x_004c2980)(pattr + 1,&len);\n                pattr = pattr + len;\n              }\n              else {\n                aVar39.intval._0_7_ = 0;\n                aVar39.intval._7_1_ = *pattr;\n                len = 1;\n                pattr = pattr + 1;\n              }\n              goto joined_r0x002e3998;\n            }\n            if (0x15 < uVar29) {\n              if (uVar29 == 0x19) {\n                attr_value.val.intval._4_4_ = 1;\n                attr_value.val.stringval = (char *)0x0;\n              }\n              else {\n                if (uVar29 < 0x1a) {\n                  if (uVar29 != 0x17) {\n                    if (uVar29 != 0x18) {\n                      return false;\n                    }\n                    goto LAB_002e32bc;\n                  }\n                  pDVar22 = this->dwinfo_;\n                  if (pDVar22->offset_size_ == 4) {\n                    pp_Var16 = (pDVar22->object_->super_Object)._vptr_Object;\n                    p_Var37 = pp_Var16[3];\n                    if (p_Var37 == (_func_int_varargs *)PTR_is_big_endian_004c2950) {\n                      local_30 = puVar28;\n                      iVar36 = (*pp_Var16[0x3a])();\n                    }\n                    else {\n                      local_30 = puVar28;\n                      iVar36 = (*p_Var37)();\n                    }\n                    uVar23 = *(uint *)pattr;\n                    if (iVar36 == 0) {\n                      uVar23 = (((uVar23 >> 0x10) << 0x18 | (uVar23 >> 0x18) << 0x10) >> 0x10) +\n                               ((uVar23 & 0xff) << 8 | uVar23 >> 8 & 0xff) * 0x10000;\n                    }\n                    pattr = pattr + 4;\n                    uVar38 = (ulonglong)uVar23;\n                  }\n                  else {\n                    local_30 = puVar28;\n                    uVar38 = (*local_34)(pDVar22,&pattr);\n                  }\n                  pDVar22 = this->dwinfo_;\n                  goto LAB_002e3970;\n                }\n                if (uVar29 != 0x20) {\n                  if (uVar29 < 0x20) {\n                    return false;\n                  }\n                  if (1 < uVar29 - 0x1f01) {\n                    return false;\n                  }\nLAB_002e34d8:\n                  if ((char)*pattr < '\0') {\n                    aVar40.intval = (*(code *)PTR_read_unsigned_LEB_128_x_004c2980)(pattr + 1,&len);\n                    pattr = pattr + len;\n                  }\n                  else {\n                    aVar40.intval._0_7_ = 0;\n                    aVar40.intval._7_1_ = *pattr;\n                    len = 1;\n                    pattr = pattr + 1;\n                  }\n                  goto LAB_002e382c;\n                }\n                pp_Var16 = (this->dwinfo_->object_->super_Object)._vptr_Object;\n                p_Var37 = pp_Var16[3];\n                if (p_Var37 == (_func_int_varargs *)PTR_is_big_endian_004c2950) {\n                  iVar36 = (*pp_Var16[0x3a])();\n                }\n                else {\n                  iVar36 = (*p_Var37)();\n                }\n                    /* WARNING: Load size is inaccurate */\n                attr_value.val._4_4_ = pattr[4];\n                    /* WARNING: Load size is inaccurate */\n                attr_value.val.blockval = *pattr;\n                if (iVar36 == 0) {\n                  uVar23 = attr_value.val.uintval._4_4_ & 0xff;\n                  uVar26 = (uint)attr_value.val.uintval._4_4_ >> 8;\n                  uVar2 = (uint)attr_value.val.uintval._4_4_ >> 0x10;\n                  uVar4 = (uint)attr_value.val.uintval._4_4_ >> 0x18;\n                  attr_value.val.intval._4_4_ =\n                       ((((uint)attr_value.val.stringval >> 0x10) << 0x18 |\n                        ((uint)attr_value.val.stringval >> 0x18) << 0x10) >> 0x10) +\n                       (((uint)attr_value.val.stringval & 0xff) << 8 |\n                       (uint)attr_value.val.stringval >> 8 & 0xff) * 0x10000;\n                  attr_value.val.stringval =\n                       (char *)(((uVar2 << 0x18 | uVar4 << 0x10) >> 0x10) +\n                               (uVar23 << 8 | uVar26 & 0xff) * 0x10000);\n                }\n                pattr = pattr + 8;\n              }\n              aVar39.stringval = attr_value.val.stringval;\n              aVar39.intval._4_4_ = attr_value.val.intval._4_4_;\n              aVar11.stringval = attr_value.val.stringval;\n              aVar11.intval._4_4_ = attr_value.val.intval._4_4_;\n              aVar7.stringval = attr_value.val.stringval;\n              aVar7.intval._4_4_ = attr_value.val.intval._4_4_;\n              if (uVar32 == 0x6e) goto LAB_002e313c;\n              aVar7 = aVar11;\n              if (uVar32 == 0x2007) goto LAB_002e313c;\n              goto joined_r0x002e3124;\n            }\n            if (uVar29 == 0x11) {\n              puVar15 = pattr + 1;\n              uVar23 = CONCAT31(0,*pattr);\n              aVar39.stringval = (char *)0x0;\n              aVar39.intval._4_4_ = uVar23;\n              aVar12.stringval = (char *)0x0;\n              aVar12.uintval._4_4_ = uVar23;\n              aVar40.stringval = (char *)0x0;\n              aVar40.uintval._4_4_ = uVar23;\n              aVar10.stringval = (char *)0x0;\n              aVar10.uintval._4_4_ = uVar23;\n              aVar7.stringval = (char *)0x0;\n              aVar7.uintval._4_4_ = uVar23;\n              aVar9.stringval = (char *)0x0;\n              aVar9.uintval._4_4_ = uVar23;\n              pattr = puVar15;\n              if (uVar32 == 0x31) goto LAB_002e30bc;\n              if (0x31 < uVar32) {\n                if ((uVar32 != 0x6e) && (aVar40 = aVar12, uVar32 != 0x2007)) {\n                  if (uVar32 != 0x47) goto LAB_002e313c;\n                  *(undefined4 *)&this->specification_ = 0;\n                  *(uint *)((int)&this->specification_ + 4) = uVar23;\n                  aVar7 = aVar10;\n                  goto LAB_002e313c;\n                }\n                goto LAB_002e3858;\n              }\n              if (uVar32 == 1) {\n                *(undefined4 *)&this->sibling_offset_ = 0;\n                *(uint *)((int)&this->sibling_offset_ + 4) = uVar23;\n                aVar7 = aVar9;\n                goto LAB_002e313c;\n              }\n              goto joined_r0x002e3124;\n            }\n            if (uVar29 < 0x12) {\n              if (uVar29 == 0xf) goto LAB_002e34d8;\n              if (uVar29 != 0x10) {\n                return false;\n              }\n              pDVar22 = this->dwinfo_;\n              uVar23 = pDVar22->offset_size_;\n              if (pDVar22->cu_version_ < 3) {\n                uVar23 = pDVar22->address_size_;\n              }\n              if (uVar23 == 4) {\n                pp_Var16 = (pDVar22->object_->super_Object)._vptr_Object;\n                p_Var37 = pp_Var16[3];\n                if (p_Var37 == (_func_int_varargs *)PTR_is_big_endian_004c2950) {\n                  local_30 = puVar28;\n                  iVar36 = (*pp_Var16[0x3a])();\n                }\n                else {\n                  local_30 = puVar28;\n                  iVar36 = (*p_Var37)();\n                }\n                uVar23 = *(uint *)pattr;\n                if (iVar36 == 0) {\n                  uVar23 = (((uVar23 >> 0x10) << 0x18 | (uVar23 >> 0x18) << 0x10) >> 0x10) +\n                           ((uVar23 & 0xff) << 8 | uVar23 >> 8 & 0xff) * 0x10000;\n                }\n                pattr = pattr + 4;\n                uVar38 = (ulonglong)uVar23;\n              }\n              else {\n                local_30 = puVar28;\n                uVar38 = (*local_34)(pDVar22,&pattr);\n              }\n              str_off = uVar38;\n              attr_value.aux.shndx = (*local_3c)(this->dwinfo_);\n              aVar39.refval = str_off;\n            }\n            else {\n              if (uVar29 == 0x13) {\n                pp_Var16 = (this->dwinfo_->object_->super_Object)._vptr_Object;\n                p_Var37 = pp_Var16[3];\n                if (p_Var37 == (_func_int_varargs *)PTR_is_big_endian_004c2950) {\n                  local_30 = puVar28;\n                  iVar36 = (*pp_Var16[0x3a])();\n                }\n                else {\n                  local_30 = puVar28;\n                  iVar36 = (*p_Var37)();\n                }\n                uVar23 = *(uint *)pattr;\n                if (iVar36 == 0) {\n                  uVar23 = (((uVar23 >> 0x10) << 0x18 | (uVar23 >> 0x18) << 0x10) >> 0x10) +\n                           ((uVar23 & 0xff) << 8 | uVar23 >> 8 & 0xff) * 0x10000;\n                }\n                pattr = pattr + 4;\n                pDVar22 = this->dwinfo_;\n                uVar38 = (ulonglong)uVar23;\n              }\n              else {\n                if (uVar29 < 0x14) {\n                  pp_Var16 = (this->dwinfo_->object_->super_Object)._vptr_Object;\n                  p_Var37 = pp_Var16[3];\n                  if (p_Var37 == (_func_int_varargs *)PTR_is_big_endian_004c2950) {\n                    iVar36 = (*pp_Var16[0x3a])();\n                  }\n                  else {\n                    iVar36 = (*p_Var37)();\n                  }\n                  uVar6 = *(ushort *)pattr;\n                  if (iVar36 == 0) {\n                    uVar6 = CONCAT11(pattr[1],*pattr);\n                  }\n                  aVar39.intval._0_6_ = 0;\n                  aVar39.intval._6_2_ = uVar6;\n                  pattr = pattr + 2;\n                  goto joined_r0x002e3998;\n                }\n                pp_Var16 = (this->dwinfo_->object_->super_Object)._vptr_Object;\n                p_Var37 = pp_Var16[3];\n                if (p_Var37 == (_func_int_varargs *)PTR_is_big_endian_004c2950) {\n                  local_30 = puVar28;\n                  iVar36 = (*pp_Var16[0x3a])();\n                }\n                else {\n                  local_30 = puVar28;\n                  iVar36 = (*p_Var37)();\n                }\n                uVar23 = *(uint *)(pattr + 4);\n                uVar26 = *(uint *)pattr;\n                if (iVar36 == 0) {\n                  uVar2 = uVar23 & 0xff;\n                  uVar4 = uVar23 >> 8;\n                  uVar3 = uVar23 >> 0x10;\n                  uVar5 = uVar23 >> 0x18;\n                  uVar23 = (((uVar26 >> 0x10) << 0x18 | (uVar26 >> 0x18) << 0x10) >> 0x10) +\n                           ((uVar26 & 0xff) << 8 | uVar26 >> 8 & 0xff) * 0x10000;\n                  uVar26 = ((uVar3 << 0x18 | uVar5 << 0x10) >> 0x10) +\n                           (uVar2 << 8 | uVar4 & 0xff) * 0x10000;\n                }\n                uVar38 = CONCAT44(uVar26,uVar23);\n                pattr = pattr + 8;\n                pDVar22 = this->dwinfo_;\n              }\nLAB_002e3970:\n              str_off = uVar38;\n              attr_value.aux.shndx = (*local_3c)(pDVar22);\n              aVar39.refval = str_off;\n            }\njoined_r0x002e3998:\n            if (uVar32 == 0x31) {\nLAB_002e30bc:\n              this->abstract_origin_ = (off_t)aVar39;\n              aVar7 = aVar39;\n              goto LAB_002e313c;\n            }\n            if (uVar32 < 0x32) {\n              aVar7 = aVar39;\n              if (uVar32 != 1) goto LAB_002e313c;\nLAB_002e39b4:\n              aVar7 = aVar39;\n              if (attr_value.aux.shndx != 0) goto LAB_002e313c;\n              this->sibling_offset_ = (off_t)aVar39;\n              goto LAB_002e313c;\n            }\n            aVar40 = aVar39;\n            if ((uVar32 != 0x6e) && (uVar32 != 0x2007)) {\nLAB_002e339c:\n              aVar7 = aVar39;\n              if (uVar32 != 0x47) goto LAB_002e313c;\n              this->specification_ = (off_t)aVar39;\n              goto LAB_002e313c;\n            }\n            goto LAB_002e3858;\n          }\n          if (uVar29 == 7) {\n            pp_Var16 = (this->dwinfo_->object_->super_Object)._vptr_Object;\n            p_Var37 = pp_Var16[3];\n            if (p_Var37 == (_func_int_varargs *)PTR_is_big_endian_004c2950) {\n              local_30 = puVar28;\n              iVar17 = (*pp_Var16[0x3a])();\n            }\n            else {\n              local_30 = puVar28;\n              iVar17 = (*p_Var37)();\n            }\n            str_off._4_4_ = *(char **)(pattr + 4);\n            pcVar25 = *(char **)pattr;\n            if (iVar17 == 0) {\n              uVar23 = (uint)str_off._4_4_ & 0xff;\n              uVar26 = (uint)str_off._4_4_ >> 8;\n              uVar2 = (uint)str_off._4_4_ >> 0x10;\n              uVar4 = (uint)str_off._4_4_ >> 0x18;\n              str_off._4_4_ =\n                   (char *)(((((uint)pcVar25 >> 0x10) << 0x18 | ((uint)pcVar25 >> 0x18) << 0x10) >>\n                            0x10) + (((uint)pcVar25 & 0xff) << 8 | (uint)pcVar25 >> 8 & 0xff) *\n                                    0x10000);\n              pcVar25 = (char *)(((uVar2 << 0x18 | uVar4 << 0x10) >> 0x10) +\n                                (uVar23 << 8 | uVar26 & 0xff) * 0x10000);\n            }\n            pattr = pattr + 8;\n            pDVar22 = this->dwinfo_;\n            str_off._0_4_ = pcVar25;\nLAB_002e3708:\n            attr_value.aux.shndx = (*local_3c)(pDVar22,pcVar25,iVar36,local_30,local_40.shndx);\n            attr_value.val._4_4_ = str_off._4_4_;\n            attr_value.val.stringval = str_off._0_4_;\n            goto LAB_002e355c;\n          }\n          if (7 < uVar29) {\n            if (uVar29 == 10) {\n              attr_value.val.stringval = (char *)(pattr + 1);\n              attr_value.aux.shndx._0_3_ = 0;\n              attr_value.aux.shndx._3_1_ = *pattr;\n              pattr = (uchar *)((int)attr_value.val.stringval + attr_value.aux.shndx);\n              goto LAB_002e355c;\n            }\n            if (uVar29 < 0xb) {\n              if (uVar29 != 8) {\n                if (uVar29 != 9) {\n                  return false;\n                }\nLAB_002e32bc:\n                aVar27.shndx._0_3_ = 0;\n                aVar27.shndx._3_1_ = *pattr;\n                puVar15 = pattr + 1;\n                if ((char)*pattr < '\0') {\n                  (*(code *)PTR_read_unsigned_LEB_128_x_004c2980)(puVar15,&len);\n                  puVar15 = pattr + len;\n                  aVar27 = extraout_v1_00;\n                }\n                else {\n                  len = 1;\n                }\n                aVar40.blockval = puVar15;\n                aVar40.intval._4_4_ = attr_value.val.intval._4_4_;\n                attr_value.aux = aVar27;\n                pattr = pattr + aVar27.shndx + len;\n                goto LAB_002e382c;\n              }\n              attr_value.val.blockval = pattr;\n              local_30 = pattr;\n              len = (*(code *)PTR_strlen_004c5b9c)(pattr);\n              aVar40.stringval = attr_value.val.stringval;\n              aVar40.intval._4_4_ = attr_value.val.intval._4_4_;\n              aVar8.stringval = attr_value.val.stringval;\n              aVar8.intval._4_4_ = attr_value.val.intval._4_4_;\n              aVar7.stringval = attr_value.val.stringval;\n              aVar7.intval._4_4_ = attr_value.val.intval._4_4_;\n              pattr = local_30 + len + 1;\n              if (uVar32 == 0x31) goto LAB_002e313c;\n              if (0x31 < uVar32) {\n                if ((uVar32 != 0x6e) && (aVar7 = aVar8, uVar32 != 0x2007)) goto LAB_002e313c;\n                this->linkage_name_ = (char *)local_30;\n                aVar7 = aVar40;\n                goto LAB_002e313c;\n              }\nLAB_002e3118:\n              aVar7 = aVar40;\n              aVar39 = aVar40;\n              if (uVar32 == 1) goto LAB_002e313c;\njoined_r0x002e3124:\n              aVar7 = aVar39;\n              if (uVar32 != 3) goto LAB_002e313c;\n              attr_value.val.stringval = (char *)((ulonglong)aVar39 >> 0x20);\n              if (uVar29 == 8) {\n                this->name_ = attr_value.val.stringval;\n                goto LAB_002e313c;\n              }\n              if (uVar29 != 0xe) goto LAB_002e313c;\n              goto LAB_002e3284;\n            }\n            if (uVar29 < 0xd) {\n              aVar40.intval._0_7_ = 0;\n              aVar40.uintval._7_1_ = *pattr;\n              pattr = pattr + 1;\nLAB_002e382c:\n              aVar7 = aVar40;\n              if (uVar32 == 0x31) goto LAB_002e313c;\n              if (uVar32 < 0x32) goto LAB_002e3118;\n            }\n            else {\n              bVar1 = *pattr;\n              uVar23 = CONCAT31(0,bVar1);\n              puVar15 = pattr + 1;\n              if ((char)bVar1 < '\0') {\n                aVar40.intval = (*(code *)PTR_read_signed_LEB_128_x_004c297c)(puVar15,&len,uVar23);\n                puVar15 = pattr + len;\n              }\n              else {\n                len = 1;\n                aVar40.stringval = (char *)0x0;\n                aVar40.uintval._4_4_ = uVar23;\n                if ((bVar1 & 0x40) != 0) {\n                  aVar40.stringval = (char *)0xffffffff;\n                  aVar40.uintval._4_4_ = uVar23 | 0xffffff80;\n                }\n              }\n              pattr = puVar15;\n              aVar7 = aVar40;\n              if (uVar32 == 0x31) goto LAB_002e313c;\n              if (uVar32 < 0x32) {\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                iVar36 = iVar34;\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_002e314c;\nLAB_002e2f98:\n                iVar34 = iVar34 + 8;\n                attr_value.val = aVar40;\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                          (local_38,__position,&attr_value);\n                pAVar13 = this->abbrev_code_;\n                if (iVar34 == iVar31) goto LAB_002e2fb8;\n                goto LAB_002e2db4;\n              }\n            }\n            if ((uVar32 != 0x6e) && (aVar7 = aVar40, uVar32 != 0x2007)) goto LAB_002e313c;\nLAB_002e3858:\n            attr_value.val._0_4_ = aVar40.stringval;\n            aVar7 = aVar40;\n            if (uVar29 == 8) {\n              this->linkage_name_ = attr_value.val.stringval;\n              goto LAB_002e313c;\n            }\n            if (uVar29 != 0xe) goto LAB_002e313c;\n            goto LAB_002e387c;\n          }\n          if (uVar29 == 4) {\n            pp_Var16 = (this->dwinfo_->object_->super_Object)._vptr_Object;\n            p_Var37 = pp_Var16[3];\n            if (p_Var37 == (_func_int_varargs *)PTR_is_big_endian_004c2950) {\n              iVar36 = (*pp_Var16[0x3a])();\n            }\n            else {\n              iVar36 = (*p_Var37)();\n            }\n            attr_value.aux.shndx = *(uint *)pattr;\n            if (iVar36 == 0) {\n              attr_value.aux.shndx =\n                   (((attr_value.aux.shndx >> 0x10) << 0x18 | (attr_value.aux.shndx >> 0x18) << 0x10\n                    ) >> 0x10) +\n                   ((attr_value.aux.shndx & 0xff) << 8 | attr_value.aux.shndx >> 8 & 0xff) * 0x10000\n              ;\n            }\n            attr_value.val.stringval = (char *)(pattr + 4);\n            pattr = (uchar *)((int)attr_value.val.stringval + attr_value.aux.shndx);\nLAB_002e355c:\n            aVar40.stringval = attr_value.val.stringval;\n            aVar40.intval._4_4_ = attr_value.val.intval._4_4_;\n            aVar7 = aVar40;\n            if (uVar32 == 0x31) goto LAB_002e313c;\n            if (uVar32 < 0x32) goto LAB_002e3118;\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          }\n          else {\n            if (4 < uVar29) {\n              if (uVar29 != 5) {\n                if (uVar29 != 6) {\n                  return false;\n                }\n                pp_Var16 = (this->dwinfo_->object_->super_Object)._vptr_Object;\n                p_Var37 = pp_Var16[3];\n                if (p_Var37 == (_func_int_varargs *)PTR_is_big_endian_004c2950) {\n                  local_30 = puVar28;\n                  iVar17 = (*pp_Var16[0x3a])();\n                }\n                else {\n                  local_30 = puVar28;\n                  iVar17 = (*p_Var37)();\n                }\n                pcVar25 = *(char **)pattr;\n                if (iVar17 == 0) {\n                  pcVar25 = (char *)(((((uint)pcVar25 >> 0x10) << 0x18 |\n                                      ((uint)pcVar25 >> 0x18) << 0x10) >> 0x10) +\n                                    (((uint)pcVar25 & 0xff) << 8 | (uint)pcVar25 >> 8 & 0xff) *\n                                    0x10000);\n                }\n                pattr = pattr + 4;\n                pDVar22 = this->dwinfo_;\n                str_off._0_4_ = (char *)0x0;\n                str_off._4_4_ = pcVar25;\n                goto LAB_002e3708;\n              }\n              pp_Var16 = (this->dwinfo_->object_->super_Object)._vptr_Object;\n              p_Var37 = pp_Var16[3];\n              if (p_Var37 == (_func_int_varargs *)PTR_is_big_endian_004c2950) {\n                iVar36 = (*pp_Var16[0x3a])();\n              }\n              else {\n                iVar36 = (*p_Var37)();\n              }\n              uVar6 = *(ushort *)pattr;\n              if (iVar36 == 0) {\n                uVar6 = CONCAT11(pattr[1],*pattr);\n              }\n              attr_value.val.intval._4_4_ = ZEXT24(uVar6);\n              pattr = pattr + 2;\n              attr_value.val.stringval = (char *)0x0;\n              goto LAB_002e355c;\n            }\n            if (uVar29 != 1) {\n              if (uVar29 != 3) {\n                return false;\n              }\n              pp_Var16 = (this->dwinfo_->object_->super_Object)._vptr_Object;\n              p_Var37 = pp_Var16[3];\n              if (p_Var37 == (_func_int_varargs *)PTR_is_big_endian_004c2950) {\n                iVar36 = (*pp_Var16[0x3a])();\n              }\n              else {\n                iVar36 = (*p_Var37)();\n              }\n              uVar6 = *(ushort *)pattr;\n              if (iVar36 == 0) {\n                uVar6 = CONCAT11(pattr[1],*pattr);\n              }\n              attr_value.aux.shndx._0_2_ = 0;\n              attr_value.aux.shndx._2_2_ = uVar6;\n              attr_value.val.stringval = (char *)(pattr + 2);\n              pattr = (uchar *)((int)attr_value.val.stringval + attr_value.aux.shndx);\n              goto LAB_002e355c;\n            }\n            pDVar22 = this->dwinfo_;\n            if (pDVar22->address_size_ == 4) {\n              pp_Var16 = (pDVar22->object_->super_Object)._vptr_Object;\n              p_Var37 = pp_Var16[3];\n              if (p_Var37 == (_func_int_varargs *)PTR_is_big_endian_004c2950) {\n                local_30 = puVar28;\n                iVar36 = (*pp_Var16[0x3a])();\n              }\n              else {\n                local_30 = puVar28;\n                iVar36 = (*p_Var37)();\n              }\n              uVar23 = *(uint *)pattr;\n              if (iVar36 == 0) {\n                uVar23 = (((uVar23 >> 0x10) << 0x18 | (uVar23 >> 0x18) << 0x10) >> 0x10) +\n                         ((uVar23 & 0xff) << 8 | uVar23 >> 8 & 0xff) * 0x10000;\n              }\n              pattr = pattr + 4;\n              uVar38 = (ulonglong)uVar23;\n            }\n            else {\n              local_30 = puVar28;\n              uVar38 = (*local_34)(pDVar22,&pattr);\n            }\n            str_off = uVar38;\n            attr_value.aux.shndx = (*local_3c)(this->dwinfo_);\n            aVar39.refval = str_off;\n            if (uVar32 == 0x31) goto LAB_002e30bc;\n            if (uVar32 < 0x32) {\n              if (uVar32 != 1) goto joined_r0x002e3124;\n              goto LAB_002e39b4;\n            }\n            aVar7.refval = str_off;\n            if (uVar32 == 0x6e) goto LAB_002e313c;\n            if (uVar32 != 0x2007) goto LAB_002e339c;\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            aVar40.refval = str_off;\n          }\n          while( true ) {\n            iVar36 = iVar34;\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_002e2f98;\nLAB_002e314c:\n            attr_value.val.stringval = (char *)((ulonglong)aVar40 >> 0x20);\n            attr_value.val.intval._4_4_ = (undefined4)aVar40.intval;\n            iVar34 = iVar36 + 8;\n            (__position._M_current)->form = attr_value.form;\n            ((__position._M_current)->val).stringval = attr_value.val.stringval;\n            (__position._M_current)->attr = attr_value.attr;\n            *(undefined4 *)((int)&(__position._M_current)->val + 4) = attr_value.val.intval._4_4_;\n            (__position._M_current)->aux = attr_value.aux;\n            *(undefined4 *)&(__position._M_current)->field_0x14 = attr_value._20_4_;\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            pAVar13 = this->abbrev_code_;\n            attr_value.val = aVar40;\n            if (iVar34 == iVar31) goto LAB_002e2fb8;\n            puVar14 = (uint *)((int)&(pAVar13->attributes).\n                                     super__Vector_base<gold::Dwarf_abbrev_table::Attribute,_std::allocator<gold::Dwarf_abbrev_table::Attribute>_>\n                                     ._M_impl._M_start[1].attr + iVar36);\n            uVar29 = puVar14[1];\n            uVar32 = *puVar14;\n            if (uVar29 != 0x16) goto LAB_002e2dd0;\nLAB_002e31a8:\n            uVar29 = (uint)*pattr;\n            puVar15 = pattr + 1;\n            if ((char)*pattr < '\0') {\n              attr_value.val = aVar40;\n              (*(code *)PTR_read_unsigned_LEB_128_x_004c2980)(puVar15,&len,uVar29);\n              puVar15 = pattr + len;\n              uVar29 = extraout_v1;\n              aVar40 = attr_value.val;\n            }\n            else {\n              len = 1;\n            }\n            puVar18 = puVar15 + -(int)puVar30;\n            puVar28 = puVar18 + (int)this->die_offset_;\n            iVar36 = (uint)(puVar28 < puVar18) + ((int)puVar18 >> 0x1f) + *(int *)&this->die_offset_\n            ;\n            attr_value.form = uVar29;\n            pattr = puVar15;\n            if (uVar29 != 0xe) break;\nLAB_002e31fc:\n            attr_value.aux.shndx = 0;\n            pDVar22 = this->dwinfo_;\n            attr_value.attr = uVar32;\n            local_30 = puVar28;\n            attr_value.val = aVar40;\n            if (pDVar22->offset_size_ == 4) {\n              pp_Var16 = (pDVar22->object_->super_Object)._vptr_Object;\n              p_Var37 = pp_Var16[3];\n              if (p_Var37 == (_func_int_varargs *)PTR_is_big_endian_004c2950) {\n                iVar36 = (*pp_Var16[0x3a])();\n              }\n              else {\n                iVar36 = (*p_Var37)();\n              }\n              uVar29 = *(uint *)pattr;\n              if (iVar36 == 0) {\n                uVar29 = (((uVar29 >> 0x10) << 0x18 | (uVar29 >> 0x18) << 0x10) >> 0x10) +\n                         ((uVar29 & 0xff) << 8 | uVar29 >> 8 & 0xff) * 0x10000;\n              }\n              pattr = pattr + 4;\n              uVar38 = (ulonglong)uVar29;\n            }\n            else {\n              uVar38 = (*local_34)(pDVar22,&pattr);\n            }\n            str_off = uVar38;\n            attr_value.aux.shndx = (*local_3c)(this->dwinfo_);\n            aVar7.refval = str_off;\n            if (uVar32 != 0x31) {\n              if (uVar32 < 0x32) {\n                if ((uVar32 != 1) && (aVar39.refval = str_off, uVar32 == 3)) {\nLAB_002e3284:\n                  this->string_shndx_ = (uint)attr_value.aux;\n                  this->name_off_ = (off_t)aVar39;\n                  aVar7 = aVar39;\n                }\n              }\n              else {\n                aVar40.refval = str_off;\n                if (uVar32 == 0x6e) {\nLAB_002e387c:\n                  this->string_shndx_ = (uint)attr_value.aux;\n                }\n                else {\n                  if (uVar32 != 0x2007) goto LAB_002e313c;\n                  this->string_shndx_ = (uint)attr_value.aux;\n                }\n                this->linkage_name_off_ = (off_t)aVar40;\n                aVar7 = aVar40;\n              }\n            }\nLAB_002e313c:\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            aVar40 = aVar7;\n          }\n        } while( true );\n      }\n      uVar32 = (int)pattr - (int)puVar30;\n      uVar29 = uVar32 + iVar34;\n      iVar31 = (uint)(uVar29 < uVar32) + ((int)uVar32 >> 0x1f) + *(int *)&this->die_offset_;\n      if (*(int *)&pAVar13->field_0x4 < 0) {\n        *(int *)&this->child_offset_ = iVar31;\n        *(uint *)((int)&this->child_offset_ + 4) = uVar29;\n      }\n      else {\n        *(int *)&this->sibling_offset_ = iVar31;\n        *(uint *)((int)&this->sibling_offset_ + 4) = uVar29;\n      }\n      this->attributes_read_ = true;\n      return true;\n    }" { (ERROR "pAVar33 = (this->attributes_).\n                super__Vector_base<gold::" (assignment_expression "pAVar33 = (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 ((uint)(((int)(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 - (int)pAVar33 >> 3) * -0x55555555) < uVar29) {\n        aVar27 = (anon_union_4_3_97895b06_for_aux)\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        iVar34 = aVar27.shndx - (int)pAVar33;\n        if (uVar29 == 0) {\n          pAVar19 = (pointer)0x0;\n          pAVar35 = pAVar33;\n        }\n        else {\n          local_40 = aVar27;\n          pAVar19 = (pointer)(*(code *)PTR_operator_new_004c13a8)(uVar29 * 0x18);\n          aVar27 = local_40;\n          pAVar35 = (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 (pAVar33 != (pointer)aVar27.shndx) {\n          (*(code *)PTR_memmove_004c5af8)(pAVar19,pAVar33,iVar34);\n        }\n        if (pAVar35 != (pointer)0x0) {\n          (*(code *)PTR_operator_delete_004c12fc)(pAVar35);\n        }\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_start = pAVar19;\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)((int)pAVar19 + iVar34);\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 = pAVar19 + uVar29;\n        if (uVar29 != 0) goto LAB_002e2d90;\nLAB_002e2fb8:\n        if (pAVar13 == (Abbrev_code *)0x0) {\n          this_00 = (Dwarf_die *)(PTR_s_in_a_linker_script_004c191c + 0x7108);\n          (*(code *)PTR_do_gold_unreachable_004c1a30)\n                    (this_00,0x206,PTR_s_in_a_linker_script_004c191c + 0x7404);\n          if (this_00->attributes_read_ == false) {\n            bVar21 = read_attributes(this_00);\n            return bVar21;\n          }\n          return this_00->attributes_read_;\n        }\n        iVar34 = (int)this->die_offset_;\n      }\n      else if (uVar29 != 0) {\nLAB_002e2d90:\n        local_3c = (code *)PTR_lookup_reloc_004c2994;\n        iVar34 = 0;\n        local_34 = (code *)PTR_read_from_pointer<64>_004c2998;\n        local_40.shndx = (uint)&str_off;\nLAB_002e2db4:\n        puVar14 = (uint *)((int)&((pAVar13->attributes).\n                                  super__Vector_base<gold::Dwarf_abbrev_table::Attribute,_std::allocator<gold::Dwarf_abbrev_table::Attribute>_>\n                                  ._M_impl._M_start)->attr + iVar34);\n        uVar29 = puVar14[1];\n        uVar32 = *puVar14;\n        aVar40 = attr_value.val;\n        if (uVar29 == 0x16) goto LAB_002e31a8;\nLAB_002e2dd0:\n        puVar15 = pattr + -(int)puVar30;\n        puVar28 = puVar15 + (int)this->die_offset_;\n        iVar36 = (uint)(puVar28 < puVar15) + ((int)puVar15 >> 0x1f) + *(int *)&this->die_offset_;\n        attr_value.form = uVar29;\n        if (uVar29 == 0xe) goto LAB_002e31fc;\n        do {\n          attr_value.val.intval._4_4_ = (undefined4)aVar40.intval;\n          attr_value.aux.shndx = 0;\n          attr_value.attr = uVar32;\n          attr_value.form = uVar29;\n          attr_value.val = aVar40;\n          if (0xe < uVar29) {\n            if (uVar29 == 0x15) {\n              if ((char)*pattr < '\0') {\n                aVar39.intval = (*(code *)PTR_read_unsigned_LEB_128_x_004c2980)(pattr + 1,&len);\n                pattr = pattr + len;\n              }\n              else {\n                aVar39.intval._0_7_ = 0;\n                aVar39.intval._7_1_ = *pattr;\n                len = 1;\n                pattr = pattr + 1;\n              }\n              goto joined_r0x002e3998;\n            }\n            if (0x15 < uVar29) {\n              if (uVar29 == 0x19) {\n                attr_value.val.intval._4_4_ = 1;\n                attr_value.val.stringval = (char *)0x0;\n              }\n              else {\n                if (uVar29 < 0x1a) {\n                  if (uVar29 != 0x17) {\n                    if (uVar29 != 0x18) {\n                      return false;\n                    }\n                    goto LAB_002e32bc;\n                  }\n                  pDVar22 = this->dwinfo_;\n                  if (pDVar22->offset_size_ == 4) {\n                    pp_Var16 = (pDVar22->object_->super_Object)._vptr_Object;\n                    p_Var37 = pp_Var16[3];\n                    if (p_Var37 == (_func_int_varargs *)PTR_is_big_endian_004c2950) {\n                      local_30 = puVar28;\n                      iVar36 = (*pp_Var16[0x3a])();\n                    }\n                    else {\n                      local_30 = puVar28;\n                      iVar36 = (*p_Var37)();\n                    }\n                    uVar23 = *(uint *)pattr;\n                    if (iVar36 == 0) {\n                      uVar23 = (((uVar23 >> 0x10) << 0x18 | (uVar23 >> 0x18) << 0x10) >> 0x10) +\n                               ((uVar23 & 0xff) << 8 | uVar23 >> 8 & 0xff) * 0x10000;\n                    }\n                    pattr = pattr + 4;\n                    uVar38 = (ulonglong)uVar23;\n                  }\n                  else {\n                    local_30 = puVar28;\n                    uVar38 = (*local_34)(pDVar22,&pattr);\n                  }\n                  pDVar22 = this->dwinfo_;\n                  goto LAB_002e3970;\n                }\n                if (uVar29 != 0x20) {\n                  if (uVar29 < 0x20) {\n                    return false;\n                  }\n                  if (1 < uVar29 - 0x1f01) {\n                    return false;\n                  }\nLAB_002e34d8:\n                  if ((char)*pattr < '\0') {\n                    aVar40.intval = (*(code *)PTR_read_unsigned_LEB_128_x_004c2980)(pattr + 1,&len);\n                    pattr = pattr + len;\n                  }\n                  else {\n                    aVar40.intval._0_7_ = 0;\n                    aVar40.intval._7_1_ = *pattr;\n                    len = 1;\n                    pattr = pattr + 1;\n                  }\n                  goto LAB_002e382c;\n                }\n                pp_Var16 = (this->dwinfo_->object_->super_Object)._vptr_Object;\n                p_Var37 = pp_Var16[3];\n                if (p_Var37 == (_func_int_varargs *)PTR_is_big_endian_004c2950) {\n                  iVar36 = (*pp_Var16[0x3a])();\n                }\n                else {\n                  iVar36 = (*p_Var37)();\n                }\n                    /* WARNING: Load size is inaccurate */\n                attr_value.val._4_4_ = pattr[4];\n                    /* WARNING: Load size is inaccurate */\n                attr_value.val.blockval = *pattr;\n                if (iVar36 == 0) {\n                  uVar23 = attr_value.val.uintval._4_4_ & 0xff;\n                  uVar26 = (uint)attr_value.val.uintval._4_4_ >> 8;\n                  uVar2 = (uint)attr_value.val.uintval._4_4_ >> 0x10;\n                  uVar4 = (uint)attr_value.val.uintval._4_4_ >> 0x18;\n                  attr_value.val.intval._4_4_ =\n                       ((((uint)attr_value.val.stringval >> 0x10) << 0x18 |\n                        ((uint)attr_value.val.stringval >> 0x18) << 0x10) >> 0x10) +\n                       (((uint)attr_value.val.stringval & 0xff) << 8 |\n                       (uint)attr_value.val.stringval >> 8 & 0xff) * 0x10000;\n                  attr_value.val.stringval =\n                       (char *)(((uVar2 << 0x18 | uVar4 << 0x10) >> 0x10) +\n                               (uVar23 << 8 | uVar26 & 0xff) * 0x10000);\n                }\n                pattr = pattr + 8;\n              }\n              aVar39.stringval = attr_value.val.stringval;\n              aVar39.intval._4_4_ = attr_value.val.intval._4_4_;\n              aVar11.stringval = attr_value.val.stringval;\n              aVar11.intval._4_4_ = attr_value.val.intval._4_4_;\n              aVar7.stringval = attr_value.val.stringval;\n              aVar7.intval._4_4_ = attr_value.val.intval._4_4_;\n              if (uVar32 == 0x6e) goto LAB_002e313c;\n              aVar7 = aVar11;\n              if (uVar32 == 0x2007) goto LAB_002e313c;\n              goto joined_r0x002e3124;\n            }\n            if (uVar29 == 0x11) {\n              puVar15 = pattr + 1;\n              uVar23 = CONCAT31(0,*pattr);\n              aVar39.stringval = (char *)0x0;\n              aVar39.intval._4_4_ = uVar23;\n              aVar12.stringval = (char *)0x0;\n              aVar12.uintval._4_4_ = uVar23;\n              aVar40.stringval = (char *)0x0;\n              aVar40.uintval._4_4_ = uVar23;\n              aVar10.stringval = (char *)0x0;\n              aVar10.uintval._4_4_ = uVar23;\n              aVar7.stringval = (char *)0x0;\n              aVar7.uintval._4_4_ = uVar23;\n              aVar9.stringval = (char *)0x0;\n              aVar9.uintval._4_4_ = uVar23;\n              pattr = puVar15;\n              if (uVar32 == 0x31) goto LAB_002e30bc;\n              if (0x31 < uVar32) {\n                if ((uVar32 != 0x6e) && (aVar40 = aVar12, uVar32 != 0x2007)) {\n                  if (uVar32 != 0x47) goto LAB_002e313c;\n                  *(undefined4 *)&this->specification_ = 0;\n                  *(uint *)((int)&this->specification_ + 4) = uVar23;\n                  aVar7 = aVar10;\n                  goto LAB_002e313c;\n                }\n                goto LAB_002e3858;\n              }\n              if (uVar32 == 1) {\n                *(undefined4 *)&this->sibling_offset_ = 0;\n                *(uint *)((int)&this->sibling_offset_ + 4) = uVar23;\n                aVar7 = aVar9;\n                goto LAB_002e313c;\n              }\n              goto joined_r0x002e3124;\n            }\n            if (uVar29 < 0x12) {\n              if (uVar29 == 0xf) goto LAB_002e34d8;\n              if (uVar29 != 0x10) {\n                return false;\n              }\n              pDVar22 = this->dwinfo_;\n              uVar23 = pDVar22->offset_size_;\n              if (pDVar22->cu_version_ < 3) {\n                uVar23 = pDVar22->address_size_;\n              }\n              if (uVar23 == 4) {\n                pp_Var16 = (pDVar22->object_->super_Object)._vptr_Object;\n                p_Var37 = pp_Var16[3];\n                if (p_Var37 == (_func_int_varargs *)PTR_is_big_endian_004c2950) {\n                  local_30 = puVar28;\n                  iVar36 = (*pp_Var16[0x3a])();\n                }\n                else {\n                  local_30 = puVar28;\n                  iVar36 = (*p_Var37)();\n                }\n                uVar23 = *(uint *)pattr;\n                if (iVar36 == 0) {\n                  uVar23 = (((uVar23 >> 0x10) << 0x18 | (uVar23 >> 0x18) << 0x10) >> 0x10) +\n                           ((uVar23 & 0xff) << 8 | uVar23 >> 8 & 0xff) * 0x10000;\n                }\n                pattr = pattr + 4;\n                uVar38 = (ulonglong)uVar23;\n              }\n              else {\n                local_30 = puVar28;\n                uVar38 = (*local_34)(pDVar22,&pattr);\n              }\n              str_off = uVar38;\n              attr_value.aux.shndx = (*local_3c)(this->dwinfo_);\n              aVar39.refval = str_off;\n            }\n            else {\n              if (uVar29 == 0x13) {\n                pp_Var16 = (this->dwinfo_->object_->super_Object)._vptr_Object;\n                p_Var37 = pp_Var16[3];\n                if (p_Var37 == (_func_int_varargs *)PTR_is_big_endian_004c2950) {\n                  local_30 = puVar28;\n                  iVar36 = (*pp_Var16[0x3a])();\n                }\n                else {\n                  local_30 = puVar28;\n                  iVar36 = (*p_Var37)();\n                }\n                uVar23 = *(uint *)pattr;\n                if (iVar36 == 0) {\n                  uVar23 = (((uVar23 >> 0x10) << 0x18 | (uVar23 >> 0x18) << 0x10) >> 0x10) +\n                           ((uVar23 & 0xff) << 8 | uVar23 >> 8 & 0xff) * 0x10000;\n                }\n                pattr = pattr + 4;\n                pDVar22 = this->dwinfo_;\n                uVar38 = (ulonglong)uVar23;\n              }\n              else {\n                if (uVar29 < 0x14) {\n                  pp_Var16 = (this->dwinfo_->object_->super_Object)._vptr_Object;\n                  p_Var37 = pp_Var16[3];\n                  if (p_Var37 == (_func_int_varargs *)PTR_is_big_endian_004c2950) {\n                    iVar36 = (*pp_Var16[0x3a])();\n                  }\n                  else {\n                    iVar36 = (*p_Var37)();\n                  }\n                  uVar6 = *(ushort *)pattr;\n                  if (iVar36 == 0) {\n                    uVar6 = CONCAT11(pattr[1],*pattr);\n                  }\n                  aVar39.intval._0_6_ = 0;\n                  aVar39.intval._6_2_ = uVar6;\n                  pattr = pattr + 2;\n                  goto joined_r0x002e3998;\n                }\n                pp_Var16 = (this->dwinfo_->object_->super_Object)._vptr_Object;\n                p_Var37 = pp_Var16[3];\n                if (p_Var37 == (_func_int_varargs *)PTR_is_big_endian_004c2950) {\n                  local_30 = puVar28;\n                  iVar36 = (*pp_Var16[0x3a])();\n                }\n                else {\n                  local_30 = puVar28;\n                  iVar36 = (*p_Var37)();\n                }\n                uVar23 = *(uint *)(pattr + 4);\n                uVar26 = *(uint *)pattr;\n                if (iVar36 == 0) {\n                  uVar2 = uVar23 & 0xff;\n                  uVar4 = uVar23 >> 8;\n                  uVar3 = uVar23 >> 0x10;\n                  uVar5 = uVar23 >> 0x18;\n                  uVar23 = (((uVar26 >> 0x10) << 0x18 | (uVar26 >> 0x18) << 0x10) >> 0x10) +\n                           ((uVar26 & 0xff) << 8 | uVar26 >> 8 & 0xff) * 0x10000;\n                  uVar26 = ((uVar3 << 0x18 | uVar5 << 0x10) >> 0x10) +\n                           (uVar2 << 8 | uVar4 & 0xff) * 0x10000;\n                }\n                uVar38 = CONCAT44(uVar26,uVar23);\n                pattr = pattr + 8;\n                pDVar22 = this->dwinfo_;\n              }\nLAB_002e3970:\n              str_off = uVar38;\n              attr_value.aux.shndx = (*local_3c)(pDVar22);\n              aVar39.refval = str_off;\n            }\njoined_r0x002e3998:\n            if (uVar32 == 0x31) {\nLAB_002e30bc:\n              this->abstract_origin_ = (off_t)aVar39;\n              aVar7 = aVar39;\n              goto LAB_002e313c;\n            }\n            if (uVar32 < 0x32) {\n              aVar7 = aVar39;\n              if (uVar32 != 1) goto LAB_002e313c;\nLAB_002e39b4:\n              aVar7 = aVar39;\n              if (attr_value.aux.shndx != 0) goto LAB_002e313c;\n              this->sibling_offset_ = (off_t)aVar39;\n              goto LAB_002e313c;\n            }\n            aVar40 = aVar39;\n            if ((uVar32 != 0x6e) && (uVar32 != 0x2007)) {\nLAB_002e339c:\n              aVar7 = aVar39;\n              if (uVar32 != 0x47) goto LAB_002e313c;\n              this->specification_ = (off_t)aVar39;\n              goto LAB_002e313c;\n            }\n            goto LAB_002e3858;\n          }\n          if (uVar29 == 7) {\n            pp_Var16 = (this->dwinfo_->object_->super_Object)._vptr_Object;\n            p_Var37 = pp_Var16[3];\n            if (p_Var37 == (_func_int_varargs *)PTR_is_big_endian_004c2950) {\n              local_30 = puVar28;\n              iVar17 = (*pp_Var16[0x3a])();\n            }\n            else {\n              local_30 = puVar28;\n              iVar17 = (*p_Var37)();\n            }\n            str_off._4_4_ = *(char **)(pattr + 4);\n            pcVar25 = *(char **)pattr;\n            if (iVar17 == 0) {\n              uVar23 = (uint)str_off._4_4_ & 0xff;\n              uVar26 = (uint)str_off._4_4_ >> 8;\n              uVar2 = (uint)str_off._4_4_ >> 0x10;\n              uVar4 = (uint)str_off._4_4_ >> 0x18;\n              str_off._4_4_ =\n                   (char *)(((((uint)pcVar25 >> 0x10) << 0x18 | ((uint)pcVar25 >> 0x18) << 0x10) >>\n                            0x10) + (((uint)pcVar25 & 0xff) << 8 | (uint)pcVar25 >> 8 & 0xff) *\n                                    0x10000);\n              pcVar25 = (char *)(((uVar2 << 0x18 | uVar4 << 0x10) >> 0x10) +\n                                (uVar23 << 8 | uVar26 & 0xff) * 0x10000);\n            }\n            pattr = pattr + 8;\n            pDVar22 = this->dwinfo_;\n            str_off._0_4_ = pcVar25;\nLAB_002e3708:\n            attr_value.aux.shndx = (*local_3c)(pDVar22,pcVar25,iVar36,local_30,local_40.shndx);\n            attr_value.val._4_4_ = str_off._4_4_;\n            attr_value.val.stringval = str_off._0_4_;\n            goto LAB_002e355c;\n          }\n          if (7 < uVar29) {\n            if (uVar29 == 10) {\n              attr_value.val.stringval = (char *)(pattr + 1);\n              attr_value.aux.shndx._0_3_ = 0;\n              attr_value.aux.shndx._3_1_ = *pattr;\n              pattr = (uchar *)((int)attr_value.val.stringval + attr_value.aux.shndx);\n              goto LAB_002e355c;\n            }\n            if (uVar29 < 0xb) {\n              if (uVar29 != 8) {\n                if (uVar29 != 9) {\n                  return false;\n                }\nLAB_002e32bc:\n                aVar27.shndx._0_3_ = 0;\n                aVar27.shndx._3_1_ = *pattr;\n                puVar15 = pattr + 1;\n                if ((char)*pattr < '\0') {\n                  (*(code *)PTR_read_unsigned_LEB_128_x_004c2980)(puVar15,&len);\n                  puVar15 = pattr + len;\n                  aVar27 = extraout_v1_00;\n                }\n                else {\n                  len = 1;\n                }\n                aVar40.blockval = puVar15;\n                aVar40.intval._4_4_ = attr_value.val.intval._4_4_;\n                attr_value.aux = aVar27;\n                pattr = pattr + aVar27.shndx + len;\n                goto LAB_002e382c;\n              }\n              attr_value.val.blockval = pattr;\n              local_30 = pattr;\n              len = (*(code *)PTR_strlen_004c5b9c)(pattr);\n              aVar40.stringval = attr_value.val.stringval;\n              aVar40.intval._4_4_ = attr_value.val.intval._4_4_;\n              aVar8.stringval = attr_value.val.stringval;\n              aVar8.intval._4_4_ = attr_value.val.intval._4_4_;\n              aVar7.stringval = attr_value.val.stringval;\n              aVar7.intval._4_4_ = attr_value.val.intval._4_4_;\n              pattr = local_30 + len + 1;\n              if (uVar32 == 0x31) goto LAB_002e313c;\n              if (0x31 < uVar32) {\n                if ((uVar32 != 0x6e) && (aVar7 = aVar8, uVar32 != 0x2007)) goto LAB_002e313c;\n                this->linkage_name_ = (char *)local_30;\n                aVar7 = aVar40;\n                goto LAB_002e313c;\n              }\nLAB_002e3118:\n              aVar7 = aVar40;\n              aVar39 = aVar40;\n              if (uVar32 == 1) goto LAB_002e313c;\njoined_r0x002e3124:\n              aVar7 = aVar39;\n              if (uVar32 != 3) goto LAB_002e313c;\n              attr_value.val.stringval = (char *)((ulonglong)aVar39 >> 0x20);\n              if (uVar29 == 8) {\n                this->name_ = attr_value.val.stringval;\n                goto LAB_002e313c;\n              }\n              if (uVar29 != 0xe) goto LAB_002e313c;\n              goto LAB_002e3284;\n            }\n            if (uVar29 < 0xd) {\n              aVar40.intval._0_7_ = 0;\n              aVar40.uintval._7_1_ = *pattr;\n              pattr = pattr + 1;\nLAB_002e382c:\n              aVar7 = aVar40;\n              if (uVar32 == 0x31) goto LAB_002e313c;\n              if (uVar32 < 0x32) goto LAB_002e3118;\n            }\n            else {\n              bVar1 = *pattr;\n              uVar23 = CONCAT31(0,bVar1);\n              puVar15 = pattr + 1;\n              if ((char)bVar1 < '\0') {\n                aVar40.intval = (*(code *)PTR_read_signed_LEB_128_x_004c297c)(puVar15,&len,uVar23);\n                puVar15 = pattr + len;\n              }\n              else {\n                len = 1;\n                aVar40.stringval = (char *)0x0;\n                aVar40.uintval._4_4_ = uVar23;\n                if ((bVar1 & 0x40) != 0) {\n                  aVar40.stringval = (char *)0xffffffff;\n                  aVar40.uintval._4_4_ = uVar23 | 0xffffff80;\n                }\n              }\n              pattr = puVar15;\n              aVar7 = aVar40;\n              if (uVar32 == 0x31) goto LAB_002e313c;\n              if (uVar32 < 0x32) {\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                iVar36 = iVar34;\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_002e314c;\nLAB_002e2f98:\n                iVar34 = iVar34 + 8;\n                attr_value.val = aVar40;\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                          (local_38,__position,&attr_value);\n                pAVar13 = this->abbrev_code_;\n                if (iVar34 == iVar31) goto LAB_002e2fb8;\n                goto LAB_002e2db4;\n              }\n            }\n            if ((uVar32 != 0x6e) && (aVar7 = aVar40, uVar32 != 0x2007)) goto LAB_002e313c;\nLAB_002e3858:\n            attr_value.val._0_4_ = aVar40.stringval;\n            aVar7 = aVar40;\n            if (uVar29 == 8) {\n              this->linkage_name_ = attr_value.val.stringval;\n              goto LAB_002e313c;\n            }\n            if (uVar29 != 0xe) goto LAB_002e313c;\n            goto LAB_002e387c;\n          }\n          if (uVar29 == 4) {\n            pp_Var16 = (this->dwinfo_->object_->super_Object)._vptr_Object;\n            p_Var37 = pp_Var16[3];\n            if (p_Var37 == (_func_int_varargs *)PTR_is_big_endian_004c2950) {\n              iVar36 = (*pp_Var16[0x3a])();\n            }\n            else {\n              iVar36 = (*p_Var37)();\n            }\n            attr_value.aux.shndx = *(uint *)pattr;\n            if (iVar36 == 0) {\n              attr_value.aux.shndx =\n                   (((attr_value.aux.shndx >> 0x10) << 0x18 | (attr_value.aux.shndx >> 0x18) << 0x10\n                    ) >> 0x10) +\n                   ((attr_value.aux.shndx & 0xff) << 8 | attr_value.aux.shndx >> 8 & 0xff) * 0x10000\n              ;\n            }\n            attr_value.val.stringval = (char *)(pattr + 4);\n            pattr = (uchar *)((int)attr_value.val.stringval + attr_value.aux.shndx);\nLAB_002e355c:\n            aVar40.stringval = attr_value.val.stringval;\n            aVar40.intval._4_4_ = attr_value.val.intval._4_4_;\n            aVar7 = aVar40;\n            if (uVar32 == 0x31) goto LAB_002e313c;\n            if (uVar32 < 0x32) goto LAB_002e3118;\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          }\n          else {\n            if (4 < uVar29) {\n              if (uVar29 != 5) {\n                if (uVar29 != 6) {\n                  return false;\n                }\n                pp_Var16 = (this->dwinfo_->object_->super_Object)._vptr_Object;\n                p_Var37 = pp_Var16[3];\n                if (p_Var37 == (_func_int_varargs *)PTR_is_big_endian_004c2950) {\n                  local_30 = puVar28;\n                  iVar17 = (*pp_Var16[0x3a])();\n                }\n                else {\n                  local_30 = puVar28;\n                  iVar17 = (*p_Var37)();\n                }\n                pcVar25 = *(char **)pattr;\n                if (iVar17 == 0) {\n                  pcVar25 = (char *)(((((uint)pcVar25 >> 0x10) << 0x18 |\n                                      ((uint)pcVar25 >> 0x18) << 0x10) >> 0x10) +\n                                    (((uint)pcVar25 & 0xff) << 8 | (uint)pcVar25 >> 8 & 0xff) *\n                                    0x10000);\n                }\n                pattr = pattr + 4;\n                pDVar22 = this->dwinfo_;\n                str_off._0_4_ = (char *)0x0;\n                str_off._4_4_ = pcVar25;\n                goto LAB_002e3708;\n              }\n              pp_Var16 = (this->dwinfo_->object_->super_Object)._vptr_Object;\n              p_Var37 = pp_Var16[3];\n              if (p_Var37 == (_func_int_varargs *)PTR_is_big_endian_004c2950) {\n                iVar36 = (*pp_Var16[0x3a])();\n              }\n              else {\n                iVar36 = (*p_Var37)();\n              }\n              uVar6 = *(ushort *)pattr;\n              if (iVar36 == 0) {\n                uVar6 = CONCAT11(pattr[1],*pattr);\n              }\n              attr_value.val.intval._4_4_ = ZEXT24(uVar6);\n              pattr = pattr + 2;\n              attr_value.val.stringval = (char *)0x0;\n              goto LAB_002e355c;\n            }\n            if (uVar29 != 1) {\n              if (uVar29 != 3) {\n                return false;\n              }\n              pp_Var16 = (this->dwinfo_->object_->super_Object)._vptr_Object;\n              p_Var37 = pp_Var16[3];\n              if (p_Var37 == (_func_int_varargs *)PTR_is_big_endian_004c2950) {\n                iVar36 = (*pp_Var16[0x3a])();\n              }\n              else {\n                iVar36 = (*p_Var37)();\n              }\n              uVar6 = *(ushort *)pattr;\n              if (iVar36 == 0) {\n                uVar6 = CONCAT11(pattr[1],*pattr);\n              }\n              attr_value.aux.shndx._0_2_ = 0;\n              attr_value.aux.shndx._2_2_ = uVar6;\n              attr_value.val.stringval = (char *)(pattr + 2);\n              pattr = (uchar *)((int)attr_value.val.stringval + attr_value.aux.shndx);\n              goto LAB_002e355c;\n            }\n            pDVar22 = this->dwinfo_;\n            if (pDVar22->address_size_ == 4) {\n              pp_Var16 = (pDVar22->object_->super_Object)._vptr_Object;\n              p_Var37 = pp_Var16[3];\n              if (p_Var37 == (_func_int_varargs *)PTR_is_big_endian_004c2950) {\n                local_30 = puVar28;\n                iVar36 = (*pp_Var16[0x3a])();\n              }\n              else {\n                local_30 = puVar28;\n                iVar36 = (*p_Var37)();\n              }\n              uVar23 = *(uint *)pattr;\n              if (iVar36 == 0) {\n                uVar23 = (((uVar23 >> 0x10) << 0x18 | (uVar23 >> 0x18) << 0x10) >> 0x10) +\n                         ((uVar23 & 0xff) << 8 | uVar23 >> 8 & 0xff) * 0x10000;\n              }\n              pattr = pattr + 4;\n              uVar38 = (ulonglong)uVar23;\n            }\n            else {\n              local_30 = puVar28;\n              uVar38 = (*local_34)(pDVar22,&pattr);\n            }\n            str_off = uVar38;\n            attr_value.aux.shndx = (*local_3c)(this->dwinfo_);\n            aVar39.refval = str_off;\n            if (uVar32 == 0x31) goto LAB_002e30bc;\n            if (uVar32 < 0x32) {\n              if (uVar32 != 1) goto joined_r0x002e3124;\n              goto LAB_002e39b4;\n            }\n            aVar7.refval = str_off;\n            if (uVar32 == 0x6e) goto LAB_002e313c;\n            if (uVar32 != 0x2007) goto LAB_002e339c;\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            aVar40.refval = str_off;\n          }\n          while( true ) {\n            iVar36 = iVar34;\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_002e2f98;\nLAB_002e314c:\n            attr_value.val.stringval = (char *)((ulonglong)aVar40 >> 0x20);\n            attr_value.val.intval._4_4_ = (undefined4)aVar40.intval;\n            iVar34 = iVar36 + 8;\n            (__position._M_current)->form = attr_value.form;\n            ((__position._M_current)->val).stringval = attr_value.val.stringval;\n            (__position._M_current)->attr = attr_value.attr;\n            *(undefined4 *)((int)&(__position._M_current)->val + 4) = attr_value.val.intval._4_4_;\n            (__position._M_current)->aux = attr_value.aux;\n            *(undefined4 *)&(__position._M_current)->field_0x14 = attr_value._20_4_;\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            pAVar13 = this->abbrev_code_;\n            attr_value.val = aVar40;\n            if (iVar34 == iVar31) goto LAB_002e2fb8;\n            puVar14 = (uint *)((int)&(pAVar13->attributes).\n                                     super__Vector_base<gold::Dwarf_abbrev_table::Attribute,_std::allocator<gold::Dwarf_abbrev_table::Attribute>_>\n                                     ._M_impl._M_start[1].attr + iVar36);\n            uVar29 = puVar14[1];\n            uVar32 = *puVar14;\n            if (uVar29 != 0x16) goto LAB_002e2dd0;\nLAB_002e31a8:\n            uVar29 = (uint)*pattr;\n            puVar15 = pattr + 1;\n            if ((char)*pattr < '\0') {\n              attr_value.val = aVar40;\n              (*(code *)PTR_read_unsigned_LEB_128_x_004c2980)(puVar15,&len,uVar29);\n              puVar15 = pattr + len;\n              uVar29 = extraout_v1;\n              aVar40 = attr_value.val;\n            }\n            else {\n              len = 1;\n            }\n            puVar18 = puVar15 + -(int)puVar30;\n            puVar28 = puVar18 + (int)this->die_offset_;\n            iVar36 = (uint)(puVar28 < puVar18) + ((int)puVar18 >> 0x1f) + *(int *)&this->die_offset_\n            ;\n            attr_value.form = uVar29;\n            pattr = puVar15;\n            if (uVar29 != 0xe) break;\nLAB_002e31fc:\n            attr_value.aux.shndx = 0;\n            pDVar22 = this->dwinfo_;\n            attr_value.attr = uVar32;\n            local_30 = puVar28;\n            attr_value.val = aVar40;\n            if (pDVar22->offset_size_ == 4) {\n              pp_Var16 = (pDVar22->object_->super_Object)._vptr_Object;\n              p_Var37 = pp_Var16[3];\n              if (p_Var37 == (_func_int_varargs *)PTR_is_big_endian_004c2950) {\n                iVar36 = (*pp_Var16[0x3a])();\n              }\n              else {\n                iVar36 = (*p_Var37)();\n              }\n              uVar29 = *(uint *)pattr;\n              if (iVar36 == 0) {\n                uVar29 = (((uVar29 >> 0x10) << 0x18 | (uVar29 >> 0x18) << 0x10) >> 0x10) +\n                         ((uVar29 & 0xff) << 8 | uVar29 >> 8 & 0xff) * 0x10000;\n              }\n              pattr = pattr + 4;\n              uVar38 = (ulonglong)uVar29;\n            }\n            else {\n              uVar38 = (*local_34)(pDVar22,&pattr);\n            }\n            str_off = uVar38;\n            attr_value.aux.shndx = (*local_3c)(this->dwinfo_);\n            aVar7.refval = str_off;\n            if (uVar32 != 0x31) {\n              if (uVar32 < 0x32) {\n                if ((uVar32 != 1) && (aVar39.refval = str_off, uVar32 == 3)) {\nLAB_002e3284:\n                  this->string_shndx_ = (uint)attr_value.aux;\n                  this->name_off_ = (off_t)aVar39;\n                  aVar7 = aVar39;\n                }\n              }\n              else {\n                aVar40.refval = str_off;\n                if (uVar32 == 0x6e) {\nLAB_002e387c:\n                  this->string_shndx_ = (uint)attr_value.aux;\n                }\n                else {\n                  if (uVar32 != 0x2007) goto LAB_002e313c;\n                  this->string_shndx_ = (uint)attr_value.aux;\n                }\n                this->linkage_name_off_ = (off_t)aVar40;\n                aVar7 = aVar40;\n              }\n            }\nLAB_002e313c:\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            aVar40 = aVar7;\n          }\n        } while( true );\n      }" if (parenthesized_expression "((uint)(((int)(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 - (int)pAVar33 >> 3) * -0x55555555) < uVar29)" ( (binary_expression "(uint)(((int)(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 - (int)pAVar33 >> 3) * -0x55555555) < uVar29" (call_expression "(uint)(((int)(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 - (int)pAVar33 >> 3) * -0x55555555)" (parenthesized_expression "(uint)" ( identifier )) (argument_list "(((int)(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 - (int)pAVar33 >> 3) * -0x55555555)" ( (binary_expression "((int)(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 - (int)pAVar33 >> 3) * -0x55555555" (parenthesized_expression "((int)(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 - (int)pAVar33 >> 3)" ( (ERROR "(int)(this->attributes_).\n                       super__Vector_base<gold::Dwarf_die::Attribute_value,_std::allocator<gold::Dwarf_die::" (comma_expression "(int)(this->attributes_).\n                       super__Vector_base<gold::Dwarf_die::Attribute_value,_std" (binary_expression "(int)(this->attributes_).\n                       super__Vector_base<gold" (cast_expression "(int)(this->attributes_).\n                       super__Vector_base" ( (type_descriptor "int" primitive_type) ) (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 - (int)pAVar33 >> 3" (binary_expression "Attribute_value>_>\n                       ._M_impl._M_end_of_storage - (int)pAVar33" (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 "(int)pAVar33" ( (type_descriptor "int" primitive_type) ) identifier)) >> number_literal) )) * number_literal) ))) < identifier) )) (compound_statement "{\n        aVar27 = (anon_union_4_3_97895b06_for_aux)\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        iVar34 = aVar27.shndx - (int)pAVar33;\n        if (uVar29 == 0) {\n          pAVar19 = (pointer)0x0;\n          pAVar35 = pAVar33;\n        }\n        else {\n          local_40 = aVar27;\n          pAVar19 = (pointer)(*(code *)PTR_operator_new_004c13a8)(uVar29 * 0x18);\n          aVar27 = local_40;\n          pAVar35 = (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 (pAVar33 != (pointer)aVar27.shndx) {\n          (*(code *)PTR_memmove_004c5af8)(pAVar19,pAVar33,iVar34);\n        }\n        if (pAVar35 != (pointer)0x0) {\n          (*(code *)PTR_operator_delete_004c12fc)(pAVar35);\n        }\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_start = pAVar19;\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)((int)pAVar19 + iVar34);\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 = pAVar19 + uVar29;\n        if (uVar29 != 0) goto LAB_002e2d90;\nLAB_002e2fb8:\n        if (pAVar13 == (Abbrev_code *)0x0) {\n          this_00 = (Dwarf_die *)(PTR_s_in_a_linker_script_004c191c + 0x7108);\n          (*(code *)PTR_do_gold_unreachable_004c1a30)\n                    (this_00,0x206,PTR_s_in_a_linker_script_004c191c + 0x7404);\n          if (this_00->attributes_read_ == false) {\n            bVar21 = read_attributes(this_00);\n            return bVar21;\n          }\n          return this_00->attributes_read_;\n        }\n        iVar34 = (int)this->die_offset_;\n      }" { (ERROR "aVar27 = (anon_union_4_3_97895b06_for_aux)\n                 (this->attributes_).\n                 super__Vector_base<gold::Dwarf_die::Attribute_value,_std::allocator<gold::Dwarf_die::" (comma_expression "aVar27 = (anon_union_4_3_97895b06_for_aux)\n                 (this->attributes_).\n                 super__Vector_base<gold::Dwarf_die::Attribute_value,_std" (assignment_expression "aVar27 = (anon_union_4_3_97895b06_for_aux)\n                 (this->attributes_).\n                 super__Vector_base<gold" identifier = (binary_expression "(anon_union_4_3_97895b06_for_aux)\n                 (this->attributes_).\n                 super__Vector_base<gold" (field_expression "(anon_union_4_3_97895b06_for_aux)\n                 (this->attributes_).\n                 super__Vector_base" (call_expression "(anon_union_4_3_97895b06_for_aux)\n                 (this->attributes_)" (parenthesized_expression "(anon_union_4_3_97895b06_for_aux)" ( identifier )) (argument_list "(this->attributes_)" ( (field_expression "this->attributes_" identifier -> field_identifier) ))) . field_identifier) < identifier)) (ERROR "::Dwarf_die::Attribute_value" : : identifier : : identifier) , identifier) : : identifier < identifier : : identifier : :) (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 "iVar34 = aVar27.shndx - (int)pAVar33;" (assignment_expression "iVar34 = aVar27.shndx - (int)pAVar33" identifier = (binary_expression "aVar27.shndx - (int)pAVar33" (field_expression "aVar27.shndx" identifier . field_identifier) - (cast_expression "(int)pAVar33" ( (type_descriptor "int" primitive_type) ) identifier))) ;) (if_statement "if (uVar29 == 0) {\n          pAVar19 = (pointer)0x0;\n          pAVar35 = pAVar33;\n        }\n        else {\n          local_40 = aVar27;\n          pAVar19 = (pointer)(*(code *)PTR_operator_new_004c13a8)(uVar29 * 0x18);\n          aVar27 = local_40;\n          pAVar35 = (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 "(uVar29 == 0)" ( (binary_expression "uVar29 == 0" identifier == number_literal) )) (compound_statement "{\n          pAVar19 = (pointer)0x0;\n          pAVar35 = pAVar33;\n        }" { (expression_statement "pAVar19 = (pointer)0x0;" (assignment_expression "pAVar19 = (pointer)0x0" identifier = (cast_expression "(pointer)0x0" ( (type_descriptor "pointer" type_identifier) ) number_literal)) ;) (expression_statement "pAVar35 = pAVar33;" (assignment_expression "pAVar35 = pAVar33" identifier = identifier) ;) }) (else_clause "else {\n          local_40 = aVar27;\n          pAVar19 = (pointer)(*(code *)PTR_operator_new_004c13a8)(uVar29 * 0x18);\n          aVar27 = local_40;\n          pAVar35 = (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          local_40 = aVar27;\n          pAVar19 = (pointer)(*(code *)PTR_operator_new_004c13a8)(uVar29 * 0x18);\n          aVar27 = local_40;\n          pAVar35 = (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 "local_40 = aVar27;" (assignment_expression "local_40 = aVar27" identifier = identifier) ;) (expression_statement "pAVar19 = (pointer)(*(code *)PTR_operator_new_004c13a8)(uVar29 * 0x18);" (assignment_expression "pAVar19 = (pointer)(*(code *)PTR_operator_new_004c13a8)(uVar29 * 0x18)" identifier = (call_expression "(pointer)(*(code *)PTR_operator_new_004c13a8)(uVar29 * 0x18)" (call_expression "(pointer)(*(code *)PTR_operator_new_004c13a8)" (parenthesized_expression "(pointer)" ( identifier )) (argument_list "(*(code *)PTR_operator_new_004c13a8)" ( (pointer_expression "*(code *)PTR_operator_new_004c13a8" * (cast_expression "(code *)PTR_operator_new_004c13a8" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) ))) (argument_list "(uVar29 * 0x18)" ( (binary_expression "uVar29 * 0x18" identifier * number_literal) )))) ;) (expression_statement "aVar27 = local_40;" (assignment_expression "aVar27 = local_40" identifier = identifier) ;) (ERROR "pAVar35 = (this->attributes_).\n                    super__Vector_base<gold::" (assignment_expression "pAVar35 = (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 (pAVar33 != (pointer)aVar27.shndx) {\n          (*(code *)PTR_memmove_004c5af8)(pAVar19,pAVar33,iVar34);\n        }" if (parenthesized_expression "(pAVar33 != (pointer)aVar27.shndx)" ( (binary_expression "pAVar33 != (pointer)aVar27.shndx" identifier != (cast_expression "(pointer)aVar27.shndx" ( (type_descriptor "pointer" type_identifier) ) (field_expression "aVar27.shndx" identifier . field_identifier))) )) (compound_statement "{\n          (*(code *)PTR_memmove_004c5af8)(pAVar19,pAVar33,iVar34);\n        }" { (expression_statement "(*(code *)PTR_memmove_004c5af8)(pAVar19,pAVar33,iVar34);" (call_expression "(*(code *)PTR_memmove_004c5af8)(pAVar19,pAVar33,iVar34)" (parenthesized_expression "(*(code *)PTR_memmove_004c5af8)" ( (pointer_expression "*(code *)PTR_memmove_004c5af8" * (cast_expression "(code *)PTR_memmove_004c5af8" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(pAVar19,pAVar33,iVar34)" ( identifier , identifier , identifier ))) ;) })) (if_statement "if (pAVar35 != (pointer)0x0) {\n          (*(code *)PTR_operator_delete_004c12fc)(pAVar35);\n        }" if (parenthesized_expression "(pAVar35 != (pointer)0x0)" ( (binary_expression "pAVar35 != (pointer)0x0" identifier != (cast_expression "(pointer)0x0" ( (type_descriptor "pointer" type_identifier) ) number_literal)) )) (compound_statement "{\n          (*(code *)PTR_operator_delete_004c12fc)(pAVar35);\n        }" { (expression_statement "(*(code *)PTR_operator_delete_004c12fc)(pAVar35);" (call_expression "(*(code *)PTR_operator_delete_004c12fc)(pAVar35)" (parenthesized_expression "(*(code *)PTR_operator_delete_004c12fc)" ( (pointer_expression "*(code *)PTR_operator_delete_004c12fc" * (cast_expression "(code *)PTR_operator_delete_004c12fc" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(pAVar35)" ( 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_start = pAVar19;" 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 = pAVar19;" statement_identifier : (ERROR ":" :) (expression_statement "Attribute_value>_>\n        ._M_impl._M_start = pAVar19;" (assignment_expression "Attribute_value>_>\n        ._M_impl._M_start = pAVar19" (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) ;))) (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)((int)pAVar19 + iVar34);" 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)((int)pAVar19 + iVar34);" statement_identifier : (ERROR ":" :) (expression_statement "Attribute_value>_>\n        ._M_impl._M_finish = (pointer)((int)pAVar19 + iVar34);" (assignment_expression "Attribute_value>_>\n        ._M_impl._M_finish = (pointer)((int)pAVar19 + iVar34)" (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)((int)pAVar19 + iVar34)" (parenthesized_expression "(pointer)" ( identifier )) (argument_list "((int)pAVar19 + iVar34)" ( (binary_expression "(int)pAVar19 + iVar34" (cast_expression "(int)pAVar19" ( (type_descriptor "int" primitive_type) ) identifier) + 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 = pAVar19 + uVar29;" 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 = pAVar19 + uVar29;" statement_identifier : (ERROR ":" :) (expression_statement "Attribute_value>_>\n        ._M_impl._M_end_of_storage = pAVar19 + uVar29;" (assignment_expression "Attribute_value>_>\n        ._M_impl._M_end_of_storage = pAVar19 + uVar29" (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 "pAVar19 + uVar29" identifier + identifier)) ;))) (if_statement "if (uVar29 != 0) goto LAB_002e2d90;" if (parenthesized_expression "(uVar29 != 0)" ( (binary_expression "uVar29 != 0" identifier != number_literal) )) (goto_statement "goto LAB_002e2d90;" goto statement_identifier ;)) (labeled_statement "LAB_002e2fb8:\n        if (pAVar13 == (Abbrev_code *)0x0) {\n          this_00 = (Dwarf_die *)(PTR_s_in_a_linker_script_004c191c + 0x7108);\n          (*(code *)PTR_do_gold_unreachable_004c1a30)\n                    (this_00,0x206,PTR_s_in_a_linker_script_004c191c + 0x7404);\n          if (this_00->attributes_read_ == false) {\n            bVar21 = read_attributes(this_00);\n            return bVar21;\n          }\n          return this_00->attributes_read_;\n        }" statement_identifier : (if_statement "if (pAVar13 == (Abbrev_code *)0x0) {\n          this_00 = (Dwarf_die *)(PTR_s_in_a_linker_script_004c191c + 0x7108);\n          (*(code *)PTR_do_gold_unreachable_004c1a30)\n                    (this_00,0x206,PTR_s_in_a_linker_script_004c191c + 0x7404);\n          if (this_00->attributes_read_ == false) {\n            bVar21 = read_attributes(this_00);\n            return bVar21;\n          }\n          return this_00->attributes_read_;\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          this_00 = (Dwarf_die *)(PTR_s_in_a_linker_script_004c191c + 0x7108);\n          (*(code *)PTR_do_gold_unreachable_004c1a30)\n                    (this_00,0x206,PTR_s_in_a_linker_script_004c191c + 0x7404);\n          if (this_00->attributes_read_ == false) {\n            bVar21 = read_attributes(this_00);\n            return bVar21;\n          }\n          return this_00->attributes_read_;\n        }" { (expression_statement "this_00 = (Dwarf_die *)(PTR_s_in_a_linker_script_004c191c + 0x7108);" (assignment_expression "this_00 = (Dwarf_die *)(PTR_s_in_a_linker_script_004c191c + 0x7108)" identifier = (cast_expression "(Dwarf_die *)(PTR_s_in_a_linker_script_004c191c + 0x7108)" ( (type_descriptor "Dwarf_die *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(PTR_s_in_a_linker_script_004c191c + 0x7108)" ( (binary_expression "PTR_s_in_a_linker_script_004c191c + 0x7108" identifier + number_literal) )))) ;) (expression_statement "(*(code *)PTR_do_gold_unreachable_004c1a30)\n                    (this_00,0x206,PTR_s_in_a_linker_script_004c191c + 0x7404);" (call_expression "(*(code *)PTR_do_gold_unreachable_004c1a30)\n                    (this_00,0x206,PTR_s_in_a_linker_script_004c191c + 0x7404)" (parenthesized_expression "(*(code *)PTR_do_gold_unreachable_004c1a30)" ( (pointer_expression "*(code *)PTR_do_gold_unreachable_004c1a30" * (cast_expression "(code *)PTR_do_gold_unreachable_004c1a30" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(this_00,0x206,PTR_s_in_a_linker_script_004c191c + 0x7404)" ( identifier , number_literal , (binary_expression "PTR_s_in_a_linker_script_004c191c + 0x7404" identifier + number_literal) ))) ;) (if_statement "if (this_00->attributes_read_ == false) {\n            bVar21 = read_attributes(this_00);\n            return bVar21;\n          }" if (parenthesized_expression "(this_00->attributes_read_ == false)" ( (binary_expression "this_00->attributes_read_ == false" (field_expression "this_00->attributes_read_" identifier -> field_identifier) == false) )) (compound_statement "{\n            bVar21 = read_attributes(this_00);\n            return bVar21;\n          }" { (expression_statement "bVar21 = read_attributes(this_00);" (assignment_expression "bVar21 = read_attributes(this_00)" identifier = (call_expression "read_attributes(this_00)" identifier (argument_list "(this_00)" ( identifier )))) ;) (return_statement "return bVar21;" return identifier ;) })) (return_statement "return this_00->attributes_read_;" return (field_expression "this_00->attributes_read_" identifier -> field_identifier) ;) }))) (expression_statement "iVar34 = (int)this->die_offset_;" (assignment_expression "iVar34 = (int)this->die_offset_" identifier = (cast_expression "(int)this->die_offset_" ( (type_descriptor "int" primitive_type) ) (field_expression "this->die_offset_" identifier -> field_identifier))) ;) }) (else_clause "else if (uVar29 != 0) {\nLAB_002e2d90:\n        local_3c = (code *)PTR_lookup_reloc_004c2994;\n        iVar34 = 0;\n        local_34 = (code *)PTR_read_from_pointer<64>_004c2998;\n        local_40.shndx = (uint)&str_off;\nLAB_002e2db4:\n        puVar14 = (uint *)((int)&((pAVar13->attributes).\n                                  super__Vector_base<gold::Dwarf_abbrev_table::Attribute,_std::allocator<gold::Dwarf_abbrev_table::Attribute>_>\n                                  ._M_impl._M_start)->attr + iVar34);\n        uVar29 = puVar14[1];\n        uVar32 = *puVar14;\n        aVar40 = attr_value.val;\n        if (uVar29 == 0x16) goto LAB_002e31a8;\nLAB_002e2dd0:\n        puVar15 = pattr + -(int)puVar30;\n        puVar28 = puVar15 + (int)this->die_offset_;\n        iVar36 = (uint)(puVar28 < puVar15) + ((int)puVar15 >> 0x1f) + *(int *)&this->die_offset_;\n        attr_value.form = uVar29;\n        if (uVar29 == 0xe) goto LAB_002e31fc;\n        do {\n          attr_value.val.intval._4_4_ = (undefined4)aVar40.intval;\n          attr_value.aux.shndx = 0;\n          attr_value.attr = uVar32;\n          attr_value.form = uVar29;\n          attr_value.val = aVar40;\n          if (0xe < uVar29) {\n            if (uVar29 == 0x15) {\n              if ((char)*pattr < '\0') {\n                aVar39.intval = (*(code *)PTR_read_unsigned_LEB_128_x_004c2980)(pattr + 1,&len);\n                pattr = pattr + len;\n              }\n              else {\n                aVar39.intval._0_7_ = 0;\n                aVar39.intval._7_1_ = *pattr;\n                len = 1;\n                pattr = pattr + 1;\n              }\n              goto joined_r0x002e3998;\n            }\n            if (0x15 < uVar29) {\n              if (uVar29 == 0x19) {\n                attr_value.val.intval._4_4_ = 1;\n                attr_value.val.stringval = (char *)0x0;\n              }\n              else {\n                if (uVar29 < 0x1a) {\n                  if (uVar29 != 0x17) {\n                    if (uVar29 != 0x18) {\n                      return false;\n                    }\n                    goto LAB_002e32bc;\n                  }\n                  pDVar22 = this->dwinfo_;\n                  if (pDVar22->offset_size_ == 4) {\n                    pp_Var16 = (pDVar22->object_->super_Object)._vptr_Object;\n                    p_Var37 = pp_Var16[3];\n                    if (p_Var37 == (_func_int_varargs *)PTR_is_big_endian_004c2950) {\n                      local_30 = puVar28;\n                      iVar36 = (*pp_Var16[0x3a])();\n                    }\n                    else {\n                      local_30 = puVar28;\n                      iVar36 = (*p_Var37)();\n                    }\n                    uVar23 = *(uint *)pattr;\n                    if (iVar36 == 0) {\n                      uVar23 = (((uVar23 >> 0x10) << 0x18 | (uVar23 >> 0x18) << 0x10) >> 0x10) +\n                               ((uVar23 & 0xff) << 8 | uVar23 >> 8 & 0xff) * 0x10000;\n                    }\n                    pattr = pattr + 4;\n                    uVar38 = (ulonglong)uVar23;\n                  }\n                  else {\n                    local_30 = puVar28;\n                    uVar38 = (*local_34)(pDVar22,&pattr);\n                  }\n                  pDVar22 = this->dwinfo_;\n                  goto LAB_002e3970;\n                }\n                if (uVar29 != 0x20) {\n                  if (uVar29 < 0x20) {\n                    return false;\n                  }\n                  if (1 < uVar29 - 0x1f01) {\n                    return false;\n                  }\nLAB_002e34d8:\n                  if ((char)*pattr < '\0') {\n                    aVar40.intval = (*(code *)PTR_read_unsigned_LEB_128_x_004c2980)(pattr + 1,&len);\n                    pattr = pattr + len;\n                  }\n                  else {\n                    aVar40.intval._0_7_ = 0;\n                    aVar40.intval._7_1_ = *pattr;\n                    len = 1;\n                    pattr = pattr + 1;\n                  }\n                  goto LAB_002e382c;\n                }\n                pp_Var16 = (this->dwinfo_->object_->super_Object)._vptr_Object;\n                p_Var37 = pp_Var16[3];\n                if (p_Var37 == (_func_int_varargs *)PTR_is_big_endian_004c2950) {\n                  iVar36 = (*pp_Var16[0x3a])();\n                }\n                else {\n                  iVar36 = (*p_Var37)();\n                }\n                    /* WARNING: Load size is inaccurate */\n                attr_value.val._4_4_ = pattr[4];\n                    /* WARNING: Load size is inaccurate */\n                attr_value.val.blockval = *pattr;\n                if (iVar36 == 0) {\n                  uVar23 = attr_value.val.uintval._4_4_ & 0xff;\n                  uVar26 = (uint)attr_value.val.uintval._4_4_ >> 8;\n                  uVar2 = (uint)attr_value.val.uintval._4_4_ >> 0x10;\n                  uVar4 = (uint)attr_value.val.uintval._4_4_ >> 0x18;\n                  attr_value.val.intval._4_4_ =\n                       ((((uint)attr_value.val.stringval >> 0x10) << 0x18 |\n                        ((uint)attr_value.val.stringval >> 0x18) << 0x10) >> 0x10) +\n                       (((uint)attr_value.val.stringval & 0xff) << 8 |\n                       (uint)attr_value.val.stringval >> 8 & 0xff) * 0x10000;\n                  attr_value.val.stringval =\n                       (char *)(((uVar2 << 0x18 | uVar4 << 0x10) >> 0x10) +\n                               (uVar23 << 8 | uVar26 & 0xff) * 0x10000);\n                }\n                pattr = pattr + 8;\n              }\n              aVar39.stringval = attr_value.val.stringval;\n              aVar39.intval._4_4_ = attr_value.val.intval._4_4_;\n              aVar11.stringval = attr_value.val.stringval;\n              aVar11.intval._4_4_ = attr_value.val.intval._4_4_;\n              aVar7.stringval = attr_value.val.stringval;\n              aVar7.intval._4_4_ = attr_value.val.intval._4_4_;\n              if (uVar32 == 0x6e) goto LAB_002e313c;\n              aVar7 = aVar11;\n              if (uVar32 == 0x2007) goto LAB_002e313c;\n              goto joined_r0x002e3124;\n            }\n            if (uVar29 == 0x11) {\n              puVar15 = pattr + 1;\n              uVar23 = CONCAT31(0,*pattr);\n              aVar39.stringval = (char *)0x0;\n              aVar39.intval._4_4_ = uVar23;\n              aVar12.stringval = (char *)0x0;\n              aVar12.uintval._4_4_ = uVar23;\n              aVar40.stringval = (char *)0x0;\n              aVar40.uintval._4_4_ = uVar23;\n              aVar10.stringval = (char *)0x0;\n              aVar10.uintval._4_4_ = uVar23;\n              aVar7.stringval = (char *)0x0;\n              aVar7.uintval._4_4_ = uVar23;\n              aVar9.stringval = (char *)0x0;\n              aVar9.uintval._4_4_ = uVar23;\n              pattr = puVar15;\n              if (uVar32 == 0x31) goto LAB_002e30bc;\n              if (0x31 < uVar32) {\n                if ((uVar32 != 0x6e) && (aVar40 = aVar12, uVar32 != 0x2007)) {\n                  if (uVar32 != 0x47) goto LAB_002e313c;\n                  *(undefined4 *)&this->specification_ = 0;\n                  *(uint *)((int)&this->specification_ + 4) = uVar23;\n                  aVar7 = aVar10;\n                  goto LAB_002e313c;\n                }\n                goto LAB_002e3858;\n              }\n              if (uVar32 == 1) {\n                *(undefined4 *)&this->sibling_offset_ = 0;\n                *(uint *)((int)&this->sibling_offset_ + 4) = uVar23;\n                aVar7 = aVar9;\n                goto LAB_002e313c;\n              }\n              goto joined_r0x002e3124;\n            }\n            if (uVar29 < 0x12) {\n              if (uVar29 == 0xf) goto LAB_002e34d8;\n              if (uVar29 != 0x10) {\n                return false;\n              }\n              pDVar22 = this->dwinfo_;\n              uVar23 = pDVar22->offset_size_;\n              if (pDVar22->cu_version_ < 3) {\n                uVar23 = pDVar22->address_size_;\n              }\n              if (uVar23 == 4) {\n                pp_Var16 = (pDVar22->object_->super_Object)._vptr_Object;\n                p_Var37 = pp_Var16[3];\n                if (p_Var37 == (_func_int_varargs *)PTR_is_big_endian_004c2950) {\n                  local_30 = puVar28;\n                  iVar36 = (*pp_Var16[0x3a])();\n                }\n                else {\n                  local_30 = puVar28;\n                  iVar36 = (*p_Var37)();\n                }\n                uVar23 = *(uint *)pattr;\n                if (iVar36 == 0) {\n                  uVar23 = (((uVar23 >> 0x10) << 0x18 | (uVar23 >> 0x18) << 0x10) >> 0x10) +\n                           ((uVar23 & 0xff) << 8 | uVar23 >> 8 & 0xff) * 0x10000;\n                }\n                pattr = pattr + 4;\n                uVar38 = (ulonglong)uVar23;\n              }\n              else {\n                local_30 = puVar28;\n                uVar38 = (*local_34)(pDVar22,&pattr);\n              }\n              str_off = uVar38;\n              attr_value.aux.shndx = (*local_3c)(this->dwinfo_);\n              aVar39.refval = str_off;\n            }\n            else {\n              if (uVar29 == 0x13) {\n                pp_Var16 = (this->dwinfo_->object_->super_Object)._vptr_Object;\n                p_Var37 = pp_Var16[3];\n                if (p_Var37 == (_func_int_varargs *)PTR_is_big_endian_004c2950) {\n                  local_30 = puVar28;\n                  iVar36 = (*pp_Var16[0x3a])();\n                }\n                else {\n                  local_30 = puVar28;\n                  iVar36 = (*p_Var37)();\n                }\n                uVar23 = *(uint *)pattr;\n                if (iVar36 == 0) {\n                  uVar23 = (((uVar23 >> 0x10) << 0x18 | (uVar23 >> 0x18) << 0x10) >> 0x10) +\n                           ((uVar23 & 0xff) << 8 | uVar23 >> 8 & 0xff) * 0x10000;\n                }\n                pattr = pattr + 4;\n                pDVar22 = this->dwinfo_;\n                uVar38 = (ulonglong)uVar23;\n              }\n              else {\n                if (uVar29 < 0x14) {\n                  pp_Var16 = (this->dwinfo_->object_->super_Object)._vptr_Object;\n                  p_Var37 = pp_Var16[3];\n                  if (p_Var37 == (_func_int_varargs *)PTR_is_big_endian_004c2950) {\n                    iVar36 = (*pp_Var16[0x3a])();\n                  }\n                  else {\n                    iVar36 = (*p_Var37)();\n                  }\n                  uVar6 = *(ushort *)pattr;\n                  if (iVar36 == 0) {\n                    uVar6 = CONCAT11(pattr[1],*pattr);\n                  }\n                  aVar39.intval._0_6_ = 0;\n                  aVar39.intval._6_2_ = uVar6;\n                  pattr = pattr + 2;\n                  goto joined_r0x002e3998;\n                }\n                pp_Var16 = (this->dwinfo_->object_->super_Object)._vptr_Object;\n                p_Var37 = pp_Var16[3];\n                if (p_Var37 == (_func_int_varargs *)PTR_is_big_endian_004c2950) {\n                  local_30 = puVar28;\n                  iVar36 = (*pp_Var16[0x3a])();\n                }\n                else {\n                  local_30 = puVar28;\n                  iVar36 = (*p_Var37)();\n                }\n                uVar23 = *(uint *)(pattr + 4);\n                uVar26 = *(uint *)pattr;\n                if (iVar36 == 0) {\n                  uVar2 = uVar23 & 0xff;\n                  uVar4 = uVar23 >> 8;\n                  uVar3 = uVar23 >> 0x10;\n                  uVar5 = uVar23 >> 0x18;\n                  uVar23 = (((uVar26 >> 0x10) << 0x18 | (uVar26 >> 0x18) << 0x10) >> 0x10) +\n                           ((uVar26 & 0xff) << 8 | uVar26 >> 8 & 0xff) * 0x10000;\n                  uVar26 = ((uVar3 << 0x18 | uVar5 << 0x10) >> 0x10) +\n                           (uVar2 << 8 | uVar4 & 0xff) * 0x10000;\n                }\n                uVar38 = CONCAT44(uVar26,uVar23);\n                pattr = pattr + 8;\n                pDVar22 = this->dwinfo_;\n              }\nLAB_002e3970:\n              str_off = uVar38;\n              attr_value.aux.shndx = (*local_3c)(pDVar22);\n              aVar39.refval = str_off;\n            }\njoined_r0x002e3998:\n            if (uVar32 == 0x31) {\nLAB_002e30bc:\n              this->abstract_origin_ = (off_t)aVar39;\n              aVar7 = aVar39;\n              goto LAB_002e313c;\n            }\n            if (uVar32 < 0x32) {\n              aVar7 = aVar39;\n              if (uVar32 != 1) goto LAB_002e313c;\nLAB_002e39b4:\n              aVar7 = aVar39;\n              if (attr_value.aux.shndx != 0) goto LAB_002e313c;\n              this->sibling_offset_ = (off_t)aVar39;\n              goto LAB_002e313c;\n            }\n            aVar40 = aVar39;\n            if ((uVar32 != 0x6e) && (uVar32 != 0x2007)) {\nLAB_002e339c:\n              aVar7 = aVar39;\n              if (uVar32 != 0x47) goto LAB_002e313c;\n              this->specification_ = (off_t)aVar39;\n              goto LAB_002e313c;\n            }\n            goto LAB_002e3858;\n          }\n          if (uVar29 == 7) {\n            pp_Var16 = (this->dwinfo_->object_->super_Object)._vptr_Object;\n            p_Var37 = pp_Var16[3];\n            if (p_Var37 == (_func_int_varargs *)PTR_is_big_endian_004c2950) {\n              local_30 = puVar28;\n              iVar17 = (*pp_Var16[0x3a])();\n            }\n            else {\n              local_30 = puVar28;\n              iVar17 = (*p_Var37)();\n            }\n            str_off._4_4_ = *(char **)(pattr + 4);\n            pcVar25 = *(char **)pattr;\n            if (iVar17 == 0) {\n              uVar23 = (uint)str_off._4_4_ & 0xff;\n              uVar26 = (uint)str_off._4_4_ >> 8;\n              uVar2 = (uint)str_off._4_4_ >> 0x10;\n              uVar4 = (uint)str_off._4_4_ >> 0x18;\n              str_off._4_4_ =\n                   (char *)(((((uint)pcVar25 >> 0x10) << 0x18 | ((uint)pcVar25 >> 0x18) << 0x10) >>\n                            0x10) + (((uint)pcVar25 & 0xff) << 8 | (uint)pcVar25 >> 8 & 0xff) *\n                                    0x10000);\n              pcVar25 = (char *)(((uVar2 << 0x18 | uVar4 << 0x10) >> 0x10) +\n                                (uVar23 << 8 | uVar26 & 0xff) * 0x10000);\n            }\n            pattr = pattr + 8;\n            pDVar22 = this->dwinfo_;\n            str_off._0_4_ = pcVar25;\nLAB_002e3708:\n            attr_value.aux.shndx = (*local_3c)(pDVar22,pcVar25,iVar36,local_30,local_40.shndx);\n            attr_value.val._4_4_ = str_off._4_4_;\n            attr_value.val.stringval = str_off._0_4_;\n            goto LAB_002e355c;\n          }\n          if (7 < uVar29) {\n            if (uVar29 == 10) {\n              attr_value.val.stringval = (char *)(pattr + 1);\n              attr_value.aux.shndx._0_3_ = 0;\n              attr_value.aux.shndx._3_1_ = *pattr;\n              pattr = (uchar *)((int)attr_value.val.stringval + attr_value.aux.shndx);\n              goto LAB_002e355c;\n            }\n            if (uVar29 < 0xb) {\n              if (uVar29 != 8) {\n                if (uVar29 != 9) {\n                  return false;\n                }\nLAB_002e32bc:\n                aVar27.shndx._0_3_ = 0;\n                aVar27.shndx._3_1_ = *pattr;\n                puVar15 = pattr + 1;\n                if ((char)*pattr < '\0') {\n                  (*(code *)PTR_read_unsigned_LEB_128_x_004c2980)(puVar15,&len);\n                  puVar15 = pattr + len;\n                  aVar27 = extraout_v1_00;\n                }\n                else {\n                  len = 1;\n                }\n                aVar40.blockval = puVar15;\n                aVar40.intval._4_4_ = attr_value.val.intval._4_4_;\n                attr_value.aux = aVar27;\n                pattr = pattr + aVar27.shndx + len;\n                goto LAB_002e382c;\n              }\n              attr_value.val.blockval = pattr;\n              local_30 = pattr;\n              len = (*(code *)PTR_strlen_004c5b9c)(pattr);\n              aVar40.stringval = attr_value.val.stringval;\n              aVar40.intval._4_4_ = attr_value.val.intval._4_4_;\n              aVar8.stringval = attr_value.val.stringval;\n              aVar8.intval._4_4_ = attr_value.val.intval._4_4_;\n              aVar7.stringval = attr_value.val.stringval;\n              aVar7.intval._4_4_ = attr_value.val.intval._4_4_;\n              pattr = local_30 + len + 1;\n              if (uVar32 == 0x31) goto LAB_002e313c;\n              if (0x31 < uVar32) {\n                if ((uVar32 != 0x6e) && (aVar7 = aVar8, uVar32 != 0x2007)) goto LAB_002e313c;\n                this->linkage_name_ = (char *)local_30;\n                aVar7 = aVar40;\n                goto LAB_002e313c;\n              }\nLAB_002e3118:\n              aVar7 = aVar40;\n              aVar39 = aVar40;\n              if (uVar32 == 1) goto LAB_002e313c;\njoined_r0x002e3124:\n              aVar7 = aVar39;\n              if (uVar32 != 3) goto LAB_002e313c;\n              attr_value.val.stringval = (char *)((ulonglong)aVar39 >> 0x20);\n              if (uVar29 == 8) {\n                this->name_ = attr_value.val.stringval;\n                goto LAB_002e313c;\n              }\n              if (uVar29 != 0xe) goto LAB_002e313c;\n              goto LAB_002e3284;\n            }\n            if (uVar29 < 0xd) {\n              aVar40.intval._0_7_ = 0;\n              aVar40.uintval._7_1_ = *pattr;\n              pattr = pattr + 1;\nLAB_002e382c:\n              aVar7 = aVar40;\n              if (uVar32 == 0x31) goto LAB_002e313c;\n              if (uVar32 < 0x32) goto LAB_002e3118;\n            }\n            else {\n              bVar1 = *pattr;\n              uVar23 = CONCAT31(0,bVar1);\n              puVar15 = pattr + 1;\n              if ((char)bVar1 < '\0') {\n                aVar40.intval = (*(code *)PTR_read_signed_LEB_128_x_004c297c)(puVar15,&len,uVar23);\n                puVar15 = pattr + len;\n              }\n              else {\n                len = 1;\n                aVar40.stringval = (char *)0x0;\n                aVar40.uintval._4_4_ = uVar23;\n                if ((bVar1 & 0x40) != 0) {\n                  aVar40.stringval = (char *)0xffffffff;\n                  aVar40.uintval._4_4_ = uVar23 | 0xffffff80;\n                }\n              }\n              pattr = puVar15;\n              aVar7 = aVar40;\n              if (uVar32 == 0x31) goto LAB_002e313c;\n              if (uVar32 < 0x32) {\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                iVar36 = iVar34;\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_002e314c;\nLAB_002e2f98:\n                iVar34 = iVar34 + 8;\n                attr_value.val = aVar40;\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                          (local_38,__position,&attr_value);\n                pAVar13 = this->abbrev_code_;\n                if (iVar34 == iVar31) goto LAB_002e2fb8;\n                goto LAB_002e2db4;\n              }\n            }\n            if ((uVar32 != 0x6e) && (aVar7 = aVar40, uVar32 != 0x2007)) goto LAB_002e313c;\nLAB_002e3858:\n            attr_value.val._0_4_ = aVar40.stringval;\n            aVar7 = aVar40;\n            if (uVar29 == 8) {\n              this->linkage_name_ = attr_value.val.stringval;\n              goto LAB_002e313c;\n            }\n            if (uVar29 != 0xe) goto LAB_002e313c;\n            goto LAB_002e387c;\n          }\n          if (uVar29 == 4) {\n            pp_Var16 = (this->dwinfo_->object_->super_Object)._vptr_Object;\n            p_Var37 = pp_Var16[3];\n            if (p_Var37 == (_func_int_varargs *)PTR_is_big_endian_004c2950) {\n              iVar36 = (*pp_Var16[0x3a])();\n            }\n            else {\n              iVar36 = (*p_Var37)();\n            }\n            attr_value.aux.shndx = *(uint *)pattr;\n            if (iVar36 == 0) {\n              attr_value.aux.shndx =\n                   (((attr_value.aux.shndx >> 0x10) << 0x18 | (attr_value.aux.shndx >> 0x18) << 0x10\n                    ) >> 0x10) +\n                   ((attr_value.aux.shndx & 0xff) << 8 | attr_value.aux.shndx >> 8 & 0xff) * 0x10000\n              ;\n            }\n            attr_value.val.stringval = (char *)(pattr + 4);\n            pattr = (uchar *)((int)attr_value.val.stringval + attr_value.aux.shndx);\nLAB_002e355c:\n            aVar40.stringval = attr_value.val.stringval;\n            aVar40.intval._4_4_ = attr_value.val.intval._4_4_;\n            aVar7 = aVar40;\n            if (uVar32 == 0x31) goto LAB_002e313c;\n            if (uVar32 < 0x32) goto LAB_002e3118;\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          }\n          else {\n            if (4 < uVar29) {\n              if (uVar29 != 5) {\n                if (uVar29 != 6) {\n                  return false;\n                }\n                pp_Var16 = (this->dwinfo_->object_->super_Object)._vptr_Object;\n                p_Var37 = pp_Var16[3];\n                if (p_Var37 == (_func_int_varargs *)PTR_is_big_endian_004c2950) {\n                  local_30 = puVar28;\n                  iVar17 = (*pp_Var16[0x3a])();\n                }\n                else {\n                  local_30 = puVar28;\n                  iVar17 = (*p_Var37)();\n                }\n                pcVar25 = *(char **)pattr;\n                if (iVar17 == 0) {\n                  pcVar25 = (char *)(((((uint)pcVar25 >> 0x10) << 0x18 |\n                                      ((uint)pcVar25 >> 0x18) << 0x10) >> 0x10) +\n                                    (((uint)pcVar25 & 0xff) << 8 | (uint)pcVar25 >> 8 & 0xff) *\n                                    0x10000);\n                }\n                pattr = pattr + 4;\n                pDVar22 = this->dwinfo_;\n                str_off._0_4_ = (char *)0x0;\n                str_off._4_4_ = pcVar25;\n                goto LAB_002e3708;\n              }\n              pp_Var16 = (this->dwinfo_->object_->super_Object)._vptr_Object;\n              p_Var37 = pp_Var16[3];\n              if (p_Var37 == (_func_int_varargs *)PTR_is_big_endian_004c2950) {\n                iVar36 = (*pp_Var16[0x3a])();\n              }\n              else {\n                iVar36 = (*p_Var37)();\n              }\n              uVar6 = *(ushort *)pattr;\n              if (iVar36 == 0) {\n                uVar6 = CONCAT11(pattr[1],*pattr);\n              }\n              attr_value.val.intval._4_4_ = ZEXT24(uVar6);\n              pattr = pattr + 2;\n              attr_value.val.stringval = (char *)0x0;\n              goto LAB_002e355c;\n            }\n            if (uVar29 != 1) {\n              if (uVar29 != 3) {\n                return false;\n              }\n              pp_Var16 = (this->dwinfo_->object_->super_Object)._vptr_Object;\n              p_Var37 = pp_Var16[3];\n              if (p_Var37 == (_func_int_varargs *)PTR_is_big_endian_004c2950) {\n                iVar36 = (*pp_Var16[0x3a])();\n              }\n              else {\n                iVar36 = (*p_Var37)();\n              }\n              uVar6 = *(ushort *)pattr;\n              if (iVar36 == 0) {\n                uVar6 = CONCAT11(pattr[1],*pattr);\n              }\n              attr_value.aux.shndx._0_2_ = 0;\n              attr_value.aux.shndx._2_2_ = uVar6;\n              attr_value.val.stringval = (char *)(pattr + 2);\n              pattr = (uchar *)((int)attr_value.val.stringval + attr_value.aux.shndx);\n              goto LAB_002e355c;\n            }\n            pDVar22 = this->dwinfo_;\n            if (pDVar22->address_size_ == 4) {\n              pp_Var16 = (pDVar22->object_->super_Object)._vptr_Object;\n              p_Var37 = pp_Var16[3];\n              if (p_Var37 == (_func_int_varargs *)PTR_is_big_endian_004c2950) {\n                local_30 = puVar28;\n                iVar36 = (*pp_Var16[0x3a])();\n              }\n              else {\n                local_30 = puVar28;\n                iVar36 = (*p_Var37)();\n              }\n              uVar23 = *(uint *)pattr;\n              if (iVar36 == 0) {\n                uVar23 = (((uVar23 >> 0x10) << 0x18 | (uVar23 >> 0x18) << 0x10) >> 0x10) +\n                         ((uVar23 & 0xff) << 8 | uVar23 >> 8 & 0xff) * 0x10000;\n              }\n              pattr = pattr + 4;\n              uVar38 = (ulonglong)uVar23;\n            }\n            else {\n              local_30 = puVar28;\n              uVar38 = (*local_34)(pDVar22,&pattr);\n            }\n            str_off = uVar38;\n            attr_value.aux.shndx = (*local_3c)(this->dwinfo_);\n            aVar39.refval = str_off;\n            if (uVar32 == 0x31) goto LAB_002e30bc;\n            if (uVar32 < 0x32) {\n              if (uVar32 != 1) goto joined_r0x002e3124;\n              goto LAB_002e39b4;\n            }\n            aVar7.refval = str_off;\n            if (uVar32 == 0x6e) goto LAB_002e313c;\n            if (uVar32 != 0x2007) goto LAB_002e339c;\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            aVar40.refval = str_off;\n          }\n          while( true ) {\n            iVar36 = iVar34;\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_002e2f98;\nLAB_002e314c:\n            attr_value.val.stringval = (char *)((ulonglong)aVar40 >> 0x20);\n            attr_value.val.intval._4_4_ = (undefined4)aVar40.intval;\n            iVar34 = iVar36 + 8;\n            (__position._M_current)->form = attr_value.form;\n            ((__position._M_current)->val).stringval = attr_value.val.stringval;\n            (__position._M_current)->attr = attr_value.attr;\n            *(undefined4 *)((int)&(__position._M_current)->val + 4) = attr_value.val.intval._4_4_;\n            (__position._M_current)->aux = attr_value.aux;\n            *(undefined4 *)&(__position._M_current)->field_0x14 = attr_value._20_4_;\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            pAVar13 = this->abbrev_code_;\n            attr_value.val = aVar40;\n            if (iVar34 == iVar31) goto LAB_002e2fb8;\n            puVar14 = (uint *)((int)&(pAVar13->attributes).\n                                     super__Vector_base<gold::Dwarf_abbrev_table::Attribute,_std::allocator<gold::Dwarf_abbrev_table::Attribute>_>\n                                     ._M_impl._M_start[1].attr + iVar36);\n            uVar29 = puVar14[1];\n            uVar32 = *puVar14;\n            if (uVar29 != 0x16) goto LAB_002e2dd0;\nLAB_002e31a8:\n            uVar29 = (uint)*pattr;\n            puVar15 = pattr + 1;\n            if ((char)*pattr < '\0') {\n              attr_value.val = aVar40;\n              (*(code *)PTR_read_unsigned_LEB_128_x_004c2980)(puVar15,&len,uVar29);\n              puVar15 = pattr + len;\n              uVar29 = extraout_v1;\n              aVar40 = attr_value.val;\n            }\n            else {\n              len = 1;\n            }\n            puVar18 = puVar15 + -(int)puVar30;\n            puVar28 = puVar18 + (int)this->die_offset_;\n            iVar36 = (uint)(puVar28 < puVar18) + ((int)puVar18 >> 0x1f) + *(int *)&this->die_offset_\n            ;\n            attr_value.form = uVar29;\n            pattr = puVar15;\n            if (uVar29 != 0xe) break;\nLAB_002e31fc:\n            attr_value.aux.shndx = 0;\n            pDVar22 = this->dwinfo_;\n            attr_value.attr = uVar32;\n            local_30 = puVar28;\n            attr_value.val = aVar40;\n            if (pDVar22->offset_size_ == 4) {\n              pp_Var16 = (pDVar22->object_->super_Object)._vptr_Object;\n              p_Var37 = pp_Var16[3];\n              if (p_Var37 == (_func_int_varargs *)PTR_is_big_endian_004c2950) {\n                iVar36 = (*pp_Var16[0x3a])();\n              }\n              else {\n                iVar36 = (*p_Var37)();\n              }\n              uVar29 = *(uint *)pattr;\n              if (iVar36 == 0) {\n                uVar29 = (((uVar29 >> 0x10) << 0x18 | (uVar29 >> 0x18) << 0x10) >> 0x10) +\n                         ((uVar29 & 0xff) << 8 | uVar29 >> 8 & 0xff) * 0x10000;\n              }\n              pattr = pattr + 4;\n              uVar38 = (ulonglong)uVar29;\n            }\n            else {\n              uVar38 = (*local_34)(pDVar22,&pattr);\n            }\n            str_off = uVar38;\n            attr_value.aux.shndx = (*local_3c)(this->dwinfo_);\n            aVar7.refval = str_off;\n            if (uVar32 != 0x31) {\n              if (uVar32 < 0x32) {\n                if ((uVar32 != 1) && (aVar39.refval = str_off, uVar32 == 3)) {\nLAB_002e3284:\n                  this->string_shndx_ = (uint)attr_value.aux;\n                  this->name_off_ = (off_t)aVar39;\n                  aVar7 = aVar39;\n                }\n              }\n              else {\n                aVar40.refval = str_off;\n                if (uVar32 == 0x6e) {\nLAB_002e387c:\n                  this->string_shndx_ = (uint)attr_value.aux;\n                }\n                else {\n                  if (uVar32 != 0x2007) goto LAB_002e313c;\n                  this->string_shndx_ = (uint)attr_value.aux;\n                }\n                this->linkage_name_off_ = (off_t)aVar40;\n                aVar7 = aVar40;\n              }\n            }\nLAB_002e313c:\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            aVar40 = aVar7;\n          }\n        } while( true );\n      }" else (if_statement "if (uVar29 != 0) {\nLAB_002e2d90:\n        local_3c = (code *)PTR_lookup_reloc_004c2994;\n        iVar34 = 0;\n        local_34 = (code *)PTR_read_from_pointer<64>_004c2998;\n        local_40.shndx = (uint)&str_off;\nLAB_002e2db4:\n        puVar14 = (uint *)((int)&((pAVar13->attributes).\n                                  super__Vector_base<gold::Dwarf_abbrev_table::Attribute,_std::allocator<gold::Dwarf_abbrev_table::Attribute>_>\n                                  ._M_impl._M_start)->attr + iVar34);\n        uVar29 = puVar14[1];\n        uVar32 = *puVar14;\n        aVar40 = attr_value.val;\n        if (uVar29 == 0x16) goto LAB_002e31a8;\nLAB_002e2dd0:\n        puVar15 = pattr + -(int)puVar30;\n        puVar28 = puVar15 + (int)this->die_offset_;\n        iVar36 = (uint)(puVar28 < puVar15) + ((int)puVar15 >> 0x1f) + *(int *)&this->die_offset_;\n        attr_value.form = uVar29;\n        if (uVar29 == 0xe) goto LAB_002e31fc;\n        do {\n          attr_value.val.intval._4_4_ = (undefined4)aVar40.intval;\n          attr_value.aux.shndx = 0;\n          attr_value.attr = uVar32;\n          attr_value.form = uVar29;\n          attr_value.val = aVar40;\n          if (0xe < uVar29) {\n            if (uVar29 == 0x15) {\n              if ((char)*pattr < '\0') {\n                aVar39.intval = (*(code *)PTR_read_unsigned_LEB_128_x_004c2980)(pattr + 1,&len);\n                pattr = pattr + len;\n              }\n              else {\n                aVar39.intval._0_7_ = 0;\n                aVar39.intval._7_1_ = *pattr;\n                len = 1;\n                pattr = pattr + 1;\n              }\n              goto joined_r0x002e3998;\n            }\n            if (0x15 < uVar29) {\n              if (uVar29 == 0x19) {\n                attr_value.val.intval._4_4_ = 1;\n                attr_value.val.stringval = (char *)0x0;\n              }\n              else {\n                if (uVar29 < 0x1a) {\n                  if (uVar29 != 0x17) {\n                    if (uVar29 != 0x18) {\n                      return false;\n                    }\n                    goto LAB_002e32bc;\n                  }\n                  pDVar22 = this->dwinfo_;\n                  if (pDVar22->offset_size_ == 4) {\n                    pp_Var16 = (pDVar22->object_->super_Object)._vptr_Object;\n                    p_Var37 = pp_Var16[3];\n                    if (p_Var37 == (_func_int_varargs *)PTR_is_big_endian_004c2950) {\n                      local_30 = puVar28;\n                      iVar36 = (*pp_Var16[0x3a])();\n                    }\n                    else {\n                      local_30 = puVar28;\n                      iVar36 = (*p_Var37)();\n                    }\n                    uVar23 = *(uint *)pattr;\n                    if (iVar36 == 0) {\n                      uVar23 = (((uVar23 >> 0x10) << 0x18 | (uVar23 >> 0x18) << 0x10) >> 0x10) +\n                               ((uVar23 & 0xff) << 8 | uVar23 >> 8 & 0xff) * 0x10000;\n                    }\n                    pattr = pattr + 4;\n                    uVar38 = (ulonglong)uVar23;\n                  }\n                  else {\n                    local_30 = puVar28;\n                    uVar38 = (*local_34)(pDVar22,&pattr);\n                  }\n                  pDVar22 = this->dwinfo_;\n                  goto LAB_002e3970;\n                }\n                if (uVar29 != 0x20) {\n                  if (uVar29 < 0x20) {\n                    return false;\n                  }\n                  if (1 < uVar29 - 0x1f01) {\n                    return false;\n                  }\nLAB_002e34d8:\n                  if ((char)*pattr < '\0') {\n                    aVar40.intval = (*(code *)PTR_read_unsigned_LEB_128_x_004c2980)(pattr + 1,&len);\n                    pattr = pattr + len;\n                  }\n                  else {\n                    aVar40.intval._0_7_ = 0;\n                    aVar40.intval._7_1_ = *pattr;\n                    len = 1;\n                    pattr = pattr + 1;\n                  }\n                  goto LAB_002e382c;\n                }\n                pp_Var16 = (this->dwinfo_->object_->super_Object)._vptr_Object;\n                p_Var37 = pp_Var16[3];\n                if (p_Var37 == (_func_int_varargs *)PTR_is_big_endian_004c2950) {\n                  iVar36 = (*pp_Var16[0x3a])();\n                }\n                else {\n                  iVar36 = (*p_Var37)();\n                }\n                    /* WARNING: Load size is inaccurate */\n                attr_value.val._4_4_ = pattr[4];\n                    /* WARNING: Load size is inaccurate */\n                attr_value.val.blockval = *pattr;\n                if (iVar36 == 0) {\n                  uVar23 = attr_value.val.uintval._4_4_ & 0xff;\n                  uVar26 = (uint)attr_value.val.uintval._4_4_ >> 8;\n                  uVar2 = (uint)attr_value.val.uintval._4_4_ >> 0x10;\n                  uVar4 = (uint)attr_value.val.uintval._4_4_ >> 0x18;\n                  attr_value.val.intval._4_4_ =\n                       ((((uint)attr_value.val.stringval >> 0x10) << 0x18 |\n                        ((uint)attr_value.val.stringval >> 0x18) << 0x10) >> 0x10) +\n                       (((uint)attr_value.val.stringval & 0xff) << 8 |\n                       (uint)attr_value.val.stringval >> 8 & 0xff) * 0x10000;\n                  attr_value.val.stringval =\n                       (char *)(((uVar2 << 0x18 | uVar4 << 0x10) >> 0x10) +\n                               (uVar23 << 8 | uVar26 & 0xff) * 0x10000);\n                }\n                pattr = pattr + 8;\n              }\n              aVar39.stringval = attr_value.val.stringval;\n              aVar39.intval._4_4_ = attr_value.val.intval._4_4_;\n              aVar11.stringval = attr_value.val.stringval;\n              aVar11.intval._4_4_ = attr_value.val.intval._4_4_;\n              aVar7.stringval = attr_value.val.stringval;\n              aVar7.intval._4_4_ = attr_value.val.intval._4_4_;\n              if (uVar32 == 0x6e) goto LAB_002e313c;\n              aVar7 = aVar11;\n              if (uVar32 == 0x2007) goto LAB_002e313c;\n              goto joined_r0x002e3124;\n            }\n            if (uVar29 == 0x11) {\n              puVar15 = pattr + 1;\n              uVar23 = CONCAT31(0,*pattr);\n              aVar39.stringval = (char *)0x0;\n              aVar39.intval._4_4_ = uVar23;\n              aVar12.stringval = (char *)0x0;\n              aVar12.uintval._4_4_ = uVar23;\n              aVar40.stringval = (char *)0x0;\n              aVar40.uintval._4_4_ = uVar23;\n              aVar10.stringval = (char *)0x0;\n              aVar10.uintval._4_4_ = uVar23;\n              aVar7.stringval = (char *)0x0;\n              aVar7.uintval._4_4_ = uVar23;\n              aVar9.stringval = (char *)0x0;\n              aVar9.uintval._4_4_ = uVar23;\n              pattr = puVar15;\n              if (uVar32 == 0x31) goto LAB_002e30bc;\n              if (0x31 < uVar32) {\n                if ((uVar32 != 0x6e) && (aVar40 = aVar12, uVar32 != 0x2007)) {\n                  if (uVar32 != 0x47) goto LAB_002e313c;\n                  *(undefined4 *)&this->specification_ = 0;\n                  *(uint *)((int)&this->specification_ + 4) = uVar23;\n                  aVar7 = aVar10;\n                  goto LAB_002e313c;\n                }\n                goto LAB_002e3858;\n              }\n              if (uVar32 == 1) {\n                *(undefined4 *)&this->sibling_offset_ = 0;\n                *(uint *)((int)&this->sibling_offset_ + 4) = uVar23;\n                aVar7 = aVar9;\n                goto LAB_002e313c;\n              }\n              goto joined_r0x002e3124;\n            }\n            if (uVar29 < 0x12) {\n              if (uVar29 == 0xf) goto LAB_002e34d8;\n              if (uVar29 != 0x10) {\n                return false;\n              }\n              pDVar22 = this->dwinfo_;\n              uVar23 = pDVar22->offset_size_;\n              if (pDVar22->cu_version_ < 3) {\n                uVar23 = pDVar22->address_size_;\n              }\n              if (uVar23 == 4) {\n                pp_Var16 = (pDVar22->object_->super_Object)._vptr_Object;\n                p_Var37 = pp_Var16[3];\n                if (p_Var37 == (_func_int_varargs *)PTR_is_big_endian_004c2950) {\n                  local_30 = puVar28;\n                  iVar36 = (*pp_Var16[0x3a])();\n                }\n                else {\n                  local_30 = puVar28;\n                  iVar36 = (*p_Var37)();\n                }\n                uVar23 = *(uint *)pattr;\n                if (iVar36 == 0) {\n                  uVar23 = (((uVar23 >> 0x10) << 0x18 | (uVar23 >> 0x18) << 0x10) >> 0x10) +\n                           ((uVar23 & 0xff) << 8 | uVar23 >> 8 & 0xff) * 0x10000;\n                }\n                pattr = pattr + 4;\n                uVar38 = (ulonglong)uVar23;\n              }\n              else {\n                local_30 = puVar28;\n                uVar38 = (*local_34)(pDVar22,&pattr);\n              }\n              str_off = uVar38;\n              attr_value.aux.shndx = (*local_3c)(this->dwinfo_);\n              aVar39.refval = str_off;\n            }\n            else {\n              if (uVar29 == 0x13) {\n                pp_Var16 = (this->dwinfo_->object_->super_Object)._vptr_Object;\n                p_Var37 = pp_Var16[3];\n                if (p_Var37 == (_func_int_varargs *)PTR_is_big_endian_004c2950) {\n                  local_30 = puVar28;\n                  iVar36 = (*pp_Var16[0x3a])();\n                }\n                else {\n                  local_30 = puVar28;\n                  iVar36 = (*p_Var37)();\n                }\n                uVar23 = *(uint *)pattr;\n                if (iVar36 == 0) {\n                  uVar23 = (((uVar23 >> 0x10) << 0x18 | (uVar23 >> 0x18) << 0x10) >> 0x10) +\n                           ((uVar23 & 0xff) << 8 | uVar23 >> 8 & 0xff) * 0x10000;\n                }\n                pattr = pattr + 4;\n                pDVar22 = this->dwinfo_;\n                uVar38 = (ulonglong)uVar23;\n              }\n              else {\n                if (uVar29 < 0x14) {\n                  pp_Var16 = (this->dwinfo_->object_->super_Object)._vptr_Object;\n                  p_Var37 = pp_Var16[3];\n                  if (p_Var37 == (_func_int_varargs *)PTR_is_big_endian_004c2950) {\n                    iVar36 = (*pp_Var16[0x3a])();\n                  }\n                  else {\n                    iVar36 = (*p_Var37)();\n                  }\n                  uVar6 = *(ushort *)pattr;\n                  if (iVar36 == 0) {\n                    uVar6 = CONCAT11(pattr[1],*pattr);\n                  }\n                  aVar39.intval._0_6_ = 0;\n                  aVar39.intval._6_2_ = uVar6;\n                  pattr = pattr + 2;\n                  goto joined_r0x002e3998;\n                }\n                pp_Var16 = (this->dwinfo_->object_->super_Object)._vptr_Object;\n                p_Var37 = pp_Var16[3];\n                if (p_Var37 == (_func_int_varargs *)PTR_is_big_endian_004c2950) {\n                  local_30 = puVar28;\n                  iVar36 = (*pp_Var16[0x3a])();\n                }\n                else {\n                  local_30 = puVar28;\n                  iVar36 = (*p_Var37)();\n                }\n                uVar23 = *(uint *)(pattr + 4);\n                uVar26 = *(uint *)pattr;\n                if (iVar36 == 0) {\n                  uVar2 = uVar23 & 0xff;\n                  uVar4 = uVar23 >> 8;\n                  uVar3 = uVar23 >> 0x10;\n                  uVar5 = uVar23 >> 0x18;\n                  uVar23 = (((uVar26 >> 0x10) << 0x18 | (uVar26 >> 0x18) << 0x10) >> 0x10) +\n                           ((uVar26 & 0xff) << 8 | uVar26 >> 8 & 0xff) * 0x10000;\n                  uVar26 = ((uVar3 << 0x18 | uVar5 << 0x10) >> 0x10) +\n                           (uVar2 << 8 | uVar4 & 0xff) * 0x10000;\n                }\n                uVar38 = CONCAT44(uVar26,uVar23);\n                pattr = pattr + 8;\n                pDVar22 = this->dwinfo_;\n              }\nLAB_002e3970:\n              str_off = uVar38;\n              attr_value.aux.shndx = (*local_3c)(pDVar22);\n              aVar39.refval = str_off;\n            }\njoined_r0x002e3998:\n            if (uVar32 == 0x31) {\nLAB_002e30bc:\n              this->abstract_origin_ = (off_t)aVar39;\n              aVar7 = aVar39;\n              goto LAB_002e313c;\n            }\n            if (uVar32 < 0x32) {\n              aVar7 = aVar39;\n              if (uVar32 != 1) goto LAB_002e313c;\nLAB_002e39b4:\n              aVar7 = aVar39;\n              if (attr_value.aux.shndx != 0) goto LAB_002e313c;\n              this->sibling_offset_ = (off_t)aVar39;\n              goto LAB_002e313c;\n            }\n            aVar40 = aVar39;\n            if ((uVar32 != 0x6e) && (uVar32 != 0x2007)) {\nLAB_002e339c:\n              aVar7 = aVar39;\n              if (uVar32 != 0x47) goto LAB_002e313c;\n              this->specification_ = (off_t)aVar39;\n              goto LAB_002e313c;\n            }\n            goto LAB_002e3858;\n          }\n          if (uVar29 == 7) {\n            pp_Var16 = (this->dwinfo_->object_->super_Object)._vptr_Object;\n            p_Var37 = pp_Var16[3];\n            if (p_Var37 == (_func_int_varargs *)PTR_is_big_endian_004c2950) {\n              local_30 = puVar28;\n              iVar17 = (*pp_Var16[0x3a])();\n            }\n            else {\n              local_30 = puVar28;\n              iVar17 = (*p_Var37)();\n            }\n            str_off._4_4_ = *(char **)(pattr + 4);\n            pcVar25 = *(char **)pattr;\n            if (iVar17 == 0) {\n              uVar23 = (uint)str_off._4_4_ & 0xff;\n              uVar26 = (uint)str_off._4_4_ >> 8;\n              uVar2 = (uint)str_off._4_4_ >> 0x10;\n              uVar4 = (uint)str_off._4_4_ >> 0x18;\n              str_off._4_4_ =\n                   (char *)(((((uint)pcVar25 >> 0x10) << 0x18 | ((uint)pcVar25 >> 0x18) << 0x10) >>\n                            0x10) + (((uint)pcVar25 & 0xff) << 8 | (uint)pcVar25 >> 8 & 0xff) *\n                                    0x10000);\n              pcVar25 = (char *)(((uVar2 << 0x18 | uVar4 << 0x10) >> 0x10) +\n                                (uVar23 << 8 | uVar26 & 0xff) * 0x10000);\n            }\n            pattr = pattr + 8;\n            pDVar22 = this->dwinfo_;\n            str_off._0_4_ = pcVar25;\nLAB_002e3708:\n            attr_value.aux.shndx = (*local_3c)(pDVar22,pcVar25,iVar36,local_30,local_40.shndx);\n            attr_value.val._4_4_ = str_off._4_4_;\n            attr_value.val.stringval = str_off._0_4_;\n            goto LAB_002e355c;\n          }\n          if (7 < uVar29) {\n            if (uVar29 == 10) {\n              attr_value.val.stringval = (char *)(pattr + 1);\n              attr_value.aux.shndx._0_3_ = 0;\n              attr_value.aux.shndx._3_1_ = *pattr;\n              pattr = (uchar *)((int)attr_value.val.stringval + attr_value.aux.shndx);\n              goto LAB_002e355c;\n            }\n            if (uVar29 < 0xb) {\n              if (uVar29 != 8) {\n                if (uVar29 != 9) {\n                  return false;\n                }\nLAB_002e32bc:\n                aVar27.shndx._0_3_ = 0;\n                aVar27.shndx._3_1_ = *pattr;\n                puVar15 = pattr + 1;\n                if ((char)*pattr < '\0') {\n                  (*(code *)PTR_read_unsigned_LEB_128_x_004c2980)(puVar15,&len);\n                  puVar15 = pattr + len;\n                  aVar27 = extraout_v1_00;\n                }\n                else {\n                  len = 1;\n                }\n                aVar40.blockval = puVar15;\n                aVar40.intval._4_4_ = attr_value.val.intval._4_4_;\n                attr_value.aux = aVar27;\n                pattr = pattr + aVar27.shndx + len;\n                goto LAB_002e382c;\n              }\n              attr_value.val.blockval = pattr;\n              local_30 = pattr;\n              len = (*(code *)PTR_strlen_004c5b9c)(pattr);\n              aVar40.stringval = attr_value.val.stringval;\n              aVar40.intval._4_4_ = attr_value.val.intval._4_4_;\n              aVar8.stringval = attr_value.val.stringval;\n              aVar8.intval._4_4_ = attr_value.val.intval._4_4_;\n              aVar7.stringval = attr_value.val.stringval;\n              aVar7.intval._4_4_ = attr_value.val.intval._4_4_;\n              pattr = local_30 + len + 1;\n              if (uVar32 == 0x31) goto LAB_002e313c;\n              if (0x31 < uVar32) {\n                if ((uVar32 != 0x6e) && (aVar7 = aVar8, uVar32 != 0x2007)) goto LAB_002e313c;\n                this->linkage_name_ = (char *)local_30;\n                aVar7 = aVar40;\n                goto LAB_002e313c;\n              }\nLAB_002e3118:\n              aVar7 = aVar40;\n              aVar39 = aVar40;\n              if (uVar32 == 1) goto LAB_002e313c;\njoined_r0x002e3124:\n              aVar7 = aVar39;\n              if (uVar32 != 3) goto LAB_002e313c;\n              attr_value.val.stringval = (char *)((ulonglong)aVar39 >> 0x20);\n              if (uVar29 == 8) {\n                this->name_ = attr_value.val.stringval;\n                goto LAB_002e313c;\n              }\n              if (uVar29 != 0xe) goto LAB_002e313c;\n              goto LAB_002e3284;\n            }\n            if (uVar29 < 0xd) {\n              aVar40.intval._0_7_ = 0;\n              aVar40.uintval._7_1_ = *pattr;\n              pattr = pattr + 1;\nLAB_002e382c:\n              aVar7 = aVar40;\n              if (uVar32 == 0x31) goto LAB_002e313c;\n              if (uVar32 < 0x32) goto LAB_002e3118;\n            }\n            else {\n              bVar1 = *pattr;\n              uVar23 = CONCAT31(0,bVar1);\n              puVar15 = pattr + 1;\n              if ((char)bVar1 < '\0') {\n                aVar40.intval = (*(code *)PTR_read_signed_LEB_128_x_004c297c)(puVar15,&len,uVar23);\n                puVar15 = pattr + len;\n              }\n              else {\n                len = 1;\n                aVar40.stringval = (char *)0x0;\n                aVar40.uintval._4_4_ = uVar23;\n                if ((bVar1 & 0x40) != 0) {\n                  aVar40.stringval = (char *)0xffffffff;\n                  aVar40.uintval._4_4_ = uVar23 | 0xffffff80;\n                }\n              }\n              pattr = puVar15;\n              aVar7 = aVar40;\n              if (uVar32 == 0x31) goto LAB_002e313c;\n              if (uVar32 < 0x32) {\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                iVar36 = iVar34;\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_002e314c;\nLAB_002e2f98:\n                iVar34 = iVar34 + 8;\n                attr_value.val = aVar40;\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                          (local_38,__position,&attr_value);\n                pAVar13 = this->abbrev_code_;\n                if (iVar34 == iVar31) goto LAB_002e2fb8;\n                goto LAB_002e2db4;\n              }\n            }\n            if ((uVar32 != 0x6e) && (aVar7 = aVar40, uVar32 != 0x2007)) goto LAB_002e313c;\nLAB_002e3858:\n            attr_value.val._0_4_ = aVar40.stringval;\n            aVar7 = aVar40;\n            if (uVar29 == 8) {\n              this->linkage_name_ = attr_value.val.stringval;\n              goto LAB_002e313c;\n            }\n            if (uVar29 != 0xe) goto LAB_002e313c;\n            goto LAB_002e387c;\n          }\n          if (uVar29 == 4) {\n            pp_Var16 = (this->dwinfo_->object_->super_Object)._vptr_Object;\n            p_Var37 = pp_Var16[3];\n            if (p_Var37 == (_func_int_varargs *)PTR_is_big_endian_004c2950) {\n              iVar36 = (*pp_Var16[0x3a])();\n            }\n            else {\n              iVar36 = (*p_Var37)();\n            }\n            attr_value.aux.shndx = *(uint *)pattr;\n            if (iVar36 == 0) {\n              attr_value.aux.shndx =\n                   (((attr_value.aux.shndx >> 0x10) << 0x18 | (attr_value.aux.shndx >> 0x18) << 0x10\n                    ) >> 0x10) +\n                   ((attr_value.aux.shndx & 0xff) << 8 | attr_value.aux.shndx >> 8 & 0xff) * 0x10000\n              ;\n            }\n            attr_value.val.stringval = (char *)(pattr + 4);\n            pattr = (uchar *)((int)attr_value.val.stringval + attr_value.aux.shndx);\nLAB_002e355c:\n            aVar40.stringval = attr_value.val.stringval;\n            aVar40.intval._4_4_ = attr_value.val.intval._4_4_;\n            aVar7 = aVar40;\n            if (uVar32 == 0x31) goto LAB_002e313c;\n            if (uVar32 < 0x32) goto LAB_002e3118;\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          }\n          else {\n            if (4 < uVar29) {\n              if (uVar29 != 5) {\n                if (uVar29 != 6) {\n                  return false;\n                }\n                pp_Var16 = (this->dwinfo_->object_->super_Object)._vptr_Object;\n                p_Var37 = pp_Var16[3];\n                if (p_Var37 == (_func_int_varargs *)PTR_is_big_endian_004c2950) {\n                  local_30 = puVar28;\n                  iVar17 = (*pp_Var16[0x3a])();\n                }\n                else {\n                  local_30 = puVar28;\n                  iVar17 = (*p_Var37)();\n                }\n                pcVar25 = *(char **)pattr;\n                if (iVar17 == 0) {\n                  pcVar25 = (char *)(((((uint)pcVar25 >> 0x10) << 0x18 |\n                                      ((uint)pcVar25 >> 0x18) << 0x10) >> 0x10) +\n                                    (((uint)pcVar25 & 0xff) << 8 | (uint)pcVar25 >> 8 & 0xff) *\n                                    0x10000);\n                }\n                pattr = pattr + 4;\n                pDVar22 = this->dwinfo_;\n                str_off._0_4_ = (char *)0x0;\n                str_off._4_4_ = pcVar25;\n                goto LAB_002e3708;\n              }\n              pp_Var16 = (this->dwinfo_->object_->super_Object)._vptr_Object;\n              p_Var37 = pp_Var16[3];\n              if (p_Var37 == (_func_int_varargs *)PTR_is_big_endian_004c2950) {\n                iVar36 = (*pp_Var16[0x3a])();\n              }\n              else {\n                iVar36 = (*p_Var37)();\n              }\n              uVar6 = *(ushort *)pattr;\n              if (iVar36 == 0) {\n                uVar6 = CONCAT11(pattr[1],*pattr);\n              }\n              attr_value.val.intval._4_4_ = ZEXT24(uVar6);\n              pattr = pattr + 2;\n              attr_value.val.stringval = (char *)0x0;\n              goto LAB_002e355c;\n            }\n            if (uVar29 != 1) {\n              if (uVar29 != 3) {\n                return false;\n              }\n              pp_Var16 = (this->dwinfo_->object_->super_Object)._vptr_Object;\n              p_Var37 = pp_Var16[3];\n              if (p_Var37 == (_func_int_varargs *)PTR_is_big_endian_004c2950) {\n                iVar36 = (*pp_Var16[0x3a])();\n              }\n              else {\n                iVar36 = (*p_Var37)();\n              }\n              uVar6 = *(ushort *)pattr;\n              if (iVar36 == 0) {\n                uVar6 = CONCAT11(pattr[1],*pattr);\n              }\n              attr_value.aux.shndx._0_2_ = 0;\n              attr_value.aux.shndx._2_2_ = uVar6;\n              attr_value.val.stringval = (char *)(pattr + 2);\n              pattr = (uchar *)((int)attr_value.val.stringval + attr_value.aux.shndx);\n              goto LAB_002e355c;\n            }\n            pDVar22 = this->dwinfo_;\n            if (pDVar22->address_size_ == 4) {\n              pp_Var16 = (pDVar22->object_->super_Object)._vptr_Object;\n              p_Var37 = pp_Var16[3];\n              if (p_Var37 == (_func_int_varargs *)PTR_is_big_endian_004c2950) {\n                local_30 = puVar28;\n                iVar36 = (*pp_Var16[0x3a])();\n              }\n              else {\n                local_30 = puVar28;\n                iVar36 = (*p_Var37)();\n              }\n              uVar23 = *(uint *)pattr;\n              if (iVar36 == 0) {\n                uVar23 = (((uVar23 >> 0x10) << 0x18 | (uVar23 >> 0x18) << 0x10) >> 0x10) +\n                         ((uVar23 & 0xff) << 8 | uVar23 >> 8 & 0xff) * 0x10000;\n              }\n              pattr = pattr + 4;\n              uVar38 = (ulonglong)uVar23;\n            }\n            else {\n              local_30 = puVar28;\n              uVar38 = (*local_34)(pDVar22,&pattr);\n            }\n            str_off = uVar38;\n            attr_value.aux.shndx = (*local_3c)(this->dwinfo_);\n            aVar39.refval = str_off;\n            if (uVar32 == 0x31) goto LAB_002e30bc;\n            if (uVar32 < 0x32) {\n              if (uVar32 != 1) goto joined_r0x002e3124;\n              goto LAB_002e39b4;\n            }\n            aVar7.refval = str_off;\n            if (uVar32 == 0x6e) goto LAB_002e313c;\n            if (uVar32 != 0x2007) goto LAB_002e339c;\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            aVar40.refval = str_off;\n          }\n          while( true ) {\n            iVar36 = iVar34;\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_002e2f98;\nLAB_002e314c:\n            attr_value.val.stringval = (char *)((ulonglong)aVar40 >> 0x20);\n            attr_value.val.intval._4_4_ = (undefined4)aVar40.intval;\n            iVar34 = iVar36 + 8;\n            (__position._M_current)->form = attr_value.form;\n            ((__position._M_current)->val).stringval = attr_value.val.stringval;\n            (__position._M_current)->attr = attr_value.attr;\n            *(undefined4 *)((int)&(__position._M_current)->val + 4) = attr_value.val.intval._4_4_;\n            (__position._M_current)->aux = attr_value.aux;\n            *(undefined4 *)&(__position._M_current)->field_0x14 = attr_value._20_4_;\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            pAVar13 = this->abbrev_code_;\n            attr_value.val = aVar40;\n            if (iVar34 == iVar31) goto LAB_002e2fb8;\n            puVar14 = (uint *)((int)&(pAVar13->attributes).\n                                     super__Vector_base<gold::Dwarf_abbrev_table::Attribute,_std::allocator<gold::Dwarf_abbrev_table::Attribute>_>\n                                     ._M_impl._M_start[1].attr + iVar36);\n            uVar29 = puVar14[1];\n            uVar32 = *puVar14;\n            if (uVar29 != 0x16) goto LAB_002e2dd0;\nLAB_002e31a8:\n            uVar29 = (uint)*pattr;\n            puVar15 = pattr + 1;\n            if ((char)*pattr < '\0') {\n              attr_value.val = aVar40;\n              (*(code *)PTR_read_unsigned_LEB_128_x_004c2980)(puVar15,&len,uVar29);\n              puVar15 = pattr + len;\n              uVar29 = extraout_v1;\n              aVar40 = attr_value.val;\n            }\n            else {\n              len = 1;\n            }\n            puVar18 = puVar15 + -(int)puVar30;\n            puVar28 = puVar18 + (int)this->die_offset_;\n            iVar36 = (uint)(puVar28 < puVar18) + ((int)puVar18 >> 0x1f) + *(int *)&this->die_offset_\n            ;\n            attr_value.form = uVar29;\n            pattr = puVar15;\n            if (uVar29 != 0xe) break;\nLAB_002e31fc:\n            attr_value.aux.shndx = 0;\n            pDVar22 = this->dwinfo_;\n            attr_value.attr = uVar32;\n            local_30 = puVar28;\n            attr_value.val = aVar40;\n            if (pDVar22->offset_size_ == 4) {\n              pp_Var16 = (pDVar22->object_->super_Object)._vptr_Object;\n              p_Var37 = pp_Var16[3];\n              if (p_Var37 == (_func_int_varargs *)PTR_is_big_endian_004c2950) {\n                iVar36 = (*pp_Var16[0x3a])();\n              }\n              else {\n                iVar36 = (*p_Var37)();\n              }\n              uVar29 = *(uint *)pattr;\n              if (iVar36 == 0) {\n                uVar29 = (((uVar29 >> 0x10) << 0x18 | (uVar29 >> 0x18) << 0x10) >> 0x10) +\n                         ((uVar29 & 0xff) << 8 | uVar29 >> 8 & 0xff) * 0x10000;\n              }\n              pattr = pattr + 4;\n              uVar38 = (ulonglong)uVar29;\n            }\n            else {\n              uVar38 = (*local_34)(pDVar22,&pattr);\n            }\n            str_off = uVar38;\n            attr_value.aux.shndx = (*local_3c)(this->dwinfo_);\n            aVar7.refval = str_off;\n            if (uVar32 != 0x31) {\n              if (uVar32 < 0x32) {\n                if ((uVar32 != 1) && (aVar39.refval = str_off, uVar32 == 3)) {\nLAB_002e3284:\n                  this->string_shndx_ = (uint)attr_value.aux;\n                  this->name_off_ = (off_t)aVar39;\n                  aVar7 = aVar39;\n                }\n              }\n              else {\n                aVar40.refval = str_off;\n                if (uVar32 == 0x6e) {\nLAB_002e387c:\n                  this->string_shndx_ = (uint)attr_value.aux;\n                }\n                else {\n                  if (uVar32 != 0x2007) goto LAB_002e313c;\n                  this->string_shndx_ = (uint)attr_value.aux;\n                }\n                this->linkage_name_off_ = (off_t)aVar40;\n                aVar7 = aVar40;\n              }\n            }\nLAB_002e313c:\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            aVar40 = aVar7;\n          }\n        } while( true );\n      }" if (parenthesized_expression "(uVar29 != 0)" ( (binary_expression "uVar29 != 0" identifier != number_literal) )) (compound_statement "{\nLAB_002e2d90:\n        local_3c = (code *)PTR_lookup_reloc_004c2994;\n        iVar34 = 0;\n        local_34 = (code *)PTR_read_from_pointer<64>_004c2998;\n        local_40.shndx = (uint)&str_off;\nLAB_002e2db4:\n        puVar14 = (uint *)((int)&((pAVar13->attributes).\n                                  super__Vector_base<gold::Dwarf_abbrev_table::Attribute,_std::allocator<gold::Dwarf_abbrev_table::Attribute>_>\n                                  ._M_impl._M_start)->attr + iVar34);\n        uVar29 = puVar14[1];\n        uVar32 = *puVar14;\n        aVar40 = attr_value.val;\n        if (uVar29 == 0x16) goto LAB_002e31a8;\nLAB_002e2dd0:\n        puVar15 = pattr + -(int)puVar30;\n        puVar28 = puVar15 + (int)this->die_offset_;\n        iVar36 = (uint)(puVar28 < puVar15) + ((int)puVar15 >> 0x1f) + *(int *)&this->die_offset_;\n        attr_value.form = uVar29;\n        if (uVar29 == 0xe) goto LAB_002e31fc;\n        do {\n          attr_value.val.intval._4_4_ = (undefined4)aVar40.intval;\n          attr_value.aux.shndx = 0;\n          attr_value.attr = uVar32;\n          attr_value.form = uVar29;\n          attr_value.val = aVar40;\n          if (0xe < uVar29) {\n            if (uVar29 == 0x15) {\n              if ((char)*pattr < '\0') {\n                aVar39.intval = (*(code *)PTR_read_unsigned_LEB_128_x_004c2980)(pattr + 1,&len);\n                pattr = pattr + len;\n              }\n              else {\n                aVar39.intval._0_7_ = 0;\n                aVar39.intval._7_1_ = *pattr;\n                len = 1;\n                pattr = pattr + 1;\n              }\n              goto joined_r0x002e3998;\n            }\n            if (0x15 < uVar29) {\n              if (uVar29 == 0x19) {\n                attr_value.val.intval._4_4_ = 1;\n                attr_value.val.stringval = (char *)0x0;\n              }\n              else {\n                if (uVar29 < 0x1a) {\n                  if (uVar29 != 0x17) {\n                    if (uVar29 != 0x18) {\n                      return false;\n                    }\n                    goto LAB_002e32bc;\n                  }\n                  pDVar22 = this->dwinfo_;\n                  if (pDVar22->offset_size_ == 4) {\n                    pp_Var16 = (pDVar22->object_->super_Object)._vptr_Object;\n                    p_Var37 = pp_Var16[3];\n                    if (p_Var37 == (_func_int_varargs *)PTR_is_big_endian_004c2950) {\n                      local_30 = puVar28;\n                      iVar36 = (*pp_Var16[0x3a])();\n                    }\n                    else {\n                      local_30 = puVar28;\n                      iVar36 = (*p_Var37)();\n                    }\n                    uVar23 = *(uint *)pattr;\n                    if (iVar36 == 0) {\n                      uVar23 = (((uVar23 >> 0x10) << 0x18 | (uVar23 >> 0x18) << 0x10) >> 0x10) +\n                               ((uVar23 & 0xff) << 8 | uVar23 >> 8 & 0xff) * 0x10000;\n                    }\n                    pattr = pattr + 4;\n                    uVar38 = (ulonglong)uVar23;\n                  }\n                  else {\n                    local_30 = puVar28;\n                    uVar38 = (*local_34)(pDVar22,&pattr);\n                  }\n                  pDVar22 = this->dwinfo_;\n                  goto LAB_002e3970;\n                }\n                if (uVar29 != 0x20) {\n                  if (uVar29 < 0x20) {\n                    return false;\n                  }\n                  if (1 < uVar29 - 0x1f01) {\n                    return false;\n                  }\nLAB_002e34d8:\n                  if ((char)*pattr < '\0') {\n                    aVar40.intval = (*(code *)PTR_read_unsigned_LEB_128_x_004c2980)(pattr + 1,&len);\n                    pattr = pattr + len;\n                  }\n                  else {\n                    aVar40.intval._0_7_ = 0;\n                    aVar40.intval._7_1_ = *pattr;\n                    len = 1;\n                    pattr = pattr + 1;\n                  }\n                  goto LAB_002e382c;\n                }\n                pp_Var16 = (this->dwinfo_->object_->super_Object)._vptr_Object;\n                p_Var37 = pp_Var16[3];\n                if (p_Var37 == (_func_int_varargs *)PTR_is_big_endian_004c2950) {\n                  iVar36 = (*pp_Var16[0x3a])();\n                }\n                else {\n                  iVar36 = (*p_Var37)();\n                }\n                    /* WARNING: Load size is inaccurate */\n                attr_value.val._4_4_ = pattr[4];\n                    /* WARNING: Load size is inaccurate */\n                attr_value.val.blockval = *pattr;\n                if (iVar36 == 0) {\n                  uVar23 = attr_value.val.uintval._4_4_ & 0xff;\n                  uVar26 = (uint)attr_value.val.uintval._4_4_ >> 8;\n                  uVar2 = (uint)attr_value.val.uintval._4_4_ >> 0x10;\n                  uVar4 = (uint)attr_value.val.uintval._4_4_ >> 0x18;\n                  attr_value.val.intval._4_4_ =\n                       ((((uint)attr_value.val.stringval >> 0x10) << 0x18 |\n                        ((uint)attr_value.val.stringval >> 0x18) << 0x10) >> 0x10) +\n                       (((uint)attr_value.val.stringval & 0xff) << 8 |\n                       (uint)attr_value.val.stringval >> 8 & 0xff) * 0x10000;\n                  attr_value.val.stringval =\n                       (char *)(((uVar2 << 0x18 | uVar4 << 0x10) >> 0x10) +\n                               (uVar23 << 8 | uVar26 & 0xff) * 0x10000);\n                }\n                pattr = pattr + 8;\n              }\n              aVar39.stringval = attr_value.val.stringval;\n              aVar39.intval._4_4_ = attr_value.val.intval._4_4_;\n              aVar11.stringval = attr_value.val.stringval;\n              aVar11.intval._4_4_ = attr_value.val.intval._4_4_;\n              aVar7.stringval = attr_value.val.stringval;\n              aVar7.intval._4_4_ = attr_value.val.intval._4_4_;\n              if (uVar32 == 0x6e) goto LAB_002e313c;\n              aVar7 = aVar11;\n              if (uVar32 == 0x2007) goto LAB_002e313c;\n              goto joined_r0x002e3124;\n            }\n            if (uVar29 == 0x11) {\n              puVar15 = pattr + 1;\n              uVar23 = CONCAT31(0,*pattr);\n              aVar39.stringval = (char *)0x0;\n              aVar39.intval._4_4_ = uVar23;\n              aVar12.stringval = (char *)0x0;\n              aVar12.uintval._4_4_ = uVar23;\n              aVar40.stringval = (char *)0x0;\n              aVar40.uintval._4_4_ = uVar23;\n              aVar10.stringval = (char *)0x0;\n              aVar10.uintval._4_4_ = uVar23;\n              aVar7.stringval = (char *)0x0;\n              aVar7.uintval._4_4_ = uVar23;\n              aVar9.stringval = (char *)0x0;\n              aVar9.uintval._4_4_ = uVar23;\n              pattr = puVar15;\n              if (uVar32 == 0x31) goto LAB_002e30bc;\n              if (0x31 < uVar32) {\n                if ((uVar32 != 0x6e) && (aVar40 = aVar12, uVar32 != 0x2007)) {\n                  if (uVar32 != 0x47) goto LAB_002e313c;\n                  *(undefined4 *)&this->specification_ = 0;\n                  *(uint *)((int)&this->specification_ + 4) = uVar23;\n                  aVar7 = aVar10;\n                  goto LAB_002e313c;\n                }\n                goto LAB_002e3858;\n              }\n              if (uVar32 == 1) {\n                *(undefined4 *)&this->sibling_offset_ = 0;\n                *(uint *)((int)&this->sibling_offset_ + 4) = uVar23;\n                aVar7 = aVar9;\n                goto LAB_002e313c;\n              }\n              goto joined_r0x002e3124;\n            }\n            if (uVar29 < 0x12) {\n              if (uVar29 == 0xf) goto LAB_002e34d8;\n              if (uVar29 != 0x10) {\n                return false;\n              }\n              pDVar22 = this->dwinfo_;\n              uVar23 = pDVar22->offset_size_;\n              if (pDVar22->cu_version_ < 3) {\n                uVar23 = pDVar22->address_size_;\n              }\n              if (uVar23 == 4) {\n                pp_Var16 = (pDVar22->object_->super_Object)._vptr_Object;\n                p_Var37 = pp_Var16[3];\n                if (p_Var37 == (_func_int_varargs *)PTR_is_big_endian_004c2950) {\n                  local_30 = puVar28;\n                  iVar36 = (*pp_Var16[0x3a])();\n                }\n                else {\n                  local_30 = puVar28;\n                  iVar36 = (*p_Var37)();\n                }\n                uVar23 = *(uint *)pattr;\n                if (iVar36 == 0) {\n                  uVar23 = (((uVar23 >> 0x10) << 0x18 | (uVar23 >> 0x18) << 0x10) >> 0x10) +\n                           ((uVar23 & 0xff) << 8 | uVar23 >> 8 & 0xff) * 0x10000;\n                }\n                pattr = pattr + 4;\n                uVar38 = (ulonglong)uVar23;\n              }\n              else {\n                local_30 = puVar28;\n                uVar38 = (*local_34)(pDVar22,&pattr);\n              }\n              str_off = uVar38;\n              attr_value.aux.shndx = (*local_3c)(this->dwinfo_);\n              aVar39.refval = str_off;\n            }\n            else {\n              if (uVar29 == 0x13) {\n                pp_Var16 = (this->dwinfo_->object_->super_Object)._vptr_Object;\n                p_Var37 = pp_Var16[3];\n                if (p_Var37 == (_func_int_varargs *)PTR_is_big_endian_004c2950) {\n                  local_30 = puVar28;\n                  iVar36 = (*pp_Var16[0x3a])();\n                }\n                else {\n                  local_30 = puVar28;\n                  iVar36 = (*p_Var37)();\n                }\n                uVar23 = *(uint *)pattr;\n                if (iVar36 == 0) {\n                  uVar23 = (((uVar23 >> 0x10) << 0x18 | (uVar23 >> 0x18) << 0x10) >> 0x10) +\n                           ((uVar23 & 0xff) << 8 | uVar23 >> 8 & 0xff) * 0x10000;\n                }\n                pattr = pattr + 4;\n                pDVar22 = this->dwinfo_;\n                uVar38 = (ulonglong)uVar23;\n              }\n              else {\n                if (uVar29 < 0x14) {\n                  pp_Var16 = (this->dwinfo_->object_->super_Object)._vptr_Object;\n                  p_Var37 = pp_Var16[3];\n                  if (p_Var37 == (_func_int_varargs *)PTR_is_big_endian_004c2950) {\n                    iVar36 = (*pp_Var16[0x3a])();\n                  }\n                  else {\n                    iVar36 = (*p_Var37)();\n                  }\n                  uVar6 = *(ushort *)pattr;\n                  if (iVar36 == 0) {\n                    uVar6 = CONCAT11(pattr[1],*pattr);\n                  }\n                  aVar39.intval._0_6_ = 0;\n                  aVar39.intval._6_2_ = uVar6;\n                  pattr = pattr + 2;\n                  goto joined_r0x002e3998;\n                }\n                pp_Var16 = (this->dwinfo_->object_->super_Object)._vptr_Object;\n                p_Var37 = pp_Var16[3];\n                if (p_Var37 == (_func_int_varargs *)PTR_is_big_endian_004c2950) {\n                  local_30 = puVar28;\n                  iVar36 = (*pp_Var16[0x3a])();\n                }\n                else {\n                  local_30 = puVar28;\n                  iVar36 = (*p_Var37)();\n                }\n                uVar23 = *(uint *)(pattr + 4);\n                uVar26 = *(uint *)pattr;\n                if (iVar36 == 0) {\n                  uVar2 = uVar23 & 0xff;\n                  uVar4 = uVar23 >> 8;\n                  uVar3 = uVar23 >> 0x10;\n                  uVar5 = uVar23 >> 0x18;\n                  uVar23 = (((uVar26 >> 0x10) << 0x18 | (uVar26 >> 0x18) << 0x10) >> 0x10) +\n                           ((uVar26 & 0xff) << 8 | uVar26 >> 8 & 0xff) * 0x10000;\n                  uVar26 = ((uVar3 << 0x18 | uVar5 << 0x10) >> 0x10) +\n                           (uVar2 << 8 | uVar4 & 0xff) * 0x10000;\n                }\n                uVar38 = CONCAT44(uVar26,uVar23);\n                pattr = pattr + 8;\n                pDVar22 = this->dwinfo_;\n              }\nLAB_002e3970:\n              str_off = uVar38;\n              attr_value.aux.shndx = (*local_3c)(pDVar22);\n              aVar39.refval = str_off;\n            }\njoined_r0x002e3998:\n            if (uVar32 == 0x31) {\nLAB_002e30bc:\n              this->abstract_origin_ = (off_t)aVar39;\n              aVar7 = aVar39;\n              goto LAB_002e313c;\n            }\n            if (uVar32 < 0x32) {\n              aVar7 = aVar39;\n              if (uVar32 != 1) goto LAB_002e313c;\nLAB_002e39b4:\n              aVar7 = aVar39;\n              if (attr_value.aux.shndx != 0) goto LAB_002e313c;\n              this->sibling_offset_ = (off_t)aVar39;\n              goto LAB_002e313c;\n            }\n            aVar40 = aVar39;\n            if ((uVar32 != 0x6e) && (uVar32 != 0x2007)) {\nLAB_002e339c:\n              aVar7 = aVar39;\n              if (uVar32 != 0x47) goto LAB_002e313c;\n              this->specification_ = (off_t)aVar39;\n              goto LAB_002e313c;\n            }\n            goto LAB_002e3858;\n          }\n          if (uVar29 == 7) {\n            pp_Var16 = (this->dwinfo_->object_->super_Object)._vptr_Object;\n            p_Var37 = pp_Var16[3];\n            if (p_Var37 == (_func_int_varargs *)PTR_is_big_endian_004c2950) {\n              local_30 = puVar28;\n              iVar17 = (*pp_Var16[0x3a])();\n            }\n            else {\n              local_30 = puVar28;\n              iVar17 = (*p_Var37)();\n            }\n            str_off._4_4_ = *(char **)(pattr + 4);\n            pcVar25 = *(char **)pattr;\n            if (iVar17 == 0) {\n              uVar23 = (uint)str_off._4_4_ & 0xff;\n              uVar26 = (uint)str_off._4_4_ >> 8;\n              uVar2 = (uint)str_off._4_4_ >> 0x10;\n              uVar4 = (uint)str_off._4_4_ >> 0x18;\n              str_off._4_4_ =\n                   (char *)(((((uint)pcVar25 >> 0x10) << 0x18 | ((uint)pcVar25 >> 0x18) << 0x10) >>\n                            0x10) + (((uint)pcVar25 & 0xff) << 8 | (uint)pcVar25 >> 8 & 0xff) *\n                                    0x10000);\n              pcVar25 = (char *)(((uVar2 << 0x18 | uVar4 << 0x10) >> 0x10) +\n                                (uVar23 << 8 | uVar26 & 0xff) * 0x10000);\n            }\n            pattr = pattr + 8;\n            pDVar22 = this->dwinfo_;\n            str_off._0_4_ = pcVar25;\nLAB_002e3708:\n            attr_value.aux.shndx = (*local_3c)(pDVar22,pcVar25,iVar36,local_30,local_40.shndx);\n            attr_value.val._4_4_ = str_off._4_4_;\n            attr_value.val.stringval = str_off._0_4_;\n            goto LAB_002e355c;\n          }\n          if (7 < uVar29) {\n            if (uVar29 == 10) {\n              attr_value.val.stringval = (char *)(pattr + 1);\n              attr_value.aux.shndx._0_3_ = 0;\n              attr_value.aux.shndx._3_1_ = *pattr;\n              pattr = (uchar *)((int)attr_value.val.stringval + attr_value.aux.shndx);\n              goto LAB_002e355c;\n            }\n            if (uVar29 < 0xb) {\n              if (uVar29 != 8) {\n                if (uVar29 != 9) {\n                  return false;\n                }\nLAB_002e32bc:\n                aVar27.shndx._0_3_ = 0;\n                aVar27.shndx._3_1_ = *pattr;\n                puVar15 = pattr + 1;\n                if ((char)*pattr < '\0') {\n                  (*(code *)PTR_read_unsigned_LEB_128_x_004c2980)(puVar15,&len);\n                  puVar15 = pattr + len;\n                  aVar27 = extraout_v1_00;\n                }\n                else {\n                  len = 1;\n                }\n                aVar40.blockval = puVar15;\n                aVar40.intval._4_4_ = attr_value.val.intval._4_4_;\n                attr_value.aux = aVar27;\n                pattr = pattr + aVar27.shndx + len;\n                goto LAB_002e382c;\n              }\n              attr_value.val.blockval = pattr;\n              local_30 = pattr;\n              len = (*(code *)PTR_strlen_004c5b9c)(pattr);\n              aVar40.stringval = attr_value.val.stringval;\n              aVar40.intval._4_4_ = attr_value.val.intval._4_4_;\n              aVar8.stringval = attr_value.val.stringval;\n              aVar8.intval._4_4_ = attr_value.val.intval._4_4_;\n              aVar7.stringval = attr_value.val.stringval;\n              aVar7.intval._4_4_ = attr_value.val.intval._4_4_;\n              pattr = local_30 + len + 1;\n              if (uVar32 == 0x31) goto LAB_002e313c;\n              if (0x31 < uVar32) {\n                if ((uVar32 != 0x6e) && (aVar7 = aVar8, uVar32 != 0x2007)) goto LAB_002e313c;\n                this->linkage_name_ = (char *)local_30;\n                aVar7 = aVar40;\n                goto LAB_002e313c;\n              }\nLAB_002e3118:\n              aVar7 = aVar40;\n              aVar39 = aVar40;\n              if (uVar32 == 1) goto LAB_002e313c;\njoined_r0x002e3124:\n              aVar7 = aVar39;\n              if (uVar32 != 3) goto LAB_002e313c;\n              attr_value.val.stringval = (char *)((ulonglong)aVar39 >> 0x20);\n              if (uVar29 == 8) {\n                this->name_ = attr_value.val.stringval;\n                goto LAB_002e313c;\n              }\n              if (uVar29 != 0xe) goto LAB_002e313c;\n              goto LAB_002e3284;\n            }\n            if (uVar29 < 0xd) {\n              aVar40.intval._0_7_ = 0;\n              aVar40.uintval._7_1_ = *pattr;\n              pattr = pattr + 1;\nLAB_002e382c:\n              aVar7 = aVar40;\n              if (uVar32 == 0x31) goto LAB_002e313c;\n              if (uVar32 < 0x32) goto LAB_002e3118;\n            }\n            else {\n              bVar1 = *pattr;\n              uVar23 = CONCAT31(0,bVar1);\n              puVar15 = pattr + 1;\n              if ((char)bVar1 < '\0') {\n                aVar40.intval = (*(code *)PTR_read_signed_LEB_128_x_004c297c)(puVar15,&len,uVar23);\n                puVar15 = pattr + len;\n              }\n              else {\n                len = 1;\n                aVar40.stringval = (char *)0x0;\n                aVar40.uintval._4_4_ = uVar23;\n                if ((bVar1 & 0x40) != 0) {\n                  aVar40.stringval = (char *)0xffffffff;\n                  aVar40.uintval._4_4_ = uVar23 | 0xffffff80;\n                }\n              }\n              pattr = puVar15;\n              aVar7 = aVar40;\n              if (uVar32 == 0x31) goto LAB_002e313c;\n              if (uVar32 < 0x32) {\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                iVar36 = iVar34;\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_002e314c;\nLAB_002e2f98:\n                iVar34 = iVar34 + 8;\n                attr_value.val = aVar40;\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                          (local_38,__position,&attr_value);\n                pAVar13 = this->abbrev_code_;\n                if (iVar34 == iVar31) goto LAB_002e2fb8;\n                goto LAB_002e2db4;\n              }\n            }\n            if ((uVar32 != 0x6e) && (aVar7 = aVar40, uVar32 != 0x2007)) goto LAB_002e313c;\nLAB_002e3858:\n            attr_value.val._0_4_ = aVar40.stringval;\n            aVar7 = aVar40;\n            if (uVar29 == 8) {\n              this->linkage_name_ = attr_value.val.stringval;\n              goto LAB_002e313c;\n            }\n            if (uVar29 != 0xe) goto LAB_002e313c;\n            goto LAB_002e387c;\n          }\n          if (uVar29 == 4) {\n            pp_Var16 = (this->dwinfo_->object_->super_Object)._vptr_Object;\n            p_Var37 = pp_Var16[3];\n            if (p_Var37 == (_func_int_varargs *)PTR_is_big_endian_004c2950) {\n              iVar36 = (*pp_Var16[0x3a])();\n            }\n            else {\n              iVar36 = (*p_Var37)();\n            }\n            attr_value.aux.shndx = *(uint *)pattr;\n            if (iVar36 == 0) {\n              attr_value.aux.shndx =\n                   (((attr_value.aux.shndx >> 0x10) << 0x18 | (attr_value.aux.shndx >> 0x18) << 0x10\n                    ) >> 0x10) +\n                   ((attr_value.aux.shndx & 0xff) << 8 | attr_value.aux.shndx >> 8 & 0xff) * 0x10000\n              ;\n            }\n            attr_value.val.stringval = (char *)(pattr + 4);\n            pattr = (uchar *)((int)attr_value.val.stringval + attr_value.aux.shndx);\nLAB_002e355c:\n            aVar40.stringval = attr_value.val.stringval;\n            aVar40.intval._4_4_ = attr_value.val.intval._4_4_;\n            aVar7 = aVar40;\n            if (uVar32 == 0x31) goto LAB_002e313c;\n            if (uVar32 < 0x32) goto LAB_002e3118;\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          }\n          else {\n            if (4 < uVar29) {\n              if (uVar29 != 5) {\n                if (uVar29 != 6) {\n                  return false;\n                }\n                pp_Var16 = (this->dwinfo_->object_->super_Object)._vptr_Object;\n                p_Var37 = pp_Var16[3];\n                if (p_Var37 == (_func_int_varargs *)PTR_is_big_endian_004c2950) {\n                  local_30 = puVar28;\n                  iVar17 = (*pp_Var16[0x3a])();\n                }\n                else {\n                  local_30 = puVar28;\n                  iVar17 = (*p_Var37)();\n                }\n                pcVar25 = *(char **)pattr;\n                if (iVar17 == 0) {\n                  pcVar25 = (char *)(((((uint)pcVar25 >> 0x10) << 0x18 |\n                                      ((uint)pcVar25 >> 0x18) << 0x10) >> 0x10) +\n                                    (((uint)pcVar25 & 0xff) << 8 | (uint)pcVar25 >> 8 & 0xff) *\n                                    0x10000);\n                }\n                pattr = pattr + 4;\n                pDVar22 = this->dwinfo_;\n                str_off._0_4_ = (char *)0x0;\n                str_off._4_4_ = pcVar25;\n                goto LAB_002e3708;\n              }\n              pp_Var16 = (this->dwinfo_->object_->super_Object)._vptr_Object;\n              p_Var37 = pp_Var16[3];\n              if (p_Var37 == (_func_int_varargs *)PTR_is_big_endian_004c2950) {\n                iVar36 = (*pp_Var16[0x3a])();\n              }\n              else {\n                iVar36 = (*p_Var37)();\n              }\n              uVar6 = *(ushort *)pattr;\n              if (iVar36 == 0) {\n                uVar6 = CONCAT11(pattr[1],*pattr);\n              }\n              attr_value.val.intval._4_4_ = ZEXT24(uVar6);\n              pattr = pattr + 2;\n              attr_value.val.stringval = (char *)0x0;\n              goto LAB_002e355c;\n            }\n            if (uVar29 != 1) {\n              if (uVar29 != 3) {\n                return false;\n              }\n              pp_Var16 = (this->dwinfo_->object_->super_Object)._vptr_Object;\n              p_Var37 = pp_Var16[3];\n              if (p_Var37 == (_func_int_varargs *)PTR_is_big_endian_004c2950) {\n                iVar36 = (*pp_Var16[0x3a])();\n              }\n              else {\n                iVar36 = (*p_Var37)();\n              }\n              uVar6 = *(ushort *)pattr;\n              if (iVar36 == 0) {\n                uVar6 = CONCAT11(pattr[1],*pattr);\n              }\n              attr_value.aux.shndx._0_2_ = 0;\n              attr_value.aux.shndx._2_2_ = uVar6;\n              attr_value.val.stringval = (char *)(pattr + 2);\n              pattr = (uchar *)((int)attr_value.val.stringval + attr_value.aux.shndx);\n              goto LAB_002e355c;\n            }\n            pDVar22 = this->dwinfo_;\n            if (pDVar22->address_size_ == 4) {\n              pp_Var16 = (pDVar22->object_->super_Object)._vptr_Object;\n              p_Var37 = pp_Var16[3];\n              if (p_Var37 == (_func_int_varargs *)PTR_is_big_endian_004c2950) {\n                local_30 = puVar28;\n                iVar36 = (*pp_Var16[0x3a])();\n              }\n              else {\n                local_30 = puVar28;\n                iVar36 = (*p_Var37)();\n              }\n              uVar23 = *(uint *)pattr;\n              if (iVar36 == 0) {\n                uVar23 = (((uVar23 >> 0x10) << 0x18 | (uVar23 >> 0x18) << 0x10) >> 0x10) +\n                         ((uVar23 & 0xff) << 8 | uVar23 >> 8 & 0xff) * 0x10000;\n              }\n              pattr = pattr + 4;\n              uVar38 = (ulonglong)uVar23;\n            }\n            else {\n              local_30 = puVar28;\n              uVar38 = (*local_34)(pDVar22,&pattr);\n            }\n            str_off = uVar38;\n            attr_value.aux.shndx = (*local_3c)(this->dwinfo_);\n            aVar39.refval = str_off;\n            if (uVar32 == 0x31) goto LAB_002e30bc;\n            if (uVar32 < 0x32) {\n              if (uVar32 != 1) goto joined_r0x002e3124;\n              goto LAB_002e39b4;\n            }\n            aVar7.refval = str_off;\n            if (uVar32 == 0x6e) goto LAB_002e313c;\n            if (uVar32 != 0x2007) goto LAB_002e339c;\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            aVar40.refval = str_off;\n          }\n          while( true ) {\n            iVar36 = iVar34;\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_002e2f98;\nLAB_002e314c:\n            attr_value.val.stringval = (char *)((ulonglong)aVar40 >> 0x20);\n            attr_value.val.intval._4_4_ = (undefined4)aVar40.intval;\n            iVar34 = iVar36 + 8;\n            (__position._M_current)->form = attr_value.form;\n            ((__position._M_current)->val).stringval = attr_value.val.stringval;\n            (__position._M_current)->attr = attr_value.attr;\n            *(undefined4 *)((int)&(__position._M_current)->val + 4) = attr_value.val.intval._4_4_;\n            (__position._M_current)->aux = attr_value.aux;\n            *(undefined4 *)&(__position._M_current)->field_0x14 = attr_value._20_4_;\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            pAVar13 = this->abbrev_code_;\n            attr_value.val = aVar40;\n            if (iVar34 == iVar31) goto LAB_002e2fb8;\n            puVar14 = (uint *)((int)&(pAVar13->attributes).\n                                     super__Vector_base<gold::Dwarf_abbrev_table::Attribute,_std::allocator<gold::Dwarf_abbrev_table::Attribute>_>\n                                     ._M_impl._M_start[1].attr + iVar36);\n            uVar29 = puVar14[1];\n            uVar32 = *puVar14;\n            if (uVar29 != 0x16) goto LAB_002e2dd0;\nLAB_002e31a8:\n            uVar29 = (uint)*pattr;\n            puVar15 = pattr + 1;\n            if ((char)*pattr < '\0') {\n              attr_value.val = aVar40;\n              (*(code *)PTR_read_unsigned_LEB_128_x_004c2980)(puVar15,&len,uVar29);\n              puVar15 = pattr + len;\n              uVar29 = extraout_v1;\n              aVar40 = attr_value.val;\n            }\n            else {\n              len = 1;\n            }\n            puVar18 = puVar15 + -(int)puVar30;\n            puVar28 = puVar18 + (int)this->die_offset_;\n            iVar36 = (uint)(puVar28 < puVar18) + ((int)puVar18 >> 0x1f) + *(int *)&this->die_offset_\n            ;\n            attr_value.form = uVar29;\n            pattr = puVar15;\n            if (uVar29 != 0xe) break;\nLAB_002e31fc:\n            attr_value.aux.shndx = 0;\n            pDVar22 = this->dwinfo_;\n            attr_value.attr = uVar32;\n            local_30 = puVar28;\n            attr_value.val = aVar40;\n            if (pDVar22->offset_size_ == 4) {\n              pp_Var16 = (pDVar22->object_->super_Object)._vptr_Object;\n              p_Var37 = pp_Var16[3];\n              if (p_Var37 == (_func_int_varargs *)PTR_is_big_endian_004c2950) {\n                iVar36 = (*pp_Var16[0x3a])();\n              }\n              else {\n                iVar36 = (*p_Var37)();\n              }\n              uVar29 = *(uint *)pattr;\n              if (iVar36 == 0) {\n                uVar29 = (((uVar29 >> 0x10) << 0x18 | (uVar29 >> 0x18) << 0x10) >> 0x10) +\n                         ((uVar29 & 0xff) << 8 | uVar29 >> 8 & 0xff) * 0x10000;\n              }\n              pattr = pattr + 4;\n              uVar38 = (ulonglong)uVar29;\n            }\n            else {\n              uVar38 = (*local_34)(pDVar22,&pattr);\n            }\n            str_off = uVar38;\n            attr_value.aux.shndx = (*local_3c)(this->dwinfo_);\n            aVar7.refval = str_off;\n            if (uVar32 != 0x31) {\n              if (uVar32 < 0x32) {\n                if ((uVar32 != 1) && (aVar39.refval = str_off, uVar32 == 3)) {\nLAB_002e3284:\n                  this->string_shndx_ = (uint)attr_value.aux;\n                  this->name_off_ = (off_t)aVar39;\n                  aVar7 = aVar39;\n                }\n              }\n              else {\n                aVar40.refval = str_off;\n                if (uVar32 == 0x6e) {\nLAB_002e387c:\n                  this->string_shndx_ = (uint)attr_value.aux;\n                }\n                else {\n                  if (uVar32 != 0x2007) goto LAB_002e313c;\n                  this->string_shndx_ = (uint)attr_value.aux;\n                }\n                this->linkage_name_off_ = (off_t)aVar40;\n                aVar7 = aVar40;\n              }\n            }\nLAB_002e313c:\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            aVar40 = aVar7;\n          }\n        } while( true );\n      }" { (labeled_statement "LAB_002e2d90:\n        local_3c = (code *)PTR_lookup_reloc_004c2994;" statement_identifier : (expression_statement "local_3c = (code *)PTR_lookup_reloc_004c2994;" (assignment_expression "local_3c = (code *)PTR_lookup_reloc_004c2994" identifier = (cast_expression "(code *)PTR_lookup_reloc_004c2994" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) ;)) (expression_statement "iVar34 = 0;" (assignment_expression "iVar34 = 0" identifier = number_literal) ;) (expression_statement "local_34 = (code *)PTR_read_from_pointer<64>_004c2998;" (assignment_expression "local_34 = (code *)PTR_read_from_pointer<64>_004c2998" identifier = (binary_expression "(code *)PTR_read_from_pointer<64>_004c2998" (binary_expression "(code *)PTR_read_from_pointer<64" (cast_expression "(code *)PTR_read_from_pointer" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier) < number_literal) > identifier)) ;) (expression_statement "local_40.shndx = (uint)&str_off;" (assignment_expression "local_40.shndx = (uint)&str_off" (field_expression "local_40.shndx" identifier . field_identifier) = (binary_expression "(uint)&str_off" (parenthesized_expression "(uint)" ( identifier )) & identifier)) ;) (labeled_statement "LAB_002e2db4:\n        puVar14 = (uint *)((int)&((pAVar13->attributes).\n                                  super__Vector_base<gold::Dwarf_abbrev_table::Attribute,_std::allocator<gold::Dwarf_abbrev_table::Attribute>_>\n                                  ._M_impl._M_start)->attr + iVar34);" statement_identifier : (expression_statement "puVar14 = (uint *)((int)&((pAVar13->attributes).\n                                  super__Vector_base<gold::Dwarf_abbrev_table::Attribute,_std::allocator<gold::Dwarf_abbrev_table::Attribute>_>\n                                  ._M_impl._M_start)->attr + iVar34);" (assignment_expression "puVar14 = (uint *)((int)&((pAVar13->attributes).\n                                  super__Vector_base<gold::Dwarf_abbrev_table::Attribute,_std::allocator<gold::Dwarf_abbrev_table::Attribute>_>\n                                  ._M_impl._M_start)->attr + iVar34)" identifier = (cast_expression "(uint *)((int)&((pAVar13->attributes).\n                                  super__Vector_base<gold::Dwarf_abbrev_table::Attribute,_std::allocator<gold::Dwarf_abbrev_table::Attribute>_>\n                                  ._M_impl._M_start)->attr + iVar34)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)&((pAVar13->attributes).\n                                  super__Vector_base<gold::Dwarf_abbrev_table::Attribute,_std::allocator<gold::Dwarf_abbrev_table::Attribute>_>\n                                  ._M_impl._M_start)->attr + iVar34)" ( (binary_expression "(int)&((pAVar13->attributes).\n                                  super__Vector_base<gold::Dwarf_abbrev_table::Attribute,_std::allocator<gold::Dwarf_abbrev_table::Attribute>_>\n                                  ._M_impl._M_start)->attr + iVar34" (cast_expression "(int)&((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 "int" primitive_type) ) (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 "uVar29 = puVar14[1];" (assignment_expression "uVar29 = puVar14[1]" identifier = (subscript_expression "puVar14[1]" identifier [ number_literal ])) ;) (expression_statement "uVar32 = *puVar14;" (assignment_expression "uVar32 = *puVar14" identifier = (pointer_expression "*puVar14" * identifier)) ;) (expression_statement "aVar40 = attr_value.val;" (assignment_expression "aVar40 = attr_value.val" identifier = (field_expression "attr_value.val" identifier . field_identifier)) ;) (if_statement "if (uVar29 == 0x16) goto LAB_002e31a8;" if (parenthesized_expression "(uVar29 == 0x16)" ( (binary_expression "uVar29 == 0x16" identifier == number_literal) )) (goto_statement "goto LAB_002e31a8;" goto statement_identifier ;)) (labeled_statement "LAB_002e2dd0:\n        puVar15 = pattr + -(int)puVar30;" statement_identifier : (expression_statement "puVar15 = pattr + -(int)puVar30;" (assignment_expression "puVar15 = pattr + -(int)puVar30" identifier = (binary_expression "pattr + -(int)puVar30" identifier + (unary_expression "-(int)puVar30" - (cast_expression "(int)puVar30" ( (type_descriptor "int" primitive_type) ) identifier)))) ;)) (expression_statement "puVar28 = puVar15 + (int)this->die_offset_;" (assignment_expression "puVar28 = puVar15 + (int)this->die_offset_" identifier = (binary_expression "puVar15 + (int)this->die_offset_" identifier + (cast_expression "(int)this->die_offset_" ( (type_descriptor "int" primitive_type) ) (field_expression "this->die_offset_" identifier -> field_identifier)))) ;) (expression_statement "iVar36 = (uint)(puVar28 < puVar15) + ((int)puVar15 >> 0x1f) + *(int *)&this->die_offset_;" (assignment_expression "iVar36 = (uint)(puVar28 < puVar15) + ((int)puVar15 >> 0x1f) + *(int *)&this->die_offset_" identifier = (binary_expression "(uint)(puVar28 < puVar15) + ((int)puVar15 >> 0x1f) + *(int *)&this->die_offset_" (binary_expression "(uint)(puVar28 < puVar15) + ((int)puVar15 >> 0x1f)" (call_expression "(uint)(puVar28 < puVar15)" (parenthesized_expression "(uint)" ( identifier )) (argument_list "(puVar28 < puVar15)" ( (binary_expression "puVar28 < puVar15" identifier < identifier) ))) + (parenthesized_expression "((int)puVar15 >> 0x1f)" ( (binary_expression "(int)puVar15 >> 0x1f" (cast_expression "(int)puVar15" ( (type_descriptor "int" primitive_type) ) identifier) >> number_literal) ))) + (pointer_expression "*(int *)&this->die_offset_" * (cast_expression "(int *)&this->die_offset_" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (pointer_expression "&this->die_offset_" & (field_expression "this->die_offset_" identifier -> field_identifier)))))) ;) (expression_statement "attr_value.form = uVar29;" (assignment_expression "attr_value.form = uVar29" (field_expression "attr_value.form" identifier . field_identifier) = identifier) ;) (if_statement "if (uVar29 == 0xe) goto LAB_002e31fc;" if (parenthesized_expression "(uVar29 == 0xe)" ( (binary_expression "uVar29 == 0xe" identifier == number_literal) )) (goto_statement "goto LAB_002e31fc;" goto statement_identifier ;)) (do_statement "do {\n          attr_value.val.intval._4_4_ = (undefined4)aVar40.intval;\n          attr_value.aux.shndx = 0;\n          attr_value.attr = uVar32;\n          attr_value.form = uVar29;\n          attr_value.val = aVar40;\n          if (0xe < uVar29) {\n            if (uVar29 == 0x15) {\n              if ((char)*pattr < '\0') {\n                aVar39.intval = (*(code *)PTR_read_unsigned_LEB_128_x_004c2980)(pattr + 1,&len);\n                pattr = pattr + len;\n              }\n              else {\n                aVar39.intval._0_7_ = 0;\n                aVar39.intval._7_1_ = *pattr;\n                len = 1;\n                pattr = pattr + 1;\n              }\n              goto joined_r0x002e3998;\n            }\n            if (0x15 < uVar29) {\n              if (uVar29 == 0x19) {\n                attr_value.val.intval._4_4_ = 1;\n                attr_value.val.stringval = (char *)0x0;\n              }\n              else {\n                if (uVar29 < 0x1a) {\n                  if (uVar29 != 0x17) {\n                    if (uVar29 != 0x18) {\n                      return false;\n                    }\n                    goto LAB_002e32bc;\n                  }\n                  pDVar22 = this->dwinfo_;\n                  if (pDVar22->offset_size_ == 4) {\n                    pp_Var16 = (pDVar22->object_->super_Object)._vptr_Object;\n                    p_Var37 = pp_Var16[3];\n                    if (p_Var37 == (_func_int_varargs *)PTR_is_big_endian_004c2950) {\n                      local_30 = puVar28;\n                      iVar36 = (*pp_Var16[0x3a])();\n                    }\n                    else {\n                      local_30 = puVar28;\n                      iVar36 = (*p_Var37)();\n                    }\n                    uVar23 = *(uint *)pattr;\n                    if (iVar36 == 0) {\n                      uVar23 = (((uVar23 >> 0x10) << 0x18 | (uVar23 >> 0x18) << 0x10) >> 0x10) +\n                               ((uVar23 & 0xff) << 8 | uVar23 >> 8 & 0xff) * 0x10000;\n                    }\n                    pattr = pattr + 4;\n                    uVar38 = (ulonglong)uVar23;\n                  }\n                  else {\n                    local_30 = puVar28;\n                    uVar38 = (*local_34)(pDVar22,&pattr);\n                  }\n                  pDVar22 = this->dwinfo_;\n                  goto LAB_002e3970;\n                }\n                if (uVar29 != 0x20) {\n                  if (uVar29 < 0x20) {\n                    return false;\n                  }\n                  if (1 < uVar29 - 0x1f01) {\n                    return false;\n                  }\nLAB_002e34d8:\n                  if ((char)*pattr < '\0') {\n                    aVar40.intval = (*(code *)PTR_read_unsigned_LEB_128_x_004c2980)(pattr + 1,&len);\n                    pattr = pattr + len;\n                  }\n                  else {\n                    aVar40.intval._0_7_ = 0;\n                    aVar40.intval._7_1_ = *pattr;\n                    len = 1;\n                    pattr = pattr + 1;\n                  }\n                  goto LAB_002e382c;\n                }\n                pp_Var16 = (this->dwinfo_->object_->super_Object)._vptr_Object;\n                p_Var37 = pp_Var16[3];\n                if (p_Var37 == (_func_int_varargs *)PTR_is_big_endian_004c2950) {\n                  iVar36 = (*pp_Var16[0x3a])();\n                }\n                else {\n                  iVar36 = (*p_Var37)();\n                }\n                    /* WARNING: Load size is inaccurate */\n                attr_value.val._4_4_ = pattr[4];\n                    /* WARNING: Load size is inaccurate */\n                attr_value.val.blockval = *pattr;\n                if (iVar36 == 0) {\n                  uVar23 = attr_value.val.uintval._4_4_ & 0xff;\n                  uVar26 = (uint)attr_value.val.uintval._4_4_ >> 8;\n                  uVar2 = (uint)attr_value.val.uintval._4_4_ >> 0x10;\n                  uVar4 = (uint)attr_value.val.uintval._4_4_ >> 0x18;\n                  attr_value.val.intval._4_4_ =\n                       ((((uint)attr_value.val.stringval >> 0x10) << 0x18 |\n                        ((uint)attr_value.val.stringval >> 0x18) << 0x10) >> 0x10) +\n                       (((uint)attr_value.val.stringval & 0xff) << 8 |\n                       (uint)attr_value.val.stringval >> 8 & 0xff) * 0x10000;\n                  attr_value.val.stringval =\n                       (char *)(((uVar2 << 0x18 | uVar4 << 0x10) >> 0x10) +\n                               (uVar23 << 8 | uVar26 & 0xff) * 0x10000);\n                }\n                pattr = pattr + 8;\n              }\n              aVar39.stringval = attr_value.val.stringval;\n              aVar39.intval._4_4_ = attr_value.val.intval._4_4_;\n              aVar11.stringval = attr_value.val.stringval;\n              aVar11.intval._4_4_ = attr_value.val.intval._4_4_;\n              aVar7.stringval = attr_value.val.stringval;\n              aVar7.intval._4_4_ = attr_value.val.intval._4_4_;\n              if (uVar32 == 0x6e) goto LAB_002e313c;\n              aVar7 = aVar11;\n              if (uVar32 == 0x2007) goto LAB_002e313c;\n              goto joined_r0x002e3124;\n            }\n            if (uVar29 == 0x11) {\n              puVar15 = pattr + 1;\n              uVar23 = CONCAT31(0,*pattr);\n              aVar39.stringval = (char *)0x0;\n              aVar39.intval._4_4_ = uVar23;\n              aVar12.stringval = (char *)0x0;\n              aVar12.uintval._4_4_ = uVar23;\n              aVar40.stringval = (char *)0x0;\n              aVar40.uintval._4_4_ = uVar23;\n              aVar10.stringval = (char *)0x0;\n              aVar10.uintval._4_4_ = uVar23;\n              aVar7.stringval = (char *)0x0;\n              aVar7.uintval._4_4_ = uVar23;\n              aVar9.stringval = (char *)0x0;\n              aVar9.uintval._4_4_ = uVar23;\n              pattr = puVar15;\n              if (uVar32 == 0x31) goto LAB_002e30bc;\n              if (0x31 < uVar32) {\n                if ((uVar32 != 0x6e) && (aVar40 = aVar12, uVar32 != 0x2007)) {\n                  if (uVar32 != 0x47) goto LAB_002e313c;\n                  *(undefined4 *)&this->specification_ = 0;\n                  *(uint *)((int)&this->specification_ + 4) = uVar23;\n                  aVar7 = aVar10;\n                  goto LAB_002e313c;\n                }\n                goto LAB_002e3858;\n              }\n              if (uVar32 == 1) {\n                *(undefined4 *)&this->sibling_offset_ = 0;\n                *(uint *)((int)&this->sibling_offset_ + 4) = uVar23;\n                aVar7 = aVar9;\n                goto LAB_002e313c;\n              }\n              goto joined_r0x002e3124;\n            }\n            if (uVar29 < 0x12) {\n              if (uVar29 == 0xf) goto LAB_002e34d8;\n              if (uVar29 != 0x10) {\n                return false;\n              }\n              pDVar22 = this->dwinfo_;\n              uVar23 = pDVar22->offset_size_;\n              if (pDVar22->cu_version_ < 3) {\n                uVar23 = pDVar22->address_size_;\n              }\n              if (uVar23 == 4) {\n                pp_Var16 = (pDVar22->object_->super_Object)._vptr_Object;\n                p_Var37 = pp_Var16[3];\n                if (p_Var37 == (_func_int_varargs *)PTR_is_big_endian_004c2950) {\n                  local_30 = puVar28;\n                  iVar36 = (*pp_Var16[0x3a])();\n                }\n                else {\n                  local_30 = puVar28;\n                  iVar36 = (*p_Var37)();\n                }\n                uVar23 = *(uint *)pattr;\n                if (iVar36 == 0) {\n                  uVar23 = (((uVar23 >> 0x10) << 0x18 | (uVar23 >> 0x18) << 0x10) >> 0x10) +\n                           ((uVar23 & 0xff) << 8 | uVar23 >> 8 & 0xff) * 0x10000;\n                }\n                pattr = pattr + 4;\n                uVar38 = (ulonglong)uVar23;\n              }\n              else {\n                local_30 = puVar28;\n                uVar38 = (*local_34)(pDVar22,&pattr);\n              }\n              str_off = uVar38;\n              attr_value.aux.shndx = (*local_3c)(this->dwinfo_);\n              aVar39.refval = str_off;\n            }\n            else {\n              if (uVar29 == 0x13) {\n                pp_Var16 = (this->dwinfo_->object_->super_Object)._vptr_Object;\n                p_Var37 = pp_Var16[3];\n                if (p_Var37 == (_func_int_varargs *)PTR_is_big_endian_004c2950) {\n                  local_30 = puVar28;\n                  iVar36 = (*pp_Var16[0x3a])();\n                }\n                else {\n                  local_30 = puVar28;\n                  iVar36 = (*p_Var37)();\n                }\n                uVar23 = *(uint *)pattr;\n                if (iVar36 == 0) {\n                  uVar23 = (((uVar23 >> 0x10) << 0x18 | (uVar23 >> 0x18) << 0x10) >> 0x10) +\n                           ((uVar23 & 0xff) << 8 | uVar23 >> 8 & 0xff) * 0x10000;\n                }\n                pattr = pattr + 4;\n                pDVar22 = this->dwinfo_;\n                uVar38 = (ulonglong)uVar23;\n              }\n              else {\n                if (uVar29 < 0x14) {\n                  pp_Var16 = (this->dwinfo_->object_->super_Object)._vptr_Object;\n                  p_Var37 = pp_Var16[3];\n                  if (p_Var37 == (_func_int_varargs *)PTR_is_big_endian_004c2950) {\n                    iVar36 = (*pp_Var16[0x3a])();\n                  }\n                  else {\n                    iVar36 = (*p_Var37)();\n                  }\n                  uVar6 = *(ushort *)pattr;\n                  if (iVar36 == 0) {\n                    uVar6 = CONCAT11(pattr[1],*pattr);\n                  }\n                  aVar39.intval._0_6_ = 0;\n                  aVar39.intval._6_2_ = uVar6;\n                  pattr = pattr + 2;\n                  goto joined_r0x002e3998;\n                }\n                pp_Var16 = (this->dwinfo_->object_->super_Object)._vptr_Object;\n                p_Var37 = pp_Var16[3];\n                if (p_Var37 == (_func_int_varargs *)PTR_is_big_endian_004c2950) {\n                  local_30 = puVar28;\n                  iVar36 = (*pp_Var16[0x3a])();\n                }\n                else {\n                  local_30 = puVar28;\n                  iVar36 = (*p_Var37)();\n                }\n                uVar23 = *(uint *)(pattr + 4);\n                uVar26 = *(uint *)pattr;\n                if (iVar36 == 0) {\n                  uVar2 = uVar23 & 0xff;\n                  uVar4 = uVar23 >> 8;\n                  uVar3 = uVar23 >> 0x10;\n                  uVar5 = uVar23 >> 0x18;\n                  uVar23 = (((uVar26 >> 0x10) << 0x18 | (uVar26 >> 0x18) << 0x10) >> 0x10) +\n                           ((uVar26 & 0xff) << 8 | uVar26 >> 8 & 0xff) * 0x10000;\n                  uVar26 = ((uVar3 << 0x18 | uVar5 << 0x10) >> 0x10) +\n                           (uVar2 << 8 | uVar4 & 0xff) * 0x10000;\n                }\n                uVar38 = CONCAT44(uVar26,uVar23);\n                pattr = pattr + 8;\n                pDVar22 = this->dwinfo_;\n              }\nLAB_002e3970:\n              str_off = uVar38;\n              attr_value.aux.shndx = (*local_3c)(pDVar22);\n              aVar39.refval = str_off;\n            }\njoined_r0x002e3998:\n            if (uVar32 == 0x31) {\nLAB_002e30bc:\n              this->abstract_origin_ = (off_t)aVar39;\n              aVar7 = aVar39;\n              goto LAB_002e313c;\n            }\n            if (uVar32 < 0x32) {\n              aVar7 = aVar39;\n              if (uVar32 != 1) goto LAB_002e313c;\nLAB_002e39b4:\n              aVar7 = aVar39;\n              if (attr_value.aux.shndx != 0) goto LAB_002e313c;\n              this->sibling_offset_ = (off_t)aVar39;\n              goto LAB_002e313c;\n            }\n            aVar40 = aVar39;\n            if ((uVar32 != 0x6e) && (uVar32 != 0x2007)) {\nLAB_002e339c:\n              aVar7 = aVar39;\n              if (uVar32 != 0x47) goto LAB_002e313c;\n              this->specification_ = (off_t)aVar39;\n              goto LAB_002e313c;\n            }\n            goto LAB_002e3858;\n          }\n          if (uVar29 == 7) {\n            pp_Var16 = (this->dwinfo_->object_->super_Object)._vptr_Object;\n            p_Var37 = pp_Var16[3];\n            if (p_Var37 == (_func_int_varargs *)PTR_is_big_endian_004c2950) {\n              local_30 = puVar28;\n              iVar17 = (*pp_Var16[0x3a])();\n            }\n            else {\n              local_30 = puVar28;\n              iVar17 = (*p_Var37)();\n            }\n            str_off._4_4_ = *(char **)(pattr + 4);\n            pcVar25 = *(char **)pattr;\n            if (iVar17 == 0) {\n              uVar23 = (uint)str_off._4_4_ & 0xff;\n              uVar26 = (uint)str_off._4_4_ >> 8;\n              uVar2 = (uint)str_off._4_4_ >> 0x10;\n              uVar4 = (uint)str_off._4_4_ >> 0x18;\n              str_off._4_4_ =\n                   (char *)(((((uint)pcVar25 >> 0x10) << 0x18 | ((uint)pcVar25 >> 0x18) << 0x10) >>\n                            0x10) + (((uint)pcVar25 & 0xff) << 8 | (uint)pcVar25 >> 8 & 0xff) *\n                                    0x10000);\n              pcVar25 = (char *)(((uVar2 << 0x18 | uVar4 << 0x10) >> 0x10) +\n                                (uVar23 << 8 | uVar26 & 0xff) * 0x10000);\n            }\n            pattr = pattr + 8;\n            pDVar22 = this->dwinfo_;\n            str_off._0_4_ = pcVar25;\nLAB_002e3708:\n            attr_value.aux.shndx = (*local_3c)(pDVar22,pcVar25,iVar36,local_30,local_40.shndx);\n            attr_value.val._4_4_ = str_off._4_4_;\n            attr_value.val.stringval = str_off._0_4_;\n            goto LAB_002e355c;\n          }\n          if (7 < uVar29) {\n            if (uVar29 == 10) {\n              attr_value.val.stringval = (char *)(pattr + 1);\n              attr_value.aux.shndx._0_3_ = 0;\n              attr_value.aux.shndx._3_1_ = *pattr;\n              pattr = (uchar *)((int)attr_value.val.stringval + attr_value.aux.shndx);\n              goto LAB_002e355c;\n            }\n            if (uVar29 < 0xb) {\n              if (uVar29 != 8) {\n                if (uVar29 != 9) {\n                  return false;\n                }\nLAB_002e32bc:\n                aVar27.shndx._0_3_ = 0;\n                aVar27.shndx._3_1_ = *pattr;\n                puVar15 = pattr + 1;\n                if ((char)*pattr < '\0') {\n                  (*(code *)PTR_read_unsigned_LEB_128_x_004c2980)(puVar15,&len);\n                  puVar15 = pattr + len;\n                  aVar27 = extraout_v1_00;\n                }\n                else {\n                  len = 1;\n                }\n                aVar40.blockval = puVar15;\n                aVar40.intval._4_4_ = attr_value.val.intval._4_4_;\n                attr_value.aux = aVar27;\n                pattr = pattr + aVar27.shndx + len;\n                goto LAB_002e382c;\n              }\n              attr_value.val.blockval = pattr;\n              local_30 = pattr;\n              len = (*(code *)PTR_strlen_004c5b9c)(pattr);\n              aVar40.stringval = attr_value.val.stringval;\n              aVar40.intval._4_4_ = attr_value.val.intval._4_4_;\n              aVar8.stringval = attr_value.val.stringval;\n              aVar8.intval._4_4_ = attr_value.val.intval._4_4_;\n              aVar7.stringval = attr_value.val.stringval;\n              aVar7.intval._4_4_ = attr_value.val.intval._4_4_;\n              pattr = local_30 + len + 1;\n              if (uVar32 == 0x31) goto LAB_002e313c;\n              if (0x31 < uVar32) {\n                if ((uVar32 != 0x6e) && (aVar7 = aVar8, uVar32 != 0x2007)) goto LAB_002e313c;\n                this->linkage_name_ = (char *)local_30;\n                aVar7 = aVar40;\n                goto LAB_002e313c;\n              }\nLAB_002e3118:\n              aVar7 = aVar40;\n              aVar39 = aVar40;\n              if (uVar32 == 1) goto LAB_002e313c;\njoined_r0x002e3124:\n              aVar7 = aVar39;\n              if (uVar32 != 3) goto LAB_002e313c;\n              attr_value.val.stringval = (char *)((ulonglong)aVar39 >> 0x20);\n              if (uVar29 == 8) {\n                this->name_ = attr_value.val.stringval;\n                goto LAB_002e313c;\n              }\n              if (uVar29 != 0xe) goto LAB_002e313c;\n              goto LAB_002e3284;\n            }\n            if (uVar29 < 0xd) {\n              aVar40.intval._0_7_ = 0;\n              aVar40.uintval._7_1_ = *pattr;\n              pattr = pattr + 1;\nLAB_002e382c:\n              aVar7 = aVar40;\n              if (uVar32 == 0x31) goto LAB_002e313c;\n              if (uVar32 < 0x32) goto LAB_002e3118;\n            }\n            else {\n              bVar1 = *pattr;\n              uVar23 = CONCAT31(0,bVar1);\n              puVar15 = pattr + 1;\n              if ((char)bVar1 < '\0') {\n                aVar40.intval = (*(code *)PTR_read_signed_LEB_128_x_004c297c)(puVar15,&len,uVar23);\n                puVar15 = pattr + len;\n              }\n              else {\n                len = 1;\n                aVar40.stringval = (char *)0x0;\n                aVar40.uintval._4_4_ = uVar23;\n                if ((bVar1 & 0x40) != 0) {\n                  aVar40.stringval = (char *)0xffffffff;\n                  aVar40.uintval._4_4_ = uVar23 | 0xffffff80;\n                }\n              }\n              pattr = puVar15;\n              aVar7 = aVar40;\n              if (uVar32 == 0x31) goto LAB_002e313c;\n              if (uVar32 < 0x32) {\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                iVar36 = iVar34;\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_002e314c;\nLAB_002e2f98:\n                iVar34 = iVar34 + 8;\n                attr_value.val = aVar40;\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                          (local_38,__position,&attr_value);\n                pAVar13 = this->abbrev_code_;\n                if (iVar34 == iVar31) goto LAB_002e2fb8;\n                goto LAB_002e2db4;\n              }\n            }\n            if ((uVar32 != 0x6e) && (aVar7 = aVar40, uVar32 != 0x2007)) goto LAB_002e313c;\nLAB_002e3858:\n            attr_value.val._0_4_ = aVar40.stringval;\n            aVar7 = aVar40;\n            if (uVar29 == 8) {\n              this->linkage_name_ = attr_value.val.stringval;\n              goto LAB_002e313c;\n            }\n            if (uVar29 != 0xe) goto LAB_002e313c;\n            goto LAB_002e387c;\n          }\n          if (uVar29 == 4) {\n            pp_Var16 = (this->dwinfo_->object_->super_Object)._vptr_Object;\n            p_Var37 = pp_Var16[3];\n            if (p_Var37 == (_func_int_varargs *)PTR_is_big_endian_004c2950) {\n              iVar36 = (*pp_Var16[0x3a])();\n            }\n            else {\n              iVar36 = (*p_Var37)();\n            }\n            attr_value.aux.shndx = *(uint *)pattr;\n            if (iVar36 == 0) {\n              attr_value.aux.shndx =\n                   (((attr_value.aux.shndx >> 0x10) << 0x18 | (attr_value.aux.shndx >> 0x18) << 0x10\n                    ) >> 0x10) +\n                   ((attr_value.aux.shndx & 0xff) << 8 | attr_value.aux.shndx >> 8 & 0xff) * 0x10000\n              ;\n            }\n            attr_value.val.stringval = (char *)(pattr + 4);\n            pattr = (uchar *)((int)attr_value.val.stringval + attr_value.aux.shndx);\nLAB_002e355c:\n            aVar40.stringval = attr_value.val.stringval;\n            aVar40.intval._4_4_ = attr_value.val.intval._4_4_;\n            aVar7 = aVar40;\n            if (uVar32 == 0x31) goto LAB_002e313c;\n            if (uVar32 < 0x32) goto LAB_002e3118;\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          }\n          else {\n            if (4 < uVar29) {\n              if (uVar29 != 5) {\n                if (uVar29 != 6) {\n                  return false;\n                }\n                pp_Var16 = (this->dwinfo_->object_->super_Object)._vptr_Object;\n                p_Var37 = pp_Var16[3];\n                if (p_Var37 == (_func_int_varargs *)PTR_is_big_endian_004c2950) {\n                  local_30 = puVar28;\n                  iVar17 = (*pp_Var16[0x3a])();\n                }\n                else {\n                  local_30 = puVar28;\n                  iVar17 = (*p_Var37)();\n                }\n                pcVar25 = *(char **)pattr;\n                if (iVar17 == 0) {\n                  pcVar25 = (char *)(((((uint)pcVar25 >> 0x10) << 0x18 |\n                                      ((uint)pcVar25 >> 0x18) << 0x10) >> 0x10) +\n                                    (((uint)pcVar25 & 0xff) << 8 | (uint)pcVar25 >> 8 & 0xff) *\n                                    0x10000);\n                }\n                pattr = pattr + 4;\n                pDVar22 = this->dwinfo_;\n                str_off._0_4_ = (char *)0x0;\n                str_off._4_4_ = pcVar25;\n                goto LAB_002e3708;\n              }\n              pp_Var16 = (this->dwinfo_->object_->super_Object)._vptr_Object;\n              p_Var37 = pp_Var16[3];\n              if (p_Var37 == (_func_int_varargs *)PTR_is_big_endian_004c2950) {\n                iVar36 = (*pp_Var16[0x3a])();\n              }\n              else {\n                iVar36 = (*p_Var37)();\n              }\n              uVar6 = *(ushort *)pattr;\n              if (iVar36 == 0) {\n                uVar6 = CONCAT11(pattr[1],*pattr);\n              }\n              attr_value.val.intval._4_4_ = ZEXT24(uVar6);\n              pattr = pattr + 2;\n              attr_value.val.stringval = (char *)0x0;\n              goto LAB_002e355c;\n            }\n            if (uVar29 != 1) {\n              if (uVar29 != 3) {\n                return false;\n              }\n              pp_Var16 = (this->dwinfo_->object_->super_Object)._vptr_Object;\n              p_Var37 = pp_Var16[3];\n              if (p_Var37 == (_func_int_varargs *)PTR_is_big_endian_004c2950) {\n                iVar36 = (*pp_Var16[0x3a])();\n              }\n              else {\n                iVar36 = (*p_Var37)();\n              }\n              uVar6 = *(ushort *)pattr;\n              if (iVar36 == 0) {\n                uVar6 = CONCAT11(pattr[1],*pattr);\n              }\n              attr_value.aux.shndx._0_2_ = 0;\n              attr_value.aux.shndx._2_2_ = uVar6;\n              attr_value.val.stringval = (char *)(pattr + 2);\n              pattr = (uchar *)((int)attr_value.val.stringval + attr_value.aux.shndx);\n              goto LAB_002e355c;\n            }\n            pDVar22 = this->dwinfo_;\n            if (pDVar22->address_size_ == 4) {\n              pp_Var16 = (pDVar22->object_->super_Object)._vptr_Object;\n              p_Var37 = pp_Var16[3];\n              if (p_Var37 == (_func_int_varargs *)PTR_is_big_endian_004c2950) {\n                local_30 = puVar28;\n                iVar36 = (*pp_Var16[0x3a])();\n              }\n              else {\n                local_30 = puVar28;\n                iVar36 = (*p_Var37)();\n              }\n              uVar23 = *(uint *)pattr;\n              if (iVar36 == 0) {\n                uVar23 = (((uVar23 >> 0x10) << 0x18 | (uVar23 >> 0x18) << 0x10) >> 0x10) +\n                         ((uVar23 & 0xff) << 8 | uVar23 >> 8 & 0xff) * 0x10000;\n              }\n              pattr = pattr + 4;\n              uVar38 = (ulonglong)uVar23;\n            }\n            else {\n              local_30 = puVar28;\n              uVar38 = (*local_34)(pDVar22,&pattr);\n            }\n            str_off = uVar38;\n            attr_value.aux.shndx = (*local_3c)(this->dwinfo_);\n            aVar39.refval = str_off;\n            if (uVar32 == 0x31) goto LAB_002e30bc;\n            if (uVar32 < 0x32) {\n              if (uVar32 != 1) goto joined_r0x002e3124;\n              goto LAB_002e39b4;\n            }\n            aVar7.refval = str_off;\n            if (uVar32 == 0x6e) goto LAB_002e313c;\n            if (uVar32 != 0x2007) goto LAB_002e339c;\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            aVar40.refval = str_off;\n          }\n          while( true ) {\n            iVar36 = iVar34;\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_002e2f98;\nLAB_002e314c:\n            attr_value.val.stringval = (char *)((ulonglong)aVar40 >> 0x20);\n            attr_value.val.intval._4_4_ = (undefined4)aVar40.intval;\n            iVar34 = iVar36 + 8;\n            (__position._M_current)->form = attr_value.form;\n            ((__position._M_current)->val).stringval = attr_value.val.stringval;\n            (__position._M_current)->attr = attr_value.attr;\n            *(undefined4 *)((int)&(__position._M_current)->val + 4) = attr_value.val.intval._4_4_;\n            (__position._M_current)->aux = attr_value.aux;\n            *(undefined4 *)&(__position._M_current)->field_0x14 = attr_value._20_4_;\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            pAVar13 = this->abbrev_code_;\n            attr_value.val = aVar40;\n            if (iVar34 == iVar31) goto LAB_002e2fb8;\n            puVar14 = (uint *)((int)&(pAVar13->attributes).\n                                     super__Vector_base<gold::Dwarf_abbrev_table::Attribute,_std::allocator<gold::Dwarf_abbrev_table::Attribute>_>\n                                     ._M_impl._M_start[1].attr + iVar36);\n            uVar29 = puVar14[1];\n            uVar32 = *puVar14;\n            if (uVar29 != 0x16) goto LAB_002e2dd0;\nLAB_002e31a8:\n            uVar29 = (uint)*pattr;\n            puVar15 = pattr + 1;\n            if ((char)*pattr < '\0') {\n              attr_value.val = aVar40;\n              (*(code *)PTR_read_unsigned_LEB_128_x_004c2980)(puVar15,&len,uVar29);\n              puVar15 = pattr + len;\n              uVar29 = extraout_v1;\n              aVar40 = attr_value.val;\n            }\n            else {\n              len = 1;\n            }\n            puVar18 = puVar15 + -(int)puVar30;\n            puVar28 = puVar18 + (int)this->die_offset_;\n            iVar36 = (uint)(puVar28 < puVar18) + ((int)puVar18 >> 0x1f) + *(int *)&this->die_offset_\n            ;\n            attr_value.form = uVar29;\n            pattr = puVar15;\n            if (uVar29 != 0xe) break;\nLAB_002e31fc:\n            attr_value.aux.shndx = 0;\n            pDVar22 = this->dwinfo_;\n            attr_value.attr = uVar32;\n            local_30 = puVar28;\n            attr_value.val = aVar40;\n            if (pDVar22->offset_size_ == 4) {\n              pp_Var16 = (pDVar22->object_->super_Object)._vptr_Object;\n              p_Var37 = pp_Var16[3];\n              if (p_Var37 == (_func_int_varargs *)PTR_is_big_endian_004c2950) {\n                iVar36 = (*pp_Var16[0x3a])();\n              }\n              else {\n                iVar36 = (*p_Var37)();\n              }\n              uVar29 = *(uint *)pattr;\n              if (iVar36 == 0) {\n                uVar29 = (((uVar29 >> 0x10) << 0x18 | (uVar29 >> 0x18) << 0x10) >> 0x10) +\n                         ((uVar29 & 0xff) << 8 | uVar29 >> 8 & 0xff) * 0x10000;\n              }\n              pattr = pattr + 4;\n              uVar38 = (ulonglong)uVar29;\n            }\n            else {\n              uVar38 = (*local_34)(pDVar22,&pattr);\n            }\n            str_off = uVar38;\n            attr_value.aux.shndx = (*local_3c)(this->dwinfo_);\n            aVar7.refval = str_off;\n            if (uVar32 != 0x31) {\n              if (uVar32 < 0x32) {\n                if ((uVar32 != 1) && (aVar39.refval = str_off, uVar32 == 3)) {\nLAB_002e3284:\n                  this->string_shndx_ = (uint)attr_value.aux;\n                  this->name_off_ = (off_t)aVar39;\n                  aVar7 = aVar39;\n                }\n              }\n              else {\n                aVar40.refval = str_off;\n                if (uVar32 == 0x6e) {\nLAB_002e387c:\n                  this->string_shndx_ = (uint)attr_value.aux;\n                }\n                else {\n                  if (uVar32 != 0x2007) goto LAB_002e313c;\n                  this->string_shndx_ = (uint)attr_value.aux;\n                }\n                this->linkage_name_off_ = (off_t)aVar40;\n                aVar7 = aVar40;\n              }\n            }\nLAB_002e313c:\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            aVar40 = aVar7;\n          }\n        } while( true );" do (compound_statement "{\n          attr_value.val.intval._4_4_ = (undefined4)aVar40.intval;\n          attr_value.aux.shndx = 0;\n          attr_value.attr = uVar32;\n          attr_value.form = uVar29;\n          attr_value.val = aVar40;\n          if (0xe < uVar29) {\n            if (uVar29 == 0x15) {\n              if ((char)*pattr < '\0') {\n                aVar39.intval = (*(code *)PTR_read_unsigned_LEB_128_x_004c2980)(pattr + 1,&len);\n                pattr = pattr + len;\n              }\n              else {\n                aVar39.intval._0_7_ = 0;\n                aVar39.intval._7_1_ = *pattr;\n                len = 1;\n                pattr = pattr + 1;\n              }\n              goto joined_r0x002e3998;\n            }\n            if (0x15 < uVar29) {\n              if (uVar29 == 0x19) {\n                attr_value.val.intval._4_4_ = 1;\n                attr_value.val.stringval = (char *)0x0;\n              }\n              else {\n                if (uVar29 < 0x1a) {\n                  if (uVar29 != 0x17) {\n                    if (uVar29 != 0x18) {\n                      return false;\n                    }\n                    goto LAB_002e32bc;\n                  }\n                  pDVar22 = this->dwinfo_;\n                  if (pDVar22->offset_size_ == 4) {\n                    pp_Var16 = (pDVar22->object_->super_Object)._vptr_Object;\n                    p_Var37 = pp_Var16[3];\n                    if (p_Var37 == (_func_int_varargs *)PTR_is_big_endian_004c2950) {\n                      local_30 = puVar28;\n                      iVar36 = (*pp_Var16[0x3a])();\n                    }\n                    else {\n                      local_30 = puVar28;\n                      iVar36 = (*p_Var37)();\n                    }\n                    uVar23 = *(uint *)pattr;\n                    if (iVar36 == 0) {\n                      uVar23 = (((uVar23 >> 0x10) << 0x18 | (uVar23 >> 0x18) << 0x10) >> 0x10) +\n                               ((uVar23 & 0xff) << 8 | uVar23 >> 8 & 0xff) * 0x10000;\n                    }\n                    pattr = pattr + 4;\n                    uVar38 = (ulonglong)uVar23;\n                  }\n                  else {\n                    local_30 = puVar28;\n                    uVar38 = (*local_34)(pDVar22,&pattr);\n                  }\n                  pDVar22 = this->dwinfo_;\n                  goto LAB_002e3970;\n                }\n                if (uVar29 != 0x20) {\n                  if (uVar29 < 0x20) {\n                    return false;\n                  }\n                  if (1 < uVar29 - 0x1f01) {\n                    return false;\n                  }\nLAB_002e34d8:\n                  if ((char)*pattr < '\0') {\n                    aVar40.intval = (*(code *)PTR_read_unsigned_LEB_128_x_004c2980)(pattr + 1,&len);\n                    pattr = pattr + len;\n                  }\n                  else {\n                    aVar40.intval._0_7_ = 0;\n                    aVar40.intval._7_1_ = *pattr;\n                    len = 1;\n                    pattr = pattr + 1;\n                  }\n                  goto LAB_002e382c;\n                }\n                pp_Var16 = (this->dwinfo_->object_->super_Object)._vptr_Object;\n                p_Var37 = pp_Var16[3];\n                if (p_Var37 == (_func_int_varargs *)PTR_is_big_endian_004c2950) {\n                  iVar36 = (*pp_Var16[0x3a])();\n                }\n                else {\n                  iVar36 = (*p_Var37)();\n                }\n                    /* WARNING: Load size is inaccurate */\n                attr_value.val._4_4_ = pattr[4];\n                    /* WARNING: Load size is inaccurate */\n                attr_value.val.blockval = *pattr;\n                if (iVar36 == 0) {\n                  uVar23 = attr_value.val.uintval._4_4_ & 0xff;\n                  uVar26 = (uint)attr_value.val.uintval._4_4_ >> 8;\n                  uVar2 = (uint)attr_value.val.uintval._4_4_ >> 0x10;\n                  uVar4 = (uint)attr_value.val.uintval._4_4_ >> 0x18;\n                  attr_value.val.intval._4_4_ =\n                       ((((uint)attr_value.val.stringval >> 0x10) << 0x18 |\n                        ((uint)attr_value.val.stringval >> 0x18) << 0x10) >> 0x10) +\n                       (((uint)attr_value.val.stringval & 0xff) << 8 |\n                       (uint)attr_value.val.stringval >> 8 & 0xff) * 0x10000;\n                  attr_value.val.stringval =\n                       (char *)(((uVar2 << 0x18 | uVar4 << 0x10) >> 0x10) +\n                               (uVar23 << 8 | uVar26 & 0xff) * 0x10000);\n                }\n                pattr = pattr + 8;\n              }\n              aVar39.stringval = attr_value.val.stringval;\n              aVar39.intval._4_4_ = attr_value.val.intval._4_4_;\n              aVar11.stringval = attr_value.val.stringval;\n              aVar11.intval._4_4_ = attr_value.val.intval._4_4_;\n              aVar7.stringval = attr_value.val.stringval;\n              aVar7.intval._4_4_ = attr_value.val.intval._4_4_;\n              if (uVar32 == 0x6e) goto LAB_002e313c;\n              aVar7 = aVar11;\n              if (uVar32 == 0x2007) goto LAB_002e313c;\n              goto joined_r0x002e3124;\n            }\n            if (uVar29 == 0x11) {\n              puVar15 = pattr + 1;\n              uVar23 = CONCAT31(0,*pattr);\n              aVar39.stringval = (char *)0x0;\n              aVar39.intval._4_4_ = uVar23;\n              aVar12.stringval = (char *)0x0;\n              aVar12.uintval._4_4_ = uVar23;\n              aVar40.stringval = (char *)0x0;\n              aVar40.uintval._4_4_ = uVar23;\n              aVar10.stringval = (char *)0x0;\n              aVar10.uintval._4_4_ = uVar23;\n              aVar7.stringval = (char *)0x0;\n              aVar7.uintval._4_4_ = uVar23;\n              aVar9.stringval = (char *)0x0;\n              aVar9.uintval._4_4_ = uVar23;\n              pattr = puVar15;\n              if (uVar32 == 0x31) goto LAB_002e30bc;\n              if (0x31 < uVar32) {\n                if ((uVar32 != 0x6e) && (aVar40 = aVar12, uVar32 != 0x2007)) {\n                  if (uVar32 != 0x47) goto LAB_002e313c;\n                  *(undefined4 *)&this->specification_ = 0;\n                  *(uint *)((int)&this->specification_ + 4) = uVar23;\n                  aVar7 = aVar10;\n                  goto LAB_002e313c;\n                }\n                goto LAB_002e3858;\n              }\n              if (uVar32 == 1) {\n                *(undefined4 *)&this->sibling_offset_ = 0;\n                *(uint *)((int)&this->sibling_offset_ + 4) = uVar23;\n                aVar7 = aVar9;\n                goto LAB_002e313c;\n              }\n              goto joined_r0x002e3124;\n            }\n            if (uVar29 < 0x12) {\n              if (uVar29 == 0xf) goto LAB_002e34d8;\n              if (uVar29 != 0x10) {\n                return false;\n              }\n              pDVar22 = this->dwinfo_;\n              uVar23 = pDVar22->offset_size_;\n              if (pDVar22->cu_version_ < 3) {\n                uVar23 = pDVar22->address_size_;\n              }\n              if (uVar23 == 4) {\n                pp_Var16 = (pDVar22->object_->super_Object)._vptr_Object;\n                p_Var37 = pp_Var16[3];\n                if (p_Var37 == (_func_int_varargs *)PTR_is_big_endian_004c2950) {\n                  local_30 = puVar28;\n                  iVar36 = (*pp_Var16[0x3a])();\n                }\n                else {\n                  local_30 = puVar28;\n                  iVar36 = (*p_Var37)();\n                }\n                uVar23 = *(uint *)pattr;\n                if (iVar36 == 0) {\n                  uVar23 = (((uVar23 >> 0x10) << 0x18 | (uVar23 >> 0x18) << 0x10) >> 0x10) +\n                           ((uVar23 & 0xff) << 8 | uVar23 >> 8 & 0xff) * 0x10000;\n                }\n                pattr = pattr + 4;\n                uVar38 = (ulonglong)uVar23;\n              }\n              else {\n                local_30 = puVar28;\n                uVar38 = (*local_34)(pDVar22,&pattr);\n              }\n              str_off = uVar38;\n              attr_value.aux.shndx = (*local_3c)(this->dwinfo_);\n              aVar39.refval = str_off;\n            }\n            else {\n              if (uVar29 == 0x13) {\n                pp_Var16 = (this->dwinfo_->object_->super_Object)._vptr_Object;\n                p_Var37 = pp_Var16[3];\n                if (p_Var37 == (_func_int_varargs *)PTR_is_big_endian_004c2950) {\n                  local_30 = puVar28;\n                  iVar36 = (*pp_Var16[0x3a])();\n                }\n                else {\n                  local_30 = puVar28;\n                  iVar36 = (*p_Var37)();\n                }\n                uVar23 = *(uint *)pattr;\n                if (iVar36 == 0) {\n                  uVar23 = (((uVar23 >> 0x10) << 0x18 | (uVar23 >> 0x18) << 0x10) >> 0x10) +\n                           ((uVar23 & 0xff) << 8 | uVar23 >> 8 & 0xff) * 0x10000;\n                }\n                pattr = pattr + 4;\n                pDVar22 = this->dwinfo_;\n                uVar38 = (ulonglong)uVar23;\n              }\n              else {\n                if (uVar29 < 0x14) {\n                  pp_Var16 = (this->dwinfo_->object_->super_Object)._vptr_Object;\n                  p_Var37 = pp_Var16[3];\n                  if (p_Var37 == (_func_int_varargs *)PTR_is_big_endian_004c2950) {\n                    iVar36 = (*pp_Var16[0x3a])();\n                  }\n                  else {\n                    iVar36 = (*p_Var37)();\n                  }\n                  uVar6 = *(ushort *)pattr;\n                  if (iVar36 == 0) {\n                    uVar6 = CONCAT11(pattr[1],*pattr);\n                  }\n                  aVar39.intval._0_6_ = 0;\n                  aVar39.intval._6_2_ = uVar6;\n                  pattr = pattr + 2;\n                  goto joined_r0x002e3998;\n                }\n                pp_Var16 = (this->dwinfo_->object_->super_Object)._vptr_Object;\n                p_Var37 = pp_Var16[3];\n                if (p_Var37 == (_func_int_varargs *)PTR_is_big_endian_004c2950) {\n                  local_30 = puVar28;\n                  iVar36 = (*pp_Var16[0x3a])();\n                }\n                else {\n                  local_30 = puVar28;\n                  iVar36 = (*p_Var37)();\n                }\n                uVar23 = *(uint *)(pattr + 4);\n                uVar26 = *(uint *)pattr;\n                if (iVar36 == 0) {\n                  uVar2 = uVar23 & 0xff;\n                  uVar4 = uVar23 >> 8;\n                  uVar3 = uVar23 >> 0x10;\n                  uVar5 = uVar23 >> 0x18;\n                  uVar23 = (((uVar26 >> 0x10) << 0x18 | (uVar26 >> 0x18) << 0x10) >> 0x10) +\n                           ((uVar26 & 0xff) << 8 | uVar26 >> 8 & 0xff) * 0x10000;\n                  uVar26 = ((uVar3 << 0x18 | uVar5 << 0x10) >> 0x10) +\n                           (uVar2 << 8 | uVar4 & 0xff) * 0x10000;\n                }\n                uVar38 = CONCAT44(uVar26,uVar23);\n                pattr = pattr + 8;\n                pDVar22 = this->dwinfo_;\n              }\nLAB_002e3970:\n              str_off = uVar38;\n              attr_value.aux.shndx = (*local_3c)(pDVar22);\n              aVar39.refval = str_off;\n            }\njoined_r0x002e3998:\n            if (uVar32 == 0x31) {\nLAB_002e30bc:\n              this->abstract_origin_ = (off_t)aVar39;\n              aVar7 = aVar39;\n              goto LAB_002e313c;\n            }\n            if (uVar32 < 0x32) {\n              aVar7 = aVar39;\n              if (uVar32 != 1) goto LAB_002e313c;\nLAB_002e39b4:\n              aVar7 = aVar39;\n              if (attr_value.aux.shndx != 0) goto LAB_002e313c;\n              this->sibling_offset_ = (off_t)aVar39;\n              goto LAB_002e313c;\n            }\n            aVar40 = aVar39;\n            if ((uVar32 != 0x6e) && (uVar32 != 0x2007)) {\nLAB_002e339c:\n              aVar7 = aVar39;\n              if (uVar32 != 0x47) goto LAB_002e313c;\n              this->specification_ = (off_t)aVar39;\n              goto LAB_002e313c;\n            }\n            goto LAB_002e3858;\n          }\n          if (uVar29 == 7) {\n            pp_Var16 = (this->dwinfo_->object_->super_Object)._vptr_Object;\n            p_Var37 = pp_Var16[3];\n            if (p_Var37 == (_func_int_varargs *)PTR_is_big_endian_004c2950) {\n              local_30 = puVar28;\n              iVar17 = (*pp_Var16[0x3a])();\n            }\n            else {\n              local_30 = puVar28;\n              iVar17 = (*p_Var37)();\n            }\n            str_off._4_4_ = *(char **)(pattr + 4);\n            pcVar25 = *(char **)pattr;\n            if (iVar17 == 0) {\n              uVar23 = (uint)str_off._4_4_ & 0xff;\n              uVar26 = (uint)str_off._4_4_ >> 8;\n              uVar2 = (uint)str_off._4_4_ >> 0x10;\n              uVar4 = (uint)str_off._4_4_ >> 0x18;\n              str_off._4_4_ =\n                   (char *)(((((uint)pcVar25 >> 0x10) << 0x18 | ((uint)pcVar25 >> 0x18) << 0x10) >>\n                            0x10) + (((uint)pcVar25 & 0xff) << 8 | (uint)pcVar25 >> 8 & 0xff) *\n                                    0x10000);\n              pcVar25 = (char *)(((uVar2 << 0x18 | uVar4 << 0x10) >> 0x10) +\n                                (uVar23 << 8 | uVar26 & 0xff) * 0x10000);\n            }\n            pattr = pattr + 8;\n            pDVar22 = this->dwinfo_;\n            str_off._0_4_ = pcVar25;\nLAB_002e3708:\n            attr_value.aux.shndx = (*local_3c)(pDVar22,pcVar25,iVar36,local_30,local_40.shndx);\n            attr_value.val._4_4_ = str_off._4_4_;\n            attr_value.val.stringval = str_off._0_4_;\n            goto LAB_002e355c;\n          }\n          if (7 < uVar29) {\n            if (uVar29 == 10) {\n              attr_value.val.stringval = (char *)(pattr + 1);\n              attr_value.aux.shndx._0_3_ = 0;\n              attr_value.aux.shndx._3_1_ = *pattr;\n              pattr = (uchar *)((int)attr_value.val.stringval + attr_value.aux.shndx);\n              goto LAB_002e355c;\n            }\n            if (uVar29 < 0xb) {\n              if (uVar29 != 8) {\n                if (uVar29 != 9) {\n                  return false;\n                }\nLAB_002e32bc:\n                aVar27.shndx._0_3_ = 0;\n                aVar27.shndx._3_1_ = *pattr;\n                puVar15 = pattr + 1;\n                if ((char)*pattr < '\0') {\n                  (*(code *)PTR_read_unsigned_LEB_128_x_004c2980)(puVar15,&len);\n                  puVar15 = pattr + len;\n                  aVar27 = extraout_v1_00;\n                }\n                else {\n                  len = 1;\n                }\n                aVar40.blockval = puVar15;\n                aVar40.intval._4_4_ = attr_value.val.intval._4_4_;\n                attr_value.aux = aVar27;\n                pattr = pattr + aVar27.shndx + len;\n                goto LAB_002e382c;\n              }\n              attr_value.val.blockval = pattr;\n              local_30 = pattr;\n              len = (*(code *)PTR_strlen_004c5b9c)(pattr);\n              aVar40.stringval = attr_value.val.stringval;\n              aVar40.intval._4_4_ = attr_value.val.intval._4_4_;\n              aVar8.stringval = attr_value.val.stringval;\n              aVar8.intval._4_4_ = attr_value.val.intval._4_4_;\n              aVar7.stringval = attr_value.val.stringval;\n              aVar7.intval._4_4_ = attr_value.val.intval._4_4_;\n              pattr = local_30 + len + 1;\n              if (uVar32 == 0x31) goto LAB_002e313c;\n              if (0x31 < uVar32) {\n                if ((uVar32 != 0x6e) && (aVar7 = aVar8, uVar32 != 0x2007)) goto LAB_002e313c;\n                this->linkage_name_ = (char *)local_30;\n                aVar7 = aVar40;\n                goto LAB_002e313c;\n              }\nLAB_002e3118:\n              aVar7 = aVar40;\n              aVar39 = aVar40;\n              if (uVar32 == 1) goto LAB_002e313c;\njoined_r0x002e3124:\n              aVar7 = aVar39;\n              if (uVar32 != 3) goto LAB_002e313c;\n              attr_value.val.stringval = (char *)((ulonglong)aVar39 >> 0x20);\n              if (uVar29 == 8) {\n                this->name_ = attr_value.val.stringval;\n                goto LAB_002e313c;\n              }\n              if (uVar29 != 0xe) goto LAB_002e313c;\n              goto LAB_002e3284;\n            }\n            if (uVar29 < 0xd) {\n              aVar40.intval._0_7_ = 0;\n              aVar40.uintval._7_1_ = *pattr;\n              pattr = pattr + 1;\nLAB_002e382c:\n              aVar7 = aVar40;\n              if (uVar32 == 0x31) goto LAB_002e313c;\n              if (uVar32 < 0x32) goto LAB_002e3118;\n            }\n            else {\n              bVar1 = *pattr;\n              uVar23 = CONCAT31(0,bVar1);\n              puVar15 = pattr + 1;\n              if ((char)bVar1 < '\0') {\n                aVar40.intval = (*(code *)PTR_read_signed_LEB_128_x_004c297c)(puVar15,&len,uVar23);\n                puVar15 = pattr + len;\n              }\n              else {\n                len = 1;\n                aVar40.stringval = (char *)0x0;\n                aVar40.uintval._4_4_ = uVar23;\n                if ((bVar1 & 0x40) != 0) {\n                  aVar40.stringval = (char *)0xffffffff;\n                  aVar40.uintval._4_4_ = uVar23 | 0xffffff80;\n                }\n              }\n              pattr = puVar15;\n              aVar7 = aVar40;\n              if (uVar32 == 0x31) goto LAB_002e313c;\n              if (uVar32 < 0x32) {\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                iVar36 = iVar34;\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_002e314c;\nLAB_002e2f98:\n                iVar34 = iVar34 + 8;\n                attr_value.val = aVar40;\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                          (local_38,__position,&attr_value);\n                pAVar13 = this->abbrev_code_;\n                if (iVar34 == iVar31) goto LAB_002e2fb8;\n                goto LAB_002e2db4;\n              }\n            }\n            if ((uVar32 != 0x6e) && (aVar7 = aVar40, uVar32 != 0x2007)) goto LAB_002e313c;\nLAB_002e3858:\n            attr_value.val._0_4_ = aVar40.stringval;\n            aVar7 = aVar40;\n            if (uVar29 == 8) {\n              this->linkage_name_ = attr_value.val.stringval;\n              goto LAB_002e313c;\n            }\n            if (uVar29 != 0xe) goto LAB_002e313c;\n            goto LAB_002e387c;\n          }\n          if (uVar29 == 4) {\n            pp_Var16 = (this->dwinfo_->object_->super_Object)._vptr_Object;\n            p_Var37 = pp_Var16[3];\n            if (p_Var37 == (_func_int_varargs *)PTR_is_big_endian_004c2950) {\n              iVar36 = (*pp_Var16[0x3a])();\n            }\n            else {\n              iVar36 = (*p_Var37)();\n            }\n            attr_value.aux.shndx = *(uint *)pattr;\n            if (iVar36 == 0) {\n              attr_value.aux.shndx =\n                   (((attr_value.aux.shndx >> 0x10) << 0x18 | (attr_value.aux.shndx >> 0x18) << 0x10\n                    ) >> 0x10) +\n                   ((attr_value.aux.shndx & 0xff) << 8 | attr_value.aux.shndx >> 8 & 0xff) * 0x10000\n              ;\n            }\n            attr_value.val.stringval = (char *)(pattr + 4);\n            pattr = (uchar *)((int)attr_value.val.stringval + attr_value.aux.shndx);\nLAB_002e355c:\n            aVar40.stringval = attr_value.val.stringval;\n            aVar40.intval._4_4_ = attr_value.val.intval._4_4_;\n            aVar7 = aVar40;\n            if (uVar32 == 0x31) goto LAB_002e313c;\n            if (uVar32 < 0x32) goto LAB_002e3118;\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          }\n          else {\n            if (4 < uVar29) {\n              if (uVar29 != 5) {\n                if (uVar29 != 6) {\n                  return false;\n                }\n                pp_Var16 = (this->dwinfo_->object_->super_Object)._vptr_Object;\n                p_Var37 = pp_Var16[3];\n                if (p_Var37 == (_func_int_varargs *)PTR_is_big_endian_004c2950) {\n                  local_30 = puVar28;\n                  iVar17 = (*pp_Var16[0x3a])();\n                }\n                else {\n                  local_30 = puVar28;\n                  iVar17 = (*p_Var37)();\n                }\n                pcVar25 = *(char **)pattr;\n                if (iVar17 == 0) {\n                  pcVar25 = (char *)(((((uint)pcVar25 >> 0x10) << 0x18 |\n                                      ((uint)pcVar25 >> 0x18) << 0x10) >> 0x10) +\n                                    (((uint)pcVar25 & 0xff) << 8 | (uint)pcVar25 >> 8 & 0xff) *\n                                    0x10000);\n                }\n                pattr = pattr + 4;\n                pDVar22 = this->dwinfo_;\n                str_off._0_4_ = (char *)0x0;\n                str_off._4_4_ = pcVar25;\n                goto LAB_002e3708;\n              }\n              pp_Var16 = (this->dwinfo_->object_->super_Object)._vptr_Object;\n              p_Var37 = pp_Var16[3];\n              if (p_Var37 == (_func_int_varargs *)PTR_is_big_endian_004c2950) {\n                iVar36 = (*pp_Var16[0x3a])();\n              }\n              else {\n                iVar36 = (*p_Var37)();\n              }\n              uVar6 = *(ushort *)pattr;\n              if (iVar36 == 0) {\n                uVar6 = CONCAT11(pattr[1],*pattr);\n              }\n              attr_value.val.intval._4_4_ = ZEXT24(uVar6);\n              pattr = pattr + 2;\n              attr_value.val.stringval = (char *)0x0;\n              goto LAB_002e355c;\n            }\n            if (uVar29 != 1) {\n              if (uVar29 != 3) {\n                return false;\n              }\n              pp_Var16 = (this->dwinfo_->object_->super_Object)._vptr_Object;\n              p_Var37 = pp_Var16[3];\n              if (p_Var37 == (_func_int_varargs *)PTR_is_big_endian_004c2950) {\n                iVar36 = (*pp_Var16[0x3a])();\n              }\n              else {\n                iVar36 = (*p_Var37)();\n              }\n              uVar6 = *(ushort *)pattr;\n              if (iVar36 == 0) {\n                uVar6 = CONCAT11(pattr[1],*pattr);\n              }\n              attr_value.aux.shndx._0_2_ = 0;\n              attr_value.aux.shndx._2_2_ = uVar6;\n              attr_value.val.stringval = (char *)(pattr + 2);\n              pattr = (uchar *)((int)attr_value.val.stringval + attr_value.aux.shndx);\n              goto LAB_002e355c;\n            }\n            pDVar22 = this->dwinfo_;\n            if (pDVar22->address_size_ == 4) {\n              pp_Var16 = (pDVar22->object_->super_Object)._vptr_Object;\n              p_Var37 = pp_Var16[3];\n              if (p_Var37 == (_func_int_varargs *)PTR_is_big_endian_004c2950) {\n                local_30 = puVar28;\n                iVar36 = (*pp_Var16[0x3a])();\n              }\n              else {\n                local_30 = puVar28;\n                iVar36 = (*p_Var37)();\n              }\n              uVar23 = *(uint *)pattr;\n              if (iVar36 == 0) {\n                uVar23 = (((uVar23 >> 0x10) << 0x18 | (uVar23 >> 0x18) << 0x10) >> 0x10) +\n                         ((uVar23 & 0xff) << 8 | uVar23 >> 8 & 0xff) * 0x10000;\n              }\n              pattr = pattr + 4;\n              uVar38 = (ulonglong)uVar23;\n            }\n            else {\n              local_30 = puVar28;\n              uVar38 = (*local_34)(pDVar22,&pattr);\n            }\n            str_off = uVar38;\n            attr_value.aux.shndx = (*local_3c)(this->dwinfo_);\n            aVar39.refval = str_off;\n            if (uVar32 == 0x31) goto LAB_002e30bc;\n            if (uVar32 < 0x32) {\n              if (uVar32 != 1) goto joined_r0x002e3124;\n              goto LAB_002e39b4;\n            }\n            aVar7.refval = str_off;\n            if (uVar32 == 0x6e) goto LAB_002e313c;\n            if (uVar32 != 0x2007) goto LAB_002e339c;\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            aVar40.refval = str_off;\n          }\n          while( true ) {\n            iVar36 = iVar34;\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_002e2f98;\nLAB_002e314c:\n            attr_value.val.stringval = (char *)((ulonglong)aVar40 >> 0x20);\n            attr_value.val.intval._4_4_ = (undefined4)aVar40.intval;\n            iVar34 = iVar36 + 8;\n            (__position._M_current)->form = attr_value.form;\n            ((__position._M_current)->val).stringval = attr_value.val.stringval;\n            (__position._M_current)->attr = attr_value.attr;\n            *(undefined4 *)((int)&(__position._M_current)->val + 4) = attr_value.val.intval._4_4_;\n            (__position._M_current)->aux = attr_value.aux;\n            *(undefined4 *)&(__position._M_current)->field_0x14 = attr_value._20_4_;\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            pAVar13 = this->abbrev_code_;\n            attr_value.val = aVar40;\n            if (iVar34 == iVar31) goto LAB_002e2fb8;\n            puVar14 = (uint *)((int)&(pAVar13->attributes).\n                                     super__Vector_base<gold::Dwarf_abbrev_table::Attribute,_std::allocator<gold::Dwarf_abbrev_table::Attribute>_>\n                                     ._M_impl._M_start[1].attr + iVar36);\n            uVar29 = puVar14[1];\n            uVar32 = *puVar14;\n            if (uVar29 != 0x16) goto LAB_002e2dd0;\nLAB_002e31a8:\n            uVar29 = (uint)*pattr;\n            puVar15 = pattr + 1;\n            if ((char)*pattr < '\0') {\n              attr_value.val = aVar40;\n              (*(code *)PTR_read_unsigned_LEB_128_x_004c2980)(puVar15,&len,uVar29);\n              puVar15 = pattr + len;\n              uVar29 = extraout_v1;\n              aVar40 = attr_value.val;\n            }\n            else {\n              len = 1;\n            }\n            puVar18 = puVar15 + -(int)puVar30;\n            puVar28 = puVar18 + (int)this->die_offset_;\n            iVar36 = (uint)(puVar28 < puVar18) + ((int)puVar18 >> 0x1f) + *(int *)&this->die_offset_\n            ;\n            attr_value.form = uVar29;\n            pattr = puVar15;\n            if (uVar29 != 0xe) break;\nLAB_002e31fc:\n            attr_value.aux.shndx = 0;\n            pDVar22 = this->dwinfo_;\n            attr_value.attr = uVar32;\n            local_30 = puVar28;\n            attr_value.val = aVar40;\n            if (pDVar22->offset_size_ == 4) {\n              pp_Var16 = (pDVar22->object_->super_Object)._vptr_Object;\n              p_Var37 = pp_Var16[3];\n              if (p_Var37 == (_func_int_varargs *)PTR_is_big_endian_004c2950) {\n                iVar36 = (*pp_Var16[0x3a])();\n              }\n              else {\n                iVar36 = (*p_Var37)();\n              }\n              uVar29 = *(uint *)pattr;\n              if (iVar36 == 0) {\n                uVar29 = (((uVar29 >> 0x10) << 0x18 | (uVar29 >> 0x18) << 0x10) >> 0x10) +\n                         ((uVar29 & 0xff) << 8 | uVar29 >> 8 & 0xff) * 0x10000;\n              }\n              pattr = pattr + 4;\n              uVar38 = (ulonglong)uVar29;\n            }\n            else {\n              uVar38 = (*local_34)(pDVar22,&pattr);\n            }\n            str_off = uVar38;\n            attr_value.aux.shndx = (*local_3c)(this->dwinfo_);\n            aVar7.refval = str_off;\n            if (uVar32 != 0x31) {\n              if (uVar32 < 0x32) {\n                if ((uVar32 != 1) && (aVar39.refval = str_off, uVar32 == 3)) {\nLAB_002e3284:\n                  this->string_shndx_ = (uint)attr_value.aux;\n                  this->name_off_ = (off_t)aVar39;\n                  aVar7 = aVar39;\n                }\n              }\n              else {\n                aVar40.refval = str_off;\n                if (uVar32 == 0x6e) {\nLAB_002e387c:\n                  this->string_shndx_ = (uint)attr_value.aux;\n                }\n                else {\n                  if (uVar32 != 0x2007) goto LAB_002e313c;\n                  this->string_shndx_ = (uint)attr_value.aux;\n                }\n                this->linkage_name_off_ = (off_t)aVar40;\n                aVar7 = aVar40;\n              }\n            }\nLAB_002e313c:\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            aVar40 = aVar7;\n          }\n        }" { (expression_statement "attr_value.val.intval._4_4_ = (undefined4)aVar40.intval;" (assignment_expression "attr_value.val.intval._4_4_ = (undefined4)aVar40.intval" (field_expression "attr_value.val.intval._4_4_" (field_expression "attr_value.val.intval" (field_expression "attr_value.val" identifier . field_identifier) . field_identifier) . field_identifier) = (cast_expression "(undefined4)aVar40.intval" ( (type_descriptor "undefined4" type_identifier) ) (field_expression "aVar40.intval" identifier . field_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 = uVar32;" (assignment_expression "attr_value.attr = uVar32" (field_expression "attr_value.attr" identifier . field_identifier) = identifier) ;) (expression_statement "attr_value.form = uVar29;" (assignment_expression "attr_value.form = uVar29" (field_expression "attr_value.form" identifier . field_identifier) = identifier) ;) (expression_statement "attr_value.val = aVar40;" (assignment_expression "attr_value.val = aVar40" (field_expression "attr_value.val" identifier . field_identifier) = identifier) ;) (if_statement "if (0xe < uVar29) {\n            if (uVar29 == 0x15) {\n              if ((char)*pattr < '\0') {\n                aVar39.intval = (*(code *)PTR_read_unsigned_LEB_128_x_004c2980)(pattr + 1,&len);\n                pattr = pattr + len;\n              }\n              else {\n                aVar39.intval._0_7_ = 0;\n                aVar39.intval._7_1_ = *pattr;\n                len = 1;\n                pattr = pattr + 1;\n              }\n              goto joined_r0x002e3998;\n            }\n            if (0x15 < uVar29) {\n              if (uVar29 == 0x19) {\n                attr_value.val.intval._4_4_ = 1;\n                attr_value.val.stringval = (char *)0x0;\n              }\n              else {\n                if (uVar29 < 0x1a) {\n                  if (uVar29 != 0x17) {\n                    if (uVar29 != 0x18) {\n                      return false;\n                    }\n                    goto LAB_002e32bc;\n                  }\n                  pDVar22 = this->dwinfo_;\n                  if (pDVar22->offset_size_ == 4) {\n                    pp_Var16 = (pDVar22->object_->super_Object)._vptr_Object;\n                    p_Var37 = pp_Var16[3];\n                    if (p_Var37 == (_func_int_varargs *)PTR_is_big_endian_004c2950) {\n                      local_30 = puVar28;\n                      iVar36 = (*pp_Var16[0x3a])();\n                    }\n                    else {\n                      local_30 = puVar28;\n                      iVar36 = (*p_Var37)();\n                    }\n                    uVar23 = *(uint *)pattr;\n                    if (iVar36 == 0) {\n                      uVar23 = (((uVar23 >> 0x10) << 0x18 | (uVar23 >> 0x18) << 0x10) >> 0x10) +\n                               ((uVar23 & 0xff) << 8 | uVar23 >> 8 & 0xff) * 0x10000;\n                    }\n                    pattr = pattr + 4;\n                    uVar38 = (ulonglong)uVar23;\n                  }\n                  else {\n                    local_30 = puVar28;\n                    uVar38 = (*local_34)(pDVar22,&pattr);\n                  }\n                  pDVar22 = this->dwinfo_;\n                  goto LAB_002e3970;\n                }\n                if (uVar29 != 0x20) {\n                  if (uVar29 < 0x20) {\n                    return false;\n                  }\n                  if (1 < uVar29 - 0x1f01) {\n                    return false;\n                  }\nLAB_002e34d8:\n                  if ((char)*pattr < '\0') {\n                    aVar40.intval = (*(code *)PTR_read_unsigned_LEB_128_x_004c2980)(pattr + 1,&len);\n                    pattr = pattr + len;\n                  }\n                  else {\n                    aVar40.intval._0_7_ = 0;\n                    aVar40.intval._7_1_ = *pattr;\n                    len = 1;\n                    pattr = pattr + 1;\n                  }\n                  goto LAB_002e382c;\n                }\n                pp_Var16 = (this->dwinfo_->object_->super_Object)._vptr_Object;\n                p_Var37 = pp_Var16[3];\n                if (p_Var37 == (_func_int_varargs *)PTR_is_big_endian_004c2950) {\n                  iVar36 = (*pp_Var16[0x3a])();\n                }\n                else {\n                  iVar36 = (*p_Var37)();\n                }\n                    /* WARNING: Load size is inaccurate */\n                attr_value.val._4_4_ = pattr[4];\n                    /* WARNING: Load size is inaccurate */\n                attr_value.val.blockval = *pattr;\n                if (iVar36 == 0) {\n                  uVar23 = attr_value.val.uintval._4_4_ & 0xff;\n                  uVar26 = (uint)attr_value.val.uintval._4_4_ >> 8;\n                  uVar2 = (uint)attr_value.val.uintval._4_4_ >> 0x10;\n                  uVar4 = (uint)attr_value.val.uintval._4_4_ >> 0x18;\n                  attr_value.val.intval._4_4_ =\n                       ((((uint)attr_value.val.stringval >> 0x10) << 0x18 |\n                        ((uint)attr_value.val.stringval >> 0x18) << 0x10) >> 0x10) +\n                       (((uint)attr_value.val.stringval & 0xff) << 8 |\n                       (uint)attr_value.val.stringval >> 8 & 0xff) * 0x10000;\n                  attr_value.val.stringval =\n                       (char *)(((uVar2 << 0x18 | uVar4 << 0x10) >> 0x10) +\n                               (uVar23 << 8 | uVar26 & 0xff) * 0x10000);\n                }\n                pattr = pattr + 8;\n              }\n              aVar39.stringval = attr_value.val.stringval;\n              aVar39.intval._4_4_ = attr_value.val.intval._4_4_;\n              aVar11.stringval = attr_value.val.stringval;\n              aVar11.intval._4_4_ = attr_value.val.intval._4_4_;\n              aVar7.stringval = attr_value.val.stringval;\n              aVar7.intval._4_4_ = attr_value.val.intval._4_4_;\n              if (uVar32 == 0x6e) goto LAB_002e313c;\n              aVar7 = aVar11;\n              if (uVar32 == 0x2007) goto LAB_002e313c;\n              goto joined_r0x002e3124;\n            }\n            if (uVar29 == 0x11) {\n              puVar15 = pattr + 1;\n              uVar23 = CONCAT31(0,*pattr);\n              aVar39.stringval = (char *)0x0;\n              aVar39.intval._4_4_ = uVar23;\n              aVar12.stringval = (char *)0x0;\n              aVar12.uintval._4_4_ = uVar23;\n              aVar40.stringval = (char *)0x0;\n              aVar40.uintval._4_4_ = uVar23;\n              aVar10.stringval = (char *)0x0;\n              aVar10.uintval._4_4_ = uVar23;\n              aVar7.stringval = (char *)0x0;\n              aVar7.uintval._4_4_ = uVar23;\n              aVar9.stringval = (char *)0x0;\n              aVar9.uintval._4_4_ = uVar23;\n              pattr = puVar15;\n              if (uVar32 == 0x31) goto LAB_002e30bc;\n              if (0x31 < uVar32) {\n                if ((uVar32 != 0x6e) && (aVar40 = aVar12, uVar32 != 0x2007)) {\n                  if (uVar32 != 0x47) goto LAB_002e313c;\n                  *(undefined4 *)&this->specification_ = 0;\n                  *(uint *)((int)&this->specification_ + 4) = uVar23;\n                  aVar7 = aVar10;\n                  goto LAB_002e313c;\n                }\n                goto LAB_002e3858;\n              }\n              if (uVar32 == 1) {\n                *(undefined4 *)&this->sibling_offset_ = 0;\n                *(uint *)((int)&this->sibling_offset_ + 4) = uVar23;\n                aVar7 = aVar9;\n                goto LAB_002e313c;\n              }\n              goto joined_r0x002e3124;\n            }\n            if (uVar29 < 0x12) {\n              if (uVar29 == 0xf) goto LAB_002e34d8;\n              if (uVar29 != 0x10) {\n                return false;\n              }\n              pDVar22 = this->dwinfo_;\n              uVar23 = pDVar22->offset_size_;\n              if (pDVar22->cu_version_ < 3) {\n                uVar23 = pDVar22->address_size_;\n              }\n              if (uVar23 == 4) {\n                pp_Var16 = (pDVar22->object_->super_Object)._vptr_Object;\n                p_Var37 = pp_Var16[3];\n                if (p_Var37 == (_func_int_varargs *)PTR_is_big_endian_004c2950) {\n                  local_30 = puVar28;\n                  iVar36 = (*pp_Var16[0x3a])();\n                }\n                else {\n                  local_30 = puVar28;\n                  iVar36 = (*p_Var37)();\n                }\n                uVar23 = *(uint *)pattr;\n                if (iVar36 == 0) {\n                  uVar23 = (((uVar23 >> 0x10) << 0x18 | (uVar23 >> 0x18) << 0x10) >> 0x10) +\n                           ((uVar23 & 0xff) << 8 | uVar23 >> 8 & 0xff) * 0x10000;\n                }\n                pattr = pattr + 4;\n                uVar38 = (ulonglong)uVar23;\n              }\n              else {\n                local_30 = puVar28;\n                uVar38 = (*local_34)(pDVar22,&pattr);\n              }\n              str_off = uVar38;\n              attr_value.aux.shndx = (*local_3c)(this->dwinfo_);\n              aVar39.refval = str_off;\n            }\n            else {\n              if (uVar29 == 0x13) {\n                pp_Var16 = (this->dwinfo_->object_->super_Object)._vptr_Object;\n                p_Var37 = pp_Var16[3];\n                if (p_Var37 == (_func_int_varargs *)PTR_is_big_endian_004c2950) {\n                  local_30 = puVar28;\n                  iVar36 = (*pp_Var16[0x3a])();\n                }\n                else {\n                  local_30 = puVar28;\n                  iVar36 = (*p_Var37)();\n                }\n                uVar23 = *(uint *)pattr;\n                if (iVar36 == 0) {\n                  uVar23 = (((uVar23 >> 0x10) << 0x18 | (uVar23 >> 0x18) << 0x10) >> 0x10) +\n                           ((uVar23 & 0xff) << 8 | uVar23 >> 8 & 0xff) * 0x10000;\n                }\n                pattr = pattr + 4;\n                pDVar22 = this->dwinfo_;\n                uVar38 = (ulonglong)uVar23;\n              }\n              else {\n                if (uVar29 < 0x14) {\n                  pp_Var16 = (this->dwinfo_->object_->super_Object)._vptr_Object;\n                  p_Var37 = pp_Var16[3];\n                  if (p_Var37 == (_func_int_varargs *)PTR_is_big_endian_004c2950) {\n                    iVar36 = (*pp_Var16[0x3a])();\n                  }\n                  else {\n                    iVar36 = (*p_Var37)();\n                  }\n                  uVar6 = *(ushort *)pattr;\n                  if (iVar36 == 0) {\n                    uVar6 = CONCAT11(pattr[1],*pattr);\n                  }\n                  aVar39.intval._0_6_ = 0;\n                  aVar39.intval._6_2_ = uVar6;\n                  pattr = pattr + 2;\n                  goto joined_r0x002e3998;\n                }\n                pp_Var16 = (this->dwinfo_->object_->super_Object)._vptr_Object;\n                p_Var37 = pp_Var16[3];\n                if (p_Var37 == (_func_int_varargs *)PTR_is_big_endian_004c2950) {\n                  local_30 = puVar28;\n                  iVar36 = (*pp_Var16[0x3a])();\n                }\n                else {\n                  local_30 = puVar28;\n                  iVar36 = (*p_Var37)();\n                }\n                uVar23 = *(uint *)(pattr + 4);\n                uVar26 = *(uint *)pattr;\n                if (iVar36 == 0) {\n                  uVar2 = uVar23 & 0xff;\n                  uVar4 = uVar23 >> 8;\n                  uVar3 = uVar23 >> 0x10;\n                  uVar5 = uVar23 >> 0x18;\n                  uVar23 = (((uVar26 >> 0x10) << 0x18 | (uVar26 >> 0x18) << 0x10) >> 0x10) +\n                           ((uVar26 & 0xff) << 8 | uVar26 >> 8 & 0xff) * 0x10000;\n                  uVar26 = ((uVar3 << 0x18 | uVar5 << 0x10) >> 0x10) +\n                           (uVar2 << 8 | uVar4 & 0xff) * 0x10000;\n                }\n                uVar38 = CONCAT44(uVar26,uVar23);\n                pattr = pattr + 8;\n                pDVar22 = this->dwinfo_;\n              }\nLAB_002e3970:\n              str_off = uVar38;\n              attr_value.aux.shndx = (*local_3c)(pDVar22);\n              aVar39.refval = str_off;\n            }\njoined_r0x002e3998:\n            if (uVar32 == 0x31) {\nLAB_002e30bc:\n              this->abstract_origin_ = (off_t)aVar39;\n              aVar7 = aVar39;\n              goto LAB_002e313c;\n            }\n            if (uVar32 < 0x32) {\n              aVar7 = aVar39;\n              if (uVar32 != 1) goto LAB_002e313c;\nLAB_002e39b4:\n              aVar7 = aVar39;\n              if (attr_value.aux.shndx != 0) goto LAB_002e313c;\n              this->sibling_offset_ = (off_t)aVar39;\n              goto LAB_002e313c;\n            }\n            aVar40 = aVar39;\n            if ((uVar32 != 0x6e) && (uVar32 != 0x2007)) {\nLAB_002e339c:\n              aVar7 = aVar39;\n              if (uVar32 != 0x47) goto LAB_002e313c;\n              this->specification_ = (off_t)aVar39;\n              goto LAB_002e313c;\n            }\n            goto LAB_002e3858;\n          }" if (parenthesized_expression "(0xe < uVar29)" ( (binary_expression "0xe < uVar29" number_literal < identifier) )) (compound_statement "{\n            if (uVar29 == 0x15) {\n              if ((char)*pattr < '\0') {\n                aVar39.intval = (*(code *)PTR_read_unsigned_LEB_128_x_004c2980)(pattr + 1,&len);\n                pattr = pattr + len;\n              }\n              else {\n                aVar39.intval._0_7_ = 0;\n                aVar39.intval._7_1_ = *pattr;\n                len = 1;\n                pattr = pattr + 1;\n              }\n              goto joined_r0x002e3998;\n            }\n            if (0x15 < uVar29) {\n              if (uVar29 == 0x19) {\n                attr_value.val.intval._4_4_ = 1;\n                attr_value.val.stringval = (char *)0x0;\n              }\n              else {\n                if (uVar29 < 0x1a) {\n                  if (uVar29 != 0x17) {\n                    if (uVar29 != 0x18) {\n                      return false;\n                    }\n                    goto LAB_002e32bc;\n                  }\n                  pDVar22 = this->dwinfo_;\n                  if (pDVar22->offset_size_ == 4) {\n                    pp_Var16 = (pDVar22->object_->super_Object)._vptr_Object;\n                    p_Var37 = pp_Var16[3];\n                    if (p_Var37 == (_func_int_varargs *)PTR_is_big_endian_004c2950) {\n                      local_30 = puVar28;\n                      iVar36 = (*pp_Var16[0x3a])();\n                    }\n                    else {\n                      local_30 = puVar28;\n                      iVar36 = (*p_Var37)();\n                    }\n                    uVar23 = *(uint *)pattr;\n                    if (iVar36 == 0) {\n                      uVar23 = (((uVar23 >> 0x10) << 0x18 | (uVar23 >> 0x18) << 0x10) >> 0x10) +\n                               ((uVar23 & 0xff) << 8 | uVar23 >> 8 & 0xff) * 0x10000;\n                    }\n                    pattr = pattr + 4;\n                    uVar38 = (ulonglong)uVar23;\n                  }\n                  else {\n                    local_30 = puVar28;\n                    uVar38 = (*local_34)(pDVar22,&pattr);\n                  }\n                  pDVar22 = this->dwinfo_;\n                  goto LAB_002e3970;\n                }\n                if (uVar29 != 0x20) {\n                  if (uVar29 < 0x20) {\n                    return false;\n                  }\n                  if (1 < uVar29 - 0x1f01) {\n                    return false;\n                  }\nLAB_002e34d8:\n                  if ((char)*pattr < '\0') {\n                    aVar40.intval = (*(code *)PTR_read_unsigned_LEB_128_x_004c2980)(pattr + 1,&len);\n                    pattr = pattr + len;\n                  }\n                  else {\n                    aVar40.intval._0_7_ = 0;\n                    aVar40.intval._7_1_ = *pattr;\n                    len = 1;\n                    pattr = pattr + 1;\n                  }\n                  goto LAB_002e382c;\n                }\n                pp_Var16 = (this->dwinfo_->object_->super_Object)._vptr_Object;\n                p_Var37 = pp_Var16[3];\n                if (p_Var37 == (_func_int_varargs *)PTR_is_big_endian_004c2950) {\n                  iVar36 = (*pp_Var16[0x3a])();\n                }\n                else {\n                  iVar36 = (*p_Var37)();\n                }\n                    /* WARNING: Load size is inaccurate */\n                attr_value.val._4_4_ = pattr[4];\n                    /* WARNING: Load size is inaccurate */\n                attr_value.val.blockval = *pattr;\n                if (iVar36 == 0) {\n                  uVar23 = attr_value.val.uintval._4_4_ & 0xff;\n                  uVar26 = (uint)attr_value.val.uintval._4_4_ >> 8;\n                  uVar2 = (uint)attr_value.val.uintval._4_4_ >> 0x10;\n                  uVar4 = (uint)attr_value.val.uintval._4_4_ >> 0x18;\n                  attr_value.val.intval._4_4_ =\n                       ((((uint)attr_value.val.stringval >> 0x10) << 0x18 |\n                        ((uint)attr_value.val.stringval >> 0x18) << 0x10) >> 0x10) +\n                       (((uint)attr_value.val.stringval & 0xff) << 8 |\n                       (uint)attr_value.val.stringval >> 8 & 0xff) * 0x10000;\n                  attr_value.val.stringval =\n                       (char *)(((uVar2 << 0x18 | uVar4 << 0x10) >> 0x10) +\n                               (uVar23 << 8 | uVar26 & 0xff) * 0x10000);\n                }\n                pattr = pattr + 8;\n              }\n              aVar39.stringval = attr_value.val.stringval;\n              aVar39.intval._4_4_ = attr_value.val.intval._4_4_;\n              aVar11.stringval = attr_value.val.stringval;\n              aVar11.intval._4_4_ = attr_value.val.intval._4_4_;\n              aVar7.stringval = attr_value.val.stringval;\n              aVar7.intval._4_4_ = attr_value.val.intval._4_4_;\n              if (uVar32 == 0x6e) goto LAB_002e313c;\n              aVar7 = aVar11;\n              if (uVar32 == 0x2007) goto LAB_002e313c;\n              goto joined_r0x002e3124;\n            }\n            if (uVar29 == 0x11) {\n              puVar15 = pattr + 1;\n              uVar23 = CONCAT31(0,*pattr);\n              aVar39.stringval = (char *)0x0;\n              aVar39.intval._4_4_ = uVar23;\n              aVar12.stringval = (char *)0x0;\n              aVar12.uintval._4_4_ = uVar23;\n              aVar40.stringval = (char *)0x0;\n              aVar40.uintval._4_4_ = uVar23;\n              aVar10.stringval = (char *)0x0;\n              aVar10.uintval._4_4_ = uVar23;\n              aVar7.stringval = (char *)0x0;\n              aVar7.uintval._4_4_ = uVar23;\n              aVar9.stringval = (char *)0x0;\n              aVar9.uintval._4_4_ = uVar23;\n              pattr = puVar15;\n              if (uVar32 == 0x31) goto LAB_002e30bc;\n              if (0x31 < uVar32) {\n                if ((uVar32 != 0x6e) && (aVar40 = aVar12, uVar32 != 0x2007)) {\n                  if (uVar32 != 0x47) goto LAB_002e313c;\n                  *(undefined4 *)&this->specification_ = 0;\n                  *(uint *)((int)&this->specification_ + 4) = uVar23;\n                  aVar7 = aVar10;\n                  goto LAB_002e313c;\n                }\n                goto LAB_002e3858;\n              }\n              if (uVar32 == 1) {\n                *(undefined4 *)&this->sibling_offset_ = 0;\n                *(uint *)((int)&this->sibling_offset_ + 4) = uVar23;\n                aVar7 = aVar9;\n                goto LAB_002e313c;\n              }\n              goto joined_r0x002e3124;\n            }\n            if (uVar29 < 0x12) {\n              if (uVar29 == 0xf) goto LAB_002e34d8;\n              if (uVar29 != 0x10) {\n                return false;\n              }\n              pDVar22 = this->dwinfo_;\n              uVar23 = pDVar22->offset_size_;\n              if (pDVar22->cu_version_ < 3) {\n                uVar23 = pDVar22->address_size_;\n              }\n              if (uVar23 == 4) {\n                pp_Var16 = (pDVar22->object_->super_Object)._vptr_Object;\n                p_Var37 = pp_Var16[3];\n                if (p_Var37 == (_func_int_varargs *)PTR_is_big_endian_004c2950) {\n                  local_30 = puVar28;\n                  iVar36 = (*pp_Var16[0x3a])();\n                }\n                else {\n                  local_30 = puVar28;\n                  iVar36 = (*p_Var37)();\n                }\n                uVar23 = *(uint *)pattr;\n                if (iVar36 == 0) {\n                  uVar23 = (((uVar23 >> 0x10) << 0x18 | (uVar23 >> 0x18) << 0x10) >> 0x10) +\n                           ((uVar23 & 0xff) << 8 | uVar23 >> 8 & 0xff) * 0x10000;\n                }\n                pattr = pattr + 4;\n                uVar38 = (ulonglong)uVar23;\n              }\n              else {\n                local_30 = puVar28;\n                uVar38 = (*local_34)(pDVar22,&pattr);\n              }\n              str_off = uVar38;\n              attr_value.aux.shndx = (*local_3c)(this->dwinfo_);\n              aVar39.refval = str_off;\n            }\n            else {\n              if (uVar29 == 0x13) {\n                pp_Var16 = (this->dwinfo_->object_->super_Object)._vptr_Object;\n                p_Var37 = pp_Var16[3];\n                if (p_Var37 == (_func_int_varargs *)PTR_is_big_endian_004c2950) {\n                  local_30 = puVar28;\n                  iVar36 = (*pp_Var16[0x3a])();\n                }\n                else {\n                  local_30 = puVar28;\n                  iVar36 = (*p_Var37)();\n                }\n                uVar23 = *(uint *)pattr;\n                if (iVar36 == 0) {\n                  uVar23 = (((uVar23 >> 0x10) << 0x18 | (uVar23 >> 0x18) << 0x10) >> 0x10) +\n                           ((uVar23 & 0xff) << 8 | uVar23 >> 8 & 0xff) * 0x10000;\n                }\n                pattr = pattr + 4;\n                pDVar22 = this->dwinfo_;\n                uVar38 = (ulonglong)uVar23;\n              }\n              else {\n                if (uVar29 < 0x14) {\n                  pp_Var16 = (this->dwinfo_->object_->super_Object)._vptr_Object;\n                  p_Var37 = pp_Var16[3];\n                  if (p_Var37 == (_func_int_varargs *)PTR_is_big_endian_004c2950) {\n                    iVar36 = (*pp_Var16[0x3a])();\n                  }\n                  else {\n                    iVar36 = (*p_Var37)();\n                  }\n                  uVar6 = *(ushort *)pattr;\n                  if (iVar36 == 0) {\n                    uVar6 = CONCAT11(pattr[1],*pattr);\n                  }\n                  aVar39.intval._0_6_ = 0;\n                  aVar39.intval._6_2_ = uVar6;\n                  pattr = pattr + 2;\n                  goto joined_r0x002e3998;\n                }\n                pp_Var16 = (this->dwinfo_->object_->super_Object)._vptr_Object;\n                p_Var37 = pp_Var16[3];\n                if (p_Var37 == (_func_int_varargs *)PTR_is_big_endian_004c2950) {\n                  local_30 = puVar28;\n                  iVar36 = (*pp_Var16[0x3a])();\n                }\n                else {\n                  local_30 = puVar28;\n                  iVar36 = (*p_Var37)();\n                }\n                uVar23 = *(uint *)(pattr + 4);\n                uVar26 = *(uint *)pattr;\n                if (iVar36 == 0) {\n                  uVar2 = uVar23 & 0xff;\n                  uVar4 = uVar23 >> 8;\n                  uVar3 = uVar23 >> 0x10;\n                  uVar5 = uVar23 >> 0x18;\n                  uVar23 = (((uVar26 >> 0x10) << 0x18 | (uVar26 >> 0x18) << 0x10) >> 0x10) +\n                           ((uVar26 & 0xff) << 8 | uVar26 >> 8 & 0xff) * 0x10000;\n                  uVar26 = ((uVar3 << 0x18 | uVar5 << 0x10) >> 0x10) +\n                           (uVar2 << 8 | uVar4 & 0xff) * 0x10000;\n                }\n                uVar38 = CONCAT44(uVar26,uVar23);\n                pattr = pattr + 8;\n                pDVar22 = this->dwinfo_;\n              }\nLAB_002e3970:\n              str_off = uVar38;\n              attr_value.aux.shndx = (*local_3c)(pDVar22);\n              aVar39.refval = str_off;\n            }\njoined_r0x002e3998:\n            if (uVar32 == 0x31) {\nLAB_002e30bc:\n              this->abstract_origin_ = (off_t)aVar39;\n              aVar7 = aVar39;\n              goto LAB_002e313c;\n            }\n            if (uVar32 < 0x32) {\n              aVar7 = aVar39;\n              if (uVar32 != 1) goto LAB_002e313c;\nLAB_002e39b4:\n              aVar7 = aVar39;\n              if (attr_value.aux.shndx != 0) goto LAB_002e313c;\n              this->sibling_offset_ = (off_t)aVar39;\n              goto LAB_002e313c;\n            }\n            aVar40 = aVar39;\n            if ((uVar32 != 0x6e) && (uVar32 != 0x2007)) {\nLAB_002e339c:\n              aVar7 = aVar39;\n              if (uVar32 != 0x47) goto LAB_002e313c;\n              this->specification_ = (off_t)aVar39;\n              goto LAB_002e313c;\n            }\n            goto LAB_002e3858;\n          }" { (if_statement "if (uVar29 == 0x15) {\n              if ((char)*pattr < '\0') {\n                aVar39.intval = (*(code *)PTR_read_unsigned_LEB_128_x_004c2980)(pattr + 1,&len);\n                pattr = pattr + len;\n              }\n              else {\n                aVar39.intval._0_7_ = 0;\n                aVar39.intval._7_1_ = *pattr;\n                len = 1;\n                pattr = pattr + 1;\n              }\n              goto joined_r0x002e3998;\n            }" if (parenthesized_expression "(uVar29 == 0x15)" ( (binary_expression "uVar29 == 0x15" identifier == number_literal) )) (compound_statement "{\n              if ((char)*pattr < '\0') {\n                aVar39.intval = (*(code *)PTR_read_unsigned_LEB_128_x_004c2980)(pattr + 1,&len);\n                pattr = pattr + len;\n              }\n              else {\n                aVar39.intval._0_7_ = 0;\n                aVar39.intval._7_1_ = *pattr;\n                len = 1;\n                pattr = pattr + 1;\n              }\n              goto joined_r0x002e3998;\n            }" { (if_statement "if ((char)*pattr < '\0') {\n                aVar39.intval = (*(code *)PTR_read_unsigned_LEB_128_x_004c2980)(pattr + 1,&len);\n                pattr = pattr + len;\n              }\n              else {\n                aVar39.intval._0_7_ = 0;\n                aVar39.intval._7_1_ = *pattr;\n                len = 1;\n                pattr = pattr + 1;\n              }" if (parenthesized_expression "((char)*pattr < '\0')" ( (binary_expression "(char)*pattr < '\0'" (cast_expression "(char)*pattr" ( (type_descriptor "char" primitive_type) ) (pointer_expression "*pattr" * identifier)) < (char_literal "'\0'" ' escape_sequence ')) )) (compound_statement "{\n                aVar39.intval = (*(code *)PTR_read_unsigned_LEB_128_x_004c2980)(pattr + 1,&len);\n                pattr = pattr + len;\n              }" { (expression_statement "aVar39.intval = (*(code *)PTR_read_unsigned_LEB_128_x_004c2980)(pattr + 1,&len);" (assignment_expression "aVar39.intval = (*(code *)PTR_read_unsigned_LEB_128_x_004c2980)(pattr + 1,&len)" (field_expression "aVar39.intval" identifier . field_identifier) = (call_expression "(*(code *)PTR_read_unsigned_LEB_128_x_004c2980)(pattr + 1,&len)" (parenthesized_expression "(*(code *)PTR_read_unsigned_LEB_128_x_004c2980)" ( (pointer_expression "*(code *)PTR_read_unsigned_LEB_128_x_004c2980" * (cast_expression "(code *)PTR_read_unsigned_LEB_128_x_004c2980" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(pattr + 1,&len)" ( (binary_expression "pattr + 1" identifier + number_literal) , (pointer_expression "&len" & identifier) )))) ;) (expression_statement "pattr = pattr + len;" (assignment_expression "pattr = pattr + len" identifier = (binary_expression "pattr + len" identifier + identifier)) ;) }) (else_clause "else {\n                aVar39.intval._0_7_ = 0;\n                aVar39.intval._7_1_ = *pattr;\n                len = 1;\n                pattr = pattr + 1;\n              }" else (compound_statement "{\n                aVar39.intval._0_7_ = 0;\n                aVar39.intval._7_1_ = *pattr;\n                len = 1;\n                pattr = pattr + 1;\n              }" { (expression_statement "aVar39.intval._0_7_ = 0;" (assignment_expression "aVar39.intval._0_7_ = 0" (field_expression "aVar39.intval._0_7_" (field_expression "aVar39.intval" identifier . field_identifier) . field_identifier) = number_literal) ;) (expression_statement "aVar39.intval._7_1_ = *pattr;" (assignment_expression "aVar39.intval._7_1_ = *pattr" (field_expression "aVar39.intval._7_1_" (field_expression "aVar39.intval" identifier . field_identifier) . field_identifier) = (pointer_expression "*pattr" * identifier)) ;) (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)) ;) }))) (goto_statement "goto joined_r0x002e3998;" goto statement_identifier ;) })) (if_statement "if (0x15 < uVar29) {\n              if (uVar29 == 0x19) {\n                attr_value.val.intval._4_4_ = 1;\n                attr_value.val.stringval = (char *)0x0;\n              }\n              else {\n                if (uVar29 < 0x1a) {\n                  if (uVar29 != 0x17) {\n                    if (uVar29 != 0x18) {\n                      return false;\n                    }\n                    goto LAB_002e32bc;\n                  }\n                  pDVar22 = this->dwinfo_;\n                  if (pDVar22->offset_size_ == 4) {\n                    pp_Var16 = (pDVar22->object_->super_Object)._vptr_Object;\n                    p_Var37 = pp_Var16[3];\n                    if (p_Var37 == (_func_int_varargs *)PTR_is_big_endian_004c2950) {\n                      local_30 = puVar28;\n                      iVar36 = (*pp_Var16[0x3a])();\n                    }\n                    else {\n                      local_30 = puVar28;\n                      iVar36 = (*p_Var37)();\n                    }\n                    uVar23 = *(uint *)pattr;\n                    if (iVar36 == 0) {\n                      uVar23 = (((uVar23 >> 0x10) << 0x18 | (uVar23 >> 0x18) << 0x10) >> 0x10) +\n                               ((uVar23 & 0xff) << 8 | uVar23 >> 8 & 0xff) * 0x10000;\n                    }\n                    pattr = pattr + 4;\n                    uVar38 = (ulonglong)uVar23;\n                  }\n                  else {\n                    local_30 = puVar28;\n                    uVar38 = (*local_34)(pDVar22,&pattr);\n                  }\n                  pDVar22 = this->dwinfo_;\n                  goto LAB_002e3970;\n                }\n                if (uVar29 != 0x20) {\n                  if (uVar29 < 0x20) {\n                    return false;\n                  }\n                  if (1 < uVar29 - 0x1f01) {\n                    return false;\n                  }\nLAB_002e34d8:\n                  if ((char)*pattr < '\0') {\n                    aVar40.intval = (*(code *)PTR_read_unsigned_LEB_128_x_004c2980)(pattr + 1,&len);\n                    pattr = pattr + len;\n                  }\n                  else {\n                    aVar40.intval._0_7_ = 0;\n                    aVar40.intval._7_1_ = *pattr;\n                    len = 1;\n                    pattr = pattr + 1;\n                  }\n                  goto LAB_002e382c;\n                }\n                pp_Var16 = (this->dwinfo_->object_->super_Object)._vptr_Object;\n                p_Var37 = pp_Var16[3];\n                if (p_Var37 == (_func_int_varargs *)PTR_is_big_endian_004c2950) {\n                  iVar36 = (*pp_Var16[0x3a])();\n                }\n                else {\n                  iVar36 = (*p_Var37)();\n                }\n                    /* WARNING: Load size is inaccurate */\n                attr_value.val._4_4_ = pattr[4];\n                    /* WARNING: Load size is inaccurate */\n                attr_value.val.blockval = *pattr;\n                if (iVar36 == 0) {\n                  uVar23 = attr_value.val.uintval._4_4_ & 0xff;\n                  uVar26 = (uint)attr_value.val.uintval._4_4_ >> 8;\n                  uVar2 = (uint)attr_value.val.uintval._4_4_ >> 0x10;\n                  uVar4 = (uint)attr_value.val.uintval._4_4_ >> 0x18;\n                  attr_value.val.intval._4_4_ =\n                       ((((uint)attr_value.val.stringval >> 0x10) << 0x18 |\n                        ((uint)attr_value.val.stringval >> 0x18) << 0x10) >> 0x10) +\n                       (((uint)attr_value.val.stringval & 0xff) << 8 |\n                       (uint)attr_value.val.stringval >> 8 & 0xff) * 0x10000;\n                  attr_value.val.stringval =\n                       (char *)(((uVar2 << 0x18 | uVar4 << 0x10) >> 0x10) +\n                               (uVar23 << 8 | uVar26 & 0xff) * 0x10000);\n                }\n                pattr = pattr + 8;\n              }\n              aVar39.stringval = attr_value.val.stringval;\n              aVar39.intval._4_4_ = attr_value.val.intval._4_4_;\n              aVar11.stringval = attr_value.val.stringval;\n              aVar11.intval._4_4_ = attr_value.val.intval._4_4_;\n              aVar7.stringval = attr_value.val.stringval;\n              aVar7.intval._4_4_ = attr_value.val.intval._4_4_;\n              if (uVar32 == 0x6e) goto LAB_002e313c;\n              aVar7 = aVar11;\n              if (uVar32 == 0x2007) goto LAB_002e313c;\n              goto joined_r0x002e3124;\n            }" if (parenthesized_expression "(0x15 < uVar29)" ( (binary_expression "0x15 < uVar29" number_literal < identifier) )) (compound_statement "{\n              if (uVar29 == 0x19) {\n                attr_value.val.intval._4_4_ = 1;\n                attr_value.val.stringval = (char *)0x0;\n              }\n              else {\n                if (uVar29 < 0x1a) {\n                  if (uVar29 != 0x17) {\n                    if (uVar29 != 0x18) {\n                      return false;\n                    }\n                    goto LAB_002e32bc;\n                  }\n                  pDVar22 = this->dwinfo_;\n                  if (pDVar22->offset_size_ == 4) {\n                    pp_Var16 = (pDVar22->object_->super_Object)._vptr_Object;\n                    p_Var37 = pp_Var16[3];\n                    if (p_Var37 == (_func_int_varargs *)PTR_is_big_endian_004c2950) {\n                      local_30 = puVar28;\n                      iVar36 = (*pp_Var16[0x3a])();\n                    }\n                    else {\n                      local_30 = puVar28;\n                      iVar36 = (*p_Var37)();\n                    }\n                    uVar23 = *(uint *)pattr;\n                    if (iVar36 == 0) {\n                      uVar23 = (((uVar23 >> 0x10) << 0x18 | (uVar23 >> 0x18) << 0x10) >> 0x10) +\n                               ((uVar23 & 0xff) << 8 | uVar23 >> 8 & 0xff) * 0x10000;\n                    }\n                    pattr = pattr + 4;\n                    uVar38 = (ulonglong)uVar23;\n                  }\n                  else {\n                    local_30 = puVar28;\n                    uVar38 = (*local_34)(pDVar22,&pattr);\n                  }\n                  pDVar22 = this->dwinfo_;\n                  goto LAB_002e3970;\n                }\n                if (uVar29 != 0x20) {\n                  if (uVar29 < 0x20) {\n                    return false;\n                  }\n                  if (1 < uVar29 - 0x1f01) {\n                    return false;\n                  }\nLAB_002e34d8:\n                  if ((char)*pattr < '\0') {\n                    aVar40.intval = (*(code *)PTR_read_unsigned_LEB_128_x_004c2980)(pattr + 1,&len);\n                    pattr = pattr + len;\n                  }\n                  else {\n                    aVar40.intval._0_7_ = 0;\n                    aVar40.intval._7_1_ = *pattr;\n                    len = 1;\n                    pattr = pattr + 1;\n                  }\n                  goto LAB_002e382c;\n                }\n                pp_Var16 = (this->dwinfo_->object_->super_Object)._vptr_Object;\n                p_Var37 = pp_Var16[3];\n                if (p_Var37 == (_func_int_varargs *)PTR_is_big_endian_004c2950) {\n                  iVar36 = (*pp_Var16[0x3a])();\n                }\n                else {\n                  iVar36 = (*p_Var37)();\n                }\n                    /* WARNING: Load size is inaccurate */\n                attr_value.val._4_4_ = pattr[4];\n                    /* WARNING: Load size is inaccurate */\n                attr_value.val.blockval = *pattr;\n                if (iVar36 == 0) {\n                  uVar23 = attr_value.val.uintval._4_4_ & 0xff;\n                  uVar26 = (uint)attr_value.val.uintval._4_4_ >> 8;\n                  uVar2 = (uint)attr_value.val.uintval._4_4_ >> 0x10;\n                  uVar4 = (uint)attr_value.val.uintval._4_4_ >> 0x18;\n                  attr_value.val.intval._4_4_ =\n                       ((((uint)attr_value.val.stringval >> 0x10) << 0x18 |\n                        ((uint)attr_value.val.stringval >> 0x18) << 0x10) >> 0x10) +\n                       (((uint)attr_value.val.stringval & 0xff) << 8 |\n                       (uint)attr_value.val.stringval >> 8 & 0xff) * 0x10000;\n                  attr_value.val.stringval =\n                       (char *)(((uVar2 << 0x18 | uVar4 << 0x10) >> 0x10) +\n                               (uVar23 << 8 | uVar26 & 0xff) * 0x10000);\n                }\n                pattr = pattr + 8;\n              }\n              aVar39.stringval = attr_value.val.stringval;\n              aVar39.intval._4_4_ = attr_value.val.intval._4_4_;\n              aVar11.stringval = attr_value.val.stringval;\n              aVar11.intval._4_4_ = attr_value.val.intval._4_4_;\n              aVar7.stringval = attr_value.val.stringval;\n              aVar7.intval._4_4_ = attr_value.val.intval._4_4_;\n              if (uVar32 == 0x6e) goto LAB_002e313c;\n              aVar7 = aVar11;\n              if (uVar32 == 0x2007) goto LAB_002e313c;\n              goto joined_r0x002e3124;\n            }" { (if_statement "if (uVar29 == 0x19) {\n                attr_value.val.intval._4_4_ = 1;\n                attr_value.val.stringval = (char *)0x0;\n              }\n              else {\n                if (uVar29 < 0x1a) {\n                  if (uVar29 != 0x17) {\n                    if (uVar29 != 0x18) {\n                      return false;\n                    }\n                    goto LAB_002e32bc;\n                  }\n                  pDVar22 = this->dwinfo_;\n                  if (pDVar22->offset_size_ == 4) {\n                    pp_Var16 = (pDVar22->object_->super_Object)._vptr_Object;\n                    p_Var37 = pp_Var16[3];\n                    if (p_Var37 == (_func_int_varargs *)PTR_is_big_endian_004c2950) {\n                      local_30 = puVar28;\n                      iVar36 = (*pp_Var16[0x3a])();\n                    }\n                    else {\n                      local_30 = puVar28;\n                      iVar36 = (*p_Var37)();\n                    }\n                    uVar23 = *(uint *)pattr;\n                    if (iVar36 == 0) {\n                      uVar23 = (((uVar23 >> 0x10) << 0x18 | (uVar23 >> 0x18) << 0x10) >> 0x10) +\n                               ((uVar23 & 0xff) << 8 | uVar23 >> 8 & 0xff) * 0x10000;\n                    }\n                    pattr = pattr + 4;\n                    uVar38 = (ulonglong)uVar23;\n                  }\n                  else {\n                    local_30 = puVar28;\n                    uVar38 = (*local_34)(pDVar22,&pattr);\n                  }\n                  pDVar22 = this->dwinfo_;\n                  goto LAB_002e3970;\n                }\n                if (uVar29 != 0x20) {\n                  if (uVar29 < 0x20) {\n                    return false;\n                  }\n                  if (1 < uVar29 - 0x1f01) {\n                    return false;\n                  }\nLAB_002e34d8:\n                  if ((char)*pattr < '\0') {\n                    aVar40.intval = (*(code *)PTR_read_unsigned_LEB_128_x_004c2980)(pattr + 1,&len);\n                    pattr = pattr + len;\n                  }\n                  else {\n                    aVar40.intval._0_7_ = 0;\n                    aVar40.intval._7_1_ = *pattr;\n                    len = 1;\n                    pattr = pattr + 1;\n                  }\n                  goto LAB_002e382c;\n                }\n                pp_Var16 = (this->dwinfo_->object_->super_Object)._vptr_Object;\n                p_Var37 = pp_Var16[3];\n                if (p_Var37 == (_func_int_varargs *)PTR_is_big_endian_004c2950) {\n                  iVar36 = (*pp_Var16[0x3a])();\n                }\n                else {\n                  iVar36 = (*p_Var37)();\n                }\n                    /* WARNING: Load size is inaccurate */\n                attr_value.val._4_4_ = pattr[4];\n                    /* WARNING: Load size is inaccurate */\n                attr_value.val.blockval = *pattr;\n                if (iVar36 == 0) {\n                  uVar23 = attr_value.val.uintval._4_4_ & 0xff;\n                  uVar26 = (uint)attr_value.val.uintval._4_4_ >> 8;\n                  uVar2 = (uint)attr_value.val.uintval._4_4_ >> 0x10;\n                  uVar4 = (uint)attr_value.val.uintval._4_4_ >> 0x18;\n                  attr_value.val.intval._4_4_ =\n                       ((((uint)attr_value.val.stringval >> 0x10) << 0x18 |\n                        ((uint)attr_value.val.stringval >> 0x18) << 0x10) >> 0x10) +\n                       (((uint)attr_value.val.stringval & 0xff) << 8 |\n                       (uint)attr_value.val.stringval >> 8 & 0xff) * 0x10000;\n                  attr_value.val.stringval =\n                       (char *)(((uVar2 << 0x18 | uVar4 << 0x10) >> 0x10) +\n                               (uVar23 << 8 | uVar26 & 0xff) * 0x10000);\n                }\n                pattr = pattr + 8;\n              }" if (parenthesized_expression "(uVar29 == 0x19)" ( (binary_expression "uVar29 == 0x19" identifier == number_literal) )) (compound_statement "{\n                attr_value.val.intval._4_4_ = 1;\n                attr_value.val.stringval = (char *)0x0;\n              }" { (expression_statement "attr_value.val.intval._4_4_ = 1;" (assignment_expression "attr_value.val.intval._4_4_ = 1" (field_expression "attr_value.val.intval._4_4_" (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.stringval = (char *)0x0;" (assignment_expression "attr_value.val.stringval = (char *)0x0" (field_expression "attr_value.val.stringval" (field_expression "attr_value.val" identifier . field_identifier) . field_identifier) = (cast_expression "(char *)0x0" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) ;) }) (else_clause "else {\n                if (uVar29 < 0x1a) {\n                  if (uVar29 != 0x17) {\n                    if (uVar29 != 0x18) {\n                      return false;\n                    }\n                    goto LAB_002e32bc;\n                  }\n                  pDVar22 = this->dwinfo_;\n                  if (pDVar22->offset_size_ == 4) {\n                    pp_Var16 = (pDVar22->object_->super_Object)._vptr_Object;\n                    p_Var37 = pp_Var16[3];\n                    if (p_Var37 == (_func_int_varargs *)PTR_is_big_endian_004c2950) {\n                      local_30 = puVar28;\n                      iVar36 = (*pp_Var16[0x3a])();\n                    }\n                    else {\n                      local_30 = puVar28;\n                      iVar36 = (*p_Var37)();\n                    }\n                    uVar23 = *(uint *)pattr;\n                    if (iVar36 == 0) {\n                      uVar23 = (((uVar23 >> 0x10) << 0x18 | (uVar23 >> 0x18) << 0x10) >> 0x10) +\n                               ((uVar23 & 0xff) << 8 | uVar23 >> 8 & 0xff) * 0x10000;\n                    }\n                    pattr = pattr + 4;\n                    uVar38 = (ulonglong)uVar23;\n                  }\n                  else {\n                    local_30 = puVar28;\n                    uVar38 = (*local_34)(pDVar22,&pattr);\n                  }\n                  pDVar22 = this->dwinfo_;\n                  goto LAB_002e3970;\n                }\n                if (uVar29 != 0x20) {\n                  if (uVar29 < 0x20) {\n                    return false;\n                  }\n                  if (1 < uVar29 - 0x1f01) {\n                    return false;\n                  }\nLAB_002e34d8:\n                  if ((char)*pattr < '\0') {\n                    aVar40.intval = (*(code *)PTR_read_unsigned_LEB_128_x_004c2980)(pattr + 1,&len);\n                    pattr = pattr + len;\n                  }\n                  else {\n                    aVar40.intval._0_7_ = 0;\n                    aVar40.intval._7_1_ = *pattr;\n                    len = 1;\n                    pattr = pattr + 1;\n                  }\n                  goto LAB_002e382c;\n                }\n                pp_Var16 = (this->dwinfo_->object_->super_Object)._vptr_Object;\n                p_Var37 = pp_Var16[3];\n                if (p_Var37 == (_func_int_varargs *)PTR_is_big_endian_004c2950) {\n                  iVar36 = (*pp_Var16[0x3a])();\n                }\n                else {\n                  iVar36 = (*p_Var37)();\n                }\n                    /* WARNING: Load size is inaccurate */\n                attr_value.val._4_4_ = pattr[4];\n                    /* WARNING: Load size is inaccurate */\n                attr_value.val.blockval = *pattr;\n                if (iVar36 == 0) {\n                  uVar23 = attr_value.val.uintval._4_4_ & 0xff;\n                  uVar26 = (uint)attr_value.val.uintval._4_4_ >> 8;\n                  uVar2 = (uint)attr_value.val.uintval._4_4_ >> 0x10;\n                  uVar4 = (uint)attr_value.val.uintval._4_4_ >> 0x18;\n                  attr_value.val.intval._4_4_ =\n                       ((((uint)attr_value.val.stringval >> 0x10) << 0x18 |\n                        ((uint)attr_value.val.stringval >> 0x18) << 0x10) >> 0x10) +\n                       (((uint)attr_value.val.stringval & 0xff) << 8 |\n                       (uint)attr_value.val.stringval >> 8 & 0xff) * 0x10000;\n                  attr_value.val.stringval =\n                       (char *)(((uVar2 << 0x18 | uVar4 << 0x10) >> 0x10) +\n                               (uVar23 << 8 | uVar26 & 0xff) * 0x10000);\n                }\n                pattr = pattr + 8;\n              }" else (compound_statement "{\n                if (uVar29 < 0x1a) {\n                  if (uVar29 != 0x17) {\n                    if (uVar29 != 0x18) {\n                      return false;\n                    }\n                    goto LAB_002e32bc;\n                  }\n                  pDVar22 = this->dwinfo_;\n                  if (pDVar22->offset_size_ == 4) {\n                    pp_Var16 = (pDVar22->object_->super_Object)._vptr_Object;\n                    p_Var37 = pp_Var16[3];\n                    if (p_Var37 == (_func_int_varargs *)PTR_is_big_endian_004c2950) {\n                      local_30 = puVar28;\n                      iVar36 = (*pp_Var16[0x3a])();\n                    }\n                    else {\n                      local_30 = puVar28;\n                      iVar36 = (*p_Var37)();\n                    }\n                    uVar23 = *(uint *)pattr;\n                    if (iVar36 == 0) {\n                      uVar23 = (((uVar23 >> 0x10) << 0x18 | (uVar23 >> 0x18) << 0x10) >> 0x10) +\n                               ((uVar23 & 0xff) << 8 | uVar23 >> 8 & 0xff) * 0x10000;\n                    }\n                    pattr = pattr + 4;\n                    uVar38 = (ulonglong)uVar23;\n                  }\n                  else {\n                    local_30 = puVar28;\n                    uVar38 = (*local_34)(pDVar22,&pattr);\n                  }\n                  pDVar22 = this->dwinfo_;\n                  goto LAB_002e3970;\n                }\n                if (uVar29 != 0x20) {\n                  if (uVar29 < 0x20) {\n                    return false;\n                  }\n                  if (1 < uVar29 - 0x1f01) {\n                    return false;\n                  }\nLAB_002e34d8:\n                  if ((char)*pattr < '\0') {\n                    aVar40.intval = (*(code *)PTR_read_unsigned_LEB_128_x_004c2980)(pattr + 1,&len);\n                    pattr = pattr + len;\n                  }\n                  else {\n                    aVar40.intval._0_7_ = 0;\n                    aVar40.intval._7_1_ = *pattr;\n                    len = 1;\n                    pattr = pattr + 1;\n                  }\n                  goto LAB_002e382c;\n                }\n                pp_Var16 = (this->dwinfo_->object_->super_Object)._vptr_Object;\n                p_Var37 = pp_Var16[3];\n                if (p_Var37 == (_func_int_varargs *)PTR_is_big_endian_004c2950) {\n                  iVar36 = (*pp_Var16[0x3a])();\n                }\n                else {\n                  iVar36 = (*p_Var37)();\n                }\n                    /* WARNING: Load size is inaccurate */\n                attr_value.val._4_4_ = pattr[4];\n                    /* WARNING: Load size is inaccurate */\n                attr_value.val.blockval = *pattr;\n                if (iVar36 == 0) {\n                  uVar23 = attr_value.val.uintval._4_4_ & 0xff;\n                  uVar26 = (uint)attr_value.val.uintval._4_4_ >> 8;\n                  uVar2 = (uint)attr_value.val.uintval._4_4_ >> 0x10;\n                  uVar4 = (uint)attr_value.val.uintval._4_4_ >> 0x18;\n                  attr_value.val.intval._4_4_ =\n                       ((((uint)attr_value.val.stringval >> 0x10) << 0x18 |\n                        ((uint)attr_value.val.stringval >> 0x18) << 0x10) >> 0x10) +\n                       (((uint)attr_value.val.stringval & 0xff) << 8 |\n                       (uint)attr_value.val.stringval >> 8 & 0xff) * 0x10000;\n                  attr_value.val.stringval =\n                       (char *)(((uVar2 << 0x18 | uVar4 << 0x10) >> 0x10) +\n                               (uVar23 << 8 | uVar26 & 0xff) * 0x10000);\n                }\n                pattr = pattr + 8;\n              }" { (if_statement "if (uVar29 < 0x1a) {\n                  if (uVar29 != 0x17) {\n                    if (uVar29 != 0x18) {\n                      return false;\n                    }\n                    goto LAB_002e32bc;\n                  }\n                  pDVar22 = this->dwinfo_;\n                  if (pDVar22->offset_size_ == 4) {\n                    pp_Var16 = (pDVar22->object_->super_Object)._vptr_Object;\n                    p_Var37 = pp_Var16[3];\n                    if (p_Var37 == (_func_int_varargs *)PTR_is_big_endian_004c2950) {\n                      local_30 = puVar28;\n                      iVar36 = (*pp_Var16[0x3a])();\n                    }\n                    else {\n                      local_30 = puVar28;\n                      iVar36 = (*p_Var37)();\n                    }\n                    uVar23 = *(uint *)pattr;\n                    if (iVar36 == 0) {\n                      uVar23 = (((uVar23 >> 0x10) << 0x18 | (uVar23 >> 0x18) << 0x10) >> 0x10) +\n                               ((uVar23 & 0xff) << 8 | uVar23 >> 8 & 0xff) * 0x10000;\n                    }\n                    pattr = pattr + 4;\n                    uVar38 = (ulonglong)uVar23;\n                  }\n                  else {\n                    local_30 = puVar28;\n                    uVar38 = (*local_34)(pDVar22,&pattr);\n                  }\n                  pDVar22 = this->dwinfo_;\n                  goto LAB_002e3970;\n                }" if (parenthesized_expression "(uVar29 < 0x1a)" ( (binary_expression "uVar29 < 0x1a" identifier < number_literal) )) (compound_statement "{\n                  if (uVar29 != 0x17) {\n                    if (uVar29 != 0x18) {\n                      return false;\n                    }\n                    goto LAB_002e32bc;\n                  }\n                  pDVar22 = this->dwinfo_;\n                  if (pDVar22->offset_size_ == 4) {\n                    pp_Var16 = (pDVar22->object_->super_Object)._vptr_Object;\n                    p_Var37 = pp_Var16[3];\n                    if (p_Var37 == (_func_int_varargs *)PTR_is_big_endian_004c2950) {\n                      local_30 = puVar28;\n                      iVar36 = (*pp_Var16[0x3a])();\n                    }\n                    else {\n                      local_30 = puVar28;\n                      iVar36 = (*p_Var37)();\n                    }\n                    uVar23 = *(uint *)pattr;\n                    if (iVar36 == 0) {\n                      uVar23 = (((uVar23 >> 0x10) << 0x18 | (uVar23 >> 0x18) << 0x10) >> 0x10) +\n                               ((uVar23 & 0xff) << 8 | uVar23 >> 8 & 0xff) * 0x10000;\n                    }\n                    pattr = pattr + 4;\n                    uVar38 = (ulonglong)uVar23;\n                  }\n                  else {\n                    local_30 = puVar28;\n                    uVar38 = (*local_34)(pDVar22,&pattr);\n                  }\n                  pDVar22 = this->dwinfo_;\n                  goto LAB_002e3970;\n                }" { (if_statement "if (uVar29 != 0x17) {\n                    if (uVar29 != 0x18) {\n                      return false;\n                    }\n                    goto LAB_002e32bc;\n                  }" if (parenthesized_expression "(uVar29 != 0x17)" ( (binary_expression "uVar29 != 0x17" identifier != number_literal) )) (compound_statement "{\n                    if (uVar29 != 0x18) {\n                      return false;\n                    }\n                    goto LAB_002e32bc;\n                  }" { (if_statement "if (uVar29 != 0x18) {\n                      return false;\n                    }" if (parenthesized_expression "(uVar29 != 0x18)" ( (binary_expression "uVar29 != 0x18" identifier != number_literal) )) (compound_statement "{\n                      return false;\n                    }" { (return_statement "return false;" return false ;) })) (goto_statement "goto LAB_002e32bc;" goto statement_identifier ;) })) (expression_statement "pDVar22 = this->dwinfo_;" (assignment_expression "pDVar22 = this->dwinfo_" identifier = (field_expression "this->dwinfo_" identifier -> field_identifier)) ;) (if_statement "if (pDVar22->offset_size_ == 4) {\n                    pp_Var16 = (pDVar22->object_->super_Object)._vptr_Object;\n                    p_Var37 = pp_Var16[3];\n                    if (p_Var37 == (_func_int_varargs *)PTR_is_big_endian_004c2950) {\n                      local_30 = puVar28;\n                      iVar36 = (*pp_Var16[0x3a])();\n                    }\n                    else {\n                      local_30 = puVar28;\n                      iVar36 = (*p_Var37)();\n                    }\n                    uVar23 = *(uint *)pattr;\n                    if (iVar36 == 0) {\n                      uVar23 = (((uVar23 >> 0x10) << 0x18 | (uVar23 >> 0x18) << 0x10) >> 0x10) +\n                               ((uVar23 & 0xff) << 8 | uVar23 >> 8 & 0xff) * 0x10000;\n                    }\n                    pattr = pattr + 4;\n                    uVar38 = (ulonglong)uVar23;\n                  }\n                  else {\n                    local_30 = puVar28;\n                    uVar38 = (*local_34)(pDVar22,&pattr);\n                  }" if (parenthesized_expression "(pDVar22->offset_size_ == 4)" ( (binary_expression "pDVar22->offset_size_ == 4" (field_expression "pDVar22->offset_size_" identifier -> field_identifier) == number_literal) )) (compound_statement "{\n                    pp_Var16 = (pDVar22->object_->super_Object)._vptr_Object;\n                    p_Var37 = pp_Var16[3];\n                    if (p_Var37 == (_func_int_varargs *)PTR_is_big_endian_004c2950) {\n                      local_30 = puVar28;\n                      iVar36 = (*pp_Var16[0x3a])();\n                    }\n                    else {\n                      local_30 = puVar28;\n                      iVar36 = (*p_Var37)();\n                    }\n                    uVar23 = *(uint *)pattr;\n                    if (iVar36 == 0) {\n                      uVar23 = (((uVar23 >> 0x10) << 0x18 | (uVar23 >> 0x18) << 0x10) >> 0x10) +\n                               ((uVar23 & 0xff) << 8 | uVar23 >> 8 & 0xff) * 0x10000;\n                    }\n                    pattr = pattr + 4;\n                    uVar38 = (ulonglong)uVar23;\n                  }" { (expression_statement "pp_Var16 = (pDVar22->object_->super_Object)._vptr_Object;" (assignment_expression "pp_Var16 = (pDVar22->object_->super_Object)._vptr_Object" identifier = (field_expression "(pDVar22->object_->super_Object)._vptr_Object" (parenthesized_expression "(pDVar22->object_->super_Object)" ( (field_expression "pDVar22->object_->super_Object" (field_expression "pDVar22->object_" identifier -> field_identifier) -> field_identifier) )) . field_identifier)) ;) (expression_statement "p_Var37 = pp_Var16[3];" (assignment_expression "p_Var37 = pp_Var16[3]" identifier = (subscript_expression "pp_Var16[3]" identifier [ number_literal ])) ;) (if_statement "if (p_Var37 == (_func_int_varargs *)PTR_is_big_endian_004c2950) {\n                      local_30 = puVar28;\n                      iVar36 = (*pp_Var16[0x3a])();\n                    }\n                    else {\n                      local_30 = puVar28;\n                      iVar36 = (*p_Var37)();\n                    }" if (parenthesized_expression "(p_Var37 == (_func_int_varargs *)PTR_is_big_endian_004c2950)" ( (binary_expression "p_Var37 == (_func_int_varargs *)PTR_is_big_endian_004c2950" identifier == (cast_expression "(_func_int_varargs *)PTR_is_big_endian_004c2950" ( (type_descriptor "_func_int_varargs *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (compound_statement "{\n                      local_30 = puVar28;\n                      iVar36 = (*pp_Var16[0x3a])();\n                    }" { (expression_statement "local_30 = puVar28;" (assignment_expression "local_30 = puVar28" identifier = identifier) ;) (expression_statement "iVar36 = (*pp_Var16[0x3a])();" (assignment_expression "iVar36 = (*pp_Var16[0x3a])()" identifier = (call_expression "(*pp_Var16[0x3a])()" (parenthesized_expression "(*pp_Var16[0x3a])" ( (pointer_expression "*pp_Var16[0x3a]" * (subscript_expression "pp_Var16[0x3a]" identifier [ number_literal ])) )) (argument_list "()" ( )))) ;) }) (else_clause "else {\n                      local_30 = puVar28;\n                      iVar36 = (*p_Var37)();\n                    }" else (compound_statement "{\n                      local_30 = puVar28;\n                      iVar36 = (*p_Var37)();\n                    }" { (expression_statement "local_30 = puVar28;" (assignment_expression "local_30 = puVar28" identifier = identifier) ;) (expression_statement "iVar36 = (*p_Var37)();" (assignment_expression "iVar36 = (*p_Var37)()" identifier = (call_expression "(*p_Var37)()" (parenthesized_expression "(*p_Var37)" ( (pointer_expression "*p_Var37" * identifier) )) (argument_list "()" ( )))) ;) }))) (expression_statement "uVar23 = *(uint *)pattr;" (assignment_expression "uVar23 = *(uint *)pattr" identifier = (pointer_expression "*(uint *)pattr" * (cast_expression "(uint *)pattr" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier))) ;) (if_statement "if (iVar36 == 0) {\n                      uVar23 = (((uVar23 >> 0x10) << 0x18 | (uVar23 >> 0x18) << 0x10) >> 0x10) +\n                               ((uVar23 & 0xff) << 8 | uVar23 >> 8 & 0xff) * 0x10000;\n                    }" if (parenthesized_expression "(iVar36 == 0)" ( (binary_expression "iVar36 == 0" identifier == number_literal) )) (compound_statement "{\n                      uVar23 = (((uVar23 >> 0x10) << 0x18 | (uVar23 >> 0x18) << 0x10) >> 0x10) +\n                               ((uVar23 & 0xff) << 8 | uVar23 >> 8 & 0xff) * 0x10000;\n                    }" { (expression_statement "uVar23 = (((uVar23 >> 0x10) << 0x18 | (uVar23 >> 0x18) << 0x10) >> 0x10) +\n                               ((uVar23 & 0xff) << 8 | uVar23 >> 8 & 0xff) * 0x10000;" (assignment_expression "uVar23 = (((uVar23 >> 0x10) << 0x18 | (uVar23 >> 0x18) << 0x10) >> 0x10) +\n                               ((uVar23 & 0xff) << 8 | uVar23 >> 8 & 0xff) * 0x10000" identifier = (binary_expression "(((uVar23 >> 0x10) << 0x18 | (uVar23 >> 0x18) << 0x10) >> 0x10) +\n                               ((uVar23 & 0xff) << 8 | uVar23 >> 8 & 0xff) * 0x10000" (parenthesized_expression "(((uVar23 >> 0x10) << 0x18 | (uVar23 >> 0x18) << 0x10) >> 0x10)" ( (binary_expression "((uVar23 >> 0x10) << 0x18 | (uVar23 >> 0x18) << 0x10) >> 0x10" (parenthesized_expression "((uVar23 >> 0x10) << 0x18 | (uVar23 >> 0x18) << 0x10)" ( (binary_expression "(uVar23 >> 0x10) << 0x18 | (uVar23 >> 0x18) << 0x10" (binary_expression "(uVar23 >> 0x10) << 0x18" (parenthesized_expression "(uVar23 >> 0x10)" ( (binary_expression "uVar23 >> 0x10" identifier >> number_literal) )) << number_literal) | (binary_expression "(uVar23 >> 0x18) << 0x10" (parenthesized_expression "(uVar23 >> 0x18)" ( (binary_expression "uVar23 >> 0x18" identifier >> number_literal) )) << number_literal)) )) >> number_literal) )) + (binary_expression "((uVar23 & 0xff) << 8 | uVar23 >> 8 & 0xff) * 0x10000" (parenthesized_expression "((uVar23 & 0xff) << 8 | uVar23 >> 8 & 0xff)" ( (binary_expression "(uVar23 & 0xff) << 8 | uVar23 >> 8 & 0xff" (binary_expression "(uVar23 & 0xff) << 8" (parenthesized_expression "(uVar23 & 0xff)" ( (binary_expression "uVar23 & 0xff" identifier & number_literal) )) << number_literal) | (binary_expression "uVar23 >> 8 & 0xff" (binary_expression "uVar23 >> 8" identifier >> number_literal) & number_literal)) )) * number_literal))) ;) })) (expression_statement "pattr = pattr + 4;" (assignment_expression "pattr = pattr + 4" identifier = (binary_expression "pattr + 4" identifier + number_literal)) ;) (expression_statement "uVar38 = (ulonglong)uVar23;" (assignment_expression "uVar38 = (ulonglong)uVar23" identifier = (cast_expression "(ulonglong)uVar23" ( (type_descriptor "ulonglong" type_identifier) ) identifier)) ;) }) (else_clause "else {\n                    local_30 = puVar28;\n                    uVar38 = (*local_34)(pDVar22,&pattr);\n                  }" else (compound_statement "{\n                    local_30 = puVar28;\n                    uVar38 = (*local_34)(pDVar22,&pattr);\n                  }" { (expression_statement "local_30 = puVar28;" (assignment_expression "local_30 = puVar28" identifier = identifier) ;) (expression_statement "uVar38 = (*local_34)(pDVar22,&pattr);" (assignment_expression "uVar38 = (*local_34)(pDVar22,&pattr)" identifier = (call_expression "(*local_34)(pDVar22,&pattr)" (parenthesized_expression "(*local_34)" ( (pointer_expression "*local_34" * identifier) )) (argument_list "(pDVar22,&pattr)" ( identifier , (pointer_expression "&pattr" & identifier) )))) ;) }))) (expression_statement "pDVar22 = this->dwinfo_;" (assignment_expression "pDVar22 = this->dwinfo_" identifier = (field_expression "this->dwinfo_" identifier -> field_identifier)) ;) (goto_statement "goto LAB_002e3970;" goto statement_identifier ;) })) (if_statement "if (uVar29 != 0x20) {\n                  if (uVar29 < 0x20) {\n                    return false;\n                  }\n                  if (1 < uVar29 - 0x1f01) {\n                    return false;\n                  }\nLAB_002e34d8:\n                  if ((char)*pattr < '\0') {\n                    aVar40.intval = (*(code *)PTR_read_unsigned_LEB_128_x_004c2980)(pattr + 1,&len);\n                    pattr = pattr + len;\n                  }\n                  else {\n                    aVar40.intval._0_7_ = 0;\n                    aVar40.intval._7_1_ = *pattr;\n                    len = 1;\n                    pattr = pattr + 1;\n                  }\n                  goto LAB_002e382c;\n                }" if (parenthesized_expression "(uVar29 != 0x20)" ( (binary_expression "uVar29 != 0x20" identifier != number_literal) )) (compound_statement "{\n                  if (uVar29 < 0x20) {\n                    return false;\n                  }\n                  if (1 < uVar29 - 0x1f01) {\n                    return false;\n                  }\nLAB_002e34d8:\n                  if ((char)*pattr < '\0') {\n                    aVar40.intval = (*(code *)PTR_read_unsigned_LEB_128_x_004c2980)(pattr + 1,&len);\n                    pattr = pattr + len;\n                  }\n                  else {\n                    aVar40.intval._0_7_ = 0;\n                    aVar40.intval._7_1_ = *pattr;\n                    len = 1;\n                    pattr = pattr + 1;\n                  }\n                  goto LAB_002e382c;\n                }" { (if_statement "if (uVar29 < 0x20) {\n                    return false;\n                  }" if (parenthesized_expression "(uVar29 < 0x20)" ( (binary_expression "uVar29 < 0x20" identifier < number_literal) )) (compound_statement "{\n                    return false;\n                  }" { (return_statement "return false;" return false ;) })) (if_statement "if (1 < uVar29 - 0x1f01) {\n                    return false;\n                  }" if (parenthesized_expression "(1 < uVar29 - 0x1f01)" ( (binary_expression "1 < uVar29 - 0x1f01" number_literal < (binary_expression "uVar29 - 0x1f01" identifier - number_literal)) )) (compound_statement "{\n                    return false;\n                  }" { (return_statement "return false;" return false ;) })) (labeled_statement "LAB_002e34d8:\n                  if ((char)*pattr < '\0') {\n                    aVar40.intval = (*(code *)PTR_read_unsigned_LEB_128_x_004c2980)(pattr + 1,&len);\n                    pattr = pattr + len;\n                  }\n                  else {\n                    aVar40.intval._0_7_ = 0;\n                    aVar40.intval._7_1_ = *pattr;\n                    len = 1;\n                    pattr = pattr + 1;\n                  }" statement_identifier : (if_statement "if ((char)*pattr < '\0') {\n                    aVar40.intval = (*(code *)PTR_read_unsigned_LEB_128_x_004c2980)(pattr + 1,&len);\n                    pattr = pattr + len;\n                  }\n                  else {\n                    aVar40.intval._0_7_ = 0;\n                    aVar40.intval._7_1_ = *pattr;\n                    len = 1;\n                    pattr = pattr + 1;\n                  }" if (parenthesized_expression "((char)*pattr < '\0')" ( (binary_expression "(char)*pattr < '\0'" (cast_expression "(char)*pattr" ( (type_descriptor "char" primitive_type) ) (pointer_expression "*pattr" * identifier)) < (char_literal "'\0'" ' escape_sequence ')) )) (compound_statement "{\n                    aVar40.intval = (*(code *)PTR_read_unsigned_LEB_128_x_004c2980)(pattr + 1,&len);\n                    pattr = pattr + len;\n                  }" { (expression_statement "aVar40.intval = (*(code *)PTR_read_unsigned_LEB_128_x_004c2980)(pattr + 1,&len);" (assignment_expression "aVar40.intval = (*(code *)PTR_read_unsigned_LEB_128_x_004c2980)(pattr + 1,&len)" (field_expression "aVar40.intval" identifier . field_identifier) = (call_expression "(*(code *)PTR_read_unsigned_LEB_128_x_004c2980)(pattr + 1,&len)" (parenthesized_expression "(*(code *)PTR_read_unsigned_LEB_128_x_004c2980)" ( (pointer_expression "*(code *)PTR_read_unsigned_LEB_128_x_004c2980" * (cast_expression "(code *)PTR_read_unsigned_LEB_128_x_004c2980" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(pattr + 1,&len)" ( (binary_expression "pattr + 1" identifier + number_literal) , (pointer_expression "&len" & identifier) )))) ;) (expression_statement "pattr = pattr + len;" (assignment_expression "pattr = pattr + len" identifier = (binary_expression "pattr + len" identifier + identifier)) ;) }) (else_clause "else {\n                    aVar40.intval._0_7_ = 0;\n                    aVar40.intval._7_1_ = *pattr;\n                    len = 1;\n                    pattr = pattr + 1;\n                  }" else (compound_statement "{\n                    aVar40.intval._0_7_ = 0;\n                    aVar40.intval._7_1_ = *pattr;\n                    len = 1;\n                    pattr = pattr + 1;\n                  }" { (expression_statement "aVar40.intval._0_7_ = 0;" (assignment_expression "aVar40.intval._0_7_ = 0" (field_expression "aVar40.intval._0_7_" (field_expression "aVar40.intval" identifier . field_identifier) . field_identifier) = number_literal) ;) (expression_statement "aVar40.intval._7_1_ = *pattr;" (assignment_expression "aVar40.intval._7_1_ = *pattr" (field_expression "aVar40.intval._7_1_" (field_expression "aVar40.intval" identifier . field_identifier) . field_identifier) = (pointer_expression "*pattr" * identifier)) ;) (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)) ;) })))) (goto_statement "goto LAB_002e382c;" goto statement_identifier ;) })) (expression_statement "pp_Var16 = (this->dwinfo_->object_->super_Object)._vptr_Object;" (assignment_expression "pp_Var16 = (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_Var37 = pp_Var16[3];" (assignment_expression "p_Var37 = pp_Var16[3]" identifier = (subscript_expression "pp_Var16[3]" identifier [ number_literal ])) ;) (if_statement "if (p_Var37 == (_func_int_varargs *)PTR_is_big_endian_004c2950) {\n                  iVar36 = (*pp_Var16[0x3a])();\n                }\n                else {\n                  iVar36 = (*p_Var37)();\n                }" if (parenthesized_expression "(p_Var37 == (_func_int_varargs *)PTR_is_big_endian_004c2950)" ( (binary_expression "p_Var37 == (_func_int_varargs *)PTR_is_big_endian_004c2950" identifier == (cast_expression "(_func_int_varargs *)PTR_is_big_endian_004c2950" ( (type_descriptor "_func_int_varargs *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (compound_statement "{\n                  iVar36 = (*pp_Var16[0x3a])();\n                }" { (expression_statement "iVar36 = (*pp_Var16[0x3a])();" (assignment_expression "iVar36 = (*pp_Var16[0x3a])()" identifier = (call_expression "(*pp_Var16[0x3a])()" (parenthesized_expression "(*pp_Var16[0x3a])" ( (pointer_expression "*pp_Var16[0x3a]" * (subscript_expression "pp_Var16[0x3a]" identifier [ number_literal ])) )) (argument_list "()" ( )))) ;) }) (else_clause "else {\n                  iVar36 = (*p_Var37)();\n                }" else (compound_statement "{\n                  iVar36 = (*p_Var37)();\n                }" { (expression_statement "iVar36 = (*p_Var37)();" (assignment_expression "iVar36 = (*p_Var37)()" identifier = (call_expression "(*p_Var37)()" (parenthesized_expression "(*p_Var37)" ( (pointer_expression "*p_Var37" * identifier) )) (argument_list "()" ( )))) ;) }))) comment (expression_statement "attr_value.val._4_4_ = pattr[4];" (assignment_expression "attr_value.val._4_4_ = pattr[4]" (field_expression "attr_value.val._4_4_" (field_expression "attr_value.val" identifier . field_identifier) . field_identifier) = (subscript_expression "pattr[4]" identifier [ number_literal ])) ;) 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 (iVar36 == 0) {\n                  uVar23 = attr_value.val.uintval._4_4_ & 0xff;\n                  uVar26 = (uint)attr_value.val.uintval._4_4_ >> 8;\n                  uVar2 = (uint)attr_value.val.uintval._4_4_ >> 0x10;\n                  uVar4 = (uint)attr_value.val.uintval._4_4_ >> 0x18;\n                  attr_value.val.intval._4_4_ =\n                       ((((uint)attr_value.val.stringval >> 0x10) << 0x18 |\n                        ((uint)attr_value.val.stringval >> 0x18) << 0x10) >> 0x10) +\n                       (((uint)attr_value.val.stringval & 0xff) << 8 |\n                       (uint)attr_value.val.stringval >> 8 & 0xff) * 0x10000;\n                  attr_value.val.stringval =\n                       (char *)(((uVar2 << 0x18 | uVar4 << 0x10) >> 0x10) +\n                               (uVar23 << 8 | uVar26 & 0xff) * 0x10000);\n                }" if (parenthesized_expression "(iVar36 == 0)" ( (binary_expression "iVar36 == 0" identifier == number_literal) )) (compound_statement "{\n                  uVar23 = attr_value.val.uintval._4_4_ & 0xff;\n                  uVar26 = (uint)attr_value.val.uintval._4_4_ >> 8;\n                  uVar2 = (uint)attr_value.val.uintval._4_4_ >> 0x10;\n                  uVar4 = (uint)attr_value.val.uintval._4_4_ >> 0x18;\n                  attr_value.val.intval._4_4_ =\n                       ((((uint)attr_value.val.stringval >> 0x10) << 0x18 |\n                        ((uint)attr_value.val.stringval >> 0x18) << 0x10) >> 0x10) +\n                       (((uint)attr_value.val.stringval & 0xff) << 8 |\n                       (uint)attr_value.val.stringval >> 8 & 0xff) * 0x10000;\n                  attr_value.val.stringval =\n                       (char *)(((uVar2 << 0x18 | uVar4 << 0x10) >> 0x10) +\n                               (uVar23 << 8 | uVar26 & 0xff) * 0x10000);\n                }" { (expression_statement "uVar23 = attr_value.val.uintval._4_4_ & 0xff;" (assignment_expression "uVar23 = attr_value.val.uintval._4_4_ & 0xff" identifier = (binary_expression "attr_value.val.uintval._4_4_ & 0xff" (field_expression "attr_value.val.uintval._4_4_" (field_expression "attr_value.val.uintval" (field_expression "attr_value.val" identifier . field_identifier) . field_identifier) . field_identifier) & number_literal)) ;) (expression_statement "uVar26 = (uint)attr_value.val.uintval._4_4_ >> 8;" (assignment_expression "uVar26 = (uint)attr_value.val.uintval._4_4_ >> 8" identifier = (binary_expression "(uint)attr_value.val.uintval._4_4_ >> 8" (cast_expression "(uint)attr_value.val.uintval._4_4_" ( (type_descriptor "uint" type_identifier) ) (field_expression "attr_value.val.uintval._4_4_" (field_expression "attr_value.val.uintval" (field_expression "attr_value.val" identifier . field_identifier) . field_identifier) . field_identifier)) >> number_literal)) ;) (expression_statement "uVar2 = (uint)attr_value.val.uintval._4_4_ >> 0x10;" (assignment_expression "uVar2 = (uint)attr_value.val.uintval._4_4_ >> 0x10" identifier = (binary_expression "(uint)attr_value.val.uintval._4_4_ >> 0x10" (cast_expression "(uint)attr_value.val.uintval._4_4_" ( (type_descriptor "uint" type_identifier) ) (field_expression "attr_value.val.uintval._4_4_" (field_expression "attr_value.val.uintval" (field_expression "attr_value.val" identifier . field_identifier) . field_identifier) . field_identifier)) >> number_literal)) ;) (expression_statement "uVar4 = (uint)attr_value.val.uintval._4_4_ >> 0x18;" (assignment_expression "uVar4 = (uint)attr_value.val.uintval._4_4_ >> 0x18" identifier = (binary_expression "(uint)attr_value.val.uintval._4_4_ >> 0x18" (cast_expression "(uint)attr_value.val.uintval._4_4_" ( (type_descriptor "uint" type_identifier) ) (field_expression "attr_value.val.uintval._4_4_" (field_expression "attr_value.val.uintval" (field_expression "attr_value.val" identifier . field_identifier) . field_identifier) . field_identifier)) >> number_literal)) ;) (expression_statement "attr_value.val.intval._4_4_ =\n                       ((((uint)attr_value.val.stringval >> 0x10) << 0x18 |\n                        ((uint)attr_value.val.stringval >> 0x18) << 0x10) >> 0x10) +\n                       (((uint)attr_value.val.stringval & 0xff) << 8 |\n                       (uint)attr_value.val.stringval >> 8 & 0xff) * 0x10000;" (assignment_expression "attr_value.val.intval._4_4_ =\n                       ((((uint)attr_value.val.stringval >> 0x10) << 0x18 |\n                        ((uint)attr_value.val.stringval >> 0x18) << 0x10) >> 0x10) +\n                       (((uint)attr_value.val.stringval & 0xff) << 8 |\n                       (uint)attr_value.val.stringval >> 8 & 0xff) * 0x10000" (field_expression "attr_value.val.intval._4_4_" (field_expression "attr_value.val.intval" (field_expression "attr_value.val" identifier . field_identifier) . field_identifier) . field_identifier) = (binary_expression "((((uint)attr_value.val.stringval >> 0x10) << 0x18 |\n                        ((uint)attr_value.val.stringval >> 0x18) << 0x10) >> 0x10) +\n                       (((uint)attr_value.val.stringval & 0xff) << 8 |\n                       (uint)attr_value.val.stringval >> 8 & 0xff) * 0x10000" (parenthesized_expression "((((uint)attr_value.val.stringval >> 0x10) << 0x18 |\n                        ((uint)attr_value.val.stringval >> 0x18) << 0x10) >> 0x10)" ( (binary_expression "(((uint)attr_value.val.stringval >> 0x10) << 0x18 |\n                        ((uint)attr_value.val.stringval >> 0x18) << 0x10) >> 0x10" (parenthesized_expression "(((uint)attr_value.val.stringval >> 0x10) << 0x18 |\n                        ((uint)attr_value.val.stringval >> 0x18) << 0x10)" ( (binary_expression "((uint)attr_value.val.stringval >> 0x10) << 0x18 |\n                        ((uint)attr_value.val.stringval >> 0x18) << 0x10" (binary_expression "((uint)attr_value.val.stringval >> 0x10) << 0x18" (parenthesized_expression "((uint)attr_value.val.stringval >> 0x10)" ( (binary_expression "(uint)attr_value.val.stringval >> 0x10" (cast_expression "(uint)attr_value.val.stringval" ( (type_descriptor "uint" type_identifier) ) (field_expression "attr_value.val.stringval" (field_expression "attr_value.val" identifier . field_identifier) . field_identifier)) >> number_literal) )) << number_literal) | (binary_expression "((uint)attr_value.val.stringval >> 0x18) << 0x10" (parenthesized_expression "((uint)attr_value.val.stringval >> 0x18)" ( (binary_expression "(uint)attr_value.val.stringval >> 0x18" (cast_expression "(uint)attr_value.val.stringval" ( (type_descriptor "uint" type_identifier) ) (field_expression "attr_value.val.stringval" (field_expression "attr_value.val" identifier . field_identifier) . field_identifier)) >> number_literal) )) << number_literal)) )) >> number_literal) )) + (binary_expression "(((uint)attr_value.val.stringval & 0xff) << 8 |\n                       (uint)attr_value.val.stringval >> 8 & 0xff) * 0x10000" (parenthesized_expression "(((uint)attr_value.val.stringval & 0xff) << 8 |\n                       (uint)attr_value.val.stringval >> 8 & 0xff)" ( (binary_expression "((uint)attr_value.val.stringval & 0xff) << 8 |\n                       (uint)attr_value.val.stringval >> 8 & 0xff" (binary_expression "((uint)attr_value.val.stringval & 0xff) << 8" (parenthesized_expression "((uint)attr_value.val.stringval & 0xff)" ( (binary_expression "(uint)attr_value.val.stringval & 0xff" (cast_expression "(uint)attr_value.val.stringval" ( (type_descriptor "uint" type_identifier) ) (field_expression "attr_value.val.stringval" (field_expression "attr_value.val" identifier . field_identifier) . field_identifier)) & number_literal) )) << number_literal) | (binary_expression "(uint)attr_value.val.stringval >> 8 & 0xff" (binary_expression "(uint)attr_value.val.stringval >> 8" (cast_expression "(uint)attr_value.val.stringval" ( (type_descriptor "uint" type_identifier) ) (field_expression "attr_value.val.stringval" (field_expression "attr_value.val" identifier . field_identifier) . field_identifier)) >> number_literal) & number_literal)) )) * number_literal))) ;) (expression_statement "attr_value.val.stringval =\n                       (char *)(((uVar2 << 0x18 | uVar4 << 0x10) >> 0x10) +\n                               (uVar23 << 8 | uVar26 & 0xff) * 0x10000);" (assignment_expression "attr_value.val.stringval =\n                       (char *)(((uVar2 << 0x18 | uVar4 << 0x10) >> 0x10) +\n                               (uVar23 << 8 | uVar26 & 0xff) * 0x10000)" (field_expression "attr_value.val.stringval" (field_expression "attr_value.val" identifier . field_identifier) . field_identifier) = (cast_expression "(char *)(((uVar2 << 0x18 | uVar4 << 0x10) >> 0x10) +\n                               (uVar23 << 8 | uVar26 & 0xff) * 0x10000)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(((uVar2 << 0x18 | uVar4 << 0x10) >> 0x10) +\n                               (uVar23 << 8 | uVar26 & 0xff) * 0x10000)" ( (binary_expression "((uVar2 << 0x18 | uVar4 << 0x10) >> 0x10) +\n                               (uVar23 << 8 | uVar26 & 0xff) * 0x10000" (parenthesized_expression "((uVar2 << 0x18 | uVar4 << 0x10) >> 0x10)" ( (binary_expression "(uVar2 << 0x18 | uVar4 << 0x10) >> 0x10" (parenthesized_expression "(uVar2 << 0x18 | uVar4 << 0x10)" ( (binary_expression "uVar2 << 0x18 | uVar4 << 0x10" (binary_expression "uVar2 << 0x18" identifier << number_literal) | (binary_expression "uVar4 << 0x10" identifier << number_literal)) )) >> number_literal) )) + (binary_expression "(uVar23 << 8 | uVar26 & 0xff) * 0x10000" (parenthesized_expression "(uVar23 << 8 | uVar26 & 0xff)" ( (binary_expression "uVar23 << 8 | uVar26 & 0xff" (binary_expression "uVar23 << 8" identifier << number_literal) | (binary_expression "uVar26 & 0xff" identifier & number_literal)) )) * number_literal)) )))) ;) })) (expression_statement "pattr = pattr + 8;" (assignment_expression "pattr = pattr + 8" identifier = (binary_expression "pattr + 8" identifier + number_literal)) ;) }))) (expression_statement "aVar39.stringval = attr_value.val.stringval;" (assignment_expression "aVar39.stringval = attr_value.val.stringval" (field_expression "aVar39.stringval" identifier . field_identifier) = (field_expression "attr_value.val.stringval" (field_expression "attr_value.val" identifier . field_identifier) . field_identifier)) ;) (expression_statement "aVar39.intval._4_4_ = attr_value.val.intval._4_4_;" (assignment_expression "aVar39.intval._4_4_ = attr_value.val.intval._4_4_" (field_expression "aVar39.intval._4_4_" (field_expression "aVar39.intval" identifier . field_identifier) . field_identifier) = (field_expression "attr_value.val.intval._4_4_" (field_expression "attr_value.val.intval" (field_expression "attr_value.val" identifier . field_identifier) . field_identifier) . field_identifier)) ;) (expression_statement "aVar11.stringval = attr_value.val.stringval;" (assignment_expression "aVar11.stringval = attr_value.val.stringval" (field_expression "aVar11.stringval" identifier . field_identifier) = (field_expression "attr_value.val.stringval" (field_expression "attr_value.val" identifier . field_identifier) . field_identifier)) ;) (expression_statement "aVar11.intval._4_4_ = attr_value.val.intval._4_4_;" (assignment_expression "aVar11.intval._4_4_ = attr_value.val.intval._4_4_" (field_expression "aVar11.intval._4_4_" (field_expression "aVar11.intval" identifier . field_identifier) . field_identifier) = (field_expression "attr_value.val.intval._4_4_" (field_expression "attr_value.val.intval" (field_expression "attr_value.val" identifier . field_identifier) . field_identifier) . field_identifier)) ;) (expression_statement "aVar7.stringval = attr_value.val.stringval;" (assignment_expression "aVar7.stringval = attr_value.val.stringval" (field_expression "aVar7.stringval" identifier . field_identifier) = (field_expression "attr_value.val.stringval" (field_expression "attr_value.val" identifier . field_identifier) . field_identifier)) ;) (expression_statement "aVar7.intval._4_4_ = attr_value.val.intval._4_4_;" (assignment_expression "aVar7.intval._4_4_ = attr_value.val.intval._4_4_" (field_expression "aVar7.intval._4_4_" (field_expression "aVar7.intval" identifier . field_identifier) . field_identifier) = (field_expression "attr_value.val.intval._4_4_" (field_expression "attr_value.val.intval" (field_expression "attr_value.val" identifier . field_identifier) . field_identifier) . field_identifier)) ;) (if_statement "if (uVar32 == 0x6e) goto LAB_002e313c;" if (parenthesized_expression "(uVar32 == 0x6e)" ( (binary_expression "uVar32 == 0x6e" identifier == number_literal) )) (goto_statement "goto LAB_002e313c;" goto statement_identifier ;)) (expression_statement "aVar7 = aVar11;" (assignment_expression "aVar7 = aVar11" identifier = identifier) ;) (if_statement "if (uVar32 == 0x2007) goto LAB_002e313c;" if (parenthesized_expression "(uVar32 == 0x2007)" ( (binary_expression "uVar32 == 0x2007" identifier == number_literal) )) (goto_statement "goto LAB_002e313c;" goto statement_identifier ;)) (goto_statement "goto joined_r0x002e3124;" goto statement_identifier ;) })) (if_statement "if (uVar29 == 0x11) {\n              puVar15 = pattr + 1;\n              uVar23 = CONCAT31(0,*pattr);\n              aVar39.stringval = (char *)0x0;\n              aVar39.intval._4_4_ = uVar23;\n              aVar12.stringval = (char *)0x0;\n              aVar12.uintval._4_4_ = uVar23;\n              aVar40.stringval = (char *)0x0;\n              aVar40.uintval._4_4_ = uVar23;\n              aVar10.stringval = (char *)0x0;\n              aVar10.uintval._4_4_ = uVar23;\n              aVar7.stringval = (char *)0x0;\n              aVar7.uintval._4_4_ = uVar23;\n              aVar9.stringval = (char *)0x0;\n              aVar9.uintval._4_4_ = uVar23;\n              pattr = puVar15;\n              if (uVar32 == 0x31) goto LAB_002e30bc;\n              if (0x31 < uVar32) {\n                if ((uVar32 != 0x6e) && (aVar40 = aVar12, uVar32 != 0x2007)) {\n                  if (uVar32 != 0x47) goto LAB_002e313c;\n                  *(undefined4 *)&this->specification_ = 0;\n                  *(uint *)((int)&this->specification_ + 4) = uVar23;\n                  aVar7 = aVar10;\n                  goto LAB_002e313c;\n                }\n                goto LAB_002e3858;\n              }\n              if (uVar32 == 1) {\n                *(undefined4 *)&this->sibling_offset_ = 0;\n                *(uint *)((int)&this->sibling_offset_ + 4) = uVar23;\n                aVar7 = aVar9;\n                goto LAB_002e313c;\n              }\n              goto joined_r0x002e3124;\n            }" if (parenthesized_expression "(uVar29 == 0x11)" ( (binary_expression "uVar29 == 0x11" identifier == number_literal) )) (compound_statement "{\n              puVar15 = pattr + 1;\n              uVar23 = CONCAT31(0,*pattr);\n              aVar39.stringval = (char *)0x0;\n              aVar39.intval._4_4_ = uVar23;\n              aVar12.stringval = (char *)0x0;\n              aVar12.uintval._4_4_ = uVar23;\n              aVar40.stringval = (char *)0x0;\n              aVar40.uintval._4_4_ = uVar23;\n              aVar10.stringval = (char *)0x0;\n              aVar10.uintval._4_4_ = uVar23;\n              aVar7.stringval = (char *)0x0;\n              aVar7.uintval._4_4_ = uVar23;\n              aVar9.stringval = (char *)0x0;\n              aVar9.uintval._4_4_ = uVar23;\n              pattr = puVar15;\n              if (uVar32 == 0x31) goto LAB_002e30bc;\n              if (0x31 < uVar32) {\n                if ((uVar32 != 0x6e) && (aVar40 = aVar12, uVar32 != 0x2007)) {\n                  if (uVar32 != 0x47) goto LAB_002e313c;\n                  *(undefined4 *)&this->specification_ = 0;\n                  *(uint *)((int)&this->specification_ + 4) = uVar23;\n                  aVar7 = aVar10;\n                  goto LAB_002e313c;\n                }\n                goto LAB_002e3858;\n              }\n              if (uVar32 == 1) {\n                *(undefined4 *)&this->sibling_offset_ = 0;\n                *(uint *)((int)&this->sibling_offset_ + 4) = uVar23;\n                aVar7 = aVar9;\n                goto LAB_002e313c;\n              }\n              goto joined_r0x002e3124;\n            }" { (expression_statement "puVar15 = pattr + 1;" (assignment_expression "puVar15 = pattr + 1" identifier = (binary_expression "pattr + 1" identifier + number_literal)) ;) (expression_statement "uVar23 = CONCAT31(0,*pattr);" (assignment_expression "uVar23 = CONCAT31(0,*pattr)" identifier = (call_expression "CONCAT31(0,*pattr)" identifier (argument_list "(0,*pattr)" ( number_literal , (pointer_expression "*pattr" * identifier) )))) ;) (expression_statement "aVar39.stringval = (char *)0x0;" (assignment_expression "aVar39.stringval = (char *)0x0" (field_expression "aVar39.stringval" identifier . field_identifier) = (cast_expression "(char *)0x0" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (expression_statement "aVar39.intval._4_4_ = uVar23;" (assignment_expression "aVar39.intval._4_4_ = uVar23" (field_expression "aVar39.intval._4_4_" (field_expression "aVar39.intval" identifier . field_identifier) . field_identifier) = identifier) ;) (expression_statement "aVar12.stringval = (char *)0x0;" (assignment_expression "aVar12.stringval = (char *)0x0" (field_expression "aVar12.stringval" identifier . field_identifier) = (cast_expression "(char *)0x0" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (expression_statement "aVar12.uintval._4_4_ = uVar23;" (assignment_expression "aVar12.uintval._4_4_ = uVar23" (field_expression "aVar12.uintval._4_4_" (field_expression "aVar12.uintval" identifier . field_identifier) . field_identifier) = identifier) ;) (expression_statement "aVar40.stringval = (char *)0x0;" (assignment_expression "aVar40.stringval = (char *)0x0" (field_expression "aVar40.stringval" identifier . field_identifier) = (cast_expression "(char *)0x0" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (expression_statement "aVar40.uintval._4_4_ = uVar23;" (assignment_expression "aVar40.uintval._4_4_ = uVar23" (field_expression "aVar40.uintval._4_4_" (field_expression "aVar40.uintval" identifier . field_identifier) . field_identifier) = identifier) ;) (expression_statement "aVar10.stringval = (char *)0x0;" (assignment_expression "aVar10.stringval = (char *)0x0" (field_expression "aVar10.stringval" identifier . field_identifier) = (cast_expression "(char *)0x0" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (expression_statement "aVar10.uintval._4_4_ = uVar23;" (assignment_expression "aVar10.uintval._4_4_ = uVar23" (field_expression "aVar10.uintval._4_4_" (field_expression "aVar10.uintval" identifier . field_identifier) . field_identifier) = identifier) ;) (expression_statement "aVar7.stringval = (char *)0x0;" (assignment_expression "aVar7.stringval = (char *)0x0" (field_expression "aVar7.stringval" identifier . field_identifier) = (cast_expression "(char *)0x0" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (expression_statement "aVar7.uintval._4_4_ = uVar23;" (assignment_expression "aVar7.uintval._4_4_ = uVar23" (field_expression "aVar7.uintval._4_4_" (field_expression "aVar7.uintval" identifier . field_identifier) . field_identifier) = identifier) ;) (expression_statement "aVar9.stringval = (char *)0x0;" (assignment_expression "aVar9.stringval = (char *)0x0" (field_expression "aVar9.stringval" identifier . field_identifier) = (cast_expression "(char *)0x0" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (expression_statement "aVar9.uintval._4_4_ = uVar23;" (assignment_expression "aVar9.uintval._4_4_ = uVar23" (field_expression "aVar9.uintval._4_4_" (field_expression "aVar9.uintval" identifier . field_identifier) . field_identifier) = identifier) ;) (expression_statement "pattr = puVar15;" (assignment_expression "pattr = puVar15" identifier = identifier) ;) (if_statement "if (uVar32 == 0x31) goto LAB_002e30bc;" if (parenthesized_expression "(uVar32 == 0x31)" ( (binary_expression "uVar32 == 0x31" identifier == number_literal) )) (goto_statement "goto LAB_002e30bc;" goto statement_identifier ;)) (if_statement "if (0x31 < uVar32) {\n                if ((uVar32 != 0x6e) && (aVar40 = aVar12, uVar32 != 0x2007)) {\n                  if (uVar32 != 0x47) goto LAB_002e313c;\n                  *(undefined4 *)&this->specification_ = 0;\n                  *(uint *)((int)&this->specification_ + 4) = uVar23;\n                  aVar7 = aVar10;\n                  goto LAB_002e313c;\n                }\n                goto LAB_002e3858;\n              }" if (parenthesized_expression "(0x31 < uVar32)" ( (binary_expression "0x31 < uVar32" number_literal < identifier) )) (compound_statement "{\n                if ((uVar32 != 0x6e) && (aVar40 = aVar12, uVar32 != 0x2007)) {\n                  if (uVar32 != 0x47) goto LAB_002e313c;\n                  *(undefined4 *)&this->specification_ = 0;\n                  *(uint *)((int)&this->specification_ + 4) = uVar23;\n                  aVar7 = aVar10;\n                  goto LAB_002e313c;\n                }\n                goto LAB_002e3858;\n              }" { (if_statement "if ((uVar32 != 0x6e) && (aVar40 = aVar12, uVar32 != 0x2007)) {\n                  if (uVar32 != 0x47) goto LAB_002e313c;\n                  *(undefined4 *)&this->specification_ = 0;\n                  *(uint *)((int)&this->specification_ + 4) = uVar23;\n                  aVar7 = aVar10;\n                  goto LAB_002e313c;\n                }" if (parenthesized_expression "((uVar32 != 0x6e) && (aVar40 = aVar12, uVar32 != 0x2007))" ( (binary_expression "(uVar32 != 0x6e) && (aVar40 = aVar12, uVar32 != 0x2007)" (parenthesized_expression "(uVar32 != 0x6e)" ( (binary_expression "uVar32 != 0x6e" identifier != number_literal) )) && (parenthesized_expression "(aVar40 = aVar12, uVar32 != 0x2007)" ( (comma_expression "aVar40 = aVar12, uVar32 != 0x2007" (assignment_expression "aVar40 = aVar12" identifier = identifier) , (binary_expression "uVar32 != 0x2007" identifier != number_literal)) ))) )) (compound_statement "{\n                  if (uVar32 != 0x47) goto LAB_002e313c;\n                  *(undefined4 *)&this->specification_ = 0;\n                  *(uint *)((int)&this->specification_ + 4) = uVar23;\n                  aVar7 = aVar10;\n                  goto LAB_002e313c;\n                }" { (if_statement "if (uVar32 != 0x47) goto LAB_002e313c;" if (parenthesized_expression "(uVar32 != 0x47)" ( (binary_expression "uVar32 != 0x47" identifier != number_literal) )) (goto_statement "goto LAB_002e313c;" goto statement_identifier ;)) (expression_statement "*(undefined4 *)&this->specification_ = 0;" (assignment_expression "*(undefined4 *)&this->specification_ = 0" (pointer_expression "*(undefined4 *)&this->specification_" * (cast_expression "(undefined4 *)&this->specification_" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (pointer_expression "&this->specification_" & (field_expression "this->specification_" identifier -> field_identifier)))) = number_literal) ;) (expression_statement "*(uint *)((int)&this->specification_ + 4) = uVar23;" (assignment_expression "*(uint *)((int)&this->specification_ + 4) = uVar23" (pointer_expression "*(uint *)((int)&this->specification_ + 4)" * (cast_expression "(uint *)((int)&this->specification_ + 4)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)&this->specification_ + 4)" ( (binary_expression "(int)&this->specification_ + 4" (cast_expression "(int)&this->specification_" ( (type_descriptor "int" primitive_type) ) (pointer_expression "&this->specification_" & (field_expression "this->specification_" identifier -> field_identifier))) + number_literal) )))) = identifier) ;) (expression_statement "aVar7 = aVar10;" (assignment_expression "aVar7 = aVar10" identifier = identifier) ;) (goto_statement "goto LAB_002e313c;" goto statement_identifier ;) })) (goto_statement "goto LAB_002e3858;" goto statement_identifier ;) })) (if_statement "if (uVar32 == 1) {\n                *(undefined4 *)&this->sibling_offset_ = 0;\n                *(uint *)((int)&this->sibling_offset_ + 4) = uVar23;\n                aVar7 = aVar9;\n                goto LAB_002e313c;\n              }" if (parenthesized_expression "(uVar32 == 1)" ( (binary_expression "uVar32 == 1" identifier == number_literal) )) (compound_statement "{\n                *(undefined4 *)&this->sibling_offset_ = 0;\n                *(uint *)((int)&this->sibling_offset_ + 4) = uVar23;\n                aVar7 = aVar9;\n                goto LAB_002e313c;\n              }" { (expression_statement "*(undefined4 *)&this->sibling_offset_ = 0;" (assignment_expression "*(undefined4 *)&this->sibling_offset_ = 0" (pointer_expression "*(undefined4 *)&this->sibling_offset_" * (cast_expression "(undefined4 *)&this->sibling_offset_" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (pointer_expression "&this->sibling_offset_" & (field_expression "this->sibling_offset_" identifier -> field_identifier)))) = number_literal) ;) (expression_statement "*(uint *)((int)&this->sibling_offset_ + 4) = uVar23;" (assignment_expression "*(uint *)((int)&this->sibling_offset_ + 4) = uVar23" (pointer_expression "*(uint *)((int)&this->sibling_offset_ + 4)" * (cast_expression "(uint *)((int)&this->sibling_offset_ + 4)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)&this->sibling_offset_ + 4)" ( (binary_expression "(int)&this->sibling_offset_ + 4" (cast_expression "(int)&this->sibling_offset_" ( (type_descriptor "int" primitive_type) ) (pointer_expression "&this->sibling_offset_" & (field_expression "this->sibling_offset_" identifier -> field_identifier))) + number_literal) )))) = identifier) ;) (expression_statement "aVar7 = aVar9;" (assignment_expression "aVar7 = aVar9" identifier = identifier) ;) (goto_statement "goto LAB_002e313c;" goto statement_identifier ;) })) (goto_statement "goto joined_r0x002e3124;" goto statement_identifier ;) })) (if_statement "if (uVar29 < 0x12) {\n              if (uVar29 == 0xf) goto LAB_002e34d8;\n              if (uVar29 != 0x10) {\n                return false;\n              }\n              pDVar22 = this->dwinfo_;\n              uVar23 = pDVar22->offset_size_;\n              if (pDVar22->cu_version_ < 3) {\n                uVar23 = pDVar22->address_size_;\n              }\n              if (uVar23 == 4) {\n                pp_Var16 = (pDVar22->object_->super_Object)._vptr_Object;\n                p_Var37 = pp_Var16[3];\n                if (p_Var37 == (_func_int_varargs *)PTR_is_big_endian_004c2950) {\n                  local_30 = puVar28;\n                  iVar36 = (*pp_Var16[0x3a])();\n                }\n                else {\n                  local_30 = puVar28;\n                  iVar36 = (*p_Var37)();\n                }\n                uVar23 = *(uint *)pattr;\n                if (iVar36 == 0) {\n                  uVar23 = (((uVar23 >> 0x10) << 0x18 | (uVar23 >> 0x18) << 0x10) >> 0x10) +\n                           ((uVar23 & 0xff) << 8 | uVar23 >> 8 & 0xff) * 0x10000;\n                }\n                pattr = pattr + 4;\n                uVar38 = (ulonglong)uVar23;\n              }\n              else {\n                local_30 = puVar28;\n                uVar38 = (*local_34)(pDVar22,&pattr);\n              }\n              str_off = uVar38;\n              attr_value.aux.shndx = (*local_3c)(this->dwinfo_);\n              aVar39.refval = str_off;\n            }\n            else {\n              if (uVar29 == 0x13) {\n                pp_Var16 = (this->dwinfo_->object_->super_Object)._vptr_Object;\n                p_Var37 = pp_Var16[3];\n                if (p_Var37 == (_func_int_varargs *)PTR_is_big_endian_004c2950) {\n                  local_30 = puVar28;\n                  iVar36 = (*pp_Var16[0x3a])();\n                }\n                else {\n                  local_30 = puVar28;\n                  iVar36 = (*p_Var37)();\n                }\n                uVar23 = *(uint *)pattr;\n                if (iVar36 == 0) {\n                  uVar23 = (((uVar23 >> 0x10) << 0x18 | (uVar23 >> 0x18) << 0x10) >> 0x10) +\n                           ((uVar23 & 0xff) << 8 | uVar23 >> 8 & 0xff) * 0x10000;\n                }\n                pattr = pattr + 4;\n                pDVar22 = this->dwinfo_;\n                uVar38 = (ulonglong)uVar23;\n              }\n              else {\n                if (uVar29 < 0x14) {\n                  pp_Var16 = (this->dwinfo_->object_->super_Object)._vptr_Object;\n                  p_Var37 = pp_Var16[3];\n                  if (p_Var37 == (_func_int_varargs *)PTR_is_big_endian_004c2950) {\n                    iVar36 = (*pp_Var16[0x3a])();\n                  }\n                  else {\n                    iVar36 = (*p_Var37)();\n                  }\n                  uVar6 = *(ushort *)pattr;\n                  if (iVar36 == 0) {\n                    uVar6 = CONCAT11(pattr[1],*pattr);\n                  }\n                  aVar39.intval._0_6_ = 0;\n                  aVar39.intval._6_2_ = uVar6;\n                  pattr = pattr + 2;\n                  goto joined_r0x002e3998;\n                }\n                pp_Var16 = (this->dwinfo_->object_->super_Object)._vptr_Object;\n                p_Var37 = pp_Var16[3];\n                if (p_Var37 == (_func_int_varargs *)PTR_is_big_endian_004c2950) {\n                  local_30 = puVar28;\n                  iVar36 = (*pp_Var16[0x3a])();\n                }\n                else {\n                  local_30 = puVar28;\n                  iVar36 = (*p_Var37)();\n                }\n                uVar23 = *(uint *)(pattr + 4);\n                uVar26 = *(uint *)pattr;\n                if (iVar36 == 0) {\n                  uVar2 = uVar23 & 0xff;\n                  uVar4 = uVar23 >> 8;\n                  uVar3 = uVar23 >> 0x10;\n                  uVar5 = uVar23 >> 0x18;\n                  uVar23 = (((uVar26 >> 0x10) << 0x18 | (uVar26 >> 0x18) << 0x10) >> 0x10) +\n                           ((uVar26 & 0xff) << 8 | uVar26 >> 8 & 0xff) * 0x10000;\n                  uVar26 = ((uVar3 << 0x18 | uVar5 << 0x10) >> 0x10) +\n                           (uVar2 << 8 | uVar4 & 0xff) * 0x10000;\n                }\n                uVar38 = CONCAT44(uVar26,uVar23);\n                pattr = pattr + 8;\n                pDVar22 = this->dwinfo_;\n              }\nLAB_002e3970:\n              str_off = uVar38;\n              attr_value.aux.shndx = (*local_3c)(pDVar22);\n              aVar39.refval = str_off;\n            }" if (parenthesized_expression "(uVar29 < 0x12)" ( (binary_expression "uVar29 < 0x12" identifier < number_literal) )) (compound_statement "{\n              if (uVar29 == 0xf) goto LAB_002e34d8;\n              if (uVar29 != 0x10) {\n                return false;\n              }\n              pDVar22 = this->dwinfo_;\n              uVar23 = pDVar22->offset_size_;\n              if (pDVar22->cu_version_ < 3) {\n                uVar23 = pDVar22->address_size_;\n              }\n              if (uVar23 == 4) {\n                pp_Var16 = (pDVar22->object_->super_Object)._vptr_Object;\n                p_Var37 = pp_Var16[3];\n                if (p_Var37 == (_func_int_varargs *)PTR_is_big_endian_004c2950) {\n                  local_30 = puVar28;\n                  iVar36 = (*pp_Var16[0x3a])();\n                }\n                else {\n                  local_30 = puVar28;\n                  iVar36 = (*p_Var37)();\n                }\n                uVar23 = *(uint *)pattr;\n                if (iVar36 == 0) {\n                  uVar23 = (((uVar23 >> 0x10) << 0x18 | (uVar23 >> 0x18) << 0x10) >> 0x10) +\n                           ((uVar23 & 0xff) << 8 | uVar23 >> 8 & 0xff) * 0x10000;\n                }\n                pattr = pattr + 4;\n                uVar38 = (ulonglong)uVar23;\n              }\n              else {\n                local_30 = puVar28;\n                uVar38 = (*local_34)(pDVar22,&pattr);\n              }\n              str_off = uVar38;\n              attr_value.aux.shndx = (*local_3c)(this->dwinfo_);\n              aVar39.refval = str_off;\n            }" { (if_statement "if (uVar29 == 0xf) goto LAB_002e34d8;" if (parenthesized_expression "(uVar29 == 0xf)" ( (binary_expression "uVar29 == 0xf" identifier == number_literal) )) (goto_statement "goto LAB_002e34d8;" goto statement_identifier ;)) (if_statement "if (uVar29 != 0x10) {\n                return false;\n              }" if (parenthesized_expression "(uVar29 != 0x10)" ( (binary_expression "uVar29 != 0x10" identifier != number_literal) )) (compound_statement "{\n                return false;\n              }" { (return_statement "return false;" return false ;) })) (expression_statement "pDVar22 = this->dwinfo_;" (assignment_expression "pDVar22 = this->dwinfo_" identifier = (field_expression "this->dwinfo_" identifier -> field_identifier)) ;) (expression_statement "uVar23 = pDVar22->offset_size_;" (assignment_expression "uVar23 = pDVar22->offset_size_" identifier = (field_expression "pDVar22->offset_size_" identifier -> field_identifier)) ;) (if_statement "if (pDVar22->cu_version_ < 3) {\n                uVar23 = pDVar22->address_size_;\n              }" if (parenthesized_expression "(pDVar22->cu_version_ < 3)" ( (binary_expression "pDVar22->cu_version_ < 3" (field_expression "pDVar22->cu_version_" identifier -> field_identifier) < number_literal) )) (compound_statement "{\n                uVar23 = pDVar22->address_size_;\n              }" { (expression_statement "uVar23 = pDVar22->address_size_;" (assignment_expression "uVar23 = pDVar22->address_size_" identifier = (field_expression "pDVar22->address_size_" identifier -> field_identifier)) ;) })) (if_statement "if (uVar23 == 4) {\n                pp_Var16 = (pDVar22->object_->super_Object)._vptr_Object;\n                p_Var37 = pp_Var16[3];\n                if (p_Var37 == (_func_int_varargs *)PTR_is_big_endian_004c2950) {\n                  local_30 = puVar28;\n                  iVar36 = (*pp_Var16[0x3a])();\n                }\n                else {\n                  local_30 = puVar28;\n                  iVar36 = (*p_Var37)();\n                }\n                uVar23 = *(uint *)pattr;\n                if (iVar36 == 0) {\n                  uVar23 = (((uVar23 >> 0x10) << 0x18 | (uVar23 >> 0x18) << 0x10) >> 0x10) +\n                           ((uVar23 & 0xff) << 8 | uVar23 >> 8 & 0xff) * 0x10000;\n                }\n                pattr = pattr + 4;\n                uVar38 = (ulonglong)uVar23;\n              }\n              else {\n                local_30 = puVar28;\n                uVar38 = (*local_34)(pDVar22,&pattr);\n              }" if (parenthesized_expression "(uVar23 == 4)" ( (binary_expression "uVar23 == 4" identifier == number_literal) )) (compound_statement "{\n                pp_Var16 = (pDVar22->object_->super_Object)._vptr_Object;\n                p_Var37 = pp_Var16[3];\n                if (p_Var37 == (_func_int_varargs *)PTR_is_big_endian_004c2950) {\n                  local_30 = puVar28;\n                  iVar36 = (*pp_Var16[0x3a])();\n                }\n                else {\n                  local_30 = puVar28;\n                  iVar36 = (*p_Var37)();\n                }\n                uVar23 = *(uint *)pattr;\n                if (iVar36 == 0) {\n                  uVar23 = (((uVar23 >> 0x10) << 0x18 | (uVar23 >> 0x18) << 0x10) >> 0x10) +\n                           ((uVar23 & 0xff) << 8 | uVar23 >> 8 & 0xff) * 0x10000;\n                }\n                pattr = pattr + 4;\n                uVar38 = (ulonglong)uVar23;\n              }" { (expression_statement "pp_Var16 = (pDVar22->object_->super_Object)._vptr_Object;" (assignment_expression "pp_Var16 = (pDVar22->object_->super_Object)._vptr_Object" identifier = (field_expression "(pDVar22->object_->super_Object)._vptr_Object" (parenthesized_expression "(pDVar22->object_->super_Object)" ( (field_expression "pDVar22->object_->super_Object" (field_expression "pDVar22->object_" identifier -> field_identifier) -> field_identifier) )) . field_identifier)) ;) (expression_statement "p_Var37 = pp_Var16[3];" (assignment_expression "p_Var37 = pp_Var16[3]" identifier = (subscript_expression "pp_Var16[3]" identifier [ number_literal ])) ;) (if_statement "if (p_Var37 == (_func_int_varargs *)PTR_is_big_endian_004c2950) {\n                  local_30 = puVar28;\n                  iVar36 = (*pp_Var16[0x3a])();\n                }\n                else {\n                  local_30 = puVar28;\n                  iVar36 = (*p_Var37)();\n                }" if (parenthesized_expression "(p_Var37 == (_func_int_varargs *)PTR_is_big_endian_004c2950)" ( (binary_expression "p_Var37 == (_func_int_varargs *)PTR_is_big_endian_004c2950" identifier == (cast_expression "(_func_int_varargs *)PTR_is_big_endian_004c2950" ( (type_descriptor "_func_int_varargs *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (compound_statement "{\n                  local_30 = puVar28;\n                  iVar36 = (*pp_Var16[0x3a])();\n                }" { (expression_statement "local_30 = puVar28;" (assignment_expression "local_30 = puVar28" identifier = identifier) ;) (expression_statement "iVar36 = (*pp_Var16[0x3a])();" (assignment_expression "iVar36 = (*pp_Var16[0x3a])()" identifier = (call_expression "(*pp_Var16[0x3a])()" (parenthesized_expression "(*pp_Var16[0x3a])" ( (pointer_expression "*pp_Var16[0x3a]" * (subscript_expression "pp_Var16[0x3a]" identifier [ number_literal ])) )) (argument_list "()" ( )))) ;) }) (else_clause "else {\n                  local_30 = puVar28;\n                  iVar36 = (*p_Var37)();\n                }" else (compound_statement "{\n                  local_30 = puVar28;\n                  iVar36 = (*p_Var37)();\n                }" { (expression_statement "local_30 = puVar28;" (assignment_expression "local_30 = puVar28" identifier = identifier) ;) (expression_statement "iVar36 = (*p_Var37)();" (assignment_expression "iVar36 = (*p_Var37)()" identifier = (call_expression "(*p_Var37)()" (parenthesized_expression "(*p_Var37)" ( (pointer_expression "*p_Var37" * identifier) )) (argument_list "()" ( )))) ;) }))) (expression_statement "uVar23 = *(uint *)pattr;" (assignment_expression "uVar23 = *(uint *)pattr" identifier = (pointer_expression "*(uint *)pattr" * (cast_expression "(uint *)pattr" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier))) ;) (if_statement "if (iVar36 == 0) {\n                  uVar23 = (((uVar23 >> 0x10) << 0x18 | (uVar23 >> 0x18) << 0x10) >> 0x10) +\n                           ((uVar23 & 0xff) << 8 | uVar23 >> 8 & 0xff) * 0x10000;\n                }" if (parenthesized_expression "(iVar36 == 0)" ( (binary_expression "iVar36 == 0" identifier == number_literal) )) (compound_statement "{\n                  uVar23 = (((uVar23 >> 0x10) << 0x18 | (uVar23 >> 0x18) << 0x10) >> 0x10) +\n                           ((uVar23 & 0xff) << 8 | uVar23 >> 8 & 0xff) * 0x10000;\n                }" { (expression_statement "uVar23 = (((uVar23 >> 0x10) << 0x18 | (uVar23 >> 0x18) << 0x10) >> 0x10) +\n                           ((uVar23 & 0xff) << 8 | uVar23 >> 8 & 0xff) * 0x10000;" (assignment_expression "uVar23 = (((uVar23 >> 0x10) << 0x18 | (uVar23 >> 0x18) << 0x10) >> 0x10) +\n                           ((uVar23 & 0xff) << 8 | uVar23 >> 8 & 0xff) * 0x10000" identifier = (binary_expression "(((uVar23 >> 0x10) << 0x18 | (uVar23 >> 0x18) << 0x10) >> 0x10) +\n                           ((uVar23 & 0xff) << 8 | uVar23 >> 8 & 0xff) * 0x10000" (parenthesized_expression "(((uVar23 >> 0x10) << 0x18 | (uVar23 >> 0x18) << 0x10) >> 0x10)" ( (binary_expression "((uVar23 >> 0x10) << 0x18 | (uVar23 >> 0x18) << 0x10) >> 0x10" (parenthesized_expression "((uVar23 >> 0x10) << 0x18 | (uVar23 >> 0x18) << 0x10)" ( (binary_expression "(uVar23 >> 0x10) << 0x18 | (uVar23 >> 0x18) << 0x10" (binary_expression "(uVar23 >> 0x10) << 0x18" (parenthesized_expression "(uVar23 >> 0x10)" ( (binary_expression "uVar23 >> 0x10" identifier >> number_literal) )) << number_literal) | (binary_expression "(uVar23 >> 0x18) << 0x10" (parenthesized_expression "(uVar23 >> 0x18)" ( (binary_expression "uVar23 >> 0x18" identifier >> number_literal) )) << number_literal)) )) >> number_literal) )) + (binary_expression "((uVar23 & 0xff) << 8 | uVar23 >> 8 & 0xff) * 0x10000" (parenthesized_expression "((uVar23 & 0xff) << 8 | uVar23 >> 8 & 0xff)" ( (binary_expression "(uVar23 & 0xff) << 8 | uVar23 >> 8 & 0xff" (binary_expression "(uVar23 & 0xff) << 8" (parenthesized_expression "(uVar23 & 0xff)" ( (binary_expression "uVar23 & 0xff" identifier & number_literal) )) << number_literal) | (binary_expression "uVar23 >> 8 & 0xff" (binary_expression "uVar23 >> 8" identifier >> number_literal) & number_literal)) )) * number_literal))) ;) })) (expression_statement "pattr = pattr + 4;" (assignment_expression "pattr = pattr + 4" identifier = (binary_expression "pattr + 4" identifier + number_literal)) ;) (expression_statement "uVar38 = (ulonglong)uVar23;" (assignment_expression "uVar38 = (ulonglong)uVar23" identifier = (cast_expression "(ulonglong)uVar23" ( (type_descriptor "ulonglong" type_identifier) ) identifier)) ;) }) (else_clause "else {\n                local_30 = puVar28;\n                uVar38 = (*local_34)(pDVar22,&pattr);\n              }" else (compound_statement "{\n                local_30 = puVar28;\n                uVar38 = (*local_34)(pDVar22,&pattr);\n              }" { (expression_statement "local_30 = puVar28;" (assignment_expression "local_30 = puVar28" identifier = identifier) ;) (expression_statement "uVar38 = (*local_34)(pDVar22,&pattr);" (assignment_expression "uVar38 = (*local_34)(pDVar22,&pattr)" identifier = (call_expression "(*local_34)(pDVar22,&pattr)" (parenthesized_expression "(*local_34)" ( (pointer_expression "*local_34" * identifier) )) (argument_list "(pDVar22,&pattr)" ( identifier , (pointer_expression "&pattr" & identifier) )))) ;) }))) (expression_statement "str_off = uVar38;" (assignment_expression "str_off = uVar38" identifier = identifier) ;) (expression_statement "attr_value.aux.shndx = (*local_3c)(this->dwinfo_);" (assignment_expression "attr_value.aux.shndx = (*local_3c)(this->dwinfo_)" (field_expression "attr_value.aux.shndx" (field_expression "attr_value.aux" identifier . field_identifier) . field_identifier) = (call_expression "(*local_3c)(this->dwinfo_)" (parenthesized_expression "(*local_3c)" ( (pointer_expression "*local_3c" * identifier) )) (argument_list "(this->dwinfo_)" ( (field_expression "this->dwinfo_" identifier -> field_identifier) )))) ;) (expression_statement "aVar39.refval = str_off;" (assignment_expression "aVar39.refval = str_off" (field_expression "aVar39.refval" identifier . field_identifier) = identifier) ;) }) (else_clause "else {\n              if (uVar29 == 0x13) {\n                pp_Var16 = (this->dwinfo_->object_->super_Object)._vptr_Object;\n                p_Var37 = pp_Var16[3];\n                if (p_Var37 == (_func_int_varargs *)PTR_is_big_endian_004c2950) {\n                  local_30 = puVar28;\n                  iVar36 = (*pp_Var16[0x3a])();\n                }\n                else {\n                  local_30 = puVar28;\n                  iVar36 = (*p_Var37)();\n                }\n                uVar23 = *(uint *)pattr;\n                if (iVar36 == 0) {\n                  uVar23 = (((uVar23 >> 0x10) << 0x18 | (uVar23 >> 0x18) << 0x10) >> 0x10) +\n                           ((uVar23 & 0xff) << 8 | uVar23 >> 8 & 0xff) * 0x10000;\n                }\n                pattr = pattr + 4;\n                pDVar22 = this->dwinfo_;\n                uVar38 = (ulonglong)uVar23;\n              }\n              else {\n                if (uVar29 < 0x14) {\n                  pp_Var16 = (this->dwinfo_->object_->super_Object)._vptr_Object;\n                  p_Var37 = pp_Var16[3];\n                  if (p_Var37 == (_func_int_varargs *)PTR_is_big_endian_004c2950) {\n                    iVar36 = (*pp_Var16[0x3a])();\n                  }\n                  else {\n                    iVar36 = (*p_Var37)();\n                  }\n                  uVar6 = *(ushort *)pattr;\n                  if (iVar36 == 0) {\n                    uVar6 = CONCAT11(pattr[1],*pattr);\n                  }\n                  aVar39.intval._0_6_ = 0;\n                  aVar39.intval._6_2_ = uVar6;\n                  pattr = pattr + 2;\n                  goto joined_r0x002e3998;\n                }\n                pp_Var16 = (this->dwinfo_->object_->super_Object)._vptr_Object;\n                p_Var37 = pp_Var16[3];\n                if (p_Var37 == (_func_int_varargs *)PTR_is_big_endian_004c2950) {\n                  local_30 = puVar28;\n                  iVar36 = (*pp_Var16[0x3a])();\n                }\n                else {\n                  local_30 = puVar28;\n                  iVar36 = (*p_Var37)();\n                }\n                uVar23 = *(uint *)(pattr + 4);\n                uVar26 = *(uint *)pattr;\n                if (iVar36 == 0) {\n                  uVar2 = uVar23 & 0xff;\n                  uVar4 = uVar23 >> 8;\n                  uVar3 = uVar23 >> 0x10;\n                  uVar5 = uVar23 >> 0x18;\n                  uVar23 = (((uVar26 >> 0x10) << 0x18 | (uVar26 >> 0x18) << 0x10) >> 0x10) +\n                           ((uVar26 & 0xff) << 8 | uVar26 >> 8 & 0xff) * 0x10000;\n                  uVar26 = ((uVar3 << 0x18 | uVar5 << 0x10) >> 0x10) +\n                           (uVar2 << 8 | uVar4 & 0xff) * 0x10000;\n                }\n                uVar38 = CONCAT44(uVar26,uVar23);\n                pattr = pattr + 8;\n                pDVar22 = this->dwinfo_;\n              }\nLAB_002e3970:\n              str_off = uVar38;\n              attr_value.aux.shndx = (*local_3c)(pDVar22);\n              aVar39.refval = str_off;\n            }" else (compound_statement "{\n              if (uVar29 == 0x13) {\n                pp_Var16 = (this->dwinfo_->object_->super_Object)._vptr_Object;\n                p_Var37 = pp_Var16[3];\n                if (p_Var37 == (_func_int_varargs *)PTR_is_big_endian_004c2950) {\n                  local_30 = puVar28;\n                  iVar36 = (*pp_Var16[0x3a])();\n                }\n                else {\n                  local_30 = puVar28;\n                  iVar36 = (*p_Var37)();\n                }\n                uVar23 = *(uint *)pattr;\n                if (iVar36 == 0) {\n                  uVar23 = (((uVar23 >> 0x10) << 0x18 | (uVar23 >> 0x18) << 0x10) >> 0x10) +\n                           ((uVar23 & 0xff) << 8 | uVar23 >> 8 & 0xff) * 0x10000;\n                }\n                pattr = pattr + 4;\n                pDVar22 = this->dwinfo_;\n                uVar38 = (ulonglong)uVar23;\n              }\n              else {\n                if (uVar29 < 0x14) {\n                  pp_Var16 = (this->dwinfo_->object_->super_Object)._vptr_Object;\n                  p_Var37 = pp_Var16[3];\n                  if (p_Var37 == (_func_int_varargs *)PTR_is_big_endian_004c2950) {\n                    iVar36 = (*pp_Var16[0x3a])();\n                  }\n                  else {\n                    iVar36 = (*p_Var37)();\n                  }\n                  uVar6 = *(ushort *)pattr;\n                  if (iVar36 == 0) {\n                    uVar6 = CONCAT11(pattr[1],*pattr);\n                  }\n                  aVar39.intval._0_6_ = 0;\n                  aVar39.intval._6_2_ = uVar6;\n                  pattr = pattr + 2;\n                  goto joined_r0x002e3998;\n                }\n                pp_Var16 = (this->dwinfo_->object_->super_Object)._vptr_Object;\n                p_Var37 = pp_Var16[3];\n                if (p_Var37 == (_func_int_varargs *)PTR_is_big_endian_004c2950) {\n                  local_30 = puVar28;\n                  iVar36 = (*pp_Var16[0x3a])();\n                }\n                else {\n                  local_30 = puVar28;\n                  iVar36 = (*p_Var37)();\n                }\n                uVar23 = *(uint *)(pattr + 4);\n                uVar26 = *(uint *)pattr;\n                if (iVar36 == 0) {\n                  uVar2 = uVar23 & 0xff;\n                  uVar4 = uVar23 >> 8;\n                  uVar3 = uVar23 >> 0x10;\n                  uVar5 = uVar23 >> 0x18;\n                  uVar23 = (((uVar26 >> 0x10) << 0x18 | (uVar26 >> 0x18) << 0x10) >> 0x10) +\n                           ((uVar26 & 0xff) << 8 | uVar26 >> 8 & 0xff) * 0x10000;\n                  uVar26 = ((uVar3 << 0x18 | uVar5 << 0x10) >> 0x10) +\n                           (uVar2 << 8 | uVar4 & 0xff) * 0x10000;\n                }\n                uVar38 = CONCAT44(uVar26,uVar23);\n                pattr = pattr + 8;\n                pDVar22 = this->dwinfo_;\n              }\nLAB_002e3970:\n              str_off = uVar38;\n              attr_value.aux.shndx = (*local_3c)(pDVar22);\n              aVar39.refval = str_off;\n            }" { (if_statement "if (uVar29 == 0x13) {\n                pp_Var16 = (this->dwinfo_->object_->super_Object)._vptr_Object;\n                p_Var37 = pp_Var16[3];\n                if (p_Var37 == (_func_int_varargs *)PTR_is_big_endian_004c2950) {\n                  local_30 = puVar28;\n                  iVar36 = (*pp_Var16[0x3a])();\n                }\n                else {\n                  local_30 = puVar28;\n                  iVar36 = (*p_Var37)();\n                }\n                uVar23 = *(uint *)pattr;\n                if (iVar36 == 0) {\n                  uVar23 = (((uVar23 >> 0x10) << 0x18 | (uVar23 >> 0x18) << 0x10) >> 0x10) +\n                           ((uVar23 & 0xff) << 8 | uVar23 >> 8 & 0xff) * 0x10000;\n                }\n                pattr = pattr + 4;\n                pDVar22 = this->dwinfo_;\n                uVar38 = (ulonglong)uVar23;\n              }\n              else {\n                if (uVar29 < 0x14) {\n                  pp_Var16 = (this->dwinfo_->object_->super_Object)._vptr_Object;\n                  p_Var37 = pp_Var16[3];\n                  if (p_Var37 == (_func_int_varargs *)PTR_is_big_endian_004c2950) {\n                    iVar36 = (*pp_Var16[0x3a])();\n                  }\n                  else {\n                    iVar36 = (*p_Var37)();\n                  }\n                  uVar6 = *(ushort *)pattr;\n                  if (iVar36 == 0) {\n                    uVar6 = CONCAT11(pattr[1],*pattr);\n                  }\n                  aVar39.intval._0_6_ = 0;\n                  aVar39.intval._6_2_ = uVar6;\n                  pattr = pattr + 2;\n                  goto joined_r0x002e3998;\n                }\n                pp_Var16 = (this->dwinfo_->object_->super_Object)._vptr_Object;\n                p_Var37 = pp_Var16[3];\n                if (p_Var37 == (_func_int_varargs *)PTR_is_big_endian_004c2950) {\n                  local_30 = puVar28;\n                  iVar36 = (*pp_Var16[0x3a])();\n                }\n                else {\n                  local_30 = puVar28;\n                  iVar36 = (*p_Var37)();\n                }\n                uVar23 = *(uint *)(pattr + 4);\n                uVar26 = *(uint *)pattr;\n                if (iVar36 == 0) {\n                  uVar2 = uVar23 & 0xff;\n                  uVar4 = uVar23 >> 8;\n                  uVar3 = uVar23 >> 0x10;\n                  uVar5 = uVar23 >> 0x18;\n                  uVar23 = (((uVar26 >> 0x10) << 0x18 | (uVar26 >> 0x18) << 0x10) >> 0x10) +\n                           ((uVar26 & 0xff) << 8 | uVar26 >> 8 & 0xff) * 0x10000;\n                  uVar26 = ((uVar3 << 0x18 | uVar5 << 0x10) >> 0x10) +\n                           (uVar2 << 8 | uVar4 & 0xff) * 0x10000;\n                }\n                uVar38 = CONCAT44(uVar26,uVar23);\n                pattr = pattr + 8;\n                pDVar22 = this->dwinfo_;\n              }" if (parenthesized_expression "(uVar29 == 0x13)" ( (binary_expression "uVar29 == 0x13" identifier == number_literal) )) (compound_statement "{\n                pp_Var16 = (this->dwinfo_->object_->super_Object)._vptr_Object;\n                p_Var37 = pp_Var16[3];\n                if (p_Var37 == (_func_int_varargs *)PTR_is_big_endian_004c2950) {\n                  local_30 = puVar28;\n                  iVar36 = (*pp_Var16[0x3a])();\n                }\n                else {\n                  local_30 = puVar28;\n                  iVar36 = (*p_Var37)();\n                }\n                uVar23 = *(uint *)pattr;\n                if (iVar36 == 0) {\n                  uVar23 = (((uVar23 >> 0x10) << 0x18 | (uVar23 >> 0x18) << 0x10) >> 0x10) +\n                           ((uVar23 & 0xff) << 8 | uVar23 >> 8 & 0xff) * 0x10000;\n                }\n                pattr = pattr + 4;\n                pDVar22 = this->dwinfo_;\n                uVar38 = (ulonglong)uVar23;\n              }" { (expression_statement "pp_Var16 = (this->dwinfo_->object_->super_Object)._vptr_Object;" (assignment_expression "pp_Var16 = (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_Var37 = pp_Var16[3];" (assignment_expression "p_Var37 = pp_Var16[3]" identifier = (subscript_expression "pp_Var16[3]" identifier [ number_literal ])) ;) (if_statement "if (p_Var37 == (_func_int_varargs *)PTR_is_big_endian_004c2950) {\n                  local_30 = puVar28;\n                  iVar36 = (*pp_Var16[0x3a])();\n                }\n                else {\n                  local_30 = puVar28;\n                  iVar36 = (*p_Var37)();\n                }" if (parenthesized_expression "(p_Var37 == (_func_int_varargs *)PTR_is_big_endian_004c2950)" ( (binary_expression "p_Var37 == (_func_int_varargs *)PTR_is_big_endian_004c2950" identifier == (cast_expression "(_func_int_varargs *)PTR_is_big_endian_004c2950" ( (type_descriptor "_func_int_varargs *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (compound_statement "{\n                  local_30 = puVar28;\n                  iVar36 = (*pp_Var16[0x3a])();\n                }" { (expression_statement "local_30 = puVar28;" (assignment_expression "local_30 = puVar28" identifier = identifier) ;) (expression_statement "iVar36 = (*pp_Var16[0x3a])();" (assignment_expression "iVar36 = (*pp_Var16[0x3a])()" identifier = (call_expression "(*pp_Var16[0x3a])()" (parenthesized_expression "(*pp_Var16[0x3a])" ( (pointer_expression "*pp_Var16[0x3a]" * (subscript_expression "pp_Var16[0x3a]" identifier [ number_literal ])) )) (argument_list "()" ( )))) ;) }) (else_clause "else {\n                  local_30 = puVar28;\n                  iVar36 = (*p_Var37)();\n                }" else (compound_statement "{\n                  local_30 = puVar28;\n                  iVar36 = (*p_Var37)();\n                }" { (expression_statement "local_30 = puVar28;" (assignment_expression "local_30 = puVar28" identifier = identifier) ;) (expression_statement "iVar36 = (*p_Var37)();" (assignment_expression "iVar36 = (*p_Var37)()" identifier = (call_expression "(*p_Var37)()" (parenthesized_expression "(*p_Var37)" ( (pointer_expression "*p_Var37" * identifier) )) (argument_list "()" ( )))) ;) }))) (expression_statement "uVar23 = *(uint *)pattr;" (assignment_expression "uVar23 = *(uint *)pattr" identifier = (pointer_expression "*(uint *)pattr" * (cast_expression "(uint *)pattr" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier))) ;) (if_statement "if (iVar36 == 0) {\n                  uVar23 = (((uVar23 >> 0x10) << 0x18 | (uVar23 >> 0x18) << 0x10) >> 0x10) +\n                           ((uVar23 & 0xff) << 8 | uVar23 >> 8 & 0xff) * 0x10000;\n                }" if (parenthesized_expression "(iVar36 == 0)" ( (binary_expression "iVar36 == 0" identifier == number_literal) )) (compound_statement "{\n                  uVar23 = (((uVar23 >> 0x10) << 0x18 | (uVar23 >> 0x18) << 0x10) >> 0x10) +\n                           ((uVar23 & 0xff) << 8 | uVar23 >> 8 & 0xff) * 0x10000;\n                }" { (expression_statement "uVar23 = (((uVar23 >> 0x10) << 0x18 | (uVar23 >> 0x18) << 0x10) >> 0x10) +\n                           ((uVar23 & 0xff) << 8 | uVar23 >> 8 & 0xff) * 0x10000;" (assignment_expression "uVar23 = (((uVar23 >> 0x10) << 0x18 | (uVar23 >> 0x18) << 0x10) >> 0x10) +\n                           ((uVar23 & 0xff) << 8 | uVar23 >> 8 & 0xff) * 0x10000" identifier = (binary_expression "(((uVar23 >> 0x10) << 0x18 | (uVar23 >> 0x18) << 0x10) >> 0x10) +\n                           ((uVar23 & 0xff) << 8 | uVar23 >> 8 & 0xff) * 0x10000" (parenthesized_expression "(((uVar23 >> 0x10) << 0x18 | (uVar23 >> 0x18) << 0x10) >> 0x10)" ( (binary_expression "((uVar23 >> 0x10) << 0x18 | (uVar23 >> 0x18) << 0x10) >> 0x10" (parenthesized_expression "((uVar23 >> 0x10) << 0x18 | (uVar23 >> 0x18) << 0x10)" ( (binary_expression "(uVar23 >> 0x10) << 0x18 | (uVar23 >> 0x18) << 0x10" (binary_expression "(uVar23 >> 0x10) << 0x18" (parenthesized_expression "(uVar23 >> 0x10)" ( (binary_expression "uVar23 >> 0x10" identifier >> number_literal) )) << number_literal) | (binary_expression "(uVar23 >> 0x18) << 0x10" (parenthesized_expression "(uVar23 >> 0x18)" ( (binary_expression "uVar23 >> 0x18" identifier >> number_literal) )) << number_literal)) )) >> number_literal) )) + (binary_expression "((uVar23 & 0xff) << 8 | uVar23 >> 8 & 0xff) * 0x10000" (parenthesized_expression "((uVar23 & 0xff) << 8 | uVar23 >> 8 & 0xff)" ( (binary_expression "(uVar23 & 0xff) << 8 | uVar23 >> 8 & 0xff" (binary_expression "(uVar23 & 0xff) << 8" (parenthesized_expression "(uVar23 & 0xff)" ( (binary_expression "uVar23 & 0xff" identifier & number_literal) )) << number_literal) | (binary_expression "uVar23 >> 8 & 0xff" (binary_expression "uVar23 >> 8" identifier >> number_literal) & number_literal)) )) * number_literal))) ;) })) (expression_statement "pattr = pattr + 4;" (assignment_expression "pattr = pattr + 4" identifier = (binary_expression "pattr + 4" identifier + number_literal)) ;) (expression_statement "pDVar22 = this->dwinfo_;" (assignment_expression "pDVar22 = this->dwinfo_" identifier = (field_expression "this->dwinfo_" identifier -> field_identifier)) ;) (expression_statement "uVar38 = (ulonglong)uVar23;" (assignment_expression "uVar38 = (ulonglong)uVar23" identifier = (cast_expression "(ulonglong)uVar23" ( (type_descriptor "ulonglong" type_identifier) ) identifier)) ;) }) (else_clause "else {\n                if (uVar29 < 0x14) {\n                  pp_Var16 = (this->dwinfo_->object_->super_Object)._vptr_Object;\n                  p_Var37 = pp_Var16[3];\n                  if (p_Var37 == (_func_int_varargs *)PTR_is_big_endian_004c2950) {\n                    iVar36 = (*pp_Var16[0x3a])();\n                  }\n                  else {\n                    iVar36 = (*p_Var37)();\n                  }\n                  uVar6 = *(ushort *)pattr;\n                  if (iVar36 == 0) {\n                    uVar6 = CONCAT11(pattr[1],*pattr);\n                  }\n                  aVar39.intval._0_6_ = 0;\n                  aVar39.intval._6_2_ = uVar6;\n                  pattr = pattr + 2;\n                  goto joined_r0x002e3998;\n                }\n                pp_Var16 = (this->dwinfo_->object_->super_Object)._vptr_Object;\n                p_Var37 = pp_Var16[3];\n                if (p_Var37 == (_func_int_varargs *)PTR_is_big_endian_004c2950) {\n                  local_30 = puVar28;\n                  iVar36 = (*pp_Var16[0x3a])();\n                }\n                else {\n                  local_30 = puVar28;\n                  iVar36 = (*p_Var37)();\n                }\n                uVar23 = *(uint *)(pattr + 4);\n                uVar26 = *(uint *)pattr;\n                if (iVar36 == 0) {\n                  uVar2 = uVar23 & 0xff;\n                  uVar4 = uVar23 >> 8;\n                  uVar3 = uVar23 >> 0x10;\n                  uVar5 = uVar23 >> 0x18;\n                  uVar23 = (((uVar26 >> 0x10) << 0x18 | (uVar26 >> 0x18) << 0x10) >> 0x10) +\n                           ((uVar26 & 0xff) << 8 | uVar26 >> 8 & 0xff) * 0x10000;\n                  uVar26 = ((uVar3 << 0x18 | uVar5 << 0x10) >> 0x10) +\n                           (uVar2 << 8 | uVar4 & 0xff) * 0x10000;\n                }\n                uVar38 = CONCAT44(uVar26,uVar23);\n                pattr = pattr + 8;\n                pDVar22 = this->dwinfo_;\n              }" else (compound_statement "{\n                if (uVar29 < 0x14) {\n                  pp_Var16 = (this->dwinfo_->object_->super_Object)._vptr_Object;\n                  p_Var37 = pp_Var16[3];\n                  if (p_Var37 == (_func_int_varargs *)PTR_is_big_endian_004c2950) {\n                    iVar36 = (*pp_Var16[0x3a])();\n                  }\n                  else {\n                    iVar36 = (*p_Var37)();\n                  }\n                  uVar6 = *(ushort *)pattr;\n                  if (iVar36 == 0) {\n                    uVar6 = CONCAT11(pattr[1],*pattr);\n                  }\n                  aVar39.intval._0_6_ = 0;\n                  aVar39.intval._6_2_ = uVar6;\n                  pattr = pattr + 2;\n                  goto joined_r0x002e3998;\n                }\n                pp_Var16 = (this->dwinfo_->object_->super_Object)._vptr_Object;\n                p_Var37 = pp_Var16[3];\n                if (p_Var37 == (_func_int_varargs *)PTR_is_big_endian_004c2950) {\n                  local_30 = puVar28;\n                  iVar36 = (*pp_Var16[0x3a])();\n                }\n                else {\n                  local_30 = puVar28;\n                  iVar36 = (*p_Var37)();\n                }\n                uVar23 = *(uint *)(pattr + 4);\n                uVar26 = *(uint *)pattr;\n                if (iVar36 == 0) {\n                  uVar2 = uVar23 & 0xff;\n                  uVar4 = uVar23 >> 8;\n                  uVar3 = uVar23 >> 0x10;\n                  uVar5 = uVar23 >> 0x18;\n                  uVar23 = (((uVar26 >> 0x10) << 0x18 | (uVar26 >> 0x18) << 0x10) >> 0x10) +\n                           ((uVar26 & 0xff) << 8 | uVar26 >> 8 & 0xff) * 0x10000;\n                  uVar26 = ((uVar3 << 0x18 | uVar5 << 0x10) >> 0x10) +\n                           (uVar2 << 8 | uVar4 & 0xff) * 0x10000;\n                }\n                uVar38 = CONCAT44(uVar26,uVar23);\n                pattr = pattr + 8;\n                pDVar22 = this->dwinfo_;\n              }" { (if_statement "if (uVar29 < 0x14) {\n                  pp_Var16 = (this->dwinfo_->object_->super_Object)._vptr_Object;\n                  p_Var37 = pp_Var16[3];\n                  if (p_Var37 == (_func_int_varargs *)PTR_is_big_endian_004c2950) {\n                    iVar36 = (*pp_Var16[0x3a])();\n                  }\n                  else {\n                    iVar36 = (*p_Var37)();\n                  }\n                  uVar6 = *(ushort *)pattr;\n                  if (iVar36 == 0) {\n                    uVar6 = CONCAT11(pattr[1],*pattr);\n                  }\n                  aVar39.intval._0_6_ = 0;\n                  aVar39.intval._6_2_ = uVar6;\n                  pattr = pattr + 2;\n                  goto joined_r0x002e3998;\n                }" if (parenthesized_expression "(uVar29 < 0x14)" ( (binary_expression "uVar29 < 0x14" identifier < number_literal) )) (compound_statement "{\n                  pp_Var16 = (this->dwinfo_->object_->super_Object)._vptr_Object;\n                  p_Var37 = pp_Var16[3];\n                  if (p_Var37 == (_func_int_varargs *)PTR_is_big_endian_004c2950) {\n                    iVar36 = (*pp_Var16[0x3a])();\n                  }\n                  else {\n                    iVar36 = (*p_Var37)();\n                  }\n                  uVar6 = *(ushort *)pattr;\n                  if (iVar36 == 0) {\n                    uVar6 = CONCAT11(pattr[1],*pattr);\n                  }\n                  aVar39.intval._0_6_ = 0;\n                  aVar39.intval._6_2_ = uVar6;\n                  pattr = pattr + 2;\n                  goto joined_r0x002e3998;\n                }" { (expression_statement "pp_Var16 = (this->dwinfo_->object_->super_Object)._vptr_Object;" (assignment_expression "pp_Var16 = (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_Var37 = pp_Var16[3];" (assignment_expression "p_Var37 = pp_Var16[3]" identifier = (subscript_expression "pp_Var16[3]" identifier [ number_literal ])) ;) (if_statement "if (p_Var37 == (_func_int_varargs *)PTR_is_big_endian_004c2950) {\n                    iVar36 = (*pp_Var16[0x3a])();\n                  }\n                  else {\n                    iVar36 = (*p_Var37)();\n                  }" if (parenthesized_expression "(p_Var37 == (_func_int_varargs *)PTR_is_big_endian_004c2950)" ( (binary_expression "p_Var37 == (_func_int_varargs *)PTR_is_big_endian_004c2950" identifier == (cast_expression "(_func_int_varargs *)PTR_is_big_endian_004c2950" ( (type_descriptor "_func_int_varargs *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (compound_statement "{\n                    iVar36 = (*pp_Var16[0x3a])();\n                  }" { (expression_statement "iVar36 = (*pp_Var16[0x3a])();" (assignment_expression "iVar36 = (*pp_Var16[0x3a])()" identifier = (call_expression "(*pp_Var16[0x3a])()" (parenthesized_expression "(*pp_Var16[0x3a])" ( (pointer_expression "*pp_Var16[0x3a]" * (subscript_expression "pp_Var16[0x3a]" identifier [ number_literal ])) )) (argument_list "()" ( )))) ;) }) (else_clause "else {\n                    iVar36 = (*p_Var37)();\n                  }" else (compound_statement "{\n                    iVar36 = (*p_Var37)();\n                  }" { (expression_statement "iVar36 = (*p_Var37)();" (assignment_expression "iVar36 = (*p_Var37)()" identifier = (call_expression "(*p_Var37)()" (parenthesized_expression "(*p_Var37)" ( (pointer_expression "*p_Var37" * identifier) )) (argument_list "()" ( )))) ;) }))) (expression_statement "uVar6 = *(ushort *)pattr;" (assignment_expression "uVar6 = *(ushort *)pattr" identifier = (pointer_expression "*(ushort *)pattr" * (cast_expression "(ushort *)pattr" ( (type_descriptor "ushort *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier))) ;) (if_statement "if (iVar36 == 0) {\n                    uVar6 = CONCAT11(pattr[1],*pattr);\n                  }" if (parenthesized_expression "(iVar36 == 0)" ( (binary_expression "iVar36 == 0" identifier == number_literal) )) (compound_statement "{\n                    uVar6 = CONCAT11(pattr[1],*pattr);\n                  }" { (expression_statement "uVar6 = CONCAT11(pattr[1],*pattr);" (assignment_expression "uVar6 = CONCAT11(pattr[1],*pattr)" identifier = (call_expression "CONCAT11(pattr[1],*pattr)" identifier (argument_list "(pattr[1],*pattr)" ( (subscript_expression "pattr[1]" identifier [ number_literal ]) , (pointer_expression "*pattr" * identifier) )))) ;) })) (expression_statement "aVar39.intval._0_6_ = 0;" (assignment_expression "aVar39.intval._0_6_ = 0" (field_expression "aVar39.intval._0_6_" (field_expression "aVar39.intval" identifier . field_identifier) . field_identifier) = number_literal) ;) (expression_statement "aVar39.intval._6_2_ = uVar6;" (assignment_expression "aVar39.intval._6_2_ = uVar6" (field_expression "aVar39.intval._6_2_" (field_expression "aVar39.intval" 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_r0x002e3998;" goto statement_identifier ;) })) (expression_statement "pp_Var16 = (this->dwinfo_->object_->super_Object)._vptr_Object;" (assignment_expression "pp_Var16 = (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_Var37 = pp_Var16[3];" (assignment_expression "p_Var37 = pp_Var16[3]" identifier = (subscript_expression "pp_Var16[3]" identifier [ number_literal ])) ;) (if_statement "if (p_Var37 == (_func_int_varargs *)PTR_is_big_endian_004c2950) {\n                  local_30 = puVar28;\n                  iVar36 = (*pp_Var16[0x3a])();\n                }\n                else {\n                  local_30 = puVar28;\n                  iVar36 = (*p_Var37)();\n                }" if (parenthesized_expression "(p_Var37 == (_func_int_varargs *)PTR_is_big_endian_004c2950)" ( (binary_expression "p_Var37 == (_func_int_varargs *)PTR_is_big_endian_004c2950" identifier == (cast_expression "(_func_int_varargs *)PTR_is_big_endian_004c2950" ( (type_descriptor "_func_int_varargs *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (compound_statement "{\n                  local_30 = puVar28;\n                  iVar36 = (*pp_Var16[0x3a])();\n                }" { (expression_statement "local_30 = puVar28;" (assignment_expression "local_30 = puVar28" identifier = identifier) ;) (expression_statement "iVar36 = (*pp_Var16[0x3a])();" (assignment_expression "iVar36 = (*pp_Var16[0x3a])()" identifier = (call_expression "(*pp_Var16[0x3a])()" (parenthesized_expression "(*pp_Var16[0x3a])" ( (pointer_expression "*pp_Var16[0x3a]" * (subscript_expression "pp_Var16[0x3a]" identifier [ number_literal ])) )) (argument_list "()" ( )))) ;) }) (else_clause "else {\n                  local_30 = puVar28;\n                  iVar36 = (*p_Var37)();\n                }" else (compound_statement "{\n                  local_30 = puVar28;\n                  iVar36 = (*p_Var37)();\n                }" { (expression_statement "local_30 = puVar28;" (assignment_expression "local_30 = puVar28" identifier = identifier) ;) (expression_statement "iVar36 = (*p_Var37)();" (assignment_expression "iVar36 = (*p_Var37)()" identifier = (call_expression "(*p_Var37)()" (parenthesized_expression "(*p_Var37)" ( (pointer_expression "*p_Var37" * identifier) )) (argument_list "()" ( )))) ;) }))) (expression_statement "uVar23 = *(uint *)(pattr + 4);" (assignment_expression "uVar23 = *(uint *)(pattr + 4)" identifier = (pointer_expression "*(uint *)(pattr + 4)" * (cast_expression "(uint *)(pattr + 4)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pattr + 4)" ( (binary_expression "pattr + 4" identifier + number_literal) ))))) ;) (expression_statement "uVar26 = *(uint *)pattr;" (assignment_expression "uVar26 = *(uint *)pattr" identifier = (pointer_expression "*(uint *)pattr" * (cast_expression "(uint *)pattr" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier))) ;) (if_statement "if (iVar36 == 0) {\n                  uVar2 = uVar23 & 0xff;\n                  uVar4 = uVar23 >> 8;\n                  uVar3 = uVar23 >> 0x10;\n                  uVar5 = uVar23 >> 0x18;\n                  uVar23 = (((uVar26 >> 0x10) << 0x18 | (uVar26 >> 0x18) << 0x10) >> 0x10) +\n                           ((uVar26 & 0xff) << 8 | uVar26 >> 8 & 0xff) * 0x10000;\n                  uVar26 = ((uVar3 << 0x18 | uVar5 << 0x10) >> 0x10) +\n                           (uVar2 << 8 | uVar4 & 0xff) * 0x10000;\n                }" if (parenthesized_expression "(iVar36 == 0)" ( (binary_expression "iVar36 == 0" identifier == number_literal) )) (compound_statement "{\n                  uVar2 = uVar23 & 0xff;\n                  uVar4 = uVar23 >> 8;\n                  uVar3 = uVar23 >> 0x10;\n                  uVar5 = uVar23 >> 0x18;\n                  uVar23 = (((uVar26 >> 0x10) << 0x18 | (uVar26 >> 0x18) << 0x10) >> 0x10) +\n                           ((uVar26 & 0xff) << 8 | uVar26 >> 8 & 0xff) * 0x10000;\n                  uVar26 = ((uVar3 << 0x18 | uVar5 << 0x10) >> 0x10) +\n                           (uVar2 << 8 | uVar4 & 0xff) * 0x10000;\n                }" { (expression_statement "uVar2 = uVar23 & 0xff;" (assignment_expression "uVar2 = uVar23 & 0xff" identifier = (binary_expression "uVar23 & 0xff" identifier & number_literal)) ;) (expression_statement "uVar4 = uVar23 >> 8;" (assignment_expression "uVar4 = uVar23 >> 8" identifier = (binary_expression "uVar23 >> 8" identifier >> number_literal)) ;) (expression_statement "uVar3 = uVar23 >> 0x10;" (assignment_expression "uVar3 = uVar23 >> 0x10" identifier = (binary_expression "uVar23 >> 0x10" identifier >> number_literal)) ;) (expression_statement "uVar5 = uVar23 >> 0x18;" (assignment_expression "uVar5 = uVar23 >> 0x18" identifier = (binary_expression "uVar23 >> 0x18" identifier >> number_literal)) ;) (expression_statement "uVar23 = (((uVar26 >> 0x10) << 0x18 | (uVar26 >> 0x18) << 0x10) >> 0x10) +\n                           ((uVar26 & 0xff) << 8 | uVar26 >> 8 & 0xff) * 0x10000;" (assignment_expression "uVar23 = (((uVar26 >> 0x10) << 0x18 | (uVar26 >> 0x18) << 0x10) >> 0x10) +\n                           ((uVar26 & 0xff) << 8 | uVar26 >> 8 & 0xff) * 0x10000" identifier = (binary_expression "(((uVar26 >> 0x10) << 0x18 | (uVar26 >> 0x18) << 0x10) >> 0x10) +\n                           ((uVar26 & 0xff) << 8 | uVar26 >> 8 & 0xff) * 0x10000" (parenthesized_expression "(((uVar26 >> 0x10) << 0x18 | (uVar26 >> 0x18) << 0x10) >> 0x10)" ( (binary_expression "((uVar26 >> 0x10) << 0x18 | (uVar26 >> 0x18) << 0x10) >> 0x10" (parenthesized_expression "((uVar26 >> 0x10) << 0x18 | (uVar26 >> 0x18) << 0x10)" ( (binary_expression "(uVar26 >> 0x10) << 0x18 | (uVar26 >> 0x18) << 0x10" (binary_expression "(uVar26 >> 0x10) << 0x18" (parenthesized_expression "(uVar26 >> 0x10)" ( (binary_expression "uVar26 >> 0x10" identifier >> number_literal) )) << number_literal) | (binary_expression "(uVar26 >> 0x18) << 0x10" (parenthesized_expression "(uVar26 >> 0x18)" ( (binary_expression "uVar26 >> 0x18" identifier >> number_literal) )) << number_literal)) )) >> number_literal) )) + (binary_expression "((uVar26 & 0xff) << 8 | uVar26 >> 8 & 0xff) * 0x10000" (parenthesized_expression "((uVar26 & 0xff) << 8 | uVar26 >> 8 & 0xff)" ( (binary_expression "(uVar26 & 0xff) << 8 | uVar26 >> 8 & 0xff" (binary_expression "(uVar26 & 0xff) << 8" (parenthesized_expression "(uVar26 & 0xff)" ( (binary_expression "uVar26 & 0xff" identifier & number_literal) )) << number_literal) | (binary_expression "uVar26 >> 8 & 0xff" (binary_expression "uVar26 >> 8" identifier >> number_literal) & number_literal)) )) * number_literal))) ;) (expression_statement "uVar26 = ((uVar3 << 0x18 | uVar5 << 0x10) >> 0x10) +\n                           (uVar2 << 8 | uVar4 & 0xff) * 0x10000;" (assignment_expression "uVar26 = ((uVar3 << 0x18 | uVar5 << 0x10) >> 0x10) +\n                           (uVar2 << 8 | uVar4 & 0xff) * 0x10000" identifier = (binary_expression "((uVar3 << 0x18 | uVar5 << 0x10) >> 0x10) +\n                           (uVar2 << 8 | uVar4 & 0xff) * 0x10000" (parenthesized_expression "((uVar3 << 0x18 | uVar5 << 0x10) >> 0x10)" ( (binary_expression "(uVar3 << 0x18 | uVar5 << 0x10) >> 0x10" (parenthesized_expression "(uVar3 << 0x18 | uVar5 << 0x10)" ( (binary_expression "uVar3 << 0x18 | uVar5 << 0x10" (binary_expression "uVar3 << 0x18" identifier << number_literal) | (binary_expression "uVar5 << 0x10" identifier << number_literal)) )) >> number_literal) )) + (binary_expression "(uVar2 << 8 | uVar4 & 0xff) * 0x10000" (parenthesized_expression "(uVar2 << 8 | uVar4 & 0xff)" ( (binary_expression "uVar2 << 8 | uVar4 & 0xff" (binary_expression "uVar2 << 8" identifier << number_literal) | (binary_expression "uVar4 & 0xff" identifier & number_literal)) )) * number_literal))) ;) })) (expression_statement "uVar38 = CONCAT44(uVar26,uVar23);" (assignment_expression "uVar38 = CONCAT44(uVar26,uVar23)" identifier = (call_expression "CONCAT44(uVar26,uVar23)" identifier (argument_list "(uVar26,uVar23)" ( identifier , identifier )))) ;) (expression_statement "pattr = pattr + 8;" (assignment_expression "pattr = pattr + 8" identifier = (binary_expression "pattr + 8" identifier + number_literal)) ;) (expression_statement "pDVar22 = this->dwinfo_;" (assignment_expression "pDVar22 = this->dwinfo_" identifier = (field_expression "this->dwinfo_" identifier -> field_identifier)) ;) }))) (labeled_statement "LAB_002e3970:\n              str_off = uVar38;" statement_identifier : (expression_statement "str_off = uVar38;" (assignment_expression "str_off = uVar38" identifier = identifier) ;)) (expression_statement "attr_value.aux.shndx = (*local_3c)(pDVar22);" (assignment_expression "attr_value.aux.shndx = (*local_3c)(pDVar22)" (field_expression "attr_value.aux.shndx" (field_expression "attr_value.aux" identifier . field_identifier) . field_identifier) = (call_expression "(*local_3c)(pDVar22)" (parenthesized_expression "(*local_3c)" ( (pointer_expression "*local_3c" * identifier) )) (argument_list "(pDVar22)" ( identifier )))) ;) (expression_statement "aVar39.refval = str_off;" (assignment_expression "aVar39.refval = str_off" (field_expression "aVar39.refval" identifier . field_identifier) = identifier) ;) }))) (labeled_statement "joined_r0x002e3998:\n            if (uVar32 == 0x31) {\nLAB_002e30bc:\n              this->abstract_origin_ = (off_t)aVar39;\n              aVar7 = aVar39;\n              goto LAB_002e313c;\n            }" statement_identifier : (if_statement "if (uVar32 == 0x31) {\nLAB_002e30bc:\n              this->abstract_origin_ = (off_t)aVar39;\n              aVar7 = aVar39;\n              goto LAB_002e313c;\n            }" if (parenthesized_expression "(uVar32 == 0x31)" ( (binary_expression "uVar32 == 0x31" identifier == number_literal) )) (compound_statement "{\nLAB_002e30bc:\n              this->abstract_origin_ = (off_t)aVar39;\n              aVar7 = aVar39;\n              goto LAB_002e313c;\n            }" { (labeled_statement "LAB_002e30bc:\n              this->abstract_origin_ = (off_t)aVar39;" statement_identifier : (expression_statement "this->abstract_origin_ = (off_t)aVar39;" (assignment_expression "this->abstract_origin_ = (off_t)aVar39" (field_expression "this->abstract_origin_" identifier -> field_identifier) = (cast_expression "(off_t)aVar39" ( (type_descriptor "off_t" type_identifier) ) identifier)) ;)) (expression_statement "aVar7 = aVar39;" (assignment_expression "aVar7 = aVar39" identifier = identifier) ;) (goto_statement "goto LAB_002e313c;" goto statement_identifier ;) }))) (if_statement "if (uVar32 < 0x32) {\n              aVar7 = aVar39;\n              if (uVar32 != 1) goto LAB_002e313c;\nLAB_002e39b4:\n              aVar7 = aVar39;\n              if (attr_value.aux.shndx != 0) goto LAB_002e313c;\n              this->sibling_offset_ = (off_t)aVar39;\n              goto LAB_002e313c;\n            }" if (parenthesized_expression "(uVar32 < 0x32)" ( (binary_expression "uVar32 < 0x32" identifier < number_literal) )) (compound_statement "{\n              aVar7 = aVar39;\n              if (uVar32 != 1) goto LAB_002e313c;\nLAB_002e39b4:\n              aVar7 = aVar39;\n              if (attr_value.aux.shndx != 0) goto LAB_002e313c;\n              this->sibling_offset_ = (off_t)aVar39;\n              goto LAB_002e313c;\n            }" { (expression_statement "aVar7 = aVar39;" (assignment_expression "aVar7 = aVar39" identifier = identifier) ;) (if_statement "if (uVar32 != 1) goto LAB_002e313c;" if (parenthesized_expression "(uVar32 != 1)" ( (binary_expression "uVar32 != 1" identifier != number_literal) )) (goto_statement "goto LAB_002e313c;" goto statement_identifier ;)) (labeled_statement "LAB_002e39b4:\n              aVar7 = aVar39;" statement_identifier : (expression_statement "aVar7 = aVar39;" (assignment_expression "aVar7 = aVar39" identifier = identifier) ;)) (if_statement "if (attr_value.aux.shndx != 0) goto LAB_002e313c;" if (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) )) (goto_statement "goto LAB_002e313c;" goto statement_identifier ;)) (expression_statement "this->sibling_offset_ = (off_t)aVar39;" (assignment_expression "this->sibling_offset_ = (off_t)aVar39" (field_expression "this->sibling_offset_" identifier -> field_identifier) = (cast_expression "(off_t)aVar39" ( (type_descriptor "off_t" type_identifier) ) identifier)) ;) (goto_statement "goto LAB_002e313c;" goto statement_identifier ;) })) (expression_statement "aVar40 = aVar39;" (assignment_expression "aVar40 = aVar39" identifier = identifier) ;) (if_statement "if ((uVar32 != 0x6e) && (uVar32 != 0x2007)) {\nLAB_002e339c:\n              aVar7 = aVar39;\n              if (uVar32 != 0x47) goto LAB_002e313c;\n              this->specification_ = (off_t)aVar39;\n              goto LAB_002e313c;\n            }" if (parenthesized_expression "((uVar32 != 0x6e) && (uVar32 != 0x2007))" ( (binary_expression "(uVar32 != 0x6e) && (uVar32 != 0x2007)" (parenthesized_expression "(uVar32 != 0x6e)" ( (binary_expression "uVar32 != 0x6e" identifier != number_literal) )) && (parenthesized_expression "(uVar32 != 0x2007)" ( (binary_expression "uVar32 != 0x2007" identifier != number_literal) ))) )) (compound_statement "{\nLAB_002e339c:\n              aVar7 = aVar39;\n              if (uVar32 != 0x47) goto LAB_002e313c;\n              this->specification_ = (off_t)aVar39;\n              goto LAB_002e313c;\n            }" { (labeled_statement "LAB_002e339c:\n              aVar7 = aVar39;" statement_identifier : (expression_statement "aVar7 = aVar39;" (assignment_expression "aVar7 = aVar39" identifier = identifier) ;)) (if_statement "if (uVar32 != 0x47) goto LAB_002e313c;" if (parenthesized_expression "(uVar32 != 0x47)" ( (binary_expression "uVar32 != 0x47" identifier != number_literal) )) (goto_statement "goto LAB_002e313c;" goto statement_identifier ;)) (expression_statement "this->specification_ = (off_t)aVar39;" (assignment_expression "this->specification_ = (off_t)aVar39" (field_expression "this->specification_" identifier -> field_identifier) = (cast_expression "(off_t)aVar39" ( (type_descriptor "off_t" type_identifier) ) identifier)) ;) (goto_statement "goto LAB_002e313c;" goto statement_identifier ;) })) (goto_statement "goto LAB_002e3858;" goto statement_identifier ;) })) (if_statement "if (uVar29 == 7) {\n            pp_Var16 = (this->dwinfo_->object_->super_Object)._vptr_Object;\n            p_Var37 = pp_Var16[3];\n            if (p_Var37 == (_func_int_varargs *)PTR_is_big_endian_004c2950) {\n              local_30 = puVar28;\n              iVar17 = (*pp_Var16[0x3a])();\n            }\n            else {\n              local_30 = puVar28;\n              iVar17 = (*p_Var37)();\n            }\n            str_off._4_4_ = *(char **)(pattr + 4);\n            pcVar25 = *(char **)pattr;\n            if (iVar17 == 0) {\n              uVar23 = (uint)str_off._4_4_ & 0xff;\n              uVar26 = (uint)str_off._4_4_ >> 8;\n              uVar2 = (uint)str_off._4_4_ >> 0x10;\n              uVar4 = (uint)str_off._4_4_ >> 0x18;\n              str_off._4_4_ =\n                   (char *)(((((uint)pcVar25 >> 0x10) << 0x18 | ((uint)pcVar25 >> 0x18) << 0x10) >>\n                            0x10) + (((uint)pcVar25 & 0xff) << 8 | (uint)pcVar25 >> 8 & 0xff) *\n                                    0x10000);\n              pcVar25 = (char *)(((uVar2 << 0x18 | uVar4 << 0x10) >> 0x10) +\n                                (uVar23 << 8 | uVar26 & 0xff) * 0x10000);\n            }\n            pattr = pattr + 8;\n            pDVar22 = this->dwinfo_;\n            str_off._0_4_ = pcVar25;\nLAB_002e3708:\n            attr_value.aux.shndx = (*local_3c)(pDVar22,pcVar25,iVar36,local_30,local_40.shndx);\n            attr_value.val._4_4_ = str_off._4_4_;\n            attr_value.val.stringval = str_off._0_4_;\n            goto LAB_002e355c;\n          }" if (parenthesized_expression "(uVar29 == 7)" ( (binary_expression "uVar29 == 7" identifier == number_literal) )) (compound_statement "{\n            pp_Var16 = (this->dwinfo_->object_->super_Object)._vptr_Object;\n            p_Var37 = pp_Var16[3];\n            if (p_Var37 == (_func_int_varargs *)PTR_is_big_endian_004c2950) {\n              local_30 = puVar28;\n              iVar17 = (*pp_Var16[0x3a])();\n            }\n            else {\n              local_30 = puVar28;\n              iVar17 = (*p_Var37)();\n            }\n            str_off._4_4_ = *(char **)(pattr + 4);\n            pcVar25 = *(char **)pattr;\n            if (iVar17 == 0) {\n              uVar23 = (uint)str_off._4_4_ & 0xff;\n              uVar26 = (uint)str_off._4_4_ >> 8;\n              uVar2 = (uint)str_off._4_4_ >> 0x10;\n              uVar4 = (uint)str_off._4_4_ >> 0x18;\n              str_off._4_4_ =\n                   (char *)(((((uint)pcVar25 >> 0x10) << 0x18 | ((uint)pcVar25 >> 0x18) << 0x10) >>\n                            0x10) + (((uint)pcVar25 & 0xff) << 8 | (uint)pcVar25 >> 8 & 0xff) *\n                                    0x10000);\n              pcVar25 = (char *)(((uVar2 << 0x18 | uVar4 << 0x10) >> 0x10) +\n                                (uVar23 << 8 | uVar26 & 0xff) * 0x10000);\n            }\n            pattr = pattr + 8;\n            pDVar22 = this->dwinfo_;\n            str_off._0_4_ = pcVar25;\nLAB_002e3708:\n            attr_value.aux.shndx = (*local_3c)(pDVar22,pcVar25,iVar36,local_30,local_40.shndx);\n            attr_value.val._4_4_ = str_off._4_4_;\n            attr_value.val.stringval = str_off._0_4_;\n            goto LAB_002e355c;\n          }" { (expression_statement "pp_Var16 = (this->dwinfo_->object_->super_Object)._vptr_Object;" (assignment_expression "pp_Var16 = (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_Var37 = pp_Var16[3];" (assignment_expression "p_Var37 = pp_Var16[3]" identifier = (subscript_expression "pp_Var16[3]" identifier [ number_literal ])) ;) (if_statement "if (p_Var37 == (_func_int_varargs *)PTR_is_big_endian_004c2950) {\n              local_30 = puVar28;\n              iVar17 = (*pp_Var16[0x3a])();\n            }\n            else {\n              local_30 = puVar28;\n              iVar17 = (*p_Var37)();\n            }" if (parenthesized_expression "(p_Var37 == (_func_int_varargs *)PTR_is_big_endian_004c2950)" ( (binary_expression "p_Var37 == (_func_int_varargs *)PTR_is_big_endian_004c2950" identifier == (cast_expression "(_func_int_varargs *)PTR_is_big_endian_004c2950" ( (type_descriptor "_func_int_varargs *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (compound_statement "{\n              local_30 = puVar28;\n              iVar17 = (*pp_Var16[0x3a])();\n            }" { (expression_statement "local_30 = puVar28;" (assignment_expression "local_30 = puVar28" identifier = identifier) ;) (expression_statement "iVar17 = (*pp_Var16[0x3a])();" (assignment_expression "iVar17 = (*pp_Var16[0x3a])()" identifier = (call_expression "(*pp_Var16[0x3a])()" (parenthesized_expression "(*pp_Var16[0x3a])" ( (pointer_expression "*pp_Var16[0x3a]" * (subscript_expression "pp_Var16[0x3a]" identifier [ number_literal ])) )) (argument_list "()" ( )))) ;) }) (else_clause "else {\n              local_30 = puVar28;\n              iVar17 = (*p_Var37)();\n            }" else (compound_statement "{\n              local_30 = puVar28;\n              iVar17 = (*p_Var37)();\n            }" { (expression_statement "local_30 = puVar28;" (assignment_expression "local_30 = puVar28" identifier = identifier) ;) (expression_statement "iVar17 = (*p_Var37)();" (assignment_expression "iVar17 = (*p_Var37)()" identifier = (call_expression "(*p_Var37)()" (parenthesized_expression "(*p_Var37)" ( (pointer_expression "*p_Var37" * identifier) )) (argument_list "()" ( )))) ;) }))) (expression_statement "str_off._4_4_ = *(char **)(pattr + 4);" (assignment_expression "str_off._4_4_ = *(char **)(pattr + 4)" (field_expression "str_off._4_4_" identifier . field_identifier) = (pointer_expression "*(char **)(pattr + 4)" * (cast_expression "(char **)(pattr + 4)" ( (type_descriptor "char **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pattr + 4)" ( (binary_expression "pattr + 4" identifier + number_literal) ))))) ;) (expression_statement "pcVar25 = *(char **)pattr;" (assignment_expression "pcVar25 = *(char **)pattr" identifier = (pointer_expression "*(char **)pattr" * (cast_expression "(char **)pattr" ( (type_descriptor "char **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) identifier))) ;) (if_statement "if (iVar17 == 0) {\n              uVar23 = (uint)str_off._4_4_ & 0xff;\n              uVar26 = (uint)str_off._4_4_ >> 8;\n              uVar2 = (uint)str_off._4_4_ >> 0x10;\n              uVar4 = (uint)str_off._4_4_ >> 0x18;\n              str_off._4_4_ =\n                   (char *)(((((uint)pcVar25 >> 0x10) << 0x18 | ((uint)pcVar25 >> 0x18) << 0x10) >>\n                            0x10) + (((uint)pcVar25 & 0xff) << 8 | (uint)pcVar25 >> 8 & 0xff) *\n                                    0x10000);\n              pcVar25 = (char *)(((uVar2 << 0x18 | uVar4 << 0x10) >> 0x10) +\n                                (uVar23 << 8 | uVar26 & 0xff) * 0x10000);\n            }" if (parenthesized_expression "(iVar17 == 0)" ( (binary_expression "iVar17 == 0" identifier == number_literal) )) (compound_statement "{\n              uVar23 = (uint)str_off._4_4_ & 0xff;\n              uVar26 = (uint)str_off._4_4_ >> 8;\n              uVar2 = (uint)str_off._4_4_ >> 0x10;\n              uVar4 = (uint)str_off._4_4_ >> 0x18;\n              str_off._4_4_ =\n                   (char *)(((((uint)pcVar25 >> 0x10) << 0x18 | ((uint)pcVar25 >> 0x18) << 0x10) >>\n                            0x10) + (((uint)pcVar25 & 0xff) << 8 | (uint)pcVar25 >> 8 & 0xff) *\n                                    0x10000);\n              pcVar25 = (char *)(((uVar2 << 0x18 | uVar4 << 0x10) >> 0x10) +\n                                (uVar23 << 8 | uVar26 & 0xff) * 0x10000);\n            }" { (expression_statement "uVar23 = (uint)str_off._4_4_ & 0xff;" (assignment_expression "uVar23 = (uint)str_off._4_4_ & 0xff" identifier = (binary_expression "(uint)str_off._4_4_ & 0xff" (cast_expression "(uint)str_off._4_4_" ( (type_descriptor "uint" type_identifier) ) (field_expression "str_off._4_4_" identifier . field_identifier)) & number_literal)) ;) (expression_statement "uVar26 = (uint)str_off._4_4_ >> 8;" (assignment_expression "uVar26 = (uint)str_off._4_4_ >> 8" identifier = (binary_expression "(uint)str_off._4_4_ >> 8" (cast_expression "(uint)str_off._4_4_" ( (type_descriptor "uint" type_identifier) ) (field_expression "str_off._4_4_" identifier . field_identifier)) >> number_literal)) ;) (expression_statement "uVar2 = (uint)str_off._4_4_ >> 0x10;" (assignment_expression "uVar2 = (uint)str_off._4_4_ >> 0x10" identifier = (binary_expression "(uint)str_off._4_4_ >> 0x10" (cast_expression "(uint)str_off._4_4_" ( (type_descriptor "uint" type_identifier) ) (field_expression "str_off._4_4_" identifier . field_identifier)) >> number_literal)) ;) (expression_statement "uVar4 = (uint)str_off._4_4_ >> 0x18;" (assignment_expression "uVar4 = (uint)str_off._4_4_ >> 0x18" identifier = (binary_expression "(uint)str_off._4_4_ >> 0x18" (cast_expression "(uint)str_off._4_4_" ( (type_descriptor "uint" type_identifier) ) (field_expression "str_off._4_4_" identifier . field_identifier)) >> number_literal)) ;) (expression_statement "str_off._4_4_ =\n                   (char *)(((((uint)pcVar25 >> 0x10) << 0x18 | ((uint)pcVar25 >> 0x18) << 0x10) >>\n                            0x10) + (((uint)pcVar25 & 0xff) << 8 | (uint)pcVar25 >> 8 & 0xff) *\n                                    0x10000);" (assignment_expression "str_off._4_4_ =\n                   (char *)(((((uint)pcVar25 >> 0x10) << 0x18 | ((uint)pcVar25 >> 0x18) << 0x10) >>\n                            0x10) + (((uint)pcVar25 & 0xff) << 8 | (uint)pcVar25 >> 8 & 0xff) *\n                                    0x10000)" (field_expression "str_off._4_4_" identifier . field_identifier) = (cast_expression "(char *)(((((uint)pcVar25 >> 0x10) << 0x18 | ((uint)pcVar25 >> 0x18) << 0x10) >>\n                            0x10) + (((uint)pcVar25 & 0xff) << 8 | (uint)pcVar25 >> 8 & 0xff) *\n                                    0x10000)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(((((uint)pcVar25 >> 0x10) << 0x18 | ((uint)pcVar25 >> 0x18) << 0x10) >>\n                            0x10) + (((uint)pcVar25 & 0xff) << 8 | (uint)pcVar25 >> 8 & 0xff) *\n                                    0x10000)" ( (binary_expression "((((uint)pcVar25 >> 0x10) << 0x18 | ((uint)pcVar25 >> 0x18) << 0x10) >>\n                            0x10) + (((uint)pcVar25 & 0xff) << 8 | (uint)pcVar25 >> 8 & 0xff) *\n                                    0x10000" (parenthesized_expression "((((uint)pcVar25 >> 0x10) << 0x18 | ((uint)pcVar25 >> 0x18) << 0x10) >>\n                            0x10)" ( (binary_expression "(((uint)pcVar25 >> 0x10) << 0x18 | ((uint)pcVar25 >> 0x18) << 0x10) >>\n                            0x10" (parenthesized_expression "(((uint)pcVar25 >> 0x10) << 0x18 | ((uint)pcVar25 >> 0x18) << 0x10)" ( (binary_expression "((uint)pcVar25 >> 0x10) << 0x18 | ((uint)pcVar25 >> 0x18) << 0x10" (binary_expression "((uint)pcVar25 >> 0x10) << 0x18" (parenthesized_expression "((uint)pcVar25 >> 0x10)" ( (binary_expression "(uint)pcVar25 >> 0x10" (cast_expression "(uint)pcVar25" ( (type_descriptor "uint" type_identifier) ) identifier) >> number_literal) )) << number_literal) | (binary_expression "((uint)pcVar25 >> 0x18) << 0x10" (parenthesized_expression "((uint)pcVar25 >> 0x18)" ( (binary_expression "(uint)pcVar25 >> 0x18" (cast_expression "(uint)pcVar25" ( (type_descriptor "uint" type_identifier) ) identifier) >> number_literal) )) << number_literal)) )) >> number_literal) )) + (binary_expression "(((uint)pcVar25 & 0xff) << 8 | (uint)pcVar25 >> 8 & 0xff) *\n                                    0x10000" (parenthesized_expression "(((uint)pcVar25 & 0xff) << 8 | (uint)pcVar25 >> 8 & 0xff)" ( (binary_expression "((uint)pcVar25 & 0xff) << 8 | (uint)pcVar25 >> 8 & 0xff" (binary_expression "((uint)pcVar25 & 0xff) << 8" (parenthesized_expression "((uint)pcVar25 & 0xff)" ( (binary_expression "(uint)pcVar25 & 0xff" (cast_expression "(uint)pcVar25" ( (type_descriptor "uint" type_identifier) ) identifier) & number_literal) )) << number_literal) | (binary_expression "(uint)pcVar25 >> 8 & 0xff" (binary_expression "(uint)pcVar25 >> 8" (cast_expression "(uint)pcVar25" ( (type_descriptor "uint" type_identifier) ) identifier) >> number_literal) & number_literal)) )) * number_literal)) )))) ;) (expression_statement "pcVar25 = (char *)(((uVar2 << 0x18 | uVar4 << 0x10) >> 0x10) +\n                                (uVar23 << 8 | uVar26 & 0xff) * 0x10000);" (assignment_expression "pcVar25 = (char *)(((uVar2 << 0x18 | uVar4 << 0x10) >> 0x10) +\n                                (uVar23 << 8 | uVar26 & 0xff) * 0x10000)" identifier = (cast_expression "(char *)(((uVar2 << 0x18 | uVar4 << 0x10) >> 0x10) +\n                                (uVar23 << 8 | uVar26 & 0xff) * 0x10000)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(((uVar2 << 0x18 | uVar4 << 0x10) >> 0x10) +\n                                (uVar23 << 8 | uVar26 & 0xff) * 0x10000)" ( (binary_expression "((uVar2 << 0x18 | uVar4 << 0x10) >> 0x10) +\n                                (uVar23 << 8 | uVar26 & 0xff) * 0x10000" (parenthesized_expression "((uVar2 << 0x18 | uVar4 << 0x10) >> 0x10)" ( (binary_expression "(uVar2 << 0x18 | uVar4 << 0x10) >> 0x10" (parenthesized_expression "(uVar2 << 0x18 | uVar4 << 0x10)" ( (binary_expression "uVar2 << 0x18 | uVar4 << 0x10" (binary_expression "uVar2 << 0x18" identifier << number_literal) | (binary_expression "uVar4 << 0x10" identifier << number_literal)) )) >> number_literal) )) + (binary_expression "(uVar23 << 8 | uVar26 & 0xff) * 0x10000" (parenthesized_expression "(uVar23 << 8 | uVar26 & 0xff)" ( (binary_expression "uVar23 << 8 | uVar26 & 0xff" (binary_expression "uVar23 << 8" identifier << number_literal) | (binary_expression "uVar26 & 0xff" identifier & number_literal)) )) * number_literal)) )))) ;) })) (expression_statement "pattr = pattr + 8;" (assignment_expression "pattr = pattr + 8" identifier = (binary_expression "pattr + 8" identifier + number_literal)) ;) (expression_statement "pDVar22 = this->dwinfo_;" (assignment_expression "pDVar22 = this->dwinfo_" identifier = (field_expression "this->dwinfo_" identifier -> field_identifier)) ;) (expression_statement "str_off._0_4_ = pcVar25;" (assignment_expression "str_off._0_4_ = pcVar25" (field_expression "str_off._0_4_" identifier . field_identifier) = identifier) ;) (labeled_statement "LAB_002e3708:\n            attr_value.aux.shndx = (*local_3c)(pDVar22,pcVar25,iVar36,local_30,local_40.shndx);" statement_identifier : (expression_statement "attr_value.aux.shndx = (*local_3c)(pDVar22,pcVar25,iVar36,local_30,local_40.shndx);" (assignment_expression "attr_value.aux.shndx = (*local_3c)(pDVar22,pcVar25,iVar36,local_30,local_40.shndx)" (field_expression "attr_value.aux.shndx" (field_expression "attr_value.aux" identifier . field_identifier) . field_identifier) = (call_expression "(*local_3c)(pDVar22,pcVar25,iVar36,local_30,local_40.shndx)" (parenthesized_expression "(*local_3c)" ( (pointer_expression "*local_3c" * identifier) )) (argument_list "(pDVar22,pcVar25,iVar36,local_30,local_40.shndx)" ( identifier , identifier , identifier , identifier , (field_expression "local_40.shndx" identifier . field_identifier) )))) ;)) (expression_statement "attr_value.val._4_4_ = str_off._4_4_;" (assignment_expression "attr_value.val._4_4_ = str_off._4_4_" (field_expression "attr_value.val._4_4_" (field_expression "attr_value.val" identifier . field_identifier) . field_identifier) = (field_expression "str_off._4_4_" identifier . field_identifier)) ;) (expression_statement "attr_value.val.stringval = str_off._0_4_;" (assignment_expression "attr_value.val.stringval = str_off._0_4_" (field_expression "attr_value.val.stringval" (field_expression "attr_value.val" identifier . field_identifier) . field_identifier) = (field_expression "str_off._0_4_" identifier . field_identifier)) ;) (goto_statement "goto LAB_002e355c;" goto statement_identifier ;) })) (if_statement "if (7 < uVar29) {\n            if (uVar29 == 10) {\n              attr_value.val.stringval = (char *)(pattr + 1);\n              attr_value.aux.shndx._0_3_ = 0;\n              attr_value.aux.shndx._3_1_ = *pattr;\n              pattr = (uchar *)((int)attr_value.val.stringval + attr_value.aux.shndx);\n              goto LAB_002e355c;\n            }\n            if (uVar29 < 0xb) {\n              if (uVar29 != 8) {\n                if (uVar29 != 9) {\n                  return false;\n                }\nLAB_002e32bc:\n                aVar27.shndx._0_3_ = 0;\n                aVar27.shndx._3_1_ = *pattr;\n                puVar15 = pattr + 1;\n                if ((char)*pattr < '\0') {\n                  (*(code *)PTR_read_unsigned_LEB_128_x_004c2980)(puVar15,&len);\n                  puVar15 = pattr + len;\n                  aVar27 = extraout_v1_00;\n                }\n                else {\n                  len = 1;\n                }\n                aVar40.blockval = puVar15;\n                aVar40.intval._4_4_ = attr_value.val.intval._4_4_;\n                attr_value.aux = aVar27;\n                pattr = pattr + aVar27.shndx + len;\n                goto LAB_002e382c;\n              }\n              attr_value.val.blockval = pattr;\n              local_30 = pattr;\n              len = (*(code *)PTR_strlen_004c5b9c)(pattr);\n              aVar40.stringval = attr_value.val.stringval;\n              aVar40.intval._4_4_ = attr_value.val.intval._4_4_;\n              aVar8.stringval = attr_value.val.stringval;\n              aVar8.intval._4_4_ = attr_value.val.intval._4_4_;\n              aVar7.stringval = attr_value.val.stringval;\n              aVar7.intval._4_4_ = attr_value.val.intval._4_4_;\n              pattr = local_30 + len + 1;\n              if (uVar32 == 0x31) goto LAB_002e313c;\n              if (0x31 < uVar32) {\n                if ((uVar32 != 0x6e) && (aVar7 = aVar8, uVar32 != 0x2007)) goto LAB_002e313c;\n                this->linkage_name_ = (char *)local_30;\n                aVar7 = aVar40;\n                goto LAB_002e313c;\n              }\nLAB_002e3118:\n              aVar7 = aVar40;\n              aVar39 = aVar40;\n              if (uVar32 == 1) goto LAB_002e313c;\njoined_r0x002e3124:\n              aVar7 = aVar39;\n              if (uVar32 != 3) goto LAB_002e313c;\n              attr_value.val.stringval = (char *)((ulonglong)aVar39 >> 0x20);\n              if (uVar29 == 8) {\n                this->name_ = attr_value.val.stringval;\n                goto LAB_002e313c;\n              }\n              if (uVar29 != 0xe) goto LAB_002e313c;\n              goto LAB_002e3284;\n            }\n            if (uVar29 < 0xd) {\n              aVar40.intval._0_7_ = 0;\n              aVar40.uintval._7_1_ = *pattr;\n              pattr = pattr + 1;\nLAB_002e382c:\n              aVar7 = aVar40;\n              if (uVar32 == 0x31) goto LAB_002e313c;\n              if (uVar32 < 0x32) goto LAB_002e3118;\n            }\n            else {\n              bVar1 = *pattr;\n              uVar23 = CONCAT31(0,bVar1);\n              puVar15 = pattr + 1;\n              if ((char)bVar1 < '\0') {\n                aVar40.intval = (*(code *)PTR_read_signed_LEB_128_x_004c297c)(puVar15,&len,uVar23);\n                puVar15 = pattr + len;\n              }\n              else {\n                len = 1;\n                aVar40.stringval = (char *)0x0;\n                aVar40.uintval._4_4_ = uVar23;\n                if ((bVar1 & 0x40) != 0) {\n                  aVar40.stringval = (char *)0xffffffff;\n                  aVar40.uintval._4_4_ = uVar23 | 0xffffff80;\n                }\n              }\n              pattr = puVar15;\n              aVar7 = aVar40;\n              if (uVar32 == 0x31) goto LAB_002e313c;\n              if (uVar32 < 0x32) {\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                iVar36 = iVar34;\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_002e314c;\nLAB_002e2f98:\n                iVar34 = iVar34 + 8;\n                attr_value.val = aVar40;\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                          (local_38,__position,&attr_value);\n                pAVar13 = this->abbrev_code_;\n                if (iVar34 == iVar31) goto LAB_002e2fb8;\n                goto LAB_002e2db4;\n              }\n            }\n            if ((uVar32 != 0x6e) && (aVar7 = aVar40, uVar32 != 0x2007)) goto LAB_002e313c;\nLAB_002e3858:\n            attr_value.val._0_4_ = aVar40.stringval;\n            aVar7 = aVar40;\n            if (uVar29 == 8) {\n              this->linkage_name_ = attr_value.val.stringval;\n              goto LAB_002e313c;\n            }\n            if (uVar29 != 0xe) goto LAB_002e313c;\n            goto LAB_002e387c;\n          }" if (parenthesized_expression "(7 < uVar29)" ( (binary_expression "7 < uVar29" number_literal < identifier) )) (compound_statement "{\n            if (uVar29 == 10) {\n              attr_value.val.stringval = (char *)(pattr + 1);\n              attr_value.aux.shndx._0_3_ = 0;\n              attr_value.aux.shndx._3_1_ = *pattr;\n              pattr = (uchar *)((int)attr_value.val.stringval + attr_value.aux.shndx);\n              goto LAB_002e355c;\n            }\n            if (uVar29 < 0xb) {\n              if (uVar29 != 8) {\n                if (uVar29 != 9) {\n                  return false;\n                }\nLAB_002e32bc:\n                aVar27.shndx._0_3_ = 0;\n                aVar27.shndx._3_1_ = *pattr;\n                puVar15 = pattr + 1;\n                if ((char)*pattr < '\0') {\n                  (*(code *)PTR_read_unsigned_LEB_128_x_004c2980)(puVar15,&len);\n                  puVar15 = pattr + len;\n                  aVar27 = extraout_v1_00;\n                }\n                else {\n                  len = 1;\n                }\n                aVar40.blockval = puVar15;\n                aVar40.intval._4_4_ = attr_value.val.intval._4_4_;\n                attr_value.aux = aVar27;\n                pattr = pattr + aVar27.shndx + len;\n                goto LAB_002e382c;\n              }\n              attr_value.val.blockval = pattr;\n              local_30 = pattr;\n              len = (*(code *)PTR_strlen_004c5b9c)(pattr);\n              aVar40.stringval = attr_value.val.stringval;\n              aVar40.intval._4_4_ = attr_value.val.intval._4_4_;\n              aVar8.stringval = attr_value.val.stringval;\n              aVar8.intval._4_4_ = attr_value.val.intval._4_4_;\n              aVar7.stringval = attr_value.val.stringval;\n              aVar7.intval._4_4_ = attr_value.val.intval._4_4_;\n              pattr = local_30 + len + 1;\n              if (uVar32 == 0x31) goto LAB_002e313c;\n              if (0x31 < uVar32) {\n                if ((uVar32 != 0x6e) && (aVar7 = aVar8, uVar32 != 0x2007)) goto LAB_002e313c;\n                this->linkage_name_ = (char *)local_30;\n                aVar7 = aVar40;\n                goto LAB_002e313c;\n              }\nLAB_002e3118:\n              aVar7 = aVar40;\n              aVar39 = aVar40;\n              if (uVar32 == 1) goto LAB_002e313c;\njoined_r0x002e3124:\n              aVar7 = aVar39;\n              if (uVar32 != 3) goto LAB_002e313c;\n              attr_value.val.stringval = (char *)((ulonglong)aVar39 >> 0x20);\n              if (uVar29 == 8) {\n                this->name_ = attr_value.val.stringval;\n                goto LAB_002e313c;\n              }\n              if (uVar29 != 0xe) goto LAB_002e313c;\n              goto LAB_002e3284;\n            }\n            if (uVar29 < 0xd) {\n              aVar40.intval._0_7_ = 0;\n              aVar40.uintval._7_1_ = *pattr;\n              pattr = pattr + 1;\nLAB_002e382c:\n              aVar7 = aVar40;\n              if (uVar32 == 0x31) goto LAB_002e313c;\n              if (uVar32 < 0x32) goto LAB_002e3118;\n            }\n            else {\n              bVar1 = *pattr;\n              uVar23 = CONCAT31(0,bVar1);\n              puVar15 = pattr + 1;\n              if ((char)bVar1 < '\0') {\n                aVar40.intval = (*(code *)PTR_read_signed_LEB_128_x_004c297c)(puVar15,&len,uVar23);\n                puVar15 = pattr + len;\n              }\n              else {\n                len = 1;\n                aVar40.stringval = (char *)0x0;\n                aVar40.uintval._4_4_ = uVar23;\n                if ((bVar1 & 0x40) != 0) {\n                  aVar40.stringval = (char *)0xffffffff;\n                  aVar40.uintval._4_4_ = uVar23 | 0xffffff80;\n                }\n              }\n              pattr = puVar15;\n              aVar7 = aVar40;\n              if (uVar32 == 0x31) goto LAB_002e313c;\n              if (uVar32 < 0x32) {\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                iVar36 = iVar34;\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_002e314c;\nLAB_002e2f98:\n                iVar34 = iVar34 + 8;\n                attr_value.val = aVar40;\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                          (local_38,__position,&attr_value);\n                pAVar13 = this->abbrev_code_;\n                if (iVar34 == iVar31) goto LAB_002e2fb8;\n                goto LAB_002e2db4;\n              }\n            }\n            if ((uVar32 != 0x6e) && (aVar7 = aVar40, uVar32 != 0x2007)) goto LAB_002e313c;\nLAB_002e3858:\n            attr_value.val._0_4_ = aVar40.stringval;\n            aVar7 = aVar40;\n            if (uVar29 == 8) {\n              this->linkage_name_ = attr_value.val.stringval;\n              goto LAB_002e313c;\n            }\n            if (uVar29 != 0xe) goto LAB_002e313c;\n            goto LAB_002e387c;\n          }" { (if_statement "if (uVar29 == 10) {\n              attr_value.val.stringval = (char *)(pattr + 1);\n              attr_value.aux.shndx._0_3_ = 0;\n              attr_value.aux.shndx._3_1_ = *pattr;\n              pattr = (uchar *)((int)attr_value.val.stringval + attr_value.aux.shndx);\n              goto LAB_002e355c;\n            }" if (parenthesized_expression "(uVar29 == 10)" ( (binary_expression "uVar29 == 10" identifier == number_literal) )) (compound_statement "{\n              attr_value.val.stringval = (char *)(pattr + 1);\n              attr_value.aux.shndx._0_3_ = 0;\n              attr_value.aux.shndx._3_1_ = *pattr;\n              pattr = (uchar *)((int)attr_value.val.stringval + attr_value.aux.shndx);\n              goto LAB_002e355c;\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 "attr_value.aux.shndx._0_3_ = 0;" (assignment_expression "attr_value.aux.shndx._0_3_ = 0" (field_expression "attr_value.aux.shndx._0_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._3_1_ = *pattr;" (assignment_expression "attr_value.aux.shndx._3_1_ = *pattr" (field_expression "attr_value.aux.shndx._3_1_" (field_expression "attr_value.aux.shndx" (field_expression "attr_value.aux" identifier . field_identifier) . field_identifier) . field_identifier) = (pointer_expression "*pattr" * identifier)) ;) (expression_statement "pattr = (uchar *)((int)attr_value.val.stringval + attr_value.aux.shndx);" (assignment_expression "pattr = (uchar *)((int)attr_value.val.stringval + attr_value.aux.shndx)" identifier = (cast_expression "(uchar *)((int)attr_value.val.stringval + attr_value.aux.shndx)" ( (type_descriptor "uchar *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)attr_value.val.stringval + attr_value.aux.shndx)" ( (binary_expression "(int)attr_value.val.stringval + attr_value.aux.shndx" (cast_expression "(int)attr_value.val.stringval" ( (type_descriptor "int" primitive_type) ) (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)) )))) ;) (goto_statement "goto LAB_002e355c;" goto statement_identifier ;) })) (if_statement "if (uVar29 < 0xb) {\n              if (uVar29 != 8) {\n                if (uVar29 != 9) {\n                  return false;\n                }\nLAB_002e32bc:\n                aVar27.shndx._0_3_ = 0;\n                aVar27.shndx._3_1_ = *pattr;\n                puVar15 = pattr + 1;\n                if ((char)*pattr < '\0') {\n                  (*(code *)PTR_read_unsigned_LEB_128_x_004c2980)(puVar15,&len);\n                  puVar15 = pattr + len;\n                  aVar27 = extraout_v1_00;\n                }\n                else {\n                  len = 1;\n                }\n                aVar40.blockval = puVar15;\n                aVar40.intval._4_4_ = attr_value.val.intval._4_4_;\n                attr_value.aux = aVar27;\n                pattr = pattr + aVar27.shndx + len;\n                goto LAB_002e382c;\n              }\n              attr_value.val.blockval = pattr;\n              local_30 = pattr;\n              len = (*(code *)PTR_strlen_004c5b9c)(pattr);\n              aVar40.stringval = attr_value.val.stringval;\n              aVar40.intval._4_4_ = attr_value.val.intval._4_4_;\n              aVar8.stringval = attr_value.val.stringval;\n              aVar8.intval._4_4_ = attr_value.val.intval._4_4_;\n              aVar7.stringval = attr_value.val.stringval;\n              aVar7.intval._4_4_ = attr_value.val.intval._4_4_;\n              pattr = local_30 + len + 1;\n              if (uVar32 == 0x31) goto LAB_002e313c;\n              if (0x31 < uVar32) {\n                if ((uVar32 != 0x6e) && (aVar7 = aVar8, uVar32 != 0x2007)) goto LAB_002e313c;\n                this->linkage_name_ = (char *)local_30;\n                aVar7 = aVar40;\n                goto LAB_002e313c;\n              }\nLAB_002e3118:\n              aVar7 = aVar40;\n              aVar39 = aVar40;\n              if (uVar32 == 1) goto LAB_002e313c;\njoined_r0x002e3124:\n              aVar7 = aVar39;\n              if (uVar32 != 3) goto LAB_002e313c;\n              attr_value.val.stringval = (char *)((ulonglong)aVar39 >> 0x20);\n              if (uVar29 == 8) {\n                this->name_ = attr_value.val.stringval;\n                goto LAB_002e313c;\n              }\n              if (uVar29 != 0xe) goto LAB_002e313c;\n              goto LAB_002e3284;\n            }" if (parenthesized_expression "(uVar29 < 0xb)" ( (binary_expression "uVar29 < 0xb" identifier < number_literal) )) (compound_statement "{\n              if (uVar29 != 8) {\n                if (uVar29 != 9) {\n                  return false;\n                }\nLAB_002e32bc:\n                aVar27.shndx._0_3_ = 0;\n                aVar27.shndx._3_1_ = *pattr;\n                puVar15 = pattr + 1;\n                if ((char)*pattr < '\0') {\n                  (*(code *)PTR_read_unsigned_LEB_128_x_004c2980)(puVar15,&len);\n                  puVar15 = pattr + len;\n                  aVar27 = extraout_v1_00;\n                }\n                else {\n                  len = 1;\n                }\n                aVar40.blockval = puVar15;\n                aVar40.intval._4_4_ = attr_value.val.intval._4_4_;\n                attr_value.aux = aVar27;\n                pattr = pattr + aVar27.shndx + len;\n                goto LAB_002e382c;\n              }\n              attr_value.val.blockval = pattr;\n              local_30 = pattr;\n              len = (*(code *)PTR_strlen_004c5b9c)(pattr);\n              aVar40.stringval = attr_value.val.stringval;\n              aVar40.intval._4_4_ = attr_value.val.intval._4_4_;\n              aVar8.stringval = attr_value.val.stringval;\n              aVar8.intval._4_4_ = attr_value.val.intval._4_4_;\n              aVar7.stringval = attr_value.val.stringval;\n              aVar7.intval._4_4_ = attr_value.val.intval._4_4_;\n              pattr = local_30 + len + 1;\n              if (uVar32 == 0x31) goto LAB_002e313c;\n              if (0x31 < uVar32) {\n                if ((uVar32 != 0x6e) && (aVar7 = aVar8, uVar32 != 0x2007)) goto LAB_002e313c;\n                this->linkage_name_ = (char *)local_30;\n                aVar7 = aVar40;\n                goto LAB_002e313c;\n              }\nLAB_002e3118:\n              aVar7 = aVar40;\n              aVar39 = aVar40;\n              if (uVar32 == 1) goto LAB_002e313c;\njoined_r0x002e3124:\n              aVar7 = aVar39;\n              if (uVar32 != 3) goto LAB_002e313c;\n              attr_value.val.stringval = (char *)((ulonglong)aVar39 >> 0x20);\n              if (uVar29 == 8) {\n                this->name_ = attr_value.val.stringval;\n                goto LAB_002e313c;\n              }\n              if (uVar29 != 0xe) goto LAB_002e313c;\n              goto LAB_002e3284;\n            }" { (if_statement "if (uVar29 != 8) {\n                if (uVar29 != 9) {\n                  return false;\n                }\nLAB_002e32bc:\n                aVar27.shndx._0_3_ = 0;\n                aVar27.shndx._3_1_ = *pattr;\n                puVar15 = pattr + 1;\n                if ((char)*pattr < '\0') {\n                  (*(code *)PTR_read_unsigned_LEB_128_x_004c2980)(puVar15,&len);\n                  puVar15 = pattr + len;\n                  aVar27 = extraout_v1_00;\n                }\n                else {\n                  len = 1;\n                }\n                aVar40.blockval = puVar15;\n                aVar40.intval._4_4_ = attr_value.val.intval._4_4_;\n                attr_value.aux = aVar27;\n                pattr = pattr + aVar27.shndx + len;\n                goto LAB_002e382c;\n              }" if (parenthesized_expression "(uVar29 != 8)" ( (binary_expression "uVar29 != 8" identifier != number_literal) )) (compound_statement "{\n                if (uVar29 != 9) {\n                  return false;\n                }\nLAB_002e32bc:\n                aVar27.shndx._0_3_ = 0;\n                aVar27.shndx._3_1_ = *pattr;\n                puVar15 = pattr + 1;\n                if ((char)*pattr < '\0') {\n                  (*(code *)PTR_read_unsigned_LEB_128_x_004c2980)(puVar15,&len);\n                  puVar15 = pattr + len;\n                  aVar27 = extraout_v1_00;\n                }\n                else {\n                  len = 1;\n                }\n                aVar40.blockval = puVar15;\n                aVar40.intval._4_4_ = attr_value.val.intval._4_4_;\n                attr_value.aux = aVar27;\n                pattr = pattr + aVar27.shndx + len;\n                goto LAB_002e382c;\n              }" { (if_statement "if (uVar29 != 9) {\n                  return false;\n                }" if (parenthesized_expression "(uVar29 != 9)" ( (binary_expression "uVar29 != 9" identifier != number_literal) )) (compound_statement "{\n                  return false;\n                }" { (return_statement "return false;" return false ;) })) (labeled_statement "LAB_002e32bc:\n                aVar27.shndx._0_3_ = 0;" statement_identifier : (expression_statement "aVar27.shndx._0_3_ = 0;" (assignment_expression "aVar27.shndx._0_3_ = 0" (field_expression "aVar27.shndx._0_3_" (field_expression "aVar27.shndx" identifier . field_identifier) . field_identifier) = number_literal) ;)) (expression_statement "aVar27.shndx._3_1_ = *pattr;" (assignment_expression "aVar27.shndx._3_1_ = *pattr" (field_expression "aVar27.shndx._3_1_" (field_expression "aVar27.shndx" identifier . field_identifier) . field_identifier) = (pointer_expression "*pattr" * identifier)) ;) (expression_statement "puVar15 = pattr + 1;" (assignment_expression "puVar15 = pattr + 1" identifier = (binary_expression "pattr + 1" identifier + number_literal)) ;) (if_statement "if ((char)*pattr < '\0') {\n                  (*(code *)PTR_read_unsigned_LEB_128_x_004c2980)(puVar15,&len);\n                  puVar15 = pattr + len;\n                  aVar27 = extraout_v1_00;\n                }\n                else {\n                  len = 1;\n                }" if (parenthesized_expression "((char)*pattr < '\0')" ( (binary_expression "(char)*pattr < '\0'" (cast_expression "(char)*pattr" ( (type_descriptor "char" primitive_type) ) (pointer_expression "*pattr" * identifier)) < (char_literal "'\0'" ' escape_sequence ')) )) (compound_statement "{\n                  (*(code *)PTR_read_unsigned_LEB_128_x_004c2980)(puVar15,&len);\n                  puVar15 = pattr + len;\n                  aVar27 = extraout_v1_00;\n                }" { (expression_statement "(*(code *)PTR_read_unsigned_LEB_128_x_004c2980)(puVar15,&len);" (call_expression "(*(code *)PTR_read_unsigned_LEB_128_x_004c2980)(puVar15,&len)" (parenthesized_expression "(*(code *)PTR_read_unsigned_LEB_128_x_004c2980)" ( (pointer_expression "*(code *)PTR_read_unsigned_LEB_128_x_004c2980" * (cast_expression "(code *)PTR_read_unsigned_LEB_128_x_004c2980" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(puVar15,&len)" ( identifier , (pointer_expression "&len" & identifier) ))) ;) (expression_statement "puVar15 = pattr + len;" (assignment_expression "puVar15 = pattr + len" identifier = (binary_expression "pattr + len" identifier + identifier)) ;) (expression_statement "aVar27 = extraout_v1_00;" (assignment_expression "aVar27 = extraout_v1_00" 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 "aVar40.blockval = puVar15;" (assignment_expression "aVar40.blockval = puVar15" (field_expression "aVar40.blockval" identifier . field_identifier) = identifier) ;) (expression_statement "aVar40.intval._4_4_ = attr_value.val.intval._4_4_;" (assignment_expression "aVar40.intval._4_4_ = attr_value.val.intval._4_4_" (field_expression "aVar40.intval._4_4_" (field_expression "aVar40.intval" identifier . field_identifier) . field_identifier) = (field_expression "attr_value.val.intval._4_4_" (field_expression "attr_value.val.intval" (field_expression "attr_value.val" identifier . field_identifier) . field_identifier) . field_identifier)) ;) (expression_statement "attr_value.aux = aVar27;" (assignment_expression "attr_value.aux = aVar27" (field_expression "attr_value.aux" identifier . field_identifier) = identifier) ;) (expression_statement "pattr = pattr + aVar27.shndx + len;" (assignment_expression "pattr = pattr + aVar27.shndx + len" identifier = (binary_expression "pattr + aVar27.shndx + len" (binary_expression "pattr + aVar27.shndx" identifier + (field_expression "aVar27.shndx" identifier . field_identifier)) + identifier)) ;) (goto_statement "goto LAB_002e382c;" 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 "local_30 = pattr;" (assignment_expression "local_30 = pattr" identifier = identifier) ;) (expression_statement "len = (*(code *)PTR_strlen_004c5b9c)(pattr);" (assignment_expression "len = (*(code *)PTR_strlen_004c5b9c)(pattr)" identifier = (call_expression "(*(code *)PTR_strlen_004c5b9c)(pattr)" (parenthesized_expression "(*(code *)PTR_strlen_004c5b9c)" ( (pointer_expression "*(code *)PTR_strlen_004c5b9c" * (cast_expression "(code *)PTR_strlen_004c5b9c" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(pattr)" ( identifier )))) ;) (expression_statement "aVar40.stringval = attr_value.val.stringval;" (assignment_expression "aVar40.stringval = attr_value.val.stringval" (field_expression "aVar40.stringval" identifier . field_identifier) = (field_expression "attr_value.val.stringval" (field_expression "attr_value.val" identifier . field_identifier) . field_identifier)) ;) (expression_statement "aVar40.intval._4_4_ = attr_value.val.intval._4_4_;" (assignment_expression "aVar40.intval._4_4_ = attr_value.val.intval._4_4_" (field_expression "aVar40.intval._4_4_" (field_expression "aVar40.intval" identifier . field_identifier) . field_identifier) = (field_expression "attr_value.val.intval._4_4_" (field_expression "attr_value.val.intval" (field_expression "attr_value.val" identifier . field_identifier) . field_identifier) . field_identifier)) ;) (expression_statement "aVar8.stringval = attr_value.val.stringval;" (assignment_expression "aVar8.stringval = attr_value.val.stringval" (field_expression "aVar8.stringval" identifier . field_identifier) = (field_expression "attr_value.val.stringval" (field_expression "attr_value.val" identifier . field_identifier) . field_identifier)) ;) (expression_statement "aVar8.intval._4_4_ = attr_value.val.intval._4_4_;" (assignment_expression "aVar8.intval._4_4_ = attr_value.val.intval._4_4_" (field_expression "aVar8.intval._4_4_" (field_expression "aVar8.intval" identifier . field_identifier) . field_identifier) = (field_expression "attr_value.val.intval._4_4_" (field_expression "attr_value.val.intval" (field_expression "attr_value.val" identifier . field_identifier) . field_identifier) . field_identifier)) ;) (expression_statement "aVar7.stringval = attr_value.val.stringval;" (assignment_expression "aVar7.stringval = attr_value.val.stringval" (field_expression "aVar7.stringval" identifier . field_identifier) = (field_expression "attr_value.val.stringval" (field_expression "attr_value.val" identifier . field_identifier) . field_identifier)) ;) (expression_statement "aVar7.intval._4_4_ = attr_value.val.intval._4_4_;" (assignment_expression "aVar7.intval._4_4_ = attr_value.val.intval._4_4_" (field_expression "aVar7.intval._4_4_" (field_expression "aVar7.intval" identifier . field_identifier) . field_identifier) = (field_expression "attr_value.val.intval._4_4_" (field_expression "attr_value.val.intval" (field_expression "attr_value.val" identifier . field_identifier) . field_identifier) . field_identifier)) ;) (expression_statement "pattr = local_30 + len + 1;" (assignment_expression "pattr = local_30 + len + 1" identifier = (binary_expression "local_30 + len + 1" (binary_expression "local_30 + len" identifier + identifier) + number_literal)) ;) (if_statement "if (uVar32 == 0x31) goto LAB_002e313c;" if (parenthesized_expression "(uVar32 == 0x31)" ( (binary_expression "uVar32 == 0x31" identifier == number_literal) )) (goto_statement "goto LAB_002e313c;" goto statement_identifier ;)) (if_statement "if (0x31 < uVar32) {\n                if ((uVar32 != 0x6e) && (aVar7 = aVar8, uVar32 != 0x2007)) goto LAB_002e313c;\n                this->linkage_name_ = (char *)local_30;\n                aVar7 = aVar40;\n                goto LAB_002e313c;\n              }" if (parenthesized_expression "(0x31 < uVar32)" ( (binary_expression "0x31 < uVar32" number_literal < identifier) )) (compound_statement "{\n                if ((uVar32 != 0x6e) && (aVar7 = aVar8, uVar32 != 0x2007)) goto LAB_002e313c;\n                this->linkage_name_ = (char *)local_30;\n                aVar7 = aVar40;\n                goto LAB_002e313c;\n              }" { (if_statement "if ((uVar32 != 0x6e) && (aVar7 = aVar8, uVar32 != 0x2007)) goto LAB_002e313c;" if (parenthesized_expression "((uVar32 != 0x6e) && (aVar7 = aVar8, uVar32 != 0x2007))" ( (binary_expression "(uVar32 != 0x6e) && (aVar7 = aVar8, uVar32 != 0x2007)" (parenthesized_expression "(uVar32 != 0x6e)" ( (binary_expression "uVar32 != 0x6e" identifier != number_literal) )) && (parenthesized_expression "(aVar7 = aVar8, uVar32 != 0x2007)" ( (comma_expression "aVar7 = aVar8, uVar32 != 0x2007" (assignment_expression "aVar7 = aVar8" identifier = identifier) , (binary_expression "uVar32 != 0x2007" identifier != number_literal)) ))) )) (goto_statement "goto LAB_002e313c;" goto statement_identifier ;)) (expression_statement "this->linkage_name_ = (char *)local_30;" (assignment_expression "this->linkage_name_ = (char *)local_30" (field_expression "this->linkage_name_" identifier -> field_identifier) = (cast_expression "(char *)local_30" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) identifier)) ;) (expression_statement "aVar7 = aVar40;" (assignment_expression "aVar7 = aVar40" identifier = identifier) ;) (goto_statement "goto LAB_002e313c;" goto statement_identifier ;) })) (labeled_statement "LAB_002e3118:\n              aVar7 = aVar40;" statement_identifier : (expression_statement "aVar7 = aVar40;" (assignment_expression "aVar7 = aVar40" identifier = identifier) ;)) (expression_statement "aVar39 = aVar40;" (assignment_expression "aVar39 = aVar40" identifier = identifier) ;) (if_statement "if (uVar32 == 1) goto LAB_002e313c;" if (parenthesized_expression "(uVar32 == 1)" ( (binary_expression "uVar32 == 1" identifier == number_literal) )) (goto_statement "goto LAB_002e313c;" goto statement_identifier ;)) (labeled_statement "joined_r0x002e3124:\n              aVar7 = aVar39;" statement_identifier : (expression_statement "aVar7 = aVar39;" (assignment_expression "aVar7 = aVar39" identifier = identifier) ;)) (if_statement "if (uVar32 != 3) goto LAB_002e313c;" if (parenthesized_expression "(uVar32 != 3)" ( (binary_expression "uVar32 != 3" identifier != number_literal) )) (goto_statement "goto LAB_002e313c;" goto statement_identifier ;)) (expression_statement "attr_value.val.stringval = (char *)((ulonglong)aVar39 >> 0x20);" (assignment_expression "attr_value.val.stringval = (char *)((ulonglong)aVar39 >> 0x20)" (field_expression "attr_value.val.stringval" (field_expression "attr_value.val" identifier . field_identifier) . field_identifier) = (cast_expression "(char *)((ulonglong)aVar39 >> 0x20)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((ulonglong)aVar39 >> 0x20)" ( (binary_expression "(ulonglong)aVar39 >> 0x20" (cast_expression "(ulonglong)aVar39" ( (type_descriptor "ulonglong" type_identifier) ) identifier) >> number_literal) )))) ;) (if_statement "if (uVar29 == 8) {\n                this->name_ = attr_value.val.stringval;\n                goto LAB_002e313c;\n              }" if (parenthesized_expression "(uVar29 == 8)" ( (binary_expression "uVar29 == 8" identifier == number_literal) )) (compound_statement "{\n                this->name_ = attr_value.val.stringval;\n                goto LAB_002e313c;\n              }" { (expression_statement "this->name_ = attr_value.val.stringval;" (assignment_expression "this->name_ = attr_value.val.stringval" (field_expression "this->name_" identifier -> field_identifier) = (field_expression "attr_value.val.stringval" (field_expression "attr_value.val" identifier . field_identifier) . field_identifier)) ;) (goto_statement "goto LAB_002e313c;" goto statement_identifier ;) })) (if_statement "if (uVar29 != 0xe) goto LAB_002e313c;" if (parenthesized_expression "(uVar29 != 0xe)" ( (binary_expression "uVar29 != 0xe" identifier != number_literal) )) (goto_statement "goto LAB_002e313c;" goto statement_identifier ;)) (goto_statement "goto LAB_002e3284;" goto statement_identifier ;) })) (if_statement "if (uVar29 < 0xd) {\n              aVar40.intval._0_7_ = 0;\n              aVar40.uintval._7_1_ = *pattr;\n              pattr = pattr + 1;\nLAB_002e382c:\n              aVar7 = aVar40;\n              if (uVar32 == 0x31) goto LAB_002e313c;\n              if (uVar32 < 0x32) goto LAB_002e3118;\n            }\n            else {\n              bVar1 = *pattr;\n              uVar23 = CONCAT31(0,bVar1);\n              puVar15 = pattr + 1;\n              if ((char)bVar1 < '\0') {\n                aVar40.intval = (*(code *)PTR_read_signed_LEB_128_x_004c297c)(puVar15,&len,uVar23);\n                puVar15 = pattr + len;\n              }\n              else {\n                len = 1;\n                aVar40.stringval = (char *)0x0;\n                aVar40.uintval._4_4_ = uVar23;\n                if ((bVar1 & 0x40) != 0) {\n                  aVar40.stringval = (char *)0xffffffff;\n                  aVar40.uintval._4_4_ = uVar23 | 0xffffff80;\n                }\n              }\n              pattr = puVar15;\n              aVar7 = aVar40;\n              if (uVar32 == 0x31) goto LAB_002e313c;\n              if (uVar32 < 0x32) {\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                iVar36 = iVar34;\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_002e314c;\nLAB_002e2f98:\n                iVar34 = iVar34 + 8;\n                attr_value.val = aVar40;\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                          (local_38,__position,&attr_value);\n                pAVar13 = this->abbrev_code_;\n                if (iVar34 == iVar31) goto LAB_002e2fb8;\n                goto LAB_002e2db4;\n              }\n            }" if (parenthesized_expression "(uVar29 < 0xd)" ( (binary_expression "uVar29 < 0xd" identifier < number_literal) )) (compound_statement "{\n              aVar40.intval._0_7_ = 0;\n              aVar40.uintval._7_1_ = *pattr;\n              pattr = pattr + 1;\nLAB_002e382c:\n              aVar7 = aVar40;\n              if (uVar32 == 0x31) goto LAB_002e313c;\n              if (uVar32 < 0x32) goto LAB_002e3118;\n            }" { (expression_statement "aVar40.intval._0_7_ = 0;" (assignment_expression "aVar40.intval._0_7_ = 0" (field_expression "aVar40.intval._0_7_" (field_expression "aVar40.intval" identifier . field_identifier) . field_identifier) = number_literal) ;) (expression_statement "aVar40.uintval._7_1_ = *pattr;" (assignment_expression "aVar40.uintval._7_1_ = *pattr" (field_expression "aVar40.uintval._7_1_" (field_expression "aVar40.uintval" 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)) ;) (labeled_statement "LAB_002e382c:\n              aVar7 = aVar40;" statement_identifier : (expression_statement "aVar7 = aVar40;" (assignment_expression "aVar7 = aVar40" identifier = identifier) ;)) (if_statement "if (uVar32 == 0x31) goto LAB_002e313c;" if (parenthesized_expression "(uVar32 == 0x31)" ( (binary_expression "uVar32 == 0x31" identifier == number_literal) )) (goto_statement "goto LAB_002e313c;" goto statement_identifier ;)) (if_statement "if (uVar32 < 0x32) goto LAB_002e3118;" if (parenthesized_expression "(uVar32 < 0x32)" ( (binary_expression "uVar32 < 0x32" identifier < number_literal) )) (goto_statement "goto LAB_002e3118;" goto statement_identifier ;)) }) (else_clause "else {\n              bVar1 = *pattr;\n              uVar23 = CONCAT31(0,bVar1);\n              puVar15 = pattr + 1;\n              if ((char)bVar1 < '\0') {\n                aVar40.intval = (*(code *)PTR_read_signed_LEB_128_x_004c297c)(puVar15,&len,uVar23);\n                puVar15 = pattr + len;\n              }\n              else {\n                len = 1;\n                aVar40.stringval = (char *)0x0;\n                aVar40.uintval._4_4_ = uVar23;\n                if ((bVar1 & 0x40) != 0) {\n                  aVar40.stringval = (char *)0xffffffff;\n                  aVar40.uintval._4_4_ = uVar23 | 0xffffff80;\n                }\n              }\n              pattr = puVar15;\n              aVar7 = aVar40;\n              if (uVar32 == 0x31) goto LAB_002e313c;\n              if (uVar32 < 0x32) {\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                iVar36 = iVar34;\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_002e314c;\nLAB_002e2f98:\n                iVar34 = iVar34 + 8;\n                attr_value.val = aVar40;\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                          (local_38,__position,&attr_value);\n                pAVar13 = this->abbrev_code_;\n                if (iVar34 == iVar31) goto LAB_002e2fb8;\n                goto LAB_002e2db4;\n              }\n            }" else (compound_statement "{\n              bVar1 = *pattr;\n              uVar23 = CONCAT31(0,bVar1);\n              puVar15 = pattr + 1;\n              if ((char)bVar1 < '\0') {\n                aVar40.intval = (*(code *)PTR_read_signed_LEB_128_x_004c297c)(puVar15,&len,uVar23);\n                puVar15 = pattr + len;\n              }\n              else {\n                len = 1;\n                aVar40.stringval = (char *)0x0;\n                aVar40.uintval._4_4_ = uVar23;\n                if ((bVar1 & 0x40) != 0) {\n                  aVar40.stringval = (char *)0xffffffff;\n                  aVar40.uintval._4_4_ = uVar23 | 0xffffff80;\n                }\n              }\n              pattr = puVar15;\n              aVar7 = aVar40;\n              if (uVar32 == 0x31) goto LAB_002e313c;\n              if (uVar32 < 0x32) {\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                iVar36 = iVar34;\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_002e314c;\nLAB_002e2f98:\n                iVar34 = iVar34 + 8;\n                attr_value.val = aVar40;\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                          (local_38,__position,&attr_value);\n                pAVar13 = this->abbrev_code_;\n                if (iVar34 == iVar31) goto LAB_002e2fb8;\n                goto LAB_002e2db4;\n              }\n            }" { (expression_statement "bVar1 = *pattr;" (assignment_expression "bVar1 = *pattr" identifier = (pointer_expression "*pattr" * identifier)) ;) (expression_statement "uVar23 = CONCAT31(0,bVar1);" (assignment_expression "uVar23 = CONCAT31(0,bVar1)" identifier = (call_expression "CONCAT31(0,bVar1)" identifier (argument_list "(0,bVar1)" ( number_literal , identifier )))) ;) (expression_statement "puVar15 = pattr + 1;" (assignment_expression "puVar15 = pattr + 1" identifier = (binary_expression "pattr + 1" identifier + number_literal)) ;) (if_statement "if ((char)bVar1 < '\0') {\n                aVar40.intval = (*(code *)PTR_read_signed_LEB_128_x_004c297c)(puVar15,&len,uVar23);\n                puVar15 = pattr + len;\n              }\n              else {\n                len = 1;\n                aVar40.stringval = (char *)0x0;\n                aVar40.uintval._4_4_ = uVar23;\n                if ((bVar1 & 0x40) != 0) {\n                  aVar40.stringval = (char *)0xffffffff;\n                  aVar40.uintval._4_4_ = uVar23 | 0xffffff80;\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                aVar40.intval = (*(code *)PTR_read_signed_LEB_128_x_004c297c)(puVar15,&len,uVar23);\n                puVar15 = pattr + len;\n              }" { (expression_statement "aVar40.intval = (*(code *)PTR_read_signed_LEB_128_x_004c297c)(puVar15,&len,uVar23);" (assignment_expression "aVar40.intval = (*(code *)PTR_read_signed_LEB_128_x_004c297c)(puVar15,&len,uVar23)" (field_expression "aVar40.intval" identifier . field_identifier) = (call_expression "(*(code *)PTR_read_signed_LEB_128_x_004c297c)(puVar15,&len,uVar23)" (parenthesized_expression "(*(code *)PTR_read_signed_LEB_128_x_004c297c)" ( (pointer_expression "*(code *)PTR_read_signed_LEB_128_x_004c297c" * (cast_expression "(code *)PTR_read_signed_LEB_128_x_004c297c" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(puVar15,&len,uVar23)" ( identifier , (pointer_expression "&len" & identifier) , identifier )))) ;) (expression_statement "puVar15 = pattr + len;" (assignment_expression "puVar15 = pattr + len" identifier = (binary_expression "pattr + len" identifier + identifier)) ;) }) (else_clause "else {\n                len = 1;\n                aVar40.stringval = (char *)0x0;\n                aVar40.uintval._4_4_ = uVar23;\n                if ((bVar1 & 0x40) != 0) {\n                  aVar40.stringval = (char *)0xffffffff;\n                  aVar40.uintval._4_4_ = uVar23 | 0xffffff80;\n                }\n              }" else (compound_statement "{\n                len = 1;\n                aVar40.stringval = (char *)0x0;\n                aVar40.uintval._4_4_ = uVar23;\n                if ((bVar1 & 0x40) != 0) {\n                  aVar40.stringval = (char *)0xffffffff;\n                  aVar40.uintval._4_4_ = uVar23 | 0xffffff80;\n                }\n              }" { (expression_statement "len = 1;" (assignment_expression "len = 1" identifier = number_literal) ;) (expression_statement "aVar40.stringval = (char *)0x0;" (assignment_expression "aVar40.stringval = (char *)0x0" (field_expression "aVar40.stringval" identifier . field_identifier) = (cast_expression "(char *)0x0" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (expression_statement "aVar40.uintval._4_4_ = uVar23;" (assignment_expression "aVar40.uintval._4_4_ = uVar23" (field_expression "aVar40.uintval._4_4_" (field_expression "aVar40.uintval" identifier . field_identifier) . field_identifier) = identifier) ;) (if_statement "if ((bVar1 & 0x40) != 0) {\n                  aVar40.stringval = (char *)0xffffffff;\n                  aVar40.uintval._4_4_ = uVar23 | 0xffffff80;\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                  aVar40.stringval = (char *)0xffffffff;\n                  aVar40.uintval._4_4_ = uVar23 | 0xffffff80;\n                }" { (expression_statement "aVar40.stringval = (char *)0xffffffff;" (assignment_expression "aVar40.stringval = (char *)0xffffffff" (field_expression "aVar40.stringval" identifier . field_identifier) = (cast_expression "(char *)0xffffffff" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (expression_statement "aVar40.uintval._4_4_ = uVar23 | 0xffffff80;" (assignment_expression "aVar40.uintval._4_4_ = uVar23 | 0xffffff80" (field_expression "aVar40.uintval._4_4_" (field_expression "aVar40.uintval" identifier . field_identifier) . field_identifier) = (binary_expression "uVar23 | 0xffffff80" identifier | number_literal)) ;) })) }))) (expression_statement "pattr = puVar15;" (assignment_expression "pattr = puVar15" identifier = identifier) ;) (expression_statement "aVar7 = aVar40;" (assignment_expression "aVar7 = aVar40" identifier = identifier) ;) (if_statement "if (uVar32 == 0x31) goto LAB_002e313c;" if (parenthesized_expression "(uVar32 == 0x31)" ( (binary_expression "uVar32 == 0x31" identifier == number_literal) )) (goto_statement "goto LAB_002e313c;" goto statement_identifier ;)) (if_statement "if (uVar32 < 0x32) {\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                iVar36 = iVar34;\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_002e314c;\nLAB_002e2f98:\n                iVar34 = iVar34 + 8;\n                attr_value.val = aVar40;\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                          (local_38,__position,&attr_value);\n                pAVar13 = this->abbrev_code_;\n                if (iVar34 == iVar31) goto LAB_002e2fb8;\n                goto LAB_002e2db4;\n              }" if (parenthesized_expression "(uVar32 < 0x32)" ( (binary_expression "uVar32 < 0x32" identifier < number_literal) )) (compound_statement "{\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                iVar36 = iVar34;\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_002e314c;\nLAB_002e2f98:\n                iVar34 = iVar34 + 8;\n                attr_value.val = aVar40;\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                          (local_38,__position,&attr_value);\n                pAVar13 = this->abbrev_code_;\n                if (iVar34 == iVar31) goto LAB_002e2fb8;\n                goto LAB_002e2db4;\n              }" { (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) ;)) (expression_statement "iVar36 = iVar34;" (assignment_expression "iVar36 = iVar34" identifier = 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_002e314c;" 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_002e314c;" goto statement_identifier ;)) (labeled_statement "LAB_002e2f98:\n                iVar34 = iVar34 + 8;" statement_identifier : (expression_statement "iVar34 = iVar34 + 8;" (assignment_expression "iVar34 = iVar34 + 8" identifier = (binary_expression "iVar34 + 8" identifier + number_literal)) ;)) (expression_statement "attr_value.val = aVar40;" (assignment_expression "attr_value.val = aVar40" (field_expression "attr_value.val" identifier . field_identifier) = 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                          (local_38,__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                          (local_38,__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                          (local_38,__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                          (local_38,__position,&attr_value);" statement_identifier : (ERROR ":" :) (expression_statement "Attribute_value&>\n                          (local_38,__position,&attr_value);" (binary_expression "Attribute_value&>\n                          (local_38,__position,&attr_value)" identifier (ERROR "&" &) > (parenthesized_expression "(local_38,__position,&attr_value)" ( (comma_expression "local_38,__position,&attr_value" identifier , (comma_expression "__position,&attr_value" identifier , (pointer_expression "&attr_value" & 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 (iVar34 == iVar31) goto LAB_002e2fb8;" if (parenthesized_expression "(iVar34 == iVar31)" ( (binary_expression "iVar34 == iVar31" identifier == identifier) )) (goto_statement "goto LAB_002e2fb8;" goto statement_identifier ;)) (goto_statement "goto LAB_002e2db4;" goto statement_identifier ;) })) }))) (if_statement "if ((uVar32 != 0x6e) && (aVar7 = aVar40, uVar32 != 0x2007)) goto LAB_002e313c;" if (parenthesized_expression "((uVar32 != 0x6e) && (aVar7 = aVar40, uVar32 != 0x2007))" ( (binary_expression "(uVar32 != 0x6e) && (aVar7 = aVar40, uVar32 != 0x2007)" (parenthesized_expression "(uVar32 != 0x6e)" ( (binary_expression "uVar32 != 0x6e" identifier != number_literal) )) && (parenthesized_expression "(aVar7 = aVar40, uVar32 != 0x2007)" ( (comma_expression "aVar7 = aVar40, uVar32 != 0x2007" (assignment_expression "aVar7 = aVar40" identifier = identifier) , (binary_expression "uVar32 != 0x2007" identifier != number_literal)) ))) )) (goto_statement "goto LAB_002e313c;" goto statement_identifier ;)) (labeled_statement "LAB_002e3858:\n            attr_value.val._0_4_ = aVar40.stringval;" statement_identifier : (expression_statement "attr_value.val._0_4_ = aVar40.stringval;" (assignment_expression "attr_value.val._0_4_ = aVar40.stringval" (field_expression "attr_value.val._0_4_" (field_expression "attr_value.val" identifier . field_identifier) . field_identifier) = (field_expression "aVar40.stringval" identifier . field_identifier)) ;)) (expression_statement "aVar7 = aVar40;" (assignment_expression "aVar7 = aVar40" identifier = identifier) ;) (if_statement "if (uVar29 == 8) {\n              this->linkage_name_ = attr_value.val.stringval;\n              goto LAB_002e313c;\n            }" if (parenthesized_expression "(uVar29 == 8)" ( (binary_expression "uVar29 == 8" identifier == number_literal) )) (compound_statement "{\n              this->linkage_name_ = attr_value.val.stringval;\n              goto LAB_002e313c;\n            }" { (expression_statement "this->linkage_name_ = attr_value.val.stringval;" (assignment_expression "this->linkage_name_ = attr_value.val.stringval" (field_expression "this->linkage_name_" identifier -> field_identifier) = (field_expression "attr_value.val.stringval" (field_expression "attr_value.val" identifier . field_identifier) . field_identifier)) ;) (goto_statement "goto LAB_002e313c;" goto statement_identifier ;) })) (if_statement "if (uVar29 != 0xe) goto LAB_002e313c;" if (parenthesized_expression "(uVar29 != 0xe)" ( (binary_expression "uVar29 != 0xe" identifier != number_literal) )) (goto_statement "goto LAB_002e313c;" goto statement_identifier ;)) (goto_statement "goto LAB_002e387c;" goto statement_identifier ;) })) (if_statement "if (uVar29 == 4) {\n            pp_Var16 = (this->dwinfo_->object_->super_Object)._vptr_Object;\n            p_Var37 = pp_Var16[3];\n            if (p_Var37 == (_func_int_varargs *)PTR_is_big_endian_004c2950) {\n              iVar36 = (*pp_Var16[0x3a])();\n            }\n            else {\n              iVar36 = (*p_Var37)();\n            }\n            attr_value.aux.shndx = *(uint *)pattr;\n            if (iVar36 == 0) {\n              attr_value.aux.shndx =\n                   (((attr_value.aux.shndx >> 0x10) << 0x18 | (attr_value.aux.shndx >> 0x18) << 0x10\n                    ) >> 0x10) +\n                   ((attr_value.aux.shndx & 0xff) << 8 | attr_value.aux.shndx >> 8 & 0xff) * 0x10000\n              ;\n            }\n            attr_value.val.stringval = (char *)(pattr + 4);\n            pattr = (uchar *)((int)attr_value.val.stringval + attr_value.aux.shndx);\nLAB_002e355c:\n            aVar40.stringval = attr_value.val.stringval;\n            aVar40.intval._4_4_ = attr_value.val.intval._4_4_;\n            aVar7 = aVar40;\n            if (uVar32 == 0x31) goto LAB_002e313c;\n            if (uVar32 < 0x32) goto LAB_002e3118;\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          }\n          else {\n            if (4 < uVar29) {\n              if (uVar29 != 5) {\n                if (uVar29 != 6) {\n                  return false;\n                }\n                pp_Var16 = (this->dwinfo_->object_->super_Object)._vptr_Object;\n                p_Var37 = pp_Var16[3];\n                if (p_Var37 == (_func_int_varargs *)PTR_is_big_endian_004c2950) {\n                  local_30 = puVar28;\n                  iVar17 = (*pp_Var16[0x3a])();\n                }\n                else {\n                  local_30 = puVar28;\n                  iVar17 = (*p_Var37)();\n                }\n                pcVar25 = *(char **)pattr;\n                if (iVar17 == 0) {\n                  pcVar25 = (char *)(((((uint)pcVar25 >> 0x10) << 0x18 |\n                                      ((uint)pcVar25 >> 0x18) << 0x10) >> 0x10) +\n                                    (((uint)pcVar25 & 0xff) << 8 | (uint)pcVar25 >> 8 & 0xff) *\n                                    0x10000);\n                }\n                pattr = pattr + 4;\n                pDVar22 = this->dwinfo_;\n                str_off._0_4_ = (char *)0x0;\n                str_off._4_4_ = pcVar25;\n                goto LAB_002e3708;\n              }\n              pp_Var16 = (this->dwinfo_->object_->super_Object)._vptr_Object;\n              p_Var37 = pp_Var16[3];\n              if (p_Var37 == (_func_int_varargs *)PTR_is_big_endian_004c2950) {\n                iVar36 = (*pp_Var16[0x3a])();\n              }\n              else {\n                iVar36 = (*p_Var37)();\n              }\n              uVar6 = *(ushort *)pattr;\n              if (iVar36 == 0) {\n                uVar6 = CONCAT11(pattr[1],*pattr);\n              }\n              attr_value.val.intval._4_4_ = ZEXT24(uVar6);\n              pattr = pattr + 2;\n              attr_value.val.stringval = (char *)0x0;\n              goto LAB_002e355c;\n            }\n            if (uVar29 != 1) {\n              if (uVar29 != 3) {\n                return false;\n              }\n              pp_Var16 = (this->dwinfo_->object_->super_Object)._vptr_Object;\n              p_Var37 = pp_Var16[3];\n              if (p_Var37 == (_func_int_varargs *)PTR_is_big_endian_004c2950) {\n                iVar36 = (*pp_Var16[0x3a])();\n              }\n              else {\n                iVar36 = (*p_Var37)();\n              }\n              uVar6 = *(ushort *)pattr;\n              if (iVar36 == 0) {\n                uVar6 = CONCAT11(pattr[1],*pattr);\n              }\n              attr_value.aux.shndx._0_2_ = 0;\n              attr_value.aux.shndx._2_2_ = uVar6;\n              attr_value.val.stringval = (char *)(pattr + 2);\n              pattr = (uchar *)((int)attr_value.val.stringval + attr_value.aux.shndx);\n              goto LAB_002e355c;\n            }\n            pDVar22 = this->dwinfo_;\n            if (pDVar22->address_size_ == 4) {\n              pp_Var16 = (pDVar22->object_->super_Object)._vptr_Object;\n              p_Var37 = pp_Var16[3];\n              if (p_Var37 == (_func_int_varargs *)PTR_is_big_endian_004c2950) {\n                local_30 = puVar28;\n                iVar36 = (*pp_Var16[0x3a])();\n              }\n              else {\n                local_30 = puVar28;\n                iVar36 = (*p_Var37)();\n              }\n              uVar23 = *(uint *)pattr;\n              if (iVar36 == 0) {\n                uVar23 = (((uVar23 >> 0x10) << 0x18 | (uVar23 >> 0x18) << 0x10) >> 0x10) +\n                         ((uVar23 & 0xff) << 8 | uVar23 >> 8 & 0xff) * 0x10000;\n              }\n              pattr = pattr + 4;\n              uVar38 = (ulonglong)uVar23;\n            }\n            else {\n              local_30 = puVar28;\n              uVar38 = (*local_34)(pDVar22,&pattr);\n            }\n            str_off = uVar38;\n            attr_value.aux.shndx = (*local_3c)(this->dwinfo_);\n            aVar39.refval = str_off;\n            if (uVar32 == 0x31) goto LAB_002e30bc;\n            if (uVar32 < 0x32) {\n              if (uVar32 != 1) goto joined_r0x002e3124;\n              goto LAB_002e39b4;\n            }\n            aVar7.refval = str_off;\n            if (uVar32 == 0x6e) goto LAB_002e313c;\n            if (uVar32 != 0x2007) goto LAB_002e339c;\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            aVar40.refval = str_off;\n          }" if (parenthesized_expression "(uVar29 == 4)" ( (binary_expression "uVar29 == 4" identifier == number_literal) )) (compound_statement "{\n            pp_Var16 = (this->dwinfo_->object_->super_Object)._vptr_Object;\n            p_Var37 = pp_Var16[3];\n            if (p_Var37 == (_func_int_varargs *)PTR_is_big_endian_004c2950) {\n              iVar36 = (*pp_Var16[0x3a])();\n            }\n            else {\n              iVar36 = (*p_Var37)();\n            }\n            attr_value.aux.shndx = *(uint *)pattr;\n            if (iVar36 == 0) {\n              attr_value.aux.shndx =\n                   (((attr_value.aux.shndx >> 0x10) << 0x18 | (attr_value.aux.shndx >> 0x18) << 0x10\n                    ) >> 0x10) +\n                   ((attr_value.aux.shndx & 0xff) << 8 | attr_value.aux.shndx >> 8 & 0xff) * 0x10000\n              ;\n            }\n            attr_value.val.stringval = (char *)(pattr + 4);\n            pattr = (uchar *)((int)attr_value.val.stringval + attr_value.aux.shndx);\nLAB_002e355c:\n            aVar40.stringval = attr_value.val.stringval;\n            aVar40.intval._4_4_ = attr_value.val.intval._4_4_;\n            aVar7 = aVar40;\n            if (uVar32 == 0x31) goto LAB_002e313c;\n            if (uVar32 < 0x32) goto LAB_002e3118;\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          }" { (expression_statement "pp_Var16 = (this->dwinfo_->object_->super_Object)._vptr_Object;" (assignment_expression "pp_Var16 = (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_Var37 = pp_Var16[3];" (assignment_expression "p_Var37 = pp_Var16[3]" identifier = (subscript_expression "pp_Var16[3]" identifier [ number_literal ])) ;) (if_statement "if (p_Var37 == (_func_int_varargs *)PTR_is_big_endian_004c2950) {\n              iVar36 = (*pp_Var16[0x3a])();\n            }\n            else {\n              iVar36 = (*p_Var37)();\n            }" if (parenthesized_expression "(p_Var37 == (_func_int_varargs *)PTR_is_big_endian_004c2950)" ( (binary_expression "p_Var37 == (_func_int_varargs *)PTR_is_big_endian_004c2950" identifier == (cast_expression "(_func_int_varargs *)PTR_is_big_endian_004c2950" ( (type_descriptor "_func_int_varargs *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (compound_statement "{\n              iVar36 = (*pp_Var16[0x3a])();\n            }" { (expression_statement "iVar36 = (*pp_Var16[0x3a])();" (assignment_expression "iVar36 = (*pp_Var16[0x3a])()" identifier = (call_expression "(*pp_Var16[0x3a])()" (parenthesized_expression "(*pp_Var16[0x3a])" ( (pointer_expression "*pp_Var16[0x3a]" * (subscript_expression "pp_Var16[0x3a]" identifier [ number_literal ])) )) (argument_list "()" ( )))) ;) }) (else_clause "else {\n              iVar36 = (*p_Var37)();\n            }" else (compound_statement "{\n              iVar36 = (*p_Var37)();\n            }" { (expression_statement "iVar36 = (*p_Var37)();" (assignment_expression "iVar36 = (*p_Var37)()" identifier = (call_expression "(*p_Var37)()" (parenthesized_expression "(*p_Var37)" ( (pointer_expression "*p_Var37" * identifier) )) (argument_list "()" ( )))) ;) }))) (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 (iVar36 == 0) {\n              attr_value.aux.shndx =\n                   (((attr_value.aux.shndx >> 0x10) << 0x18 | (attr_value.aux.shndx >> 0x18) << 0x10\n                    ) >> 0x10) +\n                   ((attr_value.aux.shndx & 0xff) << 8 | attr_value.aux.shndx >> 8 & 0xff) * 0x10000\n              ;\n            }" if (parenthesized_expression "(iVar36 == 0)" ( (binary_expression "iVar36 == 0" identifier == number_literal) )) (compound_statement "{\n              attr_value.aux.shndx =\n                   (((attr_value.aux.shndx >> 0x10) << 0x18 | (attr_value.aux.shndx >> 0x18) << 0x10\n                    ) >> 0x10) +\n                   ((attr_value.aux.shndx & 0xff) << 8 | attr_value.aux.shndx >> 8 & 0xff) * 0x10000\n              ;\n            }" { (expression_statement "attr_value.aux.shndx =\n                   (((attr_value.aux.shndx >> 0x10) << 0x18 | (attr_value.aux.shndx >> 0x18) << 0x10\n                    ) >> 0x10) +\n                   ((attr_value.aux.shndx & 0xff) << 8 | attr_value.aux.shndx >> 8 & 0xff) * 0x10000\n              ;" (assignment_expression "attr_value.aux.shndx =\n                   (((attr_value.aux.shndx >> 0x10) << 0x18 | (attr_value.aux.shndx >> 0x18) << 0x10\n                    ) >> 0x10) +\n                   ((attr_value.aux.shndx & 0xff) << 8 | attr_value.aux.shndx >> 8 & 0xff) * 0x10000" (field_expression "attr_value.aux.shndx" (field_expression "attr_value.aux" identifier . field_identifier) . field_identifier) = (binary_expression "(((attr_value.aux.shndx >> 0x10) << 0x18 | (attr_value.aux.shndx >> 0x18) << 0x10\n                    ) >> 0x10) +\n                   ((attr_value.aux.shndx & 0xff) << 8 | attr_value.aux.shndx >> 8 & 0xff) * 0x10000" (parenthesized_expression "(((attr_value.aux.shndx >> 0x10) << 0x18 | (attr_value.aux.shndx >> 0x18) << 0x10\n                    ) >> 0x10)" ( (binary_expression "((attr_value.aux.shndx >> 0x10) << 0x18 | (attr_value.aux.shndx >> 0x18) << 0x10\n                    ) >> 0x10" (parenthesized_expression "((attr_value.aux.shndx >> 0x10) << 0x18 | (attr_value.aux.shndx >> 0x18) << 0x10\n                    )" ( (binary_expression "(attr_value.aux.shndx >> 0x10) << 0x18 | (attr_value.aux.shndx >> 0x18) << 0x10" (binary_expression "(attr_value.aux.shndx >> 0x10) << 0x18" (parenthesized_expression "(attr_value.aux.shndx >> 0x10)" ( (binary_expression "attr_value.aux.shndx >> 0x10" (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) << 0x10" (parenthesized_expression "(attr_value.aux.shndx >> 0x18)" ( (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) )) << number_literal)) )) >> number_literal) )) + (binary_expression "((attr_value.aux.shndx & 0xff) << 8 | attr_value.aux.shndx >> 8 & 0xff) * 0x10000" (parenthesized_expression "((attr_value.aux.shndx & 0xff) << 8 | attr_value.aux.shndx >> 8 & 0xff)" ( (binary_expression "(attr_value.aux.shndx & 0xff) << 8 | attr_value.aux.shndx >> 8 & 0xff" (binary_expression "(attr_value.aux.shndx & 0xff) << 8" (parenthesized_expression "(attr_value.aux.shndx & 0xff)" ( (binary_expression "attr_value.aux.shndx & 0xff" (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 >> 8 & 0xff" (binary_expression "attr_value.aux.shndx >> 8" (field_expression "attr_value.aux.shndx" (field_expression "attr_value.aux" identifier . field_identifier) . field_identifier) >> number_literal) & number_literal)) )) * 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 *)((int)attr_value.val.stringval + attr_value.aux.shndx);" (assignment_expression "pattr = (uchar *)((int)attr_value.val.stringval + attr_value.aux.shndx)" identifier = (cast_expression "(uchar *)((int)attr_value.val.stringval + attr_value.aux.shndx)" ( (type_descriptor "uchar *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)attr_value.val.stringval + attr_value.aux.shndx)" ( (binary_expression "(int)attr_value.val.stringval + attr_value.aux.shndx" (cast_expression "(int)attr_value.val.stringval" ( (type_descriptor "int" primitive_type) ) (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)) )))) ;) (labeled_statement "LAB_002e355c:\n            aVar40.stringval = attr_value.val.stringval;" statement_identifier : (expression_statement "aVar40.stringval = attr_value.val.stringval;" (assignment_expression "aVar40.stringval = attr_value.val.stringval" (field_expression "aVar40.stringval" identifier . field_identifier) = (field_expression "attr_value.val.stringval" (field_expression "attr_value.val" identifier . field_identifier) . field_identifier)) ;)) (expression_statement "aVar40.intval._4_4_ = attr_value.val.intval._4_4_;" (assignment_expression "aVar40.intval._4_4_ = attr_value.val.intval._4_4_" (field_expression "aVar40.intval._4_4_" (field_expression "aVar40.intval" identifier . field_identifier) . field_identifier) = (field_expression "attr_value.val.intval._4_4_" (field_expression "attr_value.val.intval" (field_expression "attr_value.val" identifier . field_identifier) . field_identifier) . field_identifier)) ;) (expression_statement "aVar7 = aVar40;" (assignment_expression "aVar7 = aVar40" identifier = identifier) ;) (if_statement "if (uVar32 == 0x31) goto LAB_002e313c;" if (parenthesized_expression "(uVar32 == 0x31)" ( (binary_expression "uVar32 == 0x31" identifier == number_literal) )) (goto_statement "goto LAB_002e313c;" goto statement_identifier ;)) (if_statement "if (uVar32 < 0x32) goto LAB_002e3118;" if (parenthesized_expression "(uVar32 < 0x32)" ( (binary_expression "uVar32 < 0x32" identifier < number_literal) )) (goto_statement "goto LAB_002e3118;" 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) ;)) }) (else_clause "else {\n            if (4 < uVar29) {\n              if (uVar29 != 5) {\n                if (uVar29 != 6) {\n                  return false;\n                }\n                pp_Var16 = (this->dwinfo_->object_->super_Object)._vptr_Object;\n                p_Var37 = pp_Var16[3];\n                if (p_Var37 == (_func_int_varargs *)PTR_is_big_endian_004c2950) {\n                  local_30 = puVar28;\n                  iVar17 = (*pp_Var16[0x3a])();\n                }\n                else {\n                  local_30 = puVar28;\n                  iVar17 = (*p_Var37)();\n                }\n                pcVar25 = *(char **)pattr;\n                if (iVar17 == 0) {\n                  pcVar25 = (char *)(((((uint)pcVar25 >> 0x10) << 0x18 |\n                                      ((uint)pcVar25 >> 0x18) << 0x10) >> 0x10) +\n                                    (((uint)pcVar25 & 0xff) << 8 | (uint)pcVar25 >> 8 & 0xff) *\n                                    0x10000);\n                }\n                pattr = pattr + 4;\n                pDVar22 = this->dwinfo_;\n                str_off._0_4_ = (char *)0x0;\n                str_off._4_4_ = pcVar25;\n                goto LAB_002e3708;\n              }\n              pp_Var16 = (this->dwinfo_->object_->super_Object)._vptr_Object;\n              p_Var37 = pp_Var16[3];\n              if (p_Var37 == (_func_int_varargs *)PTR_is_big_endian_004c2950) {\n                iVar36 = (*pp_Var16[0x3a])();\n              }\n              else {\n                iVar36 = (*p_Var37)();\n              }\n              uVar6 = *(ushort *)pattr;\n              if (iVar36 == 0) {\n                uVar6 = CONCAT11(pattr[1],*pattr);\n              }\n              attr_value.val.intval._4_4_ = ZEXT24(uVar6);\n              pattr = pattr + 2;\n              attr_value.val.stringval = (char *)0x0;\n              goto LAB_002e355c;\n            }\n            if (uVar29 != 1) {\n              if (uVar29 != 3) {\n                return false;\n              }\n              pp_Var16 = (this->dwinfo_->object_->super_Object)._vptr_Object;\n              p_Var37 = pp_Var16[3];\n              if (p_Var37 == (_func_int_varargs *)PTR_is_big_endian_004c2950) {\n                iVar36 = (*pp_Var16[0x3a])();\n              }\n              else {\n                iVar36 = (*p_Var37)();\n              }\n              uVar6 = *(ushort *)pattr;\n              if (iVar36 == 0) {\n                uVar6 = CONCAT11(pattr[1],*pattr);\n              }\n              attr_value.aux.shndx._0_2_ = 0;\n              attr_value.aux.shndx._2_2_ = uVar6;\n              attr_value.val.stringval = (char *)(pattr + 2);\n              pattr = (uchar *)((int)attr_value.val.stringval + attr_value.aux.shndx);\n              goto LAB_002e355c;\n            }\n            pDVar22 = this->dwinfo_;\n            if (pDVar22->address_size_ == 4) {\n              pp_Var16 = (pDVar22->object_->super_Object)._vptr_Object;\n              p_Var37 = pp_Var16[3];\n              if (p_Var37 == (_func_int_varargs *)PTR_is_big_endian_004c2950) {\n                local_30 = puVar28;\n                iVar36 = (*pp_Var16[0x3a])();\n              }\n              else {\n                local_30 = puVar28;\n                iVar36 = (*p_Var37)();\n              }\n              uVar23 = *(uint *)pattr;\n              if (iVar36 == 0) {\n                uVar23 = (((uVar23 >> 0x10) << 0x18 | (uVar23 >> 0x18) << 0x10) >> 0x10) +\n                         ((uVar23 & 0xff) << 8 | uVar23 >> 8 & 0xff) * 0x10000;\n              }\n              pattr = pattr + 4;\n              uVar38 = (ulonglong)uVar23;\n            }\n            else {\n              local_30 = puVar28;\n              uVar38 = (*local_34)(pDVar22,&pattr);\n            }\n            str_off = uVar38;\n            attr_value.aux.shndx = (*local_3c)(this->dwinfo_);\n            aVar39.refval = str_off;\n            if (uVar32 == 0x31) goto LAB_002e30bc;\n            if (uVar32 < 0x32) {\n              if (uVar32 != 1) goto joined_r0x002e3124;\n              goto LAB_002e39b4;\n            }\n            aVar7.refval = str_off;\n            if (uVar32 == 0x6e) goto LAB_002e313c;\n            if (uVar32 != 0x2007) goto LAB_002e339c;\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            aVar40.refval = str_off;\n          }" else (compound_statement "{\n            if (4 < uVar29) {\n              if (uVar29 != 5) {\n                if (uVar29 != 6) {\n                  return false;\n                }\n                pp_Var16 = (this->dwinfo_->object_->super_Object)._vptr_Object;\n                p_Var37 = pp_Var16[3];\n                if (p_Var37 == (_func_int_varargs *)PTR_is_big_endian_004c2950) {\n                  local_30 = puVar28;\n                  iVar17 = (*pp_Var16[0x3a])();\n                }\n                else {\n                  local_30 = puVar28;\n                  iVar17 = (*p_Var37)();\n                }\n                pcVar25 = *(char **)pattr;\n                if (iVar17 == 0) {\n                  pcVar25 = (char *)(((((uint)pcVar25 >> 0x10) << 0x18 |\n                                      ((uint)pcVar25 >> 0x18) << 0x10) >> 0x10) +\n                                    (((uint)pcVar25 & 0xff) << 8 | (uint)pcVar25 >> 8 & 0xff) *\n                                    0x10000);\n                }\n                pattr = pattr + 4;\n                pDVar22 = this->dwinfo_;\n                str_off._0_4_ = (char *)0x0;\n                str_off._4_4_ = pcVar25;\n                goto LAB_002e3708;\n              }\n              pp_Var16 = (this->dwinfo_->object_->super_Object)._vptr_Object;\n              p_Var37 = pp_Var16[3];\n              if (p_Var37 == (_func_int_varargs *)PTR_is_big_endian_004c2950) {\n                iVar36 = (*pp_Var16[0x3a])();\n              }\n              else {\n                iVar36 = (*p_Var37)();\n              }\n              uVar6 = *(ushort *)pattr;\n              if (iVar36 == 0) {\n                uVar6 = CONCAT11(pattr[1],*pattr);\n              }\n              attr_value.val.intval._4_4_ = ZEXT24(uVar6);\n              pattr = pattr + 2;\n              attr_value.val.stringval = (char *)0x0;\n              goto LAB_002e355c;\n            }\n            if (uVar29 != 1) {\n              if (uVar29 != 3) {\n                return false;\n              }\n              pp_Var16 = (this->dwinfo_->object_->super_Object)._vptr_Object;\n              p_Var37 = pp_Var16[3];\n              if (p_Var37 == (_func_int_varargs *)PTR_is_big_endian_004c2950) {\n                iVar36 = (*pp_Var16[0x3a])();\n              }\n              else {\n                iVar36 = (*p_Var37)();\n              }\n              uVar6 = *(ushort *)pattr;\n              if (iVar36 == 0) {\n                uVar6 = CONCAT11(pattr[1],*pattr);\n              }\n              attr_value.aux.shndx._0_2_ = 0;\n              attr_value.aux.shndx._2_2_ = uVar6;\n              attr_value.val.stringval = (char *)(pattr + 2);\n              pattr = (uchar *)((int)attr_value.val.stringval + attr_value.aux.shndx);\n              goto LAB_002e355c;\n            }\n            pDVar22 = this->dwinfo_;\n            if (pDVar22->address_size_ == 4) {\n              pp_Var16 = (pDVar22->object_->super_Object)._vptr_Object;\n              p_Var37 = pp_Var16[3];\n              if (p_Var37 == (_func_int_varargs *)PTR_is_big_endian_004c2950) {\n                local_30 = puVar28;\n                iVar36 = (*pp_Var16[0x3a])();\n              }\n              else {\n                local_30 = puVar28;\n                iVar36 = (*p_Var37)();\n              }\n              uVar23 = *(uint *)pattr;\n              if (iVar36 == 0) {\n                uVar23 = (((uVar23 >> 0x10) << 0x18 | (uVar23 >> 0x18) << 0x10) >> 0x10) +\n                         ((uVar23 & 0xff) << 8 | uVar23 >> 8 & 0xff) * 0x10000;\n              }\n              pattr = pattr + 4;\n              uVar38 = (ulonglong)uVar23;\n            }\n            else {\n              local_30 = puVar28;\n              uVar38 = (*local_34)(pDVar22,&pattr);\n            }\n            str_off = uVar38;\n            attr_value.aux.shndx = (*local_3c)(this->dwinfo_);\n            aVar39.refval = str_off;\n            if (uVar32 == 0x31) goto LAB_002e30bc;\n            if (uVar32 < 0x32) {\n              if (uVar32 != 1) goto joined_r0x002e3124;\n              goto LAB_002e39b4;\n            }\n            aVar7.refval = str_off;\n            if (uVar32 == 0x6e) goto LAB_002e313c;\n            if (uVar32 != 0x2007) goto LAB_002e339c;\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            aVar40.refval = str_off;\n          }" { (if_statement "if (4 < uVar29) {\n              if (uVar29 != 5) {\n                if (uVar29 != 6) {\n                  return false;\n                }\n                pp_Var16 = (this->dwinfo_->object_->super_Object)._vptr_Object;\n                p_Var37 = pp_Var16[3];\n                if (p_Var37 == (_func_int_varargs *)PTR_is_big_endian_004c2950) {\n                  local_30 = puVar28;\n                  iVar17 = (*pp_Var16[0x3a])();\n                }\n                else {\n                  local_30 = puVar28;\n                  iVar17 = (*p_Var37)();\n                }\n                pcVar25 = *(char **)pattr;\n                if (iVar17 == 0) {\n                  pcVar25 = (char *)(((((uint)pcVar25 >> 0x10) << 0x18 |\n                                      ((uint)pcVar25 >> 0x18) << 0x10) >> 0x10) +\n                                    (((uint)pcVar25 & 0xff) << 8 | (uint)pcVar25 >> 8 & 0xff) *\n                                    0x10000);\n                }\n                pattr = pattr + 4;\n                pDVar22 = this->dwinfo_;\n                str_off._0_4_ = (char *)0x0;\n                str_off._4_4_ = pcVar25;\n                goto LAB_002e3708;\n              }\n              pp_Var16 = (this->dwinfo_->object_->super_Object)._vptr_Object;\n              p_Var37 = pp_Var16[3];\n              if (p_Var37 == (_func_int_varargs *)PTR_is_big_endian_004c2950) {\n                iVar36 = (*pp_Var16[0x3a])();\n              }\n              else {\n                iVar36 = (*p_Var37)();\n              }\n              uVar6 = *(ushort *)pattr;\n              if (iVar36 == 0) {\n                uVar6 = CONCAT11(pattr[1],*pattr);\n              }\n              attr_value.val.intval._4_4_ = ZEXT24(uVar6);\n              pattr = pattr + 2;\n              attr_value.val.stringval = (char *)0x0;\n              goto LAB_002e355c;\n            }" if (parenthesized_expression "(4 < uVar29)" ( (binary_expression "4 < uVar29" number_literal < identifier) )) (compound_statement "{\n              if (uVar29 != 5) {\n                if (uVar29 != 6) {\n                  return false;\n                }\n                pp_Var16 = (this->dwinfo_->object_->super_Object)._vptr_Object;\n                p_Var37 = pp_Var16[3];\n                if (p_Var37 == (_func_int_varargs *)PTR_is_big_endian_004c2950) {\n                  local_30 = puVar28;\n                  iVar17 = (*pp_Var16[0x3a])();\n                }\n                else {\n                  local_30 = puVar28;\n                  iVar17 = (*p_Var37)();\n                }\n                pcVar25 = *(char **)pattr;\n                if (iVar17 == 0) {\n                  pcVar25 = (char *)(((((uint)pcVar25 >> 0x10) << 0x18 |\n                                      ((uint)pcVar25 >> 0x18) << 0x10) >> 0x10) +\n                                    (((uint)pcVar25 & 0xff) << 8 | (uint)pcVar25 >> 8 & 0xff) *\n                                    0x10000);\n                }\n                pattr = pattr + 4;\n                pDVar22 = this->dwinfo_;\n                str_off._0_4_ = (char *)0x0;\n                str_off._4_4_ = pcVar25;\n                goto LAB_002e3708;\n              }\n              pp_Var16 = (this->dwinfo_->object_->super_Object)._vptr_Object;\n              p_Var37 = pp_Var16[3];\n              if (p_Var37 == (_func_int_varargs *)PTR_is_big_endian_004c2950) {\n                iVar36 = (*pp_Var16[0x3a])();\n              }\n              else {\n                iVar36 = (*p_Var37)();\n              }\n              uVar6 = *(ushort *)pattr;\n              if (iVar36 == 0) {\n                uVar6 = CONCAT11(pattr[1],*pattr);\n              }\n              attr_value.val.intval._4_4_ = ZEXT24(uVar6);\n              pattr = pattr + 2;\n              attr_value.val.stringval = (char *)0x0;\n              goto LAB_002e355c;\n            }" { (if_statement "if (uVar29 != 5) {\n                if (uVar29 != 6) {\n                  return false;\n                }\n                pp_Var16 = (this->dwinfo_->object_->super_Object)._vptr_Object;\n                p_Var37 = pp_Var16[3];\n                if (p_Var37 == (_func_int_varargs *)PTR_is_big_endian_004c2950) {\n                  local_30 = puVar28;\n                  iVar17 = (*pp_Var16[0x3a])();\n                }\n                else {\n                  local_30 = puVar28;\n                  iVar17 = (*p_Var37)();\n                }\n                pcVar25 = *(char **)pattr;\n                if (iVar17 == 0) {\n                  pcVar25 = (char *)(((((uint)pcVar25 >> 0x10) << 0x18 |\n                                      ((uint)pcVar25 >> 0x18) << 0x10) >> 0x10) +\n                                    (((uint)pcVar25 & 0xff) << 8 | (uint)pcVar25 >> 8 & 0xff) *\n                                    0x10000);\n                }\n                pattr = pattr + 4;\n                pDVar22 = this->dwinfo_;\n                str_off._0_4_ = (char *)0x0;\n                str_off._4_4_ = pcVar25;\n                goto LAB_002e3708;\n              }" if (parenthesized_expression "(uVar29 != 5)" ( (binary_expression "uVar29 != 5" identifier != number_literal) )) (compound_statement "{\n                if (uVar29 != 6) {\n                  return false;\n                }\n                pp_Var16 = (this->dwinfo_->object_->super_Object)._vptr_Object;\n                p_Var37 = pp_Var16[3];\n                if (p_Var37 == (_func_int_varargs *)PTR_is_big_endian_004c2950) {\n                  local_30 = puVar28;\n                  iVar17 = (*pp_Var16[0x3a])();\n                }\n                else {\n                  local_30 = puVar28;\n                  iVar17 = (*p_Var37)();\n                }\n                pcVar25 = *(char **)pattr;\n                if (iVar17 == 0) {\n                  pcVar25 = (char *)(((((uint)pcVar25 >> 0x10) << 0x18 |\n                                      ((uint)pcVar25 >> 0x18) << 0x10) >> 0x10) +\n                                    (((uint)pcVar25 & 0xff) << 8 | (uint)pcVar25 >> 8 & 0xff) *\n                                    0x10000);\n                }\n                pattr = pattr + 4;\n                pDVar22 = this->dwinfo_;\n                str_off._0_4_ = (char *)0x0;\n                str_off._4_4_ = pcVar25;\n                goto LAB_002e3708;\n              }" { (if_statement "if (uVar29 != 6) {\n                  return false;\n                }" if (parenthesized_expression "(uVar29 != 6)" ( (binary_expression "uVar29 != 6" identifier != number_literal) )) (compound_statement "{\n                  return false;\n                }" { (return_statement "return false;" return false ;) })) (expression_statement "pp_Var16 = (this->dwinfo_->object_->super_Object)._vptr_Object;" (assignment_expression "pp_Var16 = (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_Var37 = pp_Var16[3];" (assignment_expression "p_Var37 = pp_Var16[3]" identifier = (subscript_expression "pp_Var16[3]" identifier [ number_literal ])) ;) (if_statement "if (p_Var37 == (_func_int_varargs *)PTR_is_big_endian_004c2950) {\n                  local_30 = puVar28;\n                  iVar17 = (*pp_Var16[0x3a])();\n                }\n                else {\n                  local_30 = puVar28;\n                  iVar17 = (*p_Var37)();\n                }" if (parenthesized_expression "(p_Var37 == (_func_int_varargs *)PTR_is_big_endian_004c2950)" ( (binary_expression "p_Var37 == (_func_int_varargs *)PTR_is_big_endian_004c2950" identifier == (cast_expression "(_func_int_varargs *)PTR_is_big_endian_004c2950" ( (type_descriptor "_func_int_varargs *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (compound_statement "{\n                  local_30 = puVar28;\n                  iVar17 = (*pp_Var16[0x3a])();\n                }" { (expression_statement "local_30 = puVar28;" (assignment_expression "local_30 = puVar28" identifier = identifier) ;) (expression_statement "iVar17 = (*pp_Var16[0x3a])();" (assignment_expression "iVar17 = (*pp_Var16[0x3a])()" identifier = (call_expression "(*pp_Var16[0x3a])()" (parenthesized_expression "(*pp_Var16[0x3a])" ( (pointer_expression "*pp_Var16[0x3a]" * (subscript_expression "pp_Var16[0x3a]" identifier [ number_literal ])) )) (argument_list "()" ( )))) ;) }) (else_clause "else {\n                  local_30 = puVar28;\n                  iVar17 = (*p_Var37)();\n                }" else (compound_statement "{\n                  local_30 = puVar28;\n                  iVar17 = (*p_Var37)();\n                }" { (expression_statement "local_30 = puVar28;" (assignment_expression "local_30 = puVar28" identifier = identifier) ;) (expression_statement "iVar17 = (*p_Var37)();" (assignment_expression "iVar17 = (*p_Var37)()" identifier = (call_expression "(*p_Var37)()" (parenthesized_expression "(*p_Var37)" ( (pointer_expression "*p_Var37" * identifier) )) (argument_list "()" ( )))) ;) }))) (expression_statement "pcVar25 = *(char **)pattr;" (assignment_expression "pcVar25 = *(char **)pattr" identifier = (pointer_expression "*(char **)pattr" * (cast_expression "(char **)pattr" ( (type_descriptor "char **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) identifier))) ;) (if_statement "if (iVar17 == 0) {\n                  pcVar25 = (char *)(((((uint)pcVar25 >> 0x10) << 0x18 |\n                                      ((uint)pcVar25 >> 0x18) << 0x10) >> 0x10) +\n                                    (((uint)pcVar25 & 0xff) << 8 | (uint)pcVar25 >> 8 & 0xff) *\n                                    0x10000);\n                }" if (parenthesized_expression "(iVar17 == 0)" ( (binary_expression "iVar17 == 0" identifier == number_literal) )) (compound_statement "{\n                  pcVar25 = (char *)(((((uint)pcVar25 >> 0x10) << 0x18 |\n                                      ((uint)pcVar25 >> 0x18) << 0x10) >> 0x10) +\n                                    (((uint)pcVar25 & 0xff) << 8 | (uint)pcVar25 >> 8 & 0xff) *\n                                    0x10000);\n                }" { (expression_statement "pcVar25 = (char *)(((((uint)pcVar25 >> 0x10) << 0x18 |\n                                      ((uint)pcVar25 >> 0x18) << 0x10) >> 0x10) +\n                                    (((uint)pcVar25 & 0xff) << 8 | (uint)pcVar25 >> 8 & 0xff) *\n                                    0x10000);" (assignment_expression "pcVar25 = (char *)(((((uint)pcVar25 >> 0x10) << 0x18 |\n                                      ((uint)pcVar25 >> 0x18) << 0x10) >> 0x10) +\n                                    (((uint)pcVar25 & 0xff) << 8 | (uint)pcVar25 >> 8 & 0xff) *\n                                    0x10000)" identifier = (cast_expression "(char *)(((((uint)pcVar25 >> 0x10) << 0x18 |\n                                      ((uint)pcVar25 >> 0x18) << 0x10) >> 0x10) +\n                                    (((uint)pcVar25 & 0xff) << 8 | (uint)pcVar25 >> 8 & 0xff) *\n                                    0x10000)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(((((uint)pcVar25 >> 0x10) << 0x18 |\n                                      ((uint)pcVar25 >> 0x18) << 0x10) >> 0x10) +\n                                    (((uint)pcVar25 & 0xff) << 8 | (uint)pcVar25 >> 8 & 0xff) *\n                                    0x10000)" ( (binary_expression "((((uint)pcVar25 >> 0x10) << 0x18 |\n                                      ((uint)pcVar25 >> 0x18) << 0x10) >> 0x10) +\n                                    (((uint)pcVar25 & 0xff) << 8 | (uint)pcVar25 >> 8 & 0xff) *\n                                    0x10000" (parenthesized_expression "((((uint)pcVar25 >> 0x10) << 0x18 |\n                                      ((uint)pcVar25 >> 0x18) << 0x10) >> 0x10)" ( (binary_expression "(((uint)pcVar25 >> 0x10) << 0x18 |\n                                      ((uint)pcVar25 >> 0x18) << 0x10) >> 0x10" (parenthesized_expression "(((uint)pcVar25 >> 0x10) << 0x18 |\n                                      ((uint)pcVar25 >> 0x18) << 0x10)" ( (binary_expression "((uint)pcVar25 >> 0x10) << 0x18 |\n                                      ((uint)pcVar25 >> 0x18) << 0x10" (binary_expression "((uint)pcVar25 >> 0x10) << 0x18" (parenthesized_expression "((uint)pcVar25 >> 0x10)" ( (binary_expression "(uint)pcVar25 >> 0x10" (cast_expression "(uint)pcVar25" ( (type_descriptor "uint" type_identifier) ) identifier) >> number_literal) )) << number_literal) | (binary_expression "((uint)pcVar25 >> 0x18) << 0x10" (parenthesized_expression "((uint)pcVar25 >> 0x18)" ( (binary_expression "(uint)pcVar25 >> 0x18" (cast_expression "(uint)pcVar25" ( (type_descriptor "uint" type_identifier) ) identifier) >> number_literal) )) << number_literal)) )) >> number_literal) )) + (binary_expression "(((uint)pcVar25 & 0xff) << 8 | (uint)pcVar25 >> 8 & 0xff) *\n                                    0x10000" (parenthesized_expression "(((uint)pcVar25 & 0xff) << 8 | (uint)pcVar25 >> 8 & 0xff)" ( (binary_expression "((uint)pcVar25 & 0xff) << 8 | (uint)pcVar25 >> 8 & 0xff" (binary_expression "((uint)pcVar25 & 0xff) << 8" (parenthesized_expression "((uint)pcVar25 & 0xff)" ( (binary_expression "(uint)pcVar25 & 0xff" (cast_expression "(uint)pcVar25" ( (type_descriptor "uint" type_identifier) ) identifier) & number_literal) )) << number_literal) | (binary_expression "(uint)pcVar25 >> 8 & 0xff" (binary_expression "(uint)pcVar25 >> 8" (cast_expression "(uint)pcVar25" ( (type_descriptor "uint" type_identifier) ) identifier) >> number_literal) & number_literal)) )) * number_literal)) )))) ;) })) (expression_statement "pattr = pattr + 4;" (assignment_expression "pattr = pattr + 4" identifier = (binary_expression "pattr + 4" identifier + number_literal)) ;) (expression_statement "pDVar22 = this->dwinfo_;" (assignment_expression "pDVar22 = this->dwinfo_" identifier = (field_expression "this->dwinfo_" identifier -> field_identifier)) ;) (expression_statement "str_off._0_4_ = (char *)0x0;" (assignment_expression "str_off._0_4_ = (char *)0x0" (field_expression "str_off._0_4_" identifier . field_identifier) = (cast_expression "(char *)0x0" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (expression_statement "str_off._4_4_ = pcVar25;" (assignment_expression "str_off._4_4_ = pcVar25" (field_expression "str_off._4_4_" identifier . field_identifier) = identifier) ;) (goto_statement "goto LAB_002e3708;" goto statement_identifier ;) })) (expression_statement "pp_Var16 = (this->dwinfo_->object_->super_Object)._vptr_Object;" (assignment_expression "pp_Var16 = (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_Var37 = pp_Var16[3];" (assignment_expression "p_Var37 = pp_Var16[3]" identifier = (subscript_expression "pp_Var16[3]" identifier [ number_literal ])) ;) (if_statement "if (p_Var37 == (_func_int_varargs *)PTR_is_big_endian_004c2950) {\n                iVar36 = (*pp_Var16[0x3a])();\n              }\n              else {\n                iVar36 = (*p_Var37)();\n              }" if (parenthesized_expression "(p_Var37 == (_func_int_varargs *)PTR_is_big_endian_004c2950)" ( (binary_expression "p_Var37 == (_func_int_varargs *)PTR_is_big_endian_004c2950" identifier == (cast_expression "(_func_int_varargs *)PTR_is_big_endian_004c2950" ( (type_descriptor "_func_int_varargs *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (compound_statement "{\n                iVar36 = (*pp_Var16[0x3a])();\n              }" { (expression_statement "iVar36 = (*pp_Var16[0x3a])();" (assignment_expression "iVar36 = (*pp_Var16[0x3a])()" identifier = (call_expression "(*pp_Var16[0x3a])()" (parenthesized_expression "(*pp_Var16[0x3a])" ( (pointer_expression "*pp_Var16[0x3a]" * (subscript_expression "pp_Var16[0x3a]" identifier [ number_literal ])) )) (argument_list "()" ( )))) ;) }) (else_clause "else {\n                iVar36 = (*p_Var37)();\n              }" else (compound_statement "{\n                iVar36 = (*p_Var37)();\n              }" { (expression_statement "iVar36 = (*p_Var37)();" (assignment_expression "iVar36 = (*p_Var37)()" identifier = (call_expression "(*p_Var37)()" (parenthesized_expression "(*p_Var37)" ( (pointer_expression "*p_Var37" * identifier) )) (argument_list "()" ( )))) ;) }))) (expression_statement "uVar6 = *(ushort *)pattr;" (assignment_expression "uVar6 = *(ushort *)pattr" identifier = (pointer_expression "*(ushort *)pattr" * (cast_expression "(ushort *)pattr" ( (type_descriptor "ushort *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier))) ;) (if_statement "if (iVar36 == 0) {\n                uVar6 = CONCAT11(pattr[1],*pattr);\n              }" if (parenthesized_expression "(iVar36 == 0)" ( (binary_expression "iVar36 == 0" identifier == number_literal) )) (compound_statement "{\n                uVar6 = CONCAT11(pattr[1],*pattr);\n              }" { (expression_statement "uVar6 = CONCAT11(pattr[1],*pattr);" (assignment_expression "uVar6 = CONCAT11(pattr[1],*pattr)" identifier = (call_expression "CONCAT11(pattr[1],*pattr)" identifier (argument_list "(pattr[1],*pattr)" ( (subscript_expression "pattr[1]" identifier [ number_literal ]) , (pointer_expression "*pattr" * identifier) )))) ;) })) (expression_statement "attr_value.val.intval._4_4_ = ZEXT24(uVar6);" (assignment_expression "attr_value.val.intval._4_4_ = ZEXT24(uVar6)" (field_expression "attr_value.val.intval._4_4_" (field_expression "attr_value.val.intval" (field_expression "attr_value.val" identifier . field_identifier) . field_identifier) . field_identifier) = (call_expression "ZEXT24(uVar6)" identifier (argument_list "(uVar6)" ( identifier )))) ;) (expression_statement "pattr = pattr + 2;" (assignment_expression "pattr = pattr + 2" identifier = (binary_expression "pattr + 2" identifier + number_literal)) ;) (expression_statement "attr_value.val.stringval = (char *)0x0;" (assignment_expression "attr_value.val.stringval = (char *)0x0" (field_expression "attr_value.val.stringval" (field_expression "attr_value.val" identifier . field_identifier) . field_identifier) = (cast_expression "(char *)0x0" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (goto_statement "goto LAB_002e355c;" goto statement_identifier ;) })) (if_statement "if (uVar29 != 1) {\n              if (uVar29 != 3) {\n                return false;\n              }\n              pp_Var16 = (this->dwinfo_->object_->super_Object)._vptr_Object;\n              p_Var37 = pp_Var16[3];\n              if (p_Var37 == (_func_int_varargs *)PTR_is_big_endian_004c2950) {\n                iVar36 = (*pp_Var16[0x3a])();\n              }\n              else {\n                iVar36 = (*p_Var37)();\n              }\n              uVar6 = *(ushort *)pattr;\n              if (iVar36 == 0) {\n                uVar6 = CONCAT11(pattr[1],*pattr);\n              }\n              attr_value.aux.shndx._0_2_ = 0;\n              attr_value.aux.shndx._2_2_ = uVar6;\n              attr_value.val.stringval = (char *)(pattr + 2);\n              pattr = (uchar *)((int)attr_value.val.stringval + attr_value.aux.shndx);\n              goto LAB_002e355c;\n            }" if (parenthesized_expression "(uVar29 != 1)" ( (binary_expression "uVar29 != 1" identifier != number_literal) )) (compound_statement "{\n              if (uVar29 != 3) {\n                return false;\n              }\n              pp_Var16 = (this->dwinfo_->object_->super_Object)._vptr_Object;\n              p_Var37 = pp_Var16[3];\n              if (p_Var37 == (_func_int_varargs *)PTR_is_big_endian_004c2950) {\n                iVar36 = (*pp_Var16[0x3a])();\n              }\n              else {\n                iVar36 = (*p_Var37)();\n              }\n              uVar6 = *(ushort *)pattr;\n              if (iVar36 == 0) {\n                uVar6 = CONCAT11(pattr[1],*pattr);\n              }\n              attr_value.aux.shndx._0_2_ = 0;\n              attr_value.aux.shndx._2_2_ = uVar6;\n              attr_value.val.stringval = (char *)(pattr + 2);\n              pattr = (uchar *)((int)attr_value.val.stringval + attr_value.aux.shndx);\n              goto LAB_002e355c;\n            }" { (if_statement "if (uVar29 != 3) {\n                return false;\n              }" if (parenthesized_expression "(uVar29 != 3)" ( (binary_expression "uVar29 != 3" identifier != number_literal) )) (compound_statement "{\n                return false;\n              }" { (return_statement "return false;" return false ;) })) (expression_statement "pp_Var16 = (this->dwinfo_->object_->super_Object)._vptr_Object;" (assignment_expression "pp_Var16 = (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_Var37 = pp_Var16[3];" (assignment_expression "p_Var37 = pp_Var16[3]" identifier = (subscript_expression "pp_Var16[3]" identifier [ number_literal ])) ;) (if_statement "if (p_Var37 == (_func_int_varargs *)PTR_is_big_endian_004c2950) {\n                iVar36 = (*pp_Var16[0x3a])();\n              }\n              else {\n                iVar36 = (*p_Var37)();\n              }" if (parenthesized_expression "(p_Var37 == (_func_int_varargs *)PTR_is_big_endian_004c2950)" ( (binary_expression "p_Var37 == (_func_int_varargs *)PTR_is_big_endian_004c2950" identifier == (cast_expression "(_func_int_varargs *)PTR_is_big_endian_004c2950" ( (type_descriptor "_func_int_varargs *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (compound_statement "{\n                iVar36 = (*pp_Var16[0x3a])();\n              }" { (expression_statement "iVar36 = (*pp_Var16[0x3a])();" (assignment_expression "iVar36 = (*pp_Var16[0x3a])()" identifier = (call_expression "(*pp_Var16[0x3a])()" (parenthesized_expression "(*pp_Var16[0x3a])" ( (pointer_expression "*pp_Var16[0x3a]" * (subscript_expression "pp_Var16[0x3a]" identifier [ number_literal ])) )) (argument_list "()" ( )))) ;) }) (else_clause "else {\n                iVar36 = (*p_Var37)();\n              }" else (compound_statement "{\n                iVar36 = (*p_Var37)();\n              }" { (expression_statement "iVar36 = (*p_Var37)();" (assignment_expression "iVar36 = (*p_Var37)()" identifier = (call_expression "(*p_Var37)()" (parenthesized_expression "(*p_Var37)" ( (pointer_expression "*p_Var37" * identifier) )) (argument_list "()" ( )))) ;) }))) (expression_statement "uVar6 = *(ushort *)pattr;" (assignment_expression "uVar6 = *(ushort *)pattr" identifier = (pointer_expression "*(ushort *)pattr" * (cast_expression "(ushort *)pattr" ( (type_descriptor "ushort *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier))) ;) (if_statement "if (iVar36 == 0) {\n                uVar6 = CONCAT11(pattr[1],*pattr);\n              }" if (parenthesized_expression "(iVar36 == 0)" ( (binary_expression "iVar36 == 0" identifier == number_literal) )) (compound_statement "{\n                uVar6 = CONCAT11(pattr[1],*pattr);\n              }" { (expression_statement "uVar6 = CONCAT11(pattr[1],*pattr);" (assignment_expression "uVar6 = CONCAT11(pattr[1],*pattr)" identifier = (call_expression "CONCAT11(pattr[1],*pattr)" identifier (argument_list "(pattr[1],*pattr)" ( (subscript_expression "pattr[1]" identifier [ number_literal ]) , (pointer_expression "*pattr" * identifier) )))) ;) })) (expression_statement "attr_value.aux.shndx._0_2_ = 0;" (assignment_expression "attr_value.aux.shndx._0_2_ = 0" (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) = number_literal) ;) (expression_statement "attr_value.aux.shndx._2_2_ = uVar6;" (assignment_expression "attr_value.aux.shndx._2_2_ = uVar6" (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) = 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 *)((int)attr_value.val.stringval + attr_value.aux.shndx);" (assignment_expression "pattr = (uchar *)((int)attr_value.val.stringval + attr_value.aux.shndx)" identifier = (cast_expression "(uchar *)((int)attr_value.val.stringval + attr_value.aux.shndx)" ( (type_descriptor "uchar *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)attr_value.val.stringval + attr_value.aux.shndx)" ( (binary_expression "(int)attr_value.val.stringval + attr_value.aux.shndx" (cast_expression "(int)attr_value.val.stringval" ( (type_descriptor "int" primitive_type) ) (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)) )))) ;) (goto_statement "goto LAB_002e355c;" goto statement_identifier ;) })) (expression_statement "pDVar22 = this->dwinfo_;" (assignment_expression "pDVar22 = this->dwinfo_" identifier = (field_expression "this->dwinfo_" identifier -> field_identifier)) ;) (if_statement "if (pDVar22->address_size_ == 4) {\n              pp_Var16 = (pDVar22->object_->super_Object)._vptr_Object;\n              p_Var37 = pp_Var16[3];\n              if (p_Var37 == (_func_int_varargs *)PTR_is_big_endian_004c2950) {\n                local_30 = puVar28;\n                iVar36 = (*pp_Var16[0x3a])();\n              }\n              else {\n                local_30 = puVar28;\n                iVar36 = (*p_Var37)();\n              }\n              uVar23 = *(uint *)pattr;\n              if (iVar36 == 0) {\n                uVar23 = (((uVar23 >> 0x10) << 0x18 | (uVar23 >> 0x18) << 0x10) >> 0x10) +\n                         ((uVar23 & 0xff) << 8 | uVar23 >> 8 & 0xff) * 0x10000;\n              }\n              pattr = pattr + 4;\n              uVar38 = (ulonglong)uVar23;\n            }\n            else {\n              local_30 = puVar28;\n              uVar38 = (*local_34)(pDVar22,&pattr);\n            }" if (parenthesized_expression "(pDVar22->address_size_ == 4)" ( (binary_expression "pDVar22->address_size_ == 4" (field_expression "pDVar22->address_size_" identifier -> field_identifier) == number_literal) )) (compound_statement "{\n              pp_Var16 = (pDVar22->object_->super_Object)._vptr_Object;\n              p_Var37 = pp_Var16[3];\n              if (p_Var37 == (_func_int_varargs *)PTR_is_big_endian_004c2950) {\n                local_30 = puVar28;\n                iVar36 = (*pp_Var16[0x3a])();\n              }\n              else {\n                local_30 = puVar28;\n                iVar36 = (*p_Var37)();\n              }\n              uVar23 = *(uint *)pattr;\n              if (iVar36 == 0) {\n                uVar23 = (((uVar23 >> 0x10) << 0x18 | (uVar23 >> 0x18) << 0x10) >> 0x10) +\n                         ((uVar23 & 0xff) << 8 | uVar23 >> 8 & 0xff) * 0x10000;\n              }\n              pattr = pattr + 4;\n              uVar38 = (ulonglong)uVar23;\n            }" { (expression_statement "pp_Var16 = (pDVar22->object_->super_Object)._vptr_Object;" (assignment_expression "pp_Var16 = (pDVar22->object_->super_Object)._vptr_Object" identifier = (field_expression "(pDVar22->object_->super_Object)._vptr_Object" (parenthesized_expression "(pDVar22->object_->super_Object)" ( (field_expression "pDVar22->object_->super_Object" (field_expression "pDVar22->object_" identifier -> field_identifier) -> field_identifier) )) . field_identifier)) ;) (expression_statement "p_Var37 = pp_Var16[3];" (assignment_expression "p_Var37 = pp_Var16[3]" identifier = (subscript_expression "pp_Var16[3]" identifier [ number_literal ])) ;) (if_statement "if (p_Var37 == (_func_int_varargs *)PTR_is_big_endian_004c2950) {\n                local_30 = puVar28;\n                iVar36 = (*pp_Var16[0x3a])();\n              }\n              else {\n                local_30 = puVar28;\n                iVar36 = (*p_Var37)();\n              }" if (parenthesized_expression "(p_Var37 == (_func_int_varargs *)PTR_is_big_endian_004c2950)" ( (binary_expression "p_Var37 == (_func_int_varargs *)PTR_is_big_endian_004c2950" identifier == (cast_expression "(_func_int_varargs *)PTR_is_big_endian_004c2950" ( (type_descriptor "_func_int_varargs *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (compound_statement "{\n                local_30 = puVar28;\n                iVar36 = (*pp_Var16[0x3a])();\n              }" { (expression_statement "local_30 = puVar28;" (assignment_expression "local_30 = puVar28" identifier = identifier) ;) (expression_statement "iVar36 = (*pp_Var16[0x3a])();" (assignment_expression "iVar36 = (*pp_Var16[0x3a])()" identifier = (call_expression "(*pp_Var16[0x3a])()" (parenthesized_expression "(*pp_Var16[0x3a])" ( (pointer_expression "*pp_Var16[0x3a]" * (subscript_expression "pp_Var16[0x3a]" identifier [ number_literal ])) )) (argument_list "()" ( )))) ;) }) (else_clause "else {\n                local_30 = puVar28;\n                iVar36 = (*p_Var37)();\n              }" else (compound_statement "{\n                local_30 = puVar28;\n                iVar36 = (*p_Var37)();\n              }" { (expression_statement "local_30 = puVar28;" (assignment_expression "local_30 = puVar28" identifier = identifier) ;) (expression_statement "iVar36 = (*p_Var37)();" (assignment_expression "iVar36 = (*p_Var37)()" identifier = (call_expression "(*p_Var37)()" (parenthesized_expression "(*p_Var37)" ( (pointer_expression "*p_Var37" * identifier) )) (argument_list "()" ( )))) ;) }))) (expression_statement "uVar23 = *(uint *)pattr;" (assignment_expression "uVar23 = *(uint *)pattr" identifier = (pointer_expression "*(uint *)pattr" * (cast_expression "(uint *)pattr" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier))) ;) (if_statement "if (iVar36 == 0) {\n                uVar23 = (((uVar23 >> 0x10) << 0x18 | (uVar23 >> 0x18) << 0x10) >> 0x10) +\n                         ((uVar23 & 0xff) << 8 | uVar23 >> 8 & 0xff) * 0x10000;\n              }" if (parenthesized_expression "(iVar36 == 0)" ( (binary_expression "iVar36 == 0" identifier == number_literal) )) (compound_statement "{\n                uVar23 = (((uVar23 >> 0x10) << 0x18 | (uVar23 >> 0x18) << 0x10) >> 0x10) +\n                         ((uVar23 & 0xff) << 8 | uVar23 >> 8 & 0xff) * 0x10000;\n              }" { (expression_statement "uVar23 = (((uVar23 >> 0x10) << 0x18 | (uVar23 >> 0x18) << 0x10) >> 0x10) +\n                         ((uVar23 & 0xff) << 8 | uVar23 >> 8 & 0xff) * 0x10000;" (assignment_expression "uVar23 = (((uVar23 >> 0x10) << 0x18 | (uVar23 >> 0x18) << 0x10) >> 0x10) +\n                         ((uVar23 & 0xff) << 8 | uVar23 >> 8 & 0xff) * 0x10000" identifier = (binary_expression "(((uVar23 >> 0x10) << 0x18 | (uVar23 >> 0x18) << 0x10) >> 0x10) +\n                         ((uVar23 & 0xff) << 8 | uVar23 >> 8 & 0xff) * 0x10000" (parenthesized_expression "(((uVar23 >> 0x10) << 0x18 | (uVar23 >> 0x18) << 0x10) >> 0x10)" ( (binary_expression "((uVar23 >> 0x10) << 0x18 | (uVar23 >> 0x18) << 0x10) >> 0x10" (parenthesized_expression "((uVar23 >> 0x10) << 0x18 | (uVar23 >> 0x18) << 0x10)" ( (binary_expression "(uVar23 >> 0x10) << 0x18 | (uVar23 >> 0x18) << 0x10" (binary_expression "(uVar23 >> 0x10) << 0x18" (parenthesized_expression "(uVar23 >> 0x10)" ( (binary_expression "uVar23 >> 0x10" identifier >> number_literal) )) << number_literal) | (binary_expression "(uVar23 >> 0x18) << 0x10" (parenthesized_expression "(uVar23 >> 0x18)" ( (binary_expression "uVar23 >> 0x18" identifier >> number_literal) )) << number_literal)) )) >> number_literal) )) + (binary_expression "((uVar23 & 0xff) << 8 | uVar23 >> 8 & 0xff) * 0x10000" (parenthesized_expression "((uVar23 & 0xff) << 8 | uVar23 >> 8 & 0xff)" ( (binary_expression "(uVar23 & 0xff) << 8 | uVar23 >> 8 & 0xff" (binary_expression "(uVar23 & 0xff) << 8" (parenthesized_expression "(uVar23 & 0xff)" ( (binary_expression "uVar23 & 0xff" identifier & number_literal) )) << number_literal) | (binary_expression "uVar23 >> 8 & 0xff" (binary_expression "uVar23 >> 8" identifier >> number_literal) & number_literal)) )) * number_literal))) ;) })) (expression_statement "pattr = pattr + 4;" (assignment_expression "pattr = pattr + 4" identifier = (binary_expression "pattr + 4" identifier + number_literal)) ;) (expression_statement "uVar38 = (ulonglong)uVar23;" (assignment_expression "uVar38 = (ulonglong)uVar23" identifier = (cast_expression "(ulonglong)uVar23" ( (type_descriptor "ulonglong" type_identifier) ) identifier)) ;) }) (else_clause "else {\n              local_30 = puVar28;\n              uVar38 = (*local_34)(pDVar22,&pattr);\n            }" else (compound_statement "{\n              local_30 = puVar28;\n              uVar38 = (*local_34)(pDVar22,&pattr);\n            }" { (expression_statement "local_30 = puVar28;" (assignment_expression "local_30 = puVar28" identifier = identifier) ;) (expression_statement "uVar38 = (*local_34)(pDVar22,&pattr);" (assignment_expression "uVar38 = (*local_34)(pDVar22,&pattr)" identifier = (call_expression "(*local_34)(pDVar22,&pattr)" (parenthesized_expression "(*local_34)" ( (pointer_expression "*local_34" * identifier) )) (argument_list "(pDVar22,&pattr)" ( identifier , (pointer_expression "&pattr" & identifier) )))) ;) }))) (expression_statement "str_off = uVar38;" (assignment_expression "str_off = uVar38" identifier = identifier) ;) (expression_statement "attr_value.aux.shndx = (*local_3c)(this->dwinfo_);" (assignment_expression "attr_value.aux.shndx = (*local_3c)(this->dwinfo_)" (field_expression "attr_value.aux.shndx" (field_expression "attr_value.aux" identifier . field_identifier) . field_identifier) = (call_expression "(*local_3c)(this->dwinfo_)" (parenthesized_expression "(*local_3c)" ( (pointer_expression "*local_3c" * identifier) )) (argument_list "(this->dwinfo_)" ( (field_expression "this->dwinfo_" identifier -> field_identifier) )))) ;) (expression_statement "aVar39.refval = str_off;" (assignment_expression "aVar39.refval = str_off" (field_expression "aVar39.refval" identifier . field_identifier) = identifier) ;) (if_statement "if (uVar32 == 0x31) goto LAB_002e30bc;" if (parenthesized_expression "(uVar32 == 0x31)" ( (binary_expression "uVar32 == 0x31" identifier == number_literal) )) (goto_statement "goto LAB_002e30bc;" goto statement_identifier ;)) (if_statement "if (uVar32 < 0x32) {\n              if (uVar32 != 1) goto joined_r0x002e3124;\n              goto LAB_002e39b4;\n            }" if (parenthesized_expression "(uVar32 < 0x32)" ( (binary_expression "uVar32 < 0x32" identifier < number_literal) )) (compound_statement "{\n              if (uVar32 != 1) goto joined_r0x002e3124;\n              goto LAB_002e39b4;\n            }" { (if_statement "if (uVar32 != 1) goto joined_r0x002e3124;" if (parenthesized_expression "(uVar32 != 1)" ( (binary_expression "uVar32 != 1" identifier != number_literal) )) (goto_statement "goto joined_r0x002e3124;" goto statement_identifier ;)) (goto_statement "goto LAB_002e39b4;" goto statement_identifier ;) })) (expression_statement "aVar7.refval = str_off;" (assignment_expression "aVar7.refval = str_off" (field_expression "aVar7.refval" identifier . field_identifier) = identifier) ;) (if_statement "if (uVar32 == 0x6e) goto LAB_002e313c;" if (parenthesized_expression "(uVar32 == 0x6e)" ( (binary_expression "uVar32 == 0x6e" identifier == number_literal) )) (goto_statement "goto LAB_002e313c;" goto statement_identifier ;)) (if_statement "if (uVar32 != 0x2007) goto LAB_002e339c;" if (parenthesized_expression "(uVar32 != 0x2007)" ( (binary_expression "uVar32 != 0x2007" identifier != number_literal) )) (goto_statement "goto LAB_002e339c;" 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) ;)) (expression_statement "aVar40.refval = str_off;" (assignment_expression "aVar40.refval = str_off" (field_expression "aVar40.refval" identifier . field_identifier) = identifier) ;) }))) (while_statement "while( true ) {\n            iVar36 = iVar34;\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_002e2f98;\nLAB_002e314c:\n            attr_value.val.stringval = (char *)((ulonglong)aVar40 >> 0x20);\n            attr_value.val.intval._4_4_ = (undefined4)aVar40.intval;\n            iVar34 = iVar36 + 8;\n            (__position._M_current)->form = attr_value.form;\n            ((__position._M_current)->val).stringval = attr_value.val.stringval;\n            (__position._M_current)->attr = attr_value.attr;\n            *(undefined4 *)((int)&(__position._M_current)->val + 4) = attr_value.val.intval._4_4_;\n            (__position._M_current)->aux = attr_value.aux;\n            *(undefined4 *)&(__position._M_current)->field_0x14 = attr_value._20_4_;\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            pAVar13 = this->abbrev_code_;\n            attr_value.val = aVar40;\n            if (iVar34 == iVar31) goto LAB_002e2fb8;\n            puVar14 = (uint *)((int)&(pAVar13->attributes).\n                                     super__Vector_base<gold::Dwarf_abbrev_table::Attribute,_std::allocator<gold::Dwarf_abbrev_table::Attribute>_>\n                                     ._M_impl._M_start[1].attr + iVar36);\n            uVar29 = puVar14[1];\n            uVar32 = *puVar14;\n            if (uVar29 != 0x16) goto LAB_002e2dd0;\nLAB_002e31a8:\n            uVar29 = (uint)*pattr;\n            puVar15 = pattr + 1;\n            if ((char)*pattr < '\0') {\n              attr_value.val = aVar40;\n              (*(code *)PTR_read_unsigned_LEB_128_x_004c2980)(puVar15,&len,uVar29);\n              puVar15 = pattr + len;\n              uVar29 = extraout_v1;\n              aVar40 = attr_value.val;\n            }\n            else {\n              len = 1;\n            }\n            puVar18 = puVar15 + -(int)puVar30;\n            puVar28 = puVar18 + (int)this->die_offset_;\n            iVar36 = (uint)(puVar28 < puVar18) + ((int)puVar18 >> 0x1f) + *(int *)&this->die_offset_\n            ;\n            attr_value.form = uVar29;\n            pattr = puVar15;\n            if (uVar29 != 0xe) break;\nLAB_002e31fc:\n            attr_value.aux.shndx = 0;\n            pDVar22 = this->dwinfo_;\n            attr_value.attr = uVar32;\n            local_30 = puVar28;\n            attr_value.val = aVar40;\n            if (pDVar22->offset_size_ == 4) {\n              pp_Var16 = (pDVar22->object_->super_Object)._vptr_Object;\n              p_Var37 = pp_Var16[3];\n              if (p_Var37 == (_func_int_varargs *)PTR_is_big_endian_004c2950) {\n                iVar36 = (*pp_Var16[0x3a])();\n              }\n              else {\n                iVar36 = (*p_Var37)();\n              }\n              uVar29 = *(uint *)pattr;\n              if (iVar36 == 0) {\n                uVar29 = (((uVar29 >> 0x10) << 0x18 | (uVar29 >> 0x18) << 0x10) >> 0x10) +\n                         ((uVar29 & 0xff) << 8 | uVar29 >> 8 & 0xff) * 0x10000;\n              }\n              pattr = pattr + 4;\n              uVar38 = (ulonglong)uVar29;\n            }\n            else {\n              uVar38 = (*local_34)(pDVar22,&pattr);\n            }\n            str_off = uVar38;\n            attr_value.aux.shndx = (*local_3c)(this->dwinfo_);\n            aVar7.refval = str_off;\n            if (uVar32 != 0x31) {\n              if (uVar32 < 0x32) {\n                if ((uVar32 != 1) && (aVar39.refval = str_off, uVar32 == 3)) {\nLAB_002e3284:\n                  this->string_shndx_ = (uint)attr_value.aux;\n                  this->name_off_ = (off_t)aVar39;\n                  aVar7 = aVar39;\n                }\n              }\n              else {\n                aVar40.refval = str_off;\n                if (uVar32 == 0x6e) {\nLAB_002e387c:\n                  this->string_shndx_ = (uint)attr_value.aux;\n                }\n                else {\n                  if (uVar32 != 0x2007) goto LAB_002e313c;\n                  this->string_shndx_ = (uint)attr_value.aux;\n                }\n                this->linkage_name_off_ = (off_t)aVar40;\n                aVar7 = aVar40;\n              }\n            }\nLAB_002e313c:\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            aVar40 = aVar7;\n          }" while (parenthesized_expression "( true )" ( true )) (compound_statement "{\n            iVar36 = iVar34;\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_002e2f98;\nLAB_002e314c:\n            attr_value.val.stringval = (char *)((ulonglong)aVar40 >> 0x20);\n            attr_value.val.intval._4_4_ = (undefined4)aVar40.intval;\n            iVar34 = iVar36 + 8;\n            (__position._M_current)->form = attr_value.form;\n            ((__position._M_current)->val).stringval = attr_value.val.stringval;\n            (__position._M_current)->attr = attr_value.attr;\n            *(undefined4 *)((int)&(__position._M_current)->val + 4) = attr_value.val.intval._4_4_;\n            (__position._M_current)->aux = attr_value.aux;\n            *(undefined4 *)&(__position._M_current)->field_0x14 = attr_value._20_4_;\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            pAVar13 = this->abbrev_code_;\n            attr_value.val = aVar40;\n            if (iVar34 == iVar31) goto LAB_002e2fb8;\n            puVar14 = (uint *)((int)&(pAVar13->attributes).\n                                     super__Vector_base<gold::Dwarf_abbrev_table::Attribute,_std::allocator<gold::Dwarf_abbrev_table::Attribute>_>\n                                     ._M_impl._M_start[1].attr + iVar36);\n            uVar29 = puVar14[1];\n            uVar32 = *puVar14;\n            if (uVar29 != 0x16) goto LAB_002e2dd0;\nLAB_002e31a8:\n            uVar29 = (uint)*pattr;\n            puVar15 = pattr + 1;\n            if ((char)*pattr < '\0') {\n              attr_value.val = aVar40;\n              (*(code *)PTR_read_unsigned_LEB_128_x_004c2980)(puVar15,&len,uVar29);\n              puVar15 = pattr + len;\n              uVar29 = extraout_v1;\n              aVar40 = attr_value.val;\n            }\n            else {\n              len = 1;\n            }\n            puVar18 = puVar15 + -(int)puVar30;\n            puVar28 = puVar18 + (int)this->die_offset_;\n            iVar36 = (uint)(puVar28 < puVar18) + ((int)puVar18 >> 0x1f) + *(int *)&this->die_offset_\n            ;\n            attr_value.form = uVar29;\n            pattr = puVar15;\n            if (uVar29 != 0xe) break;\nLAB_002e31fc:\n            attr_value.aux.shndx = 0;\n            pDVar22 = this->dwinfo_;\n            attr_value.attr = uVar32;\n            local_30 = puVar28;\n            attr_value.val = aVar40;\n            if (pDVar22->offset_size_ == 4) {\n              pp_Var16 = (pDVar22->object_->super_Object)._vptr_Object;\n              p_Var37 = pp_Var16[3];\n              if (p_Var37 == (_func_int_varargs *)PTR_is_big_endian_004c2950) {\n                iVar36 = (*pp_Var16[0x3a])();\n              }\n              else {\n                iVar36 = (*p_Var37)();\n              }\n              uVar29 = *(uint *)pattr;\n              if (iVar36 == 0) {\n                uVar29 = (((uVar29 >> 0x10) << 0x18 | (uVar29 >> 0x18) << 0x10) >> 0x10) +\n                         ((uVar29 & 0xff) << 8 | uVar29 >> 8 & 0xff) * 0x10000;\n              }\n              pattr = pattr + 4;\n              uVar38 = (ulonglong)uVar29;\n            }\n            else {\n              uVar38 = (*local_34)(pDVar22,&pattr);\n            }\n            str_off = uVar38;\n            attr_value.aux.shndx = (*local_3c)(this->dwinfo_);\n            aVar7.refval = str_off;\n            if (uVar32 != 0x31) {\n              if (uVar32 < 0x32) {\n                if ((uVar32 != 1) && (aVar39.refval = str_off, uVar32 == 3)) {\nLAB_002e3284:\n                  this->string_shndx_ = (uint)attr_value.aux;\n                  this->name_off_ = (off_t)aVar39;\n                  aVar7 = aVar39;\n                }\n              }\n              else {\n                aVar40.refval = str_off;\n                if (uVar32 == 0x6e) {\nLAB_002e387c:\n                  this->string_shndx_ = (uint)attr_value.aux;\n                }\n                else {\n                  if (uVar32 != 0x2007) goto LAB_002e313c;\n                  this->string_shndx_ = (uint)attr_value.aux;\n                }\n                this->linkage_name_off_ = (off_t)aVar40;\n                aVar7 = aVar40;\n              }\n            }\nLAB_002e313c:\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            aVar40 = aVar7;\n          }" { (expression_statement "iVar36 = iVar34;" (assignment_expression "iVar36 = iVar34" identifier = 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_002e2f98;" 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_002e2f98;" goto statement_identifier ;)) (labeled_statement "LAB_002e314c:\n            attr_value.val.stringval = (char *)((ulonglong)aVar40 >> 0x20);" statement_identifier : (expression_statement "attr_value.val.stringval = (char *)((ulonglong)aVar40 >> 0x20);" (assignment_expression "attr_value.val.stringval = (char *)((ulonglong)aVar40 >> 0x20)" (field_expression "attr_value.val.stringval" (field_expression "attr_value.val" identifier . field_identifier) . field_identifier) = (cast_expression "(char *)((ulonglong)aVar40 >> 0x20)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((ulonglong)aVar40 >> 0x20)" ( (binary_expression "(ulonglong)aVar40 >> 0x20" (cast_expression "(ulonglong)aVar40" ( (type_descriptor "ulonglong" type_identifier) ) identifier) >> number_literal) )))) ;)) (expression_statement "attr_value.val.intval._4_4_ = (undefined4)aVar40.intval;" (assignment_expression "attr_value.val.intval._4_4_ = (undefined4)aVar40.intval" (field_expression "attr_value.val.intval._4_4_" (field_expression "attr_value.val.intval" (field_expression "attr_value.val" identifier . field_identifier) . field_identifier) . field_identifier) = (cast_expression "(undefined4)aVar40.intval" ( (type_descriptor "undefined4" type_identifier) ) (field_expression "aVar40.intval" identifier . field_identifier))) ;) (expression_statement "iVar34 = iVar36 + 8;" (assignment_expression "iVar34 = iVar36 + 8" identifier = (binary_expression "iVar36 + 8" identifier + number_literal)) ;) (expression_statement "(__position._M_current)->form = attr_value.form;" (assignment_expression "(__position._M_current)->form = attr_value.form" (field_expression "(__position._M_current)->form" (parenthesized_expression "(__position._M_current)" ( (field_expression "__position._M_current" identifier . field_identifier) )) -> field_identifier) = (field_expression "attr_value.form" identifier . field_identifier)) ;) (expression_statement "((__position._M_current)->val).stringval = attr_value.val.stringval;" (assignment_expression "((__position._M_current)->val).stringval = attr_value.val.stringval" (field_expression "((__position._M_current)->val).stringval" (parenthesized_expression "((__position._M_current)->val)" ( (field_expression "(__position._M_current)->val" (parenthesized_expression "(__position._M_current)" ( (field_expression "__position._M_current" identifier . field_identifier) )) -> field_identifier) )) . field_identifier) = (field_expression "attr_value.val.stringval" (field_expression "attr_value.val" identifier . field_identifier) . field_identifier)) ;) (expression_statement "(__position._M_current)->attr = attr_value.attr;" (assignment_expression "(__position._M_current)->attr = attr_value.attr" (field_expression "(__position._M_current)->attr" (parenthesized_expression "(__position._M_current)" ( (field_expression "__position._M_current" identifier . field_identifier) )) -> field_identifier) = (field_expression "attr_value.attr" identifier . field_identifier)) ;) (expression_statement "*(undefined4 *)((int)&(__position._M_current)->val + 4) = attr_value.val.intval._4_4_;" (assignment_expression "*(undefined4 *)((int)&(__position._M_current)->val + 4) = attr_value.val.intval._4_4_" (pointer_expression "*(undefined4 *)((int)&(__position._M_current)->val + 4)" * (cast_expression "(undefined4 *)((int)&(__position._M_current)->val + 4)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)&(__position._M_current)->val + 4)" ( (binary_expression "(int)&(__position._M_current)->val + 4" (cast_expression "(int)&(__position._M_current)->val" ( (type_descriptor "int" primitive_type) ) (pointer_expression "&(__position._M_current)->val" & (field_expression "(__position._M_current)->val" (parenthesized_expression "(__position._M_current)" ( (field_expression "__position._M_current" identifier . field_identifier) )) -> field_identifier))) + number_literal) )))) = (field_expression "attr_value.val.intval._4_4_" (field_expression "attr_value.val.intval" (field_expression "attr_value.val" identifier . field_identifier) . field_identifier) . field_identifier)) ;) (expression_statement "(__position._M_current)->aux = attr_value.aux;" (assignment_expression "(__position._M_current)->aux = attr_value.aux" (field_expression "(__position._M_current)->aux" (parenthesized_expression "(__position._M_current)" ( (field_expression "__position._M_current" identifier . field_identifier) )) -> field_identifier) = (field_expression "attr_value.aux" identifier . field_identifier)) ;) (expression_statement "*(undefined4 *)&(__position._M_current)->field_0x14 = attr_value._20_4_;" (assignment_expression "*(undefined4 *)&(__position._M_current)->field_0x14 = attr_value._20_4_" (pointer_expression "*(undefined4 *)&(__position._M_current)->field_0x14" * (cast_expression "(undefined4 *)&(__position._M_current)->field_0x14" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (pointer_expression "&(__position._M_current)->field_0x14" & (field_expression "(__position._M_current)->field_0x14" (parenthesized_expression "(__position._M_current)" ( (field_expression "__position._M_current" identifier . field_identifier) )) -> field_identifier)))) = (field_expression "attr_value._20_4_" 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 "pAVar13 = this->abbrev_code_;" (assignment_expression "pAVar13 = this->abbrev_code_" identifier = (field_expression "this->abbrev_code_" identifier -> field_identifier)) ;) (expression_statement "attr_value.val = aVar40;" (assignment_expression "attr_value.val = aVar40" (field_expression "attr_value.val" identifier . field_identifier) = identifier) ;) (if_statement "if (iVar34 == iVar31) goto LAB_002e2fb8;" if (parenthesized_expression "(iVar34 == iVar31)" ( (binary_expression "iVar34 == iVar31" identifier == identifier) )) (goto_statement "goto LAB_002e2fb8;" goto statement_identifier ;)) (expression_statement "puVar14 = (uint *)((int)&(pAVar13->attributes).\n                                     super__Vector_base<gold::Dwarf_abbrev_table::Attribute,_std::allocator<gold::Dwarf_abbrev_table::Attribute>_>\n                                     ._M_impl._M_start[1].attr + iVar36);" (assignment_expression "puVar14 = (uint *)((int)&(pAVar13->attributes).\n                                     super__Vector_base<gold::Dwarf_abbrev_table::Attribute,_std::allocator<gold::Dwarf_abbrev_table::Attribute>_>\n                                     ._M_impl._M_start[1].attr + iVar36)" identifier = (cast_expression "(uint *)((int)&(pAVar13->attributes).\n                                     super__Vector_base<gold::Dwarf_abbrev_table::Attribute,_std::allocator<gold::Dwarf_abbrev_table::Attribute>_>\n                                     ._M_impl._M_start[1].attr + iVar36)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)&(pAVar13->attributes).\n                                     super__Vector_base<gold::Dwarf_abbrev_table::Attribute,_std::allocator<gold::Dwarf_abbrev_table::Attribute>_>\n                                     ._M_impl._M_start[1].attr + iVar36)" ( (ERROR "(int)&(pAVar13->attributes).\n                                     super__Vector_base<gold::Dwarf_abbrev_table::Attribute,_std::allocator<gold::Dwarf_abbrev_table::" (comma_expression "(int)&(pAVar13->attributes).\n                                     super__Vector_base<gold::Dwarf_abbrev_table::Attribute,_std" (binary_expression "(int)&(pAVar13->attributes).\n                                     super__Vector_base<gold" (cast_expression "(int)&(pAVar13->attributes).\n                                     super__Vector_base" ( (type_descriptor "int" primitive_type) ) (pointer_expression "&(pAVar13->attributes).\n                                     super__Vector_base" & (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 : :) (binary_expression "Attribute>_>\n                                     ._M_impl._M_start[1].attr + iVar36" (field_expression "Attribute>_>\n                                     ._M_impl._M_start[1].attr" (subscript_expression "Attribute>_>\n                                     ._M_impl._M_start[1]" (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 ]) . field_identifier) + identifier) )))) ;) (expression_statement "uVar29 = puVar14[1];" (assignment_expression "uVar29 = puVar14[1]" identifier = (subscript_expression "puVar14[1]" identifier [ number_literal ])) ;) (expression_statement "uVar32 = *puVar14;" (assignment_expression "uVar32 = *puVar14" identifier = (pointer_expression "*puVar14" * identifier)) ;) (if_statement "if (uVar29 != 0x16) goto LAB_002e2dd0;" if (parenthesized_expression "(uVar29 != 0x16)" ( (binary_expression "uVar29 != 0x16" identifier != number_literal) )) (goto_statement "goto LAB_002e2dd0;" goto statement_identifier ;)) (labeled_statement "LAB_002e31a8:\n            uVar29 = (uint)*pattr;" statement_identifier : (expression_statement "uVar29 = (uint)*pattr;" (assignment_expression "uVar29 = (uint)*pattr" identifier = (binary_expression "(uint)*pattr" (parenthesized_expression "(uint)" ( identifier )) * identifier)) ;)) (expression_statement "puVar15 = pattr + 1;" (assignment_expression "puVar15 = pattr + 1" identifier = (binary_expression "pattr + 1" identifier + number_literal)) ;) (if_statement "if ((char)*pattr < '\0') {\n              attr_value.val = aVar40;\n              (*(code *)PTR_read_unsigned_LEB_128_x_004c2980)(puVar15,&len,uVar29);\n              puVar15 = pattr + len;\n              uVar29 = extraout_v1;\n              aVar40 = attr_value.val;\n            }\n            else {\n              len = 1;\n            }" if (parenthesized_expression "((char)*pattr < '\0')" ( (binary_expression "(char)*pattr < '\0'" (cast_expression "(char)*pattr" ( (type_descriptor "char" primitive_type) ) (pointer_expression "*pattr" * identifier)) < (char_literal "'\0'" ' escape_sequence ')) )) (compound_statement "{\n              attr_value.val = aVar40;\n              (*(code *)PTR_read_unsigned_LEB_128_x_004c2980)(puVar15,&len,uVar29);\n              puVar15 = pattr + len;\n              uVar29 = extraout_v1;\n              aVar40 = attr_value.val;\n            }" { (expression_statement "attr_value.val = aVar40;" (assignment_expression "attr_value.val = aVar40" (field_expression "attr_value.val" identifier . field_identifier) = identifier) ;) (expression_statement "(*(code *)PTR_read_unsigned_LEB_128_x_004c2980)(puVar15,&len,uVar29);" (call_expression "(*(code *)PTR_read_unsigned_LEB_128_x_004c2980)(puVar15,&len,uVar29)" (parenthesized_expression "(*(code *)PTR_read_unsigned_LEB_128_x_004c2980)" ( (pointer_expression "*(code *)PTR_read_unsigned_LEB_128_x_004c2980" * (cast_expression "(code *)PTR_read_unsigned_LEB_128_x_004c2980" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(puVar15,&len,uVar29)" ( identifier , (pointer_expression "&len" & identifier) , identifier ))) ;) (expression_statement "puVar15 = pattr + len;" (assignment_expression "puVar15 = pattr + len" identifier = (binary_expression "pattr + len" identifier + identifier)) ;) (expression_statement "uVar29 = extraout_v1;" (assignment_expression "uVar29 = extraout_v1" identifier = identifier) ;) (expression_statement "aVar40 = attr_value.val;" (assignment_expression "aVar40 = attr_value.val" identifier = (field_expression "attr_value.val" identifier . field_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 "puVar18 = puVar15 + -(int)puVar30;" (assignment_expression "puVar18 = puVar15 + -(int)puVar30" identifier = (binary_expression "puVar15 + -(int)puVar30" identifier + (unary_expression "-(int)puVar30" - (cast_expression "(int)puVar30" ( (type_descriptor "int" primitive_type) ) identifier)))) ;) (expression_statement "puVar28 = puVar18 + (int)this->die_offset_;" (assignment_expression "puVar28 = puVar18 + (int)this->die_offset_" identifier = (binary_expression "puVar18 + (int)this->die_offset_" identifier + (cast_expression "(int)this->die_offset_" ( (type_descriptor "int" primitive_type) ) (field_expression "this->die_offset_" identifier -> field_identifier)))) ;) (expression_statement "iVar36 = (uint)(puVar28 < puVar18) + ((int)puVar18 >> 0x1f) + *(int *)&this->die_offset_\n            ;" (assignment_expression "iVar36 = (uint)(puVar28 < puVar18) + ((int)puVar18 >> 0x1f) + *(int *)&this->die_offset_" identifier = (binary_expression "(uint)(puVar28 < puVar18) + ((int)puVar18 >> 0x1f) + *(int *)&this->die_offset_" (binary_expression "(uint)(puVar28 < puVar18) + ((int)puVar18 >> 0x1f)" (call_expression "(uint)(puVar28 < puVar18)" (parenthesized_expression "(uint)" ( identifier )) (argument_list "(puVar28 < puVar18)" ( (binary_expression "puVar28 < puVar18" identifier < identifier) ))) + (parenthesized_expression "((int)puVar18 >> 0x1f)" ( (binary_expression "(int)puVar18 >> 0x1f" (cast_expression "(int)puVar18" ( (type_descriptor "int" primitive_type) ) identifier) >> number_literal) ))) + (pointer_expression "*(int *)&this->die_offset_" * (cast_expression "(int *)&this->die_offset_" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (pointer_expression "&this->die_offset_" & (field_expression "this->die_offset_" identifier -> field_identifier)))))) ;) (expression_statement "attr_value.form = uVar29;" (assignment_expression "attr_value.form = uVar29" (field_expression "attr_value.form" identifier . field_identifier) = identifier) ;) (expression_statement "pattr = puVar15;" (assignment_expression "pattr = puVar15" identifier = identifier) ;) (if_statement "if (uVar29 != 0xe) break;" if (parenthesized_expression "(uVar29 != 0xe)" ( (binary_expression "uVar29 != 0xe" identifier != number_literal) )) (break_statement "break;" break ;)) (labeled_statement "LAB_002e31fc:\n            attr_value.aux.shndx = 0;" statement_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 "pDVar22 = this->dwinfo_;" (assignment_expression "pDVar22 = this->dwinfo_" identifier = (field_expression "this->dwinfo_" identifier -> field_identifier)) ;) (expression_statement "attr_value.attr = uVar32;" (assignment_expression "attr_value.attr = uVar32" (field_expression "attr_value.attr" identifier . field_identifier) = identifier) ;) (expression_statement "local_30 = puVar28;" (assignment_expression "local_30 = puVar28" identifier = identifier) ;) (expression_statement "attr_value.val = aVar40;" (assignment_expression "attr_value.val = aVar40" (field_expression "attr_value.val" identifier . field_identifier) = identifier) ;) (if_statement "if (pDVar22->offset_size_ == 4) {\n              pp_Var16 = (pDVar22->object_->super_Object)._vptr_Object;\n              p_Var37 = pp_Var16[3];\n              if (p_Var37 == (_func_int_varargs *)PTR_is_big_endian_004c2950) {\n                iVar36 = (*pp_Var16[0x3a])();\n              }\n              else {\n                iVar36 = (*p_Var37)();\n              }\n              uVar29 = *(uint *)pattr;\n              if (iVar36 == 0) {\n                uVar29 = (((uVar29 >> 0x10) << 0x18 | (uVar29 >> 0x18) << 0x10) >> 0x10) +\n                         ((uVar29 & 0xff) << 8 | uVar29 >> 8 & 0xff) * 0x10000;\n              }\n              pattr = pattr + 4;\n              uVar38 = (ulonglong)uVar29;\n            }\n            else {\n              uVar38 = (*local_34)(pDVar22,&pattr);\n            }" if (parenthesized_expression "(pDVar22->offset_size_ == 4)" ( (binary_expression "pDVar22->offset_size_ == 4" (field_expression "pDVar22->offset_size_" identifier -> field_identifier) == number_literal) )) (compound_statement "{\n              pp_Var16 = (pDVar22->object_->super_Object)._vptr_Object;\n              p_Var37 = pp_Var16[3];\n              if (p_Var37 == (_func_int_varargs *)PTR_is_big_endian_004c2950) {\n                iVar36 = (*pp_Var16[0x3a])();\n              }\n              else {\n                iVar36 = (*p_Var37)();\n              }\n              uVar29 = *(uint *)pattr;\n              if (iVar36 == 0) {\n                uVar29 = (((uVar29 >> 0x10) << 0x18 | (uVar29 >> 0x18) << 0x10) >> 0x10) +\n                         ((uVar29 & 0xff) << 8 | uVar29 >> 8 & 0xff) * 0x10000;\n              }\n              pattr = pattr + 4;\n              uVar38 = (ulonglong)uVar29;\n            }" { (expression_statement "pp_Var16 = (pDVar22->object_->super_Object)._vptr_Object;" (assignment_expression "pp_Var16 = (pDVar22->object_->super_Object)._vptr_Object" identifier = (field_expression "(pDVar22->object_->super_Object)._vptr_Object" (parenthesized_expression "(pDVar22->object_->super_Object)" ( (field_expression "pDVar22->object_->super_Object" (field_expression "pDVar22->object_" identifier -> field_identifier) -> field_identifier) )) . field_identifier)) ;) (expression_statement "p_Var37 = pp_Var16[3];" (assignment_expression "p_Var37 = pp_Var16[3]" identifier = (subscript_expression "pp_Var16[3]" identifier [ number_literal ])) ;) (if_statement "if (p_Var37 == (_func_int_varargs *)PTR_is_big_endian_004c2950) {\n                iVar36 = (*pp_Var16[0x3a])();\n              }\n              else {\n                iVar36 = (*p_Var37)();\n              }" if (parenthesized_expression "(p_Var37 == (_func_int_varargs *)PTR_is_big_endian_004c2950)" ( (binary_expression "p_Var37 == (_func_int_varargs *)PTR_is_big_endian_004c2950" identifier == (cast_expression "(_func_int_varargs *)PTR_is_big_endian_004c2950" ( (type_descriptor "_func_int_varargs *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (compound_statement "{\n                iVar36 = (*pp_Var16[0x3a])();\n              }" { (expression_statement "iVar36 = (*pp_Var16[0x3a])();" (assignment_expression "iVar36 = (*pp_Var16[0x3a])()" identifier = (call_expression "(*pp_Var16[0x3a])()" (parenthesized_expression "(*pp_Var16[0x3a])" ( (pointer_expression "*pp_Var16[0x3a]" * (subscript_expression "pp_Var16[0x3a]" identifier [ number_literal ])) )) (argument_list "()" ( )))) ;) }) (else_clause "else {\n                iVar36 = (*p_Var37)();\n              }" else (compound_statement "{\n                iVar36 = (*p_Var37)();\n              }" { (expression_statement "iVar36 = (*p_Var37)();" (assignment_expression "iVar36 = (*p_Var37)()" identifier = (call_expression "(*p_Var37)()" (parenthesized_expression "(*p_Var37)" ( (pointer_expression "*p_Var37" * identifier) )) (argument_list "()" ( )))) ;) }))) (expression_statement "uVar29 = *(uint *)pattr;" (assignment_expression "uVar29 = *(uint *)pattr" identifier = (pointer_expression "*(uint *)pattr" * (cast_expression "(uint *)pattr" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier))) ;) (if_statement "if (iVar36 == 0) {\n                uVar29 = (((uVar29 >> 0x10) << 0x18 | (uVar29 >> 0x18) << 0x10) >> 0x10) +\n                         ((uVar29 & 0xff) << 8 | uVar29 >> 8 & 0xff) * 0x10000;\n              }" if (parenthesized_expression "(iVar36 == 0)" ( (binary_expression "iVar36 == 0" identifier == number_literal) )) (compound_statement "{\n                uVar29 = (((uVar29 >> 0x10) << 0x18 | (uVar29 >> 0x18) << 0x10) >> 0x10) +\n                         ((uVar29 & 0xff) << 8 | uVar29 >> 8 & 0xff) * 0x10000;\n              }" { (expression_statement "uVar29 = (((uVar29 >> 0x10) << 0x18 | (uVar29 >> 0x18) << 0x10) >> 0x10) +\n                         ((uVar29 & 0xff) << 8 | uVar29 >> 8 & 0xff) * 0x10000;" (assignment_expression "uVar29 = (((uVar29 >> 0x10) << 0x18 | (uVar29 >> 0x18) << 0x10) >> 0x10) +\n                         ((uVar29 & 0xff) << 8 | uVar29 >> 8 & 0xff) * 0x10000" identifier = (binary_expression "(((uVar29 >> 0x10) << 0x18 | (uVar29 >> 0x18) << 0x10) >> 0x10) +\n                         ((uVar29 & 0xff) << 8 | uVar29 >> 8 & 0xff) * 0x10000" (parenthesized_expression "(((uVar29 >> 0x10) << 0x18 | (uVar29 >> 0x18) << 0x10) >> 0x10)" ( (binary_expression "((uVar29 >> 0x10) << 0x18 | (uVar29 >> 0x18) << 0x10) >> 0x10" (parenthesized_expression "((uVar29 >> 0x10) << 0x18 | (uVar29 >> 0x18) << 0x10)" ( (binary_expression "(uVar29 >> 0x10) << 0x18 | (uVar29 >> 0x18) << 0x10" (binary_expression "(uVar29 >> 0x10) << 0x18" (parenthesized_expression "(uVar29 >> 0x10)" ( (binary_expression "uVar29 >> 0x10" identifier >> number_literal) )) << number_literal) | (binary_expression "(uVar29 >> 0x18) << 0x10" (parenthesized_expression "(uVar29 >> 0x18)" ( (binary_expression "uVar29 >> 0x18" identifier >> number_literal) )) << number_literal)) )) >> number_literal) )) + (binary_expression "((uVar29 & 0xff) << 8 | uVar29 >> 8 & 0xff) * 0x10000" (parenthesized_expression "((uVar29 & 0xff) << 8 | uVar29 >> 8 & 0xff)" ( (binary_expression "(uVar29 & 0xff) << 8 | uVar29 >> 8 & 0xff" (binary_expression "(uVar29 & 0xff) << 8" (parenthesized_expression "(uVar29 & 0xff)" ( (binary_expression "uVar29 & 0xff" identifier & number_literal) )) << number_literal) | (binary_expression "uVar29 >> 8 & 0xff" (binary_expression "uVar29 >> 8" identifier >> number_literal) & number_literal)) )) * number_literal))) ;) })) (expression_statement "pattr = pattr + 4;" (assignment_expression "pattr = pattr + 4" identifier = (binary_expression "pattr + 4" identifier + number_literal)) ;) (expression_statement "uVar38 = (ulonglong)uVar29;" (assignment_expression "uVar38 = (ulonglong)uVar29" identifier = (cast_expression "(ulonglong)uVar29" ( (type_descriptor "ulonglong" type_identifier) ) identifier)) ;) }) (else_clause "else {\n              uVar38 = (*local_34)(pDVar22,&pattr);\n            }" else (compound_statement "{\n              uVar38 = (*local_34)(pDVar22,&pattr);\n            }" { (expression_statement "uVar38 = (*local_34)(pDVar22,&pattr);" (assignment_expression "uVar38 = (*local_34)(pDVar22,&pattr)" identifier = (call_expression "(*local_34)(pDVar22,&pattr)" (parenthesized_expression "(*local_34)" ( (pointer_expression "*local_34" * identifier) )) (argument_list "(pDVar22,&pattr)" ( identifier , (pointer_expression "&pattr" & identifier) )))) ;) }))) (expression_statement "str_off = uVar38;" (assignment_expression "str_off = uVar38" identifier = identifier) ;) (expression_statement "attr_value.aux.shndx = (*local_3c)(this->dwinfo_);" (assignment_expression "attr_value.aux.shndx = (*local_3c)(this->dwinfo_)" (field_expression "attr_value.aux.shndx" (field_expression "attr_value.aux" identifier . field_identifier) . field_identifier) = (call_expression "(*local_3c)(this->dwinfo_)" (parenthesized_expression "(*local_3c)" ( (pointer_expression "*local_3c" * identifier) )) (argument_list "(this->dwinfo_)" ( (field_expression "this->dwinfo_" identifier -> field_identifier) )))) ;) (expression_statement "aVar7.refval = str_off;" (assignment_expression "aVar7.refval = str_off" (field_expression "aVar7.refval" identifier . field_identifier) = identifier) ;) (if_statement "if (uVar32 != 0x31) {\n              if (uVar32 < 0x32) {\n                if ((uVar32 != 1) && (aVar39.refval = str_off, uVar32 == 3)) {\nLAB_002e3284:\n                  this->string_shndx_ = (uint)attr_value.aux;\n                  this->name_off_ = (off_t)aVar39;\n                  aVar7 = aVar39;\n                }\n              }\n              else {\n                aVar40.refval = str_off;\n                if (uVar32 == 0x6e) {\nLAB_002e387c:\n                  this->string_shndx_ = (uint)attr_value.aux;\n                }\n                else {\n                  if (uVar32 != 0x2007) goto LAB_002e313c;\n                  this->string_shndx_ = (uint)attr_value.aux;\n                }\n                this->linkage_name_off_ = (off_t)aVar40;\n                aVar7 = aVar40;\n              }\n            }" if (parenthesized_expression "(uVar32 != 0x31)" ( (binary_expression "uVar32 != 0x31" identifier != number_literal) )) (compound_statement "{\n              if (uVar32 < 0x32) {\n                if ((uVar32 != 1) && (aVar39.refval = str_off, uVar32 == 3)) {\nLAB_002e3284:\n                  this->string_shndx_ = (uint)attr_value.aux;\n                  this->name_off_ = (off_t)aVar39;\n                  aVar7 = aVar39;\n                }\n              }\n              else {\n                aVar40.refval = str_off;\n                if (uVar32 == 0x6e) {\nLAB_002e387c:\n                  this->string_shndx_ = (uint)attr_value.aux;\n                }\n                else {\n                  if (uVar32 != 0x2007) goto LAB_002e313c;\n                  this->string_shndx_ = (uint)attr_value.aux;\n                }\n                this->linkage_name_off_ = (off_t)aVar40;\n                aVar7 = aVar40;\n              }\n            }" { (if_statement "if (uVar32 < 0x32) {\n                if ((uVar32 != 1) && (aVar39.refval = str_off, uVar32 == 3)) {\nLAB_002e3284:\n                  this->string_shndx_ = (uint)attr_value.aux;\n                  this->name_off_ = (off_t)aVar39;\n                  aVar7 = aVar39;\n                }\n              }\n              else {\n                aVar40.refval = str_off;\n                if (uVar32 == 0x6e) {\nLAB_002e387c:\n                  this->string_shndx_ = (uint)attr_value.aux;\n                }\n                else {\n                  if (uVar32 != 0x2007) goto LAB_002e313c;\n                  this->string_shndx_ = (uint)attr_value.aux;\n                }\n                this->linkage_name_off_ = (off_t)aVar40;\n                aVar7 = aVar40;\n              }" if (parenthesized_expression "(uVar32 < 0x32)" ( (binary_expression "uVar32 < 0x32" identifier < number_literal) )) (compound_statement "{\n                if ((uVar32 != 1) && (aVar39.refval = str_off, uVar32 == 3)) {\nLAB_002e3284:\n                  this->string_shndx_ = (uint)attr_value.aux;\n                  this->name_off_ = (off_t)aVar39;\n                  aVar7 = aVar39;\n                }\n              }" { (if_statement "if ((uVar32 != 1) && (aVar39.refval = str_off, uVar32 == 3)) {\nLAB_002e3284:\n                  this->string_shndx_ = (uint)attr_value.aux;\n                  this->name_off_ = (off_t)aVar39;\n                  aVar7 = aVar39;\n                }" if (parenthesized_expression "((uVar32 != 1) && (aVar39.refval = str_off, uVar32 == 3))" ( (binary_expression "(uVar32 != 1) && (aVar39.refval = str_off, uVar32 == 3)" (parenthesized_expression "(uVar32 != 1)" ( (binary_expression "uVar32 != 1" identifier != number_literal) )) && (parenthesized_expression "(aVar39.refval = str_off, uVar32 == 3)" ( (comma_expression "aVar39.refval = str_off, uVar32 == 3" (assignment_expression "aVar39.refval = str_off" (field_expression "aVar39.refval" identifier . field_identifier) = identifier) , (binary_expression "uVar32 == 3" identifier == number_literal)) ))) )) (compound_statement "{\nLAB_002e3284:\n                  this->string_shndx_ = (uint)attr_value.aux;\n                  this->name_off_ = (off_t)aVar39;\n                  aVar7 = aVar39;\n                }" { (labeled_statement "LAB_002e3284:\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)aVar39;" (assignment_expression "this->name_off_ = (off_t)aVar39" (field_expression "this->name_off_" identifier -> field_identifier) = (cast_expression "(off_t)aVar39" ( (type_descriptor "off_t" type_identifier) ) identifier)) ;) (expression_statement "aVar7 = aVar39;" (assignment_expression "aVar7 = aVar39" identifier = identifier) ;) })) }) (else_clause "else {\n                aVar40.refval = str_off;\n                if (uVar32 == 0x6e) {\nLAB_002e387c:\n                  this->string_shndx_ = (uint)attr_value.aux;\n                }\n                else {\n                  if (uVar32 != 0x2007) goto LAB_002e313c;\n                  this->string_shndx_ = (uint)attr_value.aux;\n                }\n                this->linkage_name_off_ = (off_t)aVar40;\n                aVar7 = aVar40;\n              }" else (compound_statement "{\n                aVar40.refval = str_off;\n                if (uVar32 == 0x6e) {\nLAB_002e387c:\n                  this->string_shndx_ = (uint)attr_value.aux;\n                }\n                else {\n                  if (uVar32 != 0x2007) goto LAB_002e313c;\n                  this->string_shndx_ = (uint)attr_value.aux;\n                }\n                this->linkage_name_off_ = (off_t)aVar40;\n                aVar7 = aVar40;\n              }" { (expression_statement "aVar40.refval = str_off;" (assignment_expression "aVar40.refval = str_off" (field_expression "aVar40.refval" identifier . field_identifier) = identifier) ;) (if_statement "if (uVar32 == 0x6e) {\nLAB_002e387c:\n                  this->string_shndx_ = (uint)attr_value.aux;\n                }\n                else {\n                  if (uVar32 != 0x2007) goto LAB_002e313c;\n                  this->string_shndx_ = (uint)attr_value.aux;\n                }" if (parenthesized_expression "(uVar32 == 0x6e)" ( (binary_expression "uVar32 == 0x6e" identifier == number_literal) )) (compound_statement "{\nLAB_002e387c:\n                  this->string_shndx_ = (uint)attr_value.aux;\n                }" { (labeled_statement "LAB_002e387c:\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))) ;)) }) (else_clause "else {\n                  if (uVar32 != 0x2007) goto LAB_002e313c;\n                  this->string_shndx_ = (uint)attr_value.aux;\n                }" else (compound_statement "{\n                  if (uVar32 != 0x2007) goto LAB_002e313c;\n                  this->string_shndx_ = (uint)attr_value.aux;\n                }" { (if_statement "if (uVar32 != 0x2007) goto LAB_002e313c;" if (parenthesized_expression "(uVar32 != 0x2007)" ( (binary_expression "uVar32 != 0x2007" identifier != number_literal) )) (goto_statement "goto LAB_002e313c;" goto 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)aVar40;" (assignment_expression "this->linkage_name_off_ = (off_t)aVar40" (field_expression "this->linkage_name_off_" identifier -> field_identifier) = (cast_expression "(off_t)aVar40" ( (type_descriptor "off_t" type_identifier) ) identifier)) ;) (expression_statement "aVar7 = aVar40;" (assignment_expression "aVar7 = aVar40" identifier = identifier) ;) }))) })) (labeled_statement "LAB_002e313c:\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) ;))) (expression_statement "aVar40 = aVar7;" (assignment_expression "aVar40 = aVar7" identifier = identifier) ;) })) }) while (parenthesized_expression "( true )" ( true )) ;) })))) (expression_statement "uVar32 = (int)pattr - (int)puVar30;" (assignment_expression "uVar32 = (int)pattr - (int)puVar30" identifier = (binary_expression "(int)pattr - (int)puVar30" (cast_expression "(int)pattr" ( (type_descriptor "int" primitive_type) ) identifier) - (cast_expression "(int)puVar30" ( (type_descriptor "int" primitive_type) ) identifier))) ;) (expression_statement "uVar29 = uVar32 + iVar34;" (assignment_expression "uVar29 = uVar32 + iVar34" identifier = (binary_expression "uVar32 + iVar34" identifier + identifier)) ;) (expression_statement "iVar31 = (uint)(uVar29 < uVar32) + ((int)uVar32 >> 0x1f) + *(int *)&this->die_offset_;" (assignment_expression "iVar31 = (uint)(uVar29 < uVar32) + ((int)uVar32 >> 0x1f) + *(int *)&this->die_offset_" identifier = (binary_expression "(uint)(uVar29 < uVar32) + ((int)uVar32 >> 0x1f) + *(int *)&this->die_offset_" (binary_expression "(uint)(uVar29 < uVar32) + ((int)uVar32 >> 0x1f)" (call_expression "(uint)(uVar29 < uVar32)" (parenthesized_expression "(uint)" ( identifier )) (argument_list "(uVar29 < uVar32)" ( (binary_expression "uVar29 < uVar32" identifier < identifier) ))) + (parenthesized_expression "((int)uVar32 >> 0x1f)" ( (binary_expression "(int)uVar32 >> 0x1f" (cast_expression "(int)uVar32" ( (type_descriptor "int" primitive_type) ) identifier) >> number_literal) ))) + (pointer_expression "*(int *)&this->die_offset_" * (cast_expression "(int *)&this->die_offset_" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (pointer_expression "&this->die_offset_" & (field_expression "this->die_offset_" identifier -> field_identifier)))))) ;) (if_statement "if (*(int *)&pAVar13->field_0x4 < 0) {\n        *(int *)&this->child_offset_ = iVar31;\n        *(uint *)((int)&this->child_offset_ + 4) = uVar29;\n      }\n      else {\n        *(int *)&this->sibling_offset_ = iVar31;\n        *(uint *)((int)&this->sibling_offset_ + 4) = uVar29;\n      }" if (parenthesized_expression "(*(int *)&pAVar13->field_0x4 < 0)" ( (binary_expression "*(int *)&pAVar13->field_0x4 < 0" (pointer_expression "*(int *)&pAVar13->field_0x4" * (cast_expression "(int *)&pAVar13->field_0x4" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (pointer_expression "&pAVar13->field_0x4" & (field_expression "pAVar13->field_0x4" identifier -> field_identifier)))) < number_literal) )) (compound_statement "{\n        *(int *)&this->child_offset_ = iVar31;\n        *(uint *)((int)&this->child_offset_ + 4) = uVar29;\n      }" { (expression_statement "*(int *)&this->child_offset_ = iVar31;" (assignment_expression "*(int *)&this->child_offset_ = iVar31" (pointer_expression "*(int *)&this->child_offset_" * (cast_expression "(int *)&this->child_offset_" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (pointer_expression "&this->child_offset_" & (field_expression "this->child_offset_" identifier -> field_identifier)))) = identifier) ;) (expression_statement "*(uint *)((int)&this->child_offset_ + 4) = uVar29;" (assignment_expression "*(uint *)((int)&this->child_offset_ + 4) = uVar29" (pointer_expression "*(uint *)((int)&this->child_offset_ + 4)" * (cast_expression "(uint *)((int)&this->child_offset_ + 4)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)&this->child_offset_ + 4)" ( (binary_expression "(int)&this->child_offset_ + 4" (cast_expression "(int)&this->child_offset_" ( (type_descriptor "int" primitive_type) ) (pointer_expression "&this->child_offset_" & (field_expression "this->child_offset_" identifier -> field_identifier))) + number_literal) )))) = identifier) ;) }) (else_clause "else {\n        *(int *)&this->sibling_offset_ = iVar31;\n        *(uint *)((int)&this->sibling_offset_ + 4) = uVar29;\n      }" else (compound_statement "{\n        *(int *)&this->sibling_offset_ = iVar31;\n        *(uint *)((int)&this->sibling_offset_ + 4) = uVar29;\n      }" { (expression_statement "*(int *)&this->sibling_offset_ = iVar31;" (assignment_expression "*(int *)&this->sibling_offset_ = iVar31" (pointer_expression "*(int *)&this->sibling_offset_" * (cast_expression "(int *)&this->sibling_offset_" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (pointer_expression "&this->sibling_offset_" & (field_expression "this->sibling_offset_" identifier -> field_identifier)))) = identifier) ;) (expression_statement "*(uint *)((int)&this->sibling_offset_ + 4) = uVar29;" (assignment_expression "*(uint *)((int)&this->sibling_offset_ + 4) = uVar29" (pointer_expression "*(uint *)((int)&this->sibling_offset_ + 4)" * (cast_expression "(uint *)((int)&this->sibling_offset_ + 4)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)&this->sibling_offset_ + 4)" ( (binary_expression "(int)&this->sibling_offset_ + 4" (cast_expression "(int)&this->sibling_offset_" ( (type_descriptor "int" primitive_type) ) (pointer_expression "&this->sibling_offset_" & (field_expression "this->sibling_offset_" identifier -> field_identifier))) + number_literal) )))) = 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 ;) })) }))) (expression_statement "uVar20 = (*(code *)PTR___throw_length_error_004c1e74)(puVar24 + -0xda4);" (assignment_expression "uVar20 = (*(code *)PTR___throw_length_error_004c1e74)(puVar24 + -0xda4)" identifier = (call_expression "(*(code *)PTR___throw_length_error_004c1e74)(puVar24 + -0xda4)" (parenthesized_expression "(*(code *)PTR___throw_length_error_004c1e74)" ( (pointer_expression "*(code *)PTR___throw_length_error_004c1e74" * (cast_expression "(code *)PTR___throw_length_error_004c1e74" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(puVar24 + -0xda4)" ( (binary_expression "puVar24 + -0xda4" identifier + number_literal) )))) ;) (return_statement "return (bool)uVar20;" return (cast_expression "(bool)uVar20" ( (type_descriptor "bool" primitive_type) ) identifier) ;) })))
(translation_unit "undefined4 FUN_002e2ca8(int *param_1)\n\n{\n  byte bVar1;\n  uint uVar2;\n  uint uVar3;\n  uint uVar4;\n  uint uVar5;\n  ushort uVar6;\n  ulonglong uVar7;\n  int iVar8;\n  uint *puVar9;\n  int iVar10;\n  uint *puVar11;\n  undefined4 uVar12;\n  uint extraout_v1;\n  undefined8 *puVar13;\n  uint extraout_v1_00;\n  Dwarf_info_reader *this;\n  byte *pbVar14;\n  uint uVar15;\n  uint uVar16;\n  int iVar17;\n  uint *puVar18;\n  uint uVar19;\n  int iVar20;\n  int iVar21;\n  uint uVar22;\n  undefined8 *puVar23;\n  undefined8 *puVar24;\n  code *pcVar25;\n  ulonglong uVar26;\n  uint local_68;\n  uint local_64;\n  undefined8 local_60;\n  uint local_58;\n  uint local_54;\n  undefined8 local_50;\n  int local_48;\n  uint *local_44;\n  undefined8 *local_40;\n  code *local_3c;\n  vector<gold::Dwarf_die::Attribute_value,std::allocator<gold::Dwarf_die::Attribute_value>>\n  *local_38;\n  code *local_34;\n  uint *local_30;\n  \n  iVar8 = param_1[10];\n  if (iVar8 == 0) {\n    uVar12 = (*(code *)PTR_do_gold_unreachable_004c1a30)\n                       (PTR_s_in_a_linker_script_004c191c + 0x7090,0x2a9,\n                        PTR_s_in_a_linker_script_004c191c + 0x7414);\n    return uVar12;\n  }\n  this = (Dwarf_info_reader *)*param_1;\n  iVar17 = param_1[3];\n  iVar20 = *(int *)(this + 0x2c) + *(int *)(this + 0x3c) + iVar17;\n  if ((uint)(*(int *)(this + 0x2c) + *(int *)(this + 0x3c) + *(int *)(this + 0x44)) < iVar20 + 1U) {\n    gold::Dwarf_info_reader::warn_corrupt_debug_section(this);\n    return 0;\n  }\n  local_38 = (vector<gold::Dwarf_die::Attribute_value,std::allocator<gold::Dwarf_die::Attribute_value>>\n              *)(param_1 + 0xb);\n  if (iVar20 == 0) {\n    return 0;\n  }\n  iVar21 = *(int *)(iVar8 + 0xc) - *(int *)(iVar8 + 8);\n  local_44 = (uint *)(iVar20 + param_1[5]);\n  uVar19 = iVar21 >> 3;\n  if (0xaaaaaaa < uVar19) {\n    uVar12 = (*(code *)PTR___throw_length_error_004c1e74)(PTR_s__s_004c1a50 + -0xda4);\n    return uVar12;\n  }\n  puVar23 = (undefined8 *)param_1[0xb];\n  if ((uint)((param_1[0xd] - (int)puVar23 >> 3) * -0x55555555) < uVar19) {\n    puVar13 = (undefined8 *)param_1[0xc];\n    iVar17 = (int)puVar13 - (int)puVar23;\n    if (uVar19 == 0) {\n      iVar10 = 0;\n      puVar24 = puVar23;\n    }\n    else {\n      local_40 = puVar13;\n      iVar10 = (*(code *)PTR_operator_new_004c13a8)(uVar19 * 0x18);\n      puVar13 = local_40;\n      puVar24 = (undefined8 *)param_1[0xb];\n    }\n    if (puVar23 != puVar13) {\n      (*(code *)PTR_memmove_004c5af8)(iVar10,puVar23,iVar17);\n    }\n    if (puVar24 != (undefined8 *)0x0) {\n      (*(code *)PTR_operator_delete_004c12fc)(puVar24);\n    }\n    iVar8 = param_1[10];\n    param_1[0xb] = iVar10;\n    param_1[0xc] = iVar10 + iVar17;\n    param_1[0xd] = iVar10 + uVar19 * 0x18;\n    if (uVar19 != 0) goto LAB_002e2d90;\nLAB_002e2fb8:\n    if (iVar8 == 0) {\n      uVar12 = (*(code *)PTR_do_gold_unreachable_004c1a30)\n                         (PTR_s_in_a_linker_script_004c191c + 0x7108,0x206,\n                          PTR_s_in_a_linker_script_004c191c + 0x7404);\n      return uVar12;\n    }\n    iVar17 = param_1[3];\n  }\n  else if (uVar19 != 0) {\nLAB_002e2d90:\n    local_3c = (code *)PTR_lookup_reloc_004c2994;\n    iVar17 = 0;\n    local_34 = (code *)PTR_read_from_pointer<64>_004c2998;\n    local_40 = &local_50;\nLAB_002e2db4:\n    puVar9 = (uint *)(*(int *)(iVar8 + 8) + iVar17);\n    uVar19 = puVar9[1];\n    uVar22 = *puVar9;\n    uVar26 = local_60;\n    if (uVar19 == 0x16) goto LAB_002e31a8;\nLAB_002e2dd0:\n    puVar9 = (uint *)((int)local_44 - iVar20);\n    puVar18 = (uint *)((int)puVar9 + param_1[3]);\n    iVar8 = (uint)(puVar18 < puVar9) + ((int)puVar9 >> 0x1f) + param_1[2];\n    local_64 = uVar19;\n    if (uVar19 == 0xe) goto LAB_002e31fc;\n    do {\n      local_60._4_4_ = (uint *)uVar26;\n      local_58 = 0;\n      local_68 = uVar22;\n      local_64 = uVar19;\n      local_60 = uVar26;\n      if (0xe < uVar19) {\n        if (uVar19 == 0x15) {\n          if ((char)*(byte *)local_44 < '\0') {\n            uVar26 = (*(code *)PTR_read_unsigned_LEB_128_x_004c2980)\n                               ((uint *)((int)local_44 + 1),&local_48);\n            local_44 = (uint *)((int)local_44 + local_48);\n          }\n          else {\n            uVar26 = (ulonglong)*(byte *)local_44;\n            local_48 = 1;\n            local_44 = (uint *)((int)local_44 + 1);\n          }\n          goto joined_r0x002e3998;\n        }\n        if (0x15 < uVar19) {\n          if (uVar19 == 0x19) {\n            local_60._4_4_ = (uint *)0x1;\n            local_60._0_4_ = (uint *)0x0;\n          }\n          else {\n            if (uVar19 < 0x1a) {\n              if (uVar19 != 0x17) {\n                if (uVar19 != 0x18) {\n                  return 0;\n                }\n                goto LAB_002e32bc;\n              }\n              iVar8 = *param_1;\n              if (*(int *)(iVar8 + 0x48) == 4) {\n                pcVar25 = *(code **)(**(int **)(iVar8 + 8) + 0xc);\n                if (pcVar25 == (code *)PTR_is_big_endian_004c2950) {\n                  local_30 = puVar18;\n                  iVar8 = (**(code **)(**(int **)(iVar8 + 8) + 0xe8))();\n                }\n                else {\n                  local_30 = puVar18;\n                  iVar8 = (*pcVar25)();\n                }\n                uVar15 = *local_44;\n                if (iVar8 == 0) {\n                  uVar15 = (((uVar15 >> 0x10) << 0x18 | (uVar15 >> 0x18) << 0x10) >> 0x10) +\n                           ((uVar15 & 0xff) << 8 | uVar15 >> 8 & 0xff) * 0x10000;\n                }\n                local_44 = local_44 + 1;\n                uVar26 = (ulonglong)uVar15;\n              }\n              else {\n                local_30 = puVar18;\n                uVar26 = (*local_34)(iVar8,&local_44);\n              }\n              iVar8 = *param_1;\n              goto LAB_002e3970;\n            }\n            if (uVar19 != 0x20) {\n              if (uVar19 < 0x20) {\n                return 0;\n              }\n              if (1 < uVar19 - 0x1f01) {\n                return 0;\n              }\nLAB_002e34d8:\n              if ((char)*(byte *)local_44 < '\0') {\n                uVar26 = (*(code *)PTR_read_unsigned_LEB_128_x_004c2980)\n                                   ((uint *)((int)local_44 + 1),&local_48);\n                local_44 = (uint *)((int)local_44 + local_48);\n              }\n              else {\n                uVar26 = (ulonglong)*(byte *)local_44;\n                local_48 = 1;\n                local_44 = (uint *)((int)local_44 + 1);\n              }\n              goto LAB_002e382c;\n            }\n            pcVar25 = *(code **)(**(int **)(*param_1 + 8) + 0xc);\n            if (pcVar25 == (code *)PTR_is_big_endian_004c2950) {\n              iVar8 = (**(code **)(**(int **)(*param_1 + 8) + 0xe8))();\n            }\n            else {\n              iVar8 = (*pcVar25)();\n            }\n            local_60._4_4_ = (uint *)local_44[1];\n            local_60._0_4_ = (uint *)*local_44;\n            if (iVar8 == 0) {\n              uVar15 = (uint)local_60._4_4_ & 0xff;\n              uVar16 = (uint)local_60._4_4_ >> 8;\n              uVar2 = (uint)local_60._4_4_ >> 0x10;\n              uVar4 = (uint)local_60._4_4_ >> 0x18;\n              local_60._4_4_ =\n                   (uint *)(((((uint)local_60._0_4_ >> 0x10) << 0x18 |\n                             ((uint)local_60._0_4_ >> 0x18) << 0x10) >> 0x10) +\n                           (((uint)local_60._0_4_ & 0xff) << 8 | (uint)local_60._0_4_ >> 8 & 0xff) *\n                           0x10000);\n              local_60._0_4_ =\n                   (uint *)(((uVar2 << 0x18 | uVar4 << 0x10) >> 0x10) +\n                           (uVar15 << 8 | uVar16 & 0xff) * 0x10000);\n            }\n            local_44 = local_44 + 2;\n          }\n          uVar7 = CONCAT44(local_60._0_4_,local_60._4_4_);\n          if (uVar22 == 0x6e) goto LAB_002e313c;\n          uVar7 = CONCAT44(local_60._0_4_,local_60._4_4_);\n          uVar26 = CONCAT44(local_60._0_4_,local_60._4_4_);\n          if (uVar22 == 0x2007) goto LAB_002e313c;\n          goto joined_r0x002e3124;\n        }\n        if (uVar19 == 0x11) {\n          puVar9 = (uint *)((int)local_44 + 1);\n          uVar15 = (uint)*(byte *)local_44;\n          uVar26 = (ulonglong)uVar15;\n          local_44 = puVar9;\n          if (uVar22 == 0x31) goto LAB_002e30bc;\n          if (0x31 < uVar22) {\n            uVar26 = (ulonglong)uVar15;\n            if ((uVar22 != 0x6e) && (uVar26 = (ulonglong)uVar15, uVar22 != 0x2007)) {\n              uVar7 = (ulonglong)uVar15;\n              if (uVar22 != 0x47) goto LAB_002e313c;\n              param_1[0x18] = 0;\n              param_1[0x19] = uVar15;\n              uVar7 = (ulonglong)uVar15;\n              goto LAB_002e313c;\n            }\n            goto LAB_002e3858;\n          }\n          if (uVar22 == 1) {\n            param_1[8] = 0;\n            param_1[9] = uVar15;\n            uVar7 = (ulonglong)uVar15;\n            goto LAB_002e313c;\n          }\n          goto joined_r0x002e3124;\n        }\n        if (uVar19 < 0x12) {\n          if (uVar19 == 0xf) goto LAB_002e34d8;\n          if (uVar19 != 0x10) {\n            return 0;\n          }\n          iVar10 = *param_1;\n          iVar8 = *(int *)(iVar10 + 0x48);\n          if (*(uint *)(iVar10 + 0x50) < 3) {\n            iVar8 = *(int *)(iVar10 + 0x4c);\n          }\n          if (iVar8 == 4) {\n            pcVar25 = *(code **)(**(int **)(iVar10 + 8) + 0xc);\n            if (pcVar25 == (code *)PTR_is_big_endian_004c2950) {\n              local_30 = puVar18;\n              iVar8 = (**(code **)(**(int **)(iVar10 + 8) + 0xe8))();\n            }\n            else {\n              local_30 = puVar18;\n              iVar8 = (*pcVar25)();\n            }\n            uVar15 = *local_44;\n            if (iVar8 == 0) {\n              uVar15 = (((uVar15 >> 0x10) << 0x18 | (uVar15 >> 0x18) << 0x10) >> 0x10) +\n                       ((uVar15 & 0xff) << 8 | uVar15 >> 8 & 0xff) * 0x10000;\n            }\n            local_44 = local_44 + 1;\n            uVar26 = (ulonglong)uVar15;\n          }\n          else {\n            local_30 = puVar18;\n            uVar26 = (*local_34)(iVar10,&local_44);\n          }\n          local_50 = uVar26;\n          local_58 = (*local_3c)(*param_1);\n          uVar26 = local_50;\n        }\n        else {\n          if (uVar19 == 0x13) {\n            pcVar25 = *(code **)(**(int **)(*param_1 + 8) + 0xc);\n            if (pcVar25 == (code *)PTR_is_big_endian_004c2950) {\n              local_30 = puVar18;\n              iVar8 = (**(code **)(**(int **)(*param_1 + 8) + 0xe8))();\n            }\n            else {\n              local_30 = puVar18;\n              iVar8 = (*pcVar25)();\n            }\n            uVar15 = *local_44;\n            if (iVar8 == 0) {\n              uVar15 = (((uVar15 >> 0x10) << 0x18 | (uVar15 >> 0x18) << 0x10) >> 0x10) +\n                       ((uVar15 & 0xff) << 8 | uVar15 >> 8 & 0xff) * 0x10000;\n            }\n            local_44 = local_44 + 1;\n            iVar8 = *param_1;\n            uVar26 = (ulonglong)uVar15;\n          }\n          else {\n            if (uVar19 < 0x14) {\n              pcVar25 = *(code **)(**(int **)(*param_1 + 8) + 0xc);\n              if (pcVar25 == (code *)PTR_is_big_endian_004c2950) {\n                iVar8 = (**(code **)(**(int **)(*param_1 + 8) + 0xe8))();\n              }\n              else {\n                iVar8 = (*pcVar25)();\n              }\n              uVar6 = *(ushort *)local_44;\n              if (iVar8 == 0) {\n                uVar6 = CONCAT11(*(byte *)((int)local_44 + 1),*(byte *)local_44);\n              }\n              local_44 = (uint *)((int)local_44 + 2);\n              uVar26 = (ulonglong)uVar6;\n              goto joined_r0x002e3998;\n            }\n            pcVar25 = *(code **)(**(int **)(*param_1 + 8) + 0xc);\n            if (pcVar25 == (code *)PTR_is_big_endian_004c2950) {\n              local_30 = puVar18;\n              iVar8 = (**(code **)(**(int **)(*param_1 + 8) + 0xe8))();\n            }\n            else {\n              local_30 = puVar18;\n              iVar8 = (*pcVar25)();\n            }\n            uVar15 = local_44[1];\n            uVar16 = *local_44;\n            if (iVar8 == 0) {\n              uVar2 = uVar15 & 0xff;\n              uVar4 = uVar15 >> 8;\n              uVar3 = uVar15 >> 0x10;\n              uVar5 = uVar15 >> 0x18;\n              uVar15 = (((uVar16 >> 0x10) << 0x18 | (uVar16 >> 0x18) << 0x10) >> 0x10) +\n                       ((uVar16 & 0xff) << 8 | uVar16 >> 8 & 0xff) * 0x10000;\n              uVar16 = ((uVar3 << 0x18 | uVar5 << 0x10) >> 0x10) +\n                       (uVar2 << 8 | uVar4 & 0xff) * 0x10000;\n            }\n            uVar26 = CONCAT44(uVar16,uVar15);\n            local_44 = local_44 + 2;\n            iVar8 = *param_1;\n          }\nLAB_002e3970:\n          local_50 = uVar26;\n          local_58 = (*local_3c)(iVar8);\n          uVar26 = local_50;\n        }\njoined_r0x002e3998:\n        if (uVar22 == 0x31) {\nLAB_002e30bc:\n          *(ulonglong *)(param_1 + 0x1a) = uVar26;\n          uVar7 = uVar26;\n          goto LAB_002e313c;\n        }\n        if (uVar22 < 0x32) {\n          uVar7 = uVar26;\n          if (uVar22 != 1) goto LAB_002e313c;\nLAB_002e39b4:\n          uVar7 = uVar26;\n          if (local_58 != 0) goto LAB_002e313c;\n          *(ulonglong *)(param_1 + 8) = uVar26;\n          goto LAB_002e313c;\n        }\n        if ((uVar22 != 0x6e) && (uVar22 != 0x2007)) {\nLAB_002e339c:\n          uVar7 = uVar26;\n          if (uVar22 != 0x47) goto LAB_002e313c;\n          *(ulonglong *)(param_1 + 0x18) = uVar26;\n          goto LAB_002e313c;\n        }\n        goto LAB_002e3858;\n      }\n      if (uVar19 == 7) {\n        pcVar25 = *(code **)(**(int **)(*param_1 + 8) + 0xc);\n        if (pcVar25 == (code *)PTR_is_big_endian_004c2950) {\n          local_30 = puVar18;\n          iVar10 = (**(code **)(**(int **)(*param_1 + 8) + 0xe8))();\n        }\n        else {\n          local_30 = puVar18;\n          iVar10 = (*pcVar25)();\n        }\n        local_50._4_4_ = (uint *)local_44[1];\n        puVar9 = (uint *)*local_44;\n        if (iVar10 == 0) {\n          uVar15 = (uint)local_50._4_4_ & 0xff;\n          uVar16 = (uint)local_50._4_4_ >> 8;\n          uVar2 = (uint)local_50._4_4_ >> 0x10;\n          uVar4 = (uint)local_50._4_4_ >> 0x18;\n          local_50._4_4_ =\n               (uint *)(((((uint)puVar9 >> 0x10) << 0x18 | ((uint)puVar9 >> 0x18) << 0x10) >> 0x10)\n                       + (((uint)puVar9 & 0xff) << 8 | (uint)puVar9 >> 8 & 0xff) * 0x10000);\n          puVar9 = (uint *)(((uVar2 << 0x18 | uVar4 << 0x10) >> 0x10) +\n                           (uVar15 << 8 | uVar16 & 0xff) * 0x10000);\n        }\n        local_44 = local_44 + 2;\n        iVar10 = *param_1;\n        local_50._0_4_ = puVar9;\nLAB_002e3708:\n        local_58 = (*local_3c)(iVar10,puVar9,iVar8,local_30,local_40);\n        local_60._4_4_ = local_50._4_4_;\n        local_60._0_4_ = local_50._0_4_;\n        goto LAB_002e355c;\n      }\n      if (7 < uVar19) {\n        if (uVar19 == 10) {\n          local_60._0_4_ = (uint *)((int)local_44 + 1);\n          local_58 = (uint)*(byte *)local_44;\n          local_44 = (uint *)((int)local_60._0_4_ + local_58);\n          goto LAB_002e355c;\n        }\n        if (uVar19 < 0xb) {\n          if (uVar19 != 8) {\n            if (uVar19 != 9) {\n              return 0;\n            }\nLAB_002e32bc:\n            uVar15 = (uint)*(byte *)local_44;\n            pbVar14 = (byte *)((int)local_44 + 1);\n            if ((char)*(byte *)local_44 < '\0') {\n              (*(code *)PTR_read_unsigned_LEB_128_x_004c2980)(pbVar14,&local_48);\n              pbVar14 = (byte *)((int)local_44 + local_48);\n              uVar15 = extraout_v1_00;\n            }\n            else {\n              local_48 = 1;\n            }\n            uVar26 = CONCAT44(pbVar14,local_60._4_4_);\n            local_58 = uVar15;\n            local_44 = (uint *)((int)local_44 + uVar15 + local_48);\n            goto LAB_002e382c;\n          }\n          local_60._0_4_ = local_44;\n          local_30 = local_44;\n          local_48 = (*(code *)PTR_strlen_004c5b9c)(local_44);\n          uVar26 = CONCAT44(local_60._0_4_,local_60._4_4_);\n          local_44 = (uint *)((int)local_30 + local_48 + 1);\n          uVar7 = CONCAT44(local_60._0_4_,local_60._4_4_);\n          if (uVar22 == 0x31) goto LAB_002e313c;\n          if (0x31 < uVar22) {\n            if ((uVar22 != 0x6e) &&\n               (uVar7 = CONCAT44(local_60._0_4_,local_60._4_4_), uVar22 != 0x2007))\n            goto LAB_002e313c;\n            param_1[0x12] = (int)local_30;\n            uVar7 = uVar26;\n            goto LAB_002e313c;\n          }\nLAB_002e3118:\n          uVar7 = uVar26;\n          if (uVar22 == 1) goto LAB_002e313c;\njoined_r0x002e3124:\n          uVar7 = uVar26;\n          if (uVar22 != 3) goto LAB_002e313c;\n          local_60._0_4_ = (uint *)(uVar26 >> 0x20);\n          if (uVar19 == 8) {\n            param_1[0xf] = (int)local_60._0_4_;\n            goto LAB_002e313c;\n          }\n          if (uVar19 != 0xe) goto LAB_002e313c;\n          goto LAB_002e3284;\n        }\n        if (uVar19 < 0xd) {\n          uVar26 = (ulonglong)*(byte *)local_44;\n          local_44 = (uint *)((int)local_44 + 1);\nLAB_002e382c:\n          uVar7 = uVar26;\n          if (uVar22 == 0x31) goto LAB_002e313c;\n          if (uVar22 < 0x32) goto LAB_002e3118;\n        }\n        else {\n          bVar1 = *(byte *)local_44;\n          uVar15 = (uint)bVar1;\n          puVar9 = (uint *)((int)local_44 + 1);\n          if ((char)bVar1 < '\0') {\n            uVar26 = (*(code *)PTR_read_signed_LEB_128_x_004c297c)(puVar9,&local_48,uVar15);\n            puVar9 = (uint *)((int)local_44 + local_48);\n          }\n          else {\n            local_48 = 1;\n            uVar26 = (ulonglong)uVar15;\n            if ((bVar1 & 0x40) != 0) {\n              uVar26 = CONCAT44(0xffffffff,uVar15 | 0xffffff80);\n            }\n          }\n          local_44 = puVar9;\n          uVar7 = uVar26;\n          if (uVar22 == 0x31) goto LAB_002e313c;\n          if (uVar22 < 0x32) {\n            puVar9 = (uint *)param_1[0xc];\n            if (puVar9 != (uint *)param_1[0xd]) goto LAB_002e314c;\nLAB_002e2f98:\n            iVar17 = iVar17 + 8;\n            local_60 = uVar26;\n            std::\n            vector<gold::Dwarf_die::Attribute_value,std::allocator<gold::Dwarf_die::Attribute_value>>\n            ::_M_realloc_insert<gold::Dwarf_die::Attribute_value_const&>(local_38,puVar9,&local_68);\n            iVar8 = param_1[10];\n            if (iVar17 == iVar21) goto LAB_002e2fb8;\n            goto LAB_002e2db4;\n          }\n        }\n        if ((uVar22 != 0x6e) && (uVar7 = uVar26, uVar22 != 0x2007)) goto LAB_002e313c;\nLAB_002e3858:\n        local_60._0_4_ = (uint *)(uVar26 >> 0x20);\n        uVar7 = uVar26;\n        if (uVar19 == 8) {\n          param_1[0x12] = (int)local_60._0_4_;\n          goto LAB_002e313c;\n        }\n        if (uVar19 != 0xe) goto LAB_002e313c;\n        goto LAB_002e387c;\n      }\n      if (uVar19 == 4) {\n        pcVar25 = *(code **)(**(int **)(*param_1 + 8) + 0xc);\n        if (pcVar25 == (code *)PTR_is_big_endian_004c2950) {\n          iVar8 = (**(code **)(**(int **)(*param_1 + 8) + 0xe8))();\n        }\n        else {\n          iVar8 = (*pcVar25)();\n        }\n        local_58 = *local_44;\n        if (iVar8 == 0) {\n          local_58 = (((local_58 >> 0x10) << 0x18 | (local_58 >> 0x18) << 0x10) >> 0x10) +\n                     ((local_58 & 0xff) << 8 | local_58 >> 8 & 0xff) * 0x10000;\n        }\n        local_60._0_4_ = local_44 + 1;\n        local_44 = (uint *)((int)local_60._0_4_ + local_58);\nLAB_002e355c:\n        uVar26 = CONCAT44(local_60._0_4_,local_60._4_4_);\n        uVar7 = uVar26;\n        if (uVar22 == 0x31) goto LAB_002e313c;\n        if (uVar22 < 0x32) goto LAB_002e3118;\n        puVar9 = (uint *)param_1[0xc];\n      }\n      else {\n        if (4 < uVar19) {\n          if (uVar19 != 5) {\n            if (uVar19 != 6) {\n              return 0;\n            }\n            pcVar25 = *(code **)(**(int **)(*param_1 + 8) + 0xc);\n            if (pcVar25 == (code *)PTR_is_big_endian_004c2950) {\n              local_30 = puVar18;\n              iVar10 = (**(code **)(**(int **)(*param_1 + 8) + 0xe8))();\n            }\n            else {\n              local_30 = puVar18;\n              iVar10 = (*pcVar25)();\n            }\n            puVar9 = (uint *)*local_44;\n            if (iVar10 == 0) {\n              puVar9 = (uint *)(((((uint)puVar9 >> 0x10) << 0x18 | ((uint)puVar9 >> 0x18) << 0x10)\n                                >> 0x10) +\n                               (((uint)puVar9 & 0xff) << 8 | (uint)puVar9 >> 8 & 0xff) * 0x10000);\n            }\n            local_44 = local_44 + 1;\n            iVar10 = *param_1;\n            local_50._0_4_ = (uint *)0x0;\n            local_50._4_4_ = puVar9;\n            goto LAB_002e3708;\n          }\n          pcVar25 = *(code **)(**(int **)(*param_1 + 8) + 0xc);\n          if (pcVar25 == (code *)PTR_is_big_endian_004c2950) {\n            iVar8 = (**(code **)(**(int **)(*param_1 + 8) + 0xe8))();\n          }\n          else {\n            iVar8 = (*pcVar25)();\n          }\n          uVar6 = *(ushort *)local_44;\n          if (iVar8 == 0) {\n            uVar6 = CONCAT11(*(byte *)((int)local_44 + 1),*(byte *)local_44);\n          }\n          local_60._4_4_ = (uint *)(uint)uVar6;\n          local_44 = (uint *)((int)local_44 + 2);\n          local_60._0_4_ = (uint *)0x0;\n          goto LAB_002e355c;\n        }\n        if (uVar19 != 1) {\n          if (uVar19 != 3) {\n            return 0;\n          }\n          pcVar25 = *(code **)(**(int **)(*param_1 + 8) + 0xc);\n          if (pcVar25 == (code *)PTR_is_big_endian_004c2950) {\n            iVar8 = (**(code **)(**(int **)(*param_1 + 8) + 0xe8))();\n          }\n          else {\n            iVar8 = (*pcVar25)();\n          }\n          uVar6 = *(ushort *)local_44;\n          if (iVar8 == 0) {\n            uVar6 = CONCAT11(*(byte *)((int)local_44 + 1),*(byte *)local_44);\n          }\n          local_58 = (uint)uVar6;\n          local_60._0_4_ = (uint *)((int)local_44 + 2);\n          local_44 = (uint *)((int)local_60._0_4_ + local_58);\n          goto LAB_002e355c;\n        }\n        iVar8 = *param_1;\n        if (*(int *)(iVar8 + 0x4c) == 4) {\n          pcVar25 = *(code **)(**(int **)(iVar8 + 8) + 0xc);\n          if (pcVar25 == (code *)PTR_is_big_endian_004c2950) {\n            local_30 = puVar18;\n            iVar8 = (**(code **)(**(int **)(iVar8 + 8) + 0xe8))();\n          }\n          else {\n            local_30 = puVar18;\n            iVar8 = (*pcVar25)();\n          }\n          uVar15 = *local_44;\n          if (iVar8 == 0) {\n            uVar15 = (((uVar15 >> 0x10) << 0x18 | (uVar15 >> 0x18) << 0x10) >> 0x10) +\n                     ((uVar15 & 0xff) << 8 | uVar15 >> 8 & 0xff) * 0x10000;\n          }\n          local_44 = local_44 + 1;\n          uVar26 = (ulonglong)uVar15;\n        }\n        else {\n          local_30 = puVar18;\n          uVar26 = (*local_34)(iVar8,&local_44);\n        }\n        local_50 = uVar26;\n        local_58 = (*local_3c)(*param_1);\n        uVar26 = local_50;\n        if (uVar22 == 0x31) goto LAB_002e30bc;\n        if (uVar22 < 0x32) {\n          if (uVar22 != 1) goto joined_r0x002e3124;\n          goto LAB_002e39b4;\n        }\n        uVar7 = local_50;\n        if (uVar22 == 0x6e) goto LAB_002e313c;\n        if (uVar22 != 0x2007) goto LAB_002e339c;\n        puVar9 = (uint *)param_1[0xc];\n      }\n      while( true ) {\n        if (puVar9 == (uint *)param_1[0xd]) goto LAB_002e2f98;\nLAB_002e314c:\n        local_60._0_4_ = (uint *)(uVar26 >> 0x20);\n        local_60._4_4_ = (uint *)uVar26;\n        iVar17 = iVar17 + 8;\n        puVar9[1] = local_64;\n        puVar9[2] = (uint)local_60._0_4_;\n        *puVar9 = local_68;\n        puVar9[3] = (uint)local_60._4_4_;\n        puVar9[4] = local_58;\n        puVar9[5] = local_54;\n        param_1[0xc] = (int)(puVar9 + 6);\n        iVar8 = param_1[10];\n        local_60 = uVar26;\n        if (iVar17 == iVar21) goto LAB_002e2fb8;\n        puVar9 = (uint *)(*(int *)(iVar8 + 8) + iVar17);\n        uVar19 = puVar9[1];\n        uVar22 = *puVar9;\n        if (uVar19 != 0x16) goto LAB_002e2dd0;\nLAB_002e31a8:\n        uVar19 = (uint)*(byte *)local_44;\n        puVar9 = (uint *)((int)local_44 + 1);\n        if ((char)*(byte *)local_44 < '\0') {\n          local_60 = uVar26;\n          (*(code *)PTR_read_unsigned_LEB_128_x_004c2980)(puVar9,&local_48,uVar19);\n          puVar9 = (uint *)((int)local_44 + local_48);\n          uVar19 = extraout_v1;\n          uVar26 = local_60;\n        }\n        else {\n          local_48 = 1;\n        }\n        puVar11 = (uint *)((int)puVar9 - iVar20);\n        puVar18 = (uint *)((int)puVar11 + param_1[3]);\n        iVar8 = (uint)(puVar18 < puVar11) + ((int)puVar11 >> 0x1f) + param_1[2];\n        local_64 = uVar19;\n        local_44 = puVar9;\n        if (uVar19 != 0xe) break;\nLAB_002e31fc:\n        local_58 = 0;\n        iVar8 = *param_1;\n        local_68 = uVar22;\n        local_30 = puVar18;\n        local_60 = uVar26;\n        if (*(int *)(iVar8 + 0x48) == 4) {\n          pcVar25 = *(code **)(**(int **)(iVar8 + 8) + 0xc);\n          if (pcVar25 == (code *)PTR_is_big_endian_004c2950) {\n            iVar8 = (**(code **)(**(int **)(iVar8 + 8) + 0xe8))();\n          }\n          else {\n            iVar8 = (*pcVar25)();\n          }\n          uVar19 = *local_44;\n          if (iVar8 == 0) {\n            uVar19 = (((uVar19 >> 0x10) << 0x18 | (uVar19 >> 0x18) << 0x10) >> 0x10) +\n                     ((uVar19 & 0xff) << 8 | uVar19 >> 8 & 0xff) * 0x10000;\n          }\n          local_44 = local_44 + 1;\n          uVar26 = (ulonglong)uVar19;\n        }\n        else {\n          uVar26 = (*local_34)(iVar8,&local_44);\n        }\n        local_50 = uVar26;\n        local_58 = (*local_3c)(*param_1);\n        uVar7 = local_50;\n        if (uVar22 != 0x31) {\n          uVar26 = local_50;\n          if (uVar22 < 0x32) {\n            if ((uVar22 != 1) && (uVar22 == 3)) {\nLAB_002e3284:\n              param_1[0x16] = local_58;\n              *(ulonglong *)(param_1 + 0x10) = uVar26;\n              uVar7 = uVar26;\n            }\n          }\n          else {\n            if (uVar22 == 0x6e) {\nLAB_002e387c:\n              param_1[0x16] = local_58;\n            }\n            else {\n              if (uVar22 != 0x2007) goto LAB_002e313c;\n              param_1[0x16] = local_58;\n            }\n            *(ulonglong *)(param_1 + 0x14) = uVar26;\n            uVar7 = uVar26;\n          }\n        }\nLAB_002e313c:\n        puVar9 = (uint *)param_1[0xc];\n        uVar26 = uVar7;\n      }\n    } while( true );\n  }\n  uVar22 = (int)local_44 - iVar20;\n  uVar19 = uVar22 + iVar17;\n  iVar17 = (uint)(uVar19 < uVar22) + ((int)uVar22 >> 0x1f) + param_1[2];\n  if (*(int *)(iVar8 + 4) < 0) {\n    param_1[6] = iVar17;\n    param_1[7] = uVar19;\n  }\n  else {\n    param_1[8] = iVar17;\n    param_1[9] = uVar19;\n  }\n  *(undefined1 *)(param_1 + 0xe) = 1;\n  return 1;\n}\n\n" (function_definition "undefined4 FUN_002e2ca8(int *param_1)\n\n{\n  byte bVar1;\n  uint uVar2;\n  uint uVar3;\n  uint uVar4;\n  uint uVar5;\n  ushort uVar6;\n  ulonglong uVar7;\n  int iVar8;\n  uint *puVar9;\n  int iVar10;\n  uint *puVar11;\n  undefined4 uVar12;\n  uint extraout_v1;\n  undefined8 *puVar13;\n  uint extraout_v1_00;\n  Dwarf_info_reader *this;\n  byte *pbVar14;\n  uint uVar15;\n  uint uVar16;\n  int iVar17;\n  uint *puVar18;\n  uint uVar19;\n  int iVar20;\n  int iVar21;\n  uint uVar22;\n  undefined8 *puVar23;\n  undefined8 *puVar24;\n  code *pcVar25;\n  ulonglong uVar26;\n  uint local_68;\n  uint local_64;\n  undefined8 local_60;\n  uint local_58;\n  uint local_54;\n  undefined8 local_50;\n  int local_48;\n  uint *local_44;\n  undefined8 *local_40;\n  code *local_3c;\n  vector<gold::Dwarf_die::Attribute_value,std::allocator<gold::Dwarf_die::Attribute_value>>\n  *local_38;\n  code *local_34;\n  uint *local_30;\n  \n  iVar8 = param_1[10];\n  if (iVar8 == 0) {\n    uVar12 = (*(code *)PTR_do_gold_unreachable_004c1a30)\n                       (PTR_s_in_a_linker_script_004c191c + 0x7090,0x2a9,\n                        PTR_s_in_a_linker_script_004c191c + 0x7414);\n    return uVar12;\n  }\n  this = (Dwarf_info_reader *)*param_1;\n  iVar17 = param_1[3];\n  iVar20 = *(int *)(this + 0x2c) + *(int *)(this + 0x3c) + iVar17;\n  if ((uint)(*(int *)(this + 0x2c) + *(int *)(this + 0x3c) + *(int *)(this + 0x44)) < iVar20 + 1U) {\n    gold::Dwarf_info_reader::warn_corrupt_debug_section(this);\n    return 0;\n  }\n  local_38 = (vector<gold::Dwarf_die::Attribute_value,std::allocator<gold::Dwarf_die::Attribute_value>>\n              *)(param_1 + 0xb);\n  if (iVar20 == 0) {\n    return 0;\n  }\n  iVar21 = *(int *)(iVar8 + 0xc) - *(int *)(iVar8 + 8);\n  local_44 = (uint *)(iVar20 + param_1[5]);\n  uVar19 = iVar21 >> 3;\n  if (0xaaaaaaa < uVar19) {\n    uVar12 = (*(code *)PTR___throw_length_error_004c1e74)(PTR_s__s_004c1a50 + -0xda4);\n    return uVar12;\n  }\n  puVar23 = (undefined8 *)param_1[0xb];\n  if ((uint)((param_1[0xd] - (int)puVar23 >> 3) * -0x55555555) < uVar19) {\n    puVar13 = (undefined8 *)param_1[0xc];\n    iVar17 = (int)puVar13 - (int)puVar23;\n    if (uVar19 == 0) {\n      iVar10 = 0;\n      puVar24 = puVar23;\n    }\n    else {\n      local_40 = puVar13;\n      iVar10 = (*(code *)PTR_operator_new_004c13a8)(uVar19 * 0x18);\n      puVar13 = local_40;\n      puVar24 = (undefined8 *)param_1[0xb];\n    }\n    if (puVar23 != puVar13) {\n      (*(code *)PTR_memmove_004c5af8)(iVar10,puVar23,iVar17);\n    }\n    if (puVar24 != (undefined8 *)0x0) {\n      (*(code *)PTR_operator_delete_004c12fc)(puVar24);\n    }\n    iVar8 = param_1[10];\n    param_1[0xb] = iVar10;\n    param_1[0xc] = iVar10 + iVar17;\n    param_1[0xd] = iVar10 + uVar19 * 0x18;\n    if (uVar19 != 0) goto LAB_002e2d90;\nLAB_002e2fb8:\n    if (iVar8 == 0) {\n      uVar12 = (*(code *)PTR_do_gold_unreachable_004c1a30)\n                         (PTR_s_in_a_linker_script_004c191c + 0x7108,0x206,\n                          PTR_s_in_a_linker_script_004c191c + 0x7404);\n      return uVar12;\n    }\n    iVar17 = param_1[3];\n  }\n  else if (uVar19 != 0) {\nLAB_002e2d90:\n    local_3c = (code *)PTR_lookup_reloc_004c2994;\n    iVar17 = 0;\n    local_34 = (code *)PTR_read_from_pointer<64>_004c2998;\n    local_40 = &local_50;\nLAB_002e2db4:\n    puVar9 = (uint *)(*(int *)(iVar8 + 8) + iVar17);\n    uVar19 = puVar9[1];\n    uVar22 = *puVar9;\n    uVar26 = local_60;\n    if (uVar19 == 0x16) goto LAB_002e31a8;\nLAB_002e2dd0:\n    puVar9 = (uint *)((int)local_44 - iVar20);\n    puVar18 = (uint *)((int)puVar9 + param_1[3]);\n    iVar8 = (uint)(puVar18 < puVar9) + ((int)puVar9 >> 0x1f) + param_1[2];\n    local_64 = uVar19;\n    if (uVar19 == 0xe) goto LAB_002e31fc;\n    do {\n      local_60._4_4_ = (uint *)uVar26;\n      local_58 = 0;\n      local_68 = uVar22;\n      local_64 = uVar19;\n      local_60 = uVar26;\n      if (0xe < uVar19) {\n        if (uVar19 == 0x15) {\n          if ((char)*(byte *)local_44 < '\0') {\n            uVar26 = (*(code *)PTR_read_unsigned_LEB_128_x_004c2980)\n                               ((uint *)((int)local_44 + 1),&local_48);\n            local_44 = (uint *)((int)local_44 + local_48);\n          }\n          else {\n            uVar26 = (ulonglong)*(byte *)local_44;\n            local_48 = 1;\n            local_44 = (uint *)((int)local_44 + 1);\n          }\n          goto joined_r0x002e3998;\n        }\n        if (0x15 < uVar19) {\n          if (uVar19 == 0x19) {\n            local_60._4_4_ = (uint *)0x1;\n            local_60._0_4_ = (uint *)0x0;\n          }\n          else {\n            if (uVar19 < 0x1a) {\n              if (uVar19 != 0x17) {\n                if (uVar19 != 0x18) {\n                  return 0;\n                }\n                goto LAB_002e32bc;\n              }\n              iVar8 = *param_1;\n              if (*(int *)(iVar8 + 0x48) == 4) {\n                pcVar25 = *(code **)(**(int **)(iVar8 + 8) + 0xc);\n                if (pcVar25 == (code *)PTR_is_big_endian_004c2950) {\n                  local_30 = puVar18;\n                  iVar8 = (**(code **)(**(int **)(iVar8 + 8) + 0xe8))();\n                }\n                else {\n                  local_30 = puVar18;\n                  iVar8 = (*pcVar25)();\n                }\n                uVar15 = *local_44;\n                if (iVar8 == 0) {\n                  uVar15 = (((uVar15 >> 0x10) << 0x18 | (uVar15 >> 0x18) << 0x10) >> 0x10) +\n                           ((uVar15 & 0xff) << 8 | uVar15 >> 8 & 0xff) * 0x10000;\n                }\n                local_44 = local_44 + 1;\n                uVar26 = (ulonglong)uVar15;\n              }\n              else {\n                local_30 = puVar18;\n                uVar26 = (*local_34)(iVar8,&local_44);\n              }\n              iVar8 = *param_1;\n              goto LAB_002e3970;\n            }\n            if (uVar19 != 0x20) {\n              if (uVar19 < 0x20) {\n                return 0;\n              }\n              if (1 < uVar19 - 0x1f01) {\n                return 0;\n              }\nLAB_002e34d8:\n              if ((char)*(byte *)local_44 < '\0') {\n                uVar26 = (*(code *)PTR_read_unsigned_LEB_128_x_004c2980)\n                                   ((uint *)((int)local_44 + 1),&local_48);\n                local_44 = (uint *)((int)local_44 + local_48);\n              }\n              else {\n                uVar26 = (ulonglong)*(byte *)local_44;\n                local_48 = 1;\n                local_44 = (uint *)((int)local_44 + 1);\n              }\n              goto LAB_002e382c;\n            }\n            pcVar25 = *(code **)(**(int **)(*param_1 + 8) + 0xc);\n            if (pcVar25 == (code *)PTR_is_big_endian_004c2950) {\n              iVar8 = (**(code **)(**(int **)(*param_1 + 8) + 0xe8))();\n            }\n            else {\n              iVar8 = (*pcVar25)();\n            }\n            local_60._4_4_ = (uint *)local_44[1];\n            local_60._0_4_ = (uint *)*local_44;\n            if (iVar8 == 0) {\n              uVar15 = (uint)local_60._4_4_ & 0xff;\n              uVar16 = (uint)local_60._4_4_ >> 8;\n              uVar2 = (uint)local_60._4_4_ >> 0x10;\n              uVar4 = (uint)local_60._4_4_ >> 0x18;\n              local_60._4_4_ =\n                   (uint *)(((((uint)local_60._0_4_ >> 0x10) << 0x18 |\n                             ((uint)local_60._0_4_ >> 0x18) << 0x10) >> 0x10) +\n                           (((uint)local_60._0_4_ & 0xff) << 8 | (uint)local_60._0_4_ >> 8 & 0xff) *\n                           0x10000);\n              local_60._0_4_ =\n                   (uint *)(((uVar2 << 0x18 | uVar4 << 0x10) >> 0x10) +\n                           (uVar15 << 8 | uVar16 & 0xff) * 0x10000);\n            }\n            local_44 = local_44 + 2;\n          }\n          uVar7 = CONCAT44(local_60._0_4_,local_60._4_4_);\n          if (uVar22 == 0x6e) goto LAB_002e313c;\n          uVar7 = CONCAT44(local_60._0_4_,local_60._4_4_);\n          uVar26 = CONCAT44(local_60._0_4_,local_60._4_4_);\n          if (uVar22 == 0x2007) goto LAB_002e313c;\n          goto joined_r0x002e3124;\n        }\n        if (uVar19 == 0x11) {\n          puVar9 = (uint *)((int)local_44 + 1);\n          uVar15 = (uint)*(byte *)local_44;\n          uVar26 = (ulonglong)uVar15;\n          local_44 = puVar9;\n          if (uVar22 == 0x31) goto LAB_002e30bc;\n          if (0x31 < uVar22) {\n            uVar26 = (ulonglong)uVar15;\n            if ((uVar22 != 0x6e) && (uVar26 = (ulonglong)uVar15, uVar22 != 0x2007)) {\n              uVar7 = (ulonglong)uVar15;\n              if (uVar22 != 0x47) goto LAB_002e313c;\n              param_1[0x18] = 0;\n              param_1[0x19] = uVar15;\n              uVar7 = (ulonglong)uVar15;\n              goto LAB_002e313c;\n            }\n            goto LAB_002e3858;\n          }\n          if (uVar22 == 1) {\n            param_1[8] = 0;\n            param_1[9] = uVar15;\n            uVar7 = (ulonglong)uVar15;\n            goto LAB_002e313c;\n          }\n          goto joined_r0x002e3124;\n        }\n        if (uVar19 < 0x12) {\n          if (uVar19 == 0xf) goto LAB_002e34d8;\n          if (uVar19 != 0x10) {\n            return 0;\n          }\n          iVar10 = *param_1;\n          iVar8 = *(int *)(iVar10 + 0x48);\n          if (*(uint *)(iVar10 + 0x50) < 3) {\n            iVar8 = *(int *)(iVar10 + 0x4c);\n          }\n          if (iVar8 == 4) {\n            pcVar25 = *(code **)(**(int **)(iVar10 + 8) + 0xc);\n            if (pcVar25 == (code *)PTR_is_big_endian_004c2950) {\n              local_30 = puVar18;\n              iVar8 = (**(code **)(**(int **)(iVar10 + 8) + 0xe8))();\n            }\n            else {\n              local_30 = puVar18;\n              iVar8 = (*pcVar25)();\n            }\n            uVar15 = *local_44;\n            if (iVar8 == 0) {\n              uVar15 = (((uVar15 >> 0x10) << 0x18 | (uVar15 >> 0x18) << 0x10) >> 0x10) +\n                       ((uVar15 & 0xff) << 8 | uVar15 >> 8 & 0xff) * 0x10000;\n            }\n            local_44 = local_44 + 1;\n            uVar26 = (ulonglong)uVar15;\n          }\n          else {\n            local_30 = puVar18;\n            uVar26 = (*local_34)(iVar10,&local_44);\n          }\n          local_50 = uVar26;\n          local_58 = (*local_3c)(*param_1);\n          uVar26 = local_50;\n        }\n        else {\n          if (uVar19 == 0x13) {\n            pcVar25 = *(code **)(**(int **)(*param_1 + 8) + 0xc);\n            if (pcVar25 == (code *)PTR_is_big_endian_004c2950) {\n              local_30 = puVar18;\n              iVar8 = (**(code **)(**(int **)(*param_1 + 8) + 0xe8))();\n            }\n            else {\n              local_30 = puVar18;\n              iVar8 = (*pcVar25)();\n            }\n            uVar15 = *local_44;\n            if (iVar8 == 0) {\n              uVar15 = (((uVar15 >> 0x10) << 0x18 | (uVar15 >> 0x18) << 0x10) >> 0x10) +\n                       ((uVar15 & 0xff) << 8 | uVar15 >> 8 & 0xff) * 0x10000;\n            }\n            local_44 = local_44 + 1;\n            iVar8 = *param_1;\n            uVar26 = (ulonglong)uVar15;\n          }\n          else {\n            if (uVar19 < 0x14) {\n              pcVar25 = *(code **)(**(int **)(*param_1 + 8) + 0xc);\n              if (pcVar25 == (code *)PTR_is_big_endian_004c2950) {\n                iVar8 = (**(code **)(**(int **)(*param_1 + 8) + 0xe8))();\n              }\n              else {\n                iVar8 = (*pcVar25)();\n              }\n              uVar6 = *(ushort *)local_44;\n              if (iVar8 == 0) {\n                uVar6 = CONCAT11(*(byte *)((int)local_44 + 1),*(byte *)local_44);\n              }\n              local_44 = (uint *)((int)local_44 + 2);\n              uVar26 = (ulonglong)uVar6;\n              goto joined_r0x002e3998;\n            }\n            pcVar25 = *(code **)(**(int **)(*param_1 + 8) + 0xc);\n            if (pcVar25 == (code *)PTR_is_big_endian_004c2950) {\n              local_30 = puVar18;\n              iVar8 = (**(code **)(**(int **)(*param_1 + 8) + 0xe8))();\n            }\n            else {\n              local_30 = puVar18;\n              iVar8 = (*pcVar25)();\n            }\n            uVar15 = local_44[1];\n            uVar16 = *local_44;\n            if (iVar8 == 0) {\n              uVar2 = uVar15 & 0xff;\n              uVar4 = uVar15 >> 8;\n              uVar3 = uVar15 >> 0x10;\n              uVar5 = uVar15 >> 0x18;\n              uVar15 = (((uVar16 >> 0x10) << 0x18 | (uVar16 >> 0x18) << 0x10) >> 0x10) +\n                       ((uVar16 & 0xff) << 8 | uVar16 >> 8 & 0xff) * 0x10000;\n              uVar16 = ((uVar3 << 0x18 | uVar5 << 0x10) >> 0x10) +\n                       (uVar2 << 8 | uVar4 & 0xff) * 0x10000;\n            }\n            uVar26 = CONCAT44(uVar16,uVar15);\n            local_44 = local_44 + 2;\n            iVar8 = *param_1;\n          }\nLAB_002e3970:\n          local_50 = uVar26;\n          local_58 = (*local_3c)(iVar8);\n          uVar26 = local_50;\n        }\njoined_r0x002e3998:\n        if (uVar22 == 0x31) {\nLAB_002e30bc:\n          *(ulonglong *)(param_1 + 0x1a) = uVar26;\n          uVar7 = uVar26;\n          goto LAB_002e313c;\n        }\n        if (uVar22 < 0x32) {\n          uVar7 = uVar26;\n          if (uVar22 != 1) goto LAB_002e313c;\nLAB_002e39b4:\n          uVar7 = uVar26;\n          if (local_58 != 0) goto LAB_002e313c;\n          *(ulonglong *)(param_1 + 8) = uVar26;\n          goto LAB_002e313c;\n        }\n        if ((uVar22 != 0x6e) && (uVar22 != 0x2007)) {\nLAB_002e339c:\n          uVar7 = uVar26;\n          if (uVar22 != 0x47) goto LAB_002e313c;\n          *(ulonglong *)(param_1 + 0x18) = uVar26;\n          goto LAB_002e313c;\n        }\n        goto LAB_002e3858;\n      }\n      if (uVar19 == 7) {\n        pcVar25 = *(code **)(**(int **)(*param_1 + 8) + 0xc);\n        if (pcVar25 == (code *)PTR_is_big_endian_004c2950) {\n          local_30 = puVar18;\n          iVar10 = (**(code **)(**(int **)(*param_1 + 8) + 0xe8))();\n        }\n        else {\n          local_30 = puVar18;\n          iVar10 = (*pcVar25)();\n        }\n        local_50._4_4_ = (uint *)local_44[1];\n        puVar9 = (uint *)*local_44;\n        if (iVar10 == 0) {\n          uVar15 = (uint)local_50._4_4_ & 0xff;\n          uVar16 = (uint)local_50._4_4_ >> 8;\n          uVar2 = (uint)local_50._4_4_ >> 0x10;\n          uVar4 = (uint)local_50._4_4_ >> 0x18;\n          local_50._4_4_ =\n               (uint *)(((((uint)puVar9 >> 0x10) << 0x18 | ((uint)puVar9 >> 0x18) << 0x10) >> 0x10)\n                       + (((uint)puVar9 & 0xff) << 8 | (uint)puVar9 >> 8 & 0xff) * 0x10000);\n          puVar9 = (uint *)(((uVar2 << 0x18 | uVar4 << 0x10) >> 0x10) +\n                           (uVar15 << 8 | uVar16 & 0xff) * 0x10000);\n        }\n        local_44 = local_44 + 2;\n        iVar10 = *param_1;\n        local_50._0_4_ = puVar9;\nLAB_002e3708:\n        local_58 = (*local_3c)(iVar10,puVar9,iVar8,local_30,local_40);\n        local_60._4_4_ = local_50._4_4_;\n        local_60._0_4_ = local_50._0_4_;\n        goto LAB_002e355c;\n      }\n      if (7 < uVar19) {\n        if (uVar19 == 10) {\n          local_60._0_4_ = (uint *)((int)local_44 + 1);\n          local_58 = (uint)*(byte *)local_44;\n          local_44 = (uint *)((int)local_60._0_4_ + local_58);\n          goto LAB_002e355c;\n        }\n        if (uVar19 < 0xb) {\n          if (uVar19 != 8) {\n            if (uVar19 != 9) {\n              return 0;\n            }\nLAB_002e32bc:\n            uVar15 = (uint)*(byte *)local_44;\n            pbVar14 = (byte *)((int)local_44 + 1);\n            if ((char)*(byte *)local_44 < '\0') {\n              (*(code *)PTR_read_unsigned_LEB_128_x_004c2980)(pbVar14,&local_48);\n              pbVar14 = (byte *)((int)local_44 + local_48);\n              uVar15 = extraout_v1_00;\n            }\n            else {\n              local_48 = 1;\n            }\n            uVar26 = CONCAT44(pbVar14,local_60._4_4_);\n            local_58 = uVar15;\n            local_44 = (uint *)((int)local_44 + uVar15 + local_48);\n            goto LAB_002e382c;\n          }\n          local_60._0_4_ = local_44;\n          local_30 = local_44;\n          local_48 = (*(code *)PTR_strlen_004c5b9c)(local_44);\n          uVar26 = CONCAT44(local_60._0_4_,local_60._4_4_);\n          local_44 = (uint *)((int)local_30 + local_48 + 1);\n          uVar7 = CONCAT44(local_60._0_4_,local_60._4_4_);\n          if (uVar22 == 0x31) goto LAB_002e313c;\n          if (0x31 < uVar22) {\n            if ((uVar22 != 0x6e) &&\n               (uVar7 = CONCAT44(local_60._0_4_,local_60._4_4_), uVar22 != 0x2007))\n            goto LAB_002e313c;\n            param_1[0x12] = (int)local_30;\n            uVar7 = uVar26;\n            goto LAB_002e313c;\n          }\nLAB_002e3118:\n          uVar7 = uVar26;\n          if (uVar22 == 1) goto LAB_002e313c;\njoined_r0x002e3124:\n          uVar7 = uVar26;\n          if (uVar22 != 3) goto LAB_002e313c;\n          local_60._0_4_ = (uint *)(uVar26 >> 0x20);\n          if (uVar19 == 8) {\n            param_1[0xf] = (int)local_60._0_4_;\n            goto LAB_002e313c;\n          }\n          if (uVar19 != 0xe) goto LAB_002e313c;\n          goto LAB_002e3284;\n        }\n        if (uVar19 < 0xd) {\n          uVar26 = (ulonglong)*(byte *)local_44;\n          local_44 = (uint *)((int)local_44 + 1);\nLAB_002e382c:\n          uVar7 = uVar26;\n          if (uVar22 == 0x31) goto LAB_002e313c;\n          if (uVar22 < 0x32) goto LAB_002e3118;\n        }\n        else {\n          bVar1 = *(byte *)local_44;\n          uVar15 = (uint)bVar1;\n          puVar9 = (uint *)((int)local_44 + 1);\n          if ((char)bVar1 < '\0') {\n            uVar26 = (*(code *)PTR_read_signed_LEB_128_x_004c297c)(puVar9,&local_48,uVar15);\n            puVar9 = (uint *)((int)local_44 + local_48);\n          }\n          else {\n            local_48 = 1;\n            uVar26 = (ulonglong)uVar15;\n            if ((bVar1 & 0x40) != 0) {\n              uVar26 = CONCAT44(0xffffffff,uVar15 | 0xffffff80);\n            }\n          }\n          local_44 = puVar9;\n          uVar7 = uVar26;\n          if (uVar22 == 0x31) goto LAB_002e313c;\n          if (uVar22 < 0x32) {\n            puVar9 = (uint *)param_1[0xc];\n            if (puVar9 != (uint *)param_1[0xd]) goto LAB_002e314c;\nLAB_002e2f98:\n            iVar17 = iVar17 + 8;\n            local_60 = uVar26;\n            std::\n            vector<gold::Dwarf_die::Attribute_value,std::allocator<gold::Dwarf_die::Attribute_value>>\n            ::_M_realloc_insert<gold::Dwarf_die::Attribute_value_const&>(local_38,puVar9,&local_68);\n            iVar8 = param_1[10];\n            if (iVar17 == iVar21) goto LAB_002e2fb8;\n            goto LAB_002e2db4;\n          }\n        }\n        if ((uVar22 != 0x6e) && (uVar7 = uVar26, uVar22 != 0x2007)) goto LAB_002e313c;\nLAB_002e3858:\n        local_60._0_4_ = (uint *)(uVar26 >> 0x20);\n        uVar7 = uVar26;\n        if (uVar19 == 8) {\n          param_1[0x12] = (int)local_60._0_4_;\n          goto LAB_002e313c;\n        }\n        if (uVar19 != 0xe) goto LAB_002e313c;\n        goto LAB_002e387c;\n      }\n      if (uVar19 == 4) {\n        pcVar25 = *(code **)(**(int **)(*param_1 + 8) + 0xc);\n        if (pcVar25 == (code *)PTR_is_big_endian_004c2950) {\n          iVar8 = (**(code **)(**(int **)(*param_1 + 8) + 0xe8))();\n        }\n        else {\n          iVar8 = (*pcVar25)();\n        }\n        local_58 = *local_44;\n        if (iVar8 == 0) {\n          local_58 = (((local_58 >> 0x10) << 0x18 | (local_58 >> 0x18) << 0x10) >> 0x10) +\n                     ((local_58 & 0xff) << 8 | local_58 >> 8 & 0xff) * 0x10000;\n        }\n        local_60._0_4_ = local_44 + 1;\n        local_44 = (uint *)((int)local_60._0_4_ + local_58);\nLAB_002e355c:\n        uVar26 = CONCAT44(local_60._0_4_,local_60._4_4_);\n        uVar7 = uVar26;\n        if (uVar22 == 0x31) goto LAB_002e313c;\n        if (uVar22 < 0x32) goto LAB_002e3118;\n        puVar9 = (uint *)param_1[0xc];\n      }\n      else {\n        if (4 < uVar19) {\n          if (uVar19 != 5) {\n            if (uVar19 != 6) {\n              return 0;\n            }\n            pcVar25 = *(code **)(**(int **)(*param_1 + 8) + 0xc);\n            if (pcVar25 == (code *)PTR_is_big_endian_004c2950) {\n              local_30 = puVar18;\n              iVar10 = (**(code **)(**(int **)(*param_1 + 8) + 0xe8))();\n            }\n            else {\n              local_30 = puVar18;\n              iVar10 = (*pcVar25)();\n            }\n            puVar9 = (uint *)*local_44;\n            if (iVar10 == 0) {\n              puVar9 = (uint *)(((((uint)puVar9 >> 0x10) << 0x18 | ((uint)puVar9 >> 0x18) << 0x10)\n                                >> 0x10) +\n                               (((uint)puVar9 & 0xff) << 8 | (uint)puVar9 >> 8 & 0xff) * 0x10000);\n            }\n            local_44 = local_44 + 1;\n            iVar10 = *param_1;\n            local_50._0_4_ = (uint *)0x0;\n            local_50._4_4_ = puVar9;\n            goto LAB_002e3708;\n          }\n          pcVar25 = *(code **)(**(int **)(*param_1 + 8) + 0xc);\n          if (pcVar25 == (code *)PTR_is_big_endian_004c2950) {\n            iVar8 = (**(code **)(**(int **)(*param_1 + 8) + 0xe8))();\n          }\n          else {\n            iVar8 = (*pcVar25)();\n          }\n          uVar6 = *(ushort *)local_44;\n          if (iVar8 == 0) {\n            uVar6 = CONCAT11(*(byte *)((int)local_44 + 1),*(byte *)local_44);\n          }\n          local_60._4_4_ = (uint *)(uint)uVar6;\n          local_44 = (uint *)((int)local_44 + 2);\n          local_60._0_4_ = (uint *)0x0;\n          goto LAB_002e355c;\n        }\n        if (uVar19 != 1) {\n          if (uVar19 != 3) {\n            return 0;\n          }\n          pcVar25 = *(code **)(**(int **)(*param_1 + 8) + 0xc);\n          if (pcVar25 == (code *)PTR_is_big_endian_004c2950) {\n            iVar8 = (**(code **)(**(int **)(*param_1 + 8) + 0xe8))();\n          }\n          else {\n            iVar8 = (*pcVar25)();\n          }\n          uVar6 = *(ushort *)local_44;\n          if (iVar8 == 0) {\n            uVar6 = CONCAT11(*(byte *)((int)local_44 + 1),*(byte *)local_44);\n          }\n          local_58 = (uint)uVar6;\n          local_60._0_4_ = (uint *)((int)local_44 + 2);\n          local_44 = (uint *)((int)local_60._0_4_ + local_58);\n          goto LAB_002e355c;\n        }\n        iVar8 = *param_1;\n        if (*(int *)(iVar8 + 0x4c) == 4) {\n          pcVar25 = *(code **)(**(int **)(iVar8 + 8) + 0xc);\n          if (pcVar25 == (code *)PTR_is_big_endian_004c2950) {\n            local_30 = puVar18;\n            iVar8 = (**(code **)(**(int **)(iVar8 + 8) + 0xe8))();\n          }\n          else {\n            local_30 = puVar18;\n            iVar8 = (*pcVar25)();\n          }\n          uVar15 = *local_44;\n          if (iVar8 == 0) {\n            uVar15 = (((uVar15 >> 0x10) << 0x18 | (uVar15 >> 0x18) << 0x10) >> 0x10) +\n                     ((uVar15 & 0xff) << 8 | uVar15 >> 8 & 0xff) * 0x10000;\n          }\n          local_44 = local_44 + 1;\n          uVar26 = (ulonglong)uVar15;\n        }\n        else {\n          local_30 = puVar18;\n          uVar26 = (*local_34)(iVar8,&local_44);\n        }\n        local_50 = uVar26;\n        local_58 = (*local_3c)(*param_1);\n        uVar26 = local_50;\n        if (uVar22 == 0x31) goto LAB_002e30bc;\n        if (uVar22 < 0x32) {\n          if (uVar22 != 1) goto joined_r0x002e3124;\n          goto LAB_002e39b4;\n        }\n        uVar7 = local_50;\n        if (uVar22 == 0x6e) goto LAB_002e313c;\n        if (uVar22 != 0x2007) goto LAB_002e339c;\n        puVar9 = (uint *)param_1[0xc];\n      }\n      while( true ) {\n        if (puVar9 == (uint *)param_1[0xd]) goto LAB_002e2f98;\nLAB_002e314c:\n        local_60._0_4_ = (uint *)(uVar26 >> 0x20);\n        local_60._4_4_ = (uint *)uVar26;\n        iVar17 = iVar17 + 8;\n        puVar9[1] = local_64;\n        puVar9[2] = (uint)local_60._0_4_;\n        *puVar9 = local_68;\n        puVar9[3] = (uint)local_60._4_4_;\n        puVar9[4] = local_58;\n        puVar9[5] = local_54;\n        param_1[0xc] = (int)(puVar9 + 6);\n        iVar8 = param_1[10];\n        local_60 = uVar26;\n        if (iVar17 == iVar21) goto LAB_002e2fb8;\n        puVar9 = (uint *)(*(int *)(iVar8 + 8) + iVar17);\n        uVar19 = puVar9[1];\n        uVar22 = *puVar9;\n        if (uVar19 != 0x16) goto LAB_002e2dd0;\nLAB_002e31a8:\n        uVar19 = (uint)*(byte *)local_44;\n        puVar9 = (uint *)((int)local_44 + 1);\n        if ((char)*(byte *)local_44 < '\0') {\n          local_60 = uVar26;\n          (*(code *)PTR_read_unsigned_LEB_128_x_004c2980)(puVar9,&local_48,uVar19);\n          puVar9 = (uint *)((int)local_44 + local_48);\n          uVar19 = extraout_v1;\n          uVar26 = local_60;\n        }\n        else {\n          local_48 = 1;\n        }\n        puVar11 = (uint *)((int)puVar9 - iVar20);\n        puVar18 = (uint *)((int)puVar11 + param_1[3]);\n        iVar8 = (uint)(puVar18 < puVar11) + ((int)puVar11 >> 0x1f) + param_1[2];\n        local_64 = uVar19;\n        local_44 = puVar9;\n        if (uVar19 != 0xe) break;\nLAB_002e31fc:\n        local_58 = 0;\n        iVar8 = *param_1;\n        local_68 = uVar22;\n        local_30 = puVar18;\n        local_60 = uVar26;\n        if (*(int *)(iVar8 + 0x48) == 4) {\n          pcVar25 = *(code **)(**(int **)(iVar8 + 8) + 0xc);\n          if (pcVar25 == (code *)PTR_is_big_endian_004c2950) {\n            iVar8 = (**(code **)(**(int **)(iVar8 + 8) + 0xe8))();\n          }\n          else {\n            iVar8 = (*pcVar25)();\n          }\n          uVar19 = *local_44;\n          if (iVar8 == 0) {\n            uVar19 = (((uVar19 >> 0x10) << 0x18 | (uVar19 >> 0x18) << 0x10) >> 0x10) +\n                     ((uVar19 & 0xff) << 8 | uVar19 >> 8 & 0xff) * 0x10000;\n          }\n          local_44 = local_44 + 1;\n          uVar26 = (ulonglong)uVar19;\n        }\n        else {\n          uVar26 = (*local_34)(iVar8,&local_44);\n        }\n        local_50 = uVar26;\n        local_58 = (*local_3c)(*param_1);\n        uVar7 = local_50;\n        if (uVar22 != 0x31) {\n          uVar26 = local_50;\n          if (uVar22 < 0x32) {\n            if ((uVar22 != 1) && (uVar22 == 3)) {\nLAB_002e3284:\n              param_1[0x16] = local_58;\n              *(ulonglong *)(param_1 + 0x10) = uVar26;\n              uVar7 = uVar26;\n            }\n          }\n          else {\n            if (uVar22 == 0x6e) {\nLAB_002e387c:\n              param_1[0x16] = local_58;\n            }\n            else {\n              if (uVar22 != 0x2007) goto LAB_002e313c;\n              param_1[0x16] = local_58;\n            }\n            *(ulonglong *)(param_1 + 0x14) = uVar26;\n            uVar7 = uVar26;\n          }\n        }\nLAB_002e313c:\n        puVar9 = (uint *)param_1[0xc];\n        uVar26 = uVar7;\n      }\n    } while( true );\n  }\n  uVar22 = (int)local_44 - iVar20;\n  uVar19 = uVar22 + iVar17;\n  iVar17 = (uint)(uVar19 < uVar22) + ((int)uVar22 >> 0x1f) + param_1[2];\n  if (*(int *)(iVar8 + 4) < 0) {\n    param_1[6] = iVar17;\n    param_1[7] = uVar19;\n  }\n  else {\n    param_1[8] = iVar17;\n    param_1[9] = uVar19;\n  }\n  *(undefined1 *)(param_1 + 0xe) = 1;\n  return 1;\n}" type_identifier (function_declarator "FUN_002e2ca8(int *param_1)" identifier (parameter_list "(int *param_1)" ( (parameter_declaration "int *param_1" primitive_type (pointer_declarator "*param_1" * identifier)) ))) (compound_statement "{\n  byte bVar1;\n  uint uVar2;\n  uint uVar3;\n  uint uVar4;\n  uint uVar5;\n  ushort uVar6;\n  ulonglong uVar7;\n  int iVar8;\n  uint *puVar9;\n  int iVar10;\n  uint *puVar11;\n  undefined4 uVar12;\n  uint extraout_v1;\n  undefined8 *puVar13;\n  uint extraout_v1_00;\n  Dwarf_info_reader *this;\n  byte *pbVar14;\n  uint uVar15;\n  uint uVar16;\n  int iVar17;\n  uint *puVar18;\n  uint uVar19;\n  int iVar20;\n  int iVar21;\n  uint uVar22;\n  undefined8 *puVar23;\n  undefined8 *puVar24;\n  code *pcVar25;\n  ulonglong uVar26;\n  uint local_68;\n  uint local_64;\n  undefined8 local_60;\n  uint local_58;\n  uint local_54;\n  undefined8 local_50;\n  int local_48;\n  uint *local_44;\n  undefined8 *local_40;\n  code *local_3c;\n  vector<gold::Dwarf_die::Attribute_value,std::allocator<gold::Dwarf_die::Attribute_value>>\n  *local_38;\n  code *local_34;\n  uint *local_30;\n  \n  iVar8 = param_1[10];\n  if (iVar8 == 0) {\n    uVar12 = (*(code *)PTR_do_gold_unreachable_004c1a30)\n                       (PTR_s_in_a_linker_script_004c191c + 0x7090,0x2a9,\n                        PTR_s_in_a_linker_script_004c191c + 0x7414);\n    return uVar12;\n  }\n  this = (Dwarf_info_reader *)*param_1;\n  iVar17 = param_1[3];\n  iVar20 = *(int *)(this + 0x2c) + *(int *)(this + 0x3c) + iVar17;\n  if ((uint)(*(int *)(this + 0x2c) + *(int *)(this + 0x3c) + *(int *)(this + 0x44)) < iVar20 + 1U) {\n    gold::Dwarf_info_reader::warn_corrupt_debug_section(this);\n    return 0;\n  }\n  local_38 = (vector<gold::Dwarf_die::Attribute_value,std::allocator<gold::Dwarf_die::Attribute_value>>\n              *)(param_1 + 0xb);\n  if (iVar20 == 0) {\n    return 0;\n  }\n  iVar21 = *(int *)(iVar8 + 0xc) - *(int *)(iVar8 + 8);\n  local_44 = (uint *)(iVar20 + param_1[5]);\n  uVar19 = iVar21 >> 3;\n  if (0xaaaaaaa < uVar19) {\n    uVar12 = (*(code *)PTR___throw_length_error_004c1e74)(PTR_s__s_004c1a50 + -0xda4);\n    return uVar12;\n  }\n  puVar23 = (undefined8 *)param_1[0xb];\n  if ((uint)((param_1[0xd] - (int)puVar23 >> 3) * -0x55555555) < uVar19) {\n    puVar13 = (undefined8 *)param_1[0xc];\n    iVar17 = (int)puVar13 - (int)puVar23;\n    if (uVar19 == 0) {\n      iVar10 = 0;\n      puVar24 = puVar23;\n    }\n    else {\n      local_40 = puVar13;\n      iVar10 = (*(code *)PTR_operator_new_004c13a8)(uVar19 * 0x18);\n      puVar13 = local_40;\n      puVar24 = (undefined8 *)param_1[0xb];\n    }\n    if (puVar23 != puVar13) {\n      (*(code *)PTR_memmove_004c5af8)(iVar10,puVar23,iVar17);\n    }\n    if (puVar24 != (undefined8 *)0x0) {\n      (*(code *)PTR_operator_delete_004c12fc)(puVar24);\n    }\n    iVar8 = param_1[10];\n    param_1[0xb] = iVar10;\n    param_1[0xc] = iVar10 + iVar17;\n    param_1[0xd] = iVar10 + uVar19 * 0x18;\n    if (uVar19 != 0) goto LAB_002e2d90;\nLAB_002e2fb8:\n    if (iVar8 == 0) {\n      uVar12 = (*(code *)PTR_do_gold_unreachable_004c1a30)\n                         (PTR_s_in_a_linker_script_004c191c + 0x7108,0x206,\n                          PTR_s_in_a_linker_script_004c191c + 0x7404);\n      return uVar12;\n    }\n    iVar17 = param_1[3];\n  }\n  else if (uVar19 != 0) {\nLAB_002e2d90:\n    local_3c = (code *)PTR_lookup_reloc_004c2994;\n    iVar17 = 0;\n    local_34 = (code *)PTR_read_from_pointer<64>_004c2998;\n    local_40 = &local_50;\nLAB_002e2db4:\n    puVar9 = (uint *)(*(int *)(iVar8 + 8) + iVar17);\n    uVar19 = puVar9[1];\n    uVar22 = *puVar9;\n    uVar26 = local_60;\n    if (uVar19 == 0x16) goto LAB_002e31a8;\nLAB_002e2dd0:\n    puVar9 = (uint *)((int)local_44 - iVar20);\n    puVar18 = (uint *)((int)puVar9 + param_1[3]);\n    iVar8 = (uint)(puVar18 < puVar9) + ((int)puVar9 >> 0x1f) + param_1[2];\n    local_64 = uVar19;\n    if (uVar19 == 0xe) goto LAB_002e31fc;\n    do {\n      local_60._4_4_ = (uint *)uVar26;\n      local_58 = 0;\n      local_68 = uVar22;\n      local_64 = uVar19;\n      local_60 = uVar26;\n      if (0xe < uVar19) {\n        if (uVar19 == 0x15) {\n          if ((char)*(byte *)local_44 < '\0') {\n            uVar26 = (*(code *)PTR_read_unsigned_LEB_128_x_004c2980)\n                               ((uint *)((int)local_44 + 1),&local_48);\n            local_44 = (uint *)((int)local_44 + local_48);\n          }\n          else {\n            uVar26 = (ulonglong)*(byte *)local_44;\n            local_48 = 1;\n            local_44 = (uint *)((int)local_44 + 1);\n          }\n          goto joined_r0x002e3998;\n        }\n        if (0x15 < uVar19) {\n          if (uVar19 == 0x19) {\n            local_60._4_4_ = (uint *)0x1;\n            local_60._0_4_ = (uint *)0x0;\n          }\n          else {\n            if (uVar19 < 0x1a) {\n              if (uVar19 != 0x17) {\n                if (uVar19 != 0x18) {\n                  return 0;\n                }\n                goto LAB_002e32bc;\n              }\n              iVar8 = *param_1;\n              if (*(int *)(iVar8 + 0x48) == 4) {\n                pcVar25 = *(code **)(**(int **)(iVar8 + 8) + 0xc);\n                if (pcVar25 == (code *)PTR_is_big_endian_004c2950) {\n                  local_30 = puVar18;\n                  iVar8 = (**(code **)(**(int **)(iVar8 + 8) + 0xe8))();\n                }\n                else {\n                  local_30 = puVar18;\n                  iVar8 = (*pcVar25)();\n                }\n                uVar15 = *local_44;\n                if (iVar8 == 0) {\n                  uVar15 = (((uVar15 >> 0x10) << 0x18 | (uVar15 >> 0x18) << 0x10) >> 0x10) +\n                           ((uVar15 & 0xff) << 8 | uVar15 >> 8 & 0xff) * 0x10000;\n                }\n                local_44 = local_44 + 1;\n                uVar26 = (ulonglong)uVar15;\n              }\n              else {\n                local_30 = puVar18;\n                uVar26 = (*local_34)(iVar8,&local_44);\n              }\n              iVar8 = *param_1;\n              goto LAB_002e3970;\n            }\n            if (uVar19 != 0x20) {\n              if (uVar19 < 0x20) {\n                return 0;\n              }\n              if (1 < uVar19 - 0x1f01) {\n                return 0;\n              }\nLAB_002e34d8:\n              if ((char)*(byte *)local_44 < '\0') {\n                uVar26 = (*(code *)PTR_read_unsigned_LEB_128_x_004c2980)\n                                   ((uint *)((int)local_44 + 1),&local_48);\n                local_44 = (uint *)((int)local_44 + local_48);\n              }\n              else {\n                uVar26 = (ulonglong)*(byte *)local_44;\n                local_48 = 1;\n                local_44 = (uint *)((int)local_44 + 1);\n              }\n              goto LAB_002e382c;\n            }\n            pcVar25 = *(code **)(**(int **)(*param_1 + 8) + 0xc);\n            if (pcVar25 == (code *)PTR_is_big_endian_004c2950) {\n              iVar8 = (**(code **)(**(int **)(*param_1 + 8) + 0xe8))();\n            }\n            else {\n              iVar8 = (*pcVar25)();\n            }\n            local_60._4_4_ = (uint *)local_44[1];\n            local_60._0_4_ = (uint *)*local_44;\n            if (iVar8 == 0) {\n              uVar15 = (uint)local_60._4_4_ & 0xff;\n              uVar16 = (uint)local_60._4_4_ >> 8;\n              uVar2 = (uint)local_60._4_4_ >> 0x10;\n              uVar4 = (uint)local_60._4_4_ >> 0x18;\n              local_60._4_4_ =\n                   (uint *)(((((uint)local_60._0_4_ >> 0x10) << 0x18 |\n                             ((uint)local_60._0_4_ >> 0x18) << 0x10) >> 0x10) +\n                           (((uint)local_60._0_4_ & 0xff) << 8 | (uint)local_60._0_4_ >> 8 & 0xff) *\n                           0x10000);\n              local_60._0_4_ =\n                   (uint *)(((uVar2 << 0x18 | uVar4 << 0x10) >> 0x10) +\n                           (uVar15 << 8 | uVar16 & 0xff) * 0x10000);\n            }\n            local_44 = local_44 + 2;\n          }\n          uVar7 = CONCAT44(local_60._0_4_,local_60._4_4_);\n          if (uVar22 == 0x6e) goto LAB_002e313c;\n          uVar7 = CONCAT44(local_60._0_4_,local_60._4_4_);\n          uVar26 = CONCAT44(local_60._0_4_,local_60._4_4_);\n          if (uVar22 == 0x2007) goto LAB_002e313c;\n          goto joined_r0x002e3124;\n        }\n        if (uVar19 == 0x11) {\n          puVar9 = (uint *)((int)local_44 + 1);\n          uVar15 = (uint)*(byte *)local_44;\n          uVar26 = (ulonglong)uVar15;\n          local_44 = puVar9;\n          if (uVar22 == 0x31) goto LAB_002e30bc;\n          if (0x31 < uVar22) {\n            uVar26 = (ulonglong)uVar15;\n            if ((uVar22 != 0x6e) && (uVar26 = (ulonglong)uVar15, uVar22 != 0x2007)) {\n              uVar7 = (ulonglong)uVar15;\n              if (uVar22 != 0x47) goto LAB_002e313c;\n              param_1[0x18] = 0;\n              param_1[0x19] = uVar15;\n              uVar7 = (ulonglong)uVar15;\n              goto LAB_002e313c;\n            }\n            goto LAB_002e3858;\n          }\n          if (uVar22 == 1) {\n            param_1[8] = 0;\n            param_1[9] = uVar15;\n            uVar7 = (ulonglong)uVar15;\n            goto LAB_002e313c;\n          }\n          goto joined_r0x002e3124;\n        }\n        if (uVar19 < 0x12) {\n          if (uVar19 == 0xf) goto LAB_002e34d8;\n          if (uVar19 != 0x10) {\n            return 0;\n          }\n          iVar10 = *param_1;\n          iVar8 = *(int *)(iVar10 + 0x48);\n          if (*(uint *)(iVar10 + 0x50) < 3) {\n            iVar8 = *(int *)(iVar10 + 0x4c);\n          }\n          if (iVar8 == 4) {\n            pcVar25 = *(code **)(**(int **)(iVar10 + 8) + 0xc);\n            if (pcVar25 == (code *)PTR_is_big_endian_004c2950) {\n              local_30 = puVar18;\n              iVar8 = (**(code **)(**(int **)(iVar10 + 8) + 0xe8))();\n            }\n            else {\n              local_30 = puVar18;\n              iVar8 = (*pcVar25)();\n            }\n            uVar15 = *local_44;\n            if (iVar8 == 0) {\n              uVar15 = (((uVar15 >> 0x10) << 0x18 | (uVar15 >> 0x18) << 0x10) >> 0x10) +\n                       ((uVar15 & 0xff) << 8 | uVar15 >> 8 & 0xff) * 0x10000;\n            }\n            local_44 = local_44 + 1;\n            uVar26 = (ulonglong)uVar15;\n          }\n          else {\n            local_30 = puVar18;\n            uVar26 = (*local_34)(iVar10,&local_44);\n          }\n          local_50 = uVar26;\n          local_58 = (*local_3c)(*param_1);\n          uVar26 = local_50;\n        }\n        else {\n          if (uVar19 == 0x13) {\n            pcVar25 = *(code **)(**(int **)(*param_1 + 8) + 0xc);\n            if (pcVar25 == (code *)PTR_is_big_endian_004c2950) {\n              local_30 = puVar18;\n              iVar8 = (**(code **)(**(int **)(*param_1 + 8) + 0xe8))();\n            }\n            else {\n              local_30 = puVar18;\n              iVar8 = (*pcVar25)();\n            }\n            uVar15 = *local_44;\n            if (iVar8 == 0) {\n              uVar15 = (((uVar15 >> 0x10) << 0x18 | (uVar15 >> 0x18) << 0x10) >> 0x10) +\n                       ((uVar15 & 0xff) << 8 | uVar15 >> 8 & 0xff) * 0x10000;\n            }\n            local_44 = local_44 + 1;\n            iVar8 = *param_1;\n            uVar26 = (ulonglong)uVar15;\n          }\n          else {\n            if (uVar19 < 0x14) {\n              pcVar25 = *(code **)(**(int **)(*param_1 + 8) + 0xc);\n              if (pcVar25 == (code *)PTR_is_big_endian_004c2950) {\n                iVar8 = (**(code **)(**(int **)(*param_1 + 8) + 0xe8))();\n              }\n              else {\n                iVar8 = (*pcVar25)();\n              }\n              uVar6 = *(ushort *)local_44;\n              if (iVar8 == 0) {\n                uVar6 = CONCAT11(*(byte *)((int)local_44 + 1),*(byte *)local_44);\n              }\n              local_44 = (uint *)((int)local_44 + 2);\n              uVar26 = (ulonglong)uVar6;\n              goto joined_r0x002e3998;\n            }\n            pcVar25 = *(code **)(**(int **)(*param_1 + 8) + 0xc);\n            if (pcVar25 == (code *)PTR_is_big_endian_004c2950) {\n              local_30 = puVar18;\n              iVar8 = (**(code **)(**(int **)(*param_1 + 8) + 0xe8))();\n            }\n            else {\n              local_30 = puVar18;\n              iVar8 = (*pcVar25)();\n            }\n            uVar15 = local_44[1];\n            uVar16 = *local_44;\n            if (iVar8 == 0) {\n              uVar2 = uVar15 & 0xff;\n              uVar4 = uVar15 >> 8;\n              uVar3 = uVar15 >> 0x10;\n              uVar5 = uVar15 >> 0x18;\n              uVar15 = (((uVar16 >> 0x10) << 0x18 | (uVar16 >> 0x18) << 0x10) >> 0x10) +\n                       ((uVar16 & 0xff) << 8 | uVar16 >> 8 & 0xff) * 0x10000;\n              uVar16 = ((uVar3 << 0x18 | uVar5 << 0x10) >> 0x10) +\n                       (uVar2 << 8 | uVar4 & 0xff) * 0x10000;\n            }\n            uVar26 = CONCAT44(uVar16,uVar15);\n            local_44 = local_44 + 2;\n            iVar8 = *param_1;\n          }\nLAB_002e3970:\n          local_50 = uVar26;\n          local_58 = (*local_3c)(iVar8);\n          uVar26 = local_50;\n        }\njoined_r0x002e3998:\n        if (uVar22 == 0x31) {\nLAB_002e30bc:\n          *(ulonglong *)(param_1 + 0x1a) = uVar26;\n          uVar7 = uVar26;\n          goto LAB_002e313c;\n        }\n        if (uVar22 < 0x32) {\n          uVar7 = uVar26;\n          if (uVar22 != 1) goto LAB_002e313c;\nLAB_002e39b4:\n          uVar7 = uVar26;\n          if (local_58 != 0) goto LAB_002e313c;\n          *(ulonglong *)(param_1 + 8) = uVar26;\n          goto LAB_002e313c;\n        }\n        if ((uVar22 != 0x6e) && (uVar22 != 0x2007)) {\nLAB_002e339c:\n          uVar7 = uVar26;\n          if (uVar22 != 0x47) goto LAB_002e313c;\n          *(ulonglong *)(param_1 + 0x18) = uVar26;\n          goto LAB_002e313c;\n        }\n        goto LAB_002e3858;\n      }\n      if (uVar19 == 7) {\n        pcVar25 = *(code **)(**(int **)(*param_1 + 8) + 0xc);\n        if (pcVar25 == (code *)PTR_is_big_endian_004c2950) {\n          local_30 = puVar18;\n          iVar10 = (**(code **)(**(int **)(*param_1 + 8) + 0xe8))();\n        }\n        else {\n          local_30 = puVar18;\n          iVar10 = (*pcVar25)();\n        }\n        local_50._4_4_ = (uint *)local_44[1];\n        puVar9 = (uint *)*local_44;\n        if (iVar10 == 0) {\n          uVar15 = (uint)local_50._4_4_ & 0xff;\n          uVar16 = (uint)local_50._4_4_ >> 8;\n          uVar2 = (uint)local_50._4_4_ >> 0x10;\n          uVar4 = (uint)local_50._4_4_ >> 0x18;\n          local_50._4_4_ =\n               (uint *)(((((uint)puVar9 >> 0x10) << 0x18 | ((uint)puVar9 >> 0x18) << 0x10) >> 0x10)\n                       + (((uint)puVar9 & 0xff) << 8 | (uint)puVar9 >> 8 & 0xff) * 0x10000);\n          puVar9 = (uint *)(((uVar2 << 0x18 | uVar4 << 0x10) >> 0x10) +\n                           (uVar15 << 8 | uVar16 & 0xff) * 0x10000);\n        }\n        local_44 = local_44 + 2;\n        iVar10 = *param_1;\n        local_50._0_4_ = puVar9;\nLAB_002e3708:\n        local_58 = (*local_3c)(iVar10,puVar9,iVar8,local_30,local_40);\n        local_60._4_4_ = local_50._4_4_;\n        local_60._0_4_ = local_50._0_4_;\n        goto LAB_002e355c;\n      }\n      if (7 < uVar19) {\n        if (uVar19 == 10) {\n          local_60._0_4_ = (uint *)((int)local_44 + 1);\n          local_58 = (uint)*(byte *)local_44;\n          local_44 = (uint *)((int)local_60._0_4_ + local_58);\n          goto LAB_002e355c;\n        }\n        if (uVar19 < 0xb) {\n          if (uVar19 != 8) {\n            if (uVar19 != 9) {\n              return 0;\n            }\nLAB_002e32bc:\n            uVar15 = (uint)*(byte *)local_44;\n            pbVar14 = (byte *)((int)local_44 + 1);\n            if ((char)*(byte *)local_44 < '\0') {\n              (*(code *)PTR_read_unsigned_LEB_128_x_004c2980)(pbVar14,&local_48);\n              pbVar14 = (byte *)((int)local_44 + local_48);\n              uVar15 = extraout_v1_00;\n            }\n            else {\n              local_48 = 1;\n            }\n            uVar26 = CONCAT44(pbVar14,local_60._4_4_);\n            local_58 = uVar15;\n            local_44 = (uint *)((int)local_44 + uVar15 + local_48);\n            goto LAB_002e382c;\n          }\n          local_60._0_4_ = local_44;\n          local_30 = local_44;\n          local_48 = (*(code *)PTR_strlen_004c5b9c)(local_44);\n          uVar26 = CONCAT44(local_60._0_4_,local_60._4_4_);\n          local_44 = (uint *)((int)local_30 + local_48 + 1);\n          uVar7 = CONCAT44(local_60._0_4_,local_60._4_4_);\n          if (uVar22 == 0x31) goto LAB_002e313c;\n          if (0x31 < uVar22) {\n            if ((uVar22 != 0x6e) &&\n               (uVar7 = CONCAT44(local_60._0_4_,local_60._4_4_), uVar22 != 0x2007))\n            goto LAB_002e313c;\n            param_1[0x12] = (int)local_30;\n            uVar7 = uVar26;\n            goto LAB_002e313c;\n          }\nLAB_002e3118:\n          uVar7 = uVar26;\n          if (uVar22 == 1) goto LAB_002e313c;\njoined_r0x002e3124:\n          uVar7 = uVar26;\n          if (uVar22 != 3) goto LAB_002e313c;\n          local_60._0_4_ = (uint *)(uVar26 >> 0x20);\n          if (uVar19 == 8) {\n            param_1[0xf] = (int)local_60._0_4_;\n            goto LAB_002e313c;\n          }\n          if (uVar19 != 0xe) goto LAB_002e313c;\n          goto LAB_002e3284;\n        }\n        if (uVar19 < 0xd) {\n          uVar26 = (ulonglong)*(byte *)local_44;\n          local_44 = (uint *)((int)local_44 + 1);\nLAB_002e382c:\n          uVar7 = uVar26;\n          if (uVar22 == 0x31) goto LAB_002e313c;\n          if (uVar22 < 0x32) goto LAB_002e3118;\n        }\n        else {\n          bVar1 = *(byte *)local_44;\n          uVar15 = (uint)bVar1;\n          puVar9 = (uint *)((int)local_44 + 1);\n          if ((char)bVar1 < '\0') {\n            uVar26 = (*(code *)PTR_read_signed_LEB_128_x_004c297c)(puVar9,&local_48,uVar15);\n            puVar9 = (uint *)((int)local_44 + local_48);\n          }\n          else {\n            local_48 = 1;\n            uVar26 = (ulonglong)uVar15;\n            if ((bVar1 & 0x40) != 0) {\n              uVar26 = CONCAT44(0xffffffff,uVar15 | 0xffffff80);\n            }\n          }\n          local_44 = puVar9;\n          uVar7 = uVar26;\n          if (uVar22 == 0x31) goto LAB_002e313c;\n          if (uVar22 < 0x32) {\n            puVar9 = (uint *)param_1[0xc];\n            if (puVar9 != (uint *)param_1[0xd]) goto LAB_002e314c;\nLAB_002e2f98:\n            iVar17 = iVar17 + 8;\n            local_60 = uVar26;\n            std::\n            vector<gold::Dwarf_die::Attribute_value,std::allocator<gold::Dwarf_die::Attribute_value>>\n            ::_M_realloc_insert<gold::Dwarf_die::Attribute_value_const&>(local_38,puVar9,&local_68);\n            iVar8 = param_1[10];\n            if (iVar17 == iVar21) goto LAB_002e2fb8;\n            goto LAB_002e2db4;\n          }\n        }\n        if ((uVar22 != 0x6e) && (uVar7 = uVar26, uVar22 != 0x2007)) goto LAB_002e313c;\nLAB_002e3858:\n        local_60._0_4_ = (uint *)(uVar26 >> 0x20);\n        uVar7 = uVar26;\n        if (uVar19 == 8) {\n          param_1[0x12] = (int)local_60._0_4_;\n          goto LAB_002e313c;\n        }\n        if (uVar19 != 0xe) goto LAB_002e313c;\n        goto LAB_002e387c;\n      }\n      if (uVar19 == 4) {\n        pcVar25 = *(code **)(**(int **)(*param_1 + 8) + 0xc);\n        if (pcVar25 == (code *)PTR_is_big_endian_004c2950) {\n          iVar8 = (**(code **)(**(int **)(*param_1 + 8) + 0xe8))();\n        }\n        else {\n          iVar8 = (*pcVar25)();\n        }\n        local_58 = *local_44;\n        if (iVar8 == 0) {\n          local_58 = (((local_58 >> 0x10) << 0x18 | (local_58 >> 0x18) << 0x10) >> 0x10) +\n                     ((local_58 & 0xff) << 8 | local_58 >> 8 & 0xff) * 0x10000;\n        }\n        local_60._0_4_ = local_44 + 1;\n        local_44 = (uint *)((int)local_60._0_4_ + local_58);\nLAB_002e355c:\n        uVar26 = CONCAT44(local_60._0_4_,local_60._4_4_);\n        uVar7 = uVar26;\n        if (uVar22 == 0x31) goto LAB_002e313c;\n        if (uVar22 < 0x32) goto LAB_002e3118;\n        puVar9 = (uint *)param_1[0xc];\n      }\n      else {\n        if (4 < uVar19) {\n          if (uVar19 != 5) {\n            if (uVar19 != 6) {\n              return 0;\n            }\n            pcVar25 = *(code **)(**(int **)(*param_1 + 8) + 0xc);\n            if (pcVar25 == (code *)PTR_is_big_endian_004c2950) {\n              local_30 = puVar18;\n              iVar10 = (**(code **)(**(int **)(*param_1 + 8) + 0xe8))();\n            }\n            else {\n              local_30 = puVar18;\n              iVar10 = (*pcVar25)();\n            }\n            puVar9 = (uint *)*local_44;\n            if (iVar10 == 0) {\n              puVar9 = (uint *)(((((uint)puVar9 >> 0x10) << 0x18 | ((uint)puVar9 >> 0x18) << 0x10)\n                                >> 0x10) +\n                               (((uint)puVar9 & 0xff) << 8 | (uint)puVar9 >> 8 & 0xff) * 0x10000);\n            }\n            local_44 = local_44 + 1;\n            iVar10 = *param_1;\n            local_50._0_4_ = (uint *)0x0;\n            local_50._4_4_ = puVar9;\n            goto LAB_002e3708;\n          }\n          pcVar25 = *(code **)(**(int **)(*param_1 + 8) + 0xc);\n          if (pcVar25 == (code *)PTR_is_big_endian_004c2950) {\n            iVar8 = (**(code **)(**(int **)(*param_1 + 8) + 0xe8))();\n          }\n          else {\n            iVar8 = (*pcVar25)();\n          }\n          uVar6 = *(ushort *)local_44;\n          if (iVar8 == 0) {\n            uVar6 = CONCAT11(*(byte *)((int)local_44 + 1),*(byte *)local_44);\n          }\n          local_60._4_4_ = (uint *)(uint)uVar6;\n          local_44 = (uint *)((int)local_44 + 2);\n          local_60._0_4_ = (uint *)0x0;\n          goto LAB_002e355c;\n        }\n        if (uVar19 != 1) {\n          if (uVar19 != 3) {\n            return 0;\n          }\n          pcVar25 = *(code **)(**(int **)(*param_1 + 8) + 0xc);\n          if (pcVar25 == (code *)PTR_is_big_endian_004c2950) {\n            iVar8 = (**(code **)(**(int **)(*param_1 + 8) + 0xe8))();\n          }\n          else {\n            iVar8 = (*pcVar25)();\n          }\n          uVar6 = *(ushort *)local_44;\n          if (iVar8 == 0) {\n            uVar6 = CONCAT11(*(byte *)((int)local_44 + 1),*(byte *)local_44);\n          }\n          local_58 = (uint)uVar6;\n          local_60._0_4_ = (uint *)((int)local_44 + 2);\n          local_44 = (uint *)((int)local_60._0_4_ + local_58);\n          goto LAB_002e355c;\n        }\n        iVar8 = *param_1;\n        if (*(int *)(iVar8 + 0x4c) == 4) {\n          pcVar25 = *(code **)(**(int **)(iVar8 + 8) + 0xc);\n          if (pcVar25 == (code *)PTR_is_big_endian_004c2950) {\n            local_30 = puVar18;\n            iVar8 = (**(code **)(**(int **)(iVar8 + 8) + 0xe8))();\n          }\n          else {\n            local_30 = puVar18;\n            iVar8 = (*pcVar25)();\n          }\n          uVar15 = *local_44;\n          if (iVar8 == 0) {\n            uVar15 = (((uVar15 >> 0x10) << 0x18 | (uVar15 >> 0x18) << 0x10) >> 0x10) +\n                     ((uVar15 & 0xff) << 8 | uVar15 >> 8 & 0xff) * 0x10000;\n          }\n          local_44 = local_44 + 1;\n          uVar26 = (ulonglong)uVar15;\n        }\n        else {\n          local_30 = puVar18;\n          uVar26 = (*local_34)(iVar8,&local_44);\n        }\n        local_50 = uVar26;\n        local_58 = (*local_3c)(*param_1);\n        uVar26 = local_50;\n        if (uVar22 == 0x31) goto LAB_002e30bc;\n        if (uVar22 < 0x32) {\n          if (uVar22 != 1) goto joined_r0x002e3124;\n          goto LAB_002e39b4;\n        }\n        uVar7 = local_50;\n        if (uVar22 == 0x6e) goto LAB_002e313c;\n        if (uVar22 != 0x2007) goto LAB_002e339c;\n        puVar9 = (uint *)param_1[0xc];\n      }\n      while( true ) {\n        if (puVar9 == (uint *)param_1[0xd]) goto LAB_002e2f98;\nLAB_002e314c:\n        local_60._0_4_ = (uint *)(uVar26 >> 0x20);\n        local_60._4_4_ = (uint *)uVar26;\n        iVar17 = iVar17 + 8;\n        puVar9[1] = local_64;\n        puVar9[2] = (uint)local_60._0_4_;\n        *puVar9 = local_68;\n        puVar9[3] = (uint)local_60._4_4_;\n        puVar9[4] = local_58;\n        puVar9[5] = local_54;\n        param_1[0xc] = (int)(puVar9 + 6);\n        iVar8 = param_1[10];\n        local_60 = uVar26;\n        if (iVar17 == iVar21) goto LAB_002e2fb8;\n        puVar9 = (uint *)(*(int *)(iVar8 + 8) + iVar17);\n        uVar19 = puVar9[1];\n        uVar22 = *puVar9;\n        if (uVar19 != 0x16) goto LAB_002e2dd0;\nLAB_002e31a8:\n        uVar19 = (uint)*(byte *)local_44;\n        puVar9 = (uint *)((int)local_44 + 1);\n        if ((char)*(byte *)local_44 < '\0') {\n          local_60 = uVar26;\n          (*(code *)PTR_read_unsigned_LEB_128_x_004c2980)(puVar9,&local_48,uVar19);\n          puVar9 = (uint *)((int)local_44 + local_48);\n          uVar19 = extraout_v1;\n          uVar26 = local_60;\n        }\n        else {\n          local_48 = 1;\n        }\n        puVar11 = (uint *)((int)puVar9 - iVar20);\n        puVar18 = (uint *)((int)puVar11 + param_1[3]);\n        iVar8 = (uint)(puVar18 < puVar11) + ((int)puVar11 >> 0x1f) + param_1[2];\n        local_64 = uVar19;\n        local_44 = puVar9;\n        if (uVar19 != 0xe) break;\nLAB_002e31fc:\n        local_58 = 0;\n        iVar8 = *param_1;\n        local_68 = uVar22;\n        local_30 = puVar18;\n        local_60 = uVar26;\n        if (*(int *)(iVar8 + 0x48) == 4) {\n          pcVar25 = *(code **)(**(int **)(iVar8 + 8) + 0xc);\n          if (pcVar25 == (code *)PTR_is_big_endian_004c2950) {\n            iVar8 = (**(code **)(**(int **)(iVar8 + 8) + 0xe8))();\n          }\n          else {\n            iVar8 = (*pcVar25)();\n          }\n          uVar19 = *local_44;\n          if (iVar8 == 0) {\n            uVar19 = (((uVar19 >> 0x10) << 0x18 | (uVar19 >> 0x18) << 0x10) >> 0x10) +\n                     ((uVar19 & 0xff) << 8 | uVar19 >> 8 & 0xff) * 0x10000;\n          }\n          local_44 = local_44 + 1;\n          uVar26 = (ulonglong)uVar19;\n        }\n        else {\n          uVar26 = (*local_34)(iVar8,&local_44);\n        }\n        local_50 = uVar26;\n        local_58 = (*local_3c)(*param_1);\n        uVar7 = local_50;\n        if (uVar22 != 0x31) {\n          uVar26 = local_50;\n          if (uVar22 < 0x32) {\n            if ((uVar22 != 1) && (uVar22 == 3)) {\nLAB_002e3284:\n              param_1[0x16] = local_58;\n              *(ulonglong *)(param_1 + 0x10) = uVar26;\n              uVar7 = uVar26;\n            }\n          }\n          else {\n            if (uVar22 == 0x6e) {\nLAB_002e387c:\n              param_1[0x16] = local_58;\n            }\n            else {\n              if (uVar22 != 0x2007) goto LAB_002e313c;\n              param_1[0x16] = local_58;\n            }\n            *(ulonglong *)(param_1 + 0x14) = uVar26;\n            uVar7 = uVar26;\n          }\n        }\nLAB_002e313c:\n        puVar9 = (uint *)param_1[0xc];\n        uVar26 = uVar7;\n      }\n    } while( true );\n  }\n  uVar22 = (int)local_44 - iVar20;\n  uVar19 = uVar22 + iVar17;\n  iVar17 = (uint)(uVar19 < uVar22) + ((int)uVar22 >> 0x1f) + param_1[2];\n  if (*(int *)(iVar8 + 4) < 0) {\n    param_1[6] = iVar17;\n    param_1[7] = uVar19;\n  }\n  else {\n    param_1[8] = iVar17;\n    param_1[9] = uVar19;\n  }\n  *(undefined1 *)(param_1 + 0xe) = 1;\n  return 1;\n}" { (declaration "byte bVar1;" type_identifier identifier ;) (declaration "uint uVar2;" type_identifier identifier ;) (declaration "uint uVar3;" type_identifier identifier ;) (declaration "uint uVar4;" type_identifier identifier ;) (declaration "uint uVar5;" type_identifier identifier ;) (declaration "ushort uVar6;" type_identifier identifier ;) (declaration "ulonglong uVar7;" type_identifier identifier ;) (declaration "int iVar8;" primitive_type identifier ;) (declaration "uint *puVar9;" type_identifier (pointer_declarator "*puVar9" * identifier) ;) (declaration "int iVar10;" primitive_type identifier ;) (declaration "uint *puVar11;" type_identifier (pointer_declarator "*puVar11" * identifier) ;) (declaration "undefined4 uVar12;" type_identifier identifier ;) (declaration "uint extraout_v1;" type_identifier identifier ;) (declaration "undefined8 *puVar13;" type_identifier (pointer_declarator "*puVar13" * identifier) ;) (declaration "uint extraout_v1_00;" type_identifier identifier ;) (declaration "Dwarf_info_reader *this;" type_identifier (pointer_declarator "*this" * identifier) ;) (declaration "byte *pbVar14;" type_identifier (pointer_declarator "*pbVar14" * identifier) ;) (declaration "uint uVar15;" type_identifier identifier ;) (declaration "uint uVar16;" type_identifier identifier ;) (declaration "int iVar17;" primitive_type identifier ;) (declaration "uint *puVar18;" type_identifier (pointer_declarator "*puVar18" * identifier) ;) (declaration "uint uVar19;" type_identifier identifier ;) (declaration "int iVar20;" primitive_type identifier ;) (declaration "int iVar21;" primitive_type identifier ;) (declaration "uint uVar22;" type_identifier identifier ;) (declaration "undefined8 *puVar23;" type_identifier (pointer_declarator "*puVar23" * identifier) ;) (declaration "undefined8 *puVar24;" type_identifier (pointer_declarator "*puVar24" * identifier) ;) (declaration "code *pcVar25;" type_identifier (pointer_declarator "*pcVar25" * identifier) ;) (declaration "ulonglong uVar26;" type_identifier identifier ;) (declaration "uint local_68;" type_identifier identifier ;) (declaration "uint local_64;" type_identifier identifier ;) (declaration "undefined8 local_60;" type_identifier identifier ;) (declaration "uint local_58;" type_identifier identifier ;) (declaration "uint local_54;" type_identifier identifier ;) (declaration "undefined8 local_50;" type_identifier identifier ;) (declaration "int local_48;" primitive_type identifier ;) (declaration "uint *local_44;" type_identifier (pointer_declarator "*local_44" * identifier) ;) (declaration "undefined8 *local_40;" type_identifier (pointer_declarator "*local_40" * identifier) ;) (declaration "code *local_3c;" type_identifier (pointer_declarator "*local_3c" * identifier) ;) (ERROR "vector<gold::" (binary_expression "vector<gold" identifier < identifier) : :) (labeled_statement "Dwarf_die::Attribute_value,std::allocator<gold::Dwarf_die::Attribute_value>>\n  *local_38;" 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  *local_38;" statement_identifier : (ERROR ":" :) (expression_statement "Attribute_value>>\n  *local_38;" (binary_expression "Attribute_value>>\n  *local_38" identifier >> (pointer_expression "*local_38" * identifier)) ;))) (declaration "code *local_34;" type_identifier (pointer_declarator "*local_34" * identifier) ;) (declaration "uint *local_30;" type_identifier (pointer_declarator "*local_30" * identifier) ;) (expression_statement "iVar8 = param_1[10];" (assignment_expression "iVar8 = param_1[10]" identifier = (subscript_expression "param_1[10]" identifier [ number_literal ])) ;) (if_statement "if (iVar8 == 0) {\n    uVar12 = (*(code *)PTR_do_gold_unreachable_004c1a30)\n                       (PTR_s_in_a_linker_script_004c191c + 0x7090,0x2a9,\n                        PTR_s_in_a_linker_script_004c191c + 0x7414);\n    return uVar12;\n  }" if (parenthesized_expression "(iVar8 == 0)" ( (binary_expression "iVar8 == 0" identifier == number_literal) )) (compound_statement "{\n    uVar12 = (*(code *)PTR_do_gold_unreachable_004c1a30)\n                       (PTR_s_in_a_linker_script_004c191c + 0x7090,0x2a9,\n                        PTR_s_in_a_linker_script_004c191c + 0x7414);\n    return uVar12;\n  }" { (expression_statement "uVar12 = (*(code *)PTR_do_gold_unreachable_004c1a30)\n                       (PTR_s_in_a_linker_script_004c191c + 0x7090,0x2a9,\n                        PTR_s_in_a_linker_script_004c191c + 0x7414);" (assignment_expression "uVar12 = (*(code *)PTR_do_gold_unreachable_004c1a30)\n                       (PTR_s_in_a_linker_script_004c191c + 0x7090,0x2a9,\n                        PTR_s_in_a_linker_script_004c191c + 0x7414)" identifier = (call_expression "(*(code *)PTR_do_gold_unreachable_004c1a30)\n                       (PTR_s_in_a_linker_script_004c191c + 0x7090,0x2a9,\n                        PTR_s_in_a_linker_script_004c191c + 0x7414)" (parenthesized_expression "(*(code *)PTR_do_gold_unreachable_004c1a30)" ( (pointer_expression "*(code *)PTR_do_gold_unreachable_004c1a30" * (cast_expression "(code *)PTR_do_gold_unreachable_004c1a30" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(PTR_s_in_a_linker_script_004c191c + 0x7090,0x2a9,\n                        PTR_s_in_a_linker_script_004c191c + 0x7414)" ( (binary_expression "PTR_s_in_a_linker_script_004c191c + 0x7090" identifier + number_literal) , number_literal , (binary_expression "PTR_s_in_a_linker_script_004c191c + 0x7414" identifier + number_literal) )))) ;) (return_statement "return uVar12;" return identifier ;) })) (expression_statement "this = (Dwarf_info_reader *)*param_1;" (assignment_expression "this = (Dwarf_info_reader *)*param_1" identifier = (cast_expression "(Dwarf_info_reader *)*param_1" ( (type_descriptor "Dwarf_info_reader *" type_identifier (abstract_pointer_declarator "*" *)) ) (pointer_expression "*param_1" * identifier))) ;) (expression_statement "iVar17 = param_1[3];" (assignment_expression "iVar17 = param_1[3]" identifier = (subscript_expression "param_1[3]" identifier [ number_literal ])) ;) (expression_statement "iVar20 = *(int *)(this + 0x2c) + *(int *)(this + 0x3c) + iVar17;" (assignment_expression "iVar20 = *(int *)(this + 0x2c) + *(int *)(this + 0x3c) + iVar17" identifier = (binary_expression "*(int *)(this + 0x2c) + *(int *)(this + 0x3c) + iVar17" (binary_expression "*(int *)(this + 0x2c) + *(int *)(this + 0x3c)" (pointer_expression "*(int *)(this + 0x2c)" * (cast_expression "(int *)(this + 0x2c)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(this + 0x2c)" ( (binary_expression "this + 0x2c" identifier + number_literal) )))) + (pointer_expression "*(int *)(this + 0x3c)" * (cast_expression "(int *)(this + 0x3c)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(this + 0x3c)" ( (binary_expression "this + 0x3c" identifier + number_literal) ))))) + identifier)) ;) (if_statement "if ((uint)(*(int *)(this + 0x2c) + *(int *)(this + 0x3c) + *(int *)(this + 0x44)) < iVar20 + 1U) {\n    gold::Dwarf_info_reader::warn_corrupt_debug_section(this);\n    return 0;\n  }" if (parenthesized_expression "((uint)(*(int *)(this + 0x2c) + *(int *)(this + 0x3c) + *(int *)(this + 0x44)) < iVar20 + 1U)" ( (binary_expression "(uint)(*(int *)(this + 0x2c) + *(int *)(this + 0x3c) + *(int *)(this + 0x44)) < iVar20 + 1U" (call_expression "(uint)(*(int *)(this + 0x2c) + *(int *)(this + 0x3c) + *(int *)(this + 0x44))" (parenthesized_expression "(uint)" ( identifier )) (argument_list "(*(int *)(this + 0x2c) + *(int *)(this + 0x3c) + *(int *)(this + 0x44))" ( (binary_expression "*(int *)(this + 0x2c) + *(int *)(this + 0x3c) + *(int *)(this + 0x44)" (binary_expression "*(int *)(this + 0x2c) + *(int *)(this + 0x3c)" (pointer_expression "*(int *)(this + 0x2c)" * (cast_expression "(int *)(this + 0x2c)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(this + 0x2c)" ( (binary_expression "this + 0x2c" identifier + number_literal) )))) + (pointer_expression "*(int *)(this + 0x3c)" * (cast_expression "(int *)(this + 0x3c)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(this + 0x3c)" ( (binary_expression "this + 0x3c" identifier + number_literal) ))))) + (pointer_expression "*(int *)(this + 0x44)" * (cast_expression "(int *)(this + 0x44)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(this + 0x44)" ( (binary_expression "this + 0x44" identifier + number_literal) ))))) ))) < (binary_expression "iVar20 + 1U" identifier + number_literal)) )) (compound_statement "{\n    gold::Dwarf_info_reader::warn_corrupt_debug_section(this);\n    return 0;\n  }" { (labeled_statement "gold::Dwarf_info_reader::warn_corrupt_debug_section(this);" statement_identifier : (ERROR ":" :) (labeled_statement "Dwarf_info_reader::warn_corrupt_debug_section(this);" statement_identifier : (ERROR ":" :) (expression_statement "warn_corrupt_debug_section(this);" (call_expression "warn_corrupt_debug_section(this)" identifier (argument_list "(this)" ( identifier ))) ;))) (return_statement "return 0;" return number_literal ;) })) (expression_statement "local_38 = (vector<gold::Dwarf_die::Attribute_value,std::allocator<gold::Dwarf_die::Attribute_value>>\n              *)(param_1 + 0xb);" (assignment_expression "local_38 = (vector<gold::Dwarf_die::Attribute_value,std::allocator<gold::Dwarf_die::Attribute_value>>\n              *)(param_1 + 0xb)" identifier = (call_expression "(vector<gold::Dwarf_die::Attribute_value,std::allocator<gold::Dwarf_die::Attribute_value>>\n              *)(param_1 + 0xb)" (parenthesized_expression "(vector<gold::Dwarf_die::Attribute_value,std::allocator<gold::Dwarf_die::Attribute_value>>\n              *)" ( (ERROR "vector<gold::Dwarf_die::Attribute_value,std::allocator<gold::Dwarf_die::" (binary_expression "vector<gold" identifier < identifier) : : identifier : : (comma_expression "Attribute_value,std" identifier , identifier) : : (binary_expression "allocator<gold" identifier < identifier) : : identifier : :) (binary_expression "Attribute_value>>\n              *" identifier >> (pointer_expression "*" * identifier)) )) (argument_list "(param_1 + 0xb)" ( (binary_expression "param_1 + 0xb" identifier + number_literal) )))) ;) (if_statement "if (iVar20 == 0) {\n    return 0;\n  }" if (parenthesized_expression "(iVar20 == 0)" ( (binary_expression "iVar20 == 0" identifier == number_literal) )) (compound_statement "{\n    return 0;\n  }" { (return_statement "return 0;" return number_literal ;) })) (expression_statement "iVar21 = *(int *)(iVar8 + 0xc) - *(int *)(iVar8 + 8);" (assignment_expression "iVar21 = *(int *)(iVar8 + 0xc) - *(int *)(iVar8 + 8)" identifier = (binary_expression "*(int *)(iVar8 + 0xc) - *(int *)(iVar8 + 8)" (pointer_expression "*(int *)(iVar8 + 0xc)" * (cast_expression "(int *)(iVar8 + 0xc)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar8 + 0xc)" ( (binary_expression "iVar8 + 0xc" identifier + number_literal) )))) - (pointer_expression "*(int *)(iVar8 + 8)" * (cast_expression "(int *)(iVar8 + 8)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar8 + 8)" ( (binary_expression "iVar8 + 8" identifier + number_literal) )))))) ;) (expression_statement "local_44 = (uint *)(iVar20 + param_1[5]);" (assignment_expression "local_44 = (uint *)(iVar20 + param_1[5])" identifier = (cast_expression "(uint *)(iVar20 + param_1[5])" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar20 + param_1[5])" ( (binary_expression "iVar20 + param_1[5]" identifier + (subscript_expression "param_1[5]" identifier [ number_literal ])) )))) ;) (expression_statement "uVar19 = iVar21 >> 3;" (assignment_expression "uVar19 = iVar21 >> 3" identifier = (binary_expression "iVar21 >> 3" identifier >> number_literal)) ;) (if_statement "if (0xaaaaaaa < uVar19) {\n    uVar12 = (*(code *)PTR___throw_length_error_004c1e74)(PTR_s__s_004c1a50 + -0xda4);\n    return uVar12;\n  }" if (parenthesized_expression "(0xaaaaaaa < uVar19)" ( (binary_expression "0xaaaaaaa < uVar19" number_literal < identifier) )) (compound_statement "{\n    uVar12 = (*(code *)PTR___throw_length_error_004c1e74)(PTR_s__s_004c1a50 + -0xda4);\n    return uVar12;\n  }" { (expression_statement "uVar12 = (*(code *)PTR___throw_length_error_004c1e74)(PTR_s__s_004c1a50 + -0xda4);" (assignment_expression "uVar12 = (*(code *)PTR___throw_length_error_004c1e74)(PTR_s__s_004c1a50 + -0xda4)" identifier = (call_expression "(*(code *)PTR___throw_length_error_004c1e74)(PTR_s__s_004c1a50 + -0xda4)" (parenthesized_expression "(*(code *)PTR___throw_length_error_004c1e74)" ( (pointer_expression "*(code *)PTR___throw_length_error_004c1e74" * (cast_expression "(code *)PTR___throw_length_error_004c1e74" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(PTR_s__s_004c1a50 + -0xda4)" ( (binary_expression "PTR_s__s_004c1a50 + -0xda4" identifier + number_literal) )))) ;) (return_statement "return uVar12;" return identifier ;) })) (expression_statement "puVar23 = (undefined8 *)param_1[0xb];" (assignment_expression "puVar23 = (undefined8 *)param_1[0xb]" identifier = (cast_expression "(undefined8 *)param_1[0xb]" ( (type_descriptor "undefined8 *" type_identifier (abstract_pointer_declarator "*" *)) ) (subscript_expression "param_1[0xb]" identifier [ number_literal ]))) ;) (if_statement "if ((uint)((param_1[0xd] - (int)puVar23 >> 3) * -0x55555555) < uVar19) {\n    puVar13 = (undefined8 *)param_1[0xc];\n    iVar17 = (int)puVar13 - (int)puVar23;\n    if (uVar19 == 0) {\n      iVar10 = 0;\n      puVar24 = puVar23;\n    }\n    else {\n      local_40 = puVar13;\n      iVar10 = (*(code *)PTR_operator_new_004c13a8)(uVar19 * 0x18);\n      puVar13 = local_40;\n      puVar24 = (undefined8 *)param_1[0xb];\n    }\n    if (puVar23 != puVar13) {\n      (*(code *)PTR_memmove_004c5af8)(iVar10,puVar23,iVar17);\n    }\n    if (puVar24 != (undefined8 *)0x0) {\n      (*(code *)PTR_operator_delete_004c12fc)(puVar24);\n    }\n    iVar8 = param_1[10];\n    param_1[0xb] = iVar10;\n    param_1[0xc] = iVar10 + iVar17;\n    param_1[0xd] = iVar10 + uVar19 * 0x18;\n    if (uVar19 != 0) goto LAB_002e2d90;\nLAB_002e2fb8:\n    if (iVar8 == 0) {\n      uVar12 = (*(code *)PTR_do_gold_unreachable_004c1a30)\n                         (PTR_s_in_a_linker_script_004c191c + 0x7108,0x206,\n                          PTR_s_in_a_linker_script_004c191c + 0x7404);\n      return uVar12;\n    }\n    iVar17 = param_1[3];\n  }\n  else if (uVar19 != 0) {\nLAB_002e2d90:\n    local_3c = (code *)PTR_lookup_reloc_004c2994;\n    iVar17 = 0;\n    local_34 = (code *)PTR_read_from_pointer<64>_004c2998;\n    local_40 = &local_50;\nLAB_002e2db4:\n    puVar9 = (uint *)(*(int *)(iVar8 + 8) + iVar17);\n    uVar19 = puVar9[1];\n    uVar22 = *puVar9;\n    uVar26 = local_60;\n    if (uVar19 == 0x16) goto LAB_002e31a8;\nLAB_002e2dd0:\n    puVar9 = (uint *)((int)local_44 - iVar20);\n    puVar18 = (uint *)((int)puVar9 + param_1[3]);\n    iVar8 = (uint)(puVar18 < puVar9) + ((int)puVar9 >> 0x1f) + param_1[2];\n    local_64 = uVar19;\n    if (uVar19 == 0xe) goto LAB_002e31fc;\n    do {\n      local_60._4_4_ = (uint *)uVar26;\n      local_58 = 0;\n      local_68 = uVar22;\n      local_64 = uVar19;\n      local_60 = uVar26;\n      if (0xe < uVar19) {\n        if (uVar19 == 0x15) {\n          if ((char)*(byte *)local_44 < '\0') {\n            uVar26 = (*(code *)PTR_read_unsigned_LEB_128_x_004c2980)\n                               ((uint *)((int)local_44 + 1),&local_48);\n            local_44 = (uint *)((int)local_44 + local_48);\n          }\n          else {\n            uVar26 = (ulonglong)*(byte *)local_44;\n            local_48 = 1;\n            local_44 = (uint *)((int)local_44 + 1);\n          }\n          goto joined_r0x002e3998;\n        }\n        if (0x15 < uVar19) {\n          if (uVar19 == 0x19) {\n            local_60._4_4_ = (uint *)0x1;\n            local_60._0_4_ = (uint *)0x0;\n          }\n          else {\n            if (uVar19 < 0x1a) {\n              if (uVar19 != 0x17) {\n                if (uVar19 != 0x18) {\n                  return 0;\n                }\n                goto LAB_002e32bc;\n              }\n              iVar8 = *param_1;\n              if (*(int *)(iVar8 + 0x48) == 4) {\n                pcVar25 = *(code **)(**(int **)(iVar8 + 8) + 0xc);\n                if (pcVar25 == (code *)PTR_is_big_endian_004c2950) {\n                  local_30 = puVar18;\n                  iVar8 = (**(code **)(**(int **)(iVar8 + 8) + 0xe8))();\n                }\n                else {\n                  local_30 = puVar18;\n                  iVar8 = (*pcVar25)();\n                }\n                uVar15 = *local_44;\n                if (iVar8 == 0) {\n                  uVar15 = (((uVar15 >> 0x10) << 0x18 | (uVar15 >> 0x18) << 0x10) >> 0x10) +\n                           ((uVar15 & 0xff) << 8 | uVar15 >> 8 & 0xff) * 0x10000;\n                }\n                local_44 = local_44 + 1;\n                uVar26 = (ulonglong)uVar15;\n              }\n              else {\n                local_30 = puVar18;\n                uVar26 = (*local_34)(iVar8,&local_44);\n              }\n              iVar8 = *param_1;\n              goto LAB_002e3970;\n            }\n            if (uVar19 != 0x20) {\n              if (uVar19 < 0x20) {\n                return 0;\n              }\n              if (1 < uVar19 - 0x1f01) {\n                return 0;\n              }\nLAB_002e34d8:\n              if ((char)*(byte *)local_44 < '\0') {\n                uVar26 = (*(code *)PTR_read_unsigned_LEB_128_x_004c2980)\n                                   ((uint *)((int)local_44 + 1),&local_48);\n                local_44 = (uint *)((int)local_44 + local_48);\n              }\n              else {\n                uVar26 = (ulonglong)*(byte *)local_44;\n                local_48 = 1;\n                local_44 = (uint *)((int)local_44 + 1);\n              }\n              goto LAB_002e382c;\n            }\n            pcVar25 = *(code **)(**(int **)(*param_1 + 8) + 0xc);\n            if (pcVar25 == (code *)PTR_is_big_endian_004c2950) {\n              iVar8 = (**(code **)(**(int **)(*param_1 + 8) + 0xe8))();\n            }\n            else {\n              iVar8 = (*pcVar25)();\n            }\n            local_60._4_4_ = (uint *)local_44[1];\n            local_60._0_4_ = (uint *)*local_44;\n            if (iVar8 == 0) {\n              uVar15 = (uint)local_60._4_4_ & 0xff;\n              uVar16 = (uint)local_60._4_4_ >> 8;\n              uVar2 = (uint)local_60._4_4_ >> 0x10;\n              uVar4 = (uint)local_60._4_4_ >> 0x18;\n              local_60._4_4_ =\n                   (uint *)(((((uint)local_60._0_4_ >> 0x10) << 0x18 |\n                             ((uint)local_60._0_4_ >> 0x18) << 0x10) >> 0x10) +\n                           (((uint)local_60._0_4_ & 0xff) << 8 | (uint)local_60._0_4_ >> 8 & 0xff) *\n                           0x10000);\n              local_60._0_4_ =\n                   (uint *)(((uVar2 << 0x18 | uVar4 << 0x10) >> 0x10) +\n                           (uVar15 << 8 | uVar16 & 0xff) * 0x10000);\n            }\n            local_44 = local_44 + 2;\n          }\n          uVar7 = CONCAT44(local_60._0_4_,local_60._4_4_);\n          if (uVar22 == 0x6e) goto LAB_002e313c;\n          uVar7 = CONCAT44(local_60._0_4_,local_60._4_4_);\n          uVar26 = CONCAT44(local_60._0_4_,local_60._4_4_);\n          if (uVar22 == 0x2007) goto LAB_002e313c;\n          goto joined_r0x002e3124;\n        }\n        if (uVar19 == 0x11) {\n          puVar9 = (uint *)((int)local_44 + 1);\n          uVar15 = (uint)*(byte *)local_44;\n          uVar26 = (ulonglong)uVar15;\n          local_44 = puVar9;\n          if (uVar22 == 0x31) goto LAB_002e30bc;\n          if (0x31 < uVar22) {\n            uVar26 = (ulonglong)uVar15;\n            if ((uVar22 != 0x6e) && (uVar26 = (ulonglong)uVar15, uVar22 != 0x2007)) {\n              uVar7 = (ulonglong)uVar15;\n              if (uVar22 != 0x47) goto LAB_002e313c;\n              param_1[0x18] = 0;\n              param_1[0x19] = uVar15;\n              uVar7 = (ulonglong)uVar15;\n              goto LAB_002e313c;\n            }\n            goto LAB_002e3858;\n          }\n          if (uVar22 == 1) {\n            param_1[8] = 0;\n            param_1[9] = uVar15;\n            uVar7 = (ulonglong)uVar15;\n            goto LAB_002e313c;\n          }\n          goto joined_r0x002e3124;\n        }\n        if (uVar19 < 0x12) {\n          if (uVar19 == 0xf) goto LAB_002e34d8;\n          if (uVar19 != 0x10) {\n            return 0;\n          }\n          iVar10 = *param_1;\n          iVar8 = *(int *)(iVar10 + 0x48);\n          if (*(uint *)(iVar10 + 0x50) < 3) {\n            iVar8 = *(int *)(iVar10 + 0x4c);\n          }\n          if (iVar8 == 4) {\n            pcVar25 = *(code **)(**(int **)(iVar10 + 8) + 0xc);\n            if (pcVar25 == (code *)PTR_is_big_endian_004c2950) {\n              local_30 = puVar18;\n              iVar8 = (**(code **)(**(int **)(iVar10 + 8) + 0xe8))();\n            }\n            else {\n              local_30 = puVar18;\n              iVar8 = (*pcVar25)();\n            }\n            uVar15 = *local_44;\n            if (iVar8 == 0) {\n              uVar15 = (((uVar15 >> 0x10) << 0x18 | (uVar15 >> 0x18) << 0x10) >> 0x10) +\n                       ((uVar15 & 0xff) << 8 | uVar15 >> 8 & 0xff) * 0x10000;\n            }\n            local_44 = local_44 + 1;\n            uVar26 = (ulonglong)uVar15;\n          }\n          else {\n            local_30 = puVar18;\n            uVar26 = (*local_34)(iVar10,&local_44);\n          }\n          local_50 = uVar26;\n          local_58 = (*local_3c)(*param_1);\n          uVar26 = local_50;\n        }\n        else {\n          if (uVar19 == 0x13) {\n            pcVar25 = *(code **)(**(int **)(*param_1 + 8) + 0xc);\n            if (pcVar25 == (code *)PTR_is_big_endian_004c2950) {\n              local_30 = puVar18;\n              iVar8 = (**(code **)(**(int **)(*param_1 + 8) + 0xe8))();\n            }\n            else {\n              local_30 = puVar18;\n              iVar8 = (*pcVar25)();\n            }\n            uVar15 = *local_44;\n            if (iVar8 == 0) {\n              uVar15 = (((uVar15 >> 0x10) << 0x18 | (uVar15 >> 0x18) << 0x10) >> 0x10) +\n                       ((uVar15 & 0xff) << 8 | uVar15 >> 8 & 0xff) * 0x10000;\n            }\n            local_44 = local_44 + 1;\n            iVar8 = *param_1;\n            uVar26 = (ulonglong)uVar15;\n          }\n          else {\n            if (uVar19 < 0x14) {\n              pcVar25 = *(code **)(**(int **)(*param_1 + 8) + 0xc);\n              if (pcVar25 == (code *)PTR_is_big_endian_004c2950) {\n                iVar8 = (**(code **)(**(int **)(*param_1 + 8) + 0xe8))();\n              }\n              else {\n                iVar8 = (*pcVar25)();\n              }\n              uVar6 = *(ushort *)local_44;\n              if (iVar8 == 0) {\n                uVar6 = CONCAT11(*(byte *)((int)local_44 + 1),*(byte *)local_44);\n              }\n              local_44 = (uint *)((int)local_44 + 2);\n              uVar26 = (ulonglong)uVar6;\n              goto joined_r0x002e3998;\n            }\n            pcVar25 = *(code **)(**(int **)(*param_1 + 8) + 0xc);\n            if (pcVar25 == (code *)PTR_is_big_endian_004c2950) {\n              local_30 = puVar18;\n              iVar8 = (**(code **)(**(int **)(*param_1 + 8) + 0xe8))();\n            }\n            else {\n              local_30 = puVar18;\n              iVar8 = (*pcVar25)();\n            }\n            uVar15 = local_44[1];\n            uVar16 = *local_44;\n            if (iVar8 == 0) {\n              uVar2 = uVar15 & 0xff;\n              uVar4 = uVar15 >> 8;\n              uVar3 = uVar15 >> 0x10;\n              uVar5 = uVar15 >> 0x18;\n              uVar15 = (((uVar16 >> 0x10) << 0x18 | (uVar16 >> 0x18) << 0x10) >> 0x10) +\n                       ((uVar16 & 0xff) << 8 | uVar16 >> 8 & 0xff) * 0x10000;\n              uVar16 = ((uVar3 << 0x18 | uVar5 << 0x10) >> 0x10) +\n                       (uVar2 << 8 | uVar4 & 0xff) * 0x10000;\n            }\n            uVar26 = CONCAT44(uVar16,uVar15);\n            local_44 = local_44 + 2;\n            iVar8 = *param_1;\n          }\nLAB_002e3970:\n          local_50 = uVar26;\n          local_58 = (*local_3c)(iVar8);\n          uVar26 = local_50;\n        }\njoined_r0x002e3998:\n        if (uVar22 == 0x31) {\nLAB_002e30bc:\n          *(ulonglong *)(param_1 + 0x1a) = uVar26;\n          uVar7 = uVar26;\n          goto LAB_002e313c;\n        }\n        if (uVar22 < 0x32) {\n          uVar7 = uVar26;\n          if (uVar22 != 1) goto LAB_002e313c;\nLAB_002e39b4:\n          uVar7 = uVar26;\n          if (local_58 != 0) goto LAB_002e313c;\n          *(ulonglong *)(param_1 + 8) = uVar26;\n          goto LAB_002e313c;\n        }\n        if ((uVar22 != 0x6e) && (uVar22 != 0x2007)) {\nLAB_002e339c:\n          uVar7 = uVar26;\n          if (uVar22 != 0x47) goto LAB_002e313c;\n          *(ulonglong *)(param_1 + 0x18) = uVar26;\n          goto LAB_002e313c;\n        }\n        goto LAB_002e3858;\n      }\n      if (uVar19 == 7) {\n        pcVar25 = *(code **)(**(int **)(*param_1 + 8) + 0xc);\n        if (pcVar25 == (code *)PTR_is_big_endian_004c2950) {\n          local_30 = puVar18;\n          iVar10 = (**(code **)(**(int **)(*param_1 + 8) + 0xe8))();\n        }\n        else {\n          local_30 = puVar18;\n          iVar10 = (*pcVar25)();\n        }\n        local_50._4_4_ = (uint *)local_44[1];\n        puVar9 = (uint *)*local_44;\n        if (iVar10 == 0) {\n          uVar15 = (uint)local_50._4_4_ & 0xff;\n          uVar16 = (uint)local_50._4_4_ >> 8;\n          uVar2 = (uint)local_50._4_4_ >> 0x10;\n          uVar4 = (uint)local_50._4_4_ >> 0x18;\n          local_50._4_4_ =\n               (uint *)(((((uint)puVar9 >> 0x10) << 0x18 | ((uint)puVar9 >> 0x18) << 0x10) >> 0x10)\n                       + (((uint)puVar9 & 0xff) << 8 | (uint)puVar9 >> 8 & 0xff) * 0x10000);\n          puVar9 = (uint *)(((uVar2 << 0x18 | uVar4 << 0x10) >> 0x10) +\n                           (uVar15 << 8 | uVar16 & 0xff) * 0x10000);\n        }\n        local_44 = local_44 + 2;\n        iVar10 = *param_1;\n        local_50._0_4_ = puVar9;\nLAB_002e3708:\n        local_58 = (*local_3c)(iVar10,puVar9,iVar8,local_30,local_40);\n        local_60._4_4_ = local_50._4_4_;\n        local_60._0_4_ = local_50._0_4_;\n        goto LAB_002e355c;\n      }\n      if (7 < uVar19) {\n        if (uVar19 == 10) {\n          local_60._0_4_ = (uint *)((int)local_44 + 1);\n          local_58 = (uint)*(byte *)local_44;\n          local_44 = (uint *)((int)local_60._0_4_ + local_58);\n          goto LAB_002e355c;\n        }\n        if (uVar19 < 0xb) {\n          if (uVar19 != 8) {\n            if (uVar19 != 9) {\n              return 0;\n            }\nLAB_002e32bc:\n            uVar15 = (uint)*(byte *)local_44;\n            pbVar14 = (byte *)((int)local_44 + 1);\n            if ((char)*(byte *)local_44 < '\0') {\n              (*(code *)PTR_read_unsigned_LEB_128_x_004c2980)(pbVar14,&local_48);\n              pbVar14 = (byte *)((int)local_44 + local_48);\n              uVar15 = extraout_v1_00;\n            }\n            else {\n              local_48 = 1;\n            }\n            uVar26 = CONCAT44(pbVar14,local_60._4_4_);\n            local_58 = uVar15;\n            local_44 = (uint *)((int)local_44 + uVar15 + local_48);\n            goto LAB_002e382c;\n          }\n          local_60._0_4_ = local_44;\n          local_30 = local_44;\n          local_48 = (*(code *)PTR_strlen_004c5b9c)(local_44);\n          uVar26 = CONCAT44(local_60._0_4_,local_60._4_4_);\n          local_44 = (uint *)((int)local_30 + local_48 + 1);\n          uVar7 = CONCAT44(local_60._0_4_,local_60._4_4_);\n          if (uVar22 == 0x31) goto LAB_002e313c;\n          if (0x31 < uVar22) {\n            if ((uVar22 != 0x6e) &&\n               (uVar7 = CONCAT44(local_60._0_4_,local_60._4_4_), uVar22 != 0x2007))\n            goto LAB_002e313c;\n            param_1[0x12] = (int)local_30;\n            uVar7 = uVar26;\n            goto LAB_002e313c;\n          }\nLAB_002e3118:\n          uVar7 = uVar26;\n          if (uVar22 == 1) goto LAB_002e313c;\njoined_r0x002e3124:\n          uVar7 = uVar26;\n          if (uVar22 != 3) goto LAB_002e313c;\n          local_60._0_4_ = (uint *)(uVar26 >> 0x20);\n          if (uVar19 == 8) {\n            param_1[0xf] = (int)local_60._0_4_;\n            goto LAB_002e313c;\n          }\n          if (uVar19 != 0xe) goto LAB_002e313c;\n          goto LAB_002e3284;\n        }\n        if (uVar19 < 0xd) {\n          uVar26 = (ulonglong)*(byte *)local_44;\n          local_44 = (uint *)((int)local_44 + 1);\nLAB_002e382c:\n          uVar7 = uVar26;\n          if (uVar22 == 0x31) goto LAB_002e313c;\n          if (uVar22 < 0x32) goto LAB_002e3118;\n        }\n        else {\n          bVar1 = *(byte *)local_44;\n          uVar15 = (uint)bVar1;\n          puVar9 = (uint *)((int)local_44 + 1);\n          if ((char)bVar1 < '\0') {\n            uVar26 = (*(code *)PTR_read_signed_LEB_128_x_004c297c)(puVar9,&local_48,uVar15);\n            puVar9 = (uint *)((int)local_44 + local_48);\n          }\n          else {\n            local_48 = 1;\n            uVar26 = (ulonglong)uVar15;\n            if ((bVar1 & 0x40) != 0) {\n              uVar26 = CONCAT44(0xffffffff,uVar15 | 0xffffff80);\n            }\n          }\n          local_44 = puVar9;\n          uVar7 = uVar26;\n          if (uVar22 == 0x31) goto LAB_002e313c;\n          if (uVar22 < 0x32) {\n            puVar9 = (uint *)param_1[0xc];\n            if (puVar9 != (uint *)param_1[0xd]) goto LAB_002e314c;\nLAB_002e2f98:\n            iVar17 = iVar17 + 8;\n            local_60 = uVar26;\n            std::\n            vector<gold::Dwarf_die::Attribute_value,std::allocator<gold::Dwarf_die::Attribute_value>>\n            ::_M_realloc_insert<gold::Dwarf_die::Attribute_value_const&>(local_38,puVar9,&local_68);\n            iVar8 = param_1[10];\n            if (iVar17 == iVar21) goto LAB_002e2fb8;\n            goto LAB_002e2db4;\n          }\n        }\n        if ((uVar22 != 0x6e) && (uVar7 = uVar26, uVar22 != 0x2007)) goto LAB_002e313c;\nLAB_002e3858:\n        local_60._0_4_ = (uint *)(uVar26 >> 0x20);\n        uVar7 = uVar26;\n        if (uVar19 == 8) {\n          param_1[0x12] = (int)local_60._0_4_;\n          goto LAB_002e313c;\n        }\n        if (uVar19 != 0xe) goto LAB_002e313c;\n        goto LAB_002e387c;\n      }\n      if (uVar19 == 4) {\n        pcVar25 = *(code **)(**(int **)(*param_1 + 8) + 0xc);\n        if (pcVar25 == (code *)PTR_is_big_endian_004c2950) {\n          iVar8 = (**(code **)(**(int **)(*param_1 + 8) + 0xe8))();\n        }\n        else {\n          iVar8 = (*pcVar25)();\n        }\n        local_58 = *local_44;\n        if (iVar8 == 0) {\n          local_58 = (((local_58 >> 0x10) << 0x18 | (local_58 >> 0x18) << 0x10) >> 0x10) +\n                     ((local_58 & 0xff) << 8 | local_58 >> 8 & 0xff) * 0x10000;\n        }\n        local_60._0_4_ = local_44 + 1;\n        local_44 = (uint *)((int)local_60._0_4_ + local_58);\nLAB_002e355c:\n        uVar26 = CONCAT44(local_60._0_4_,local_60._4_4_);\n        uVar7 = uVar26;\n        if (uVar22 == 0x31) goto LAB_002e313c;\n        if (uVar22 < 0x32) goto LAB_002e3118;\n        puVar9 = (uint *)param_1[0xc];\n      }\n      else {\n        if (4 < uVar19) {\n          if (uVar19 != 5) {\n            if (uVar19 != 6) {\n              return 0;\n            }\n            pcVar25 = *(code **)(**(int **)(*param_1 + 8) + 0xc);\n            if (pcVar25 == (code *)PTR_is_big_endian_004c2950) {\n              local_30 = puVar18;\n              iVar10 = (**(code **)(**(int **)(*param_1 + 8) + 0xe8))();\n            }\n            else {\n              local_30 = puVar18;\n              iVar10 = (*pcVar25)();\n            }\n            puVar9 = (uint *)*local_44;\n            if (iVar10 == 0) {\n              puVar9 = (uint *)(((((uint)puVar9 >> 0x10) << 0x18 | ((uint)puVar9 >> 0x18) << 0x10)\n                                >> 0x10) +\n                               (((uint)puVar9 & 0xff) << 8 | (uint)puVar9 >> 8 & 0xff) * 0x10000);\n            }\n            local_44 = local_44 + 1;\n            iVar10 = *param_1;\n            local_50._0_4_ = (uint *)0x0;\n            local_50._4_4_ = puVar9;\n            goto LAB_002e3708;\n          }\n          pcVar25 = *(code **)(**(int **)(*param_1 + 8) + 0xc);\n          if (pcVar25 == (code *)PTR_is_big_endian_004c2950) {\n            iVar8 = (**(code **)(**(int **)(*param_1 + 8) + 0xe8))();\n          }\n          else {\n            iVar8 = (*pcVar25)();\n          }\n          uVar6 = *(ushort *)local_44;\n          if (iVar8 == 0) {\n            uVar6 = CONCAT11(*(byte *)((int)local_44 + 1),*(byte *)local_44);\n          }\n          local_60._4_4_ = (uint *)(uint)uVar6;\n          local_44 = (uint *)((int)local_44 + 2);\n          local_60._0_4_ = (uint *)0x0;\n          goto LAB_002e355c;\n        }\n        if (uVar19 != 1) {\n          if (uVar19 != 3) {\n            return 0;\n          }\n          pcVar25 = *(code **)(**(int **)(*param_1 + 8) + 0xc);\n          if (pcVar25 == (code *)PTR_is_big_endian_004c2950) {\n            iVar8 = (**(code **)(**(int **)(*param_1 + 8) + 0xe8))();\n          }\n          else {\n            iVar8 = (*pcVar25)();\n          }\n          uVar6 = *(ushort *)local_44;\n          if (iVar8 == 0) {\n            uVar6 = CONCAT11(*(byte *)((int)local_44 + 1),*(byte *)local_44);\n          }\n          local_58 = (uint)uVar6;\n          local_60._0_4_ = (uint *)((int)local_44 + 2);\n          local_44 = (uint *)((int)local_60._0_4_ + local_58);\n          goto LAB_002e355c;\n        }\n        iVar8 = *param_1;\n        if (*(int *)(iVar8 + 0x4c) == 4) {\n          pcVar25 = *(code **)(**(int **)(iVar8 + 8) + 0xc);\n          if (pcVar25 == (code *)PTR_is_big_endian_004c2950) {\n            local_30 = puVar18;\n            iVar8 = (**(code **)(**(int **)(iVar8 + 8) + 0xe8))();\n          }\n          else {\n            local_30 = puVar18;\n            iVar8 = (*pcVar25)();\n          }\n          uVar15 = *local_44;\n          if (iVar8 == 0) {\n            uVar15 = (((uVar15 >> 0x10) << 0x18 | (uVar15 >> 0x18) << 0x10) >> 0x10) +\n                     ((uVar15 & 0xff) << 8 | uVar15 >> 8 & 0xff) * 0x10000;\n          }\n          local_44 = local_44 + 1;\n          uVar26 = (ulonglong)uVar15;\n        }\n        else {\n          local_30 = puVar18;\n          uVar26 = (*local_34)(iVar8,&local_44);\n        }\n        local_50 = uVar26;\n        local_58 = (*local_3c)(*param_1);\n        uVar26 = local_50;\n        if (uVar22 == 0x31) goto LAB_002e30bc;\n        if (uVar22 < 0x32) {\n          if (uVar22 != 1) goto joined_r0x002e3124;\n          goto LAB_002e39b4;\n        }\n        uVar7 = local_50;\n        if (uVar22 == 0x6e) goto LAB_002e313c;\n        if (uVar22 != 0x2007) goto LAB_002e339c;\n        puVar9 = (uint *)param_1[0xc];\n      }\n      while( true ) {\n        if (puVar9 == (uint *)param_1[0xd]) goto LAB_002e2f98;\nLAB_002e314c:\n        local_60._0_4_ = (uint *)(uVar26 >> 0x20);\n        local_60._4_4_ = (uint *)uVar26;\n        iVar17 = iVar17 + 8;\n        puVar9[1] = local_64;\n        puVar9[2] = (uint)local_60._0_4_;\n        *puVar9 = local_68;\n        puVar9[3] = (uint)local_60._4_4_;\n        puVar9[4] = local_58;\n        puVar9[5] = local_54;\n        param_1[0xc] = (int)(puVar9 + 6);\n        iVar8 = param_1[10];\n        local_60 = uVar26;\n        if (iVar17 == iVar21) goto LAB_002e2fb8;\n        puVar9 = (uint *)(*(int *)(iVar8 + 8) + iVar17);\n        uVar19 = puVar9[1];\n        uVar22 = *puVar9;\n        if (uVar19 != 0x16) goto LAB_002e2dd0;\nLAB_002e31a8:\n        uVar19 = (uint)*(byte *)local_44;\n        puVar9 = (uint *)((int)local_44 + 1);\n        if ((char)*(byte *)local_44 < '\0') {\n          local_60 = uVar26;\n          (*(code *)PTR_read_unsigned_LEB_128_x_004c2980)(puVar9,&local_48,uVar19);\n          puVar9 = (uint *)((int)local_44 + local_48);\n          uVar19 = extraout_v1;\n          uVar26 = local_60;\n        }\n        else {\n          local_48 = 1;\n        }\n        puVar11 = (uint *)((int)puVar9 - iVar20);\n        puVar18 = (uint *)((int)puVar11 + param_1[3]);\n        iVar8 = (uint)(puVar18 < puVar11) + ((int)puVar11 >> 0x1f) + param_1[2];\n        local_64 = uVar19;\n        local_44 = puVar9;\n        if (uVar19 != 0xe) break;\nLAB_002e31fc:\n        local_58 = 0;\n        iVar8 = *param_1;\n        local_68 = uVar22;\n        local_30 = puVar18;\n        local_60 = uVar26;\n        if (*(int *)(iVar8 + 0x48) == 4) {\n          pcVar25 = *(code **)(**(int **)(iVar8 + 8) + 0xc);\n          if (pcVar25 == (code *)PTR_is_big_endian_004c2950) {\n            iVar8 = (**(code **)(**(int **)(iVar8 + 8) + 0xe8))();\n          }\n          else {\n            iVar8 = (*pcVar25)();\n          }\n          uVar19 = *local_44;\n          if (iVar8 == 0) {\n            uVar19 = (((uVar19 >> 0x10) << 0x18 | (uVar19 >> 0x18) << 0x10) >> 0x10) +\n                     ((uVar19 & 0xff) << 8 | uVar19 >> 8 & 0xff) * 0x10000;\n          }\n          local_44 = local_44 + 1;\n          uVar26 = (ulonglong)uVar19;\n        }\n        else {\n          uVar26 = (*local_34)(iVar8,&local_44);\n        }\n        local_50 = uVar26;\n        local_58 = (*local_3c)(*param_1);\n        uVar7 = local_50;\n        if (uVar22 != 0x31) {\n          uVar26 = local_50;\n          if (uVar22 < 0x32) {\n            if ((uVar22 != 1) && (uVar22 == 3)) {\nLAB_002e3284:\n              param_1[0x16] = local_58;\n              *(ulonglong *)(param_1 + 0x10) = uVar26;\n              uVar7 = uVar26;\n            }\n          }\n          else {\n            if (uVar22 == 0x6e) {\nLAB_002e387c:\n              param_1[0x16] = local_58;\n            }\n            else {\n              if (uVar22 != 0x2007) goto LAB_002e313c;\n              param_1[0x16] = local_58;\n            }\n            *(ulonglong *)(param_1 + 0x14) = uVar26;\n            uVar7 = uVar26;\n          }\n        }\nLAB_002e313c:\n        puVar9 = (uint *)param_1[0xc];\n        uVar26 = uVar7;\n      }\n    } while( true );\n  }" if (parenthesized_expression "((uint)((param_1[0xd] - (int)puVar23 >> 3) * -0x55555555) < uVar19)" ( (binary_expression "(uint)((param_1[0xd] - (int)puVar23 >> 3) * -0x55555555) < uVar19" (call_expression "(uint)((param_1[0xd] - (int)puVar23 >> 3) * -0x55555555)" (parenthesized_expression "(uint)" ( identifier )) (argument_list "((param_1[0xd] - (int)puVar23 >> 3) * -0x55555555)" ( (binary_expression "(param_1[0xd] - (int)puVar23 >> 3) * -0x55555555" (parenthesized_expression "(param_1[0xd] - (int)puVar23 >> 3)" ( (binary_expression "param_1[0xd] - (int)puVar23 >> 3" (binary_expression "param_1[0xd] - (int)puVar23" (subscript_expression "param_1[0xd]" identifier [ number_literal ]) - (cast_expression "(int)puVar23" ( (type_descriptor "int" primitive_type) ) identifier)) >> number_literal) )) * number_literal) ))) < identifier) )) (compound_statement "{\n    puVar13 = (undefined8 *)param_1[0xc];\n    iVar17 = (int)puVar13 - (int)puVar23;\n    if (uVar19 == 0) {\n      iVar10 = 0;\n      puVar24 = puVar23;\n    }\n    else {\n      local_40 = puVar13;\n      iVar10 = (*(code *)PTR_operator_new_004c13a8)(uVar19 * 0x18);\n      puVar13 = local_40;\n      puVar24 = (undefined8 *)param_1[0xb];\n    }\n    if (puVar23 != puVar13) {\n      (*(code *)PTR_memmove_004c5af8)(iVar10,puVar23,iVar17);\n    }\n    if (puVar24 != (undefined8 *)0x0) {\n      (*(code *)PTR_operator_delete_004c12fc)(puVar24);\n    }\n    iVar8 = param_1[10];\n    param_1[0xb] = iVar10;\n    param_1[0xc] = iVar10 + iVar17;\n    param_1[0xd] = iVar10 + uVar19 * 0x18;\n    if (uVar19 != 0) goto LAB_002e2d90;\nLAB_002e2fb8:\n    if (iVar8 == 0) {\n      uVar12 = (*(code *)PTR_do_gold_unreachable_004c1a30)\n                         (PTR_s_in_a_linker_script_004c191c + 0x7108,0x206,\n                          PTR_s_in_a_linker_script_004c191c + 0x7404);\n      return uVar12;\n    }\n    iVar17 = param_1[3];\n  }" { (expression_statement "puVar13 = (undefined8 *)param_1[0xc];" (assignment_expression "puVar13 = (undefined8 *)param_1[0xc]" identifier = (cast_expression "(undefined8 *)param_1[0xc]" ( (type_descriptor "undefined8 *" type_identifier (abstract_pointer_declarator "*" *)) ) (subscript_expression "param_1[0xc]" identifier [ number_literal ]))) ;) (expression_statement "iVar17 = (int)puVar13 - (int)puVar23;" (assignment_expression "iVar17 = (int)puVar13 - (int)puVar23" identifier = (binary_expression "(int)puVar13 - (int)puVar23" (cast_expression "(int)puVar13" ( (type_descriptor "int" primitive_type) ) identifier) - (cast_expression "(int)puVar23" ( (type_descriptor "int" primitive_type) ) identifier))) ;) (if_statement "if (uVar19 == 0) {\n      iVar10 = 0;\n      puVar24 = puVar23;\n    }\n    else {\n      local_40 = puVar13;\n      iVar10 = (*(code *)PTR_operator_new_004c13a8)(uVar19 * 0x18);\n      puVar13 = local_40;\n      puVar24 = (undefined8 *)param_1[0xb];\n    }" if (parenthesized_expression "(uVar19 == 0)" ( (binary_expression "uVar19 == 0" identifier == number_literal) )) (compound_statement "{\n      iVar10 = 0;\n      puVar24 = puVar23;\n    }" { (expression_statement "iVar10 = 0;" (assignment_expression "iVar10 = 0" identifier = number_literal) ;) (expression_statement "puVar24 = puVar23;" (assignment_expression "puVar24 = puVar23" identifier = identifier) ;) }) (else_clause "else {\n      local_40 = puVar13;\n      iVar10 = (*(code *)PTR_operator_new_004c13a8)(uVar19 * 0x18);\n      puVar13 = local_40;\n      puVar24 = (undefined8 *)param_1[0xb];\n    }" else (compound_statement "{\n      local_40 = puVar13;\n      iVar10 = (*(code *)PTR_operator_new_004c13a8)(uVar19 * 0x18);\n      puVar13 = local_40;\n      puVar24 = (undefined8 *)param_1[0xb];\n    }" { (expression_statement "local_40 = puVar13;" (assignment_expression "local_40 = puVar13" identifier = identifier) ;) (expression_statement "iVar10 = (*(code *)PTR_operator_new_004c13a8)(uVar19 * 0x18);" (assignment_expression "iVar10 = (*(code *)PTR_operator_new_004c13a8)(uVar19 * 0x18)" identifier = (call_expression "(*(code *)PTR_operator_new_004c13a8)(uVar19 * 0x18)" (parenthesized_expression "(*(code *)PTR_operator_new_004c13a8)" ( (pointer_expression "*(code *)PTR_operator_new_004c13a8" * (cast_expression "(code *)PTR_operator_new_004c13a8" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(uVar19 * 0x18)" ( (binary_expression "uVar19 * 0x18" identifier * number_literal) )))) ;) (expression_statement "puVar13 = local_40;" (assignment_expression "puVar13 = local_40" identifier = identifier) ;) (expression_statement "puVar24 = (undefined8 *)param_1[0xb];" (assignment_expression "puVar24 = (undefined8 *)param_1[0xb]" identifier = (cast_expression "(undefined8 *)param_1[0xb]" ( (type_descriptor "undefined8 *" type_identifier (abstract_pointer_declarator "*" *)) ) (subscript_expression "param_1[0xb]" identifier [ number_literal ]))) ;) }))) (if_statement "if (puVar23 != puVar13) {\n      (*(code *)PTR_memmove_004c5af8)(iVar10,puVar23,iVar17);\n    }" if (parenthesized_expression "(puVar23 != puVar13)" ( (binary_expression "puVar23 != puVar13" identifier != identifier) )) (compound_statement "{\n      (*(code *)PTR_memmove_004c5af8)(iVar10,puVar23,iVar17);\n    }" { (expression_statement "(*(code *)PTR_memmove_004c5af8)(iVar10,puVar23,iVar17);" (call_expression "(*(code *)PTR_memmove_004c5af8)(iVar10,puVar23,iVar17)" (parenthesized_expression "(*(code *)PTR_memmove_004c5af8)" ( (pointer_expression "*(code *)PTR_memmove_004c5af8" * (cast_expression "(code *)PTR_memmove_004c5af8" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(iVar10,puVar23,iVar17)" ( identifier , identifier , identifier ))) ;) })) (if_statement "if (puVar24 != (undefined8 *)0x0) {\n      (*(code *)PTR_operator_delete_004c12fc)(puVar24);\n    }" if (parenthesized_expression "(puVar24 != (undefined8 *)0x0)" ( (binary_expression "puVar24 != (undefined8 *)0x0" identifier != (cast_expression "(undefined8 *)0x0" ( (type_descriptor "undefined8 *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n      (*(code *)PTR_operator_delete_004c12fc)(puVar24);\n    }" { (expression_statement "(*(code *)PTR_operator_delete_004c12fc)(puVar24);" (call_expression "(*(code *)PTR_operator_delete_004c12fc)(puVar24)" (parenthesized_expression "(*(code *)PTR_operator_delete_004c12fc)" ( (pointer_expression "*(code *)PTR_operator_delete_004c12fc" * (cast_expression "(code *)PTR_operator_delete_004c12fc" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(puVar24)" ( identifier ))) ;) })) (expression_statement "iVar8 = param_1[10];" (assignment_expression "iVar8 = param_1[10]" identifier = (subscript_expression "param_1[10]" identifier [ number_literal ])) ;) (expression_statement "param_1[0xb] = iVar10;" (assignment_expression "param_1[0xb] = iVar10" (subscript_expression "param_1[0xb]" identifier [ number_literal ]) = identifier) ;) (expression_statement "param_1[0xc] = iVar10 + iVar17;" (assignment_expression "param_1[0xc] = iVar10 + iVar17" (subscript_expression "param_1[0xc]" identifier [ number_literal ]) = (binary_expression "iVar10 + iVar17" identifier + identifier)) ;) (expression_statement "param_1[0xd] = iVar10 + uVar19 * 0x18;" (assignment_expression "param_1[0xd] = iVar10 + uVar19 * 0x18" (subscript_expression "param_1[0xd]" identifier [ number_literal ]) = (binary_expression "iVar10 + uVar19 * 0x18" identifier + (binary_expression "uVar19 * 0x18" identifier * number_literal))) ;) (if_statement "if (uVar19 != 0) goto LAB_002e2d90;" if (parenthesized_expression "(uVar19 != 0)" ( (binary_expression "uVar19 != 0" identifier != number_literal) )) (goto_statement "goto LAB_002e2d90;" goto statement_identifier ;)) (labeled_statement "LAB_002e2fb8:\n    if (iVar8 == 0) {\n      uVar12 = (*(code *)PTR_do_gold_unreachable_004c1a30)\n                         (PTR_s_in_a_linker_script_004c191c + 0x7108,0x206,\n                          PTR_s_in_a_linker_script_004c191c + 0x7404);\n      return uVar12;\n    }" statement_identifier : (if_statement "if (iVar8 == 0) {\n      uVar12 = (*(code *)PTR_do_gold_unreachable_004c1a30)\n                         (PTR_s_in_a_linker_script_004c191c + 0x7108,0x206,\n                          PTR_s_in_a_linker_script_004c191c + 0x7404);\n      return uVar12;\n    }" if (parenthesized_expression "(iVar8 == 0)" ( (binary_expression "iVar8 == 0" identifier == number_literal) )) (compound_statement "{\n      uVar12 = (*(code *)PTR_do_gold_unreachable_004c1a30)\n                         (PTR_s_in_a_linker_script_004c191c + 0x7108,0x206,\n                          PTR_s_in_a_linker_script_004c191c + 0x7404);\n      return uVar12;\n    }" { (expression_statement "uVar12 = (*(code *)PTR_do_gold_unreachable_004c1a30)\n                         (PTR_s_in_a_linker_script_004c191c + 0x7108,0x206,\n                          PTR_s_in_a_linker_script_004c191c + 0x7404);" (assignment_expression "uVar12 = (*(code *)PTR_do_gold_unreachable_004c1a30)\n                         (PTR_s_in_a_linker_script_004c191c + 0x7108,0x206,\n                          PTR_s_in_a_linker_script_004c191c + 0x7404)" identifier = (call_expression "(*(code *)PTR_do_gold_unreachable_004c1a30)\n                         (PTR_s_in_a_linker_script_004c191c + 0x7108,0x206,\n                          PTR_s_in_a_linker_script_004c191c + 0x7404)" (parenthesized_expression "(*(code *)PTR_do_gold_unreachable_004c1a30)" ( (pointer_expression "*(code *)PTR_do_gold_unreachable_004c1a30" * (cast_expression "(code *)PTR_do_gold_unreachable_004c1a30" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(PTR_s_in_a_linker_script_004c191c + 0x7108,0x206,\n                          PTR_s_in_a_linker_script_004c191c + 0x7404)" ( (binary_expression "PTR_s_in_a_linker_script_004c191c + 0x7108" identifier + number_literal) , number_literal , (binary_expression "PTR_s_in_a_linker_script_004c191c + 0x7404" identifier + number_literal) )))) ;) (return_statement "return uVar12;" return identifier ;) }))) (expression_statement "iVar17 = param_1[3];" (assignment_expression "iVar17 = param_1[3]" identifier = (subscript_expression "param_1[3]" identifier [ number_literal ])) ;) }) (else_clause "else if (uVar19 != 0) {\nLAB_002e2d90:\n    local_3c = (code *)PTR_lookup_reloc_004c2994;\n    iVar17 = 0;\n    local_34 = (code *)PTR_read_from_pointer<64>_004c2998;\n    local_40 = &local_50;\nLAB_002e2db4:\n    puVar9 = (uint *)(*(int *)(iVar8 + 8) + iVar17);\n    uVar19 = puVar9[1];\n    uVar22 = *puVar9;\n    uVar26 = local_60;\n    if (uVar19 == 0x16) goto LAB_002e31a8;\nLAB_002e2dd0:\n    puVar9 = (uint *)((int)local_44 - iVar20);\n    puVar18 = (uint *)((int)puVar9 + param_1[3]);\n    iVar8 = (uint)(puVar18 < puVar9) + ((int)puVar9 >> 0x1f) + param_1[2];\n    local_64 = uVar19;\n    if (uVar19 == 0xe) goto LAB_002e31fc;\n    do {\n      local_60._4_4_ = (uint *)uVar26;\n      local_58 = 0;\n      local_68 = uVar22;\n      local_64 = uVar19;\n      local_60 = uVar26;\n      if (0xe < uVar19) {\n        if (uVar19 == 0x15) {\n          if ((char)*(byte *)local_44 < '\0') {\n            uVar26 = (*(code *)PTR_read_unsigned_LEB_128_x_004c2980)\n                               ((uint *)((int)local_44 + 1),&local_48);\n            local_44 = (uint *)((int)local_44 + local_48);\n          }\n          else {\n            uVar26 = (ulonglong)*(byte *)local_44;\n            local_48 = 1;\n            local_44 = (uint *)((int)local_44 + 1);\n          }\n          goto joined_r0x002e3998;\n        }\n        if (0x15 < uVar19) {\n          if (uVar19 == 0x19) {\n            local_60._4_4_ = (uint *)0x1;\n            local_60._0_4_ = (uint *)0x0;\n          }\n          else {\n            if (uVar19 < 0x1a) {\n              if (uVar19 != 0x17) {\n                if (uVar19 != 0x18) {\n                  return 0;\n                }\n                goto LAB_002e32bc;\n              }\n              iVar8 = *param_1;\n              if (*(int *)(iVar8 + 0x48) == 4) {\n                pcVar25 = *(code **)(**(int **)(iVar8 + 8) + 0xc);\n                if (pcVar25 == (code *)PTR_is_big_endian_004c2950) {\n                  local_30 = puVar18;\n                  iVar8 = (**(code **)(**(int **)(iVar8 + 8) + 0xe8))();\n                }\n                else {\n                  local_30 = puVar18;\n                  iVar8 = (*pcVar25)();\n                }\n                uVar15 = *local_44;\n                if (iVar8 == 0) {\n                  uVar15 = (((uVar15 >> 0x10) << 0x18 | (uVar15 >> 0x18) << 0x10) >> 0x10) +\n                           ((uVar15 & 0xff) << 8 | uVar15 >> 8 & 0xff) * 0x10000;\n                }\n                local_44 = local_44 + 1;\n                uVar26 = (ulonglong)uVar15;\n              }\n              else {\n                local_30 = puVar18;\n                uVar26 = (*local_34)(iVar8,&local_44);\n              }\n              iVar8 = *param_1;\n              goto LAB_002e3970;\n            }\n            if (uVar19 != 0x20) {\n              if (uVar19 < 0x20) {\n                return 0;\n              }\n              if (1 < uVar19 - 0x1f01) {\n                return 0;\n              }\nLAB_002e34d8:\n              if ((char)*(byte *)local_44 < '\0') {\n                uVar26 = (*(code *)PTR_read_unsigned_LEB_128_x_004c2980)\n                                   ((uint *)((int)local_44 + 1),&local_48);\n                local_44 = (uint *)((int)local_44 + local_48);\n              }\n              else {\n                uVar26 = (ulonglong)*(byte *)local_44;\n                local_48 = 1;\n                local_44 = (uint *)((int)local_44 + 1);\n              }\n              goto LAB_002e382c;\n            }\n            pcVar25 = *(code **)(**(int **)(*param_1 + 8) + 0xc);\n            if (pcVar25 == (code *)PTR_is_big_endian_004c2950) {\n              iVar8 = (**(code **)(**(int **)(*param_1 + 8) + 0xe8))();\n            }\n            else {\n              iVar8 = (*pcVar25)();\n            }\n            local_60._4_4_ = (uint *)local_44[1];\n            local_60._0_4_ = (uint *)*local_44;\n            if (iVar8 == 0) {\n              uVar15 = (uint)local_60._4_4_ & 0xff;\n              uVar16 = (uint)local_60._4_4_ >> 8;\n              uVar2 = (uint)local_60._4_4_ >> 0x10;\n              uVar4 = (uint)local_60._4_4_ >> 0x18;\n              local_60._4_4_ =\n                   (uint *)(((((uint)local_60._0_4_ >> 0x10) << 0x18 |\n                             ((uint)local_60._0_4_ >> 0x18) << 0x10) >> 0x10) +\n                           (((uint)local_60._0_4_ & 0xff) << 8 | (uint)local_60._0_4_ >> 8 & 0xff) *\n                           0x10000);\n              local_60._0_4_ =\n                   (uint *)(((uVar2 << 0x18 | uVar4 << 0x10) >> 0x10) +\n                           (uVar15 << 8 | uVar16 & 0xff) * 0x10000);\n            }\n            local_44 = local_44 + 2;\n          }\n          uVar7 = CONCAT44(local_60._0_4_,local_60._4_4_);\n          if (uVar22 == 0x6e) goto LAB_002e313c;\n          uVar7 = CONCAT44(local_60._0_4_,local_60._4_4_);\n          uVar26 = CONCAT44(local_60._0_4_,local_60._4_4_);\n          if (uVar22 == 0x2007) goto LAB_002e313c;\n          goto joined_r0x002e3124;\n        }\n        if (uVar19 == 0x11) {\n          puVar9 = (uint *)((int)local_44 + 1);\n          uVar15 = (uint)*(byte *)local_44;\n          uVar26 = (ulonglong)uVar15;\n          local_44 = puVar9;\n          if (uVar22 == 0x31) goto LAB_002e30bc;\n          if (0x31 < uVar22) {\n            uVar26 = (ulonglong)uVar15;\n            if ((uVar22 != 0x6e) && (uVar26 = (ulonglong)uVar15, uVar22 != 0x2007)) {\n              uVar7 = (ulonglong)uVar15;\n              if (uVar22 != 0x47) goto LAB_002e313c;\n              param_1[0x18] = 0;\n              param_1[0x19] = uVar15;\n              uVar7 = (ulonglong)uVar15;\n              goto LAB_002e313c;\n            }\n            goto LAB_002e3858;\n          }\n          if (uVar22 == 1) {\n            param_1[8] = 0;\n            param_1[9] = uVar15;\n            uVar7 = (ulonglong)uVar15;\n            goto LAB_002e313c;\n          }\n          goto joined_r0x002e3124;\n        }\n        if (uVar19 < 0x12) {\n          if (uVar19 == 0xf) goto LAB_002e34d8;\n          if (uVar19 != 0x10) {\n            return 0;\n          }\n          iVar10 = *param_1;\n          iVar8 = *(int *)(iVar10 + 0x48);\n          if (*(uint *)(iVar10 + 0x50) < 3) {\n            iVar8 = *(int *)(iVar10 + 0x4c);\n          }\n          if (iVar8 == 4) {\n            pcVar25 = *(code **)(**(int **)(iVar10 + 8) + 0xc);\n            if (pcVar25 == (code *)PTR_is_big_endian_004c2950) {\n              local_30 = puVar18;\n              iVar8 = (**(code **)(**(int **)(iVar10 + 8) + 0xe8))();\n            }\n            else {\n              local_30 = puVar18;\n              iVar8 = (*pcVar25)();\n            }\n            uVar15 = *local_44;\n            if (iVar8 == 0) {\n              uVar15 = (((uVar15 >> 0x10) << 0x18 | (uVar15 >> 0x18) << 0x10) >> 0x10) +\n                       ((uVar15 & 0xff) << 8 | uVar15 >> 8 & 0xff) * 0x10000;\n            }\n            local_44 = local_44 + 1;\n            uVar26 = (ulonglong)uVar15;\n          }\n          else {\n            local_30 = puVar18;\n            uVar26 = (*local_34)(iVar10,&local_44);\n          }\n          local_50 = uVar26;\n          local_58 = (*local_3c)(*param_1);\n          uVar26 = local_50;\n        }\n        else {\n          if (uVar19 == 0x13) {\n            pcVar25 = *(code **)(**(int **)(*param_1 + 8) + 0xc);\n            if (pcVar25 == (code *)PTR_is_big_endian_004c2950) {\n              local_30 = puVar18;\n              iVar8 = (**(code **)(**(int **)(*param_1 + 8) + 0xe8))();\n            }\n            else {\n              local_30 = puVar18;\n              iVar8 = (*pcVar25)();\n            }\n            uVar15 = *local_44;\n            if (iVar8 == 0) {\n              uVar15 = (((uVar15 >> 0x10) << 0x18 | (uVar15 >> 0x18) << 0x10) >> 0x10) +\n                       ((uVar15 & 0xff) << 8 | uVar15 >> 8 & 0xff) * 0x10000;\n            }\n            local_44 = local_44 + 1;\n            iVar8 = *param_1;\n            uVar26 = (ulonglong)uVar15;\n          }\n          else {\n            if (uVar19 < 0x14) {\n              pcVar25 = *(code **)(**(int **)(*param_1 + 8) + 0xc);\n              if (pcVar25 == (code *)PTR_is_big_endian_004c2950) {\n                iVar8 = (**(code **)(**(int **)(*param_1 + 8) + 0xe8))();\n              }\n              else {\n                iVar8 = (*pcVar25)();\n              }\n              uVar6 = *(ushort *)local_44;\n              if (iVar8 == 0) {\n                uVar6 = CONCAT11(*(byte *)((int)local_44 + 1),*(byte *)local_44);\n              }\n              local_44 = (uint *)((int)local_44 + 2);\n              uVar26 = (ulonglong)uVar6;\n              goto joined_r0x002e3998;\n            }\n            pcVar25 = *(code **)(**(int **)(*param_1 + 8) + 0xc);\n            if (pcVar25 == (code *)PTR_is_big_endian_004c2950) {\n              local_30 = puVar18;\n              iVar8 = (**(code **)(**(int **)(*param_1 + 8) + 0xe8))();\n            }\n            else {\n              local_30 = puVar18;\n              iVar8 = (*pcVar25)();\n            }\n            uVar15 = local_44[1];\n            uVar16 = *local_44;\n            if (iVar8 == 0) {\n              uVar2 = uVar15 & 0xff;\n              uVar4 = uVar15 >> 8;\n              uVar3 = uVar15 >> 0x10;\n              uVar5 = uVar15 >> 0x18;\n              uVar15 = (((uVar16 >> 0x10) << 0x18 | (uVar16 >> 0x18) << 0x10) >> 0x10) +\n                       ((uVar16 & 0xff) << 8 | uVar16 >> 8 & 0xff) * 0x10000;\n              uVar16 = ((uVar3 << 0x18 | uVar5 << 0x10) >> 0x10) +\n                       (uVar2 << 8 | uVar4 & 0xff) * 0x10000;\n            }\n            uVar26 = CONCAT44(uVar16,uVar15);\n            local_44 = local_44 + 2;\n            iVar8 = *param_1;\n          }\nLAB_002e3970:\n          local_50 = uVar26;\n          local_58 = (*local_3c)(iVar8);\n          uVar26 = local_50;\n        }\njoined_r0x002e3998:\n        if (uVar22 == 0x31) {\nLAB_002e30bc:\n          *(ulonglong *)(param_1 + 0x1a) = uVar26;\n          uVar7 = uVar26;\n          goto LAB_002e313c;\n        }\n        if (uVar22 < 0x32) {\n          uVar7 = uVar26;\n          if (uVar22 != 1) goto LAB_002e313c;\nLAB_002e39b4:\n          uVar7 = uVar26;\n          if (local_58 != 0) goto LAB_002e313c;\n          *(ulonglong *)(param_1 + 8) = uVar26;\n          goto LAB_002e313c;\n        }\n        if ((uVar22 != 0x6e) && (uVar22 != 0x2007)) {\nLAB_002e339c:\n          uVar7 = uVar26;\n          if (uVar22 != 0x47) goto LAB_002e313c;\n          *(ulonglong *)(param_1 + 0x18) = uVar26;\n          goto LAB_002e313c;\n        }\n        goto LAB_002e3858;\n      }\n      if (uVar19 == 7) {\n        pcVar25 = *(code **)(**(int **)(*param_1 + 8) + 0xc);\n        if (pcVar25 == (code *)PTR_is_big_endian_004c2950) {\n          local_30 = puVar18;\n          iVar10 = (**(code **)(**(int **)(*param_1 + 8) + 0xe8))();\n        }\n        else {\n          local_30 = puVar18;\n          iVar10 = (*pcVar25)();\n        }\n        local_50._4_4_ = (uint *)local_44[1];\n        puVar9 = (uint *)*local_44;\n        if (iVar10 == 0) {\n          uVar15 = (uint)local_50._4_4_ & 0xff;\n          uVar16 = (uint)local_50._4_4_ >> 8;\n          uVar2 = (uint)local_50._4_4_ >> 0x10;\n          uVar4 = (uint)local_50._4_4_ >> 0x18;\n          local_50._4_4_ =\n               (uint *)(((((uint)puVar9 >> 0x10) << 0x18 | ((uint)puVar9 >> 0x18) << 0x10) >> 0x10)\n                       + (((uint)puVar9 & 0xff) << 8 | (uint)puVar9 >> 8 & 0xff) * 0x10000);\n          puVar9 = (uint *)(((uVar2 << 0x18 | uVar4 << 0x10) >> 0x10) +\n                           (uVar15 << 8 | uVar16 & 0xff) * 0x10000);\n        }\n        local_44 = local_44 + 2;\n        iVar10 = *param_1;\n        local_50._0_4_ = puVar9;\nLAB_002e3708:\n        local_58 = (*local_3c)(iVar10,puVar9,iVar8,local_30,local_40);\n        local_60._4_4_ = local_50._4_4_;\n        local_60._0_4_ = local_50._0_4_;\n        goto LAB_002e355c;\n      }\n      if (7 < uVar19) {\n        if (uVar19 == 10) {\n          local_60._0_4_ = (uint *)((int)local_44 + 1);\n          local_58 = (uint)*(byte *)local_44;\n          local_44 = (uint *)((int)local_60._0_4_ + local_58);\n          goto LAB_002e355c;\n        }\n        if (uVar19 < 0xb) {\n          if (uVar19 != 8) {\n            if (uVar19 != 9) {\n              return 0;\n            }\nLAB_002e32bc:\n            uVar15 = (uint)*(byte *)local_44;\n            pbVar14 = (byte *)((int)local_44 + 1);\n            if ((char)*(byte *)local_44 < '\0') {\n              (*(code *)PTR_read_unsigned_LEB_128_x_004c2980)(pbVar14,&local_48);\n              pbVar14 = (byte *)((int)local_44 + local_48);\n              uVar15 = extraout_v1_00;\n            }\n            else {\n              local_48 = 1;\n            }\n            uVar26 = CONCAT44(pbVar14,local_60._4_4_);\n            local_58 = uVar15;\n            local_44 = (uint *)((int)local_44 + uVar15 + local_48);\n            goto LAB_002e382c;\n          }\n          local_60._0_4_ = local_44;\n          local_30 = local_44;\n          local_48 = (*(code *)PTR_strlen_004c5b9c)(local_44);\n          uVar26 = CONCAT44(local_60._0_4_,local_60._4_4_);\n          local_44 = (uint *)((int)local_30 + local_48 + 1);\n          uVar7 = CONCAT44(local_60._0_4_,local_60._4_4_);\n          if (uVar22 == 0x31) goto LAB_002e313c;\n          if (0x31 < uVar22) {\n            if ((uVar22 != 0x6e) &&\n               (uVar7 = CONCAT44(local_60._0_4_,local_60._4_4_), uVar22 != 0x2007))\n            goto LAB_002e313c;\n            param_1[0x12] = (int)local_30;\n            uVar7 = uVar26;\n            goto LAB_002e313c;\n          }\nLAB_002e3118:\n          uVar7 = uVar26;\n          if (uVar22 == 1) goto LAB_002e313c;\njoined_r0x002e3124:\n          uVar7 = uVar26;\n          if (uVar22 != 3) goto LAB_002e313c;\n          local_60._0_4_ = (uint *)(uVar26 >> 0x20);\n          if (uVar19 == 8) {\n            param_1[0xf] = (int)local_60._0_4_;\n            goto LAB_002e313c;\n          }\n          if (uVar19 != 0xe) goto LAB_002e313c;\n          goto LAB_002e3284;\n        }\n        if (uVar19 < 0xd) {\n          uVar26 = (ulonglong)*(byte *)local_44;\n          local_44 = (uint *)((int)local_44 + 1);\nLAB_002e382c:\n          uVar7 = uVar26;\n          if (uVar22 == 0x31) goto LAB_002e313c;\n          if (uVar22 < 0x32) goto LAB_002e3118;\n        }\n        else {\n          bVar1 = *(byte *)local_44;\n          uVar15 = (uint)bVar1;\n          puVar9 = (uint *)((int)local_44 + 1);\n          if ((char)bVar1 < '\0') {\n            uVar26 = (*(code *)PTR_read_signed_LEB_128_x_004c297c)(puVar9,&local_48,uVar15);\n            puVar9 = (uint *)((int)local_44 + local_48);\n          }\n          else {\n            local_48 = 1;\n            uVar26 = (ulonglong)uVar15;\n            if ((bVar1 & 0x40) != 0) {\n              uVar26 = CONCAT44(0xffffffff,uVar15 | 0xffffff80);\n            }\n          }\n          local_44 = puVar9;\n          uVar7 = uVar26;\n          if (uVar22 == 0x31) goto LAB_002e313c;\n          if (uVar22 < 0x32) {\n            puVar9 = (uint *)param_1[0xc];\n            if (puVar9 != (uint *)param_1[0xd]) goto LAB_002e314c;\nLAB_002e2f98:\n            iVar17 = iVar17 + 8;\n            local_60 = uVar26;\n            std::\n            vector<gold::Dwarf_die::Attribute_value,std::allocator<gold::Dwarf_die::Attribute_value>>\n            ::_M_realloc_insert<gold::Dwarf_die::Attribute_value_const&>(local_38,puVar9,&local_68);\n            iVar8 = param_1[10];\n            if (iVar17 == iVar21) goto LAB_002e2fb8;\n            goto LAB_002e2db4;\n          }\n        }\n        if ((uVar22 != 0x6e) && (uVar7 = uVar26, uVar22 != 0x2007)) goto LAB_002e313c;\nLAB_002e3858:\n        local_60._0_4_ = (uint *)(uVar26 >> 0x20);\n        uVar7 = uVar26;\n        if (uVar19 == 8) {\n          param_1[0x12] = (int)local_60._0_4_;\n          goto LAB_002e313c;\n        }\n        if (uVar19 != 0xe) goto LAB_002e313c;\n        goto LAB_002e387c;\n      }\n      if (uVar19 == 4) {\n        pcVar25 = *(code **)(**(int **)(*param_1 + 8) + 0xc);\n        if (pcVar25 == (code *)PTR_is_big_endian_004c2950) {\n          iVar8 = (**(code **)(**(int **)(*param_1 + 8) + 0xe8))();\n        }\n        else {\n          iVar8 = (*pcVar25)();\n        }\n        local_58 = *local_44;\n        if (iVar8 == 0) {\n          local_58 = (((local_58 >> 0x10) << 0x18 | (local_58 >> 0x18) << 0x10) >> 0x10) +\n                     ((local_58 & 0xff) << 8 | local_58 >> 8 & 0xff) * 0x10000;\n        }\n        local_60._0_4_ = local_44 + 1;\n        local_44 = (uint *)((int)local_60._0_4_ + local_58);\nLAB_002e355c:\n        uVar26 = CONCAT44(local_60._0_4_,local_60._4_4_);\n        uVar7 = uVar26;\n        if (uVar22 == 0x31) goto LAB_002e313c;\n        if (uVar22 < 0x32) goto LAB_002e3118;\n        puVar9 = (uint *)param_1[0xc];\n      }\n      else {\n        if (4 < uVar19) {\n          if (uVar19 != 5) {\n            if (uVar19 != 6) {\n              return 0;\n            }\n            pcVar25 = *(code **)(**(int **)(*param_1 + 8) + 0xc);\n            if (pcVar25 == (code *)PTR_is_big_endian_004c2950) {\n              local_30 = puVar18;\n              iVar10 = (**(code **)(**(int **)(*param_1 + 8) + 0xe8))();\n            }\n            else {\n              local_30 = puVar18;\n              iVar10 = (*pcVar25)();\n            }\n            puVar9 = (uint *)*local_44;\n            if (iVar10 == 0) {\n              puVar9 = (uint *)(((((uint)puVar9 >> 0x10) << 0x18 | ((uint)puVar9 >> 0x18) << 0x10)\n                                >> 0x10) +\n                               (((uint)puVar9 & 0xff) << 8 | (uint)puVar9 >> 8 & 0xff) * 0x10000);\n            }\n            local_44 = local_44 + 1;\n            iVar10 = *param_1;\n            local_50._0_4_ = (uint *)0x0;\n            local_50._4_4_ = puVar9;\n            goto LAB_002e3708;\n          }\n          pcVar25 = *(code **)(**(int **)(*param_1 + 8) + 0xc);\n          if (pcVar25 == (code *)PTR_is_big_endian_004c2950) {\n            iVar8 = (**(code **)(**(int **)(*param_1 + 8) + 0xe8))();\n          }\n          else {\n            iVar8 = (*pcVar25)();\n          }\n          uVar6 = *(ushort *)local_44;\n          if (iVar8 == 0) {\n            uVar6 = CONCAT11(*(byte *)((int)local_44 + 1),*(byte *)local_44);\n          }\n          local_60._4_4_ = (uint *)(uint)uVar6;\n          local_44 = (uint *)((int)local_44 + 2);\n          local_60._0_4_ = (uint *)0x0;\n          goto LAB_002e355c;\n        }\n        if (uVar19 != 1) {\n          if (uVar19 != 3) {\n            return 0;\n          }\n          pcVar25 = *(code **)(**(int **)(*param_1 + 8) + 0xc);\n          if (pcVar25 == (code *)PTR_is_big_endian_004c2950) {\n            iVar8 = (**(code **)(**(int **)(*param_1 + 8) + 0xe8))();\n          }\n          else {\n            iVar8 = (*pcVar25)();\n          }\n          uVar6 = *(ushort *)local_44;\n          if (iVar8 == 0) {\n            uVar6 = CONCAT11(*(byte *)((int)local_44 + 1),*(byte *)local_44);\n          }\n          local_58 = (uint)uVar6;\n          local_60._0_4_ = (uint *)((int)local_44 + 2);\n          local_44 = (uint *)((int)local_60._0_4_ + local_58);\n          goto LAB_002e355c;\n        }\n        iVar8 = *param_1;\n        if (*(int *)(iVar8 + 0x4c) == 4) {\n          pcVar25 = *(code **)(**(int **)(iVar8 + 8) + 0xc);\n          if (pcVar25 == (code *)PTR_is_big_endian_004c2950) {\n            local_30 = puVar18;\n            iVar8 = (**(code **)(**(int **)(iVar8 + 8) + 0xe8))();\n          }\n          else {\n            local_30 = puVar18;\n            iVar8 = (*pcVar25)();\n          }\n          uVar15 = *local_44;\n          if (iVar8 == 0) {\n            uVar15 = (((uVar15 >> 0x10) << 0x18 | (uVar15 >> 0x18) << 0x10) >> 0x10) +\n                     ((uVar15 & 0xff) << 8 | uVar15 >> 8 & 0xff) * 0x10000;\n          }\n          local_44 = local_44 + 1;\n          uVar26 = (ulonglong)uVar15;\n        }\n        else {\n          local_30 = puVar18;\n          uVar26 = (*local_34)(iVar8,&local_44);\n        }\n        local_50 = uVar26;\n        local_58 = (*local_3c)(*param_1);\n        uVar26 = local_50;\n        if (uVar22 == 0x31) goto LAB_002e30bc;\n        if (uVar22 < 0x32) {\n          if (uVar22 != 1) goto joined_r0x002e3124;\n          goto LAB_002e39b4;\n        }\n        uVar7 = local_50;\n        if (uVar22 == 0x6e) goto LAB_002e313c;\n        if (uVar22 != 0x2007) goto LAB_002e339c;\n        puVar9 = (uint *)param_1[0xc];\n      }\n      while( true ) {\n        if (puVar9 == (uint *)param_1[0xd]) goto LAB_002e2f98;\nLAB_002e314c:\n        local_60._0_4_ = (uint *)(uVar26 >> 0x20);\n        local_60._4_4_ = (uint *)uVar26;\n        iVar17 = iVar17 + 8;\n        puVar9[1] = local_64;\n        puVar9[2] = (uint)local_60._0_4_;\n        *puVar9 = local_68;\n        puVar9[3] = (uint)local_60._4_4_;\n        puVar9[4] = local_58;\n        puVar9[5] = local_54;\n        param_1[0xc] = (int)(puVar9 + 6);\n        iVar8 = param_1[10];\n        local_60 = uVar26;\n        if (iVar17 == iVar21) goto LAB_002e2fb8;\n        puVar9 = (uint *)(*(int *)(iVar8 + 8) + iVar17);\n        uVar19 = puVar9[1];\n        uVar22 = *puVar9;\n        if (uVar19 != 0x16) goto LAB_002e2dd0;\nLAB_002e31a8:\n        uVar19 = (uint)*(byte *)local_44;\n        puVar9 = (uint *)((int)local_44 + 1);\n        if ((char)*(byte *)local_44 < '\0') {\n          local_60 = uVar26;\n          (*(code *)PTR_read_unsigned_LEB_128_x_004c2980)(puVar9,&local_48,uVar19);\n          puVar9 = (uint *)((int)local_44 + local_48);\n          uVar19 = extraout_v1;\n          uVar26 = local_60;\n        }\n        else {\n          local_48 = 1;\n        }\n        puVar11 = (uint *)((int)puVar9 - iVar20);\n        puVar18 = (uint *)((int)puVar11 + param_1[3]);\n        iVar8 = (uint)(puVar18 < puVar11) + ((int)puVar11 >> 0x1f) + param_1[2];\n        local_64 = uVar19;\n        local_44 = puVar9;\n        if (uVar19 != 0xe) break;\nLAB_002e31fc:\n        local_58 = 0;\n        iVar8 = *param_1;\n        local_68 = uVar22;\n        local_30 = puVar18;\n        local_60 = uVar26;\n        if (*(int *)(iVar8 + 0x48) == 4) {\n          pcVar25 = *(code **)(**(int **)(iVar8 + 8) + 0xc);\n          if (pcVar25 == (code *)PTR_is_big_endian_004c2950) {\n            iVar8 = (**(code **)(**(int **)(iVar8 + 8) + 0xe8))();\n          }\n          else {\n            iVar8 = (*pcVar25)();\n          }\n          uVar19 = *local_44;\n          if (iVar8 == 0) {\n            uVar19 = (((uVar19 >> 0x10) << 0x18 | (uVar19 >> 0x18) << 0x10) >> 0x10) +\n                     ((uVar19 & 0xff) << 8 | uVar19 >> 8 & 0xff) * 0x10000;\n          }\n          local_44 = local_44 + 1;\n          uVar26 = (ulonglong)uVar19;\n        }\n        else {\n          uVar26 = (*local_34)(iVar8,&local_44);\n        }\n        local_50 = uVar26;\n        local_58 = (*local_3c)(*param_1);\n        uVar7 = local_50;\n        if (uVar22 != 0x31) {\n          uVar26 = local_50;\n          if (uVar22 < 0x32) {\n            if ((uVar22 != 1) && (uVar22 == 3)) {\nLAB_002e3284:\n              param_1[0x16] = local_58;\n              *(ulonglong *)(param_1 + 0x10) = uVar26;\n              uVar7 = uVar26;\n            }\n          }\n          else {\n            if (uVar22 == 0x6e) {\nLAB_002e387c:\n              param_1[0x16] = local_58;\n            }\n            else {\n              if (uVar22 != 0x2007) goto LAB_002e313c;\n              param_1[0x16] = local_58;\n            }\n            *(ulonglong *)(param_1 + 0x14) = uVar26;\n            uVar7 = uVar26;\n          }\n        }\nLAB_002e313c:\n        puVar9 = (uint *)param_1[0xc];\n        uVar26 = uVar7;\n      }\n    } while( true );\n  }" else (if_statement "if (uVar19 != 0) {\nLAB_002e2d90:\n    local_3c = (code *)PTR_lookup_reloc_004c2994;\n    iVar17 = 0;\n    local_34 = (code *)PTR_read_from_pointer<64>_004c2998;\n    local_40 = &local_50;\nLAB_002e2db4:\n    puVar9 = (uint *)(*(int *)(iVar8 + 8) + iVar17);\n    uVar19 = puVar9[1];\n    uVar22 = *puVar9;\n    uVar26 = local_60;\n    if (uVar19 == 0x16) goto LAB_002e31a8;\nLAB_002e2dd0:\n    puVar9 = (uint *)((int)local_44 - iVar20);\n    puVar18 = (uint *)((int)puVar9 + param_1[3]);\n    iVar8 = (uint)(puVar18 < puVar9) + ((int)puVar9 >> 0x1f) + param_1[2];\n    local_64 = uVar19;\n    if (uVar19 == 0xe) goto LAB_002e31fc;\n    do {\n      local_60._4_4_ = (uint *)uVar26;\n      local_58 = 0;\n      local_68 = uVar22;\n      local_64 = uVar19;\n      local_60 = uVar26;\n      if (0xe < uVar19) {\n        if (uVar19 == 0x15) {\n          if ((char)*(byte *)local_44 < '\0') {\n            uVar26 = (*(code *)PTR_read_unsigned_LEB_128_x_004c2980)\n                               ((uint *)((int)local_44 + 1),&local_48);\n            local_44 = (uint *)((int)local_44 + local_48);\n          }\n          else {\n            uVar26 = (ulonglong)*(byte *)local_44;\n            local_48 = 1;\n            local_44 = (uint *)((int)local_44 + 1);\n          }\n          goto joined_r0x002e3998;\n        }\n        if (0x15 < uVar19) {\n          if (uVar19 == 0x19) {\n            local_60._4_4_ = (uint *)0x1;\n            local_60._0_4_ = (uint *)0x0;\n          }\n          else {\n            if (uVar19 < 0x1a) {\n              if (uVar19 != 0x17) {\n                if (uVar19 != 0x18) {\n                  return 0;\n                }\n                goto LAB_002e32bc;\n              }\n              iVar8 = *param_1;\n              if (*(int *)(iVar8 + 0x48) == 4) {\n                pcVar25 = *(code **)(**(int **)(iVar8 + 8) + 0xc);\n                if (pcVar25 == (code *)PTR_is_big_endian_004c2950) {\n                  local_30 = puVar18;\n                  iVar8 = (**(code **)(**(int **)(iVar8 + 8) + 0xe8))();\n                }\n                else {\n                  local_30 = puVar18;\n                  iVar8 = (*pcVar25)();\n                }\n                uVar15 = *local_44;\n                if (iVar8 == 0) {\n                  uVar15 = (((uVar15 >> 0x10) << 0x18 | (uVar15 >> 0x18) << 0x10) >> 0x10) +\n                           ((uVar15 & 0xff) << 8 | uVar15 >> 8 & 0xff) * 0x10000;\n                }\n                local_44 = local_44 + 1;\n                uVar26 = (ulonglong)uVar15;\n              }\n              else {\n                local_30 = puVar18;\n                uVar26 = (*local_34)(iVar8,&local_44);\n              }\n              iVar8 = *param_1;\n              goto LAB_002e3970;\n            }\n            if (uVar19 != 0x20) {\n              if (uVar19 < 0x20) {\n                return 0;\n              }\n              if (1 < uVar19 - 0x1f01) {\n                return 0;\n              }\nLAB_002e34d8:\n              if ((char)*(byte *)local_44 < '\0') {\n                uVar26 = (*(code *)PTR_read_unsigned_LEB_128_x_004c2980)\n                                   ((uint *)((int)local_44 + 1),&local_48);\n                local_44 = (uint *)((int)local_44 + local_48);\n              }\n              else {\n                uVar26 = (ulonglong)*(byte *)local_44;\n                local_48 = 1;\n                local_44 = (uint *)((int)local_44 + 1);\n              }\n              goto LAB_002e382c;\n            }\n            pcVar25 = *(code **)(**(int **)(*param_1 + 8) + 0xc);\n            if (pcVar25 == (code *)PTR_is_big_endian_004c2950) {\n              iVar8 = (**(code **)(**(int **)(*param_1 + 8) + 0xe8))();\n            }\n            else {\n              iVar8 = (*pcVar25)();\n            }\n            local_60._4_4_ = (uint *)local_44[1];\n            local_60._0_4_ = (uint *)*local_44;\n            if (iVar8 == 0) {\n              uVar15 = (uint)local_60._4_4_ & 0xff;\n              uVar16 = (uint)local_60._4_4_ >> 8;\n              uVar2 = (uint)local_60._4_4_ >> 0x10;\n              uVar4 = (uint)local_60._4_4_ >> 0x18;\n              local_60._4_4_ =\n                   (uint *)(((((uint)local_60._0_4_ >> 0x10) << 0x18 |\n                             ((uint)local_60._0_4_ >> 0x18) << 0x10) >> 0x10) +\n                           (((uint)local_60._0_4_ & 0xff) << 8 | (uint)local_60._0_4_ >> 8 & 0xff) *\n                           0x10000);\n              local_60._0_4_ =\n                   (uint *)(((uVar2 << 0x18 | uVar4 << 0x10) >> 0x10) +\n                           (uVar15 << 8 | uVar16 & 0xff) * 0x10000);\n            }\n            local_44 = local_44 + 2;\n          }\n          uVar7 = CONCAT44(local_60._0_4_,local_60._4_4_);\n          if (uVar22 == 0x6e) goto LAB_002e313c;\n          uVar7 = CONCAT44(local_60._0_4_,local_60._4_4_);\n          uVar26 = CONCAT44(local_60._0_4_,local_60._4_4_);\n          if (uVar22 == 0x2007) goto LAB_002e313c;\n          goto joined_r0x002e3124;\n        }\n        if (uVar19 == 0x11) {\n          puVar9 = (uint *)((int)local_44 + 1);\n          uVar15 = (uint)*(byte *)local_44;\n          uVar26 = (ulonglong)uVar15;\n          local_44 = puVar9;\n          if (uVar22 == 0x31) goto LAB_002e30bc;\n          if (0x31 < uVar22) {\n            uVar26 = (ulonglong)uVar15;\n            if ((uVar22 != 0x6e) && (uVar26 = (ulonglong)uVar15, uVar22 != 0x2007)) {\n              uVar7 = (ulonglong)uVar15;\n              if (uVar22 != 0x47) goto LAB_002e313c;\n              param_1[0x18] = 0;\n              param_1[0x19] = uVar15;\n              uVar7 = (ulonglong)uVar15;\n              goto LAB_002e313c;\n            }\n            goto LAB_002e3858;\n          }\n          if (uVar22 == 1) {\n            param_1[8] = 0;\n            param_1[9] = uVar15;\n            uVar7 = (ulonglong)uVar15;\n            goto LAB_002e313c;\n          }\n          goto joined_r0x002e3124;\n        }\n        if (uVar19 < 0x12) {\n          if (uVar19 == 0xf) goto LAB_002e34d8;\n          if (uVar19 != 0x10) {\n            return 0;\n          }\n          iVar10 = *param_1;\n          iVar8 = *(int *)(iVar10 + 0x48);\n          if (*(uint *)(iVar10 + 0x50) < 3) {\n            iVar8 = *(int *)(iVar10 + 0x4c);\n          }\n          if (iVar8 == 4) {\n            pcVar25 = *(code **)(**(int **)(iVar10 + 8) + 0xc);\n            if (pcVar25 == (code *)PTR_is_big_endian_004c2950) {\n              local_30 = puVar18;\n              iVar8 = (**(code **)(**(int **)(iVar10 + 8) + 0xe8))();\n            }\n            else {\n              local_30 = puVar18;\n              iVar8 = (*pcVar25)();\n            }\n            uVar15 = *local_44;\n            if (iVar8 == 0) {\n              uVar15 = (((uVar15 >> 0x10) << 0x18 | (uVar15 >> 0x18) << 0x10) >> 0x10) +\n                       ((uVar15 & 0xff) << 8 | uVar15 >> 8 & 0xff) * 0x10000;\n            }\n            local_44 = local_44 + 1;\n            uVar26 = (ulonglong)uVar15;\n          }\n          else {\n            local_30 = puVar18;\n            uVar26 = (*local_34)(iVar10,&local_44);\n          }\n          local_50 = uVar26;\n          local_58 = (*local_3c)(*param_1);\n          uVar26 = local_50;\n        }\n        else {\n          if (uVar19 == 0x13) {\n            pcVar25 = *(code **)(**(int **)(*param_1 + 8) + 0xc);\n            if (pcVar25 == (code *)PTR_is_big_endian_004c2950) {\n              local_30 = puVar18;\n              iVar8 = (**(code **)(**(int **)(*param_1 + 8) + 0xe8))();\n            }\n            else {\n              local_30 = puVar18;\n              iVar8 = (*pcVar25)();\n            }\n            uVar15 = *local_44;\n            if (iVar8 == 0) {\n              uVar15 = (((uVar15 >> 0x10) << 0x18 | (uVar15 >> 0x18) << 0x10) >> 0x10) +\n                       ((uVar15 & 0xff) << 8 | uVar15 >> 8 & 0xff) * 0x10000;\n            }\n            local_44 = local_44 + 1;\n            iVar8 = *param_1;\n            uVar26 = (ulonglong)uVar15;\n          }\n          else {\n            if (uVar19 < 0x14) {\n              pcVar25 = *(code **)(**(int **)(*param_1 + 8) + 0xc);\n              if (pcVar25 == (code *)PTR_is_big_endian_004c2950) {\n                iVar8 = (**(code **)(**(int **)(*param_1 + 8) + 0xe8))();\n              }\n              else {\n                iVar8 = (*pcVar25)();\n              }\n              uVar6 = *(ushort *)local_44;\n              if (iVar8 == 0) {\n                uVar6 = CONCAT11(*(byte *)((int)local_44 + 1),*(byte *)local_44);\n              }\n              local_44 = (uint *)((int)local_44 + 2);\n              uVar26 = (ulonglong)uVar6;\n              goto joined_r0x002e3998;\n            }\n            pcVar25 = *(code **)(**(int **)(*param_1 + 8) + 0xc);\n            if (pcVar25 == (code *)PTR_is_big_endian_004c2950) {\n              local_30 = puVar18;\n              iVar8 = (**(code **)(**(int **)(*param_1 + 8) + 0xe8))();\n            }\n            else {\n              local_30 = puVar18;\n              iVar8 = (*pcVar25)();\n            }\n            uVar15 = local_44[1];\n            uVar16 = *local_44;\n            if (iVar8 == 0) {\n              uVar2 = uVar15 & 0xff;\n              uVar4 = uVar15 >> 8;\n              uVar3 = uVar15 >> 0x10;\n              uVar5 = uVar15 >> 0x18;\n              uVar15 = (((uVar16 >> 0x10) << 0x18 | (uVar16 >> 0x18) << 0x10) >> 0x10) +\n                       ((uVar16 & 0xff) << 8 | uVar16 >> 8 & 0xff) * 0x10000;\n              uVar16 = ((uVar3 << 0x18 | uVar5 << 0x10) >> 0x10) +\n                       (uVar2 << 8 | uVar4 & 0xff) * 0x10000;\n            }\n            uVar26 = CONCAT44(uVar16,uVar15);\n            local_44 = local_44 + 2;\n            iVar8 = *param_1;\n          }\nLAB_002e3970:\n          local_50 = uVar26;\n          local_58 = (*local_3c)(iVar8);\n          uVar26 = local_50;\n        }\njoined_r0x002e3998:\n        if (uVar22 == 0x31) {\nLAB_002e30bc:\n          *(ulonglong *)(param_1 + 0x1a) = uVar26;\n          uVar7 = uVar26;\n          goto LAB_002e313c;\n        }\n        if (uVar22 < 0x32) {\n          uVar7 = uVar26;\n          if (uVar22 != 1) goto LAB_002e313c;\nLAB_002e39b4:\n          uVar7 = uVar26;\n          if (local_58 != 0) goto LAB_002e313c;\n          *(ulonglong *)(param_1 + 8) = uVar26;\n          goto LAB_002e313c;\n        }\n        if ((uVar22 != 0x6e) && (uVar22 != 0x2007)) {\nLAB_002e339c:\n          uVar7 = uVar26;\n          if (uVar22 != 0x47) goto LAB_002e313c;\n          *(ulonglong *)(param_1 + 0x18) = uVar26;\n          goto LAB_002e313c;\n        }\n        goto LAB_002e3858;\n      }\n      if (uVar19 == 7) {\n        pcVar25 = *(code **)(**(int **)(*param_1 + 8) + 0xc);\n        if (pcVar25 == (code *)PTR_is_big_endian_004c2950) {\n          local_30 = puVar18;\n          iVar10 = (**(code **)(**(int **)(*param_1 + 8) + 0xe8))();\n        }\n        else {\n          local_30 = puVar18;\n          iVar10 = (*pcVar25)();\n        }\n        local_50._4_4_ = (uint *)local_44[1];\n        puVar9 = (uint *)*local_44;\n        if (iVar10 == 0) {\n          uVar15 = (uint)local_50._4_4_ & 0xff;\n          uVar16 = (uint)local_50._4_4_ >> 8;\n          uVar2 = (uint)local_50._4_4_ >> 0x10;\n          uVar4 = (uint)local_50._4_4_ >> 0x18;\n          local_50._4_4_ =\n               (uint *)(((((uint)puVar9 >> 0x10) << 0x18 | ((uint)puVar9 >> 0x18) << 0x10) >> 0x10)\n                       + (((uint)puVar9 & 0xff) << 8 | (uint)puVar9 >> 8 & 0xff) * 0x10000);\n          puVar9 = (uint *)(((uVar2 << 0x18 | uVar4 << 0x10) >> 0x10) +\n                           (uVar15 << 8 | uVar16 & 0xff) * 0x10000);\n        }\n        local_44 = local_44 + 2;\n        iVar10 = *param_1;\n        local_50._0_4_ = puVar9;\nLAB_002e3708:\n        local_58 = (*local_3c)(iVar10,puVar9,iVar8,local_30,local_40);\n        local_60._4_4_ = local_50._4_4_;\n        local_60._0_4_ = local_50._0_4_;\n        goto LAB_002e355c;\n      }\n      if (7 < uVar19) {\n        if (uVar19 == 10) {\n          local_60._0_4_ = (uint *)((int)local_44 + 1);\n          local_58 = (uint)*(byte *)local_44;\n          local_44 = (uint *)((int)local_60._0_4_ + local_58);\n          goto LAB_002e355c;\n        }\n        if (uVar19 < 0xb) {\n          if (uVar19 != 8) {\n            if (uVar19 != 9) {\n              return 0;\n            }\nLAB_002e32bc:\n            uVar15 = (uint)*(byte *)local_44;\n            pbVar14 = (byte *)((int)local_44 + 1);\n            if ((char)*(byte *)local_44 < '\0') {\n              (*(code *)PTR_read_unsigned_LEB_128_x_004c2980)(pbVar14,&local_48);\n              pbVar14 = (byte *)((int)local_44 + local_48);\n              uVar15 = extraout_v1_00;\n            }\n            else {\n              local_48 = 1;\n            }\n            uVar26 = CONCAT44(pbVar14,local_60._4_4_);\n            local_58 = uVar15;\n            local_44 = (uint *)((int)local_44 + uVar15 + local_48);\n            goto LAB_002e382c;\n          }\n          local_60._0_4_ = local_44;\n          local_30 = local_44;\n          local_48 = (*(code *)PTR_strlen_004c5b9c)(local_44);\n          uVar26 = CONCAT44(local_60._0_4_,local_60._4_4_);\n          local_44 = (uint *)((int)local_30 + local_48 + 1);\n          uVar7 = CONCAT44(local_60._0_4_,local_60._4_4_);\n          if (uVar22 == 0x31) goto LAB_002e313c;\n          if (0x31 < uVar22) {\n            if ((uVar22 != 0x6e) &&\n               (uVar7 = CONCAT44(local_60._0_4_,local_60._4_4_), uVar22 != 0x2007))\n            goto LAB_002e313c;\n            param_1[0x12] = (int)local_30;\n            uVar7 = uVar26;\n            goto LAB_002e313c;\n          }\nLAB_002e3118:\n          uVar7 = uVar26;\n          if (uVar22 == 1) goto LAB_002e313c;\njoined_r0x002e3124:\n          uVar7 = uVar26;\n          if (uVar22 != 3) goto LAB_002e313c;\n          local_60._0_4_ = (uint *)(uVar26 >> 0x20);\n          if (uVar19 == 8) {\n            param_1[0xf] = (int)local_60._0_4_;\n            goto LAB_002e313c;\n          }\n          if (uVar19 != 0xe) goto LAB_002e313c;\n          goto LAB_002e3284;\n        }\n        if (uVar19 < 0xd) {\n          uVar26 = (ulonglong)*(byte *)local_44;\n          local_44 = (uint *)((int)local_44 + 1);\nLAB_002e382c:\n          uVar7 = uVar26;\n          if (uVar22 == 0x31) goto LAB_002e313c;\n          if (uVar22 < 0x32) goto LAB_002e3118;\n        }\n        else {\n          bVar1 = *(byte *)local_44;\n          uVar15 = (uint)bVar1;\n          puVar9 = (uint *)((int)local_44 + 1);\n          if ((char)bVar1 < '\0') {\n            uVar26 = (*(code *)PTR_read_signed_LEB_128_x_004c297c)(puVar9,&local_48,uVar15);\n            puVar9 = (uint *)((int)local_44 + local_48);\n          }\n          else {\n            local_48 = 1;\n            uVar26 = (ulonglong)uVar15;\n            if ((bVar1 & 0x40) != 0) {\n              uVar26 = CONCAT44(0xffffffff,uVar15 | 0xffffff80);\n            }\n          }\n          local_44 = puVar9;\n          uVar7 = uVar26;\n          if (uVar22 == 0x31) goto LAB_002e313c;\n          if (uVar22 < 0x32) {\n            puVar9 = (uint *)param_1[0xc];\n            if (puVar9 != (uint *)param_1[0xd]) goto LAB_002e314c;\nLAB_002e2f98:\n            iVar17 = iVar17 + 8;\n            local_60 = uVar26;\n            std::\n            vector<gold::Dwarf_die::Attribute_value,std::allocator<gold::Dwarf_die::Attribute_value>>\n            ::_M_realloc_insert<gold::Dwarf_die::Attribute_value_const&>(local_38,puVar9,&local_68);\n            iVar8 = param_1[10];\n            if (iVar17 == iVar21) goto LAB_002e2fb8;\n            goto LAB_002e2db4;\n          }\n        }\n        if ((uVar22 != 0x6e) && (uVar7 = uVar26, uVar22 != 0x2007)) goto LAB_002e313c;\nLAB_002e3858:\n        local_60._0_4_ = (uint *)(uVar26 >> 0x20);\n        uVar7 = uVar26;\n        if (uVar19 == 8) {\n          param_1[0x12] = (int)local_60._0_4_;\n          goto LAB_002e313c;\n        }\n        if (uVar19 != 0xe) goto LAB_002e313c;\n        goto LAB_002e387c;\n      }\n      if (uVar19 == 4) {\n        pcVar25 = *(code **)(**(int **)(*param_1 + 8) + 0xc);\n        if (pcVar25 == (code *)PTR_is_big_endian_004c2950) {\n          iVar8 = (**(code **)(**(int **)(*param_1 + 8) + 0xe8))();\n        }\n        else {\n          iVar8 = (*pcVar25)();\n        }\n        local_58 = *local_44;\n        if (iVar8 == 0) {\n          local_58 = (((local_58 >> 0x10) << 0x18 | (local_58 >> 0x18) << 0x10) >> 0x10) +\n                     ((local_58 & 0xff) << 8 | local_58 >> 8 & 0xff) * 0x10000;\n        }\n        local_60._0_4_ = local_44 + 1;\n        local_44 = (uint *)((int)local_60._0_4_ + local_58);\nLAB_002e355c:\n        uVar26 = CONCAT44(local_60._0_4_,local_60._4_4_);\n        uVar7 = uVar26;\n        if (uVar22 == 0x31) goto LAB_002e313c;\n        if (uVar22 < 0x32) goto LAB_002e3118;\n        puVar9 = (uint *)param_1[0xc];\n      }\n      else {\n        if (4 < uVar19) {\n          if (uVar19 != 5) {\n            if (uVar19 != 6) {\n              return 0;\n            }\n            pcVar25 = *(code **)(**(int **)(*param_1 + 8) + 0xc);\n            if (pcVar25 == (code *)PTR_is_big_endian_004c2950) {\n              local_30 = puVar18;\n              iVar10 = (**(code **)(**(int **)(*param_1 + 8) + 0xe8))();\n            }\n            else {\n              local_30 = puVar18;\n              iVar10 = (*pcVar25)();\n            }\n            puVar9 = (uint *)*local_44;\n            if (iVar10 == 0) {\n              puVar9 = (uint *)(((((uint)puVar9 >> 0x10) << 0x18 | ((uint)puVar9 >> 0x18) << 0x10)\n                                >> 0x10) +\n                               (((uint)puVar9 & 0xff) << 8 | (uint)puVar9 >> 8 & 0xff) * 0x10000);\n            }\n            local_44 = local_44 + 1;\n            iVar10 = *param_1;\n            local_50._0_4_ = (uint *)0x0;\n            local_50._4_4_ = puVar9;\n            goto LAB_002e3708;\n          }\n          pcVar25 = *(code **)(**(int **)(*param_1 + 8) + 0xc);\n          if (pcVar25 == (code *)PTR_is_big_endian_004c2950) {\n            iVar8 = (**(code **)(**(int **)(*param_1 + 8) + 0xe8))();\n          }\n          else {\n            iVar8 = (*pcVar25)();\n          }\n          uVar6 = *(ushort *)local_44;\n          if (iVar8 == 0) {\n            uVar6 = CONCAT11(*(byte *)((int)local_44 + 1),*(byte *)local_44);\n          }\n          local_60._4_4_ = (uint *)(uint)uVar6;\n          local_44 = (uint *)((int)local_44 + 2);\n          local_60._0_4_ = (uint *)0x0;\n          goto LAB_002e355c;\n        }\n        if (uVar19 != 1) {\n          if (uVar19 != 3) {\n            return 0;\n          }\n          pcVar25 = *(code **)(**(int **)(*param_1 + 8) + 0xc);\n          if (pcVar25 == (code *)PTR_is_big_endian_004c2950) {\n            iVar8 = (**(code **)(**(int **)(*param_1 + 8) + 0xe8))();\n          }\n          else {\n            iVar8 = (*pcVar25)();\n          }\n          uVar6 = *(ushort *)local_44;\n          if (iVar8 == 0) {\n            uVar6 = CONCAT11(*(byte *)((int)local_44 + 1),*(byte *)local_44);\n          }\n          local_58 = (uint)uVar6;\n          local_60._0_4_ = (uint *)((int)local_44 + 2);\n          local_44 = (uint *)((int)local_60._0_4_ + local_58);\n          goto LAB_002e355c;\n        }\n        iVar8 = *param_1;\n        if (*(int *)(iVar8 + 0x4c) == 4) {\n          pcVar25 = *(code **)(**(int **)(iVar8 + 8) + 0xc);\n          if (pcVar25 == (code *)PTR_is_big_endian_004c2950) {\n            local_30 = puVar18;\n            iVar8 = (**(code **)(**(int **)(iVar8 + 8) + 0xe8))();\n          }\n          else {\n            local_30 = puVar18;\n            iVar8 = (*pcVar25)();\n          }\n          uVar15 = *local_44;\n          if (iVar8 == 0) {\n            uVar15 = (((uVar15 >> 0x10) << 0x18 | (uVar15 >> 0x18) << 0x10) >> 0x10) +\n                     ((uVar15 & 0xff) << 8 | uVar15 >> 8 & 0xff) * 0x10000;\n          }\n          local_44 = local_44 + 1;\n          uVar26 = (ulonglong)uVar15;\n        }\n        else {\n          local_30 = puVar18;\n          uVar26 = (*local_34)(iVar8,&local_44);\n        }\n        local_50 = uVar26;\n        local_58 = (*local_3c)(*param_1);\n        uVar26 = local_50;\n        if (uVar22 == 0x31) goto LAB_002e30bc;\n        if (uVar22 < 0x32) {\n          if (uVar22 != 1) goto joined_r0x002e3124;\n          goto LAB_002e39b4;\n        }\n        uVar7 = local_50;\n        if (uVar22 == 0x6e) goto LAB_002e313c;\n        if (uVar22 != 0x2007) goto LAB_002e339c;\n        puVar9 = (uint *)param_1[0xc];\n      }\n      while( true ) {\n        if (puVar9 == (uint *)param_1[0xd]) goto LAB_002e2f98;\nLAB_002e314c:\n        local_60._0_4_ = (uint *)(uVar26 >> 0x20);\n        local_60._4_4_ = (uint *)uVar26;\n        iVar17 = iVar17 + 8;\n        puVar9[1] = local_64;\n        puVar9[2] = (uint)local_60._0_4_;\n        *puVar9 = local_68;\n        puVar9[3] = (uint)local_60._4_4_;\n        puVar9[4] = local_58;\n        puVar9[5] = local_54;\n        param_1[0xc] = (int)(puVar9 + 6);\n        iVar8 = param_1[10];\n        local_60 = uVar26;\n        if (iVar17 == iVar21) goto LAB_002e2fb8;\n        puVar9 = (uint *)(*(int *)(iVar8 + 8) + iVar17);\n        uVar19 = puVar9[1];\n        uVar22 = *puVar9;\n        if (uVar19 != 0x16) goto LAB_002e2dd0;\nLAB_002e31a8:\n        uVar19 = (uint)*(byte *)local_44;\n        puVar9 = (uint *)((int)local_44 + 1);\n        if ((char)*(byte *)local_44 < '\0') {\n          local_60 = uVar26;\n          (*(code *)PTR_read_unsigned_LEB_128_x_004c2980)(puVar9,&local_48,uVar19);\n          puVar9 = (uint *)((int)local_44 + local_48);\n          uVar19 = extraout_v1;\n          uVar26 = local_60;\n        }\n        else {\n          local_48 = 1;\n        }\n        puVar11 = (uint *)((int)puVar9 - iVar20);\n        puVar18 = (uint *)((int)puVar11 + param_1[3]);\n        iVar8 = (uint)(puVar18 < puVar11) + ((int)puVar11 >> 0x1f) + param_1[2];\n        local_64 = uVar19;\n        local_44 = puVar9;\n        if (uVar19 != 0xe) break;\nLAB_002e31fc:\n        local_58 = 0;\n        iVar8 = *param_1;\n        local_68 = uVar22;\n        local_30 = puVar18;\n        local_60 = uVar26;\n        if (*(int *)(iVar8 + 0x48) == 4) {\n          pcVar25 = *(code **)(**(int **)(iVar8 + 8) + 0xc);\n          if (pcVar25 == (code *)PTR_is_big_endian_004c2950) {\n            iVar8 = (**(code **)(**(int **)(iVar8 + 8) + 0xe8))();\n          }\n          else {\n            iVar8 = (*pcVar25)();\n          }\n          uVar19 = *local_44;\n          if (iVar8 == 0) {\n            uVar19 = (((uVar19 >> 0x10) << 0x18 | (uVar19 >> 0x18) << 0x10) >> 0x10) +\n                     ((uVar19 & 0xff) << 8 | uVar19 >> 8 & 0xff) * 0x10000;\n          }\n          local_44 = local_44 + 1;\n          uVar26 = (ulonglong)uVar19;\n        }\n        else {\n          uVar26 = (*local_34)(iVar8,&local_44);\n        }\n        local_50 = uVar26;\n        local_58 = (*local_3c)(*param_1);\n        uVar7 = local_50;\n        if (uVar22 != 0x31) {\n          uVar26 = local_50;\n          if (uVar22 < 0x32) {\n            if ((uVar22 != 1) && (uVar22 == 3)) {\nLAB_002e3284:\n              param_1[0x16] = local_58;\n              *(ulonglong *)(param_1 + 0x10) = uVar26;\n              uVar7 = uVar26;\n            }\n          }\n          else {\n            if (uVar22 == 0x6e) {\nLAB_002e387c:\n              param_1[0x16] = local_58;\n            }\n            else {\n              if (uVar22 != 0x2007) goto LAB_002e313c;\n              param_1[0x16] = local_58;\n            }\n            *(ulonglong *)(param_1 + 0x14) = uVar26;\n            uVar7 = uVar26;\n          }\n        }\nLAB_002e313c:\n        puVar9 = (uint *)param_1[0xc];\n        uVar26 = uVar7;\n      }\n    } while( true );\n  }" if (parenthesized_expression "(uVar19 != 0)" ( (binary_expression "uVar19 != 0" identifier != number_literal) )) (compound_statement "{\nLAB_002e2d90:\n    local_3c = (code *)PTR_lookup_reloc_004c2994;\n    iVar17 = 0;\n    local_34 = (code *)PTR_read_from_pointer<64>_004c2998;\n    local_40 = &local_50;\nLAB_002e2db4:\n    puVar9 = (uint *)(*(int *)(iVar8 + 8) + iVar17);\n    uVar19 = puVar9[1];\n    uVar22 = *puVar9;\n    uVar26 = local_60;\n    if (uVar19 == 0x16) goto LAB_002e31a8;\nLAB_002e2dd0:\n    puVar9 = (uint *)((int)local_44 - iVar20);\n    puVar18 = (uint *)((int)puVar9 + param_1[3]);\n    iVar8 = (uint)(puVar18 < puVar9) + ((int)puVar9 >> 0x1f) + param_1[2];\n    local_64 = uVar19;\n    if (uVar19 == 0xe) goto LAB_002e31fc;\n    do {\n      local_60._4_4_ = (uint *)uVar26;\n      local_58 = 0;\n      local_68 = uVar22;\n      local_64 = uVar19;\n      local_60 = uVar26;\n      if (0xe < uVar19) {\n        if (uVar19 == 0x15) {\n          if ((char)*(byte *)local_44 < '\0') {\n            uVar26 = (*(code *)PTR_read_unsigned_LEB_128_x_004c2980)\n                               ((uint *)((int)local_44 + 1),&local_48);\n            local_44 = (uint *)((int)local_44 + local_48);\n          }\n          else {\n            uVar26 = (ulonglong)*(byte *)local_44;\n            local_48 = 1;\n            local_44 = (uint *)((int)local_44 + 1);\n          }\n          goto joined_r0x002e3998;\n        }\n        if (0x15 < uVar19) {\n          if (uVar19 == 0x19) {\n            local_60._4_4_ = (uint *)0x1;\n            local_60._0_4_ = (uint *)0x0;\n          }\n          else {\n            if (uVar19 < 0x1a) {\n              if (uVar19 != 0x17) {\n                if (uVar19 != 0x18) {\n                  return 0;\n                }\n                goto LAB_002e32bc;\n              }\n              iVar8 = *param_1;\n              if (*(int *)(iVar8 + 0x48) == 4) {\n                pcVar25 = *(code **)(**(int **)(iVar8 + 8) + 0xc);\n                if (pcVar25 == (code *)PTR_is_big_endian_004c2950) {\n                  local_30 = puVar18;\n                  iVar8 = (**(code **)(**(int **)(iVar8 + 8) + 0xe8))();\n                }\n                else {\n                  local_30 = puVar18;\n                  iVar8 = (*pcVar25)();\n                }\n                uVar15 = *local_44;\n                if (iVar8 == 0) {\n                  uVar15 = (((uVar15 >> 0x10) << 0x18 | (uVar15 >> 0x18) << 0x10) >> 0x10) +\n                           ((uVar15 & 0xff) << 8 | uVar15 >> 8 & 0xff) * 0x10000;\n                }\n                local_44 = local_44 + 1;\n                uVar26 = (ulonglong)uVar15;\n              }\n              else {\n                local_30 = puVar18;\n                uVar26 = (*local_34)(iVar8,&local_44);\n              }\n              iVar8 = *param_1;\n              goto LAB_002e3970;\n            }\n            if (uVar19 != 0x20) {\n              if (uVar19 < 0x20) {\n                return 0;\n              }\n              if (1 < uVar19 - 0x1f01) {\n                return 0;\n              }\nLAB_002e34d8:\n              if ((char)*(byte *)local_44 < '\0') {\n                uVar26 = (*(code *)PTR_read_unsigned_LEB_128_x_004c2980)\n                                   ((uint *)((int)local_44 + 1),&local_48);\n                local_44 = (uint *)((int)local_44 + local_48);\n              }\n              else {\n                uVar26 = (ulonglong)*(byte *)local_44;\n                local_48 = 1;\n                local_44 = (uint *)((int)local_44 + 1);\n              }\n              goto LAB_002e382c;\n            }\n            pcVar25 = *(code **)(**(int **)(*param_1 + 8) + 0xc);\n            if (pcVar25 == (code *)PTR_is_big_endian_004c2950) {\n              iVar8 = (**(code **)(**(int **)(*param_1 + 8) + 0xe8))();\n            }\n            else {\n              iVar8 = (*pcVar25)();\n            }\n            local_60._4_4_ = (uint *)local_44[1];\n            local_60._0_4_ = (uint *)*local_44;\n            if (iVar8 == 0) {\n              uVar15 = (uint)local_60._4_4_ & 0xff;\n              uVar16 = (uint)local_60._4_4_ >> 8;\n              uVar2 = (uint)local_60._4_4_ >> 0x10;\n              uVar4 = (uint)local_60._4_4_ >> 0x18;\n              local_60._4_4_ =\n                   (uint *)(((((uint)local_60._0_4_ >> 0x10) << 0x18 |\n                             ((uint)local_60._0_4_ >> 0x18) << 0x10) >> 0x10) +\n                           (((uint)local_60._0_4_ & 0xff) << 8 | (uint)local_60._0_4_ >> 8 & 0xff) *\n                           0x10000);\n              local_60._0_4_ =\n                   (uint *)(((uVar2 << 0x18 | uVar4 << 0x10) >> 0x10) +\n                           (uVar15 << 8 | uVar16 & 0xff) * 0x10000);\n            }\n            local_44 = local_44 + 2;\n          }\n          uVar7 = CONCAT44(local_60._0_4_,local_60._4_4_);\n          if (uVar22 == 0x6e) goto LAB_002e313c;\n          uVar7 = CONCAT44(local_60._0_4_,local_60._4_4_);\n          uVar26 = CONCAT44(local_60._0_4_,local_60._4_4_);\n          if (uVar22 == 0x2007) goto LAB_002e313c;\n          goto joined_r0x002e3124;\n        }\n        if (uVar19 == 0x11) {\n          puVar9 = (uint *)((int)local_44 + 1);\n          uVar15 = (uint)*(byte *)local_44;\n          uVar26 = (ulonglong)uVar15;\n          local_44 = puVar9;\n          if (uVar22 == 0x31) goto LAB_002e30bc;\n          if (0x31 < uVar22) {\n            uVar26 = (ulonglong)uVar15;\n            if ((uVar22 != 0x6e) && (uVar26 = (ulonglong)uVar15, uVar22 != 0x2007)) {\n              uVar7 = (ulonglong)uVar15;\n              if (uVar22 != 0x47) goto LAB_002e313c;\n              param_1[0x18] = 0;\n              param_1[0x19] = uVar15;\n              uVar7 = (ulonglong)uVar15;\n              goto LAB_002e313c;\n            }\n            goto LAB_002e3858;\n          }\n          if (uVar22 == 1) {\n            param_1[8] = 0;\n            param_1[9] = uVar15;\n            uVar7 = (ulonglong)uVar15;\n            goto LAB_002e313c;\n          }\n          goto joined_r0x002e3124;\n        }\n        if (uVar19 < 0x12) {\n          if (uVar19 == 0xf) goto LAB_002e34d8;\n          if (uVar19 != 0x10) {\n            return 0;\n          }\n          iVar10 = *param_1;\n          iVar8 = *(int *)(iVar10 + 0x48);\n          if (*(uint *)(iVar10 + 0x50) < 3) {\n            iVar8 = *(int *)(iVar10 + 0x4c);\n          }\n          if (iVar8 == 4) {\n            pcVar25 = *(code **)(**(int **)(iVar10 + 8) + 0xc);\n            if (pcVar25 == (code *)PTR_is_big_endian_004c2950) {\n              local_30 = puVar18;\n              iVar8 = (**(code **)(**(int **)(iVar10 + 8) + 0xe8))();\n            }\n            else {\n              local_30 = puVar18;\n              iVar8 = (*pcVar25)();\n            }\n            uVar15 = *local_44;\n            if (iVar8 == 0) {\n              uVar15 = (((uVar15 >> 0x10) << 0x18 | (uVar15 >> 0x18) << 0x10) >> 0x10) +\n                       ((uVar15 & 0xff) << 8 | uVar15 >> 8 & 0xff) * 0x10000;\n            }\n            local_44 = local_44 + 1;\n            uVar26 = (ulonglong)uVar15;\n          }\n          else {\n            local_30 = puVar18;\n            uVar26 = (*local_34)(iVar10,&local_44);\n          }\n          local_50 = uVar26;\n          local_58 = (*local_3c)(*param_1);\n          uVar26 = local_50;\n        }\n        else {\n          if (uVar19 == 0x13) {\n            pcVar25 = *(code **)(**(int **)(*param_1 + 8) + 0xc);\n            if (pcVar25 == (code *)PTR_is_big_endian_004c2950) {\n              local_30 = puVar18;\n              iVar8 = (**(code **)(**(int **)(*param_1 + 8) + 0xe8))();\n            }\n            else {\n              local_30 = puVar18;\n              iVar8 = (*pcVar25)();\n            }\n            uVar15 = *local_44;\n            if (iVar8 == 0) {\n              uVar15 = (((uVar15 >> 0x10) << 0x18 | (uVar15 >> 0x18) << 0x10) >> 0x10) +\n                       ((uVar15 & 0xff) << 8 | uVar15 >> 8 & 0xff) * 0x10000;\n            }\n            local_44 = local_44 + 1;\n            iVar8 = *param_1;\n            uVar26 = (ulonglong)uVar15;\n          }\n          else {\n            if (uVar19 < 0x14) {\n              pcVar25 = *(code **)(**(int **)(*param_1 + 8) + 0xc);\n              if (pcVar25 == (code *)PTR_is_big_endian_004c2950) {\n                iVar8 = (**(code **)(**(int **)(*param_1 + 8) + 0xe8))();\n              }\n              else {\n                iVar8 = (*pcVar25)();\n              }\n              uVar6 = *(ushort *)local_44;\n              if (iVar8 == 0) {\n                uVar6 = CONCAT11(*(byte *)((int)local_44 + 1),*(byte *)local_44);\n              }\n              local_44 = (uint *)((int)local_44 + 2);\n              uVar26 = (ulonglong)uVar6;\n              goto joined_r0x002e3998;\n            }\n            pcVar25 = *(code **)(**(int **)(*param_1 + 8) + 0xc);\n            if (pcVar25 == (code *)PTR_is_big_endian_004c2950) {\n              local_30 = puVar18;\n              iVar8 = (**(code **)(**(int **)(*param_1 + 8) + 0xe8))();\n            }\n            else {\n              local_30 = puVar18;\n              iVar8 = (*pcVar25)();\n            }\n            uVar15 = local_44[1];\n            uVar16 = *local_44;\n            if (iVar8 == 0) {\n              uVar2 = uVar15 & 0xff;\n              uVar4 = uVar15 >> 8;\n              uVar3 = uVar15 >> 0x10;\n              uVar5 = uVar15 >> 0x18;\n              uVar15 = (((uVar16 >> 0x10) << 0x18 | (uVar16 >> 0x18) << 0x10) >> 0x10) +\n                       ((uVar16 & 0xff) << 8 | uVar16 >> 8 & 0xff) * 0x10000;\n              uVar16 = ((uVar3 << 0x18 | uVar5 << 0x10) >> 0x10) +\n                       (uVar2 << 8 | uVar4 & 0xff) * 0x10000;\n            }\n            uVar26 = CONCAT44(uVar16,uVar15);\n            local_44 = local_44 + 2;\n            iVar8 = *param_1;\n          }\nLAB_002e3970:\n          local_50 = uVar26;\n          local_58 = (*local_3c)(iVar8);\n          uVar26 = local_50;\n        }\njoined_r0x002e3998:\n        if (uVar22 == 0x31) {\nLAB_002e30bc:\n          *(ulonglong *)(param_1 + 0x1a) = uVar26;\n          uVar7 = uVar26;\n          goto LAB_002e313c;\n        }\n        if (uVar22 < 0x32) {\n          uVar7 = uVar26;\n          if (uVar22 != 1) goto LAB_002e313c;\nLAB_002e39b4:\n          uVar7 = uVar26;\n          if (local_58 != 0) goto LAB_002e313c;\n          *(ulonglong *)(param_1 + 8) = uVar26;\n          goto LAB_002e313c;\n        }\n        if ((uVar22 != 0x6e) && (uVar22 != 0x2007)) {\nLAB_002e339c:\n          uVar7 = uVar26;\n          if (uVar22 != 0x47) goto LAB_002e313c;\n          *(ulonglong *)(param_1 + 0x18) = uVar26;\n          goto LAB_002e313c;\n        }\n        goto LAB_002e3858;\n      }\n      if (uVar19 == 7) {\n        pcVar25 = *(code **)(**(int **)(*param_1 + 8) + 0xc);\n        if (pcVar25 == (code *)PTR_is_big_endian_004c2950) {\n          local_30 = puVar18;\n          iVar10 = (**(code **)(**(int **)(*param_1 + 8) + 0xe8))();\n        }\n        else {\n          local_30 = puVar18;\n          iVar10 = (*pcVar25)();\n        }\n        local_50._4_4_ = (uint *)local_44[1];\n        puVar9 = (uint *)*local_44;\n        if (iVar10 == 0) {\n          uVar15 = (uint)local_50._4_4_ & 0xff;\n          uVar16 = (uint)local_50._4_4_ >> 8;\n          uVar2 = (uint)local_50._4_4_ >> 0x10;\n          uVar4 = (uint)local_50._4_4_ >> 0x18;\n          local_50._4_4_ =\n               (uint *)(((((uint)puVar9 >> 0x10) << 0x18 | ((uint)puVar9 >> 0x18) << 0x10) >> 0x10)\n                       + (((uint)puVar9 & 0xff) << 8 | (uint)puVar9 >> 8 & 0xff) * 0x10000);\n          puVar9 = (uint *)(((uVar2 << 0x18 | uVar4 << 0x10) >> 0x10) +\n                           (uVar15 << 8 | uVar16 & 0xff) * 0x10000);\n        }\n        local_44 = local_44 + 2;\n        iVar10 = *param_1;\n        local_50._0_4_ = puVar9;\nLAB_002e3708:\n        local_58 = (*local_3c)(iVar10,puVar9,iVar8,local_30,local_40);\n        local_60._4_4_ = local_50._4_4_;\n        local_60._0_4_ = local_50._0_4_;\n        goto LAB_002e355c;\n      }\n      if (7 < uVar19) {\n        if (uVar19 == 10) {\n          local_60._0_4_ = (uint *)((int)local_44 + 1);\n          local_58 = (uint)*(byte *)local_44;\n          local_44 = (uint *)((int)local_60._0_4_ + local_58);\n          goto LAB_002e355c;\n        }\n        if (uVar19 < 0xb) {\n          if (uVar19 != 8) {\n            if (uVar19 != 9) {\n              return 0;\n            }\nLAB_002e32bc:\n            uVar15 = (uint)*(byte *)local_44;\n            pbVar14 = (byte *)((int)local_44 + 1);\n            if ((char)*(byte *)local_44 < '\0') {\n              (*(code *)PTR_read_unsigned_LEB_128_x_004c2980)(pbVar14,&local_48);\n              pbVar14 = (byte *)((int)local_44 + local_48);\n              uVar15 = extraout_v1_00;\n            }\n            else {\n              local_48 = 1;\n            }\n            uVar26 = CONCAT44(pbVar14,local_60._4_4_);\n            local_58 = uVar15;\n            local_44 = (uint *)((int)local_44 + uVar15 + local_48);\n            goto LAB_002e382c;\n          }\n          local_60._0_4_ = local_44;\n          local_30 = local_44;\n          local_48 = (*(code *)PTR_strlen_004c5b9c)(local_44);\n          uVar26 = CONCAT44(local_60._0_4_,local_60._4_4_);\n          local_44 = (uint *)((int)local_30 + local_48 + 1);\n          uVar7 = CONCAT44(local_60._0_4_,local_60._4_4_);\n          if (uVar22 == 0x31) goto LAB_002e313c;\n          if (0x31 < uVar22) {\n            if ((uVar22 != 0x6e) &&\n               (uVar7 = CONCAT44(local_60._0_4_,local_60._4_4_), uVar22 != 0x2007))\n            goto LAB_002e313c;\n            param_1[0x12] = (int)local_30;\n            uVar7 = uVar26;\n            goto LAB_002e313c;\n          }\nLAB_002e3118:\n          uVar7 = uVar26;\n          if (uVar22 == 1) goto LAB_002e313c;\njoined_r0x002e3124:\n          uVar7 = uVar26;\n          if (uVar22 != 3) goto LAB_002e313c;\n          local_60._0_4_ = (uint *)(uVar26 >> 0x20);\n          if (uVar19 == 8) {\n            param_1[0xf] = (int)local_60._0_4_;\n            goto LAB_002e313c;\n          }\n          if (uVar19 != 0xe) goto LAB_002e313c;\n          goto LAB_002e3284;\n        }\n        if (uVar19 < 0xd) {\n          uVar26 = (ulonglong)*(byte *)local_44;\n          local_44 = (uint *)((int)local_44 + 1);\nLAB_002e382c:\n          uVar7 = uVar26;\n          if (uVar22 == 0x31) goto LAB_002e313c;\n          if (uVar22 < 0x32) goto LAB_002e3118;\n        }\n        else {\n          bVar1 = *(byte *)local_44;\n          uVar15 = (uint)bVar1;\n          puVar9 = (uint *)((int)local_44 + 1);\n          if ((char)bVar1 < '\0') {\n            uVar26 = (*(code *)PTR_read_signed_LEB_128_x_004c297c)(puVar9,&local_48,uVar15);\n            puVar9 = (uint *)((int)local_44 + local_48);\n          }\n          else {\n            local_48 = 1;\n            uVar26 = (ulonglong)uVar15;\n            if ((bVar1 & 0x40) != 0) {\n              uVar26 = CONCAT44(0xffffffff,uVar15 | 0xffffff80);\n            }\n          }\n          local_44 = puVar9;\n          uVar7 = uVar26;\n          if (uVar22 == 0x31) goto LAB_002e313c;\n          if (uVar22 < 0x32) {\n            puVar9 = (uint *)param_1[0xc];\n            if (puVar9 != (uint *)param_1[0xd]) goto LAB_002e314c;\nLAB_002e2f98:\n            iVar17 = iVar17 + 8;\n            local_60 = uVar26;\n            std::\n            vector<gold::Dwarf_die::Attribute_value,std::allocator<gold::Dwarf_die::Attribute_value>>\n            ::_M_realloc_insert<gold::Dwarf_die::Attribute_value_const&>(local_38,puVar9,&local_68);\n            iVar8 = param_1[10];\n            if (iVar17 == iVar21) goto LAB_002e2fb8;\n            goto LAB_002e2db4;\n          }\n        }\n        if ((uVar22 != 0x6e) && (uVar7 = uVar26, uVar22 != 0x2007)) goto LAB_002e313c;\nLAB_002e3858:\n        local_60._0_4_ = (uint *)(uVar26 >> 0x20);\n        uVar7 = uVar26;\n        if (uVar19 == 8) {\n          param_1[0x12] = (int)local_60._0_4_;\n          goto LAB_002e313c;\n        }\n        if (uVar19 != 0xe) goto LAB_002e313c;\n        goto LAB_002e387c;\n      }\n      if (uVar19 == 4) {\n        pcVar25 = *(code **)(**(int **)(*param_1 + 8) + 0xc);\n        if (pcVar25 == (code *)PTR_is_big_endian_004c2950) {\n          iVar8 = (**(code **)(**(int **)(*param_1 + 8) + 0xe8))();\n        }\n        else {\n          iVar8 = (*pcVar25)();\n        }\n        local_58 = *local_44;\n        if (iVar8 == 0) {\n          local_58 = (((local_58 >> 0x10) << 0x18 | (local_58 >> 0x18) << 0x10) >> 0x10) +\n                     ((local_58 & 0xff) << 8 | local_58 >> 8 & 0xff) * 0x10000;\n        }\n        local_60._0_4_ = local_44 + 1;\n        local_44 = (uint *)((int)local_60._0_4_ + local_58);\nLAB_002e355c:\n        uVar26 = CONCAT44(local_60._0_4_,local_60._4_4_);\n        uVar7 = uVar26;\n        if (uVar22 == 0x31) goto LAB_002e313c;\n        if (uVar22 < 0x32) goto LAB_002e3118;\n        puVar9 = (uint *)param_1[0xc];\n      }\n      else {\n        if (4 < uVar19) {\n          if (uVar19 != 5) {\n            if (uVar19 != 6) {\n              return 0;\n            }\n            pcVar25 = *(code **)(**(int **)(*param_1 + 8) + 0xc);\n            if (pcVar25 == (code *)PTR_is_big_endian_004c2950) {\n              local_30 = puVar18;\n              iVar10 = (**(code **)(**(int **)(*param_1 + 8) + 0xe8))();\n            }\n            else {\n              local_30 = puVar18;\n              iVar10 = (*pcVar25)();\n            }\n            puVar9 = (uint *)*local_44;\n            if (iVar10 == 0) {\n              puVar9 = (uint *)(((((uint)puVar9 >> 0x10) << 0x18 | ((uint)puVar9 >> 0x18) << 0x10)\n                                >> 0x10) +\n                               (((uint)puVar9 & 0xff) << 8 | (uint)puVar9 >> 8 & 0xff) * 0x10000);\n            }\n            local_44 = local_44 + 1;\n            iVar10 = *param_1;\n            local_50._0_4_ = (uint *)0x0;\n            local_50._4_4_ = puVar9;\n            goto LAB_002e3708;\n          }\n          pcVar25 = *(code **)(**(int **)(*param_1 + 8) + 0xc);\n          if (pcVar25 == (code *)PTR_is_big_endian_004c2950) {\n            iVar8 = (**(code **)(**(int **)(*param_1 + 8) + 0xe8))();\n          }\n          else {\n            iVar8 = (*pcVar25)();\n          }\n          uVar6 = *(ushort *)local_44;\n          if (iVar8 == 0) {\n            uVar6 = CONCAT11(*(byte *)((int)local_44 + 1),*(byte *)local_44);\n          }\n          local_60._4_4_ = (uint *)(uint)uVar6;\n          local_44 = (uint *)((int)local_44 + 2);\n          local_60._0_4_ = (uint *)0x0;\n          goto LAB_002e355c;\n        }\n        if (uVar19 != 1) {\n          if (uVar19 != 3) {\n            return 0;\n          }\n          pcVar25 = *(code **)(**(int **)(*param_1 + 8) + 0xc);\n          if (pcVar25 == (code *)PTR_is_big_endian_004c2950) {\n            iVar8 = (**(code **)(**(int **)(*param_1 + 8) + 0xe8))();\n          }\n          else {\n            iVar8 = (*pcVar25)();\n          }\n          uVar6 = *(ushort *)local_44;\n          if (iVar8 == 0) {\n            uVar6 = CONCAT11(*(byte *)((int)local_44 + 1),*(byte *)local_44);\n          }\n          local_58 = (uint)uVar6;\n          local_60._0_4_ = (uint *)((int)local_44 + 2);\n          local_44 = (uint *)((int)local_60._0_4_ + local_58);\n          goto LAB_002e355c;\n        }\n        iVar8 = *param_1;\n        if (*(int *)(iVar8 + 0x4c) == 4) {\n          pcVar25 = *(code **)(**(int **)(iVar8 + 8) + 0xc);\n          if (pcVar25 == (code *)PTR_is_big_endian_004c2950) {\n            local_30 = puVar18;\n            iVar8 = (**(code **)(**(int **)(iVar8 + 8) + 0xe8))();\n          }\n          else {\n            local_30 = puVar18;\n            iVar8 = (*pcVar25)();\n          }\n          uVar15 = *local_44;\n          if (iVar8 == 0) {\n            uVar15 = (((uVar15 >> 0x10) << 0x18 | (uVar15 >> 0x18) << 0x10) >> 0x10) +\n                     ((uVar15 & 0xff) << 8 | uVar15 >> 8 & 0xff) * 0x10000;\n          }\n          local_44 = local_44 + 1;\n          uVar26 = (ulonglong)uVar15;\n        }\n        else {\n          local_30 = puVar18;\n          uVar26 = (*local_34)(iVar8,&local_44);\n        }\n        local_50 = uVar26;\n        local_58 = (*local_3c)(*param_1);\n        uVar26 = local_50;\n        if (uVar22 == 0x31) goto LAB_002e30bc;\n        if (uVar22 < 0x32) {\n          if (uVar22 != 1) goto joined_r0x002e3124;\n          goto LAB_002e39b4;\n        }\n        uVar7 = local_50;\n        if (uVar22 == 0x6e) goto LAB_002e313c;\n        if (uVar22 != 0x2007) goto LAB_002e339c;\n        puVar9 = (uint *)param_1[0xc];\n      }\n      while( true ) {\n        if (puVar9 == (uint *)param_1[0xd]) goto LAB_002e2f98;\nLAB_002e314c:\n        local_60._0_4_ = (uint *)(uVar26 >> 0x20);\n        local_60._4_4_ = (uint *)uVar26;\n        iVar17 = iVar17 + 8;\n        puVar9[1] = local_64;\n        puVar9[2] = (uint)local_60._0_4_;\n        *puVar9 = local_68;\n        puVar9[3] = (uint)local_60._4_4_;\n        puVar9[4] = local_58;\n        puVar9[5] = local_54;\n        param_1[0xc] = (int)(puVar9 + 6);\n        iVar8 = param_1[10];\n        local_60 = uVar26;\n        if (iVar17 == iVar21) goto LAB_002e2fb8;\n        puVar9 = (uint *)(*(int *)(iVar8 + 8) + iVar17);\n        uVar19 = puVar9[1];\n        uVar22 = *puVar9;\n        if (uVar19 != 0x16) goto LAB_002e2dd0;\nLAB_002e31a8:\n        uVar19 = (uint)*(byte *)local_44;\n        puVar9 = (uint *)((int)local_44 + 1);\n        if ((char)*(byte *)local_44 < '\0') {\n          local_60 = uVar26;\n          (*(code *)PTR_read_unsigned_LEB_128_x_004c2980)(puVar9,&local_48,uVar19);\n          puVar9 = (uint *)((int)local_44 + local_48);\n          uVar19 = extraout_v1;\n          uVar26 = local_60;\n        }\n        else {\n          local_48 = 1;\n        }\n        puVar11 = (uint *)((int)puVar9 - iVar20);\n        puVar18 = (uint *)((int)puVar11 + param_1[3]);\n        iVar8 = (uint)(puVar18 < puVar11) + ((int)puVar11 >> 0x1f) + param_1[2];\n        local_64 = uVar19;\n        local_44 = puVar9;\n        if (uVar19 != 0xe) break;\nLAB_002e31fc:\n        local_58 = 0;\n        iVar8 = *param_1;\n        local_68 = uVar22;\n        local_30 = puVar18;\n        local_60 = uVar26;\n        if (*(int *)(iVar8 + 0x48) == 4) {\n          pcVar25 = *(code **)(**(int **)(iVar8 + 8) + 0xc);\n          if (pcVar25 == (code *)PTR_is_big_endian_004c2950) {\n            iVar8 = (**(code **)(**(int **)(iVar8 + 8) + 0xe8))();\n          }\n          else {\n            iVar8 = (*pcVar25)();\n          }\n          uVar19 = *local_44;\n          if (iVar8 == 0) {\n            uVar19 = (((uVar19 >> 0x10) << 0x18 | (uVar19 >> 0x18) << 0x10) >> 0x10) +\n                     ((uVar19 & 0xff) << 8 | uVar19 >> 8 & 0xff) * 0x10000;\n          }\n          local_44 = local_44 + 1;\n          uVar26 = (ulonglong)uVar19;\n        }\n        else {\n          uVar26 = (*local_34)(iVar8,&local_44);\n        }\n        local_50 = uVar26;\n        local_58 = (*local_3c)(*param_1);\n        uVar7 = local_50;\n        if (uVar22 != 0x31) {\n          uVar26 = local_50;\n          if (uVar22 < 0x32) {\n            if ((uVar22 != 1) && (uVar22 == 3)) {\nLAB_002e3284:\n              param_1[0x16] = local_58;\n              *(ulonglong *)(param_1 + 0x10) = uVar26;\n              uVar7 = uVar26;\n            }\n          }\n          else {\n            if (uVar22 == 0x6e) {\nLAB_002e387c:\n              param_1[0x16] = local_58;\n            }\n            else {\n              if (uVar22 != 0x2007) goto LAB_002e313c;\n              param_1[0x16] = local_58;\n            }\n            *(ulonglong *)(param_1 + 0x14) = uVar26;\n            uVar7 = uVar26;\n          }\n        }\nLAB_002e313c:\n        puVar9 = (uint *)param_1[0xc];\n        uVar26 = uVar7;\n      }\n    } while( true );\n  }" { (labeled_statement "LAB_002e2d90:\n    local_3c = (code *)PTR_lookup_reloc_004c2994;" statement_identifier : (expression_statement "local_3c = (code *)PTR_lookup_reloc_004c2994;" (assignment_expression "local_3c = (code *)PTR_lookup_reloc_004c2994" identifier = (cast_expression "(code *)PTR_lookup_reloc_004c2994" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) ;)) (expression_statement "iVar17 = 0;" (assignment_expression "iVar17 = 0" identifier = number_literal) ;) (expression_statement "local_34 = (code *)PTR_read_from_pointer<64>_004c2998;" (assignment_expression "local_34 = (code *)PTR_read_from_pointer<64>_004c2998" identifier = (binary_expression "(code *)PTR_read_from_pointer<64>_004c2998" (binary_expression "(code *)PTR_read_from_pointer<64" (cast_expression "(code *)PTR_read_from_pointer" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier) < number_literal) > identifier)) ;) (expression_statement "local_40 = &local_50;" (assignment_expression "local_40 = &local_50" identifier = (pointer_expression "&local_50" & identifier)) ;) (labeled_statement "LAB_002e2db4:\n    puVar9 = (uint *)(*(int *)(iVar8 + 8) + iVar17);" statement_identifier : (expression_statement "puVar9 = (uint *)(*(int *)(iVar8 + 8) + iVar17);" (assignment_expression "puVar9 = (uint *)(*(int *)(iVar8 + 8) + iVar17)" identifier = (cast_expression "(uint *)(*(int *)(iVar8 + 8) + iVar17)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*(int *)(iVar8 + 8) + iVar17)" ( (binary_expression "*(int *)(iVar8 + 8) + iVar17" (pointer_expression "*(int *)(iVar8 + 8)" * (cast_expression "(int *)(iVar8 + 8)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar8 + 8)" ( (binary_expression "iVar8 + 8" identifier + number_literal) )))) + identifier) )))) ;)) (expression_statement "uVar19 = puVar9[1];" (assignment_expression "uVar19 = puVar9[1]" identifier = (subscript_expression "puVar9[1]" identifier [ number_literal ])) ;) (expression_statement "uVar22 = *puVar9;" (assignment_expression "uVar22 = *puVar9" identifier = (pointer_expression "*puVar9" * identifier)) ;) (expression_statement "uVar26 = local_60;" (assignment_expression "uVar26 = local_60" identifier = identifier) ;) (if_statement "if (uVar19 == 0x16) goto LAB_002e31a8;" if (parenthesized_expression "(uVar19 == 0x16)" ( (binary_expression "uVar19 == 0x16" identifier == number_literal) )) (goto_statement "goto LAB_002e31a8;" goto statement_identifier ;)) (labeled_statement "LAB_002e2dd0:\n    puVar9 = (uint *)((int)local_44 - iVar20);" statement_identifier : (expression_statement "puVar9 = (uint *)((int)local_44 - iVar20);" (assignment_expression "puVar9 = (uint *)((int)local_44 - iVar20)" identifier = (cast_expression "(uint *)((int)local_44 - iVar20)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)local_44 - iVar20)" ( (binary_expression "(int)local_44 - iVar20" (cast_expression "(int)local_44" ( (type_descriptor "int" primitive_type) ) identifier) - identifier) )))) ;)) (expression_statement "puVar18 = (uint *)((int)puVar9 + param_1[3]);" (assignment_expression "puVar18 = (uint *)((int)puVar9 + param_1[3])" identifier = (cast_expression "(uint *)((int)puVar9 + param_1[3])" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)puVar9 + param_1[3])" ( (binary_expression "(int)puVar9 + param_1[3]" (cast_expression "(int)puVar9" ( (type_descriptor "int" primitive_type) ) identifier) + (subscript_expression "param_1[3]" identifier [ number_literal ])) )))) ;) (expression_statement "iVar8 = (uint)(puVar18 < puVar9) + ((int)puVar9 >> 0x1f) + param_1[2];" (assignment_expression "iVar8 = (uint)(puVar18 < puVar9) + ((int)puVar9 >> 0x1f) + param_1[2]" identifier = (binary_expression "(uint)(puVar18 < puVar9) + ((int)puVar9 >> 0x1f) + param_1[2]" (binary_expression "(uint)(puVar18 < puVar9) + ((int)puVar9 >> 0x1f)" (call_expression "(uint)(puVar18 < puVar9)" (parenthesized_expression "(uint)" ( identifier )) (argument_list "(puVar18 < puVar9)" ( (binary_expression "puVar18 < puVar9" identifier < identifier) ))) + (parenthesized_expression "((int)puVar9 >> 0x1f)" ( (binary_expression "(int)puVar9 >> 0x1f" (cast_expression "(int)puVar9" ( (type_descriptor "int" primitive_type) ) identifier) >> number_literal) ))) + (subscript_expression "param_1[2]" identifier [ number_literal ]))) ;) (expression_statement "local_64 = uVar19;" (assignment_expression "local_64 = uVar19" identifier = identifier) ;) (if_statement "if (uVar19 == 0xe) goto LAB_002e31fc;" if (parenthesized_expression "(uVar19 == 0xe)" ( (binary_expression "uVar19 == 0xe" identifier == number_literal) )) (goto_statement "goto LAB_002e31fc;" goto statement_identifier ;)) (do_statement "do {\n      local_60._4_4_ = (uint *)uVar26;\n      local_58 = 0;\n      local_68 = uVar22;\n      local_64 = uVar19;\n      local_60 = uVar26;\n      if (0xe < uVar19) {\n        if (uVar19 == 0x15) {\n          if ((char)*(byte *)local_44 < '\0') {\n            uVar26 = (*(code *)PTR_read_unsigned_LEB_128_x_004c2980)\n                               ((uint *)((int)local_44 + 1),&local_48);\n            local_44 = (uint *)((int)local_44 + local_48);\n          }\n          else {\n            uVar26 = (ulonglong)*(byte *)local_44;\n            local_48 = 1;\n            local_44 = (uint *)((int)local_44 + 1);\n          }\n          goto joined_r0x002e3998;\n        }\n        if (0x15 < uVar19) {\n          if (uVar19 == 0x19) {\n            local_60._4_4_ = (uint *)0x1;\n            local_60._0_4_ = (uint *)0x0;\n          }\n          else {\n            if (uVar19 < 0x1a) {\n              if (uVar19 != 0x17) {\n                if (uVar19 != 0x18) {\n                  return 0;\n                }\n                goto LAB_002e32bc;\n              }\n              iVar8 = *param_1;\n              if (*(int *)(iVar8 + 0x48) == 4) {\n                pcVar25 = *(code **)(**(int **)(iVar8 + 8) + 0xc);\n                if (pcVar25 == (code *)PTR_is_big_endian_004c2950) {\n                  local_30 = puVar18;\n                  iVar8 = (**(code **)(**(int **)(iVar8 + 8) + 0xe8))();\n                }\n                else {\n                  local_30 = puVar18;\n                  iVar8 = (*pcVar25)();\n                }\n                uVar15 = *local_44;\n                if (iVar8 == 0) {\n                  uVar15 = (((uVar15 >> 0x10) << 0x18 | (uVar15 >> 0x18) << 0x10) >> 0x10) +\n                           ((uVar15 & 0xff) << 8 | uVar15 >> 8 & 0xff) * 0x10000;\n                }\n                local_44 = local_44 + 1;\n                uVar26 = (ulonglong)uVar15;\n              }\n              else {\n                local_30 = puVar18;\n                uVar26 = (*local_34)(iVar8,&local_44);\n              }\n              iVar8 = *param_1;\n              goto LAB_002e3970;\n            }\n            if (uVar19 != 0x20) {\n              if (uVar19 < 0x20) {\n                return 0;\n              }\n              if (1 < uVar19 - 0x1f01) {\n                return 0;\n              }\nLAB_002e34d8:\n              if ((char)*(byte *)local_44 < '\0') {\n                uVar26 = (*(code *)PTR_read_unsigned_LEB_128_x_004c2980)\n                                   ((uint *)((int)local_44 + 1),&local_48);\n                local_44 = (uint *)((int)local_44 + local_48);\n              }\n              else {\n                uVar26 = (ulonglong)*(byte *)local_44;\n                local_48 = 1;\n                local_44 = (uint *)((int)local_44 + 1);\n              }\n              goto LAB_002e382c;\n            }\n            pcVar25 = *(code **)(**(int **)(*param_1 + 8) + 0xc);\n            if (pcVar25 == (code *)PTR_is_big_endian_004c2950) {\n              iVar8 = (**(code **)(**(int **)(*param_1 + 8) + 0xe8))();\n            }\n            else {\n              iVar8 = (*pcVar25)();\n            }\n            local_60._4_4_ = (uint *)local_44[1];\n            local_60._0_4_ = (uint *)*local_44;\n            if (iVar8 == 0) {\n              uVar15 = (uint)local_60._4_4_ & 0xff;\n              uVar16 = (uint)local_60._4_4_ >> 8;\n              uVar2 = (uint)local_60._4_4_ >> 0x10;\n              uVar4 = (uint)local_60._4_4_ >> 0x18;\n              local_60._4_4_ =\n                   (uint *)(((((uint)local_60._0_4_ >> 0x10) << 0x18 |\n                             ((uint)local_60._0_4_ >> 0x18) << 0x10) >> 0x10) +\n                           (((uint)local_60._0_4_ & 0xff) << 8 | (uint)local_60._0_4_ >> 8 & 0xff) *\n                           0x10000);\n              local_60._0_4_ =\n                   (uint *)(((uVar2 << 0x18 | uVar4 << 0x10) >> 0x10) +\n                           (uVar15 << 8 | uVar16 & 0xff) * 0x10000);\n            }\n            local_44 = local_44 + 2;\n          }\n          uVar7 = CONCAT44(local_60._0_4_,local_60._4_4_);\n          if (uVar22 == 0x6e) goto LAB_002e313c;\n          uVar7 = CONCAT44(local_60._0_4_,local_60._4_4_);\n          uVar26 = CONCAT44(local_60._0_4_,local_60._4_4_);\n          if (uVar22 == 0x2007) goto LAB_002e313c;\n          goto joined_r0x002e3124;\n        }\n        if (uVar19 == 0x11) {\n          puVar9 = (uint *)((int)local_44 + 1);\n          uVar15 = (uint)*(byte *)local_44;\n          uVar26 = (ulonglong)uVar15;\n          local_44 = puVar9;\n          if (uVar22 == 0x31) goto LAB_002e30bc;\n          if (0x31 < uVar22) {\n            uVar26 = (ulonglong)uVar15;\n            if ((uVar22 != 0x6e) && (uVar26 = (ulonglong)uVar15, uVar22 != 0x2007)) {\n              uVar7 = (ulonglong)uVar15;\n              if (uVar22 != 0x47) goto LAB_002e313c;\n              param_1[0x18] = 0;\n              param_1[0x19] = uVar15;\n              uVar7 = (ulonglong)uVar15;\n              goto LAB_002e313c;\n            }\n            goto LAB_002e3858;\n          }\n          if (uVar22 == 1) {\n            param_1[8] = 0;\n            param_1[9] = uVar15;\n            uVar7 = (ulonglong)uVar15;\n            goto LAB_002e313c;\n          }\n          goto joined_r0x002e3124;\n        }\n        if (uVar19 < 0x12) {\n          if (uVar19 == 0xf) goto LAB_002e34d8;\n          if (uVar19 != 0x10) {\n            return 0;\n          }\n          iVar10 = *param_1;\n          iVar8 = *(int *)(iVar10 + 0x48);\n          if (*(uint *)(iVar10 + 0x50) < 3) {\n            iVar8 = *(int *)(iVar10 + 0x4c);\n          }\n          if (iVar8 == 4) {\n            pcVar25 = *(code **)(**(int **)(iVar10 + 8) + 0xc);\n            if (pcVar25 == (code *)PTR_is_big_endian_004c2950) {\n              local_30 = puVar18;\n              iVar8 = (**(code **)(**(int **)(iVar10 + 8) + 0xe8))();\n            }\n            else {\n              local_30 = puVar18;\n              iVar8 = (*pcVar25)();\n            }\n            uVar15 = *local_44;\n            if (iVar8 == 0) {\n              uVar15 = (((uVar15 >> 0x10) << 0x18 | (uVar15 >> 0x18) << 0x10) >> 0x10) +\n                       ((uVar15 & 0xff) << 8 | uVar15 >> 8 & 0xff) * 0x10000;\n            }\n            local_44 = local_44 + 1;\n            uVar26 = (ulonglong)uVar15;\n          }\n          else {\n            local_30 = puVar18;\n            uVar26 = (*local_34)(iVar10,&local_44);\n          }\n          local_50 = uVar26;\n          local_58 = (*local_3c)(*param_1);\n          uVar26 = local_50;\n        }\n        else {\n          if (uVar19 == 0x13) {\n            pcVar25 = *(code **)(**(int **)(*param_1 + 8) + 0xc);\n            if (pcVar25 == (code *)PTR_is_big_endian_004c2950) {\n              local_30 = puVar18;\n              iVar8 = (**(code **)(**(int **)(*param_1 + 8) + 0xe8))();\n            }\n            else {\n              local_30 = puVar18;\n              iVar8 = (*pcVar25)();\n            }\n            uVar15 = *local_44;\n            if (iVar8 == 0) {\n              uVar15 = (((uVar15 >> 0x10) << 0x18 | (uVar15 >> 0x18) << 0x10) >> 0x10) +\n                       ((uVar15 & 0xff) << 8 | uVar15 >> 8 & 0xff) * 0x10000;\n            }\n            local_44 = local_44 + 1;\n            iVar8 = *param_1;\n            uVar26 = (ulonglong)uVar15;\n          }\n          else {\n            if (uVar19 < 0x14) {\n              pcVar25 = *(code **)(**(int **)(*param_1 + 8) + 0xc);\n              if (pcVar25 == (code *)PTR_is_big_endian_004c2950) {\n                iVar8 = (**(code **)(**(int **)(*param_1 + 8) + 0xe8))();\n              }\n              else {\n                iVar8 = (*pcVar25)();\n              }\n              uVar6 = *(ushort *)local_44;\n              if (iVar8 == 0) {\n                uVar6 = CONCAT11(*(byte *)((int)local_44 + 1),*(byte *)local_44);\n              }\n              local_44 = (uint *)((int)local_44 + 2);\n              uVar26 = (ulonglong)uVar6;\n              goto joined_r0x002e3998;\n            }\n            pcVar25 = *(code **)(**(int **)(*param_1 + 8) + 0xc);\n            if (pcVar25 == (code *)PTR_is_big_endian_004c2950) {\n              local_30 = puVar18;\n              iVar8 = (**(code **)(**(int **)(*param_1 + 8) + 0xe8))();\n            }\n            else {\n              local_30 = puVar18;\n              iVar8 = (*pcVar25)();\n            }\n            uVar15 = local_44[1];\n            uVar16 = *local_44;\n            if (iVar8 == 0) {\n              uVar2 = uVar15 & 0xff;\n              uVar4 = uVar15 >> 8;\n              uVar3 = uVar15 >> 0x10;\n              uVar5 = uVar15 >> 0x18;\n              uVar15 = (((uVar16 >> 0x10) << 0x18 | (uVar16 >> 0x18) << 0x10) >> 0x10) +\n                       ((uVar16 & 0xff) << 8 | uVar16 >> 8 & 0xff) * 0x10000;\n              uVar16 = ((uVar3 << 0x18 | uVar5 << 0x10) >> 0x10) +\n                       (uVar2 << 8 | uVar4 & 0xff) * 0x10000;\n            }\n            uVar26 = CONCAT44(uVar16,uVar15);\n            local_44 = local_44 + 2;\n            iVar8 = *param_1;\n          }\nLAB_002e3970:\n          local_50 = uVar26;\n          local_58 = (*local_3c)(iVar8);\n          uVar26 = local_50;\n        }\njoined_r0x002e3998:\n        if (uVar22 == 0x31) {\nLAB_002e30bc:\n          *(ulonglong *)(param_1 + 0x1a) = uVar26;\n          uVar7 = uVar26;\n          goto LAB_002e313c;\n        }\n        if (uVar22 < 0x32) {\n          uVar7 = uVar26;\n          if (uVar22 != 1) goto LAB_002e313c;\nLAB_002e39b4:\n          uVar7 = uVar26;\n          if (local_58 != 0) goto LAB_002e313c;\n          *(ulonglong *)(param_1 + 8) = uVar26;\n          goto LAB_002e313c;\n        }\n        if ((uVar22 != 0x6e) && (uVar22 != 0x2007)) {\nLAB_002e339c:\n          uVar7 = uVar26;\n          if (uVar22 != 0x47) goto LAB_002e313c;\n          *(ulonglong *)(param_1 + 0x18) = uVar26;\n          goto LAB_002e313c;\n        }\n        goto LAB_002e3858;\n      }\n      if (uVar19 == 7) {\n        pcVar25 = *(code **)(**(int **)(*param_1 + 8) + 0xc);\n        if (pcVar25 == (code *)PTR_is_big_endian_004c2950) {\n          local_30 = puVar18;\n          iVar10 = (**(code **)(**(int **)(*param_1 + 8) + 0xe8))();\n        }\n        else {\n          local_30 = puVar18;\n          iVar10 = (*pcVar25)();\n        }\n        local_50._4_4_ = (uint *)local_44[1];\n        puVar9 = (uint *)*local_44;\n        if (iVar10 == 0) {\n          uVar15 = (uint)local_50._4_4_ & 0xff;\n          uVar16 = (uint)local_50._4_4_ >> 8;\n          uVar2 = (uint)local_50._4_4_ >> 0x10;\n          uVar4 = (uint)local_50._4_4_ >> 0x18;\n          local_50._4_4_ =\n               (uint *)(((((uint)puVar9 >> 0x10) << 0x18 | ((uint)puVar9 >> 0x18) << 0x10) >> 0x10)\n                       + (((uint)puVar9 & 0xff) << 8 | (uint)puVar9 >> 8 & 0xff) * 0x10000);\n          puVar9 = (uint *)(((uVar2 << 0x18 | uVar4 << 0x10) >> 0x10) +\n                           (uVar15 << 8 | uVar16 & 0xff) * 0x10000);\n        }\n        local_44 = local_44 + 2;\n        iVar10 = *param_1;\n        local_50._0_4_ = puVar9;\nLAB_002e3708:\n        local_58 = (*local_3c)(iVar10,puVar9,iVar8,local_30,local_40);\n        local_60._4_4_ = local_50._4_4_;\n        local_60._0_4_ = local_50._0_4_;\n        goto LAB_002e355c;\n      }\n      if (7 < uVar19) {\n        if (uVar19 == 10) {\n          local_60._0_4_ = (uint *)((int)local_44 + 1);\n          local_58 = (uint)*(byte *)local_44;\n          local_44 = (uint *)((int)local_60._0_4_ + local_58);\n          goto LAB_002e355c;\n        }\n        if (uVar19 < 0xb) {\n          if (uVar19 != 8) {\n            if (uVar19 != 9) {\n              return 0;\n            }\nLAB_002e32bc:\n            uVar15 = (uint)*(byte *)local_44;\n            pbVar14 = (byte *)((int)local_44 + 1);\n            if ((char)*(byte *)local_44 < '\0') {\n              (*(code *)PTR_read_unsigned_LEB_128_x_004c2980)(pbVar14,&local_48);\n              pbVar14 = (byte *)((int)local_44 + local_48);\n              uVar15 = extraout_v1_00;\n            }\n            else {\n              local_48 = 1;\n            }\n            uVar26 = CONCAT44(pbVar14,local_60._4_4_);\n            local_58 = uVar15;\n            local_44 = (uint *)((int)local_44 + uVar15 + local_48);\n            goto LAB_002e382c;\n          }\n          local_60._0_4_ = local_44;\n          local_30 = local_44;\n          local_48 = (*(code *)PTR_strlen_004c5b9c)(local_44);\n          uVar26 = CONCAT44(local_60._0_4_,local_60._4_4_);\n          local_44 = (uint *)((int)local_30 + local_48 + 1);\n          uVar7 = CONCAT44(local_60._0_4_,local_60._4_4_);\n          if (uVar22 == 0x31) goto LAB_002e313c;\n          if (0x31 < uVar22) {\n            if ((uVar22 != 0x6e) &&\n               (uVar7 = CONCAT44(local_60._0_4_,local_60._4_4_), uVar22 != 0x2007))\n            goto LAB_002e313c;\n            param_1[0x12] = (int)local_30;\n            uVar7 = uVar26;\n            goto LAB_002e313c;\n          }\nLAB_002e3118:\n          uVar7 = uVar26;\n          if (uVar22 == 1) goto LAB_002e313c;\njoined_r0x002e3124:\n          uVar7 = uVar26;\n          if (uVar22 != 3) goto LAB_002e313c;\n          local_60._0_4_ = (uint *)(uVar26 >> 0x20);\n          if (uVar19 == 8) {\n            param_1[0xf] = (int)local_60._0_4_;\n            goto LAB_002e313c;\n          }\n          if (uVar19 != 0xe) goto LAB_002e313c;\n          goto LAB_002e3284;\n        }\n        if (uVar19 < 0xd) {\n          uVar26 = (ulonglong)*(byte *)local_44;\n          local_44 = (uint *)((int)local_44 + 1);\nLAB_002e382c:\n          uVar7 = uVar26;\n          if (uVar22 == 0x31) goto LAB_002e313c;\n          if (uVar22 < 0x32) goto LAB_002e3118;\n        }\n        else {\n          bVar1 = *(byte *)local_44;\n          uVar15 = (uint)bVar1;\n          puVar9 = (uint *)((int)local_44 + 1);\n          if ((char)bVar1 < '\0') {\n            uVar26 = (*(code *)PTR_read_signed_LEB_128_x_004c297c)(puVar9,&local_48,uVar15);\n            puVar9 = (uint *)((int)local_44 + local_48);\n          }\n          else {\n            local_48 = 1;\n            uVar26 = (ulonglong)uVar15;\n            if ((bVar1 & 0x40) != 0) {\n              uVar26 = CONCAT44(0xffffffff,uVar15 | 0xffffff80);\n            }\n          }\n          local_44 = puVar9;\n          uVar7 = uVar26;\n          if (uVar22 == 0x31) goto LAB_002e313c;\n          if (uVar22 < 0x32) {\n            puVar9 = (uint *)param_1[0xc];\n            if (puVar9 != (uint *)param_1[0xd]) goto LAB_002e314c;\nLAB_002e2f98:\n            iVar17 = iVar17 + 8;\n            local_60 = uVar26;\n            std::\n            vector<gold::Dwarf_die::Attribute_value,std::allocator<gold::Dwarf_die::Attribute_value>>\n            ::_M_realloc_insert<gold::Dwarf_die::Attribute_value_const&>(local_38,puVar9,&local_68);\n            iVar8 = param_1[10];\n            if (iVar17 == iVar21) goto LAB_002e2fb8;\n            goto LAB_002e2db4;\n          }\n        }\n        if ((uVar22 != 0x6e) && (uVar7 = uVar26, uVar22 != 0x2007)) goto LAB_002e313c;\nLAB_002e3858:\n        local_60._0_4_ = (uint *)(uVar26 >> 0x20);\n        uVar7 = uVar26;\n        if (uVar19 == 8) {\n          param_1[0x12] = (int)local_60._0_4_;\n          goto LAB_002e313c;\n        }\n        if (uVar19 != 0xe) goto LAB_002e313c;\n        goto LAB_002e387c;\n      }\n      if (uVar19 == 4) {\n        pcVar25 = *(code **)(**(int **)(*param_1 + 8) + 0xc);\n        if (pcVar25 == (code *)PTR_is_big_endian_004c2950) {\n          iVar8 = (**(code **)(**(int **)(*param_1 + 8) + 0xe8))();\n        }\n        else {\n          iVar8 = (*pcVar25)();\n        }\n        local_58 = *local_44;\n        if (iVar8 == 0) {\n          local_58 = (((local_58 >> 0x10) << 0x18 | (local_58 >> 0x18) << 0x10) >> 0x10) +\n                     ((local_58 & 0xff) << 8 | local_58 >> 8 & 0xff) * 0x10000;\n        }\n        local_60._0_4_ = local_44 + 1;\n        local_44 = (uint *)((int)local_60._0_4_ + local_58);\nLAB_002e355c:\n        uVar26 = CONCAT44(local_60._0_4_,local_60._4_4_);\n        uVar7 = uVar26;\n        if (uVar22 == 0x31) goto LAB_002e313c;\n        if (uVar22 < 0x32) goto LAB_002e3118;\n        puVar9 = (uint *)param_1[0xc];\n      }\n      else {\n        if (4 < uVar19) {\n          if (uVar19 != 5) {\n            if (uVar19 != 6) {\n              return 0;\n            }\n            pcVar25 = *(code **)(**(int **)(*param_1 + 8) + 0xc);\n            if (pcVar25 == (code *)PTR_is_big_endian_004c2950) {\n              local_30 = puVar18;\n              iVar10 = (**(code **)(**(int **)(*param_1 + 8) + 0xe8))();\n            }\n            else {\n              local_30 = puVar18;\n              iVar10 = (*pcVar25)();\n            }\n            puVar9 = (uint *)*local_44;\n            if (iVar10 == 0) {\n              puVar9 = (uint *)(((((uint)puVar9 >> 0x10) << 0x18 | ((uint)puVar9 >> 0x18) << 0x10)\n                                >> 0x10) +\n                               (((uint)puVar9 & 0xff) << 8 | (uint)puVar9 >> 8 & 0xff) * 0x10000);\n            }\n            local_44 = local_44 + 1;\n            iVar10 = *param_1;\n            local_50._0_4_ = (uint *)0x0;\n            local_50._4_4_ = puVar9;\n            goto LAB_002e3708;\n          }\n          pcVar25 = *(code **)(**(int **)(*param_1 + 8) + 0xc);\n          if (pcVar25 == (code *)PTR_is_big_endian_004c2950) {\n            iVar8 = (**(code **)(**(int **)(*param_1 + 8) + 0xe8))();\n          }\n          else {\n            iVar8 = (*pcVar25)();\n          }\n          uVar6 = *(ushort *)local_44;\n          if (iVar8 == 0) {\n            uVar6 = CONCAT11(*(byte *)((int)local_44 + 1),*(byte *)local_44);\n          }\n          local_60._4_4_ = (uint *)(uint)uVar6;\n          local_44 = (uint *)((int)local_44 + 2);\n          local_60._0_4_ = (uint *)0x0;\n          goto LAB_002e355c;\n        }\n        if (uVar19 != 1) {\n          if (uVar19 != 3) {\n            return 0;\n          }\n          pcVar25 = *(code **)(**(int **)(*param_1 + 8) + 0xc);\n          if (pcVar25 == (code *)PTR_is_big_endian_004c2950) {\n            iVar8 = (**(code **)(**(int **)(*param_1 + 8) + 0xe8))();\n          }\n          else {\n            iVar8 = (*pcVar25)();\n          }\n          uVar6 = *(ushort *)local_44;\n          if (iVar8 == 0) {\n            uVar6 = CONCAT11(*(byte *)((int)local_44 + 1),*(byte *)local_44);\n          }\n          local_58 = (uint)uVar6;\n          local_60._0_4_ = (uint *)((int)local_44 + 2);\n          local_44 = (uint *)((int)local_60._0_4_ + local_58);\n          goto LAB_002e355c;\n        }\n        iVar8 = *param_1;\n        if (*(int *)(iVar8 + 0x4c) == 4) {\n          pcVar25 = *(code **)(**(int **)(iVar8 + 8) + 0xc);\n          if (pcVar25 == (code *)PTR_is_big_endian_004c2950) {\n            local_30 = puVar18;\n            iVar8 = (**(code **)(**(int **)(iVar8 + 8) + 0xe8))();\n          }\n          else {\n            local_30 = puVar18;\n            iVar8 = (*pcVar25)();\n          }\n          uVar15 = *local_44;\n          if (iVar8 == 0) {\n            uVar15 = (((uVar15 >> 0x10) << 0x18 | (uVar15 >> 0x18) << 0x10) >> 0x10) +\n                     ((uVar15 & 0xff) << 8 | uVar15 >> 8 & 0xff) * 0x10000;\n          }\n          local_44 = local_44 + 1;\n          uVar26 = (ulonglong)uVar15;\n        }\n        else {\n          local_30 = puVar18;\n          uVar26 = (*local_34)(iVar8,&local_44);\n        }\n        local_50 = uVar26;\n        local_58 = (*local_3c)(*param_1);\n        uVar26 = local_50;\n        if (uVar22 == 0x31) goto LAB_002e30bc;\n        if (uVar22 < 0x32) {\n          if (uVar22 != 1) goto joined_r0x002e3124;\n          goto LAB_002e39b4;\n        }\n        uVar7 = local_50;\n        if (uVar22 == 0x6e) goto LAB_002e313c;\n        if (uVar22 != 0x2007) goto LAB_002e339c;\n        puVar9 = (uint *)param_1[0xc];\n      }\n      while( true ) {\n        if (puVar9 == (uint *)param_1[0xd]) goto LAB_002e2f98;\nLAB_002e314c:\n        local_60._0_4_ = (uint *)(uVar26 >> 0x20);\n        local_60._4_4_ = (uint *)uVar26;\n        iVar17 = iVar17 + 8;\n        puVar9[1] = local_64;\n        puVar9[2] = (uint)local_60._0_4_;\n        *puVar9 = local_68;\n        puVar9[3] = (uint)local_60._4_4_;\n        puVar9[4] = local_58;\n        puVar9[5] = local_54;\n        param_1[0xc] = (int)(puVar9 + 6);\n        iVar8 = param_1[10];\n        local_60 = uVar26;\n        if (iVar17 == iVar21) goto LAB_002e2fb8;\n        puVar9 = (uint *)(*(int *)(iVar8 + 8) + iVar17);\n        uVar19 = puVar9[1];\n        uVar22 = *puVar9;\n        if (uVar19 != 0x16) goto LAB_002e2dd0;\nLAB_002e31a8:\n        uVar19 = (uint)*(byte *)local_44;\n        puVar9 = (uint *)((int)local_44 + 1);\n        if ((char)*(byte *)local_44 < '\0') {\n          local_60 = uVar26;\n          (*(code *)PTR_read_unsigned_LEB_128_x_004c2980)(puVar9,&local_48,uVar19);\n          puVar9 = (uint *)((int)local_44 + local_48);\n          uVar19 = extraout_v1;\n          uVar26 = local_60;\n        }\n        else {\n          local_48 = 1;\n        }\n        puVar11 = (uint *)((int)puVar9 - iVar20);\n        puVar18 = (uint *)((int)puVar11 + param_1[3]);\n        iVar8 = (uint)(puVar18 < puVar11) + ((int)puVar11 >> 0x1f) + param_1[2];\n        local_64 = uVar19;\n        local_44 = puVar9;\n        if (uVar19 != 0xe) break;\nLAB_002e31fc:\n        local_58 = 0;\n        iVar8 = *param_1;\n        local_68 = uVar22;\n        local_30 = puVar18;\n        local_60 = uVar26;\n        if (*(int *)(iVar8 + 0x48) == 4) {\n          pcVar25 = *(code **)(**(int **)(iVar8 + 8) + 0xc);\n          if (pcVar25 == (code *)PTR_is_big_endian_004c2950) {\n            iVar8 = (**(code **)(**(int **)(iVar8 + 8) + 0xe8))();\n          }\n          else {\n            iVar8 = (*pcVar25)();\n          }\n          uVar19 = *local_44;\n          if (iVar8 == 0) {\n            uVar19 = (((uVar19 >> 0x10) << 0x18 | (uVar19 >> 0x18) << 0x10) >> 0x10) +\n                     ((uVar19 & 0xff) << 8 | uVar19 >> 8 & 0xff) * 0x10000;\n          }\n          local_44 = local_44 + 1;\n          uVar26 = (ulonglong)uVar19;\n        }\n        else {\n          uVar26 = (*local_34)(iVar8,&local_44);\n        }\n        local_50 = uVar26;\n        local_58 = (*local_3c)(*param_1);\n        uVar7 = local_50;\n        if (uVar22 != 0x31) {\n          uVar26 = local_50;\n          if (uVar22 < 0x32) {\n            if ((uVar22 != 1) && (uVar22 == 3)) {\nLAB_002e3284:\n              param_1[0x16] = local_58;\n              *(ulonglong *)(param_1 + 0x10) = uVar26;\n              uVar7 = uVar26;\n            }\n          }\n          else {\n            if (uVar22 == 0x6e) {\nLAB_002e387c:\n              param_1[0x16] = local_58;\n            }\n            else {\n              if (uVar22 != 0x2007) goto LAB_002e313c;\n              param_1[0x16] = local_58;\n            }\n            *(ulonglong *)(param_1 + 0x14) = uVar26;\n            uVar7 = uVar26;\n          }\n        }\nLAB_002e313c:\n        puVar9 = (uint *)param_1[0xc];\n        uVar26 = uVar7;\n      }\n    } while( true );" do (compound_statement "{\n      local_60._4_4_ = (uint *)uVar26;\n      local_58 = 0;\n      local_68 = uVar22;\n      local_64 = uVar19;\n      local_60 = uVar26;\n      if (0xe < uVar19) {\n        if (uVar19 == 0x15) {\n          if ((char)*(byte *)local_44 < '\0') {\n            uVar26 = (*(code *)PTR_read_unsigned_LEB_128_x_004c2980)\n                               ((uint *)((int)local_44 + 1),&local_48);\n            local_44 = (uint *)((int)local_44 + local_48);\n          }\n          else {\n            uVar26 = (ulonglong)*(byte *)local_44;\n            local_48 = 1;\n            local_44 = (uint *)((int)local_44 + 1);\n          }\n          goto joined_r0x002e3998;\n        }\n        if (0x15 < uVar19) {\n          if (uVar19 == 0x19) {\n            local_60._4_4_ = (uint *)0x1;\n            local_60._0_4_ = (uint *)0x0;\n          }\n          else {\n            if (uVar19 < 0x1a) {\n              if (uVar19 != 0x17) {\n                if (uVar19 != 0x18) {\n                  return 0;\n                }\n                goto LAB_002e32bc;\n              }\n              iVar8 = *param_1;\n              if (*(int *)(iVar8 + 0x48) == 4) {\n                pcVar25 = *(code **)(**(int **)(iVar8 + 8) + 0xc);\n                if (pcVar25 == (code *)PTR_is_big_endian_004c2950) {\n                  local_30 = puVar18;\n                  iVar8 = (**(code **)(**(int **)(iVar8 + 8) + 0xe8))();\n                }\n                else {\n                  local_30 = puVar18;\n                  iVar8 = (*pcVar25)();\n                }\n                uVar15 = *local_44;\n                if (iVar8 == 0) {\n                  uVar15 = (((uVar15 >> 0x10) << 0x18 | (uVar15 >> 0x18) << 0x10) >> 0x10) +\n                           ((uVar15 & 0xff) << 8 | uVar15 >> 8 & 0xff) * 0x10000;\n                }\n                local_44 = local_44 + 1;\n                uVar26 = (ulonglong)uVar15;\n              }\n              else {\n                local_30 = puVar18;\n                uVar26 = (*local_34)(iVar8,&local_44);\n              }\n              iVar8 = *param_1;\n              goto LAB_002e3970;\n            }\n            if (uVar19 != 0x20) {\n              if (uVar19 < 0x20) {\n                return 0;\n              }\n              if (1 < uVar19 - 0x1f01) {\n                return 0;\n              }\nLAB_002e34d8:\n              if ((char)*(byte *)local_44 < '\0') {\n                uVar26 = (*(code *)PTR_read_unsigned_LEB_128_x_004c2980)\n                                   ((uint *)((int)local_44 + 1),&local_48);\n                local_44 = (uint *)((int)local_44 + local_48);\n              }\n              else {\n                uVar26 = (ulonglong)*(byte *)local_44;\n                local_48 = 1;\n                local_44 = (uint *)((int)local_44 + 1);\n              }\n              goto LAB_002e382c;\n            }\n            pcVar25 = *(code **)(**(int **)(*param_1 + 8) + 0xc);\n            if (pcVar25 == (code *)PTR_is_big_endian_004c2950) {\n              iVar8 = (**(code **)(**(int **)(*param_1 + 8) + 0xe8))();\n            }\n            else {\n              iVar8 = (*pcVar25)();\n            }\n            local_60._4_4_ = (uint *)local_44[1];\n            local_60._0_4_ = (uint *)*local_44;\n            if (iVar8 == 0) {\n              uVar15 = (uint)local_60._4_4_ & 0xff;\n              uVar16 = (uint)local_60._4_4_ >> 8;\n              uVar2 = (uint)local_60._4_4_ >> 0x10;\n              uVar4 = (uint)local_60._4_4_ >> 0x18;\n              local_60._4_4_ =\n                   (uint *)(((((uint)local_60._0_4_ >> 0x10) << 0x18 |\n                             ((uint)local_60._0_4_ >> 0x18) << 0x10) >> 0x10) +\n                           (((uint)local_60._0_4_ & 0xff) << 8 | (uint)local_60._0_4_ >> 8 & 0xff) *\n                           0x10000);\n              local_60._0_4_ =\n                   (uint *)(((uVar2 << 0x18 | uVar4 << 0x10) >> 0x10) +\n                           (uVar15 << 8 | uVar16 & 0xff) * 0x10000);\n            }\n            local_44 = local_44 + 2;\n          }\n          uVar7 = CONCAT44(local_60._0_4_,local_60._4_4_);\n          if (uVar22 == 0x6e) goto LAB_002e313c;\n          uVar7 = CONCAT44(local_60._0_4_,local_60._4_4_);\n          uVar26 = CONCAT44(local_60._0_4_,local_60._4_4_);\n          if (uVar22 == 0x2007) goto LAB_002e313c;\n          goto joined_r0x002e3124;\n        }\n        if (uVar19 == 0x11) {\n          puVar9 = (uint *)((int)local_44 + 1);\n          uVar15 = (uint)*(byte *)local_44;\n          uVar26 = (ulonglong)uVar15;\n          local_44 = puVar9;\n          if (uVar22 == 0x31) goto LAB_002e30bc;\n          if (0x31 < uVar22) {\n            uVar26 = (ulonglong)uVar15;\n            if ((uVar22 != 0x6e) && (uVar26 = (ulonglong)uVar15, uVar22 != 0x2007)) {\n              uVar7 = (ulonglong)uVar15;\n              if (uVar22 != 0x47) goto LAB_002e313c;\n              param_1[0x18] = 0;\n              param_1[0x19] = uVar15;\n              uVar7 = (ulonglong)uVar15;\n              goto LAB_002e313c;\n            }\n            goto LAB_002e3858;\n          }\n          if (uVar22 == 1) {\n            param_1[8] = 0;\n            param_1[9] = uVar15;\n            uVar7 = (ulonglong)uVar15;\n            goto LAB_002e313c;\n          }\n          goto joined_r0x002e3124;\n        }\n        if (uVar19 < 0x12) {\n          if (uVar19 == 0xf) goto LAB_002e34d8;\n          if (uVar19 != 0x10) {\n            return 0;\n          }\n          iVar10 = *param_1;\n          iVar8 = *(int *)(iVar10 + 0x48);\n          if (*(uint *)(iVar10 + 0x50) < 3) {\n            iVar8 = *(int *)(iVar10 + 0x4c);\n          }\n          if (iVar8 == 4) {\n            pcVar25 = *(code **)(**(int **)(iVar10 + 8) + 0xc);\n            if (pcVar25 == (code *)PTR_is_big_endian_004c2950) {\n              local_30 = puVar18;\n              iVar8 = (**(code **)(**(int **)(iVar10 + 8) + 0xe8))();\n            }\n            else {\n              local_30 = puVar18;\n              iVar8 = (*pcVar25)();\n            }\n            uVar15 = *local_44;\n            if (iVar8 == 0) {\n              uVar15 = (((uVar15 >> 0x10) << 0x18 | (uVar15 >> 0x18) << 0x10) >> 0x10) +\n                       ((uVar15 & 0xff) << 8 | uVar15 >> 8 & 0xff) * 0x10000;\n            }\n            local_44 = local_44 + 1;\n            uVar26 = (ulonglong)uVar15;\n          }\n          else {\n            local_30 = puVar18;\n            uVar26 = (*local_34)(iVar10,&local_44);\n          }\n          local_50 = uVar26;\n          local_58 = (*local_3c)(*param_1);\n          uVar26 = local_50;\n        }\n        else {\n          if (uVar19 == 0x13) {\n            pcVar25 = *(code **)(**(int **)(*param_1 + 8) + 0xc);\n            if (pcVar25 == (code *)PTR_is_big_endian_004c2950) {\n              local_30 = puVar18;\n              iVar8 = (**(code **)(**(int **)(*param_1 + 8) + 0xe8))();\n            }\n            else {\n              local_30 = puVar18;\n              iVar8 = (*pcVar25)();\n            }\n            uVar15 = *local_44;\n            if (iVar8 == 0) {\n              uVar15 = (((uVar15 >> 0x10) << 0x18 | (uVar15 >> 0x18) << 0x10) >> 0x10) +\n                       ((uVar15 & 0xff) << 8 | uVar15 >> 8 & 0xff) * 0x10000;\n            }\n            local_44 = local_44 + 1;\n            iVar8 = *param_1;\n            uVar26 = (ulonglong)uVar15;\n          }\n          else {\n            if (uVar19 < 0x14) {\n              pcVar25 = *(code **)(**(int **)(*param_1 + 8) + 0xc);\n              if (pcVar25 == (code *)PTR_is_big_endian_004c2950) {\n                iVar8 = (**(code **)(**(int **)(*param_1 + 8) + 0xe8))();\n              }\n              else {\n                iVar8 = (*pcVar25)();\n              }\n              uVar6 = *(ushort *)local_44;\n              if (iVar8 == 0) {\n                uVar6 = CONCAT11(*(byte *)((int)local_44 + 1),*(byte *)local_44);\n              }\n              local_44 = (uint *)((int)local_44 + 2);\n              uVar26 = (ulonglong)uVar6;\n              goto joined_r0x002e3998;\n            }\n            pcVar25 = *(code **)(**(int **)(*param_1 + 8) + 0xc);\n            if (pcVar25 == (code *)PTR_is_big_endian_004c2950) {\n              local_30 = puVar18;\n              iVar8 = (**(code **)(**(int **)(*param_1 + 8) + 0xe8))();\n            }\n            else {\n              local_30 = puVar18;\n              iVar8 = (*pcVar25)();\n            }\n            uVar15 = local_44[1];\n            uVar16 = *local_44;\n            if (iVar8 == 0) {\n              uVar2 = uVar15 & 0xff;\n              uVar4 = uVar15 >> 8;\n              uVar3 = uVar15 >> 0x10;\n              uVar5 = uVar15 >> 0x18;\n              uVar15 = (((uVar16 >> 0x10) << 0x18 | (uVar16 >> 0x18) << 0x10) >> 0x10) +\n                       ((uVar16 & 0xff) << 8 | uVar16 >> 8 & 0xff) * 0x10000;\n              uVar16 = ((uVar3 << 0x18 | uVar5 << 0x10) >> 0x10) +\n                       (uVar2 << 8 | uVar4 & 0xff) * 0x10000;\n            }\n            uVar26 = CONCAT44(uVar16,uVar15);\n            local_44 = local_44 + 2;\n            iVar8 = *param_1;\n          }\nLAB_002e3970:\n          local_50 = uVar26;\n          local_58 = (*local_3c)(iVar8);\n          uVar26 = local_50;\n        }\njoined_r0x002e3998:\n        if (uVar22 == 0x31) {\nLAB_002e30bc:\n          *(ulonglong *)(param_1 + 0x1a) = uVar26;\n          uVar7 = uVar26;\n          goto LAB_002e313c;\n        }\n        if (uVar22 < 0x32) {\n          uVar7 = uVar26;\n          if (uVar22 != 1) goto LAB_002e313c;\nLAB_002e39b4:\n          uVar7 = uVar26;\n          if (local_58 != 0) goto LAB_002e313c;\n          *(ulonglong *)(param_1 + 8) = uVar26;\n          goto LAB_002e313c;\n        }\n        if ((uVar22 != 0x6e) && (uVar22 != 0x2007)) {\nLAB_002e339c:\n          uVar7 = uVar26;\n          if (uVar22 != 0x47) goto LAB_002e313c;\n          *(ulonglong *)(param_1 + 0x18) = uVar26;\n          goto LAB_002e313c;\n        }\n        goto LAB_002e3858;\n      }\n      if (uVar19 == 7) {\n        pcVar25 = *(code **)(**(int **)(*param_1 + 8) + 0xc);\n        if (pcVar25 == (code *)PTR_is_big_endian_004c2950) {\n          local_30 = puVar18;\n          iVar10 = (**(code **)(**(int **)(*param_1 + 8) + 0xe8))();\n        }\n        else {\n          local_30 = puVar18;\n          iVar10 = (*pcVar25)();\n        }\n        local_50._4_4_ = (uint *)local_44[1];\n        puVar9 = (uint *)*local_44;\n        if (iVar10 == 0) {\n          uVar15 = (uint)local_50._4_4_ & 0xff;\n          uVar16 = (uint)local_50._4_4_ >> 8;\n          uVar2 = (uint)local_50._4_4_ >> 0x10;\n          uVar4 = (uint)local_50._4_4_ >> 0x18;\n          local_50._4_4_ =\n               (uint *)(((((uint)puVar9 >> 0x10) << 0x18 | ((uint)puVar9 >> 0x18) << 0x10) >> 0x10)\n                       + (((uint)puVar9 & 0xff) << 8 | (uint)puVar9 >> 8 & 0xff) * 0x10000);\n          puVar9 = (uint *)(((uVar2 << 0x18 | uVar4 << 0x10) >> 0x10) +\n                           (uVar15 << 8 | uVar16 & 0xff) * 0x10000);\n        }\n        local_44 = local_44 + 2;\n        iVar10 = *param_1;\n        local_50._0_4_ = puVar9;\nLAB_002e3708:\n        local_58 = (*local_3c)(iVar10,puVar9,iVar8,local_30,local_40);\n        local_60._4_4_ = local_50._4_4_;\n        local_60._0_4_ = local_50._0_4_;\n        goto LAB_002e355c;\n      }\n      if (7 < uVar19) {\n        if (uVar19 == 10) {\n          local_60._0_4_ = (uint *)((int)local_44 + 1);\n          local_58 = (uint)*(byte *)local_44;\n          local_44 = (uint *)((int)local_60._0_4_ + local_58);\n          goto LAB_002e355c;\n        }\n        if (uVar19 < 0xb) {\n          if (uVar19 != 8) {\n            if (uVar19 != 9) {\n              return 0;\n            }\nLAB_002e32bc:\n            uVar15 = (uint)*(byte *)local_44;\n            pbVar14 = (byte *)((int)local_44 + 1);\n            if ((char)*(byte *)local_44 < '\0') {\n              (*(code *)PTR_read_unsigned_LEB_128_x_004c2980)(pbVar14,&local_48);\n              pbVar14 = (byte *)((int)local_44 + local_48);\n              uVar15 = extraout_v1_00;\n            }\n            else {\n              local_48 = 1;\n            }\n            uVar26 = CONCAT44(pbVar14,local_60._4_4_);\n            local_58 = uVar15;\n            local_44 = (uint *)((int)local_44 + uVar15 + local_48);\n            goto LAB_002e382c;\n          }\n          local_60._0_4_ = local_44;\n          local_30 = local_44;\n          local_48 = (*(code *)PTR_strlen_004c5b9c)(local_44);\n          uVar26 = CONCAT44(local_60._0_4_,local_60._4_4_);\n          local_44 = (uint *)((int)local_30 + local_48 + 1);\n          uVar7 = CONCAT44(local_60._0_4_,local_60._4_4_);\n          if (uVar22 == 0x31) goto LAB_002e313c;\n          if (0x31 < uVar22) {\n            if ((uVar22 != 0x6e) &&\n               (uVar7 = CONCAT44(local_60._0_4_,local_60._4_4_), uVar22 != 0x2007))\n            goto LAB_002e313c;\n            param_1[0x12] = (int)local_30;\n            uVar7 = uVar26;\n            goto LAB_002e313c;\n          }\nLAB_002e3118:\n          uVar7 = uVar26;\n          if (uVar22 == 1) goto LAB_002e313c;\njoined_r0x002e3124:\n          uVar7 = uVar26;\n          if (uVar22 != 3) goto LAB_002e313c;\n          local_60._0_4_ = (uint *)(uVar26 >> 0x20);\n          if (uVar19 == 8) {\n            param_1[0xf] = (int)local_60._0_4_;\n            goto LAB_002e313c;\n          }\n          if (uVar19 != 0xe) goto LAB_002e313c;\n          goto LAB_002e3284;\n        }\n        if (uVar19 < 0xd) {\n          uVar26 = (ulonglong)*(byte *)local_44;\n          local_44 = (uint *)((int)local_44 + 1);\nLAB_002e382c:\n          uVar7 = uVar26;\n          if (uVar22 == 0x31) goto LAB_002e313c;\n          if (uVar22 < 0x32) goto LAB_002e3118;\n        }\n        else {\n          bVar1 = *(byte *)local_44;\n          uVar15 = (uint)bVar1;\n          puVar9 = (uint *)((int)local_44 + 1);\n          if ((char)bVar1 < '\0') {\n            uVar26 = (*(code *)PTR_read_signed_LEB_128_x_004c297c)(puVar9,&local_48,uVar15);\n            puVar9 = (uint *)((int)local_44 + local_48);\n          }\n          else {\n            local_48 = 1;\n            uVar26 = (ulonglong)uVar15;\n            if ((bVar1 & 0x40) != 0) {\n              uVar26 = CONCAT44(0xffffffff,uVar15 | 0xffffff80);\n            }\n          }\n          local_44 = puVar9;\n          uVar7 = uVar26;\n          if (uVar22 == 0x31) goto LAB_002e313c;\n          if (uVar22 < 0x32) {\n            puVar9 = (uint *)param_1[0xc];\n            if (puVar9 != (uint *)param_1[0xd]) goto LAB_002e314c;\nLAB_002e2f98:\n            iVar17 = iVar17 + 8;\n            local_60 = uVar26;\n            std::\n            vector<gold::Dwarf_die::Attribute_value,std::allocator<gold::Dwarf_die::Attribute_value>>\n            ::_M_realloc_insert<gold::Dwarf_die::Attribute_value_const&>(local_38,puVar9,&local_68);\n            iVar8 = param_1[10];\n            if (iVar17 == iVar21) goto LAB_002e2fb8;\n            goto LAB_002e2db4;\n          }\n        }\n        if ((uVar22 != 0x6e) && (uVar7 = uVar26, uVar22 != 0x2007)) goto LAB_002e313c;\nLAB_002e3858:\n        local_60._0_4_ = (uint *)(uVar26 >> 0x20);\n        uVar7 = uVar26;\n        if (uVar19 == 8) {\n          param_1[0x12] = (int)local_60._0_4_;\n          goto LAB_002e313c;\n        }\n        if (uVar19 != 0xe) goto LAB_002e313c;\n        goto LAB_002e387c;\n      }\n      if (uVar19 == 4) {\n        pcVar25 = *(code **)(**(int **)(*param_1 + 8) + 0xc);\n        if (pcVar25 == (code *)PTR_is_big_endian_004c2950) {\n          iVar8 = (**(code **)(**(int **)(*param_1 + 8) + 0xe8))();\n        }\n        else {\n          iVar8 = (*pcVar25)();\n        }\n        local_58 = *local_44;\n        if (iVar8 == 0) {\n          local_58 = (((local_58 >> 0x10) << 0x18 | (local_58 >> 0x18) << 0x10) >> 0x10) +\n                     ((local_58 & 0xff) << 8 | local_58 >> 8 & 0xff) * 0x10000;\n        }\n        local_60._0_4_ = local_44 + 1;\n        local_44 = (uint *)((int)local_60._0_4_ + local_58);\nLAB_002e355c:\n        uVar26 = CONCAT44(local_60._0_4_,local_60._4_4_);\n        uVar7 = uVar26;\n        if (uVar22 == 0x31) goto LAB_002e313c;\n        if (uVar22 < 0x32) goto LAB_002e3118;\n        puVar9 = (uint *)param_1[0xc];\n      }\n      else {\n        if (4 < uVar19) {\n          if (uVar19 != 5) {\n            if (uVar19 != 6) {\n              return 0;\n            }\n            pcVar25 = *(code **)(**(int **)(*param_1 + 8) + 0xc);\n            if (pcVar25 == (code *)PTR_is_big_endian_004c2950) {\n              local_30 = puVar18;\n              iVar10 = (**(code **)(**(int **)(*param_1 + 8) + 0xe8))();\n            }\n            else {\n              local_30 = puVar18;\n              iVar10 = (*pcVar25)();\n            }\n            puVar9 = (uint *)*local_44;\n            if (iVar10 == 0) {\n              puVar9 = (uint *)(((((uint)puVar9 >> 0x10) << 0x18 | ((uint)puVar9 >> 0x18) << 0x10)\n                                >> 0x10) +\n                               (((uint)puVar9 & 0xff) << 8 | (uint)puVar9 >> 8 & 0xff) * 0x10000);\n            }\n            local_44 = local_44 + 1;\n            iVar10 = *param_1;\n            local_50._0_4_ = (uint *)0x0;\n            local_50._4_4_ = puVar9;\n            goto LAB_002e3708;\n          }\n          pcVar25 = *(code **)(**(int **)(*param_1 + 8) + 0xc);\n          if (pcVar25 == (code *)PTR_is_big_endian_004c2950) {\n            iVar8 = (**(code **)(**(int **)(*param_1 + 8) + 0xe8))();\n          }\n          else {\n            iVar8 = (*pcVar25)();\n          }\n          uVar6 = *(ushort *)local_44;\n          if (iVar8 == 0) {\n            uVar6 = CONCAT11(*(byte *)((int)local_44 + 1),*(byte *)local_44);\n          }\n          local_60._4_4_ = (uint *)(uint)uVar6;\n          local_44 = (uint *)((int)local_44 + 2);\n          local_60._0_4_ = (uint *)0x0;\n          goto LAB_002e355c;\n        }\n        if (uVar19 != 1) {\n          if (uVar19 != 3) {\n            return 0;\n          }\n          pcVar25 = *(code **)(**(int **)(*param_1 + 8) + 0xc);\n          if (pcVar25 == (code *)PTR_is_big_endian_004c2950) {\n            iVar8 = (**(code **)(**(int **)(*param_1 + 8) + 0xe8))();\n          }\n          else {\n            iVar8 = (*pcVar25)();\n          }\n          uVar6 = *(ushort *)local_44;\n          if (iVar8 == 0) {\n            uVar6 = CONCAT11(*(byte *)((int)local_44 + 1),*(byte *)local_44);\n          }\n          local_58 = (uint)uVar6;\n          local_60._0_4_ = (uint *)((int)local_44 + 2);\n          local_44 = (uint *)((int)local_60._0_4_ + local_58);\n          goto LAB_002e355c;\n        }\n        iVar8 = *param_1;\n        if (*(int *)(iVar8 + 0x4c) == 4) {\n          pcVar25 = *(code **)(**(int **)(iVar8 + 8) + 0xc);\n          if (pcVar25 == (code *)PTR_is_big_endian_004c2950) {\n            local_30 = puVar18;\n            iVar8 = (**(code **)(**(int **)(iVar8 + 8) + 0xe8))();\n          }\n          else {\n            local_30 = puVar18;\n            iVar8 = (*pcVar25)();\n          }\n          uVar15 = *local_44;\n          if (iVar8 == 0) {\n            uVar15 = (((uVar15 >> 0x10) << 0x18 | (uVar15 >> 0x18) << 0x10) >> 0x10) +\n                     ((uVar15 & 0xff) << 8 | uVar15 >> 8 & 0xff) * 0x10000;\n          }\n          local_44 = local_44 + 1;\n          uVar26 = (ulonglong)uVar15;\n        }\n        else {\n          local_30 = puVar18;\n          uVar26 = (*local_34)(iVar8,&local_44);\n        }\n        local_50 = uVar26;\n        local_58 = (*local_3c)(*param_1);\n        uVar26 = local_50;\n        if (uVar22 == 0x31) goto LAB_002e30bc;\n        if (uVar22 < 0x32) {\n          if (uVar22 != 1) goto joined_r0x002e3124;\n          goto LAB_002e39b4;\n        }\n        uVar7 = local_50;\n        if (uVar22 == 0x6e) goto LAB_002e313c;\n        if (uVar22 != 0x2007) goto LAB_002e339c;\n        puVar9 = (uint *)param_1[0xc];\n      }\n      while( true ) {\n        if (puVar9 == (uint *)param_1[0xd]) goto LAB_002e2f98;\nLAB_002e314c:\n        local_60._0_4_ = (uint *)(uVar26 >> 0x20);\n        local_60._4_4_ = (uint *)uVar26;\n        iVar17 = iVar17 + 8;\n        puVar9[1] = local_64;\n        puVar9[2] = (uint)local_60._0_4_;\n        *puVar9 = local_68;\n        puVar9[3] = (uint)local_60._4_4_;\n        puVar9[4] = local_58;\n        puVar9[5] = local_54;\n        param_1[0xc] = (int)(puVar9 + 6);\n        iVar8 = param_1[10];\n        local_60 = uVar26;\n        if (iVar17 == iVar21) goto LAB_002e2fb8;\n        puVar9 = (uint *)(*(int *)(iVar8 + 8) + iVar17);\n        uVar19 = puVar9[1];\n        uVar22 = *puVar9;\n        if (uVar19 != 0x16) goto LAB_002e2dd0;\nLAB_002e31a8:\n        uVar19 = (uint)*(byte *)local_44;\n        puVar9 = (uint *)((int)local_44 + 1);\n        if ((char)*(byte *)local_44 < '\0') {\n          local_60 = uVar26;\n          (*(code *)PTR_read_unsigned_LEB_128_x_004c2980)(puVar9,&local_48,uVar19);\n          puVar9 = (uint *)((int)local_44 + local_48);\n          uVar19 = extraout_v1;\n          uVar26 = local_60;\n        }\n        else {\n          local_48 = 1;\n        }\n        puVar11 = (uint *)((int)puVar9 - iVar20);\n        puVar18 = (uint *)((int)puVar11 + param_1[3]);\n        iVar8 = (uint)(puVar18 < puVar11) + ((int)puVar11 >> 0x1f) + param_1[2];\n        local_64 = uVar19;\n        local_44 = puVar9;\n        if (uVar19 != 0xe) break;\nLAB_002e31fc:\n        local_58 = 0;\n        iVar8 = *param_1;\n        local_68 = uVar22;\n        local_30 = puVar18;\n        local_60 = uVar26;\n        if (*(int *)(iVar8 + 0x48) == 4) {\n          pcVar25 = *(code **)(**(int **)(iVar8 + 8) + 0xc);\n          if (pcVar25 == (code *)PTR_is_big_endian_004c2950) {\n            iVar8 = (**(code **)(**(int **)(iVar8 + 8) + 0xe8))();\n          }\n          else {\n            iVar8 = (*pcVar25)();\n          }\n          uVar19 = *local_44;\n          if (iVar8 == 0) {\n            uVar19 = (((uVar19 >> 0x10) << 0x18 | (uVar19 >> 0x18) << 0x10) >> 0x10) +\n                     ((uVar19 & 0xff) << 8 | uVar19 >> 8 & 0xff) * 0x10000;\n          }\n          local_44 = local_44 + 1;\n          uVar26 = (ulonglong)uVar19;\n        }\n        else {\n          uVar26 = (*local_34)(iVar8,&local_44);\n        }\n        local_50 = uVar26;\n        local_58 = (*local_3c)(*param_1);\n        uVar7 = local_50;\n        if (uVar22 != 0x31) {\n          uVar26 = local_50;\n          if (uVar22 < 0x32) {\n            if ((uVar22 != 1) && (uVar22 == 3)) {\nLAB_002e3284:\n              param_1[0x16] = local_58;\n              *(ulonglong *)(param_1 + 0x10) = uVar26;\n              uVar7 = uVar26;\n            }\n          }\n          else {\n            if (uVar22 == 0x6e) {\nLAB_002e387c:\n              param_1[0x16] = local_58;\n            }\n            else {\n              if (uVar22 != 0x2007) goto LAB_002e313c;\n              param_1[0x16] = local_58;\n            }\n            *(ulonglong *)(param_1 + 0x14) = uVar26;\n            uVar7 = uVar26;\n          }\n        }\nLAB_002e313c:\n        puVar9 = (uint *)param_1[0xc];\n        uVar26 = uVar7;\n      }\n    }" { (expression_statement "local_60._4_4_ = (uint *)uVar26;" (assignment_expression "local_60._4_4_ = (uint *)uVar26" (field_expression "local_60._4_4_" identifier . field_identifier) = (cast_expression "(uint *)uVar26" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) ;) (expression_statement "local_58 = 0;" (assignment_expression "local_58 = 0" identifier = number_literal) ;) (expression_statement "local_68 = uVar22;" (assignment_expression "local_68 = uVar22" identifier = identifier) ;) (expression_statement "local_64 = uVar19;" (assignment_expression "local_64 = uVar19" identifier = identifier) ;) (expression_statement "local_60 = uVar26;" (assignment_expression "local_60 = uVar26" identifier = identifier) ;) (if_statement "if (0xe < uVar19) {\n        if (uVar19 == 0x15) {\n          if ((char)*(byte *)local_44 < '\0') {\n            uVar26 = (*(code *)PTR_read_unsigned_LEB_128_x_004c2980)\n                               ((uint *)((int)local_44 + 1),&local_48);\n            local_44 = (uint *)((int)local_44 + local_48);\n          }\n          else {\n            uVar26 = (ulonglong)*(byte *)local_44;\n            local_48 = 1;\n            local_44 = (uint *)((int)local_44 + 1);\n          }\n          goto joined_r0x002e3998;\n        }\n        if (0x15 < uVar19) {\n          if (uVar19 == 0x19) {\n            local_60._4_4_ = (uint *)0x1;\n            local_60._0_4_ = (uint *)0x0;\n          }\n          else {\n            if (uVar19 < 0x1a) {\n              if (uVar19 != 0x17) {\n                if (uVar19 != 0x18) {\n                  return 0;\n                }\n                goto LAB_002e32bc;\n              }\n              iVar8 = *param_1;\n              if (*(int *)(iVar8 + 0x48) == 4) {\n                pcVar25 = *(code **)(**(int **)(iVar8 + 8) + 0xc);\n                if (pcVar25 == (code *)PTR_is_big_endian_004c2950) {\n                  local_30 = puVar18;\n                  iVar8 = (**(code **)(**(int **)(iVar8 + 8) + 0xe8))();\n                }\n                else {\n                  local_30 = puVar18;\n                  iVar8 = (*pcVar25)();\n                }\n                uVar15 = *local_44;\n                if (iVar8 == 0) {\n                  uVar15 = (((uVar15 >> 0x10) << 0x18 | (uVar15 >> 0x18) << 0x10) >> 0x10) +\n                           ((uVar15 & 0xff) << 8 | uVar15 >> 8 & 0xff) * 0x10000;\n                }\n                local_44 = local_44 + 1;\n                uVar26 = (ulonglong)uVar15;\n              }\n              else {\n                local_30 = puVar18;\n                uVar26 = (*local_34)(iVar8,&local_44);\n              }\n              iVar8 = *param_1;\n              goto LAB_002e3970;\n            }\n            if (uVar19 != 0x20) {\n              if (uVar19 < 0x20) {\n                return 0;\n              }\n              if (1 < uVar19 - 0x1f01) {\n                return 0;\n              }\nLAB_002e34d8:\n              if ((char)*(byte *)local_44 < '\0') {\n                uVar26 = (*(code *)PTR_read_unsigned_LEB_128_x_004c2980)\n                                   ((uint *)((int)local_44 + 1),&local_48);\n                local_44 = (uint *)((int)local_44 + local_48);\n              }\n              else {\n                uVar26 = (ulonglong)*(byte *)local_44;\n                local_48 = 1;\n                local_44 = (uint *)((int)local_44 + 1);\n              }\n              goto LAB_002e382c;\n            }\n            pcVar25 = *(code **)(**(int **)(*param_1 + 8) + 0xc);\n            if (pcVar25 == (code *)PTR_is_big_endian_004c2950) {\n              iVar8 = (**(code **)(**(int **)(*param_1 + 8) + 0xe8))();\n            }\n            else {\n              iVar8 = (*pcVar25)();\n            }\n            local_60._4_4_ = (uint *)local_44[1];\n            local_60._0_4_ = (uint *)*local_44;\n            if (iVar8 == 0) {\n              uVar15 = (uint)local_60._4_4_ & 0xff;\n              uVar16 = (uint)local_60._4_4_ >> 8;\n              uVar2 = (uint)local_60._4_4_ >> 0x10;\n              uVar4 = (uint)local_60._4_4_ >> 0x18;\n              local_60._4_4_ =\n                   (uint *)(((((uint)local_60._0_4_ >> 0x10) << 0x18 |\n                             ((uint)local_60._0_4_ >> 0x18) << 0x10) >> 0x10) +\n                           (((uint)local_60._0_4_ & 0xff) << 8 | (uint)local_60._0_4_ >> 8 & 0xff) *\n                           0x10000);\n              local_60._0_4_ =\n                   (uint *)(((uVar2 << 0x18 | uVar4 << 0x10) >> 0x10) +\n                           (uVar15 << 8 | uVar16 & 0xff) * 0x10000);\n            }\n            local_44 = local_44 + 2;\n          }\n          uVar7 = CONCAT44(local_60._0_4_,local_60._4_4_);\n          if (uVar22 == 0x6e) goto LAB_002e313c;\n          uVar7 = CONCAT44(local_60._0_4_,local_60._4_4_);\n          uVar26 = CONCAT44(local_60._0_4_,local_60._4_4_);\n          if (uVar22 == 0x2007) goto LAB_002e313c;\n          goto joined_r0x002e3124;\n        }\n        if (uVar19 == 0x11) {\n          puVar9 = (uint *)((int)local_44 + 1);\n          uVar15 = (uint)*(byte *)local_44;\n          uVar26 = (ulonglong)uVar15;\n          local_44 = puVar9;\n          if (uVar22 == 0x31) goto LAB_002e30bc;\n          if (0x31 < uVar22) {\n            uVar26 = (ulonglong)uVar15;\n            if ((uVar22 != 0x6e) && (uVar26 = (ulonglong)uVar15, uVar22 != 0x2007)) {\n              uVar7 = (ulonglong)uVar15;\n              if (uVar22 != 0x47) goto LAB_002e313c;\n              param_1[0x18] = 0;\n              param_1[0x19] = uVar15;\n              uVar7 = (ulonglong)uVar15;\n              goto LAB_002e313c;\n            }\n            goto LAB_002e3858;\n          }\n          if (uVar22 == 1) {\n            param_1[8] = 0;\n            param_1[9] = uVar15;\n            uVar7 = (ulonglong)uVar15;\n            goto LAB_002e313c;\n          }\n          goto joined_r0x002e3124;\n        }\n        if (uVar19 < 0x12) {\n          if (uVar19 == 0xf) goto LAB_002e34d8;\n          if (uVar19 != 0x10) {\n            return 0;\n          }\n          iVar10 = *param_1;\n          iVar8 = *(int *)(iVar10 + 0x48);\n          if (*(uint *)(iVar10 + 0x50) < 3) {\n            iVar8 = *(int *)(iVar10 + 0x4c);\n          }\n          if (iVar8 == 4) {\n            pcVar25 = *(code **)(**(int **)(iVar10 + 8) + 0xc);\n            if (pcVar25 == (code *)PTR_is_big_endian_004c2950) {\n              local_30 = puVar18;\n              iVar8 = (**(code **)(**(int **)(iVar10 + 8) + 0xe8))();\n            }\n            else {\n              local_30 = puVar18;\n              iVar8 = (*pcVar25)();\n            }\n            uVar15 = *local_44;\n            if (iVar8 == 0) {\n              uVar15 = (((uVar15 >> 0x10) << 0x18 | (uVar15 >> 0x18) << 0x10) >> 0x10) +\n                       ((uVar15 & 0xff) << 8 | uVar15 >> 8 & 0xff) * 0x10000;\n            }\n            local_44 = local_44 + 1;\n            uVar26 = (ulonglong)uVar15;\n          }\n          else {\n            local_30 = puVar18;\n            uVar26 = (*local_34)(iVar10,&local_44);\n          }\n          local_50 = uVar26;\n          local_58 = (*local_3c)(*param_1);\n          uVar26 = local_50;\n        }\n        else {\n          if (uVar19 == 0x13) {\n            pcVar25 = *(code **)(**(int **)(*param_1 + 8) + 0xc);\n            if (pcVar25 == (code *)PTR_is_big_endian_004c2950) {\n              local_30 = puVar18;\n              iVar8 = (**(code **)(**(int **)(*param_1 + 8) + 0xe8))();\n            }\n            else {\n              local_30 = puVar18;\n              iVar8 = (*pcVar25)();\n            }\n            uVar15 = *local_44;\n            if (iVar8 == 0) {\n              uVar15 = (((uVar15 >> 0x10) << 0x18 | (uVar15 >> 0x18) << 0x10) >> 0x10) +\n                       ((uVar15 & 0xff) << 8 | uVar15 >> 8 & 0xff) * 0x10000;\n            }\n            local_44 = local_44 + 1;\n            iVar8 = *param_1;\n            uVar26 = (ulonglong)uVar15;\n          }\n          else {\n            if (uVar19 < 0x14) {\n              pcVar25 = *(code **)(**(int **)(*param_1 + 8) + 0xc);\n              if (pcVar25 == (code *)PTR_is_big_endian_004c2950) {\n                iVar8 = (**(code **)(**(int **)(*param_1 + 8) + 0xe8))();\n              }\n              else {\n                iVar8 = (*pcVar25)();\n              }\n              uVar6 = *(ushort *)local_44;\n              if (iVar8 == 0) {\n                uVar6 = CONCAT11(*(byte *)((int)local_44 + 1),*(byte *)local_44);\n              }\n              local_44 = (uint *)((int)local_44 + 2);\n              uVar26 = (ulonglong)uVar6;\n              goto joined_r0x002e3998;\n            }\n            pcVar25 = *(code **)(**(int **)(*param_1 + 8) + 0xc);\n            if (pcVar25 == (code *)PTR_is_big_endian_004c2950) {\n              local_30 = puVar18;\n              iVar8 = (**(code **)(**(int **)(*param_1 + 8) + 0xe8))();\n            }\n            else {\n              local_30 = puVar18;\n              iVar8 = (*pcVar25)();\n            }\n            uVar15 = local_44[1];\n            uVar16 = *local_44;\n            if (iVar8 == 0) {\n              uVar2 = uVar15 & 0xff;\n              uVar4 = uVar15 >> 8;\n              uVar3 = uVar15 >> 0x10;\n              uVar5 = uVar15 >> 0x18;\n              uVar15 = (((uVar16 >> 0x10) << 0x18 | (uVar16 >> 0x18) << 0x10) >> 0x10) +\n                       ((uVar16 & 0xff) << 8 | uVar16 >> 8 & 0xff) * 0x10000;\n              uVar16 = ((uVar3 << 0x18 | uVar5 << 0x10) >> 0x10) +\n                       (uVar2 << 8 | uVar4 & 0xff) * 0x10000;\n            }\n            uVar26 = CONCAT44(uVar16,uVar15);\n            local_44 = local_44 + 2;\n            iVar8 = *param_1;\n          }\nLAB_002e3970:\n          local_50 = uVar26;\n          local_58 = (*local_3c)(iVar8);\n          uVar26 = local_50;\n        }\njoined_r0x002e3998:\n        if (uVar22 == 0x31) {\nLAB_002e30bc:\n          *(ulonglong *)(param_1 + 0x1a) = uVar26;\n          uVar7 = uVar26;\n          goto LAB_002e313c;\n        }\n        if (uVar22 < 0x32) {\n          uVar7 = uVar26;\n          if (uVar22 != 1) goto LAB_002e313c;\nLAB_002e39b4:\n          uVar7 = uVar26;\n          if (local_58 != 0) goto LAB_002e313c;\n          *(ulonglong *)(param_1 + 8) = uVar26;\n          goto LAB_002e313c;\n        }\n        if ((uVar22 != 0x6e) && (uVar22 != 0x2007)) {\nLAB_002e339c:\n          uVar7 = uVar26;\n          if (uVar22 != 0x47) goto LAB_002e313c;\n          *(ulonglong *)(param_1 + 0x18) = uVar26;\n          goto LAB_002e313c;\n        }\n        goto LAB_002e3858;\n      }" if (parenthesized_expression "(0xe < uVar19)" ( (binary_expression "0xe < uVar19" number_literal < identifier) )) (compound_statement "{\n        if (uVar19 == 0x15) {\n          if ((char)*(byte *)local_44 < '\0') {\n            uVar26 = (*(code *)PTR_read_unsigned_LEB_128_x_004c2980)\n                               ((uint *)((int)local_44 + 1),&local_48);\n            local_44 = (uint *)((int)local_44 + local_48);\n          }\n          else {\n            uVar26 = (ulonglong)*(byte *)local_44;\n            local_48 = 1;\n            local_44 = (uint *)((int)local_44 + 1);\n          }\n          goto joined_r0x002e3998;\n        }\n        if (0x15 < uVar19) {\n          if (uVar19 == 0x19) {\n            local_60._4_4_ = (uint *)0x1;\n            local_60._0_4_ = (uint *)0x0;\n          }\n          else {\n            if (uVar19 < 0x1a) {\n              if (uVar19 != 0x17) {\n                if (uVar19 != 0x18) {\n                  return 0;\n                }\n                goto LAB_002e32bc;\n              }\n              iVar8 = *param_1;\n              if (*(int *)(iVar8 + 0x48) == 4) {\n                pcVar25 = *(code **)(**(int **)(iVar8 + 8) + 0xc);\n                if (pcVar25 == (code *)PTR_is_big_endian_004c2950) {\n                  local_30 = puVar18;\n                  iVar8 = (**(code **)(**(int **)(iVar8 + 8) + 0xe8))();\n                }\n                else {\n                  local_30 = puVar18;\n                  iVar8 = (*pcVar25)();\n                }\n                uVar15 = *local_44;\n                if (iVar8 == 0) {\n                  uVar15 = (((uVar15 >> 0x10) << 0x18 | (uVar15 >> 0x18) << 0x10) >> 0x10) +\n                           ((uVar15 & 0xff) << 8 | uVar15 >> 8 & 0xff) * 0x10000;\n                }\n                local_44 = local_44 + 1;\n                uVar26 = (ulonglong)uVar15;\n              }\n              else {\n                local_30 = puVar18;\n                uVar26 = (*local_34)(iVar8,&local_44);\n              }\n              iVar8 = *param_1;\n              goto LAB_002e3970;\n            }\n            if (uVar19 != 0x20) {\n              if (uVar19 < 0x20) {\n                return 0;\n              }\n              if (1 < uVar19 - 0x1f01) {\n                return 0;\n              }\nLAB_002e34d8:\n              if ((char)*(byte *)local_44 < '\0') {\n                uVar26 = (*(code *)PTR_read_unsigned_LEB_128_x_004c2980)\n                                   ((uint *)((int)local_44 + 1),&local_48);\n                local_44 = (uint *)((int)local_44 + local_48);\n              }\n              else {\n                uVar26 = (ulonglong)*(byte *)local_44;\n                local_48 = 1;\n                local_44 = (uint *)((int)local_44 + 1);\n              }\n              goto LAB_002e382c;\n            }\n            pcVar25 = *(code **)(**(int **)(*param_1 + 8) + 0xc);\n            if (pcVar25 == (code *)PTR_is_big_endian_004c2950) {\n              iVar8 = (**(code **)(**(int **)(*param_1 + 8) + 0xe8))();\n            }\n            else {\n              iVar8 = (*pcVar25)();\n            }\n            local_60._4_4_ = (uint *)local_44[1];\n            local_60._0_4_ = (uint *)*local_44;\n            if (iVar8 == 0) {\n              uVar15 = (uint)local_60._4_4_ & 0xff;\n              uVar16 = (uint)local_60._4_4_ >> 8;\n              uVar2 = (uint)local_60._4_4_ >> 0x10;\n              uVar4 = (uint)local_60._4_4_ >> 0x18;\n              local_60._4_4_ =\n                   (uint *)(((((uint)local_60._0_4_ >> 0x10) << 0x18 |\n                             ((uint)local_60._0_4_ >> 0x18) << 0x10) >> 0x10) +\n                           (((uint)local_60._0_4_ & 0xff) << 8 | (uint)local_60._0_4_ >> 8 & 0xff) *\n                           0x10000);\n              local_60._0_4_ =\n                   (uint *)(((uVar2 << 0x18 | uVar4 << 0x10) >> 0x10) +\n                           (uVar15 << 8 | uVar16 & 0xff) * 0x10000);\n            }\n            local_44 = local_44 + 2;\n          }\n          uVar7 = CONCAT44(local_60._0_4_,local_60._4_4_);\n          if (uVar22 == 0x6e) goto LAB_002e313c;\n          uVar7 = CONCAT44(local_60._0_4_,local_60._4_4_);\n          uVar26 = CONCAT44(local_60._0_4_,local_60._4_4_);\n          if (uVar22 == 0x2007) goto LAB_002e313c;\n          goto joined_r0x002e3124;\n        }\n        if (uVar19 == 0x11) {\n          puVar9 = (uint *)((int)local_44 + 1);\n          uVar15 = (uint)*(byte *)local_44;\n          uVar26 = (ulonglong)uVar15;\n          local_44 = puVar9;\n          if (uVar22 == 0x31) goto LAB_002e30bc;\n          if (0x31 < uVar22) {\n            uVar26 = (ulonglong)uVar15;\n            if ((uVar22 != 0x6e) && (uVar26 = (ulonglong)uVar15, uVar22 != 0x2007)) {\n              uVar7 = (ulonglong)uVar15;\n              if (uVar22 != 0x47) goto LAB_002e313c;\n              param_1[0x18] = 0;\n              param_1[0x19] = uVar15;\n              uVar7 = (ulonglong)uVar15;\n              goto LAB_002e313c;\n            }\n            goto LAB_002e3858;\n          }\n          if (uVar22 == 1) {\n            param_1[8] = 0;\n            param_1[9] = uVar15;\n            uVar7 = (ulonglong)uVar15;\n            goto LAB_002e313c;\n          }\n          goto joined_r0x002e3124;\n        }\n        if (uVar19 < 0x12) {\n          if (uVar19 == 0xf) goto LAB_002e34d8;\n          if (uVar19 != 0x10) {\n            return 0;\n          }\n          iVar10 = *param_1;\n          iVar8 = *(int *)(iVar10 + 0x48);\n          if (*(uint *)(iVar10 + 0x50) < 3) {\n            iVar8 = *(int *)(iVar10 + 0x4c);\n          }\n          if (iVar8 == 4) {\n            pcVar25 = *(code **)(**(int **)(iVar10 + 8) + 0xc);\n            if (pcVar25 == (code *)PTR_is_big_endian_004c2950) {\n              local_30 = puVar18;\n              iVar8 = (**(code **)(**(int **)(iVar10 + 8) + 0xe8))();\n            }\n            else {\n              local_30 = puVar18;\n              iVar8 = (*pcVar25)();\n            }\n            uVar15 = *local_44;\n            if (iVar8 == 0) {\n              uVar15 = (((uVar15 >> 0x10) << 0x18 | (uVar15 >> 0x18) << 0x10) >> 0x10) +\n                       ((uVar15 & 0xff) << 8 | uVar15 >> 8 & 0xff) * 0x10000;\n            }\n            local_44 = local_44 + 1;\n            uVar26 = (ulonglong)uVar15;\n          }\n          else {\n            local_30 = puVar18;\n            uVar26 = (*local_34)(iVar10,&local_44);\n          }\n          local_50 = uVar26;\n          local_58 = (*local_3c)(*param_1);\n          uVar26 = local_50;\n        }\n        else {\n          if (uVar19 == 0x13) {\n            pcVar25 = *(code **)(**(int **)(*param_1 + 8) + 0xc);\n            if (pcVar25 == (code *)PTR_is_big_endian_004c2950) {\n              local_30 = puVar18;\n              iVar8 = (**(code **)(**(int **)(*param_1 + 8) + 0xe8))();\n            }\n            else {\n              local_30 = puVar18;\n              iVar8 = (*pcVar25)();\n            }\n            uVar15 = *local_44;\n            if (iVar8 == 0) {\n              uVar15 = (((uVar15 >> 0x10) << 0x18 | (uVar15 >> 0x18) << 0x10) >> 0x10) +\n                       ((uVar15 & 0xff) << 8 | uVar15 >> 8 & 0xff) * 0x10000;\n            }\n            local_44 = local_44 + 1;\n            iVar8 = *param_1;\n            uVar26 = (ulonglong)uVar15;\n          }\n          else {\n            if (uVar19 < 0x14) {\n              pcVar25 = *(code **)(**(int **)(*param_1 + 8) + 0xc);\n              if (pcVar25 == (code *)PTR_is_big_endian_004c2950) {\n                iVar8 = (**(code **)(**(int **)(*param_1 + 8) + 0xe8))();\n              }\n              else {\n                iVar8 = (*pcVar25)();\n              }\n              uVar6 = *(ushort *)local_44;\n              if (iVar8 == 0) {\n                uVar6 = CONCAT11(*(byte *)((int)local_44 + 1),*(byte *)local_44);\n              }\n              local_44 = (uint *)((int)local_44 + 2);\n              uVar26 = (ulonglong)uVar6;\n              goto joined_r0x002e3998;\n            }\n            pcVar25 = *(code **)(**(int **)(*param_1 + 8) + 0xc);\n            if (pcVar25 == (code *)PTR_is_big_endian_004c2950) {\n              local_30 = puVar18;\n              iVar8 = (**(code **)(**(int **)(*param_1 + 8) + 0xe8))();\n            }\n            else {\n              local_30 = puVar18;\n              iVar8 = (*pcVar25)();\n            }\n            uVar15 = local_44[1];\n            uVar16 = *local_44;\n            if (iVar8 == 0) {\n              uVar2 = uVar15 & 0xff;\n              uVar4 = uVar15 >> 8;\n              uVar3 = uVar15 >> 0x10;\n              uVar5 = uVar15 >> 0x18;\n              uVar15 = (((uVar16 >> 0x10) << 0x18 | (uVar16 >> 0x18) << 0x10) >> 0x10) +\n                       ((uVar16 & 0xff) << 8 | uVar16 >> 8 & 0xff) * 0x10000;\n              uVar16 = ((uVar3 << 0x18 | uVar5 << 0x10) >> 0x10) +\n                       (uVar2 << 8 | uVar4 & 0xff) * 0x10000;\n            }\n            uVar26 = CONCAT44(uVar16,uVar15);\n            local_44 = local_44 + 2;\n            iVar8 = *param_1;\n          }\nLAB_002e3970:\n          local_50 = uVar26;\n          local_58 = (*local_3c)(iVar8);\n          uVar26 = local_50;\n        }\njoined_r0x002e3998:\n        if (uVar22 == 0x31) {\nLAB_002e30bc:\n          *(ulonglong *)(param_1 + 0x1a) = uVar26;\n          uVar7 = uVar26;\n          goto LAB_002e313c;\n        }\n        if (uVar22 < 0x32) {\n          uVar7 = uVar26;\n          if (uVar22 != 1) goto LAB_002e313c;\nLAB_002e39b4:\n          uVar7 = uVar26;\n          if (local_58 != 0) goto LAB_002e313c;\n          *(ulonglong *)(param_1 + 8) = uVar26;\n          goto LAB_002e313c;\n        }\n        if ((uVar22 != 0x6e) && (uVar22 != 0x2007)) {\nLAB_002e339c:\n          uVar7 = uVar26;\n          if (uVar22 != 0x47) goto LAB_002e313c;\n          *(ulonglong *)(param_1 + 0x18) = uVar26;\n          goto LAB_002e313c;\n        }\n        goto LAB_002e3858;\n      }" { (if_statement "if (uVar19 == 0x15) {\n          if ((char)*(byte *)local_44 < '\0') {\n            uVar26 = (*(code *)PTR_read_unsigned_LEB_128_x_004c2980)\n                               ((uint *)((int)local_44 + 1),&local_48);\n            local_44 = (uint *)((int)local_44 + local_48);\n          }\n          else {\n            uVar26 = (ulonglong)*(byte *)local_44;\n            local_48 = 1;\n            local_44 = (uint *)((int)local_44 + 1);\n          }\n          goto joined_r0x002e3998;\n        }" if (parenthesized_expression "(uVar19 == 0x15)" ( (binary_expression "uVar19 == 0x15" identifier == number_literal) )) (compound_statement "{\n          if ((char)*(byte *)local_44 < '\0') {\n            uVar26 = (*(code *)PTR_read_unsigned_LEB_128_x_004c2980)\n                               ((uint *)((int)local_44 + 1),&local_48);\n            local_44 = (uint *)((int)local_44 + local_48);\n          }\n          else {\n            uVar26 = (ulonglong)*(byte *)local_44;\n            local_48 = 1;\n            local_44 = (uint *)((int)local_44 + 1);\n          }\n          goto joined_r0x002e3998;\n        }" { (if_statement "if ((char)*(byte *)local_44 < '\0') {\n            uVar26 = (*(code *)PTR_read_unsigned_LEB_128_x_004c2980)\n                               ((uint *)((int)local_44 + 1),&local_48);\n            local_44 = (uint *)((int)local_44 + local_48);\n          }\n          else {\n            uVar26 = (ulonglong)*(byte *)local_44;\n            local_48 = 1;\n            local_44 = (uint *)((int)local_44 + 1);\n          }" if (parenthesized_expression "((char)*(byte *)local_44 < '\0')" ( (binary_expression "(char)*(byte *)local_44 < '\0'" (cast_expression "(char)*(byte *)local_44" ( (type_descriptor "char" primitive_type) ) (pointer_expression "*(byte *)local_44" * (cast_expression "(byte *)local_44" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier))) < (char_literal "'\0'" ' escape_sequence ')) )) (compound_statement "{\n            uVar26 = (*(code *)PTR_read_unsigned_LEB_128_x_004c2980)\n                               ((uint *)((int)local_44 + 1),&local_48);\n            local_44 = (uint *)((int)local_44 + local_48);\n          }" { (expression_statement "uVar26 = (*(code *)PTR_read_unsigned_LEB_128_x_004c2980)\n                               ((uint *)((int)local_44 + 1),&local_48);" (assignment_expression "uVar26 = (*(code *)PTR_read_unsigned_LEB_128_x_004c2980)\n                               ((uint *)((int)local_44 + 1),&local_48)" identifier = (call_expression "(*(code *)PTR_read_unsigned_LEB_128_x_004c2980)\n                               ((uint *)((int)local_44 + 1),&local_48)" (parenthesized_expression "(*(code *)PTR_read_unsigned_LEB_128_x_004c2980)" ( (pointer_expression "*(code *)PTR_read_unsigned_LEB_128_x_004c2980" * (cast_expression "(code *)PTR_read_unsigned_LEB_128_x_004c2980" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "((uint *)((int)local_44 + 1),&local_48)" ( (cast_expression "(uint *)((int)local_44 + 1)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)local_44 + 1)" ( (binary_expression "(int)local_44 + 1" (cast_expression "(int)local_44" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) ))) , (pointer_expression "&local_48" & identifier) )))) ;) (expression_statement "local_44 = (uint *)((int)local_44 + local_48);" (assignment_expression "local_44 = (uint *)((int)local_44 + local_48)" identifier = (cast_expression "(uint *)((int)local_44 + local_48)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)local_44 + local_48)" ( (binary_expression "(int)local_44 + local_48" (cast_expression "(int)local_44" ( (type_descriptor "int" primitive_type) ) identifier) + identifier) )))) ;) }) (else_clause "else {\n            uVar26 = (ulonglong)*(byte *)local_44;\n            local_48 = 1;\n            local_44 = (uint *)((int)local_44 + 1);\n          }" else (compound_statement "{\n            uVar26 = (ulonglong)*(byte *)local_44;\n            local_48 = 1;\n            local_44 = (uint *)((int)local_44 + 1);\n          }" { (expression_statement "uVar26 = (ulonglong)*(byte *)local_44;" (assignment_expression "uVar26 = (ulonglong)*(byte *)local_44" identifier = (binary_expression "(ulonglong)*(byte *)local_44" (parenthesized_expression "(ulonglong)" ( identifier )) * (cast_expression "(byte *)local_44" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier))) ;) (expression_statement "local_48 = 1;" (assignment_expression "local_48 = 1" identifier = number_literal) ;) (expression_statement "local_44 = (uint *)((int)local_44 + 1);" (assignment_expression "local_44 = (uint *)((int)local_44 + 1)" identifier = (cast_expression "(uint *)((int)local_44 + 1)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)local_44 + 1)" ( (binary_expression "(int)local_44 + 1" (cast_expression "(int)local_44" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) ;) }))) (goto_statement "goto joined_r0x002e3998;" goto statement_identifier ;) })) (if_statement "if (0x15 < uVar19) {\n          if (uVar19 == 0x19) {\n            local_60._4_4_ = (uint *)0x1;\n            local_60._0_4_ = (uint *)0x0;\n          }\n          else {\n            if (uVar19 < 0x1a) {\n              if (uVar19 != 0x17) {\n                if (uVar19 != 0x18) {\n                  return 0;\n                }\n                goto LAB_002e32bc;\n              }\n              iVar8 = *param_1;\n              if (*(int *)(iVar8 + 0x48) == 4) {\n                pcVar25 = *(code **)(**(int **)(iVar8 + 8) + 0xc);\n                if (pcVar25 == (code *)PTR_is_big_endian_004c2950) {\n                  local_30 = puVar18;\n                  iVar8 = (**(code **)(**(int **)(iVar8 + 8) + 0xe8))();\n                }\n                else {\n                  local_30 = puVar18;\n                  iVar8 = (*pcVar25)();\n                }\n                uVar15 = *local_44;\n                if (iVar8 == 0) {\n                  uVar15 = (((uVar15 >> 0x10) << 0x18 | (uVar15 >> 0x18) << 0x10) >> 0x10) +\n                           ((uVar15 & 0xff) << 8 | uVar15 >> 8 & 0xff) * 0x10000;\n                }\n                local_44 = local_44 + 1;\n                uVar26 = (ulonglong)uVar15;\n              }\n              else {\n                local_30 = puVar18;\n                uVar26 = (*local_34)(iVar8,&local_44);\n              }\n              iVar8 = *param_1;\n              goto LAB_002e3970;\n            }\n            if (uVar19 != 0x20) {\n              if (uVar19 < 0x20) {\n                return 0;\n              }\n              if (1 < uVar19 - 0x1f01) {\n                return 0;\n              }\nLAB_002e34d8:\n              if ((char)*(byte *)local_44 < '\0') {\n                uVar26 = (*(code *)PTR_read_unsigned_LEB_128_x_004c2980)\n                                   ((uint *)((int)local_44 + 1),&local_48);\n                local_44 = (uint *)((int)local_44 + local_48);\n              }\n              else {\n                uVar26 = (ulonglong)*(byte *)local_44;\n                local_48 = 1;\n                local_44 = (uint *)((int)local_44 + 1);\n              }\n              goto LAB_002e382c;\n            }\n            pcVar25 = *(code **)(**(int **)(*param_1 + 8) + 0xc);\n            if (pcVar25 == (code *)PTR_is_big_endian_004c2950) {\n              iVar8 = (**(code **)(**(int **)(*param_1 + 8) + 0xe8))();\n            }\n            else {\n              iVar8 = (*pcVar25)();\n            }\n            local_60._4_4_ = (uint *)local_44[1];\n            local_60._0_4_ = (uint *)*local_44;\n            if (iVar8 == 0) {\n              uVar15 = (uint)local_60._4_4_ & 0xff;\n              uVar16 = (uint)local_60._4_4_ >> 8;\n              uVar2 = (uint)local_60._4_4_ >> 0x10;\n              uVar4 = (uint)local_60._4_4_ >> 0x18;\n              local_60._4_4_ =\n                   (uint *)(((((uint)local_60._0_4_ >> 0x10) << 0x18 |\n                             ((uint)local_60._0_4_ >> 0x18) << 0x10) >> 0x10) +\n                           (((uint)local_60._0_4_ & 0xff) << 8 | (uint)local_60._0_4_ >> 8 & 0xff) *\n                           0x10000);\n              local_60._0_4_ =\n                   (uint *)(((uVar2 << 0x18 | uVar4 << 0x10) >> 0x10) +\n                           (uVar15 << 8 | uVar16 & 0xff) * 0x10000);\n            }\n            local_44 = local_44 + 2;\n          }\n          uVar7 = CONCAT44(local_60._0_4_,local_60._4_4_);\n          if (uVar22 == 0x6e) goto LAB_002e313c;\n          uVar7 = CONCAT44(local_60._0_4_,local_60._4_4_);\n          uVar26 = CONCAT44(local_60._0_4_,local_60._4_4_);\n          if (uVar22 == 0x2007) goto LAB_002e313c;\n          goto joined_r0x002e3124;\n        }" if (parenthesized_expression "(0x15 < uVar19)" ( (binary_expression "0x15 < uVar19" number_literal < identifier) )) (compound_statement "{\n          if (uVar19 == 0x19) {\n            local_60._4_4_ = (uint *)0x1;\n            local_60._0_4_ = (uint *)0x0;\n          }\n          else {\n            if (uVar19 < 0x1a) {\n              if (uVar19 != 0x17) {\n                if (uVar19 != 0x18) {\n                  return 0;\n                }\n                goto LAB_002e32bc;\n              }\n              iVar8 = *param_1;\n              if (*(int *)(iVar8 + 0x48) == 4) {\n                pcVar25 = *(code **)(**(int **)(iVar8 + 8) + 0xc);\n                if (pcVar25 == (code *)PTR_is_big_endian_004c2950) {\n                  local_30 = puVar18;\n                  iVar8 = (**(code **)(**(int **)(iVar8 + 8) + 0xe8))();\n                }\n                else {\n                  local_30 = puVar18;\n                  iVar8 = (*pcVar25)();\n                }\n                uVar15 = *local_44;\n                if (iVar8 == 0) {\n                  uVar15 = (((uVar15 >> 0x10) << 0x18 | (uVar15 >> 0x18) << 0x10) >> 0x10) +\n                           ((uVar15 & 0xff) << 8 | uVar15 >> 8 & 0xff) * 0x10000;\n                }\n                local_44 = local_44 + 1;\n                uVar26 = (ulonglong)uVar15;\n              }\n              else {\n                local_30 = puVar18;\n                uVar26 = (*local_34)(iVar8,&local_44);\n              }\n              iVar8 = *param_1;\n              goto LAB_002e3970;\n            }\n            if (uVar19 != 0x20) {\n              if (uVar19 < 0x20) {\n                return 0;\n              }\n              if (1 < uVar19 - 0x1f01) {\n                return 0;\n              }\nLAB_002e34d8:\n              if ((char)*(byte *)local_44 < '\0') {\n                uVar26 = (*(code *)PTR_read_unsigned_LEB_128_x_004c2980)\n                                   ((uint *)((int)local_44 + 1),&local_48);\n                local_44 = (uint *)((int)local_44 + local_48);\n              }\n              else {\n                uVar26 = (ulonglong)*(byte *)local_44;\n                local_48 = 1;\n                local_44 = (uint *)((int)local_44 + 1);\n              }\n              goto LAB_002e382c;\n            }\n            pcVar25 = *(code **)(**(int **)(*param_1 + 8) + 0xc);\n            if (pcVar25 == (code *)PTR_is_big_endian_004c2950) {\n              iVar8 = (**(code **)(**(int **)(*param_1 + 8) + 0xe8))();\n            }\n            else {\n              iVar8 = (*pcVar25)();\n            }\n            local_60._4_4_ = (uint *)local_44[1];\n            local_60._0_4_ = (uint *)*local_44;\n            if (iVar8 == 0) {\n              uVar15 = (uint)local_60._4_4_ & 0xff;\n              uVar16 = (uint)local_60._4_4_ >> 8;\n              uVar2 = (uint)local_60._4_4_ >> 0x10;\n              uVar4 = (uint)local_60._4_4_ >> 0x18;\n              local_60._4_4_ =\n                   (uint *)(((((uint)local_60._0_4_ >> 0x10) << 0x18 |\n                             ((uint)local_60._0_4_ >> 0x18) << 0x10) >> 0x10) +\n                           (((uint)local_60._0_4_ & 0xff) << 8 | (uint)local_60._0_4_ >> 8 & 0xff) *\n                           0x10000);\n              local_60._0_4_ =\n                   (uint *)(((uVar2 << 0x18 | uVar4 << 0x10) >> 0x10) +\n                           (uVar15 << 8 | uVar16 & 0xff) * 0x10000);\n            }\n            local_44 = local_44 + 2;\n          }\n          uVar7 = CONCAT44(local_60._0_4_,local_60._4_4_);\n          if (uVar22 == 0x6e) goto LAB_002e313c;\n          uVar7 = CONCAT44(local_60._0_4_,local_60._4_4_);\n          uVar26 = CONCAT44(local_60._0_4_,local_60._4_4_);\n          if (uVar22 == 0x2007) goto LAB_002e313c;\n          goto joined_r0x002e3124;\n        }" { (if_statement "if (uVar19 == 0x19) {\n            local_60._4_4_ = (uint *)0x1;\n            local_60._0_4_ = (uint *)0x0;\n          }\n          else {\n            if (uVar19 < 0x1a) {\n              if (uVar19 != 0x17) {\n                if (uVar19 != 0x18) {\n                  return 0;\n                }\n                goto LAB_002e32bc;\n              }\n              iVar8 = *param_1;\n              if (*(int *)(iVar8 + 0x48) == 4) {\n                pcVar25 = *(code **)(**(int **)(iVar8 + 8) + 0xc);\n                if (pcVar25 == (code *)PTR_is_big_endian_004c2950) {\n                  local_30 = puVar18;\n                  iVar8 = (**(code **)(**(int **)(iVar8 + 8) + 0xe8))();\n                }\n                else {\n                  local_30 = puVar18;\n                  iVar8 = (*pcVar25)();\n                }\n                uVar15 = *local_44;\n                if (iVar8 == 0) {\n                  uVar15 = (((uVar15 >> 0x10) << 0x18 | (uVar15 >> 0x18) << 0x10) >> 0x10) +\n                           ((uVar15 & 0xff) << 8 | uVar15 >> 8 & 0xff) * 0x10000;\n                }\n                local_44 = local_44 + 1;\n                uVar26 = (ulonglong)uVar15;\n              }\n              else {\n                local_30 = puVar18;\n                uVar26 = (*local_34)(iVar8,&local_44);\n              }\n              iVar8 = *param_1;\n              goto LAB_002e3970;\n            }\n            if (uVar19 != 0x20) {\n              if (uVar19 < 0x20) {\n                return 0;\n              }\n              if (1 < uVar19 - 0x1f01) {\n                return 0;\n              }\nLAB_002e34d8:\n              if ((char)*(byte *)local_44 < '\0') {\n                uVar26 = (*(code *)PTR_read_unsigned_LEB_128_x_004c2980)\n                                   ((uint *)((int)local_44 + 1),&local_48);\n                local_44 = (uint *)((int)local_44 + local_48);\n              }\n              else {\n                uVar26 = (ulonglong)*(byte *)local_44;\n                local_48 = 1;\n                local_44 = (uint *)((int)local_44 + 1);\n              }\n              goto LAB_002e382c;\n            }\n            pcVar25 = *(code **)(**(int **)(*param_1 + 8) + 0xc);\n            if (pcVar25 == (code *)PTR_is_big_endian_004c2950) {\n              iVar8 = (**(code **)(**(int **)(*param_1 + 8) + 0xe8))();\n            }\n            else {\n              iVar8 = (*pcVar25)();\n            }\n            local_60._4_4_ = (uint *)local_44[1];\n            local_60._0_4_ = (uint *)*local_44;\n            if (iVar8 == 0) {\n              uVar15 = (uint)local_60._4_4_ & 0xff;\n              uVar16 = (uint)local_60._4_4_ >> 8;\n              uVar2 = (uint)local_60._4_4_ >> 0x10;\n              uVar4 = (uint)local_60._4_4_ >> 0x18;\n              local_60._4_4_ =\n                   (uint *)(((((uint)local_60._0_4_ >> 0x10) << 0x18 |\n                             ((uint)local_60._0_4_ >> 0x18) << 0x10) >> 0x10) +\n                           (((uint)local_60._0_4_ & 0xff) << 8 | (uint)local_60._0_4_ >> 8 & 0xff) *\n                           0x10000);\n              local_60._0_4_ =\n                   (uint *)(((uVar2 << 0x18 | uVar4 << 0x10) >> 0x10) +\n                           (uVar15 << 8 | uVar16 & 0xff) * 0x10000);\n            }\n            local_44 = local_44 + 2;\n          }" if (parenthesized_expression "(uVar19 == 0x19)" ( (binary_expression "uVar19 == 0x19" identifier == number_literal) )) (compound_statement "{\n            local_60._4_4_ = (uint *)0x1;\n            local_60._0_4_ = (uint *)0x0;\n          }" { (expression_statement "local_60._4_4_ = (uint *)0x1;" (assignment_expression "local_60._4_4_ = (uint *)0x1" (field_expression "local_60._4_4_" identifier . field_identifier) = (cast_expression "(uint *)0x1" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (expression_statement "local_60._0_4_ = (uint *)0x0;" (assignment_expression "local_60._0_4_ = (uint *)0x0" (field_expression "local_60._0_4_" identifier . field_identifier) = (cast_expression "(uint *)0x0" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ;) }) (else_clause "else {\n            if (uVar19 < 0x1a) {\n              if (uVar19 != 0x17) {\n                if (uVar19 != 0x18) {\n                  return 0;\n                }\n                goto LAB_002e32bc;\n              }\n              iVar8 = *param_1;\n              if (*(int *)(iVar8 + 0x48) == 4) {\n                pcVar25 = *(code **)(**(int **)(iVar8 + 8) + 0xc);\n                if (pcVar25 == (code *)PTR_is_big_endian_004c2950) {\n                  local_30 = puVar18;\n                  iVar8 = (**(code **)(**(int **)(iVar8 + 8) + 0xe8))();\n                }\n                else {\n                  local_30 = puVar18;\n                  iVar8 = (*pcVar25)();\n                }\n                uVar15 = *local_44;\n                if (iVar8 == 0) {\n                  uVar15 = (((uVar15 >> 0x10) << 0x18 | (uVar15 >> 0x18) << 0x10) >> 0x10) +\n                           ((uVar15 & 0xff) << 8 | uVar15 >> 8 & 0xff) * 0x10000;\n                }\n                local_44 = local_44 + 1;\n                uVar26 = (ulonglong)uVar15;\n              }\n              else {\n                local_30 = puVar18;\n                uVar26 = (*local_34)(iVar8,&local_44);\n              }\n              iVar8 = *param_1;\n              goto LAB_002e3970;\n            }\n            if (uVar19 != 0x20) {\n              if (uVar19 < 0x20) {\n                return 0;\n              }\n              if (1 < uVar19 - 0x1f01) {\n                return 0;\n              }\nLAB_002e34d8:\n              if ((char)*(byte *)local_44 < '\0') {\n                uVar26 = (*(code *)PTR_read_unsigned_LEB_128_x_004c2980)\n                                   ((uint *)((int)local_44 + 1),&local_48);\n                local_44 = (uint *)((int)local_44 + local_48);\n              }\n              else {\n                uVar26 = (ulonglong)*(byte *)local_44;\n                local_48 = 1;\n                local_44 = (uint *)((int)local_44 + 1);\n              }\n              goto LAB_002e382c;\n            }\n            pcVar25 = *(code **)(**(int **)(*param_1 + 8) + 0xc);\n            if (pcVar25 == (code *)PTR_is_big_endian_004c2950) {\n              iVar8 = (**(code **)(**(int **)(*param_1 + 8) + 0xe8))();\n            }\n            else {\n              iVar8 = (*pcVar25)();\n            }\n            local_60._4_4_ = (uint *)local_44[1];\n            local_60._0_4_ = (uint *)*local_44;\n            if (iVar8 == 0) {\n              uVar15 = (uint)local_60._4_4_ & 0xff;\n              uVar16 = (uint)local_60._4_4_ >> 8;\n              uVar2 = (uint)local_60._4_4_ >> 0x10;\n              uVar4 = (uint)local_60._4_4_ >> 0x18;\n              local_60._4_4_ =\n                   (uint *)(((((uint)local_60._0_4_ >> 0x10) << 0x18 |\n                             ((uint)local_60._0_4_ >> 0x18) << 0x10) >> 0x10) +\n                           (((uint)local_60._0_4_ & 0xff) << 8 | (uint)local_60._0_4_ >> 8 & 0xff) *\n                           0x10000);\n              local_60._0_4_ =\n                   (uint *)(((uVar2 << 0x18 | uVar4 << 0x10) >> 0x10) +\n                           (uVar15 << 8 | uVar16 & 0xff) * 0x10000);\n            }\n            local_44 = local_44 + 2;\n          }" else (compound_statement "{\n            if (uVar19 < 0x1a) {\n              if (uVar19 != 0x17) {\n                if (uVar19 != 0x18) {\n                  return 0;\n                }\n                goto LAB_002e32bc;\n              }\n              iVar8 = *param_1;\n              if (*(int *)(iVar8 + 0x48) == 4) {\n                pcVar25 = *(code **)(**(int **)(iVar8 + 8) + 0xc);\n                if (pcVar25 == (code *)PTR_is_big_endian_004c2950) {\n                  local_30 = puVar18;\n                  iVar8 = (**(code **)(**(int **)(iVar8 + 8) + 0xe8))();\n                }\n                else {\n                  local_30 = puVar18;\n                  iVar8 = (*pcVar25)();\n                }\n                uVar15 = *local_44;\n                if (iVar8 == 0) {\n                  uVar15 = (((uVar15 >> 0x10) << 0x18 | (uVar15 >> 0x18) << 0x10) >> 0x10) +\n                           ((uVar15 & 0xff) << 8 | uVar15 >> 8 & 0xff) * 0x10000;\n                }\n                local_44 = local_44 + 1;\n                uVar26 = (ulonglong)uVar15;\n              }\n              else {\n                local_30 = puVar18;\n                uVar26 = (*local_34)(iVar8,&local_44);\n              }\n              iVar8 = *param_1;\n              goto LAB_002e3970;\n            }\n            if (uVar19 != 0x20) {\n              if (uVar19 < 0x20) {\n                return 0;\n              }\n              if (1 < uVar19 - 0x1f01) {\n                return 0;\n              }\nLAB_002e34d8:\n              if ((char)*(byte *)local_44 < '\0') {\n                uVar26 = (*(code *)PTR_read_unsigned_LEB_128_x_004c2980)\n                                   ((uint *)((int)local_44 + 1),&local_48);\n                local_44 = (uint *)((int)local_44 + local_48);\n              }\n              else {\n                uVar26 = (ulonglong)*(byte *)local_44;\n                local_48 = 1;\n                local_44 = (uint *)((int)local_44 + 1);\n              }\n              goto LAB_002e382c;\n            }\n            pcVar25 = *(code **)(**(int **)(*param_1 + 8) + 0xc);\n            if (pcVar25 == (code *)PTR_is_big_endian_004c2950) {\n              iVar8 = (**(code **)(**(int **)(*param_1 + 8) + 0xe8))();\n            }\n            else {\n              iVar8 = (*pcVar25)();\n            }\n            local_60._4_4_ = (uint *)local_44[1];\n            local_60._0_4_ = (uint *)*local_44;\n            if (iVar8 == 0) {\n              uVar15 = (uint)local_60._4_4_ & 0xff;\n              uVar16 = (uint)local_60._4_4_ >> 8;\n              uVar2 = (uint)local_60._4_4_ >> 0x10;\n              uVar4 = (uint)local_60._4_4_ >> 0x18;\n              local_60._4_4_ =\n                   (uint *)(((((uint)local_60._0_4_ >> 0x10) << 0x18 |\n                             ((uint)local_60._0_4_ >> 0x18) << 0x10) >> 0x10) +\n                           (((uint)local_60._0_4_ & 0xff) << 8 | (uint)local_60._0_4_ >> 8 & 0xff) *\n                           0x10000);\n              local_60._0_4_ =\n                   (uint *)(((uVar2 << 0x18 | uVar4 << 0x10) >> 0x10) +\n                           (uVar15 << 8 | uVar16 & 0xff) * 0x10000);\n            }\n            local_44 = local_44 + 2;\n          }" { (if_statement "if (uVar19 < 0x1a) {\n              if (uVar19 != 0x17) {\n                if (uVar19 != 0x18) {\n                  return 0;\n                }\n                goto LAB_002e32bc;\n              }\n              iVar8 = *param_1;\n              if (*(int *)(iVar8 + 0x48) == 4) {\n                pcVar25 = *(code **)(**(int **)(iVar8 + 8) + 0xc);\n                if (pcVar25 == (code *)PTR_is_big_endian_004c2950) {\n                  local_30 = puVar18;\n                  iVar8 = (**(code **)(**(int **)(iVar8 + 8) + 0xe8))();\n                }\n                else {\n                  local_30 = puVar18;\n                  iVar8 = (*pcVar25)();\n                }\n                uVar15 = *local_44;\n                if (iVar8 == 0) {\n                  uVar15 = (((uVar15 >> 0x10) << 0x18 | (uVar15 >> 0x18) << 0x10) >> 0x10) +\n                           ((uVar15 & 0xff) << 8 | uVar15 >> 8 & 0xff) * 0x10000;\n                }\n                local_44 = local_44 + 1;\n                uVar26 = (ulonglong)uVar15;\n              }\n              else {\n                local_30 = puVar18;\n                uVar26 = (*local_34)(iVar8,&local_44);\n              }\n              iVar8 = *param_1;\n              goto LAB_002e3970;\n            }" if (parenthesized_expression "(uVar19 < 0x1a)" ( (binary_expression "uVar19 < 0x1a" identifier < number_literal) )) (compound_statement "{\n              if (uVar19 != 0x17) {\n                if (uVar19 != 0x18) {\n                  return 0;\n                }\n                goto LAB_002e32bc;\n              }\n              iVar8 = *param_1;\n              if (*(int *)(iVar8 + 0x48) == 4) {\n                pcVar25 = *(code **)(**(int **)(iVar8 + 8) + 0xc);\n                if (pcVar25 == (code *)PTR_is_big_endian_004c2950) {\n                  local_30 = puVar18;\n                  iVar8 = (**(code **)(**(int **)(iVar8 + 8) + 0xe8))();\n                }\n                else {\n                  local_30 = puVar18;\n                  iVar8 = (*pcVar25)();\n                }\n                uVar15 = *local_44;\n                if (iVar8 == 0) {\n                  uVar15 = (((uVar15 >> 0x10) << 0x18 | (uVar15 >> 0x18) << 0x10) >> 0x10) +\n                           ((uVar15 & 0xff) << 8 | uVar15 >> 8 & 0xff) * 0x10000;\n                }\n                local_44 = local_44 + 1;\n                uVar26 = (ulonglong)uVar15;\n              }\n              else {\n                local_30 = puVar18;\n                uVar26 = (*local_34)(iVar8,&local_44);\n              }\n              iVar8 = *param_1;\n              goto LAB_002e3970;\n            }" { (if_statement "if (uVar19 != 0x17) {\n                if (uVar19 != 0x18) {\n                  return 0;\n                }\n                goto LAB_002e32bc;\n              }" if (parenthesized_expression "(uVar19 != 0x17)" ( (binary_expression "uVar19 != 0x17" identifier != number_literal) )) (compound_statement "{\n                if (uVar19 != 0x18) {\n                  return 0;\n                }\n                goto LAB_002e32bc;\n              }" { (if_statement "if (uVar19 != 0x18) {\n                  return 0;\n                }" if (parenthesized_expression "(uVar19 != 0x18)" ( (binary_expression "uVar19 != 0x18" identifier != number_literal) )) (compound_statement "{\n                  return 0;\n                }" { (return_statement "return 0;" return number_literal ;) })) (goto_statement "goto LAB_002e32bc;" goto statement_identifier ;) })) (expression_statement "iVar8 = *param_1;" (assignment_expression "iVar8 = *param_1" identifier = (pointer_expression "*param_1" * identifier)) ;) (if_statement "if (*(int *)(iVar8 + 0x48) == 4) {\n                pcVar25 = *(code **)(**(int **)(iVar8 + 8) + 0xc);\n                if (pcVar25 == (code *)PTR_is_big_endian_004c2950) {\n                  local_30 = puVar18;\n                  iVar8 = (**(code **)(**(int **)(iVar8 + 8) + 0xe8))();\n                }\n                else {\n                  local_30 = puVar18;\n                  iVar8 = (*pcVar25)();\n                }\n                uVar15 = *local_44;\n                if (iVar8 == 0) {\n                  uVar15 = (((uVar15 >> 0x10) << 0x18 | (uVar15 >> 0x18) << 0x10) >> 0x10) +\n                           ((uVar15 & 0xff) << 8 | uVar15 >> 8 & 0xff) * 0x10000;\n                }\n                local_44 = local_44 + 1;\n                uVar26 = (ulonglong)uVar15;\n              }\n              else {\n                local_30 = puVar18;\n                uVar26 = (*local_34)(iVar8,&local_44);\n              }" if (parenthesized_expression "(*(int *)(iVar8 + 0x48) == 4)" ( (binary_expression "*(int *)(iVar8 + 0x48) == 4" (pointer_expression "*(int *)(iVar8 + 0x48)" * (cast_expression "(int *)(iVar8 + 0x48)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar8 + 0x48)" ( (binary_expression "iVar8 + 0x48" identifier + number_literal) )))) == number_literal) )) (compound_statement "{\n                pcVar25 = *(code **)(**(int **)(iVar8 + 8) + 0xc);\n                if (pcVar25 == (code *)PTR_is_big_endian_004c2950) {\n                  local_30 = puVar18;\n                  iVar8 = (**(code **)(**(int **)(iVar8 + 8) + 0xe8))();\n                }\n                else {\n                  local_30 = puVar18;\n                  iVar8 = (*pcVar25)();\n                }\n                uVar15 = *local_44;\n                if (iVar8 == 0) {\n                  uVar15 = (((uVar15 >> 0x10) << 0x18 | (uVar15 >> 0x18) << 0x10) >> 0x10) +\n                           ((uVar15 & 0xff) << 8 | uVar15 >> 8 & 0xff) * 0x10000;\n                }\n                local_44 = local_44 + 1;\n                uVar26 = (ulonglong)uVar15;\n              }" { (expression_statement "pcVar25 = *(code **)(**(int **)(iVar8 + 8) + 0xc);" (assignment_expression "pcVar25 = *(code **)(**(int **)(iVar8 + 8) + 0xc)" identifier = (pointer_expression "*(code **)(**(int **)(iVar8 + 8) + 0xc)" * (cast_expression "(code **)(**(int **)(iVar8 + 8) + 0xc)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(**(int **)(iVar8 + 8) + 0xc)" ( (binary_expression "**(int **)(iVar8 + 8) + 0xc" (pointer_expression "**(int **)(iVar8 + 8)" * (pointer_expression "*(int **)(iVar8 + 8)" * (cast_expression "(int **)(iVar8 + 8)" ( (type_descriptor "int **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(iVar8 + 8)" ( (binary_expression "iVar8 + 8" identifier + number_literal) ))))) + number_literal) ))))) ;) (if_statement "if (pcVar25 == (code *)PTR_is_big_endian_004c2950) {\n                  local_30 = puVar18;\n                  iVar8 = (**(code **)(**(int **)(iVar8 + 8) + 0xe8))();\n                }\n                else {\n                  local_30 = puVar18;\n                  iVar8 = (*pcVar25)();\n                }" if (parenthesized_expression "(pcVar25 == (code *)PTR_is_big_endian_004c2950)" ( (binary_expression "pcVar25 == (code *)PTR_is_big_endian_004c2950" identifier == (cast_expression "(code *)PTR_is_big_endian_004c2950" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (compound_statement "{\n                  local_30 = puVar18;\n                  iVar8 = (**(code **)(**(int **)(iVar8 + 8) + 0xe8))();\n                }" { (expression_statement "local_30 = puVar18;" (assignment_expression "local_30 = puVar18" identifier = identifier) ;) (expression_statement "iVar8 = (**(code **)(**(int **)(iVar8 + 8) + 0xe8))();" (assignment_expression "iVar8 = (**(code **)(**(int **)(iVar8 + 8) + 0xe8))()" identifier = (call_expression "(**(code **)(**(int **)(iVar8 + 8) + 0xe8))()" (parenthesized_expression "(**(code **)(**(int **)(iVar8 + 8) + 0xe8))" ( (pointer_expression "**(code **)(**(int **)(iVar8 + 8) + 0xe8)" * (pointer_expression "*(code **)(**(int **)(iVar8 + 8) + 0xe8)" * (cast_expression "(code **)(**(int **)(iVar8 + 8) + 0xe8)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(**(int **)(iVar8 + 8) + 0xe8)" ( (binary_expression "**(int **)(iVar8 + 8) + 0xe8" (pointer_expression "**(int **)(iVar8 + 8)" * (pointer_expression "*(int **)(iVar8 + 8)" * (cast_expression "(int **)(iVar8 + 8)" ( (type_descriptor "int **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(iVar8 + 8)" ( (binary_expression "iVar8 + 8" identifier + number_literal) ))))) + number_literal) ))))) )) (argument_list "()" ( )))) ;) }) (else_clause "else {\n                  local_30 = puVar18;\n                  iVar8 = (*pcVar25)();\n                }" else (compound_statement "{\n                  local_30 = puVar18;\n                  iVar8 = (*pcVar25)();\n                }" { (expression_statement "local_30 = puVar18;" (assignment_expression "local_30 = puVar18" identifier = identifier) ;) (expression_statement "iVar8 = (*pcVar25)();" (assignment_expression "iVar8 = (*pcVar25)()" identifier = (call_expression "(*pcVar25)()" (parenthesized_expression "(*pcVar25)" ( (pointer_expression "*pcVar25" * identifier) )) (argument_list "()" ( )))) ;) }))) (expression_statement "uVar15 = *local_44;" (assignment_expression "uVar15 = *local_44" identifier = (pointer_expression "*local_44" * identifier)) ;) (if_statement "if (iVar8 == 0) {\n                  uVar15 = (((uVar15 >> 0x10) << 0x18 | (uVar15 >> 0x18) << 0x10) >> 0x10) +\n                           ((uVar15 & 0xff) << 8 | uVar15 >> 8 & 0xff) * 0x10000;\n                }" if (parenthesized_expression "(iVar8 == 0)" ( (binary_expression "iVar8 == 0" identifier == number_literal) )) (compound_statement "{\n                  uVar15 = (((uVar15 >> 0x10) << 0x18 | (uVar15 >> 0x18) << 0x10) >> 0x10) +\n                           ((uVar15 & 0xff) << 8 | uVar15 >> 8 & 0xff) * 0x10000;\n                }" { (expression_statement "uVar15 = (((uVar15 >> 0x10) << 0x18 | (uVar15 >> 0x18) << 0x10) >> 0x10) +\n                           ((uVar15 & 0xff) << 8 | uVar15 >> 8 & 0xff) * 0x10000;" (assignment_expression "uVar15 = (((uVar15 >> 0x10) << 0x18 | (uVar15 >> 0x18) << 0x10) >> 0x10) +\n                           ((uVar15 & 0xff) << 8 | uVar15 >> 8 & 0xff) * 0x10000" identifier = (binary_expression "(((uVar15 >> 0x10) << 0x18 | (uVar15 >> 0x18) << 0x10) >> 0x10) +\n                           ((uVar15 & 0xff) << 8 | uVar15 >> 8 & 0xff) * 0x10000" (parenthesized_expression "(((uVar15 >> 0x10) << 0x18 | (uVar15 >> 0x18) << 0x10) >> 0x10)" ( (binary_expression "((uVar15 >> 0x10) << 0x18 | (uVar15 >> 0x18) << 0x10) >> 0x10" (parenthesized_expression "((uVar15 >> 0x10) << 0x18 | (uVar15 >> 0x18) << 0x10)" ( (binary_expression "(uVar15 >> 0x10) << 0x18 | (uVar15 >> 0x18) << 0x10" (binary_expression "(uVar15 >> 0x10) << 0x18" (parenthesized_expression "(uVar15 >> 0x10)" ( (binary_expression "uVar15 >> 0x10" identifier >> number_literal) )) << number_literal) | (binary_expression "(uVar15 >> 0x18) << 0x10" (parenthesized_expression "(uVar15 >> 0x18)" ( (binary_expression "uVar15 >> 0x18" identifier >> number_literal) )) << number_literal)) )) >> number_literal) )) + (binary_expression "((uVar15 & 0xff) << 8 | uVar15 >> 8 & 0xff) * 0x10000" (parenthesized_expression "((uVar15 & 0xff) << 8 | uVar15 >> 8 & 0xff)" ( (binary_expression "(uVar15 & 0xff) << 8 | uVar15 >> 8 & 0xff" (binary_expression "(uVar15 & 0xff) << 8" (parenthesized_expression "(uVar15 & 0xff)" ( (binary_expression "uVar15 & 0xff" identifier & number_literal) )) << number_literal) | (binary_expression "uVar15 >> 8 & 0xff" (binary_expression "uVar15 >> 8" identifier >> number_literal) & number_literal)) )) * number_literal))) ;) })) (expression_statement "local_44 = local_44 + 1;" (assignment_expression "local_44 = local_44 + 1" identifier = (binary_expression "local_44 + 1" identifier + number_literal)) ;) (expression_statement "uVar26 = (ulonglong)uVar15;" (assignment_expression "uVar26 = (ulonglong)uVar15" identifier = (cast_expression "(ulonglong)uVar15" ( (type_descriptor "ulonglong" type_identifier) ) identifier)) ;) }) (else_clause "else {\n                local_30 = puVar18;\n                uVar26 = (*local_34)(iVar8,&local_44);\n              }" else (compound_statement "{\n                local_30 = puVar18;\n                uVar26 = (*local_34)(iVar8,&local_44);\n              }" { (expression_statement "local_30 = puVar18;" (assignment_expression "local_30 = puVar18" identifier = identifier) ;) (expression_statement "uVar26 = (*local_34)(iVar8,&local_44);" (assignment_expression "uVar26 = (*local_34)(iVar8,&local_44)" identifier = (call_expression "(*local_34)(iVar8,&local_44)" (parenthesized_expression "(*local_34)" ( (pointer_expression "*local_34" * identifier) )) (argument_list "(iVar8,&local_44)" ( identifier , (pointer_expression "&local_44" & identifier) )))) ;) }))) (expression_statement "iVar8 = *param_1;" (assignment_expression "iVar8 = *param_1" identifier = (pointer_expression "*param_1" * identifier)) ;) (goto_statement "goto LAB_002e3970;" goto statement_identifier ;) })) (if_statement "if (uVar19 != 0x20) {\n              if (uVar19 < 0x20) {\n                return 0;\n              }\n              if (1 < uVar19 - 0x1f01) {\n                return 0;\n              }\nLAB_002e34d8:\n              if ((char)*(byte *)local_44 < '\0') {\n                uVar26 = (*(code *)PTR_read_unsigned_LEB_128_x_004c2980)\n                                   ((uint *)((int)local_44 + 1),&local_48);\n                local_44 = (uint *)((int)local_44 + local_48);\n              }\n              else {\n                uVar26 = (ulonglong)*(byte *)local_44;\n                local_48 = 1;\n                local_44 = (uint *)((int)local_44 + 1);\n              }\n              goto LAB_002e382c;\n            }" if (parenthesized_expression "(uVar19 != 0x20)" ( (binary_expression "uVar19 != 0x20" identifier != number_literal) )) (compound_statement "{\n              if (uVar19 < 0x20) {\n                return 0;\n              }\n              if (1 < uVar19 - 0x1f01) {\n                return 0;\n              }\nLAB_002e34d8:\n              if ((char)*(byte *)local_44 < '\0') {\n                uVar26 = (*(code *)PTR_read_unsigned_LEB_128_x_004c2980)\n                                   ((uint *)((int)local_44 + 1),&local_48);\n                local_44 = (uint *)((int)local_44 + local_48);\n              }\n              else {\n                uVar26 = (ulonglong)*(byte *)local_44;\n                local_48 = 1;\n                local_44 = (uint *)((int)local_44 + 1);\n              }\n              goto LAB_002e382c;\n            }" { (if_statement "if (uVar19 < 0x20) {\n                return 0;\n              }" if (parenthesized_expression "(uVar19 < 0x20)" ( (binary_expression "uVar19 < 0x20" identifier < number_literal) )) (compound_statement "{\n                return 0;\n              }" { (return_statement "return 0;" return number_literal ;) })) (if_statement "if (1 < uVar19 - 0x1f01) {\n                return 0;\n              }" if (parenthesized_expression "(1 < uVar19 - 0x1f01)" ( (binary_expression "1 < uVar19 - 0x1f01" number_literal < (binary_expression "uVar19 - 0x1f01" identifier - number_literal)) )) (compound_statement "{\n                return 0;\n              }" { (return_statement "return 0;" return number_literal ;) })) (labeled_statement "LAB_002e34d8:\n              if ((char)*(byte *)local_44 < '\0') {\n                uVar26 = (*(code *)PTR_read_unsigned_LEB_128_x_004c2980)\n                                   ((uint *)((int)local_44 + 1),&local_48);\n                local_44 = (uint *)((int)local_44 + local_48);\n              }\n              else {\n                uVar26 = (ulonglong)*(byte *)local_44;\n                local_48 = 1;\n                local_44 = (uint *)((int)local_44 + 1);\n              }" statement_identifier : (if_statement "if ((char)*(byte *)local_44 < '\0') {\n                uVar26 = (*(code *)PTR_read_unsigned_LEB_128_x_004c2980)\n                                   ((uint *)((int)local_44 + 1),&local_48);\n                local_44 = (uint *)((int)local_44 + local_48);\n              }\n              else {\n                uVar26 = (ulonglong)*(byte *)local_44;\n                local_48 = 1;\n                local_44 = (uint *)((int)local_44 + 1);\n              }" if (parenthesized_expression "((char)*(byte *)local_44 < '\0')" ( (binary_expression "(char)*(byte *)local_44 < '\0'" (cast_expression "(char)*(byte *)local_44" ( (type_descriptor "char" primitive_type) ) (pointer_expression "*(byte *)local_44" * (cast_expression "(byte *)local_44" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier))) < (char_literal "'\0'" ' escape_sequence ')) )) (compound_statement "{\n                uVar26 = (*(code *)PTR_read_unsigned_LEB_128_x_004c2980)\n                                   ((uint *)((int)local_44 + 1),&local_48);\n                local_44 = (uint *)((int)local_44 + local_48);\n              }" { (expression_statement "uVar26 = (*(code *)PTR_read_unsigned_LEB_128_x_004c2980)\n                                   ((uint *)((int)local_44 + 1),&local_48);" (assignment_expression "uVar26 = (*(code *)PTR_read_unsigned_LEB_128_x_004c2980)\n                                   ((uint *)((int)local_44 + 1),&local_48)" identifier = (call_expression "(*(code *)PTR_read_unsigned_LEB_128_x_004c2980)\n                                   ((uint *)((int)local_44 + 1),&local_48)" (parenthesized_expression "(*(code *)PTR_read_unsigned_LEB_128_x_004c2980)" ( (pointer_expression "*(code *)PTR_read_unsigned_LEB_128_x_004c2980" * (cast_expression "(code *)PTR_read_unsigned_LEB_128_x_004c2980" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "((uint *)((int)local_44 + 1),&local_48)" ( (cast_expression "(uint *)((int)local_44 + 1)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)local_44 + 1)" ( (binary_expression "(int)local_44 + 1" (cast_expression "(int)local_44" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) ))) , (pointer_expression "&local_48" & identifier) )))) ;) (expression_statement "local_44 = (uint *)((int)local_44 + local_48);" (assignment_expression "local_44 = (uint *)((int)local_44 + local_48)" identifier = (cast_expression "(uint *)((int)local_44 + local_48)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)local_44 + local_48)" ( (binary_expression "(int)local_44 + local_48" (cast_expression "(int)local_44" ( (type_descriptor "int" primitive_type) ) identifier) + identifier) )))) ;) }) (else_clause "else {\n                uVar26 = (ulonglong)*(byte *)local_44;\n                local_48 = 1;\n                local_44 = (uint *)((int)local_44 + 1);\n              }" else (compound_statement "{\n                uVar26 = (ulonglong)*(byte *)local_44;\n                local_48 = 1;\n                local_44 = (uint *)((int)local_44 + 1);\n              }" { (expression_statement "uVar26 = (ulonglong)*(byte *)local_44;" (assignment_expression "uVar26 = (ulonglong)*(byte *)local_44" identifier = (binary_expression "(ulonglong)*(byte *)local_44" (parenthesized_expression "(ulonglong)" ( identifier )) * (cast_expression "(byte *)local_44" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier))) ;) (expression_statement "local_48 = 1;" (assignment_expression "local_48 = 1" identifier = number_literal) ;) (expression_statement "local_44 = (uint *)((int)local_44 + 1);" (assignment_expression "local_44 = (uint *)((int)local_44 + 1)" identifier = (cast_expression "(uint *)((int)local_44 + 1)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)local_44 + 1)" ( (binary_expression "(int)local_44 + 1" (cast_expression "(int)local_44" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) ;) })))) (goto_statement "goto LAB_002e382c;" goto statement_identifier ;) })) (expression_statement "pcVar25 = *(code **)(**(int **)(*param_1 + 8) + 0xc);" (assignment_expression "pcVar25 = *(code **)(**(int **)(*param_1 + 8) + 0xc)" identifier = (pointer_expression "*(code **)(**(int **)(*param_1 + 8) + 0xc)" * (cast_expression "(code **)(**(int **)(*param_1 + 8) + 0xc)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(**(int **)(*param_1 + 8) + 0xc)" ( (binary_expression "**(int **)(*param_1 + 8) + 0xc" (pointer_expression "**(int **)(*param_1 + 8)" * (pointer_expression "*(int **)(*param_1 + 8)" * (cast_expression "(int **)(*param_1 + 8)" ( (type_descriptor "int **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(*param_1 + 8)" ( (binary_expression "*param_1 + 8" (pointer_expression "*param_1" * identifier) + number_literal) ))))) + number_literal) ))))) ;) (if_statement "if (pcVar25 == (code *)PTR_is_big_endian_004c2950) {\n              iVar8 = (**(code **)(**(int **)(*param_1 + 8) + 0xe8))();\n            }\n            else {\n              iVar8 = (*pcVar25)();\n            }" if (parenthesized_expression "(pcVar25 == (code *)PTR_is_big_endian_004c2950)" ( (binary_expression "pcVar25 == (code *)PTR_is_big_endian_004c2950" identifier == (cast_expression "(code *)PTR_is_big_endian_004c2950" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (compound_statement "{\n              iVar8 = (**(code **)(**(int **)(*param_1 + 8) + 0xe8))();\n            }" { (expression_statement "iVar8 = (**(code **)(**(int **)(*param_1 + 8) + 0xe8))();" (assignment_expression "iVar8 = (**(code **)(**(int **)(*param_1 + 8) + 0xe8))()" identifier = (call_expression "(**(code **)(**(int **)(*param_1 + 8) + 0xe8))()" (parenthesized_expression "(**(code **)(**(int **)(*param_1 + 8) + 0xe8))" ( (pointer_expression "**(code **)(**(int **)(*param_1 + 8) + 0xe8)" * (pointer_expression "*(code **)(**(int **)(*param_1 + 8) + 0xe8)" * (cast_expression "(code **)(**(int **)(*param_1 + 8) + 0xe8)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(**(int **)(*param_1 + 8) + 0xe8)" ( (binary_expression "**(int **)(*param_1 + 8) + 0xe8" (pointer_expression "**(int **)(*param_1 + 8)" * (pointer_expression "*(int **)(*param_1 + 8)" * (cast_expression "(int **)(*param_1 + 8)" ( (type_descriptor "int **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(*param_1 + 8)" ( (binary_expression "*param_1 + 8" (pointer_expression "*param_1" * identifier) + number_literal) ))))) + number_literal) ))))) )) (argument_list "()" ( )))) ;) }) (else_clause "else {\n              iVar8 = (*pcVar25)();\n            }" else (compound_statement "{\n              iVar8 = (*pcVar25)();\n            }" { (expression_statement "iVar8 = (*pcVar25)();" (assignment_expression "iVar8 = (*pcVar25)()" identifier = (call_expression "(*pcVar25)()" (parenthesized_expression "(*pcVar25)" ( (pointer_expression "*pcVar25" * identifier) )) (argument_list "()" ( )))) ;) }))) (expression_statement "local_60._4_4_ = (uint *)local_44[1];" (assignment_expression "local_60._4_4_ = (uint *)local_44[1]" (field_expression "local_60._4_4_" identifier . field_identifier) = (cast_expression "(uint *)local_44[1]" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (subscript_expression "local_44[1]" identifier [ number_literal ]))) ;) (expression_statement "local_60._0_4_ = (uint *)*local_44;" (assignment_expression "local_60._0_4_ = (uint *)*local_44" (field_expression "local_60._0_4_" identifier . field_identifier) = (cast_expression "(uint *)*local_44" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (pointer_expression "*local_44" * identifier))) ;) (if_statement "if (iVar8 == 0) {\n              uVar15 = (uint)local_60._4_4_ & 0xff;\n              uVar16 = (uint)local_60._4_4_ >> 8;\n              uVar2 = (uint)local_60._4_4_ >> 0x10;\n              uVar4 = (uint)local_60._4_4_ >> 0x18;\n              local_60._4_4_ =\n                   (uint *)(((((uint)local_60._0_4_ >> 0x10) << 0x18 |\n                             ((uint)local_60._0_4_ >> 0x18) << 0x10) >> 0x10) +\n                           (((uint)local_60._0_4_ & 0xff) << 8 | (uint)local_60._0_4_ >> 8 & 0xff) *\n                           0x10000);\n              local_60._0_4_ =\n                   (uint *)(((uVar2 << 0x18 | uVar4 << 0x10) >> 0x10) +\n                           (uVar15 << 8 | uVar16 & 0xff) * 0x10000);\n            }" if (parenthesized_expression "(iVar8 == 0)" ( (binary_expression "iVar8 == 0" identifier == number_literal) )) (compound_statement "{\n              uVar15 = (uint)local_60._4_4_ & 0xff;\n              uVar16 = (uint)local_60._4_4_ >> 8;\n              uVar2 = (uint)local_60._4_4_ >> 0x10;\n              uVar4 = (uint)local_60._4_4_ >> 0x18;\n              local_60._4_4_ =\n                   (uint *)(((((uint)local_60._0_4_ >> 0x10) << 0x18 |\n                             ((uint)local_60._0_4_ >> 0x18) << 0x10) >> 0x10) +\n                           (((uint)local_60._0_4_ & 0xff) << 8 | (uint)local_60._0_4_ >> 8 & 0xff) *\n                           0x10000);\n              local_60._0_4_ =\n                   (uint *)(((uVar2 << 0x18 | uVar4 << 0x10) >> 0x10) +\n                           (uVar15 << 8 | uVar16 & 0xff) * 0x10000);\n            }" { (expression_statement "uVar15 = (uint)local_60._4_4_ & 0xff;" (assignment_expression "uVar15 = (uint)local_60._4_4_ & 0xff" identifier = (binary_expression "(uint)local_60._4_4_ & 0xff" (cast_expression "(uint)local_60._4_4_" ( (type_descriptor "uint" type_identifier) ) (field_expression "local_60._4_4_" identifier . field_identifier)) & number_literal)) ;) (expression_statement "uVar16 = (uint)local_60._4_4_ >> 8;" (assignment_expression "uVar16 = (uint)local_60._4_4_ >> 8" identifier = (binary_expression "(uint)local_60._4_4_ >> 8" (cast_expression "(uint)local_60._4_4_" ( (type_descriptor "uint" type_identifier) ) (field_expression "local_60._4_4_" identifier . field_identifier)) >> number_literal)) ;) (expression_statement "uVar2 = (uint)local_60._4_4_ >> 0x10;" (assignment_expression "uVar2 = (uint)local_60._4_4_ >> 0x10" identifier = (binary_expression "(uint)local_60._4_4_ >> 0x10" (cast_expression "(uint)local_60._4_4_" ( (type_descriptor "uint" type_identifier) ) (field_expression "local_60._4_4_" identifier . field_identifier)) >> number_literal)) ;) (expression_statement "uVar4 = (uint)local_60._4_4_ >> 0x18;" (assignment_expression "uVar4 = (uint)local_60._4_4_ >> 0x18" identifier = (binary_expression "(uint)local_60._4_4_ >> 0x18" (cast_expression "(uint)local_60._4_4_" ( (type_descriptor "uint" type_identifier) ) (field_expression "local_60._4_4_" identifier . field_identifier)) >> number_literal)) ;) (expression_statement "local_60._4_4_ =\n                   (uint *)(((((uint)local_60._0_4_ >> 0x10) << 0x18 |\n                             ((uint)local_60._0_4_ >> 0x18) << 0x10) >> 0x10) +\n                           (((uint)local_60._0_4_ & 0xff) << 8 | (uint)local_60._0_4_ >> 8 & 0xff) *\n                           0x10000);" (assignment_expression "local_60._4_4_ =\n                   (uint *)(((((uint)local_60._0_4_ >> 0x10) << 0x18 |\n                             ((uint)local_60._0_4_ >> 0x18) << 0x10) >> 0x10) +\n                           (((uint)local_60._0_4_ & 0xff) << 8 | (uint)local_60._0_4_ >> 8 & 0xff) *\n                           0x10000)" (field_expression "local_60._4_4_" identifier . field_identifier) = (cast_expression "(uint *)(((((uint)local_60._0_4_ >> 0x10) << 0x18 |\n                             ((uint)local_60._0_4_ >> 0x18) << 0x10) >> 0x10) +\n                           (((uint)local_60._0_4_ & 0xff) << 8 | (uint)local_60._0_4_ >> 8 & 0xff) *\n                           0x10000)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(((((uint)local_60._0_4_ >> 0x10) << 0x18 |\n                             ((uint)local_60._0_4_ >> 0x18) << 0x10) >> 0x10) +\n                           (((uint)local_60._0_4_ & 0xff) << 8 | (uint)local_60._0_4_ >> 8 & 0xff) *\n                           0x10000)" ( (binary_expression "((((uint)local_60._0_4_ >> 0x10) << 0x18 |\n                             ((uint)local_60._0_4_ >> 0x18) << 0x10) >> 0x10) +\n                           (((uint)local_60._0_4_ & 0xff) << 8 | (uint)local_60._0_4_ >> 8 & 0xff) *\n                           0x10000" (parenthesized_expression "((((uint)local_60._0_4_ >> 0x10) << 0x18 |\n                             ((uint)local_60._0_4_ >> 0x18) << 0x10) >> 0x10)" ( (binary_expression "(((uint)local_60._0_4_ >> 0x10) << 0x18 |\n                             ((uint)local_60._0_4_ >> 0x18) << 0x10) >> 0x10" (parenthesized_expression "(((uint)local_60._0_4_ >> 0x10) << 0x18 |\n                             ((uint)local_60._0_4_ >> 0x18) << 0x10)" ( (binary_expression "((uint)local_60._0_4_ >> 0x10) << 0x18 |\n                             ((uint)local_60._0_4_ >> 0x18) << 0x10" (binary_expression "((uint)local_60._0_4_ >> 0x10) << 0x18" (parenthesized_expression "((uint)local_60._0_4_ >> 0x10)" ( (binary_expression "(uint)local_60._0_4_ >> 0x10" (cast_expression "(uint)local_60._0_4_" ( (type_descriptor "uint" type_identifier) ) (field_expression "local_60._0_4_" identifier . field_identifier)) >> number_literal) )) << number_literal) | (binary_expression "((uint)local_60._0_4_ >> 0x18) << 0x10" (parenthesized_expression "((uint)local_60._0_4_ >> 0x18)" ( (binary_expression "(uint)local_60._0_4_ >> 0x18" (cast_expression "(uint)local_60._0_4_" ( (type_descriptor "uint" type_identifier) ) (field_expression "local_60._0_4_" identifier . field_identifier)) >> number_literal) )) << number_literal)) )) >> number_literal) )) + (binary_expression "(((uint)local_60._0_4_ & 0xff) << 8 | (uint)local_60._0_4_ >> 8 & 0xff) *\n                           0x10000" (parenthesized_expression "(((uint)local_60._0_4_ & 0xff) << 8 | (uint)local_60._0_4_ >> 8 & 0xff)" ( (binary_expression "((uint)local_60._0_4_ & 0xff) << 8 | (uint)local_60._0_4_ >> 8 & 0xff" (binary_expression "((uint)local_60._0_4_ & 0xff) << 8" (parenthesized_expression "((uint)local_60._0_4_ & 0xff)" ( (binary_expression "(uint)local_60._0_4_ & 0xff" (cast_expression "(uint)local_60._0_4_" ( (type_descriptor "uint" type_identifier) ) (field_expression "local_60._0_4_" identifier . field_identifier)) & number_literal) )) << number_literal) | (binary_expression "(uint)local_60._0_4_ >> 8 & 0xff" (binary_expression "(uint)local_60._0_4_ >> 8" (cast_expression "(uint)local_60._0_4_" ( (type_descriptor "uint" type_identifier) ) (field_expression "local_60._0_4_" identifier . field_identifier)) >> number_literal) & number_literal)) )) * number_literal)) )))) ;) (expression_statement "local_60._0_4_ =\n                   (uint *)(((uVar2 << 0x18 | uVar4 << 0x10) >> 0x10) +\n                           (uVar15 << 8 | uVar16 & 0xff) * 0x10000);" (assignment_expression "local_60._0_4_ =\n                   (uint *)(((uVar2 << 0x18 | uVar4 << 0x10) >> 0x10) +\n                           (uVar15 << 8 | uVar16 & 0xff) * 0x10000)" (field_expression "local_60._0_4_" identifier . field_identifier) = (cast_expression "(uint *)(((uVar2 << 0x18 | uVar4 << 0x10) >> 0x10) +\n                           (uVar15 << 8 | uVar16 & 0xff) * 0x10000)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(((uVar2 << 0x18 | uVar4 << 0x10) >> 0x10) +\n                           (uVar15 << 8 | uVar16 & 0xff) * 0x10000)" ( (binary_expression "((uVar2 << 0x18 | uVar4 << 0x10) >> 0x10) +\n                           (uVar15 << 8 | uVar16 & 0xff) * 0x10000" (parenthesized_expression "((uVar2 << 0x18 | uVar4 << 0x10) >> 0x10)" ( (binary_expression "(uVar2 << 0x18 | uVar4 << 0x10) >> 0x10" (parenthesized_expression "(uVar2 << 0x18 | uVar4 << 0x10)" ( (binary_expression "uVar2 << 0x18 | uVar4 << 0x10" (binary_expression "uVar2 << 0x18" identifier << number_literal) | (binary_expression "uVar4 << 0x10" identifier << number_literal)) )) >> number_literal) )) + (binary_expression "(uVar15 << 8 | uVar16 & 0xff) * 0x10000" (parenthesized_expression "(uVar15 << 8 | uVar16 & 0xff)" ( (binary_expression "uVar15 << 8 | uVar16 & 0xff" (binary_expression "uVar15 << 8" identifier << number_literal) | (binary_expression "uVar16 & 0xff" identifier & number_literal)) )) * number_literal)) )))) ;) })) (expression_statement "local_44 = local_44 + 2;" (assignment_expression "local_44 = local_44 + 2" identifier = (binary_expression "local_44 + 2" identifier + number_literal)) ;) }))) (expression_statement "uVar7 = CONCAT44(local_60._0_4_,local_60._4_4_);" (assignment_expression "uVar7 = CONCAT44(local_60._0_4_,local_60._4_4_)" identifier = (call_expression "CONCAT44(local_60._0_4_,local_60._4_4_)" identifier (argument_list "(local_60._0_4_,local_60._4_4_)" ( (field_expression "local_60._0_4_" identifier . field_identifier) , (field_expression "local_60._4_4_" identifier . field_identifier) )))) ;) (if_statement "if (uVar22 == 0x6e) goto LAB_002e313c;" if (parenthesized_expression "(uVar22 == 0x6e)" ( (binary_expression "uVar22 == 0x6e" identifier == number_literal) )) (goto_statement "goto LAB_002e313c;" goto statement_identifier ;)) (expression_statement "uVar7 = CONCAT44(local_60._0_4_,local_60._4_4_);" (assignment_expression "uVar7 = CONCAT44(local_60._0_4_,local_60._4_4_)" identifier = (call_expression "CONCAT44(local_60._0_4_,local_60._4_4_)" identifier (argument_list "(local_60._0_4_,local_60._4_4_)" ( (field_expression "local_60._0_4_" identifier . field_identifier) , (field_expression "local_60._4_4_" identifier . field_identifier) )))) ;) (expression_statement "uVar26 = CONCAT44(local_60._0_4_,local_60._4_4_);" (assignment_expression "uVar26 = CONCAT44(local_60._0_4_,local_60._4_4_)" identifier = (call_expression "CONCAT44(local_60._0_4_,local_60._4_4_)" identifier (argument_list "(local_60._0_4_,local_60._4_4_)" ( (field_expression "local_60._0_4_" identifier . field_identifier) , (field_expression "local_60._4_4_" identifier . field_identifier) )))) ;) (if_statement "if (uVar22 == 0x2007) goto LAB_002e313c;" if (parenthesized_expression "(uVar22 == 0x2007)" ( (binary_expression "uVar22 == 0x2007" identifier == number_literal) )) (goto_statement "goto LAB_002e313c;" goto statement_identifier ;)) (goto_statement "goto joined_r0x002e3124;" goto statement_identifier ;) })) (if_statement "if (uVar19 == 0x11) {\n          puVar9 = (uint *)((int)local_44 + 1);\n          uVar15 = (uint)*(byte *)local_44;\n          uVar26 = (ulonglong)uVar15;\n          local_44 = puVar9;\n          if (uVar22 == 0x31) goto LAB_002e30bc;\n          if (0x31 < uVar22) {\n            uVar26 = (ulonglong)uVar15;\n            if ((uVar22 != 0x6e) && (uVar26 = (ulonglong)uVar15, uVar22 != 0x2007)) {\n              uVar7 = (ulonglong)uVar15;\n              if (uVar22 != 0x47) goto LAB_002e313c;\n              param_1[0x18] = 0;\n              param_1[0x19] = uVar15;\n              uVar7 = (ulonglong)uVar15;\n              goto LAB_002e313c;\n            }\n            goto LAB_002e3858;\n          }\n          if (uVar22 == 1) {\n            param_1[8] = 0;\n            param_1[9] = uVar15;\n            uVar7 = (ulonglong)uVar15;\n            goto LAB_002e313c;\n          }\n          goto joined_r0x002e3124;\n        }" if (parenthesized_expression "(uVar19 == 0x11)" ( (binary_expression "uVar19 == 0x11" identifier == number_literal) )) (compound_statement "{\n          puVar9 = (uint *)((int)local_44 + 1);\n          uVar15 = (uint)*(byte *)local_44;\n          uVar26 = (ulonglong)uVar15;\n          local_44 = puVar9;\n          if (uVar22 == 0x31) goto LAB_002e30bc;\n          if (0x31 < uVar22) {\n            uVar26 = (ulonglong)uVar15;\n            if ((uVar22 != 0x6e) && (uVar26 = (ulonglong)uVar15, uVar22 != 0x2007)) {\n              uVar7 = (ulonglong)uVar15;\n              if (uVar22 != 0x47) goto LAB_002e313c;\n              param_1[0x18] = 0;\n              param_1[0x19] = uVar15;\n              uVar7 = (ulonglong)uVar15;\n              goto LAB_002e313c;\n            }\n            goto LAB_002e3858;\n          }\n          if (uVar22 == 1) {\n            param_1[8] = 0;\n            param_1[9] = uVar15;\n            uVar7 = (ulonglong)uVar15;\n            goto LAB_002e313c;\n          }\n          goto joined_r0x002e3124;\n        }" { (expression_statement "puVar9 = (uint *)((int)local_44 + 1);" (assignment_expression "puVar9 = (uint *)((int)local_44 + 1)" identifier = (cast_expression "(uint *)((int)local_44 + 1)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)local_44 + 1)" ( (binary_expression "(int)local_44 + 1" (cast_expression "(int)local_44" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) ;) (expression_statement "uVar15 = (uint)*(byte *)local_44;" (assignment_expression "uVar15 = (uint)*(byte *)local_44" identifier = (binary_expression "(uint)*(byte *)local_44" (parenthesized_expression "(uint)" ( identifier )) * (cast_expression "(byte *)local_44" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier))) ;) (expression_statement "uVar26 = (ulonglong)uVar15;" (assignment_expression "uVar26 = (ulonglong)uVar15" identifier = (cast_expression "(ulonglong)uVar15" ( (type_descriptor "ulonglong" type_identifier) ) identifier)) ;) (expression_statement "local_44 = puVar9;" (assignment_expression "local_44 = puVar9" identifier = identifier) ;) (if_statement "if (uVar22 == 0x31) goto LAB_002e30bc;" if (parenthesized_expression "(uVar22 == 0x31)" ( (binary_expression "uVar22 == 0x31" identifier == number_literal) )) (goto_statement "goto LAB_002e30bc;" goto statement_identifier ;)) (if_statement "if (0x31 < uVar22) {\n            uVar26 = (ulonglong)uVar15;\n            if ((uVar22 != 0x6e) && (uVar26 = (ulonglong)uVar15, uVar22 != 0x2007)) {\n              uVar7 = (ulonglong)uVar15;\n              if (uVar22 != 0x47) goto LAB_002e313c;\n              param_1[0x18] = 0;\n              param_1[0x19] = uVar15;\n              uVar7 = (ulonglong)uVar15;\n              goto LAB_002e313c;\n            }\n            goto LAB_002e3858;\n          }" if (parenthesized_expression "(0x31 < uVar22)" ( (binary_expression "0x31 < uVar22" number_literal < identifier) )) (compound_statement "{\n            uVar26 = (ulonglong)uVar15;\n            if ((uVar22 != 0x6e) && (uVar26 = (ulonglong)uVar15, uVar22 != 0x2007)) {\n              uVar7 = (ulonglong)uVar15;\n              if (uVar22 != 0x47) goto LAB_002e313c;\n              param_1[0x18] = 0;\n              param_1[0x19] = uVar15;\n              uVar7 = (ulonglong)uVar15;\n              goto LAB_002e313c;\n            }\n            goto LAB_002e3858;\n          }" { (expression_statement "uVar26 = (ulonglong)uVar15;" (assignment_expression "uVar26 = (ulonglong)uVar15" identifier = (cast_expression "(ulonglong)uVar15" ( (type_descriptor "ulonglong" type_identifier) ) identifier)) ;) (if_statement "if ((uVar22 != 0x6e) && (uVar26 = (ulonglong)uVar15, uVar22 != 0x2007)) {\n              uVar7 = (ulonglong)uVar15;\n              if (uVar22 != 0x47) goto LAB_002e313c;\n              param_1[0x18] = 0;\n              param_1[0x19] = uVar15;\n              uVar7 = (ulonglong)uVar15;\n              goto LAB_002e313c;\n            }" if (parenthesized_expression "((uVar22 != 0x6e) && (uVar26 = (ulonglong)uVar15, uVar22 != 0x2007))" ( (binary_expression "(uVar22 != 0x6e) && (uVar26 = (ulonglong)uVar15, uVar22 != 0x2007)" (parenthesized_expression "(uVar22 != 0x6e)" ( (binary_expression "uVar22 != 0x6e" identifier != number_literal) )) && (parenthesized_expression "(uVar26 = (ulonglong)uVar15, uVar22 != 0x2007)" ( (comma_expression "uVar26 = (ulonglong)uVar15, uVar22 != 0x2007" (assignment_expression "uVar26 = (ulonglong)uVar15" identifier = (cast_expression "(ulonglong)uVar15" ( (type_descriptor "ulonglong" type_identifier) ) identifier)) , (binary_expression "uVar22 != 0x2007" identifier != number_literal)) ))) )) (compound_statement "{\n              uVar7 = (ulonglong)uVar15;\n              if (uVar22 != 0x47) goto LAB_002e313c;\n              param_1[0x18] = 0;\n              param_1[0x19] = uVar15;\n              uVar7 = (ulonglong)uVar15;\n              goto LAB_002e313c;\n            }" { (expression_statement "uVar7 = (ulonglong)uVar15;" (assignment_expression "uVar7 = (ulonglong)uVar15" identifier = (cast_expression "(ulonglong)uVar15" ( (type_descriptor "ulonglong" type_identifier) ) identifier)) ;) (if_statement "if (uVar22 != 0x47) goto LAB_002e313c;" if (parenthesized_expression "(uVar22 != 0x47)" ( (binary_expression "uVar22 != 0x47" identifier != number_literal) )) (goto_statement "goto LAB_002e313c;" goto statement_identifier ;)) (expression_statement "param_1[0x18] = 0;" (assignment_expression "param_1[0x18] = 0" (subscript_expression "param_1[0x18]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "param_1[0x19] = uVar15;" (assignment_expression "param_1[0x19] = uVar15" (subscript_expression "param_1[0x19]" identifier [ number_literal ]) = identifier) ;) (expression_statement "uVar7 = (ulonglong)uVar15;" (assignment_expression "uVar7 = (ulonglong)uVar15" identifier = (cast_expression "(ulonglong)uVar15" ( (type_descriptor "ulonglong" type_identifier) ) identifier)) ;) (goto_statement "goto LAB_002e313c;" goto statement_identifier ;) })) (goto_statement "goto LAB_002e3858;" goto statement_identifier ;) })) (if_statement "if (uVar22 == 1) {\n            param_1[8] = 0;\n            param_1[9] = uVar15;\n            uVar7 = (ulonglong)uVar15;\n            goto LAB_002e313c;\n          }" if (parenthesized_expression "(uVar22 == 1)" ( (binary_expression "uVar22 == 1" identifier == number_literal) )) (compound_statement "{\n            param_1[8] = 0;\n            param_1[9] = uVar15;\n            uVar7 = (ulonglong)uVar15;\n            goto LAB_002e313c;\n          }" { (expression_statement "param_1[8] = 0;" (assignment_expression "param_1[8] = 0" (subscript_expression "param_1[8]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "param_1[9] = uVar15;" (assignment_expression "param_1[9] = uVar15" (subscript_expression "param_1[9]" identifier [ number_literal ]) = identifier) ;) (expression_statement "uVar7 = (ulonglong)uVar15;" (assignment_expression "uVar7 = (ulonglong)uVar15" identifier = (cast_expression "(ulonglong)uVar15" ( (type_descriptor "ulonglong" type_identifier) ) identifier)) ;) (goto_statement "goto LAB_002e313c;" goto statement_identifier ;) })) (goto_statement "goto joined_r0x002e3124;" goto statement_identifier ;) })) (if_statement "if (uVar19 < 0x12) {\n          if (uVar19 == 0xf) goto LAB_002e34d8;\n          if (uVar19 != 0x10) {\n            return 0;\n          }\n          iVar10 = *param_1;\n          iVar8 = *(int *)(iVar10 + 0x48);\n          if (*(uint *)(iVar10 + 0x50) < 3) {\n            iVar8 = *(int *)(iVar10 + 0x4c);\n          }\n          if (iVar8 == 4) {\n            pcVar25 = *(code **)(**(int **)(iVar10 + 8) + 0xc);\n            if (pcVar25 == (code *)PTR_is_big_endian_004c2950) {\n              local_30 = puVar18;\n              iVar8 = (**(code **)(**(int **)(iVar10 + 8) + 0xe8))();\n            }\n            else {\n              local_30 = puVar18;\n              iVar8 = (*pcVar25)();\n            }\n            uVar15 = *local_44;\n            if (iVar8 == 0) {\n              uVar15 = (((uVar15 >> 0x10) << 0x18 | (uVar15 >> 0x18) << 0x10) >> 0x10) +\n                       ((uVar15 & 0xff) << 8 | uVar15 >> 8 & 0xff) * 0x10000;\n            }\n            local_44 = local_44 + 1;\n            uVar26 = (ulonglong)uVar15;\n          }\n          else {\n            local_30 = puVar18;\n            uVar26 = (*local_34)(iVar10,&local_44);\n          }\n          local_50 = uVar26;\n          local_58 = (*local_3c)(*param_1);\n          uVar26 = local_50;\n        }\n        else {\n          if (uVar19 == 0x13) {\n            pcVar25 = *(code **)(**(int **)(*param_1 + 8) + 0xc);\n            if (pcVar25 == (code *)PTR_is_big_endian_004c2950) {\n              local_30 = puVar18;\n              iVar8 = (**(code **)(**(int **)(*param_1 + 8) + 0xe8))();\n            }\n            else {\n              local_30 = puVar18;\n              iVar8 = (*pcVar25)();\n            }\n            uVar15 = *local_44;\n            if (iVar8 == 0) {\n              uVar15 = (((uVar15 >> 0x10) << 0x18 | (uVar15 >> 0x18) << 0x10) >> 0x10) +\n                       ((uVar15 & 0xff) << 8 | uVar15 >> 8 & 0xff) * 0x10000;\n            }\n            local_44 = local_44 + 1;\n            iVar8 = *param_1;\n            uVar26 = (ulonglong)uVar15;\n          }\n          else {\n            if (uVar19 < 0x14) {\n              pcVar25 = *(code **)(**(int **)(*param_1 + 8) + 0xc);\n              if (pcVar25 == (code *)PTR_is_big_endian_004c2950) {\n                iVar8 = (**(code **)(**(int **)(*param_1 + 8) + 0xe8))();\n              }\n              else {\n                iVar8 = (*pcVar25)();\n              }\n              uVar6 = *(ushort *)local_44;\n              if (iVar8 == 0) {\n                uVar6 = CONCAT11(*(byte *)((int)local_44 + 1),*(byte *)local_44);\n              }\n              local_44 = (uint *)((int)local_44 + 2);\n              uVar26 = (ulonglong)uVar6;\n              goto joined_r0x002e3998;\n            }\n            pcVar25 = *(code **)(**(int **)(*param_1 + 8) + 0xc);\n            if (pcVar25 == (code *)PTR_is_big_endian_004c2950) {\n              local_30 = puVar18;\n              iVar8 = (**(code **)(**(int **)(*param_1 + 8) + 0xe8))();\n            }\n            else {\n              local_30 = puVar18;\n              iVar8 = (*pcVar25)();\n            }\n            uVar15 = local_44[1];\n            uVar16 = *local_44;\n            if (iVar8 == 0) {\n              uVar2 = uVar15 & 0xff;\n              uVar4 = uVar15 >> 8;\n              uVar3 = uVar15 >> 0x10;\n              uVar5 = uVar15 >> 0x18;\n              uVar15 = (((uVar16 >> 0x10) << 0x18 | (uVar16 >> 0x18) << 0x10) >> 0x10) +\n                       ((uVar16 & 0xff) << 8 | uVar16 >> 8 & 0xff) * 0x10000;\n              uVar16 = ((uVar3 << 0x18 | uVar5 << 0x10) >> 0x10) +\n                       (uVar2 << 8 | uVar4 & 0xff) * 0x10000;\n            }\n            uVar26 = CONCAT44(uVar16,uVar15);\n            local_44 = local_44 + 2;\n            iVar8 = *param_1;\n          }\nLAB_002e3970:\n          local_50 = uVar26;\n          local_58 = (*local_3c)(iVar8);\n          uVar26 = local_50;\n        }" if (parenthesized_expression "(uVar19 < 0x12)" ( (binary_expression "uVar19 < 0x12" identifier < number_literal) )) (compound_statement "{\n          if (uVar19 == 0xf) goto LAB_002e34d8;\n          if (uVar19 != 0x10) {\n            return 0;\n          }\n          iVar10 = *param_1;\n          iVar8 = *(int *)(iVar10 + 0x48);\n          if (*(uint *)(iVar10 + 0x50) < 3) {\n            iVar8 = *(int *)(iVar10 + 0x4c);\n          }\n          if (iVar8 == 4) {\n            pcVar25 = *(code **)(**(int **)(iVar10 + 8) + 0xc);\n            if (pcVar25 == (code *)PTR_is_big_endian_004c2950) {\n              local_30 = puVar18;\n              iVar8 = (**(code **)(**(int **)(iVar10 + 8) + 0xe8))();\n            }\n            else {\n              local_30 = puVar18;\n              iVar8 = (*pcVar25)();\n            }\n            uVar15 = *local_44;\n            if (iVar8 == 0) {\n              uVar15 = (((uVar15 >> 0x10) << 0x18 | (uVar15 >> 0x18) << 0x10) >> 0x10) +\n                       ((uVar15 & 0xff) << 8 | uVar15 >> 8 & 0xff) * 0x10000;\n            }\n            local_44 = local_44 + 1;\n            uVar26 = (ulonglong)uVar15;\n          }\n          else {\n            local_30 = puVar18;\n            uVar26 = (*local_34)(iVar10,&local_44);\n          }\n          local_50 = uVar26;\n          local_58 = (*local_3c)(*param_1);\n          uVar26 = local_50;\n        }" { (if_statement "if (uVar19 == 0xf) goto LAB_002e34d8;" if (parenthesized_expression "(uVar19 == 0xf)" ( (binary_expression "uVar19 == 0xf" identifier == number_literal) )) (goto_statement "goto LAB_002e34d8;" goto statement_identifier ;)) (if_statement "if (uVar19 != 0x10) {\n            return 0;\n          }" if (parenthesized_expression "(uVar19 != 0x10)" ( (binary_expression "uVar19 != 0x10" identifier != number_literal) )) (compound_statement "{\n            return 0;\n          }" { (return_statement "return 0;" return number_literal ;) })) (expression_statement "iVar10 = *param_1;" (assignment_expression "iVar10 = *param_1" identifier = (pointer_expression "*param_1" * identifier)) ;) (expression_statement "iVar8 = *(int *)(iVar10 + 0x48);" (assignment_expression "iVar8 = *(int *)(iVar10 + 0x48)" identifier = (pointer_expression "*(int *)(iVar10 + 0x48)" * (cast_expression "(int *)(iVar10 + 0x48)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar10 + 0x48)" ( (binary_expression "iVar10 + 0x48" identifier + number_literal) ))))) ;) (if_statement "if (*(uint *)(iVar10 + 0x50) < 3) {\n            iVar8 = *(int *)(iVar10 + 0x4c);\n          }" if (parenthesized_expression "(*(uint *)(iVar10 + 0x50) < 3)" ( (binary_expression "*(uint *)(iVar10 + 0x50) < 3" (pointer_expression "*(uint *)(iVar10 + 0x50)" * (cast_expression "(uint *)(iVar10 + 0x50)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar10 + 0x50)" ( (binary_expression "iVar10 + 0x50" identifier + number_literal) )))) < number_literal) )) (compound_statement "{\n            iVar8 = *(int *)(iVar10 + 0x4c);\n          }" { (expression_statement "iVar8 = *(int *)(iVar10 + 0x4c);" (assignment_expression "iVar8 = *(int *)(iVar10 + 0x4c)" identifier = (pointer_expression "*(int *)(iVar10 + 0x4c)" * (cast_expression "(int *)(iVar10 + 0x4c)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar10 + 0x4c)" ( (binary_expression "iVar10 + 0x4c" identifier + number_literal) ))))) ;) })) (if_statement "if (iVar8 == 4) {\n            pcVar25 = *(code **)(**(int **)(iVar10 + 8) + 0xc);\n            if (pcVar25 == (code *)PTR_is_big_endian_004c2950) {\n              local_30 = puVar18;\n              iVar8 = (**(code **)(**(int **)(iVar10 + 8) + 0xe8))();\n            }\n            else {\n              local_30 = puVar18;\n              iVar8 = (*pcVar25)();\n            }\n            uVar15 = *local_44;\n            if (iVar8 == 0) {\n              uVar15 = (((uVar15 >> 0x10) << 0x18 | (uVar15 >> 0x18) << 0x10) >> 0x10) +\n                       ((uVar15 & 0xff) << 8 | uVar15 >> 8 & 0xff) * 0x10000;\n            }\n            local_44 = local_44 + 1;\n            uVar26 = (ulonglong)uVar15;\n          }\n          else {\n            local_30 = puVar18;\n            uVar26 = (*local_34)(iVar10,&local_44);\n          }" if (parenthesized_expression "(iVar8 == 4)" ( (binary_expression "iVar8 == 4" identifier == number_literal) )) (compound_statement "{\n            pcVar25 = *(code **)(**(int **)(iVar10 + 8) + 0xc);\n            if (pcVar25 == (code *)PTR_is_big_endian_004c2950) {\n              local_30 = puVar18;\n              iVar8 = (**(code **)(**(int **)(iVar10 + 8) + 0xe8))();\n            }\n            else {\n              local_30 = puVar18;\n              iVar8 = (*pcVar25)();\n            }\n            uVar15 = *local_44;\n            if (iVar8 == 0) {\n              uVar15 = (((uVar15 >> 0x10) << 0x18 | (uVar15 >> 0x18) << 0x10) >> 0x10) +\n                       ((uVar15 & 0xff) << 8 | uVar15 >> 8 & 0xff) * 0x10000;\n            }\n            local_44 = local_44 + 1;\n            uVar26 = (ulonglong)uVar15;\n          }" { (expression_statement "pcVar25 = *(code **)(**(int **)(iVar10 + 8) + 0xc);" (assignment_expression "pcVar25 = *(code **)(**(int **)(iVar10 + 8) + 0xc)" identifier = (pointer_expression "*(code **)(**(int **)(iVar10 + 8) + 0xc)" * (cast_expression "(code **)(**(int **)(iVar10 + 8) + 0xc)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(**(int **)(iVar10 + 8) + 0xc)" ( (binary_expression "**(int **)(iVar10 + 8) + 0xc" (pointer_expression "**(int **)(iVar10 + 8)" * (pointer_expression "*(int **)(iVar10 + 8)" * (cast_expression "(int **)(iVar10 + 8)" ( (type_descriptor "int **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(iVar10 + 8)" ( (binary_expression "iVar10 + 8" identifier + number_literal) ))))) + number_literal) ))))) ;) (if_statement "if (pcVar25 == (code *)PTR_is_big_endian_004c2950) {\n              local_30 = puVar18;\n              iVar8 = (**(code **)(**(int **)(iVar10 + 8) + 0xe8))();\n            }\n            else {\n              local_30 = puVar18;\n              iVar8 = (*pcVar25)();\n            }" if (parenthesized_expression "(pcVar25 == (code *)PTR_is_big_endian_004c2950)" ( (binary_expression "pcVar25 == (code *)PTR_is_big_endian_004c2950" identifier == (cast_expression "(code *)PTR_is_big_endian_004c2950" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (compound_statement "{\n              local_30 = puVar18;\n              iVar8 = (**(code **)(**(int **)(iVar10 + 8) + 0xe8))();\n            }" { (expression_statement "local_30 = puVar18;" (assignment_expression "local_30 = puVar18" identifier = identifier) ;) (expression_statement "iVar8 = (**(code **)(**(int **)(iVar10 + 8) + 0xe8))();" (assignment_expression "iVar8 = (**(code **)(**(int **)(iVar10 + 8) + 0xe8))()" identifier = (call_expression "(**(code **)(**(int **)(iVar10 + 8) + 0xe8))()" (parenthesized_expression "(**(code **)(**(int **)(iVar10 + 8) + 0xe8))" ( (pointer_expression "**(code **)(**(int **)(iVar10 + 8) + 0xe8)" * (pointer_expression "*(code **)(**(int **)(iVar10 + 8) + 0xe8)" * (cast_expression "(code **)(**(int **)(iVar10 + 8) + 0xe8)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(**(int **)(iVar10 + 8) + 0xe8)" ( (binary_expression "**(int **)(iVar10 + 8) + 0xe8" (pointer_expression "**(int **)(iVar10 + 8)" * (pointer_expression "*(int **)(iVar10 + 8)" * (cast_expression "(int **)(iVar10 + 8)" ( (type_descriptor "int **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(iVar10 + 8)" ( (binary_expression "iVar10 + 8" identifier + number_literal) ))))) + number_literal) ))))) )) (argument_list "()" ( )))) ;) }) (else_clause "else {\n              local_30 = puVar18;\n              iVar8 = (*pcVar25)();\n            }" else (compound_statement "{\n              local_30 = puVar18;\n              iVar8 = (*pcVar25)();\n            }" { (expression_statement "local_30 = puVar18;" (assignment_expression "local_30 = puVar18" identifier = identifier) ;) (expression_statement "iVar8 = (*pcVar25)();" (assignment_expression "iVar8 = (*pcVar25)()" identifier = (call_expression "(*pcVar25)()" (parenthesized_expression "(*pcVar25)" ( (pointer_expression "*pcVar25" * identifier) )) (argument_list "()" ( )))) ;) }))) (expression_statement "uVar15 = *local_44;" (assignment_expression "uVar15 = *local_44" identifier = (pointer_expression "*local_44" * identifier)) ;) (if_statement "if (iVar8 == 0) {\n              uVar15 = (((uVar15 >> 0x10) << 0x18 | (uVar15 >> 0x18) << 0x10) >> 0x10) +\n                       ((uVar15 & 0xff) << 8 | uVar15 >> 8 & 0xff) * 0x10000;\n            }" if (parenthesized_expression "(iVar8 == 0)" ( (binary_expression "iVar8 == 0" identifier == number_literal) )) (compound_statement "{\n              uVar15 = (((uVar15 >> 0x10) << 0x18 | (uVar15 >> 0x18) << 0x10) >> 0x10) +\n                       ((uVar15 & 0xff) << 8 | uVar15 >> 8 & 0xff) * 0x10000;\n            }" { (expression_statement "uVar15 = (((uVar15 >> 0x10) << 0x18 | (uVar15 >> 0x18) << 0x10) >> 0x10) +\n                       ((uVar15 & 0xff) << 8 | uVar15 >> 8 & 0xff) * 0x10000;" (assignment_expression "uVar15 = (((uVar15 >> 0x10) << 0x18 | (uVar15 >> 0x18) << 0x10) >> 0x10) +\n                       ((uVar15 & 0xff) << 8 | uVar15 >> 8 & 0xff) * 0x10000" identifier = (binary_expression "(((uVar15 >> 0x10) << 0x18 | (uVar15 >> 0x18) << 0x10) >> 0x10) +\n                       ((uVar15 & 0xff) << 8 | uVar15 >> 8 & 0xff) * 0x10000" (parenthesized_expression "(((uVar15 >> 0x10) << 0x18 | (uVar15 >> 0x18) << 0x10) >> 0x10)" ( (binary_expression "((uVar15 >> 0x10) << 0x18 | (uVar15 >> 0x18) << 0x10) >> 0x10" (parenthesized_expression "((uVar15 >> 0x10) << 0x18 | (uVar15 >> 0x18) << 0x10)" ( (binary_expression "(uVar15 >> 0x10) << 0x18 | (uVar15 >> 0x18) << 0x10" (binary_expression "(uVar15 >> 0x10) << 0x18" (parenthesized_expression "(uVar15 >> 0x10)" ( (binary_expression "uVar15 >> 0x10" identifier >> number_literal) )) << number_literal) | (binary_expression "(uVar15 >> 0x18) << 0x10" (parenthesized_expression "(uVar15 >> 0x18)" ( (binary_expression "uVar15 >> 0x18" identifier >> number_literal) )) << number_literal)) )) >> number_literal) )) + (binary_expression "((uVar15 & 0xff) << 8 | uVar15 >> 8 & 0xff) * 0x10000" (parenthesized_expression "((uVar15 & 0xff) << 8 | uVar15 >> 8 & 0xff)" ( (binary_expression "(uVar15 & 0xff) << 8 | uVar15 >> 8 & 0xff" (binary_expression "(uVar15 & 0xff) << 8" (parenthesized_expression "(uVar15 & 0xff)" ( (binary_expression "uVar15 & 0xff" identifier & number_literal) )) << number_literal) | (binary_expression "uVar15 >> 8 & 0xff" (binary_expression "uVar15 >> 8" identifier >> number_literal) & number_literal)) )) * number_literal))) ;) })) (expression_statement "local_44 = local_44 + 1;" (assignment_expression "local_44 = local_44 + 1" identifier = (binary_expression "local_44 + 1" identifier + number_literal)) ;) (expression_statement "uVar26 = (ulonglong)uVar15;" (assignment_expression "uVar26 = (ulonglong)uVar15" identifier = (cast_expression "(ulonglong)uVar15" ( (type_descriptor "ulonglong" type_identifier) ) identifier)) ;) }) (else_clause "else {\n            local_30 = puVar18;\n            uVar26 = (*local_34)(iVar10,&local_44);\n          }" else (compound_statement "{\n            local_30 = puVar18;\n            uVar26 = (*local_34)(iVar10,&local_44);\n          }" { (expression_statement "local_30 = puVar18;" (assignment_expression "local_30 = puVar18" identifier = identifier) ;) (expression_statement "uVar26 = (*local_34)(iVar10,&local_44);" (assignment_expression "uVar26 = (*local_34)(iVar10,&local_44)" identifier = (call_expression "(*local_34)(iVar10,&local_44)" (parenthesized_expression "(*local_34)" ( (pointer_expression "*local_34" * identifier) )) (argument_list "(iVar10,&local_44)" ( identifier , (pointer_expression "&local_44" & identifier) )))) ;) }))) (expression_statement "local_50 = uVar26;" (assignment_expression "local_50 = uVar26" identifier = identifier) ;) (expression_statement "local_58 = (*local_3c)(*param_1);" (assignment_expression "local_58 = (*local_3c)(*param_1)" identifier = (call_expression "(*local_3c)(*param_1)" (parenthesized_expression "(*local_3c)" ( (pointer_expression "*local_3c" * identifier) )) (argument_list "(*param_1)" ( (pointer_expression "*param_1" * identifier) )))) ;) (expression_statement "uVar26 = local_50;" (assignment_expression "uVar26 = local_50" identifier = identifier) ;) }) (else_clause "else {\n          if (uVar19 == 0x13) {\n            pcVar25 = *(code **)(**(int **)(*param_1 + 8) + 0xc);\n            if (pcVar25 == (code *)PTR_is_big_endian_004c2950) {\n              local_30 = puVar18;\n              iVar8 = (**(code **)(**(int **)(*param_1 + 8) + 0xe8))();\n            }\n            else {\n              local_30 = puVar18;\n              iVar8 = (*pcVar25)();\n            }\n            uVar15 = *local_44;\n            if (iVar8 == 0) {\n              uVar15 = (((uVar15 >> 0x10) << 0x18 | (uVar15 >> 0x18) << 0x10) >> 0x10) +\n                       ((uVar15 & 0xff) << 8 | uVar15 >> 8 & 0xff) * 0x10000;\n            }\n            local_44 = local_44 + 1;\n            iVar8 = *param_1;\n            uVar26 = (ulonglong)uVar15;\n          }\n          else {\n            if (uVar19 < 0x14) {\n              pcVar25 = *(code **)(**(int **)(*param_1 + 8) + 0xc);\n              if (pcVar25 == (code *)PTR_is_big_endian_004c2950) {\n                iVar8 = (**(code **)(**(int **)(*param_1 + 8) + 0xe8))();\n              }\n              else {\n                iVar8 = (*pcVar25)();\n              }\n              uVar6 = *(ushort *)local_44;\n              if (iVar8 == 0) {\n                uVar6 = CONCAT11(*(byte *)((int)local_44 + 1),*(byte *)local_44);\n              }\n              local_44 = (uint *)((int)local_44 + 2);\n              uVar26 = (ulonglong)uVar6;\n              goto joined_r0x002e3998;\n            }\n            pcVar25 = *(code **)(**(int **)(*param_1 + 8) + 0xc);\n            if (pcVar25 == (code *)PTR_is_big_endian_004c2950) {\n              local_30 = puVar18;\n              iVar8 = (**(code **)(**(int **)(*param_1 + 8) + 0xe8))();\n            }\n            else {\n              local_30 = puVar18;\n              iVar8 = (*pcVar25)();\n            }\n            uVar15 = local_44[1];\n            uVar16 = *local_44;\n            if (iVar8 == 0) {\n              uVar2 = uVar15 & 0xff;\n              uVar4 = uVar15 >> 8;\n              uVar3 = uVar15 >> 0x10;\n              uVar5 = uVar15 >> 0x18;\n              uVar15 = (((uVar16 >> 0x10) << 0x18 | (uVar16 >> 0x18) << 0x10) >> 0x10) +\n                       ((uVar16 & 0xff) << 8 | uVar16 >> 8 & 0xff) * 0x10000;\n              uVar16 = ((uVar3 << 0x18 | uVar5 << 0x10) >> 0x10) +\n                       (uVar2 << 8 | uVar4 & 0xff) * 0x10000;\n            }\n            uVar26 = CONCAT44(uVar16,uVar15);\n            local_44 = local_44 + 2;\n            iVar8 = *param_1;\n          }\nLAB_002e3970:\n          local_50 = uVar26;\n          local_58 = (*local_3c)(iVar8);\n          uVar26 = local_50;\n        }" else (compound_statement "{\n          if (uVar19 == 0x13) {\n            pcVar25 = *(code **)(**(int **)(*param_1 + 8) + 0xc);\n            if (pcVar25 == (code *)PTR_is_big_endian_004c2950) {\n              local_30 = puVar18;\n              iVar8 = (**(code **)(**(int **)(*param_1 + 8) + 0xe8))();\n            }\n            else {\n              local_30 = puVar18;\n              iVar8 = (*pcVar25)();\n            }\n            uVar15 = *local_44;\n            if (iVar8 == 0) {\n              uVar15 = (((uVar15 >> 0x10) << 0x18 | (uVar15 >> 0x18) << 0x10) >> 0x10) +\n                       ((uVar15 & 0xff) << 8 | uVar15 >> 8 & 0xff) * 0x10000;\n            }\n            local_44 = local_44 + 1;\n            iVar8 = *param_1;\n            uVar26 = (ulonglong)uVar15;\n          }\n          else {\n            if (uVar19 < 0x14) {\n              pcVar25 = *(code **)(**(int **)(*param_1 + 8) + 0xc);\n              if (pcVar25 == (code *)PTR_is_big_endian_004c2950) {\n                iVar8 = (**(code **)(**(int **)(*param_1 + 8) + 0xe8))();\n              }\n              else {\n                iVar8 = (*pcVar25)();\n              }\n              uVar6 = *(ushort *)local_44;\n              if (iVar8 == 0) {\n                uVar6 = CONCAT11(*(byte *)((int)local_44 + 1),*(byte *)local_44);\n              }\n              local_44 = (uint *)((int)local_44 + 2);\n              uVar26 = (ulonglong)uVar6;\n              goto joined_r0x002e3998;\n            }\n            pcVar25 = *(code **)(**(int **)(*param_1 + 8) + 0xc);\n            if (pcVar25 == (code *)PTR_is_big_endian_004c2950) {\n              local_30 = puVar18;\n              iVar8 = (**(code **)(**(int **)(*param_1 + 8) + 0xe8))();\n            }\n            else {\n              local_30 = puVar18;\n              iVar8 = (*pcVar25)();\n            }\n            uVar15 = local_44[1];\n            uVar16 = *local_44;\n            if (iVar8 == 0) {\n              uVar2 = uVar15 & 0xff;\n              uVar4 = uVar15 >> 8;\n              uVar3 = uVar15 >> 0x10;\n              uVar5 = uVar15 >> 0x18;\n              uVar15 = (((uVar16 >> 0x10) << 0x18 | (uVar16 >> 0x18) << 0x10) >> 0x10) +\n                       ((uVar16 & 0xff) << 8 | uVar16 >> 8 & 0xff) * 0x10000;\n              uVar16 = ((uVar3 << 0x18 | uVar5 << 0x10) >> 0x10) +\n                       (uVar2 << 8 | uVar4 & 0xff) * 0x10000;\n            }\n            uVar26 = CONCAT44(uVar16,uVar15);\n            local_44 = local_44 + 2;\n            iVar8 = *param_1;\n          }\nLAB_002e3970:\n          local_50 = uVar26;\n          local_58 = (*local_3c)(iVar8);\n          uVar26 = local_50;\n        }" { (if_statement "if (uVar19 == 0x13) {\n            pcVar25 = *(code **)(**(int **)(*param_1 + 8) + 0xc);\n            if (pcVar25 == (code *)PTR_is_big_endian_004c2950) {\n              local_30 = puVar18;\n              iVar8 = (**(code **)(**(int **)(*param_1 + 8) + 0xe8))();\n            }\n            else {\n              local_30 = puVar18;\n              iVar8 = (*pcVar25)();\n            }\n            uVar15 = *local_44;\n            if (iVar8 == 0) {\n              uVar15 = (((uVar15 >> 0x10) << 0x18 | (uVar15 >> 0x18) << 0x10) >> 0x10) +\n                       ((uVar15 & 0xff) << 8 | uVar15 >> 8 & 0xff) * 0x10000;\n            }\n            local_44 = local_44 + 1;\n            iVar8 = *param_1;\n            uVar26 = (ulonglong)uVar15;\n          }\n          else {\n            if (uVar19 < 0x14) {\n              pcVar25 = *(code **)(**(int **)(*param_1 + 8) + 0xc);\n              if (pcVar25 == (code *)PTR_is_big_endian_004c2950) {\n                iVar8 = (**(code **)(**(int **)(*param_1 + 8) + 0xe8))();\n              }\n              else {\n                iVar8 = (*pcVar25)();\n              }\n              uVar6 = *(ushort *)local_44;\n              if (iVar8 == 0) {\n                uVar6 = CONCAT11(*(byte *)((int)local_44 + 1),*(byte *)local_44);\n              }\n              local_44 = (uint *)((int)local_44 + 2);\n              uVar26 = (ulonglong)uVar6;\n              goto joined_r0x002e3998;\n            }\n            pcVar25 = *(code **)(**(int **)(*param_1 + 8) + 0xc);\n            if (pcVar25 == (code *)PTR_is_big_endian_004c2950) {\n              local_30 = puVar18;\n              iVar8 = (**(code **)(**(int **)(*param_1 + 8) + 0xe8))();\n            }\n            else {\n              local_30 = puVar18;\n              iVar8 = (*pcVar25)();\n            }\n            uVar15 = local_44[1];\n            uVar16 = *local_44;\n            if (iVar8 == 0) {\n              uVar2 = uVar15 & 0xff;\n              uVar4 = uVar15 >> 8;\n              uVar3 = uVar15 >> 0x10;\n              uVar5 = uVar15 >> 0x18;\n              uVar15 = (((uVar16 >> 0x10) << 0x18 | (uVar16 >> 0x18) << 0x10) >> 0x10) +\n                       ((uVar16 & 0xff) << 8 | uVar16 >> 8 & 0xff) * 0x10000;\n              uVar16 = ((uVar3 << 0x18 | uVar5 << 0x10) >> 0x10) +\n                       (uVar2 << 8 | uVar4 & 0xff) * 0x10000;\n            }\n            uVar26 = CONCAT44(uVar16,uVar15);\n            local_44 = local_44 + 2;\n            iVar8 = *param_1;\n          }" if (parenthesized_expression "(uVar19 == 0x13)" ( (binary_expression "uVar19 == 0x13" identifier == number_literal) )) (compound_statement "{\n            pcVar25 = *(code **)(**(int **)(*param_1 + 8) + 0xc);\n            if (pcVar25 == (code *)PTR_is_big_endian_004c2950) {\n              local_30 = puVar18;\n              iVar8 = (**(code **)(**(int **)(*param_1 + 8) + 0xe8))();\n            }\n            else {\n              local_30 = puVar18;\n              iVar8 = (*pcVar25)();\n            }\n            uVar15 = *local_44;\n            if (iVar8 == 0) {\n              uVar15 = (((uVar15 >> 0x10) << 0x18 | (uVar15 >> 0x18) << 0x10) >> 0x10) +\n                       ((uVar15 & 0xff) << 8 | uVar15 >> 8 & 0xff) * 0x10000;\n            }\n            local_44 = local_44 + 1;\n            iVar8 = *param_1;\n            uVar26 = (ulonglong)uVar15;\n          }" { (expression_statement "pcVar25 = *(code **)(**(int **)(*param_1 + 8) + 0xc);" (assignment_expression "pcVar25 = *(code **)(**(int **)(*param_1 + 8) + 0xc)" identifier = (pointer_expression "*(code **)(**(int **)(*param_1 + 8) + 0xc)" * (cast_expression "(code **)(**(int **)(*param_1 + 8) + 0xc)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(**(int **)(*param_1 + 8) + 0xc)" ( (binary_expression "**(int **)(*param_1 + 8) + 0xc" (pointer_expression "**(int **)(*param_1 + 8)" * (pointer_expression "*(int **)(*param_1 + 8)" * (cast_expression "(int **)(*param_1 + 8)" ( (type_descriptor "int **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(*param_1 + 8)" ( (binary_expression "*param_1 + 8" (pointer_expression "*param_1" * identifier) + number_literal) ))))) + number_literal) ))))) ;) (if_statement "if (pcVar25 == (code *)PTR_is_big_endian_004c2950) {\n              local_30 = puVar18;\n              iVar8 = (**(code **)(**(int **)(*param_1 + 8) + 0xe8))();\n            }\n            else {\n              local_30 = puVar18;\n              iVar8 = (*pcVar25)();\n            }" if (parenthesized_expression "(pcVar25 == (code *)PTR_is_big_endian_004c2950)" ( (binary_expression "pcVar25 == (code *)PTR_is_big_endian_004c2950" identifier == (cast_expression "(code *)PTR_is_big_endian_004c2950" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (compound_statement "{\n              local_30 = puVar18;\n              iVar8 = (**(code **)(**(int **)(*param_1 + 8) + 0xe8))();\n            }" { (expression_statement "local_30 = puVar18;" (assignment_expression "local_30 = puVar18" identifier = identifier) ;) (expression_statement "iVar8 = (**(code **)(**(int **)(*param_1 + 8) + 0xe8))();" (assignment_expression "iVar8 = (**(code **)(**(int **)(*param_1 + 8) + 0xe8))()" identifier = (call_expression "(**(code **)(**(int **)(*param_1 + 8) + 0xe8))()" (parenthesized_expression "(**(code **)(**(int **)(*param_1 + 8) + 0xe8))" ( (pointer_expression "**(code **)(**(int **)(*param_1 + 8) + 0xe8)" * (pointer_expression "*(code **)(**(int **)(*param_1 + 8) + 0xe8)" * (cast_expression "(code **)(**(int **)(*param_1 + 8) + 0xe8)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(**(int **)(*param_1 + 8) + 0xe8)" ( (binary_expression "**(int **)(*param_1 + 8) + 0xe8" (pointer_expression "**(int **)(*param_1 + 8)" * (pointer_expression "*(int **)(*param_1 + 8)" * (cast_expression "(int **)(*param_1 + 8)" ( (type_descriptor "int **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(*param_1 + 8)" ( (binary_expression "*param_1 + 8" (pointer_expression "*param_1" * identifier) + number_literal) ))))) + number_literal) ))))) )) (argument_list "()" ( )))) ;) }) (else_clause "else {\n              local_30 = puVar18;\n              iVar8 = (*pcVar25)();\n            }" else (compound_statement "{\n              local_30 = puVar18;\n              iVar8 = (*pcVar25)();\n            }" { (expression_statement "local_30 = puVar18;" (assignment_expression "local_30 = puVar18" identifier = identifier) ;) (expression_statement "iVar8 = (*pcVar25)();" (assignment_expression "iVar8 = (*pcVar25)()" identifier = (call_expression "(*pcVar25)()" (parenthesized_expression "(*pcVar25)" ( (pointer_expression "*pcVar25" * identifier) )) (argument_list "()" ( )))) ;) }))) (expression_statement "uVar15 = *local_44;" (assignment_expression "uVar15 = *local_44" identifier = (pointer_expression "*local_44" * identifier)) ;) (if_statement "if (iVar8 == 0) {\n              uVar15 = (((uVar15 >> 0x10) << 0x18 | (uVar15 >> 0x18) << 0x10) >> 0x10) +\n                       ((uVar15 & 0xff) << 8 | uVar15 >> 8 & 0xff) * 0x10000;\n            }" if (parenthesized_expression "(iVar8 == 0)" ( (binary_expression "iVar8 == 0" identifier == number_literal) )) (compound_statement "{\n              uVar15 = (((uVar15 >> 0x10) << 0x18 | (uVar15 >> 0x18) << 0x10) >> 0x10) +\n                       ((uVar15 & 0xff) << 8 | uVar15 >> 8 & 0xff) * 0x10000;\n            }" { (expression_statement "uVar15 = (((uVar15 >> 0x10) << 0x18 | (uVar15 >> 0x18) << 0x10) >> 0x10) +\n                       ((uVar15 & 0xff) << 8 | uVar15 >> 8 & 0xff) * 0x10000;" (assignment_expression "uVar15 = (((uVar15 >> 0x10) << 0x18 | (uVar15 >> 0x18) << 0x10) >> 0x10) +\n                       ((uVar15 & 0xff) << 8 | uVar15 >> 8 & 0xff) * 0x10000" identifier = (binary_expression "(((uVar15 >> 0x10) << 0x18 | (uVar15 >> 0x18) << 0x10) >> 0x10) +\n                       ((uVar15 & 0xff) << 8 | uVar15 >> 8 & 0xff) * 0x10000" (parenthesized_expression "(((uVar15 >> 0x10) << 0x18 | (uVar15 >> 0x18) << 0x10) >> 0x10)" ( (binary_expression "((uVar15 >> 0x10) << 0x18 | (uVar15 >> 0x18) << 0x10) >> 0x10" (parenthesized_expression "((uVar15 >> 0x10) << 0x18 | (uVar15 >> 0x18) << 0x10)" ( (binary_expression "(uVar15 >> 0x10) << 0x18 | (uVar15 >> 0x18) << 0x10" (binary_expression "(uVar15 >> 0x10) << 0x18" (parenthesized_expression "(uVar15 >> 0x10)" ( (binary_expression "uVar15 >> 0x10" identifier >> number_literal) )) << number_literal) | (binary_expression "(uVar15 >> 0x18) << 0x10" (parenthesized_expression "(uVar15 >> 0x18)" ( (binary_expression "uVar15 >> 0x18" identifier >> number_literal) )) << number_literal)) )) >> number_literal) )) + (binary_expression "((uVar15 & 0xff) << 8 | uVar15 >> 8 & 0xff) * 0x10000" (parenthesized_expression "((uVar15 & 0xff) << 8 | uVar15 >> 8 & 0xff)" ( (binary_expression "(uVar15 & 0xff) << 8 | uVar15 >> 8 & 0xff" (binary_expression "(uVar15 & 0xff) << 8" (parenthesized_expression "(uVar15 & 0xff)" ( (binary_expression "uVar15 & 0xff" identifier & number_literal) )) << number_literal) | (binary_expression "uVar15 >> 8 & 0xff" (binary_expression "uVar15 >> 8" identifier >> number_literal) & number_literal)) )) * number_literal))) ;) })) (expression_statement "local_44 = local_44 + 1;" (assignment_expression "local_44 = local_44 + 1" identifier = (binary_expression "local_44 + 1" identifier + number_literal)) ;) (expression_statement "iVar8 = *param_1;" (assignment_expression "iVar8 = *param_1" identifier = (pointer_expression "*param_1" * identifier)) ;) (expression_statement "uVar26 = (ulonglong)uVar15;" (assignment_expression "uVar26 = (ulonglong)uVar15" identifier = (cast_expression "(ulonglong)uVar15" ( (type_descriptor "ulonglong" type_identifier) ) identifier)) ;) }) (else_clause "else {\n            if (uVar19 < 0x14) {\n              pcVar25 = *(code **)(**(int **)(*param_1 + 8) + 0xc);\n              if (pcVar25 == (code *)PTR_is_big_endian_004c2950) {\n                iVar8 = (**(code **)(**(int **)(*param_1 + 8) + 0xe8))();\n              }\n              else {\n                iVar8 = (*pcVar25)();\n              }\n              uVar6 = *(ushort *)local_44;\n              if (iVar8 == 0) {\n                uVar6 = CONCAT11(*(byte *)((int)local_44 + 1),*(byte *)local_44);\n              }\n              local_44 = (uint *)((int)local_44 + 2);\n              uVar26 = (ulonglong)uVar6;\n              goto joined_r0x002e3998;\n            }\n            pcVar25 = *(code **)(**(int **)(*param_1 + 8) + 0xc);\n            if (pcVar25 == (code *)PTR_is_big_endian_004c2950) {\n              local_30 = puVar18;\n              iVar8 = (**(code **)(**(int **)(*param_1 + 8) + 0xe8))();\n            }\n            else {\n              local_30 = puVar18;\n              iVar8 = (*pcVar25)();\n            }\n            uVar15 = local_44[1];\n            uVar16 = *local_44;\n            if (iVar8 == 0) {\n              uVar2 = uVar15 & 0xff;\n              uVar4 = uVar15 >> 8;\n              uVar3 = uVar15 >> 0x10;\n              uVar5 = uVar15 >> 0x18;\n              uVar15 = (((uVar16 >> 0x10) << 0x18 | (uVar16 >> 0x18) << 0x10) >> 0x10) +\n                       ((uVar16 & 0xff) << 8 | uVar16 >> 8 & 0xff) * 0x10000;\n              uVar16 = ((uVar3 << 0x18 | uVar5 << 0x10) >> 0x10) +\n                       (uVar2 << 8 | uVar4 & 0xff) * 0x10000;\n            }\n            uVar26 = CONCAT44(uVar16,uVar15);\n            local_44 = local_44 + 2;\n            iVar8 = *param_1;\n          }" else (compound_statement "{\n            if (uVar19 < 0x14) {\n              pcVar25 = *(code **)(**(int **)(*param_1 + 8) + 0xc);\n              if (pcVar25 == (code *)PTR_is_big_endian_004c2950) {\n                iVar8 = (**(code **)(**(int **)(*param_1 + 8) + 0xe8))();\n              }\n              else {\n                iVar8 = (*pcVar25)();\n              }\n              uVar6 = *(ushort *)local_44;\n              if (iVar8 == 0) {\n                uVar6 = CONCAT11(*(byte *)((int)local_44 + 1),*(byte *)local_44);\n              }\n              local_44 = (uint *)((int)local_44 + 2);\n              uVar26 = (ulonglong)uVar6;\n              goto joined_r0x002e3998;\n            }\n            pcVar25 = *(code **)(**(int **)(*param_1 + 8) + 0xc);\n            if (pcVar25 == (code *)PTR_is_big_endian_004c2950) {\n              local_30 = puVar18;\n              iVar8 = (**(code **)(**(int **)(*param_1 + 8) + 0xe8))();\n            }\n            else {\n              local_30 = puVar18;\n              iVar8 = (*pcVar25)();\n            }\n            uVar15 = local_44[1];\n            uVar16 = *local_44;\n            if (iVar8 == 0) {\n              uVar2 = uVar15 & 0xff;\n              uVar4 = uVar15 >> 8;\n              uVar3 = uVar15 >> 0x10;\n              uVar5 = uVar15 >> 0x18;\n              uVar15 = (((uVar16 >> 0x10) << 0x18 | (uVar16 >> 0x18) << 0x10) >> 0x10) +\n                       ((uVar16 & 0xff) << 8 | uVar16 >> 8 & 0xff) * 0x10000;\n              uVar16 = ((uVar3 << 0x18 | uVar5 << 0x10) >> 0x10) +\n                       (uVar2 << 8 | uVar4 & 0xff) * 0x10000;\n            }\n            uVar26 = CONCAT44(uVar16,uVar15);\n            local_44 = local_44 + 2;\n            iVar8 = *param_1;\n          }" { (if_statement "if (uVar19 < 0x14) {\n              pcVar25 = *(code **)(**(int **)(*param_1 + 8) + 0xc);\n              if (pcVar25 == (code *)PTR_is_big_endian_004c2950) {\n                iVar8 = (**(code **)(**(int **)(*param_1 + 8) + 0xe8))();\n              }\n              else {\n                iVar8 = (*pcVar25)();\n              }\n              uVar6 = *(ushort *)local_44;\n              if (iVar8 == 0) {\n                uVar6 = CONCAT11(*(byte *)((int)local_44 + 1),*(byte *)local_44);\n              }\n              local_44 = (uint *)((int)local_44 + 2);\n              uVar26 = (ulonglong)uVar6;\n              goto joined_r0x002e3998;\n            }" if (parenthesized_expression "(uVar19 < 0x14)" ( (binary_expression "uVar19 < 0x14" identifier < number_literal) )) (compound_statement "{\n              pcVar25 = *(code **)(**(int **)(*param_1 + 8) + 0xc);\n              if (pcVar25 == (code *)PTR_is_big_endian_004c2950) {\n                iVar8 = (**(code **)(**(int **)(*param_1 + 8) + 0xe8))();\n              }\n              else {\n                iVar8 = (*pcVar25)();\n              }\n              uVar6 = *(ushort *)local_44;\n              if (iVar8 == 0) {\n                uVar6 = CONCAT11(*(byte *)((int)local_44 + 1),*(byte *)local_44);\n              }\n              local_44 = (uint *)((int)local_44 + 2);\n              uVar26 = (ulonglong)uVar6;\n              goto joined_r0x002e3998;\n            }" { (expression_statement "pcVar25 = *(code **)(**(int **)(*param_1 + 8) + 0xc);" (assignment_expression "pcVar25 = *(code **)(**(int **)(*param_1 + 8) + 0xc)" identifier = (pointer_expression "*(code **)(**(int **)(*param_1 + 8) + 0xc)" * (cast_expression "(code **)(**(int **)(*param_1 + 8) + 0xc)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(**(int **)(*param_1 + 8) + 0xc)" ( (binary_expression "**(int **)(*param_1 + 8) + 0xc" (pointer_expression "**(int **)(*param_1 + 8)" * (pointer_expression "*(int **)(*param_1 + 8)" * (cast_expression "(int **)(*param_1 + 8)" ( (type_descriptor "int **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(*param_1 + 8)" ( (binary_expression "*param_1 + 8" (pointer_expression "*param_1" * identifier) + number_literal) ))))) + number_literal) ))))) ;) (if_statement "if (pcVar25 == (code *)PTR_is_big_endian_004c2950) {\n                iVar8 = (**(code **)(**(int **)(*param_1 + 8) + 0xe8))();\n              }\n              else {\n                iVar8 = (*pcVar25)();\n              }" if (parenthesized_expression "(pcVar25 == (code *)PTR_is_big_endian_004c2950)" ( (binary_expression "pcVar25 == (code *)PTR_is_big_endian_004c2950" identifier == (cast_expression "(code *)PTR_is_big_endian_004c2950" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (compound_statement "{\n                iVar8 = (**(code **)(**(int **)(*param_1 + 8) + 0xe8))();\n              }" { (expression_statement "iVar8 = (**(code **)(**(int **)(*param_1 + 8) + 0xe8))();" (assignment_expression "iVar8 = (**(code **)(**(int **)(*param_1 + 8) + 0xe8))()" identifier = (call_expression "(**(code **)(**(int **)(*param_1 + 8) + 0xe8))()" (parenthesized_expression "(**(code **)(**(int **)(*param_1 + 8) + 0xe8))" ( (pointer_expression "**(code **)(**(int **)(*param_1 + 8) + 0xe8)" * (pointer_expression "*(code **)(**(int **)(*param_1 + 8) + 0xe8)" * (cast_expression "(code **)(**(int **)(*param_1 + 8) + 0xe8)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(**(int **)(*param_1 + 8) + 0xe8)" ( (binary_expression "**(int **)(*param_1 + 8) + 0xe8" (pointer_expression "**(int **)(*param_1 + 8)" * (pointer_expression "*(int **)(*param_1 + 8)" * (cast_expression "(int **)(*param_1 + 8)" ( (type_descriptor "int **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(*param_1 + 8)" ( (binary_expression "*param_1 + 8" (pointer_expression "*param_1" * identifier) + number_literal) ))))) + number_literal) ))))) )) (argument_list "()" ( )))) ;) }) (else_clause "else {\n                iVar8 = (*pcVar25)();\n              }" else (compound_statement "{\n                iVar8 = (*pcVar25)();\n              }" { (expression_statement "iVar8 = (*pcVar25)();" (assignment_expression "iVar8 = (*pcVar25)()" identifier = (call_expression "(*pcVar25)()" (parenthesized_expression "(*pcVar25)" ( (pointer_expression "*pcVar25" * identifier) )) (argument_list "()" ( )))) ;) }))) (expression_statement "uVar6 = *(ushort *)local_44;" (assignment_expression "uVar6 = *(ushort *)local_44" identifier = (pointer_expression "*(ushort *)local_44" * (cast_expression "(ushort *)local_44" ( (type_descriptor "ushort *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier))) ;) (if_statement "if (iVar8 == 0) {\n                uVar6 = CONCAT11(*(byte *)((int)local_44 + 1),*(byte *)local_44);\n              }" if (parenthesized_expression "(iVar8 == 0)" ( (binary_expression "iVar8 == 0" identifier == number_literal) )) (compound_statement "{\n                uVar6 = CONCAT11(*(byte *)((int)local_44 + 1),*(byte *)local_44);\n              }" { (expression_statement "uVar6 = CONCAT11(*(byte *)((int)local_44 + 1),*(byte *)local_44);" (assignment_expression "uVar6 = CONCAT11(*(byte *)((int)local_44 + 1),*(byte *)local_44)" identifier = (call_expression "CONCAT11(*(byte *)((int)local_44 + 1),*(byte *)local_44)" identifier (argument_list "(*(byte *)((int)local_44 + 1),*(byte *)local_44)" ( (pointer_expression "*(byte *)((int)local_44 + 1)" * (cast_expression "(byte *)((int)local_44 + 1)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)local_44 + 1)" ( (binary_expression "(int)local_44 + 1" (cast_expression "(int)local_44" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) , (pointer_expression "*(byte *)local_44" * (cast_expression "(byte *)local_44" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )))) ;) })) (expression_statement "local_44 = (uint *)((int)local_44 + 2);" (assignment_expression "local_44 = (uint *)((int)local_44 + 2)" identifier = (cast_expression "(uint *)((int)local_44 + 2)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)local_44 + 2)" ( (binary_expression "(int)local_44 + 2" (cast_expression "(int)local_44" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) ;) (expression_statement "uVar26 = (ulonglong)uVar6;" (assignment_expression "uVar26 = (ulonglong)uVar6" identifier = (cast_expression "(ulonglong)uVar6" ( (type_descriptor "ulonglong" type_identifier) ) identifier)) ;) (goto_statement "goto joined_r0x002e3998;" goto statement_identifier ;) })) (expression_statement "pcVar25 = *(code **)(**(int **)(*param_1 + 8) + 0xc);" (assignment_expression "pcVar25 = *(code **)(**(int **)(*param_1 + 8) + 0xc)" identifier = (pointer_expression "*(code **)(**(int **)(*param_1 + 8) + 0xc)" * (cast_expression "(code **)(**(int **)(*param_1 + 8) + 0xc)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(**(int **)(*param_1 + 8) + 0xc)" ( (binary_expression "**(int **)(*param_1 + 8) + 0xc" (pointer_expression "**(int **)(*param_1 + 8)" * (pointer_expression "*(int **)(*param_1 + 8)" * (cast_expression "(int **)(*param_1 + 8)" ( (type_descriptor "int **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(*param_1 + 8)" ( (binary_expression "*param_1 + 8" (pointer_expression "*param_1" * identifier) + number_literal) ))))) + number_literal) ))))) ;) (if_statement "if (pcVar25 == (code *)PTR_is_big_endian_004c2950) {\n              local_30 = puVar18;\n              iVar8 = (**(code **)(**(int **)(*param_1 + 8) + 0xe8))();\n            }\n            else {\n              local_30 = puVar18;\n              iVar8 = (*pcVar25)();\n            }" if (parenthesized_expression "(pcVar25 == (code *)PTR_is_big_endian_004c2950)" ( (binary_expression "pcVar25 == (code *)PTR_is_big_endian_004c2950" identifier == (cast_expression "(code *)PTR_is_big_endian_004c2950" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (compound_statement "{\n              local_30 = puVar18;\n              iVar8 = (**(code **)(**(int **)(*param_1 + 8) + 0xe8))();\n            }" { (expression_statement "local_30 = puVar18;" (assignment_expression "local_30 = puVar18" identifier = identifier) ;) (expression_statement "iVar8 = (**(code **)(**(int **)(*param_1 + 8) + 0xe8))();" (assignment_expression "iVar8 = (**(code **)(**(int **)(*param_1 + 8) + 0xe8))()" identifier = (call_expression "(**(code **)(**(int **)(*param_1 + 8) + 0xe8))()" (parenthesized_expression "(**(code **)(**(int **)(*param_1 + 8) + 0xe8))" ( (pointer_expression "**(code **)(**(int **)(*param_1 + 8) + 0xe8)" * (pointer_expression "*(code **)(**(int **)(*param_1 + 8) + 0xe8)" * (cast_expression "(code **)(**(int **)(*param_1 + 8) + 0xe8)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(**(int **)(*param_1 + 8) + 0xe8)" ( (binary_expression "**(int **)(*param_1 + 8) + 0xe8" (pointer_expression "**(int **)(*param_1 + 8)" * (pointer_expression "*(int **)(*param_1 + 8)" * (cast_expression "(int **)(*param_1 + 8)" ( (type_descriptor "int **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(*param_1 + 8)" ( (binary_expression "*param_1 + 8" (pointer_expression "*param_1" * identifier) + number_literal) ))))) + number_literal) ))))) )) (argument_list "()" ( )))) ;) }) (else_clause "else {\n              local_30 = puVar18;\n              iVar8 = (*pcVar25)();\n            }" else (compound_statement "{\n              local_30 = puVar18;\n              iVar8 = (*pcVar25)();\n            }" { (expression_statement "local_30 = puVar18;" (assignment_expression "local_30 = puVar18" identifier = identifier) ;) (expression_statement "iVar8 = (*pcVar25)();" (assignment_expression "iVar8 = (*pcVar25)()" identifier = (call_expression "(*pcVar25)()" (parenthesized_expression "(*pcVar25)" ( (pointer_expression "*pcVar25" * identifier) )) (argument_list "()" ( )))) ;) }))) (expression_statement "uVar15 = local_44[1];" (assignment_expression "uVar15 = local_44[1]" identifier = (subscript_expression "local_44[1]" identifier [ number_literal ])) ;) (expression_statement "uVar16 = *local_44;" (assignment_expression "uVar16 = *local_44" identifier = (pointer_expression "*local_44" * identifier)) ;) (if_statement "if (iVar8 == 0) {\n              uVar2 = uVar15 & 0xff;\n              uVar4 = uVar15 >> 8;\n              uVar3 = uVar15 >> 0x10;\n              uVar5 = uVar15 >> 0x18;\n              uVar15 = (((uVar16 >> 0x10) << 0x18 | (uVar16 >> 0x18) << 0x10) >> 0x10) +\n                       ((uVar16 & 0xff) << 8 | uVar16 >> 8 & 0xff) * 0x10000;\n              uVar16 = ((uVar3 << 0x18 | uVar5 << 0x10) >> 0x10) +\n                       (uVar2 << 8 | uVar4 & 0xff) * 0x10000;\n            }" if (parenthesized_expression "(iVar8 == 0)" ( (binary_expression "iVar8 == 0" identifier == number_literal) )) (compound_statement "{\n              uVar2 = uVar15 & 0xff;\n              uVar4 = uVar15 >> 8;\n              uVar3 = uVar15 >> 0x10;\n              uVar5 = uVar15 >> 0x18;\n              uVar15 = (((uVar16 >> 0x10) << 0x18 | (uVar16 >> 0x18) << 0x10) >> 0x10) +\n                       ((uVar16 & 0xff) << 8 | uVar16 >> 8 & 0xff) * 0x10000;\n              uVar16 = ((uVar3 << 0x18 | uVar5 << 0x10) >> 0x10) +\n                       (uVar2 << 8 | uVar4 & 0xff) * 0x10000;\n            }" { (expression_statement "uVar2 = uVar15 & 0xff;" (assignment_expression "uVar2 = uVar15 & 0xff" identifier = (binary_expression "uVar15 & 0xff" identifier & number_literal)) ;) (expression_statement "uVar4 = uVar15 >> 8;" (assignment_expression "uVar4 = uVar15 >> 8" identifier = (binary_expression "uVar15 >> 8" identifier >> number_literal)) ;) (expression_statement "uVar3 = uVar15 >> 0x10;" (assignment_expression "uVar3 = uVar15 >> 0x10" identifier = (binary_expression "uVar15 >> 0x10" identifier >> number_literal)) ;) (expression_statement "uVar5 = uVar15 >> 0x18;" (assignment_expression "uVar5 = uVar15 >> 0x18" identifier = (binary_expression "uVar15 >> 0x18" identifier >> number_literal)) ;) (expression_statement "uVar15 = (((uVar16 >> 0x10) << 0x18 | (uVar16 >> 0x18) << 0x10) >> 0x10) +\n                       ((uVar16 & 0xff) << 8 | uVar16 >> 8 & 0xff) * 0x10000;" (assignment_expression "uVar15 = (((uVar16 >> 0x10) << 0x18 | (uVar16 >> 0x18) << 0x10) >> 0x10) +\n                       ((uVar16 & 0xff) << 8 | uVar16 >> 8 & 0xff) * 0x10000" identifier = (binary_expression "(((uVar16 >> 0x10) << 0x18 | (uVar16 >> 0x18) << 0x10) >> 0x10) +\n                       ((uVar16 & 0xff) << 8 | uVar16 >> 8 & 0xff) * 0x10000" (parenthesized_expression "(((uVar16 >> 0x10) << 0x18 | (uVar16 >> 0x18) << 0x10) >> 0x10)" ( (binary_expression "((uVar16 >> 0x10) << 0x18 | (uVar16 >> 0x18) << 0x10) >> 0x10" (parenthesized_expression "((uVar16 >> 0x10) << 0x18 | (uVar16 >> 0x18) << 0x10)" ( (binary_expression "(uVar16 >> 0x10) << 0x18 | (uVar16 >> 0x18) << 0x10" (binary_expression "(uVar16 >> 0x10) << 0x18" (parenthesized_expression "(uVar16 >> 0x10)" ( (binary_expression "uVar16 >> 0x10" identifier >> number_literal) )) << number_literal) | (binary_expression "(uVar16 >> 0x18) << 0x10" (parenthesized_expression "(uVar16 >> 0x18)" ( (binary_expression "uVar16 >> 0x18" identifier >> number_literal) )) << number_literal)) )) >> number_literal) )) + (binary_expression "((uVar16 & 0xff) << 8 | uVar16 >> 8 & 0xff) * 0x10000" (parenthesized_expression "((uVar16 & 0xff) << 8 | uVar16 >> 8 & 0xff)" ( (binary_expression "(uVar16 & 0xff) << 8 | uVar16 >> 8 & 0xff" (binary_expression "(uVar16 & 0xff) << 8" (parenthesized_expression "(uVar16 & 0xff)" ( (binary_expression "uVar16 & 0xff" identifier & number_literal) )) << number_literal) | (binary_expression "uVar16 >> 8 & 0xff" (binary_expression "uVar16 >> 8" identifier >> number_literal) & number_literal)) )) * number_literal))) ;) (expression_statement "uVar16 = ((uVar3 << 0x18 | uVar5 << 0x10) >> 0x10) +\n                       (uVar2 << 8 | uVar4 & 0xff) * 0x10000;" (assignment_expression "uVar16 = ((uVar3 << 0x18 | uVar5 << 0x10) >> 0x10) +\n                       (uVar2 << 8 | uVar4 & 0xff) * 0x10000" identifier = (binary_expression "((uVar3 << 0x18 | uVar5 << 0x10) >> 0x10) +\n                       (uVar2 << 8 | uVar4 & 0xff) * 0x10000" (parenthesized_expression "((uVar3 << 0x18 | uVar5 << 0x10) >> 0x10)" ( (binary_expression "(uVar3 << 0x18 | uVar5 << 0x10) >> 0x10" (parenthesized_expression "(uVar3 << 0x18 | uVar5 << 0x10)" ( (binary_expression "uVar3 << 0x18 | uVar5 << 0x10" (binary_expression "uVar3 << 0x18" identifier << number_literal) | (binary_expression "uVar5 << 0x10" identifier << number_literal)) )) >> number_literal) )) + (binary_expression "(uVar2 << 8 | uVar4 & 0xff) * 0x10000" (parenthesized_expression "(uVar2 << 8 | uVar4 & 0xff)" ( (binary_expression "uVar2 << 8 | uVar4 & 0xff" (binary_expression "uVar2 << 8" identifier << number_literal) | (binary_expression "uVar4 & 0xff" identifier & number_literal)) )) * number_literal))) ;) })) (expression_statement "uVar26 = CONCAT44(uVar16,uVar15);" (assignment_expression "uVar26 = CONCAT44(uVar16,uVar15)" identifier = (call_expression "CONCAT44(uVar16,uVar15)" identifier (argument_list "(uVar16,uVar15)" ( identifier , identifier )))) ;) (expression_statement "local_44 = local_44 + 2;" (assignment_expression "local_44 = local_44 + 2" identifier = (binary_expression "local_44 + 2" identifier + number_literal)) ;) (expression_statement "iVar8 = *param_1;" (assignment_expression "iVar8 = *param_1" identifier = (pointer_expression "*param_1" * identifier)) ;) }))) (labeled_statement "LAB_002e3970:\n          local_50 = uVar26;" statement_identifier : (expression_statement "local_50 = uVar26;" (assignment_expression "local_50 = uVar26" identifier = identifier) ;)) (expression_statement "local_58 = (*local_3c)(iVar8);" (assignment_expression "local_58 = (*local_3c)(iVar8)" identifier = (call_expression "(*local_3c)(iVar8)" (parenthesized_expression "(*local_3c)" ( (pointer_expression "*local_3c" * identifier) )) (argument_list "(iVar8)" ( identifier )))) ;) (expression_statement "uVar26 = local_50;" (assignment_expression "uVar26 = local_50" identifier = identifier) ;) }))) (labeled_statement "joined_r0x002e3998:\n        if (uVar22 == 0x31) {\nLAB_002e30bc:\n          *(ulonglong *)(param_1 + 0x1a) = uVar26;\n          uVar7 = uVar26;\n          goto LAB_002e313c;\n        }" statement_identifier : (if_statement "if (uVar22 == 0x31) {\nLAB_002e30bc:\n          *(ulonglong *)(param_1 + 0x1a) = uVar26;\n          uVar7 = uVar26;\n          goto LAB_002e313c;\n        }" if (parenthesized_expression "(uVar22 == 0x31)" ( (binary_expression "uVar22 == 0x31" identifier == number_literal) )) (compound_statement "{\nLAB_002e30bc:\n          *(ulonglong *)(param_1 + 0x1a) = uVar26;\n          uVar7 = uVar26;\n          goto LAB_002e313c;\n        }" { (labeled_statement "LAB_002e30bc:\n          *(ulonglong *)(param_1 + 0x1a) = uVar26;" statement_identifier : (expression_statement "*(ulonglong *)(param_1 + 0x1a) = uVar26;" (assignment_expression "*(ulonglong *)(param_1 + 0x1a) = uVar26" (pointer_expression "*(ulonglong *)(param_1 + 0x1a)" * (cast_expression "(ulonglong *)(param_1 + 0x1a)" ( (type_descriptor "ulonglong *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x1a)" ( (binary_expression "param_1 + 0x1a" identifier + number_literal) )))) = identifier) ;)) (expression_statement "uVar7 = uVar26;" (assignment_expression "uVar7 = uVar26" identifier = identifier) ;) (goto_statement "goto LAB_002e313c;" goto statement_identifier ;) }))) (if_statement "if (uVar22 < 0x32) {\n          uVar7 = uVar26;\n          if (uVar22 != 1) goto LAB_002e313c;\nLAB_002e39b4:\n          uVar7 = uVar26;\n          if (local_58 != 0) goto LAB_002e313c;\n          *(ulonglong *)(param_1 + 8) = uVar26;\n          goto LAB_002e313c;\n        }" if (parenthesized_expression "(uVar22 < 0x32)" ( (binary_expression "uVar22 < 0x32" identifier < number_literal) )) (compound_statement "{\n          uVar7 = uVar26;\n          if (uVar22 != 1) goto LAB_002e313c;\nLAB_002e39b4:\n          uVar7 = uVar26;\n          if (local_58 != 0) goto LAB_002e313c;\n          *(ulonglong *)(param_1 + 8) = uVar26;\n          goto LAB_002e313c;\n        }" { (expression_statement "uVar7 = uVar26;" (assignment_expression "uVar7 = uVar26" identifier = identifier) ;) (if_statement "if (uVar22 != 1) goto LAB_002e313c;" if (parenthesized_expression "(uVar22 != 1)" ( (binary_expression "uVar22 != 1" identifier != number_literal) )) (goto_statement "goto LAB_002e313c;" goto statement_identifier ;)) (labeled_statement "LAB_002e39b4:\n          uVar7 = uVar26;" statement_identifier : (expression_statement "uVar7 = uVar26;" (assignment_expression "uVar7 = uVar26" identifier = identifier) ;)) (if_statement "if (local_58 != 0) goto LAB_002e313c;" if (parenthesized_expression "(local_58 != 0)" ( (binary_expression "local_58 != 0" identifier != number_literal) )) (goto_statement "goto LAB_002e313c;" goto statement_identifier ;)) (expression_statement "*(ulonglong *)(param_1 + 8) = uVar26;" (assignment_expression "*(ulonglong *)(param_1 + 8) = uVar26" (pointer_expression "*(ulonglong *)(param_1 + 8)" * (cast_expression "(ulonglong *)(param_1 + 8)" ( (type_descriptor "ulonglong *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 8)" ( (binary_expression "param_1 + 8" identifier + number_literal) )))) = identifier) ;) (goto_statement "goto LAB_002e313c;" goto statement_identifier ;) })) (if_statement "if ((uVar22 != 0x6e) && (uVar22 != 0x2007)) {\nLAB_002e339c:\n          uVar7 = uVar26;\n          if (uVar22 != 0x47) goto LAB_002e313c;\n          *(ulonglong *)(param_1 + 0x18) = uVar26;\n          goto LAB_002e313c;\n        }" if (parenthesized_expression "((uVar22 != 0x6e) && (uVar22 != 0x2007))" ( (binary_expression "(uVar22 != 0x6e) && (uVar22 != 0x2007)" (parenthesized_expression "(uVar22 != 0x6e)" ( (binary_expression "uVar22 != 0x6e" identifier != number_literal) )) && (parenthesized_expression "(uVar22 != 0x2007)" ( (binary_expression "uVar22 != 0x2007" identifier != number_literal) ))) )) (compound_statement "{\nLAB_002e339c:\n          uVar7 = uVar26;\n          if (uVar22 != 0x47) goto LAB_002e313c;\n          *(ulonglong *)(param_1 + 0x18) = uVar26;\n          goto LAB_002e313c;\n        }" { (labeled_statement "LAB_002e339c:\n          uVar7 = uVar26;" statement_identifier : (expression_statement "uVar7 = uVar26;" (assignment_expression "uVar7 = uVar26" identifier = identifier) ;)) (if_statement "if (uVar22 != 0x47) goto LAB_002e313c;" if (parenthesized_expression "(uVar22 != 0x47)" ( (binary_expression "uVar22 != 0x47" identifier != number_literal) )) (goto_statement "goto LAB_002e313c;" goto statement_identifier ;)) (expression_statement "*(ulonglong *)(param_1 + 0x18) = uVar26;" (assignment_expression "*(ulonglong *)(param_1 + 0x18) = uVar26" (pointer_expression "*(ulonglong *)(param_1 + 0x18)" * (cast_expression "(ulonglong *)(param_1 + 0x18)" ( (type_descriptor "ulonglong *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x18)" ( (binary_expression "param_1 + 0x18" identifier + number_literal) )))) = identifier) ;) (goto_statement "goto LAB_002e313c;" goto statement_identifier ;) })) (goto_statement "goto LAB_002e3858;" goto statement_identifier ;) })) (if_statement "if (uVar19 == 7) {\n        pcVar25 = *(code **)(**(int **)(*param_1 + 8) + 0xc);\n        if (pcVar25 == (code *)PTR_is_big_endian_004c2950) {\n          local_30 = puVar18;\n          iVar10 = (**(code **)(**(int **)(*param_1 + 8) + 0xe8))();\n        }\n        else {\n          local_30 = puVar18;\n          iVar10 = (*pcVar25)();\n        }\n        local_50._4_4_ = (uint *)local_44[1];\n        puVar9 = (uint *)*local_44;\n        if (iVar10 == 0) {\n          uVar15 = (uint)local_50._4_4_ & 0xff;\n          uVar16 = (uint)local_50._4_4_ >> 8;\n          uVar2 = (uint)local_50._4_4_ >> 0x10;\n          uVar4 = (uint)local_50._4_4_ >> 0x18;\n          local_50._4_4_ =\n               (uint *)(((((uint)puVar9 >> 0x10) << 0x18 | ((uint)puVar9 >> 0x18) << 0x10) >> 0x10)\n                       + (((uint)puVar9 & 0xff) << 8 | (uint)puVar9 >> 8 & 0xff) * 0x10000);\n          puVar9 = (uint *)(((uVar2 << 0x18 | uVar4 << 0x10) >> 0x10) +\n                           (uVar15 << 8 | uVar16 & 0xff) * 0x10000);\n        }\n        local_44 = local_44 + 2;\n        iVar10 = *param_1;\n        local_50._0_4_ = puVar9;\nLAB_002e3708:\n        local_58 = (*local_3c)(iVar10,puVar9,iVar8,local_30,local_40);\n        local_60._4_4_ = local_50._4_4_;\n        local_60._0_4_ = local_50._0_4_;\n        goto LAB_002e355c;\n      }" if (parenthesized_expression "(uVar19 == 7)" ( (binary_expression "uVar19 == 7" identifier == number_literal) )) (compound_statement "{\n        pcVar25 = *(code **)(**(int **)(*param_1 + 8) + 0xc);\n        if (pcVar25 == (code *)PTR_is_big_endian_004c2950) {\n          local_30 = puVar18;\n          iVar10 = (**(code **)(**(int **)(*param_1 + 8) + 0xe8))();\n        }\n        else {\n          local_30 = puVar18;\n          iVar10 = (*pcVar25)();\n        }\n        local_50._4_4_ = (uint *)local_44[1];\n        puVar9 = (uint *)*local_44;\n        if (iVar10 == 0) {\n          uVar15 = (uint)local_50._4_4_ & 0xff;\n          uVar16 = (uint)local_50._4_4_ >> 8;\n          uVar2 = (uint)local_50._4_4_ >> 0x10;\n          uVar4 = (uint)local_50._4_4_ >> 0x18;\n          local_50._4_4_ =\n               (uint *)(((((uint)puVar9 >> 0x10) << 0x18 | ((uint)puVar9 >> 0x18) << 0x10) >> 0x10)\n                       + (((uint)puVar9 & 0xff) << 8 | (uint)puVar9 >> 8 & 0xff) * 0x10000);\n          puVar9 = (uint *)(((uVar2 << 0x18 | uVar4 << 0x10) >> 0x10) +\n                           (uVar15 << 8 | uVar16 & 0xff) * 0x10000);\n        }\n        local_44 = local_44 + 2;\n        iVar10 = *param_1;\n        local_50._0_4_ = puVar9;\nLAB_002e3708:\n        local_58 = (*local_3c)(iVar10,puVar9,iVar8,local_30,local_40);\n        local_60._4_4_ = local_50._4_4_;\n        local_60._0_4_ = local_50._0_4_;\n        goto LAB_002e355c;\n      }" { (expression_statement "pcVar25 = *(code **)(**(int **)(*param_1 + 8) + 0xc);" (assignment_expression "pcVar25 = *(code **)(**(int **)(*param_1 + 8) + 0xc)" identifier = (pointer_expression "*(code **)(**(int **)(*param_1 + 8) + 0xc)" * (cast_expression "(code **)(**(int **)(*param_1 + 8) + 0xc)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(**(int **)(*param_1 + 8) + 0xc)" ( (binary_expression "**(int **)(*param_1 + 8) + 0xc" (pointer_expression "**(int **)(*param_1 + 8)" * (pointer_expression "*(int **)(*param_1 + 8)" * (cast_expression "(int **)(*param_1 + 8)" ( (type_descriptor "int **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(*param_1 + 8)" ( (binary_expression "*param_1 + 8" (pointer_expression "*param_1" * identifier) + number_literal) ))))) + number_literal) ))))) ;) (if_statement "if (pcVar25 == (code *)PTR_is_big_endian_004c2950) {\n          local_30 = puVar18;\n          iVar10 = (**(code **)(**(int **)(*param_1 + 8) + 0xe8))();\n        }\n        else {\n          local_30 = puVar18;\n          iVar10 = (*pcVar25)();\n        }" if (parenthesized_expression "(pcVar25 == (code *)PTR_is_big_endian_004c2950)" ( (binary_expression "pcVar25 == (code *)PTR_is_big_endian_004c2950" identifier == (cast_expression "(code *)PTR_is_big_endian_004c2950" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (compound_statement "{\n          local_30 = puVar18;\n          iVar10 = (**(code **)(**(int **)(*param_1 + 8) + 0xe8))();\n        }" { (expression_statement "local_30 = puVar18;" (assignment_expression "local_30 = puVar18" identifier = identifier) ;) (expression_statement "iVar10 = (**(code **)(**(int **)(*param_1 + 8) + 0xe8))();" (assignment_expression "iVar10 = (**(code **)(**(int **)(*param_1 + 8) + 0xe8))()" identifier = (call_expression "(**(code **)(**(int **)(*param_1 + 8) + 0xe8))()" (parenthesized_expression "(**(code **)(**(int **)(*param_1 + 8) + 0xe8))" ( (pointer_expression "**(code **)(**(int **)(*param_1 + 8) + 0xe8)" * (pointer_expression "*(code **)(**(int **)(*param_1 + 8) + 0xe8)" * (cast_expression "(code **)(**(int **)(*param_1 + 8) + 0xe8)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(**(int **)(*param_1 + 8) + 0xe8)" ( (binary_expression "**(int **)(*param_1 + 8) + 0xe8" (pointer_expression "**(int **)(*param_1 + 8)" * (pointer_expression "*(int **)(*param_1 + 8)" * (cast_expression "(int **)(*param_1 + 8)" ( (type_descriptor "int **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(*param_1 + 8)" ( (binary_expression "*param_1 + 8" (pointer_expression "*param_1" * identifier) + number_literal) ))))) + number_literal) ))))) )) (argument_list "()" ( )))) ;) }) (else_clause "else {\n          local_30 = puVar18;\n          iVar10 = (*pcVar25)();\n        }" else (compound_statement "{\n          local_30 = puVar18;\n          iVar10 = (*pcVar25)();\n        }" { (expression_statement "local_30 = puVar18;" (assignment_expression "local_30 = puVar18" identifier = identifier) ;) (expression_statement "iVar10 = (*pcVar25)();" (assignment_expression "iVar10 = (*pcVar25)()" identifier = (call_expression "(*pcVar25)()" (parenthesized_expression "(*pcVar25)" ( (pointer_expression "*pcVar25" * identifier) )) (argument_list "()" ( )))) ;) }))) (expression_statement "local_50._4_4_ = (uint *)local_44[1];" (assignment_expression "local_50._4_4_ = (uint *)local_44[1]" (field_expression "local_50._4_4_" identifier . field_identifier) = (cast_expression "(uint *)local_44[1]" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (subscript_expression "local_44[1]" identifier [ number_literal ]))) ;) (expression_statement "puVar9 = (uint *)*local_44;" (assignment_expression "puVar9 = (uint *)*local_44" identifier = (cast_expression "(uint *)*local_44" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (pointer_expression "*local_44" * identifier))) ;) (if_statement "if (iVar10 == 0) {\n          uVar15 = (uint)local_50._4_4_ & 0xff;\n          uVar16 = (uint)local_50._4_4_ >> 8;\n          uVar2 = (uint)local_50._4_4_ >> 0x10;\n          uVar4 = (uint)local_50._4_4_ >> 0x18;\n          local_50._4_4_ =\n               (uint *)(((((uint)puVar9 >> 0x10) << 0x18 | ((uint)puVar9 >> 0x18) << 0x10) >> 0x10)\n                       + (((uint)puVar9 & 0xff) << 8 | (uint)puVar9 >> 8 & 0xff) * 0x10000);\n          puVar9 = (uint *)(((uVar2 << 0x18 | uVar4 << 0x10) >> 0x10) +\n                           (uVar15 << 8 | uVar16 & 0xff) * 0x10000);\n        }" if (parenthesized_expression "(iVar10 == 0)" ( (binary_expression "iVar10 == 0" identifier == number_literal) )) (compound_statement "{\n          uVar15 = (uint)local_50._4_4_ & 0xff;\n          uVar16 = (uint)local_50._4_4_ >> 8;\n          uVar2 = (uint)local_50._4_4_ >> 0x10;\n          uVar4 = (uint)local_50._4_4_ >> 0x18;\n          local_50._4_4_ =\n               (uint *)(((((uint)puVar9 >> 0x10) << 0x18 | ((uint)puVar9 >> 0x18) << 0x10) >> 0x10)\n                       + (((uint)puVar9 & 0xff) << 8 | (uint)puVar9 >> 8 & 0xff) * 0x10000);\n          puVar9 = (uint *)(((uVar2 << 0x18 | uVar4 << 0x10) >> 0x10) +\n                           (uVar15 << 8 | uVar16 & 0xff) * 0x10000);\n        }" { (expression_statement "uVar15 = (uint)local_50._4_4_ & 0xff;" (assignment_expression "uVar15 = (uint)local_50._4_4_ & 0xff" identifier = (binary_expression "(uint)local_50._4_4_ & 0xff" (cast_expression "(uint)local_50._4_4_" ( (type_descriptor "uint" type_identifier) ) (field_expression "local_50._4_4_" identifier . field_identifier)) & number_literal)) ;) (expression_statement "uVar16 = (uint)local_50._4_4_ >> 8;" (assignment_expression "uVar16 = (uint)local_50._4_4_ >> 8" identifier = (binary_expression "(uint)local_50._4_4_ >> 8" (cast_expression "(uint)local_50._4_4_" ( (type_descriptor "uint" type_identifier) ) (field_expression "local_50._4_4_" identifier . field_identifier)) >> number_literal)) ;) (expression_statement "uVar2 = (uint)local_50._4_4_ >> 0x10;" (assignment_expression "uVar2 = (uint)local_50._4_4_ >> 0x10" identifier = (binary_expression "(uint)local_50._4_4_ >> 0x10" (cast_expression "(uint)local_50._4_4_" ( (type_descriptor "uint" type_identifier) ) (field_expression "local_50._4_4_" identifier . field_identifier)) >> number_literal)) ;) (expression_statement "uVar4 = (uint)local_50._4_4_ >> 0x18;" (assignment_expression "uVar4 = (uint)local_50._4_4_ >> 0x18" identifier = (binary_expression "(uint)local_50._4_4_ >> 0x18" (cast_expression "(uint)local_50._4_4_" ( (type_descriptor "uint" type_identifier) ) (field_expression "local_50._4_4_" identifier . field_identifier)) >> number_literal)) ;) (expression_statement "local_50._4_4_ =\n               (uint *)(((((uint)puVar9 >> 0x10) << 0x18 | ((uint)puVar9 >> 0x18) << 0x10) >> 0x10)\n                       + (((uint)puVar9 & 0xff) << 8 | (uint)puVar9 >> 8 & 0xff) * 0x10000);" (assignment_expression "local_50._4_4_ =\n               (uint *)(((((uint)puVar9 >> 0x10) << 0x18 | ((uint)puVar9 >> 0x18) << 0x10) >> 0x10)\n                       + (((uint)puVar9 & 0xff) << 8 | (uint)puVar9 >> 8 & 0xff) * 0x10000)" (field_expression "local_50._4_4_" identifier . field_identifier) = (cast_expression "(uint *)(((((uint)puVar9 >> 0x10) << 0x18 | ((uint)puVar9 >> 0x18) << 0x10) >> 0x10)\n                       + (((uint)puVar9 & 0xff) << 8 | (uint)puVar9 >> 8 & 0xff) * 0x10000)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(((((uint)puVar9 >> 0x10) << 0x18 | ((uint)puVar9 >> 0x18) << 0x10) >> 0x10)\n                       + (((uint)puVar9 & 0xff) << 8 | (uint)puVar9 >> 8 & 0xff) * 0x10000)" ( (binary_expression "((((uint)puVar9 >> 0x10) << 0x18 | ((uint)puVar9 >> 0x18) << 0x10) >> 0x10)\n                       + (((uint)puVar9 & 0xff) << 8 | (uint)puVar9 >> 8 & 0xff) * 0x10000" (parenthesized_expression "((((uint)puVar9 >> 0x10) << 0x18 | ((uint)puVar9 >> 0x18) << 0x10) >> 0x10)" ( (binary_expression "(((uint)puVar9 >> 0x10) << 0x18 | ((uint)puVar9 >> 0x18) << 0x10) >> 0x10" (parenthesized_expression "(((uint)puVar9 >> 0x10) << 0x18 | ((uint)puVar9 >> 0x18) << 0x10)" ( (binary_expression "((uint)puVar9 >> 0x10) << 0x18 | ((uint)puVar9 >> 0x18) << 0x10" (binary_expression "((uint)puVar9 >> 0x10) << 0x18" (parenthesized_expression "((uint)puVar9 >> 0x10)" ( (binary_expression "(uint)puVar9 >> 0x10" (cast_expression "(uint)puVar9" ( (type_descriptor "uint" type_identifier) ) identifier) >> number_literal) )) << number_literal) | (binary_expression "((uint)puVar9 >> 0x18) << 0x10" (parenthesized_expression "((uint)puVar9 >> 0x18)" ( (binary_expression "(uint)puVar9 >> 0x18" (cast_expression "(uint)puVar9" ( (type_descriptor "uint" type_identifier) ) identifier) >> number_literal) )) << number_literal)) )) >> number_literal) )) + (binary_expression "(((uint)puVar9 & 0xff) << 8 | (uint)puVar9 >> 8 & 0xff) * 0x10000" (parenthesized_expression "(((uint)puVar9 & 0xff) << 8 | (uint)puVar9 >> 8 & 0xff)" ( (binary_expression "((uint)puVar9 & 0xff) << 8 | (uint)puVar9 >> 8 & 0xff" (binary_expression "((uint)puVar9 & 0xff) << 8" (parenthesized_expression "((uint)puVar9 & 0xff)" ( (binary_expression "(uint)puVar9 & 0xff" (cast_expression "(uint)puVar9" ( (type_descriptor "uint" type_identifier) ) identifier) & number_literal) )) << number_literal) | (binary_expression "(uint)puVar9 >> 8 & 0xff" (binary_expression "(uint)puVar9 >> 8" (cast_expression "(uint)puVar9" ( (type_descriptor "uint" type_identifier) ) identifier) >> number_literal) & number_literal)) )) * number_literal)) )))) ;) (expression_statement "puVar9 = (uint *)(((uVar2 << 0x18 | uVar4 << 0x10) >> 0x10) +\n                           (uVar15 << 8 | uVar16 & 0xff) * 0x10000);" (assignment_expression "puVar9 = (uint *)(((uVar2 << 0x18 | uVar4 << 0x10) >> 0x10) +\n                           (uVar15 << 8 | uVar16 & 0xff) * 0x10000)" identifier = (cast_expression "(uint *)(((uVar2 << 0x18 | uVar4 << 0x10) >> 0x10) +\n                           (uVar15 << 8 | uVar16 & 0xff) * 0x10000)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(((uVar2 << 0x18 | uVar4 << 0x10) >> 0x10) +\n                           (uVar15 << 8 | uVar16 & 0xff) * 0x10000)" ( (binary_expression "((uVar2 << 0x18 | uVar4 << 0x10) >> 0x10) +\n                           (uVar15 << 8 | uVar16 & 0xff) * 0x10000" (parenthesized_expression "((uVar2 << 0x18 | uVar4 << 0x10) >> 0x10)" ( (binary_expression "(uVar2 << 0x18 | uVar4 << 0x10) >> 0x10" (parenthesized_expression "(uVar2 << 0x18 | uVar4 << 0x10)" ( (binary_expression "uVar2 << 0x18 | uVar4 << 0x10" (binary_expression "uVar2 << 0x18" identifier << number_literal) | (binary_expression "uVar4 << 0x10" identifier << number_literal)) )) >> number_literal) )) + (binary_expression "(uVar15 << 8 | uVar16 & 0xff) * 0x10000" (parenthesized_expression "(uVar15 << 8 | uVar16 & 0xff)" ( (binary_expression "uVar15 << 8 | uVar16 & 0xff" (binary_expression "uVar15 << 8" identifier << number_literal) | (binary_expression "uVar16 & 0xff" identifier & number_literal)) )) * number_literal)) )))) ;) })) (expression_statement "local_44 = local_44 + 2;" (assignment_expression "local_44 = local_44 + 2" identifier = (binary_expression "local_44 + 2" identifier + number_literal)) ;) (expression_statement "iVar10 = *param_1;" (assignment_expression "iVar10 = *param_1" identifier = (pointer_expression "*param_1" * identifier)) ;) (expression_statement "local_50._0_4_ = puVar9;" (assignment_expression "local_50._0_4_ = puVar9" (field_expression "local_50._0_4_" identifier . field_identifier) = identifier) ;) (labeled_statement "LAB_002e3708:\n        local_58 = (*local_3c)(iVar10,puVar9,iVar8,local_30,local_40);" statement_identifier : (expression_statement "local_58 = (*local_3c)(iVar10,puVar9,iVar8,local_30,local_40);" (assignment_expression "local_58 = (*local_3c)(iVar10,puVar9,iVar8,local_30,local_40)" identifier = (call_expression "(*local_3c)(iVar10,puVar9,iVar8,local_30,local_40)" (parenthesized_expression "(*local_3c)" ( (pointer_expression "*local_3c" * identifier) )) (argument_list "(iVar10,puVar9,iVar8,local_30,local_40)" ( identifier , identifier , identifier , identifier , identifier )))) ;)) (expression_statement "local_60._4_4_ = local_50._4_4_;" (assignment_expression "local_60._4_4_ = local_50._4_4_" (field_expression "local_60._4_4_" identifier . field_identifier) = (field_expression "local_50._4_4_" identifier . field_identifier)) ;) (expression_statement "local_60._0_4_ = local_50._0_4_;" (assignment_expression "local_60._0_4_ = local_50._0_4_" (field_expression "local_60._0_4_" identifier . field_identifier) = (field_expression "local_50._0_4_" identifier . field_identifier)) ;) (goto_statement "goto LAB_002e355c;" goto statement_identifier ;) })) (if_statement "if (7 < uVar19) {\n        if (uVar19 == 10) {\n          local_60._0_4_ = (uint *)((int)local_44 + 1);\n          local_58 = (uint)*(byte *)local_44;\n          local_44 = (uint *)((int)local_60._0_4_ + local_58);\n          goto LAB_002e355c;\n        }\n        if (uVar19 < 0xb) {\n          if (uVar19 != 8) {\n            if (uVar19 != 9) {\n              return 0;\n            }\nLAB_002e32bc:\n            uVar15 = (uint)*(byte *)local_44;\n            pbVar14 = (byte *)((int)local_44 + 1);\n            if ((char)*(byte *)local_44 < '\0') {\n              (*(code *)PTR_read_unsigned_LEB_128_x_004c2980)(pbVar14,&local_48);\n              pbVar14 = (byte *)((int)local_44 + local_48);\n              uVar15 = extraout_v1_00;\n            }\n            else {\n              local_48 = 1;\n            }\n            uVar26 = CONCAT44(pbVar14,local_60._4_4_);\n            local_58 = uVar15;\n            local_44 = (uint *)((int)local_44 + uVar15 + local_48);\n            goto LAB_002e382c;\n          }\n          local_60._0_4_ = local_44;\n          local_30 = local_44;\n          local_48 = (*(code *)PTR_strlen_004c5b9c)(local_44);\n          uVar26 = CONCAT44(local_60._0_4_,local_60._4_4_);\n          local_44 = (uint *)((int)local_30 + local_48 + 1);\n          uVar7 = CONCAT44(local_60._0_4_,local_60._4_4_);\n          if (uVar22 == 0x31) goto LAB_002e313c;\n          if (0x31 < uVar22) {\n            if ((uVar22 != 0x6e) &&\n               (uVar7 = CONCAT44(local_60._0_4_,local_60._4_4_), uVar22 != 0x2007))\n            goto LAB_002e313c;\n            param_1[0x12] = (int)local_30;\n            uVar7 = uVar26;\n            goto LAB_002e313c;\n          }\nLAB_002e3118:\n          uVar7 = uVar26;\n          if (uVar22 == 1) goto LAB_002e313c;\njoined_r0x002e3124:\n          uVar7 = uVar26;\n          if (uVar22 != 3) goto LAB_002e313c;\n          local_60._0_4_ = (uint *)(uVar26 >> 0x20);\n          if (uVar19 == 8) {\n            param_1[0xf] = (int)local_60._0_4_;\n            goto LAB_002e313c;\n          }\n          if (uVar19 != 0xe) goto LAB_002e313c;\n          goto LAB_002e3284;\n        }\n        if (uVar19 < 0xd) {\n          uVar26 = (ulonglong)*(byte *)local_44;\n          local_44 = (uint *)((int)local_44 + 1);\nLAB_002e382c:\n          uVar7 = uVar26;\n          if (uVar22 == 0x31) goto LAB_002e313c;\n          if (uVar22 < 0x32) goto LAB_002e3118;\n        }\n        else {\n          bVar1 = *(byte *)local_44;\n          uVar15 = (uint)bVar1;\n          puVar9 = (uint *)((int)local_44 + 1);\n          if ((char)bVar1 < '\0') {\n            uVar26 = (*(code *)PTR_read_signed_LEB_128_x_004c297c)(puVar9,&local_48,uVar15);\n            puVar9 = (uint *)((int)local_44 + local_48);\n          }\n          else {\n            local_48 = 1;\n            uVar26 = (ulonglong)uVar15;\n            if ((bVar1 & 0x40) != 0) {\n              uVar26 = CONCAT44(0xffffffff,uVar15 | 0xffffff80);\n            }\n          }\n          local_44 = puVar9;\n          uVar7 = uVar26;\n          if (uVar22 == 0x31) goto LAB_002e313c;\n          if (uVar22 < 0x32) {\n            puVar9 = (uint *)param_1[0xc];\n            if (puVar9 != (uint *)param_1[0xd]) goto LAB_002e314c;\nLAB_002e2f98:\n            iVar17 = iVar17 + 8;\n            local_60 = uVar26;\n            std::\n            vector<gold::Dwarf_die::Attribute_value,std::allocator<gold::Dwarf_die::Attribute_value>>\n            ::_M_realloc_insert<gold::Dwarf_die::Attribute_value_const&>(local_38,puVar9,&local_68);\n            iVar8 = param_1[10];\n            if (iVar17 == iVar21) goto LAB_002e2fb8;\n            goto LAB_002e2db4;\n          }\n        }\n        if ((uVar22 != 0x6e) && (uVar7 = uVar26, uVar22 != 0x2007)) goto LAB_002e313c;\nLAB_002e3858:\n        local_60._0_4_ = (uint *)(uVar26 >> 0x20);\n        uVar7 = uVar26;\n        if (uVar19 == 8) {\n          param_1[0x12] = (int)local_60._0_4_;\n          goto LAB_002e313c;\n        }\n        if (uVar19 != 0xe) goto LAB_002e313c;\n        goto LAB_002e387c;\n      }" if (parenthesized_expression "(7 < uVar19)" ( (binary_expression "7 < uVar19" number_literal < identifier) )) (compound_statement "{\n        if (uVar19 == 10) {\n          local_60._0_4_ = (uint *)((int)local_44 + 1);\n          local_58 = (uint)*(byte *)local_44;\n          local_44 = (uint *)((int)local_60._0_4_ + local_58);\n          goto LAB_002e355c;\n        }\n        if (uVar19 < 0xb) {\n          if (uVar19 != 8) {\n            if (uVar19 != 9) {\n              return 0;\n            }\nLAB_002e32bc:\n            uVar15 = (uint)*(byte *)local_44;\n            pbVar14 = (byte *)((int)local_44 + 1);\n            if ((char)*(byte *)local_44 < '\0') {\n              (*(code *)PTR_read_unsigned_LEB_128_x_004c2980)(pbVar14,&local_48);\n              pbVar14 = (byte *)((int)local_44 + local_48);\n              uVar15 = extraout_v1_00;\n            }\n            else {\n              local_48 = 1;\n            }\n            uVar26 = CONCAT44(pbVar14,local_60._4_4_);\n            local_58 = uVar15;\n            local_44 = (uint *)((int)local_44 + uVar15 + local_48);\n            goto LAB_002e382c;\n          }\n          local_60._0_4_ = local_44;\n          local_30 = local_44;\n          local_48 = (*(code *)PTR_strlen_004c5b9c)(local_44);\n          uVar26 = CONCAT44(local_60._0_4_,local_60._4_4_);\n          local_44 = (uint *)((int)local_30 + local_48 + 1);\n          uVar7 = CONCAT44(local_60._0_4_,local_60._4_4_);\n          if (uVar22 == 0x31) goto LAB_002e313c;\n          if (0x31 < uVar22) {\n            if ((uVar22 != 0x6e) &&\n               (uVar7 = CONCAT44(local_60._0_4_,local_60._4_4_), uVar22 != 0x2007))\n            goto LAB_002e313c;\n            param_1[0x12] = (int)local_30;\n            uVar7 = uVar26;\n            goto LAB_002e313c;\n          }\nLAB_002e3118:\n          uVar7 = uVar26;\n          if (uVar22 == 1) goto LAB_002e313c;\njoined_r0x002e3124:\n          uVar7 = uVar26;\n          if (uVar22 != 3) goto LAB_002e313c;\n          local_60._0_4_ = (uint *)(uVar26 >> 0x20);\n          if (uVar19 == 8) {\n            param_1[0xf] = (int)local_60._0_4_;\n            goto LAB_002e313c;\n          }\n          if (uVar19 != 0xe) goto LAB_002e313c;\n          goto LAB_002e3284;\n        }\n        if (uVar19 < 0xd) {\n          uVar26 = (ulonglong)*(byte *)local_44;\n          local_44 = (uint *)((int)local_44 + 1);\nLAB_002e382c:\n          uVar7 = uVar26;\n          if (uVar22 == 0x31) goto LAB_002e313c;\n          if (uVar22 < 0x32) goto LAB_002e3118;\n        }\n        else {\n          bVar1 = *(byte *)local_44;\n          uVar15 = (uint)bVar1;\n          puVar9 = (uint *)((int)local_44 + 1);\n          if ((char)bVar1 < '\0') {\n            uVar26 = (*(code *)PTR_read_signed_LEB_128_x_004c297c)(puVar9,&local_48,uVar15);\n            puVar9 = (uint *)((int)local_44 + local_48);\n          }\n          else {\n            local_48 = 1;\n            uVar26 = (ulonglong)uVar15;\n            if ((bVar1 & 0x40) != 0) {\n              uVar26 = CONCAT44(0xffffffff,uVar15 | 0xffffff80);\n            }\n          }\n          local_44 = puVar9;\n          uVar7 = uVar26;\n          if (uVar22 == 0x31) goto LAB_002e313c;\n          if (uVar22 < 0x32) {\n            puVar9 = (uint *)param_1[0xc];\n            if (puVar9 != (uint *)param_1[0xd]) goto LAB_002e314c;\nLAB_002e2f98:\n            iVar17 = iVar17 + 8;\n            local_60 = uVar26;\n            std::\n            vector<gold::Dwarf_die::Attribute_value,std::allocator<gold::Dwarf_die::Attribute_value>>\n            ::_M_realloc_insert<gold::Dwarf_die::Attribute_value_const&>(local_38,puVar9,&local_68);\n            iVar8 = param_1[10];\n            if (iVar17 == iVar21) goto LAB_002e2fb8;\n            goto LAB_002e2db4;\n          }\n        }\n        if ((uVar22 != 0x6e) && (uVar7 = uVar26, uVar22 != 0x2007)) goto LAB_002e313c;\nLAB_002e3858:\n        local_60._0_4_ = (uint *)(uVar26 >> 0x20);\n        uVar7 = uVar26;\n        if (uVar19 == 8) {\n          param_1[0x12] = (int)local_60._0_4_;\n          goto LAB_002e313c;\n        }\n        if (uVar19 != 0xe) goto LAB_002e313c;\n        goto LAB_002e387c;\n      }" { (if_statement "if (uVar19 == 10) {\n          local_60._0_4_ = (uint *)((int)local_44 + 1);\n          local_58 = (uint)*(byte *)local_44;\n          local_44 = (uint *)((int)local_60._0_4_ + local_58);\n          goto LAB_002e355c;\n        }" if (parenthesized_expression "(uVar19 == 10)" ( (binary_expression "uVar19 == 10" identifier == number_literal) )) (compound_statement "{\n          local_60._0_4_ = (uint *)((int)local_44 + 1);\n          local_58 = (uint)*(byte *)local_44;\n          local_44 = (uint *)((int)local_60._0_4_ + local_58);\n          goto LAB_002e355c;\n        }" { (expression_statement "local_60._0_4_ = (uint *)((int)local_44 + 1);" (assignment_expression "local_60._0_4_ = (uint *)((int)local_44 + 1)" (field_expression "local_60._0_4_" identifier . field_identifier) = (cast_expression "(uint *)((int)local_44 + 1)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)local_44 + 1)" ( (binary_expression "(int)local_44 + 1" (cast_expression "(int)local_44" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) ;) (expression_statement "local_58 = (uint)*(byte *)local_44;" (assignment_expression "local_58 = (uint)*(byte *)local_44" identifier = (binary_expression "(uint)*(byte *)local_44" (parenthesized_expression "(uint)" ( identifier )) * (cast_expression "(byte *)local_44" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier))) ;) (expression_statement "local_44 = (uint *)((int)local_60._0_4_ + local_58);" (assignment_expression "local_44 = (uint *)((int)local_60._0_4_ + local_58)" identifier = (cast_expression "(uint *)((int)local_60._0_4_ + local_58)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)local_60._0_4_ + local_58)" ( (binary_expression "(int)local_60._0_4_ + local_58" (cast_expression "(int)local_60._0_4_" ( (type_descriptor "int" primitive_type) ) (field_expression "local_60._0_4_" identifier . field_identifier)) + identifier) )))) ;) (goto_statement "goto LAB_002e355c;" goto statement_identifier ;) })) (if_statement "if (uVar19 < 0xb) {\n          if (uVar19 != 8) {\n            if (uVar19 != 9) {\n              return 0;\n            }\nLAB_002e32bc:\n            uVar15 = (uint)*(byte *)local_44;\n            pbVar14 = (byte *)((int)local_44 + 1);\n            if ((char)*(byte *)local_44 < '\0') {\n              (*(code *)PTR_read_unsigned_LEB_128_x_004c2980)(pbVar14,&local_48);\n              pbVar14 = (byte *)((int)local_44 + local_48);\n              uVar15 = extraout_v1_00;\n            }\n            else {\n              local_48 = 1;\n            }\n            uVar26 = CONCAT44(pbVar14,local_60._4_4_);\n            local_58 = uVar15;\n            local_44 = (uint *)((int)local_44 + uVar15 + local_48);\n            goto LAB_002e382c;\n          }\n          local_60._0_4_ = local_44;\n          local_30 = local_44;\n          local_48 = (*(code *)PTR_strlen_004c5b9c)(local_44);\n          uVar26 = CONCAT44(local_60._0_4_,local_60._4_4_);\n          local_44 = (uint *)((int)local_30 + local_48 + 1);\n          uVar7 = CONCAT44(local_60._0_4_,local_60._4_4_);\n          if (uVar22 == 0x31) goto LAB_002e313c;\n          if (0x31 < uVar22) {\n            if ((uVar22 != 0x6e) &&\n               (uVar7 = CONCAT44(local_60._0_4_,local_60._4_4_), uVar22 != 0x2007))\n            goto LAB_002e313c;\n            param_1[0x12] = (int)local_30;\n            uVar7 = uVar26;\n            goto LAB_002e313c;\n          }\nLAB_002e3118:\n          uVar7 = uVar26;\n          if (uVar22 == 1) goto LAB_002e313c;\njoined_r0x002e3124:\n          uVar7 = uVar26;\n          if (uVar22 != 3) goto LAB_002e313c;\n          local_60._0_4_ = (uint *)(uVar26 >> 0x20);\n          if (uVar19 == 8) {\n            param_1[0xf] = (int)local_60._0_4_;\n            goto LAB_002e313c;\n          }\n          if (uVar19 != 0xe) goto LAB_002e313c;\n          goto LAB_002e3284;\n        }" if (parenthesized_expression "(uVar19 < 0xb)" ( (binary_expression "uVar19 < 0xb" identifier < number_literal) )) (compound_statement "{\n          if (uVar19 != 8) {\n            if (uVar19 != 9) {\n              return 0;\n            }\nLAB_002e32bc:\n            uVar15 = (uint)*(byte *)local_44;\n            pbVar14 = (byte *)((int)local_44 + 1);\n            if ((char)*(byte *)local_44 < '\0') {\n              (*(code *)PTR_read_unsigned_LEB_128_x_004c2980)(pbVar14,&local_48);\n              pbVar14 = (byte *)((int)local_44 + local_48);\n              uVar15 = extraout_v1_00;\n            }\n            else {\n              local_48 = 1;\n            }\n            uVar26 = CONCAT44(pbVar14,local_60._4_4_);\n            local_58 = uVar15;\n            local_44 = (uint *)((int)local_44 + uVar15 + local_48);\n            goto LAB_002e382c;\n          }\n          local_60._0_4_ = local_44;\n          local_30 = local_44;\n          local_48 = (*(code *)PTR_strlen_004c5b9c)(local_44);\n          uVar26 = CONCAT44(local_60._0_4_,local_60._4_4_);\n          local_44 = (uint *)((int)local_30 + local_48 + 1);\n          uVar7 = CONCAT44(local_60._0_4_,local_60._4_4_);\n          if (uVar22 == 0x31) goto LAB_002e313c;\n          if (0x31 < uVar22) {\n            if ((uVar22 != 0x6e) &&\n               (uVar7 = CONCAT44(local_60._0_4_,local_60._4_4_), uVar22 != 0x2007))\n            goto LAB_002e313c;\n            param_1[0x12] = (int)local_30;\n            uVar7 = uVar26;\n            goto LAB_002e313c;\n          }\nLAB_002e3118:\n          uVar7 = uVar26;\n          if (uVar22 == 1) goto LAB_002e313c;\njoined_r0x002e3124:\n          uVar7 = uVar26;\n          if (uVar22 != 3) goto LAB_002e313c;\n          local_60._0_4_ = (uint *)(uVar26 >> 0x20);\n          if (uVar19 == 8) {\n            param_1[0xf] = (int)local_60._0_4_;\n            goto LAB_002e313c;\n          }\n          if (uVar19 != 0xe) goto LAB_002e313c;\n          goto LAB_002e3284;\n        }" { (if_statement "if (uVar19 != 8) {\n            if (uVar19 != 9) {\n              return 0;\n            }\nLAB_002e32bc:\n            uVar15 = (uint)*(byte *)local_44;\n            pbVar14 = (byte *)((int)local_44 + 1);\n            if ((char)*(byte *)local_44 < '\0') {\n              (*(code *)PTR_read_unsigned_LEB_128_x_004c2980)(pbVar14,&local_48);\n              pbVar14 = (byte *)((int)local_44 + local_48);\n              uVar15 = extraout_v1_00;\n            }\n            else {\n              local_48 = 1;\n            }\n            uVar26 = CONCAT44(pbVar14,local_60._4_4_);\n            local_58 = uVar15;\n            local_44 = (uint *)((int)local_44 + uVar15 + local_48);\n            goto LAB_002e382c;\n          }" if (parenthesized_expression "(uVar19 != 8)" ( (binary_expression "uVar19 != 8" identifier != number_literal) )) (compound_statement "{\n            if (uVar19 != 9) {\n              return 0;\n            }\nLAB_002e32bc:\n            uVar15 = (uint)*(byte *)local_44;\n            pbVar14 = (byte *)((int)local_44 + 1);\n            if ((char)*(byte *)local_44 < '\0') {\n              (*(code *)PTR_read_unsigned_LEB_128_x_004c2980)(pbVar14,&local_48);\n              pbVar14 = (byte *)((int)local_44 + local_48);\n              uVar15 = extraout_v1_00;\n            }\n            else {\n              local_48 = 1;\n            }\n            uVar26 = CONCAT44(pbVar14,local_60._4_4_);\n            local_58 = uVar15;\n            local_44 = (uint *)((int)local_44 + uVar15 + local_48);\n            goto LAB_002e382c;\n          }" { (if_statement "if (uVar19 != 9) {\n              return 0;\n            }" if (parenthesized_expression "(uVar19 != 9)" ( (binary_expression "uVar19 != 9" identifier != number_literal) )) (compound_statement "{\n              return 0;\n            }" { (return_statement "return 0;" return number_literal ;) })) (labeled_statement "LAB_002e32bc:\n            uVar15 = (uint)*(byte *)local_44;" statement_identifier : (expression_statement "uVar15 = (uint)*(byte *)local_44;" (assignment_expression "uVar15 = (uint)*(byte *)local_44" identifier = (binary_expression "(uint)*(byte *)local_44" (parenthesized_expression "(uint)" ( identifier )) * (cast_expression "(byte *)local_44" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier))) ;)) (expression_statement "pbVar14 = (byte *)((int)local_44 + 1);" (assignment_expression "pbVar14 = (byte *)((int)local_44 + 1)" identifier = (cast_expression "(byte *)((int)local_44 + 1)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)local_44 + 1)" ( (binary_expression "(int)local_44 + 1" (cast_expression "(int)local_44" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) ;) (if_statement "if ((char)*(byte *)local_44 < '\0') {\n              (*(code *)PTR_read_unsigned_LEB_128_x_004c2980)(pbVar14,&local_48);\n              pbVar14 = (byte *)((int)local_44 + local_48);\n              uVar15 = extraout_v1_00;\n            }\n            else {\n              local_48 = 1;\n            }" if (parenthesized_expression "((char)*(byte *)local_44 < '\0')" ( (binary_expression "(char)*(byte *)local_44 < '\0'" (cast_expression "(char)*(byte *)local_44" ( (type_descriptor "char" primitive_type) ) (pointer_expression "*(byte *)local_44" * (cast_expression "(byte *)local_44" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier))) < (char_literal "'\0'" ' escape_sequence ')) )) (compound_statement "{\n              (*(code *)PTR_read_unsigned_LEB_128_x_004c2980)(pbVar14,&local_48);\n              pbVar14 = (byte *)((int)local_44 + local_48);\n              uVar15 = extraout_v1_00;\n            }" { (expression_statement "(*(code *)PTR_read_unsigned_LEB_128_x_004c2980)(pbVar14,&local_48);" (call_expression "(*(code *)PTR_read_unsigned_LEB_128_x_004c2980)(pbVar14,&local_48)" (parenthesized_expression "(*(code *)PTR_read_unsigned_LEB_128_x_004c2980)" ( (pointer_expression "*(code *)PTR_read_unsigned_LEB_128_x_004c2980" * (cast_expression "(code *)PTR_read_unsigned_LEB_128_x_004c2980" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(pbVar14,&local_48)" ( identifier , (pointer_expression "&local_48" & identifier) ))) ;) (expression_statement "pbVar14 = (byte *)((int)local_44 + local_48);" (assignment_expression "pbVar14 = (byte *)((int)local_44 + local_48)" identifier = (cast_expression "(byte *)((int)local_44 + local_48)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)local_44 + local_48)" ( (binary_expression "(int)local_44 + local_48" (cast_expression "(int)local_44" ( (type_descriptor "int" primitive_type) ) identifier) + identifier) )))) ;) (expression_statement "uVar15 = extraout_v1_00;" (assignment_expression "uVar15 = extraout_v1_00" identifier = identifier) ;) }) (else_clause "else {\n              local_48 = 1;\n            }" else (compound_statement "{\n              local_48 = 1;\n            }" { (expression_statement "local_48 = 1;" (assignment_expression "local_48 = 1" identifier = number_literal) ;) }))) (expression_statement "uVar26 = CONCAT44(pbVar14,local_60._4_4_);" (assignment_expression "uVar26 = CONCAT44(pbVar14,local_60._4_4_)" identifier = (call_expression "CONCAT44(pbVar14,local_60._4_4_)" identifier (argument_list "(pbVar14,local_60._4_4_)" ( identifier , (field_expression "local_60._4_4_" identifier . field_identifier) )))) ;) (expression_statement "local_58 = uVar15;" (assignment_expression "local_58 = uVar15" identifier = identifier) ;) (expression_statement "local_44 = (uint *)((int)local_44 + uVar15 + local_48);" (assignment_expression "local_44 = (uint *)((int)local_44 + uVar15 + local_48)" identifier = (cast_expression "(uint *)((int)local_44 + uVar15 + local_48)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)local_44 + uVar15 + local_48)" ( (binary_expression "(int)local_44 + uVar15 + local_48" (binary_expression "(int)local_44 + uVar15" (cast_expression "(int)local_44" ( (type_descriptor "int" primitive_type) ) identifier) + identifier) + identifier) )))) ;) (goto_statement "goto LAB_002e382c;" goto statement_identifier ;) })) (expression_statement "local_60._0_4_ = local_44;" (assignment_expression "local_60._0_4_ = local_44" (field_expression "local_60._0_4_" identifier . field_identifier) = identifier) ;) (expression_statement "local_30 = local_44;" (assignment_expression "local_30 = local_44" identifier = identifier) ;) (expression_statement "local_48 = (*(code *)PTR_strlen_004c5b9c)(local_44);" (assignment_expression "local_48 = (*(code *)PTR_strlen_004c5b9c)(local_44)" identifier = (call_expression "(*(code *)PTR_strlen_004c5b9c)(local_44)" (parenthesized_expression "(*(code *)PTR_strlen_004c5b9c)" ( (pointer_expression "*(code *)PTR_strlen_004c5b9c" * (cast_expression "(code *)PTR_strlen_004c5b9c" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(local_44)" ( identifier )))) ;) (expression_statement "uVar26 = CONCAT44(local_60._0_4_,local_60._4_4_);" (assignment_expression "uVar26 = CONCAT44(local_60._0_4_,local_60._4_4_)" identifier = (call_expression "CONCAT44(local_60._0_4_,local_60._4_4_)" identifier (argument_list "(local_60._0_4_,local_60._4_4_)" ( (field_expression "local_60._0_4_" identifier . field_identifier) , (field_expression "local_60._4_4_" identifier . field_identifier) )))) ;) (expression_statement "local_44 = (uint *)((int)local_30 + local_48 + 1);" (assignment_expression "local_44 = (uint *)((int)local_30 + local_48 + 1)" identifier = (cast_expression "(uint *)((int)local_30 + local_48 + 1)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)local_30 + local_48 + 1)" ( (binary_expression "(int)local_30 + local_48 + 1" (binary_expression "(int)local_30 + local_48" (cast_expression "(int)local_30" ( (type_descriptor "int" primitive_type) ) identifier) + identifier) + number_literal) )))) ;) (expression_statement "uVar7 = CONCAT44(local_60._0_4_,local_60._4_4_);" (assignment_expression "uVar7 = CONCAT44(local_60._0_4_,local_60._4_4_)" identifier = (call_expression "CONCAT44(local_60._0_4_,local_60._4_4_)" identifier (argument_list "(local_60._0_4_,local_60._4_4_)" ( (field_expression "local_60._0_4_" identifier . field_identifier) , (field_expression "local_60._4_4_" identifier . field_identifier) )))) ;) (if_statement "if (uVar22 == 0x31) goto LAB_002e313c;" if (parenthesized_expression "(uVar22 == 0x31)" ( (binary_expression "uVar22 == 0x31" identifier == number_literal) )) (goto_statement "goto LAB_002e313c;" goto statement_identifier ;)) (if_statement "if (0x31 < uVar22) {\n            if ((uVar22 != 0x6e) &&\n               (uVar7 = CONCAT44(local_60._0_4_,local_60._4_4_), uVar22 != 0x2007))\n            goto LAB_002e313c;\n            param_1[0x12] = (int)local_30;\n            uVar7 = uVar26;\n            goto LAB_002e313c;\n          }" if (parenthesized_expression "(0x31 < uVar22)" ( (binary_expression "0x31 < uVar22" number_literal < identifier) )) (compound_statement "{\n            if ((uVar22 != 0x6e) &&\n               (uVar7 = CONCAT44(local_60._0_4_,local_60._4_4_), uVar22 != 0x2007))\n            goto LAB_002e313c;\n            param_1[0x12] = (int)local_30;\n            uVar7 = uVar26;\n            goto LAB_002e313c;\n          }" { (if_statement "if ((uVar22 != 0x6e) &&\n               (uVar7 = CONCAT44(local_60._0_4_,local_60._4_4_), uVar22 != 0x2007))\n            goto LAB_002e313c;" if (parenthesized_expression "((uVar22 != 0x6e) &&\n               (uVar7 = CONCAT44(local_60._0_4_,local_60._4_4_), uVar22 != 0x2007))" ( (binary_expression "(uVar22 != 0x6e) &&\n               (uVar7 = CONCAT44(local_60._0_4_,local_60._4_4_), uVar22 != 0x2007)" (parenthesized_expression "(uVar22 != 0x6e)" ( (binary_expression "uVar22 != 0x6e" identifier != number_literal) )) && (parenthesized_expression "(uVar7 = CONCAT44(local_60._0_4_,local_60._4_4_), uVar22 != 0x2007)" ( (comma_expression "uVar7 = CONCAT44(local_60._0_4_,local_60._4_4_), uVar22 != 0x2007" (assignment_expression "uVar7 = CONCAT44(local_60._0_4_,local_60._4_4_)" identifier = (call_expression "CONCAT44(local_60._0_4_,local_60._4_4_)" identifier (argument_list "(local_60._0_4_,local_60._4_4_)" ( (field_expression "local_60._0_4_" identifier . field_identifier) , (field_expression "local_60._4_4_" identifier . field_identifier) )))) , (binary_expression "uVar22 != 0x2007" identifier != number_literal)) ))) )) (goto_statement "goto LAB_002e313c;" goto statement_identifier ;)) (expression_statement "param_1[0x12] = (int)local_30;" (assignment_expression "param_1[0x12] = (int)local_30" (subscript_expression "param_1[0x12]" identifier [ number_literal ]) = (cast_expression "(int)local_30" ( (type_descriptor "int" primitive_type) ) identifier)) ;) (expression_statement "uVar7 = uVar26;" (assignment_expression "uVar7 = uVar26" identifier = identifier) ;) (goto_statement "goto LAB_002e313c;" goto statement_identifier ;) })) (labeled_statement "LAB_002e3118:\n          uVar7 = uVar26;" statement_identifier : (expression_statement "uVar7 = uVar26;" (assignment_expression "uVar7 = uVar26" identifier = identifier) ;)) (if_statement "if (uVar22 == 1) goto LAB_002e313c;" if (parenthesized_expression "(uVar22 == 1)" ( (binary_expression "uVar22 == 1" identifier == number_literal) )) (goto_statement "goto LAB_002e313c;" goto statement_identifier ;)) (labeled_statement "joined_r0x002e3124:\n          uVar7 = uVar26;" statement_identifier : (expression_statement "uVar7 = uVar26;" (assignment_expression "uVar7 = uVar26" identifier = identifier) ;)) (if_statement "if (uVar22 != 3) goto LAB_002e313c;" if (parenthesized_expression "(uVar22 != 3)" ( (binary_expression "uVar22 != 3" identifier != number_literal) )) (goto_statement "goto LAB_002e313c;" goto statement_identifier ;)) (expression_statement "local_60._0_4_ = (uint *)(uVar26 >> 0x20);" (assignment_expression "local_60._0_4_ = (uint *)(uVar26 >> 0x20)" (field_expression "local_60._0_4_" identifier . field_identifier) = (cast_expression "(uint *)(uVar26 >> 0x20)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(uVar26 >> 0x20)" ( (binary_expression "uVar26 >> 0x20" identifier >> number_literal) )))) ;) (if_statement "if (uVar19 == 8) {\n            param_1[0xf] = (int)local_60._0_4_;\n            goto LAB_002e313c;\n          }" if (parenthesized_expression "(uVar19 == 8)" ( (binary_expression "uVar19 == 8" identifier == number_literal) )) (compound_statement "{\n            param_1[0xf] = (int)local_60._0_4_;\n            goto LAB_002e313c;\n          }" { (expression_statement "param_1[0xf] = (int)local_60._0_4_;" (assignment_expression "param_1[0xf] = (int)local_60._0_4_" (subscript_expression "param_1[0xf]" identifier [ number_literal ]) = (cast_expression "(int)local_60._0_4_" ( (type_descriptor "int" primitive_type) ) (field_expression "local_60._0_4_" identifier . field_identifier))) ;) (goto_statement "goto LAB_002e313c;" goto statement_identifier ;) })) (if_statement "if (uVar19 != 0xe) goto LAB_002e313c;" if (parenthesized_expression "(uVar19 != 0xe)" ( (binary_expression "uVar19 != 0xe" identifier != number_literal) )) (goto_statement "goto LAB_002e313c;" goto statement_identifier ;)) (goto_statement "goto LAB_002e3284;" goto statement_identifier ;) })) (if_statement "if (uVar19 < 0xd) {\n          uVar26 = (ulonglong)*(byte *)local_44;\n          local_44 = (uint *)((int)local_44 + 1);\nLAB_002e382c:\n          uVar7 = uVar26;\n          if (uVar22 == 0x31) goto LAB_002e313c;\n          if (uVar22 < 0x32) goto LAB_002e3118;\n        }\n        else {\n          bVar1 = *(byte *)local_44;\n          uVar15 = (uint)bVar1;\n          puVar9 = (uint *)((int)local_44 + 1);\n          if ((char)bVar1 < '\0') {\n            uVar26 = (*(code *)PTR_read_signed_LEB_128_x_004c297c)(puVar9,&local_48,uVar15);\n            puVar9 = (uint *)((int)local_44 + local_48);\n          }\n          else {\n            local_48 = 1;\n            uVar26 = (ulonglong)uVar15;\n            if ((bVar1 & 0x40) != 0) {\n              uVar26 = CONCAT44(0xffffffff,uVar15 | 0xffffff80);\n            }\n          }\n          local_44 = puVar9;\n          uVar7 = uVar26;\n          if (uVar22 == 0x31) goto LAB_002e313c;\n          if (uVar22 < 0x32) {\n            puVar9 = (uint *)param_1[0xc];\n            if (puVar9 != (uint *)param_1[0xd]) goto LAB_002e314c;\nLAB_002e2f98:\n            iVar17 = iVar17 + 8;\n            local_60 = uVar26;\n            std::\n            vector<gold::Dwarf_die::Attribute_value,std::allocator<gold::Dwarf_die::Attribute_value>>\n            ::_M_realloc_insert<gold::Dwarf_die::Attribute_value_const&>(local_38,puVar9,&local_68);\n            iVar8 = param_1[10];\n            if (iVar17 == iVar21) goto LAB_002e2fb8;\n            goto LAB_002e2db4;\n          }\n        }" if (parenthesized_expression "(uVar19 < 0xd)" ( (binary_expression "uVar19 < 0xd" identifier < number_literal) )) (compound_statement "{\n          uVar26 = (ulonglong)*(byte *)local_44;\n          local_44 = (uint *)((int)local_44 + 1);\nLAB_002e382c:\n          uVar7 = uVar26;\n          if (uVar22 == 0x31) goto LAB_002e313c;\n          if (uVar22 < 0x32) goto LAB_002e3118;\n        }" { (expression_statement "uVar26 = (ulonglong)*(byte *)local_44;" (assignment_expression "uVar26 = (ulonglong)*(byte *)local_44" identifier = (binary_expression "(ulonglong)*(byte *)local_44" (parenthesized_expression "(ulonglong)" ( identifier )) * (cast_expression "(byte *)local_44" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier))) ;) (expression_statement "local_44 = (uint *)((int)local_44 + 1);" (assignment_expression "local_44 = (uint *)((int)local_44 + 1)" identifier = (cast_expression "(uint *)((int)local_44 + 1)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)local_44 + 1)" ( (binary_expression "(int)local_44 + 1" (cast_expression "(int)local_44" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) ;) (labeled_statement "LAB_002e382c:\n          uVar7 = uVar26;" statement_identifier : (expression_statement "uVar7 = uVar26;" (assignment_expression "uVar7 = uVar26" identifier = identifier) ;)) (if_statement "if (uVar22 == 0x31) goto LAB_002e313c;" if (parenthesized_expression "(uVar22 == 0x31)" ( (binary_expression "uVar22 == 0x31" identifier == number_literal) )) (goto_statement "goto LAB_002e313c;" goto statement_identifier ;)) (if_statement "if (uVar22 < 0x32) goto LAB_002e3118;" if (parenthesized_expression "(uVar22 < 0x32)" ( (binary_expression "uVar22 < 0x32" identifier < number_literal) )) (goto_statement "goto LAB_002e3118;" goto statement_identifier ;)) }) (else_clause "else {\n          bVar1 = *(byte *)local_44;\n          uVar15 = (uint)bVar1;\n          puVar9 = (uint *)((int)local_44 + 1);\n          if ((char)bVar1 < '\0') {\n            uVar26 = (*(code *)PTR_read_signed_LEB_128_x_004c297c)(puVar9,&local_48,uVar15);\n            puVar9 = (uint *)((int)local_44 + local_48);\n          }\n          else {\n            local_48 = 1;\n            uVar26 = (ulonglong)uVar15;\n            if ((bVar1 & 0x40) != 0) {\n              uVar26 = CONCAT44(0xffffffff,uVar15 | 0xffffff80);\n            }\n          }\n          local_44 = puVar9;\n          uVar7 = uVar26;\n          if (uVar22 == 0x31) goto LAB_002e313c;\n          if (uVar22 < 0x32) {\n            puVar9 = (uint *)param_1[0xc];\n            if (puVar9 != (uint *)param_1[0xd]) goto LAB_002e314c;\nLAB_002e2f98:\n            iVar17 = iVar17 + 8;\n            local_60 = uVar26;\n            std::\n            vector<gold::Dwarf_die::Attribute_value,std::allocator<gold::Dwarf_die::Attribute_value>>\n            ::_M_realloc_insert<gold::Dwarf_die::Attribute_value_const&>(local_38,puVar9,&local_68);\n            iVar8 = param_1[10];\n            if (iVar17 == iVar21) goto LAB_002e2fb8;\n            goto LAB_002e2db4;\n          }\n        }" else (compound_statement "{\n          bVar1 = *(byte *)local_44;\n          uVar15 = (uint)bVar1;\n          puVar9 = (uint *)((int)local_44 + 1);\n          if ((char)bVar1 < '\0') {\n            uVar26 = (*(code *)PTR_read_signed_LEB_128_x_004c297c)(puVar9,&local_48,uVar15);\n            puVar9 = (uint *)((int)local_44 + local_48);\n          }\n          else {\n            local_48 = 1;\n            uVar26 = (ulonglong)uVar15;\n            if ((bVar1 & 0x40) != 0) {\n              uVar26 = CONCAT44(0xffffffff,uVar15 | 0xffffff80);\n            }\n          }\n          local_44 = puVar9;\n          uVar7 = uVar26;\n          if (uVar22 == 0x31) goto LAB_002e313c;\n          if (uVar22 < 0x32) {\n            puVar9 = (uint *)param_1[0xc];\n            if (puVar9 != (uint *)param_1[0xd]) goto LAB_002e314c;\nLAB_002e2f98:\n            iVar17 = iVar17 + 8;\n            local_60 = uVar26;\n            std::\n            vector<gold::Dwarf_die::Attribute_value,std::allocator<gold::Dwarf_die::Attribute_value>>\n            ::_M_realloc_insert<gold::Dwarf_die::Attribute_value_const&>(local_38,puVar9,&local_68);\n            iVar8 = param_1[10];\n            if (iVar17 == iVar21) goto LAB_002e2fb8;\n            goto LAB_002e2db4;\n          }\n        }" { (expression_statement "bVar1 = *(byte *)local_44;" (assignment_expression "bVar1 = *(byte *)local_44" identifier = (pointer_expression "*(byte *)local_44" * (cast_expression "(byte *)local_44" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier))) ;) (expression_statement "uVar15 = (uint)bVar1;" (assignment_expression "uVar15 = (uint)bVar1" identifier = (cast_expression "(uint)bVar1" ( (type_descriptor "uint" type_identifier) ) identifier)) ;) (expression_statement "puVar9 = (uint *)((int)local_44 + 1);" (assignment_expression "puVar9 = (uint *)((int)local_44 + 1)" identifier = (cast_expression "(uint *)((int)local_44 + 1)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)local_44 + 1)" ( (binary_expression "(int)local_44 + 1" (cast_expression "(int)local_44" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) ;) (if_statement "if ((char)bVar1 < '\0') {\n            uVar26 = (*(code *)PTR_read_signed_LEB_128_x_004c297c)(puVar9,&local_48,uVar15);\n            puVar9 = (uint *)((int)local_44 + local_48);\n          }\n          else {\n            local_48 = 1;\n            uVar26 = (ulonglong)uVar15;\n            if ((bVar1 & 0x40) != 0) {\n              uVar26 = CONCAT44(0xffffffff,uVar15 | 0xffffff80);\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            uVar26 = (*(code *)PTR_read_signed_LEB_128_x_004c297c)(puVar9,&local_48,uVar15);\n            puVar9 = (uint *)((int)local_44 + local_48);\n          }" { (expression_statement "uVar26 = (*(code *)PTR_read_signed_LEB_128_x_004c297c)(puVar9,&local_48,uVar15);" (assignment_expression "uVar26 = (*(code *)PTR_read_signed_LEB_128_x_004c297c)(puVar9,&local_48,uVar15)" identifier = (call_expression "(*(code *)PTR_read_signed_LEB_128_x_004c297c)(puVar9,&local_48,uVar15)" (parenthesized_expression "(*(code *)PTR_read_signed_LEB_128_x_004c297c)" ( (pointer_expression "*(code *)PTR_read_signed_LEB_128_x_004c297c" * (cast_expression "(code *)PTR_read_signed_LEB_128_x_004c297c" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(puVar9,&local_48,uVar15)" ( identifier , (pointer_expression "&local_48" & identifier) , identifier )))) ;) (expression_statement "puVar9 = (uint *)((int)local_44 + local_48);" (assignment_expression "puVar9 = (uint *)((int)local_44 + local_48)" identifier = (cast_expression "(uint *)((int)local_44 + local_48)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)local_44 + local_48)" ( (binary_expression "(int)local_44 + local_48" (cast_expression "(int)local_44" ( (type_descriptor "int" primitive_type) ) identifier) + identifier) )))) ;) }) (else_clause "else {\n            local_48 = 1;\n            uVar26 = (ulonglong)uVar15;\n            if ((bVar1 & 0x40) != 0) {\n              uVar26 = CONCAT44(0xffffffff,uVar15 | 0xffffff80);\n            }\n          }" else (compound_statement "{\n            local_48 = 1;\n            uVar26 = (ulonglong)uVar15;\n            if ((bVar1 & 0x40) != 0) {\n              uVar26 = CONCAT44(0xffffffff,uVar15 | 0xffffff80);\n            }\n          }" { (expression_statement "local_48 = 1;" (assignment_expression "local_48 = 1" identifier = number_literal) ;) (expression_statement "uVar26 = (ulonglong)uVar15;" (assignment_expression "uVar26 = (ulonglong)uVar15" identifier = (cast_expression "(ulonglong)uVar15" ( (type_descriptor "ulonglong" type_identifier) ) identifier)) ;) (if_statement "if ((bVar1 & 0x40) != 0) {\n              uVar26 = CONCAT44(0xffffffff,uVar15 | 0xffffff80);\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              uVar26 = CONCAT44(0xffffffff,uVar15 | 0xffffff80);\n            }" { (expression_statement "uVar26 = CONCAT44(0xffffffff,uVar15 | 0xffffff80);" (assignment_expression "uVar26 = CONCAT44(0xffffffff,uVar15 | 0xffffff80)" identifier = (call_expression "CONCAT44(0xffffffff,uVar15 | 0xffffff80)" identifier (argument_list "(0xffffffff,uVar15 | 0xffffff80)" ( number_literal , (binary_expression "uVar15 | 0xffffff80" identifier | number_literal) )))) ;) })) }))) (expression_statement "local_44 = puVar9;" (assignment_expression "local_44 = puVar9" identifier = identifier) ;) (expression_statement "uVar7 = uVar26;" (assignment_expression "uVar7 = uVar26" identifier = identifier) ;) (if_statement "if (uVar22 == 0x31) goto LAB_002e313c;" if (parenthesized_expression "(uVar22 == 0x31)" ( (binary_expression "uVar22 == 0x31" identifier == number_literal) )) (goto_statement "goto LAB_002e313c;" goto statement_identifier ;)) (if_statement "if (uVar22 < 0x32) {\n            puVar9 = (uint *)param_1[0xc];\n            if (puVar9 != (uint *)param_1[0xd]) goto LAB_002e314c;\nLAB_002e2f98:\n            iVar17 = iVar17 + 8;\n            local_60 = uVar26;\n            std::\n            vector<gold::Dwarf_die::Attribute_value,std::allocator<gold::Dwarf_die::Attribute_value>>\n            ::_M_realloc_insert<gold::Dwarf_die::Attribute_value_const&>(local_38,puVar9,&local_68);\n            iVar8 = param_1[10];\n            if (iVar17 == iVar21) goto LAB_002e2fb8;\n            goto LAB_002e2db4;\n          }" if (parenthesized_expression "(uVar22 < 0x32)" ( (binary_expression "uVar22 < 0x32" identifier < number_literal) )) (compound_statement "{\n            puVar9 = (uint *)param_1[0xc];\n            if (puVar9 != (uint *)param_1[0xd]) goto LAB_002e314c;\nLAB_002e2f98:\n            iVar17 = iVar17 + 8;\n            local_60 = uVar26;\n            std::\n            vector<gold::Dwarf_die::Attribute_value,std::allocator<gold::Dwarf_die::Attribute_value>>\n            ::_M_realloc_insert<gold::Dwarf_die::Attribute_value_const&>(local_38,puVar9,&local_68);\n            iVar8 = param_1[10];\n            if (iVar17 == iVar21) goto LAB_002e2fb8;\n            goto LAB_002e2db4;\n          }" { (expression_statement "puVar9 = (uint *)param_1[0xc];" (assignment_expression "puVar9 = (uint *)param_1[0xc]" identifier = (cast_expression "(uint *)param_1[0xc]" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (subscript_expression "param_1[0xc]" identifier [ number_literal ]))) ;) (if_statement "if (puVar9 != (uint *)param_1[0xd]) goto LAB_002e314c;" if (parenthesized_expression "(puVar9 != (uint *)param_1[0xd])" ( (binary_expression "puVar9 != (uint *)param_1[0xd]" identifier != (cast_expression "(uint *)param_1[0xd]" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (subscript_expression "param_1[0xd]" identifier [ number_literal ]))) )) (goto_statement "goto LAB_002e314c;" goto statement_identifier ;)) (labeled_statement "LAB_002e2f98:\n            iVar17 = iVar17 + 8;" statement_identifier : (expression_statement "iVar17 = iVar17 + 8;" (assignment_expression "iVar17 = iVar17 + 8" identifier = (binary_expression "iVar17 + 8" identifier + number_literal)) ;)) (expression_statement "local_60 = uVar26;" (assignment_expression "local_60 = uVar26" identifier = identifier) ;) (labeled_statement "std::\n            vector<gold::Dwarf_die::Attribute_value,std::allocator<gold::Dwarf_die::Attribute_value>>\n            ::_M_realloc_insert<gold::Dwarf_die::Attribute_value_const&>(local_38,puVar9,&local_68);" 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<gold::Dwarf_die::Attribute_value_const&>(local_38,puVar9,&local_68);" 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<gold::Dwarf_die::Attribute_value_const&>(local_38,puVar9,&local_68);" statement_identifier (ERROR "::Attribute_value>>\n            ::_M_realloc_insert<gold:" : : identifier >> : : (binary_expression "_M_realloc_insert<gold" identifier < identifier) :) : (labeled_statement "Dwarf_die::Attribute_value_const&>(local_38,puVar9,&local_68);" statement_identifier : (ERROR ":" :) (expression_statement "Attribute_value_const&>(local_38,puVar9,&local_68);" (binary_expression "Attribute_value_const&>(local_38,puVar9,&local_68)" identifier (ERROR "&" &) > (parenthesized_expression "(local_38,puVar9,&local_68)" ( (comma_expression "local_38,puVar9,&local_68" identifier , (comma_expression "puVar9,&local_68" identifier , (pointer_expression "&local_68" & identifier))) ))) ;))))) (expression_statement "iVar8 = param_1[10];" (assignment_expression "iVar8 = param_1[10]" identifier = (subscript_expression "param_1[10]" identifier [ number_literal ])) ;) (if_statement "if (iVar17 == iVar21) goto LAB_002e2fb8;" if (parenthesized_expression "(iVar17 == iVar21)" ( (binary_expression "iVar17 == iVar21" identifier == identifier) )) (goto_statement "goto LAB_002e2fb8;" goto statement_identifier ;)) (goto_statement "goto LAB_002e2db4;" goto statement_identifier ;) })) }))) (if_statement "if ((uVar22 != 0x6e) && (uVar7 = uVar26, uVar22 != 0x2007)) goto LAB_002e313c;" if (parenthesized_expression "((uVar22 != 0x6e) && (uVar7 = uVar26, uVar22 != 0x2007))" ( (binary_expression "(uVar22 != 0x6e) && (uVar7 = uVar26, uVar22 != 0x2007)" (parenthesized_expression "(uVar22 != 0x6e)" ( (binary_expression "uVar22 != 0x6e" identifier != number_literal) )) && (parenthesized_expression "(uVar7 = uVar26, uVar22 != 0x2007)" ( (comma_expression "uVar7 = uVar26, uVar22 != 0x2007" (assignment_expression "uVar7 = uVar26" identifier = identifier) , (binary_expression "uVar22 != 0x2007" identifier != number_literal)) ))) )) (goto_statement "goto LAB_002e313c;" goto statement_identifier ;)) (labeled_statement "LAB_002e3858:\n        local_60._0_4_ = (uint *)(uVar26 >> 0x20);" statement_identifier : (expression_statement "local_60._0_4_ = (uint *)(uVar26 >> 0x20);" (assignment_expression "local_60._0_4_ = (uint *)(uVar26 >> 0x20)" (field_expression "local_60._0_4_" identifier . field_identifier) = (cast_expression "(uint *)(uVar26 >> 0x20)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(uVar26 >> 0x20)" ( (binary_expression "uVar26 >> 0x20" identifier >> number_literal) )))) ;)) (expression_statement "uVar7 = uVar26;" (assignment_expression "uVar7 = uVar26" identifier = identifier) ;) (if_statement "if (uVar19 == 8) {\n          param_1[0x12] = (int)local_60._0_4_;\n          goto LAB_002e313c;\n        }" if (parenthesized_expression "(uVar19 == 8)" ( (binary_expression "uVar19 == 8" identifier == number_literal) )) (compound_statement "{\n          param_1[0x12] = (int)local_60._0_4_;\n          goto LAB_002e313c;\n        }" { (expression_statement "param_1[0x12] = (int)local_60._0_4_;" (assignment_expression "param_1[0x12] = (int)local_60._0_4_" (subscript_expression "param_1[0x12]" identifier [ number_literal ]) = (cast_expression "(int)local_60._0_4_" ( (type_descriptor "int" primitive_type) ) (field_expression "local_60._0_4_" identifier . field_identifier))) ;) (goto_statement "goto LAB_002e313c;" goto statement_identifier ;) })) (if_statement "if (uVar19 != 0xe) goto LAB_002e313c;" if (parenthesized_expression "(uVar19 != 0xe)" ( (binary_expression "uVar19 != 0xe" identifier != number_literal) )) (goto_statement "goto LAB_002e313c;" goto statement_identifier ;)) (goto_statement "goto LAB_002e387c;" goto statement_identifier ;) })) (if_statement "if (uVar19 == 4) {\n        pcVar25 = *(code **)(**(int **)(*param_1 + 8) + 0xc);\n        if (pcVar25 == (code *)PTR_is_big_endian_004c2950) {\n          iVar8 = (**(code **)(**(int **)(*param_1 + 8) + 0xe8))();\n        }\n        else {\n          iVar8 = (*pcVar25)();\n        }\n        local_58 = *local_44;\n        if (iVar8 == 0) {\n          local_58 = (((local_58 >> 0x10) << 0x18 | (local_58 >> 0x18) << 0x10) >> 0x10) +\n                     ((local_58 & 0xff) << 8 | local_58 >> 8 & 0xff) * 0x10000;\n        }\n        local_60._0_4_ = local_44 + 1;\n        local_44 = (uint *)((int)local_60._0_4_ + local_58);\nLAB_002e355c:\n        uVar26 = CONCAT44(local_60._0_4_,local_60._4_4_);\n        uVar7 = uVar26;\n        if (uVar22 == 0x31) goto LAB_002e313c;\n        if (uVar22 < 0x32) goto LAB_002e3118;\n        puVar9 = (uint *)param_1[0xc];\n      }\n      else {\n        if (4 < uVar19) {\n          if (uVar19 != 5) {\n            if (uVar19 != 6) {\n              return 0;\n            }\n            pcVar25 = *(code **)(**(int **)(*param_1 + 8) + 0xc);\n            if (pcVar25 == (code *)PTR_is_big_endian_004c2950) {\n              local_30 = puVar18;\n              iVar10 = (**(code **)(**(int **)(*param_1 + 8) + 0xe8))();\n            }\n            else {\n              local_30 = puVar18;\n              iVar10 = (*pcVar25)();\n            }\n            puVar9 = (uint *)*local_44;\n            if (iVar10 == 0) {\n              puVar9 = (uint *)(((((uint)puVar9 >> 0x10) << 0x18 | ((uint)puVar9 >> 0x18) << 0x10)\n                                >> 0x10) +\n                               (((uint)puVar9 & 0xff) << 8 | (uint)puVar9 >> 8 & 0xff) * 0x10000);\n            }\n            local_44 = local_44 + 1;\n            iVar10 = *param_1;\n            local_50._0_4_ = (uint *)0x0;\n            local_50._4_4_ = puVar9;\n            goto LAB_002e3708;\n          }\n          pcVar25 = *(code **)(**(int **)(*param_1 + 8) + 0xc);\n          if (pcVar25 == (code *)PTR_is_big_endian_004c2950) {\n            iVar8 = (**(code **)(**(int **)(*param_1 + 8) + 0xe8))();\n          }\n          else {\n            iVar8 = (*pcVar25)();\n          }\n          uVar6 = *(ushort *)local_44;\n          if (iVar8 == 0) {\n            uVar6 = CONCAT11(*(byte *)((int)local_44 + 1),*(byte *)local_44);\n          }\n          local_60._4_4_ = (uint *)(uint)uVar6;\n          local_44 = (uint *)((int)local_44 + 2);\n          local_60._0_4_ = (uint *)0x0;\n          goto LAB_002e355c;\n        }\n        if (uVar19 != 1) {\n          if (uVar19 != 3) {\n            return 0;\n          }\n          pcVar25 = *(code **)(**(int **)(*param_1 + 8) + 0xc);\n          if (pcVar25 == (code *)PTR_is_big_endian_004c2950) {\n            iVar8 = (**(code **)(**(int **)(*param_1 + 8) + 0xe8))();\n          }\n          else {\n            iVar8 = (*pcVar25)();\n          }\n          uVar6 = *(ushort *)local_44;\n          if (iVar8 == 0) {\n            uVar6 = CONCAT11(*(byte *)((int)local_44 + 1),*(byte *)local_44);\n          }\n          local_58 = (uint)uVar6;\n          local_60._0_4_ = (uint *)((int)local_44 + 2);\n          local_44 = (uint *)((int)local_60._0_4_ + local_58);\n          goto LAB_002e355c;\n        }\n        iVar8 = *param_1;\n        if (*(int *)(iVar8 + 0x4c) == 4) {\n          pcVar25 = *(code **)(**(int **)(iVar8 + 8) + 0xc);\n          if (pcVar25 == (code *)PTR_is_big_endian_004c2950) {\n            local_30 = puVar18;\n            iVar8 = (**(code **)(**(int **)(iVar8 + 8) + 0xe8))();\n          }\n          else {\n            local_30 = puVar18;\n            iVar8 = (*pcVar25)();\n          }\n          uVar15 = *local_44;\n          if (iVar8 == 0) {\n            uVar15 = (((uVar15 >> 0x10) << 0x18 | (uVar15 >> 0x18) << 0x10) >> 0x10) +\n                     ((uVar15 & 0xff) << 8 | uVar15 >> 8 & 0xff) * 0x10000;\n          }\n          local_44 = local_44 + 1;\n          uVar26 = (ulonglong)uVar15;\n        }\n        else {\n          local_30 = puVar18;\n          uVar26 = (*local_34)(iVar8,&local_44);\n        }\n        local_50 = uVar26;\n        local_58 = (*local_3c)(*param_1);\n        uVar26 = local_50;\n        if (uVar22 == 0x31) goto LAB_002e30bc;\n        if (uVar22 < 0x32) {\n          if (uVar22 != 1) goto joined_r0x002e3124;\n          goto LAB_002e39b4;\n        }\n        uVar7 = local_50;\n        if (uVar22 == 0x6e) goto LAB_002e313c;\n        if (uVar22 != 0x2007) goto LAB_002e339c;\n        puVar9 = (uint *)param_1[0xc];\n      }" if (parenthesized_expression "(uVar19 == 4)" ( (binary_expression "uVar19 == 4" identifier == number_literal) )) (compound_statement "{\n        pcVar25 = *(code **)(**(int **)(*param_1 + 8) + 0xc);\n        if (pcVar25 == (code *)PTR_is_big_endian_004c2950) {\n          iVar8 = (**(code **)(**(int **)(*param_1 + 8) + 0xe8))();\n        }\n        else {\n          iVar8 = (*pcVar25)();\n        }\n        local_58 = *local_44;\n        if (iVar8 == 0) {\n          local_58 = (((local_58 >> 0x10) << 0x18 | (local_58 >> 0x18) << 0x10) >> 0x10) +\n                     ((local_58 & 0xff) << 8 | local_58 >> 8 & 0xff) * 0x10000;\n        }\n        local_60._0_4_ = local_44 + 1;\n        local_44 = (uint *)((int)local_60._0_4_ + local_58);\nLAB_002e355c:\n        uVar26 = CONCAT44(local_60._0_4_,local_60._4_4_);\n        uVar7 = uVar26;\n        if (uVar22 == 0x31) goto LAB_002e313c;\n        if (uVar22 < 0x32) goto LAB_002e3118;\n        puVar9 = (uint *)param_1[0xc];\n      }" { (expression_statement "pcVar25 = *(code **)(**(int **)(*param_1 + 8) + 0xc);" (assignment_expression "pcVar25 = *(code **)(**(int **)(*param_1 + 8) + 0xc)" identifier = (pointer_expression "*(code **)(**(int **)(*param_1 + 8) + 0xc)" * (cast_expression "(code **)(**(int **)(*param_1 + 8) + 0xc)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(**(int **)(*param_1 + 8) + 0xc)" ( (binary_expression "**(int **)(*param_1 + 8) + 0xc" (pointer_expression "**(int **)(*param_1 + 8)" * (pointer_expression "*(int **)(*param_1 + 8)" * (cast_expression "(int **)(*param_1 + 8)" ( (type_descriptor "int **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(*param_1 + 8)" ( (binary_expression "*param_1 + 8" (pointer_expression "*param_1" * identifier) + number_literal) ))))) + number_literal) ))))) ;) (if_statement "if (pcVar25 == (code *)PTR_is_big_endian_004c2950) {\n          iVar8 = (**(code **)(**(int **)(*param_1 + 8) + 0xe8))();\n        }\n        else {\n          iVar8 = (*pcVar25)();\n        }" if (parenthesized_expression "(pcVar25 == (code *)PTR_is_big_endian_004c2950)" ( (binary_expression "pcVar25 == (code *)PTR_is_big_endian_004c2950" identifier == (cast_expression "(code *)PTR_is_big_endian_004c2950" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (compound_statement "{\n          iVar8 = (**(code **)(**(int **)(*param_1 + 8) + 0xe8))();\n        }" { (expression_statement "iVar8 = (**(code **)(**(int **)(*param_1 + 8) + 0xe8))();" (assignment_expression "iVar8 = (**(code **)(**(int **)(*param_1 + 8) + 0xe8))()" identifier = (call_expression "(**(code **)(**(int **)(*param_1 + 8) + 0xe8))()" (parenthesized_expression "(**(code **)(**(int **)(*param_1 + 8) + 0xe8))" ( (pointer_expression "**(code **)(**(int **)(*param_1 + 8) + 0xe8)" * (pointer_expression "*(code **)(**(int **)(*param_1 + 8) + 0xe8)" * (cast_expression "(code **)(**(int **)(*param_1 + 8) + 0xe8)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(**(int **)(*param_1 + 8) + 0xe8)" ( (binary_expression "**(int **)(*param_1 + 8) + 0xe8" (pointer_expression "**(int **)(*param_1 + 8)" * (pointer_expression "*(int **)(*param_1 + 8)" * (cast_expression "(int **)(*param_1 + 8)" ( (type_descriptor "int **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(*param_1 + 8)" ( (binary_expression "*param_1 + 8" (pointer_expression "*param_1" * identifier) + number_literal) ))))) + number_literal) ))))) )) (argument_list "()" ( )))) ;) }) (else_clause "else {\n          iVar8 = (*pcVar25)();\n        }" else (compound_statement "{\n          iVar8 = (*pcVar25)();\n        }" { (expression_statement "iVar8 = (*pcVar25)();" (assignment_expression "iVar8 = (*pcVar25)()" identifier = (call_expression "(*pcVar25)()" (parenthesized_expression "(*pcVar25)" ( (pointer_expression "*pcVar25" * identifier) )) (argument_list "()" ( )))) ;) }))) (expression_statement "local_58 = *local_44;" (assignment_expression "local_58 = *local_44" identifier = (pointer_expression "*local_44" * identifier)) ;) (if_statement "if (iVar8 == 0) {\n          local_58 = (((local_58 >> 0x10) << 0x18 | (local_58 >> 0x18) << 0x10) >> 0x10) +\n                     ((local_58 & 0xff) << 8 | local_58 >> 8 & 0xff) * 0x10000;\n        }" if (parenthesized_expression "(iVar8 == 0)" ( (binary_expression "iVar8 == 0" identifier == number_literal) )) (compound_statement "{\n          local_58 = (((local_58 >> 0x10) << 0x18 | (local_58 >> 0x18) << 0x10) >> 0x10) +\n                     ((local_58 & 0xff) << 8 | local_58 >> 8 & 0xff) * 0x10000;\n        }" { (expression_statement "local_58 = (((local_58 >> 0x10) << 0x18 | (local_58 >> 0x18) << 0x10) >> 0x10) +\n                     ((local_58 & 0xff) << 8 | local_58 >> 8 & 0xff) * 0x10000;" (assignment_expression "local_58 = (((local_58 >> 0x10) << 0x18 | (local_58 >> 0x18) << 0x10) >> 0x10) +\n                     ((local_58 & 0xff) << 8 | local_58 >> 8 & 0xff) * 0x10000" identifier = (binary_expression "(((local_58 >> 0x10) << 0x18 | (local_58 >> 0x18) << 0x10) >> 0x10) +\n                     ((local_58 & 0xff) << 8 | local_58 >> 8 & 0xff) * 0x10000" (parenthesized_expression "(((local_58 >> 0x10) << 0x18 | (local_58 >> 0x18) << 0x10) >> 0x10)" ( (binary_expression "((local_58 >> 0x10) << 0x18 | (local_58 >> 0x18) << 0x10) >> 0x10" (parenthesized_expression "((local_58 >> 0x10) << 0x18 | (local_58 >> 0x18) << 0x10)" ( (binary_expression "(local_58 >> 0x10) << 0x18 | (local_58 >> 0x18) << 0x10" (binary_expression "(local_58 >> 0x10) << 0x18" (parenthesized_expression "(local_58 >> 0x10)" ( (binary_expression "local_58 >> 0x10" identifier >> number_literal) )) << number_literal) | (binary_expression "(local_58 >> 0x18) << 0x10" (parenthesized_expression "(local_58 >> 0x18)" ( (binary_expression "local_58 >> 0x18" identifier >> number_literal) )) << number_literal)) )) >> number_literal) )) + (binary_expression "((local_58 & 0xff) << 8 | local_58 >> 8 & 0xff) * 0x10000" (parenthesized_expression "((local_58 & 0xff) << 8 | local_58 >> 8 & 0xff)" ( (binary_expression "(local_58 & 0xff) << 8 | local_58 >> 8 & 0xff" (binary_expression "(local_58 & 0xff) << 8" (parenthesized_expression "(local_58 & 0xff)" ( (binary_expression "local_58 & 0xff" identifier & number_literal) )) << number_literal) | (binary_expression "local_58 >> 8 & 0xff" (binary_expression "local_58 >> 8" identifier >> number_literal) & number_literal)) )) * number_literal))) ;) })) (expression_statement "local_60._0_4_ = local_44 + 1;" (assignment_expression "local_60._0_4_ = local_44 + 1" (field_expression "local_60._0_4_" identifier . field_identifier) = (binary_expression "local_44 + 1" identifier + number_literal)) ;) (expression_statement "local_44 = (uint *)((int)local_60._0_4_ + local_58);" (assignment_expression "local_44 = (uint *)((int)local_60._0_4_ + local_58)" identifier = (cast_expression "(uint *)((int)local_60._0_4_ + local_58)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)local_60._0_4_ + local_58)" ( (binary_expression "(int)local_60._0_4_ + local_58" (cast_expression "(int)local_60._0_4_" ( (type_descriptor "int" primitive_type) ) (field_expression "local_60._0_4_" identifier . field_identifier)) + identifier) )))) ;) (labeled_statement "LAB_002e355c:\n        uVar26 = CONCAT44(local_60._0_4_,local_60._4_4_);" statement_identifier : (expression_statement "uVar26 = CONCAT44(local_60._0_4_,local_60._4_4_);" (assignment_expression "uVar26 = CONCAT44(local_60._0_4_,local_60._4_4_)" identifier = (call_expression "CONCAT44(local_60._0_4_,local_60._4_4_)" identifier (argument_list "(local_60._0_4_,local_60._4_4_)" ( (field_expression "local_60._0_4_" identifier . field_identifier) , (field_expression "local_60._4_4_" identifier . field_identifier) )))) ;)) (expression_statement "uVar7 = uVar26;" (assignment_expression "uVar7 = uVar26" identifier = identifier) ;) (if_statement "if (uVar22 == 0x31) goto LAB_002e313c;" if (parenthesized_expression "(uVar22 == 0x31)" ( (binary_expression "uVar22 == 0x31" identifier == number_literal) )) (goto_statement "goto LAB_002e313c;" goto statement_identifier ;)) (if_statement "if (uVar22 < 0x32) goto LAB_002e3118;" if (parenthesized_expression "(uVar22 < 0x32)" ( (binary_expression "uVar22 < 0x32" identifier < number_literal) )) (goto_statement "goto LAB_002e3118;" goto statement_identifier ;)) (expression_statement "puVar9 = (uint *)param_1[0xc];" (assignment_expression "puVar9 = (uint *)param_1[0xc]" identifier = (cast_expression "(uint *)param_1[0xc]" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (subscript_expression "param_1[0xc]" identifier [ number_literal ]))) ;) }) (else_clause "else {\n        if (4 < uVar19) {\n          if (uVar19 != 5) {\n            if (uVar19 != 6) {\n              return 0;\n            }\n            pcVar25 = *(code **)(**(int **)(*param_1 + 8) + 0xc);\n            if (pcVar25 == (code *)PTR_is_big_endian_004c2950) {\n              local_30 = puVar18;\n              iVar10 = (**(code **)(**(int **)(*param_1 + 8) + 0xe8))();\n            }\n            else {\n              local_30 = puVar18;\n              iVar10 = (*pcVar25)();\n            }\n            puVar9 = (uint *)*local_44;\n            if (iVar10 == 0) {\n              puVar9 = (uint *)(((((uint)puVar9 >> 0x10) << 0x18 | ((uint)puVar9 >> 0x18) << 0x10)\n                                >> 0x10) +\n                               (((uint)puVar9 & 0xff) << 8 | (uint)puVar9 >> 8 & 0xff) * 0x10000);\n            }\n            local_44 = local_44 + 1;\n            iVar10 = *param_1;\n            local_50._0_4_ = (uint *)0x0;\n            local_50._4_4_ = puVar9;\n            goto LAB_002e3708;\n          }\n          pcVar25 = *(code **)(**(int **)(*param_1 + 8) + 0xc);\n          if (pcVar25 == (code *)PTR_is_big_endian_004c2950) {\n            iVar8 = (**(code **)(**(int **)(*param_1 + 8) + 0xe8))();\n          }\n          else {\n            iVar8 = (*pcVar25)();\n          }\n          uVar6 = *(ushort *)local_44;\n          if (iVar8 == 0) {\n            uVar6 = CONCAT11(*(byte *)((int)local_44 + 1),*(byte *)local_44);\n          }\n          local_60._4_4_ = (uint *)(uint)uVar6;\n          local_44 = (uint *)((int)local_44 + 2);\n          local_60._0_4_ = (uint *)0x0;\n          goto LAB_002e355c;\n        }\n        if (uVar19 != 1) {\n          if (uVar19 != 3) {\n            return 0;\n          }\n          pcVar25 = *(code **)(**(int **)(*param_1 + 8) + 0xc);\n          if (pcVar25 == (code *)PTR_is_big_endian_004c2950) {\n            iVar8 = (**(code **)(**(int **)(*param_1 + 8) + 0xe8))();\n          }\n          else {\n            iVar8 = (*pcVar25)();\n          }\n          uVar6 = *(ushort *)local_44;\n          if (iVar8 == 0) {\n            uVar6 = CONCAT11(*(byte *)((int)local_44 + 1),*(byte *)local_44);\n          }\n          local_58 = (uint)uVar6;\n          local_60._0_4_ = (uint *)((int)local_44 + 2);\n          local_44 = (uint *)((int)local_60._0_4_ + local_58);\n          goto LAB_002e355c;\n        }\n        iVar8 = *param_1;\n        if (*(int *)(iVar8 + 0x4c) == 4) {\n          pcVar25 = *(code **)(**(int **)(iVar8 + 8) + 0xc);\n          if (pcVar25 == (code *)PTR_is_big_endian_004c2950) {\n            local_30 = puVar18;\n            iVar8 = (**(code **)(**(int **)(iVar8 + 8) + 0xe8))();\n          }\n          else {\n            local_30 = puVar18;\n            iVar8 = (*pcVar25)();\n          }\n          uVar15 = *local_44;\n          if (iVar8 == 0) {\n            uVar15 = (((uVar15 >> 0x10) << 0x18 | (uVar15 >> 0x18) << 0x10) >> 0x10) +\n                     ((uVar15 & 0xff) << 8 | uVar15 >> 8 & 0xff) * 0x10000;\n          }\n          local_44 = local_44 + 1;\n          uVar26 = (ulonglong)uVar15;\n        }\n        else {\n          local_30 = puVar18;\n          uVar26 = (*local_34)(iVar8,&local_44);\n        }\n        local_50 = uVar26;\n        local_58 = (*local_3c)(*param_1);\n        uVar26 = local_50;\n        if (uVar22 == 0x31) goto LAB_002e30bc;\n        if (uVar22 < 0x32) {\n          if (uVar22 != 1) goto joined_r0x002e3124;\n          goto LAB_002e39b4;\n        }\n        uVar7 = local_50;\n        if (uVar22 == 0x6e) goto LAB_002e313c;\n        if (uVar22 != 0x2007) goto LAB_002e339c;\n        puVar9 = (uint *)param_1[0xc];\n      }" else (compound_statement "{\n        if (4 < uVar19) {\n          if (uVar19 != 5) {\n            if (uVar19 != 6) {\n              return 0;\n            }\n            pcVar25 = *(code **)(**(int **)(*param_1 + 8) + 0xc);\n            if (pcVar25 == (code *)PTR_is_big_endian_004c2950) {\n              local_30 = puVar18;\n              iVar10 = (**(code **)(**(int **)(*param_1 + 8) + 0xe8))();\n            }\n            else {\n              local_30 = puVar18;\n              iVar10 = (*pcVar25)();\n            }\n            puVar9 = (uint *)*local_44;\n            if (iVar10 == 0) {\n              puVar9 = (uint *)(((((uint)puVar9 >> 0x10) << 0x18 | ((uint)puVar9 >> 0x18) << 0x10)\n                                >> 0x10) +\n                               (((uint)puVar9 & 0xff) << 8 | (uint)puVar9 >> 8 & 0xff) * 0x10000);\n            }\n            local_44 = local_44 + 1;\n            iVar10 = *param_1;\n            local_50._0_4_ = (uint *)0x0;\n            local_50._4_4_ = puVar9;\n            goto LAB_002e3708;\n          }\n          pcVar25 = *(code **)(**(int **)(*param_1 + 8) + 0xc);\n          if (pcVar25 == (code *)PTR_is_big_endian_004c2950) {\n            iVar8 = (**(code **)(**(int **)(*param_1 + 8) + 0xe8))();\n          }\n          else {\n            iVar8 = (*pcVar25)();\n          }\n          uVar6 = *(ushort *)local_44;\n          if (iVar8 == 0) {\n            uVar6 = CONCAT11(*(byte *)((int)local_44 + 1),*(byte *)local_44);\n          }\n          local_60._4_4_ = (uint *)(uint)uVar6;\n          local_44 = (uint *)((int)local_44 + 2);\n          local_60._0_4_ = (uint *)0x0;\n          goto LAB_002e355c;\n        }\n        if (uVar19 != 1) {\n          if (uVar19 != 3) {\n            return 0;\n          }\n          pcVar25 = *(code **)(**(int **)(*param_1 + 8) + 0xc);\n          if (pcVar25 == (code *)PTR_is_big_endian_004c2950) {\n            iVar8 = (**(code **)(**(int **)(*param_1 + 8) + 0xe8))();\n          }\n          else {\n            iVar8 = (*pcVar25)();\n          }\n          uVar6 = *(ushort *)local_44;\n          if (iVar8 == 0) {\n            uVar6 = CONCAT11(*(byte *)((int)local_44 + 1),*(byte *)local_44);\n          }\n          local_58 = (uint)uVar6;\n          local_60._0_4_ = (uint *)((int)local_44 + 2);\n          local_44 = (uint *)((int)local_60._0_4_ + local_58);\n          goto LAB_002e355c;\n        }\n        iVar8 = *param_1;\n        if (*(int *)(iVar8 + 0x4c) == 4) {\n          pcVar25 = *(code **)(**(int **)(iVar8 + 8) + 0xc);\n          if (pcVar25 == (code *)PTR_is_big_endian_004c2950) {\n            local_30 = puVar18;\n            iVar8 = (**(code **)(**(int **)(iVar8 + 8) + 0xe8))();\n          }\n          else {\n            local_30 = puVar18;\n            iVar8 = (*pcVar25)();\n          }\n          uVar15 = *local_44;\n          if (iVar8 == 0) {\n            uVar15 = (((uVar15 >> 0x10) << 0x18 | (uVar15 >> 0x18) << 0x10) >> 0x10) +\n                     ((uVar15 & 0xff) << 8 | uVar15 >> 8 & 0xff) * 0x10000;\n          }\n          local_44 = local_44 + 1;\n          uVar26 = (ulonglong)uVar15;\n        }\n        else {\n          local_30 = puVar18;\n          uVar26 = (*local_34)(iVar8,&local_44);\n        }\n        local_50 = uVar26;\n        local_58 = (*local_3c)(*param_1);\n        uVar26 = local_50;\n        if (uVar22 == 0x31) goto LAB_002e30bc;\n        if (uVar22 < 0x32) {\n          if (uVar22 != 1) goto joined_r0x002e3124;\n          goto LAB_002e39b4;\n        }\n        uVar7 = local_50;\n        if (uVar22 == 0x6e) goto LAB_002e313c;\n        if (uVar22 != 0x2007) goto LAB_002e339c;\n        puVar9 = (uint *)param_1[0xc];\n      }" { (if_statement "if (4 < uVar19) {\n          if (uVar19 != 5) {\n            if (uVar19 != 6) {\n              return 0;\n            }\n            pcVar25 = *(code **)(**(int **)(*param_1 + 8) + 0xc);\n            if (pcVar25 == (code *)PTR_is_big_endian_004c2950) {\n              local_30 = puVar18;\n              iVar10 = (**(code **)(**(int **)(*param_1 + 8) + 0xe8))();\n            }\n            else {\n              local_30 = puVar18;\n              iVar10 = (*pcVar25)();\n            }\n            puVar9 = (uint *)*local_44;\n            if (iVar10 == 0) {\n              puVar9 = (uint *)(((((uint)puVar9 >> 0x10) << 0x18 | ((uint)puVar9 >> 0x18) << 0x10)\n                                >> 0x10) +\n                               (((uint)puVar9 & 0xff) << 8 | (uint)puVar9 >> 8 & 0xff) * 0x10000);\n            }\n            local_44 = local_44 + 1;\n            iVar10 = *param_1;\n            local_50._0_4_ = (uint *)0x0;\n            local_50._4_4_ = puVar9;\n            goto LAB_002e3708;\n          }\n          pcVar25 = *(code **)(**(int **)(*param_1 + 8) + 0xc);\n          if (pcVar25 == (code *)PTR_is_big_endian_004c2950) {\n            iVar8 = (**(code **)(**(int **)(*param_1 + 8) + 0xe8))();\n          }\n          else {\n            iVar8 = (*pcVar25)();\n          }\n          uVar6 = *(ushort *)local_44;\n          if (iVar8 == 0) {\n            uVar6 = CONCAT11(*(byte *)((int)local_44 + 1),*(byte *)local_44);\n          }\n          local_60._4_4_ = (uint *)(uint)uVar6;\n          local_44 = (uint *)((int)local_44 + 2);\n          local_60._0_4_ = (uint *)0x0;\n          goto LAB_002e355c;\n        }" if (parenthesized_expression "(4 < uVar19)" ( (binary_expression "4 < uVar19" number_literal < identifier) )) (compound_statement "{\n          if (uVar19 != 5) {\n            if (uVar19 != 6) {\n              return 0;\n            }\n            pcVar25 = *(code **)(**(int **)(*param_1 + 8) + 0xc);\n            if (pcVar25 == (code *)PTR_is_big_endian_004c2950) {\n              local_30 = puVar18;\n              iVar10 = (**(code **)(**(int **)(*param_1 + 8) + 0xe8))();\n            }\n            else {\n              local_30 = puVar18;\n              iVar10 = (*pcVar25)();\n            }\n            puVar9 = (uint *)*local_44;\n            if (iVar10 == 0) {\n              puVar9 = (uint *)(((((uint)puVar9 >> 0x10) << 0x18 | ((uint)puVar9 >> 0x18) << 0x10)\n                                >> 0x10) +\n                               (((uint)puVar9 & 0xff) << 8 | (uint)puVar9 >> 8 & 0xff) * 0x10000);\n            }\n            local_44 = local_44 + 1;\n            iVar10 = *param_1;\n            local_50._0_4_ = (uint *)0x0;\n            local_50._4_4_ = puVar9;\n            goto LAB_002e3708;\n          }\n          pcVar25 = *(code **)(**(int **)(*param_1 + 8) + 0xc);\n          if (pcVar25 == (code *)PTR_is_big_endian_004c2950) {\n            iVar8 = (**(code **)(**(int **)(*param_1 + 8) + 0xe8))();\n          }\n          else {\n            iVar8 = (*pcVar25)();\n          }\n          uVar6 = *(ushort *)local_44;\n          if (iVar8 == 0) {\n            uVar6 = CONCAT11(*(byte *)((int)local_44 + 1),*(byte *)local_44);\n          }\n          local_60._4_4_ = (uint *)(uint)uVar6;\n          local_44 = (uint *)((int)local_44 + 2);\n          local_60._0_4_ = (uint *)0x0;\n          goto LAB_002e355c;\n        }" { (if_statement "if (uVar19 != 5) {\n            if (uVar19 != 6) {\n              return 0;\n            }\n            pcVar25 = *(code **)(**(int **)(*param_1 + 8) + 0xc);\n            if (pcVar25 == (code *)PTR_is_big_endian_004c2950) {\n              local_30 = puVar18;\n              iVar10 = (**(code **)(**(int **)(*param_1 + 8) + 0xe8))();\n            }\n            else {\n              local_30 = puVar18;\n              iVar10 = (*pcVar25)();\n            }\n            puVar9 = (uint *)*local_44;\n            if (iVar10 == 0) {\n              puVar9 = (uint *)(((((uint)puVar9 >> 0x10) << 0x18 | ((uint)puVar9 >> 0x18) << 0x10)\n                                >> 0x10) +\n                               (((uint)puVar9 & 0xff) << 8 | (uint)puVar9 >> 8 & 0xff) * 0x10000);\n            }\n            local_44 = local_44 + 1;\n            iVar10 = *param_1;\n            local_50._0_4_ = (uint *)0x0;\n            local_50._4_4_ = puVar9;\n            goto LAB_002e3708;\n          }" if (parenthesized_expression "(uVar19 != 5)" ( (binary_expression "uVar19 != 5" identifier != number_literal) )) (compound_statement "{\n            if (uVar19 != 6) {\n              return 0;\n            }\n            pcVar25 = *(code **)(**(int **)(*param_1 + 8) + 0xc);\n            if (pcVar25 == (code *)PTR_is_big_endian_004c2950) {\n              local_30 = puVar18;\n              iVar10 = (**(code **)(**(int **)(*param_1 + 8) + 0xe8))();\n            }\n            else {\n              local_30 = puVar18;\n              iVar10 = (*pcVar25)();\n            }\n            puVar9 = (uint *)*local_44;\n            if (iVar10 == 0) {\n              puVar9 = (uint *)(((((uint)puVar9 >> 0x10) << 0x18 | ((uint)puVar9 >> 0x18) << 0x10)\n                                >> 0x10) +\n                               (((uint)puVar9 & 0xff) << 8 | (uint)puVar9 >> 8 & 0xff) * 0x10000);\n            }\n            local_44 = local_44 + 1;\n            iVar10 = *param_1;\n            local_50._0_4_ = (uint *)0x0;\n            local_50._4_4_ = puVar9;\n            goto LAB_002e3708;\n          }" { (if_statement "if (uVar19 != 6) {\n              return 0;\n            }" if (parenthesized_expression "(uVar19 != 6)" ( (binary_expression "uVar19 != 6" identifier != number_literal) )) (compound_statement "{\n              return 0;\n            }" { (return_statement "return 0;" return number_literal ;) })) (expression_statement "pcVar25 = *(code **)(**(int **)(*param_1 + 8) + 0xc);" (assignment_expression "pcVar25 = *(code **)(**(int **)(*param_1 + 8) + 0xc)" identifier = (pointer_expression "*(code **)(**(int **)(*param_1 + 8) + 0xc)" * (cast_expression "(code **)(**(int **)(*param_1 + 8) + 0xc)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(**(int **)(*param_1 + 8) + 0xc)" ( (binary_expression "**(int **)(*param_1 + 8) + 0xc" (pointer_expression "**(int **)(*param_1 + 8)" * (pointer_expression "*(int **)(*param_1 + 8)" * (cast_expression "(int **)(*param_1 + 8)" ( (type_descriptor "int **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(*param_1 + 8)" ( (binary_expression "*param_1 + 8" (pointer_expression "*param_1" * identifier) + number_literal) ))))) + number_literal) ))))) ;) (if_statement "if (pcVar25 == (code *)PTR_is_big_endian_004c2950) {\n              local_30 = puVar18;\n              iVar10 = (**(code **)(**(int **)(*param_1 + 8) + 0xe8))();\n            }\n            else {\n              local_30 = puVar18;\n              iVar10 = (*pcVar25)();\n            }" if (parenthesized_expression "(pcVar25 == (code *)PTR_is_big_endian_004c2950)" ( (binary_expression "pcVar25 == (code *)PTR_is_big_endian_004c2950" identifier == (cast_expression "(code *)PTR_is_big_endian_004c2950" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (compound_statement "{\n              local_30 = puVar18;\n              iVar10 = (**(code **)(**(int **)(*param_1 + 8) + 0xe8))();\n            }" { (expression_statement "local_30 = puVar18;" (assignment_expression "local_30 = puVar18" identifier = identifier) ;) (expression_statement "iVar10 = (**(code **)(**(int **)(*param_1 + 8) + 0xe8))();" (assignment_expression "iVar10 = (**(code **)(**(int **)(*param_1 + 8) + 0xe8))()" identifier = (call_expression "(**(code **)(**(int **)(*param_1 + 8) + 0xe8))()" (parenthesized_expression "(**(code **)(**(int **)(*param_1 + 8) + 0xe8))" ( (pointer_expression "**(code **)(**(int **)(*param_1 + 8) + 0xe8)" * (pointer_expression "*(code **)(**(int **)(*param_1 + 8) + 0xe8)" * (cast_expression "(code **)(**(int **)(*param_1 + 8) + 0xe8)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(**(int **)(*param_1 + 8) + 0xe8)" ( (binary_expression "**(int **)(*param_1 + 8) + 0xe8" (pointer_expression "**(int **)(*param_1 + 8)" * (pointer_expression "*(int **)(*param_1 + 8)" * (cast_expression "(int **)(*param_1 + 8)" ( (type_descriptor "int **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(*param_1 + 8)" ( (binary_expression "*param_1 + 8" (pointer_expression "*param_1" * identifier) + number_literal) ))))) + number_literal) ))))) )) (argument_list "()" ( )))) ;) }) (else_clause "else {\n              local_30 = puVar18;\n              iVar10 = (*pcVar25)();\n            }" else (compound_statement "{\n              local_30 = puVar18;\n              iVar10 = (*pcVar25)();\n            }" { (expression_statement "local_30 = puVar18;" (assignment_expression "local_30 = puVar18" identifier = identifier) ;) (expression_statement "iVar10 = (*pcVar25)();" (assignment_expression "iVar10 = (*pcVar25)()" identifier = (call_expression "(*pcVar25)()" (parenthesized_expression "(*pcVar25)" ( (pointer_expression "*pcVar25" * identifier) )) (argument_list "()" ( )))) ;) }))) (expression_statement "puVar9 = (uint *)*local_44;" (assignment_expression "puVar9 = (uint *)*local_44" identifier = (cast_expression "(uint *)*local_44" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (pointer_expression "*local_44" * identifier))) ;) (if_statement "if (iVar10 == 0) {\n              puVar9 = (uint *)(((((uint)puVar9 >> 0x10) << 0x18 | ((uint)puVar9 >> 0x18) << 0x10)\n                                >> 0x10) +\n                               (((uint)puVar9 & 0xff) << 8 | (uint)puVar9 >> 8 & 0xff) * 0x10000);\n            }" if (parenthesized_expression "(iVar10 == 0)" ( (binary_expression "iVar10 == 0" identifier == number_literal) )) (compound_statement "{\n              puVar9 = (uint *)(((((uint)puVar9 >> 0x10) << 0x18 | ((uint)puVar9 >> 0x18) << 0x10)\n                                >> 0x10) +\n                               (((uint)puVar9 & 0xff) << 8 | (uint)puVar9 >> 8 & 0xff) * 0x10000);\n            }" { (expression_statement "puVar9 = (uint *)(((((uint)puVar9 >> 0x10) << 0x18 | ((uint)puVar9 >> 0x18) << 0x10)\n                                >> 0x10) +\n                               (((uint)puVar9 & 0xff) << 8 | (uint)puVar9 >> 8 & 0xff) * 0x10000);" (assignment_expression "puVar9 = (uint *)(((((uint)puVar9 >> 0x10) << 0x18 | ((uint)puVar9 >> 0x18) << 0x10)\n                                >> 0x10) +\n                               (((uint)puVar9 & 0xff) << 8 | (uint)puVar9 >> 8 & 0xff) * 0x10000)" identifier = (cast_expression "(uint *)(((((uint)puVar9 >> 0x10) << 0x18 | ((uint)puVar9 >> 0x18) << 0x10)\n                                >> 0x10) +\n                               (((uint)puVar9 & 0xff) << 8 | (uint)puVar9 >> 8 & 0xff) * 0x10000)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(((((uint)puVar9 >> 0x10) << 0x18 | ((uint)puVar9 >> 0x18) << 0x10)\n                                >> 0x10) +\n                               (((uint)puVar9 & 0xff) << 8 | (uint)puVar9 >> 8 & 0xff) * 0x10000)" ( (binary_expression "((((uint)puVar9 >> 0x10) << 0x18 | ((uint)puVar9 >> 0x18) << 0x10)\n                                >> 0x10) +\n                               (((uint)puVar9 & 0xff) << 8 | (uint)puVar9 >> 8 & 0xff) * 0x10000" (parenthesized_expression "((((uint)puVar9 >> 0x10) << 0x18 | ((uint)puVar9 >> 0x18) << 0x10)\n                                >> 0x10)" ( (binary_expression "(((uint)puVar9 >> 0x10) << 0x18 | ((uint)puVar9 >> 0x18) << 0x10)\n                                >> 0x10" (parenthesized_expression "(((uint)puVar9 >> 0x10) << 0x18 | ((uint)puVar9 >> 0x18) << 0x10)" ( (binary_expression "((uint)puVar9 >> 0x10) << 0x18 | ((uint)puVar9 >> 0x18) << 0x10" (binary_expression "((uint)puVar9 >> 0x10) << 0x18" (parenthesized_expression "((uint)puVar9 >> 0x10)" ( (binary_expression "(uint)puVar9 >> 0x10" (cast_expression "(uint)puVar9" ( (type_descriptor "uint" type_identifier) ) identifier) >> number_literal) )) << number_literal) | (binary_expression "((uint)puVar9 >> 0x18) << 0x10" (parenthesized_expression "((uint)puVar9 >> 0x18)" ( (binary_expression "(uint)puVar9 >> 0x18" (cast_expression "(uint)puVar9" ( (type_descriptor "uint" type_identifier) ) identifier) >> number_literal) )) << number_literal)) )) >> number_literal) )) + (binary_expression "(((uint)puVar9 & 0xff) << 8 | (uint)puVar9 >> 8 & 0xff) * 0x10000" (parenthesized_expression "(((uint)puVar9 & 0xff) << 8 | (uint)puVar9 >> 8 & 0xff)" ( (binary_expression "((uint)puVar9 & 0xff) << 8 | (uint)puVar9 >> 8 & 0xff" (binary_expression "((uint)puVar9 & 0xff) << 8" (parenthesized_expression "((uint)puVar9 & 0xff)" ( (binary_expression "(uint)puVar9 & 0xff" (cast_expression "(uint)puVar9" ( (type_descriptor "uint" type_identifier) ) identifier) & number_literal) )) << number_literal) | (binary_expression "(uint)puVar9 >> 8 & 0xff" (binary_expression "(uint)puVar9 >> 8" (cast_expression "(uint)puVar9" ( (type_descriptor "uint" type_identifier) ) identifier) >> number_literal) & number_literal)) )) * number_literal)) )))) ;) })) (expression_statement "local_44 = local_44 + 1;" (assignment_expression "local_44 = local_44 + 1" identifier = (binary_expression "local_44 + 1" identifier + number_literal)) ;) (expression_statement "iVar10 = *param_1;" (assignment_expression "iVar10 = *param_1" identifier = (pointer_expression "*param_1" * identifier)) ;) (expression_statement "local_50._0_4_ = (uint *)0x0;" (assignment_expression "local_50._0_4_ = (uint *)0x0" (field_expression "local_50._0_4_" identifier . field_identifier) = (cast_expression "(uint *)0x0" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (expression_statement "local_50._4_4_ = puVar9;" (assignment_expression "local_50._4_4_ = puVar9" (field_expression "local_50._4_4_" identifier . field_identifier) = identifier) ;) (goto_statement "goto LAB_002e3708;" goto statement_identifier ;) })) (expression_statement "pcVar25 = *(code **)(**(int **)(*param_1 + 8) + 0xc);" (assignment_expression "pcVar25 = *(code **)(**(int **)(*param_1 + 8) + 0xc)" identifier = (pointer_expression "*(code **)(**(int **)(*param_1 + 8) + 0xc)" * (cast_expression "(code **)(**(int **)(*param_1 + 8) + 0xc)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(**(int **)(*param_1 + 8) + 0xc)" ( (binary_expression "**(int **)(*param_1 + 8) + 0xc" (pointer_expression "**(int **)(*param_1 + 8)" * (pointer_expression "*(int **)(*param_1 + 8)" * (cast_expression "(int **)(*param_1 + 8)" ( (type_descriptor "int **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(*param_1 + 8)" ( (binary_expression "*param_1 + 8" (pointer_expression "*param_1" * identifier) + number_literal) ))))) + number_literal) ))))) ;) (if_statement "if (pcVar25 == (code *)PTR_is_big_endian_004c2950) {\n            iVar8 = (**(code **)(**(int **)(*param_1 + 8) + 0xe8))();\n          }\n          else {\n            iVar8 = (*pcVar25)();\n          }" if (parenthesized_expression "(pcVar25 == (code *)PTR_is_big_endian_004c2950)" ( (binary_expression "pcVar25 == (code *)PTR_is_big_endian_004c2950" identifier == (cast_expression "(code *)PTR_is_big_endian_004c2950" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (compound_statement "{\n            iVar8 = (**(code **)(**(int **)(*param_1 + 8) + 0xe8))();\n          }" { (expression_statement "iVar8 = (**(code **)(**(int **)(*param_1 + 8) + 0xe8))();" (assignment_expression "iVar8 = (**(code **)(**(int **)(*param_1 + 8) + 0xe8))()" identifier = (call_expression "(**(code **)(**(int **)(*param_1 + 8) + 0xe8))()" (parenthesized_expression "(**(code **)(**(int **)(*param_1 + 8) + 0xe8))" ( (pointer_expression "**(code **)(**(int **)(*param_1 + 8) + 0xe8)" * (pointer_expression "*(code **)(**(int **)(*param_1 + 8) + 0xe8)" * (cast_expression "(code **)(**(int **)(*param_1 + 8) + 0xe8)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(**(int **)(*param_1 + 8) + 0xe8)" ( (binary_expression "**(int **)(*param_1 + 8) + 0xe8" (pointer_expression "**(int **)(*param_1 + 8)" * (pointer_expression "*(int **)(*param_1 + 8)" * (cast_expression "(int **)(*param_1 + 8)" ( (type_descriptor "int **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(*param_1 + 8)" ( (binary_expression "*param_1 + 8" (pointer_expression "*param_1" * identifier) + number_literal) ))))) + number_literal) ))))) )) (argument_list "()" ( )))) ;) }) (else_clause "else {\n            iVar8 = (*pcVar25)();\n          }" else (compound_statement "{\n            iVar8 = (*pcVar25)();\n          }" { (expression_statement "iVar8 = (*pcVar25)();" (assignment_expression "iVar8 = (*pcVar25)()" identifier = (call_expression "(*pcVar25)()" (parenthesized_expression "(*pcVar25)" ( (pointer_expression "*pcVar25" * identifier) )) (argument_list "()" ( )))) ;) }))) (expression_statement "uVar6 = *(ushort *)local_44;" (assignment_expression "uVar6 = *(ushort *)local_44" identifier = (pointer_expression "*(ushort *)local_44" * (cast_expression "(ushort *)local_44" ( (type_descriptor "ushort *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier))) ;) (if_statement "if (iVar8 == 0) {\n            uVar6 = CONCAT11(*(byte *)((int)local_44 + 1),*(byte *)local_44);\n          }" if (parenthesized_expression "(iVar8 == 0)" ( (binary_expression "iVar8 == 0" identifier == number_literal) )) (compound_statement "{\n            uVar6 = CONCAT11(*(byte *)((int)local_44 + 1),*(byte *)local_44);\n          }" { (expression_statement "uVar6 = CONCAT11(*(byte *)((int)local_44 + 1),*(byte *)local_44);" (assignment_expression "uVar6 = CONCAT11(*(byte *)((int)local_44 + 1),*(byte *)local_44)" identifier = (call_expression "CONCAT11(*(byte *)((int)local_44 + 1),*(byte *)local_44)" identifier (argument_list "(*(byte *)((int)local_44 + 1),*(byte *)local_44)" ( (pointer_expression "*(byte *)((int)local_44 + 1)" * (cast_expression "(byte *)((int)local_44 + 1)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)local_44 + 1)" ( (binary_expression "(int)local_44 + 1" (cast_expression "(int)local_44" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) , (pointer_expression "*(byte *)local_44" * (cast_expression "(byte *)local_44" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )))) ;) })) (expression_statement "local_60._4_4_ = (uint *)(uint)uVar6;" (assignment_expression "local_60._4_4_ = (uint *)(uint)uVar6" (field_expression "local_60._4_4_" identifier . field_identifier) = (cast_expression "(uint *)(uint)uVar6" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (cast_expression "(uint)uVar6" ( (type_descriptor "uint" type_identifier) ) identifier))) ;) (expression_statement "local_44 = (uint *)((int)local_44 + 2);" (assignment_expression "local_44 = (uint *)((int)local_44 + 2)" identifier = (cast_expression "(uint *)((int)local_44 + 2)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)local_44 + 2)" ( (binary_expression "(int)local_44 + 2" (cast_expression "(int)local_44" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) ;) (expression_statement "local_60._0_4_ = (uint *)0x0;" (assignment_expression "local_60._0_4_ = (uint *)0x0" (field_expression "local_60._0_4_" identifier . field_identifier) = (cast_expression "(uint *)0x0" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (goto_statement "goto LAB_002e355c;" goto statement_identifier ;) })) (if_statement "if (uVar19 != 1) {\n          if (uVar19 != 3) {\n            return 0;\n          }\n          pcVar25 = *(code **)(**(int **)(*param_1 + 8) + 0xc);\n          if (pcVar25 == (code *)PTR_is_big_endian_004c2950) {\n            iVar8 = (**(code **)(**(int **)(*param_1 + 8) + 0xe8))();\n          }\n          else {\n            iVar8 = (*pcVar25)();\n          }\n          uVar6 = *(ushort *)local_44;\n          if (iVar8 == 0) {\n            uVar6 = CONCAT11(*(byte *)((int)local_44 + 1),*(byte *)local_44);\n          }\n          local_58 = (uint)uVar6;\n          local_60._0_4_ = (uint *)((int)local_44 + 2);\n          local_44 = (uint *)((int)local_60._0_4_ + local_58);\n          goto LAB_002e355c;\n        }" if (parenthesized_expression "(uVar19 != 1)" ( (binary_expression "uVar19 != 1" identifier != number_literal) )) (compound_statement "{\n          if (uVar19 != 3) {\n            return 0;\n          }\n          pcVar25 = *(code **)(**(int **)(*param_1 + 8) + 0xc);\n          if (pcVar25 == (code *)PTR_is_big_endian_004c2950) {\n            iVar8 = (**(code **)(**(int **)(*param_1 + 8) + 0xe8))();\n          }\n          else {\n            iVar8 = (*pcVar25)();\n          }\n          uVar6 = *(ushort *)local_44;\n          if (iVar8 == 0) {\n            uVar6 = CONCAT11(*(byte *)((int)local_44 + 1),*(byte *)local_44);\n          }\n          local_58 = (uint)uVar6;\n          local_60._0_4_ = (uint *)((int)local_44 + 2);\n          local_44 = (uint *)((int)local_60._0_4_ + local_58);\n          goto LAB_002e355c;\n        }" { (if_statement "if (uVar19 != 3) {\n            return 0;\n          }" if (parenthesized_expression "(uVar19 != 3)" ( (binary_expression "uVar19 != 3" identifier != number_literal) )) (compound_statement "{\n            return 0;\n          }" { (return_statement "return 0;" return number_literal ;) })) (expression_statement "pcVar25 = *(code **)(**(int **)(*param_1 + 8) + 0xc);" (assignment_expression "pcVar25 = *(code **)(**(int **)(*param_1 + 8) + 0xc)" identifier = (pointer_expression "*(code **)(**(int **)(*param_1 + 8) + 0xc)" * (cast_expression "(code **)(**(int **)(*param_1 + 8) + 0xc)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(**(int **)(*param_1 + 8) + 0xc)" ( (binary_expression "**(int **)(*param_1 + 8) + 0xc" (pointer_expression "**(int **)(*param_1 + 8)" * (pointer_expression "*(int **)(*param_1 + 8)" * (cast_expression "(int **)(*param_1 + 8)" ( (type_descriptor "int **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(*param_1 + 8)" ( (binary_expression "*param_1 + 8" (pointer_expression "*param_1" * identifier) + number_literal) ))))) + number_literal) ))))) ;) (if_statement "if (pcVar25 == (code *)PTR_is_big_endian_004c2950) {\n            iVar8 = (**(code **)(**(int **)(*param_1 + 8) + 0xe8))();\n          }\n          else {\n            iVar8 = (*pcVar25)();\n          }" if (parenthesized_expression "(pcVar25 == (code *)PTR_is_big_endian_004c2950)" ( (binary_expression "pcVar25 == (code *)PTR_is_big_endian_004c2950" identifier == (cast_expression "(code *)PTR_is_big_endian_004c2950" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (compound_statement "{\n            iVar8 = (**(code **)(**(int **)(*param_1 + 8) + 0xe8))();\n          }" { (expression_statement "iVar8 = (**(code **)(**(int **)(*param_1 + 8) + 0xe8))();" (assignment_expression "iVar8 = (**(code **)(**(int **)(*param_1 + 8) + 0xe8))()" identifier = (call_expression "(**(code **)(**(int **)(*param_1 + 8) + 0xe8))()" (parenthesized_expression "(**(code **)(**(int **)(*param_1 + 8) + 0xe8))" ( (pointer_expression "**(code **)(**(int **)(*param_1 + 8) + 0xe8)" * (pointer_expression "*(code **)(**(int **)(*param_1 + 8) + 0xe8)" * (cast_expression "(code **)(**(int **)(*param_1 + 8) + 0xe8)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(**(int **)(*param_1 + 8) + 0xe8)" ( (binary_expression "**(int **)(*param_1 + 8) + 0xe8" (pointer_expression "**(int **)(*param_1 + 8)" * (pointer_expression "*(int **)(*param_1 + 8)" * (cast_expression "(int **)(*param_1 + 8)" ( (type_descriptor "int **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(*param_1 + 8)" ( (binary_expression "*param_1 + 8" (pointer_expression "*param_1" * identifier) + number_literal) ))))) + number_literal) ))))) )) (argument_list "()" ( )))) ;) }) (else_clause "else {\n            iVar8 = (*pcVar25)();\n          }" else (compound_statement "{\n            iVar8 = (*pcVar25)();\n          }" { (expression_statement "iVar8 = (*pcVar25)();" (assignment_expression "iVar8 = (*pcVar25)()" identifier = (call_expression "(*pcVar25)()" (parenthesized_expression "(*pcVar25)" ( (pointer_expression "*pcVar25" * identifier) )) (argument_list "()" ( )))) ;) }))) (expression_statement "uVar6 = *(ushort *)local_44;" (assignment_expression "uVar6 = *(ushort *)local_44" identifier = (pointer_expression "*(ushort *)local_44" * (cast_expression "(ushort *)local_44" ( (type_descriptor "ushort *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier))) ;) (if_statement "if (iVar8 == 0) {\n            uVar6 = CONCAT11(*(byte *)((int)local_44 + 1),*(byte *)local_44);\n          }" if (parenthesized_expression "(iVar8 == 0)" ( (binary_expression "iVar8 == 0" identifier == number_literal) )) (compound_statement "{\n            uVar6 = CONCAT11(*(byte *)((int)local_44 + 1),*(byte *)local_44);\n          }" { (expression_statement "uVar6 = CONCAT11(*(byte *)((int)local_44 + 1),*(byte *)local_44);" (assignment_expression "uVar6 = CONCAT11(*(byte *)((int)local_44 + 1),*(byte *)local_44)" identifier = (call_expression "CONCAT11(*(byte *)((int)local_44 + 1),*(byte *)local_44)" identifier (argument_list "(*(byte *)((int)local_44 + 1),*(byte *)local_44)" ( (pointer_expression "*(byte *)((int)local_44 + 1)" * (cast_expression "(byte *)((int)local_44 + 1)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)local_44 + 1)" ( (binary_expression "(int)local_44 + 1" (cast_expression "(int)local_44" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) , (pointer_expression "*(byte *)local_44" * (cast_expression "(byte *)local_44" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )))) ;) })) (expression_statement "local_58 = (uint)uVar6;" (assignment_expression "local_58 = (uint)uVar6" identifier = (cast_expression "(uint)uVar6" ( (type_descriptor "uint" type_identifier) ) identifier)) ;) (expression_statement "local_60._0_4_ = (uint *)((int)local_44 + 2);" (assignment_expression "local_60._0_4_ = (uint *)((int)local_44 + 2)" (field_expression "local_60._0_4_" identifier . field_identifier) = (cast_expression "(uint *)((int)local_44 + 2)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)local_44 + 2)" ( (binary_expression "(int)local_44 + 2" (cast_expression "(int)local_44" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) ;) (expression_statement "local_44 = (uint *)((int)local_60._0_4_ + local_58);" (assignment_expression "local_44 = (uint *)((int)local_60._0_4_ + local_58)" identifier = (cast_expression "(uint *)((int)local_60._0_4_ + local_58)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)local_60._0_4_ + local_58)" ( (binary_expression "(int)local_60._0_4_ + local_58" (cast_expression "(int)local_60._0_4_" ( (type_descriptor "int" primitive_type) ) (field_expression "local_60._0_4_" identifier . field_identifier)) + identifier) )))) ;) (goto_statement "goto LAB_002e355c;" goto statement_identifier ;) })) (expression_statement "iVar8 = *param_1;" (assignment_expression "iVar8 = *param_1" identifier = (pointer_expression "*param_1" * identifier)) ;) (if_statement "if (*(int *)(iVar8 + 0x4c) == 4) {\n          pcVar25 = *(code **)(**(int **)(iVar8 + 8) + 0xc);\n          if (pcVar25 == (code *)PTR_is_big_endian_004c2950) {\n            local_30 = puVar18;\n            iVar8 = (**(code **)(**(int **)(iVar8 + 8) + 0xe8))();\n          }\n          else {\n            local_30 = puVar18;\n            iVar8 = (*pcVar25)();\n          }\n          uVar15 = *local_44;\n          if (iVar8 == 0) {\n            uVar15 = (((uVar15 >> 0x10) << 0x18 | (uVar15 >> 0x18) << 0x10) >> 0x10) +\n                     ((uVar15 & 0xff) << 8 | uVar15 >> 8 & 0xff) * 0x10000;\n          }\n          local_44 = local_44 + 1;\n          uVar26 = (ulonglong)uVar15;\n        }\n        else {\n          local_30 = puVar18;\n          uVar26 = (*local_34)(iVar8,&local_44);\n        }" if (parenthesized_expression "(*(int *)(iVar8 + 0x4c) == 4)" ( (binary_expression "*(int *)(iVar8 + 0x4c) == 4" (pointer_expression "*(int *)(iVar8 + 0x4c)" * (cast_expression "(int *)(iVar8 + 0x4c)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar8 + 0x4c)" ( (binary_expression "iVar8 + 0x4c" identifier + number_literal) )))) == number_literal) )) (compound_statement "{\n          pcVar25 = *(code **)(**(int **)(iVar8 + 8) + 0xc);\n          if (pcVar25 == (code *)PTR_is_big_endian_004c2950) {\n            local_30 = puVar18;\n            iVar8 = (**(code **)(**(int **)(iVar8 + 8) + 0xe8))();\n          }\n          else {\n            local_30 = puVar18;\n            iVar8 = (*pcVar25)();\n          }\n          uVar15 = *local_44;\n          if (iVar8 == 0) {\n            uVar15 = (((uVar15 >> 0x10) << 0x18 | (uVar15 >> 0x18) << 0x10) >> 0x10) +\n                     ((uVar15 & 0xff) << 8 | uVar15 >> 8 & 0xff) * 0x10000;\n          }\n          local_44 = local_44 + 1;\n          uVar26 = (ulonglong)uVar15;\n        }" { (expression_statement "pcVar25 = *(code **)(**(int **)(iVar8 + 8) + 0xc);" (assignment_expression "pcVar25 = *(code **)(**(int **)(iVar8 + 8) + 0xc)" identifier = (pointer_expression "*(code **)(**(int **)(iVar8 + 8) + 0xc)" * (cast_expression "(code **)(**(int **)(iVar8 + 8) + 0xc)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(**(int **)(iVar8 + 8) + 0xc)" ( (binary_expression "**(int **)(iVar8 + 8) + 0xc" (pointer_expression "**(int **)(iVar8 + 8)" * (pointer_expression "*(int **)(iVar8 + 8)" * (cast_expression "(int **)(iVar8 + 8)" ( (type_descriptor "int **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(iVar8 + 8)" ( (binary_expression "iVar8 + 8" identifier + number_literal) ))))) + number_literal) ))))) ;) (if_statement "if (pcVar25 == (code *)PTR_is_big_endian_004c2950) {\n            local_30 = puVar18;\n            iVar8 = (**(code **)(**(int **)(iVar8 + 8) + 0xe8))();\n          }\n          else {\n            local_30 = puVar18;\n            iVar8 = (*pcVar25)();\n          }" if (parenthesized_expression "(pcVar25 == (code *)PTR_is_big_endian_004c2950)" ( (binary_expression "pcVar25 == (code *)PTR_is_big_endian_004c2950" identifier == (cast_expression "(code *)PTR_is_big_endian_004c2950" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (compound_statement "{\n            local_30 = puVar18;\n            iVar8 = (**(code **)(**(int **)(iVar8 + 8) + 0xe8))();\n          }" { (expression_statement "local_30 = puVar18;" (assignment_expression "local_30 = puVar18" identifier = identifier) ;) (expression_statement "iVar8 = (**(code **)(**(int **)(iVar8 + 8) + 0xe8))();" (assignment_expression "iVar8 = (**(code **)(**(int **)(iVar8 + 8) + 0xe8))()" identifier = (call_expression "(**(code **)(**(int **)(iVar8 + 8) + 0xe8))()" (parenthesized_expression "(**(code **)(**(int **)(iVar8 + 8) + 0xe8))" ( (pointer_expression "**(code **)(**(int **)(iVar8 + 8) + 0xe8)" * (pointer_expression "*(code **)(**(int **)(iVar8 + 8) + 0xe8)" * (cast_expression "(code **)(**(int **)(iVar8 + 8) + 0xe8)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(**(int **)(iVar8 + 8) + 0xe8)" ( (binary_expression "**(int **)(iVar8 + 8) + 0xe8" (pointer_expression "**(int **)(iVar8 + 8)" * (pointer_expression "*(int **)(iVar8 + 8)" * (cast_expression "(int **)(iVar8 + 8)" ( (type_descriptor "int **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(iVar8 + 8)" ( (binary_expression "iVar8 + 8" identifier + number_literal) ))))) + number_literal) ))))) )) (argument_list "()" ( )))) ;) }) (else_clause "else {\n            local_30 = puVar18;\n            iVar8 = (*pcVar25)();\n          }" else (compound_statement "{\n            local_30 = puVar18;\n            iVar8 = (*pcVar25)();\n          }" { (expression_statement "local_30 = puVar18;" (assignment_expression "local_30 = puVar18" identifier = identifier) ;) (expression_statement "iVar8 = (*pcVar25)();" (assignment_expression "iVar8 = (*pcVar25)()" identifier = (call_expression "(*pcVar25)()" (parenthesized_expression "(*pcVar25)" ( (pointer_expression "*pcVar25" * identifier) )) (argument_list "()" ( )))) ;) }))) (expression_statement "uVar15 = *local_44;" (assignment_expression "uVar15 = *local_44" identifier = (pointer_expression "*local_44" * identifier)) ;) (if_statement "if (iVar8 == 0) {\n            uVar15 = (((uVar15 >> 0x10) << 0x18 | (uVar15 >> 0x18) << 0x10) >> 0x10) +\n                     ((uVar15 & 0xff) << 8 | uVar15 >> 8 & 0xff) * 0x10000;\n          }" if (parenthesized_expression "(iVar8 == 0)" ( (binary_expression "iVar8 == 0" identifier == number_literal) )) (compound_statement "{\n            uVar15 = (((uVar15 >> 0x10) << 0x18 | (uVar15 >> 0x18) << 0x10) >> 0x10) +\n                     ((uVar15 & 0xff) << 8 | uVar15 >> 8 & 0xff) * 0x10000;\n          }" { (expression_statement "uVar15 = (((uVar15 >> 0x10) << 0x18 | (uVar15 >> 0x18) << 0x10) >> 0x10) +\n                     ((uVar15 & 0xff) << 8 | uVar15 >> 8 & 0xff) * 0x10000;" (assignment_expression "uVar15 = (((uVar15 >> 0x10) << 0x18 | (uVar15 >> 0x18) << 0x10) >> 0x10) +\n                     ((uVar15 & 0xff) << 8 | uVar15 >> 8 & 0xff) * 0x10000" identifier = (binary_expression "(((uVar15 >> 0x10) << 0x18 | (uVar15 >> 0x18) << 0x10) >> 0x10) +\n                     ((uVar15 & 0xff) << 8 | uVar15 >> 8 & 0xff) * 0x10000" (parenthesized_expression "(((uVar15 >> 0x10) << 0x18 | (uVar15 >> 0x18) << 0x10) >> 0x10)" ( (binary_expression "((uVar15 >> 0x10) << 0x18 | (uVar15 >> 0x18) << 0x10) >> 0x10" (parenthesized_expression "((uVar15 >> 0x10) << 0x18 | (uVar15 >> 0x18) << 0x10)" ( (binary_expression "(uVar15 >> 0x10) << 0x18 | (uVar15 >> 0x18) << 0x10" (binary_expression "(uVar15 >> 0x10) << 0x18" (parenthesized_expression "(uVar15 >> 0x10)" ( (binary_expression "uVar15 >> 0x10" identifier >> number_literal) )) << number_literal) | (binary_expression "(uVar15 >> 0x18) << 0x10" (parenthesized_expression "(uVar15 >> 0x18)" ( (binary_expression "uVar15 >> 0x18" identifier >> number_literal) )) << number_literal)) )) >> number_literal) )) + (binary_expression "((uVar15 & 0xff) << 8 | uVar15 >> 8 & 0xff) * 0x10000" (parenthesized_expression "((uVar15 & 0xff) << 8 | uVar15 >> 8 & 0xff)" ( (binary_expression "(uVar15 & 0xff) << 8 | uVar15 >> 8 & 0xff" (binary_expression "(uVar15 & 0xff) << 8" (parenthesized_expression "(uVar15 & 0xff)" ( (binary_expression "uVar15 & 0xff" identifier & number_literal) )) << number_literal) | (binary_expression "uVar15 >> 8 & 0xff" (binary_expression "uVar15 >> 8" identifier >> number_literal) & number_literal)) )) * number_literal))) ;) })) (expression_statement "local_44 = local_44 + 1;" (assignment_expression "local_44 = local_44 + 1" identifier = (binary_expression "local_44 + 1" identifier + number_literal)) ;) (expression_statement "uVar26 = (ulonglong)uVar15;" (assignment_expression "uVar26 = (ulonglong)uVar15" identifier = (cast_expression "(ulonglong)uVar15" ( (type_descriptor "ulonglong" type_identifier) ) identifier)) ;) }) (else_clause "else {\n          local_30 = puVar18;\n          uVar26 = (*local_34)(iVar8,&local_44);\n        }" else (compound_statement "{\n          local_30 = puVar18;\n          uVar26 = (*local_34)(iVar8,&local_44);\n        }" { (expression_statement "local_30 = puVar18;" (assignment_expression "local_30 = puVar18" identifier = identifier) ;) (expression_statement "uVar26 = (*local_34)(iVar8,&local_44);" (assignment_expression "uVar26 = (*local_34)(iVar8,&local_44)" identifier = (call_expression "(*local_34)(iVar8,&local_44)" (parenthesized_expression "(*local_34)" ( (pointer_expression "*local_34" * identifier) )) (argument_list "(iVar8,&local_44)" ( identifier , (pointer_expression "&local_44" & identifier) )))) ;) }))) (expression_statement "local_50 = uVar26;" (assignment_expression "local_50 = uVar26" identifier = identifier) ;) (expression_statement "local_58 = (*local_3c)(*param_1);" (assignment_expression "local_58 = (*local_3c)(*param_1)" identifier = (call_expression "(*local_3c)(*param_1)" (parenthesized_expression "(*local_3c)" ( (pointer_expression "*local_3c" * identifier) )) (argument_list "(*param_1)" ( (pointer_expression "*param_1" * identifier) )))) ;) (expression_statement "uVar26 = local_50;" (assignment_expression "uVar26 = local_50" identifier = identifier) ;) (if_statement "if (uVar22 == 0x31) goto LAB_002e30bc;" if (parenthesized_expression "(uVar22 == 0x31)" ( (binary_expression "uVar22 == 0x31" identifier == number_literal) )) (goto_statement "goto LAB_002e30bc;" goto statement_identifier ;)) (if_statement "if (uVar22 < 0x32) {\n          if (uVar22 != 1) goto joined_r0x002e3124;\n          goto LAB_002e39b4;\n        }" if (parenthesized_expression "(uVar22 < 0x32)" ( (binary_expression "uVar22 < 0x32" identifier < number_literal) )) (compound_statement "{\n          if (uVar22 != 1) goto joined_r0x002e3124;\n          goto LAB_002e39b4;\n        }" { (if_statement "if (uVar22 != 1) goto joined_r0x002e3124;" if (parenthesized_expression "(uVar22 != 1)" ( (binary_expression "uVar22 != 1" identifier != number_literal) )) (goto_statement "goto joined_r0x002e3124;" goto statement_identifier ;)) (goto_statement "goto LAB_002e39b4;" goto statement_identifier ;) })) (expression_statement "uVar7 = local_50;" (assignment_expression "uVar7 = local_50" identifier = identifier) ;) (if_statement "if (uVar22 == 0x6e) goto LAB_002e313c;" if (parenthesized_expression "(uVar22 == 0x6e)" ( (binary_expression "uVar22 == 0x6e" identifier == number_literal) )) (goto_statement "goto LAB_002e313c;" goto statement_identifier ;)) (if_statement "if (uVar22 != 0x2007) goto LAB_002e339c;" if (parenthesized_expression "(uVar22 != 0x2007)" ( (binary_expression "uVar22 != 0x2007" identifier != number_literal) )) (goto_statement "goto LAB_002e339c;" goto statement_identifier ;)) (expression_statement "puVar9 = (uint *)param_1[0xc];" (assignment_expression "puVar9 = (uint *)param_1[0xc]" identifier = (cast_expression "(uint *)param_1[0xc]" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (subscript_expression "param_1[0xc]" identifier [ number_literal ]))) ;) }))) (while_statement "while( true ) {\n        if (puVar9 == (uint *)param_1[0xd]) goto LAB_002e2f98;\nLAB_002e314c:\n        local_60._0_4_ = (uint *)(uVar26 >> 0x20);\n        local_60._4_4_ = (uint *)uVar26;\n        iVar17 = iVar17 + 8;\n        puVar9[1] = local_64;\n        puVar9[2] = (uint)local_60._0_4_;\n        *puVar9 = local_68;\n        puVar9[3] = (uint)local_60._4_4_;\n        puVar9[4] = local_58;\n        puVar9[5] = local_54;\n        param_1[0xc] = (int)(puVar9 + 6);\n        iVar8 = param_1[10];\n        local_60 = uVar26;\n        if (iVar17 == iVar21) goto LAB_002e2fb8;\n        puVar9 = (uint *)(*(int *)(iVar8 + 8) + iVar17);\n        uVar19 = puVar9[1];\n        uVar22 = *puVar9;\n        if (uVar19 != 0x16) goto LAB_002e2dd0;\nLAB_002e31a8:\n        uVar19 = (uint)*(byte *)local_44;\n        puVar9 = (uint *)((int)local_44 + 1);\n        if ((char)*(byte *)local_44 < '\0') {\n          local_60 = uVar26;\n          (*(code *)PTR_read_unsigned_LEB_128_x_004c2980)(puVar9,&local_48,uVar19);\n          puVar9 = (uint *)((int)local_44 + local_48);\n          uVar19 = extraout_v1;\n          uVar26 = local_60;\n        }\n        else {\n          local_48 = 1;\n        }\n        puVar11 = (uint *)((int)puVar9 - iVar20);\n        puVar18 = (uint *)((int)puVar11 + param_1[3]);\n        iVar8 = (uint)(puVar18 < puVar11) + ((int)puVar11 >> 0x1f) + param_1[2];\n        local_64 = uVar19;\n        local_44 = puVar9;\n        if (uVar19 != 0xe) break;\nLAB_002e31fc:\n        local_58 = 0;\n        iVar8 = *param_1;\n        local_68 = uVar22;\n        local_30 = puVar18;\n        local_60 = uVar26;\n        if (*(int *)(iVar8 + 0x48) == 4) {\n          pcVar25 = *(code **)(**(int **)(iVar8 + 8) + 0xc);\n          if (pcVar25 == (code *)PTR_is_big_endian_004c2950) {\n            iVar8 = (**(code **)(**(int **)(iVar8 + 8) + 0xe8))();\n          }\n          else {\n            iVar8 = (*pcVar25)();\n          }\n          uVar19 = *local_44;\n          if (iVar8 == 0) {\n            uVar19 = (((uVar19 >> 0x10) << 0x18 | (uVar19 >> 0x18) << 0x10) >> 0x10) +\n                     ((uVar19 & 0xff) << 8 | uVar19 >> 8 & 0xff) * 0x10000;\n          }\n          local_44 = local_44 + 1;\n          uVar26 = (ulonglong)uVar19;\n        }\n        else {\n          uVar26 = (*local_34)(iVar8,&local_44);\n        }\n        local_50 = uVar26;\n        local_58 = (*local_3c)(*param_1);\n        uVar7 = local_50;\n        if (uVar22 != 0x31) {\n          uVar26 = local_50;\n          if (uVar22 < 0x32) {\n            if ((uVar22 != 1) && (uVar22 == 3)) {\nLAB_002e3284:\n              param_1[0x16] = local_58;\n              *(ulonglong *)(param_1 + 0x10) = uVar26;\n              uVar7 = uVar26;\n            }\n          }\n          else {\n            if (uVar22 == 0x6e) {\nLAB_002e387c:\n              param_1[0x16] = local_58;\n            }\n            else {\n              if (uVar22 != 0x2007) goto LAB_002e313c;\n              param_1[0x16] = local_58;\n            }\n            *(ulonglong *)(param_1 + 0x14) = uVar26;\n            uVar7 = uVar26;\n          }\n        }\nLAB_002e313c:\n        puVar9 = (uint *)param_1[0xc];\n        uVar26 = uVar7;\n      }" while (parenthesized_expression "( true )" ( true )) (compound_statement "{\n        if (puVar9 == (uint *)param_1[0xd]) goto LAB_002e2f98;\nLAB_002e314c:\n        local_60._0_4_ = (uint *)(uVar26 >> 0x20);\n        local_60._4_4_ = (uint *)uVar26;\n        iVar17 = iVar17 + 8;\n        puVar9[1] = local_64;\n        puVar9[2] = (uint)local_60._0_4_;\n        *puVar9 = local_68;\n        puVar9[3] = (uint)local_60._4_4_;\n        puVar9[4] = local_58;\n        puVar9[5] = local_54;\n        param_1[0xc] = (int)(puVar9 + 6);\n        iVar8 = param_1[10];\n        local_60 = uVar26;\n        if (iVar17 == iVar21) goto LAB_002e2fb8;\n        puVar9 = (uint *)(*(int *)(iVar8 + 8) + iVar17);\n        uVar19 = puVar9[1];\n        uVar22 = *puVar9;\n        if (uVar19 != 0x16) goto LAB_002e2dd0;\nLAB_002e31a8:\n        uVar19 = (uint)*(byte *)local_44;\n        puVar9 = (uint *)((int)local_44 + 1);\n        if ((char)*(byte *)local_44 < '\0') {\n          local_60 = uVar26;\n          (*(code *)PTR_read_unsigned_LEB_128_x_004c2980)(puVar9,&local_48,uVar19);\n          puVar9 = (uint *)((int)local_44 + local_48);\n          uVar19 = extraout_v1;\n          uVar26 = local_60;\n        }\n        else {\n          local_48 = 1;\n        }\n        puVar11 = (uint *)((int)puVar9 - iVar20);\n        puVar18 = (uint *)((int)puVar11 + param_1[3]);\n        iVar8 = (uint)(puVar18 < puVar11) + ((int)puVar11 >> 0x1f) + param_1[2];\n        local_64 = uVar19;\n        local_44 = puVar9;\n        if (uVar19 != 0xe) break;\nLAB_002e31fc:\n        local_58 = 0;\n        iVar8 = *param_1;\n        local_68 = uVar22;\n        local_30 = puVar18;\n        local_60 = uVar26;\n        if (*(int *)(iVar8 + 0x48) == 4) {\n          pcVar25 = *(code **)(**(int **)(iVar8 + 8) + 0xc);\n          if (pcVar25 == (code *)PTR_is_big_endian_004c2950) {\n            iVar8 = (**(code **)(**(int **)(iVar8 + 8) + 0xe8))();\n          }\n          else {\n            iVar8 = (*pcVar25)();\n          }\n          uVar19 = *local_44;\n          if (iVar8 == 0) {\n            uVar19 = (((uVar19 >> 0x10) << 0x18 | (uVar19 >> 0x18) << 0x10) >> 0x10) +\n                     ((uVar19 & 0xff) << 8 | uVar19 >> 8 & 0xff) * 0x10000;\n          }\n          local_44 = local_44 + 1;\n          uVar26 = (ulonglong)uVar19;\n        }\n        else {\n          uVar26 = (*local_34)(iVar8,&local_44);\n        }\n        local_50 = uVar26;\n        local_58 = (*local_3c)(*param_1);\n        uVar7 = local_50;\n        if (uVar22 != 0x31) {\n          uVar26 = local_50;\n          if (uVar22 < 0x32) {\n            if ((uVar22 != 1) && (uVar22 == 3)) {\nLAB_002e3284:\n              param_1[0x16] = local_58;\n              *(ulonglong *)(param_1 + 0x10) = uVar26;\n              uVar7 = uVar26;\n            }\n          }\n          else {\n            if (uVar22 == 0x6e) {\nLAB_002e387c:\n              param_1[0x16] = local_58;\n            }\n            else {\n              if (uVar22 != 0x2007) goto LAB_002e313c;\n              param_1[0x16] = local_58;\n            }\n            *(ulonglong *)(param_1 + 0x14) = uVar26;\n            uVar7 = uVar26;\n          }\n        }\nLAB_002e313c:\n        puVar9 = (uint *)param_1[0xc];\n        uVar26 = uVar7;\n      }" { (if_statement "if (puVar9 == (uint *)param_1[0xd]) goto LAB_002e2f98;" if (parenthesized_expression "(puVar9 == (uint *)param_1[0xd])" ( (binary_expression "puVar9 == (uint *)param_1[0xd]" identifier == (cast_expression "(uint *)param_1[0xd]" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (subscript_expression "param_1[0xd]" identifier [ number_literal ]))) )) (goto_statement "goto LAB_002e2f98;" goto statement_identifier ;)) (labeled_statement "LAB_002e314c:\n        local_60._0_4_ = (uint *)(uVar26 >> 0x20);" statement_identifier : (expression_statement "local_60._0_4_ = (uint *)(uVar26 >> 0x20);" (assignment_expression "local_60._0_4_ = (uint *)(uVar26 >> 0x20)" (field_expression "local_60._0_4_" identifier . field_identifier) = (cast_expression "(uint *)(uVar26 >> 0x20)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(uVar26 >> 0x20)" ( (binary_expression "uVar26 >> 0x20" identifier >> number_literal) )))) ;)) (expression_statement "local_60._4_4_ = (uint *)uVar26;" (assignment_expression "local_60._4_4_ = (uint *)uVar26" (field_expression "local_60._4_4_" identifier . field_identifier) = (cast_expression "(uint *)uVar26" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) ;) (expression_statement "iVar17 = iVar17 + 8;" (assignment_expression "iVar17 = iVar17 + 8" identifier = (binary_expression "iVar17 + 8" identifier + number_literal)) ;) (expression_statement "puVar9[1] = local_64;" (assignment_expression "puVar9[1] = local_64" (subscript_expression "puVar9[1]" identifier [ number_literal ]) = identifier) ;) (expression_statement "puVar9[2] = (uint)local_60._0_4_;" (assignment_expression "puVar9[2] = (uint)local_60._0_4_" (subscript_expression "puVar9[2]" identifier [ number_literal ]) = (cast_expression "(uint)local_60._0_4_" ( (type_descriptor "uint" type_identifier) ) (field_expression "local_60._0_4_" identifier . field_identifier))) ;) (expression_statement "*puVar9 = local_68;" (assignment_expression "*puVar9 = local_68" (pointer_expression "*puVar9" * identifier) = identifier) ;) (expression_statement "puVar9[3] = (uint)local_60._4_4_;" (assignment_expression "puVar9[3] = (uint)local_60._4_4_" (subscript_expression "puVar9[3]" identifier [ number_literal ]) = (cast_expression "(uint)local_60._4_4_" ( (type_descriptor "uint" type_identifier) ) (field_expression "local_60._4_4_" identifier . field_identifier))) ;) (expression_statement "puVar9[4] = local_58;" (assignment_expression "puVar9[4] = local_58" (subscript_expression "puVar9[4]" identifier [ number_literal ]) = identifier) ;) (expression_statement "puVar9[5] = local_54;" (assignment_expression "puVar9[5] = local_54" (subscript_expression "puVar9[5]" identifier [ number_literal ]) = identifier) ;) (expression_statement "param_1[0xc] = (int)(puVar9 + 6);" (assignment_expression "param_1[0xc] = (int)(puVar9 + 6)" (subscript_expression "param_1[0xc]" identifier [ number_literal ]) = (cast_expression "(int)(puVar9 + 6)" ( (type_descriptor "int" primitive_type) ) (parenthesized_expression "(puVar9 + 6)" ( (binary_expression "puVar9 + 6" identifier + number_literal) )))) ;) (expression_statement "iVar8 = param_1[10];" (assignment_expression "iVar8 = param_1[10]" identifier = (subscript_expression "param_1[10]" identifier [ number_literal ])) ;) (expression_statement "local_60 = uVar26;" (assignment_expression "local_60 = uVar26" identifier = identifier) ;) (if_statement "if (iVar17 == iVar21) goto LAB_002e2fb8;" if (parenthesized_expression "(iVar17 == iVar21)" ( (binary_expression "iVar17 == iVar21" identifier == identifier) )) (goto_statement "goto LAB_002e2fb8;" goto statement_identifier ;)) (expression_statement "puVar9 = (uint *)(*(int *)(iVar8 + 8) + iVar17);" (assignment_expression "puVar9 = (uint *)(*(int *)(iVar8 + 8) + iVar17)" identifier = (cast_expression "(uint *)(*(int *)(iVar8 + 8) + iVar17)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*(int *)(iVar8 + 8) + iVar17)" ( (binary_expression "*(int *)(iVar8 + 8) + iVar17" (pointer_expression "*(int *)(iVar8 + 8)" * (cast_expression "(int *)(iVar8 + 8)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar8 + 8)" ( (binary_expression "iVar8 + 8" identifier + number_literal) )))) + identifier) )))) ;) (expression_statement "uVar19 = puVar9[1];" (assignment_expression "uVar19 = puVar9[1]" identifier = (subscript_expression "puVar9[1]" identifier [ number_literal ])) ;) (expression_statement "uVar22 = *puVar9;" (assignment_expression "uVar22 = *puVar9" identifier = (pointer_expression "*puVar9" * identifier)) ;) (if_statement "if (uVar19 != 0x16) goto LAB_002e2dd0;" if (parenthesized_expression "(uVar19 != 0x16)" ( (binary_expression "uVar19 != 0x16" identifier != number_literal) )) (goto_statement "goto LAB_002e2dd0;" goto statement_identifier ;)) (labeled_statement "LAB_002e31a8:\n        uVar19 = (uint)*(byte *)local_44;" statement_identifier : (expression_statement "uVar19 = (uint)*(byte *)local_44;" (assignment_expression "uVar19 = (uint)*(byte *)local_44" identifier = (binary_expression "(uint)*(byte *)local_44" (parenthesized_expression "(uint)" ( identifier )) * (cast_expression "(byte *)local_44" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier))) ;)) (expression_statement "puVar9 = (uint *)((int)local_44 + 1);" (assignment_expression "puVar9 = (uint *)((int)local_44 + 1)" identifier = (cast_expression "(uint *)((int)local_44 + 1)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)local_44 + 1)" ( (binary_expression "(int)local_44 + 1" (cast_expression "(int)local_44" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) ;) (if_statement "if ((char)*(byte *)local_44 < '\0') {\n          local_60 = uVar26;\n          (*(code *)PTR_read_unsigned_LEB_128_x_004c2980)(puVar9,&local_48,uVar19);\n          puVar9 = (uint *)((int)local_44 + local_48);\n          uVar19 = extraout_v1;\n          uVar26 = local_60;\n        }\n        else {\n          local_48 = 1;\n        }" if (parenthesized_expression "((char)*(byte *)local_44 < '\0')" ( (binary_expression "(char)*(byte *)local_44 < '\0'" (cast_expression "(char)*(byte *)local_44" ( (type_descriptor "char" primitive_type) ) (pointer_expression "*(byte *)local_44" * (cast_expression "(byte *)local_44" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier))) < (char_literal "'\0'" ' escape_sequence ')) )) (compound_statement "{\n          local_60 = uVar26;\n          (*(code *)PTR_read_unsigned_LEB_128_x_004c2980)(puVar9,&local_48,uVar19);\n          puVar9 = (uint *)((int)local_44 + local_48);\n          uVar19 = extraout_v1;\n          uVar26 = local_60;\n        }" { (expression_statement "local_60 = uVar26;" (assignment_expression "local_60 = uVar26" identifier = identifier) ;) (expression_statement "(*(code *)PTR_read_unsigned_LEB_128_x_004c2980)(puVar9,&local_48,uVar19);" (call_expression "(*(code *)PTR_read_unsigned_LEB_128_x_004c2980)(puVar9,&local_48,uVar19)" (parenthesized_expression "(*(code *)PTR_read_unsigned_LEB_128_x_004c2980)" ( (pointer_expression "*(code *)PTR_read_unsigned_LEB_128_x_004c2980" * (cast_expression "(code *)PTR_read_unsigned_LEB_128_x_004c2980" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(puVar9,&local_48,uVar19)" ( identifier , (pointer_expression "&local_48" & identifier) , identifier ))) ;) (expression_statement "puVar9 = (uint *)((int)local_44 + local_48);" (assignment_expression "puVar9 = (uint *)((int)local_44 + local_48)" identifier = (cast_expression "(uint *)((int)local_44 + local_48)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)local_44 + local_48)" ( (binary_expression "(int)local_44 + local_48" (cast_expression "(int)local_44" ( (type_descriptor "int" primitive_type) ) identifier) + identifier) )))) ;) (expression_statement "uVar19 = extraout_v1;" (assignment_expression "uVar19 = extraout_v1" identifier = identifier) ;) (expression_statement "uVar26 = local_60;" (assignment_expression "uVar26 = local_60" identifier = identifier) ;) }) (else_clause "else {\n          local_48 = 1;\n        }" else (compound_statement "{\n          local_48 = 1;\n        }" { (expression_statement "local_48 = 1;" (assignment_expression "local_48 = 1" identifier = number_literal) ;) }))) (expression_statement "puVar11 = (uint *)((int)puVar9 - iVar20);" (assignment_expression "puVar11 = (uint *)((int)puVar9 - iVar20)" identifier = (cast_expression "(uint *)((int)puVar9 - iVar20)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)puVar9 - iVar20)" ( (binary_expression "(int)puVar9 - iVar20" (cast_expression "(int)puVar9" ( (type_descriptor "int" primitive_type) ) identifier) - identifier) )))) ;) (expression_statement "puVar18 = (uint *)((int)puVar11 + param_1[3]);" (assignment_expression "puVar18 = (uint *)((int)puVar11 + param_1[3])" identifier = (cast_expression "(uint *)((int)puVar11 + param_1[3])" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)puVar11 + param_1[3])" ( (binary_expression "(int)puVar11 + param_1[3]" (cast_expression "(int)puVar11" ( (type_descriptor "int" primitive_type) ) identifier) + (subscript_expression "param_1[3]" identifier [ number_literal ])) )))) ;) (expression_statement "iVar8 = (uint)(puVar18 < puVar11) + ((int)puVar11 >> 0x1f) + param_1[2];" (assignment_expression "iVar8 = (uint)(puVar18 < puVar11) + ((int)puVar11 >> 0x1f) + param_1[2]" identifier = (binary_expression "(uint)(puVar18 < puVar11) + ((int)puVar11 >> 0x1f) + param_1[2]" (binary_expression "(uint)(puVar18 < puVar11) + ((int)puVar11 >> 0x1f)" (call_expression "(uint)(puVar18 < puVar11)" (parenthesized_expression "(uint)" ( identifier )) (argument_list "(puVar18 < puVar11)" ( (binary_expression "puVar18 < puVar11" identifier < identifier) ))) + (parenthesized_expression "((int)puVar11 >> 0x1f)" ( (binary_expression "(int)puVar11 >> 0x1f" (cast_expression "(int)puVar11" ( (type_descriptor "int" primitive_type) ) identifier) >> number_literal) ))) + (subscript_expression "param_1[2]" identifier [ number_literal ]))) ;) (expression_statement "local_64 = uVar19;" (assignment_expression "local_64 = uVar19" identifier = identifier) ;) (expression_statement "local_44 = puVar9;" (assignment_expression "local_44 = puVar9" identifier = identifier) ;) (if_statement "if (uVar19 != 0xe) break;" if (parenthesized_expression "(uVar19 != 0xe)" ( (binary_expression "uVar19 != 0xe" identifier != number_literal) )) (break_statement "break;" break ;)) (labeled_statement "LAB_002e31fc:\n        local_58 = 0;" statement_identifier : (expression_statement "local_58 = 0;" (assignment_expression "local_58 = 0" identifier = number_literal) ;)) (expression_statement "iVar8 = *param_1;" (assignment_expression "iVar8 = *param_1" identifier = (pointer_expression "*param_1" * identifier)) ;) (expression_statement "local_68 = uVar22;" (assignment_expression "local_68 = uVar22" identifier = identifier) ;) (expression_statement "local_30 = puVar18;" (assignment_expression "local_30 = puVar18" identifier = identifier) ;) (expression_statement "local_60 = uVar26;" (assignment_expression "local_60 = uVar26" identifier = identifier) ;) (if_statement "if (*(int *)(iVar8 + 0x48) == 4) {\n          pcVar25 = *(code **)(**(int **)(iVar8 + 8) + 0xc);\n          if (pcVar25 == (code *)PTR_is_big_endian_004c2950) {\n            iVar8 = (**(code **)(**(int **)(iVar8 + 8) + 0xe8))();\n          }\n          else {\n            iVar8 = (*pcVar25)();\n          }\n          uVar19 = *local_44;\n          if (iVar8 == 0) {\n            uVar19 = (((uVar19 >> 0x10) << 0x18 | (uVar19 >> 0x18) << 0x10) >> 0x10) +\n                     ((uVar19 & 0xff) << 8 | uVar19 >> 8 & 0xff) * 0x10000;\n          }\n          local_44 = local_44 + 1;\n          uVar26 = (ulonglong)uVar19;\n        }\n        else {\n          uVar26 = (*local_34)(iVar8,&local_44);\n        }" if (parenthesized_expression "(*(int *)(iVar8 + 0x48) == 4)" ( (binary_expression "*(int *)(iVar8 + 0x48) == 4" (pointer_expression "*(int *)(iVar8 + 0x48)" * (cast_expression "(int *)(iVar8 + 0x48)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar8 + 0x48)" ( (binary_expression "iVar8 + 0x48" identifier + number_literal) )))) == number_literal) )) (compound_statement "{\n          pcVar25 = *(code **)(**(int **)(iVar8 + 8) + 0xc);\n          if (pcVar25 == (code *)PTR_is_big_endian_004c2950) {\n            iVar8 = (**(code **)(**(int **)(iVar8 + 8) + 0xe8))();\n          }\n          else {\n            iVar8 = (*pcVar25)();\n          }\n          uVar19 = *local_44;\n          if (iVar8 == 0) {\n            uVar19 = (((uVar19 >> 0x10) << 0x18 | (uVar19 >> 0x18) << 0x10) >> 0x10) +\n                     ((uVar19 & 0xff) << 8 | uVar19 >> 8 & 0xff) * 0x10000;\n          }\n          local_44 = local_44 + 1;\n          uVar26 = (ulonglong)uVar19;\n        }" { (expression_statement "pcVar25 = *(code **)(**(int **)(iVar8 + 8) + 0xc);" (assignment_expression "pcVar25 = *(code **)(**(int **)(iVar8 + 8) + 0xc)" identifier = (pointer_expression "*(code **)(**(int **)(iVar8 + 8) + 0xc)" * (cast_expression "(code **)(**(int **)(iVar8 + 8) + 0xc)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(**(int **)(iVar8 + 8) + 0xc)" ( (binary_expression "**(int **)(iVar8 + 8) + 0xc" (pointer_expression "**(int **)(iVar8 + 8)" * (pointer_expression "*(int **)(iVar8 + 8)" * (cast_expression "(int **)(iVar8 + 8)" ( (type_descriptor "int **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(iVar8 + 8)" ( (binary_expression "iVar8 + 8" identifier + number_literal) ))))) + number_literal) ))))) ;) (if_statement "if (pcVar25 == (code *)PTR_is_big_endian_004c2950) {\n            iVar8 = (**(code **)(**(int **)(iVar8 + 8) + 0xe8))();\n          }\n          else {\n            iVar8 = (*pcVar25)();\n          }" if (parenthesized_expression "(pcVar25 == (code *)PTR_is_big_endian_004c2950)" ( (binary_expression "pcVar25 == (code *)PTR_is_big_endian_004c2950" identifier == (cast_expression "(code *)PTR_is_big_endian_004c2950" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (compound_statement "{\n            iVar8 = (**(code **)(**(int **)(iVar8 + 8) + 0xe8))();\n          }" { (expression_statement "iVar8 = (**(code **)(**(int **)(iVar8 + 8) + 0xe8))();" (assignment_expression "iVar8 = (**(code **)(**(int **)(iVar8 + 8) + 0xe8))()" identifier = (call_expression "(**(code **)(**(int **)(iVar8 + 8) + 0xe8))()" (parenthesized_expression "(**(code **)(**(int **)(iVar8 + 8) + 0xe8))" ( (pointer_expression "**(code **)(**(int **)(iVar8 + 8) + 0xe8)" * (pointer_expression "*(code **)(**(int **)(iVar8 + 8) + 0xe8)" * (cast_expression "(code **)(**(int **)(iVar8 + 8) + 0xe8)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(**(int **)(iVar8 + 8) + 0xe8)" ( (binary_expression "**(int **)(iVar8 + 8) + 0xe8" (pointer_expression "**(int **)(iVar8 + 8)" * (pointer_expression "*(int **)(iVar8 + 8)" * (cast_expression "(int **)(iVar8 + 8)" ( (type_descriptor "int **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(iVar8 + 8)" ( (binary_expression "iVar8 + 8" identifier + number_literal) ))))) + number_literal) ))))) )) (argument_list "()" ( )))) ;) }) (else_clause "else {\n            iVar8 = (*pcVar25)();\n          }" else (compound_statement "{\n            iVar8 = (*pcVar25)();\n          }" { (expression_statement "iVar8 = (*pcVar25)();" (assignment_expression "iVar8 = (*pcVar25)()" identifier = (call_expression "(*pcVar25)()" (parenthesized_expression "(*pcVar25)" ( (pointer_expression "*pcVar25" * identifier) )) (argument_list "()" ( )))) ;) }))) (expression_statement "uVar19 = *local_44;" (assignment_expression "uVar19 = *local_44" identifier = (pointer_expression "*local_44" * identifier)) ;) (if_statement "if (iVar8 == 0) {\n            uVar19 = (((uVar19 >> 0x10) << 0x18 | (uVar19 >> 0x18) << 0x10) >> 0x10) +\n                     ((uVar19 & 0xff) << 8 | uVar19 >> 8 & 0xff) * 0x10000;\n          }" if (parenthesized_expression "(iVar8 == 0)" ( (binary_expression "iVar8 == 0" identifier == number_literal) )) (compound_statement "{\n            uVar19 = (((uVar19 >> 0x10) << 0x18 | (uVar19 >> 0x18) << 0x10) >> 0x10) +\n                     ((uVar19 & 0xff) << 8 | uVar19 >> 8 & 0xff) * 0x10000;\n          }" { (expression_statement "uVar19 = (((uVar19 >> 0x10) << 0x18 | (uVar19 >> 0x18) << 0x10) >> 0x10) +\n                     ((uVar19 & 0xff) << 8 | uVar19 >> 8 & 0xff) * 0x10000;" (assignment_expression "uVar19 = (((uVar19 >> 0x10) << 0x18 | (uVar19 >> 0x18) << 0x10) >> 0x10) +\n                     ((uVar19 & 0xff) << 8 | uVar19 >> 8 & 0xff) * 0x10000" identifier = (binary_expression "(((uVar19 >> 0x10) << 0x18 | (uVar19 >> 0x18) << 0x10) >> 0x10) +\n                     ((uVar19 & 0xff) << 8 | uVar19 >> 8 & 0xff) * 0x10000" (parenthesized_expression "(((uVar19 >> 0x10) << 0x18 | (uVar19 >> 0x18) << 0x10) >> 0x10)" ( (binary_expression "((uVar19 >> 0x10) << 0x18 | (uVar19 >> 0x18) << 0x10) >> 0x10" (parenthesized_expression "((uVar19 >> 0x10) << 0x18 | (uVar19 >> 0x18) << 0x10)" ( (binary_expression "(uVar19 >> 0x10) << 0x18 | (uVar19 >> 0x18) << 0x10" (binary_expression "(uVar19 >> 0x10) << 0x18" (parenthesized_expression "(uVar19 >> 0x10)" ( (binary_expression "uVar19 >> 0x10" identifier >> number_literal) )) << number_literal) | (binary_expression "(uVar19 >> 0x18) << 0x10" (parenthesized_expression "(uVar19 >> 0x18)" ( (binary_expression "uVar19 >> 0x18" identifier >> number_literal) )) << number_literal)) )) >> number_literal) )) + (binary_expression "((uVar19 & 0xff) << 8 | uVar19 >> 8 & 0xff) * 0x10000" (parenthesized_expression "((uVar19 & 0xff) << 8 | uVar19 >> 8 & 0xff)" ( (binary_expression "(uVar19 & 0xff) << 8 | uVar19 >> 8 & 0xff" (binary_expression "(uVar19 & 0xff) << 8" (parenthesized_expression "(uVar19 & 0xff)" ( (binary_expression "uVar19 & 0xff" identifier & number_literal) )) << number_literal) | (binary_expression "uVar19 >> 8 & 0xff" (binary_expression "uVar19 >> 8" identifier >> number_literal) & number_literal)) )) * number_literal))) ;) })) (expression_statement "local_44 = local_44 + 1;" (assignment_expression "local_44 = local_44 + 1" identifier = (binary_expression "local_44 + 1" identifier + number_literal)) ;) (expression_statement "uVar26 = (ulonglong)uVar19;" (assignment_expression "uVar26 = (ulonglong)uVar19" identifier = (cast_expression "(ulonglong)uVar19" ( (type_descriptor "ulonglong" type_identifier) ) identifier)) ;) }) (else_clause "else {\n          uVar26 = (*local_34)(iVar8,&local_44);\n        }" else (compound_statement "{\n          uVar26 = (*local_34)(iVar8,&local_44);\n        }" { (expression_statement "uVar26 = (*local_34)(iVar8,&local_44);" (assignment_expression "uVar26 = (*local_34)(iVar8,&local_44)" identifier = (call_expression "(*local_34)(iVar8,&local_44)" (parenthesized_expression "(*local_34)" ( (pointer_expression "*local_34" * identifier) )) (argument_list "(iVar8,&local_44)" ( identifier , (pointer_expression "&local_44" & identifier) )))) ;) }))) (expression_statement "local_50 = uVar26;" (assignment_expression "local_50 = uVar26" identifier = identifier) ;) (expression_statement "local_58 = (*local_3c)(*param_1);" (assignment_expression "local_58 = (*local_3c)(*param_1)" identifier = (call_expression "(*local_3c)(*param_1)" (parenthesized_expression "(*local_3c)" ( (pointer_expression "*local_3c" * identifier) )) (argument_list "(*param_1)" ( (pointer_expression "*param_1" * identifier) )))) ;) (expression_statement "uVar7 = local_50;" (assignment_expression "uVar7 = local_50" identifier = identifier) ;) (if_statement "if (uVar22 != 0x31) {\n          uVar26 = local_50;\n          if (uVar22 < 0x32) {\n            if ((uVar22 != 1) && (uVar22 == 3)) {\nLAB_002e3284:\n              param_1[0x16] = local_58;\n              *(ulonglong *)(param_1 + 0x10) = uVar26;\n              uVar7 = uVar26;\n            }\n          }\n          else {\n            if (uVar22 == 0x6e) {\nLAB_002e387c:\n              param_1[0x16] = local_58;\n            }\n            else {\n              if (uVar22 != 0x2007) goto LAB_002e313c;\n              param_1[0x16] = local_58;\n            }\n            *(ulonglong *)(param_1 + 0x14) = uVar26;\n            uVar7 = uVar26;\n          }\n        }" if (parenthesized_expression "(uVar22 != 0x31)" ( (binary_expression "uVar22 != 0x31" identifier != number_literal) )) (compound_statement "{\n          uVar26 = local_50;\n          if (uVar22 < 0x32) {\n            if ((uVar22 != 1) && (uVar22 == 3)) {\nLAB_002e3284:\n              param_1[0x16] = local_58;\n              *(ulonglong *)(param_1 + 0x10) = uVar26;\n              uVar7 = uVar26;\n            }\n          }\n          else {\n            if (uVar22 == 0x6e) {\nLAB_002e387c:\n              param_1[0x16] = local_58;\n            }\n            else {\n              if (uVar22 != 0x2007) goto LAB_002e313c;\n              param_1[0x16] = local_58;\n            }\n            *(ulonglong *)(param_1 + 0x14) = uVar26;\n            uVar7 = uVar26;\n          }\n        }" { (expression_statement "uVar26 = local_50;" (assignment_expression "uVar26 = local_50" identifier = identifier) ;) (if_statement "if (uVar22 < 0x32) {\n            if ((uVar22 != 1) && (uVar22 == 3)) {\nLAB_002e3284:\n              param_1[0x16] = local_58;\n              *(ulonglong *)(param_1 + 0x10) = uVar26;\n              uVar7 = uVar26;\n            }\n          }\n          else {\n            if (uVar22 == 0x6e) {\nLAB_002e387c:\n              param_1[0x16] = local_58;\n            }\n            else {\n              if (uVar22 != 0x2007) goto LAB_002e313c;\n              param_1[0x16] = local_58;\n            }\n            *(ulonglong *)(param_1 + 0x14) = uVar26;\n            uVar7 = uVar26;\n          }" if (parenthesized_expression "(uVar22 < 0x32)" ( (binary_expression "uVar22 < 0x32" identifier < number_literal) )) (compound_statement "{\n            if ((uVar22 != 1) && (uVar22 == 3)) {\nLAB_002e3284:\n              param_1[0x16] = local_58;\n              *(ulonglong *)(param_1 + 0x10) = uVar26;\n              uVar7 = uVar26;\n            }\n          }" { (if_statement "if ((uVar22 != 1) && (uVar22 == 3)) {\nLAB_002e3284:\n              param_1[0x16] = local_58;\n              *(ulonglong *)(param_1 + 0x10) = uVar26;\n              uVar7 = uVar26;\n            }" if (parenthesized_expression "((uVar22 != 1) && (uVar22 == 3))" ( (binary_expression "(uVar22 != 1) && (uVar22 == 3)" (parenthesized_expression "(uVar22 != 1)" ( (binary_expression "uVar22 != 1" identifier != number_literal) )) && (parenthesized_expression "(uVar22 == 3)" ( (binary_expression "uVar22 == 3" identifier == number_literal) ))) )) (compound_statement "{\nLAB_002e3284:\n              param_1[0x16] = local_58;\n              *(ulonglong *)(param_1 + 0x10) = uVar26;\n              uVar7 = uVar26;\n            }" { (labeled_statement "LAB_002e3284:\n              param_1[0x16] = local_58;" statement_identifier : (expression_statement "param_1[0x16] = local_58;" (assignment_expression "param_1[0x16] = local_58" (subscript_expression "param_1[0x16]" identifier [ number_literal ]) = identifier) ;)) (expression_statement "*(ulonglong *)(param_1 + 0x10) = uVar26;" (assignment_expression "*(ulonglong *)(param_1 + 0x10) = uVar26" (pointer_expression "*(ulonglong *)(param_1 + 0x10)" * (cast_expression "(ulonglong *)(param_1 + 0x10)" ( (type_descriptor "ulonglong *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x10)" ( (binary_expression "param_1 + 0x10" identifier + number_literal) )))) = identifier) ;) (expression_statement "uVar7 = uVar26;" (assignment_expression "uVar7 = uVar26" identifier = identifier) ;) })) }) (else_clause "else {\n            if (uVar22 == 0x6e) {\nLAB_002e387c:\n              param_1[0x16] = local_58;\n            }\n            else {\n              if (uVar22 != 0x2007) goto LAB_002e313c;\n              param_1[0x16] = local_58;\n            }\n            *(ulonglong *)(param_1 + 0x14) = uVar26;\n            uVar7 = uVar26;\n          }" else (compound_statement "{\n            if (uVar22 == 0x6e) {\nLAB_002e387c:\n              param_1[0x16] = local_58;\n            }\n            else {\n              if (uVar22 != 0x2007) goto LAB_002e313c;\n              param_1[0x16] = local_58;\n            }\n            *(ulonglong *)(param_1 + 0x14) = uVar26;\n            uVar7 = uVar26;\n          }" { (if_statement "if (uVar22 == 0x6e) {\nLAB_002e387c:\n              param_1[0x16] = local_58;\n            }\n            else {\n              if (uVar22 != 0x2007) goto LAB_002e313c;\n              param_1[0x16] = local_58;\n            }" if (parenthesized_expression "(uVar22 == 0x6e)" ( (binary_expression "uVar22 == 0x6e" identifier == number_literal) )) (compound_statement "{\nLAB_002e387c:\n              param_1[0x16] = local_58;\n            }" { (labeled_statement "LAB_002e387c:\n              param_1[0x16] = local_58;" statement_identifier : (expression_statement "param_1[0x16] = local_58;" (assignment_expression "param_1[0x16] = local_58" (subscript_expression "param_1[0x16]" identifier [ number_literal ]) = identifier) ;)) }) (else_clause "else {\n              if (uVar22 != 0x2007) goto LAB_002e313c;\n              param_1[0x16] = local_58;\n            }" else (compound_statement "{\n              if (uVar22 != 0x2007) goto LAB_002e313c;\n              param_1[0x16] = local_58;\n            }" { (if_statement "if (uVar22 != 0x2007) goto LAB_002e313c;" if (parenthesized_expression "(uVar22 != 0x2007)" ( (binary_expression "uVar22 != 0x2007" identifier != number_literal) )) (goto_statement "goto LAB_002e313c;" goto statement_identifier ;)) (expression_statement "param_1[0x16] = local_58;" (assignment_expression "param_1[0x16] = local_58" (subscript_expression "param_1[0x16]" identifier [ number_literal ]) = identifier) ;) }))) (expression_statement "*(ulonglong *)(param_1 + 0x14) = uVar26;" (assignment_expression "*(ulonglong *)(param_1 + 0x14) = uVar26" (pointer_expression "*(ulonglong *)(param_1 + 0x14)" * (cast_expression "(ulonglong *)(param_1 + 0x14)" ( (type_descriptor "ulonglong *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x14)" ( (binary_expression "param_1 + 0x14" identifier + number_literal) )))) = identifier) ;) (expression_statement "uVar7 = uVar26;" (assignment_expression "uVar7 = uVar26" identifier = identifier) ;) }))) })) (labeled_statement "LAB_002e313c:\n        puVar9 = (uint *)param_1[0xc];" statement_identifier : (expression_statement "puVar9 = (uint *)param_1[0xc];" (assignment_expression "puVar9 = (uint *)param_1[0xc]" identifier = (cast_expression "(uint *)param_1[0xc]" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (subscript_expression "param_1[0xc]" identifier [ number_literal ]))) ;)) (expression_statement "uVar26 = uVar7;" (assignment_expression "uVar26 = uVar7" identifier = identifier) ;) })) }) while (parenthesized_expression "( true )" ( true )) ;) })))) (expression_statement "uVar22 = (int)local_44 - iVar20;" (assignment_expression "uVar22 = (int)local_44 - iVar20" identifier = (binary_expression "(int)local_44 - iVar20" (cast_expression "(int)local_44" ( (type_descriptor "int" primitive_type) ) identifier) - identifier)) ;) (expression_statement "uVar19 = uVar22 + iVar17;" (assignment_expression "uVar19 = uVar22 + iVar17" identifier = (binary_expression "uVar22 + iVar17" identifier + identifier)) ;) (expression_statement "iVar17 = (uint)(uVar19 < uVar22) + ((int)uVar22 >> 0x1f) + param_1[2];" (assignment_expression "iVar17 = (uint)(uVar19 < uVar22) + ((int)uVar22 >> 0x1f) + param_1[2]" identifier = (binary_expression "(uint)(uVar19 < uVar22) + ((int)uVar22 >> 0x1f) + param_1[2]" (binary_expression "(uint)(uVar19 < uVar22) + ((int)uVar22 >> 0x1f)" (call_expression "(uint)(uVar19 < uVar22)" (parenthesized_expression "(uint)" ( identifier )) (argument_list "(uVar19 < uVar22)" ( (binary_expression "uVar19 < uVar22" identifier < identifier) ))) + (parenthesized_expression "((int)uVar22 >> 0x1f)" ( (binary_expression "(int)uVar22 >> 0x1f" (cast_expression "(int)uVar22" ( (type_descriptor "int" primitive_type) ) identifier) >> number_literal) ))) + (subscript_expression "param_1[2]" identifier [ number_literal ]))) ;) (if_statement "if (*(int *)(iVar8 + 4) < 0) {\n    param_1[6] = iVar17;\n    param_1[7] = uVar19;\n  }\n  else {\n    param_1[8] = iVar17;\n    param_1[9] = uVar19;\n  }" if (parenthesized_expression "(*(int *)(iVar8 + 4) < 0)" ( (binary_expression "*(int *)(iVar8 + 4) < 0" (pointer_expression "*(int *)(iVar8 + 4)" * (cast_expression "(int *)(iVar8 + 4)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar8 + 4)" ( (binary_expression "iVar8 + 4" identifier + number_literal) )))) < number_literal) )) (compound_statement "{\n    param_1[6] = iVar17;\n    param_1[7] = uVar19;\n  }" { (expression_statement "param_1[6] = iVar17;" (assignment_expression "param_1[6] = iVar17" (subscript_expression "param_1[6]" identifier [ number_literal ]) = identifier) ;) (expression_statement "param_1[7] = uVar19;" (assignment_expression "param_1[7] = uVar19" (subscript_expression "param_1[7]" identifier [ number_literal ]) = identifier) ;) }) (else_clause "else {\n    param_1[8] = iVar17;\n    param_1[9] = uVar19;\n  }" else (compound_statement "{\n    param_1[8] = iVar17;\n    param_1[9] = uVar19;\n  }" { (expression_statement "param_1[8] = iVar17;" (assignment_expression "param_1[8] = iVar17" (subscript_expression "param_1[8]" identifier [ number_literal ]) = identifier) ;) (expression_statement "param_1[9] = uVar19;" (assignment_expression "param_1[9] = uVar19" (subscript_expression "param_1[9]" identifier [ number_literal ]) = identifier) ;) }))) (expression_statement "*(undefined1 *)(param_1 + 0xe) = 1;" (assignment_expression "*(undefined1 *)(param_1 + 0xe) = 1" (pointer_expression "*(undefined1 *)(param_1 + 0xe)" * (cast_expression "(undefined1 *)(param_1 + 0xe)" ( (type_descriptor "undefined1 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0xe)" ( (binary_expression "param_1 + 0xe" identifier + number_literal) )))) = number_literal) ;) (return_statement "return 1;" return number_literal ;) })))
(translation_unit (function_definition TYPE (function_declarator IDENT (parameter_list ( (parameter_declaration TYPE (pointer_declarator * IDENT)) ))) (compound_statement { (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE IDENT ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE IDENT ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE (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 TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE (pointer_declarator * IDENT) ;) (ERROR (binary_expression IDENT < IDENT) : :) (labeled_statement statement_identifier (ERROR : : (comma_expression IDENT , IDENT) : : (binary_expression IDENT < IDENT) :) : (labeled_statement statement_identifier : (ERROR :) (expression_statement (binary_expression IDENT >> (pointer_expression * IDENT)) ;))) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE (pointer_declarator * IDENT) ;) (expression_statement (assignment_expression IDENT = (subscript_expression IDENT [ LIT ])) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT == LIT) )) (compound_statement { (expression_statement (assignment_expression IDENT = (call_expression (parenthesized_expression ( (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) IDENT)) )) (argument_list ( (binary_expression IDENT + LIT) , LIT , (binary_expression IDENT + LIT) )))) ;) (return_statement return IDENT ;) })) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (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 TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) + (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) + IDENT)) ;) (if_statement if (parenthesized_expression ( (binary_expression (call_expression (parenthesized_expression ( IDENT )) (argument_list ( (binary_expression (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) + (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) + (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ))) < (binary_expression IDENT + LIT)) )) (compound_statement { (labeled_statement statement_identifier : (ERROR :) (labeled_statement statement_identifier : (ERROR :) (expression_statement (call_expression IDENT (argument_list ( IDENT ))) ;))) (return_statement return LIT ;) })) (expression_statement (assignment_expression IDENT = (call_expression (parenthesized_expression ( (ERROR (binary_expression IDENT < IDENT) : : IDENT : : (comma_expression IDENT , IDENT) : : (binary_expression IDENT < IDENT) : : IDENT : :) (binary_expression IDENT >> (pointer_expression * IDENT)) )) (argument_list ( (binary_expression IDENT + LIT) )))) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT == LIT) )) (compound_statement { (return_statement return LIT ;) })) (expression_statement (assignment_expression IDENT = (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) - (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))))) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + (subscript_expression IDENT [ LIT ])) )))) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT >> LIT)) ;) (if_statement if (parenthesized_expression ( (binary_expression LIT < IDENT) )) (compound_statement { (expression_statement (assignment_expression IDENT = (call_expression (parenthesized_expression ( (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) IDENT)) )) (argument_list ( (binary_expression IDENT + LIT) )))) ;) (return_statement return IDENT ;) })) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (subscript_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 TYPE) ) 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 TYPE) ) IDENT) - (cast_expression ( (type_descriptor TYPE) ) IDENT))) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT == LIT) )) (compound_statement { (expression_statement (assignment_expression IDENT = LIT) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) }) (else_clause else (compound_statement { (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (assignment_expression IDENT = (call_expression (parenthesized_expression ( (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) IDENT)) )) (argument_list ( (binary_expression IDENT * LIT) )))) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (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 (call_expression (parenthesized_expression ( (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) 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 (parenthesized_expression ( (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) IDENT)) )) (argument_list ( IDENT ))) ;) })) (expression_statement (assignment_expression IDENT = (subscript_expression IDENT [ LIT ])) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = IDENT) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = (binary_expression IDENT + IDENT)) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = (binary_expression IDENT + (binary_expression IDENT * LIT))) ;) (if_statement if (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 { (expression_statement (assignment_expression IDENT = (call_expression (parenthesized_expression ( (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) IDENT)) )) (argument_list ( (binary_expression IDENT + LIT) , LIT , (binary_expression IDENT + LIT) )))) ;) (return_statement return IDENT ;) }))) (expression_statement (assignment_expression IDENT = (subscript_expression IDENT [ LIT ])) ;) }) (else_clause else (if_statement if (parenthesized_expression ( (binary_expression IDENT != LIT) )) (compound_statement { (labeled_statement statement_identifier : (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) IDENT)) ;)) (expression_statement (assignment_expression IDENT = LIT) ;) (expression_statement (assignment_expression IDENT = (binary_expression (binary_expression (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) IDENT) < LIT) > IDENT)) ;) (expression_statement (assignment_expression IDENT = (pointer_expression & IDENT)) ;) (labeled_statement statement_identifier : (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (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)) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT == LIT) )) (goto_statement goto statement_identifier ;)) (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 TYPE) ) IDENT) - IDENT) )))) ;)) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) + (subscript_expression IDENT [ LIT ])) )))) ;) (expression_statement (assignment_expression IDENT = (binary_expression (binary_expression (call_expression (parenthesized_expression ( IDENT )) (argument_list ( (binary_expression IDENT < IDENT) ))) + (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) >> LIT) ))) + (subscript_expression IDENT [ LIT ]))) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT == LIT) )) (goto_statement goto statement_identifier ;)) (do_statement do (compound_statement { (expression_statement (assignment_expression (field_expression IDENT . field_identifier) = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) IDENT)) ;) (expression_statement (assignment_expression IDENT = LIT) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (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 (cast_expression ( (type_descriptor TYPE) ) (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) IDENT))) < (char_literal ' escape_sequence ')) )) (compound_statement { (expression_statement (assignment_expression IDENT = (call_expression (parenthesized_expression ( (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) IDENT)) )) (argument_list ( (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) + LIT) ))) , (pointer_expression & IDENT) )))) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) + IDENT) )))) ;) }) (else_clause else (compound_statement { (expression_statement (assignment_expression IDENT = (binary_expression (parenthesized_expression ( IDENT )) * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) IDENT))) ;) (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 TYPE) ) 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 IDENT == LIT) )) (compound_statement { (expression_statement (assignment_expression (field_expression IDENT . field_identifier) = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT)) ;) (expression_statement (assignment_expression (field_expression IDENT . field_identifier) = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT)) ;) }) (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 { (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 = (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 = (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 TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) + LIT) ))))) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT == (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) IDENT)) )) (compound_statement { (expression_statement (assignment_expression IDENT = IDENT) ;) (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 TYPE (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 = IDENT) ;) (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 == LIT) )) (compound_statement { (expression_statement (assignment_expression IDENT = (binary_expression (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression (binary_expression (parenthesized_expression ( (binary_expression IDENT >> LIT) )) << LIT) | (binary_expression (parenthesized_expression ( (binary_expression IDENT >> LIT) )) << LIT)) )) >> LIT) )) + (binary_expression (parenthesized_expression ( (binary_expression (binary_expression (parenthesized_expression ( (binary_expression IDENT & LIT) )) << LIT) | (binary_expression (binary_expression IDENT >> LIT) & LIT)) )) * LIT))) ;) })) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE) ) IDENT)) ;) }) (else_clause else (compound_statement { (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (assignment_expression IDENT = (call_expression (parenthesized_expression ( (pointer_expression * IDENT) )) (argument_list ( IDENT , (pointer_expression & IDENT) )))) ;) }))) (expression_statement (assignment_expression IDENT = (pointer_expression * 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 { (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 : (if_statement if (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) IDENT))) < (char_literal ' escape_sequence ')) )) (compound_statement { (expression_statement (assignment_expression IDENT = (call_expression (parenthesized_expression ( (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) IDENT)) )) (argument_list ( (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) + LIT) ))) , (pointer_expression & IDENT) )))) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) + IDENT) )))) ;) }) (else_clause else (compound_statement { (expression_statement (assignment_expression IDENT = (binary_expression (parenthesized_expression ( IDENT )) * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) IDENT))) ;) (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 TYPE) ) 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 TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression (pointer_expression * IDENT) + LIT) ))))) + LIT) ))))) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT == (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) 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 TYPE (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 (field_expression IDENT . field_identifier) = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (subscript_expression IDENT [ LIT ]))) ;) (expression_statement (assignment_expression (field_expression IDENT . field_identifier) = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (pointer_expression * IDENT))) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT == LIT) )) (compound_statement { (expression_statement (assignment_expression IDENT = (binary_expression (cast_expression ( (type_descriptor TYPE) ) (field_expression IDENT . field_identifier)) & LIT)) ;) (expression_statement (assignment_expression IDENT = (binary_expression (cast_expression ( (type_descriptor TYPE) ) (field_expression IDENT . field_identifier)) >> LIT)) ;) (expression_statement (assignment_expression IDENT = (binary_expression (cast_expression ( (type_descriptor TYPE) ) (field_expression IDENT . field_identifier)) >> LIT)) ;) (expression_statement (assignment_expression IDENT = (binary_expression (cast_expression ( (type_descriptor TYPE) ) (field_expression IDENT . field_identifier)) >> LIT)) ;) (expression_statement (assignment_expression (field_expression IDENT . field_identifier) = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression (binary_expression (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) (field_expression IDENT . field_identifier)) >> LIT) )) << LIT) | (binary_expression (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) (field_expression IDENT . field_identifier)) >> LIT) )) << LIT)) )) >> LIT) )) + (binary_expression (parenthesized_expression ( (binary_expression (binary_expression (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) (field_expression IDENT . field_identifier)) & LIT) )) << LIT) | (binary_expression (binary_expression (cast_expression ( (type_descriptor TYPE) ) (field_expression IDENT . field_identifier)) >> LIT) & LIT)) )) * LIT)) )))) ;) (expression_statement (assignment_expression (field_expression IDENT . field_identifier) = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression (binary_expression IDENT << LIT) | (binary_expression IDENT << LIT)) )) >> LIT) )) + (binary_expression (parenthesized_expression ( (binary_expression (binary_expression IDENT << LIT) | (binary_expression IDENT & LIT)) )) * LIT)) )))) ;) })) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) }))) (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( (field_expression IDENT . field_identifier) , (field_expression IDENT . field_identifier) )))) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT == LIT) )) (goto_statement goto statement_identifier ;)) (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( (field_expression IDENT . field_identifier) , (field_expression IDENT . field_identifier) )))) ;) (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( (field_expression IDENT . field_identifier) , (field_expression IDENT . field_identifier) )))) ;) (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 { (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 = (binary_expression (parenthesized_expression ( IDENT )) * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) IDENT))) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE) ) 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) )) (compound_statement { (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE) ) IDENT)) ;) (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression IDENT != LIT) )) && (parenthesized_expression ( (comma_expression (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE) ) IDENT)) , (binary_expression IDENT != LIT)) ))) )) (compound_statement { (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE) ) IDENT)) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT != LIT) )) (goto_statement goto statement_identifier ;)) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = LIT) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = IDENT) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE) ) IDENT)) ;) (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 (subscript_expression IDENT [ LIT ]) = LIT) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = IDENT) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE) ) IDENT)) ;) (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) )) (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 (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) < 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) )) (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 TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) + LIT) ))))) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT == (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) IDENT)) )) (compound_statement { (expression_statement (assignment_expression IDENT = IDENT) ;) (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 TYPE (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 = IDENT) ;) (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 == LIT) )) (compound_statement { (expression_statement (assignment_expression IDENT = (binary_expression (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression (binary_expression (parenthesized_expression ( (binary_expression IDENT >> LIT) )) << LIT) | (binary_expression (parenthesized_expression ( (binary_expression IDENT >> LIT) )) << LIT)) )) >> LIT) )) + (binary_expression (parenthesized_expression ( (binary_expression (binary_expression (parenthesized_expression ( (binary_expression IDENT & LIT) )) << LIT) | (binary_expression (binary_expression IDENT >> LIT) & LIT)) )) * LIT))) ;) })) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE) ) IDENT)) ;) }) (else_clause else (compound_statement { (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (assignment_expression IDENT = (call_expression (parenthesized_expression ( (pointer_expression * IDENT) )) (argument_list ( IDENT , (pointer_expression & IDENT) )))) ;) }))) (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (assignment_expression IDENT = (call_expression (parenthesized_expression ( (pointer_expression * IDENT) )) (argument_list ( (pointer_expression * 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 TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression (pointer_expression * IDENT) + LIT) ))))) + LIT) ))))) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT == (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) IDENT)) )) (compound_statement { (expression_statement (assignment_expression IDENT = IDENT) ;) (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 TYPE (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 = IDENT) ;) (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 == LIT) )) (compound_statement { (expression_statement (assignment_expression IDENT = (binary_expression (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression (binary_expression (parenthesized_expression ( (binary_expression IDENT >> LIT) )) << LIT) | (binary_expression (parenthesized_expression ( (binary_expression IDENT >> LIT) )) << LIT)) )) >> LIT) )) + (binary_expression (parenthesized_expression ( (binary_expression (binary_expression (parenthesized_expression ( (binary_expression IDENT & LIT) )) << LIT) | (binary_expression (binary_expression IDENT >> LIT) & LIT)) )) * LIT))) ;) })) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) (expression_statement (assignment_expression IDENT = (pointer_expression * IDENT)) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE) ) 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 TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression (pointer_expression * IDENT) + LIT) ))))) + LIT) ))))) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT == (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) 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 TYPE (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 *)) ) IDENT))) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT == LIT) )) (compound_statement { (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) + LIT) )))) , (pointer_expression * (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 (cast_expression ( (type_descriptor TYPE) ) IDENT) + LIT) )))) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE) ) IDENT)) ;) (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 TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression (pointer_expression * IDENT) + LIT) ))))) + LIT) ))))) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT == (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) IDENT)) )) (compound_statement { (expression_statement (assignment_expression IDENT = IDENT) ;) (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 TYPE (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 = IDENT) ;) (expression_statement (assignment_expression IDENT = (call_expression (parenthesized_expression ( (pointer_expression * IDENT) )) (argument_list ( )))) ;) }))) (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 IDENT & LIT)) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT >> LIT)) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT >> LIT)) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT >> LIT)) ;) (expression_statement (assignment_expression IDENT = (binary_expression (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression (binary_expression (parenthesized_expression ( (binary_expression IDENT >> LIT) )) << LIT) | (binary_expression (parenthesized_expression ( (binary_expression IDENT >> LIT) )) << LIT)) )) >> LIT) )) + (binary_expression (parenthesized_expression ( (binary_expression (binary_expression (parenthesized_expression ( (binary_expression IDENT & LIT) )) << LIT) | (binary_expression (binary_expression IDENT >> LIT) & LIT)) )) * LIT))) ;) (expression_statement (assignment_expression IDENT = (binary_expression (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression (binary_expression IDENT << LIT) | (binary_expression IDENT << LIT)) )) >> LIT) )) + (binary_expression (parenthesized_expression ( (binary_expression (binary_expression IDENT << LIT) | (binary_expression IDENT & LIT)) )) * LIT))) ;) })) (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( IDENT , IDENT )))) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) (expression_statement (assignment_expression IDENT = (pointer_expression * IDENT)) ;) }))) (labeled_statement statement_identifier : (expression_statement (assignment_expression IDENT = IDENT) ;)) (expression_statement (assignment_expression IDENT = (call_expression (parenthesized_expression ( (pointer_expression * IDENT) )) (argument_list ( IDENT )))) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) }))) (labeled_statement statement_identifier : (if_statement if (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 IDENT = IDENT) ;) (goto_statement goto statement_identifier ;) }))) (if_statement if (parenthesized_expression ( (binary_expression IDENT < LIT) )) (compound_statement { (expression_statement (assignment_expression IDENT = IDENT) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT != LIT) )) (goto_statement goto statement_identifier ;)) (labeled_statement statement_identifier : (expression_statement (assignment_expression IDENT = IDENT) ;)) (if_statement if (parenthesized_expression ( (binary_expression IDENT != LIT) )) (goto_statement goto statement_identifier ;)) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = 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 : (expression_statement (assignment_expression IDENT = IDENT) ;)) (if_statement if (parenthesized_expression ( (binary_expression IDENT != LIT) )) (goto_statement goto statement_identifier ;)) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = IDENT) ;) (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 * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression (pointer_expression * (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression (pointer_expression * IDENT) + LIT) ))))) + LIT) ))))) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT == (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) IDENT)) )) (compound_statement { (expression_statement (assignment_expression IDENT = IDENT) ;) (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 TYPE (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 = IDENT) ;) (expression_statement (assignment_expression IDENT = (call_expression (parenthesized_expression ( (pointer_expression * IDENT) )) (argument_list ( )))) ;) }))) (expression_statement (assignment_expression (field_expression IDENT . field_identifier) = (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 *)) ) (pointer_expression * IDENT))) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT == LIT) )) (compound_statement { (expression_statement (assignment_expression IDENT = (binary_expression (cast_expression ( (type_descriptor TYPE) ) (field_expression IDENT . field_identifier)) & LIT)) ;) (expression_statement (assignment_expression IDENT = (binary_expression (cast_expression ( (type_descriptor TYPE) ) (field_expression IDENT . field_identifier)) >> LIT)) ;) (expression_statement (assignment_expression IDENT = (binary_expression (cast_expression ( (type_descriptor TYPE) ) (field_expression IDENT . field_identifier)) >> LIT)) ;) (expression_statement (assignment_expression IDENT = (binary_expression (cast_expression ( (type_descriptor TYPE) ) (field_expression IDENT . field_identifier)) >> LIT)) ;) (expression_statement (assignment_expression (field_expression IDENT . field_identifier) = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression (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)) )) >> LIT) )) + (binary_expression (parenthesized_expression ( (binary_expression (binary_expression (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) & LIT) )) << LIT) | (binary_expression (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) >> LIT) & LIT)) )) * LIT)) )))) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression (binary_expression IDENT << LIT) | (binary_expression IDENT << LIT)) )) >> LIT) )) + (binary_expression (parenthesized_expression ( (binary_expression (binary_expression IDENT << LIT) | (binary_expression IDENT & LIT)) )) * LIT)) )))) ;) })) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) (expression_statement (assignment_expression IDENT = (pointer_expression * IDENT)) ;) (expression_statement (assignment_expression (field_expression IDENT . field_identifier) = IDENT) ;) (labeled_statement statement_identifier : (expression_statement (assignment_expression IDENT = (call_expression (parenthesized_expression ( (pointer_expression * IDENT) )) (argument_list ( IDENT , IDENT , IDENT , IDENT , IDENT )))) ;)) (expression_statement (assignment_expression (field_expression IDENT . field_identifier) = (field_expression IDENT . field_identifier)) ;) (expression_statement (assignment_expression (field_expression IDENT . field_identifier) = (field_expression IDENT . field_identifier)) ;) (goto_statement goto statement_identifier ;) })) (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 (field_expression IDENT . field_identifier) = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) + LIT) )))) ;) (expression_statement (assignment_expression IDENT = (binary_expression (parenthesized_expression ( IDENT )) * (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 (cast_expression ( (type_descriptor TYPE) ) (field_expression IDENT . field_identifier)) + 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 ;) })) (labeled_statement statement_identifier : (expression_statement (assignment_expression IDENT = (binary_expression (parenthesized_expression ( IDENT )) * (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 (cast_expression ( (type_descriptor TYPE) ) IDENT) + LIT) )))) ;) (if_statement if (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) IDENT))) < (char_literal ' escape_sequence ')) )) (compound_statement { (expression_statement (call_expression (parenthesized_expression ( (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) IDENT)) )) (argument_list ( 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 TYPE) ) IDENT) + IDENT) )))) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) }) (else_clause else (compound_statement { (expression_statement (assignment_expression IDENT = LIT) ;) }))) (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( IDENT , (field_expression IDENT . field_identifier) )))) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) + IDENT) + IDENT) )))) ;) (goto_statement goto statement_identifier ;) })) (expression_statement (assignment_expression (field_expression IDENT . field_identifier) = IDENT) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (assignment_expression IDENT = (call_expression (parenthesized_expression ( (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) IDENT)) )) (argument_list ( IDENT )))) ;) (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( (field_expression IDENT . field_identifier) , (field_expression IDENT . field_identifier) )))) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) + IDENT) + LIT) )))) ;) (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( (field_expression IDENT . field_identifier) , (field_expression IDENT . field_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 ( (comma_expression (assignment_expression IDENT = (call_expression IDENT (argument_list ( (field_expression IDENT . field_identifier) , (field_expression IDENT . field_identifier) )))) , (binary_expression IDENT != LIT)) ))) )) (goto_statement goto statement_identifier ;)) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = (cast_expression ( (type_descriptor TYPE) ) IDENT)) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (goto_statement goto statement_identifier ;) })) (labeled_statement statement_identifier : (expression_statement (assignment_expression IDENT = IDENT) ;)) (if_statement if (parenthesized_expression ( (binary_expression IDENT == LIT) )) (goto_statement goto statement_identifier ;)) (labeled_statement statement_identifier : (expression_statement (assignment_expression IDENT = IDENT) ;)) (if_statement if (parenthesized_expression ( (binary_expression IDENT != LIT) )) (goto_statement goto statement_identifier ;)) (expression_statement (assignment_expression (field_expression IDENT . field_identifier) = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT >> LIT) )))) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT == LIT) )) (compound_statement { (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = (cast_expression ( (type_descriptor TYPE) ) (field_expression IDENT . field_identifier))) ;) (goto_statement goto statement_identifier ;) })) (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 { (expression_statement (assignment_expression IDENT = (binary_expression (parenthesized_expression ( IDENT )) * (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 (cast_expression ( (type_descriptor TYPE) ) IDENT) + LIT) )))) ;) (labeled_statement statement_identifier : (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 IDENT < LIT) )) (goto_statement goto statement_identifier ;)) }) (else_clause else (compound_statement { (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) 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 TYPE) ) 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 (parenthesized_expression ( (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) 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 TYPE) ) IDENT) + IDENT) )))) ;) }) (else_clause else (compound_statement { (expression_statement (assignment_expression IDENT = LIT) ;) (expression_statement (assignment_expression IDENT = (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 = (call_expression IDENT (argument_list ( LIT , (binary_expression IDENT | LIT) )))) ;) })) }))) (expression_statement (assignment_expression IDENT = 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 IDENT < LIT) )) (compound_statement { (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (subscript_expression IDENT [ LIT ]))) ;) (if_statement if (parenthesized_expression ( (binary_expression 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 IDENT = (binary_expression IDENT + LIT)) ;)) (expression_statement (assignment_expression IDENT = IDENT) ;) (labeled_statement statement_identifier (ERROR : : (binary_expression IDENT < IDENT) :) : (labeled_statement statement_identifier (ERROR : : (comma_expression IDENT , IDENT) : : (binary_expression IDENT < IDENT) :) : (labeled_statement statement_identifier (ERROR : : IDENT >> : : (binary_expression IDENT < IDENT) :) : (labeled_statement statement_identifier : (ERROR :) (expression_statement (binary_expression IDENT (ERROR &) > (parenthesized_expression ( (comma_expression IDENT , (comma_expression IDENT , (pointer_expression & IDENT))) ))) ;))))) (expression_statement (assignment_expression IDENT = (subscript_expression IDENT [ LIT ])) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT == IDENT) )) (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 ( (comma_expression (assignment_expression IDENT = IDENT) , (binary_expression IDENT != LIT)) ))) )) (goto_statement goto statement_identifier ;)) (labeled_statement statement_identifier : (expression_statement (assignment_expression (field_expression IDENT . field_identifier) = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT >> LIT) )))) ;)) (expression_statement (assignment_expression IDENT = IDENT) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT == LIT) )) (compound_statement { (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = (cast_expression ( (type_descriptor TYPE) ) (field_expression IDENT . field_identifier))) ;) (goto_statement goto statement_identifier ;) })) (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 { (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 TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression (pointer_expression * IDENT) + LIT) ))))) + LIT) ))))) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT == (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) 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 TYPE (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 == LIT) )) (compound_statement { (expression_statement (assignment_expression IDENT = (binary_expression (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression (binary_expression (parenthesized_expression ( (binary_expression IDENT >> LIT) )) << LIT) | (binary_expression (parenthesized_expression ( (binary_expression IDENT >> LIT) )) << LIT)) )) >> LIT) )) + (binary_expression (parenthesized_expression ( (binary_expression (binary_expression (parenthesized_expression ( (binary_expression IDENT & LIT) )) << LIT) | (binary_expression (binary_expression IDENT >> LIT) & LIT)) )) * LIT))) ;) })) (expression_statement (assignment_expression (field_expression IDENT . field_identifier) = (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 TYPE) ) (field_expression IDENT . field_identifier)) + IDENT) )))) ;) (labeled_statement statement_identifier : (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( (field_expression IDENT . field_identifier) , (field_expression IDENT . field_identifier) )))) ;)) (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 IDENT < LIT) )) (goto_statement goto statement_identifier ;)) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (subscript_expression IDENT [ LIT ]))) ;) }) (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 { (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 TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression (pointer_expression * IDENT) + LIT) ))))) + LIT) ))))) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT == (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) IDENT)) )) (compound_statement { (expression_statement (assignment_expression IDENT = IDENT) ;) (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 TYPE (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 = IDENT) ;) (expression_statement (assignment_expression IDENT = (call_expression (parenthesized_expression ( (pointer_expression * IDENT) )) (argument_list ( )))) ;) }))) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (pointer_expression * 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 *)) ) (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression (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)) )) >> LIT) )) + (binary_expression (parenthesized_expression ( (binary_expression (binary_expression (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) & LIT) )) << LIT) | (binary_expression (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) >> LIT) & LIT)) )) * LIT)) )))) ;) })) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) (expression_statement (assignment_expression IDENT = (pointer_expression * IDENT)) ;) (expression_statement (assignment_expression (field_expression IDENT . field_identifier) = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT)) ;) (expression_statement (assignment_expression (field_expression IDENT . field_identifier) = IDENT) ;) (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 TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression (pointer_expression * IDENT) + LIT) ))))) + LIT) ))))) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT == (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) 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 TYPE (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 *)) ) IDENT))) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT == LIT) )) (compound_statement { (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) + LIT) )))) , (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) IDENT)) )))) ;) })) (expression_statement (assignment_expression (field_expression IDENT . field_identifier) = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (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 TYPE) ) IDENT) + LIT) )))) ;) (expression_statement (assignment_expression (field_expression IDENT . field_identifier) = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT)) ;) (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 { (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 TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression (pointer_expression * IDENT) + LIT) ))))) + LIT) ))))) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT == (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) 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 TYPE (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 *)) ) IDENT))) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT == LIT) )) (compound_statement { (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) + LIT) )))) , (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) IDENT)) )))) ;) })) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE) ) IDENT)) ;) (expression_statement (assignment_expression (field_expression IDENT . field_identifier) = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) + LIT) )))) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) (field_expression IDENT . field_identifier)) + IDENT) )))) ;) (goto_statement goto statement_identifier ;) })) (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 = (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 TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) + LIT) ))))) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT == (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) IDENT)) )) (compound_statement { (expression_statement (assignment_expression IDENT = IDENT) ;) (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 TYPE (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 = IDENT) ;) (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 == LIT) )) (compound_statement { (expression_statement (assignment_expression IDENT = (binary_expression (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression (binary_expression (parenthesized_expression ( (binary_expression IDENT >> LIT) )) << LIT) | (binary_expression (parenthesized_expression ( (binary_expression IDENT >> LIT) )) << LIT)) )) >> LIT) )) + (binary_expression (parenthesized_expression ( (binary_expression (binary_expression (parenthesized_expression ( (binary_expression IDENT & LIT) )) << LIT) | (binary_expression (binary_expression IDENT >> LIT) & LIT)) )) * LIT))) ;) })) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE) ) IDENT)) ;) }) (else_clause else (compound_statement { (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (assignment_expression IDENT = (call_expression (parenthesized_expression ( (pointer_expression * IDENT) )) (argument_list ( IDENT , (pointer_expression & IDENT) )))) ;) }))) (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (assignment_expression IDENT = (call_expression (parenthesized_expression ( (pointer_expression * IDENT) )) (argument_list ( (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 IDENT < LIT) )) (compound_statement { (if_statement if (parenthesized_expression ( (binary_expression IDENT != LIT) )) (goto_statement goto statement_identifier ;)) (goto_statement goto statement_identifier ;) })) (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 IDENT != LIT) )) (goto_statement goto statement_identifier ;)) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (subscript_expression IDENT [ LIT ]))) ;) }))) (while_statement while (parenthesized_expression ( BOOL )) (compound_statement { (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 (field_expression IDENT . field_identifier) = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT >> LIT) )))) ;)) (expression_statement (assignment_expression (field_expression IDENT . field_identifier) = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) IDENT)) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = IDENT) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = (cast_expression ( (type_descriptor TYPE) ) (field_expression IDENT . field_identifier))) ;) (expression_statement (assignment_expression (pointer_expression * IDENT) = IDENT) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = (cast_expression ( (type_descriptor TYPE) ) (field_expression IDENT . field_identifier))) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = IDENT) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = IDENT) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = (cast_expression ( (type_descriptor TYPE) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) ;) (expression_statement (assignment_expression IDENT = (subscript_expression IDENT [ LIT ])) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT == IDENT) )) (goto_statement goto statement_identifier ;)) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (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) )) (goto_statement goto statement_identifier ;)) (labeled_statement statement_identifier : (expression_statement (assignment_expression IDENT = (binary_expression (parenthesized_expression ( IDENT )) * (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 (cast_expression ( (type_descriptor TYPE) ) IDENT) + LIT) )))) ;) (if_statement if (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) IDENT))) < (char_literal ' escape_sequence ')) )) (compound_statement { (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (call_expression (parenthesized_expression ( (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) 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 TYPE) ) IDENT) + IDENT) )))) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (assignment_expression 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 (cast_expression ( (type_descriptor TYPE) ) IDENT) - IDENT) )))) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) + (subscript_expression IDENT [ LIT ])) )))) ;) (expression_statement (assignment_expression IDENT = (binary_expression (binary_expression (call_expression (parenthesized_expression ( IDENT )) (argument_list ( (binary_expression IDENT < IDENT) ))) + (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) >> LIT) ))) + (subscript_expression IDENT [ LIT ]))) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT != LIT) )) (break_statement break ;)) (labeled_statement statement_identifier : (expression_statement (assignment_expression IDENT = LIT) ;)) (expression_statement (assignment_expression IDENT = (pointer_expression * IDENT)) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (assignment_expression IDENT = 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 = (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 TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) + LIT) ))))) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT == (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) 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 TYPE (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 * IDENT)) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT == LIT) )) (compound_statement { (expression_statement (assignment_expression IDENT = (binary_expression (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression (binary_expression (parenthesized_expression ( (binary_expression IDENT >> LIT) )) << LIT) | (binary_expression (parenthesized_expression ( (binary_expression IDENT >> LIT) )) << LIT)) )) >> LIT) )) + (binary_expression (parenthesized_expression ( (binary_expression (binary_expression (parenthesized_expression ( (binary_expression IDENT & LIT) )) << LIT) | (binary_expression (binary_expression IDENT >> LIT) & LIT)) )) * LIT))) ;) })) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE) ) IDENT)) ;) }) (else_clause else (compound_statement { (expression_statement (assignment_expression IDENT = (call_expression (parenthesized_expression ( (pointer_expression * IDENT) )) (argument_list ( IDENT , (pointer_expression & IDENT) )))) ;) }))) (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (assignment_expression IDENT = (call_expression (parenthesized_expression ( (pointer_expression * IDENT) )) (argument_list ( (pointer_expression * IDENT) )))) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT != LIT) )) (compound_statement { (expression_statement (assignment_expression IDENT = IDENT) ;) (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 (subscript_expression IDENT [ LIT ]) = IDENT) ;)) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = IDENT) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) })) }) (else_clause else (compound_statement { (if_statement if (parenthesized_expression ( (binary_expression IDENT == LIT) )) (compound_statement { (labeled_statement statement_identifier : (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = IDENT) ;)) }) (else_clause else (compound_statement { (if_statement if (parenthesized_expression ( (binary_expression IDENT != LIT) )) (goto_statement goto statement_identifier ;)) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = IDENT) ;) }))) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = IDENT) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) }))) })) (labeled_statement statement_identifier : (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (subscript_expression IDENT [ LIT ]))) ;)) (expression_statement (assignment_expression IDENT = IDENT) ;) })) }) while (parenthesized_expression ( BOOL )) ;) })))) (expression_statement (assignment_expression IDENT = (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) - IDENT)) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + IDENT)) ;) (expression_statement (assignment_expression IDENT = (binary_expression (binary_expression (call_expression (parenthesized_expression ( IDENT )) (argument_list ( (binary_expression IDENT < IDENT) ))) + (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) >> LIT) ))) + (subscript_expression IDENT [ LIT ]))) ;) (if_statement if (parenthesized_expression ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) < LIT) )) (compound_statement { (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = IDENT) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = IDENT) ;) }) (else_clause else (compound_statement { (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = IDENT) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = IDENT) ;) }))) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = LIT) ;) (return_statement return LIT ;) })))
(function_definition "undefined4 FUN_002e2ca8(int *param_1)\n\n{\n  byte bVar1;\n  uint uVar2;\n  uint uVar3;\n  uint uVar4;\n  uint uVar5;\n  ushort uVar6;\n  ulonglong uVar7;\n  int iVar8;\n  uint *puVar9;\n  int iVar10;\n  uint *puVar11;\n  undefined4 uVar12;\n  uint extraout_v1;\n  undefined8 *puVar13;\n  uint extraout_v1_00;\n  Dwarf_info_reader *this;\n  byte *pbVar14;\n  uint uVar15;\n  uint uVar16;\n  int iVar17;\n  uint *puVar18;\n  uint uVar19;\n  int iVar20;\n  int iVar21;\n  uint uVar22;\n  undefined8 *puVar23;\n  undefined8 *puVar24;\n  code *pcVar25;\n  ulonglong uVar26;\n  uint local_68;\n  uint local_64;\n  undefined8 local_60;\n  uint local_58;\n  uint local_54;\n  undefined8 local_50;\n  int local_48;\n  uint *local_44;\n  undefined8 *local_40;\n  code *local_3c;\n  vector<gold::Dwarf_die::Attribute_value,std::allocator<gold::Dwarf_die::Attribute_value>>\n  *local_38;\n  code *local_34;\n  uint *local_30;\n  \n  iVar8 = param_1[10];\n  if (iVar8 == 0) {\n    uVar12 = (*(code *)PTR_do_gold_unreachable_004c1a30)\n                       (PTR_s_in_a_linker_script_004c191c + 0x7090,0x2a9,\n                        PTR_s_in_a_linker_script_004c191c + 0x7414);\n    return uVar12;\n  }\n  this = (Dwarf_info_reader *)*param_1;\n  iVar17 = param_1[3];\n  iVar20 = *(int *)(this + 0x2c) + *(int *)(this + 0x3c) + iVar17;\n  if ((uint)(*(int *)(this + 0x2c) + *(int *)(this + 0x3c) + *(int *)(this + 0x44)) < iVar20 + 1U) {\n    gold::Dwarf_info_reader::warn_corrupt_debug_section(this);\n    return 0;\n  }\n  local_38 = (vector<gold::Dwarf_die::Attribute_value,std::allocator<gold::Dwarf_die::Attribute_value>>\n              *)(param_1 + 0xb);\n  if (iVar20 == 0) {\n    return 0;\n  }\n  iVar21 = *(int *)(iVar8 + 0xc) - *(int *)(iVar8 + 8);\n  local_44 = (uint *)(iVar20 + param_1[5]);\n  uVar19 = iVar21 >> 3;\n  if (0xaaaaaaa < uVar19) {\n    uVar12 = (*(code *)PTR___throw_length_error_004c1e74)(PTR_s__s_004c1a50 + -0xda4);\n    return uVar12;\n  }\n  puVar23 = (undefined8 *)param_1[0xb];\n  if ((uint)((param_1[0xd] - (int)puVar23 >> 3) * -0x55555555) < uVar19) {\n    puVar13 = (undefined8 *)param_1[0xc];\n    iVar17 = (int)puVar13 - (int)puVar23;\n    if (uVar19 == 0) {\n      iVar10 = 0;\n      puVar24 = puVar23;\n    }\n    else {\n      local_40 = puVar13;\n      iVar10 = (*(code *)PTR_operator_new_004c13a8)(uVar19 * 0x18);\n      puVar13 = local_40;\n      puVar24 = (undefined8 *)param_1[0xb];\n    }\n    if (puVar23 != puVar13) {\n      (*(code *)PTR_memmove_004c5af8)(iVar10,puVar23,iVar17);\n    }\n    if (puVar24 != (undefined8 *)0x0) {\n      (*(code *)PTR_operator_delete_004c12fc)(puVar24);\n    }\n    iVar8 = param_1[10];\n    param_1[0xb] = iVar10;\n    param_1[0xc] = iVar10 + iVar17;\n    param_1[0xd] = iVar10 + uVar19 * 0x18;\n    if (uVar19 != 0) goto LAB_002e2d90;\nLAB_002e2fb8:\n    if (iVar8 == 0) {\n      uVar12 = (*(code *)PTR_do_gold_unreachable_004c1a30)\n                         (PTR_s_in_a_linker_script_004c191c + 0x7108,0x206,\n                          PTR_s_in_a_linker_script_004c191c + 0x7404);\n      return uVar12;\n    }\n    iVar17 = param_1[3];\n  }\n  else if (uVar19 != 0) {\nLAB_002e2d90:\n    local_3c = (code *)PTR_lookup_reloc_004c2994;\n    iVar17 = 0;\n    local_34 = (code *)PTR_read_from_pointer<64>_004c2998;\n    local_40 = &local_50;\nLAB_002e2db4:\n    puVar9 = (uint *)(*(int *)(iVar8 + 8) + iVar17);\n    uVar19 = puVar9[1];\n    uVar22 = *puVar9;\n    uVar26 = local_60;\n    if (uVar19 == 0x16) goto LAB_002e31a8;\nLAB_002e2dd0:\n    puVar9 = (uint *)((int)local_44 - iVar20);\n    puVar18 = (uint *)((int)puVar9 + param_1[3]);\n    iVar8 = (uint)(puVar18 < puVar9) + ((int)puVar9 >> 0x1f) + param_1[2];\n    local_64 = uVar19;\n    if (uVar19 == 0xe) goto LAB_002e31fc;\n    do {\n      local_60._4_4_ = (uint *)uVar26;\n      local_58 = 0;\n      local_68 = uVar22;\n      local_64 = uVar19;\n      local_60 = uVar26;\n      if (0xe < uVar19) {\n        if (uVar19 == 0x15) {\n          if ((char)*(byte *)local_44 < '\0') {\n            uVar26 = (*(code *)PTR_read_unsigned_LEB_128_x_004c2980)\n                               ((uint *)((int)local_44 + 1),&local_48);\n            local_44 = (uint *)((int)local_44 + local_48);\n          }\n          else {\n            uVar26 = (ulonglong)*(byte *)local_44;\n            local_48 = 1;\n            local_44 = (uint *)((int)local_44 + 1);\n          }\n          goto joined_r0x002e3998;\n        }\n        if (0x15 < uVar19) {\n          if (uVar19 == 0x19) {\n            local_60._4_4_ = (uint *)0x1;\n            local_60._0_4_ = (uint *)0x0;\n          }\n          else {\n            if (uVar19 < 0x1a) {\n              if (uVar19 != 0x17) {\n                if (uVar19 != 0x18) {\n                  return 0;\n                }\n                goto LAB_002e32bc;\n              }\n              iVar8 = *param_1;\n              if (*(int *)(iVar8 + 0x48) == 4) {\n                pcVar25 = *(code **)(**(int **)(iVar8 + 8) + 0xc);\n                if (pcVar25 == (code *)PTR_is_big_endian_004c2950) {\n                  local_30 = puVar18;\n                  iVar8 = (**(code **)(**(int **)(iVar8 + 8) + 0xe8))();\n                }\n                else {\n                  local_30 = puVar18;\n                  iVar8 = (*pcVar25)();\n                }\n                uVar15 = *local_44;\n                if (iVar8 == 0) {\n                  uVar15 = (((uVar15 >> 0x10) << 0x18 | (uVar15 >> 0x18) << 0x10) >> 0x10) +\n                           ((uVar15 & 0xff) << 8 | uVar15 >> 8 & 0xff) * 0x10000;\n                }\n                local_44 = local_44 + 1;\n                uVar26 = (ulonglong)uVar15;\n              }\n              else {\n                local_30 = puVar18;\n                uVar26 = (*local_34)(iVar8,&local_44);\n              }\n              iVar8 = *param_1;\n              goto LAB_002e3970;\n            }\n            if (uVar19 != 0x20) {\n              if (uVar19 < 0x20) {\n                return 0;\n              }\n              if (1 < uVar19 - 0x1f01) {\n                return 0;\n              }\nLAB_002e34d8:\n              if ((char)*(byte *)local_44 < '\0') {\n                uVar26 = (*(code *)PTR_read_unsigned_LEB_128_x_004c2980)\n                                   ((uint *)((int)local_44 + 1),&local_48);\n                local_44 = (uint *)((int)local_44 + local_48);\n              }\n              else {\n                uVar26 = (ulonglong)*(byte *)local_44;\n                local_48 = 1;\n                local_44 = (uint *)((int)local_44 + 1);\n              }\n              goto LAB_002e382c;\n            }\n            pcVar25 = *(code **)(**(int **)(*param_1 + 8) + 0xc);\n            if (pcVar25 == (code *)PTR_is_big_endian_004c2950) {\n              iVar8 = (**(code **)(**(int **)(*param_1 + 8) + 0xe8))();\n            }\n            else {\n              iVar8 = (*pcVar25)();\n            }\n            local_60._4_4_ = (uint *)local_44[1];\n            local_60._0_4_ = (uint *)*local_44;\n            if (iVar8 == 0) {\n              uVar15 = (uint)local_60._4_4_ & 0xff;\n              uVar16 = (uint)local_60._4_4_ >> 8;\n              uVar2 = (uint)local_60._4_4_ >> 0x10;\n              uVar4 = (uint)local_60._4_4_ >> 0x18;\n              local_60._4_4_ =\n                   (uint *)(((((uint)local_60._0_4_ >> 0x10) << 0x18 |\n                             ((uint)local_60._0_4_ >> 0x18) << 0x10) >> 0x10) +\n                           (((uint)local_60._0_4_ & 0xff) << 8 | (uint)local_60._0_4_ >> 8 & 0xff) *\n                           0x10000);\n              local_60._0_4_ =\n                   (uint *)(((uVar2 << 0x18 | uVar4 << 0x10) >> 0x10) +\n                           (uVar15 << 8 | uVar16 & 0xff) * 0x10000);\n            }\n            local_44 = local_44 + 2;\n          }\n          uVar7 = CONCAT44(local_60._0_4_,local_60._4_4_);\n          if (uVar22 == 0x6e) goto LAB_002e313c;\n          uVar7 = CONCAT44(local_60._0_4_,local_60._4_4_);\n          uVar26 = CONCAT44(local_60._0_4_,local_60._4_4_);\n          if (uVar22 == 0x2007) goto LAB_002e313c;\n          goto joined_r0x002e3124;\n        }\n        if (uVar19 == 0x11) {\n          puVar9 = (uint *)((int)local_44 + 1);\n          uVar15 = (uint)*(byte *)local_44;\n          uVar26 = (ulonglong)uVar15;\n          local_44 = puVar9;\n          if (uVar22 == 0x31) goto LAB_002e30bc;\n          if (0x31 < uVar22) {\n            uVar26 = (ulonglong)uVar15;\n            if ((uVar22 != 0x6e) && (uVar26 = (ulonglong)uVar15, uVar22 != 0x2007)) {\n              uVar7 = (ulonglong)uVar15;\n              if (uVar22 != 0x47) goto LAB_002e313c;\n              param_1[0x18] = 0;\n              param_1[0x19] = uVar15;\n              uVar7 = (ulonglong)uVar15;\n              goto LAB_002e313c;\n            }\n            goto LAB_002e3858;\n          }\n          if (uVar22 == 1) {\n            param_1[8] = 0;\n            param_1[9] = uVar15;\n            uVar7 = (ulonglong)uVar15;\n            goto LAB_002e313c;\n          }\n          goto joined_r0x002e3124;\n        }\n        if (uVar19 < 0x12) {\n          if (uVar19 == 0xf) goto LAB_002e34d8;\n          if (uVar19 != 0x10) {\n            return 0;\n          }\n          iVar10 = *param_1;\n          iVar8 = *(int *)(iVar10 + 0x48);\n          if (*(uint *)(iVar10 + 0x50) < 3) {\n            iVar8 = *(int *)(iVar10 + 0x4c);\n          }\n          if (iVar8 == 4) {\n            pcVar25 = *(code **)(**(int **)(iVar10 + 8) + 0xc);\n            if (pcVar25 == (code *)PTR_is_big_endian_004c2950) {\n              local_30 = puVar18;\n              iVar8 = (**(code **)(**(int **)(iVar10 + 8) + 0xe8))();\n            }\n            else {\n              local_30 = puVar18;\n              iVar8 = (*pcVar25)();\n            }\n            uVar15 = *local_44;\n            if (iVar8 == 0) {\n              uVar15 = (((uVar15 >> 0x10) << 0x18 | (uVar15 >> 0x18) << 0x10) >> 0x10) +\n                       ((uVar15 & 0xff) << 8 | uVar15 >> 8 & 0xff) * 0x10000;\n            }\n            local_44 = local_44 + 1;\n            uVar26 = (ulonglong)uVar15;\n          }\n          else {\n            local_30 = puVar18;\n            uVar26 = (*local_34)(iVar10,&local_44);\n          }\n          local_50 = uVar26;\n          local_58 = (*local_3c)(*param_1);\n          uVar26 = local_50;\n        }\n        else {\n          if (uVar19 == 0x13) {\n            pcVar25 = *(code **)(**(int **)(*param_1 + 8) + 0xc);\n            if (pcVar25 == (code *)PTR_is_big_endian_004c2950) {\n              local_30 = puVar18;\n              iVar8 = (**(code **)(**(int **)(*param_1 + 8) + 0xe8))();\n            }\n            else {\n              local_30 = puVar18;\n              iVar8 = (*pcVar25)();\n            }\n            uVar15 = *local_44;\n            if (iVar8 == 0) {\n              uVar15 = (((uVar15 >> 0x10) << 0x18 | (uVar15 >> 0x18) << 0x10) >> 0x10) +\n                       ((uVar15 & 0xff) << 8 | uVar15 >> 8 & 0xff) * 0x10000;\n            }\n            local_44 = local_44 + 1;\n            iVar8 = *param_1;\n            uVar26 = (ulonglong)uVar15;\n          }\n          else {\n            if (uVar19 < 0x14) {\n              pcVar25 = *(code **)(**(int **)(*param_1 + 8) + 0xc);\n              if (pcVar25 == (code *)PTR_is_big_endian_004c2950) {\n                iVar8 = (**(code **)(**(int **)(*param_1 + 8) + 0xe8))();\n              }\n              else {\n                iVar8 = (*pcVar25)();\n              }\n              uVar6 = *(ushort *)local_44;\n              if (iVar8 == 0) {\n                uVar6 = CONCAT11(*(byte *)((int)local_44 + 1),*(byte *)local_44);\n              }\n              local_44 = (uint *)((int)local_44 + 2);\n              uVar26 = (ulonglong)uVar6;\n              goto joined_r0x002e3998;\n            }\n            pcVar25 = *(code **)(**(int **)(*param_1 + 8) + 0xc);\n            if (pcVar25 == (code *)PTR_is_big_endian_004c2950) {\n              local_30 = puVar18;\n              iVar8 = (**(code **)(**(int **)(*param_1 + 8) + 0xe8))();\n            }\n            else {\n              local_30 = puVar18;\n              iVar8 = (*pcVar25)();\n            }\n            uVar15 = local_44[1];\n            uVar16 = *local_44;\n            if (iVar8 == 0) {\n              uVar2 = uVar15 & 0xff;\n              uVar4 = uVar15 >> 8;\n              uVar3 = uVar15 >> 0x10;\n              uVar5 = uVar15 >> 0x18;\n              uVar15 = (((uVar16 >> 0x10) << 0x18 | (uVar16 >> 0x18) << 0x10) >> 0x10) +\n                       ((uVar16 & 0xff) << 8 | uVar16 >> 8 & 0xff) * 0x10000;\n              uVar16 = ((uVar3 << 0x18 | uVar5 << 0x10) >> 0x10) +\n                       (uVar2 << 8 | uVar4 & 0xff) * 0x10000;\n            }\n            uVar26 = CONCAT44(uVar16,uVar15);\n            local_44 = local_44 + 2;\n            iVar8 = *param_1;\n          }\nLAB_002e3970:\n          local_50 = uVar26;\n          local_58 = (*local_3c)(iVar8);\n          uVar26 = local_50;\n        }\njoined_r0x002e3998:\n        if (uVar22 == 0x31) {\nLAB_002e30bc:\n          *(ulonglong *)(param_1 + 0x1a) = uVar26;\n          uVar7 = uVar26;\n          goto LAB_002e313c;\n        }\n        if (uVar22 < 0x32) {\n          uVar7 = uVar26;\n          if (uVar22 != 1) goto LAB_002e313c;\nLAB_002e39b4:\n          uVar7 = uVar26;\n          if (local_58 != 0) goto LAB_002e313c;\n          *(ulonglong *)(param_1 + 8) = uVar26;\n          goto LAB_002e313c;\n        }\n        if ((uVar22 != 0x6e) && (uVar22 != 0x2007)) {\nLAB_002e339c:\n          uVar7 = uVar26;\n          if (uVar22 != 0x47) goto LAB_002e313c;\n          *(ulonglong *)(param_1 + 0x18) = uVar26;\n          goto LAB_002e313c;\n        }\n        goto LAB_002e3858;\n      }\n      if (uVar19 == 7) {\n        pcVar25 = *(code **)(**(int **)(*param_1 + 8) + 0xc);\n        if (pcVar25 == (code *)PTR_is_big_endian_004c2950) {\n          local_30 = puVar18;\n          iVar10 = (**(code **)(**(int **)(*param_1 + 8) + 0xe8))();\n        }\n        else {\n          local_30 = puVar18;\n          iVar10 = (*pcVar25)();\n        }\n        local_50._4_4_ = (uint *)local_44[1];\n        puVar9 = (uint *)*local_44;\n        if (iVar10 == 0) {\n          uVar15 = (uint)local_50._4_4_ & 0xff;\n          uVar16 = (uint)local_50._4_4_ >> 8;\n          uVar2 = (uint)local_50._4_4_ >> 0x10;\n          uVar4 = (uint)local_50._4_4_ >> 0x18;\n          local_50._4_4_ =\n               (uint *)(((((uint)puVar9 >> 0x10) << 0x18 | ((uint)puVar9 >> 0x18) << 0x10) >> 0x10)\n                       + (((uint)puVar9 & 0xff) << 8 | (uint)puVar9 >> 8 & 0xff) * 0x10000);\n          puVar9 = (uint *)(((uVar2 << 0x18 | uVar4 << 0x10) >> 0x10) +\n                           (uVar15 << 8 | uVar16 & 0xff) * 0x10000);\n        }\n        local_44 = local_44 + 2;\n        iVar10 = *param_1;\n        local_50._0_4_ = puVar9;\nLAB_002e3708:\n        local_58 = (*local_3c)(iVar10,puVar9,iVar8,local_30,local_40);\n        local_60._4_4_ = local_50._4_4_;\n        local_60._0_4_ = local_50._0_4_;\n        goto LAB_002e355c;\n      }\n      if (7 < uVar19) {\n        if (uVar19 == 10) {\n          local_60._0_4_ = (uint *)((int)local_44 + 1);\n          local_58 = (uint)*(byte *)local_44;\n          local_44 = (uint *)((int)local_60._0_4_ + local_58);\n          goto LAB_002e355c;\n        }\n        if (uVar19 < 0xb) {\n          if (uVar19 != 8) {\n            if (uVar19 != 9) {\n              return 0;\n            }\nLAB_002e32bc:\n            uVar15 = (uint)*(byte *)local_44;\n            pbVar14 = (byte *)((int)local_44 + 1);\n            if ((char)*(byte *)local_44 < '\0') {\n              (*(code *)PTR_read_unsigned_LEB_128_x_004c2980)(pbVar14,&local_48);\n              pbVar14 = (byte *)((int)local_44 + local_48);\n              uVar15 = extraout_v1_00;\n            }\n            else {\n              local_48 = 1;\n            }\n            uVar26 = CONCAT44(pbVar14,local_60._4_4_);\n            local_58 = uVar15;\n            local_44 = (uint *)((int)local_44 + uVar15 + local_48);\n            goto LAB_002e382c;\n          }\n          local_60._0_4_ = local_44;\n          local_30 = local_44;\n          local_48 = (*(code *)PTR_strlen_004c5b9c)(local_44);\n          uVar26 = CONCAT44(local_60._0_4_,local_60._4_4_);\n          local_44 = (uint *)((int)local_30 + local_48 + 1);\n          uVar7 = CONCAT44(local_60._0_4_,local_60._4_4_);\n          if (uVar22 == 0x31) goto LAB_002e313c;\n          if (0x31 < uVar22) {\n            if ((uVar22 != 0x6e) &&\n               (uVar7 = CONCAT44(local_60._0_4_,local_60._4_4_), uVar22 != 0x2007))\n            goto LAB_002e313c;\n            param_1[0x12] = (int)local_30;\n            uVar7 = uVar26;\n            goto LAB_002e313c;\n          }\nLAB_002e3118:\n          uVar7 = uVar26;\n          if (uVar22 == 1) goto LAB_002e313c;\njoined_r0x002e3124:\n          uVar7 = uVar26;\n          if (uVar22 != 3) goto LAB_002e313c;\n          local_60._0_4_ = (uint *)(uVar26 >> 0x20);\n          if (uVar19 == 8) {\n            param_1[0xf] = (int)local_60._0_4_;\n            goto LAB_002e313c;\n          }\n          if (uVar19 != 0xe) goto LAB_002e313c;\n          goto LAB_002e3284;\n        }\n        if (uVar19 < 0xd) {\n          uVar26 = (ulonglong)*(byte *)local_44;\n          local_44 = (uint *)((int)local_44 + 1);\nLAB_002e382c:\n          uVar7 = uVar26;\n          if (uVar22 == 0x31) goto LAB_002e313c;\n          if (uVar22 < 0x32) goto LAB_002e3118;\n        }\n        else {\n          bVar1 = *(byte *)local_44;\n          uVar15 = (uint)bVar1;\n          puVar9 = (uint *)((int)local_44 + 1);\n          if ((char)bVar1 < '\0') {\n            uVar26 = (*(code *)PTR_read_signed_LEB_128_x_004c297c)(puVar9,&local_48,uVar15);\n            puVar9 = (uint *)((int)local_44 + local_48);\n          }\n          else {\n            local_48 = 1;\n            uVar26 = (ulonglong)uVar15;\n            if ((bVar1 & 0x40) != 0) {\n              uVar26 = CONCAT44(0xffffffff,uVar15 | 0xffffff80);\n            }\n          }\n          local_44 = puVar9;\n          uVar7 = uVar26;\n          if (uVar22 == 0x31) goto LAB_002e313c;\n          if (uVar22 < 0x32) {\n            puVar9 = (uint *)param_1[0xc];\n            if (puVar9 != (uint *)param_1[0xd]) goto LAB_002e314c;\nLAB_002e2f98:\n            iVar17 = iVar17 + 8;\n            local_60 = uVar26;\n            std::\n            vector<gold::Dwarf_die::Attribute_value,std::allocator<gold::Dwarf_die::Attribute_value>>\n            ::_M_realloc_insert<gold::Dwarf_die::Attribute_value_const&>(local_38,puVar9,&local_68);\n            iVar8 = param_1[10];\n            if (iVar17 == iVar21) goto LAB_002e2fb8;\n            goto LAB_002e2db4;\n          }\n        }\n        if ((uVar22 != 0x6e) && (uVar7 = uVar26, uVar22 != 0x2007)) goto LAB_002e313c;\nLAB_002e3858:\n        local_60._0_4_ = (uint *)(uVar26 >> 0x20);\n        uVar7 = uVar26;\n        if (uVar19 == 8) {\n          param_1[0x12] = (int)local_60._0_4_;\n          goto LAB_002e313c;\n        }\n        if (uVar19 != 0xe) goto LAB_002e313c;\n        goto LAB_002e387c;\n      }\n      if (uVar19 == 4) {\n        pcVar25 = *(code **)(**(int **)(*param_1 + 8) + 0xc);\n        if (pcVar25 == (code *)PTR_is_big_endian_004c2950) {\n          iVar8 = (**(code **)(**(int **)(*param_1 + 8) + 0xe8))();\n        }\n        else {\n          iVar8 = (*pcVar25)();\n        }\n        local_58 = *local_44;\n        if (iVar8 == 0) {\n          local_58 = (((local_58 >> 0x10) << 0x18 | (local_58 >> 0x18) << 0x10) >> 0x10) +\n                     ((local_58 & 0xff) << 8 | local_58 >> 8 & 0xff) * 0x10000;\n        }\n        local_60._0_4_ = local_44 + 1;\n        local_44 = (uint *)((int)local_60._0_4_ + local_58);\nLAB_002e355c:\n        uVar26 = CONCAT44(local_60._0_4_,local_60._4_4_);\n        uVar7 = uVar26;\n        if (uVar22 == 0x31) goto LAB_002e313c;\n        if (uVar22 < 0x32) goto LAB_002e3118;\n        puVar9 = (uint *)param_1[0xc];\n      }\n      else {\n        if (4 < uVar19) {\n          if (uVar19 != 5) {\n            if (uVar19 != 6) {\n              return 0;\n            }\n            pcVar25 = *(code **)(**(int **)(*param_1 + 8) + 0xc);\n            if (pcVar25 == (code *)PTR_is_big_endian_004c2950) {\n              local_30 = puVar18;\n              iVar10 = (**(code **)(**(int **)(*param_1 + 8) + 0xe8))();\n            }\n            else {\n              local_30 = puVar18;\n              iVar10 = (*pcVar25)();\n            }\n            puVar9 = (uint *)*local_44;\n            if (iVar10 == 0) {\n              puVar9 = (uint *)(((((uint)puVar9 >> 0x10) << 0x18 | ((uint)puVar9 >> 0x18) << 0x10)\n                                >> 0x10) +\n                               (((uint)puVar9 & 0xff) << 8 | (uint)puVar9 >> 8 & 0xff) * 0x10000);\n            }\n            local_44 = local_44 + 1;\n            iVar10 = *param_1;\n            local_50._0_4_ = (uint *)0x0;\n            local_50._4_4_ = puVar9;\n            goto LAB_002e3708;\n          }\n          pcVar25 = *(code **)(**(int **)(*param_1 + 8) + 0xc);\n          if (pcVar25 == (code *)PTR_is_big_endian_004c2950) {\n            iVar8 = (**(code **)(**(int **)(*param_1 + 8) + 0xe8))();\n          }\n          else {\n            iVar8 = (*pcVar25)();\n          }\n          uVar6 = *(ushort *)local_44;\n          if (iVar8 == 0) {\n            uVar6 = CONCAT11(*(byte *)((int)local_44 + 1),*(byte *)local_44);\n          }\n          local_60._4_4_ = (uint *)(uint)uVar6;\n          local_44 = (uint *)((int)local_44 + 2);\n          local_60._0_4_ = (uint *)0x0;\n          goto LAB_002e355c;\n        }\n        if (uVar19 != 1) {\n          if (uVar19 != 3) {\n            return 0;\n          }\n          pcVar25 = *(code **)(**(int **)(*param_1 + 8) + 0xc);\n          if (pcVar25 == (code *)PTR_is_big_endian_004c2950) {\n            iVar8 = (**(code **)(**(int **)(*param_1 + 8) + 0xe8))();\n          }\n          else {\n            iVar8 = (*pcVar25)();\n          }\n          uVar6 = *(ushort *)local_44;\n          if (iVar8 == 0) {\n            uVar6 = CONCAT11(*(byte *)((int)local_44 + 1),*(byte *)local_44);\n          }\n          local_58 = (uint)uVar6;\n          local_60._0_4_ = (uint *)((int)local_44 + 2);\n          local_44 = (uint *)((int)local_60._0_4_ + local_58);\n          goto LAB_002e355c;\n        }\n        iVar8 = *param_1;\n        if (*(int *)(iVar8 + 0x4c) == 4) {\n          pcVar25 = *(code **)(**(int **)(iVar8 + 8) + 0xc);\n          if (pcVar25 == (code *)PTR_is_big_endian_004c2950) {\n            local_30 = puVar18;\n            iVar8 = (**(code **)(**(int **)(iVar8 + 8) + 0xe8))();\n          }\n          else {\n            local_30 = puVar18;\n            iVar8 = (*pcVar25)();\n          }\n          uVar15 = *local_44;\n          if (iVar8 == 0) {\n            uVar15 = (((uVar15 >> 0x10) << 0x18 | (uVar15 >> 0x18) << 0x10) >> 0x10) +\n                     ((uVar15 & 0xff) << 8 | uVar15 >> 8 & 0xff) * 0x10000;\n          }\n          local_44 = local_44 + 1;\n          uVar26 = (ulonglong)uVar15;\n        }\n        else {\n          local_30 = puVar18;\n          uVar26 = (*local_34)(iVar8,&local_44);\n        }\n        local_50 = uVar26;\n        local_58 = (*local_3c)(*param_1);\n        uVar26 = local_50;\n        if (uVar22 == 0x31) goto LAB_002e30bc;\n        if (uVar22 < 0x32) {\n          if (uVar22 != 1) goto joined_r0x002e3124;\n          goto LAB_002e39b4;\n        }\n        uVar7 = local_50;\n        if (uVar22 == 0x6e) goto LAB_002e313c;\n        if (uVar22 != 0x2007) goto LAB_002e339c;\n        puVar9 = (uint *)param_1[0xc];\n      }\n      while( true ) {\n        if (puVar9 == (uint *)param_1[0xd]) goto LAB_002e2f98;\nLAB_002e314c:\n        local_60._0_4_ = (uint *)(uVar26 >> 0x20);\n        local_60._4_4_ = (uint *)uVar26;\n        iVar17 = iVar17 + 8;\n        puVar9[1] = local_64;\n        puVar9[2] = (uint)local_60._0_4_;\n        *puVar9 = local_68;\n        puVar9[3] = (uint)local_60._4_4_;\n        puVar9[4] = local_58;\n        puVar9[5] = local_54;\n        param_1[0xc] = (int)(puVar9 + 6);\n        iVar8 = param_1[10];\n        local_60 = uVar26;\n        if (iVar17 == iVar21) goto LAB_002e2fb8;\n        puVar9 = (uint *)(*(int *)(iVar8 + 8) + iVar17);\n        uVar19 = puVar9[1];\n        uVar22 = *puVar9;\n        if (uVar19 != 0x16) goto LAB_002e2dd0;\nLAB_002e31a8:\n        uVar19 = (uint)*(byte *)local_44;\n        puVar9 = (uint *)((int)local_44 + 1);\n        if ((char)*(byte *)local_44 < '\0') {\n          local_60 = uVar26;\n          (*(code *)PTR_read_unsigned_LEB_128_x_004c2980)(puVar9,&local_48,uVar19);\n          puVar9 = (uint *)((int)local_44 + local_48);\n          uVar19 = extraout_v1;\n          uVar26 = local_60;\n        }\n        else {\n          local_48 = 1;\n        }\n        puVar11 = (uint *)((int)puVar9 - iVar20);\n        puVar18 = (uint *)((int)puVar11 + param_1[3]);\n        iVar8 = (uint)(puVar18 < puVar11) + ((int)puVar11 >> 0x1f) + param_1[2];\n        local_64 = uVar19;\n        local_44 = puVar9;\n        if (uVar19 != 0xe) break;\nLAB_002e31fc:\n        local_58 = 0;\n        iVar8 = *param_1;\n        local_68 = uVar22;\n        local_30 = puVar18;\n        local_60 = uVar26;\n        if (*(int *)(iVar8 + 0x48) == 4) {\n          pcVar25 = *(code **)(**(int **)(iVar8 + 8) + 0xc);\n          if (pcVar25 == (code *)PTR_is_big_endian_004c2950) {\n            iVar8 = (**(code **)(**(int **)(iVar8 + 8) + 0xe8))();\n          }\n          else {\n            iVar8 = (*pcVar25)();\n          }\n          uVar19 = *local_44;\n          if (iVar8 == 0) {\n            uVar19 = (((uVar19 >> 0x10) << 0x18 | (uVar19 >> 0x18) << 0x10) >> 0x10) +\n                     ((uVar19 & 0xff) << 8 | uVar19 >> 8 & 0xff) * 0x10000;\n          }\n          local_44 = local_44 + 1;\n          uVar26 = (ulonglong)uVar19;\n        }\n        else {\n          uVar26 = (*local_34)(iVar8,&local_44);\n        }\n        local_50 = uVar26;\n        local_58 = (*local_3c)(*param_1);\n        uVar7 = local_50;\n        if (uVar22 != 0x31) {\n          uVar26 = local_50;\n          if (uVar22 < 0x32) {\n            if ((uVar22 != 1) && (uVar22 == 3)) {\nLAB_002e3284:\n              param_1[0x16] = local_58;\n              *(ulonglong *)(param_1 + 0x10) = uVar26;\n              uVar7 = uVar26;\n            }\n          }\n          else {\n            if (uVar22 == 0x6e) {\nLAB_002e387c:\n              param_1[0x16] = local_58;\n            }\n            else {\n              if (uVar22 != 0x2007) goto LAB_002e313c;\n              param_1[0x16] = local_58;\n            }\n            *(ulonglong *)(param_1 + 0x14) = uVar26;\n            uVar7 = uVar26;\n          }\n        }\nLAB_002e313c:\n        puVar9 = (uint *)param_1[0xc];\n        uVar26 = uVar7;\n      }\n    } while( true );\n  }\n  uVar22 = (int)local_44 - iVar20;\n  uVar19 = uVar22 + iVar17;\n  iVar17 = (uint)(uVar19 < uVar22) + ((int)uVar22 >> 0x1f) + param_1[2];\n  if (*(int *)(iVar8 + 4) < 0) {\n    param_1[6] = iVar17;\n    param_1[7] = uVar19;\n  }\n  else {\n    param_1[8] = iVar17;\n    param_1[9] = uVar19;\n  }\n  *(undefined1 *)(param_1 + 0xe) = 1;\n  return 1;\n}" (type_identifier "undefined4") (function_declarator "FUN_002e2ca8(int *param_1)" (identifier "FUN_002e2ca8") (parameter_list "(int *param_1)" (( "(") (parameter_declaration "int *param_1" (primitive_type "int") (pointer_declarator "*param_1" (* "*") (identifier "param_1"))) () ")"))) (compound_statement "{\n  byte bVar1;\n  uint uVar2;\n  uint uVar3;\n  uint uVar4;\n  uint uVar5;\n  ushort uVar6;\n  ulonglong uVar7;\n  int iVar8;\n  uint *puVar9;\n  int iVar10;\n  uint *puVar11;\n  undefined4 uVar12;\n  uint extraout_v1;\n  undefined8 *puVar13;\n  uint extraout_v1_00;\n  Dwarf_info_reader *this;\n  byte *pbVar14;\n  uint uVar15;\n  uint uVar16;\n  int iVar17;\n  uint *puVar18;\n  uint uVar19;\n  int iVar20;\n  int iVar21;\n  uint uVar22;\n  undefined8 *puVar23;\n  undefined8 *puVar24;\n  code *pcVar25;\n  ulonglong uVar26;\n  uint local_68;\n  uint local_64;\n  undefined8 local_60;\n  uint local_58;\n  uint local_54;\n  undefined8 local_50;\n  int local_48;\n  uint *local_44;\n  undefined8 *local_40;\n  code *local_3c;\n  vector<gold::Dwarf_die::Attribute_value,std::allocator<gold::Dwarf_die::Attribute_value>>\n  *local_38;\n  code *local_34;\n  uint *local_30;\n  \n  iVar8 = param_1[10];\n  if (iVar8 == 0) {\n    uVar12 = (*(code *)PTR_do_gold_unreachable_004c1a30)\n                       (PTR_s_in_a_linker_script_004c191c + 0x7090,0x2a9,\n                        PTR_s_in_a_linker_script_004c191c + 0x7414);\n    return uVar12;\n  }\n  this = (Dwarf_info_reader *)*param_1;\n  iVar17 = param_1[3];\n  iVar20 = *(int *)(this + 0x2c) + *(int *)(this + 0x3c) + iVar17;\n  if ((uint)(*(int *)(this + 0x2c) + *(int *)(this + 0x3c) + *(int *)(this + 0x44)) < iVar20 + 1U) {\n    gold::Dwarf_info_reader::warn_corrupt_debug_section(this);\n    return 0;\n  }\n  local_38 = (vector<gold::Dwarf_die::Attribute_value,std::allocator<gold::Dwarf_die::Attribute_value>>\n              *)(param_1 + 0xb);\n  if (iVar20 == 0) {\n    return 0;\n  }\n  iVar21 = *(int *)(iVar8 + 0xc) - *(int *)(iVar8 + 8);\n  local_44 = (uint *)(iVar20 + param_1[5]);\n  uVar19 = iVar21 >> 3;\n  if (0xaaaaaaa < uVar19) {\n    uVar12 = (*(code *)PTR___throw_length_error_004c1e74)(PTR_s__s_004c1a50 + -0xda4);\n    return uVar12;\n  }\n  puVar23 = (undefined8 *)param_1[0xb];\n  if ((uint)((param_1[0xd] - (int)puVar23 >> 3) * -0x55555555) < uVar19) {\n    puVar13 = (undefined8 *)param_1[0xc];\n    iVar17 = (int)puVar13 - (int)puVar23;\n    if (uVar19 == 0) {\n      iVar10 = 0;\n      puVar24 = puVar23;\n    }\n    else {\n      local_40 = puVar13;\n      iVar10 = (*(code *)PTR_operator_new_004c13a8)(uVar19 * 0x18);\n      puVar13 = local_40;\n      puVar24 = (undefined8 *)param_1[0xb];\n    }\n    if (puVar23 != puVar13) {\n      (*(code *)PTR_memmove_004c5af8)(iVar10,puVar23,iVar17);\n    }\n    if (puVar24 != (undefined8 *)0x0) {\n      (*(code *)PTR_operator_delete_004c12fc)(puVar24);\n    }\n    iVar8 = param_1[10];\n    param_1[0xb] = iVar10;\n    param_1[0xc] = iVar10 + iVar17;\n    param_1[0xd] = iVar10 + uVar19 * 0x18;\n    if (uVar19 != 0) goto LAB_002e2d90;\nLAB_002e2fb8:\n    if (iVar8 == 0) {\n      uVar12 = (*(code *)PTR_do_gold_unreachable_004c1a30)\n                         (PTR_s_in_a_linker_script_004c191c + 0x7108,0x206,\n                          PTR_s_in_a_linker_script_004c191c + 0x7404);\n      return uVar12;\n    }\n    iVar17 = param_1[3];\n  }\n  else if (uVar19 != 0) {\nLAB_002e2d90:\n    local_3c = (code *)PTR_lookup_reloc_004c2994;\n    iVar17 = 0;\n    local_34 = (code *)PTR_read_from_pointer<64>_004c2998;\n    local_40 = &local_50;\nLAB_002e2db4:\n    puVar9 = (uint *)(*(int *)(iVar8 + 8) + iVar17);\n    uVar19 = puVar9[1];\n    uVar22 = *puVar9;\n    uVar26 = local_60;\n    if (uVar19 == 0x16) goto LAB_002e31a8;\nLAB_002e2dd0:\n    puVar9 = (uint *)((int)local_44 - iVar20);\n    puVar18 = (uint *)((int)puVar9 + param_1[3]);\n    iVar8 = (uint)(puVar18 < puVar9) + ((int)puVar9 >> 0x1f) + param_1[2];\n    local_64 = uVar19;\n    if (uVar19 == 0xe) goto LAB_002e31fc;\n    do {\n      local_60._4_4_ = (uint *)uVar26;\n      local_58 = 0;\n      local_68 = uVar22;\n      local_64 = uVar19;\n      local_60 = uVar26;\n      if (0xe < uVar19) {\n        if (uVar19 == 0x15) {\n          if ((char)*(byte *)local_44 < '\0') {\n            uVar26 = (*(code *)PTR_read_unsigned_LEB_128_x_004c2980)\n                               ((uint *)((int)local_44 + 1),&local_48);\n            local_44 = (uint *)((int)local_44 + local_48);\n          }\n          else {\n            uVar26 = (ulonglong)*(byte *)local_44;\n            local_48 = 1;\n            local_44 = (uint *)((int)local_44 + 1);\n          }\n          goto joined_r0x002e3998;\n        }\n        if (0x15 < uVar19) {\n          if (uVar19 == 0x19) {\n            local_60._4_4_ = (uint *)0x1;\n            local_60._0_4_ = (uint *)0x0;\n          }\n          else {\n            if (uVar19 < 0x1a) {\n              if (uVar19 != 0x17) {\n                if (uVar19 != 0x18) {\n                  return 0;\n                }\n                goto LAB_002e32bc;\n              }\n              iVar8 = *param_1;\n              if (*(int *)(iVar8 + 0x48) == 4) {\n                pcVar25 = *(code **)(**(int **)(iVar8 + 8) + 0xc);\n                if (pcVar25 == (code *)PTR_is_big_endian_004c2950) {\n                  local_30 = puVar18;\n                  iVar8 = (**(code **)(**(int **)(iVar8 + 8) + 0xe8))();\n                }\n                else {\n                  local_30 = puVar18;\n                  iVar8 = (*pcVar25)();\n                }\n                uVar15 = *local_44;\n                if (iVar8 == 0) {\n                  uVar15 = (((uVar15 >> 0x10) << 0x18 | (uVar15 >> 0x18) << 0x10) >> 0x10) +\n                           ((uVar15 & 0xff) << 8 | uVar15 >> 8 & 0xff) * 0x10000;\n                }\n                local_44 = local_44 + 1;\n                uVar26 = (ulonglong)uVar15;\n              }\n              else {\n                local_30 = puVar18;\n                uVar26 = (*local_34)(iVar8,&local_44);\n              }\n              iVar8 = *param_1;\n              goto LAB_002e3970;\n            }\n            if (uVar19 != 0x20) {\n              if (uVar19 < 0x20) {\n                return 0;\n              }\n              if (1 < uVar19 - 0x1f01) {\n                return 0;\n              }\nLAB_002e34d8:\n              if ((char)*(byte *)local_44 < '\0') {\n                uVar26 = (*(code *)PTR_read_unsigned_LEB_128_x_004c2980)\n                                   ((uint *)((int)local_44 + 1),&local_48);\n                local_44 = (uint *)((int)local_44 + local_48);\n              }\n              else {\n                uVar26 = (ulonglong)*(byte *)local_44;\n                local_48 = 1;\n                local_44 = (uint *)((int)local_44 + 1);\n              }\n              goto LAB_002e382c;\n            }\n            pcVar25 = *(code **)(**(int **)(*param_1 + 8) + 0xc);\n            if (pcVar25 == (code *)PTR_is_big_endian_004c2950) {\n              iVar8 = (**(code **)(**(int **)(*param_1 + 8) + 0xe8))();\n            }\n            else {\n              iVar8 = (*pcVar25)();\n            }\n            local_60._4_4_ = (uint *)local_44[1];\n            local_60._0_4_ = (uint *)*local_44;\n            if (iVar8 == 0) {\n              uVar15 = (uint)local_60._4_4_ & 0xff;\n              uVar16 = (uint)local_60._4_4_ >> 8;\n              uVar2 = (uint)local_60._4_4_ >> 0x10;\n              uVar4 = (uint)local_60._4_4_ >> 0x18;\n              local_60._4_4_ =\n                   (uint *)(((((uint)local_60._0_4_ >> 0x10) << 0x18 |\n                             ((uint)local_60._0_4_ >> 0x18) << 0x10) >> 0x10) +\n                           (((uint)local_60._0_4_ & 0xff) << 8 | (uint)local_60._0_4_ >> 8 & 0xff) *\n                           0x10000);\n              local_60._0_4_ =\n                   (uint *)(((uVar2 << 0x18 | uVar4 << 0x10) >> 0x10) +\n                           (uVar15 << 8 | uVar16 & 0xff) * 0x10000);\n            }\n            local_44 = local_44 + 2;\n          }\n          uVar7 = CONCAT44(local_60._0_4_,local_60._4_4_);\n          if (uVar22 == 0x6e) goto LAB_002e313c;\n          uVar7 = CONCAT44(local_60._0_4_,local_60._4_4_);\n          uVar26 = CONCAT44(local_60._0_4_,local_60._4_4_);\n          if (uVar22 == 0x2007) goto LAB_002e313c;\n          goto joined_r0x002e3124;\n        }\n        if (uVar19 == 0x11) {\n          puVar9 = (uint *)((int)local_44 + 1);\n          uVar15 = (uint)*(byte *)local_44;\n          uVar26 = (ulonglong)uVar15;\n          local_44 = puVar9;\n          if (uVar22 == 0x31) goto LAB_002e30bc;\n          if (0x31 < uVar22) {\n            uVar26 = (ulonglong)uVar15;\n            if ((uVar22 != 0x6e) && (uVar26 = (ulonglong)uVar15, uVar22 != 0x2007)) {\n              uVar7 = (ulonglong)uVar15;\n              if (uVar22 != 0x47) goto LAB_002e313c;\n              param_1[0x18] = 0;\n              param_1[0x19] = uVar15;\n              uVar7 = (ulonglong)uVar15;\n              goto LAB_002e313c;\n            }\n            goto LAB_002e3858;\n          }\n          if (uVar22 == 1) {\n            param_1[8] = 0;\n            param_1[9] = uVar15;\n            uVar7 = (ulonglong)uVar15;\n            goto LAB_002e313c;\n          }\n          goto joined_r0x002e3124;\n        }\n        if (uVar19 < 0x12) {\n          if (uVar19 == 0xf) goto LAB_002e34d8;\n          if (uVar19 != 0x10) {\n            return 0;\n          }\n          iVar10 = *param_1;\n          iVar8 = *(int *)(iVar10 + 0x48);\n          if (*(uint *)(iVar10 + 0x50) < 3) {\n            iVar8 = *(int *)(iVar10 + 0x4c);\n          }\n          if (iVar8 == 4) {\n            pcVar25 = *(code **)(**(int **)(iVar10 + 8) + 0xc);\n            if (pcVar25 == (code *)PTR_is_big_endian_004c2950) {\n              local_30 = puVar18;\n              iVar8 = (**(code **)(**(int **)(iVar10 + 8) + 0xe8))();\n            }\n            else {\n              local_30 = puVar18;\n              iVar8 = (*pcVar25)();\n            }\n            uVar15 = *local_44;\n            if (iVar8 == 0) {\n              uVar15 = (((uVar15 >> 0x10) << 0x18 | (uVar15 >> 0x18) << 0x10) >> 0x10) +\n                       ((uVar15 & 0xff) << 8 | uVar15 >> 8 & 0xff) * 0x10000;\n            }\n            local_44 = local_44 + 1;\n            uVar26 = (ulonglong)uVar15;\n          }\n          else {\n            local_30 = puVar18;\n            uVar26 = (*local_34)(iVar10,&local_44);\n          }\n          local_50 = uVar26;\n          local_58 = (*local_3c)(*param_1);\n          uVar26 = local_50;\n        }\n        else {\n          if (uVar19 == 0x13) {\n            pcVar25 = *(code **)(**(int **)(*param_1 + 8) + 0xc);\n            if (pcVar25 == (code *)PTR_is_big_endian_004c2950) {\n              local_30 = puVar18;\n              iVar8 = (**(code **)(**(int **)(*param_1 + 8) + 0xe8))();\n            }\n            else {\n              local_30 = puVar18;\n              iVar8 = (*pcVar25)();\n            }\n            uVar15 = *local_44;\n            if (iVar8 == 0) {\n              uVar15 = (((uVar15 >> 0x10) << 0x18 | (uVar15 >> 0x18) << 0x10) >> 0x10) +\n                       ((uVar15 & 0xff) << 8 | uVar15 >> 8 & 0xff) * 0x10000;\n            }\n            local_44 = local_44 + 1;\n            iVar8 = *param_1;\n            uVar26 = (ulonglong)uVar15;\n          }\n          else {\n            if (uVar19 < 0x14) {\n              pcVar25 = *(code **)(**(int **)(*param_1 + 8) + 0xc);\n              if (pcVar25 == (code *)PTR_is_big_endian_004c2950) {\n                iVar8 = (**(code **)(**(int **)(*param_1 + 8) + 0xe8))();\n              }\n              else {\n                iVar8 = (*pcVar25)();\n              }\n              uVar6 = *(ushort *)local_44;\n              if (iVar8 == 0) {\n                uVar6 = CONCAT11(*(byte *)((int)local_44 + 1),*(byte *)local_44);\n              }\n              local_44 = (uint *)((int)local_44 + 2);\n              uVar26 = (ulonglong)uVar6;\n              goto joined_r0x002e3998;\n            }\n            pcVar25 = *(code **)(**(int **)(*param_1 + 8) + 0xc);\n            if (pcVar25 == (code *)PTR_is_big_endian_004c2950) {\n              local_30 = puVar18;\n              iVar8 = (**(code **)(**(int **)(*param_1 + 8) + 0xe8))();\n            }\n            else {\n              local_30 = puVar18;\n              iVar8 = (*pcVar25)();\n            }\n            uVar15 = local_44[1];\n            uVar16 = *local_44;\n            if (iVar8 == 0) {\n              uVar2 = uVar15 & 0xff;\n              uVar4 = uVar15 >> 8;\n              uVar3 = uVar15 >> 0x10;\n              uVar5 = uVar15 >> 0x18;\n              uVar15 = (((uVar16 >> 0x10) << 0x18 | (uVar16 >> 0x18) << 0x10) >> 0x10) +\n                       ((uVar16 & 0xff) << 8 | uVar16 >> 8 & 0xff) * 0x10000;\n              uVar16 = ((uVar3 << 0x18 | uVar5 << 0x10) >> 0x10) +\n                       (uVar2 << 8 | uVar4 & 0xff) * 0x10000;\n            }\n            uVar26 = CONCAT44(uVar16,uVar15);\n            local_44 = local_44 + 2;\n            iVar8 = *param_1;\n          }\nLAB_002e3970:\n          local_50 = uVar26;\n          local_58 = (*local_3c)(iVar8);\n          uVar26 = local_50;\n        }\njoined_r0x002e3998:\n        if (uVar22 == 0x31) {\nLAB_002e30bc:\n          *(ulonglong *)(param_1 + 0x1a) = uVar26;\n          uVar7 = uVar26;\n          goto LAB_002e313c;\n        }\n        if (uVar22 < 0x32) {\n          uVar7 = uVar26;\n          if (uVar22 != 1) goto LAB_002e313c;\nLAB_002e39b4:\n          uVar7 = uVar26;\n          if (local_58 != 0) goto LAB_002e313c;\n          *(ulonglong *)(param_1 + 8) = uVar26;\n          goto LAB_002e313c;\n        }\n        if ((uVar22 != 0x6e) && (uVar22 != 0x2007)) {\nLAB_002e339c:\n          uVar7 = uVar26;\n          if (uVar22 != 0x47) goto LAB_002e313c;\n          *(ulonglong *)(param_1 + 0x18) = uVar26;\n          goto LAB_002e313c;\n        }\n        goto LAB_002e3858;\n      }\n      if (uVar19 == 7) {\n        pcVar25 = *(code **)(**(int **)(*param_1 + 8) + 0xc);\n        if (pcVar25 == (code *)PTR_is_big_endian_004c2950) {\n          local_30 = puVar18;\n          iVar10 = (**(code **)(**(int **)(*param_1 + 8) + 0xe8))();\n        }\n        else {\n          local_30 = puVar18;\n          iVar10 = (*pcVar25)();\n        }\n        local_50._4_4_ = (uint *)local_44[1];\n        puVar9 = (uint *)*local_44;\n        if (iVar10 == 0) {\n          uVar15 = (uint)local_50._4_4_ & 0xff;\n          uVar16 = (uint)local_50._4_4_ >> 8;\n          uVar2 = (uint)local_50._4_4_ >> 0x10;\n          uVar4 = (uint)local_50._4_4_ >> 0x18;\n          local_50._4_4_ =\n               (uint *)(((((uint)puVar9 >> 0x10) << 0x18 | ((uint)puVar9 >> 0x18) << 0x10) >> 0x10)\n                       + (((uint)puVar9 & 0xff) << 8 | (uint)puVar9 >> 8 & 0xff) * 0x10000);\n          puVar9 = (uint *)(((uVar2 << 0x18 | uVar4 << 0x10) >> 0x10) +\n                           (uVar15 << 8 | uVar16 & 0xff) * 0x10000);\n        }\n        local_44 = local_44 + 2;\n        iVar10 = *param_1;\n        local_50._0_4_ = puVar9;\nLAB_002e3708:\n        local_58 = (*local_3c)(iVar10,puVar9,iVar8,local_30,local_40);\n        local_60._4_4_ = local_50._4_4_;\n        local_60._0_4_ = local_50._0_4_;\n        goto LAB_002e355c;\n      }\n      if (7 < uVar19) {\n        if (uVar19 == 10) {\n          local_60._0_4_ = (uint *)((int)local_44 + 1);\n          local_58 = (uint)*(byte *)local_44;\n          local_44 = (uint *)((int)local_60._0_4_ + local_58);\n          goto LAB_002e355c;\n        }\n        if (uVar19 < 0xb) {\n          if (uVar19 != 8) {\n            if (uVar19 != 9) {\n              return 0;\n            }\nLAB_002e32bc:\n            uVar15 = (uint)*(byte *)local_44;\n            pbVar14 = (byte *)((int)local_44 + 1);\n            if ((char)*(byte *)local_44 < '\0') {\n              (*(code *)PTR_read_unsigned_LEB_128_x_004c2980)(pbVar14,&local_48);\n              pbVar14 = (byte *)((int)local_44 + local_48);\n              uVar15 = extraout_v1_00;\n            }\n            else {\n              local_48 = 1;\n            }\n            uVar26 = CONCAT44(pbVar14,local_60._4_4_);\n            local_58 = uVar15;\n            local_44 = (uint *)((int)local_44 + uVar15 + local_48);\n            goto LAB_002e382c;\n          }\n          local_60._0_4_ = local_44;\n          local_30 = local_44;\n          local_48 = (*(code *)PTR_strlen_004c5b9c)(local_44);\n          uVar26 = CONCAT44(local_60._0_4_,local_60._4_4_);\n          local_44 = (uint *)((int)local_30 + local_48 + 1);\n          uVar7 = CONCAT44(local_60._0_4_,local_60._4_4_);\n          if (uVar22 == 0x31) goto LAB_002e313c;\n          if (0x31 < uVar22) {\n            if ((uVar22 != 0x6e) &&\n               (uVar7 = CONCAT44(local_60._0_4_,local_60._4_4_), uVar22 != 0x2007))\n            goto LAB_002e313c;\n            param_1[0x12] = (int)local_30;\n            uVar7 = uVar26;\n            goto LAB_002e313c;\n          }\nLAB_002e3118:\n          uVar7 = uVar26;\n          if (uVar22 == 1) goto LAB_002e313c;\njoined_r0x002e3124:\n          uVar7 = uVar26;\n          if (uVar22 != 3) goto LAB_002e313c;\n          local_60._0_4_ = (uint *)(uVar26 >> 0x20);\n          if (uVar19 == 8) {\n            param_1[0xf] = (int)local_60._0_4_;\n            goto LAB_002e313c;\n          }\n          if (uVar19 != 0xe) goto LAB_002e313c;\n          goto LAB_002e3284;\n        }\n        if (uVar19 < 0xd) {\n          uVar26 = (ulonglong)*(byte *)local_44;\n          local_44 = (uint *)((int)local_44 + 1);\nLAB_002e382c:\n          uVar7 = uVar26;\n          if (uVar22 == 0x31) goto LAB_002e313c;\n          if (uVar22 < 0x32) goto LAB_002e3118;\n        }\n        else {\n          bVar1 = *(byte *)local_44;\n          uVar15 = (uint)bVar1;\n          puVar9 = (uint *)((int)local_44 + 1);\n          if ((char)bVar1 < '\0') {\n            uVar26 = (*(code *)PTR_read_signed_LEB_128_x_004c297c)(puVar9,&local_48,uVar15);\n            puVar9 = (uint *)((int)local_44 + local_48);\n          }\n          else {\n            local_48 = 1;\n            uVar26 = (ulonglong)uVar15;\n            if ((bVar1 & 0x40) != 0) {\n              uVar26 = CONCAT44(0xffffffff,uVar15 | 0xffffff80);\n            }\n          }\n          local_44 = puVar9;\n          uVar7 = uVar26;\n          if (uVar22 == 0x31) goto LAB_002e313c;\n          if (uVar22 < 0x32) {\n            puVar9 = (uint *)param_1[0xc];\n            if (puVar9 != (uint *)param_1[0xd]) goto LAB_002e314c;\nLAB_002e2f98:\n            iVar17 = iVar17 + 8;\n            local_60 = uVar26;\n            std::\n            vector<gold::Dwarf_die::Attribute_value,std::allocator<gold::Dwarf_die::Attribute_value>>\n            ::_M_realloc_insert<gold::Dwarf_die::Attribute_value_const&>(local_38,puVar9,&local_68);\n            iVar8 = param_1[10];\n            if (iVar17 == iVar21) goto LAB_002e2fb8;\n            goto LAB_002e2db4;\n          }\n        }\n        if ((uVar22 != 0x6e) && (uVar7 = uVar26, uVar22 != 0x2007)) goto LAB_002e313c;\nLAB_002e3858:\n        local_60._0_4_ = (uint *)(uVar26 >> 0x20);\n        uVar7 = uVar26;\n        if (uVar19 == 8) {\n          param_1[0x12] = (int)local_60._0_4_;\n          goto LAB_002e313c;\n        }\n        if (uVar19 != 0xe) goto LAB_002e313c;\n        goto LAB_002e387c;\n      }\n      if (uVar19 == 4) {\n        pcVar25 = *(code **)(**(int **)(*param_1 + 8) + 0xc);\n        if (pcVar25 == (code *)PTR_is_big_endian_004c2950) {\n          iVar8 = (**(code **)(**(int **)(*param_1 + 8) + 0xe8))();\n        }\n        else {\n          iVar8 = (*pcVar25)();\n        }\n        local_58 = *local_44;\n        if (iVar8 == 0) {\n          local_58 = (((local_58 >> 0x10) << 0x18 | (local_58 >> 0x18) << 0x10) >> 0x10) +\n                     ((local_58 & 0xff) << 8 | local_58 >> 8 & 0xff) * 0x10000;\n        }\n        local_60._0_4_ = local_44 + 1;\n        local_44 = (uint *)((int)local_60._0_4_ + local_58);\nLAB_002e355c:\n        uVar26 = CONCAT44(local_60._0_4_,local_60._4_4_);\n        uVar7 = uVar26;\n        if (uVar22 == 0x31) goto LAB_002e313c;\n        if (uVar22 < 0x32) goto LAB_002e3118;\n        puVar9 = (uint *)param_1[0xc];\n      }\n      else {\n        if (4 < uVar19) {\n          if (uVar19 != 5) {\n            if (uVar19 != 6) {\n              return 0;\n            }\n            pcVar25 = *(code **)(**(int **)(*param_1 + 8) + 0xc);\n            if (pcVar25 == (code *)PTR_is_big_endian_004c2950) {\n              local_30 = puVar18;\n              iVar10 = (**(code **)(**(int **)(*param_1 + 8) + 0xe8))();\n            }\n            else {\n              local_30 = puVar18;\n              iVar10 = (*pcVar25)();\n            }\n            puVar9 = (uint *)*local_44;\n            if (iVar10 == 0) {\n              puVar9 = (uint *)(((((uint)puVar9 >> 0x10) << 0x18 | ((uint)puVar9 >> 0x18) << 0x10)\n                                >> 0x10) +\n                               (((uint)puVar9 & 0xff) << 8 | (uint)puVar9 >> 8 & 0xff) * 0x10000);\n            }\n            local_44 = local_44 + 1;\n            iVar10 = *param_1;\n            local_50._0_4_ = (uint *)0x0;\n            local_50._4_4_ = puVar9;\n            goto LAB_002e3708;\n          }\n          pcVar25 = *(code **)(**(int **)(*param_1 + 8) + 0xc);\n          if (pcVar25 == (code *)PTR_is_big_endian_004c2950) {\n            iVar8 = (**(code **)(**(int **)(*param_1 + 8) + 0xe8))();\n          }\n          else {\n            iVar8 = (*pcVar25)();\n          }\n          uVar6 = *(ushort *)local_44;\n          if (iVar8 == 0) {\n            uVar6 = CONCAT11(*(byte *)((int)local_44 + 1),*(byte *)local_44);\n          }\n          local_60._4_4_ = (uint *)(uint)uVar6;\n          local_44 = (uint *)((int)local_44 + 2);\n          local_60._0_4_ = (uint *)0x0;\n          goto LAB_002e355c;\n        }\n        if (uVar19 != 1) {\n          if (uVar19 != 3) {\n            return 0;\n          }\n          pcVar25 = *(code **)(**(int **)(*param_1 + 8) + 0xc);\n          if (pcVar25 == (code *)PTR_is_big_endian_004c2950) {\n            iVar8 = (**(code **)(**(int **)(*param_1 + 8) + 0xe8))();\n          }\n          else {\n            iVar8 = (*pcVar25)();\n          }\n          uVar6 = *(ushort *)local_44;\n          if (iVar8 == 0) {\n            uVar6 = CONCAT11(*(byte *)((int)local_44 + 1),*(byte *)local_44);\n          }\n          local_58 = (uint)uVar6;\n          local_60._0_4_ = (uint *)((int)local_44 + 2);\n          local_44 = (uint *)((int)local_60._0_4_ + local_58);\n          goto LAB_002e355c;\n        }\n        iVar8 = *param_1;\n        if (*(int *)(iVar8 + 0x4c) == 4) {\n          pcVar25 = *(code **)(**(int **)(iVar8 + 8) + 0xc);\n          if (pcVar25 == (code *)PTR_is_big_endian_004c2950) {\n            local_30 = puVar18;\n            iVar8 = (**(code **)(**(int **)(iVar8 + 8) + 0xe8))();\n          }\n          else {\n            local_30 = puVar18;\n            iVar8 = (*pcVar25)();\n          }\n          uVar15 = *local_44;\n          if (iVar8 == 0) {\n            uVar15 = (((uVar15 >> 0x10) << 0x18 | (uVar15 >> 0x18) << 0x10) >> 0x10) +\n                     ((uVar15 & 0xff) << 8 | uVar15 >> 8 & 0xff) * 0x10000;\n          }\n          local_44 = local_44 + 1;\n          uVar26 = (ulonglong)uVar15;\n        }\n        else {\n          local_30 = puVar18;\n          uVar26 = (*local_34)(iVar8,&local_44);\n        }\n        local_50 = uVar26;\n        local_58 = (*local_3c)(*param_1);\n        uVar26 = local_50;\n        if (uVar22 == 0x31) goto LAB_002e30bc;\n        if (uVar22 < 0x32) {\n          if (uVar22 != 1) goto joined_r0x002e3124;\n          goto LAB_002e39b4;\n        }\n        uVar7 = local_50;\n        if (uVar22 == 0x6e) goto LAB_002e313c;\n        if (uVar22 != 0x2007) goto LAB_002e339c;\n        puVar9 = (uint *)param_1[0xc];\n      }\n      while( true ) {\n        if (puVar9 == (uint *)param_1[0xd]) goto LAB_002e2f98;\nLAB_002e314c:\n        local_60._0_4_ = (uint *)(uVar26 >> 0x20);\n        local_60._4_4_ = (uint *)uVar26;\n        iVar17 = iVar17 + 8;\n        puVar9[1] = local_64;\n        puVar9[2] = (uint)local_60._0_4_;\n        *puVar9 = local_68;\n        puVar9[3] = (uint)local_60._4_4_;\n        puVar9[4] = local_58;\n        puVar9[5] = local_54;\n        param_1[0xc] = (int)(puVar9 + 6);\n        iVar8 = param_1[10];\n        local_60 = uVar26;\n        if (iVar17 == iVar21) goto LAB_002e2fb8;\n        puVar9 = (uint *)(*(int *)(iVar8 + 8) + iVar17);\n        uVar19 = puVar9[1];\n        uVar22 = *puVar9;\n        if (uVar19 != 0x16) goto LAB_002e2dd0;\nLAB_002e31a8:\n        uVar19 = (uint)*(byte *)local_44;\n        puVar9 = (uint *)((int)local_44 + 1);\n        if ((char)*(byte *)local_44 < '\0') {\n          local_60 = uVar26;\n          (*(code *)PTR_read_unsigned_LEB_128_x_004c2980)(puVar9,&local_48,uVar19);\n          puVar9 = (uint *)((int)local_44 + local_48);\n          uVar19 = extraout_v1;\n          uVar26 = local_60;\n        }\n        else {\n          local_48 = 1;\n        }\n        puVar11 = (uint *)((int)puVar9 - iVar20);\n        puVar18 = (uint *)((int)puVar11 + param_1[3]);\n        iVar8 = (uint)(puVar18 < puVar11) + ((int)puVar11 >> 0x1f) + param_1[2];\n        local_64 = uVar19;\n        local_44 = puVar9;\n        if (uVar19 != 0xe) break;\nLAB_002e31fc:\n        local_58 = 0;\n        iVar8 = *param_1;\n        local_68 = uVar22;\n        local_30 = puVar18;\n        local_60 = uVar26;\n        if (*(int *)(iVar8 + 0x48) == 4) {\n          pcVar25 = *(code **)(**(int **)(iVar8 + 8) + 0xc);\n          if (pcVar25 == (code *)PTR_is_big_endian_004c2950) {\n            iVar8 = (**(code **)(**(int **)(iVar8 + 8) + 0xe8))();\n          }\n          else {\n            iVar8 = (*pcVar25)();\n          }\n          uVar19 = *local_44;\n          if (iVar8 == 0) {\n            uVar19 = (((uVar19 >> 0x10) << 0x18 | (uVar19 >> 0x18) << 0x10) >> 0x10) +\n                     ((uVar19 & 0xff) << 8 | uVar19 >> 8 & 0xff) * 0x10000;\n          }\n          local_44 = local_44 + 1;\n          uVar26 = (ulonglong)uVar19;\n        }\n        else {\n          uVar26 = (*local_34)(iVar8,&local_44);\n        }\n        local_50 = uVar26;\n        local_58 = (*local_3c)(*param_1);\n        uVar7 = local_50;\n        if (uVar22 != 0x31) {\n          uVar26 = local_50;\n          if (uVar22 < 0x32) {\n            if ((uVar22 != 1) && (uVar22 == 3)) {\nLAB_002e3284:\n              param_1[0x16] = local_58;\n              *(ulonglong *)(param_1 + 0x10) = uVar26;\n              uVar7 = uVar26;\n            }\n          }\n          else {\n            if (uVar22 == 0x6e) {\nLAB_002e387c:\n              param_1[0x16] = local_58;\n            }\n            else {\n              if (uVar22 != 0x2007) goto LAB_002e313c;\n              param_1[0x16] = local_58;\n            }\n            *(ulonglong *)(param_1 + 0x14) = uVar26;\n            uVar7 = uVar26;\n          }\n        }\nLAB_002e313c:\n        puVar9 = (uint *)param_1[0xc];\n        uVar26 = uVar7;\n      }\n    } while( true );\n  }\n  uVar22 = (int)local_44 - iVar20;\n  uVar19 = uVar22 + iVar17;\n  iVar17 = (uint)(uVar19 < uVar22) + ((int)uVar22 >> 0x1f) + param_1[2];\n  if (*(int *)(iVar8 + 4) < 0) {\n    param_1[6] = iVar17;\n    param_1[7] = uVar19;\n  }\n  else {\n    param_1[8] = iVar17;\n    param_1[9] = uVar19;\n  }\n  *(undefined1 *)(param_1 + 0xe) = 1;\n  return 1;\n}" ({ "{") (declaration "byte bVar1;" (type_identifier "byte") (identifier "bVar1") (; ";")) (declaration "uint uVar2;" (type_identifier "uint") (identifier "uVar2") (; ";")) (declaration "uint uVar3;" (type_identifier "uint") (identifier "uVar3") (; ";")) (declaration "uint uVar4;" (type_identifier "uint") (identifier "uVar4") (; ";")) (declaration "uint uVar5;" (type_identifier "uint") (identifier "uVar5") (; ";")) (declaration "ushort uVar6;" (type_identifier "ushort") (identifier "uVar6") (; ";")) (declaration "ulonglong uVar7;" (type_identifier "ulonglong") (identifier "uVar7") (; ";")) (declaration "int iVar8;" (primitive_type "int") (identifier "iVar8") (; ";")) (declaration "uint *puVar9;" (type_identifier "uint") (pointer_declarator "*puVar9" (* "*") (identifier "puVar9")) (; ";")) (declaration "int iVar10;" (primitive_type "int") (identifier "iVar10") (; ";")) (declaration "uint *puVar11;" (type_identifier "uint") (pointer_declarator "*puVar11" (* "*") (identifier "puVar11")) (; ";")) (declaration "undefined4 uVar12;" (type_identifier "undefined4") (identifier "uVar12") (; ";")) (declaration "uint extraout_v1;" (type_identifier "uint") (identifier "extraout_v1") (; ";")) (declaration "undefined8 *puVar13;" (type_identifier "undefined8") (pointer_declarator "*puVar13" (* "*") (identifier "puVar13")) (; ";")) (declaration "uint extraout_v1_00;" (type_identifier "uint") (identifier "extraout_v1_00") (; ";")) (declaration "Dwarf_info_reader *this;" (type_identifier "Dwarf_info_reader") (pointer_declarator "*this" (* "*") (identifier "this")) (; ";")) (declaration "byte *pbVar14;" (type_identifier "byte") (pointer_declarator "*pbVar14" (* "*") (identifier "pbVar14")) (; ";")) (declaration "uint uVar15;" (type_identifier "uint") (identifier "uVar15") (; ";")) (declaration "uint uVar16;" (type_identifier "uint") (identifier "uVar16") (; ";")) (declaration "int iVar17;" (primitive_type "int") (identifier "iVar17") (; ";")) (declaration "uint *puVar18;" (type_identifier "uint") (pointer_declarator "*puVar18" (* "*") (identifier "puVar18")) (; ";")) (declaration "uint uVar19;" (type_identifier "uint") (identifier "uVar19") (; ";")) (declaration "int iVar20;" (primitive_type "int") (identifier "iVar20") (; ";")) (declaration "int iVar21;" (primitive_type "int") (identifier "iVar21") (; ";")) (declaration "uint uVar22;" (type_identifier "uint") (identifier "uVar22") (; ";")) (declaration "undefined8 *puVar23;" (type_identifier "undefined8") (pointer_declarator "*puVar23" (* "*") (identifier "puVar23")) (; ";")) (declaration "undefined8 *puVar24;" (type_identifier "undefined8") (pointer_declarator "*puVar24" (* "*") (identifier "puVar24")) (; ";")) (declaration "code *pcVar25;" (type_identifier "code") (pointer_declarator "*pcVar25" (* "*") (identifier "pcVar25")) (; ";")) (declaration "ulonglong uVar26;" (type_identifier "ulonglong") (identifier "uVar26") (; ";")) (declaration "uint local_68;" (type_identifier "uint") (identifier "local_68") (; ";")) (declaration "uint local_64;" (type_identifier "uint") (identifier "local_64") (; ";")) (declaration "undefined8 local_60;" (type_identifier "undefined8") (identifier "local_60") (; ";")) (declaration "uint local_58;" (type_identifier "uint") (identifier "local_58") (; ";")) (declaration "uint local_54;" (type_identifier "uint") (identifier "local_54") (; ";")) (declaration "undefined8 local_50;" (type_identifier "undefined8") (identifier "local_50") (; ";")) (declaration "int local_48;" (primitive_type "int") (identifier "local_48") (; ";")) (declaration "uint *local_44;" (type_identifier "uint") (pointer_declarator "*local_44" (* "*") (identifier "local_44")) (; ";")) (declaration "undefined8 *local_40;" (type_identifier "undefined8") (pointer_declarator "*local_40" (* "*") (identifier "local_40")) (; ";")) (declaration "code *local_3c;" (type_identifier "code") (pointer_declarator "*local_3c" (* "*") (identifier "local_3c")) (; ";")) (ERROR "vector<gold::" (binary_expression "vector<gold" (identifier "vector") (< "<") (identifier "gold")) (: ":") (: ":")) (labeled_statement "Dwarf_die::Attribute_value,std::allocator<gold::Dwarf_die::Attribute_value>>\n  *local_38;" (statement_identifier "Dwarf_die") (ERROR "::Attribute_value,std::allocator<gold:" (: ":") (: ":") (comma_expression "Attribute_value,std" (identifier "Attribute_value") (, ",") (identifier "std")) (: ":") (: ":") (binary_expression "allocator<gold" (identifier "allocator") (< "<") (identifier "gold")) (: ":")) (: ":") (labeled_statement "Dwarf_die::Attribute_value>>\n  *local_38;" (statement_identifier "Dwarf_die") (: ":") (ERROR ":" (: ":")) (expression_statement "Attribute_value>>\n  *local_38;" (binary_expression "Attribute_value>>\n  *local_38" (identifier "Attribute_value") (>> ">>") (pointer_expression "*local_38" (* "*") (identifier "local_38"))) (; ";")))) (declaration "code *local_34;" (type_identifier "code") (pointer_declarator "*local_34" (* "*") (identifier "local_34")) (; ";")) (declaration "uint *local_30;" (type_identifier "uint") (pointer_declarator "*local_30" (* "*") (identifier "local_30")) (; ";")) (expression_statement "iVar8 = param_1[10];" (assignment_expression "iVar8 = param_1[10]" (identifier "iVar8") (= "=") (subscript_expression "param_1[10]" (identifier "param_1") ([ "[") (number_literal "10") (] "]"))) (; ";")) (if_statement "if (iVar8 == 0) {\n    uVar12 = (*(code *)PTR_do_gold_unreachable_004c1a30)\n                       (PTR_s_in_a_linker_script_004c191c + 0x7090,0x2a9,\n                        PTR_s_in_a_linker_script_004c191c + 0x7414);\n    return uVar12;\n  }" (if "if") (parenthesized_expression "(iVar8 == 0)" (( "(") (binary_expression "iVar8 == 0" (identifier "iVar8") (== "==") (number_literal "0")) () ")")) (compound_statement "{\n    uVar12 = (*(code *)PTR_do_gold_unreachable_004c1a30)\n                       (PTR_s_in_a_linker_script_004c191c + 0x7090,0x2a9,\n                        PTR_s_in_a_linker_script_004c191c + 0x7414);\n    return uVar12;\n  }" ({ "{") (expression_statement "uVar12 = (*(code *)PTR_do_gold_unreachable_004c1a30)\n                       (PTR_s_in_a_linker_script_004c191c + 0x7090,0x2a9,\n                        PTR_s_in_a_linker_script_004c191c + 0x7414);" (assignment_expression "uVar12 = (*(code *)PTR_do_gold_unreachable_004c1a30)\n                       (PTR_s_in_a_linker_script_004c191c + 0x7090,0x2a9,\n                        PTR_s_in_a_linker_script_004c191c + 0x7414)" (identifier "uVar12") (= "=") (call_expression "(*(code *)PTR_do_gold_unreachable_004c1a30)\n                       (PTR_s_in_a_linker_script_004c191c + 0x7090,0x2a9,\n                        PTR_s_in_a_linker_script_004c191c + 0x7414)" (parenthesized_expression "(*(code *)PTR_do_gold_unreachable_004c1a30)" (( "(") (pointer_expression "*(code *)PTR_do_gold_unreachable_004c1a30" (* "*") (cast_expression "(code *)PTR_do_gold_unreachable_004c1a30" (( "(") (type_descriptor "code *" (type_identifier "code") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "PTR_do_gold_unreachable_004c1a30"))) () ")")) (argument_list "(PTR_s_in_a_linker_script_004c191c + 0x7090,0x2a9,\n                        PTR_s_in_a_linker_script_004c191c + 0x7414)" (( "(") (binary_expression "PTR_s_in_a_linker_script_004c191c + 0x7090" (identifier "PTR_s_in_a_linker_script_004c191c") (+ "+") (number_literal "0x7090")) (, ",") (number_literal "0x2a9") (, ",") (binary_expression "PTR_s_in_a_linker_script_004c191c + 0x7414" (identifier "PTR_s_in_a_linker_script_004c191c") (+ "+") (number_literal "0x7414")) () ")")))) (; ";")) (return_statement "return uVar12;" (return "return") (identifier "uVar12") (; ";")) (} "}"))) (expression_statement "this = (Dwarf_info_reader *)*param_1;" (assignment_expression "this = (Dwarf_info_reader *)*param_1" (identifier "this") (= "=") (cast_expression "(Dwarf_info_reader *)*param_1" (( "(") (type_descriptor "Dwarf_info_reader *" (type_identifier "Dwarf_info_reader") (abstract_pointer_declarator "*" (* "*"))) () ")") (pointer_expression "*param_1" (* "*") (identifier "param_1")))) (; ";")) (expression_statement "iVar17 = param_1[3];" (assignment_expression "iVar17 = param_1[3]" (identifier "iVar17") (= "=") (subscript_expression "param_1[3]" (identifier "param_1") ([ "[") (number_literal "3") (] "]"))) (; ";")) (expression_statement "iVar20 = *(int *)(this + 0x2c) + *(int *)(this + 0x3c) + iVar17;" (assignment_expression "iVar20 = *(int *)(this + 0x2c) + *(int *)(this + 0x3c) + iVar17" (identifier "iVar20") (= "=") (binary_expression "*(int *)(this + 0x2c) + *(int *)(this + 0x3c) + iVar17" (binary_expression "*(int *)(this + 0x2c) + *(int *)(this + 0x3c)" (pointer_expression "*(int *)(this + 0x2c)" (* "*") (cast_expression "(int *)(this + 0x2c)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(this + 0x2c)" (( "(") (binary_expression "this + 0x2c" (identifier "this") (+ "+") (number_literal "0x2c")) () ")")))) (+ "+") (pointer_expression "*(int *)(this + 0x3c)" (* "*") (cast_expression "(int *)(this + 0x3c)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(this + 0x3c)" (( "(") (binary_expression "this + 0x3c" (identifier "this") (+ "+") (number_literal "0x3c")) () ")"))))) (+ "+") (identifier "iVar17"))) (; ";")) (if_statement "if ((uint)(*(int *)(this + 0x2c) + *(int *)(this + 0x3c) + *(int *)(this + 0x44)) < iVar20 + 1U) {\n    gold::Dwarf_info_reader::warn_corrupt_debug_section(this);\n    return 0;\n  }" (if "if") (parenthesized_expression "((uint)(*(int *)(this + 0x2c) + *(int *)(this + 0x3c) + *(int *)(this + 0x44)) < iVar20 + 1U)" (( "(") (binary_expression "(uint)(*(int *)(this + 0x2c) + *(int *)(this + 0x3c) + *(int *)(this + 0x44)) < iVar20 + 1U" (call_expression "(uint)(*(int *)(this + 0x2c) + *(int *)(this + 0x3c) + *(int *)(this + 0x44))" (parenthesized_expression "(uint)" (( "(") (identifier "uint") () ")")) (argument_list "(*(int *)(this + 0x2c) + *(int *)(this + 0x3c) + *(int *)(this + 0x44))" (( "(") (binary_expression "*(int *)(this + 0x2c) + *(int *)(this + 0x3c) + *(int *)(this + 0x44)" (binary_expression "*(int *)(this + 0x2c) + *(int *)(this + 0x3c)" (pointer_expression "*(int *)(this + 0x2c)" (* "*") (cast_expression "(int *)(this + 0x2c)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(this + 0x2c)" (( "(") (binary_expression "this + 0x2c" (identifier "this") (+ "+") (number_literal "0x2c")) () ")")))) (+ "+") (pointer_expression "*(int *)(this + 0x3c)" (* "*") (cast_expression "(int *)(this + 0x3c)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(this + 0x3c)" (( "(") (binary_expression "this + 0x3c" (identifier "this") (+ "+") (number_literal "0x3c")) () ")"))))) (+ "+") (pointer_expression "*(int *)(this + 0x44)" (* "*") (cast_expression "(int *)(this + 0x44)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(this + 0x44)" (( "(") (binary_expression "this + 0x44" (identifier "this") (+ "+") (number_literal "0x44")) () ")"))))) () ")"))) (< "<") (binary_expression "iVar20 + 1U" (identifier "iVar20") (+ "+") (number_literal "1U"))) () ")")) (compound_statement "{\n    gold::Dwarf_info_reader::warn_corrupt_debug_section(this);\n    return 0;\n  }" ({ "{") (labeled_statement "gold::Dwarf_info_reader::warn_corrupt_debug_section(this);" (statement_identifier "gold") (: ":") (ERROR ":" (: ":")) (labeled_statement "Dwarf_info_reader::warn_corrupt_debug_section(this);" (statement_identifier "Dwarf_info_reader") (: ":") (ERROR ":" (: ":")) (expression_statement "warn_corrupt_debug_section(this);" (call_expression "warn_corrupt_debug_section(this)" (identifier "warn_corrupt_debug_section") (argument_list "(this)" (( "(") (identifier "this") () ")"))) (; ";")))) (return_statement "return 0;" (return "return") (number_literal "0") (; ";")) (} "}"))) (expression_statement "local_38 = (vector<gold::Dwarf_die::Attribute_value,std::allocator<gold::Dwarf_die::Attribute_value>>\n              *)(param_1 + 0xb);" (assignment_expression "local_38 = (vector<gold::Dwarf_die::Attribute_value,std::allocator<gold::Dwarf_die::Attribute_value>>\n              *)(param_1 + 0xb)" (identifier "local_38") (= "=") (call_expression "(vector<gold::Dwarf_die::Attribute_value,std::allocator<gold::Dwarf_die::Attribute_value>>\n              *)(param_1 + 0xb)" (parenthesized_expression "(vector<gold::Dwarf_die::Attribute_value,std::allocator<gold::Dwarf_die::Attribute_value>>\n              *)" (( "(") (ERROR "vector<gold::Dwarf_die::Attribute_value,std::allocator<gold::Dwarf_die::" (binary_expression "vector<gold" (identifier "vector") (< "<") (identifier "gold")) (: ":") (: ":") (identifier "Dwarf_die") (: ":") (: ":") (comma_expression "Attribute_value,std" (identifier "Attribute_value") (, ",") (identifier "std")) (: ":") (: ":") (binary_expression "allocator<gold" (identifier "allocator") (< "<") (identifier "gold")) (: ":") (: ":") (identifier "Dwarf_die") (: ":") (: ":")) (binary_expression "Attribute_value>>\n              *" (identifier "Attribute_value") (>> ">>") (pointer_expression "*" (* "*") (identifier ""))) () ")")) (argument_list "(param_1 + 0xb)" (( "(") (binary_expression "param_1 + 0xb" (identifier "param_1") (+ "+") (number_literal "0xb")) () ")")))) (; ";")) (if_statement "if (iVar20 == 0) {\n    return 0;\n  }" (if "if") (parenthesized_expression "(iVar20 == 0)" (( "(") (binary_expression "iVar20 == 0" (identifier "iVar20") (== "==") (number_literal "0")) () ")")) (compound_statement "{\n    return 0;\n  }" ({ "{") (return_statement "return 0;" (return "return") (number_literal "0") (; ";")) (} "}"))) (expression_statement "iVar21 = *(int *)(iVar8 + 0xc) - *(int *)(iVar8 + 8);" (assignment_expression "iVar21 = *(int *)(iVar8 + 0xc) - *(int *)(iVar8 + 8)" (identifier "iVar21") (= "=") (binary_expression "*(int *)(iVar8 + 0xc) - *(int *)(iVar8 + 8)" (pointer_expression "*(int *)(iVar8 + 0xc)" (* "*") (cast_expression "(int *)(iVar8 + 0xc)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar8 + 0xc)" (( "(") (binary_expression "iVar8 + 0xc" (identifier "iVar8") (+ "+") (number_literal "0xc")) () ")")))) (- "-") (pointer_expression "*(int *)(iVar8 + 8)" (* "*") (cast_expression "(int *)(iVar8 + 8)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar8 + 8)" (( "(") (binary_expression "iVar8 + 8" (identifier "iVar8") (+ "+") (number_literal "8")) () ")")))))) (; ";")) (expression_statement "local_44 = (uint *)(iVar20 + param_1[5]);" (assignment_expression "local_44 = (uint *)(iVar20 + param_1[5])" (identifier "local_44") (= "=") (cast_expression "(uint *)(iVar20 + param_1[5])" (( "(") (type_descriptor "uint *" (type_identifier "uint") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar20 + param_1[5])" (( "(") (binary_expression "iVar20 + param_1[5]" (identifier "iVar20") (+ "+") (subscript_expression "param_1[5]" (identifier "param_1") ([ "[") (number_literal "5") (] "]"))) () ")")))) (; ";")) (expression_statement "uVar19 = iVar21 >> 3;" (assignment_expression "uVar19 = iVar21 >> 3" (identifier "uVar19") (= "=") (binary_expression "iVar21 >> 3" (identifier "iVar21") (>> ">>") (number_literal "3"))) (; ";")) (if_statement "if (0xaaaaaaa < uVar19) {\n    uVar12 = (*(code *)PTR___throw_length_error_004c1e74)(PTR_s__s_004c1a50 + -0xda4);\n    return uVar12;\n  }" (if "if") (parenthesized_expression "(0xaaaaaaa < uVar19)" (( "(") (binary_expression "0xaaaaaaa < uVar19" (number_literal "0xaaaaaaa") (< "<") (identifier "uVar19")) () ")")) (compound_statement "{\n    uVar12 = (*(code *)PTR___throw_length_error_004c1e74)(PTR_s__s_004c1a50 + -0xda4);\n    return uVar12;\n  }" ({ "{") (expression_statement "uVar12 = (*(code *)PTR___throw_length_error_004c1e74)(PTR_s__s_004c1a50 + -0xda4);" (assignment_expression "uVar12 = (*(code *)PTR___throw_length_error_004c1e74)(PTR_s__s_004c1a50 + -0xda4)" (identifier "uVar12") (= "=") (call_expression "(*(code *)PTR___throw_length_error_004c1e74)(PTR_s__s_004c1a50 + -0xda4)" (parenthesized_expression "(*(code *)PTR___throw_length_error_004c1e74)" (( "(") (pointer_expression "*(code *)PTR___throw_length_error_004c1e74" (* "*") (cast_expression "(code *)PTR___throw_length_error_004c1e74" (( "(") (type_descriptor "code *" (type_identifier "code") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "PTR___throw_length_error_004c1e74"))) () ")")) (argument_list "(PTR_s__s_004c1a50 + -0xda4)" (( "(") (binary_expression "PTR_s__s_004c1a50 + -0xda4" (identifier "PTR_s__s_004c1a50") (+ "+") (number_literal "-0xda4")) () ")")))) (; ";")) (return_statement "return uVar12;" (return "return") (identifier "uVar12") (; ";")) (} "}"))) (expression_statement "puVar23 = (undefined8 *)param_1[0xb];" (assignment_expression "puVar23 = (undefined8 *)param_1[0xb]" (identifier "puVar23") (= "=") (cast_expression "(undefined8 *)param_1[0xb]" (( "(") (type_descriptor "undefined8 *" (type_identifier "undefined8") (abstract_pointer_declarator "*" (* "*"))) () ")") (subscript_expression "param_1[0xb]" (identifier "param_1") ([ "[") (number_literal "0xb") (] "]")))) (; ";")) (if_statement "if ((uint)((param_1[0xd] - (int)puVar23 >> 3) * -0x55555555) < uVar19) {\n    puVar13 = (undefined8 *)param_1[0xc];\n    iVar17 = (int)puVar13 - (int)puVar23;\n    if (uVar19 == 0) {\n      iVar10 = 0;\n      puVar24 = puVar23;\n    }\n    else {\n      local_40 = puVar13;\n      iVar10 = (*(code *)PTR_operator_new_004c13a8)(uVar19 * 0x18);\n      puVar13 = local_40;\n      puVar24 = (undefined8 *)param_1[0xb];\n    }\n    if (puVar23 != puVar13) {\n      (*(code *)PTR_memmove_004c5af8)(iVar10,puVar23,iVar17);\n    }\n    if (puVar24 != (undefined8 *)0x0) {\n      (*(code *)PTR_operator_delete_004c12fc)(puVar24);\n    }\n    iVar8 = param_1[10];\n    param_1[0xb] = iVar10;\n    param_1[0xc] = iVar10 + iVar17;\n    param_1[0xd] = iVar10 + uVar19 * 0x18;\n    if (uVar19 != 0) goto LAB_002e2d90;\nLAB_002e2fb8:\n    if (iVar8 == 0) {\n      uVar12 = (*(code *)PTR_do_gold_unreachable_004c1a30)\n                         (PTR_s_in_a_linker_script_004c191c + 0x7108,0x206,\n                          PTR_s_in_a_linker_script_004c191c + 0x7404);\n      return uVar12;\n    }\n    iVar17 = param_1[3];\n  }\n  else if (uVar19 != 0) {\nLAB_002e2d90:\n    local_3c = (code *)PTR_lookup_reloc_004c2994;\n    iVar17 = 0;\n    local_34 = (code *)PTR_read_from_pointer<64>_004c2998;\n    local_40 = &local_50;\nLAB_002e2db4:\n    puVar9 = (uint *)(*(int *)(iVar8 + 8) + iVar17);\n    uVar19 = puVar9[1];\n    uVar22 = *puVar9;\n    uVar26 = local_60;\n    if (uVar19 == 0x16) goto LAB_002e31a8;\nLAB_002e2dd0:\n    puVar9 = (uint *)((int)local_44 - iVar20);\n    puVar18 = (uint *)((int)puVar9 + param_1[3]);\n    iVar8 = (uint)(puVar18 < puVar9) + ((int)puVar9 >> 0x1f) + param_1[2];\n    local_64 = uVar19;\n    if (uVar19 == 0xe) goto LAB_002e31fc;\n    do {\n      local_60._4_4_ = (uint *)uVar26;\n      local_58 = 0;\n      local_68 = uVar22;\n      local_64 = uVar19;\n      local_60 = uVar26;\n      if (0xe < uVar19) {\n        if (uVar19 == 0x15) {\n          if ((char)*(byte *)local_44 < '\0') {\n            uVar26 = (*(code *)PTR_read_unsigned_LEB_128_x_004c2980)\n                               ((uint *)((int)local_44 + 1),&local_48);\n            local_44 = (uint *)((int)local_44 + local_48);\n          }\n          else {\n            uVar26 = (ulonglong)*(byte *)local_44;\n            local_48 = 1;\n            local_44 = (uint *)((int)local_44 + 1);\n          }\n          goto joined_r0x002e3998;\n        }\n        if (0x15 < uVar19) {\n          if (uVar19 == 0x19) {\n            local_60._4_4_ = (uint *)0x1;\n            local_60._0_4_ = (uint *)0x0;\n          }\n          else {\n            if (uVar19 < 0x1a) {\n              if (uVar19 != 0x17) {\n                if (uVar19 != 0x18) {\n                  return 0;\n                }\n                goto LAB_002e32bc;\n              }\n              iVar8 = *param_1;\n              if (*(int *)(iVar8 + 0x48) == 4) {\n                pcVar25 = *(code **)(**(int **)(iVar8 + 8) + 0xc);\n                if (pcVar25 == (code *)PTR_is_big_endian_004c2950) {\n                  local_30 = puVar18;\n                  iVar8 = (**(code **)(**(int **)(iVar8 + 8) + 0xe8))();\n                }\n                else {\n                  local_30 = puVar18;\n                  iVar8 = (*pcVar25)();\n                }\n                uVar15 = *local_44;\n                if (iVar8 == 0) {\n                  uVar15 = (((uVar15 >> 0x10) << 0x18 | (uVar15 >> 0x18) << 0x10) >> 0x10) +\n                           ((uVar15 & 0xff) << 8 | uVar15 >> 8 & 0xff) * 0x10000;\n                }\n                local_44 = local_44 + 1;\n                uVar26 = (ulonglong)uVar15;\n              }\n              else {\n                local_30 = puVar18;\n                uVar26 = (*local_34)(iVar8,&local_44);\n              }\n              iVar8 = *param_1;\n              goto LAB_002e3970;\n            }\n            if (uVar19 != 0x20) {\n              if (uVar19 < 0x20) {\n                return 0;\n              }\n              if (1 < uVar19 - 0x1f01) {\n                return 0;\n              }\nLAB_002e34d8:\n              if ((char)*(byte *)local_44 < '\0') {\n                uVar26 = (*(code *)PTR_read_unsigned_LEB_128_x_004c2980)\n                                   ((uint *)((int)local_44 + 1),&local_48);\n                local_44 = (uint *)((int)local_44 + local_48);\n              }\n              else {\n                uVar26 = (ulonglong)*(byte *)local_44;\n                local_48 = 1;\n                local_44 = (uint *)((int)local_44 + 1);\n              }\n              goto LAB_002e382c;\n            }\n            pcVar25 = *(code **)(**(int **)(*param_1 + 8) + 0xc);\n            if (pcVar25 == (code *)PTR_is_big_endian_004c2950) {\n              iVar8 = (**(code **)(**(int **)(*param_1 + 8) + 0xe8))();\n            }\n            else {\n              iVar8 = (*pcVar25)();\n            }\n            local_60._4_4_ = (uint *)local_44[1];\n            local_60._0_4_ = (uint *)*local_44;\n            if (iVar8 == 0) {\n              uVar15 = (uint)local_60._4_4_ & 0xff;\n              uVar16 = (uint)local_60._4_4_ >> 8;\n              uVar2 = (uint)local_60._4_4_ >> 0x10;\n              uVar4 = (uint)local_60._4_4_ >> 0x18;\n              local_60._4_4_ =\n                   (uint *)(((((uint)local_60._0_4_ >> 0x10) << 0x18 |\n                             ((uint)local_60._0_4_ >> 0x18) << 0x10) >> 0x10) +\n                           (((uint)local_60._0_4_ & 0xff) << 8 | (uint)local_60._0_4_ >> 8 & 0xff) *\n                           0x10000);\n              local_60._0_4_ =\n                   (uint *)(((uVar2 << 0x18 | uVar4 << 0x10) >> 0x10) +\n                           (uVar15 << 8 | uVar16 & 0xff) * 0x10000);\n            }\n            local_44 = local_44 + 2;\n          }\n          uVar7 = CONCAT44(local_60._0_4_,local_60._4_4_);\n          if (uVar22 == 0x6e) goto LAB_002e313c;\n          uVar7 = CONCAT44(local_60._0_4_,local_60._4_4_);\n          uVar26 = CONCAT44(local_60._0_4_,local_60._4_4_);\n          if (uVar22 == 0x2007) goto LAB_002e313c;\n          goto joined_r0x002e3124;\n        }\n        if (uVar19 == 0x11) {\n          puVar9 = (uint *)((int)local_44 + 1);\n          uVar15 = (uint)*(byte *)local_44;\n          uVar26 = (ulonglong)uVar15;\n          local_44 = puVar9;\n          if (uVar22 == 0x31) goto LAB_002e30bc;\n          if (0x31 < uVar22) {\n            uVar26 = (ulonglong)uVar15;\n            if ((uVar22 != 0x6e) && (uVar26 = (ulonglong)uVar15, uVar22 != 0x2007)) {\n              uVar7 = (ulonglong)uVar15;\n              if (uVar22 != 0x47) goto LAB_002e313c;\n              param_1[0x18] = 0;\n              param_1[0x19] = uVar15;\n              uVar7 = (ulonglong)uVar15;\n              goto LAB_002e313c;\n            }\n            goto LAB_002e3858;\n          }\n          if (uVar22 == 1) {\n            param_1[8] = 0;\n            param_1[9] = uVar15;\n            uVar7 = (ulonglong)uVar15;\n            goto LAB_002e313c;\n          }\n          goto joined_r0x002e3124;\n        }\n        if (uVar19 < 0x12) {\n          if (uVar19 == 0xf) goto LAB_002e34d8;\n          if (uVar19 != 0x10) {\n            return 0;\n          }\n          iVar10 = *param_1;\n          iVar8 = *(int *)(iVar10 + 0x48);\n          if (*(uint *)(iVar10 + 0x50) < 3) {\n            iVar8 = *(int *)(iVar10 + 0x4c);\n          }\n          if (iVar8 == 4) {\n            pcVar25 = *(code **)(**(int **)(iVar10 + 8) + 0xc);\n            if (pcVar25 == (code *)PTR_is_big_endian_004c2950) {\n              local_30 = puVar18;\n              iVar8 = (**(code **)(**(int **)(iVar10 + 8) + 0xe8))();\n            }\n            else {\n              local_30 = puVar18;\n              iVar8 = (*pcVar25)();\n            }\n            uVar15 = *local_44;\n            if (iVar8 == 0) {\n              uVar15 = (((uVar15 >> 0x10) << 0x18 | (uVar15 >> 0x18) << 0x10) >> 0x10) +\n                       ((uVar15 & 0xff) << 8 | uVar15 >> 8 & 0xff) * 0x10000;\n            }\n            local_44 = local_44 + 1;\n            uVar26 = (ulonglong)uVar15;\n          }\n          else {\n            local_30 = puVar18;\n            uVar26 = (*local_34)(iVar10,&local_44);\n          }\n          local_50 = uVar26;\n          local_58 = (*local_3c)(*param_1);\n          uVar26 = local_50;\n        }\n        else {\n          if (uVar19 == 0x13) {\n            pcVar25 = *(code **)(**(int **)(*param_1 + 8) + 0xc);\n            if (pcVar25 == (code *)PTR_is_big_endian_004c2950) {\n              local_30 = puVar18;\n              iVar8 = (**(code **)(**(int **)(*param_1 + 8) + 0xe8))();\n            }\n            else {\n              local_30 = puVar18;\n              iVar8 = (*pcVar25)();\n            }\n            uVar15 = *local_44;\n            if (iVar8 == 0) {\n              uVar15 = (((uVar15 >> 0x10) << 0x18 | (uVar15 >> 0x18) << 0x10) >> 0x10) +\n                       ((uVar15 & 0xff) << 8 | uVar15 >> 8 & 0xff) * 0x10000;\n            }\n            local_44 = local_44 + 1;\n            iVar8 = *param_1;\n            uVar26 = (ulonglong)uVar15;\n          }\n          else {\n            if (uVar19 < 0x14) {\n              pcVar25 = *(code **)(**(int **)(*param_1 + 8) + 0xc);\n              if (pcVar25 == (code *)PTR_is_big_endian_004c2950) {\n                iVar8 = (**(code **)(**(int **)(*param_1 + 8) + 0xe8))();\n              }\n              else {\n                iVar8 = (*pcVar25)();\n              }\n              uVar6 = *(ushort *)local_44;\n              if (iVar8 == 0) {\n                uVar6 = CONCAT11(*(byte *)((int)local_44 + 1),*(byte *)local_44);\n              }\n              local_44 = (uint *)((int)local_44 + 2);\n              uVar26 = (ulonglong)uVar6;\n              goto joined_r0x002e3998;\n            }\n            pcVar25 = *(code **)(**(int **)(*param_1 + 8) + 0xc);\n            if (pcVar25 == (code *)PTR_is_big_endian_004c2950) {\n              local_30 = puVar18;\n              iVar8 = (**(code **)(**(int **)(*param_1 + 8) + 0xe8))();\n            }\n            else {\n              local_30 = puVar18;\n              iVar8 = (*pcVar25)();\n            }\n            uVar15 = local_44[1];\n            uVar16 = *local_44;\n            if (iVar8 == 0) {\n              uVar2 = uVar15 & 0xff;\n              uVar4 = uVar15 >> 8;\n              uVar3 = uVar15 >> 0x10;\n              uVar5 = uVar15 >> 0x18;\n              uVar15 = (((uVar16 >> 0x10) << 0x18 | (uVar16 >> 0x18) << 0x10) >> 0x10) +\n                       ((uVar16 & 0xff) << 8 | uVar16 >> 8 & 0xff) * 0x10000;\n              uVar16 = ((uVar3 << 0x18 | uVar5 << 0x10) >> 0x10) +\n                       (uVar2 << 8 | uVar4 & 0xff) * 0x10000;\n            }\n            uVar26 = CONCAT44(uVar16,uVar15);\n            local_44 = local_44 + 2;\n            iVar8 = *param_1;\n          }\nLAB_002e3970:\n          local_50 = uVar26;\n          local_58 = (*local_3c)(iVar8);\n          uVar26 = local_50;\n        }\njoined_r0x002e3998:\n        if (uVar22 == 0x31) {\nLAB_002e30bc:\n          *(ulonglong *)(param_1 + 0x1a) = uVar26;\n          uVar7 = uVar26;\n          goto LAB_002e313c;\n        }\n        if (uVar22 < 0x32) {\n          uVar7 = uVar26;\n          if (uVar22 != 1) goto LAB_002e313c;\nLAB_002e39b4:\n          uVar7 = uVar26;\n          if (local_58 != 0) goto LAB_002e313c;\n          *(ulonglong *)(param_1 + 8) = uVar26;\n          goto LAB_002e313c;\n        }\n        if ((uVar22 != 0x6e) && (uVar22 != 0x2007)) {\nLAB_002e339c:\n          uVar7 = uVar26;\n          if (uVar22 != 0x47) goto LAB_002e313c;\n          *(ulonglong *)(param_1 + 0x18) = uVar26;\n          goto LAB_002e313c;\n        }\n        goto LAB_002e3858;\n      }\n      if (uVar19 == 7) {\n        pcVar25 = *(code **)(**(int **)(*param_1 + 8) + 0xc);\n        if (pcVar25 == (code *)PTR_is_big_endian_004c2950) {\n          local_30 = puVar18;\n          iVar10 = (**(code **)(**(int **)(*param_1 + 8) + 0xe8))();\n        }\n        else {\n          local_30 = puVar18;\n          iVar10 = (*pcVar25)();\n        }\n        local_50._4_4_ = (uint *)local_44[1];\n        puVar9 = (uint *)*local_44;\n        if (iVar10 == 0) {\n          uVar15 = (uint)local_50._4_4_ & 0xff;\n          uVar16 = (uint)local_50._4_4_ >> 8;\n          uVar2 = (uint)local_50._4_4_ >> 0x10;\n          uVar4 = (uint)local_50._4_4_ >> 0x18;\n          local_50._4_4_ =\n               (uint *)(((((uint)puVar9 >> 0x10) << 0x18 | ((uint)puVar9 >> 0x18) << 0x10) >> 0x10)\n                       + (((uint)puVar9 & 0xff) << 8 | (uint)puVar9 >> 8 & 0xff) * 0x10000);\n          puVar9 = (uint *)(((uVar2 << 0x18 | uVar4 << 0x10) >> 0x10) +\n                           (uVar15 << 8 | uVar16 & 0xff) * 0x10000);\n        }\n        local_44 = local_44 + 2;\n        iVar10 = *param_1;\n        local_50._0_4_ = puVar9;\nLAB_002e3708:\n        local_58 = (*local_3c)(iVar10,puVar9,iVar8,local_30,local_40);\n        local_60._4_4_ = local_50._4_4_;\n        local_60._0_4_ = local_50._0_4_;\n        goto LAB_002e355c;\n      }\n      if (7 < uVar19) {\n        if (uVar19 == 10) {\n          local_60._0_4_ = (uint *)((int)local_44 + 1);\n          local_58 = (uint)*(byte *)local_44;\n          local_44 = (uint *)((int)local_60._0_4_ + local_58);\n          goto LAB_002e355c;\n        }\n        if (uVar19 < 0xb) {\n          if (uVar19 != 8) {\n            if (uVar19 != 9) {\n              return 0;\n            }\nLAB_002e32bc:\n            uVar15 = (uint)*(byte *)local_44;\n            pbVar14 = (byte *)((int)local_44 + 1);\n            if ((char)*(byte *)local_44 < '\0') {\n              (*(code *)PTR_read_unsigned_LEB_128_x_004c2980)(pbVar14,&local_48);\n              pbVar14 = (byte *)((int)local_44 + local_48);\n              uVar15 = extraout_v1_00;\n            }\n            else {\n              local_48 = 1;\n            }\n            uVar26 = CONCAT44(pbVar14,local_60._4_4_);\n            local_58 = uVar15;\n            local_44 = (uint *)((int)local_44 + uVar15 + local_48);\n            goto LAB_002e382c;\n          }\n          local_60._0_4_ = local_44;\n          local_30 = local_44;\n          local_48 = (*(code *)PTR_strlen_004c5b9c)(local_44);\n          uVar26 = CONCAT44(local_60._0_4_,local_60._4_4_);\n          local_44 = (uint *)((int)local_30 + local_48 + 1);\n          uVar7 = CONCAT44(local_60._0_4_,local_60._4_4_);\n          if (uVar22 == 0x31) goto LAB_002e313c;\n          if (0x31 < uVar22) {\n            if ((uVar22 != 0x6e) &&\n               (uVar7 = CONCAT44(local_60._0_4_,local_60._4_4_), uVar22 != 0x2007))\n            goto LAB_002e313c;\n            param_1[0x12] = (int)local_30;\n            uVar7 = uVar26;\n            goto LAB_002e313c;\n          }\nLAB_002e3118:\n          uVar7 = uVar26;\n          if (uVar22 == 1) goto LAB_002e313c;\njoined_r0x002e3124:\n          uVar7 = uVar26;\n          if (uVar22 != 3) goto LAB_002e313c;\n          local_60._0_4_ = (uint *)(uVar26 >> 0x20);\n          if (uVar19 == 8) {\n            param_1[0xf] = (int)local_60._0_4_;\n            goto LAB_002e313c;\n          }\n          if (uVar19 != 0xe) goto LAB_002e313c;\n          goto LAB_002e3284;\n        }\n        if (uVar19 < 0xd) {\n          uVar26 = (ulonglong)*(byte *)local_44;\n          local_44 = (uint *)((int)local_44 + 1);\nLAB_002e382c:\n          uVar7 = uVar26;\n          if (uVar22 == 0x31) goto LAB_002e313c;\n          if (uVar22 < 0x32) goto LAB_002e3118;\n        }\n        else {\n          bVar1 = *(byte *)local_44;\n          uVar15 = (uint)bVar1;\n          puVar9 = (uint *)((int)local_44 + 1);\n          if ((char)bVar1 < '\0') {\n            uVar26 = (*(code *)PTR_read_signed_LEB_128_x_004c297c)(puVar9,&local_48,uVar15);\n            puVar9 = (uint *)((int)local_44 + local_48);\n          }\n          else {\n            local_48 = 1;\n            uVar26 = (ulonglong)uVar15;\n            if ((bVar1 & 0x40) != 0) {\n              uVar26 = CONCAT44(0xffffffff,uVar15 | 0xffffff80);\n            }\n          }\n          local_44 = puVar9;\n          uVar7 = uVar26;\n          if (uVar22 == 0x31) goto LAB_002e313c;\n          if (uVar22 < 0x32) {\n            puVar9 = (uint *)param_1[0xc];\n            if (puVar9 != (uint *)param_1[0xd]) goto LAB_002e314c;\nLAB_002e2f98:\n            iVar17 = iVar17 + 8;\n            local_60 = uVar26;\n            std::\n            vector<gold::Dwarf_die::Attribute_value,std::allocator<gold::Dwarf_die::Attribute_value>>\n            ::_M_realloc_insert<gold::Dwarf_die::Attribute_value_const&>(local_38,puVar9,&local_68);\n            iVar8 = param_1[10];\n            if (iVar17 == iVar21) goto LAB_002e2fb8;\n            goto LAB_002e2db4;\n          }\n        }\n        if ((uVar22 != 0x6e) && (uVar7 = uVar26, uVar22 != 0x2007)) goto LAB_002e313c;\nLAB_002e3858:\n        local_60._0_4_ = (uint *)(uVar26 >> 0x20);\n        uVar7 = uVar26;\n        if (uVar19 == 8) {\n          param_1[0x12] = (int)local_60._0_4_;\n          goto LAB_002e313c;\n        }\n        if (uVar19 != 0xe) goto LAB_002e313c;\n        goto LAB_002e387c;\n      }\n      if (uVar19 == 4) {\n        pcVar25 = *(code **)(**(int **)(*param_1 + 8) + 0xc);\n        if (pcVar25 == (code *)PTR_is_big_endian_004c2950) {\n          iVar8 = (**(code **)(**(int **)(*param_1 + 8) + 0xe8))();\n        }\n        else {\n          iVar8 = (*pcVar25)();\n        }\n        local_58 = *local_44;\n        if (iVar8 == 0) {\n          local_58 = (((local_58 >> 0x10) << 0x18 | (local_58 >> 0x18) << 0x10) >> 0x10) +\n                     ((local_58 & 0xff) << 8 | local_58 >> 8 & 0xff) * 0x10000;\n        }\n        local_60._0_4_ = local_44 + 1;\n        local_44 = (uint *)((int)local_60._0_4_ + local_58);\nLAB_002e355c:\n        uVar26 = CONCAT44(local_60._0_4_,local_60._4_4_);\n        uVar7 = uVar26;\n        if (uVar22 == 0x31) goto LAB_002e313c;\n        if (uVar22 < 0x32) goto LAB_002e3118;\n        puVar9 = (uint *)param_1[0xc];\n      }\n      else {\n        if (4 < uVar19) {\n          if (uVar19 != 5) {\n            if (uVar19 != 6) {\n              return 0;\n            }\n            pcVar25 = *(code **)(**(int **)(*param_1 + 8) + 0xc);\n            if (pcVar25 == (code *)PTR_is_big_endian_004c2950) {\n              local_30 = puVar18;\n              iVar10 = (**(code **)(**(int **)(*param_1 + 8) + 0xe8))();\n            }\n            else {\n              local_30 = puVar18;\n              iVar10 = (*pcVar25)();\n            }\n            puVar9 = (uint *)*local_44;\n            if (iVar10 == 0) {\n              puVar9 = (uint *)(((((uint)puVar9 >> 0x10) << 0x18 | ((uint)puVar9 >> 0x18) << 0x10)\n                                >> 0x10) +\n                               (((uint)puVar9 & 0xff) << 8 | (uint)puVar9 >> 8 & 0xff) * 0x10000);\n            }\n            local_44 = local_44 + 1;\n            iVar10 = *param_1;\n            local_50._0_4_ = (uint *)0x0;\n            local_50._4_4_ = puVar9;\n            goto LAB_002e3708;\n          }\n          pcVar25 = *(code **)(**(int **)(*param_1 + 8) + 0xc);\n          if (pcVar25 == (code *)PTR_is_big_endian_004c2950) {\n            iVar8 = (**(code **)(**(int **)(*param_1 + 8) + 0xe8))();\n          }\n          else {\n            iVar8 = (*pcVar25)();\n          }\n          uVar6 = *(ushort *)local_44;\n          if (iVar8 == 0) {\n            uVar6 = CONCAT11(*(byte *)((int)local_44 + 1),*(byte *)local_44);\n          }\n          local_60._4_4_ = (uint *)(uint)uVar6;\n          local_44 = (uint *)((int)local_44 + 2);\n          local_60._0_4_ = (uint *)0x0;\n          goto LAB_002e355c;\n        }\n        if (uVar19 != 1) {\n          if (uVar19 != 3) {\n            return 0;\n          }\n          pcVar25 = *(code **)(**(int **)(*param_1 + 8) + 0xc);\n          if (pcVar25 == (code *)PTR_is_big_endian_004c2950) {\n            iVar8 = (**(code **)(**(int **)(*param_1 + 8) + 0xe8))();\n          }\n          else {\n            iVar8 = (*pcVar25)();\n          }\n          uVar6 = *(ushort *)local_44;\n          if (iVar8 == 0) {\n            uVar6 = CONCAT11(*(byte *)((int)local_44 + 1),*(byte *)local_44);\n          }\n          local_58 = (uint)uVar6;\n          local_60._0_4_ = (uint *)((int)local_44 + 2);\n          local_44 = (uint *)((int)local_60._0_4_ + local_58);\n          goto LAB_002e355c;\n        }\n        iVar8 = *param_1;\n        if (*(int *)(iVar8 + 0x4c) == 4) {\n          pcVar25 = *(code **)(**(int **)(iVar8 + 8) + 0xc);\n          if (pcVar25 == (code *)PTR_is_big_endian_004c2950) {\n            local_30 = puVar18;\n            iVar8 = (**(code **)(**(int **)(iVar8 + 8) + 0xe8))();\n          }\n          else {\n            local_30 = puVar18;\n            iVar8 = (*pcVar25)();\n          }\n          uVar15 = *local_44;\n          if (iVar8 == 0) {\n            uVar15 = (((uVar15 >> 0x10) << 0x18 | (uVar15 >> 0x18) << 0x10) >> 0x10) +\n                     ((uVar15 & 0xff) << 8 | uVar15 >> 8 & 0xff) * 0x10000;\n          }\n          local_44 = local_44 + 1;\n          uVar26 = (ulonglong)uVar15;\n        }\n        else {\n          local_30 = puVar18;\n          uVar26 = (*local_34)(iVar8,&local_44);\n        }\n        local_50 = uVar26;\n        local_58 = (*local_3c)(*param_1);\n        uVar26 = local_50;\n        if (uVar22 == 0x31) goto LAB_002e30bc;\n        if (uVar22 < 0x32) {\n          if (uVar22 != 1) goto joined_r0x002e3124;\n          goto LAB_002e39b4;\n        }\n        uVar7 = local_50;\n        if (uVar22 == 0x6e) goto LAB_002e313c;\n        if (uVar22 != 0x2007) goto LAB_002e339c;\n        puVar9 = (uint *)param_1[0xc];\n      }\n      while( true ) {\n        if (puVar9 == (uint *)param_1[0xd]) goto LAB_002e2f98;\nLAB_002e314c:\n        local_60._0_4_ = (uint *)(uVar26 >> 0x20);\n        local_60._4_4_ = (uint *)uVar26;\n        iVar17 = iVar17 + 8;\n        puVar9[1] = local_64;\n        puVar9[2] = (uint)local_60._0_4_;\n        *puVar9 = local_68;\n        puVar9[3] = (uint)local_60._4_4_;\n        puVar9[4] = local_58;\n        puVar9[5] = local_54;\n        param_1[0xc] = (int)(puVar9 + 6);\n        iVar8 = param_1[10];\n        local_60 = uVar26;\n        if (iVar17 == iVar21) goto LAB_002e2fb8;\n        puVar9 = (uint *)(*(int *)(iVar8 + 8) + iVar17);\n        uVar19 = puVar9[1];\n        uVar22 = *puVar9;\n        if (uVar19 != 0x16) goto LAB_002e2dd0;\nLAB_002e31a8:\n        uVar19 = (uint)*(byte *)local_44;\n        puVar9 = (uint *)((int)local_44 + 1);\n        if ((char)*(byte *)local_44 < '\0') {\n          local_60 = uVar26;\n          (*(code *)PTR_read_unsigned_LEB_128_x_004c2980)(puVar9,&local_48,uVar19);\n          puVar9 = (uint *)((int)local_44 + local_48);\n          uVar19 = extraout_v1;\n          uVar26 = local_60;\n        }\n        else {\n          local_48 = 1;\n        }\n        puVar11 = (uint *)((int)puVar9 - iVar20);\n        puVar18 = (uint *)((int)puVar11 + param_1[3]);\n        iVar8 = (uint)(puVar18 < puVar11) + ((int)puVar11 >> 0x1f) + param_1[2];\n        local_64 = uVar19;\n        local_44 = puVar9;\n        if (uVar19 != 0xe) break;\nLAB_002e31fc:\n        local_58 = 0;\n        iVar8 = *param_1;\n        local_68 = uVar22;\n        local_30 = puVar18;\n        local_60 = uVar26;\n        if (*(int *)(iVar8 + 0x48) == 4) {\n          pcVar25 = *(code **)(**(int **)(iVar8 + 8) + 0xc);\n          if (pcVar25 == (code *)PTR_is_big_endian_004c2950) {\n            iVar8 = (**(code **)(**(int **)(iVar8 + 8) + 0xe8))();\n          }\n          else {\n            iVar8 = (*pcVar25)();\n          }\n          uVar19 = *local_44;\n          if (iVar8 == 0) {\n            uVar19 = (((uVar19 >> 0x10) << 0x18 | (uVar19 >> 0x18) << 0x10) >> 0x10) +\n                     ((uVar19 & 0xff) << 8 | uVar19 >> 8 & 0xff) * 0x10000;\n          }\n          local_44 = local_44 + 1;\n          uVar26 = (ulonglong)uVar19;\n        }\n        else {\n          uVar26 = (*local_34)(iVar8,&local_44);\n        }\n        local_50 = uVar26;\n        local_58 = (*local_3c)(*param_1);\n        uVar7 = local_50;\n        if (uVar22 != 0x31) {\n          uVar26 = local_50;\n          if (uVar22 < 0x32) {\n            if ((uVar22 != 1) && (uVar22 == 3)) {\nLAB_002e3284:\n              param_1[0x16] = local_58;\n              *(ulonglong *)(param_1 + 0x10) = uVar26;\n              uVar7 = uVar26;\n            }\n          }\n          else {\n            if (uVar22 == 0x6e) {\nLAB_002e387c:\n              param_1[0x16] = local_58;\n            }\n            else {\n              if (uVar22 != 0x2007) goto LAB_002e313c;\n              param_1[0x16] = local_58;\n            }\n            *(ulonglong *)(param_1 + 0x14) = uVar26;\n            uVar7 = uVar26;\n          }\n        }\nLAB_002e313c:\n        puVar9 = (uint *)param_1[0xc];\n        uVar26 = uVar7;\n      }\n    } while( true );\n  }" (if "if") (parenthesized_expression "((uint)((param_1[0xd] - (int)puVar23 >> 3) * -0x55555555) < uVar19)" (( "(") (binary_expression "(uint)((param_1[0xd] - (int)puVar23 >> 3) * -0x55555555) < uVar19" (call_expression "(uint)((param_1[0xd] - (int)puVar23 >> 3) * -0x55555555)" (parenthesized_expression "(uint)" (( "(") (identifier "uint") () ")")) (argument_list "((param_1[0xd] - (int)puVar23 >> 3) * -0x55555555)" (( "(") (binary_expression "(param_1[0xd] - (int)puVar23 >> 3) * -0x55555555" (parenthesized_expression "(param_1[0xd] - (int)puVar23 >> 3)" (( "(") (binary_expression "param_1[0xd] - (int)puVar23 >> 3" (binary_expression "param_1[0xd] - (int)puVar23" (subscript_expression "param_1[0xd]" (identifier "param_1") ([ "[") (number_literal "0xd") (] "]")) (- "-") (cast_expression "(int)puVar23" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "puVar23"))) (>> ">>") (number_literal "3")) () ")")) (* "*") (number_literal "-0x55555555")) () ")"))) (< "<") (identifier "uVar19")) () ")")) (compound_statement "{\n    puVar13 = (undefined8 *)param_1[0xc];\n    iVar17 = (int)puVar13 - (int)puVar23;\n    if (uVar19 == 0) {\n      iVar10 = 0;\n      puVar24 = puVar23;\n    }\n    else {\n      local_40 = puVar13;\n      iVar10 = (*(code *)PTR_operator_new_004c13a8)(uVar19 * 0x18);\n      puVar13 = local_40;\n      puVar24 = (undefined8 *)param_1[0xb];\n    }\n    if (puVar23 != puVar13) {\n      (*(code *)PTR_memmove_004c5af8)(iVar10,puVar23,iVar17);\n    }\n    if (puVar24 != (undefined8 *)0x0) {\n      (*(code *)PTR_operator_delete_004c12fc)(puVar24);\n    }\n    iVar8 = param_1[10];\n    param_1[0xb] = iVar10;\n    param_1[0xc] = iVar10 + iVar17;\n    param_1[0xd] = iVar10 + uVar19 * 0x18;\n    if (uVar19 != 0) goto LAB_002e2d90;\nLAB_002e2fb8:\n    if (iVar8 == 0) {\n      uVar12 = (*(code *)PTR_do_gold_unreachable_004c1a30)\n                         (PTR_s_in_a_linker_script_004c191c + 0x7108,0x206,\n                          PTR_s_in_a_linker_script_004c191c + 0x7404);\n      return uVar12;\n    }\n    iVar17 = param_1[3];\n  }" ({ "{") (expression_statement "puVar13 = (undefined8 *)param_1[0xc];" (assignment_expression "puVar13 = (undefined8 *)param_1[0xc]" (identifier "puVar13") (= "=") (cast_expression "(undefined8 *)param_1[0xc]" (( "(") (type_descriptor "undefined8 *" (type_identifier "undefined8") (abstract_pointer_declarator "*" (* "*"))) () ")") (subscript_expression "param_1[0xc]" (identifier "param_1") ([ "[") (number_literal "0xc") (] "]")))) (; ";")) (expression_statement "iVar17 = (int)puVar13 - (int)puVar23;" (assignment_expression "iVar17 = (int)puVar13 - (int)puVar23" (identifier "iVar17") (= "=") (binary_expression "(int)puVar13 - (int)puVar23" (cast_expression "(int)puVar13" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "puVar13")) (- "-") (cast_expression "(int)puVar23" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "puVar23")))) (; ";")) (if_statement "if (uVar19 == 0) {\n      iVar10 = 0;\n      puVar24 = puVar23;\n    }\n    else {\n      local_40 = puVar13;\n      iVar10 = (*(code *)PTR_operator_new_004c13a8)(uVar19 * 0x18);\n      puVar13 = local_40;\n      puVar24 = (undefined8 *)param_1[0xb];\n    }" (if "if") (parenthesized_expression "(uVar19 == 0)" (( "(") (binary_expression "uVar19 == 0" (identifier "uVar19") (== "==") (number_literal "0")) () ")")) (compound_statement "{\n      iVar10 = 0;\n      puVar24 = puVar23;\n    }" ({ "{") (expression_statement "iVar10 = 0;" (assignment_expression "iVar10 = 0" (identifier "iVar10") (= "=") (number_literal "0")) (; ";")) (expression_statement "puVar24 = puVar23;" (assignment_expression "puVar24 = puVar23" (identifier "puVar24") (= "=") (identifier "puVar23")) (; ";")) (} "}")) (else_clause "else {\n      local_40 = puVar13;\n      iVar10 = (*(code *)PTR_operator_new_004c13a8)(uVar19 * 0x18);\n      puVar13 = local_40;\n      puVar24 = (undefined8 *)param_1[0xb];\n    }" (else "else") (compound_statement "{\n      local_40 = puVar13;\n      iVar10 = (*(code *)PTR_operator_new_004c13a8)(uVar19 * 0x18);\n      puVar13 = local_40;\n      puVar24 = (undefined8 *)param_1[0xb];\n    }" ({ "{") (expression_statement "local_40 = puVar13;" (assignment_expression "local_40 = puVar13" (identifier "local_40") (= "=") (identifier "puVar13")) (; ";")) (expression_statement "iVar10 = (*(code *)PTR_operator_new_004c13a8)(uVar19 * 0x18);" (assignment_expression "iVar10 = (*(code *)PTR_operator_new_004c13a8)(uVar19 * 0x18)" (identifier "iVar10") (= "=") (call_expression "(*(code *)PTR_operator_new_004c13a8)(uVar19 * 0x18)" (parenthesized_expression "(*(code *)PTR_operator_new_004c13a8)" (( "(") (pointer_expression "*(code *)PTR_operator_new_004c13a8" (* "*") (cast_expression "(code *)PTR_operator_new_004c13a8" (( "(") (type_descriptor "code *" (type_identifier "code") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "PTR_operator_new_004c13a8"))) () ")")) (argument_list "(uVar19 * 0x18)" (( "(") (binary_expression "uVar19 * 0x18" (identifier "uVar19") (* "*") (number_literal "0x18")) () ")")))) (; ";")) (expression_statement "puVar13 = local_40;" (assignment_expression "puVar13 = local_40" (identifier "puVar13") (= "=") (identifier "local_40")) (; ";")) (expression_statement "puVar24 = (undefined8 *)param_1[0xb];" (assignment_expression "puVar24 = (undefined8 *)param_1[0xb]" (identifier "puVar24") (= "=") (cast_expression "(undefined8 *)param_1[0xb]" (( "(") (type_descriptor "undefined8 *" (type_identifier "undefined8") (abstract_pointer_declarator "*" (* "*"))) () ")") (subscript_expression "param_1[0xb]" (identifier "param_1") ([ "[") (number_literal "0xb") (] "]")))) (; ";")) (} "}")))) (if_statement "if (puVar23 != puVar13) {\n      (*(code *)PTR_memmove_004c5af8)(iVar10,puVar23,iVar17);\n    }" (if "if") (parenthesized_expression "(puVar23 != puVar13)" (( "(") (binary_expression "puVar23 != puVar13" (identifier "puVar23") (!= "!=") (identifier "puVar13")) () ")")) (compound_statement "{\n      (*(code *)PTR_memmove_004c5af8)(iVar10,puVar23,iVar17);\n    }" ({ "{") (expression_statement "(*(code *)PTR_memmove_004c5af8)(iVar10,puVar23,iVar17);" (call_expression "(*(code *)PTR_memmove_004c5af8)(iVar10,puVar23,iVar17)" (parenthesized_expression "(*(code *)PTR_memmove_004c5af8)" (( "(") (pointer_expression "*(code *)PTR_memmove_004c5af8" (* "*") (cast_expression "(code *)PTR_memmove_004c5af8" (( "(") (type_descriptor "code *" (type_identifier "code") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "PTR_memmove_004c5af8"))) () ")")) (argument_list "(iVar10,puVar23,iVar17)" (( "(") (identifier "iVar10") (, ",") (identifier "puVar23") (, ",") (identifier "iVar17") () ")"))) (; ";")) (} "}"))) (if_statement "if (puVar24 != (undefined8 *)0x0) {\n      (*(code *)PTR_operator_delete_004c12fc)(puVar24);\n    }" (if "if") (parenthesized_expression "(puVar24 != (undefined8 *)0x0)" (( "(") (binary_expression "puVar24 != (undefined8 *)0x0" (identifier "puVar24") (!= "!=") (cast_expression "(undefined8 *)0x0" (( "(") (type_descriptor "undefined8 *" (type_identifier "undefined8") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0"))) () ")")) (compound_statement "{\n      (*(code *)PTR_operator_delete_004c12fc)(puVar24);\n    }" ({ "{") (expression_statement "(*(code *)PTR_operator_delete_004c12fc)(puVar24);" (call_expression "(*(code *)PTR_operator_delete_004c12fc)(puVar24)" (parenthesized_expression "(*(code *)PTR_operator_delete_004c12fc)" (( "(") (pointer_expression "*(code *)PTR_operator_delete_004c12fc" (* "*") (cast_expression "(code *)PTR_operator_delete_004c12fc" (( "(") (type_descriptor "code *" (type_identifier "code") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "PTR_operator_delete_004c12fc"))) () ")")) (argument_list "(puVar24)" (( "(") (identifier "puVar24") () ")"))) (; ";")) (} "}"))) (expression_statement "iVar8 = param_1[10];" (assignment_expression "iVar8 = param_1[10]" (identifier "iVar8") (= "=") (subscript_expression "param_1[10]" (identifier "param_1") ([ "[") (number_literal "10") (] "]"))) (; ";")) (expression_statement "param_1[0xb] = iVar10;" (assignment_expression "param_1[0xb] = iVar10" (subscript_expression "param_1[0xb]" (identifier "param_1") ([ "[") (number_literal "0xb") (] "]")) (= "=") (identifier "iVar10")) (; ";")) (expression_statement "param_1[0xc] = iVar10 + iVar17;" (assignment_expression "param_1[0xc] = iVar10 + iVar17" (subscript_expression "param_1[0xc]" (identifier "param_1") ([ "[") (number_literal "0xc") (] "]")) (= "=") (binary_expression "iVar10 + iVar17" (identifier "iVar10") (+ "+") (identifier "iVar17"))) (; ";")) (expression_statement "param_1[0xd] = iVar10 + uVar19 * 0x18;" (assignment_expression "param_1[0xd] = iVar10 + uVar19 * 0x18" (subscript_expression "param_1[0xd]" (identifier "param_1") ([ "[") (number_literal "0xd") (] "]")) (= "=") (binary_expression "iVar10 + uVar19 * 0x18" (identifier "iVar10") (+ "+") (binary_expression "uVar19 * 0x18" (identifier "uVar19") (* "*") (number_literal "0x18")))) (; ";")) (if_statement "if (uVar19 != 0) goto LAB_002e2d90;" (if "if") (parenthesized_expression "(uVar19 != 0)" (( "(") (binary_expression "uVar19 != 0" (identifier "uVar19") (!= "!=") (number_literal "0")) () ")")) (goto_statement "goto LAB_002e2d90;" (goto "goto") (statement_identifier "LAB_002e2d90") (; ";"))) (labeled_statement "LAB_002e2fb8:\n    if (iVar8 == 0) {\n      uVar12 = (*(code *)PTR_do_gold_unreachable_004c1a30)\n                         (PTR_s_in_a_linker_script_004c191c + 0x7108,0x206,\n                          PTR_s_in_a_linker_script_004c191c + 0x7404);\n      return uVar12;\n    }" (statement_identifier "LAB_002e2fb8") (: ":") (if_statement "if (iVar8 == 0) {\n      uVar12 = (*(code *)PTR_do_gold_unreachable_004c1a30)\n                         (PTR_s_in_a_linker_script_004c191c + 0x7108,0x206,\n                          PTR_s_in_a_linker_script_004c191c + 0x7404);\n      return uVar12;\n    }" (if "if") (parenthesized_expression "(iVar8 == 0)" (( "(") (binary_expression "iVar8 == 0" (identifier "iVar8") (== "==") (number_literal "0")) () ")")) (compound_statement "{\n      uVar12 = (*(code *)PTR_do_gold_unreachable_004c1a30)\n                         (PTR_s_in_a_linker_script_004c191c + 0x7108,0x206,\n                          PTR_s_in_a_linker_script_004c191c + 0x7404);\n      return uVar12;\n    }" ({ "{") (expression_statement "uVar12 = (*(code *)PTR_do_gold_unreachable_004c1a30)\n                         (PTR_s_in_a_linker_script_004c191c + 0x7108,0x206,\n                          PTR_s_in_a_linker_script_004c191c + 0x7404);" (assignment_expression "uVar12 = (*(code *)PTR_do_gold_unreachable_004c1a30)\n                         (PTR_s_in_a_linker_script_004c191c + 0x7108,0x206,\n                          PTR_s_in_a_linker_script_004c191c + 0x7404)" (identifier "uVar12") (= "=") (call_expression "(*(code *)PTR_do_gold_unreachable_004c1a30)\n                         (PTR_s_in_a_linker_script_004c191c + 0x7108,0x206,\n                          PTR_s_in_a_linker_script_004c191c + 0x7404)" (parenthesized_expression "(*(code *)PTR_do_gold_unreachable_004c1a30)" (( "(") (pointer_expression "*(code *)PTR_do_gold_unreachable_004c1a30" (* "*") (cast_expression "(code *)PTR_do_gold_unreachable_004c1a30" (( "(") (type_descriptor "code *" (type_identifier "code") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "PTR_do_gold_unreachable_004c1a30"))) () ")")) (argument_list "(PTR_s_in_a_linker_script_004c191c + 0x7108,0x206,\n                          PTR_s_in_a_linker_script_004c191c + 0x7404)" (( "(") (binary_expression "PTR_s_in_a_linker_script_004c191c + 0x7108" (identifier "PTR_s_in_a_linker_script_004c191c") (+ "+") (number_literal "0x7108")) (, ",") (number_literal "0x206") (, ",") (binary_expression "PTR_s_in_a_linker_script_004c191c + 0x7404" (identifier "PTR_s_in_a_linker_script_004c191c") (+ "+") (number_literal "0x7404")) () ")")))) (; ";")) (return_statement "return uVar12;" (return "return") (identifier "uVar12") (; ";")) (} "}")))) (expression_statement "iVar17 = param_1[3];" (assignment_expression "iVar17 = param_1[3]" (identifier "iVar17") (= "=") (subscript_expression "param_1[3]" (identifier "param_1") ([ "[") (number_literal "3") (] "]"))) (; ";")) (} "}")) (else_clause "else if (uVar19 != 0) {\nLAB_002e2d90:\n    local_3c = (code *)PTR_lookup_reloc_004c2994;\n    iVar17 = 0;\n    local_34 = (code *)PTR_read_from_pointer<64>_004c2998;\n    local_40 = &local_50;\nLAB_002e2db4:\n    puVar9 = (uint *)(*(int *)(iVar8 + 8) + iVar17);\n    uVar19 = puVar9[1];\n    uVar22 = *puVar9;\n    uVar26 = local_60;\n    if (uVar19 == 0x16) goto LAB_002e31a8;\nLAB_002e2dd0:\n    puVar9 = (uint *)((int)local_44 - iVar20);\n    puVar18 = (uint *)((int)puVar9 + param_1[3]);\n    iVar8 = (uint)(puVar18 < puVar9) + ((int)puVar9 >> 0x1f) + param_1[2];\n    local_64 = uVar19;\n    if (uVar19 == 0xe) goto LAB_002e31fc;\n    do {\n      local_60._4_4_ = (uint *)uVar26;\n      local_58 = 0;\n      local_68 = uVar22;\n      local_64 = uVar19;\n      local_60 = uVar26;\n      if (0xe < uVar19) {\n        if (uVar19 == 0x15) {\n          if ((char)*(byte *)local_44 < '\0') {\n            uVar26 = (*(code *)PTR_read_unsigned_LEB_128_x_004c2980)\n                               ((uint *)((int)local_44 + 1),&local_48);\n            local_44 = (uint *)((int)local_44 + local_48);\n          }\n          else {\n            uVar26 = (ulonglong)*(byte *)local_44;\n            local_48 = 1;\n            local_44 = (uint *)((int)local_44 + 1);\n          }\n          goto joined_r0x002e3998;\n        }\n        if (0x15 < uVar19) {\n          if (uVar19 == 0x19) {\n            local_60._4_4_ = (uint *)0x1;\n            local_60._0_4_ = (uint *)0x0;\n          }\n          else {\n            if (uVar19 < 0x1a) {\n              if (uVar19 != 0x17) {\n                if (uVar19 != 0x18) {\n                  return 0;\n                }\n                goto LAB_002e32bc;\n              }\n              iVar8 = *param_1;\n              if (*(int *)(iVar8 + 0x48) == 4) {\n                pcVar25 = *(code **)(**(int **)(iVar8 + 8) + 0xc);\n                if (pcVar25 == (code *)PTR_is_big_endian_004c2950) {\n                  local_30 = puVar18;\n                  iVar8 = (**(code **)(**(int **)(iVar8 + 8) + 0xe8))();\n                }\n                else {\n                  local_30 = puVar18;\n                  iVar8 = (*pcVar25)();\n                }\n                uVar15 = *local_44;\n                if (iVar8 == 0) {\n                  uVar15 = (((uVar15 >> 0x10) << 0x18 | (uVar15 >> 0x18) << 0x10) >> 0x10) +\n                           ((uVar15 & 0xff) << 8 | uVar15 >> 8 & 0xff) * 0x10000;\n                }\n                local_44 = local_44 + 1;\n                uVar26 = (ulonglong)uVar15;\n              }\n              else {\n                local_30 = puVar18;\n                uVar26 = (*local_34)(iVar8,&local_44);\n              }\n              iVar8 = *param_1;\n              goto LAB_002e3970;\n            }\n            if (uVar19 != 0x20) {\n              if (uVar19 < 0x20) {\n                return 0;\n              }\n              if (1 < uVar19 - 0x1f01) {\n                return 0;\n              }\nLAB_002e34d8:\n              if ((char)*(byte *)local_44 < '\0') {\n                uVar26 = (*(code *)PTR_read_unsigned_LEB_128_x_004c2980)\n                                   ((uint *)((int)local_44 + 1),&local_48);\n                local_44 = (uint *)((int)local_44 + local_48);\n              }\n              else {\n                uVar26 = (ulonglong)*(byte *)local_44;\n                local_48 = 1;\n                local_44 = (uint *)((int)local_44 + 1);\n              }\n              goto LAB_002e382c;\n            }\n            pcVar25 = *(code **)(**(int **)(*param_1 + 8) + 0xc);\n            if (pcVar25 == (code *)PTR_is_big_endian_004c2950) {\n              iVar8 = (**(code **)(**(int **)(*param_1 + 8) + 0xe8))();\n            }\n            else {\n              iVar8 = (*pcVar25)();\n            }\n            local_60._4_4_ = (uint *)local_44[1];\n            local_60._0_4_ = (uint *)*local_44;\n            if (iVar8 == 0) {\n              uVar15 = (uint)local_60._4_4_ & 0xff;\n              uVar16 = (uint)local_60._4_4_ >> 8;\n              uVar2 = (uint)local_60._4_4_ >> 0x10;\n              uVar4 = (uint)local_60._4_4_ >> 0x18;\n              local_60._4_4_ =\n                   (uint *)(((((uint)local_60._0_4_ >> 0x10) << 0x18 |\n                             ((uint)local_60._0_4_ >> 0x18) << 0x10) >> 0x10) +\n                           (((uint)local_60._0_4_ & 0xff) << 8 | (uint)local_60._0_4_ >> 8 & 0xff) *\n                           0x10000);\n              local_60._0_4_ =\n                   (uint *)(((uVar2 << 0x18 | uVar4 << 0x10) >> 0x10) +\n                           (uVar15 << 8 | uVar16 & 0xff) * 0x10000);\n            }\n            local_44 = local_44 + 2;\n          }\n          uVar7 = CONCAT44(local_60._0_4_,local_60._4_4_);\n          if (uVar22 == 0x6e) goto LAB_002e313c;\n          uVar7 = CONCAT44(local_60._0_4_,local_60._4_4_);\n          uVar26 = CONCAT44(local_60._0_4_,local_60._4_4_);\n          if (uVar22 == 0x2007) goto LAB_002e313c;\n          goto joined_r0x002e3124;\n        }\n        if (uVar19 == 0x11) {\n          puVar9 = (uint *)((int)local_44 + 1);\n          uVar15 = (uint)*(byte *)local_44;\n          uVar26 = (ulonglong)uVar15;\n          local_44 = puVar9;\n          if (uVar22 == 0x31) goto LAB_002e30bc;\n          if (0x31 < uVar22) {\n            uVar26 = (ulonglong)uVar15;\n            if ((uVar22 != 0x6e) && (uVar26 = (ulonglong)uVar15, uVar22 != 0x2007)) {\n              uVar7 = (ulonglong)uVar15;\n              if (uVar22 != 0x47) goto LAB_002e313c;\n              param_1[0x18] = 0;\n              param_1[0x19] = uVar15;\n              uVar7 = (ulonglong)uVar15;\n              goto LAB_002e313c;\n            }\n            goto LAB_002e3858;\n          }\n          if (uVar22 == 1) {\n            param_1[8] = 0;\n            param_1[9] = uVar15;\n            uVar7 = (ulonglong)uVar15;\n            goto LAB_002e313c;\n          }\n          goto joined_r0x002e3124;\n        }\n        if (uVar19 < 0x12) {\n          if (uVar19 == 0xf) goto LAB_002e34d8;\n          if (uVar19 != 0x10) {\n            return 0;\n          }\n          iVar10 = *param_1;\n          iVar8 = *(int *)(iVar10 + 0x48);\n          if (*(uint *)(iVar10 + 0x50) < 3) {\n            iVar8 = *(int *)(iVar10 + 0x4c);\n          }\n          if (iVar8 == 4) {\n            pcVar25 = *(code **)(**(int **)(iVar10 + 8) + 0xc);\n            if (pcVar25 == (code *)PTR_is_big_endian_004c2950) {\n              local_30 = puVar18;\n              iVar8 = (**(code **)(**(int **)(iVar10 + 8) + 0xe8))();\n            }\n            else {\n              local_30 = puVar18;\n              iVar8 = (*pcVar25)();\n            }\n            uVar15 = *local_44;\n            if (iVar8 == 0) {\n              uVar15 = (((uVar15 >> 0x10) << 0x18 | (uVar15 >> 0x18) << 0x10) >> 0x10) +\n                       ((uVar15 & 0xff) << 8 | uVar15 >> 8 & 0xff) * 0x10000;\n            }\n            local_44 = local_44 + 1;\n            uVar26 = (ulonglong)uVar15;\n          }\n          else {\n            local_30 = puVar18;\n            uVar26 = (*local_34)(iVar10,&local_44);\n          }\n          local_50 = uVar26;\n          local_58 = (*local_3c)(*param_1);\n          uVar26 = local_50;\n        }\n        else {\n          if (uVar19 == 0x13) {\n            pcVar25 = *(code **)(**(int **)(*param_1 + 8) + 0xc);\n            if (pcVar25 == (code *)PTR_is_big_endian_004c2950) {\n              local_30 = puVar18;\n              iVar8 = (**(code **)(**(int **)(*param_1 + 8) + 0xe8))();\n            }\n            else {\n              local_30 = puVar18;\n              iVar8 = (*pcVar25)();\n            }\n            uVar15 = *local_44;\n            if (iVar8 == 0) {\n              uVar15 = (((uVar15 >> 0x10) << 0x18 | (uVar15 >> 0x18) << 0x10) >> 0x10) +\n                       ((uVar15 & 0xff) << 8 | uVar15 >> 8 & 0xff) * 0x10000;\n            }\n            local_44 = local_44 + 1;\n            iVar8 = *param_1;\n            uVar26 = (ulonglong)uVar15;\n          }\n          else {\n            if (uVar19 < 0x14) {\n              pcVar25 = *(code **)(**(int **)(*param_1 + 8) + 0xc);\n              if (pcVar25 == (code *)PTR_is_big_endian_004c2950) {\n                iVar8 = (**(code **)(**(int **)(*param_1 + 8) + 0xe8))();\n              }\n              else {\n                iVar8 = (*pcVar25)();\n              }\n              uVar6 = *(ushort *)local_44;\n              if (iVar8 == 0) {\n                uVar6 = CONCAT11(*(byte *)((int)local_44 + 1),*(byte *)local_44);\n              }\n              local_44 = (uint *)((int)local_44 + 2);\n              uVar26 = (ulonglong)uVar6;\n              goto joined_r0x002e3998;\n            }\n            pcVar25 = *(code **)(**(int **)(*param_1 + 8) + 0xc);\n            if (pcVar25 == (code *)PTR_is_big_endian_004c2950) {\n              local_30 = puVar18;\n              iVar8 = (**(code **)(**(int **)(*param_1 + 8) + 0xe8))();\n            }\n            else {\n              local_30 = puVar18;\n              iVar8 = (*pcVar25)();\n            }\n            uVar15 = local_44[1];\n            uVar16 = *local_44;\n            if (iVar8 == 0) {\n              uVar2 = uVar15 & 0xff;\n              uVar4 = uVar15 >> 8;\n              uVar3 = uVar15 >> 0x10;\n              uVar5 = uVar15 >> 0x18;\n              uVar15 = (((uVar16 >> 0x10) << 0x18 | (uVar16 >> 0x18) << 0x10) >> 0x10) +\n                       ((uVar16 & 0xff) << 8 | uVar16 >> 8 & 0xff) * 0x10000;\n              uVar16 = ((uVar3 << 0x18 | uVar5 << 0x10) >> 0x10) +\n                       (uVar2 << 8 | uVar4 & 0xff) * 0x10000;\n            }\n            uVar26 = CONCAT44(uVar16,uVar15);\n            local_44 = local_44 + 2;\n            iVar8 = *param_1;\n          }\nLAB_002e3970:\n          local_50 = uVar26;\n          local_58 = (*local_3c)(iVar8);\n          uVar26 = local_50;\n        }\njoined_r0x002e3998:\n        if (uVar22 == 0x31) {\nLAB_002e30bc:\n          *(ulonglong *)(param_1 + 0x1a) = uVar26;\n          uVar7 = uVar26;\n          goto LAB_002e313c;\n        }\n        if (uVar22 < 0x32) {\n          uVar7 = uVar26;\n          if (uVar22 != 1) goto LAB_002e313c;\nLAB_002e39b4:\n          uVar7 = uVar26;\n          if (local_58 != 0) goto LAB_002e313c;\n          *(ulonglong *)(param_1 + 8) = uVar26;\n          goto LAB_002e313c;\n        }\n        if ((uVar22 != 0x6e) && (uVar22 != 0x2007)) {\nLAB_002e339c:\n          uVar7 = uVar26;\n          if (uVar22 != 0x47) goto LAB_002e313c;\n          *(ulonglong *)(param_1 + 0x18) = uVar26;\n          goto LAB_002e313c;\n        }\n        goto LAB_002e3858;\n      }\n      if (uVar19 == 7) {\n        pcVar25 = *(code **)(**(int **)(*param_1 + 8) + 0xc);\n        if (pcVar25 == (code *)PTR_is_big_endian_004c2950) {\n          local_30 = puVar18;\n          iVar10 = (**(code **)(**(int **)(*param_1 + 8) + 0xe8))();\n        }\n        else {\n          local_30 = puVar18;\n          iVar10 = (*pcVar25)();\n        }\n        local_50._4_4_ = (uint *)local_44[1];\n        puVar9 = (uint *)*local_44;\n        if (iVar10 == 0) {\n          uVar15 = (uint)local_50._4_4_ & 0xff;\n          uVar16 = (uint)local_50._4_4_ >> 8;\n          uVar2 = (uint)local_50._4_4_ >> 0x10;\n          uVar4 = (uint)local_50._4_4_ >> 0x18;\n          local_50._4_4_ =\n               (uint *)(((((uint)puVar9 >> 0x10) << 0x18 | ((uint)puVar9 >> 0x18) << 0x10) >> 0x10)\n                       + (((uint)puVar9 & 0xff) << 8 | (uint)puVar9 >> 8 & 0xff) * 0x10000);\n          puVar9 = (uint *)(((uVar2 << 0x18 | uVar4 << 0x10) >> 0x10) +\n                           (uVar15 << 8 | uVar16 & 0xff) * 0x10000);\n        }\n        local_44 = local_44 + 2;\n        iVar10 = *param_1;\n        local_50._0_4_ = puVar9;\nLAB_002e3708:\n        local_58 = (*local_3c)(iVar10,puVar9,iVar8,local_30,local_40);\n        local_60._4_4_ = local_50._4_4_;\n        local_60._0_4_ = local_50._0_4_;\n        goto LAB_002e355c;\n      }\n      if (7 < uVar19) {\n        if (uVar19 == 10) {\n          local_60._0_4_ = (uint *)((int)local_44 + 1);\n          local_58 = (uint)*(byte *)local_44;\n          local_44 = (uint *)((int)local_60._0_4_ + local_58);\n          goto LAB_002e355c;\n        }\n        if (uVar19 < 0xb) {\n          if (uVar19 != 8) {\n            if (uVar19 != 9) {\n              return 0;\n            }\nLAB_002e32bc:\n            uVar15 = (uint)*(byte *)local_44;\n            pbVar14 = (byte *)((int)local_44 + 1);\n            if ((char)*(byte *)local_44 < '\0') {\n              (*(code *)PTR_read_unsigned_LEB_128_x_004c2980)(pbVar14,&local_48);\n              pbVar14 = (byte *)((int)local_44 + local_48);\n              uVar15 = extraout_v1_00;\n            }\n            else {\n              local_48 = 1;\n            }\n            uVar26 = CONCAT44(pbVar14,local_60._4_4_);\n            local_58 = uVar15;\n            local_44 = (uint *)((int)local_44 + uVar15 + local_48);\n            goto LAB_002e382c;\n          }\n          local_60._0_4_ = local_44;\n          local_30 = local_44;\n          local_48 = (*(code *)PTR_strlen_004c5b9c)(local_44);\n          uVar26 = CONCAT44(local_60._0_4_,local_60._4_4_);\n          local_44 = (uint *)((int)local_30 + local_48 + 1);\n          uVar7 = CONCAT44(local_60._0_4_,local_60._4_4_);\n          if (uVar22 == 0x31) goto LAB_002e313c;\n          if (0x31 < uVar22) {\n            if ((uVar22 != 0x6e) &&\n               (uVar7 = CONCAT44(local_60._0_4_,local_60._4_4_), uVar22 != 0x2007))\n            goto LAB_002e313c;\n            param_1[0x12] = (int)local_30;\n            uVar7 = uVar26;\n            goto LAB_002e313c;\n          }\nLAB_002e3118:\n          uVar7 = uVar26;\n          if (uVar22 == 1) goto LAB_002e313c;\njoined_r0x002e3124:\n          uVar7 = uVar26;\n          if (uVar22 != 3) goto LAB_002e313c;\n          local_60._0_4_ = (uint *)(uVar26 >> 0x20);\n          if (uVar19 == 8) {\n            param_1[0xf] = (int)local_60._0_4_;\n            goto LAB_002e313c;\n          }\n          if (uVar19 != 0xe) goto LAB_002e313c;\n          goto LAB_002e3284;\n        }\n        if (uVar19 < 0xd) {\n          uVar26 = (ulonglong)*(byte *)local_44;\n          local_44 = (uint *)((int)local_44 + 1);\nLAB_002e382c:\n          uVar7 = uVar26;\n          if (uVar22 == 0x31) goto LAB_002e313c;\n          if (uVar22 < 0x32) goto LAB_002e3118;\n        }\n        else {\n          bVar1 = *(byte *)local_44;\n          uVar15 = (uint)bVar1;\n          puVar9 = (uint *)((int)local_44 + 1);\n          if ((char)bVar1 < '\0') {\n            uVar26 = (*(code *)PTR_read_signed_LEB_128_x_004c297c)(puVar9,&local_48,uVar15);\n            puVar9 = (uint *)((int)local_44 + local_48);\n          }\n          else {\n            local_48 = 1;\n            uVar26 = (ulonglong)uVar15;\n            if ((bVar1 & 0x40) != 0) {\n              uVar26 = CONCAT44(0xffffffff,uVar15 | 0xffffff80);\n            }\n          }\n          local_44 = puVar9;\n          uVar7 = uVar26;\n          if (uVar22 == 0x31) goto LAB_002e313c;\n          if (uVar22 < 0x32) {\n            puVar9 = (uint *)param_1[0xc];\n            if (puVar9 != (uint *)param_1[0xd]) goto LAB_002e314c;\nLAB_002e2f98:\n            iVar17 = iVar17 + 8;\n            local_60 = uVar26;\n            std::\n            vector<gold::Dwarf_die::Attribute_value,std::allocator<gold::Dwarf_die::Attribute_value>>\n            ::_M_realloc_insert<gold::Dwarf_die::Attribute_value_const&>(local_38,puVar9,&local_68);\n            iVar8 = param_1[10];\n            if (iVar17 == iVar21) goto LAB_002e2fb8;\n            goto LAB_002e2db4;\n          }\n        }\n        if ((uVar22 != 0x6e) && (uVar7 = uVar26, uVar22 != 0x2007)) goto LAB_002e313c;\nLAB_002e3858:\n        local_60._0_4_ = (uint *)(uVar26 >> 0x20);\n        uVar7 = uVar26;\n        if (uVar19 == 8) {\n          param_1[0x12] = (int)local_60._0_4_;\n          goto LAB_002e313c;\n        }\n        if (uVar19 != 0xe) goto LAB_002e313c;\n        goto LAB_002e387c;\n      }\n      if (uVar19 == 4) {\n        pcVar25 = *(code **)(**(int **)(*param_1 + 8) + 0xc);\n        if (pcVar25 == (code *)PTR_is_big_endian_004c2950) {\n          iVar8 = (**(code **)(**(int **)(*param_1 + 8) + 0xe8))();\n        }\n        else {\n          iVar8 = (*pcVar25)();\n        }\n        local_58 = *local_44;\n        if (iVar8 == 0) {\n          local_58 = (((local_58 >> 0x10) << 0x18 | (local_58 >> 0x18) << 0x10) >> 0x10) +\n                     ((local_58 & 0xff) << 8 | local_58 >> 8 & 0xff) * 0x10000;\n        }\n        local_60._0_4_ = local_44 + 1;\n        local_44 = (uint *)((int)local_60._0_4_ + local_58);\nLAB_002e355c:\n        uVar26 = CONCAT44(local_60._0_4_,local_60._4_4_);\n        uVar7 = uVar26;\n        if (uVar22 == 0x31) goto LAB_002e313c;\n        if (uVar22 < 0x32) goto LAB_002e3118;\n        puVar9 = (uint *)param_1[0xc];\n      }\n      else {\n        if (4 < uVar19) {\n          if (uVar19 != 5) {\n            if (uVar19 != 6) {\n              return 0;\n            }\n            pcVar25 = *(code **)(**(int **)(*param_1 + 8) + 0xc);\n            if (pcVar25 == (code *)PTR_is_big_endian_004c2950) {\n              local_30 = puVar18;\n              iVar10 = (**(code **)(**(int **)(*param_1 + 8) + 0xe8))();\n            }\n            else {\n              local_30 = puVar18;\n              iVar10 = (*pcVar25)();\n            }\n            puVar9 = (uint *)*local_44;\n            if (iVar10 == 0) {\n              puVar9 = (uint *)(((((uint)puVar9 >> 0x10) << 0x18 | ((uint)puVar9 >> 0x18) << 0x10)\n                                >> 0x10) +\n                               (((uint)puVar9 & 0xff) << 8 | (uint)puVar9 >> 8 & 0xff) * 0x10000);\n            }\n            local_44 = local_44 + 1;\n            iVar10 = *param_1;\n            local_50._0_4_ = (uint *)0x0;\n            local_50._4_4_ = puVar9;\n            goto LAB_002e3708;\n          }\n          pcVar25 = *(code **)(**(int **)(*param_1 + 8) + 0xc);\n          if (pcVar25 == (code *)PTR_is_big_endian_004c2950) {\n            iVar8 = (**(code **)(**(int **)(*param_1 + 8) + 0xe8))();\n          }\n          else {\n            iVar8 = (*pcVar25)();\n          }\n          uVar6 = *(ushort *)local_44;\n          if (iVar8 == 0) {\n            uVar6 = CONCAT11(*(byte *)((int)local_44 + 1),*(byte *)local_44);\n          }\n          local_60._4_4_ = (uint *)(uint)uVar6;\n          local_44 = (uint *)((int)local_44 + 2);\n          local_60._0_4_ = (uint *)0x0;\n          goto LAB_002e355c;\n        }\n        if (uVar19 != 1) {\n          if (uVar19 != 3) {\n            return 0;\n          }\n          pcVar25 = *(code **)(**(int **)(*param_1 + 8) + 0xc);\n          if (pcVar25 == (code *)PTR_is_big_endian_004c2950) {\n            iVar8 = (**(code **)(**(int **)(*param_1 + 8) + 0xe8))();\n          }\n          else {\n            iVar8 = (*pcVar25)();\n          }\n          uVar6 = *(ushort *)local_44;\n          if (iVar8 == 0) {\n            uVar6 = CONCAT11(*(byte *)((int)local_44 + 1),*(byte *)local_44);\n          }\n          local_58 = (uint)uVar6;\n          local_60._0_4_ = (uint *)((int)local_44 + 2);\n          local_44 = (uint *)((int)local_60._0_4_ + local_58);\n          goto LAB_002e355c;\n        }\n        iVar8 = *param_1;\n        if (*(int *)(iVar8 + 0x4c) == 4) {\n          pcVar25 = *(code **)(**(int **)(iVar8 + 8) + 0xc);\n          if (pcVar25 == (code *)PTR_is_big_endian_004c2950) {\n            local_30 = puVar18;\n            iVar8 = (**(code **)(**(int **)(iVar8 + 8) + 0xe8))();\n          }\n          else {\n            local_30 = puVar18;\n            iVar8 = (*pcVar25)();\n          }\n          uVar15 = *local_44;\n          if (iVar8 == 0) {\n            uVar15 = (((uVar15 >> 0x10) << 0x18 | (uVar15 >> 0x18) << 0x10) >> 0x10) +\n                     ((uVar15 & 0xff) << 8 | uVar15 >> 8 & 0xff) * 0x10000;\n          }\n          local_44 = local_44 + 1;\n          uVar26 = (ulonglong)uVar15;\n        }\n        else {\n          local_30 = puVar18;\n          uVar26 = (*local_34)(iVar8,&local_44);\n        }\n        local_50 = uVar26;\n        local_58 = (*local_3c)(*param_1);\n        uVar26 = local_50;\n        if (uVar22 == 0x31) goto LAB_002e30bc;\n        if (uVar22 < 0x32) {\n          if (uVar22 != 1) goto joined_r0x002e3124;\n          goto LAB_002e39b4;\n        }\n        uVar7 = local_50;\n        if (uVar22 == 0x6e) goto LAB_002e313c;\n        if (uVar22 != 0x2007) goto LAB_002e339c;\n        puVar9 = (uint *)param_1[0xc];\n      }\n      while( true ) {\n        if (puVar9 == (uint *)param_1[0xd]) goto LAB_002e2f98;\nLAB_002e314c:\n        local_60._0_4_ = (uint *)(uVar26 >> 0x20);\n        local_60._4_4_ = (uint *)uVar26;\n        iVar17 = iVar17 + 8;\n        puVar9[1] = local_64;\n        puVar9[2] = (uint)local_60._0_4_;\n        *puVar9 = local_68;\n        puVar9[3] = (uint)local_60._4_4_;\n        puVar9[4] = local_58;\n        puVar9[5] = local_54;\n        param_1[0xc] = (int)(puVar9 + 6);\n        iVar8 = param_1[10];\n        local_60 = uVar26;\n        if (iVar17 == iVar21) goto LAB_002e2fb8;\n        puVar9 = (uint *)(*(int *)(iVar8 + 8) + iVar17);\n        uVar19 = puVar9[1];\n        uVar22 = *puVar9;\n        if (uVar19 != 0x16) goto LAB_002e2dd0;\nLAB_002e31a8:\n        uVar19 = (uint)*(byte *)local_44;\n        puVar9 = (uint *)((int)local_44 + 1);\n        if ((char)*(byte *)local_44 < '\0') {\n          local_60 = uVar26;\n          (*(code *)PTR_read_unsigned_LEB_128_x_004c2980)(puVar9,&local_48,uVar19);\n          puVar9 = (uint *)((int)local_44 + local_48);\n          uVar19 = extraout_v1;\n          uVar26 = local_60;\n        }\n        else {\n          local_48 = 1;\n        }\n        puVar11 = (uint *)((int)puVar9 - iVar20);\n        puVar18 = (uint *)((int)puVar11 + param_1[3]);\n        iVar8 = (uint)(puVar18 < puVar11) + ((int)puVar11 >> 0x1f) + param_1[2];\n        local_64 = uVar19;\n        local_44 = puVar9;\n        if (uVar19 != 0xe) break;\nLAB_002e31fc:\n        local_58 = 0;\n        iVar8 = *param_1;\n        local_68 = uVar22;\n        local_30 = puVar18;\n        local_60 = uVar26;\n        if (*(int *)(iVar8 + 0x48) == 4) {\n          pcVar25 = *(code **)(**(int **)(iVar8 + 8) + 0xc);\n          if (pcVar25 == (code *)PTR_is_big_endian_004c2950) {\n            iVar8 = (**(code **)(**(int **)(iVar8 + 8) + 0xe8))();\n          }\n          else {\n            iVar8 = (*pcVar25)();\n          }\n          uVar19 = *local_44;\n          if (iVar8 == 0) {\n            uVar19 = (((uVar19 >> 0x10) << 0x18 | (uVar19 >> 0x18) << 0x10) >> 0x10) +\n                     ((uVar19 & 0xff) << 8 | uVar19 >> 8 & 0xff) * 0x10000;\n          }\n          local_44 = local_44 + 1;\n          uVar26 = (ulonglong)uVar19;\n        }\n        else {\n          uVar26 = (*local_34)(iVar8,&local_44);\n        }\n        local_50 = uVar26;\n        local_58 = (*local_3c)(*param_1);\n        uVar7 = local_50;\n        if (uVar22 != 0x31) {\n          uVar26 = local_50;\n          if (uVar22 < 0x32) {\n            if ((uVar22 != 1) && (uVar22 == 3)) {\nLAB_002e3284:\n              param_1[0x16] = local_58;\n              *(ulonglong *)(param_1 + 0x10) = uVar26;\n              uVar7 = uVar26;\n            }\n          }\n          else {\n            if (uVar22 == 0x6e) {\nLAB_002e387c:\n              param_1[0x16] = local_58;\n            }\n            else {\n              if (uVar22 != 0x2007) goto LAB_002e313c;\n              param_1[0x16] = local_58;\n            }\n            *(ulonglong *)(param_1 + 0x14) = uVar26;\n            uVar7 = uVar26;\n          }\n        }\nLAB_002e313c:\n        puVar9 = (uint *)param_1[0xc];\n        uVar26 = uVar7;\n      }\n    } while( true );\n  }" (else "else") (if_statement "if (uVar19 != 0) {\nLAB_002e2d90:\n    local_3c = (code *)PTR_lookup_reloc_004c2994;\n    iVar17 = 0;\n    local_34 = (code *)PTR_read_from_pointer<64>_004c2998;\n    local_40 = &local_50;\nLAB_002e2db4:\n    puVar9 = (uint *)(*(int *)(iVar8 + 8) + iVar17);\n    uVar19 = puVar9[1];\n    uVar22 = *puVar9;\n    uVar26 = local_60;\n    if (uVar19 == 0x16) goto LAB_002e31a8;\nLAB_002e2dd0:\n    puVar9 = (uint *)((int)local_44 - iVar20);\n    puVar18 = (uint *)((int)puVar9 + param_1[3]);\n    iVar8 = (uint)(puVar18 < puVar9) + ((int)puVar9 >> 0x1f) + param_1[2];\n    local_64 = uVar19;\n    if (uVar19 == 0xe) goto LAB_002e31fc;\n    do {\n      local_60._4_4_ = (uint *)uVar26;\n      local_58 = 0;\n      local_68 = uVar22;\n      local_64 = uVar19;\n      local_60 = uVar26;\n      if (0xe < uVar19) {\n        if (uVar19 == 0x15) {\n          if ((char)*(byte *)local_44 < '\0') {\n            uVar26 = (*(code *)PTR_read_unsigned_LEB_128_x_004c2980)\n                               ((uint *)((int)local_44 + 1),&local_48);\n            local_44 = (uint *)((int)local_44 + local_48);\n          }\n          else {\n            uVar26 = (ulonglong)*(byte *)local_44;\n            local_48 = 1;\n            local_44 = (uint *)((int)local_44 + 1);\n          }\n          goto joined_r0x002e3998;\n        }\n        if (0x15 < uVar19) {\n          if (uVar19 == 0x19) {\n            local_60._4_4_ = (uint *)0x1;\n            local_60._0_4_ = (uint *)0x0;\n          }\n          else {\n            if (uVar19 < 0x1a) {\n              if (uVar19 != 0x17) {\n                if (uVar19 != 0x18) {\n                  return 0;\n                }\n                goto LAB_002e32bc;\n              }\n              iVar8 = *param_1;\n              if (*(int *)(iVar8 + 0x48) == 4) {\n                pcVar25 = *(code **)(**(int **)(iVar8 + 8) + 0xc);\n                if (pcVar25 == (code *)PTR_is_big_endian_004c2950) {\n                  local_30 = puVar18;\n                  iVar8 = (**(code **)(**(int **)(iVar8 + 8) + 0xe8))();\n                }\n                else {\n                  local_30 = puVar18;\n                  iVar8 = (*pcVar25)();\n                }\n                uVar15 = *local_44;\n                if (iVar8 == 0) {\n                  uVar15 = (((uVar15 >> 0x10) << 0x18 | (uVar15 >> 0x18) << 0x10) >> 0x10) +\n                           ((uVar15 & 0xff) << 8 | uVar15 >> 8 & 0xff) * 0x10000;\n                }\n                local_44 = local_44 + 1;\n                uVar26 = (ulonglong)uVar15;\n              }\n              else {\n                local_30 = puVar18;\n                uVar26 = (*local_34)(iVar8,&local_44);\n              }\n              iVar8 = *param_1;\n              goto LAB_002e3970;\n            }\n            if (uVar19 != 0x20) {\n              if (uVar19 < 0x20) {\n                return 0;\n              }\n              if (1 < uVar19 - 0x1f01) {\n                return 0;\n              }\nLAB_002e34d8:\n              if ((char)*(byte *)local_44 < '\0') {\n                uVar26 = (*(code *)PTR_read_unsigned_LEB_128_x_004c2980)\n                                   ((uint *)((int)local_44 + 1),&local_48);\n                local_44 = (uint *)((int)local_44 + local_48);\n              }\n              else {\n                uVar26 = (ulonglong)*(byte *)local_44;\n                local_48 = 1;\n                local_44 = (uint *)((int)local_44 + 1);\n              }\n              goto LAB_002e382c;\n            }\n            pcVar25 = *(code **)(**(int **)(*param_1 + 8) + 0xc);\n            if (pcVar25 == (code *)PTR_is_big_endian_004c2950) {\n              iVar8 = (**(code **)(**(int **)(*param_1 + 8) + 0xe8))();\n            }\n            else {\n              iVar8 = (*pcVar25)();\n            }\n            local_60._4_4_ = (uint *)local_44[1];\n            local_60._0_4_ = (uint *)*local_44;\n            if (iVar8 == 0) {\n              uVar15 = (uint)local_60._4_4_ & 0xff;\n              uVar16 = (uint)local_60._4_4_ >> 8;\n              uVar2 = (uint)local_60._4_4_ >> 0x10;\n              uVar4 = (uint)local_60._4_4_ >> 0x18;\n              local_60._4_4_ =\n                   (uint *)(((((uint)local_60._0_4_ >> 0x10) << 0x18 |\n                             ((uint)local_60._0_4_ >> 0x18) << 0x10) >> 0x10) +\n                           (((uint)local_60._0_4_ & 0xff) << 8 | (uint)local_60._0_4_ >> 8 & 0xff) *\n                           0x10000);\n              local_60._0_4_ =\n                   (uint *)(((uVar2 << 0x18 | uVar4 << 0x10) >> 0x10) +\n                           (uVar15 << 8 | uVar16 & 0xff) * 0x10000);\n            }\n            local_44 = local_44 + 2;\n          }\n          uVar7 = CONCAT44(local_60._0_4_,local_60._4_4_);\n          if (uVar22 == 0x6e) goto LAB_002e313c;\n          uVar7 = CONCAT44(local_60._0_4_,local_60._4_4_);\n          uVar26 = CONCAT44(local_60._0_4_,local_60._4_4_);\n          if (uVar22 == 0x2007) goto LAB_002e313c;\n          goto joined_r0x002e3124;\n        }\n        if (uVar19 == 0x11) {\n          puVar9 = (uint *)((int)local_44 + 1);\n          uVar15 = (uint)*(byte *)local_44;\n          uVar26 = (ulonglong)uVar15;\n          local_44 = puVar9;\n          if (uVar22 == 0x31) goto LAB_002e30bc;\n          if (0x31 < uVar22) {\n            uVar26 = (ulonglong)uVar15;\n            if ((uVar22 != 0x6e) && (uVar26 = (ulonglong)uVar15, uVar22 != 0x2007)) {\n              uVar7 = (ulonglong)uVar15;\n              if (uVar22 != 0x47) goto LAB_002e313c;\n              param_1[0x18] = 0;\n              param_1[0x19] = uVar15;\n              uVar7 = (ulonglong)uVar15;\n              goto LAB_002e313c;\n            }\n            goto LAB_002e3858;\n          }\n          if (uVar22 == 1) {\n            param_1[8] = 0;\n            param_1[9] = uVar15;\n            uVar7 = (ulonglong)uVar15;\n            goto LAB_002e313c;\n          }\n          goto joined_r0x002e3124;\n        }\n        if (uVar19 < 0x12) {\n          if (uVar19 == 0xf) goto LAB_002e34d8;\n          if (uVar19 != 0x10) {\n            return 0;\n          }\n          iVar10 = *param_1;\n          iVar8 = *(int *)(iVar10 + 0x48);\n          if (*(uint *)(iVar10 + 0x50) < 3) {\n            iVar8 = *(int *)(iVar10 + 0x4c);\n          }\n          if (iVar8 == 4) {\n            pcVar25 = *(code **)(**(int **)(iVar10 + 8) + 0xc);\n            if (pcVar25 == (code *)PTR_is_big_endian_004c2950) {\n              local_30 = puVar18;\n              iVar8 = (**(code **)(**(int **)(iVar10 + 8) + 0xe8))();\n            }\n            else {\n              local_30 = puVar18;\n              iVar8 = (*pcVar25)();\n            }\n            uVar15 = *local_44;\n            if (iVar8 == 0) {\n              uVar15 = (((uVar15 >> 0x10) << 0x18 | (uVar15 >> 0x18) << 0x10) >> 0x10) +\n                       ((uVar15 & 0xff) << 8 | uVar15 >> 8 & 0xff) * 0x10000;\n            }\n            local_44 = local_44 + 1;\n            uVar26 = (ulonglong)uVar15;\n          }\n          else {\n            local_30 = puVar18;\n            uVar26 = (*local_34)(iVar10,&local_44);\n          }\n          local_50 = uVar26;\n          local_58 = (*local_3c)(*param_1);\n          uVar26 = local_50;\n        }\n        else {\n          if (uVar19 == 0x13) {\n            pcVar25 = *(code **)(**(int **)(*param_1 + 8) + 0xc);\n            if (pcVar25 == (code *)PTR_is_big_endian_004c2950) {\n              local_30 = puVar18;\n              iVar8 = (**(code **)(**(int **)(*param_1 + 8) + 0xe8))();\n            }\n            else {\n              local_30 = puVar18;\n              iVar8 = (*pcVar25)();\n            }\n            uVar15 = *local_44;\n            if (iVar8 == 0) {\n              uVar15 = (((uVar15 >> 0x10) << 0x18 | (uVar15 >> 0x18) << 0x10) >> 0x10) +\n                       ((uVar15 & 0xff) << 8 | uVar15 >> 8 & 0xff) * 0x10000;\n            }\n            local_44 = local_44 + 1;\n            iVar8 = *param_1;\n            uVar26 = (ulonglong)uVar15;\n          }\n          else {\n            if (uVar19 < 0x14) {\n              pcVar25 = *(code **)(**(int **)(*param_1 + 8) + 0xc);\n              if (pcVar25 == (code *)PTR_is_big_endian_004c2950) {\n                iVar8 = (**(code **)(**(int **)(*param_1 + 8) + 0xe8))();\n              }\n              else {\n                iVar8 = (*pcVar25)();\n              }\n              uVar6 = *(ushort *)local_44;\n              if (iVar8 == 0) {\n                uVar6 = CONCAT11(*(byte *)((int)local_44 + 1),*(byte *)local_44);\n              }\n              local_44 = (uint *)((int)local_44 + 2);\n              uVar26 = (ulonglong)uVar6;\n              goto joined_r0x002e3998;\n            }\n            pcVar25 = *(code **)(**(int **)(*param_1 + 8) + 0xc);\n            if (pcVar25 == (code *)PTR_is_big_endian_004c2950) {\n              local_30 = puVar18;\n              iVar8 = (**(code **)(**(int **)(*param_1 + 8) + 0xe8))();\n            }\n            else {\n              local_30 = puVar18;\n              iVar8 = (*pcVar25)();\n            }\n            uVar15 = local_44[1];\n            uVar16 = *local_44;\n            if (iVar8 == 0) {\n              uVar2 = uVar15 & 0xff;\n              uVar4 = uVar15 >> 8;\n              uVar3 = uVar15 >> 0x10;\n              uVar5 = uVar15 >> 0x18;\n              uVar15 = (((uVar16 >> 0x10) << 0x18 | (uVar16 >> 0x18) << 0x10) >> 0x10) +\n                       ((uVar16 & 0xff) << 8 | uVar16 >> 8 & 0xff) * 0x10000;\n              uVar16 = ((uVar3 << 0x18 | uVar5 << 0x10) >> 0x10) +\n                       (uVar2 << 8 | uVar4 & 0xff) * 0x10000;\n            }\n            uVar26 = CONCAT44(uVar16,uVar15);\n            local_44 = local_44 + 2;\n            iVar8 = *param_1;\n          }\nLAB_002e3970:\n          local_50 = uVar26;\n          local_58 = (*local_3c)(iVar8);\n          uVar26 = local_50;\n        }\njoined_r0x002e3998:\n        if (uVar22 == 0x31) {\nLAB_002e30bc:\n          *(ulonglong *)(param_1 + 0x1a) = uVar26;\n          uVar7 = uVar26;\n          goto LAB_002e313c;\n        }\n        if (uVar22 < 0x32) {\n          uVar7 = uVar26;\n          if (uVar22 != 1) goto LAB_002e313c;\nLAB_002e39b4:\n          uVar7 = uVar26;\n          if (local_58 != 0) goto LAB_002e313c;\n          *(ulonglong *)(param_1 + 8) = uVar26;\n          goto LAB_002e313c;\n        }\n        if ((uVar22 != 0x6e) && (uVar22 != 0x2007)) {\nLAB_002e339c:\n          uVar7 = uVar26;\n          if (uVar22 != 0x47) goto LAB_002e313c;\n          *(ulonglong *)(param_1 + 0x18) = uVar26;\n          goto LAB_002e313c;\n        }\n        goto LAB_002e3858;\n      }\n      if (uVar19 == 7) {\n        pcVar25 = *(code **)(**(int **)(*param_1 + 8) + 0xc);\n        if (pcVar25 == (code *)PTR_is_big_endian_004c2950) {\n          local_30 = puVar18;\n          iVar10 = (**(code **)(**(int **)(*param_1 + 8) + 0xe8))();\n        }\n        else {\n          local_30 = puVar18;\n          iVar10 = (*pcVar25)();\n        }\n        local_50._4_4_ = (uint *)local_44[1];\n        puVar9 = (uint *)*local_44;\n        if (iVar10 == 0) {\n          uVar15 = (uint)local_50._4_4_ & 0xff;\n          uVar16 = (uint)local_50._4_4_ >> 8;\n          uVar2 = (uint)local_50._4_4_ >> 0x10;\n          uVar4 = (uint)local_50._4_4_ >> 0x18;\n          local_50._4_4_ =\n               (uint *)(((((uint)puVar9 >> 0x10) << 0x18 | ((uint)puVar9 >> 0x18) << 0x10) >> 0x10)\n                       + (((uint)puVar9 & 0xff) << 8 | (uint)puVar9 >> 8 & 0xff) * 0x10000);\n          puVar9 = (uint *)(((uVar2 << 0x18 | uVar4 << 0x10) >> 0x10) +\n                           (uVar15 << 8 | uVar16 & 0xff) * 0x10000);\n        }\n        local_44 = local_44 + 2;\n        iVar10 = *param_1;\n        local_50._0_4_ = puVar9;\nLAB_002e3708:\n        local_58 = (*local_3c)(iVar10,puVar9,iVar8,local_30,local_40);\n        local_60._4_4_ = local_50._4_4_;\n        local_60._0_4_ = local_50._0_4_;\n        goto LAB_002e355c;\n      }\n      if (7 < uVar19) {\n        if (uVar19 == 10) {\n          local_60._0_4_ = (uint *)((int)local_44 + 1);\n          local_58 = (uint)*(byte *)local_44;\n          local_44 = (uint *)((int)local_60._0_4_ + local_58);\n          goto LAB_002e355c;\n        }\n        if (uVar19 < 0xb) {\n          if (uVar19 != 8) {\n            if (uVar19 != 9) {\n              return 0;\n            }\nLAB_002e32bc:\n            uVar15 = (uint)*(byte *)local_44;\n            pbVar14 = (byte *)((int)local_44 + 1);\n            if ((char)*(byte *)local_44 < '\0') {\n              (*(code *)PTR_read_unsigned_LEB_128_x_004c2980)(pbVar14,&local_48);\n              pbVar14 = (byte *)((int)local_44 + local_48);\n              uVar15 = extraout_v1_00;\n            }\n            else {\n              local_48 = 1;\n            }\n            uVar26 = CONCAT44(pbVar14,local_60._4_4_);\n            local_58 = uVar15;\n            local_44 = (uint *)((int)local_44 + uVar15 + local_48);\n            goto LAB_002e382c;\n          }\n          local_60._0_4_ = local_44;\n          local_30 = local_44;\n          local_48 = (*(code *)PTR_strlen_004c5b9c)(local_44);\n          uVar26 = CONCAT44(local_60._0_4_,local_60._4_4_);\n          local_44 = (uint *)((int)local_30 + local_48 + 1);\n          uVar7 = CONCAT44(local_60._0_4_,local_60._4_4_);\n          if (uVar22 == 0x31) goto LAB_002e313c;\n          if (0x31 < uVar22) {\n            if ((uVar22 != 0x6e) &&\n               (uVar7 = CONCAT44(local_60._0_4_,local_60._4_4_), uVar22 != 0x2007))\n            goto LAB_002e313c;\n            param_1[0x12] = (int)local_30;\n            uVar7 = uVar26;\n            goto LAB_002e313c;\n          }\nLAB_002e3118:\n          uVar7 = uVar26;\n          if (uVar22 == 1) goto LAB_002e313c;\njoined_r0x002e3124:\n          uVar7 = uVar26;\n          if (uVar22 != 3) goto LAB_002e313c;\n          local_60._0_4_ = (uint *)(uVar26 >> 0x20);\n          if (uVar19 == 8) {\n            param_1[0xf] = (int)local_60._0_4_;\n            goto LAB_002e313c;\n          }\n          if (uVar19 != 0xe) goto LAB_002e313c;\n          goto LAB_002e3284;\n        }\n        if (uVar19 < 0xd) {\n          uVar26 = (ulonglong)*(byte *)local_44;\n          local_44 = (uint *)((int)local_44 + 1);\nLAB_002e382c:\n          uVar7 = uVar26;\n          if (uVar22 == 0x31) goto LAB_002e313c;\n          if (uVar22 < 0x32) goto LAB_002e3118;\n        }\n        else {\n          bVar1 = *(byte *)local_44;\n          uVar15 = (uint)bVar1;\n          puVar9 = (uint *)((int)local_44 + 1);\n          if ((char)bVar1 < '\0') {\n            uVar26 = (*(code *)PTR_read_signed_LEB_128_x_004c297c)(puVar9,&local_48,uVar15);\n            puVar9 = (uint *)((int)local_44 + local_48);\n          }\n          else {\n            local_48 = 1;\n            uVar26 = (ulonglong)uVar15;\n            if ((bVar1 & 0x40) != 0) {\n              uVar26 = CONCAT44(0xffffffff,uVar15 | 0xffffff80);\n            }\n          }\n          local_44 = puVar9;\n          uVar7 = uVar26;\n          if (uVar22 == 0x31) goto LAB_002e313c;\n          if (uVar22 < 0x32) {\n            puVar9 = (uint *)param_1[0xc];\n            if (puVar9 != (uint *)param_1[0xd]) goto LAB_002e314c;\nLAB_002e2f98:\n            iVar17 = iVar17 + 8;\n            local_60 = uVar26;\n            std::\n            vector<gold::Dwarf_die::Attribute_value,std::allocator<gold::Dwarf_die::Attribute_value>>\n            ::_M_realloc_insert<gold::Dwarf_die::Attribute_value_const&>(local_38,puVar9,&local_68);\n            iVar8 = param_1[10];\n            if (iVar17 == iVar21) goto LAB_002e2fb8;\n            goto LAB_002e2db4;\n          }\n        }\n        if ((uVar22 != 0x6e) && (uVar7 = uVar26, uVar22 != 0x2007)) goto LAB_002e313c;\nLAB_002e3858:\n        local_60._0_4_ = (uint *)(uVar26 >> 0x20);\n        uVar7 = uVar26;\n        if (uVar19 == 8) {\n          param_1[0x12] = (int)local_60._0_4_;\n          goto LAB_002e313c;\n        }\n        if (uVar19 != 0xe) goto LAB_002e313c;\n        goto LAB_002e387c;\n      }\n      if (uVar19 == 4) {\n        pcVar25 = *(code **)(**(int **)(*param_1 + 8) + 0xc);\n        if (pcVar25 == (code *)PTR_is_big_endian_004c2950) {\n          iVar8 = (**(code **)(**(int **)(*param_1 + 8) + 0xe8))();\n        }\n        else {\n          iVar8 = (*pcVar25)();\n        }\n        local_58 = *local_44;\n        if (iVar8 == 0) {\n          local_58 = (((local_58 >> 0x10) << 0x18 | (local_58 >> 0x18) << 0x10) >> 0x10) +\n                     ((local_58 & 0xff) << 8 | local_58 >> 8 & 0xff) * 0x10000;\n        }\n        local_60._0_4_ = local_44 + 1;\n        local_44 = (uint *)((int)local_60._0_4_ + local_58);\nLAB_002e355c:\n        uVar26 = CONCAT44(local_60._0_4_,local_60._4_4_);\n        uVar7 = uVar26;\n        if (uVar22 == 0x31) goto LAB_002e313c;\n        if (uVar22 < 0x32) goto LAB_002e3118;\n        puVar9 = (uint *)param_1[0xc];\n      }\n      else {\n        if (4 < uVar19) {\n          if (uVar19 != 5) {\n            if (uVar19 != 6) {\n              return 0;\n            }\n            pcVar25 = *(code **)(**(int **)(*param_1 + 8) + 0xc);\n            if (pcVar25 == (code *)PTR_is_big_endian_004c2950) {\n              local_30 = puVar18;\n              iVar10 = (**(code **)(**(int **)(*param_1 + 8) + 0xe8))();\n            }\n            else {\n              local_30 = puVar18;\n              iVar10 = (*pcVar25)();\n            }\n            puVar9 = (uint *)*local_44;\n            if (iVar10 == 0) {\n              puVar9 = (uint *)(((((uint)puVar9 >> 0x10) << 0x18 | ((uint)puVar9 >> 0x18) << 0x10)\n                                >> 0x10) +\n                               (((uint)puVar9 & 0xff) << 8 | (uint)puVar9 >> 8 & 0xff) * 0x10000);\n            }\n            local_44 = local_44 + 1;\n            iVar10 = *param_1;\n            local_50._0_4_ = (uint *)0x0;\n            local_50._4_4_ = puVar9;\n            goto LAB_002e3708;\n          }\n          pcVar25 = *(code **)(**(int **)(*param_1 + 8) + 0xc);\n          if (pcVar25 == (code *)PTR_is_big_endian_004c2950) {\n            iVar8 = (**(code **)(**(int **)(*param_1 + 8) + 0xe8))();\n          }\n          else {\n            iVar8 = (*pcVar25)();\n          }\n          uVar6 = *(ushort *)local_44;\n          if (iVar8 == 0) {\n            uVar6 = CONCAT11(*(byte *)((int)local_44 + 1),*(byte *)local_44);\n          }\n          local_60._4_4_ = (uint *)(uint)uVar6;\n          local_44 = (uint *)((int)local_44 + 2);\n          local_60._0_4_ = (uint *)0x0;\n          goto LAB_002e355c;\n        }\n        if (uVar19 != 1) {\n          if (uVar19 != 3) {\n            return 0;\n          }\n          pcVar25 = *(code **)(**(int **)(*param_1 + 8) + 0xc);\n          if (pcVar25 == (code *)PTR_is_big_endian_004c2950) {\n            iVar8 = (**(code **)(**(int **)(*param_1 + 8) + 0xe8))();\n          }\n          else {\n            iVar8 = (*pcVar25)();\n          }\n          uVar6 = *(ushort *)local_44;\n          if (iVar8 == 0) {\n            uVar6 = CONCAT11(*(byte *)((int)local_44 + 1),*(byte *)local_44);\n          }\n          local_58 = (uint)uVar6;\n          local_60._0_4_ = (uint *)((int)local_44 + 2);\n          local_44 = (uint *)((int)local_60._0_4_ + local_58);\n          goto LAB_002e355c;\n        }\n        iVar8 = *param_1;\n        if (*(int *)(iVar8 + 0x4c) == 4) {\n          pcVar25 = *(code **)(**(int **)(iVar8 + 8) + 0xc);\n          if (pcVar25 == (code *)PTR_is_big_endian_004c2950) {\n            local_30 = puVar18;\n            iVar8 = (**(code **)(**(int **)(iVar8 + 8) + 0xe8))();\n          }\n          else {\n            local_30 = puVar18;\n            iVar8 = (*pcVar25)();\n          }\n          uVar15 = *local_44;\n          if (iVar8 == 0) {\n            uVar15 = (((uVar15 >> 0x10) << 0x18 | (uVar15 >> 0x18) << 0x10) >> 0x10) +\n                     ((uVar15 & 0xff) << 8 | uVar15 >> 8 & 0xff) * 0x10000;\n          }\n          local_44 = local_44 + 1;\n          uVar26 = (ulonglong)uVar15;\n        }\n        else {\n          local_30 = puVar18;\n          uVar26 = (*local_34)(iVar8,&local_44);\n        }\n        local_50 = uVar26;\n        local_58 = (*local_3c)(*param_1);\n        uVar26 = local_50;\n        if (uVar22 == 0x31) goto LAB_002e30bc;\n        if (uVar22 < 0x32) {\n          if (uVar22 != 1) goto joined_r0x002e3124;\n          goto LAB_002e39b4;\n        }\n        uVar7 = local_50;\n        if (uVar22 == 0x6e) goto LAB_002e313c;\n        if (uVar22 != 0x2007) goto LAB_002e339c;\n        puVar9 = (uint *)param_1[0xc];\n      }\n      while( true ) {\n        if (puVar9 == (uint *)param_1[0xd]) goto LAB_002e2f98;\nLAB_002e314c:\n        local_60._0_4_ = (uint *)(uVar26 >> 0x20);\n        local_60._4_4_ = (uint *)uVar26;\n        iVar17 = iVar17 + 8;\n        puVar9[1] = local_64;\n        puVar9[2] = (uint)local_60._0_4_;\n        *puVar9 = local_68;\n        puVar9[3] = (uint)local_60._4_4_;\n        puVar9[4] = local_58;\n        puVar9[5] = local_54;\n        param_1[0xc] = (int)(puVar9 + 6);\n        iVar8 = param_1[10];\n        local_60 = uVar26;\n        if (iVar17 == iVar21) goto LAB_002e2fb8;\n        puVar9 = (uint *)(*(int *)(iVar8 + 8) + iVar17);\n        uVar19 = puVar9[1];\n        uVar22 = *puVar9;\n        if (uVar19 != 0x16) goto LAB_002e2dd0;\nLAB_002e31a8:\n        uVar19 = (uint)*(byte *)local_44;\n        puVar9 = (uint *)((int)local_44 + 1);\n        if ((char)*(byte *)local_44 < '\0') {\n          local_60 = uVar26;\n          (*(code *)PTR_read_unsigned_LEB_128_x_004c2980)(puVar9,&local_48,uVar19);\n          puVar9 = (uint *)((int)local_44 + local_48);\n          uVar19 = extraout_v1;\n          uVar26 = local_60;\n        }\n        else {\n          local_48 = 1;\n        }\n        puVar11 = (uint *)((int)puVar9 - iVar20);\n        puVar18 = (uint *)((int)puVar11 + param_1[3]);\n        iVar8 = (uint)(puVar18 < puVar11) + ((int)puVar11 >> 0x1f) + param_1[2];\n        local_64 = uVar19;\n        local_44 = puVar9;\n        if (uVar19 != 0xe) break;\nLAB_002e31fc:\n        local_58 = 0;\n        iVar8 = *param_1;\n        local_68 = uVar22;\n        local_30 = puVar18;\n        local_60 = uVar26;\n        if (*(int *)(iVar8 + 0x48) == 4) {\n          pcVar25 = *(code **)(**(int **)(iVar8 + 8) + 0xc);\n          if (pcVar25 == (code *)PTR_is_big_endian_004c2950) {\n            iVar8 = (**(code **)(**(int **)(iVar8 + 8) + 0xe8))();\n          }\n          else {\n            iVar8 = (*pcVar25)();\n          }\n          uVar19 = *local_44;\n          if (iVar8 == 0) {\n            uVar19 = (((uVar19 >> 0x10) << 0x18 | (uVar19 >> 0x18) << 0x10) >> 0x10) +\n                     ((uVar19 & 0xff) << 8 | uVar19 >> 8 & 0xff) * 0x10000;\n          }\n          local_44 = local_44 + 1;\n          uVar26 = (ulonglong)uVar19;\n        }\n        else {\n          uVar26 = (*local_34)(iVar8,&local_44);\n        }\n        local_50 = uVar26;\n        local_58 = (*local_3c)(*param_1);\n        uVar7 = local_50;\n        if (uVar22 != 0x31) {\n          uVar26 = local_50;\n          if (uVar22 < 0x32) {\n            if ((uVar22 != 1) && (uVar22 == 3)) {\nLAB_002e3284:\n              param_1[0x16] = local_58;\n              *(ulonglong *)(param_1 + 0x10) = uVar26;\n              uVar7 = uVar26;\n            }\n          }\n          else {\n            if (uVar22 == 0x6e) {\nLAB_002e387c:\n              param_1[0x16] = local_58;\n            }\n            else {\n              if (uVar22 != 0x2007) goto LAB_002e313c;\n              param_1[0x16] = local_58;\n            }\n            *(ulonglong *)(param_1 + 0x14) = uVar26;\n            uVar7 = uVar26;\n          }\n        }\nLAB_002e313c:\n        puVar9 = (uint *)param_1[0xc];\n        uVar26 = uVar7;\n      }\n    } while( true );\n  }" (if "if") (parenthesized_expression "(uVar19 != 0)" (( "(") (binary_expression "uVar19 != 0" (identifier "uVar19") (!= "!=") (number_literal "0")) () ")")) (compound_statement "{\nLAB_002e2d90:\n    local_3c = (code *)PTR_lookup_reloc_004c2994;\n    iVar17 = 0;\n    local_34 = (code *)PTR_read_from_pointer<64>_004c2998;\n    local_40 = &local_50;\nLAB_002e2db4:\n    puVar9 = (uint *)(*(int *)(iVar8 + 8) + iVar17);\n    uVar19 = puVar9[1];\n    uVar22 = *puVar9;\n    uVar26 = local_60;\n    if (uVar19 == 0x16) goto LAB_002e31a8;\nLAB_002e2dd0:\n    puVar9 = (uint *)((int)local_44 - iVar20);\n    puVar18 = (uint *)((int)puVar9 + param_1[3]);\n    iVar8 = (uint)(puVar18 < puVar9) + ((int)puVar9 >> 0x1f) + param_1[2];\n    local_64 = uVar19;\n    if (uVar19 == 0xe) goto LAB_002e31fc;\n    do {\n      local_60._4_4_ = (uint *)uVar26;\n      local_58 = 0;\n      local_68 = uVar22;\n      local_64 = uVar19;\n      local_60 = uVar26;\n      if (0xe < uVar19) {\n        if (uVar19 == 0x15) {\n          if ((char)*(byte *)local_44 < '\0') {\n            uVar26 = (*(code *)PTR_read_unsigned_LEB_128_x_004c2980)\n                               ((uint *)((int)local_44 + 1),&local_48);\n            local_44 = (uint *)((int)local_44 + local_48);\n          }\n          else {\n            uVar26 = (ulonglong)*(byte *)local_44;\n            local_48 = 1;\n            local_44 = (uint *)((int)local_44 + 1);\n          }\n          goto joined_r0x002e3998;\n        }\n        if (0x15 < uVar19) {\n          if (uVar19 == 0x19) {\n            local_60._4_4_ = (uint *)0x1;\n            local_60._0_4_ = (uint *)0x0;\n          }\n          else {\n            if (uVar19 < 0x1a) {\n              if (uVar19 != 0x17) {\n                if (uVar19 != 0x18) {\n                  return 0;\n                }\n                goto LAB_002e32bc;\n              }\n              iVar8 = *param_1;\n              if (*(int *)(iVar8 + 0x48) == 4) {\n                pcVar25 = *(code **)(**(int **)(iVar8 + 8) + 0xc);\n                if (pcVar25 == (code *)PTR_is_big_endian_004c2950) {\n                  local_30 = puVar18;\n                  iVar8 = (**(code **)(**(int **)(iVar8 + 8) + 0xe8))();\n                }\n                else {\n                  local_30 = puVar18;\n                  iVar8 = (*pcVar25)();\n                }\n                uVar15 = *local_44;\n                if (iVar8 == 0) {\n                  uVar15 = (((uVar15 >> 0x10) << 0x18 | (uVar15 >> 0x18) << 0x10) >> 0x10) +\n                           ((uVar15 & 0xff) << 8 | uVar15 >> 8 & 0xff) * 0x10000;\n                }\n                local_44 = local_44 + 1;\n                uVar26 = (ulonglong)uVar15;\n              }\n              else {\n                local_30 = puVar18;\n                uVar26 = (*local_34)(iVar8,&local_44);\n              }\n              iVar8 = *param_1;\n              goto LAB_002e3970;\n            }\n            if (uVar19 != 0x20) {\n              if (uVar19 < 0x20) {\n                return 0;\n              }\n              if (1 < uVar19 - 0x1f01) {\n                return 0;\n              }\nLAB_002e34d8:\n              if ((char)*(byte *)local_44 < '\0') {\n                uVar26 = (*(code *)PTR_read_unsigned_LEB_128_x_004c2980)\n                                   ((uint *)((int)local_44 + 1),&local_48);\n                local_44 = (uint *)((int)local_44 + local_48);\n              }\n              else {\n                uVar26 = (ulonglong)*(byte *)local_44;\n                local_48 = 1;\n                local_44 = (uint *)((int)local_44 + 1);\n              }\n              goto LAB_002e382c;\n            }\n            pcVar25 = *(code **)(**(int **)(*param_1 + 8) + 0xc);\n            if (pcVar25 == (code *)PTR_is_big_endian_004c2950) {\n              iVar8 = (**(code **)(**(int **)(*param_1 + 8) + 0xe8))();\n            }\n            else {\n              iVar8 = (*pcVar25)();\n            }\n            local_60._4_4_ = (uint *)local_44[1];\n            local_60._0_4_ = (uint *)*local_44;\n            if (iVar8 == 0) {\n              uVar15 = (uint)local_60._4_4_ & 0xff;\n              uVar16 = (uint)local_60._4_4_ >> 8;\n              uVar2 = (uint)local_60._4_4_ >> 0x10;\n              uVar4 = (uint)local_60._4_4_ >> 0x18;\n              local_60._4_4_ =\n                   (uint *)(((((uint)local_60._0_4_ >> 0x10) << 0x18 |\n                             ((uint)local_60._0_4_ >> 0x18) << 0x10) >> 0x10) +\n                           (((uint)local_60._0_4_ & 0xff) << 8 | (uint)local_60._0_4_ >> 8 & 0xff) *\n                           0x10000);\n              local_60._0_4_ =\n                   (uint *)(((uVar2 << 0x18 | uVar4 << 0x10) >> 0x10) +\n                           (uVar15 << 8 | uVar16 & 0xff) * 0x10000);\n            }\n            local_44 = local_44 + 2;\n          }\n          uVar7 = CONCAT44(local_60._0_4_,local_60._4_4_);\n          if (uVar22 == 0x6e) goto LAB_002e313c;\n          uVar7 = CONCAT44(local_60._0_4_,local_60._4_4_);\n          uVar26 = CONCAT44(local_60._0_4_,local_60._4_4_);\n          if (uVar22 == 0x2007) goto LAB_002e313c;\n          goto joined_r0x002e3124;\n        }\n        if (uVar19 == 0x11) {\n          puVar9 = (uint *)((int)local_44 + 1);\n          uVar15 = (uint)*(byte *)local_44;\n          uVar26 = (ulonglong)uVar15;\n          local_44 = puVar9;\n          if (uVar22 == 0x31) goto LAB_002e30bc;\n          if (0x31 < uVar22) {\n            uVar26 = (ulonglong)uVar15;\n            if ((uVar22 != 0x6e) && (uVar26 = (ulonglong)uVar15, uVar22 != 0x2007)) {\n              uVar7 = (ulonglong)uVar15;\n              if (uVar22 != 0x47) goto LAB_002e313c;\n              param_1[0x18] = 0;\n              param_1[0x19] = uVar15;\n              uVar7 = (ulonglong)uVar15;\n              goto LAB_002e313c;\n            }\n            goto LAB_002e3858;\n          }\n          if (uVar22 == 1) {\n            param_1[8] = 0;\n            param_1[9] = uVar15;\n            uVar7 = (ulonglong)uVar15;\n            goto LAB_002e313c;\n          }\n          goto joined_r0x002e3124;\n        }\n        if (uVar19 < 0x12) {\n          if (uVar19 == 0xf) goto LAB_002e34d8;\n          if (uVar19 != 0x10) {\n            return 0;\n          }\n          iVar10 = *param_1;\n          iVar8 = *(int *)(iVar10 + 0x48);\n          if (*(uint *)(iVar10 + 0x50) < 3) {\n            iVar8 = *(int *)(iVar10 + 0x4c);\n          }\n          if (iVar8 == 4) {\n            pcVar25 = *(code **)(**(int **)(iVar10 + 8) + 0xc);\n            if (pcVar25 == (code *)PTR_is_big_endian_004c2950) {\n              local_30 = puVar18;\n              iVar8 = (**(code **)(**(int **)(iVar10 + 8) + 0xe8))();\n            }\n            else {\n              local_30 = puVar18;\n              iVar8 = (*pcVar25)();\n            }\n            uVar15 = *local_44;\n            if (iVar8 == 0) {\n              uVar15 = (((uVar15 >> 0x10) << 0x18 | (uVar15 >> 0x18) << 0x10) >> 0x10) +\n                       ((uVar15 & 0xff) << 8 | uVar15 >> 8 & 0xff) * 0x10000;\n            }\n            local_44 = local_44 + 1;\n            uVar26 = (ulonglong)uVar15;\n          }\n          else {\n            local_30 = puVar18;\n            uVar26 = (*local_34)(iVar10,&local_44);\n          }\n          local_50 = uVar26;\n          local_58 = (*local_3c)(*param_1);\n          uVar26 = local_50;\n        }\n        else {\n          if (uVar19 == 0x13) {\n            pcVar25 = *(code **)(**(int **)(*param_1 + 8) + 0xc);\n            if (pcVar25 == (code *)PTR_is_big_endian_004c2950) {\n              local_30 = puVar18;\n              iVar8 = (**(code **)(**(int **)(*param_1 + 8) + 0xe8))();\n            }\n            else {\n              local_30 = puVar18;\n              iVar8 = (*pcVar25)();\n            }\n            uVar15 = *local_44;\n            if (iVar8 == 0) {\n              uVar15 = (((uVar15 >> 0x10) << 0x18 | (uVar15 >> 0x18) << 0x10) >> 0x10) +\n                       ((uVar15 & 0xff) << 8 | uVar15 >> 8 & 0xff) * 0x10000;\n            }\n            local_44 = local_44 + 1;\n            iVar8 = *param_1;\n            uVar26 = (ulonglong)uVar15;\n          }\n          else {\n            if (uVar19 < 0x14) {\n              pcVar25 = *(code **)(**(int **)(*param_1 + 8) + 0xc);\n              if (pcVar25 == (code *)PTR_is_big_endian_004c2950) {\n                iVar8 = (**(code **)(**(int **)(*param_1 + 8) + 0xe8))();\n              }\n              else {\n                iVar8 = (*pcVar25)();\n              }\n              uVar6 = *(ushort *)local_44;\n              if (iVar8 == 0) {\n                uVar6 = CONCAT11(*(byte *)((int)local_44 + 1),*(byte *)local_44);\n              }\n              local_44 = (uint *)((int)local_44 + 2);\n              uVar26 = (ulonglong)uVar6;\n              goto joined_r0x002e3998;\n            }\n            pcVar25 = *(code **)(**(int **)(*param_1 + 8) + 0xc);\n            if (pcVar25 == (code *)PTR_is_big_endian_004c2950) {\n              local_30 = puVar18;\n              iVar8 = (**(code **)(**(int **)(*param_1 + 8) + 0xe8))();\n            }\n            else {\n              local_30 = puVar18;\n              iVar8 = (*pcVar25)();\n            }\n            uVar15 = local_44[1];\n            uVar16 = *local_44;\n            if (iVar8 == 0) {\n              uVar2 = uVar15 & 0xff;\n              uVar4 = uVar15 >> 8;\n              uVar3 = uVar15 >> 0x10;\n              uVar5 = uVar15 >> 0x18;\n              uVar15 = (((uVar16 >> 0x10) << 0x18 | (uVar16 >> 0x18) << 0x10) >> 0x10) +\n                       ((uVar16 & 0xff) << 8 | uVar16 >> 8 & 0xff) * 0x10000;\n              uVar16 = ((uVar3 << 0x18 | uVar5 << 0x10) >> 0x10) +\n                       (uVar2 << 8 | uVar4 & 0xff) * 0x10000;\n            }\n            uVar26 = CONCAT44(uVar16,uVar15);\n            local_44 = local_44 + 2;\n            iVar8 = *param_1;\n          }\nLAB_002e3970:\n          local_50 = uVar26;\n          local_58 = (*local_3c)(iVar8);\n          uVar26 = local_50;\n        }\njoined_r0x002e3998:\n        if (uVar22 == 0x31) {\nLAB_002e30bc:\n          *(ulonglong *)(param_1 + 0x1a) = uVar26;\n          uVar7 = uVar26;\n          goto LAB_002e313c;\n        }\n        if (uVar22 < 0x32) {\n          uVar7 = uVar26;\n          if (uVar22 != 1) goto LAB_002e313c;\nLAB_002e39b4:\n          uVar7 = uVar26;\n          if (local_58 != 0) goto LAB_002e313c;\n          *(ulonglong *)(param_1 + 8) = uVar26;\n          goto LAB_002e313c;\n        }\n        if ((uVar22 != 0x6e) && (uVar22 != 0x2007)) {\nLAB_002e339c:\n          uVar7 = uVar26;\n          if (uVar22 != 0x47) goto LAB_002e313c;\n          *(ulonglong *)(param_1 + 0x18) = uVar26;\n          goto LAB_002e313c;\n        }\n        goto LAB_002e3858;\n      }\n      if (uVar19 == 7) {\n        pcVar25 = *(code **)(**(int **)(*param_1 + 8) + 0xc);\n        if (pcVar25 == (code *)PTR_is_big_endian_004c2950) {\n          local_30 = puVar18;\n          iVar10 = (**(code **)(**(int **)(*param_1 + 8) + 0xe8))();\n        }\n        else {\n          local_30 = puVar18;\n          iVar10 = (*pcVar25)();\n        }\n        local_50._4_4_ = (uint *)local_44[1];\n        puVar9 = (uint *)*local_44;\n        if (iVar10 == 0) {\n          uVar15 = (uint)local_50._4_4_ & 0xff;\n          uVar16 = (uint)local_50._4_4_ >> 8;\n          uVar2 = (uint)local_50._4_4_ >> 0x10;\n          uVar4 = (uint)local_50._4_4_ >> 0x18;\n          local_50._4_4_ =\n               (uint *)(((((uint)puVar9 >> 0x10) << 0x18 | ((uint)puVar9 >> 0x18) << 0x10) >> 0x10)\n                       + (((uint)puVar9 & 0xff) << 8 | (uint)puVar9 >> 8 & 0xff) * 0x10000);\n          puVar9 = (uint *)(((uVar2 << 0x18 | uVar4 << 0x10) >> 0x10) +\n                           (uVar15 << 8 | uVar16 & 0xff) * 0x10000);\n        }\n        local_44 = local_44 + 2;\n        iVar10 = *param_1;\n        local_50._0_4_ = puVar9;\nLAB_002e3708:\n        local_58 = (*local_3c)(iVar10,puVar9,iVar8,local_30,local_40);\n        local_60._4_4_ = local_50._4_4_;\n        local_60._0_4_ = local_50._0_4_;\n        goto LAB_002e355c;\n      }\n      if (7 < uVar19) {\n        if (uVar19 == 10) {\n          local_60._0_4_ = (uint *)((int)local_44 + 1);\n          local_58 = (uint)*(byte *)local_44;\n          local_44 = (uint *)((int)local_60._0_4_ + local_58);\n          goto LAB_002e355c;\n        }\n        if (uVar19 < 0xb) {\n          if (uVar19 != 8) {\n            if (uVar19 != 9) {\n              return 0;\n            }\nLAB_002e32bc:\n            uVar15 = (uint)*(byte *)local_44;\n            pbVar14 = (byte *)((int)local_44 + 1);\n            if ((char)*(byte *)local_44 < '\0') {\n              (*(code *)PTR_read_unsigned_LEB_128_x_004c2980)(pbVar14,&local_48);\n              pbVar14 = (byte *)((int)local_44 + local_48);\n              uVar15 = extraout_v1_00;\n            }\n            else {\n              local_48 = 1;\n            }\n            uVar26 = CONCAT44(pbVar14,local_60._4_4_);\n            local_58 = uVar15;\n            local_44 = (uint *)((int)local_44 + uVar15 + local_48);\n            goto LAB_002e382c;\n          }\n          local_60._0_4_ = local_44;\n          local_30 = local_44;\n          local_48 = (*(code *)PTR_strlen_004c5b9c)(local_44);\n          uVar26 = CONCAT44(local_60._0_4_,local_60._4_4_);\n          local_44 = (uint *)((int)local_30 + local_48 + 1);\n          uVar7 = CONCAT44(local_60._0_4_,local_60._4_4_);\n          if (uVar22 == 0x31) goto LAB_002e313c;\n          if (0x31 < uVar22) {\n            if ((uVar22 != 0x6e) &&\n               (uVar7 = CONCAT44(local_60._0_4_,local_60._4_4_), uVar22 != 0x2007))\n            goto LAB_002e313c;\n            param_1[0x12] = (int)local_30;\n            uVar7 = uVar26;\n            goto LAB_002e313c;\n          }\nLAB_002e3118:\n          uVar7 = uVar26;\n          if (uVar22 == 1) goto LAB_002e313c;\njoined_r0x002e3124:\n          uVar7 = uVar26;\n          if (uVar22 != 3) goto LAB_002e313c;\n          local_60._0_4_ = (uint *)(uVar26 >> 0x20);\n          if (uVar19 == 8) {\n            param_1[0xf] = (int)local_60._0_4_;\n            goto LAB_002e313c;\n          }\n          if (uVar19 != 0xe) goto LAB_002e313c;\n          goto LAB_002e3284;\n        }\n        if (uVar19 < 0xd) {\n          uVar26 = (ulonglong)*(byte *)local_44;\n          local_44 = (uint *)((int)local_44 + 1);\nLAB_002e382c:\n          uVar7 = uVar26;\n          if (uVar22 == 0x31) goto LAB_002e313c;\n          if (uVar22 < 0x32) goto LAB_002e3118;\n        }\n        else {\n          bVar1 = *(byte *)local_44;\n          uVar15 = (uint)bVar1;\n          puVar9 = (uint *)((int)local_44 + 1);\n          if ((char)bVar1 < '\0') {\n            uVar26 = (*(code *)PTR_read_signed_LEB_128_x_004c297c)(puVar9,&local_48,uVar15);\n            puVar9 = (uint *)((int)local_44 + local_48);\n          }\n          else {\n            local_48 = 1;\n            uVar26 = (ulonglong)uVar15;\n            if ((bVar1 & 0x40) != 0) {\n              uVar26 = CONCAT44(0xffffffff,uVar15 | 0xffffff80);\n            }\n          }\n          local_44 = puVar9;\n          uVar7 = uVar26;\n          if (uVar22 == 0x31) goto LAB_002e313c;\n          if (uVar22 < 0x32) {\n            puVar9 = (uint *)param_1[0xc];\n            if (puVar9 != (uint *)param_1[0xd]) goto LAB_002e314c;\nLAB_002e2f98:\n            iVar17 = iVar17 + 8;\n            local_60 = uVar26;\n            std::\n            vector<gold::Dwarf_die::Attribute_value,std::allocator<gold::Dwarf_die::Attribute_value>>\n            ::_M_realloc_insert<gold::Dwarf_die::Attribute_value_const&>(local_38,puVar9,&local_68);\n            iVar8 = param_1[10];\n            if (iVar17 == iVar21) goto LAB_002e2fb8;\n            goto LAB_002e2db4;\n          }\n        }\n        if ((uVar22 != 0x6e) && (uVar7 = uVar26, uVar22 != 0x2007)) goto LAB_002e313c;\nLAB_002e3858:\n        local_60._0_4_ = (uint *)(uVar26 >> 0x20);\n        uVar7 = uVar26;\n        if (uVar19 == 8) {\n          param_1[0x12] = (int)local_60._0_4_;\n          goto LAB_002e313c;\n        }\n        if (uVar19 != 0xe) goto LAB_002e313c;\n        goto LAB_002e387c;\n      }\n      if (uVar19 == 4) {\n        pcVar25 = *(code **)(**(int **)(*param_1 + 8) + 0xc);\n        if (pcVar25 == (code *)PTR_is_big_endian_004c2950) {\n          iVar8 = (**(code **)(**(int **)(*param_1 + 8) + 0xe8))();\n        }\n        else {\n          iVar8 = (*pcVar25)();\n        }\n        local_58 = *local_44;\n        if (iVar8 == 0) {\n          local_58 = (((local_58 >> 0x10) << 0x18 | (local_58 >> 0x18) << 0x10) >> 0x10) +\n                     ((local_58 & 0xff) << 8 | local_58 >> 8 & 0xff) * 0x10000;\n        }\n        local_60._0_4_ = local_44 + 1;\n        local_44 = (uint *)((int)local_60._0_4_ + local_58);\nLAB_002e355c:\n        uVar26 = CONCAT44(local_60._0_4_,local_60._4_4_);\n        uVar7 = uVar26;\n        if (uVar22 == 0x31) goto LAB_002e313c;\n        if (uVar22 < 0x32) goto LAB_002e3118;\n        puVar9 = (uint *)param_1[0xc];\n      }\n      else {\n        if (4 < uVar19) {\n          if (uVar19 != 5) {\n            if (uVar19 != 6) {\n              return 0;\n            }\n            pcVar25 = *(code **)(**(int **)(*param_1 + 8) + 0xc);\n            if (pcVar25 == (code *)PTR_is_big_endian_004c2950) {\n              local_30 = puVar18;\n              iVar10 = (**(code **)(**(int **)(*param_1 + 8) + 0xe8))();\n            }\n            else {\n              local_30 = puVar18;\n              iVar10 = (*pcVar25)();\n            }\n            puVar9 = (uint *)*local_44;\n            if (iVar10 == 0) {\n              puVar9 = (uint *)(((((uint)puVar9 >> 0x10) << 0x18 | ((uint)puVar9 >> 0x18) << 0x10)\n                                >> 0x10) +\n                               (((uint)puVar9 & 0xff) << 8 | (uint)puVar9 >> 8 & 0xff) * 0x10000);\n            }\n            local_44 = local_44 + 1;\n            iVar10 = *param_1;\n            local_50._0_4_ = (uint *)0x0;\n            local_50._4_4_ = puVar9;\n            goto LAB_002e3708;\n          }\n          pcVar25 = *(code **)(**(int **)(*param_1 + 8) + 0xc);\n          if (pcVar25 == (code *)PTR_is_big_endian_004c2950) {\n            iVar8 = (**(code **)(**(int **)(*param_1 + 8) + 0xe8))();\n          }\n          else {\n            iVar8 = (*pcVar25)();\n          }\n          uVar6 = *(ushort *)local_44;\n          if (iVar8 == 0) {\n            uVar6 = CONCAT11(*(byte *)((int)local_44 + 1),*(byte *)local_44);\n          }\n          local_60._4_4_ = (uint *)(uint)uVar6;\n          local_44 = (uint *)((int)local_44 + 2);\n          local_60._0_4_ = (uint *)0x0;\n          goto LAB_002e355c;\n        }\n        if (uVar19 != 1) {\n          if (uVar19 != 3) {\n            return 0;\n          }\n          pcVar25 = *(code **)(**(int **)(*param_1 + 8) + 0xc);\n          if (pcVar25 == (code *)PTR_is_big_endian_004c2950) {\n            iVar8 = (**(code **)(**(int **)(*param_1 + 8) + 0xe8))();\n          }\n          else {\n            iVar8 = (*pcVar25)();\n          }\n          uVar6 = *(ushort *)local_44;\n          if (iVar8 == 0) {\n            uVar6 = CONCAT11(*(byte *)((int)local_44 + 1),*(byte *)local_44);\n          }\n          local_58 = (uint)uVar6;\n          local_60._0_4_ = (uint *)((int)local_44 + 2);\n          local_44 = (uint *)((int)local_60._0_4_ + local_58);\n          goto LAB_002e355c;\n        }\n        iVar8 = *param_1;\n        if (*(int *)(iVar8 + 0x4c) == 4) {\n          pcVar25 = *(code **)(**(int **)(iVar8 + 8) + 0xc);\n          if (pcVar25 == (code *)PTR_is_big_endian_004c2950) {\n            local_30 = puVar18;\n            iVar8 = (**(code **)(**(int **)(iVar8 + 8) + 0xe8))();\n          }\n          else {\n            local_30 = puVar18;\n            iVar8 = (*pcVar25)();\n          }\n          uVar15 = *local_44;\n          if (iVar8 == 0) {\n            uVar15 = (((uVar15 >> 0x10) << 0x18 | (uVar15 >> 0x18) << 0x10) >> 0x10) +\n                     ((uVar15 & 0xff) << 8 | uVar15 >> 8 & 0xff) * 0x10000;\n          }\n          local_44 = local_44 + 1;\n          uVar26 = (ulonglong)uVar15;\n        }\n        else {\n          local_30 = puVar18;\n          uVar26 = (*local_34)(iVar8,&local_44);\n        }\n        local_50 = uVar26;\n        local_58 = (*local_3c)(*param_1);\n        uVar26 = local_50;\n        if (uVar22 == 0x31) goto LAB_002e30bc;\n        if (uVar22 < 0x32) {\n          if (uVar22 != 1) goto joined_r0x002e3124;\n          goto LAB_002e39b4;\n        }\n        uVar7 = local_50;\n        if (uVar22 == 0x6e) goto LAB_002e313c;\n        if (uVar22 != 0x2007) goto LAB_002e339c;\n        puVar9 = (uint *)param_1[0xc];\n      }\n      while( true ) {\n        if (puVar9 == (uint *)param_1[0xd]) goto LAB_002e2f98;\nLAB_002e314c:\n        local_60._0_4_ = (uint *)(uVar26 >> 0x20);\n        local_60._4_4_ = (uint *)uVar26;\n        iVar17 = iVar17 + 8;\n        puVar9[1] = local_64;\n        puVar9[2] = (uint)local_60._0_4_;\n        *puVar9 = local_68;\n        puVar9[3] = (uint)local_60._4_4_;\n        puVar9[4] = local_58;\n        puVar9[5] = local_54;\n        param_1[0xc] = (int)(puVar9 + 6);\n        iVar8 = param_1[10];\n        local_60 = uVar26;\n        if (iVar17 == iVar21) goto LAB_002e2fb8;\n        puVar9 = (uint *)(*(int *)(iVar8 + 8) + iVar17);\n        uVar19 = puVar9[1];\n        uVar22 = *puVar9;\n        if (uVar19 != 0x16) goto LAB_002e2dd0;\nLAB_002e31a8:\n        uVar19 = (uint)*(byte *)local_44;\n        puVar9 = (uint *)((int)local_44 + 1);\n        if ((char)*(byte *)local_44 < '\0') {\n          local_60 = uVar26;\n          (*(code *)PTR_read_unsigned_LEB_128_x_004c2980)(puVar9,&local_48,uVar19);\n          puVar9 = (uint *)((int)local_44 + local_48);\n          uVar19 = extraout_v1;\n          uVar26 = local_60;\n        }\n        else {\n          local_48 = 1;\n        }\n        puVar11 = (uint *)((int)puVar9 - iVar20);\n        puVar18 = (uint *)((int)puVar11 + param_1[3]);\n        iVar8 = (uint)(puVar18 < puVar11) + ((int)puVar11 >> 0x1f) + param_1[2];\n        local_64 = uVar19;\n        local_44 = puVar9;\n        if (uVar19 != 0xe) break;\nLAB_002e31fc:\n        local_58 = 0;\n        iVar8 = *param_1;\n        local_68 = uVar22;\n        local_30 = puVar18;\n        local_60 = uVar26;\n        if (*(int *)(iVar8 + 0x48) == 4) {\n          pcVar25 = *(code **)(**(int **)(iVar8 + 8) + 0xc);\n          if (pcVar25 == (code *)PTR_is_big_endian_004c2950) {\n            iVar8 = (**(code **)(**(int **)(iVar8 + 8) + 0xe8))();\n          }\n          else {\n            iVar8 = (*pcVar25)();\n          }\n          uVar19 = *local_44;\n          if (iVar8 == 0) {\n            uVar19 = (((uVar19 >> 0x10) << 0x18 | (uVar19 >> 0x18) << 0x10) >> 0x10) +\n                     ((uVar19 & 0xff) << 8 | uVar19 >> 8 & 0xff) * 0x10000;\n          }\n          local_44 = local_44 + 1;\n          uVar26 = (ulonglong)uVar19;\n        }\n        else {\n          uVar26 = (*local_34)(iVar8,&local_44);\n        }\n        local_50 = uVar26;\n        local_58 = (*local_3c)(*param_1);\n        uVar7 = local_50;\n        if (uVar22 != 0x31) {\n          uVar26 = local_50;\n          if (uVar22 < 0x32) {\n            if ((uVar22 != 1) && (uVar22 == 3)) {\nLAB_002e3284:\n              param_1[0x16] = local_58;\n              *(ulonglong *)(param_1 + 0x10) = uVar26;\n              uVar7 = uVar26;\n            }\n          }\n          else {\n            if (uVar22 == 0x6e) {\nLAB_002e387c:\n              param_1[0x16] = local_58;\n            }\n            else {\n              if (uVar22 != 0x2007) goto LAB_002e313c;\n              param_1[0x16] = local_58;\n            }\n            *(ulonglong *)(param_1 + 0x14) = uVar26;\n            uVar7 = uVar26;\n          }\n        }\nLAB_002e313c:\n        puVar9 = (uint *)param_1[0xc];\n        uVar26 = uVar7;\n      }\n    } while( true );\n  }" ({ "{") (labeled_statement "LAB_002e2d90:\n    local_3c = (code *)PTR_lookup_reloc_004c2994;" (statement_identifier "LAB_002e2d90") (: ":") (expression_statement "local_3c = (code *)PTR_lookup_reloc_004c2994;" (assignment_expression "local_3c = (code *)PTR_lookup_reloc_004c2994" (identifier "local_3c") (= "=") (cast_expression "(code *)PTR_lookup_reloc_004c2994" (( "(") (type_descriptor "code *" (type_identifier "code") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "PTR_lookup_reloc_004c2994"))) (; ";"))) (expression_statement "iVar17 = 0;" (assignment_expression "iVar17 = 0" (identifier "iVar17") (= "=") (number_literal "0")) (; ";")) (expression_statement "local_34 = (code *)PTR_read_from_pointer<64>_004c2998;" (assignment_expression "local_34 = (code *)PTR_read_from_pointer<64>_004c2998" (identifier "local_34") (= "=") (binary_expression "(code *)PTR_read_from_pointer<64>_004c2998" (binary_expression "(code *)PTR_read_from_pointer<64" (cast_expression "(code *)PTR_read_from_pointer" (( "(") (type_descriptor "code *" (type_identifier "code") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "PTR_read_from_pointer")) (< "<") (number_literal "64")) (> ">") (identifier "_004c2998"))) (; ";")) (expression_statement "local_40 = &local_50;" (assignment_expression "local_40 = &local_50" (identifier "local_40") (= "=") (pointer_expression "&local_50" (& "&") (identifier "local_50"))) (; ";")) (labeled_statement "LAB_002e2db4:\n    puVar9 = (uint *)(*(int *)(iVar8 + 8) + iVar17);" (statement_identifier "LAB_002e2db4") (: ":") (expression_statement "puVar9 = (uint *)(*(int *)(iVar8 + 8) + iVar17);" (assignment_expression "puVar9 = (uint *)(*(int *)(iVar8 + 8) + iVar17)" (identifier "puVar9") (= "=") (cast_expression "(uint *)(*(int *)(iVar8 + 8) + iVar17)" (( "(") (type_descriptor "uint *" (type_identifier "uint") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(*(int *)(iVar8 + 8) + iVar17)" (( "(") (binary_expression "*(int *)(iVar8 + 8) + iVar17" (pointer_expression "*(int *)(iVar8 + 8)" (* "*") (cast_expression "(int *)(iVar8 + 8)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar8 + 8)" (( "(") (binary_expression "iVar8 + 8" (identifier "iVar8") (+ "+") (number_literal "8")) () ")")))) (+ "+") (identifier "iVar17")) () ")")))) (; ";"))) (expression_statement "uVar19 = puVar9[1];" (assignment_expression "uVar19 = puVar9[1]" (identifier "uVar19") (= "=") (subscript_expression "puVar9[1]" (identifier "puVar9") ([ "[") (number_literal "1") (] "]"))) (; ";")) (expression_statement "uVar22 = *puVar9;" (assignment_expression "uVar22 = *puVar9" (identifier "uVar22") (= "=") (pointer_expression "*puVar9" (* "*") (identifier "puVar9"))) (; ";")) (expression_statement "uVar26 = local_60;" (assignment_expression "uVar26 = local_60" (identifier "uVar26") (= "=") (identifier "local_60")) (; ";")) (if_statement "if (uVar19 == 0x16) goto LAB_002e31a8;" (if "if") (parenthesized_expression "(uVar19 == 0x16)" (( "(") (binary_expression "uVar19 == 0x16" (identifier "uVar19") (== "==") (number_literal "0x16")) () ")")) (goto_statement "goto LAB_002e31a8;" (goto "goto") (statement_identifier "LAB_002e31a8") (; ";"))) (labeled_statement "LAB_002e2dd0:\n    puVar9 = (uint *)((int)local_44 - iVar20);" (statement_identifier "LAB_002e2dd0") (: ":") (expression_statement "puVar9 = (uint *)((int)local_44 - iVar20);" (assignment_expression "puVar9 = (uint *)((int)local_44 - iVar20)" (identifier "puVar9") (= "=") (cast_expression "(uint *)((int)local_44 - iVar20)" (( "(") (type_descriptor "uint *" (type_identifier "uint") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "((int)local_44 - iVar20)" (( "(") (binary_expression "(int)local_44 - iVar20" (cast_expression "(int)local_44" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "local_44")) (- "-") (identifier "iVar20")) () ")")))) (; ";"))) (expression_statement "puVar18 = (uint *)((int)puVar9 + param_1[3]);" (assignment_expression "puVar18 = (uint *)((int)puVar9 + param_1[3])" (identifier "puVar18") (= "=") (cast_expression "(uint *)((int)puVar9 + param_1[3])" (( "(") (type_descriptor "uint *" (type_identifier "uint") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "((int)puVar9 + param_1[3])" (( "(") (binary_expression "(int)puVar9 + param_1[3]" (cast_expression "(int)puVar9" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "puVar9")) (+ "+") (subscript_expression "param_1[3]" (identifier "param_1") ([ "[") (number_literal "3") (] "]"))) () ")")))) (; ";")) (expression_statement "iVar8 = (uint)(puVar18 < puVar9) + ((int)puVar9 >> 0x1f) + param_1[2];" (assignment_expression "iVar8 = (uint)(puVar18 < puVar9) + ((int)puVar9 >> 0x1f) + param_1[2]" (identifier "iVar8") (= "=") (binary_expression "(uint)(puVar18 < puVar9) + ((int)puVar9 >> 0x1f) + param_1[2]" (binary_expression "(uint)(puVar18 < puVar9) + ((int)puVar9 >> 0x1f)" (call_expression "(uint)(puVar18 < puVar9)" (parenthesized_expression "(uint)" (( "(") (identifier "uint") () ")")) (argument_list "(puVar18 < puVar9)" (( "(") (binary_expression "puVar18 < puVar9" (identifier "puVar18") (< "<") (identifier "puVar9")) () ")"))) (+ "+") (parenthesized_expression "((int)puVar9 >> 0x1f)" (( "(") (binary_expression "(int)puVar9 >> 0x1f" (cast_expression "(int)puVar9" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "puVar9")) (>> ">>") (number_literal "0x1f")) () ")"))) (+ "+") (subscript_expression "param_1[2]" (identifier "param_1") ([ "[") (number_literal "2") (] "]")))) (; ";")) (expression_statement "local_64 = uVar19;" (assignment_expression "local_64 = uVar19" (identifier "local_64") (= "=") (identifier "uVar19")) (; ";")) (if_statement "if (uVar19 == 0xe) goto LAB_002e31fc;" (if "if") (parenthesized_expression "(uVar19 == 0xe)" (( "(") (binary_expression "uVar19 == 0xe" (identifier "uVar19") (== "==") (number_literal "0xe")) () ")")) (goto_statement "goto LAB_002e31fc;" (goto "goto") (statement_identifier "LAB_002e31fc") (; ";"))) (do_statement "do {\n      local_60._4_4_ = (uint *)uVar26;\n      local_58 = 0;\n      local_68 = uVar22;\n      local_64 = uVar19;\n      local_60 = uVar26;\n      if (0xe < uVar19) {\n        if (uVar19 == 0x15) {\n          if ((char)*(byte *)local_44 < '\0') {\n            uVar26 = (*(code *)PTR_read_unsigned_LEB_128_x_004c2980)\n                               ((uint *)((int)local_44 + 1),&local_48);\n            local_44 = (uint *)((int)local_44 + local_48);\n          }\n          else {\n            uVar26 = (ulonglong)*(byte *)local_44;\n            local_48 = 1;\n            local_44 = (uint *)((int)local_44 + 1);\n          }\n          goto joined_r0x002e3998;\n        }\n        if (0x15 < uVar19) {\n          if (uVar19 == 0x19) {\n            local_60._4_4_ = (uint *)0x1;\n            local_60._0_4_ = (uint *)0x0;\n          }\n          else {\n            if (uVar19 < 0x1a) {\n              if (uVar19 != 0x17) {\n                if (uVar19 != 0x18) {\n                  return 0;\n                }\n                goto LAB_002e32bc;\n              }\n              iVar8 = *param_1;\n              if (*(int *)(iVar8 + 0x48) == 4) {\n                pcVar25 = *(code **)(**(int **)(iVar8 + 8) + 0xc);\n                if (pcVar25 == (code *)PTR_is_big_endian_004c2950) {\n                  local_30 = puVar18;\n                  iVar8 = (**(code **)(**(int **)(iVar8 + 8) + 0xe8))();\n                }\n                else {\n                  local_30 = puVar18;\n                  iVar8 = (*pcVar25)();\n                }\n                uVar15 = *local_44;\n                if (iVar8 == 0) {\n                  uVar15 = (((uVar15 >> 0x10) << 0x18 | (uVar15 >> 0x18) << 0x10) >> 0x10) +\n                           ((uVar15 & 0xff) << 8 | uVar15 >> 8 & 0xff) * 0x10000;\n                }\n                local_44 = local_44 + 1;\n                uVar26 = (ulonglong)uVar15;\n              }\n              else {\n                local_30 = puVar18;\n                uVar26 = (*local_34)(iVar8,&local_44);\n              }\n              iVar8 = *param_1;\n              goto LAB_002e3970;\n            }\n            if (uVar19 != 0x20) {\n              if (uVar19 < 0x20) {\n                return 0;\n              }\n              if (1 < uVar19 - 0x1f01) {\n                return 0;\n              }\nLAB_002e34d8:\n              if ((char)*(byte *)local_44 < '\0') {\n                uVar26 = (*(code *)PTR_read_unsigned_LEB_128_x_004c2980)\n                                   ((uint *)((int)local_44 + 1),&local_48);\n                local_44 = (uint *)((int)local_44 + local_48);\n              }\n              else {\n                uVar26 = (ulonglong)*(byte *)local_44;\n                local_48 = 1;\n                local_44 = (uint *)((int)local_44 + 1);\n              }\n              goto LAB_002e382c;\n            }\n            pcVar25 = *(code **)(**(int **)(*param_1 + 8) + 0xc);\n            if (pcVar25 == (code *)PTR_is_big_endian_004c2950) {\n              iVar8 = (**(code **)(**(int **)(*param_1 + 8) + 0xe8))();\n            }\n            else {\n              iVar8 = (*pcVar25)();\n            }\n            local_60._4_4_ = (uint *)local_44[1];\n            local_60._0_4_ = (uint *)*local_44;\n            if (iVar8 == 0) {\n              uVar15 = (uint)local_60._4_4_ & 0xff;\n              uVar16 = (uint)local_60._4_4_ >> 8;\n              uVar2 = (uint)local_60._4_4_ >> 0x10;\n              uVar4 = (uint)local_60._4_4_ >> 0x18;\n              local_60._4_4_ =\n                   (uint *)(((((uint)local_60._0_4_ >> 0x10) << 0x18 |\n                             ((uint)local_60._0_4_ >> 0x18) << 0x10) >> 0x10) +\n                           (((uint)local_60._0_4_ & 0xff) << 8 | (uint)local_60._0_4_ >> 8 & 0xff) *\n                           0x10000);\n              local_60._0_4_ =\n                   (uint *)(((uVar2 << 0x18 | uVar4 << 0x10) >> 0x10) +\n                           (uVar15 << 8 | uVar16 & 0xff) * 0x10000);\n            }\n            local_44 = local_44 + 2;\n          }\n          uVar7 = CONCAT44(local_60._0_4_,local_60._4_4_);\n          if (uVar22 == 0x6e) goto LAB_002e313c;\n          uVar7 = CONCAT44(local_60._0_4_,local_60._4_4_);\n          uVar26 = CONCAT44(local_60._0_4_,local_60._4_4_);\n          if (uVar22 == 0x2007) goto LAB_002e313c;\n          goto joined_r0x002e3124;\n        }\n        if (uVar19 == 0x11) {\n          puVar9 = (uint *)((int)local_44 + 1);\n          uVar15 = (uint)*(byte *)local_44;\n          uVar26 = (ulonglong)uVar15;\n          local_44 = puVar9;\n          if (uVar22 == 0x31) goto LAB_002e30bc;\n          if (0x31 < uVar22) {\n            uVar26 = (ulonglong)uVar15;\n            if ((uVar22 != 0x6e) && (uVar26 = (ulonglong)uVar15, uVar22 != 0x2007)) {\n              uVar7 = (ulonglong)uVar15;\n              if (uVar22 != 0x47) goto LAB_002e313c;\n              param_1[0x18] = 0;\n              param_1[0x19] = uVar15;\n              uVar7 = (ulonglong)uVar15;\n              goto LAB_002e313c;\n            }\n            goto LAB_002e3858;\n          }\n          if (uVar22 == 1) {\n            param_1[8] = 0;\n            param_1[9] = uVar15;\n            uVar7 = (ulonglong)uVar15;\n            goto LAB_002e313c;\n          }\n          goto joined_r0x002e3124;\n        }\n        if (uVar19 < 0x12) {\n          if (uVar19 == 0xf) goto LAB_002e34d8;\n          if (uVar19 != 0x10) {\n            return 0;\n          }\n          iVar10 = *param_1;\n          iVar8 = *(int *)(iVar10 + 0x48);\n          if (*(uint *)(iVar10 + 0x50) < 3) {\n            iVar8 = *(int *)(iVar10 + 0x4c);\n          }\n          if (iVar8 == 4) {\n            pcVar25 = *(code **)(**(int **)(iVar10 + 8) + 0xc);\n            if (pcVar25 == (code *)PTR_is_big_endian_004c2950) {\n              local_30 = puVar18;\n              iVar8 = (**(code **)(**(int **)(iVar10 + 8) + 0xe8))();\n            }\n            else {\n              local_30 = puVar18;\n              iVar8 = (*pcVar25)();\n            }\n            uVar15 = *local_44;\n            if (iVar8 == 0) {\n              uVar15 = (((uVar15 >> 0x10) << 0x18 | (uVar15 >> 0x18) << 0x10) >> 0x10) +\n                       ((uVar15 & 0xff) << 8 | uVar15 >> 8 & 0xff) * 0x10000;\n            }\n            local_44 = local_44 + 1;\n            uVar26 = (ulonglong)uVar15;\n          }\n          else {\n            local_30 = puVar18;\n            uVar26 = (*local_34)(iVar10,&local_44);\n          }\n          local_50 = uVar26;\n          local_58 = (*local_3c)(*param_1);\n          uVar26 = local_50;\n        }\n        else {\n          if (uVar19 == 0x13) {\n            pcVar25 = *(code **)(**(int **)(*param_1 + 8) + 0xc);\n            if (pcVar25 == (code *)PTR_is_big_endian_004c2950) {\n              local_30 = puVar18;\n              iVar8 = (**(code **)(**(int **)(*param_1 + 8) + 0xe8))();\n            }\n            else {\n              local_30 = puVar18;\n              iVar8 = (*pcVar25)();\n            }\n            uVar15 = *local_44;\n            if (iVar8 == 0) {\n              uVar15 = (((uVar15 >> 0x10) << 0x18 | (uVar15 >> 0x18) << 0x10) >> 0x10) +\n                       ((uVar15 & 0xff) << 8 | uVar15 >> 8 & 0xff) * 0x10000;\n            }\n            local_44 = local_44 + 1;\n            iVar8 = *param_1;\n            uVar26 = (ulonglong)uVar15;\n          }\n          else {\n            if (uVar19 < 0x14) {\n              pcVar25 = *(code **)(**(int **)(*param_1 + 8) + 0xc);\n              if (pcVar25 == (code *)PTR_is_big_endian_004c2950) {\n                iVar8 = (**(code **)(**(int **)(*param_1 + 8) + 0xe8))();\n              }\n              else {\n                iVar8 = (*pcVar25)();\n              }\n              uVar6 = *(ushort *)local_44;\n              if (iVar8 == 0) {\n                uVar6 = CONCAT11(*(byte *)((int)local_44 + 1),*(byte *)local_44);\n              }\n              local_44 = (uint *)((int)local_44 + 2);\n              uVar26 = (ulonglong)uVar6;\n              goto joined_r0x002e3998;\n            }\n            pcVar25 = *(code **)(**(int **)(*param_1 + 8) + 0xc);\n            if (pcVar25 == (code *)PTR_is_big_endian_004c2950) {\n              local_30 = puVar18;\n              iVar8 = (**(code **)(**(int **)(*param_1 + 8) + 0xe8))();\n            }\n            else {\n              local_30 = puVar18;\n              iVar8 = (*pcVar25)();\n            }\n            uVar15 = local_44[1];\n            uVar16 = *local_44;\n            if (iVar8 == 0) {\n              uVar2 = uVar15 & 0xff;\n              uVar4 = uVar15 >> 8;\n              uVar3 = uVar15 >> 0x10;\n              uVar5 = uVar15 >> 0x18;\n              uVar15 = (((uVar16 >> 0x10) << 0x18 | (uVar16 >> 0x18) << 0x10) >> 0x10) +\n                       ((uVar16 & 0xff) << 8 | uVar16 >> 8 & 0xff) * 0x10000;\n              uVar16 = ((uVar3 << 0x18 | uVar5 << 0x10) >> 0x10) +\n                       (uVar2 << 8 | uVar4 & 0xff) * 0x10000;\n            }\n            uVar26 = CONCAT44(uVar16,uVar15);\n            local_44 = local_44 + 2;\n            iVar8 = *param_1;\n          }\nLAB_002e3970:\n          local_50 = uVar26;\n          local_58 = (*local_3c)(iVar8);\n          uVar26 = local_50;\n        }\njoined_r0x002e3998:\n        if (uVar22 == 0x31) {\nLAB_002e30bc:\n          *(ulonglong *)(param_1 + 0x1a) = uVar26;\n          uVar7 = uVar26;\n          goto LAB_002e313c;\n        }\n        if (uVar22 < 0x32) {\n          uVar7 = uVar26;\n          if (uVar22 != 1) goto LAB_002e313c;\nLAB_002e39b4:\n          uVar7 = uVar26;\n          if (local_58 != 0) goto LAB_002e313c;\n          *(ulonglong *)(param_1 + 8) = uVar26;\n          goto LAB_002e313c;\n        }\n        if ((uVar22 != 0x6e) && (uVar22 != 0x2007)) {\nLAB_002e339c:\n          uVar7 = uVar26;\n          if (uVar22 != 0x47) goto LAB_002e313c;\n          *(ulonglong *)(param_1 + 0x18) = uVar26;\n          goto LAB_002e313c;\n        }\n        goto LAB_002e3858;\n      }\n      if (uVar19 == 7) {\n        pcVar25 = *(code **)(**(int **)(*param_1 + 8) + 0xc);\n        if (pcVar25 == (code *)PTR_is_big_endian_004c2950) {\n          local_30 = puVar18;\n          iVar10 = (**(code **)(**(int **)(*param_1 + 8) + 0xe8))();\n        }\n        else {\n          local_30 = puVar18;\n          iVar10 = (*pcVar25)();\n        }\n        local_50._4_4_ = (uint *)local_44[1];\n        puVar9 = (uint *)*local_44;\n        if (iVar10 == 0) {\n          uVar15 = (uint)local_50._4_4_ & 0xff;\n          uVar16 = (uint)local_50._4_4_ >> 8;\n          uVar2 = (uint)local_50._4_4_ >> 0x10;\n          uVar4 = (uint)local_50._4_4_ >> 0x18;\n          local_50._4_4_ =\n               (uint *)(((((uint)puVar9 >> 0x10) << 0x18 | ((uint)puVar9 >> 0x18) << 0x10) >> 0x10)\n                       + (((uint)puVar9 & 0xff) << 8 | (uint)puVar9 >> 8 & 0xff) * 0x10000);\n          puVar9 = (uint *)(((uVar2 << 0x18 | uVar4 << 0x10) >> 0x10) +\n                           (uVar15 << 8 | uVar16 & 0xff) * 0x10000);\n        }\n        local_44 = local_44 + 2;\n        iVar10 = *param_1;\n        local_50._0_4_ = puVar9;\nLAB_002e3708:\n        local_58 = (*local_3c)(iVar10,puVar9,iVar8,local_30,local_40);\n        local_60._4_4_ = local_50._4_4_;\n        local_60._0_4_ = local_50._0_4_;\n        goto LAB_002e355c;\n      }\n      if (7 < uVar19) {\n        if (uVar19 == 10) {\n          local_60._0_4_ = (uint *)((int)local_44 + 1);\n          local_58 = (uint)*(byte *)local_44;\n          local_44 = (uint *)((int)local_60._0_4_ + local_58);\n          goto LAB_002e355c;\n        }\n        if (uVar19 < 0xb) {\n          if (uVar19 != 8) {\n            if (uVar19 != 9) {\n              return 0;\n            }\nLAB_002e32bc:\n            uVar15 = (uint)*(byte *)local_44;\n            pbVar14 = (byte *)((int)local_44 + 1);\n            if ((char)*(byte *)local_44 < '\0') {\n              (*(code *)PTR_read_unsigned_LEB_128_x_004c2980)(pbVar14,&local_48);\n              pbVar14 = (byte *)((int)local_44 + local_48);\n              uVar15 = extraout_v1_00;\n            }\n            else {\n              local_48 = 1;\n            }\n            uVar26 = CONCAT44(pbVar14,local_60._4_4_);\n            local_58 = uVar15;\n            local_44 = (uint *)((int)local_44 + uVar15 + local_48);\n            goto LAB_002e382c;\n          }\n          local_60._0_4_ = local_44;\n          local_30 = local_44;\n          local_48 = (*(code *)PTR_strlen_004c5b9c)(local_44);\n          uVar26 = CONCAT44(local_60._0_4_,local_60._4_4_);\n          local_44 = (uint *)((int)local_30 + local_48 + 1);\n          uVar7 = CONCAT44(local_60._0_4_,local_60._4_4_);\n          if (uVar22 == 0x31) goto LAB_002e313c;\n          if (0x31 < uVar22) {\n            if ((uVar22 != 0x6e) &&\n               (uVar7 = CONCAT44(local_60._0_4_,local_60._4_4_), uVar22 != 0x2007))\n            goto LAB_002e313c;\n            param_1[0x12] = (int)local_30;\n            uVar7 = uVar26;\n            goto LAB_002e313c;\n          }\nLAB_002e3118:\n          uVar7 = uVar26;\n          if (uVar22 == 1) goto LAB_002e313c;\njoined_r0x002e3124:\n          uVar7 = uVar26;\n          if (uVar22 != 3) goto LAB_002e313c;\n          local_60._0_4_ = (uint *)(uVar26 >> 0x20);\n          if (uVar19 == 8) {\n            param_1[0xf] = (int)local_60._0_4_;\n            goto LAB_002e313c;\n          }\n          if (uVar19 != 0xe) goto LAB_002e313c;\n          goto LAB_002e3284;\n        }\n        if (uVar19 < 0xd) {\n          uVar26 = (ulonglong)*(byte *)local_44;\n          local_44 = (uint *)((int)local_44 + 1);\nLAB_002e382c:\n          uVar7 = uVar26;\n          if (uVar22 == 0x31) goto LAB_002e313c;\n          if (uVar22 < 0x32) goto LAB_002e3118;\n        }\n        else {\n          bVar1 = *(byte *)local_44;\n          uVar15 = (uint)bVar1;\n          puVar9 = (uint *)((int)local_44 + 1);\n          if ((char)bVar1 < '\0') {\n            uVar26 = (*(code *)PTR_read_signed_LEB_128_x_004c297c)(puVar9,&local_48,uVar15);\n            puVar9 = (uint *)((int)local_44 + local_48);\n          }\n          else {\n            local_48 = 1;\n            uVar26 = (ulonglong)uVar15;\n            if ((bVar1 & 0x40) != 0) {\n              uVar26 = CONCAT44(0xffffffff,uVar15 | 0xffffff80);\n            }\n          }\n          local_44 = puVar9;\n          uVar7 = uVar26;\n          if (uVar22 == 0x31) goto LAB_002e313c;\n          if (uVar22 < 0x32) {\n            puVar9 = (uint *)param_1[0xc];\n            if (puVar9 != (uint *)param_1[0xd]) goto LAB_002e314c;\nLAB_002e2f98:\n            iVar17 = iVar17 + 8;\n            local_60 = uVar26;\n            std::\n            vector<gold::Dwarf_die::Attribute_value,std::allocator<gold::Dwarf_die::Attribute_value>>\n            ::_M_realloc_insert<gold::Dwarf_die::Attribute_value_const&>(local_38,puVar9,&local_68);\n            iVar8 = param_1[10];\n            if (iVar17 == iVar21) goto LAB_002e2fb8;\n            goto LAB_002e2db4;\n          }\n        }\n        if ((uVar22 != 0x6e) && (uVar7 = uVar26, uVar22 != 0x2007)) goto LAB_002e313c;\nLAB_002e3858:\n        local_60._0_4_ = (uint *)(uVar26 >> 0x20);\n        uVar7 = uVar26;\n        if (uVar19 == 8) {\n          param_1[0x12] = (int)local_60._0_4_;\n          goto LAB_002e313c;\n        }\n        if (uVar19 != 0xe) goto LAB_002e313c;\n        goto LAB_002e387c;\n      }\n      if (uVar19 == 4) {\n        pcVar25 = *(code **)(**(int **)(*param_1 + 8) + 0xc);\n        if (pcVar25 == (code *)PTR_is_big_endian_004c2950) {\n          iVar8 = (**(code **)(**(int **)(*param_1 + 8) + 0xe8))();\n        }\n        else {\n          iVar8 = (*pcVar25)();\n        }\n        local_58 = *local_44;\n        if (iVar8 == 0) {\n          local_58 = (((local_58 >> 0x10) << 0x18 | (local_58 >> 0x18) << 0x10) >> 0x10) +\n                     ((local_58 & 0xff) << 8 | local_58 >> 8 & 0xff) * 0x10000;\n        }\n        local_60._0_4_ = local_44 + 1;\n        local_44 = (uint *)((int)local_60._0_4_ + local_58);\nLAB_002e355c:\n        uVar26 = CONCAT44(local_60._0_4_,local_60._4_4_);\n        uVar7 = uVar26;\n        if (uVar22 == 0x31) goto LAB_002e313c;\n        if (uVar22 < 0x32) goto LAB_002e3118;\n        puVar9 = (uint *)param_1[0xc];\n      }\n      else {\n        if (4 < uVar19) {\n          if (uVar19 != 5) {\n            if (uVar19 != 6) {\n              return 0;\n            }\n            pcVar25 = *(code **)(**(int **)(*param_1 + 8) + 0xc);\n            if (pcVar25 == (code *)PTR_is_big_endian_004c2950) {\n              local_30 = puVar18;\n              iVar10 = (**(code **)(**(int **)(*param_1 + 8) + 0xe8))();\n            }\n            else {\n              local_30 = puVar18;\n              iVar10 = (*pcVar25)();\n            }\n            puVar9 = (uint *)*local_44;\n            if (iVar10 == 0) {\n              puVar9 = (uint *)(((((uint)puVar9 >> 0x10) << 0x18 | ((uint)puVar9 >> 0x18) << 0x10)\n                                >> 0x10) +\n                               (((uint)puVar9 & 0xff) << 8 | (uint)puVar9 >> 8 & 0xff) * 0x10000);\n            }\n            local_44 = local_44 + 1;\n            iVar10 = *param_1;\n            local_50._0_4_ = (uint *)0x0;\n            local_50._4_4_ = puVar9;\n            goto LAB_002e3708;\n          }\n          pcVar25 = *(code **)(**(int **)(*param_1 + 8) + 0xc);\n          if (pcVar25 == (code *)PTR_is_big_endian_004c2950) {\n            iVar8 = (**(code **)(**(int **)(*param_1 + 8) + 0xe8))();\n          }\n          else {\n            iVar8 = (*pcVar25)();\n          }\n          uVar6 = *(ushort *)local_44;\n          if (iVar8 == 0) {\n            uVar6 = CONCAT11(*(byte *)((int)local_44 + 1),*(byte *)local_44);\n          }\n          local_60._4_4_ = (uint *)(uint)uVar6;\n          local_44 = (uint *)((int)local_44 + 2);\n          local_60._0_4_ = (uint *)0x0;\n          goto LAB_002e355c;\n        }\n        if (uVar19 != 1) {\n          if (uVar19 != 3) {\n            return 0;\n          }\n          pcVar25 = *(code **)(**(int **)(*param_1 + 8) + 0xc);\n          if (pcVar25 == (code *)PTR_is_big_endian_004c2950) {\n            iVar8 = (**(code **)(**(int **)(*param_1 + 8) + 0xe8))();\n          }\n          else {\n            iVar8 = (*pcVar25)();\n          }\n          uVar6 = *(ushort *)local_44;\n          if (iVar8 == 0) {\n            uVar6 = CONCAT11(*(byte *)((int)local_44 + 1),*(byte *)local_44);\n          }\n          local_58 = (uint)uVar6;\n          local_60._0_4_ = (uint *)((int)local_44 + 2);\n          local_44 = (uint *)((int)local_60._0_4_ + local_58);\n          goto LAB_002e355c;\n        }\n        iVar8 = *param_1;\n        if (*(int *)(iVar8 + 0x4c) == 4) {\n          pcVar25 = *(code **)(**(int **)(iVar8 + 8) + 0xc);\n          if (pcVar25 == (code *)PTR_is_big_endian_004c2950) {\n            local_30 = puVar18;\n            iVar8 = (**(code **)(**(int **)(iVar8 + 8) + 0xe8))();\n          }\n          else {\n            local_30 = puVar18;\n            iVar8 = (*pcVar25)();\n          }\n          uVar15 = *local_44;\n          if (iVar8 == 0) {\n            uVar15 = (((uVar15 >> 0x10) << 0x18 | (uVar15 >> 0x18) << 0x10) >> 0x10) +\n                     ((uVar15 & 0xff) << 8 | uVar15 >> 8 & 0xff) * 0x10000;\n          }\n          local_44 = local_44 + 1;\n          uVar26 = (ulonglong)uVar15;\n        }\n        else {\n          local_30 = puVar18;\n          uVar26 = (*local_34)(iVar8,&local_44);\n        }\n        local_50 = uVar26;\n        local_58 = (*local_3c)(*param_1);\n        uVar26 = local_50;\n        if (uVar22 == 0x31) goto LAB_002e30bc;\n        if (uVar22 < 0x32) {\n          if (uVar22 != 1) goto joined_r0x002e3124;\n          goto LAB_002e39b4;\n        }\n        uVar7 = local_50;\n        if (uVar22 == 0x6e) goto LAB_002e313c;\n        if (uVar22 != 0x2007) goto LAB_002e339c;\n        puVar9 = (uint *)param_1[0xc];\n      }\n      while( true ) {\n        if (puVar9 == (uint *)param_1[0xd]) goto LAB_002e2f98;\nLAB_002e314c:\n        local_60._0_4_ = (uint *)(uVar26 >> 0x20);\n        local_60._4_4_ = (uint *)uVar26;\n        iVar17 = iVar17 + 8;\n        puVar9[1] = local_64;\n        puVar9[2] = (uint)local_60._0_4_;\n        *puVar9 = local_68;\n        puVar9[3] = (uint)local_60._4_4_;\n        puVar9[4] = local_58;\n        puVar9[5] = local_54;\n        param_1[0xc] = (int)(puVar9 + 6);\n        iVar8 = param_1[10];\n        local_60 = uVar26;\n        if (iVar17 == iVar21) goto LAB_002e2fb8;\n        puVar9 = (uint *)(*(int *)(iVar8 + 8) + iVar17);\n        uVar19 = puVar9[1];\n        uVar22 = *puVar9;\n        if (uVar19 != 0x16) goto LAB_002e2dd0;\nLAB_002e31a8:\n        uVar19 = (uint)*(byte *)local_44;\n        puVar9 = (uint *)((int)local_44 + 1);\n        if ((char)*(byte *)local_44 < '\0') {\n          local_60 = uVar26;\n          (*(code *)PTR_read_unsigned_LEB_128_x_004c2980)(puVar9,&local_48,uVar19);\n          puVar9 = (uint *)((int)local_44 + local_48);\n          uVar19 = extraout_v1;\n          uVar26 = local_60;\n        }\n        else {\n          local_48 = 1;\n        }\n        puVar11 = (uint *)((int)puVar9 - iVar20);\n        puVar18 = (uint *)((int)puVar11 + param_1[3]);\n        iVar8 = (uint)(puVar18 < puVar11) + ((int)puVar11 >> 0x1f) + param_1[2];\n        local_64 = uVar19;\n        local_44 = puVar9;\n        if (uVar19 != 0xe) break;\nLAB_002e31fc:\n        local_58 = 0;\n        iVar8 = *param_1;\n        local_68 = uVar22;\n        local_30 = puVar18;\n        local_60 = uVar26;\n        if (*(int *)(iVar8 + 0x48) == 4) {\n          pcVar25 = *(code **)(**(int **)(iVar8 + 8) + 0xc);\n          if (pcVar25 == (code *)PTR_is_big_endian_004c2950) {\n            iVar8 = (**(code **)(**(int **)(iVar8 + 8) + 0xe8))();\n          }\n          else {\n            iVar8 = (*pcVar25)();\n          }\n          uVar19 = *local_44;\n          if (iVar8 == 0) {\n            uVar19 = (((uVar19 >> 0x10) << 0x18 | (uVar19 >> 0x18) << 0x10) >> 0x10) +\n                     ((uVar19 & 0xff) << 8 | uVar19 >> 8 & 0xff) * 0x10000;\n          }\n          local_44 = local_44 + 1;\n          uVar26 = (ulonglong)uVar19;\n        }\n        else {\n          uVar26 = (*local_34)(iVar8,&local_44);\n        }\n        local_50 = uVar26;\n        local_58 = (*local_3c)(*param_1);\n        uVar7 = local_50;\n        if (uVar22 != 0x31) {\n          uVar26 = local_50;\n          if (uVar22 < 0x32) {\n            if ((uVar22 != 1) && (uVar22 == 3)) {\nLAB_002e3284:\n              param_1[0x16] = local_58;\n              *(ulonglong *)(param_1 + 0x10) = uVar26;\n              uVar7 = uVar26;\n            }\n          }\n          else {\n            if (uVar22 == 0x6e) {\nLAB_002e387c:\n              param_1[0x16] = local_58;\n            }\n            else {\n              if (uVar22 != 0x2007) goto LAB_002e313c;\n              param_1[0x16] = local_58;\n            }\n            *(ulonglong *)(param_1 + 0x14) = uVar26;\n            uVar7 = uVar26;\n          }\n        }\nLAB_002e313c:\n        puVar9 = (uint *)param_1[0xc];\n        uVar26 = uVar7;\n      }\n    } while( true );" (do "do") (compound_statement "{\n      local_60._4_4_ = (uint *)uVar26;\n      local_58 = 0;\n      local_68 = uVar22;\n      local_64 = uVar19;\n      local_60 = uVar26;\n      if (0xe < uVar19) {\n        if (uVar19 == 0x15) {\n          if ((char)*(byte *)local_44 < '\0') {\n            uVar26 = (*(code *)PTR_read_unsigned_LEB_128_x_004c2980)\n                               ((uint *)((int)local_44 + 1),&local_48);\n            local_44 = (uint *)((int)local_44 + local_48);\n          }\n          else {\n            uVar26 = (ulonglong)*(byte *)local_44;\n            local_48 = 1;\n            local_44 = (uint *)((int)local_44 + 1);\n          }\n          goto joined_r0x002e3998;\n        }\n        if (0x15 < uVar19) {\n          if (uVar19 == 0x19) {\n            local_60._4_4_ = (uint *)0x1;\n            local_60._0_4_ = (uint *)0x0;\n          }\n          else {\n            if (uVar19 < 0x1a) {\n              if (uVar19 != 0x17) {\n                if (uVar19 != 0x18) {\n                  return 0;\n                }\n                goto LAB_002e32bc;\n              }\n              iVar8 = *param_1;\n              if (*(int *)(iVar8 + 0x48) == 4) {\n                pcVar25 = *(code **)(**(int **)(iVar8 + 8) + 0xc);\n                if (pcVar25 == (code *)PTR_is_big_endian_004c2950) {\n                  local_30 = puVar18;\n                  iVar8 = (**(code **)(**(int **)(iVar8 + 8) + 0xe8))();\n                }\n                else {\n                  local_30 = puVar18;\n                  iVar8 = (*pcVar25)();\n                }\n                uVar15 = *local_44;\n                if (iVar8 == 0) {\n                  uVar15 = (((uVar15 >> 0x10) << 0x18 | (uVar15 >> 0x18) << 0x10) >> 0x10) +\n                           ((uVar15 & 0xff) << 8 | uVar15 >> 8 & 0xff) * 0x10000;\n                }\n                local_44 = local_44 + 1;\n                uVar26 = (ulonglong)uVar15;\n              }\n              else {\n                local_30 = puVar18;\n                uVar26 = (*local_34)(iVar8,&local_44);\n              }\n              iVar8 = *param_1;\n              goto LAB_002e3970;\n            }\n            if (uVar19 != 0x20) {\n              if (uVar19 < 0x20) {\n                return 0;\n              }\n              if (1 < uVar19 - 0x1f01) {\n                return 0;\n              }\nLAB_002e34d8:\n              if ((char)*(byte *)local_44 < '\0') {\n                uVar26 = (*(code *)PTR_read_unsigned_LEB_128_x_004c2980)\n                                   ((uint *)((int)local_44 + 1),&local_48);\n                local_44 = (uint *)((int)local_44 + local_48);\n              }\n              else {\n                uVar26 = (ulonglong)*(byte *)local_44;\n                local_48 = 1;\n                local_44 = (uint *)((int)local_44 + 1);\n              }\n              goto LAB_002e382c;\n            }\n            pcVar25 = *(code **)(**(int **)(*param_1 + 8) + 0xc);\n            if (pcVar25 == (code *)PTR_is_big_endian_004c2950) {\n              iVar8 = (**(code **)(**(int **)(*param_1 + 8) + 0xe8))();\n            }\n            else {\n              iVar8 = (*pcVar25)();\n            }\n            local_60._4_4_ = (uint *)local_44[1];\n            local_60._0_4_ = (uint *)*local_44;\n            if (iVar8 == 0) {\n              uVar15 = (uint)local_60._4_4_ & 0xff;\n              uVar16 = (uint)local_60._4_4_ >> 8;\n              uVar2 = (uint)local_60._4_4_ >> 0x10;\n              uVar4 = (uint)local_60._4_4_ >> 0x18;\n              local_60._4_4_ =\n                   (uint *)(((((uint)local_60._0_4_ >> 0x10) << 0x18 |\n                             ((uint)local_60._0_4_ >> 0x18) << 0x10) >> 0x10) +\n                           (((uint)local_60._0_4_ & 0xff) << 8 | (uint)local_60._0_4_ >> 8 & 0xff) *\n                           0x10000);\n              local_60._0_4_ =\n                   (uint *)(((uVar2 << 0x18 | uVar4 << 0x10) >> 0x10) +\n                           (uVar15 << 8 | uVar16 & 0xff) * 0x10000);\n            }\n            local_44 = local_44 + 2;\n          }\n          uVar7 = CONCAT44(local_60._0_4_,local_60._4_4_);\n          if (uVar22 == 0x6e) goto LAB_002e313c;\n          uVar7 = CONCAT44(local_60._0_4_,local_60._4_4_);\n          uVar26 = CONCAT44(local_60._0_4_,local_60._4_4_);\n          if (uVar22 == 0x2007) goto LAB_002e313c;\n          goto joined_r0x002e3124;\n        }\n        if (uVar19 == 0x11) {\n          puVar9 = (uint *)((int)local_44 + 1);\n          uVar15 = (uint)*(byte *)local_44;\n          uVar26 = (ulonglong)uVar15;\n          local_44 = puVar9;\n          if (uVar22 == 0x31) goto LAB_002e30bc;\n          if (0x31 < uVar22) {\n            uVar26 = (ulonglong)uVar15;\n            if ((uVar22 != 0x6e) && (uVar26 = (ulonglong)uVar15, uVar22 != 0x2007)) {\n              uVar7 = (ulonglong)uVar15;\n              if (uVar22 != 0x47) goto LAB_002e313c;\n              param_1[0x18] = 0;\n              param_1[0x19] = uVar15;\n              uVar7 = (ulonglong)uVar15;\n              goto LAB_002e313c;\n            }\n            goto LAB_002e3858;\n          }\n          if (uVar22 == 1) {\n            param_1[8] = 0;\n            param_1[9] = uVar15;\n            uVar7 = (ulonglong)uVar15;\n            goto LAB_002e313c;\n          }\n          goto joined_r0x002e3124;\n        }\n        if (uVar19 < 0x12) {\n          if (uVar19 == 0xf) goto LAB_002e34d8;\n          if (uVar19 != 0x10) {\n            return 0;\n          }\n          iVar10 = *param_1;\n          iVar8 = *(int *)(iVar10 + 0x48);\n          if (*(uint *)(iVar10 + 0x50) < 3) {\n            iVar8 = *(int *)(iVar10 + 0x4c);\n          }\n          if (iVar8 == 4) {\n            pcVar25 = *(code **)(**(int **)(iVar10 + 8) + 0xc);\n            if (pcVar25 == (code *)PTR_is_big_endian_004c2950) {\n              local_30 = puVar18;\n              iVar8 = (**(code **)(**(int **)(iVar10 + 8) + 0xe8))();\n            }\n            else {\n              local_30 = puVar18;\n              iVar8 = (*pcVar25)();\n            }\n            uVar15 = *local_44;\n            if (iVar8 == 0) {\n              uVar15 = (((uVar15 >> 0x10) << 0x18 | (uVar15 >> 0x18) << 0x10) >> 0x10) +\n                       ((uVar15 & 0xff) << 8 | uVar15 >> 8 & 0xff) * 0x10000;\n            }\n            local_44 = local_44 + 1;\n            uVar26 = (ulonglong)uVar15;\n          }\n          else {\n            local_30 = puVar18;\n            uVar26 = (*local_34)(iVar10,&local_44);\n          }\n          local_50 = uVar26;\n          local_58 = (*local_3c)(*param_1);\n          uVar26 = local_50;\n        }\n        else {\n          if (uVar19 == 0x13) {\n            pcVar25 = *(code **)(**(int **)(*param_1 + 8) + 0xc);\n            if (pcVar25 == (code *)PTR_is_big_endian_004c2950) {\n              local_30 = puVar18;\n              iVar8 = (**(code **)(**(int **)(*param_1 + 8) + 0xe8))();\n            }\n            else {\n              local_30 = puVar18;\n              iVar8 = (*pcVar25)();\n            }\n            uVar15 = *local_44;\n            if (iVar8 == 0) {\n              uVar15 = (((uVar15 >> 0x10) << 0x18 | (uVar15 >> 0x18) << 0x10) >> 0x10) +\n                       ((uVar15 & 0xff) << 8 | uVar15 >> 8 & 0xff) * 0x10000;\n            }\n            local_44 = local_44 + 1;\n            iVar8 = *param_1;\n            uVar26 = (ulonglong)uVar15;\n          }\n          else {\n            if (uVar19 < 0x14) {\n              pcVar25 = *(code **)(**(int **)(*param_1 + 8) + 0xc);\n              if (pcVar25 == (code *)PTR_is_big_endian_004c2950) {\n                iVar8 = (**(code **)(**(int **)(*param_1 + 8) + 0xe8))();\n              }\n              else {\n                iVar8 = (*pcVar25)();\n              }\n              uVar6 = *(ushort *)local_44;\n              if (iVar8 == 0) {\n                uVar6 = CONCAT11(*(byte *)((int)local_44 + 1),*(byte *)local_44);\n              }\n              local_44 = (uint *)((int)local_44 + 2);\n              uVar26 = (ulonglong)uVar6;\n              goto joined_r0x002e3998;\n            }\n            pcVar25 = *(code **)(**(int **)(*param_1 + 8) + 0xc);\n            if (pcVar25 == (code *)PTR_is_big_endian_004c2950) {\n              local_30 = puVar18;\n              iVar8 = (**(code **)(**(int **)(*param_1 + 8) + 0xe8))();\n            }\n            else {\n              local_30 = puVar18;\n              iVar8 = (*pcVar25)();\n            }\n            uVar15 = local_44[1];\n            uVar16 = *local_44;\n            if (iVar8 == 0) {\n              uVar2 = uVar15 & 0xff;\n              uVar4 = uVar15 >> 8;\n              uVar3 = uVar15 >> 0x10;\n              uVar5 = uVar15 >> 0x18;\n              uVar15 = (((uVar16 >> 0x10) << 0x18 | (uVar16 >> 0x18) << 0x10) >> 0x10) +\n                       ((uVar16 & 0xff) << 8 | uVar16 >> 8 & 0xff) * 0x10000;\n              uVar16 = ((uVar3 << 0x18 | uVar5 << 0x10) >> 0x10) +\n                       (uVar2 << 8 | uVar4 & 0xff) * 0x10000;\n            }\n            uVar26 = CONCAT44(uVar16,uVar15);\n            local_44 = local_44 + 2;\n            iVar8 = *param_1;\n          }\nLAB_002e3970:\n          local_50 = uVar26;\n          local_58 = (*local_3c)(iVar8);\n          uVar26 = local_50;\n        }\njoined_r0x002e3998:\n        if (uVar22 == 0x31) {\nLAB_002e30bc:\n          *(ulonglong *)(param_1 + 0x1a) = uVar26;\n          uVar7 = uVar26;\n          goto LAB_002e313c;\n        }\n        if (uVar22 < 0x32) {\n          uVar7 = uVar26;\n          if (uVar22 != 1) goto LAB_002e313c;\nLAB_002e39b4:\n          uVar7 = uVar26;\n          if (local_58 != 0) goto LAB_002e313c;\n          *(ulonglong *)(param_1 + 8) = uVar26;\n          goto LAB_002e313c;\n        }\n        if ((uVar22 != 0x6e) && (uVar22 != 0x2007)) {\nLAB_002e339c:\n          uVar7 = uVar26;\n          if (uVar22 != 0x47) goto LAB_002e313c;\n          *(ulonglong *)(param_1 + 0x18) = uVar26;\n          goto LAB_002e313c;\n        }\n        goto LAB_002e3858;\n      }\n      if (uVar19 == 7) {\n        pcVar25 = *(code **)(**(int **)(*param_1 + 8) + 0xc);\n        if (pcVar25 == (code *)PTR_is_big_endian_004c2950) {\n          local_30 = puVar18;\n          iVar10 = (**(code **)(**(int **)(*param_1 + 8) + 0xe8))();\n        }\n        else {\n          local_30 = puVar18;\n          iVar10 = (*pcVar25)();\n        }\n        local_50._4_4_ = (uint *)local_44[1];\n        puVar9 = (uint *)*local_44;\n        if (iVar10 == 0) {\n          uVar15 = (uint)local_50._4_4_ & 0xff;\n          uVar16 = (uint)local_50._4_4_ >> 8;\n          uVar2 = (uint)local_50._4_4_ >> 0x10;\n          uVar4 = (uint)local_50._4_4_ >> 0x18;\n          local_50._4_4_ =\n               (uint *)(((((uint)puVar9 >> 0x10) << 0x18 | ((uint)puVar9 >> 0x18) << 0x10) >> 0x10)\n                       + (((uint)puVar9 & 0xff) << 8 | (uint)puVar9 >> 8 & 0xff) * 0x10000);\n          puVar9 = (uint *)(((uVar2 << 0x18 | uVar4 << 0x10) >> 0x10) +\n                           (uVar15 << 8 | uVar16 & 0xff) * 0x10000);\n        }\n        local_44 = local_44 + 2;\n        iVar10 = *param_1;\n        local_50._0_4_ = puVar9;\nLAB_002e3708:\n        local_58 = (*local_3c)(iVar10,puVar9,iVar8,local_30,local_40);\n        local_60._4_4_ = local_50._4_4_;\n        local_60._0_4_ = local_50._0_4_;\n        goto LAB_002e355c;\n      }\n      if (7 < uVar19) {\n        if (uVar19 == 10) {\n          local_60._0_4_ = (uint *)((int)local_44 + 1);\n          local_58 = (uint)*(byte *)local_44;\n          local_44 = (uint *)((int)local_60._0_4_ + local_58);\n          goto LAB_002e355c;\n        }\n        if (uVar19 < 0xb) {\n          if (uVar19 != 8) {\n            if (uVar19 != 9) {\n              return 0;\n            }\nLAB_002e32bc:\n            uVar15 = (uint)*(byte *)local_44;\n            pbVar14 = (byte *)((int)local_44 + 1);\n            if ((char)*(byte *)local_44 < '\0') {\n              (*(code *)PTR_read_unsigned_LEB_128_x_004c2980)(pbVar14,&local_48);\n              pbVar14 = (byte *)((int)local_44 + local_48);\n              uVar15 = extraout_v1_00;\n            }\n            else {\n              local_48 = 1;\n            }\n            uVar26 = CONCAT44(pbVar14,local_60._4_4_);\n            local_58 = uVar15;\n            local_44 = (uint *)((int)local_44 + uVar15 + local_48);\n            goto LAB_002e382c;\n          }\n          local_60._0_4_ = local_44;\n          local_30 = local_44;\n          local_48 = (*(code *)PTR_strlen_004c5b9c)(local_44);\n          uVar26 = CONCAT44(local_60._0_4_,local_60._4_4_);\n          local_44 = (uint *)((int)local_30 + local_48 + 1);\n          uVar7 = CONCAT44(local_60._0_4_,local_60._4_4_);\n          if (uVar22 == 0x31) goto LAB_002e313c;\n          if (0x31 < uVar22) {\n            if ((uVar22 != 0x6e) &&\n               (uVar7 = CONCAT44(local_60._0_4_,local_60._4_4_), uVar22 != 0x2007))\n            goto LAB_002e313c;\n            param_1[0x12] = (int)local_30;\n            uVar7 = uVar26;\n            goto LAB_002e313c;\n          }\nLAB_002e3118:\n          uVar7 = uVar26;\n          if (uVar22 == 1) goto LAB_002e313c;\njoined_r0x002e3124:\n          uVar7 = uVar26;\n          if (uVar22 != 3) goto LAB_002e313c;\n          local_60._0_4_ = (uint *)(uVar26 >> 0x20);\n          if (uVar19 == 8) {\n            param_1[0xf] = (int)local_60._0_4_;\n            goto LAB_002e313c;\n          }\n          if (uVar19 != 0xe) goto LAB_002e313c;\n          goto LAB_002e3284;\n        }\n        if (uVar19 < 0xd) {\n          uVar26 = (ulonglong)*(byte *)local_44;\n          local_44 = (uint *)((int)local_44 + 1);\nLAB_002e382c:\n          uVar7 = uVar26;\n          if (uVar22 == 0x31) goto LAB_002e313c;\n          if (uVar22 < 0x32) goto LAB_002e3118;\n        }\n        else {\n          bVar1 = *(byte *)local_44;\n          uVar15 = (uint)bVar1;\n          puVar9 = (uint *)((int)local_44 + 1);\n          if ((char)bVar1 < '\0') {\n            uVar26 = (*(code *)PTR_read_signed_LEB_128_x_004c297c)(puVar9,&local_48,uVar15);\n            puVar9 = (uint *)((int)local_44 + local_48);\n          }\n          else {\n            local_48 = 1;\n            uVar26 = (ulonglong)uVar15;\n            if ((bVar1 & 0x40) != 0) {\n              uVar26 = CONCAT44(0xffffffff,uVar15 | 0xffffff80);\n            }\n          }\n          local_44 = puVar9;\n          uVar7 = uVar26;\n          if (uVar22 == 0x31) goto LAB_002e313c;\n          if (uVar22 < 0x32) {\n            puVar9 = (uint *)param_1[0xc];\n            if (puVar9 != (uint *)param_1[0xd]) goto LAB_002e314c;\nLAB_002e2f98:\n            iVar17 = iVar17 + 8;\n            local_60 = uVar26;\n            std::\n            vector<gold::Dwarf_die::Attribute_value,std::allocator<gold::Dwarf_die::Attribute_value>>\n            ::_M_realloc_insert<gold::Dwarf_die::Attribute_value_const&>(local_38,puVar9,&local_68);\n            iVar8 = param_1[10];\n            if (iVar17 == iVar21) goto LAB_002e2fb8;\n            goto LAB_002e2db4;\n          }\n        }\n        if ((uVar22 != 0x6e) && (uVar7 = uVar26, uVar22 != 0x2007)) goto LAB_002e313c;\nLAB_002e3858:\n        local_60._0_4_ = (uint *)(uVar26 >> 0x20);\n        uVar7 = uVar26;\n        if (uVar19 == 8) {\n          param_1[0x12] = (int)local_60._0_4_;\n          goto LAB_002e313c;\n        }\n        if (uVar19 != 0xe) goto LAB_002e313c;\n        goto LAB_002e387c;\n      }\n      if (uVar19 == 4) {\n        pcVar25 = *(code **)(**(int **)(*param_1 + 8) + 0xc);\n        if (pcVar25 == (code *)PTR_is_big_endian_004c2950) {\n          iVar8 = (**(code **)(**(int **)(*param_1 + 8) + 0xe8))();\n        }\n        else {\n          iVar8 = (*pcVar25)();\n        }\n        local_58 = *local_44;\n        if (iVar8 == 0) {\n          local_58 = (((local_58 >> 0x10) << 0x18 | (local_58 >> 0x18) << 0x10) >> 0x10) +\n                     ((local_58 & 0xff) << 8 | local_58 >> 8 & 0xff) * 0x10000;\n        }\n        local_60._0_4_ = local_44 + 1;\n        local_44 = (uint *)((int)local_60._0_4_ + local_58);\nLAB_002e355c:\n        uVar26 = CONCAT44(local_60._0_4_,local_60._4_4_);\n        uVar7 = uVar26;\n        if (uVar22 == 0x31) goto LAB_002e313c;\n        if (uVar22 < 0x32) goto LAB_002e3118;\n        puVar9 = (uint *)param_1[0xc];\n      }\n      else {\n        if (4 < uVar19) {\n          if (uVar19 != 5) {\n            if (uVar19 != 6) {\n              return 0;\n            }\n            pcVar25 = *(code **)(**(int **)(*param_1 + 8) + 0xc);\n            if (pcVar25 == (code *)PTR_is_big_endian_004c2950) {\n              local_30 = puVar18;\n              iVar10 = (**(code **)(**(int **)(*param_1 + 8) + 0xe8))();\n            }\n            else {\n              local_30 = puVar18;\n              iVar10 = (*pcVar25)();\n            }\n            puVar9 = (uint *)*local_44;\n            if (iVar10 == 0) {\n              puVar9 = (uint *)(((((uint)puVar9 >> 0x10) << 0x18 | ((uint)puVar9 >> 0x18) << 0x10)\n                                >> 0x10) +\n                               (((uint)puVar9 & 0xff) << 8 | (uint)puVar9 >> 8 & 0xff) * 0x10000);\n            }\n            local_44 = local_44 + 1;\n            iVar10 = *param_1;\n            local_50._0_4_ = (uint *)0x0;\n            local_50._4_4_ = puVar9;\n            goto LAB_002e3708;\n          }\n          pcVar25 = *(code **)(**(int **)(*param_1 + 8) + 0xc);\n          if (pcVar25 == (code *)PTR_is_big_endian_004c2950) {\n            iVar8 = (**(code **)(**(int **)(*param_1 + 8) + 0xe8))();\n          }\n          else {\n            iVar8 = (*pcVar25)();\n          }\n          uVar6 = *(ushort *)local_44;\n          if (iVar8 == 0) {\n            uVar6 = CONCAT11(*(byte *)((int)local_44 + 1),*(byte *)local_44);\n          }\n          local_60._4_4_ = (uint *)(uint)uVar6;\n          local_44 = (uint *)((int)local_44 + 2);\n          local_60._0_4_ = (uint *)0x0;\n          goto LAB_002e355c;\n        }\n        if (uVar19 != 1) {\n          if (uVar19 != 3) {\n            return 0;\n          }\n          pcVar25 = *(code **)(**(int **)(*param_1 + 8) + 0xc);\n          if (pcVar25 == (code *)PTR_is_big_endian_004c2950) {\n            iVar8 = (**(code **)(**(int **)(*param_1 + 8) + 0xe8))();\n          }\n          else {\n            iVar8 = (*pcVar25)();\n          }\n          uVar6 = *(ushort *)local_44;\n          if (iVar8 == 0) {\n            uVar6 = CONCAT11(*(byte *)((int)local_44 + 1),*(byte *)local_44);\n          }\n          local_58 = (uint)uVar6;\n          local_60._0_4_ = (uint *)((int)local_44 + 2);\n          local_44 = (uint *)((int)local_60._0_4_ + local_58);\n          goto LAB_002e355c;\n        }\n        iVar8 = *param_1;\n        if (*(int *)(iVar8 + 0x4c) == 4) {\n          pcVar25 = *(code **)(**(int **)(iVar8 + 8) + 0xc);\n          if (pcVar25 == (code *)PTR_is_big_endian_004c2950) {\n            local_30 = puVar18;\n            iVar8 = (**(code **)(**(int **)(iVar8 + 8) + 0xe8))();\n          }\n          else {\n            local_30 = puVar18;\n            iVar8 = (*pcVar25)();\n          }\n          uVar15 = *local_44;\n          if (iVar8 == 0) {\n            uVar15 = (((uVar15 >> 0x10) << 0x18 | (uVar15 >> 0x18) << 0x10) >> 0x10) +\n                     ((uVar15 & 0xff) << 8 | uVar15 >> 8 & 0xff) * 0x10000;\n          }\n          local_44 = local_44 + 1;\n          uVar26 = (ulonglong)uVar15;\n        }\n        else {\n          local_30 = puVar18;\n          uVar26 = (*local_34)(iVar8,&local_44);\n        }\n        local_50 = uVar26;\n        local_58 = (*local_3c)(*param_1);\n        uVar26 = local_50;\n        if (uVar22 == 0x31) goto LAB_002e30bc;\n        if (uVar22 < 0x32) {\n          if (uVar22 != 1) goto joined_r0x002e3124;\n          goto LAB_002e39b4;\n        }\n        uVar7 = local_50;\n        if (uVar22 == 0x6e) goto LAB_002e313c;\n        if (uVar22 != 0x2007) goto LAB_002e339c;\n        puVar9 = (uint *)param_1[0xc];\n      }\n      while( true ) {\n        if (puVar9 == (uint *)param_1[0xd]) goto LAB_002e2f98;\nLAB_002e314c:\n        local_60._0_4_ = (uint *)(uVar26 >> 0x20);\n        local_60._4_4_ = (uint *)uVar26;\n        iVar17 = iVar17 + 8;\n        puVar9[1] = local_64;\n        puVar9[2] = (uint)local_60._0_4_;\n        *puVar9 = local_68;\n        puVar9[3] = (uint)local_60._4_4_;\n        puVar9[4] = local_58;\n        puVar9[5] = local_54;\n        param_1[0xc] = (int)(puVar9 + 6);\n        iVar8 = param_1[10];\n        local_60 = uVar26;\n        if (iVar17 == iVar21) goto LAB_002e2fb8;\n        puVar9 = (uint *)(*(int *)(iVar8 + 8) + iVar17);\n        uVar19 = puVar9[1];\n        uVar22 = *puVar9;\n        if (uVar19 != 0x16) goto LAB_002e2dd0;\nLAB_002e31a8:\n        uVar19 = (uint)*(byte *)local_44;\n        puVar9 = (uint *)((int)local_44 + 1);\n        if ((char)*(byte *)local_44 < '\0') {\n          local_60 = uVar26;\n          (*(code *)PTR_read_unsigned_LEB_128_x_004c2980)(puVar9,&local_48,uVar19);\n          puVar9 = (uint *)((int)local_44 + local_48);\n          uVar19 = extraout_v1;\n          uVar26 = local_60;\n        }\n        else {\n          local_48 = 1;\n        }\n        puVar11 = (uint *)((int)puVar9 - iVar20);\n        puVar18 = (uint *)((int)puVar11 + param_1[3]);\n        iVar8 = (uint)(puVar18 < puVar11) + ((int)puVar11 >> 0x1f) + param_1[2];\n        local_64 = uVar19;\n        local_44 = puVar9;\n        if (uVar19 != 0xe) break;\nLAB_002e31fc:\n        local_58 = 0;\n        iVar8 = *param_1;\n        local_68 = uVar22;\n        local_30 = puVar18;\n        local_60 = uVar26;\n        if (*(int *)(iVar8 + 0x48) == 4) {\n          pcVar25 = *(code **)(**(int **)(iVar8 + 8) + 0xc);\n          if (pcVar25 == (code *)PTR_is_big_endian_004c2950) {\n            iVar8 = (**(code **)(**(int **)(iVar8 + 8) + 0xe8))();\n          }\n          else {\n            iVar8 = (*pcVar25)();\n          }\n          uVar19 = *local_44;\n          if (iVar8 == 0) {\n            uVar19 = (((uVar19 >> 0x10) << 0x18 | (uVar19 >> 0x18) << 0x10) >> 0x10) +\n                     ((uVar19 & 0xff) << 8 | uVar19 >> 8 & 0xff) * 0x10000;\n          }\n          local_44 = local_44 + 1;\n          uVar26 = (ulonglong)uVar19;\n        }\n        else {\n          uVar26 = (*local_34)(iVar8,&local_44);\n        }\n        local_50 = uVar26;\n        local_58 = (*local_3c)(*param_1);\n        uVar7 = local_50;\n        if (uVar22 != 0x31) {\n          uVar26 = local_50;\n          if (uVar22 < 0x32) {\n            if ((uVar22 != 1) && (uVar22 == 3)) {\nLAB_002e3284:\n              param_1[0x16] = local_58;\n              *(ulonglong *)(param_1 + 0x10) = uVar26;\n              uVar7 = uVar26;\n            }\n          }\n          else {\n            if (uVar22 == 0x6e) {\nLAB_002e387c:\n              param_1[0x16] = local_58;\n            }\n            else {\n              if (uVar22 != 0x2007) goto LAB_002e313c;\n              param_1[0x16] = local_58;\n            }\n            *(ulonglong *)(param_1 + 0x14) = uVar26;\n            uVar7 = uVar26;\n          }\n        }\nLAB_002e313c:\n        puVar9 = (uint *)param_1[0xc];\n        uVar26 = uVar7;\n      }\n    }" ({ "{") (expression_statement "local_60._4_4_ = (uint *)uVar26;" (assignment_expression "local_60._4_4_ = (uint *)uVar26" (field_expression "local_60._4_4_" (identifier "local_60") (. ".") (field_identifier "_4_4_")) (= "=") (cast_expression "(uint *)uVar26" (( "(") (type_descriptor "uint *" (type_identifier "uint") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "uVar26"))) (; ";")) (expression_statement "local_58 = 0;" (assignment_expression "local_58 = 0" (identifier "local_58") (= "=") (number_literal "0")) (; ";")) (expression_statement "local_68 = uVar22;" (assignment_expression "local_68 = uVar22" (identifier "local_68") (= "=") (identifier "uVar22")) (; ";")) (expression_statement "local_64 = uVar19;" (assignment_expression "local_64 = uVar19" (identifier "local_64") (= "=") (identifier "uVar19")) (; ";")) (expression_statement "local_60 = uVar26;" (assignment_expression "local_60 = uVar26" (identifier "local_60") (= "=") (identifier "uVar26")) (; ";")) (if_statement "if (0xe < uVar19) {\n        if (uVar19 == 0x15) {\n          if ((char)*(byte *)local_44 < '\0') {\n            uVar26 = (*(code *)PTR_read_unsigned_LEB_128_x_004c2980)\n                               ((uint *)((int)local_44 + 1),&local_48);\n            local_44 = (uint *)((int)local_44 + local_48);\n          }\n          else {\n            uVar26 = (ulonglong)*(byte *)local_44;\n            local_48 = 1;\n            local_44 = (uint *)((int)local_44 + 1);\n          }\n          goto joined_r0x002e3998;\n        }\n        if (0x15 < uVar19) {\n          if (uVar19 == 0x19) {\n            local_60._4_4_ = (uint *)0x1;\n            local_60._0_4_ = (uint *)0x0;\n          }\n          else {\n            if (uVar19 < 0x1a) {\n              if (uVar19 != 0x17) {\n                if (uVar19 != 0x18) {\n                  return 0;\n                }\n                goto LAB_002e32bc;\n              }\n              iVar8 = *param_1;\n              if (*(int *)(iVar8 + 0x48) == 4) {\n                pcVar25 = *(code **)(**(int **)(iVar8 + 8) + 0xc);\n                if (pcVar25 == (code *)PTR_is_big_endian_004c2950) {\n                  local_30 = puVar18;\n                  iVar8 = (**(code **)(**(int **)(iVar8 + 8) + 0xe8))();\n                }\n                else {\n                  local_30 = puVar18;\n                  iVar8 = (*pcVar25)();\n                }\n                uVar15 = *local_44;\n                if (iVar8 == 0) {\n                  uVar15 = (((uVar15 >> 0x10) << 0x18 | (uVar15 >> 0x18) << 0x10) >> 0x10) +\n                           ((uVar15 & 0xff) << 8 | uVar15 >> 8 & 0xff) * 0x10000;\n                }\n                local_44 = local_44 + 1;\n                uVar26 = (ulonglong)uVar15;\n              }\n              else {\n                local_30 = puVar18;\n                uVar26 = (*local_34)(iVar8,&local_44);\n              }\n              iVar8 = *param_1;\n              goto LAB_002e3970;\n            }\n            if (uVar19 != 0x20) {\n              if (uVar19 < 0x20) {\n                return 0;\n              }\n              if (1 < uVar19 - 0x1f01) {\n                return 0;\n              }\nLAB_002e34d8:\n              if ((char)*(byte *)local_44 < '\0') {\n                uVar26 = (*(code *)PTR_read_unsigned_LEB_128_x_004c2980)\n                                   ((uint *)((int)local_44 + 1),&local_48);\n                local_44 = (uint *)((int)local_44 + local_48);\n              }\n              else {\n                uVar26 = (ulonglong)*(byte *)local_44;\n                local_48 = 1;\n                local_44 = (uint *)((int)local_44 + 1);\n              }\n              goto LAB_002e382c;\n            }\n            pcVar25 = *(code **)(**(int **)(*param_1 + 8) + 0xc);\n            if (pcVar25 == (code *)PTR_is_big_endian_004c2950) {\n              iVar8 = (**(code **)(**(int **)(*param_1 + 8) + 0xe8))();\n            }\n            else {\n              iVar8 = (*pcVar25)();\n            }\n            local_60._4_4_ = (uint *)local_44[1];\n            local_60._0_4_ = (uint *)*local_44;\n            if (iVar8 == 0) {\n              uVar15 = (uint)local_60._4_4_ & 0xff;\n              uVar16 = (uint)local_60._4_4_ >> 8;\n              uVar2 = (uint)local_60._4_4_ >> 0x10;\n              uVar4 = (uint)local_60._4_4_ >> 0x18;\n              local_60._4_4_ =\n                   (uint *)(((((uint)local_60._0_4_ >> 0x10) << 0x18 |\n                             ((uint)local_60._0_4_ >> 0x18) << 0x10) >> 0x10) +\n                           (((uint)local_60._0_4_ & 0xff) << 8 | (uint)local_60._0_4_ >> 8 & 0xff) *\n                           0x10000);\n              local_60._0_4_ =\n                   (uint *)(((uVar2 << 0x18 | uVar4 << 0x10) >> 0x10) +\n                           (uVar15 << 8 | uVar16 & 0xff) * 0x10000);\n            }\n            local_44 = local_44 + 2;\n          }\n          uVar7 = CONCAT44(local_60._0_4_,local_60._4_4_);\n          if (uVar22 == 0x6e) goto LAB_002e313c;\n          uVar7 = CONCAT44(local_60._0_4_,local_60._4_4_);\n          uVar26 = CONCAT44(local_60._0_4_,local_60._4_4_);\n          if (uVar22 == 0x2007) goto LAB_002e313c;\n          goto joined_r0x002e3124;\n        }\n        if (uVar19 == 0x11) {\n          puVar9 = (uint *)((int)local_44 + 1);\n          uVar15 = (uint)*(byte *)local_44;\n          uVar26 = (ulonglong)uVar15;\n          local_44 = puVar9;\n          if (uVar22 == 0x31) goto LAB_002e30bc;\n          if (0x31 < uVar22) {\n            uVar26 = (ulonglong)uVar15;\n            if ((uVar22 != 0x6e) && (uVar26 = (ulonglong)uVar15, uVar22 != 0x2007)) {\n              uVar7 = (ulonglong)uVar15;\n              if (uVar22 != 0x47) goto LAB_002e313c;\n              param_1[0x18] = 0;\n              param_1[0x19] = uVar15;\n              uVar7 = (ulonglong)uVar15;\n              goto LAB_002e313c;\n            }\n            goto LAB_002e3858;\n          }\n          if (uVar22 == 1) {\n            param_1[8] = 0;\n            param_1[9] = uVar15;\n            uVar7 = (ulonglong)uVar15;\n            goto LAB_002e313c;\n          }\n          goto joined_r0x002e3124;\n        }\n        if (uVar19 < 0x12) {\n          if (uVar19 == 0xf) goto LAB_002e34d8;\n          if (uVar19 != 0x10) {\n            return 0;\n          }\n          iVar10 = *param_1;\n          iVar8 = *(int *)(iVar10 + 0x48);\n          if (*(uint *)(iVar10 + 0x50) < 3) {\n            iVar8 = *(int *)(iVar10 + 0x4c);\n          }\n          if (iVar8 == 4) {\n            pcVar25 = *(code **)(**(int **)(iVar10 + 8) + 0xc);\n            if (pcVar25 == (code *)PTR_is_big_endian_004c2950) {\n              local_30 = puVar18;\n              iVar8 = (**(code **)(**(int **)(iVar10 + 8) + 0xe8))();\n            }\n            else {\n              local_30 = puVar18;\n              iVar8 = (*pcVar25)();\n            }\n            uVar15 = *local_44;\n            if (iVar8 == 0) {\n              uVar15 = (((uVar15 >> 0x10) << 0x18 | (uVar15 >> 0x18) << 0x10) >> 0x10) +\n                       ((uVar15 & 0xff) << 8 | uVar15 >> 8 & 0xff) * 0x10000;\n            }\n            local_44 = local_44 + 1;\n            uVar26 = (ulonglong)uVar15;\n          }\n          else {\n            local_30 = puVar18;\n            uVar26 = (*local_34)(iVar10,&local_44);\n          }\n          local_50 = uVar26;\n          local_58 = (*local_3c)(*param_1);\n          uVar26 = local_50;\n        }\n        else {\n          if (uVar19 == 0x13) {\n            pcVar25 = *(code **)(**(int **)(*param_1 + 8) + 0xc);\n            if (pcVar25 == (code *)PTR_is_big_endian_004c2950) {\n              local_30 = puVar18;\n              iVar8 = (**(code **)(**(int **)(*param_1 + 8) + 0xe8))();\n            }\n            else {\n              local_30 = puVar18;\n              iVar8 = (*pcVar25)();\n            }\n            uVar15 = *local_44;\n            if (iVar8 == 0) {\n              uVar15 = (((uVar15 >> 0x10) << 0x18 | (uVar15 >> 0x18) << 0x10) >> 0x10) +\n                       ((uVar15 & 0xff) << 8 | uVar15 >> 8 & 0xff) * 0x10000;\n            }\n            local_44 = local_44 + 1;\n            iVar8 = *param_1;\n            uVar26 = (ulonglong)uVar15;\n          }\n          else {\n            if (uVar19 < 0x14) {\n              pcVar25 = *(code **)(**(int **)(*param_1 + 8) + 0xc);\n              if (pcVar25 == (code *)PTR_is_big_endian_004c2950) {\n                iVar8 = (**(code **)(**(int **)(*param_1 + 8) + 0xe8))();\n              }\n              else {\n                iVar8 = (*pcVar25)();\n              }\n              uVar6 = *(ushort *)local_44;\n              if (iVar8 == 0) {\n                uVar6 = CONCAT11(*(byte *)((int)local_44 + 1),*(byte *)local_44);\n              }\n              local_44 = (uint *)((int)local_44 + 2);\n              uVar26 = (ulonglong)uVar6;\n              goto joined_r0x002e3998;\n            }\n            pcVar25 = *(code **)(**(int **)(*param_1 + 8) + 0xc);\n            if (pcVar25 == (code *)PTR_is_big_endian_004c2950) {\n              local_30 = puVar18;\n              iVar8 = (**(code **)(**(int **)(*param_1 + 8) + 0xe8))();\n            }\n            else {\n              local_30 = puVar18;\n              iVar8 = (*pcVar25)();\n            }\n            uVar15 = local_44[1];\n            uVar16 = *local_44;\n            if (iVar8 == 0) {\n              uVar2 = uVar15 & 0xff;\n              uVar4 = uVar15 >> 8;\n              uVar3 = uVar15 >> 0x10;\n              uVar5 = uVar15 >> 0x18;\n              uVar15 = (((uVar16 >> 0x10) << 0x18 | (uVar16 >> 0x18) << 0x10) >> 0x10) +\n                       ((uVar16 & 0xff) << 8 | uVar16 >> 8 & 0xff) * 0x10000;\n              uVar16 = ((uVar3 << 0x18 | uVar5 << 0x10) >> 0x10) +\n                       (uVar2 << 8 | uVar4 & 0xff) * 0x10000;\n            }\n            uVar26 = CONCAT44(uVar16,uVar15);\n            local_44 = local_44 + 2;\n            iVar8 = *param_1;\n          }\nLAB_002e3970:\n          local_50 = uVar26;\n          local_58 = (*local_3c)(iVar8);\n          uVar26 = local_50;\n        }\njoined_r0x002e3998:\n        if (uVar22 == 0x31) {\nLAB_002e30bc:\n          *(ulonglong *)(param_1 + 0x1a) = uVar26;\n          uVar7 = uVar26;\n          goto LAB_002e313c;\n        }\n        if (uVar22 < 0x32) {\n          uVar7 = uVar26;\n          if (uVar22 != 1) goto LAB_002e313c;\nLAB_002e39b4:\n          uVar7 = uVar26;\n          if (local_58 != 0) goto LAB_002e313c;\n          *(ulonglong *)(param_1 + 8) = uVar26;\n          goto LAB_002e313c;\n        }\n        if ((uVar22 != 0x6e) && (uVar22 != 0x2007)) {\nLAB_002e339c:\n          uVar7 = uVar26;\n          if (uVar22 != 0x47) goto LAB_002e313c;\n          *(ulonglong *)(param_1 + 0x18) = uVar26;\n          goto LAB_002e313c;\n        }\n        goto LAB_002e3858;\n      }" (if "if") (parenthesized_expression "(0xe < uVar19)" (( "(") (binary_expression "0xe < uVar19" (number_literal "0xe") (< "<") (identifier "uVar19")) () ")")) (compound_statement "{\n        if (uVar19 == 0x15) {\n          if ((char)*(byte *)local_44 < '\0') {\n            uVar26 = (*(code *)PTR_read_unsigned_LEB_128_x_004c2980)\n                               ((uint *)((int)local_44 + 1),&local_48);\n            local_44 = (uint *)((int)local_44 + local_48);\n          }\n          else {\n            uVar26 = (ulonglong)*(byte *)local_44;\n            local_48 = 1;\n            local_44 = (uint *)((int)local_44 + 1);\n          }\n          goto joined_r0x002e3998;\n        }\n        if (0x15 < uVar19) {\n          if (uVar19 == 0x19) {\n            local_60._4_4_ = (uint *)0x1;\n            local_60._0_4_ = (uint *)0x0;\n          }\n          else {\n            if (uVar19 < 0x1a) {\n              if (uVar19 != 0x17) {\n                if (uVar19 != 0x18) {\n                  return 0;\n                }\n                goto LAB_002e32bc;\n              }\n              iVar8 = *param_1;\n              if (*(int *)(iVar8 + 0x48) == 4) {\n                pcVar25 = *(code **)(**(int **)(iVar8 + 8) + 0xc);\n                if (pcVar25 == (code *)PTR_is_big_endian_004c2950) {\n                  local_30 = puVar18;\n                  iVar8 = (**(code **)(**(int **)(iVar8 + 8) + 0xe8))();\n                }\n                else {\n                  local_30 = puVar18;\n                  iVar8 = (*pcVar25)();\n                }\n                uVar15 = *local_44;\n                if (iVar8 == 0) {\n                  uVar15 = (((uVar15 >> 0x10) << 0x18 | (uVar15 >> 0x18) << 0x10) >> 0x10) +\n                           ((uVar15 & 0xff) << 8 | uVar15 >> 8 & 0xff) * 0x10000;\n                }\n                local_44 = local_44 + 1;\n                uVar26 = (ulonglong)uVar15;\n              }\n              else {\n                local_30 = puVar18;\n                uVar26 = (*local_34)(iVar8,&local_44);\n              }\n              iVar8 = *param_1;\n              goto LAB_002e3970;\n            }\n            if (uVar19 != 0x20) {\n              if (uVar19 < 0x20) {\n                return 0;\n              }\n              if (1 < uVar19 - 0x1f01) {\n                return 0;\n              }\nLAB_002e34d8:\n              if ((char)*(byte *)local_44 < '\0') {\n                uVar26 = (*(code *)PTR_read_unsigned_LEB_128_x_004c2980)\n                                   ((uint *)((int)local_44 + 1),&local_48);\n                local_44 = (uint *)((int)local_44 + local_48);\n              }\n              else {\n                uVar26 = (ulonglong)*(byte *)local_44;\n                local_48 = 1;\n                local_44 = (uint *)((int)local_44 + 1);\n              }\n              goto LAB_002e382c;\n            }\n            pcVar25 = *(code **)(**(int **)(*param_1 + 8) + 0xc);\n            if (pcVar25 == (code *)PTR_is_big_endian_004c2950) {\n              iVar8 = (**(code **)(**(int **)(*param_1 + 8) + 0xe8))();\n            }\n            else {\n              iVar8 = (*pcVar25)();\n            }\n            local_60._4_4_ = (uint *)local_44[1];\n            local_60._0_4_ = (uint *)*local_44;\n            if (iVar8 == 0) {\n              uVar15 = (uint)local_60._4_4_ & 0xff;\n              uVar16 = (uint)local_60._4_4_ >> 8;\n              uVar2 = (uint)local_60._4_4_ >> 0x10;\n              uVar4 = (uint)local_60._4_4_ >> 0x18;\n              local_60._4_4_ =\n                   (uint *)(((((uint)local_60._0_4_ >> 0x10) << 0x18 |\n                             ((uint)local_60._0_4_ >> 0x18) << 0x10) >> 0x10) +\n                           (((uint)local_60._0_4_ & 0xff) << 8 | (uint)local_60._0_4_ >> 8 & 0xff) *\n                           0x10000);\n              local_60._0_4_ =\n                   (uint *)(((uVar2 << 0x18 | uVar4 << 0x10) >> 0x10) +\n                           (uVar15 << 8 | uVar16 & 0xff) * 0x10000);\n            }\n            local_44 = local_44 + 2;\n          }\n          uVar7 = CONCAT44(local_60._0_4_,local_60._4_4_);\n          if (uVar22 == 0x6e) goto LAB_002e313c;\n          uVar7 = CONCAT44(local_60._0_4_,local_60._4_4_);\n          uVar26 = CONCAT44(local_60._0_4_,local_60._4_4_);\n          if (uVar22 == 0x2007) goto LAB_002e313c;\n          goto joined_r0x002e3124;\n        }\n        if (uVar19 == 0x11) {\n          puVar9 = (uint *)((int)local_44 + 1);\n          uVar15 = (uint)*(byte *)local_44;\n          uVar26 = (ulonglong)uVar15;\n          local_44 = puVar9;\n          if (uVar22 == 0x31) goto LAB_002e30bc;\n          if (0x31 < uVar22) {\n            uVar26 = (ulonglong)uVar15;\n            if ((uVar22 != 0x6e) && (uVar26 = (ulonglong)uVar15, uVar22 != 0x2007)) {\n              uVar7 = (ulonglong)uVar15;\n              if (uVar22 != 0x47) goto LAB_002e313c;\n              param_1[0x18] = 0;\n              param_1[0x19] = uVar15;\n              uVar7 = (ulonglong)uVar15;\n              goto LAB_002e313c;\n            }\n            goto LAB_002e3858;\n          }\n          if (uVar22 == 1) {\n            param_1[8] = 0;\n            param_1[9] = uVar15;\n            uVar7 = (ulonglong)uVar15;\n            goto LAB_002e313c;\n          }\n          goto joined_r0x002e3124;\n        }\n        if (uVar19 < 0x12) {\n          if (uVar19 == 0xf) goto LAB_002e34d8;\n          if (uVar19 != 0x10) {\n            return 0;\n          }\n          iVar10 = *param_1;\n          iVar8 = *(int *)(iVar10 + 0x48);\n          if (*(uint *)(iVar10 + 0x50) < 3) {\n            iVar8 = *(int *)(iVar10 + 0x4c);\n          }\n          if (iVar8 == 4) {\n            pcVar25 = *(code **)(**(int **)(iVar10 + 8) + 0xc);\n            if (pcVar25 == (code *)PTR_is_big_endian_004c2950) {\n              local_30 = puVar18;\n              iVar8 = (**(code **)(**(int **)(iVar10 + 8) + 0xe8))();\n            }\n            else {\n              local_30 = puVar18;\n              iVar8 = (*pcVar25)();\n            }\n            uVar15 = *local_44;\n            if (iVar8 == 0) {\n              uVar15 = (((uVar15 >> 0x10) << 0x18 | (uVar15 >> 0x18) << 0x10) >> 0x10) +\n                       ((uVar15 & 0xff) << 8 | uVar15 >> 8 & 0xff) * 0x10000;\n            }\n            local_44 = local_44 + 1;\n            uVar26 = (ulonglong)uVar15;\n          }\n          else {\n            local_30 = puVar18;\n            uVar26 = (*local_34)(iVar10,&local_44);\n          }\n          local_50 = uVar26;\n          local_58 = (*local_3c)(*param_1);\n          uVar26 = local_50;\n        }\n        else {\n          if (uVar19 == 0x13) {\n            pcVar25 = *(code **)(**(int **)(*param_1 + 8) + 0xc);\n            if (pcVar25 == (code *)PTR_is_big_endian_004c2950) {\n              local_30 = puVar18;\n              iVar8 = (**(code **)(**(int **)(*param_1 + 8) + 0xe8))();\n            }\n            else {\n              local_30 = puVar18;\n              iVar8 = (*pcVar25)();\n            }\n            uVar15 = *local_44;\n            if (iVar8 == 0) {\n              uVar15 = (((uVar15 >> 0x10) << 0x18 | (uVar15 >> 0x18) << 0x10) >> 0x10) +\n                       ((uVar15 & 0xff) << 8 | uVar15 >> 8 & 0xff) * 0x10000;\n            }\n            local_44 = local_44 + 1;\n            iVar8 = *param_1;\n            uVar26 = (ulonglong)uVar15;\n          }\n          else {\n            if (uVar19 < 0x14) {\n              pcVar25 = *(code **)(**(int **)(*param_1 + 8) + 0xc);\n              if (pcVar25 == (code *)PTR_is_big_endian_004c2950) {\n                iVar8 = (**(code **)(**(int **)(*param_1 + 8) + 0xe8))();\n              }\n              else {\n                iVar8 = (*pcVar25)();\n              }\n              uVar6 = *(ushort *)local_44;\n              if (iVar8 == 0) {\n                uVar6 = CONCAT11(*(byte *)((int)local_44 + 1),*(byte *)local_44);\n              }\n              local_44 = (uint *)((int)local_44 + 2);\n              uVar26 = (ulonglong)uVar6;\n              goto joined_r0x002e3998;\n            }\n            pcVar25 = *(code **)(**(int **)(*param_1 + 8) + 0xc);\n            if (pcVar25 == (code *)PTR_is_big_endian_004c2950) {\n              local_30 = puVar18;\n              iVar8 = (**(code **)(**(int **)(*param_1 + 8) + 0xe8))();\n            }\n            else {\n              local_30 = puVar18;\n              iVar8 = (*pcVar25)();\n            }\n            uVar15 = local_44[1];\n            uVar16 = *local_44;\n            if (iVar8 == 0) {\n              uVar2 = uVar15 & 0xff;\n              uVar4 = uVar15 >> 8;\n              uVar3 = uVar15 >> 0x10;\n              uVar5 = uVar15 >> 0x18;\n              uVar15 = (((uVar16 >> 0x10) << 0x18 | (uVar16 >> 0x18) << 0x10) >> 0x10) +\n                       ((uVar16 & 0xff) << 8 | uVar16 >> 8 & 0xff) * 0x10000;\n              uVar16 = ((uVar3 << 0x18 | uVar5 << 0x10) >> 0x10) +\n                       (uVar2 << 8 | uVar4 & 0xff) * 0x10000;\n            }\n            uVar26 = CONCAT44(uVar16,uVar15);\n            local_44 = local_44 + 2;\n            iVar8 = *param_1;\n          }\nLAB_002e3970:\n          local_50 = uVar26;\n          local_58 = (*local_3c)(iVar8);\n          uVar26 = local_50;\n        }\njoined_r0x002e3998:\n        if (uVar22 == 0x31) {\nLAB_002e30bc:\n          *(ulonglong *)(param_1 + 0x1a) = uVar26;\n          uVar7 = uVar26;\n          goto LAB_002e313c;\n        }\n        if (uVar22 < 0x32) {\n          uVar7 = uVar26;\n          if (uVar22 != 1) goto LAB_002e313c;\nLAB_002e39b4:\n          uVar7 = uVar26;\n          if (local_58 != 0) goto LAB_002e313c;\n          *(ulonglong *)(param_1 + 8) = uVar26;\n          goto LAB_002e313c;\n        }\n        if ((uVar22 != 0x6e) && (uVar22 != 0x2007)) {\nLAB_002e339c:\n          uVar7 = uVar26;\n          if (uVar22 != 0x47) goto LAB_002e313c;\n          *(ulonglong *)(param_1 + 0x18) = uVar26;\n          goto LAB_002e313c;\n        }\n        goto LAB_002e3858;\n      }" ({ "{") (if_statement "if (uVar19 == 0x15) {\n          if ((char)*(byte *)local_44 < '\0') {\n            uVar26 = (*(code *)PTR_read_unsigned_LEB_128_x_004c2980)\n                               ((uint *)((int)local_44 + 1),&local_48);\n            local_44 = (uint *)((int)local_44 + local_48);\n          }\n          else {\n            uVar26 = (ulonglong)*(byte *)local_44;\n            local_48 = 1;\n            local_44 = (uint *)((int)local_44 + 1);\n          }\n          goto joined_r0x002e3998;\n        }" (if "if") (parenthesized_expression "(uVar19 == 0x15)" (( "(") (binary_expression "uVar19 == 0x15" (identifier "uVar19") (== "==") (number_literal "0x15")) () ")")) (compound_statement "{\n          if ((char)*(byte *)local_44 < '\0') {\n            uVar26 = (*(code *)PTR_read_unsigned_LEB_128_x_004c2980)\n                               ((uint *)((int)local_44 + 1),&local_48);\n            local_44 = (uint *)((int)local_44 + local_48);\n          }\n          else {\n            uVar26 = (ulonglong)*(byte *)local_44;\n            local_48 = 1;\n            local_44 = (uint *)((int)local_44 + 1);\n          }\n          goto joined_r0x002e3998;\n        }" ({ "{") (if_statement "if ((char)*(byte *)local_44 < '\0') {\n            uVar26 = (*(code *)PTR_read_unsigned_LEB_128_x_004c2980)\n                               ((uint *)((int)local_44 + 1),&local_48);\n            local_44 = (uint *)((int)local_44 + local_48);\n          }\n          else {\n            uVar26 = (ulonglong)*(byte *)local_44;\n            local_48 = 1;\n            local_44 = (uint *)((int)local_44 + 1);\n          }" (if "if") (parenthesized_expression "((char)*(byte *)local_44 < '\0')" (( "(") (binary_expression "(char)*(byte *)local_44 < '\0'" (cast_expression "(char)*(byte *)local_44" (( "(") (type_descriptor "char" (primitive_type "char")) () ")") (pointer_expression "*(byte *)local_44" (* "*") (cast_expression "(byte *)local_44" (( "(") (type_descriptor "byte *" (type_identifier "byte") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "local_44")))) (< "<") (char_literal "'\0'" (' "'") (escape_sequence "\0") (' "'"))) () ")")) (compound_statement "{\n            uVar26 = (*(code *)PTR_read_unsigned_LEB_128_x_004c2980)\n                               ((uint *)((int)local_44 + 1),&local_48);\n            local_44 = (uint *)((int)local_44 + local_48);\n          }" ({ "{") (expression_statement "uVar26 = (*(code *)PTR_read_unsigned_LEB_128_x_004c2980)\n                               ((uint *)((int)local_44 + 1),&local_48);" (assignment_expression "uVar26 = (*(code *)PTR_read_unsigned_LEB_128_x_004c2980)\n                               ((uint *)((int)local_44 + 1),&local_48)" (identifier "uVar26") (= "=") (call_expression "(*(code *)PTR_read_unsigned_LEB_128_x_004c2980)\n                               ((uint *)((int)local_44 + 1),&local_48)" (parenthesized_expression "(*(code *)PTR_read_unsigned_LEB_128_x_004c2980)" (( "(") (pointer_expression "*(code *)PTR_read_unsigned_LEB_128_x_004c2980" (* "*") (cast_expression "(code *)PTR_read_unsigned_LEB_128_x_004c2980" (( "(") (type_descriptor "code *" (type_identifier "code") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "PTR_read_unsigned_LEB_128_x_004c2980"))) () ")")) (argument_list "((uint *)((int)local_44 + 1),&local_48)" (( "(") (cast_expression "(uint *)((int)local_44 + 1)" (( "(") (type_descriptor "uint *" (type_identifier "uint") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "((int)local_44 + 1)" (( "(") (binary_expression "(int)local_44 + 1" (cast_expression "(int)local_44" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "local_44")) (+ "+") (number_literal "1")) () ")"))) (, ",") (pointer_expression "&local_48" (& "&") (identifier "local_48")) () ")")))) (; ";")) (expression_statement "local_44 = (uint *)((int)local_44 + local_48);" (assignment_expression "local_44 = (uint *)((int)local_44 + local_48)" (identifier "local_44") (= "=") (cast_expression "(uint *)((int)local_44 + local_48)" (( "(") (type_descriptor "uint *" (type_identifier "uint") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "((int)local_44 + local_48)" (( "(") (binary_expression "(int)local_44 + local_48" (cast_expression "(int)local_44" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "local_44")) (+ "+") (identifier "local_48")) () ")")))) (; ";")) (} "}")) (else_clause "else {\n            uVar26 = (ulonglong)*(byte *)local_44;\n            local_48 = 1;\n            local_44 = (uint *)((int)local_44 + 1);\n          }" (else "else") (compound_statement "{\n            uVar26 = (ulonglong)*(byte *)local_44;\n            local_48 = 1;\n            local_44 = (uint *)((int)local_44 + 1);\n          }" ({ "{") (expression_statement "uVar26 = (ulonglong)*(byte *)local_44;" (assignment_expression "uVar26 = (ulonglong)*(byte *)local_44" (identifier "uVar26") (= "=") (binary_expression "(ulonglong)*(byte *)local_44" (parenthesized_expression "(ulonglong)" (( "(") (identifier "ulonglong") () ")")) (* "*") (cast_expression "(byte *)local_44" (( "(") (type_descriptor "byte *" (type_identifier "byte") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "local_44")))) (; ";")) (expression_statement "local_48 = 1;" (assignment_expression "local_48 = 1" (identifier "local_48") (= "=") (number_literal "1")) (; ";")) (expression_statement "local_44 = (uint *)((int)local_44 + 1);" (assignment_expression "local_44 = (uint *)((int)local_44 + 1)" (identifier "local_44") (= "=") (cast_expression "(uint *)((int)local_44 + 1)" (( "(") (type_descriptor "uint *" (type_identifier "uint") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "((int)local_44 + 1)" (( "(") (binary_expression "(int)local_44 + 1" (cast_expression "(int)local_44" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "local_44")) (+ "+") (number_literal "1")) () ")")))) (; ";")) (} "}")))) (goto_statement "goto joined_r0x002e3998;" (goto "goto") (statement_identifier "joined_r0x002e3998") (; ";")) (} "}"))) (if_statement "if (0x15 < uVar19) {\n          if (uVar19 == 0x19) {\n            local_60._4_4_ = (uint *)0x1;\n            local_60._0_4_ = (uint *)0x0;\n          }\n          else {\n            if (uVar19 < 0x1a) {\n              if (uVar19 != 0x17) {\n                if (uVar19 != 0x18) {\n                  return 0;\n                }\n                goto LAB_002e32bc;\n              }\n              iVar8 = *param_1;\n              if (*(int *)(iVar8 + 0x48) == 4) {\n                pcVar25 = *(code **)(**(int **)(iVar8 + 8) + 0xc);\n                if (pcVar25 == (code *)PTR_is_big_endian_004c2950) {\n                  local_30 = puVar18;\n                  iVar8 = (**(code **)(**(int **)(iVar8 + 8) + 0xe8))();\n                }\n                else {\n                  local_30 = puVar18;\n                  iVar8 = (*pcVar25)();\n                }\n                uVar15 = *local_44;\n                if (iVar8 == 0) {\n                  uVar15 = (((uVar15 >> 0x10) << 0x18 | (uVar15 >> 0x18) << 0x10) >> 0x10) +\n                           ((uVar15 & 0xff) << 8 | uVar15 >> 8 & 0xff) * 0x10000;\n                }\n                local_44 = local_44 + 1;\n                uVar26 = (ulonglong)uVar15;\n              }\n              else {\n                local_30 = puVar18;\n                uVar26 = (*local_34)(iVar8,&local_44);\n              }\n              iVar8 = *param_1;\n              goto LAB_002e3970;\n            }\n            if (uVar19 != 0x20) {\n              if (uVar19 < 0x20) {\n                return 0;\n              }\n              if (1 < uVar19 - 0x1f01) {\n                return 0;\n              }\nLAB_002e34d8:\n              if ((char)*(byte *)local_44 < '\0') {\n                uVar26 = (*(code *)PTR_read_unsigned_LEB_128_x_004c2980)\n                                   ((uint *)((int)local_44 + 1),&local_48);\n                local_44 = (uint *)((int)local_44 + local_48);\n              }\n              else {\n                uVar26 = (ulonglong)*(byte *)local_44;\n                local_48 = 1;\n                local_44 = (uint *)((int)local_44 + 1);\n              }\n              goto LAB_002e382c;\n            }\n            pcVar25 = *(code **)(**(int **)(*param_1 + 8) + 0xc);\n            if (pcVar25 == (code *)PTR_is_big_endian_004c2950) {\n              iVar8 = (**(code **)(**(int **)(*param_1 + 8) + 0xe8))();\n            }\n            else {\n              iVar8 = (*pcVar25)();\n            }\n            local_60._4_4_ = (uint *)local_44[1];\n            local_60._0_4_ = (uint *)*local_44;\n            if (iVar8 == 0) {\n              uVar15 = (uint)local_60._4_4_ & 0xff;\n              uVar16 = (uint)local_60._4_4_ >> 8;\n              uVar2 = (uint)local_60._4_4_ >> 0x10;\n              uVar4 = (uint)local_60._4_4_ >> 0x18;\n              local_60._4_4_ =\n                   (uint *)(((((uint)local_60._0_4_ >> 0x10) << 0x18 |\n                             ((uint)local_60._0_4_ >> 0x18) << 0x10) >> 0x10) +\n                           (((uint)local_60._0_4_ & 0xff) << 8 | (uint)local_60._0_4_ >> 8 & 0xff) *\n                           0x10000);\n              local_60._0_4_ =\n                   (uint *)(((uVar2 << 0x18 | uVar4 << 0x10) >> 0x10) +\n                           (uVar15 << 8 | uVar16 & 0xff) * 0x10000);\n            }\n            local_44 = local_44 + 2;\n          }\n          uVar7 = CONCAT44(local_60._0_4_,local_60._4_4_);\n          if (uVar22 == 0x6e) goto LAB_002e313c;\n          uVar7 = CONCAT44(local_60._0_4_,local_60._4_4_);\n          uVar26 = CONCAT44(local_60._0_4_,local_60._4_4_);\n          if (uVar22 == 0x2007) goto LAB_002e313c;\n          goto joined_r0x002e3124;\n        }" (if "if") (parenthesized_expression "(0x15 < uVar19)" (( "(") (binary_expression "0x15 < uVar19" (number_literal "0x15") (< "<") (identifier "uVar19")) () ")")) (compound_statement "{\n          if (uVar19 == 0x19) {\n            local_60._4_4_ = (uint *)0x1;\n            local_60._0_4_ = (uint *)0x0;\n          }\n          else {\n            if (uVar19 < 0x1a) {\n              if (uVar19 != 0x17) {\n                if (uVar19 != 0x18) {\n                  return 0;\n                }\n                goto LAB_002e32bc;\n              }\n              iVar8 = *param_1;\n              if (*(int *)(iVar8 + 0x48) == 4) {\n                pcVar25 = *(code **)(**(int **)(iVar8 + 8) + 0xc);\n                if (pcVar25 == (code *)PTR_is_big_endian_004c2950) {\n                  local_30 = puVar18;\n                  iVar8 = (**(code **)(**(int **)(iVar8 + 8) + 0xe8))();\n                }\n                else {\n                  local_30 = puVar18;\n                  iVar8 = (*pcVar25)();\n                }\n                uVar15 = *local_44;\n                if (iVar8 == 0) {\n                  uVar15 = (((uVar15 >> 0x10) << 0x18 | (uVar15 >> 0x18) << 0x10) >> 0x10) +\n                           ((uVar15 & 0xff) << 8 | uVar15 >> 8 & 0xff) * 0x10000;\n                }\n                local_44 = local_44 + 1;\n                uVar26 = (ulonglong)uVar15;\n              }\n              else {\n                local_30 = puVar18;\n                uVar26 = (*local_34)(iVar8,&local_44);\n              }\n              iVar8 = *param_1;\n              goto LAB_002e3970;\n            }\n            if (uVar19 != 0x20) {\n              if (uVar19 < 0x20) {\n                return 0;\n              }\n              if (1 < uVar19 - 0x1f01) {\n                return 0;\n              }\nLAB_002e34d8:\n              if ((char)*(byte *)local_44 < '\0') {\n                uVar26 = (*(code *)PTR_read_unsigned_LEB_128_x_004c2980)\n                                   ((uint *)((int)local_44 + 1),&local_48);\n                local_44 = (uint *)((int)local_44 + local_48);\n              }\n              else {\n                uVar26 = (ulonglong)*(byte *)local_44;\n                local_48 = 1;\n                local_44 = (uint *)((int)local_44 + 1);\n              }\n              goto LAB_002e382c;\n            }\n            pcVar25 = *(code **)(**(int **)(*param_1 + 8) + 0xc);\n            if (pcVar25 == (code *)PTR_is_big_endian_004c2950) {\n              iVar8 = (**(code **)(**(int **)(*param_1 + 8) + 0xe8))();\n            }\n            else {\n              iVar8 = (*pcVar25)();\n            }\n            local_60._4_4_ = (uint *)local_44[1];\n            local_60._0_4_ = (uint *)*local_44;\n            if (iVar8 == 0) {\n              uVar15 = (uint)local_60._4_4_ & 0xff;\n              uVar16 = (uint)local_60._4_4_ >> 8;\n              uVar2 = (uint)local_60._4_4_ >> 0x10;\n              uVar4 = (uint)local_60._4_4_ >> 0x18;\n              local_60._4_4_ =\n                   (uint *)(((((uint)local_60._0_4_ >> 0x10) << 0x18 |\n                             ((uint)local_60._0_4_ >> 0x18) << 0x10) >> 0x10) +\n                           (((uint)local_60._0_4_ & 0xff) << 8 | (uint)local_60._0_4_ >> 8 & 0xff) *\n                           0x10000);\n              local_60._0_4_ =\n                   (uint *)(((uVar2 << 0x18 | uVar4 << 0x10) >> 0x10) +\n                           (uVar15 << 8 | uVar16 & 0xff) * 0x10000);\n            }\n            local_44 = local_44 + 2;\n          }\n          uVar7 = CONCAT44(local_60._0_4_,local_60._4_4_);\n          if (uVar22 == 0x6e) goto LAB_002e313c;\n          uVar7 = CONCAT44(local_60._0_4_,local_60._4_4_);\n          uVar26 = CONCAT44(local_60._0_4_,local_60._4_4_);\n          if (uVar22 == 0x2007) goto LAB_002e313c;\n          goto joined_r0x002e3124;\n        }" ({ "{") (if_statement "if (uVar19 == 0x19) {\n            local_60._4_4_ = (uint *)0x1;\n            local_60._0_4_ = (uint *)0x0;\n          }\n          else {\n            if (uVar19 < 0x1a) {\n              if (uVar19 != 0x17) {\n                if (uVar19 != 0x18) {\n                  return 0;\n                }\n                goto LAB_002e32bc;\n              }\n              iVar8 = *param_1;\n              if (*(int *)(iVar8 + 0x48) == 4) {\n                pcVar25 = *(code **)(**(int **)(iVar8 + 8) + 0xc);\n                if (pcVar25 == (code *)PTR_is_big_endian_004c2950) {\n                  local_30 = puVar18;\n                  iVar8 = (**(code **)(**(int **)(iVar8 + 8) + 0xe8))();\n                }\n                else {\n                  local_30 = puVar18;\n                  iVar8 = (*pcVar25)();\n                }\n                uVar15 = *local_44;\n                if (iVar8 == 0) {\n                  uVar15 = (((uVar15 >> 0x10) << 0x18 | (uVar15 >> 0x18) << 0x10) >> 0x10) +\n                           ((uVar15 & 0xff) << 8 | uVar15 >> 8 & 0xff) * 0x10000;\n                }\n                local_44 = local_44 + 1;\n                uVar26 = (ulonglong)uVar15;\n              }\n              else {\n                local_30 = puVar18;\n                uVar26 = (*local_34)(iVar8,&local_44);\n              }\n              iVar8 = *param_1;\n              goto LAB_002e3970;\n            }\n            if (uVar19 != 0x20) {\n              if (uVar19 < 0x20) {\n                return 0;\n              }\n              if (1 < uVar19 - 0x1f01) {\n                return 0;\n              }\nLAB_002e34d8:\n              if ((char)*(byte *)local_44 < '\0') {\n                uVar26 = (*(code *)PTR_read_unsigned_LEB_128_x_004c2980)\n                                   ((uint *)((int)local_44 + 1),&local_48);\n                local_44 = (uint *)((int)local_44 + local_48);\n              }\n              else {\n                uVar26 = (ulonglong)*(byte *)local_44;\n                local_48 = 1;\n                local_44 = (uint *)((int)local_44 + 1);\n              }\n              goto LAB_002e382c;\n            }\n            pcVar25 = *(code **)(**(int **)(*param_1 + 8) + 0xc);\n            if (pcVar25 == (code *)PTR_is_big_endian_004c2950) {\n              iVar8 = (**(code **)(**(int **)(*param_1 + 8) + 0xe8))();\n            }\n            else {\n              iVar8 = (*pcVar25)();\n            }\n            local_60._4_4_ = (uint *)local_44[1];\n            local_60._0_4_ = (uint *)*local_44;\n            if (iVar8 == 0) {\n              uVar15 = (uint)local_60._4_4_ & 0xff;\n              uVar16 = (uint)local_60._4_4_ >> 8;\n              uVar2 = (uint)local_60._4_4_ >> 0x10;\n              uVar4 = (uint)local_60._4_4_ >> 0x18;\n              local_60._4_4_ =\n                   (uint *)(((((uint)local_60._0_4_ >> 0x10) << 0x18 |\n                             ((uint)local_60._0_4_ >> 0x18) << 0x10) >> 0x10) +\n                           (((uint)local_60._0_4_ & 0xff) << 8 | (uint)local_60._0_4_ >> 8 & 0xff) *\n                           0x10000);\n              local_60._0_4_ =\n                   (uint *)(((uVar2 << 0x18 | uVar4 << 0x10) >> 0x10) +\n                           (uVar15 << 8 | uVar16 & 0xff) * 0x10000);\n            }\n            local_44 = local_44 + 2;\n          }" (if "if") (parenthesized_expression "(uVar19 == 0x19)" (( "(") (binary_expression "uVar19 == 0x19" (identifier "uVar19") (== "==") (number_literal "0x19")) () ")")) (compound_statement "{\n            local_60._4_4_ = (uint *)0x1;\n            local_60._0_4_ = (uint *)0x0;\n          }" ({ "{") (expression_statement "local_60._4_4_ = (uint *)0x1;" (assignment_expression "local_60._4_4_ = (uint *)0x1" (field_expression "local_60._4_4_" (identifier "local_60") (. ".") (field_identifier "_4_4_")) (= "=") (cast_expression "(uint *)0x1" (( "(") (type_descriptor "uint *" (type_identifier "uint") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x1"))) (; ";")) (expression_statement "local_60._0_4_ = (uint *)0x0;" (assignment_expression "local_60._0_4_ = (uint *)0x0" (field_expression "local_60._0_4_" (identifier "local_60") (. ".") (field_identifier "_0_4_")) (= "=") (cast_expression "(uint *)0x0" (( "(") (type_descriptor "uint *" (type_identifier "uint") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0"))) (; ";")) (} "}")) (else_clause "else {\n            if (uVar19 < 0x1a) {\n              if (uVar19 != 0x17) {\n                if (uVar19 != 0x18) {\n                  return 0;\n                }\n                goto LAB_002e32bc;\n              }\n              iVar8 = *param_1;\n              if (*(int *)(iVar8 + 0x48) == 4) {\n                pcVar25 = *(code **)(**(int **)(iVar8 + 8) + 0xc);\n                if (pcVar25 == (code *)PTR_is_big_endian_004c2950) {\n                  local_30 = puVar18;\n                  iVar8 = (**(code **)(**(int **)(iVar8 + 8) + 0xe8))();\n                }\n                else {\n                  local_30 = puVar18;\n                  iVar8 = (*pcVar25)();\n                }\n                uVar15 = *local_44;\n                if (iVar8 == 0) {\n                  uVar15 = (((uVar15 >> 0x10) << 0x18 | (uVar15 >> 0x18) << 0x10) >> 0x10) +\n                           ((uVar15 & 0xff) << 8 | uVar15 >> 8 & 0xff) * 0x10000;\n                }\n                local_44 = local_44 + 1;\n                uVar26 = (ulonglong)uVar15;\n              }\n              else {\n                local_30 = puVar18;\n                uVar26 = (*local_34)(iVar8,&local_44);\n              }\n              iVar8 = *param_1;\n              goto LAB_002e3970;\n            }\n            if (uVar19 != 0x20) {\n              if (uVar19 < 0x20) {\n                return 0;\n              }\n              if (1 < uVar19 - 0x1f01) {\n                return 0;\n              }\nLAB_002e34d8:\n              if ((char)*(byte *)local_44 < '\0') {\n                uVar26 = (*(code *)PTR_read_unsigned_LEB_128_x_004c2980)\n                                   ((uint *)((int)local_44 + 1),&local_48);\n                local_44 = (uint *)((int)local_44 + local_48);\n              }\n              else {\n                uVar26 = (ulonglong)*(byte *)local_44;\n                local_48 = 1;\n                local_44 = (uint *)((int)local_44 + 1);\n              }\n              goto LAB_002e382c;\n            }\n            pcVar25 = *(code **)(**(int **)(*param_1 + 8) + 0xc);\n            if (pcVar25 == (code *)PTR_is_big_endian_004c2950) {\n              iVar8 = (**(code **)(**(int **)(*param_1 + 8) + 0xe8))();\n            }\n            else {\n              iVar8 = (*pcVar25)();\n            }\n            local_60._4_4_ = (uint *)local_44[1];\n            local_60._0_4_ = (uint *)*local_44;\n            if (iVar8 == 0) {\n              uVar15 = (uint)local_60._4_4_ & 0xff;\n              uVar16 = (uint)local_60._4_4_ >> 8;\n              uVar2 = (uint)local_60._4_4_ >> 0x10;\n              uVar4 = (uint)local_60._4_4_ >> 0x18;\n              local_60._4_4_ =\n                   (uint *)(((((uint)local_60._0_4_ >> 0x10) << 0x18 |\n                             ((uint)local_60._0_4_ >> 0x18) << 0x10) >> 0x10) +\n                           (((uint)local_60._0_4_ & 0xff) << 8 | (uint)local_60._0_4_ >> 8 & 0xff) *\n                           0x10000);\n              local_60._0_4_ =\n                   (uint *)(((uVar2 << 0x18 | uVar4 << 0x10) >> 0x10) +\n                           (uVar15 << 8 | uVar16 & 0xff) * 0x10000);\n            }\n            local_44 = local_44 + 2;\n          }" (else "else") (compound_statement "{\n            if (uVar19 < 0x1a) {\n              if (uVar19 != 0x17) {\n                if (uVar19 != 0x18) {\n                  return 0;\n                }\n                goto LAB_002e32bc;\n              }\n              iVar8 = *param_1;\n              if (*(int *)(iVar8 + 0x48) == 4) {\n                pcVar25 = *(code **)(**(int **)(iVar8 + 8) + 0xc);\n                if (pcVar25 == (code *)PTR_is_big_endian_004c2950) {\n                  local_30 = puVar18;\n                  iVar8 = (**(code **)(**(int **)(iVar8 + 8) + 0xe8))();\n                }\n                else {\n                  local_30 = puVar18;\n                  iVar8 = (*pcVar25)();\n                }\n                uVar15 = *local_44;\n                if (iVar8 == 0) {\n                  uVar15 = (((uVar15 >> 0x10) << 0x18 | (uVar15 >> 0x18) << 0x10) >> 0x10) +\n                           ((uVar15 & 0xff) << 8 | uVar15 >> 8 & 0xff) * 0x10000;\n                }\n                local_44 = local_44 + 1;\n                uVar26 = (ulonglong)uVar15;\n              }\n              else {\n                local_30 = puVar18;\n                uVar26 = (*local_34)(iVar8,&local_44);\n              }\n              iVar8 = *param_1;\n              goto LAB_002e3970;\n            }\n            if (uVar19 != 0x20) {\n              if (uVar19 < 0x20) {\n                return 0;\n              }\n              if (1 < uVar19 - 0x1f01) {\n                return 0;\n              }\nLAB_002e34d8:\n              if ((char)*(byte *)local_44 < '\0') {\n                uVar26 = (*(code *)PTR_read_unsigned_LEB_128_x_004c2980)\n                                   ((uint *)((int)local_44 + 1),&local_48);\n                local_44 = (uint *)((int)local_44 + local_48);\n              }\n              else {\n                uVar26 = (ulonglong)*(byte *)local_44;\n                local_48 = 1;\n                local_44 = (uint *)((int)local_44 + 1);\n              }\n              goto LAB_002e382c;\n            }\n            pcVar25 = *(code **)(**(int **)(*param_1 + 8) + 0xc);\n            if (pcVar25 == (code *)PTR_is_big_endian_004c2950) {\n              iVar8 = (**(code **)(**(int **)(*param_1 + 8) + 0xe8))();\n            }\n            else {\n              iVar8 = (*pcVar25)();\n            }\n            local_60._4_4_ = (uint *)local_44[1];\n            local_60._0_4_ = (uint *)*local_44;\n            if (iVar8 == 0) {\n              uVar15 = (uint)local_60._4_4_ & 0xff;\n              uVar16 = (uint)local_60._4_4_ >> 8;\n              uVar2 = (uint)local_60._4_4_ >> 0x10;\n              uVar4 = (uint)local_60._4_4_ >> 0x18;\n              local_60._4_4_ =\n                   (uint *)(((((uint)local_60._0_4_ >> 0x10) << 0x18 |\n                             ((uint)local_60._0_4_ >> 0x18) << 0x10) >> 0x10) +\n                           (((uint)local_60._0_4_ & 0xff) << 8 | (uint)local_60._0_4_ >> 8 & 0xff) *\n                           0x10000);\n              local_60._0_4_ =\n                   (uint *)(((uVar2 << 0x18 | uVar4 << 0x10) >> 0x10) +\n                           (uVar15 << 8 | uVar16 & 0xff) * 0x10000);\n            }\n            local_44 = local_44 + 2;\n          }" ({ "{") (if_statement "if (uVar19 < 0x1a) {\n              if (uVar19 != 0x17) {\n                if (uVar19 != 0x18) {\n                  return 0;\n                }\n                goto LAB_002e32bc;\n              }\n              iVar8 = *param_1;\n              if (*(int *)(iVar8 + 0x48) == 4) {\n                pcVar25 = *(code **)(**(int **)(iVar8 + 8) + 0xc);\n                if (pcVar25 == (code *)PTR_is_big_endian_004c2950) {\n                  local_30 = puVar18;\n                  iVar8 = (**(code **)(**(int **)(iVar8 + 8) + 0xe8))();\n                }\n                else {\n                  local_30 = puVar18;\n                  iVar8 = (*pcVar25)();\n                }\n                uVar15 = *local_44;\n                if (iVar8 == 0) {\n                  uVar15 = (((uVar15 >> 0x10) << 0x18 | (uVar15 >> 0x18) << 0x10) >> 0x10) +\n                           ((uVar15 & 0xff) << 8 | uVar15 >> 8 & 0xff) * 0x10000;\n                }\n                local_44 = local_44 + 1;\n                uVar26 = (ulonglong)uVar15;\n              }\n              else {\n                local_30 = puVar18;\n                uVar26 = (*local_34)(iVar8,&local_44);\n              }\n              iVar8 = *param_1;\n              goto LAB_002e3970;\n            }" (if "if") (parenthesized_expression "(uVar19 < 0x1a)" (( "(") (binary_expression "uVar19 < 0x1a" (identifier "uVar19") (< "<") (number_literal "0x1a")) () ")")) (compound_statement "{\n              if (uVar19 != 0x17) {\n                if (uVar19 != 0x18) {\n                  return 0;\n                }\n                goto LAB_002e32bc;\n              }\n              iVar8 = *param_1;\n              if (*(int *)(iVar8 + 0x48) == 4) {\n                pcVar25 = *(code **)(**(int **)(iVar8 + 8) + 0xc);\n                if (pcVar25 == (code *)PTR_is_big_endian_004c2950) {\n                  local_30 = puVar18;\n                  iVar8 = (**(code **)(**(int **)(iVar8 + 8) + 0xe8))();\n                }\n                else {\n                  local_30 = puVar18;\n                  iVar8 = (*pcVar25)();\n                }\n                uVar15 = *local_44;\n                if (iVar8 == 0) {\n                  uVar15 = (((uVar15 >> 0x10) << 0x18 | (uVar15 >> 0x18) << 0x10) >> 0x10) +\n                           ((uVar15 & 0xff) << 8 | uVar15 >> 8 & 0xff) * 0x10000;\n                }\n                local_44 = local_44 + 1;\n                uVar26 = (ulonglong)uVar15;\n              }\n              else {\n                local_30 = puVar18;\n                uVar26 = (*local_34)(iVar8,&local_44);\n              }\n              iVar8 = *param_1;\n              goto LAB_002e3970;\n            }" ({ "{") (if_statement "if (uVar19 != 0x17) {\n                if (uVar19 != 0x18) {\n                  return 0;\n                }\n                goto LAB_002e32bc;\n              }" (if "if") (parenthesized_expression "(uVar19 != 0x17)" (( "(") (binary_expression "uVar19 != 0x17" (identifier "uVar19") (!= "!=") (number_literal "0x17")) () ")")) (compound_statement "{\n                if (uVar19 != 0x18) {\n                  return 0;\n                }\n                goto LAB_002e32bc;\n              }" ({ "{") (if_statement "if (uVar19 != 0x18) {\n                  return 0;\n                }" (if "if") (parenthesized_expression "(uVar19 != 0x18)" (( "(") (binary_expression "uVar19 != 0x18" (identifier "uVar19") (!= "!=") (number_literal "0x18")) () ")")) (compound_statement "{\n                  return 0;\n                }" ({ "{") (return_statement "return 0;" (return "return") (number_literal "0") (; ";")) (} "}"))) (goto_statement "goto LAB_002e32bc;" (goto "goto") (statement_identifier "LAB_002e32bc") (; ";")) (} "}"))) (expression_statement "iVar8 = *param_1;" (assignment_expression "iVar8 = *param_1" (identifier "iVar8") (= "=") (pointer_expression "*param_1" (* "*") (identifier "param_1"))) (; ";")) (if_statement "if (*(int *)(iVar8 + 0x48) == 4) {\n                pcVar25 = *(code **)(**(int **)(iVar8 + 8) + 0xc);\n                if (pcVar25 == (code *)PTR_is_big_endian_004c2950) {\n                  local_30 = puVar18;\n                  iVar8 = (**(code **)(**(int **)(iVar8 + 8) + 0xe8))();\n                }\n                else {\n                  local_30 = puVar18;\n                  iVar8 = (*pcVar25)();\n                }\n                uVar15 = *local_44;\n                if (iVar8 == 0) {\n                  uVar15 = (((uVar15 >> 0x10) << 0x18 | (uVar15 >> 0x18) << 0x10) >> 0x10) +\n                           ((uVar15 & 0xff) << 8 | uVar15 >> 8 & 0xff) * 0x10000;\n                }\n                local_44 = local_44 + 1;\n                uVar26 = (ulonglong)uVar15;\n              }\n              else {\n                local_30 = puVar18;\n                uVar26 = (*local_34)(iVar8,&local_44);\n              }" (if "if") (parenthesized_expression "(*(int *)(iVar8 + 0x48) == 4)" (( "(") (binary_expression "*(int *)(iVar8 + 0x48) == 4" (pointer_expression "*(int *)(iVar8 + 0x48)" (* "*") (cast_expression "(int *)(iVar8 + 0x48)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar8 + 0x48)" (( "(") (binary_expression "iVar8 + 0x48" (identifier "iVar8") (+ "+") (number_literal "0x48")) () ")")))) (== "==") (number_literal "4")) () ")")) (compound_statement "{\n                pcVar25 = *(code **)(**(int **)(iVar8 + 8) + 0xc);\n                if (pcVar25 == (code *)PTR_is_big_endian_004c2950) {\n                  local_30 = puVar18;\n                  iVar8 = (**(code **)(**(int **)(iVar8 + 8) + 0xe8))();\n                }\n                else {\n                  local_30 = puVar18;\n                  iVar8 = (*pcVar25)();\n                }\n                uVar15 = *local_44;\n                if (iVar8 == 0) {\n                  uVar15 = (((uVar15 >> 0x10) << 0x18 | (uVar15 >> 0x18) << 0x10) >> 0x10) +\n                           ((uVar15 & 0xff) << 8 | uVar15 >> 8 & 0xff) * 0x10000;\n                }\n                local_44 = local_44 + 1;\n                uVar26 = (ulonglong)uVar15;\n              }" ({ "{") (expression_statement "pcVar25 = *(code **)(**(int **)(iVar8 + 8) + 0xc);" (assignment_expression "pcVar25 = *(code **)(**(int **)(iVar8 + 8) + 0xc)" (identifier "pcVar25") (= "=") (pointer_expression "*(code **)(**(int **)(iVar8 + 8) + 0xc)" (* "*") (cast_expression "(code **)(**(int **)(iVar8 + 8) + 0xc)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(**(int **)(iVar8 + 8) + 0xc)" (( "(") (binary_expression "**(int **)(iVar8 + 8) + 0xc" (pointer_expression "**(int **)(iVar8 + 8)" (* "*") (pointer_expression "*(int **)(iVar8 + 8)" (* "*") (cast_expression "(int **)(iVar8 + 8)" (( "(") (type_descriptor "int **" (primitive_type "int") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(iVar8 + 8)" (( "(") (binary_expression "iVar8 + 8" (identifier "iVar8") (+ "+") (number_literal "8")) () ")"))))) (+ "+") (number_literal "0xc")) () ")"))))) (; ";")) (if_statement "if (pcVar25 == (code *)PTR_is_big_endian_004c2950) {\n                  local_30 = puVar18;\n                  iVar8 = (**(code **)(**(int **)(iVar8 + 8) + 0xe8))();\n                }\n                else {\n                  local_30 = puVar18;\n                  iVar8 = (*pcVar25)();\n                }" (if "if") (parenthesized_expression "(pcVar25 == (code *)PTR_is_big_endian_004c2950)" (( "(") (binary_expression "pcVar25 == (code *)PTR_is_big_endian_004c2950" (identifier "pcVar25") (== "==") (cast_expression "(code *)PTR_is_big_endian_004c2950" (( "(") (type_descriptor "code *" (type_identifier "code") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "PTR_is_big_endian_004c2950"))) () ")")) (compound_statement "{\n                  local_30 = puVar18;\n                  iVar8 = (**(code **)(**(int **)(iVar8 + 8) + 0xe8))();\n                }" ({ "{") (expression_statement "local_30 = puVar18;" (assignment_expression "local_30 = puVar18" (identifier "local_30") (= "=") (identifier "puVar18")) (; ";")) (expression_statement "iVar8 = (**(code **)(**(int **)(iVar8 + 8) + 0xe8))();" (assignment_expression "iVar8 = (**(code **)(**(int **)(iVar8 + 8) + 0xe8))()" (identifier "iVar8") (= "=") (call_expression "(**(code **)(**(int **)(iVar8 + 8) + 0xe8))()" (parenthesized_expression "(**(code **)(**(int **)(iVar8 + 8) + 0xe8))" (( "(") (pointer_expression "**(code **)(**(int **)(iVar8 + 8) + 0xe8)" (* "*") (pointer_expression "*(code **)(**(int **)(iVar8 + 8) + 0xe8)" (* "*") (cast_expression "(code **)(**(int **)(iVar8 + 8) + 0xe8)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(**(int **)(iVar8 + 8) + 0xe8)" (( "(") (binary_expression "**(int **)(iVar8 + 8) + 0xe8" (pointer_expression "**(int **)(iVar8 + 8)" (* "*") (pointer_expression "*(int **)(iVar8 + 8)" (* "*") (cast_expression "(int **)(iVar8 + 8)" (( "(") (type_descriptor "int **" (primitive_type "int") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(iVar8 + 8)" (( "(") (binary_expression "iVar8 + 8" (identifier "iVar8") (+ "+") (number_literal "8")) () ")"))))) (+ "+") (number_literal "0xe8")) () ")"))))) () ")")) (argument_list "()" (( "(") () ")")))) (; ";")) (} "}")) (else_clause "else {\n                  local_30 = puVar18;\n                  iVar8 = (*pcVar25)();\n                }" (else "else") (compound_statement "{\n                  local_30 = puVar18;\n                  iVar8 = (*pcVar25)();\n                }" ({ "{") (expression_statement "local_30 = puVar18;" (assignment_expression "local_30 = puVar18" (identifier "local_30") (= "=") (identifier "puVar18")) (; ";")) (expression_statement "iVar8 = (*pcVar25)();" (assignment_expression "iVar8 = (*pcVar25)()" (identifier "iVar8") (= "=") (call_expression "(*pcVar25)()" (parenthesized_expression "(*pcVar25)" (( "(") (pointer_expression "*pcVar25" (* "*") (identifier "pcVar25")) () ")")) (argument_list "()" (( "(") () ")")))) (; ";")) (} "}")))) (expression_statement "uVar15 = *local_44;" (assignment_expression "uVar15 = *local_44" (identifier "uVar15") (= "=") (pointer_expression "*local_44" (* "*") (identifier "local_44"))) (; ";")) (if_statement "if (iVar8 == 0) {\n                  uVar15 = (((uVar15 >> 0x10) << 0x18 | (uVar15 >> 0x18) << 0x10) >> 0x10) +\n                           ((uVar15 & 0xff) << 8 | uVar15 >> 8 & 0xff) * 0x10000;\n                }" (if "if") (parenthesized_expression "(iVar8 == 0)" (( "(") (binary_expression "iVar8 == 0" (identifier "iVar8") (== "==") (number_literal "0")) () ")")) (compound_statement "{\n                  uVar15 = (((uVar15 >> 0x10) << 0x18 | (uVar15 >> 0x18) << 0x10) >> 0x10) +\n                           ((uVar15 & 0xff) << 8 | uVar15 >> 8 & 0xff) * 0x10000;\n                }" ({ "{") (expression_statement "uVar15 = (((uVar15 >> 0x10) << 0x18 | (uVar15 >> 0x18) << 0x10) >> 0x10) +\n                           ((uVar15 & 0xff) << 8 | uVar15 >> 8 & 0xff) * 0x10000;" (assignment_expression "uVar15 = (((uVar15 >> 0x10) << 0x18 | (uVar15 >> 0x18) << 0x10) >> 0x10) +\n                           ((uVar15 & 0xff) << 8 | uVar15 >> 8 & 0xff) * 0x10000" (identifier "uVar15") (= "=") (binary_expression "(((uVar15 >> 0x10) << 0x18 | (uVar15 >> 0x18) << 0x10) >> 0x10) +\n                           ((uVar15 & 0xff) << 8 | uVar15 >> 8 & 0xff) * 0x10000" (parenthesized_expression "(((uVar15 >> 0x10) << 0x18 | (uVar15 >> 0x18) << 0x10) >> 0x10)" (( "(") (binary_expression "((uVar15 >> 0x10) << 0x18 | (uVar15 >> 0x18) << 0x10) >> 0x10" (parenthesized_expression "((uVar15 >> 0x10) << 0x18 | (uVar15 >> 0x18) << 0x10)" (( "(") (binary_expression "(uVar15 >> 0x10) << 0x18 | (uVar15 >> 0x18) << 0x10" (binary_expression "(uVar15 >> 0x10) << 0x18" (parenthesized_expression "(uVar15 >> 0x10)" (( "(") (binary_expression "uVar15 >> 0x10" (identifier "uVar15") (>> ">>") (number_literal "0x10")) () ")")) (<< "<<") (number_literal "0x18")) (| "|") (binary_expression "(uVar15 >> 0x18) << 0x10" (parenthesized_expression "(uVar15 >> 0x18)" (( "(") (binary_expression "uVar15 >> 0x18" (identifier "uVar15") (>> ">>") (number_literal "0x18")) () ")")) (<< "<<") (number_literal "0x10"))) () ")")) (>> ">>") (number_literal "0x10")) () ")")) (+ "+") (binary_expression "((uVar15 & 0xff) << 8 | uVar15 >> 8 & 0xff) * 0x10000" (parenthesized_expression "((uVar15 & 0xff) << 8 | uVar15 >> 8 & 0xff)" (( "(") (binary_expression "(uVar15 & 0xff) << 8 | uVar15 >> 8 & 0xff" (binary_expression "(uVar15 & 0xff) << 8" (parenthesized_expression "(uVar15 & 0xff)" (( "(") (binary_expression "uVar15 & 0xff" (identifier "uVar15") (& "&") (number_literal "0xff")) () ")")) (<< "<<") (number_literal "8")) (| "|") (binary_expression "uVar15 >> 8 & 0xff" (binary_expression "uVar15 >> 8" (identifier "uVar15") (>> ">>") (number_literal "8")) (& "&") (number_literal "0xff"))) () ")")) (* "*") (number_literal "0x10000")))) (; ";")) (} "}"))) (expression_statement "local_44 = local_44 + 1;" (assignment_expression "local_44 = local_44 + 1" (identifier "local_44") (= "=") (binary_expression "local_44 + 1" (identifier "local_44") (+ "+") (number_literal "1"))) (; ";")) (expression_statement "uVar26 = (ulonglong)uVar15;" (assignment_expression "uVar26 = (ulonglong)uVar15" (identifier "uVar26") (= "=") (cast_expression "(ulonglong)uVar15" (( "(") (type_descriptor "ulonglong" (type_identifier "ulonglong")) () ")") (identifier "uVar15"))) (; ";")) (} "}")) (else_clause "else {\n                local_30 = puVar18;\n                uVar26 = (*local_34)(iVar8,&local_44);\n              }" (else "else") (compound_statement "{\n                local_30 = puVar18;\n                uVar26 = (*local_34)(iVar8,&local_44);\n              }" ({ "{") (expression_statement "local_30 = puVar18;" (assignment_expression "local_30 = puVar18" (identifier "local_30") (= "=") (identifier "puVar18")) (; ";")) (expression_statement "uVar26 = (*local_34)(iVar8,&local_44);" (assignment_expression "uVar26 = (*local_34)(iVar8,&local_44)" (identifier "uVar26") (= "=") (call_expression "(*local_34)(iVar8,&local_44)" (parenthesized_expression "(*local_34)" (( "(") (pointer_expression "*local_34" (* "*") (identifier "local_34")) () ")")) (argument_list "(iVar8,&local_44)" (( "(") (identifier "iVar8") (, ",") (pointer_expression "&local_44" (& "&") (identifier "local_44")) () ")")))) (; ";")) (} "}")))) (expression_statement "iVar8 = *param_1;" (assignment_expression "iVar8 = *param_1" (identifier "iVar8") (= "=") (pointer_expression "*param_1" (* "*") (identifier "param_1"))) (; ";")) (goto_statement "goto LAB_002e3970;" (goto "goto") (statement_identifier "LAB_002e3970") (; ";")) (} "}"))) (if_statement "if (uVar19 != 0x20) {\n              if (uVar19 < 0x20) {\n                return 0;\n              }\n              if (1 < uVar19 - 0x1f01) {\n                return 0;\n              }\nLAB_002e34d8:\n              if ((char)*(byte *)local_44 < '\0') {\n                uVar26 = (*(code *)PTR_read_unsigned_LEB_128_x_004c2980)\n                                   ((uint *)((int)local_44 + 1),&local_48);\n                local_44 = (uint *)((int)local_44 + local_48);\n              }\n              else {\n                uVar26 = (ulonglong)*(byte *)local_44;\n                local_48 = 1;\n                local_44 = (uint *)((int)local_44 + 1);\n              }\n              goto LAB_002e382c;\n            }" (if "if") (parenthesized_expression "(uVar19 != 0x20)" (( "(") (binary_expression "uVar19 != 0x20" (identifier "uVar19") (!= "!=") (number_literal "0x20")) () ")")) (compound_statement "{\n              if (uVar19 < 0x20) {\n                return 0;\n              }\n              if (1 < uVar19 - 0x1f01) {\n                return 0;\n              }\nLAB_002e34d8:\n              if ((char)*(byte *)local_44 < '\0') {\n                uVar26 = (*(code *)PTR_read_unsigned_LEB_128_x_004c2980)\n                                   ((uint *)((int)local_44 + 1),&local_48);\n                local_44 = (uint *)((int)local_44 + local_48);\n              }\n              else {\n                uVar26 = (ulonglong)*(byte *)local_44;\n                local_48 = 1;\n                local_44 = (uint *)((int)local_44 + 1);\n              }\n              goto LAB_002e382c;\n            }" ({ "{") (if_statement "if (uVar19 < 0x20) {\n                return 0;\n              }" (if "if") (parenthesized_expression "(uVar19 < 0x20)" (( "(") (binary_expression "uVar19 < 0x20" (identifier "uVar19") (< "<") (number_literal "0x20")) () ")")) (compound_statement "{\n                return 0;\n              }" ({ "{") (return_statement "return 0;" (return "return") (number_literal "0") (; ";")) (} "}"))) (if_statement "if (1 < uVar19 - 0x1f01) {\n                return 0;\n              }" (if "if") (parenthesized_expression "(1 < uVar19 - 0x1f01)" (( "(") (binary_expression "1 < uVar19 - 0x1f01" (number_literal "1") (< "<") (binary_expression "uVar19 - 0x1f01" (identifier "uVar19") (- "-") (number_literal "0x1f01"))) () ")")) (compound_statement "{\n                return 0;\n              }" ({ "{") (return_statement "return 0;" (return "return") (number_literal "0") (; ";")) (} "}"))) (labeled_statement "LAB_002e34d8:\n              if ((char)*(byte *)local_44 < '\0') {\n                uVar26 = (*(code *)PTR_read_unsigned_LEB_128_x_004c2980)\n                                   ((uint *)((int)local_44 + 1),&local_48);\n                local_44 = (uint *)((int)local_44 + local_48);\n              }\n              else {\n                uVar26 = (ulonglong)*(byte *)local_44;\n                local_48 = 1;\n                local_44 = (uint *)((int)local_44 + 1);\n              }" (statement_identifier "LAB_002e34d8") (: ":") (if_statement "if ((char)*(byte *)local_44 < '\0') {\n                uVar26 = (*(code *)PTR_read_unsigned_LEB_128_x_004c2980)\n                                   ((uint *)((int)local_44 + 1),&local_48);\n                local_44 = (uint *)((int)local_44 + local_48);\n              }\n              else {\n                uVar26 = (ulonglong)*(byte *)local_44;\n                local_48 = 1;\n                local_44 = (uint *)((int)local_44 + 1);\n              }" (if "if") (parenthesized_expression "((char)*(byte *)local_44 < '\0')" (( "(") (binary_expression "(char)*(byte *)local_44 < '\0'" (cast_expression "(char)*(byte *)local_44" (( "(") (type_descriptor "char" (primitive_type "char")) () ")") (pointer_expression "*(byte *)local_44" (* "*") (cast_expression "(byte *)local_44" (( "(") (type_descriptor "byte *" (type_identifier "byte") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "local_44")))) (< "<") (char_literal "'\0'" (' "'") (escape_sequence "\0") (' "'"))) () ")")) (compound_statement "{\n                uVar26 = (*(code *)PTR_read_unsigned_LEB_128_x_004c2980)\n                                   ((uint *)((int)local_44 + 1),&local_48);\n                local_44 = (uint *)((int)local_44 + local_48);\n              }" ({ "{") (expression_statement "uVar26 = (*(code *)PTR_read_unsigned_LEB_128_x_004c2980)\n                                   ((uint *)((int)local_44 + 1),&local_48);" (assignment_expression "uVar26 = (*(code *)PTR_read_unsigned_LEB_128_x_004c2980)\n                                   ((uint *)((int)local_44 + 1),&local_48)" (identifier "uVar26") (= "=") (call_expression "(*(code *)PTR_read_unsigned_LEB_128_x_004c2980)\n                                   ((uint *)((int)local_44 + 1),&local_48)" (parenthesized_expression "(*(code *)PTR_read_unsigned_LEB_128_x_004c2980)" (( "(") (pointer_expression "*(code *)PTR_read_unsigned_LEB_128_x_004c2980" (* "*") (cast_expression "(code *)PTR_read_unsigned_LEB_128_x_004c2980" (( "(") (type_descriptor "code *" (type_identifier "code") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "PTR_read_unsigned_LEB_128_x_004c2980"))) () ")")) (argument_list "((uint *)((int)local_44 + 1),&local_48)" (( "(") (cast_expression "(uint *)((int)local_44 + 1)" (( "(") (type_descriptor "uint *" (type_identifier "uint") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "((int)local_44 + 1)" (( "(") (binary_expression "(int)local_44 + 1" (cast_expression "(int)local_44" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "local_44")) (+ "+") (number_literal "1")) () ")"))) (, ",") (pointer_expression "&local_48" (& "&") (identifier "local_48")) () ")")))) (; ";")) (expression_statement "local_44 = (uint *)((int)local_44 + local_48);" (assignment_expression "local_44 = (uint *)((int)local_44 + local_48)" (identifier "local_44") (= "=") (cast_expression "(uint *)((int)local_44 + local_48)" (( "(") (type_descriptor "uint *" (type_identifier "uint") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "((int)local_44 + local_48)" (( "(") (binary_expression "(int)local_44 + local_48" (cast_expression "(int)local_44" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "local_44")) (+ "+") (identifier "local_48")) () ")")))) (; ";")) (} "}")) (else_clause "else {\n                uVar26 = (ulonglong)*(byte *)local_44;\n                local_48 = 1;\n                local_44 = (uint *)((int)local_44 + 1);\n              }" (else "else") (compound_statement "{\n                uVar26 = (ulonglong)*(byte *)local_44;\n                local_48 = 1;\n                local_44 = (uint *)((int)local_44 + 1);\n              }" ({ "{") (expression_statement "uVar26 = (ulonglong)*(byte *)local_44;" (assignment_expression "uVar26 = (ulonglong)*(byte *)local_44" (identifier "uVar26") (= "=") (binary_expression "(ulonglong)*(byte *)local_44" (parenthesized_expression "(ulonglong)" (( "(") (identifier "ulonglong") () ")")) (* "*") (cast_expression "(byte *)local_44" (( "(") (type_descriptor "byte *" (type_identifier "byte") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "local_44")))) (; ";")) (expression_statement "local_48 = 1;" (assignment_expression "local_48 = 1" (identifier "local_48") (= "=") (number_literal "1")) (; ";")) (expression_statement "local_44 = (uint *)((int)local_44 + 1);" (assignment_expression "local_44 = (uint *)((int)local_44 + 1)" (identifier "local_44") (= "=") (cast_expression "(uint *)((int)local_44 + 1)" (( "(") (type_descriptor "uint *" (type_identifier "uint") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "((int)local_44 + 1)" (( "(") (binary_expression "(int)local_44 + 1" (cast_expression "(int)local_44" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "local_44")) (+ "+") (number_literal "1")) () ")")))) (; ";")) (} "}"))))) (goto_statement "goto LAB_002e382c;" (goto "goto") (statement_identifier "LAB_002e382c") (; ";")) (} "}"))) (expression_statement "pcVar25 = *(code **)(**(int **)(*param_1 + 8) + 0xc);" (assignment_expression "pcVar25 = *(code **)(**(int **)(*param_1 + 8) + 0xc)" (identifier "pcVar25") (= "=") (pointer_expression "*(code **)(**(int **)(*param_1 + 8) + 0xc)" (* "*") (cast_expression "(code **)(**(int **)(*param_1 + 8) + 0xc)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(**(int **)(*param_1 + 8) + 0xc)" (( "(") (binary_expression "**(int **)(*param_1 + 8) + 0xc" (pointer_expression "**(int **)(*param_1 + 8)" (* "*") (pointer_expression "*(int **)(*param_1 + 8)" (* "*") (cast_expression "(int **)(*param_1 + 8)" (( "(") (type_descriptor "int **" (primitive_type "int") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(*param_1 + 8)" (( "(") (binary_expression "*param_1 + 8" (pointer_expression "*param_1" (* "*") (identifier "param_1")) (+ "+") (number_literal "8")) () ")"))))) (+ "+") (number_literal "0xc")) () ")"))))) (; ";")) (if_statement "if (pcVar25 == (code *)PTR_is_big_endian_004c2950) {\n              iVar8 = (**(code **)(**(int **)(*param_1 + 8) + 0xe8))();\n            }\n            else {\n              iVar8 = (*pcVar25)();\n            }" (if "if") (parenthesized_expression "(pcVar25 == (code *)PTR_is_big_endian_004c2950)" (( "(") (binary_expression "pcVar25 == (code *)PTR_is_big_endian_004c2950" (identifier "pcVar25") (== "==") (cast_expression "(code *)PTR_is_big_endian_004c2950" (( "(") (type_descriptor "code *" (type_identifier "code") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "PTR_is_big_endian_004c2950"))) () ")")) (compound_statement "{\n              iVar8 = (**(code **)(**(int **)(*param_1 + 8) + 0xe8))();\n            }" ({ "{") (expression_statement "iVar8 = (**(code **)(**(int **)(*param_1 + 8) + 0xe8))();" (assignment_expression "iVar8 = (**(code **)(**(int **)(*param_1 + 8) + 0xe8))()" (identifier "iVar8") (= "=") (call_expression "(**(code **)(**(int **)(*param_1 + 8) + 0xe8))()" (parenthesized_expression "(**(code **)(**(int **)(*param_1 + 8) + 0xe8))" (( "(") (pointer_expression "**(code **)(**(int **)(*param_1 + 8) + 0xe8)" (* "*") (pointer_expression "*(code **)(**(int **)(*param_1 + 8) + 0xe8)" (* "*") (cast_expression "(code **)(**(int **)(*param_1 + 8) + 0xe8)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(**(int **)(*param_1 + 8) + 0xe8)" (( "(") (binary_expression "**(int **)(*param_1 + 8) + 0xe8" (pointer_expression "**(int **)(*param_1 + 8)" (* "*") (pointer_expression "*(int **)(*param_1 + 8)" (* "*") (cast_expression "(int **)(*param_1 + 8)" (( "(") (type_descriptor "int **" (primitive_type "int") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(*param_1 + 8)" (( "(") (binary_expression "*param_1 + 8" (pointer_expression "*param_1" (* "*") (identifier "param_1")) (+ "+") (number_literal "8")) () ")"))))) (+ "+") (number_literal "0xe8")) () ")"))))) () ")")) (argument_list "()" (( "(") () ")")))) (; ";")) (} "}")) (else_clause "else {\n              iVar8 = (*pcVar25)();\n            }" (else "else") (compound_statement "{\n              iVar8 = (*pcVar25)();\n            }" ({ "{") (expression_statement "iVar8 = (*pcVar25)();" (assignment_expression "iVar8 = (*pcVar25)()" (identifier "iVar8") (= "=") (call_expression "(*pcVar25)()" (parenthesized_expression "(*pcVar25)" (( "(") (pointer_expression "*pcVar25" (* "*") (identifier "pcVar25")) () ")")) (argument_list "()" (( "(") () ")")))) (; ";")) (} "}")))) (expression_statement "local_60._4_4_ = (uint *)local_44[1];" (assignment_expression "local_60._4_4_ = (uint *)local_44[1]" (field_expression "local_60._4_4_" (identifier "local_60") (. ".") (field_identifier "_4_4_")) (= "=") (cast_expression "(uint *)local_44[1]" (( "(") (type_descriptor "uint *" (type_identifier "uint") (abstract_pointer_declarator "*" (* "*"))) () ")") (subscript_expression "local_44[1]" (identifier "local_44") ([ "[") (number_literal "1") (] "]")))) (; ";")) (expression_statement "local_60._0_4_ = (uint *)*local_44;" (assignment_expression "local_60._0_4_ = (uint *)*local_44" (field_expression "local_60._0_4_" (identifier "local_60") (. ".") (field_identifier "_0_4_")) (= "=") (cast_expression "(uint *)*local_44" (( "(") (type_descriptor "uint *" (type_identifier "uint") (abstract_pointer_declarator "*" (* "*"))) () ")") (pointer_expression "*local_44" (* "*") (identifier "local_44")))) (; ";")) (if_statement "if (iVar8 == 0) {\n              uVar15 = (uint)local_60._4_4_ & 0xff;\n              uVar16 = (uint)local_60._4_4_ >> 8;\n              uVar2 = (uint)local_60._4_4_ >> 0x10;\n              uVar4 = (uint)local_60._4_4_ >> 0x18;\n              local_60._4_4_ =\n                   (uint *)(((((uint)local_60._0_4_ >> 0x10) << 0x18 |\n                             ((uint)local_60._0_4_ >> 0x18) << 0x10) >> 0x10) +\n                           (((uint)local_60._0_4_ & 0xff) << 8 | (uint)local_60._0_4_ >> 8 & 0xff) *\n                           0x10000);\n              local_60._0_4_ =\n                   (uint *)(((uVar2 << 0x18 | uVar4 << 0x10) >> 0x10) +\n                           (uVar15 << 8 | uVar16 & 0xff) * 0x10000);\n            }" (if "if") (parenthesized_expression "(iVar8 == 0)" (( "(") (binary_expression "iVar8 == 0" (identifier "iVar8") (== "==") (number_literal "0")) () ")")) (compound_statement "{\n              uVar15 = (uint)local_60._4_4_ & 0xff;\n              uVar16 = (uint)local_60._4_4_ >> 8;\n              uVar2 = (uint)local_60._4_4_ >> 0x10;\n              uVar4 = (uint)local_60._4_4_ >> 0x18;\n              local_60._4_4_ =\n                   (uint *)(((((uint)local_60._0_4_ >> 0x10) << 0x18 |\n                             ((uint)local_60._0_4_ >> 0x18) << 0x10) >> 0x10) +\n                           (((uint)local_60._0_4_ & 0xff) << 8 | (uint)local_60._0_4_ >> 8 & 0xff) *\n                           0x10000);\n              local_60._0_4_ =\n                   (uint *)(((uVar2 << 0x18 | uVar4 << 0x10) >> 0x10) +\n                           (uVar15 << 8 | uVar16 & 0xff) * 0x10000);\n            }" ({ "{") (expression_statement "uVar15 = (uint)local_60._4_4_ & 0xff;" (assignment_expression "uVar15 = (uint)local_60._4_4_ & 0xff" (identifier "uVar15") (= "=") (binary_expression "(uint)local_60._4_4_ & 0xff" (cast_expression "(uint)local_60._4_4_" (( "(") (type_descriptor "uint" (type_identifier "uint")) () ")") (field_expression "local_60._4_4_" (identifier "local_60") (. ".") (field_identifier "_4_4_"))) (& "&") (number_literal "0xff"))) (; ";")) (expression_statement "uVar16 = (uint)local_60._4_4_ >> 8;" (assignment_expression "uVar16 = (uint)local_60._4_4_ >> 8" (identifier "uVar16") (= "=") (binary_expression "(uint)local_60._4_4_ >> 8" (cast_expression "(uint)local_60._4_4_" (( "(") (type_descriptor "uint" (type_identifier "uint")) () ")") (field_expression "local_60._4_4_" (identifier "local_60") (. ".") (field_identifier "_4_4_"))) (>> ">>") (number_literal "8"))) (; ";")) (expression_statement "uVar2 = (uint)local_60._4_4_ >> 0x10;" (assignment_expression "uVar2 = (uint)local_60._4_4_ >> 0x10" (identifier "uVar2") (= "=") (binary_expression "(uint)local_60._4_4_ >> 0x10" (cast_expression "(uint)local_60._4_4_" (( "(") (type_descriptor "uint" (type_identifier "uint")) () ")") (field_expression "local_60._4_4_" (identifier "local_60") (. ".") (field_identifier "_4_4_"))) (>> ">>") (number_literal "0x10"))) (; ";")) (expression_statement "uVar4 = (uint)local_60._4_4_ >> 0x18;" (assignment_expression "uVar4 = (uint)local_60._4_4_ >> 0x18" (identifier "uVar4") (= "=") (binary_expression "(uint)local_60._4_4_ >> 0x18" (cast_expression "(uint)local_60._4_4_" (( "(") (type_descriptor "uint" (type_identifier "uint")) () ")") (field_expression "local_60._4_4_" (identifier "local_60") (. ".") (field_identifier "_4_4_"))) (>> ">>") (number_literal "0x18"))) (; ";")) (expression_statement "local_60._4_4_ =\n                   (uint *)(((((uint)local_60._0_4_ >> 0x10) << 0x18 |\n                             ((uint)local_60._0_4_ >> 0x18) << 0x10) >> 0x10) +\n                           (((uint)local_60._0_4_ & 0xff) << 8 | (uint)local_60._0_4_ >> 8 & 0xff) *\n                           0x10000);" (assignment_expression "local_60._4_4_ =\n                   (uint *)(((((uint)local_60._0_4_ >> 0x10) << 0x18 |\n                             ((uint)local_60._0_4_ >> 0x18) << 0x10) >> 0x10) +\n                           (((uint)local_60._0_4_ & 0xff) << 8 | (uint)local_60._0_4_ >> 8 & 0xff) *\n                           0x10000)" (field_expression "local_60._4_4_" (identifier "local_60") (. ".") (field_identifier "_4_4_")) (= "=") (cast_expression "(uint *)(((((uint)local_60._0_4_ >> 0x10) << 0x18 |\n                             ((uint)local_60._0_4_ >> 0x18) << 0x10) >> 0x10) +\n                           (((uint)local_60._0_4_ & 0xff) << 8 | (uint)local_60._0_4_ >> 8 & 0xff) *\n                           0x10000)" (( "(") (type_descriptor "uint *" (type_identifier "uint") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(((((uint)local_60._0_4_ >> 0x10) << 0x18 |\n                             ((uint)local_60._0_4_ >> 0x18) << 0x10) >> 0x10) +\n                           (((uint)local_60._0_4_ & 0xff) << 8 | (uint)local_60._0_4_ >> 8 & 0xff) *\n                           0x10000)" (( "(") (binary_expression "((((uint)local_60._0_4_ >> 0x10) << 0x18 |\n                             ((uint)local_60._0_4_ >> 0x18) << 0x10) >> 0x10) +\n                           (((uint)local_60._0_4_ & 0xff) << 8 | (uint)local_60._0_4_ >> 8 & 0xff) *\n                           0x10000" (parenthesized_expression "((((uint)local_60._0_4_ >> 0x10) << 0x18 |\n                             ((uint)local_60._0_4_ >> 0x18) << 0x10) >> 0x10)" (( "(") (binary_expression "(((uint)local_60._0_4_ >> 0x10) << 0x18 |\n                             ((uint)local_60._0_4_ >> 0x18) << 0x10) >> 0x10" (parenthesized_expression "(((uint)local_60._0_4_ >> 0x10) << 0x18 |\n                             ((uint)local_60._0_4_ >> 0x18) << 0x10)" (( "(") (binary_expression "((uint)local_60._0_4_ >> 0x10) << 0x18 |\n                             ((uint)local_60._0_4_ >> 0x18) << 0x10" (binary_expression "((uint)local_60._0_4_ >> 0x10) << 0x18" (parenthesized_expression "((uint)local_60._0_4_ >> 0x10)" (( "(") (binary_expression "(uint)local_60._0_4_ >> 0x10" (cast_expression "(uint)local_60._0_4_" (( "(") (type_descriptor "uint" (type_identifier "uint")) () ")") (field_expression "local_60._0_4_" (identifier "local_60") (. ".") (field_identifier "_0_4_"))) (>> ">>") (number_literal "0x10")) () ")")) (<< "<<") (number_literal "0x18")) (| "|") (binary_expression "((uint)local_60._0_4_ >> 0x18) << 0x10" (parenthesized_expression "((uint)local_60._0_4_ >> 0x18)" (( "(") (binary_expression "(uint)local_60._0_4_ >> 0x18" (cast_expression "(uint)local_60._0_4_" (( "(") (type_descriptor "uint" (type_identifier "uint")) () ")") (field_expression "local_60._0_4_" (identifier "local_60") (. ".") (field_identifier "_0_4_"))) (>> ">>") (number_literal "0x18")) () ")")) (<< "<<") (number_literal "0x10"))) () ")")) (>> ">>") (number_literal "0x10")) () ")")) (+ "+") (binary_expression "(((uint)local_60._0_4_ & 0xff) << 8 | (uint)local_60._0_4_ >> 8 & 0xff) *\n                           0x10000" (parenthesized_expression "(((uint)local_60._0_4_ & 0xff) << 8 | (uint)local_60._0_4_ >> 8 & 0xff)" (( "(") (binary_expression "((uint)local_60._0_4_ & 0xff) << 8 | (uint)local_60._0_4_ >> 8 & 0xff" (binary_expression "((uint)local_60._0_4_ & 0xff) << 8" (parenthesized_expression "((uint)local_60._0_4_ & 0xff)" (( "(") (binary_expression "(uint)local_60._0_4_ & 0xff" (cast_expression "(uint)local_60._0_4_" (( "(") (type_descriptor "uint" (type_identifier "uint")) () ")") (field_expression "local_60._0_4_" (identifier "local_60") (. ".") (field_identifier "_0_4_"))) (& "&") (number_literal "0xff")) () ")")) (<< "<<") (number_literal "8")) (| "|") (binary_expression "(uint)local_60._0_4_ >> 8 & 0xff" (binary_expression "(uint)local_60._0_4_ >> 8" (cast_expression "(uint)local_60._0_4_" (( "(") (type_descriptor "uint" (type_identifier "uint")) () ")") (field_expression "local_60._0_4_" (identifier "local_60") (. ".") (field_identifier "_0_4_"))) (>> ">>") (number_literal "8")) (& "&") (number_literal "0xff"))) () ")")) (* "*") (number_literal "0x10000"))) () ")")))) (; ";")) (expression_statement "local_60._0_4_ =\n                   (uint *)(((uVar2 << 0x18 | uVar4 << 0x10) >> 0x10) +\n                           (uVar15 << 8 | uVar16 & 0xff) * 0x10000);" (assignment_expression "local_60._0_4_ =\n                   (uint *)(((uVar2 << 0x18 | uVar4 << 0x10) >> 0x10) +\n                           (uVar15 << 8 | uVar16 & 0xff) * 0x10000)" (field_expression "local_60._0_4_" (identifier "local_60") (. ".") (field_identifier "_0_4_")) (= "=") (cast_expression "(uint *)(((uVar2 << 0x18 | uVar4 << 0x10) >> 0x10) +\n                           (uVar15 << 8 | uVar16 & 0xff) * 0x10000)" (( "(") (type_descriptor "uint *" (type_identifier "uint") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(((uVar2 << 0x18 | uVar4 << 0x10) >> 0x10) +\n                           (uVar15 << 8 | uVar16 & 0xff) * 0x10000)" (( "(") (binary_expression "((uVar2 << 0x18 | uVar4 << 0x10) >> 0x10) +\n                           (uVar15 << 8 | uVar16 & 0xff) * 0x10000" (parenthesized_expression "((uVar2 << 0x18 | uVar4 << 0x10) >> 0x10)" (( "(") (binary_expression "(uVar2 << 0x18 | uVar4 << 0x10) >> 0x10" (parenthesized_expression "(uVar2 << 0x18 | uVar4 << 0x10)" (( "(") (binary_expression "uVar2 << 0x18 | uVar4 << 0x10" (binary_expression "uVar2 << 0x18" (identifier "uVar2") (<< "<<") (number_literal "0x18")) (| "|") (binary_expression "uVar4 << 0x10" (identifier "uVar4") (<< "<<") (number_literal "0x10"))) () ")")) (>> ">>") (number_literal "0x10")) () ")")) (+ "+") (binary_expression "(uVar15 << 8 | uVar16 & 0xff) * 0x10000" (parenthesized_expression "(uVar15 << 8 | uVar16 & 0xff)" (( "(") (binary_expression "uVar15 << 8 | uVar16 & 0xff" (binary_expression "uVar15 << 8" (identifier "uVar15") (<< "<<") (number_literal "8")) (| "|") (binary_expression "uVar16 & 0xff" (identifier "uVar16") (& "&") (number_literal "0xff"))) () ")")) (* "*") (number_literal "0x10000"))) () ")")))) (; ";")) (} "}"))) (expression_statement "local_44 = local_44 + 2;" (assignment_expression "local_44 = local_44 + 2" (identifier "local_44") (= "=") (binary_expression "local_44 + 2" (identifier "local_44") (+ "+") (number_literal "2"))) (; ";")) (} "}")))) (expression_statement "uVar7 = CONCAT44(local_60._0_4_,local_60._4_4_);" (assignment_expression "uVar7 = CONCAT44(local_60._0_4_,local_60._4_4_)" (identifier "uVar7") (= "=") (call_expression "CONCAT44(local_60._0_4_,local_60._4_4_)" (identifier "CONCAT44") (argument_list "(local_60._0_4_,local_60._4_4_)" (( "(") (field_expression "local_60._0_4_" (identifier "local_60") (. ".") (field_identifier "_0_4_")) (, ",") (field_expression "local_60._4_4_" (identifier "local_60") (. ".") (field_identifier "_4_4_")) () ")")))) (; ";")) (if_statement "if (uVar22 == 0x6e) goto LAB_002e313c;" (if "if") (parenthesized_expression "(uVar22 == 0x6e)" (( "(") (binary_expression "uVar22 == 0x6e" (identifier "uVar22") (== "==") (number_literal "0x6e")) () ")")) (goto_statement "goto LAB_002e313c;" (goto "goto") (statement_identifier "LAB_002e313c") (; ";"))) (expression_statement "uVar7 = CONCAT44(local_60._0_4_,local_60._4_4_);" (assignment_expression "uVar7 = CONCAT44(local_60._0_4_,local_60._4_4_)" (identifier "uVar7") (= "=") (call_expression "CONCAT44(local_60._0_4_,local_60._4_4_)" (identifier "CONCAT44") (argument_list "(local_60._0_4_,local_60._4_4_)" (( "(") (field_expression "local_60._0_4_" (identifier "local_60") (. ".") (field_identifier "_0_4_")) (, ",") (field_expression "local_60._4_4_" (identifier "local_60") (. ".") (field_identifier "_4_4_")) () ")")))) (; ";")) (expression_statement "uVar26 = CONCAT44(local_60._0_4_,local_60._4_4_);" (assignment_expression "uVar26 = CONCAT44(local_60._0_4_,local_60._4_4_)" (identifier "uVar26") (= "=") (call_expression "CONCAT44(local_60._0_4_,local_60._4_4_)" (identifier "CONCAT44") (argument_list "(local_60._0_4_,local_60._4_4_)" (( "(") (field_expression "local_60._0_4_" (identifier "local_60") (. ".") (field_identifier "_0_4_")) (, ",") (field_expression "local_60._4_4_" (identifier "local_60") (. ".") (field_identifier "_4_4_")) () ")")))) (; ";")) (if_statement "if (uVar22 == 0x2007) goto LAB_002e313c;" (if "if") (parenthesized_expression "(uVar22 == 0x2007)" (( "(") (binary_expression "uVar22 == 0x2007" (identifier "uVar22") (== "==") (number_literal "0x2007")) () ")")) (goto_statement "goto LAB_002e313c;" (goto "goto") (statement_identifier "LAB_002e313c") (; ";"))) (goto_statement "goto joined_r0x002e3124;" (goto "goto") (statement_identifier "joined_r0x002e3124") (; ";")) (} "}"))) (if_statement "if (uVar19 == 0x11) {\n          puVar9 = (uint *)((int)local_44 + 1);\n          uVar15 = (uint)*(byte *)local_44;\n          uVar26 = (ulonglong)uVar15;\n          local_44 = puVar9;\n          if (uVar22 == 0x31) goto LAB_002e30bc;\n          if (0x31 < uVar22) {\n            uVar26 = (ulonglong)uVar15;\n            if ((uVar22 != 0x6e) && (uVar26 = (ulonglong)uVar15, uVar22 != 0x2007)) {\n              uVar7 = (ulonglong)uVar15;\n              if (uVar22 != 0x47) goto LAB_002e313c;\n              param_1[0x18] = 0;\n              param_1[0x19] = uVar15;\n              uVar7 = (ulonglong)uVar15;\n              goto LAB_002e313c;\n            }\n            goto LAB_002e3858;\n          }\n          if (uVar22 == 1) {\n            param_1[8] = 0;\n            param_1[9] = uVar15;\n            uVar7 = (ulonglong)uVar15;\n            goto LAB_002e313c;\n          }\n          goto joined_r0x002e3124;\n        }" (if "if") (parenthesized_expression "(uVar19 == 0x11)" (( "(") (binary_expression "uVar19 == 0x11" (identifier "uVar19") (== "==") (number_literal "0x11")) () ")")) (compound_statement "{\n          puVar9 = (uint *)((int)local_44 + 1);\n          uVar15 = (uint)*(byte *)local_44;\n          uVar26 = (ulonglong)uVar15;\n          local_44 = puVar9;\n          if (uVar22 == 0x31) goto LAB_002e30bc;\n          if (0x31 < uVar22) {\n            uVar26 = (ulonglong)uVar15;\n            if ((uVar22 != 0x6e) && (uVar26 = (ulonglong)uVar15, uVar22 != 0x2007)) {\n              uVar7 = (ulonglong)uVar15;\n              if (uVar22 != 0x47) goto LAB_002e313c;\n              param_1[0x18] = 0;\n              param_1[0x19] = uVar15;\n              uVar7 = (ulonglong)uVar15;\n              goto LAB_002e313c;\n            }\n            goto LAB_002e3858;\n          }\n          if (uVar22 == 1) {\n            param_1[8] = 0;\n            param_1[9] = uVar15;\n            uVar7 = (ulonglong)uVar15;\n            goto LAB_002e313c;\n          }\n          goto joined_r0x002e3124;\n        }" ({ "{") (expression_statement "puVar9 = (uint *)((int)local_44 + 1);" (assignment_expression "puVar9 = (uint *)((int)local_44 + 1)" (identifier "puVar9") (= "=") (cast_expression "(uint *)((int)local_44 + 1)" (( "(") (type_descriptor "uint *" (type_identifier "uint") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "((int)local_44 + 1)" (( "(") (binary_expression "(int)local_44 + 1" (cast_expression "(int)local_44" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "local_44")) (+ "+") (number_literal "1")) () ")")))) (; ";")) (expression_statement "uVar15 = (uint)*(byte *)local_44;" (assignment_expression "uVar15 = (uint)*(byte *)local_44" (identifier "uVar15") (= "=") (binary_expression "(uint)*(byte *)local_44" (parenthesized_expression "(uint)" (( "(") (identifier "uint") () ")")) (* "*") (cast_expression "(byte *)local_44" (( "(") (type_descriptor "byte *" (type_identifier "byte") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "local_44")))) (; ";")) (expression_statement "uVar26 = (ulonglong)uVar15;" (assignment_expression "uVar26 = (ulonglong)uVar15" (identifier "uVar26") (= "=") (cast_expression "(ulonglong)uVar15" (( "(") (type_descriptor "ulonglong" (type_identifier "ulonglong")) () ")") (identifier "uVar15"))) (; ";")) (expression_statement "local_44 = puVar9;" (assignment_expression "local_44 = puVar9" (identifier "local_44") (= "=") (identifier "puVar9")) (; ";")) (if_statement "if (uVar22 == 0x31) goto LAB_002e30bc;" (if "if") (parenthesized_expression "(uVar22 == 0x31)" (( "(") (binary_expression "uVar22 == 0x31" (identifier "uVar22") (== "==") (number_literal "0x31")) () ")")) (goto_statement "goto LAB_002e30bc;" (goto "goto") (statement_identifier "LAB_002e30bc") (; ";"))) (if_statement "if (0x31 < uVar22) {\n            uVar26 = (ulonglong)uVar15;\n            if ((uVar22 != 0x6e) && (uVar26 = (ulonglong)uVar15, uVar22 != 0x2007)) {\n              uVar7 = (ulonglong)uVar15;\n              if (uVar22 != 0x47) goto LAB_002e313c;\n              param_1[0x18] = 0;\n              param_1[0x19] = uVar15;\n              uVar7 = (ulonglong)uVar15;\n              goto LAB_002e313c;\n            }\n            goto LAB_002e3858;\n          }" (if "if") (parenthesized_expression "(0x31 < uVar22)" (( "(") (binary_expression "0x31 < uVar22" (number_literal "0x31") (< "<") (identifier "uVar22")) () ")")) (compound_statement "{\n            uVar26 = (ulonglong)uVar15;\n            if ((uVar22 != 0x6e) && (uVar26 = (ulonglong)uVar15, uVar22 != 0x2007)) {\n              uVar7 = (ulonglong)uVar15;\n              if (uVar22 != 0x47) goto LAB_002e313c;\n              param_1[0x18] = 0;\n              param_1[0x19] = uVar15;\n              uVar7 = (ulonglong)uVar15;\n              goto LAB_002e313c;\n            }\n            goto LAB_002e3858;\n          }" ({ "{") (expression_statement "uVar26 = (ulonglong)uVar15;" (assignment_expression "uVar26 = (ulonglong)uVar15" (identifier "uVar26") (= "=") (cast_expression "(ulonglong)uVar15" (( "(") (type_descriptor "ulonglong" (type_identifier "ulonglong")) () ")") (identifier "uVar15"))) (; ";")) (if_statement "if ((uVar22 != 0x6e) && (uVar26 = (ulonglong)uVar15, uVar22 != 0x2007)) {\n              uVar7 = (ulonglong)uVar15;\n              if (uVar22 != 0x47) goto LAB_002e313c;\n              param_1[0x18] = 0;\n              param_1[0x19] = uVar15;\n              uVar7 = (ulonglong)uVar15;\n              goto LAB_002e313c;\n            }" (if "if") (parenthesized_expression "((uVar22 != 0x6e) && (uVar26 = (ulonglong)uVar15, uVar22 != 0x2007))" (( "(") (binary_expression "(uVar22 != 0x6e) && (uVar26 = (ulonglong)uVar15, uVar22 != 0x2007)" (parenthesized_expression "(uVar22 != 0x6e)" (( "(") (binary_expression "uVar22 != 0x6e" (identifier "uVar22") (!= "!=") (number_literal "0x6e")) () ")")) (&& "&&") (parenthesized_expression "(uVar26 = (ulonglong)uVar15, uVar22 != 0x2007)" (( "(") (comma_expression "uVar26 = (ulonglong)uVar15, uVar22 != 0x2007" (assignment_expression "uVar26 = (ulonglong)uVar15" (identifier "uVar26") (= "=") (cast_expression "(ulonglong)uVar15" (( "(") (type_descriptor "ulonglong" (type_identifier "ulonglong")) () ")") (identifier "uVar15"))) (, ",") (binary_expression "uVar22 != 0x2007" (identifier "uVar22") (!= "!=") (number_literal "0x2007"))) () ")"))) () ")")) (compound_statement "{\n              uVar7 = (ulonglong)uVar15;\n              if (uVar22 != 0x47) goto LAB_002e313c;\n              param_1[0x18] = 0;\n              param_1[0x19] = uVar15;\n              uVar7 = (ulonglong)uVar15;\n              goto LAB_002e313c;\n            }" ({ "{") (expression_statement "uVar7 = (ulonglong)uVar15;" (assignment_expression "uVar7 = (ulonglong)uVar15" (identifier "uVar7") (= "=") (cast_expression "(ulonglong)uVar15" (( "(") (type_descriptor "ulonglong" (type_identifier "ulonglong")) () ")") (identifier "uVar15"))) (; ";")) (if_statement "if (uVar22 != 0x47) goto LAB_002e313c;" (if "if") (parenthesized_expression "(uVar22 != 0x47)" (( "(") (binary_expression "uVar22 != 0x47" (identifier "uVar22") (!= "!=") (number_literal "0x47")) () ")")) (goto_statement "goto LAB_002e313c;" (goto "goto") (statement_identifier "LAB_002e313c") (; ";"))) (expression_statement "param_1[0x18] = 0;" (assignment_expression "param_1[0x18] = 0" (subscript_expression "param_1[0x18]" (identifier "param_1") ([ "[") (number_literal "0x18") (] "]")) (= "=") (number_literal "0")) (; ";")) (expression_statement "param_1[0x19] = uVar15;" (assignment_expression "param_1[0x19] = uVar15" (subscript_expression "param_1[0x19]" (identifier "param_1") ([ "[") (number_literal "0x19") (] "]")) (= "=") (identifier "uVar15")) (; ";")) (expression_statement "uVar7 = (ulonglong)uVar15;" (assignment_expression "uVar7 = (ulonglong)uVar15" (identifier "uVar7") (= "=") (cast_expression "(ulonglong)uVar15" (( "(") (type_descriptor "ulonglong" (type_identifier "ulonglong")) () ")") (identifier "uVar15"))) (; ";")) (goto_statement "goto LAB_002e313c;" (goto "goto") (statement_identifier "LAB_002e313c") (; ";")) (} "}"))) (goto_statement "goto LAB_002e3858;" (goto "goto") (statement_identifier "LAB_002e3858") (; ";")) (} "}"))) (if_statement "if (uVar22 == 1) {\n            param_1[8] = 0;\n            param_1[9] = uVar15;\n            uVar7 = (ulonglong)uVar15;\n            goto LAB_002e313c;\n          }" (if "if") (parenthesized_expression "(uVar22 == 1)" (( "(") (binary_expression "uVar22 == 1" (identifier "uVar22") (== "==") (number_literal "1")) () ")")) (compound_statement "{\n            param_1[8] = 0;\n            param_1[9] = uVar15;\n            uVar7 = (ulonglong)uVar15;\n            goto LAB_002e313c;\n          }" ({ "{") (expression_statement "param_1[8] = 0;" (assignment_expression "param_1[8] = 0" (subscript_expression "param_1[8]" (identifier "param_1") ([ "[") (number_literal "8") (] "]")) (= "=") (number_literal "0")) (; ";")) (expression_statement "param_1[9] = uVar15;" (assignment_expression "param_1[9] = uVar15" (subscript_expression "param_1[9]" (identifier "param_1") ([ "[") (number_literal "9") (] "]")) (= "=") (identifier "uVar15")) (; ";")) (expression_statement "uVar7 = (ulonglong)uVar15;" (assignment_expression "uVar7 = (ulonglong)uVar15" (identifier "uVar7") (= "=") (cast_expression "(ulonglong)uVar15" (( "(") (type_descriptor "ulonglong" (type_identifier "ulonglong")) () ")") (identifier "uVar15"))) (; ";")) (goto_statement "goto LAB_002e313c;" (goto "goto") (statement_identifier "LAB_002e313c") (; ";")) (} "}"))) (goto_statement "goto joined_r0x002e3124;" (goto "goto") (statement_identifier "joined_r0x002e3124") (; ";")) (} "}"))) (if_statement "if (uVar19 < 0x12) {\n          if (uVar19 == 0xf) goto LAB_002e34d8;\n          if (uVar19 != 0x10) {\n            return 0;\n          }\n          iVar10 = *param_1;\n          iVar8 = *(int *)(iVar10 + 0x48);\n          if (*(uint *)(iVar10 + 0x50) < 3) {\n            iVar8 = *(int *)(iVar10 + 0x4c);\n          }\n          if (iVar8 == 4) {\n            pcVar25 = *(code **)(**(int **)(iVar10 + 8) + 0xc);\n            if (pcVar25 == (code *)PTR_is_big_endian_004c2950) {\n              local_30 = puVar18;\n              iVar8 = (**(code **)(**(int **)(iVar10 + 8) + 0xe8))();\n            }\n            else {\n              local_30 = puVar18;\n              iVar8 = (*pcVar25)();\n            }\n            uVar15 = *local_44;\n            if (iVar8 == 0) {\n              uVar15 = (((uVar15 >> 0x10) << 0x18 | (uVar15 >> 0x18) << 0x10) >> 0x10) +\n                       ((uVar15 & 0xff) << 8 | uVar15 >> 8 & 0xff) * 0x10000;\n            }\n            local_44 = local_44 + 1;\n            uVar26 = (ulonglong)uVar15;\n          }\n          else {\n            local_30 = puVar18;\n            uVar26 = (*local_34)(iVar10,&local_44);\n          }\n          local_50 = uVar26;\n          local_58 = (*local_3c)(*param_1);\n          uVar26 = local_50;\n        }\n        else {\n          if (uVar19 == 0x13) {\n            pcVar25 = *(code **)(**(int **)(*param_1 + 8) + 0xc);\n            if (pcVar25 == (code *)PTR_is_big_endian_004c2950) {\n              local_30 = puVar18;\n              iVar8 = (**(code **)(**(int **)(*param_1 + 8) + 0xe8))();\n            }\n            else {\n              local_30 = puVar18;\n              iVar8 = (*pcVar25)();\n            }\n            uVar15 = *local_44;\n            if (iVar8 == 0) {\n              uVar15 = (((uVar15 >> 0x10) << 0x18 | (uVar15 >> 0x18) << 0x10) >> 0x10) +\n                       ((uVar15 & 0xff) << 8 | uVar15 >> 8 & 0xff) * 0x10000;\n            }\n            local_44 = local_44 + 1;\n            iVar8 = *param_1;\n            uVar26 = (ulonglong)uVar15;\n          }\n          else {\n            if (uVar19 < 0x14) {\n              pcVar25 = *(code **)(**(int **)(*param_1 + 8) + 0xc);\n              if (pcVar25 == (code *)PTR_is_big_endian_004c2950) {\n                iVar8 = (**(code **)(**(int **)(*param_1 + 8) + 0xe8))();\n              }\n              else {\n                iVar8 = (*pcVar25)();\n              }\n              uVar6 = *(ushort *)local_44;\n              if (iVar8 == 0) {\n                uVar6 = CONCAT11(*(byte *)((int)local_44 + 1),*(byte *)local_44);\n              }\n              local_44 = (uint *)((int)local_44 + 2);\n              uVar26 = (ulonglong)uVar6;\n              goto joined_r0x002e3998;\n            }\n            pcVar25 = *(code **)(**(int **)(*param_1 + 8) + 0xc);\n            if (pcVar25 == (code *)PTR_is_big_endian_004c2950) {\n              local_30 = puVar18;\n              iVar8 = (**(code **)(**(int **)(*param_1 + 8) + 0xe8))();\n            }\n            else {\n              local_30 = puVar18;\n              iVar8 = (*pcVar25)();\n            }\n            uVar15 = local_44[1];\n            uVar16 = *local_44;\n            if (iVar8 == 0) {\n              uVar2 = uVar15 & 0xff;\n              uVar4 = uVar15 >> 8;\n              uVar3 = uVar15 >> 0x10;\n              uVar5 = uVar15 >> 0x18;\n              uVar15 = (((uVar16 >> 0x10) << 0x18 | (uVar16 >> 0x18) << 0x10) >> 0x10) +\n                       ((uVar16 & 0xff) << 8 | uVar16 >> 8 & 0xff) * 0x10000;\n              uVar16 = ((uVar3 << 0x18 | uVar5 << 0x10) >> 0x10) +\n                       (uVar2 << 8 | uVar4 & 0xff) * 0x10000;\n            }\n            uVar26 = CONCAT44(uVar16,uVar15);\n            local_44 = local_44 + 2;\n            iVar8 = *param_1;\n          }\nLAB_002e3970:\n          local_50 = uVar26;\n          local_58 = (*local_3c)(iVar8);\n          uVar26 = local_50;\n        }" (if "if") (parenthesized_expression "(uVar19 < 0x12)" (( "(") (binary_expression "uVar19 < 0x12" (identifier "uVar19") (< "<") (number_literal "0x12")) () ")")) (compound_statement "{\n          if (uVar19 == 0xf) goto LAB_002e34d8;\n          if (uVar19 != 0x10) {\n            return 0;\n          }\n          iVar10 = *param_1;\n          iVar8 = *(int *)(iVar10 + 0x48);\n          if (*(uint *)(iVar10 + 0x50) < 3) {\n            iVar8 = *(int *)(iVar10 + 0x4c);\n          }\n          if (iVar8 == 4) {\n            pcVar25 = *(code **)(**(int **)(iVar10 + 8) + 0xc);\n            if (pcVar25 == (code *)PTR_is_big_endian_004c2950) {\n              local_30 = puVar18;\n              iVar8 = (**(code **)(**(int **)(iVar10 + 8) + 0xe8))();\n            }\n            else {\n              local_30 = puVar18;\n              iVar8 = (*pcVar25)();\n            }\n            uVar15 = *local_44;\n            if (iVar8 == 0) {\n              uVar15 = (((uVar15 >> 0x10) << 0x18 | (uVar15 >> 0x18) << 0x10) >> 0x10) +\n                       ((uVar15 & 0xff) << 8 | uVar15 >> 8 & 0xff) * 0x10000;\n            }\n            local_44 = local_44 + 1;\n            uVar26 = (ulonglong)uVar15;\n          }\n          else {\n            local_30 = puVar18;\n            uVar26 = (*local_34)(iVar10,&local_44);\n          }\n          local_50 = uVar26;\n          local_58 = (*local_3c)(*param_1);\n          uVar26 = local_50;\n        }" ({ "{") (if_statement "if (uVar19 == 0xf) goto LAB_002e34d8;" (if "if") (parenthesized_expression "(uVar19 == 0xf)" (( "(") (binary_expression "uVar19 == 0xf" (identifier "uVar19") (== "==") (number_literal "0xf")) () ")")) (goto_statement "goto LAB_002e34d8;" (goto "goto") (statement_identifier "LAB_002e34d8") (; ";"))) (if_statement "if (uVar19 != 0x10) {\n            return 0;\n          }" (if "if") (parenthesized_expression "(uVar19 != 0x10)" (( "(") (binary_expression "uVar19 != 0x10" (identifier "uVar19") (!= "!=") (number_literal "0x10")) () ")")) (compound_statement "{\n            return 0;\n          }" ({ "{") (return_statement "return 0;" (return "return") (number_literal "0") (; ";")) (} "}"))) (expression_statement "iVar10 = *param_1;" (assignment_expression "iVar10 = *param_1" (identifier "iVar10") (= "=") (pointer_expression "*param_1" (* "*") (identifier "param_1"))) (; ";")) (expression_statement "iVar8 = *(int *)(iVar10 + 0x48);" (assignment_expression "iVar8 = *(int *)(iVar10 + 0x48)" (identifier "iVar8") (= "=") (pointer_expression "*(int *)(iVar10 + 0x48)" (* "*") (cast_expression "(int *)(iVar10 + 0x48)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar10 + 0x48)" (( "(") (binary_expression "iVar10 + 0x48" (identifier "iVar10") (+ "+") (number_literal "0x48")) () ")"))))) (; ";")) (if_statement "if (*(uint *)(iVar10 + 0x50) < 3) {\n            iVar8 = *(int *)(iVar10 + 0x4c);\n          }" (if "if") (parenthesized_expression "(*(uint *)(iVar10 + 0x50) < 3)" (( "(") (binary_expression "*(uint *)(iVar10 + 0x50) < 3" (pointer_expression "*(uint *)(iVar10 + 0x50)" (* "*") (cast_expression "(uint *)(iVar10 + 0x50)" (( "(") (type_descriptor "uint *" (type_identifier "uint") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar10 + 0x50)" (( "(") (binary_expression "iVar10 + 0x50" (identifier "iVar10") (+ "+") (number_literal "0x50")) () ")")))) (< "<") (number_literal "3")) () ")")) (compound_statement "{\n            iVar8 = *(int *)(iVar10 + 0x4c);\n          }" ({ "{") (expression_statement "iVar8 = *(int *)(iVar10 + 0x4c);" (assignment_expression "iVar8 = *(int *)(iVar10 + 0x4c)" (identifier "iVar8") (= "=") (pointer_expression "*(int *)(iVar10 + 0x4c)" (* "*") (cast_expression "(int *)(iVar10 + 0x4c)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar10 + 0x4c)" (( "(") (binary_expression "iVar10 + 0x4c" (identifier "iVar10") (+ "+") (number_literal "0x4c")) () ")"))))) (; ";")) (} "}"))) (if_statement "if (iVar8 == 4) {\n            pcVar25 = *(code **)(**(int **)(iVar10 + 8) + 0xc);\n            if (pcVar25 == (code *)PTR_is_big_endian_004c2950) {\n              local_30 = puVar18;\n              iVar8 = (**(code **)(**(int **)(iVar10 + 8) + 0xe8))();\n            }\n            else {\n              local_30 = puVar18;\n              iVar8 = (*pcVar25)();\n            }\n            uVar15 = *local_44;\n            if (iVar8 == 0) {\n              uVar15 = (((uVar15 >> 0x10) << 0x18 | (uVar15 >> 0x18) << 0x10) >> 0x10) +\n                       ((uVar15 & 0xff) << 8 | uVar15 >> 8 & 0xff) * 0x10000;\n            }\n            local_44 = local_44 + 1;\n            uVar26 = (ulonglong)uVar15;\n          }\n          else {\n            local_30 = puVar18;\n            uVar26 = (*local_34)(iVar10,&local_44);\n          }" (if "if") (parenthesized_expression "(iVar8 == 4)" (( "(") (binary_expression "iVar8 == 4" (identifier "iVar8") (== "==") (number_literal "4")) () ")")) (compound_statement "{\n            pcVar25 = *(code **)(**(int **)(iVar10 + 8) + 0xc);\n            if (pcVar25 == (code *)PTR_is_big_endian_004c2950) {\n              local_30 = puVar18;\n              iVar8 = (**(code **)(**(int **)(iVar10 + 8) + 0xe8))();\n            }\n            else {\n              local_30 = puVar18;\n              iVar8 = (*pcVar25)();\n            }\n            uVar15 = *local_44;\n            if (iVar8 == 0) {\n              uVar15 = (((uVar15 >> 0x10) << 0x18 | (uVar15 >> 0x18) << 0x10) >> 0x10) +\n                       ((uVar15 & 0xff) << 8 | uVar15 >> 8 & 0xff) * 0x10000;\n            }\n            local_44 = local_44 + 1;\n            uVar26 = (ulonglong)uVar15;\n          }" ({ "{") (expression_statement "pcVar25 = *(code **)(**(int **)(iVar10 + 8) + 0xc);" (assignment_expression "pcVar25 = *(code **)(**(int **)(iVar10 + 8) + 0xc)" (identifier "pcVar25") (= "=") (pointer_expression "*(code **)(**(int **)(iVar10 + 8) + 0xc)" (* "*") (cast_expression "(code **)(**(int **)(iVar10 + 8) + 0xc)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(**(int **)(iVar10 + 8) + 0xc)" (( "(") (binary_expression "**(int **)(iVar10 + 8) + 0xc" (pointer_expression "**(int **)(iVar10 + 8)" (* "*") (pointer_expression "*(int **)(iVar10 + 8)" (* "*") (cast_expression "(int **)(iVar10 + 8)" (( "(") (type_descriptor "int **" (primitive_type "int") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(iVar10 + 8)" (( "(") (binary_expression "iVar10 + 8" (identifier "iVar10") (+ "+") (number_literal "8")) () ")"))))) (+ "+") (number_literal "0xc")) () ")"))))) (; ";")) (if_statement "if (pcVar25 == (code *)PTR_is_big_endian_004c2950) {\n              local_30 = puVar18;\n              iVar8 = (**(code **)(**(int **)(iVar10 + 8) + 0xe8))();\n            }\n            else {\n              local_30 = puVar18;\n              iVar8 = (*pcVar25)();\n            }" (if "if") (parenthesized_expression "(pcVar25 == (code *)PTR_is_big_endian_004c2950)" (( "(") (binary_expression "pcVar25 == (code *)PTR_is_big_endian_004c2950" (identifier "pcVar25") (== "==") (cast_expression "(code *)PTR_is_big_endian_004c2950" (( "(") (type_descriptor "code *" (type_identifier "code") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "PTR_is_big_endian_004c2950"))) () ")")) (compound_statement "{\n              local_30 = puVar18;\n              iVar8 = (**(code **)(**(int **)(iVar10 + 8) + 0xe8))();\n            }" ({ "{") (expression_statement "local_30 = puVar18;" (assignment_expression "local_30 = puVar18" (identifier "local_30") (= "=") (identifier "puVar18")) (; ";")) (expression_statement "iVar8 = (**(code **)(**(int **)(iVar10 + 8) + 0xe8))();" (assignment_expression "iVar8 = (**(code **)(**(int **)(iVar10 + 8) + 0xe8))()" (identifier "iVar8") (= "=") (call_expression "(**(code **)(**(int **)(iVar10 + 8) + 0xe8))()" (parenthesized_expression "(**(code **)(**(int **)(iVar10 + 8) + 0xe8))" (( "(") (pointer_expression "**(code **)(**(int **)(iVar10 + 8) + 0xe8)" (* "*") (pointer_expression "*(code **)(**(int **)(iVar10 + 8) + 0xe8)" (* "*") (cast_expression "(code **)(**(int **)(iVar10 + 8) + 0xe8)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(**(int **)(iVar10 + 8) + 0xe8)" (( "(") (binary_expression "**(int **)(iVar10 + 8) + 0xe8" (pointer_expression "**(int **)(iVar10 + 8)" (* "*") (pointer_expression "*(int **)(iVar10 + 8)" (* "*") (cast_expression "(int **)(iVar10 + 8)" (( "(") (type_descriptor "int **" (primitive_type "int") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(iVar10 + 8)" (( "(") (binary_expression "iVar10 + 8" (identifier "iVar10") (+ "+") (number_literal "8")) () ")"))))) (+ "+") (number_literal "0xe8")) () ")"))))) () ")")) (argument_list "()" (( "(") () ")")))) (; ";")) (} "}")) (else_clause "else {\n              local_30 = puVar18;\n              iVar8 = (*pcVar25)();\n            }" (else "else") (compound_statement "{\n              local_30 = puVar18;\n              iVar8 = (*pcVar25)();\n            }" ({ "{") (expression_statement "local_30 = puVar18;" (assignment_expression "local_30 = puVar18" (identifier "local_30") (= "=") (identifier "puVar18")) (; ";")) (expression_statement "iVar8 = (*pcVar25)();" (assignment_expression "iVar8 = (*pcVar25)()" (identifier "iVar8") (= "=") (call_expression "(*pcVar25)()" (parenthesized_expression "(*pcVar25)" (( "(") (pointer_expression "*pcVar25" (* "*") (identifier "pcVar25")) () ")")) (argument_list "()" (( "(") () ")")))) (; ";")) (} "}")))) (expression_statement "uVar15 = *local_44;" (assignment_expression "uVar15 = *local_44" (identifier "uVar15") (= "=") (pointer_expression "*local_44" (* "*") (identifier "local_44"))) (; ";")) (if_statement "if (iVar8 == 0) {\n              uVar15 = (((uVar15 >> 0x10) << 0x18 | (uVar15 >> 0x18) << 0x10) >> 0x10) +\n                       ((uVar15 & 0xff) << 8 | uVar15 >> 8 & 0xff) * 0x10000;\n            }" (if "if") (parenthesized_expression "(iVar8 == 0)" (( "(") (binary_expression "iVar8 == 0" (identifier "iVar8") (== "==") (number_literal "0")) () ")")) (compound_statement "{\n              uVar15 = (((uVar15 >> 0x10) << 0x18 | (uVar15 >> 0x18) << 0x10) >> 0x10) +\n                       ((uVar15 & 0xff) << 8 | uVar15 >> 8 & 0xff) * 0x10000;\n            }" ({ "{") (expression_statement "uVar15 = (((uVar15 >> 0x10) << 0x18 | (uVar15 >> 0x18) << 0x10) >> 0x10) +\n                       ((uVar15 & 0xff) << 8 | uVar15 >> 8 & 0xff) * 0x10000;" (assignment_expression "uVar15 = (((uVar15 >> 0x10) << 0x18 | (uVar15 >> 0x18) << 0x10) >> 0x10) +\n                       ((uVar15 & 0xff) << 8 | uVar15 >> 8 & 0xff) * 0x10000" (identifier "uVar15") (= "=") (binary_expression "(((uVar15 >> 0x10) << 0x18 | (uVar15 >> 0x18) << 0x10) >> 0x10) +\n                       ((uVar15 & 0xff) << 8 | uVar15 >> 8 & 0xff) * 0x10000" (parenthesized_expression "(((uVar15 >> 0x10) << 0x18 | (uVar15 >> 0x18) << 0x10) >> 0x10)" (( "(") (binary_expression "((uVar15 >> 0x10) << 0x18 | (uVar15 >> 0x18) << 0x10) >> 0x10" (parenthesized_expression "((uVar15 >> 0x10) << 0x18 | (uVar15 >> 0x18) << 0x10)" (( "(") (binary_expression "(uVar15 >> 0x10) << 0x18 | (uVar15 >> 0x18) << 0x10" (binary_expression "(uVar15 >> 0x10) << 0x18" (parenthesized_expression "(uVar15 >> 0x10)" (( "(") (binary_expression "uVar15 >> 0x10" (identifier "uVar15") (>> ">>") (number_literal "0x10")) () ")")) (<< "<<") (number_literal "0x18")) (| "|") (binary_expression "(uVar15 >> 0x18) << 0x10" (parenthesized_expression "(uVar15 >> 0x18)" (( "(") (binary_expression "uVar15 >> 0x18" (identifier "uVar15") (>> ">>") (number_literal "0x18")) () ")")) (<< "<<") (number_literal "0x10"))) () ")")) (>> ">>") (number_literal "0x10")) () ")")) (+ "+") (binary_expression "((uVar15 & 0xff) << 8 | uVar15 >> 8 & 0xff) * 0x10000" (parenthesized_expression "((uVar15 & 0xff) << 8 | uVar15 >> 8 & 0xff)" (( "(") (binary_expression "(uVar15 & 0xff) << 8 | uVar15 >> 8 & 0xff" (binary_expression "(uVar15 & 0xff) << 8" (parenthesized_expression "(uVar15 & 0xff)" (( "(") (binary_expression "uVar15 & 0xff" (identifier "uVar15") (& "&") (number_literal "0xff")) () ")")) (<< "<<") (number_literal "8")) (| "|") (binary_expression "uVar15 >> 8 & 0xff" (binary_expression "uVar15 >> 8" (identifier "uVar15") (>> ">>") (number_literal "8")) (& "&") (number_literal "0xff"))) () ")")) (* "*") (number_literal "0x10000")))) (; ";")) (} "}"))) (expression_statement "local_44 = local_44 + 1;" (assignment_expression "local_44 = local_44 + 1" (identifier "local_44") (= "=") (binary_expression "local_44 + 1" (identifier "local_44") (+ "+") (number_literal "1"))) (; ";")) (expression_statement "uVar26 = (ulonglong)uVar15;" (assignment_expression "uVar26 = (ulonglong)uVar15" (identifier "uVar26") (= "=") (cast_expression "(ulonglong)uVar15" (( "(") (type_descriptor "ulonglong" (type_identifier "ulonglong")) () ")") (identifier "uVar15"))) (; ";")) (} "}")) (else_clause "else {\n            local_30 = puVar18;\n            uVar26 = (*local_34)(iVar10,&local_44);\n          }" (else "else") (compound_statement "{\n            local_30 = puVar18;\n            uVar26 = (*local_34)(iVar10,&local_44);\n          }" ({ "{") (expression_statement "local_30 = puVar18;" (assignment_expression "local_30 = puVar18" (identifier "local_30") (= "=") (identifier "puVar18")) (; ";")) (expression_statement "uVar26 = (*local_34)(iVar10,&local_44);" (assignment_expression "uVar26 = (*local_34)(iVar10,&local_44)" (identifier "uVar26") (= "=") (call_expression "(*local_34)(iVar10,&local_44)" (parenthesized_expression "(*local_34)" (( "(") (pointer_expression "*local_34" (* "*") (identifier "local_34")) () ")")) (argument_list "(iVar10,&local_44)" (( "(") (identifier "iVar10") (, ",") (pointer_expression "&local_44" (& "&") (identifier "local_44")) () ")")))) (; ";")) (} "}")))) (expression_statement "local_50 = uVar26;" (assignment_expression "local_50 = uVar26" (identifier "local_50") (= "=") (identifier "uVar26")) (; ";")) (expression_statement "local_58 = (*local_3c)(*param_1);" (assignment_expression "local_58 = (*local_3c)(*param_1)" (identifier "local_58") (= "=") (call_expression "(*local_3c)(*param_1)" (parenthesized_expression "(*local_3c)" (( "(") (pointer_expression "*local_3c" (* "*") (identifier "local_3c")) () ")")) (argument_list "(*param_1)" (( "(") (pointer_expression "*param_1" (* "*") (identifier "param_1")) () ")")))) (; ";")) (expression_statement "uVar26 = local_50;" (assignment_expression "uVar26 = local_50" (identifier "uVar26") (= "=") (identifier "local_50")) (; ";")) (} "}")) (else_clause "else {\n          if (uVar19 == 0x13) {\n            pcVar25 = *(code **)(**(int **)(*param_1 + 8) + 0xc);\n            if (pcVar25 == (code *)PTR_is_big_endian_004c2950) {\n              local_30 = puVar18;\n              iVar8 = (**(code **)(**(int **)(*param_1 + 8) + 0xe8))();\n            }\n            else {\n              local_30 = puVar18;\n              iVar8 = (*pcVar25)();\n            }\n            uVar15 = *local_44;\n            if (iVar8 == 0) {\n              uVar15 = (((uVar15 >> 0x10) << 0x18 | (uVar15 >> 0x18) << 0x10) >> 0x10) +\n                       ((uVar15 & 0xff) << 8 | uVar15 >> 8 & 0xff) * 0x10000;\n            }\n            local_44 = local_44 + 1;\n            iVar8 = *param_1;\n            uVar26 = (ulonglong)uVar15;\n          }\n          else {\n            if (uVar19 < 0x14) {\n              pcVar25 = *(code **)(**(int **)(*param_1 + 8) + 0xc);\n              if (pcVar25 == (code *)PTR_is_big_endian_004c2950) {\n                iVar8 = (**(code **)(**(int **)(*param_1 + 8) + 0xe8))();\n              }\n              else {\n                iVar8 = (*pcVar25)();\n              }\n              uVar6 = *(ushort *)local_44;\n              if (iVar8 == 0) {\n                uVar6 = CONCAT11(*(byte *)((int)local_44 + 1),*(byte *)local_44);\n              }\n              local_44 = (uint *)((int)local_44 + 2);\n              uVar26 = (ulonglong)uVar6;\n              goto joined_r0x002e3998;\n            }\n            pcVar25 = *(code **)(**(int **)(*param_1 + 8) + 0xc);\n            if (pcVar25 == (code *)PTR_is_big_endian_004c2950) {\n              local_30 = puVar18;\n              iVar8 = (**(code **)(**(int **)(*param_1 + 8) + 0xe8))();\n            }\n            else {\n              local_30 = puVar18;\n              iVar8 = (*pcVar25)();\n            }\n            uVar15 = local_44[1];\n            uVar16 = *local_44;\n            if (iVar8 == 0) {\n              uVar2 = uVar15 & 0xff;\n              uVar4 = uVar15 >> 8;\n              uVar3 = uVar15 >> 0x10;\n              uVar5 = uVar15 >> 0x18;\n              uVar15 = (((uVar16 >> 0x10) << 0x18 | (uVar16 >> 0x18) << 0x10) >> 0x10) +\n                       ((uVar16 & 0xff) << 8 | uVar16 >> 8 & 0xff) * 0x10000;\n              uVar16 = ((uVar3 << 0x18 | uVar5 << 0x10) >> 0x10) +\n                       (uVar2 << 8 | uVar4 & 0xff) * 0x10000;\n            }\n            uVar26 = CONCAT44(uVar16,uVar15);\n            local_44 = local_44 + 2;\n            iVar8 = *param_1;\n          }\nLAB_002e3970:\n          local_50 = uVar26;\n          local_58 = (*local_3c)(iVar8);\n          uVar26 = local_50;\n        }" (else "else") (compound_statement "{\n          if (uVar19 == 0x13) {\n            pcVar25 = *(code **)(**(int **)(*param_1 + 8) + 0xc);\n            if (pcVar25 == (code *)PTR_is_big_endian_004c2950) {\n              local_30 = puVar18;\n              iVar8 = (**(code **)(**(int **)(*param_1 + 8) + 0xe8))();\n            }\n            else {\n              local_30 = puVar18;\n              iVar8 = (*pcVar25)();\n            }\n            uVar15 = *local_44;\n            if (iVar8 == 0) {\n              uVar15 = (((uVar15 >> 0x10) << 0x18 | (uVar15 >> 0x18) << 0x10) >> 0x10) +\n                       ((uVar15 & 0xff) << 8 | uVar15 >> 8 & 0xff) * 0x10000;\n            }\n            local_44 = local_44 + 1;\n            iVar8 = *param_1;\n            uVar26 = (ulonglong)uVar15;\n          }\n          else {\n            if (uVar19 < 0x14) {\n              pcVar25 = *(code **)(**(int **)(*param_1 + 8) + 0xc);\n              if (pcVar25 == (code *)PTR_is_big_endian_004c2950) {\n                iVar8 = (**(code **)(**(int **)(*param_1 + 8) + 0xe8))();\n              }\n              else {\n                iVar8 = (*pcVar25)();\n              }\n              uVar6 = *(ushort *)local_44;\n              if (iVar8 == 0) {\n                uVar6 = CONCAT11(*(byte *)((int)local_44 + 1),*(byte *)local_44);\n              }\n              local_44 = (uint *)((int)local_44 + 2);\n              uVar26 = (ulonglong)uVar6;\n              goto joined_r0x002e3998;\n            }\n            pcVar25 = *(code **)(**(int **)(*param_1 + 8) + 0xc);\n            if (pcVar25 == (code *)PTR_is_big_endian_004c2950) {\n              local_30 = puVar18;\n              iVar8 = (**(code **)(**(int **)(*param_1 + 8) + 0xe8))();\n            }\n            else {\n              local_30 = puVar18;\n              iVar8 = (*pcVar25)();\n            }\n            uVar15 = local_44[1];\n            uVar16 = *local_44;\n            if (iVar8 == 0) {\n              uVar2 = uVar15 & 0xff;\n              uVar4 = uVar15 >> 8;\n              uVar3 = uVar15 >> 0x10;\n              uVar5 = uVar15 >> 0x18;\n              uVar15 = (((uVar16 >> 0x10) << 0x18 | (uVar16 >> 0x18) << 0x10) >> 0x10) +\n                       ((uVar16 & 0xff) << 8 | uVar16 >> 8 & 0xff) * 0x10000;\n              uVar16 = ((uVar3 << 0x18 | uVar5 << 0x10) >> 0x10) +\n                       (uVar2 << 8 | uVar4 & 0xff) * 0x10000;\n            }\n            uVar26 = CONCAT44(uVar16,uVar15);\n            local_44 = local_44 + 2;\n            iVar8 = *param_1;\n          }\nLAB_002e3970:\n          local_50 = uVar26;\n          local_58 = (*local_3c)(iVar8);\n          uVar26 = local_50;\n        }" ({ "{") (if_statement "if (uVar19 == 0x13) {\n            pcVar25 = *(code **)(**(int **)(*param_1 + 8) + 0xc);\n            if (pcVar25 == (code *)PTR_is_big_endian_004c2950) {\n              local_30 = puVar18;\n              iVar8 = (**(code **)(**(int **)(*param_1 + 8) + 0xe8))();\n            }\n            else {\n              local_30 = puVar18;\n              iVar8 = (*pcVar25)();\n            }\n            uVar15 = *local_44;\n            if (iVar8 == 0) {\n              uVar15 = (((uVar15 >> 0x10) << 0x18 | (uVar15 >> 0x18) << 0x10) >> 0x10) +\n                       ((uVar15 & 0xff) << 8 | uVar15 >> 8 & 0xff) * 0x10000;\n            }\n            local_44 = local_44 + 1;\n            iVar8 = *param_1;\n            uVar26 = (ulonglong)uVar15;\n          }\n          else {\n            if (uVar19 < 0x14) {\n              pcVar25 = *(code **)(**(int **)(*param_1 + 8) + 0xc);\n              if (pcVar25 == (code *)PTR_is_big_endian_004c2950) {\n                iVar8 = (**(code **)(**(int **)(*param_1 + 8) + 0xe8))();\n              }\n              else {\n                iVar8 = (*pcVar25)();\n              }\n              uVar6 = *(ushort *)local_44;\n              if (iVar8 == 0) {\n                uVar6 = CONCAT11(*(byte *)((int)local_44 + 1),*(byte *)local_44);\n              }\n              local_44 = (uint *)((int)local_44 + 2);\n              uVar26 = (ulonglong)uVar6;\n              goto joined_r0x002e3998;\n            }\n            pcVar25 = *(code **)(**(int **)(*param_1 + 8) + 0xc);\n            if (pcVar25 == (code *)PTR_is_big_endian_004c2950) {\n              local_30 = puVar18;\n              iVar8 = (**(code **)(**(int **)(*param_1 + 8) + 0xe8))();\n            }\n            else {\n              local_30 = puVar18;\n              iVar8 = (*pcVar25)();\n            }\n            uVar15 = local_44[1];\n            uVar16 = *local_44;\n            if (iVar8 == 0) {\n              uVar2 = uVar15 & 0xff;\n              uVar4 = uVar15 >> 8;\n              uVar3 = uVar15 >> 0x10;\n              uVar5 = uVar15 >> 0x18;\n              uVar15 = (((uVar16 >> 0x10) << 0x18 | (uVar16 >> 0x18) << 0x10) >> 0x10) +\n                       ((uVar16 & 0xff) << 8 | uVar16 >> 8 & 0xff) * 0x10000;\n              uVar16 = ((uVar3 << 0x18 | uVar5 << 0x10) >> 0x10) +\n                       (uVar2 << 8 | uVar4 & 0xff) * 0x10000;\n            }\n            uVar26 = CONCAT44(uVar16,uVar15);\n            local_44 = local_44 + 2;\n            iVar8 = *param_1;\n          }" (if "if") (parenthesized_expression "(uVar19 == 0x13)" (( "(") (binary_expression "uVar19 == 0x13" (identifier "uVar19") (== "==") (number_literal "0x13")) () ")")) (compound_statement "{\n            pcVar25 = *(code **)(**(int **)(*param_1 + 8) + 0xc);\n            if (pcVar25 == (code *)PTR_is_big_endian_004c2950) {\n              local_30 = puVar18;\n              iVar8 = (**(code **)(**(int **)(*param_1 + 8) + 0xe8))();\n            }\n            else {\n              local_30 = puVar18;\n              iVar8 = (*pcVar25)();\n            }\n            uVar15 = *local_44;\n            if (iVar8 == 0) {\n              uVar15 = (((uVar15 >> 0x10) << 0x18 | (uVar15 >> 0x18) << 0x10) >> 0x10) +\n                       ((uVar15 & 0xff) << 8 | uVar15 >> 8 & 0xff) * 0x10000;\n            }\n            local_44 = local_44 + 1;\n            iVar8 = *param_1;\n            uVar26 = (ulonglong)uVar15;\n          }" ({ "{") (expression_statement "pcVar25 = *(code **)(**(int **)(*param_1 + 8) + 0xc);" (assignment_expression "pcVar25 = *(code **)(**(int **)(*param_1 + 8) + 0xc)" (identifier "pcVar25") (= "=") (pointer_expression "*(code **)(**(int **)(*param_1 + 8) + 0xc)" (* "*") (cast_expression "(code **)(**(int **)(*param_1 + 8) + 0xc)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(**(int **)(*param_1 + 8) + 0xc)" (( "(") (binary_expression "**(int **)(*param_1 + 8) + 0xc" (pointer_expression "**(int **)(*param_1 + 8)" (* "*") (pointer_expression "*(int **)(*param_1 + 8)" (* "*") (cast_expression "(int **)(*param_1 + 8)" (( "(") (type_descriptor "int **" (primitive_type "int") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(*param_1 + 8)" (( "(") (binary_expression "*param_1 + 8" (pointer_expression "*param_1" (* "*") (identifier "param_1")) (+ "+") (number_literal "8")) () ")"))))) (+ "+") (number_literal "0xc")) () ")"))))) (; ";")) (if_statement "if (pcVar25 == (code *)PTR_is_big_endian_004c2950) {\n              local_30 = puVar18;\n              iVar8 = (**(code **)(**(int **)(*param_1 + 8) + 0xe8))();\n            }\n            else {\n              local_30 = puVar18;\n              iVar8 = (*pcVar25)();\n            }" (if "if") (parenthesized_expression "(pcVar25 == (code *)PTR_is_big_endian_004c2950)" (( "(") (binary_expression "pcVar25 == (code *)PTR_is_big_endian_004c2950" (identifier "pcVar25") (== "==") (cast_expression "(code *)PTR_is_big_endian_004c2950" (( "(") (type_descriptor "code *" (type_identifier "code") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "PTR_is_big_endian_004c2950"))) () ")")) (compound_statement "{\n              local_30 = puVar18;\n              iVar8 = (**(code **)(**(int **)(*param_1 + 8) + 0xe8))();\n            }" ({ "{") (expression_statement "local_30 = puVar18;" (assignment_expression "local_30 = puVar18" (identifier "local_30") (= "=") (identifier "puVar18")) (; ";")) (expression_statement "iVar8 = (**(code **)(**(int **)(*param_1 + 8) + 0xe8))();" (assignment_expression "iVar8 = (**(code **)(**(int **)(*param_1 + 8) + 0xe8))()" (identifier "iVar8") (= "=") (call_expression "(**(code **)(**(int **)(*param_1 + 8) + 0xe8))()" (parenthesized_expression "(**(code **)(**(int **)(*param_1 + 8) + 0xe8))" (( "(") (pointer_expression "**(code **)(**(int **)(*param_1 + 8) + 0xe8)" (* "*") (pointer_expression "*(code **)(**(int **)(*param_1 + 8) + 0xe8)" (* "*") (cast_expression "(code **)(**(int **)(*param_1 + 8) + 0xe8)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(**(int **)(*param_1 + 8) + 0xe8)" (( "(") (binary_expression "**(int **)(*param_1 + 8) + 0xe8" (pointer_expression "**(int **)(*param_1 + 8)" (* "*") (pointer_expression "*(int **)(*param_1 + 8)" (* "*") (cast_expression "(int **)(*param_1 + 8)" (( "(") (type_descriptor "int **" (primitive_type "int") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(*param_1 + 8)" (( "(") (binary_expression "*param_1 + 8" (pointer_expression "*param_1" (* "*") (identifier "param_1")) (+ "+") (number_literal "8")) () ")"))))) (+ "+") (number_literal "0xe8")) () ")"))))) () ")")) (argument_list "()" (( "(") () ")")))) (; ";")) (} "}")) (else_clause "else {\n              local_30 = puVar18;\n              iVar8 = (*pcVar25)();\n            }" (else "else") (compound_statement "{\n              local_30 = puVar18;\n              iVar8 = (*pcVar25)();\n            }" ({ "{") (expression_statement "local_30 = puVar18;" (assignment_expression "local_30 = puVar18" (identifier "local_30") (= "=") (identifier "puVar18")) (; ";")) (expression_statement "iVar8 = (*pcVar25)();" (assignment_expression "iVar8 = (*pcVar25)()" (identifier "iVar8") (= "=") (call_expression "(*pcVar25)()" (parenthesized_expression "(*pcVar25)" (( "(") (pointer_expression "*pcVar25" (* "*") (identifier "pcVar25")) () ")")) (argument_list "()" (( "(") () ")")))) (; ";")) (} "}")))) (expression_statement "uVar15 = *local_44;" (assignment_expression "uVar15 = *local_44" (identifier "uVar15") (= "=") (pointer_expression "*local_44" (* "*") (identifier "local_44"))) (; ";")) (if_statement "if (iVar8 == 0) {\n              uVar15 = (((uVar15 >> 0x10) << 0x18 | (uVar15 >> 0x18) << 0x10) >> 0x10) +\n                       ((uVar15 & 0xff) << 8 | uVar15 >> 8 & 0xff) * 0x10000;\n            }" (if "if") (parenthesized_expression "(iVar8 == 0)" (( "(") (binary_expression "iVar8 == 0" (identifier "iVar8") (== "==") (number_literal "0")) () ")")) (compound_statement "{\n              uVar15 = (((uVar15 >> 0x10) << 0x18 | (uVar15 >> 0x18) << 0x10) >> 0x10) +\n                       ((uVar15 & 0xff) << 8 | uVar15 >> 8 & 0xff) * 0x10000;\n            }" ({ "{") (expression_statement "uVar15 = (((uVar15 >> 0x10) << 0x18 | (uVar15 >> 0x18) << 0x10) >> 0x10) +\n                       ((uVar15 & 0xff) << 8 | uVar15 >> 8 & 0xff) * 0x10000;" (assignment_expression "uVar15 = (((uVar15 >> 0x10) << 0x18 | (uVar15 >> 0x18) << 0x10) >> 0x10) +\n                       ((uVar15 & 0xff) << 8 | uVar15 >> 8 & 0xff) * 0x10000" (identifier "uVar15") (= "=") (binary_expression "(((uVar15 >> 0x10) << 0x18 | (uVar15 >> 0x18) << 0x10) >> 0x10) +\n                       ((uVar15 & 0xff) << 8 | uVar15 >> 8 & 0xff) * 0x10000" (parenthesized_expression "(((uVar15 >> 0x10) << 0x18 | (uVar15 >> 0x18) << 0x10) >> 0x10)" (( "(") (binary_expression "((uVar15 >> 0x10) << 0x18 | (uVar15 >> 0x18) << 0x10) >> 0x10" (parenthesized_expression "((uVar15 >> 0x10) << 0x18 | (uVar15 >> 0x18) << 0x10)" (( "(") (binary_expression "(uVar15 >> 0x10) << 0x18 | (uVar15 >> 0x18) << 0x10" (binary_expression "(uVar15 >> 0x10) << 0x18" (parenthesized_expression "(uVar15 >> 0x10)" (( "(") (binary_expression "uVar15 >> 0x10" (identifier "uVar15") (>> ">>") (number_literal "0x10")) () ")")) (<< "<<") (number_literal "0x18")) (| "|") (binary_expression "(uVar15 >> 0x18) << 0x10" (parenthesized_expression "(uVar15 >> 0x18)" (( "(") (binary_expression "uVar15 >> 0x18" (identifier "uVar15") (>> ">>") (number_literal "0x18")) () ")")) (<< "<<") (number_literal "0x10"))) () ")")) (>> ">>") (number_literal "0x10")) () ")")) (+ "+") (binary_expression "((uVar15 & 0xff) << 8 | uVar15 >> 8 & 0xff) * 0x10000" (parenthesized_expression "((uVar15 & 0xff) << 8 | uVar15 >> 8 & 0xff)" (( "(") (binary_expression "(uVar15 & 0xff) << 8 | uVar15 >> 8 & 0xff" (binary_expression "(uVar15 & 0xff) << 8" (parenthesized_expression "(uVar15 & 0xff)" (( "(") (binary_expression "uVar15 & 0xff" (identifier "uVar15") (& "&") (number_literal "0xff")) () ")")) (<< "<<") (number_literal "8")) (| "|") (binary_expression "uVar15 >> 8 & 0xff" (binary_expression "uVar15 >> 8" (identifier "uVar15") (>> ">>") (number_literal "8")) (& "&") (number_literal "0xff"))) () ")")) (* "*") (number_literal "0x10000")))) (; ";")) (} "}"))) (expression_statement "local_44 = local_44 + 1;" (assignment_expression "local_44 = local_44 + 1" (identifier "local_44") (= "=") (binary_expression "local_44 + 1" (identifier "local_44") (+ "+") (number_literal "1"))) (; ";")) (expression_statement "iVar8 = *param_1;" (assignment_expression "iVar8 = *param_1" (identifier "iVar8") (= "=") (pointer_expression "*param_1" (* "*") (identifier "param_1"))) (; ";")) (expression_statement "uVar26 = (ulonglong)uVar15;" (assignment_expression "uVar26 = (ulonglong)uVar15" (identifier "uVar26") (= "=") (cast_expression "(ulonglong)uVar15" (( "(") (type_descriptor "ulonglong" (type_identifier "ulonglong")) () ")") (identifier "uVar15"))) (; ";")) (} "}")) (else_clause "else {\n            if (uVar19 < 0x14) {\n              pcVar25 = *(code **)(**(int **)(*param_1 + 8) + 0xc);\n              if (pcVar25 == (code *)PTR_is_big_endian_004c2950) {\n                iVar8 = (**(code **)(**(int **)(*param_1 + 8) + 0xe8))();\n              }\n              else {\n                iVar8 = (*pcVar25)();\n              }\n              uVar6 = *(ushort *)local_44;\n              if (iVar8 == 0) {\n                uVar6 = CONCAT11(*(byte *)((int)local_44 + 1),*(byte *)local_44);\n              }\n              local_44 = (uint *)((int)local_44 + 2);\n              uVar26 = (ulonglong)uVar6;\n              goto joined_r0x002e3998;\n            }\n            pcVar25 = *(code **)(**(int **)(*param_1 + 8) + 0xc);\n            if (pcVar25 == (code *)PTR_is_big_endian_004c2950) {\n              local_30 = puVar18;\n              iVar8 = (**(code **)(**(int **)(*param_1 + 8) + 0xe8))();\n            }\n            else {\n              local_30 = puVar18;\n              iVar8 = (*pcVar25)();\n            }\n            uVar15 = local_44[1];\n            uVar16 = *local_44;\n            if (iVar8 == 0) {\n              uVar2 = uVar15 & 0xff;\n              uVar4 = uVar15 >> 8;\n              uVar3 = uVar15 >> 0x10;\n              uVar5 = uVar15 >> 0x18;\n              uVar15 = (((uVar16 >> 0x10) << 0x18 | (uVar16 >> 0x18) << 0x10) >> 0x10) +\n                       ((uVar16 & 0xff) << 8 | uVar16 >> 8 & 0xff) * 0x10000;\n              uVar16 = ((uVar3 << 0x18 | uVar5 << 0x10) >> 0x10) +\n                       (uVar2 << 8 | uVar4 & 0xff) * 0x10000;\n            }\n            uVar26 = CONCAT44(uVar16,uVar15);\n            local_44 = local_44 + 2;\n            iVar8 = *param_1;\n          }" (else "else") (compound_statement "{\n            if (uVar19 < 0x14) {\n              pcVar25 = *(code **)(**(int **)(*param_1 + 8) + 0xc);\n              if (pcVar25 == (code *)PTR_is_big_endian_004c2950) {\n                iVar8 = (**(code **)(**(int **)(*param_1 + 8) + 0xe8))();\n              }\n              else {\n                iVar8 = (*pcVar25)();\n              }\n              uVar6 = *(ushort *)local_44;\n              if (iVar8 == 0) {\n                uVar6 = CONCAT11(*(byte *)((int)local_44 + 1),*(byte *)local_44);\n              }\n              local_44 = (uint *)((int)local_44 + 2);\n              uVar26 = (ulonglong)uVar6;\n              goto joined_r0x002e3998;\n            }\n            pcVar25 = *(code **)(**(int **)(*param_1 + 8) + 0xc);\n            if (pcVar25 == (code *)PTR_is_big_endian_004c2950) {\n              local_30 = puVar18;\n              iVar8 = (**(code **)(**(int **)(*param_1 + 8) + 0xe8))();\n            }\n            else {\n              local_30 = puVar18;\n              iVar8 = (*pcVar25)();\n            }\n            uVar15 = local_44[1];\n            uVar16 = *local_44;\n            if (iVar8 == 0) {\n              uVar2 = uVar15 & 0xff;\n              uVar4 = uVar15 >> 8;\n              uVar3 = uVar15 >> 0x10;\n              uVar5 = uVar15 >> 0x18;\n              uVar15 = (((uVar16 >> 0x10) << 0x18 | (uVar16 >> 0x18) << 0x10) >> 0x10) +\n                       ((uVar16 & 0xff) << 8 | uVar16 >> 8 & 0xff) * 0x10000;\n              uVar16 = ((uVar3 << 0x18 | uVar5 << 0x10) >> 0x10) +\n                       (uVar2 << 8 | uVar4 & 0xff) * 0x10000;\n            }\n            uVar26 = CONCAT44(uVar16,uVar15);\n            local_44 = local_44 + 2;\n            iVar8 = *param_1;\n          }" ({ "{") (if_statement "if (uVar19 < 0x14) {\n              pcVar25 = *(code **)(**(int **)(*param_1 + 8) + 0xc);\n              if (pcVar25 == (code *)PTR_is_big_endian_004c2950) {\n                iVar8 = (**(code **)(**(int **)(*param_1 + 8) + 0xe8))();\n              }\n              else {\n                iVar8 = (*pcVar25)();\n              }\n              uVar6 = *(ushort *)local_44;\n              if (iVar8 == 0) {\n                uVar6 = CONCAT11(*(byte *)((int)local_44 + 1),*(byte *)local_44);\n              }\n              local_44 = (uint *)((int)local_44 + 2);\n              uVar26 = (ulonglong)uVar6;\n              goto joined_r0x002e3998;\n            }" (if "if") (parenthesized_expression "(uVar19 < 0x14)" (( "(") (binary_expression "uVar19 < 0x14" (identifier "uVar19") (< "<") (number_literal "0x14")) () ")")) (compound_statement "{\n              pcVar25 = *(code **)(**(int **)(*param_1 + 8) + 0xc);\n              if (pcVar25 == (code *)PTR_is_big_endian_004c2950) {\n                iVar8 = (**(code **)(**(int **)(*param_1 + 8) + 0xe8))();\n              }\n              else {\n                iVar8 = (*pcVar25)();\n              }\n              uVar6 = *(ushort *)local_44;\n              if (iVar8 == 0) {\n                uVar6 = CONCAT11(*(byte *)((int)local_44 + 1),*(byte *)local_44);\n              }\n              local_44 = (uint *)((int)local_44 + 2);\n              uVar26 = (ulonglong)uVar6;\n              goto joined_r0x002e3998;\n            }" ({ "{") (expression_statement "pcVar25 = *(code **)(**(int **)(*param_1 + 8) + 0xc);" (assignment_expression "pcVar25 = *(code **)(**(int **)(*param_1 + 8) + 0xc)" (identifier "pcVar25") (= "=") (pointer_expression "*(code **)(**(int **)(*param_1 + 8) + 0xc)" (* "*") (cast_expression "(code **)(**(int **)(*param_1 + 8) + 0xc)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(**(int **)(*param_1 + 8) + 0xc)" (( "(") (binary_expression "**(int **)(*param_1 + 8) + 0xc" (pointer_expression "**(int **)(*param_1 + 8)" (* "*") (pointer_expression "*(int **)(*param_1 + 8)" (* "*") (cast_expression "(int **)(*param_1 + 8)" (( "(") (type_descriptor "int **" (primitive_type "int") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(*param_1 + 8)" (( "(") (binary_expression "*param_1 + 8" (pointer_expression "*param_1" (* "*") (identifier "param_1")) (+ "+") (number_literal "8")) () ")"))))) (+ "+") (number_literal "0xc")) () ")"))))) (; ";")) (if_statement "if (pcVar25 == (code *)PTR_is_big_endian_004c2950) {\n                iVar8 = (**(code **)(**(int **)(*param_1 + 8) + 0xe8))();\n              }\n              else {\n                iVar8 = (*pcVar25)();\n              }" (if "if") (parenthesized_expression "(pcVar25 == (code *)PTR_is_big_endian_004c2950)" (( "(") (binary_expression "pcVar25 == (code *)PTR_is_big_endian_004c2950" (identifier "pcVar25") (== "==") (cast_expression "(code *)PTR_is_big_endian_004c2950" (( "(") (type_descriptor "code *" (type_identifier "code") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "PTR_is_big_endian_004c2950"))) () ")")) (compound_statement "{\n                iVar8 = (**(code **)(**(int **)(*param_1 + 8) + 0xe8))();\n              }" ({ "{") (expression_statement "iVar8 = (**(code **)(**(int **)(*param_1 + 8) + 0xe8))();" (assignment_expression "iVar8 = (**(code **)(**(int **)(*param_1 + 8) + 0xe8))()" (identifier "iVar8") (= "=") (call_expression "(**(code **)(**(int **)(*param_1 + 8) + 0xe8))()" (parenthesized_expression "(**(code **)(**(int **)(*param_1 + 8) + 0xe8))" (( "(") (pointer_expression "**(code **)(**(int **)(*param_1 + 8) + 0xe8)" (* "*") (pointer_expression "*(code **)(**(int **)(*param_1 + 8) + 0xe8)" (* "*") (cast_expression "(code **)(**(int **)(*param_1 + 8) + 0xe8)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(**(int **)(*param_1 + 8) + 0xe8)" (( "(") (binary_expression "**(int **)(*param_1 + 8) + 0xe8" (pointer_expression "**(int **)(*param_1 + 8)" (* "*") (pointer_expression "*(int **)(*param_1 + 8)" (* "*") (cast_expression "(int **)(*param_1 + 8)" (( "(") (type_descriptor "int **" (primitive_type "int") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(*param_1 + 8)" (( "(") (binary_expression "*param_1 + 8" (pointer_expression "*param_1" (* "*") (identifier "param_1")) (+ "+") (number_literal "8")) () ")"))))) (+ "+") (number_literal "0xe8")) () ")"))))) () ")")) (argument_list "()" (( "(") () ")")))) (; ";")) (} "}")) (else_clause "else {\n                iVar8 = (*pcVar25)();\n              }" (else "else") (compound_statement "{\n                iVar8 = (*pcVar25)();\n              }" ({ "{") (expression_statement "iVar8 = (*pcVar25)();" (assignment_expression "iVar8 = (*pcVar25)()" (identifier "iVar8") (= "=") (call_expression "(*pcVar25)()" (parenthesized_expression "(*pcVar25)" (( "(") (pointer_expression "*pcVar25" (* "*") (identifier "pcVar25")) () ")")) (argument_list "()" (( "(") () ")")))) (; ";")) (} "}")))) (expression_statement "uVar6 = *(ushort *)local_44;" (assignment_expression "uVar6 = *(ushort *)local_44" (identifier "uVar6") (= "=") (pointer_expression "*(ushort *)local_44" (* "*") (cast_expression "(ushort *)local_44" (( "(") (type_descriptor "ushort *" (type_identifier "ushort") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "local_44")))) (; ";")) (if_statement "if (iVar8 == 0) {\n                uVar6 = CONCAT11(*(byte *)((int)local_44 + 1),*(byte *)local_44);\n              }" (if "if") (parenthesized_expression "(iVar8 == 0)" (( "(") (binary_expression "iVar8 == 0" (identifier "iVar8") (== "==") (number_literal "0")) () ")")) (compound_statement "{\n                uVar6 = CONCAT11(*(byte *)((int)local_44 + 1),*(byte *)local_44);\n              }" ({ "{") (expression_statement "uVar6 = CONCAT11(*(byte *)((int)local_44 + 1),*(byte *)local_44);" (assignment_expression "uVar6 = CONCAT11(*(byte *)((int)local_44 + 1),*(byte *)local_44)" (identifier "uVar6") (= "=") (call_expression "CONCAT11(*(byte *)((int)local_44 + 1),*(byte *)local_44)" (identifier "CONCAT11") (argument_list "(*(byte *)((int)local_44 + 1),*(byte *)local_44)" (( "(") (pointer_expression "*(byte *)((int)local_44 + 1)" (* "*") (cast_expression "(byte *)((int)local_44 + 1)" (( "(") (type_descriptor "byte *" (type_identifier "byte") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "((int)local_44 + 1)" (( "(") (binary_expression "(int)local_44 + 1" (cast_expression "(int)local_44" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "local_44")) (+ "+") (number_literal "1")) () ")")))) (, ",") (pointer_expression "*(byte *)local_44" (* "*") (cast_expression "(byte *)local_44" (( "(") (type_descriptor "byte *" (type_identifier "byte") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "local_44"))) () ")")))) (; ";")) (} "}"))) (expression_statement "local_44 = (uint *)((int)local_44 + 2);" (assignment_expression "local_44 = (uint *)((int)local_44 + 2)" (identifier "local_44") (= "=") (cast_expression "(uint *)((int)local_44 + 2)" (( "(") (type_descriptor "uint *" (type_identifier "uint") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "((int)local_44 + 2)" (( "(") (binary_expression "(int)local_44 + 2" (cast_expression "(int)local_44" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "local_44")) (+ "+") (number_literal "2")) () ")")))) (; ";")) (expression_statement "uVar26 = (ulonglong)uVar6;" (assignment_expression "uVar26 = (ulonglong)uVar6" (identifier "uVar26") (= "=") (cast_expression "(ulonglong)uVar6" (( "(") (type_descriptor "ulonglong" (type_identifier "ulonglong")) () ")") (identifier "uVar6"))) (; ";")) (goto_statement "goto joined_r0x002e3998;" (goto "goto") (statement_identifier "joined_r0x002e3998") (; ";")) (} "}"))) (expression_statement "pcVar25 = *(code **)(**(int **)(*param_1 + 8) + 0xc);" (assignment_expression "pcVar25 = *(code **)(**(int **)(*param_1 + 8) + 0xc)" (identifier "pcVar25") (= "=") (pointer_expression "*(code **)(**(int **)(*param_1 + 8) + 0xc)" (* "*") (cast_expression "(code **)(**(int **)(*param_1 + 8) + 0xc)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(**(int **)(*param_1 + 8) + 0xc)" (( "(") (binary_expression "**(int **)(*param_1 + 8) + 0xc" (pointer_expression "**(int **)(*param_1 + 8)" (* "*") (pointer_expression "*(int **)(*param_1 + 8)" (* "*") (cast_expression "(int **)(*param_1 + 8)" (( "(") (type_descriptor "int **" (primitive_type "int") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(*param_1 + 8)" (( "(") (binary_expression "*param_1 + 8" (pointer_expression "*param_1" (* "*") (identifier "param_1")) (+ "+") (number_literal "8")) () ")"))))) (+ "+") (number_literal "0xc")) () ")"))))) (; ";")) (if_statement "if (pcVar25 == (code *)PTR_is_big_endian_004c2950) {\n              local_30 = puVar18;\n              iVar8 = (**(code **)(**(int **)(*param_1 + 8) + 0xe8))();\n            }\n            else {\n              local_30 = puVar18;\n              iVar8 = (*pcVar25)();\n            }" (if "if") (parenthesized_expression "(pcVar25 == (code *)PTR_is_big_endian_004c2950)" (( "(") (binary_expression "pcVar25 == (code *)PTR_is_big_endian_004c2950" (identifier "pcVar25") (== "==") (cast_expression "(code *)PTR_is_big_endian_004c2950" (( "(") (type_descriptor "code *" (type_identifier "code") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "PTR_is_big_endian_004c2950"))) () ")")) (compound_statement "{\n              local_30 = puVar18;\n              iVar8 = (**(code **)(**(int **)(*param_1 + 8) + 0xe8))();\n            }" ({ "{") (expression_statement "local_30 = puVar18;" (assignment_expression "local_30 = puVar18" (identifier "local_30") (= "=") (identifier "puVar18")) (; ";")) (expression_statement "iVar8 = (**(code **)(**(int **)(*param_1 + 8) + 0xe8))();" (assignment_expression "iVar8 = (**(code **)(**(int **)(*param_1 + 8) + 0xe8))()" (identifier "iVar8") (= "=") (call_expression "(**(code **)(**(int **)(*param_1 + 8) + 0xe8))()" (parenthesized_expression "(**(code **)(**(int **)(*param_1 + 8) + 0xe8))" (( "(") (pointer_expression "**(code **)(**(int **)(*param_1 + 8) + 0xe8)" (* "*") (pointer_expression "*(code **)(**(int **)(*param_1 + 8) + 0xe8)" (* "*") (cast_expression "(code **)(**(int **)(*param_1 + 8) + 0xe8)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(**(int **)(*param_1 + 8) + 0xe8)" (( "(") (binary_expression "**(int **)(*param_1 + 8) + 0xe8" (pointer_expression "**(int **)(*param_1 + 8)" (* "*") (pointer_expression "*(int **)(*param_1 + 8)" (* "*") (cast_expression "(int **)(*param_1 + 8)" (( "(") (type_descriptor "int **" (primitive_type "int") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(*param_1 + 8)" (( "(") (binary_expression "*param_1 + 8" (pointer_expression "*param_1" (* "*") (identifier "param_1")) (+ "+") (number_literal "8")) () ")"))))) (+ "+") (number_literal "0xe8")) () ")"))))) () ")")) (argument_list "()" (( "(") () ")")))) (; ";")) (} "}")) (else_clause "else {\n              local_30 = puVar18;\n              iVar8 = (*pcVar25)();\n            }" (else "else") (compound_statement "{\n              local_30 = puVar18;\n              iVar8 = (*pcVar25)();\n            }" ({ "{") (expression_statement "local_30 = puVar18;" (assignment_expression "local_30 = puVar18" (identifier "local_30") (= "=") (identifier "puVar18")) (; ";")) (expression_statement "iVar8 = (*pcVar25)();" (assignment_expression "iVar8 = (*pcVar25)()" (identifier "iVar8") (= "=") (call_expression "(*pcVar25)()" (parenthesized_expression "(*pcVar25)" (( "(") (pointer_expression "*pcVar25" (* "*") (identifier "pcVar25")) () ")")) (argument_list "()" (( "(") () ")")))) (; ";")) (} "}")))) (expression_statement "uVar15 = local_44[1];" (assignment_expression "uVar15 = local_44[1]" (identifier "uVar15") (= "=") (subscript_expression "local_44[1]" (identifier "local_44") ([ "[") (number_literal "1") (] "]"))) (; ";")) (expression_statement "uVar16 = *local_44;" (assignment_expression "uVar16 = *local_44" (identifier "uVar16") (= "=") (pointer_expression "*local_44" (* "*") (identifier "local_44"))) (; ";")) (if_statement "if (iVar8 == 0) {\n              uVar2 = uVar15 & 0xff;\n              uVar4 = uVar15 >> 8;\n              uVar3 = uVar15 >> 0x10;\n              uVar5 = uVar15 >> 0x18;\n              uVar15 = (((uVar16 >> 0x10) << 0x18 | (uVar16 >> 0x18) << 0x10) >> 0x10) +\n                       ((uVar16 & 0xff) << 8 | uVar16 >> 8 & 0xff) * 0x10000;\n              uVar16 = ((uVar3 << 0x18 | uVar5 << 0x10) >> 0x10) +\n                       (uVar2 << 8 | uVar4 & 0xff) * 0x10000;\n            }" (if "if") (parenthesized_expression "(iVar8 == 0)" (( "(") (binary_expression "iVar8 == 0" (identifier "iVar8") (== "==") (number_literal "0")) () ")")) (compound_statement "{\n              uVar2 = uVar15 & 0xff;\n              uVar4 = uVar15 >> 8;\n              uVar3 = uVar15 >> 0x10;\n              uVar5 = uVar15 >> 0x18;\n              uVar15 = (((uVar16 >> 0x10) << 0x18 | (uVar16 >> 0x18) << 0x10) >> 0x10) +\n                       ((uVar16 & 0xff) << 8 | uVar16 >> 8 & 0xff) * 0x10000;\n              uVar16 = ((uVar3 << 0x18 | uVar5 << 0x10) >> 0x10) +\n                       (uVar2 << 8 | uVar4 & 0xff) * 0x10000;\n            }" ({ "{") (expression_statement "uVar2 = uVar15 & 0xff;" (assignment_expression "uVar2 = uVar15 & 0xff" (identifier "uVar2") (= "=") (binary_expression "uVar15 & 0xff" (identifier "uVar15") (& "&") (number_literal "0xff"))) (; ";")) (expression_statement "uVar4 = uVar15 >> 8;" (assignment_expression "uVar4 = uVar15 >> 8" (identifier "uVar4") (= "=") (binary_expression "uVar15 >> 8" (identifier "uVar15") (>> ">>") (number_literal "8"))) (; ";")) (expression_statement "uVar3 = uVar15 >> 0x10;" (assignment_expression "uVar3 = uVar15 >> 0x10" (identifier "uVar3") (= "=") (binary_expression "uVar15 >> 0x10" (identifier "uVar15") (>> ">>") (number_literal "0x10"))) (; ";")) (expression_statement "uVar5 = uVar15 >> 0x18;" (assignment_expression "uVar5 = uVar15 >> 0x18" (identifier "uVar5") (= "=") (binary_expression "uVar15 >> 0x18" (identifier "uVar15") (>> ">>") (number_literal "0x18"))) (; ";")) (expression_statement "uVar15 = (((uVar16 >> 0x10) << 0x18 | (uVar16 >> 0x18) << 0x10) >> 0x10) +\n                       ((uVar16 & 0xff) << 8 | uVar16 >> 8 & 0xff) * 0x10000;" (assignment_expression "uVar15 = (((uVar16 >> 0x10) << 0x18 | (uVar16 >> 0x18) << 0x10) >> 0x10) +\n                       ((uVar16 & 0xff) << 8 | uVar16 >> 8 & 0xff) * 0x10000" (identifier "uVar15") (= "=") (binary_expression "(((uVar16 >> 0x10) << 0x18 | (uVar16 >> 0x18) << 0x10) >> 0x10) +\n                       ((uVar16 & 0xff) << 8 | uVar16 >> 8 & 0xff) * 0x10000" (parenthesized_expression "(((uVar16 >> 0x10) << 0x18 | (uVar16 >> 0x18) << 0x10) >> 0x10)" (( "(") (binary_expression "((uVar16 >> 0x10) << 0x18 | (uVar16 >> 0x18) << 0x10) >> 0x10" (parenthesized_expression "((uVar16 >> 0x10) << 0x18 | (uVar16 >> 0x18) << 0x10)" (( "(") (binary_expression "(uVar16 >> 0x10) << 0x18 | (uVar16 >> 0x18) << 0x10" (binary_expression "(uVar16 >> 0x10) << 0x18" (parenthesized_expression "(uVar16 >> 0x10)" (( "(") (binary_expression "uVar16 >> 0x10" (identifier "uVar16") (>> ">>") (number_literal "0x10")) () ")")) (<< "<<") (number_literal "0x18")) (| "|") (binary_expression "(uVar16 >> 0x18) << 0x10" (parenthesized_expression "(uVar16 >> 0x18)" (( "(") (binary_expression "uVar16 >> 0x18" (identifier "uVar16") (>> ">>") (number_literal "0x18")) () ")")) (<< "<<") (number_literal "0x10"))) () ")")) (>> ">>") (number_literal "0x10")) () ")")) (+ "+") (binary_expression "((uVar16 & 0xff) << 8 | uVar16 >> 8 & 0xff) * 0x10000" (parenthesized_expression "((uVar16 & 0xff) << 8 | uVar16 >> 8 & 0xff)" (( "(") (binary_expression "(uVar16 & 0xff) << 8 | uVar16 >> 8 & 0xff" (binary_expression "(uVar16 & 0xff) << 8" (parenthesized_expression "(uVar16 & 0xff)" (( "(") (binary_expression "uVar16 & 0xff" (identifier "uVar16") (& "&") (number_literal "0xff")) () ")")) (<< "<<") (number_literal "8")) (| "|") (binary_expression "uVar16 >> 8 & 0xff" (binary_expression "uVar16 >> 8" (identifier "uVar16") (>> ">>") (number_literal "8")) (& "&") (number_literal "0xff"))) () ")")) (* "*") (number_literal "0x10000")))) (; ";")) (expression_statement "uVar16 = ((uVar3 << 0x18 | uVar5 << 0x10) >> 0x10) +\n                       (uVar2 << 8 | uVar4 & 0xff) * 0x10000;" (assignment_expression "uVar16 = ((uVar3 << 0x18 | uVar5 << 0x10) >> 0x10) +\n                       (uVar2 << 8 | uVar4 & 0xff) * 0x10000" (identifier "uVar16") (= "=") (binary_expression "((uVar3 << 0x18 | uVar5 << 0x10) >> 0x10) +\n                       (uVar2 << 8 | uVar4 & 0xff) * 0x10000" (parenthesized_expression "((uVar3 << 0x18 | uVar5 << 0x10) >> 0x10)" (( "(") (binary_expression "(uVar3 << 0x18 | uVar5 << 0x10) >> 0x10" (parenthesized_expression "(uVar3 << 0x18 | uVar5 << 0x10)" (( "(") (binary_expression "uVar3 << 0x18 | uVar5 << 0x10" (binary_expression "uVar3 << 0x18" (identifier "uVar3") (<< "<<") (number_literal "0x18")) (| "|") (binary_expression "uVar5 << 0x10" (identifier "uVar5") (<< "<<") (number_literal "0x10"))) () ")")) (>> ">>") (number_literal "0x10")) () ")")) (+ "+") (binary_expression "(uVar2 << 8 | uVar4 & 0xff) * 0x10000" (parenthesized_expression "(uVar2 << 8 | uVar4 & 0xff)" (( "(") (binary_expression "uVar2 << 8 | uVar4 & 0xff" (binary_expression "uVar2 << 8" (identifier "uVar2") (<< "<<") (number_literal "8")) (| "|") (binary_expression "uVar4 & 0xff" (identifier "uVar4") (& "&") (number_literal "0xff"))) () ")")) (* "*") (number_literal "0x10000")))) (; ";")) (} "}"))) (expression_statement "uVar26 = CONCAT44(uVar16,uVar15);" (assignment_expression "uVar26 = CONCAT44(uVar16,uVar15)" (identifier "uVar26") (= "=") (call_expression "CONCAT44(uVar16,uVar15)" (identifier "CONCAT44") (argument_list "(uVar16,uVar15)" (( "(") (identifier "uVar16") (, ",") (identifier "uVar15") () ")")))) (; ";")) (expression_statement "local_44 = local_44 + 2;" (assignment_expression "local_44 = local_44 + 2" (identifier "local_44") (= "=") (binary_expression "local_44 + 2" (identifier "local_44") (+ "+") (number_literal "2"))) (; ";")) (expression_statement "iVar8 = *param_1;" (assignment_expression "iVar8 = *param_1" (identifier "iVar8") (= "=") (pointer_expression "*param_1" (* "*") (identifier "param_1"))) (; ";")) (} "}")))) (labeled_statement "LAB_002e3970:\n          local_50 = uVar26;" (statement_identifier "LAB_002e3970") (: ":") (expression_statement "local_50 = uVar26;" (assignment_expression "local_50 = uVar26" (identifier "local_50") (= "=") (identifier "uVar26")) (; ";"))) (expression_statement "local_58 = (*local_3c)(iVar8);" (assignment_expression "local_58 = (*local_3c)(iVar8)" (identifier "local_58") (= "=") (call_expression "(*local_3c)(iVar8)" (parenthesized_expression "(*local_3c)" (( "(") (pointer_expression "*local_3c" (* "*") (identifier "local_3c")) () ")")) (argument_list "(iVar8)" (( "(") (identifier "iVar8") () ")")))) (; ";")) (expression_statement "uVar26 = local_50;" (assignment_expression "uVar26 = local_50" (identifier "uVar26") (= "=") (identifier "local_50")) (; ";")) (} "}")))) (labeled_statement "joined_r0x002e3998:\n        if (uVar22 == 0x31) {\nLAB_002e30bc:\n          *(ulonglong *)(param_1 + 0x1a) = uVar26;\n          uVar7 = uVar26;\n          goto LAB_002e313c;\n        }" (statement_identifier "joined_r0x002e3998") (: ":") (if_statement "if (uVar22 == 0x31) {\nLAB_002e30bc:\n          *(ulonglong *)(param_1 + 0x1a) = uVar26;\n          uVar7 = uVar26;\n          goto LAB_002e313c;\n        }" (if "if") (parenthesized_expression "(uVar22 == 0x31)" (( "(") (binary_expression "uVar22 == 0x31" (identifier "uVar22") (== "==") (number_literal "0x31")) () ")")) (compound_statement "{\nLAB_002e30bc:\n          *(ulonglong *)(param_1 + 0x1a) = uVar26;\n          uVar7 = uVar26;\n          goto LAB_002e313c;\n        }" ({ "{") (labeled_statement "LAB_002e30bc:\n          *(ulonglong *)(param_1 + 0x1a) = uVar26;" (statement_identifier "LAB_002e30bc") (: ":") (expression_statement "*(ulonglong *)(param_1 + 0x1a) = uVar26;" (assignment_expression "*(ulonglong *)(param_1 + 0x1a) = uVar26" (pointer_expression "*(ulonglong *)(param_1 + 0x1a)" (* "*") (cast_expression "(ulonglong *)(param_1 + 0x1a)" (( "(") (type_descriptor "ulonglong *" (type_identifier "ulonglong") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_1 + 0x1a)" (( "(") (binary_expression "param_1 + 0x1a" (identifier "param_1") (+ "+") (number_literal "0x1a")) () ")")))) (= "=") (identifier "uVar26")) (; ";"))) (expression_statement "uVar7 = uVar26;" (assignment_expression "uVar7 = uVar26" (identifier "uVar7") (= "=") (identifier "uVar26")) (; ";")) (goto_statement "goto LAB_002e313c;" (goto "goto") (statement_identifier "LAB_002e313c") (; ";")) (} "}")))) (if_statement "if (uVar22 < 0x32) {\n          uVar7 = uVar26;\n          if (uVar22 != 1) goto LAB_002e313c;\nLAB_002e39b4:\n          uVar7 = uVar26;\n          if (local_58 != 0) goto LAB_002e313c;\n          *(ulonglong *)(param_1 + 8) = uVar26;\n          goto LAB_002e313c;\n        }" (if "if") (parenthesized_expression "(uVar22 < 0x32)" (( "(") (binary_expression "uVar22 < 0x32" (identifier "uVar22") (< "<") (number_literal "0x32")) () ")")) (compound_statement "{\n          uVar7 = uVar26;\n          if (uVar22 != 1) goto LAB_002e313c;\nLAB_002e39b4:\n          uVar7 = uVar26;\n          if (local_58 != 0) goto LAB_002e313c;\n          *(ulonglong *)(param_1 + 8) = uVar26;\n          goto LAB_002e313c;\n        }" ({ "{") (expression_statement "uVar7 = uVar26;" (assignment_expression "uVar7 = uVar26" (identifier "uVar7") (= "=") (identifier "uVar26")) (; ";")) (if_statement "if (uVar22 != 1) goto LAB_002e313c;" (if "if") (parenthesized_expression "(uVar22 != 1)" (( "(") (binary_expression "uVar22 != 1" (identifier "uVar22") (!= "!=") (number_literal "1")) () ")")) (goto_statement "goto LAB_002e313c;" (goto "goto") (statement_identifier "LAB_002e313c") (; ";"))) (labeled_statement "LAB_002e39b4:\n          uVar7 = uVar26;" (statement_identifier "LAB_002e39b4") (: ":") (expression_statement "uVar7 = uVar26;" (assignment_expression "uVar7 = uVar26" (identifier "uVar7") (= "=") (identifier "uVar26")) (; ";"))) (if_statement "if (local_58 != 0) goto LAB_002e313c;" (if "if") (parenthesized_expression "(local_58 != 0)" (( "(") (binary_expression "local_58 != 0" (identifier "local_58") (!= "!=") (number_literal "0")) () ")")) (goto_statement "goto LAB_002e313c;" (goto "goto") (statement_identifier "LAB_002e313c") (; ";"))) (expression_statement "*(ulonglong *)(param_1 + 8) = uVar26;" (assignment_expression "*(ulonglong *)(param_1 + 8) = uVar26" (pointer_expression "*(ulonglong *)(param_1 + 8)" (* "*") (cast_expression "(ulonglong *)(param_1 + 8)" (( "(") (type_descriptor "ulonglong *" (type_identifier "ulonglong") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_1 + 8)" (( "(") (binary_expression "param_1 + 8" (identifier "param_1") (+ "+") (number_literal "8")) () ")")))) (= "=") (identifier "uVar26")) (; ";")) (goto_statement "goto LAB_002e313c;" (goto "goto") (statement_identifier "LAB_002e313c") (; ";")) (} "}"))) (if_statement "if ((uVar22 != 0x6e) && (uVar22 != 0x2007)) {\nLAB_002e339c:\n          uVar7 = uVar26;\n          if (uVar22 != 0x47) goto LAB_002e313c;\n          *(ulonglong *)(param_1 + 0x18) = uVar26;\n          goto LAB_002e313c;\n        }" (if "if") (parenthesized_expression "((uVar22 != 0x6e) && (uVar22 != 0x2007))" (( "(") (binary_expression "(uVar22 != 0x6e) && (uVar22 != 0x2007)" (parenthesized_expression "(uVar22 != 0x6e)" (( "(") (binary_expression "uVar22 != 0x6e" (identifier "uVar22") (!= "!=") (number_literal "0x6e")) () ")")) (&& "&&") (parenthesized_expression "(uVar22 != 0x2007)" (( "(") (binary_expression "uVar22 != 0x2007" (identifier "uVar22") (!= "!=") (number_literal "0x2007")) () ")"))) () ")")) (compound_statement "{\nLAB_002e339c:\n          uVar7 = uVar26;\n          if (uVar22 != 0x47) goto LAB_002e313c;\n          *(ulonglong *)(param_1 + 0x18) = uVar26;\n          goto LAB_002e313c;\n        }" ({ "{") (labeled_statement "LAB_002e339c:\n          uVar7 = uVar26;" (statement_identifier "LAB_002e339c") (: ":") (expression_statement "uVar7 = uVar26;" (assignment_expression "uVar7 = uVar26" (identifier "uVar7") (= "=") (identifier "uVar26")) (; ";"))) (if_statement "if (uVar22 != 0x47) goto LAB_002e313c;" (if "if") (parenthesized_expression "(uVar22 != 0x47)" (( "(") (binary_expression "uVar22 != 0x47" (identifier "uVar22") (!= "!=") (number_literal "0x47")) () ")")) (goto_statement "goto LAB_002e313c;" (goto "goto") (statement_identifier "LAB_002e313c") (; ";"))) (expression_statement "*(ulonglong *)(param_1 + 0x18) = uVar26;" (assignment_expression "*(ulonglong *)(param_1 + 0x18) = uVar26" (pointer_expression "*(ulonglong *)(param_1 + 0x18)" (* "*") (cast_expression "(ulonglong *)(param_1 + 0x18)" (( "(") (type_descriptor "ulonglong *" (type_identifier "ulonglong") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_1 + 0x18)" (( "(") (binary_expression "param_1 + 0x18" (identifier "param_1") (+ "+") (number_literal "0x18")) () ")")))) (= "=") (identifier "uVar26")) (; ";")) (goto_statement "goto LAB_002e313c;" (goto "goto") (statement_identifier "LAB_002e313c") (; ";")) (} "}"))) (goto_statement "goto LAB_002e3858;" (goto "goto") (statement_identifier "LAB_002e3858") (; ";")) (} "}"))) (if_statement "if (uVar19 == 7) {\n        pcVar25 = *(code **)(**(int **)(*param_1 + 8) + 0xc);\n        if (pcVar25 == (code *)PTR_is_big_endian_004c2950) {\n          local_30 = puVar18;\n          iVar10 = (**(code **)(**(int **)(*param_1 + 8) + 0xe8))();\n        }\n        else {\n          local_30 = puVar18;\n          iVar10 = (*pcVar25)();\n        }\n        local_50._4_4_ = (uint *)local_44[1];\n        puVar9 = (uint *)*local_44;\n        if (iVar10 == 0) {\n          uVar15 = (uint)local_50._4_4_ & 0xff;\n          uVar16 = (uint)local_50._4_4_ >> 8;\n          uVar2 = (uint)local_50._4_4_ >> 0x10;\n          uVar4 = (uint)local_50._4_4_ >> 0x18;\n          local_50._4_4_ =\n               (uint *)(((((uint)puVar9 >> 0x10) << 0x18 | ((uint)puVar9 >> 0x18) << 0x10) >> 0x10)\n                       + (((uint)puVar9 & 0xff) << 8 | (uint)puVar9 >> 8 & 0xff) * 0x10000);\n          puVar9 = (uint *)(((uVar2 << 0x18 | uVar4 << 0x10) >> 0x10) +\n                           (uVar15 << 8 | uVar16 & 0xff) * 0x10000);\n        }\n        local_44 = local_44 + 2;\n        iVar10 = *param_1;\n        local_50._0_4_ = puVar9;\nLAB_002e3708:\n        local_58 = (*local_3c)(iVar10,puVar9,iVar8,local_30,local_40);\n        local_60._4_4_ = local_50._4_4_;\n        local_60._0_4_ = local_50._0_4_;\n        goto LAB_002e355c;\n      }" (if "if") (parenthesized_expression "(uVar19 == 7)" (( "(") (binary_expression "uVar19 == 7" (identifier "uVar19") (== "==") (number_literal "7")) () ")")) (compound_statement "{\n        pcVar25 = *(code **)(**(int **)(*param_1 + 8) + 0xc);\n        if (pcVar25 == (code *)PTR_is_big_endian_004c2950) {\n          local_30 = puVar18;\n          iVar10 = (**(code **)(**(int **)(*param_1 + 8) + 0xe8))();\n        }\n        else {\n          local_30 = puVar18;\n          iVar10 = (*pcVar25)();\n        }\n        local_50._4_4_ = (uint *)local_44[1];\n        puVar9 = (uint *)*local_44;\n        if (iVar10 == 0) {\n          uVar15 = (uint)local_50._4_4_ & 0xff;\n          uVar16 = (uint)local_50._4_4_ >> 8;\n          uVar2 = (uint)local_50._4_4_ >> 0x10;\n          uVar4 = (uint)local_50._4_4_ >> 0x18;\n          local_50._4_4_ =\n               (uint *)(((((uint)puVar9 >> 0x10) << 0x18 | ((uint)puVar9 >> 0x18) << 0x10) >> 0x10)\n                       + (((uint)puVar9 & 0xff) << 8 | (uint)puVar9 >> 8 & 0xff) * 0x10000);\n          puVar9 = (uint *)(((uVar2 << 0x18 | uVar4 << 0x10) >> 0x10) +\n                           (uVar15 << 8 | uVar16 & 0xff) * 0x10000);\n        }\n        local_44 = local_44 + 2;\n        iVar10 = *param_1;\n        local_50._0_4_ = puVar9;\nLAB_002e3708:\n        local_58 = (*local_3c)(iVar10,puVar9,iVar8,local_30,local_40);\n        local_60._4_4_ = local_50._4_4_;\n        local_60._0_4_ = local_50._0_4_;\n        goto LAB_002e355c;\n      }" ({ "{") (expression_statement "pcVar25 = *(code **)(**(int **)(*param_1 + 8) + 0xc);" (assignment_expression "pcVar25 = *(code **)(**(int **)(*param_1 + 8) + 0xc)" (identifier "pcVar25") (= "=") (pointer_expression "*(code **)(**(int **)(*param_1 + 8) + 0xc)" (* "*") (cast_expression "(code **)(**(int **)(*param_1 + 8) + 0xc)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(**(int **)(*param_1 + 8) + 0xc)" (( "(") (binary_expression "**(int **)(*param_1 + 8) + 0xc" (pointer_expression "**(int **)(*param_1 + 8)" (* "*") (pointer_expression "*(int **)(*param_1 + 8)" (* "*") (cast_expression "(int **)(*param_1 + 8)" (( "(") (type_descriptor "int **" (primitive_type "int") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(*param_1 + 8)" (( "(") (binary_expression "*param_1 + 8" (pointer_expression "*param_1" (* "*") (identifier "param_1")) (+ "+") (number_literal "8")) () ")"))))) (+ "+") (number_literal "0xc")) () ")"))))) (; ";")) (if_statement "if (pcVar25 == (code *)PTR_is_big_endian_004c2950) {\n          local_30 = puVar18;\n          iVar10 = (**(code **)(**(int **)(*param_1 + 8) + 0xe8))();\n        }\n        else {\n          local_30 = puVar18;\n          iVar10 = (*pcVar25)();\n        }" (if "if") (parenthesized_expression "(pcVar25 == (code *)PTR_is_big_endian_004c2950)" (( "(") (binary_expression "pcVar25 == (code *)PTR_is_big_endian_004c2950" (identifier "pcVar25") (== "==") (cast_expression "(code *)PTR_is_big_endian_004c2950" (( "(") (type_descriptor "code *" (type_identifier "code") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "PTR_is_big_endian_004c2950"))) () ")")) (compound_statement "{\n          local_30 = puVar18;\n          iVar10 = (**(code **)(**(int **)(*param_1 + 8) + 0xe8))();\n        }" ({ "{") (expression_statement "local_30 = puVar18;" (assignment_expression "local_30 = puVar18" (identifier "local_30") (= "=") (identifier "puVar18")) (; ";")) (expression_statement "iVar10 = (**(code **)(**(int **)(*param_1 + 8) + 0xe8))();" (assignment_expression "iVar10 = (**(code **)(**(int **)(*param_1 + 8) + 0xe8))()" (identifier "iVar10") (= "=") (call_expression "(**(code **)(**(int **)(*param_1 + 8) + 0xe8))()" (parenthesized_expression "(**(code **)(**(int **)(*param_1 + 8) + 0xe8))" (( "(") (pointer_expression "**(code **)(**(int **)(*param_1 + 8) + 0xe8)" (* "*") (pointer_expression "*(code **)(**(int **)(*param_1 + 8) + 0xe8)" (* "*") (cast_expression "(code **)(**(int **)(*param_1 + 8) + 0xe8)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(**(int **)(*param_1 + 8) + 0xe8)" (( "(") (binary_expression "**(int **)(*param_1 + 8) + 0xe8" (pointer_expression "**(int **)(*param_1 + 8)" (* "*") (pointer_expression "*(int **)(*param_1 + 8)" (* "*") (cast_expression "(int **)(*param_1 + 8)" (( "(") (type_descriptor "int **" (primitive_type "int") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(*param_1 + 8)" (( "(") (binary_expression "*param_1 + 8" (pointer_expression "*param_1" (* "*") (identifier "param_1")) (+ "+") (number_literal "8")) () ")"))))) (+ "+") (number_literal "0xe8")) () ")"))))) () ")")) (argument_list "()" (( "(") () ")")))) (; ";")) (} "}")) (else_clause "else {\n          local_30 = puVar18;\n          iVar10 = (*pcVar25)();\n        }" (else "else") (compound_statement "{\n          local_30 = puVar18;\n          iVar10 = (*pcVar25)();\n        }" ({ "{") (expression_statement "local_30 = puVar18;" (assignment_expression "local_30 = puVar18" (identifier "local_30") (= "=") (identifier "puVar18")) (; ";")) (expression_statement "iVar10 = (*pcVar25)();" (assignment_expression "iVar10 = (*pcVar25)()" (identifier "iVar10") (= "=") (call_expression "(*pcVar25)()" (parenthesized_expression "(*pcVar25)" (( "(") (pointer_expression "*pcVar25" (* "*") (identifier "pcVar25")) () ")")) (argument_list "()" (( "(") () ")")))) (; ";")) (} "}")))) (expression_statement "local_50._4_4_ = (uint *)local_44[1];" (assignment_expression "local_50._4_4_ = (uint *)local_44[1]" (field_expression "local_50._4_4_" (identifier "local_50") (. ".") (field_identifier "_4_4_")) (= "=") (cast_expression "(uint *)local_44[1]" (( "(") (type_descriptor "uint *" (type_identifier "uint") (abstract_pointer_declarator "*" (* "*"))) () ")") (subscript_expression "local_44[1]" (identifier "local_44") ([ "[") (number_literal "1") (] "]")))) (; ";")) (expression_statement "puVar9 = (uint *)*local_44;" (assignment_expression "puVar9 = (uint *)*local_44" (identifier "puVar9") (= "=") (cast_expression "(uint *)*local_44" (( "(") (type_descriptor "uint *" (type_identifier "uint") (abstract_pointer_declarator "*" (* "*"))) () ")") (pointer_expression "*local_44" (* "*") (identifier "local_44")))) (; ";")) (if_statement "if (iVar10 == 0) {\n          uVar15 = (uint)local_50._4_4_ & 0xff;\n          uVar16 = (uint)local_50._4_4_ >> 8;\n          uVar2 = (uint)local_50._4_4_ >> 0x10;\n          uVar4 = (uint)local_50._4_4_ >> 0x18;\n          local_50._4_4_ =\n               (uint *)(((((uint)puVar9 >> 0x10) << 0x18 | ((uint)puVar9 >> 0x18) << 0x10) >> 0x10)\n                       + (((uint)puVar9 & 0xff) << 8 | (uint)puVar9 >> 8 & 0xff) * 0x10000);\n          puVar9 = (uint *)(((uVar2 << 0x18 | uVar4 << 0x10) >> 0x10) +\n                           (uVar15 << 8 | uVar16 & 0xff) * 0x10000);\n        }" (if "if") (parenthesized_expression "(iVar10 == 0)" (( "(") (binary_expression "iVar10 == 0" (identifier "iVar10") (== "==") (number_literal "0")) () ")")) (compound_statement "{\n          uVar15 = (uint)local_50._4_4_ & 0xff;\n          uVar16 = (uint)local_50._4_4_ >> 8;\n          uVar2 = (uint)local_50._4_4_ >> 0x10;\n          uVar4 = (uint)local_50._4_4_ >> 0x18;\n          local_50._4_4_ =\n               (uint *)(((((uint)puVar9 >> 0x10) << 0x18 | ((uint)puVar9 >> 0x18) << 0x10) >> 0x10)\n                       + (((uint)puVar9 & 0xff) << 8 | (uint)puVar9 >> 8 & 0xff) * 0x10000);\n          puVar9 = (uint *)(((uVar2 << 0x18 | uVar4 << 0x10) >> 0x10) +\n                           (uVar15 << 8 | uVar16 & 0xff) * 0x10000);\n        }" ({ "{") (expression_statement "uVar15 = (uint)local_50._4_4_ & 0xff;" (assignment_expression "uVar15 = (uint)local_50._4_4_ & 0xff" (identifier "uVar15") (= "=") (binary_expression "(uint)local_50._4_4_ & 0xff" (cast_expression "(uint)local_50._4_4_" (( "(") (type_descriptor "uint" (type_identifier "uint")) () ")") (field_expression "local_50._4_4_" (identifier "local_50") (. ".") (field_identifier "_4_4_"))) (& "&") (number_literal "0xff"))) (; ";")) (expression_statement "uVar16 = (uint)local_50._4_4_ >> 8;" (assignment_expression "uVar16 = (uint)local_50._4_4_ >> 8" (identifier "uVar16") (= "=") (binary_expression "(uint)local_50._4_4_ >> 8" (cast_expression "(uint)local_50._4_4_" (( "(") (type_descriptor "uint" (type_identifier "uint")) () ")") (field_expression "local_50._4_4_" (identifier "local_50") (. ".") (field_identifier "_4_4_"))) (>> ">>") (number_literal "8"))) (; ";")) (expression_statement "uVar2 = (uint)local_50._4_4_ >> 0x10;" (assignment_expression "uVar2 = (uint)local_50._4_4_ >> 0x10" (identifier "uVar2") (= "=") (binary_expression "(uint)local_50._4_4_ >> 0x10" (cast_expression "(uint)local_50._4_4_" (( "(") (type_descriptor "uint" (type_identifier "uint")) () ")") (field_expression "local_50._4_4_" (identifier "local_50") (. ".") (field_identifier "_4_4_"))) (>> ">>") (number_literal "0x10"))) (; ";")) (expression_statement "uVar4 = (uint)local_50._4_4_ >> 0x18;" (assignment_expression "uVar4 = (uint)local_50._4_4_ >> 0x18" (identifier "uVar4") (= "=") (binary_expression "(uint)local_50._4_4_ >> 0x18" (cast_expression "(uint)local_50._4_4_" (( "(") (type_descriptor "uint" (type_identifier "uint")) () ")") (field_expression "local_50._4_4_" (identifier "local_50") (. ".") (field_identifier "_4_4_"))) (>> ">>") (number_literal "0x18"))) (; ";")) (expression_statement "local_50._4_4_ =\n               (uint *)(((((uint)puVar9 >> 0x10) << 0x18 | ((uint)puVar9 >> 0x18) << 0x10) >> 0x10)\n                       + (((uint)puVar9 & 0xff) << 8 | (uint)puVar9 >> 8 & 0xff) * 0x10000);" (assignment_expression "local_50._4_4_ =\n               (uint *)(((((uint)puVar9 >> 0x10) << 0x18 | ((uint)puVar9 >> 0x18) << 0x10) >> 0x10)\n                       + (((uint)puVar9 & 0xff) << 8 | (uint)puVar9 >> 8 & 0xff) * 0x10000)" (field_expression "local_50._4_4_" (identifier "local_50") (. ".") (field_identifier "_4_4_")) (= "=") (cast_expression "(uint *)(((((uint)puVar9 >> 0x10) << 0x18 | ((uint)puVar9 >> 0x18) << 0x10) >> 0x10)\n                       + (((uint)puVar9 & 0xff) << 8 | (uint)puVar9 >> 8 & 0xff) * 0x10000)" (( "(") (type_descriptor "uint *" (type_identifier "uint") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(((((uint)puVar9 >> 0x10) << 0x18 | ((uint)puVar9 >> 0x18) << 0x10) >> 0x10)\n                       + (((uint)puVar9 & 0xff) << 8 | (uint)puVar9 >> 8 & 0xff) * 0x10000)" (( "(") (binary_expression "((((uint)puVar9 >> 0x10) << 0x18 | ((uint)puVar9 >> 0x18) << 0x10) >> 0x10)\n                       + (((uint)puVar9 & 0xff) << 8 | (uint)puVar9 >> 8 & 0xff) * 0x10000" (parenthesized_expression "((((uint)puVar9 >> 0x10) << 0x18 | ((uint)puVar9 >> 0x18) << 0x10) >> 0x10)" (( "(") (binary_expression "(((uint)puVar9 >> 0x10) << 0x18 | ((uint)puVar9 >> 0x18) << 0x10) >> 0x10" (parenthesized_expression "(((uint)puVar9 >> 0x10) << 0x18 | ((uint)puVar9 >> 0x18) << 0x10)" (( "(") (binary_expression "((uint)puVar9 >> 0x10) << 0x18 | ((uint)puVar9 >> 0x18) << 0x10" (binary_expression "((uint)puVar9 >> 0x10) << 0x18" (parenthesized_expression "((uint)puVar9 >> 0x10)" (( "(") (binary_expression "(uint)puVar9 >> 0x10" (cast_expression "(uint)puVar9" (( "(") (type_descriptor "uint" (type_identifier "uint")) () ")") (identifier "puVar9")) (>> ">>") (number_literal "0x10")) () ")")) (<< "<<") (number_literal "0x18")) (| "|") (binary_expression "((uint)puVar9 >> 0x18) << 0x10" (parenthesized_expression "((uint)puVar9 >> 0x18)" (( "(") (binary_expression "(uint)puVar9 >> 0x18" (cast_expression "(uint)puVar9" (( "(") (type_descriptor "uint" (type_identifier "uint")) () ")") (identifier "puVar9")) (>> ">>") (number_literal "0x18")) () ")")) (<< "<<") (number_literal "0x10"))) () ")")) (>> ">>") (number_literal "0x10")) () ")")) (+ "+") (binary_expression "(((uint)puVar9 & 0xff) << 8 | (uint)puVar9 >> 8 & 0xff) * 0x10000" (parenthesized_expression "(((uint)puVar9 & 0xff) << 8 | (uint)puVar9 >> 8 & 0xff)" (( "(") (binary_expression "((uint)puVar9 & 0xff) << 8 | (uint)puVar9 >> 8 & 0xff" (binary_expression "((uint)puVar9 & 0xff) << 8" (parenthesized_expression "((uint)puVar9 & 0xff)" (( "(") (binary_expression "(uint)puVar9 & 0xff" (cast_expression "(uint)puVar9" (( "(") (type_descriptor "uint" (type_identifier "uint")) () ")") (identifier "puVar9")) (& "&") (number_literal "0xff")) () ")")) (<< "<<") (number_literal "8")) (| "|") (binary_expression "(uint)puVar9 >> 8 & 0xff" (binary_expression "(uint)puVar9 >> 8" (cast_expression "(uint)puVar9" (( "(") (type_descriptor "uint" (type_identifier "uint")) () ")") (identifier "puVar9")) (>> ">>") (number_literal "8")) (& "&") (number_literal "0xff"))) () ")")) (* "*") (number_literal "0x10000"))) () ")")))) (; ";")) (expression_statement "puVar9 = (uint *)(((uVar2 << 0x18 | uVar4 << 0x10) >> 0x10) +\n                           (uVar15 << 8 | uVar16 & 0xff) * 0x10000);" (assignment_expression "puVar9 = (uint *)(((uVar2 << 0x18 | uVar4 << 0x10) >> 0x10) +\n                           (uVar15 << 8 | uVar16 & 0xff) * 0x10000)" (identifier "puVar9") (= "=") (cast_expression "(uint *)(((uVar2 << 0x18 | uVar4 << 0x10) >> 0x10) +\n                           (uVar15 << 8 | uVar16 & 0xff) * 0x10000)" (( "(") (type_descriptor "uint *" (type_identifier "uint") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(((uVar2 << 0x18 | uVar4 << 0x10) >> 0x10) +\n                           (uVar15 << 8 | uVar16 & 0xff) * 0x10000)" (( "(") (binary_expression "((uVar2 << 0x18 | uVar4 << 0x10) >> 0x10) +\n                           (uVar15 << 8 | uVar16 & 0xff) * 0x10000" (parenthesized_expression "((uVar2 << 0x18 | uVar4 << 0x10) >> 0x10)" (( "(") (binary_expression "(uVar2 << 0x18 | uVar4 << 0x10) >> 0x10" (parenthesized_expression "(uVar2 << 0x18 | uVar4 << 0x10)" (( "(") (binary_expression "uVar2 << 0x18 | uVar4 << 0x10" (binary_expression "uVar2 << 0x18" (identifier "uVar2") (<< "<<") (number_literal "0x18")) (| "|") (binary_expression "uVar4 << 0x10" (identifier "uVar4") (<< "<<") (number_literal "0x10"))) () ")")) (>> ">>") (number_literal "0x10")) () ")")) (+ "+") (binary_expression "(uVar15 << 8 | uVar16 & 0xff) * 0x10000" (parenthesized_expression "(uVar15 << 8 | uVar16 & 0xff)" (( "(") (binary_expression "uVar15 << 8 | uVar16 & 0xff" (binary_expression "uVar15 << 8" (identifier "uVar15") (<< "<<") (number_literal "8")) (| "|") (binary_expression "uVar16 & 0xff" (identifier "uVar16") (& "&") (number_literal "0xff"))) () ")")) (* "*") (number_literal "0x10000"))) () ")")))) (; ";")) (} "}"))) (expression_statement "local_44 = local_44 + 2;" (assignment_expression "local_44 = local_44 + 2" (identifier "local_44") (= "=") (binary_expression "local_44 + 2" (identifier "local_44") (+ "+") (number_literal "2"))) (; ";")) (expression_statement "iVar10 = *param_1;" (assignment_expression "iVar10 = *param_1" (identifier "iVar10") (= "=") (pointer_expression "*param_1" (* "*") (identifier "param_1"))) (; ";")) (expression_statement "local_50._0_4_ = puVar9;" (assignment_expression "local_50._0_4_ = puVar9" (field_expression "local_50._0_4_" (identifier "local_50") (. ".") (field_identifier "_0_4_")) (= "=") (identifier "puVar9")) (; ";")) (labeled_statement "LAB_002e3708:\n        local_58 = (*local_3c)(iVar10,puVar9,iVar8,local_30,local_40);" (statement_identifier "LAB_002e3708") (: ":") (expression_statement "local_58 = (*local_3c)(iVar10,puVar9,iVar8,local_30,local_40);" (assignment_expression "local_58 = (*local_3c)(iVar10,puVar9,iVar8,local_30,local_40)" (identifier "local_58") (= "=") (call_expression "(*local_3c)(iVar10,puVar9,iVar8,local_30,local_40)" (parenthesized_expression "(*local_3c)" (( "(") (pointer_expression "*local_3c" (* "*") (identifier "local_3c")) () ")")) (argument_list "(iVar10,puVar9,iVar8,local_30,local_40)" (( "(") (identifier "iVar10") (, ",") (identifier "puVar9") (, ",") (identifier "iVar8") (, ",") (identifier "local_30") (, ",") (identifier "local_40") () ")")))) (; ";"))) (expression_statement "local_60._4_4_ = local_50._4_4_;" (assignment_expression "local_60._4_4_ = local_50._4_4_" (field_expression "local_60._4_4_" (identifier "local_60") (. ".") (field_identifier "_4_4_")) (= "=") (field_expression "local_50._4_4_" (identifier "local_50") (. ".") (field_identifier "_4_4_"))) (; ";")) (expression_statement "local_60._0_4_ = local_50._0_4_;" (assignment_expression "local_60._0_4_ = local_50._0_4_" (field_expression "local_60._0_4_" (identifier "local_60") (. ".") (field_identifier "_0_4_")) (= "=") (field_expression "local_50._0_4_" (identifier "local_50") (. ".") (field_identifier "_0_4_"))) (; ";")) (goto_statement "goto LAB_002e355c;" (goto "goto") (statement_identifier "LAB_002e355c") (; ";")) (} "}"))) (if_statement "if (7 < uVar19) {\n        if (uVar19 == 10) {\n          local_60._0_4_ = (uint *)((int)local_44 + 1);\n          local_58 = (uint)*(byte *)local_44;\n          local_44 = (uint *)((int)local_60._0_4_ + local_58);\n          goto LAB_002e355c;\n        }\n        if (uVar19 < 0xb) {\n          if (uVar19 != 8) {\n            if (uVar19 != 9) {\n              return 0;\n            }\nLAB_002e32bc:\n            uVar15 = (uint)*(byte *)local_44;\n            pbVar14 = (byte *)((int)local_44 + 1);\n            if ((char)*(byte *)local_44 < '\0') {\n              (*(code *)PTR_read_unsigned_LEB_128_x_004c2980)(pbVar14,&local_48);\n              pbVar14 = (byte *)((int)local_44 + local_48);\n              uVar15 = extraout_v1_00;\n            }\n            else {\n              local_48 = 1;\n            }\n            uVar26 = CONCAT44(pbVar14,local_60._4_4_);\n            local_58 = uVar15;\n            local_44 = (uint *)((int)local_44 + uVar15 + local_48);\n            goto LAB_002e382c;\n          }\n          local_60._0_4_ = local_44;\n          local_30 = local_44;\n          local_48 = (*(code *)PTR_strlen_004c5b9c)(local_44);\n          uVar26 = CONCAT44(local_60._0_4_,local_60._4_4_);\n          local_44 = (uint *)((int)local_30 + local_48 + 1);\n          uVar7 = CONCAT44(local_60._0_4_,local_60._4_4_);\n          if (uVar22 == 0x31) goto LAB_002e313c;\n          if (0x31 < uVar22) {\n            if ((uVar22 != 0x6e) &&\n               (uVar7 = CONCAT44(local_60._0_4_,local_60._4_4_), uVar22 != 0x2007))\n            goto LAB_002e313c;\n            param_1[0x12] = (int)local_30;\n            uVar7 = uVar26;\n            goto LAB_002e313c;\n          }\nLAB_002e3118:\n          uVar7 = uVar26;\n          if (uVar22 == 1) goto LAB_002e313c;\njoined_r0x002e3124:\n          uVar7 = uVar26;\n          if (uVar22 != 3) goto LAB_002e313c;\n          local_60._0_4_ = (uint *)(uVar26 >> 0x20);\n          if (uVar19 == 8) {\n            param_1[0xf] = (int)local_60._0_4_;\n            goto LAB_002e313c;\n          }\n          if (uVar19 != 0xe) goto LAB_002e313c;\n          goto LAB_002e3284;\n        }\n        if (uVar19 < 0xd) {\n          uVar26 = (ulonglong)*(byte *)local_44;\n          local_44 = (uint *)((int)local_44 + 1);\nLAB_002e382c:\n          uVar7 = uVar26;\n          if (uVar22 == 0x31) goto LAB_002e313c;\n          if (uVar22 < 0x32) goto LAB_002e3118;\n        }\n        else {\n          bVar1 = *(byte *)local_44;\n          uVar15 = (uint)bVar1;\n          puVar9 = (uint *)((int)local_44 + 1);\n          if ((char)bVar1 < '\0') {\n            uVar26 = (*(code *)PTR_read_signed_LEB_128_x_004c297c)(puVar9,&local_48,uVar15);\n            puVar9 = (uint *)((int)local_44 + local_48);\n          }\n          else {\n            local_48 = 1;\n            uVar26 = (ulonglong)uVar15;\n            if ((bVar1 & 0x40) != 0) {\n              uVar26 = CONCAT44(0xffffffff,uVar15 | 0xffffff80);\n            }\n          }\n          local_44 = puVar9;\n          uVar7 = uVar26;\n          if (uVar22 == 0x31) goto LAB_002e313c;\n          if (uVar22 < 0x32) {\n            puVar9 = (uint *)param_1[0xc];\n            if (puVar9 != (uint *)param_1[0xd]) goto LAB_002e314c;\nLAB_002e2f98:\n            iVar17 = iVar17 + 8;\n            local_60 = uVar26;\n            std::\n            vector<gold::Dwarf_die::Attribute_value,std::allocator<gold::Dwarf_die::Attribute_value>>\n            ::_M_realloc_insert<gold::Dwarf_die::Attribute_value_const&>(local_38,puVar9,&local_68);\n            iVar8 = param_1[10];\n            if (iVar17 == iVar21) goto LAB_002e2fb8;\n            goto LAB_002e2db4;\n          }\n        }\n        if ((uVar22 != 0x6e) && (uVar7 = uVar26, uVar22 != 0x2007)) goto LAB_002e313c;\nLAB_002e3858:\n        local_60._0_4_ = (uint *)(uVar26 >> 0x20);\n        uVar7 = uVar26;\n        if (uVar19 == 8) {\n          param_1[0x12] = (int)local_60._0_4_;\n          goto LAB_002e313c;\n        }\n        if (uVar19 != 0xe) goto LAB_002e313c;\n        goto LAB_002e387c;\n      }" (if "if") (parenthesized_expression "(7 < uVar19)" (( "(") (binary_expression "7 < uVar19" (number_literal "7") (< "<") (identifier "uVar19")) () ")")) (compound_statement "{\n        if (uVar19 == 10) {\n          local_60._0_4_ = (uint *)((int)local_44 + 1);\n          local_58 = (uint)*(byte *)local_44;\n          local_44 = (uint *)((int)local_60._0_4_ + local_58);\n          goto LAB_002e355c;\n        }\n        if (uVar19 < 0xb) {\n          if (uVar19 != 8) {\n            if (uVar19 != 9) {\n              return 0;\n            }\nLAB_002e32bc:\n            uVar15 = (uint)*(byte *)local_44;\n            pbVar14 = (byte *)((int)local_44 + 1);\n            if ((char)*(byte *)local_44 < '\0') {\n              (*(code *)PTR_read_unsigned_LEB_128_x_004c2980)(pbVar14,&local_48);\n              pbVar14 = (byte *)((int)local_44 + local_48);\n              uVar15 = extraout_v1_00;\n            }\n            else {\n              local_48 = 1;\n            }\n            uVar26 = CONCAT44(pbVar14,local_60._4_4_);\n            local_58 = uVar15;\n            local_44 = (uint *)((int)local_44 + uVar15 + local_48);\n            goto LAB_002e382c;\n          }\n          local_60._0_4_ = local_44;\n          local_30 = local_44;\n          local_48 = (*(code *)PTR_strlen_004c5b9c)(local_44);\n          uVar26 = CONCAT44(local_60._0_4_,local_60._4_4_);\n          local_44 = (uint *)((int)local_30 + local_48 + 1);\n          uVar7 = CONCAT44(local_60._0_4_,local_60._4_4_);\n          if (uVar22 == 0x31) goto LAB_002e313c;\n          if (0x31 < uVar22) {\n            if ((uVar22 != 0x6e) &&\n               (uVar7 = CONCAT44(local_60._0_4_,local_60._4_4_), uVar22 != 0x2007))\n            goto LAB_002e313c;\n            param_1[0x12] = (int)local_30;\n            uVar7 = uVar26;\n            goto LAB_002e313c;\n          }\nLAB_002e3118:\n          uVar7 = uVar26;\n          if (uVar22 == 1) goto LAB_002e313c;\njoined_r0x002e3124:\n          uVar7 = uVar26;\n          if (uVar22 != 3) goto LAB_002e313c;\n          local_60._0_4_ = (uint *)(uVar26 >> 0x20);\n          if (uVar19 == 8) {\n            param_1[0xf] = (int)local_60._0_4_;\n            goto LAB_002e313c;\n          }\n          if (uVar19 != 0xe) goto LAB_002e313c;\n          goto LAB_002e3284;\n        }\n        if (uVar19 < 0xd) {\n          uVar26 = (ulonglong)*(byte *)local_44;\n          local_44 = (uint *)((int)local_44 + 1);\nLAB_002e382c:\n          uVar7 = uVar26;\n          if (uVar22 == 0x31) goto LAB_002e313c;\n          if (uVar22 < 0x32) goto LAB_002e3118;\n        }\n        else {\n          bVar1 = *(byte *)local_44;\n          uVar15 = (uint)bVar1;\n          puVar9 = (uint *)((int)local_44 + 1);\n          if ((char)bVar1 < '\0') {\n            uVar26 = (*(code *)PTR_read_signed_LEB_128_x_004c297c)(puVar9,&local_48,uVar15);\n            puVar9 = (uint *)((int)local_44 + local_48);\n          }\n          else {\n            local_48 = 1;\n            uVar26 = (ulonglong)uVar15;\n            if ((bVar1 & 0x40) != 0) {\n              uVar26 = CONCAT44(0xffffffff,uVar15 | 0xffffff80);\n            }\n          }\n          local_44 = puVar9;\n          uVar7 = uVar26;\n          if (uVar22 == 0x31) goto LAB_002e313c;\n          if (uVar22 < 0x32) {\n            puVar9 = (uint *)param_1[0xc];\n            if (puVar9 != (uint *)param_1[0xd]) goto LAB_002e314c;\nLAB_002e2f98:\n            iVar17 = iVar17 + 8;\n            local_60 = uVar26;\n            std::\n            vector<gold::Dwarf_die::Attribute_value,std::allocator<gold::Dwarf_die::Attribute_value>>\n            ::_M_realloc_insert<gold::Dwarf_die::Attribute_value_const&>(local_38,puVar9,&local_68);\n            iVar8 = param_1[10];\n            if (iVar17 == iVar21) goto LAB_002e2fb8;\n            goto LAB_002e2db4;\n          }\n        }\n        if ((uVar22 != 0x6e) && (uVar7 = uVar26, uVar22 != 0x2007)) goto LAB_002e313c;\nLAB_002e3858:\n        local_60._0_4_ = (uint *)(uVar26 >> 0x20);\n        uVar7 = uVar26;\n        if (uVar19 == 8) {\n          param_1[0x12] = (int)local_60._0_4_;\n          goto LAB_002e313c;\n        }\n        if (uVar19 != 0xe) goto LAB_002e313c;\n        goto LAB_002e387c;\n      }" ({ "{") (if_statement "if (uVar19 == 10) {\n          local_60._0_4_ = (uint *)((int)local_44 + 1);\n          local_58 = (uint)*(byte *)local_44;\n          local_44 = (uint *)((int)local_60._0_4_ + local_58);\n          goto LAB_002e355c;\n        }" (if "if") (parenthesized_expression "(uVar19 == 10)" (( "(") (binary_expression "uVar19 == 10" (identifier "uVar19") (== "==") (number_literal "10")) () ")")) (compound_statement "{\n          local_60._0_4_ = (uint *)((int)local_44 + 1);\n          local_58 = (uint)*(byte *)local_44;\n          local_44 = (uint *)((int)local_60._0_4_ + local_58);\n          goto LAB_002e355c;\n        }" ({ "{") (expression_statement "local_60._0_4_ = (uint *)((int)local_44 + 1);" (assignment_expression "local_60._0_4_ = (uint *)((int)local_44 + 1)" (field_expression "local_60._0_4_" (identifier "local_60") (. ".") (field_identifier "_0_4_")) (= "=") (cast_expression "(uint *)((int)local_44 + 1)" (( "(") (type_descriptor "uint *" (type_identifier "uint") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "((int)local_44 + 1)" (( "(") (binary_expression "(int)local_44 + 1" (cast_expression "(int)local_44" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "local_44")) (+ "+") (number_literal "1")) () ")")))) (; ";")) (expression_statement "local_58 = (uint)*(byte *)local_44;" (assignment_expression "local_58 = (uint)*(byte *)local_44" (identifier "local_58") (= "=") (binary_expression "(uint)*(byte *)local_44" (parenthesized_expression "(uint)" (( "(") (identifier "uint") () ")")) (* "*") (cast_expression "(byte *)local_44" (( "(") (type_descriptor "byte *" (type_identifier "byte") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "local_44")))) (; ";")) (expression_statement "local_44 = (uint *)((int)local_60._0_4_ + local_58);" (assignment_expression "local_44 = (uint *)((int)local_60._0_4_ + local_58)" (identifier "local_44") (= "=") (cast_expression "(uint *)((int)local_60._0_4_ + local_58)" (( "(") (type_descriptor "uint *" (type_identifier "uint") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "((int)local_60._0_4_ + local_58)" (( "(") (binary_expression "(int)local_60._0_4_ + local_58" (cast_expression "(int)local_60._0_4_" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (field_expression "local_60._0_4_" (identifier "local_60") (. ".") (field_identifier "_0_4_"))) (+ "+") (identifier "local_58")) () ")")))) (; ";")) (goto_statement "goto LAB_002e355c;" (goto "goto") (statement_identifier "LAB_002e355c") (; ";")) (} "}"))) (if_statement "if (uVar19 < 0xb) {\n          if (uVar19 != 8) {\n            if (uVar19 != 9) {\n              return 0;\n            }\nLAB_002e32bc:\n            uVar15 = (uint)*(byte *)local_44;\n            pbVar14 = (byte *)((int)local_44 + 1);\n            if ((char)*(byte *)local_44 < '\0') {\n              (*(code *)PTR_read_unsigned_LEB_128_x_004c2980)(pbVar14,&local_48);\n              pbVar14 = (byte *)((int)local_44 + local_48);\n              uVar15 = extraout_v1_00;\n            }\n            else {\n              local_48 = 1;\n            }\n            uVar26 = CONCAT44(pbVar14,local_60._4_4_);\n            local_58 = uVar15;\n            local_44 = (uint *)((int)local_44 + uVar15 + local_48);\n            goto LAB_002e382c;\n          }\n          local_60._0_4_ = local_44;\n          local_30 = local_44;\n          local_48 = (*(code *)PTR_strlen_004c5b9c)(local_44);\n          uVar26 = CONCAT44(local_60._0_4_,local_60._4_4_);\n          local_44 = (uint *)((int)local_30 + local_48 + 1);\n          uVar7 = CONCAT44(local_60._0_4_,local_60._4_4_);\n          if (uVar22 == 0x31) goto LAB_002e313c;\n          if (0x31 < uVar22) {\n            if ((uVar22 != 0x6e) &&\n               (uVar7 = CONCAT44(local_60._0_4_,local_60._4_4_), uVar22 != 0x2007))\n            goto LAB_002e313c;\n            param_1[0x12] = (int)local_30;\n            uVar7 = uVar26;\n            goto LAB_002e313c;\n          }\nLAB_002e3118:\n          uVar7 = uVar26;\n          if (uVar22 == 1) goto LAB_002e313c;\njoined_r0x002e3124:\n          uVar7 = uVar26;\n          if (uVar22 != 3) goto LAB_002e313c;\n          local_60._0_4_ = (uint *)(uVar26 >> 0x20);\n          if (uVar19 == 8) {\n            param_1[0xf] = (int)local_60._0_4_;\n            goto LAB_002e313c;\n          }\n          if (uVar19 != 0xe) goto LAB_002e313c;\n          goto LAB_002e3284;\n        }" (if "if") (parenthesized_expression "(uVar19 < 0xb)" (( "(") (binary_expression "uVar19 < 0xb" (identifier "uVar19") (< "<") (number_literal "0xb")) () ")")) (compound_statement "{\n          if (uVar19 != 8) {\n            if (uVar19 != 9) {\n              return 0;\n            }\nLAB_002e32bc:\n            uVar15 = (uint)*(byte *)local_44;\n            pbVar14 = (byte *)((int)local_44 + 1);\n            if ((char)*(byte *)local_44 < '\0') {\n              (*(code *)PTR_read_unsigned_LEB_128_x_004c2980)(pbVar14,&local_48);\n              pbVar14 = (byte *)((int)local_44 + local_48);\n              uVar15 = extraout_v1_00;\n            }\n            else {\n              local_48 = 1;\n            }\n            uVar26 = CONCAT44(pbVar14,local_60._4_4_);\n            local_58 = uVar15;\n            local_44 = (uint *)((int)local_44 + uVar15 + local_48);\n            goto LAB_002e382c;\n          }\n          local_60._0_4_ = local_44;\n          local_30 = local_44;\n          local_48 = (*(code *)PTR_strlen_004c5b9c)(local_44);\n          uVar26 = CONCAT44(local_60._0_4_,local_60._4_4_);\n          local_44 = (uint *)((int)local_30 + local_48 + 1);\n          uVar7 = CONCAT44(local_60._0_4_,local_60._4_4_);\n          if (uVar22 == 0x31) goto LAB_002e313c;\n          if (0x31 < uVar22) {\n            if ((uVar22 != 0x6e) &&\n               (uVar7 = CONCAT44(local_60._0_4_,local_60._4_4_), uVar22 != 0x2007))\n            goto LAB_002e313c;\n            param_1[0x12] = (int)local_30;\n            uVar7 = uVar26;\n            goto LAB_002e313c;\n          }\nLAB_002e3118:\n          uVar7 = uVar26;\n          if (uVar22 == 1) goto LAB_002e313c;\njoined_r0x002e3124:\n          uVar7 = uVar26;\n          if (uVar22 != 3) goto LAB_002e313c;\n          local_60._0_4_ = (uint *)(uVar26 >> 0x20);\n          if (uVar19 == 8) {\n            param_1[0xf] = (int)local_60._0_4_;\n            goto LAB_002e313c;\n          }\n          if (uVar19 != 0xe) goto LAB_002e313c;\n          goto LAB_002e3284;\n        }" ({ "{") (if_statement "if (uVar19 != 8) {\n            if (uVar19 != 9) {\n              return 0;\n            }\nLAB_002e32bc:\n            uVar15 = (uint)*(byte *)local_44;\n            pbVar14 = (byte *)((int)local_44 + 1);\n            if ((char)*(byte *)local_44 < '\0') {\n              (*(code *)PTR_read_unsigned_LEB_128_x_004c2980)(pbVar14,&local_48);\n              pbVar14 = (byte *)((int)local_44 + local_48);\n              uVar15 = extraout_v1_00;\n            }\n            else {\n              local_48 = 1;\n            }\n            uVar26 = CONCAT44(pbVar14,local_60._4_4_);\n            local_58 = uVar15;\n            local_44 = (uint *)((int)local_44 + uVar15 + local_48);\n            goto LAB_002e382c;\n          }" (if "if") (parenthesized_expression "(uVar19 != 8)" (( "(") (binary_expression "uVar19 != 8" (identifier "uVar19") (!= "!=") (number_literal "8")) () ")")) (compound_statement "{\n            if (uVar19 != 9) {\n              return 0;\n            }\nLAB_002e32bc:\n            uVar15 = (uint)*(byte *)local_44;\n            pbVar14 = (byte *)((int)local_44 + 1);\n            if ((char)*(byte *)local_44 < '\0') {\n              (*(code *)PTR_read_unsigned_LEB_128_x_004c2980)(pbVar14,&local_48);\n              pbVar14 = (byte *)((int)local_44 + local_48);\n              uVar15 = extraout_v1_00;\n            }\n            else {\n              local_48 = 1;\n            }\n            uVar26 = CONCAT44(pbVar14,local_60._4_4_);\n            local_58 = uVar15;\n            local_44 = (uint *)((int)local_44 + uVar15 + local_48);\n            goto LAB_002e382c;\n          }" ({ "{") (if_statement "if (uVar19 != 9) {\n              return 0;\n            }" (if "if") (parenthesized_expression "(uVar19 != 9)" (( "(") (binary_expression "uVar19 != 9" (identifier "uVar19") (!= "!=") (number_literal "9")) () ")")) (compound_statement "{\n              return 0;\n            }" ({ "{") (return_statement "return 0;" (return "return") (number_literal "0") (; ";")) (} "}"))) (labeled_statement "LAB_002e32bc:\n            uVar15 = (uint)*(byte *)local_44;" (statement_identifier "LAB_002e32bc") (: ":") (expression_statement "uVar15 = (uint)*(byte *)local_44;" (assignment_expression "uVar15 = (uint)*(byte *)local_44" (identifier "uVar15") (= "=") (binary_expression "(uint)*(byte *)local_44" (parenthesized_expression "(uint)" (( "(") (identifier "uint") () ")")) (* "*") (cast_expression "(byte *)local_44" (( "(") (type_descriptor "byte *" (type_identifier "byte") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "local_44")))) (; ";"))) (expression_statement "pbVar14 = (byte *)((int)local_44 + 1);" (assignment_expression "pbVar14 = (byte *)((int)local_44 + 1)" (identifier "pbVar14") (= "=") (cast_expression "(byte *)((int)local_44 + 1)" (( "(") (type_descriptor "byte *" (type_identifier "byte") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "((int)local_44 + 1)" (( "(") (binary_expression "(int)local_44 + 1" (cast_expression "(int)local_44" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "local_44")) (+ "+") (number_literal "1")) () ")")))) (; ";")) (if_statement "if ((char)*(byte *)local_44 < '\0') {\n              (*(code *)PTR_read_unsigned_LEB_128_x_004c2980)(pbVar14,&local_48);\n              pbVar14 = (byte *)((int)local_44 + local_48);\n              uVar15 = extraout_v1_00;\n            }\n            else {\n              local_48 = 1;\n            }" (if "if") (parenthesized_expression "((char)*(byte *)local_44 < '\0')" (( "(") (binary_expression "(char)*(byte *)local_44 < '\0'" (cast_expression "(char)*(byte *)local_44" (( "(") (type_descriptor "char" (primitive_type "char")) () ")") (pointer_expression "*(byte *)local_44" (* "*") (cast_expression "(byte *)local_44" (( "(") (type_descriptor "byte *" (type_identifier "byte") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "local_44")))) (< "<") (char_literal "'\0'" (' "'") (escape_sequence "\0") (' "'"))) () ")")) (compound_statement "{\n              (*(code *)PTR_read_unsigned_LEB_128_x_004c2980)(pbVar14,&local_48);\n              pbVar14 = (byte *)((int)local_44 + local_48);\n              uVar15 = extraout_v1_00;\n            }" ({ "{") (expression_statement "(*(code *)PTR_read_unsigned_LEB_128_x_004c2980)(pbVar14,&local_48);" (call_expression "(*(code *)PTR_read_unsigned_LEB_128_x_004c2980)(pbVar14,&local_48)" (parenthesized_expression "(*(code *)PTR_read_unsigned_LEB_128_x_004c2980)" (( "(") (pointer_expression "*(code *)PTR_read_unsigned_LEB_128_x_004c2980" (* "*") (cast_expression "(code *)PTR_read_unsigned_LEB_128_x_004c2980" (( "(") (type_descriptor "code *" (type_identifier "code") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "PTR_read_unsigned_LEB_128_x_004c2980"))) () ")")) (argument_list "(pbVar14,&local_48)" (( "(") (identifier "pbVar14") (, ",") (pointer_expression "&local_48" (& "&") (identifier "local_48")) () ")"))) (; ";")) (expression_statement "pbVar14 = (byte *)((int)local_44 + local_48);" (assignment_expression "pbVar14 = (byte *)((int)local_44 + local_48)" (identifier "pbVar14") (= "=") (cast_expression "(byte *)((int)local_44 + local_48)" (( "(") (type_descriptor "byte *" (type_identifier "byte") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "((int)local_44 + local_48)" (( "(") (binary_expression "(int)local_44 + local_48" (cast_expression "(int)local_44" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "local_44")) (+ "+") (identifier "local_48")) () ")")))) (; ";")) (expression_statement "uVar15 = extraout_v1_00;" (assignment_expression "uVar15 = extraout_v1_00" (identifier "uVar15") (= "=") (identifier "extraout_v1_00")) (; ";")) (} "}")) (else_clause "else {\n              local_48 = 1;\n            }" (else "else") (compound_statement "{\n              local_48 = 1;\n            }" ({ "{") (expression_statement "local_48 = 1;" (assignment_expression "local_48 = 1" (identifier "local_48") (= "=") (number_literal "1")) (; ";")) (} "}")))) (expression_statement "uVar26 = CONCAT44(pbVar14,local_60._4_4_);" (assignment_expression "uVar26 = CONCAT44(pbVar14,local_60._4_4_)" (identifier "uVar26") (= "=") (call_expression "CONCAT44(pbVar14,local_60._4_4_)" (identifier "CONCAT44") (argument_list "(pbVar14,local_60._4_4_)" (( "(") (identifier "pbVar14") (, ",") (field_expression "local_60._4_4_" (identifier "local_60") (. ".") (field_identifier "_4_4_")) () ")")))) (; ";")) (expression_statement "local_58 = uVar15;" (assignment_expression "local_58 = uVar15" (identifier "local_58") (= "=") (identifier "uVar15")) (; ";")) (expression_statement "local_44 = (uint *)((int)local_44 + uVar15 + local_48);" (assignment_expression "local_44 = (uint *)((int)local_44 + uVar15 + local_48)" (identifier "local_44") (= "=") (cast_expression "(uint *)((int)local_44 + uVar15 + local_48)" (( "(") (type_descriptor "uint *" (type_identifier "uint") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "((int)local_44 + uVar15 + local_48)" (( "(") (binary_expression "(int)local_44 + uVar15 + local_48" (binary_expression "(int)local_44 + uVar15" (cast_expression "(int)local_44" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "local_44")) (+ "+") (identifier "uVar15")) (+ "+") (identifier "local_48")) () ")")))) (; ";")) (goto_statement "goto LAB_002e382c;" (goto "goto") (statement_identifier "LAB_002e382c") (; ";")) (} "}"))) (expression_statement "local_60._0_4_ = local_44;" (assignment_expression "local_60._0_4_ = local_44" (field_expression "local_60._0_4_" (identifier "local_60") (. ".") (field_identifier "_0_4_")) (= "=") (identifier "local_44")) (; ";")) (expression_statement "local_30 = local_44;" (assignment_expression "local_30 = local_44" (identifier "local_30") (= "=") (identifier "local_44")) (; ";")) (expression_statement "local_48 = (*(code *)PTR_strlen_004c5b9c)(local_44);" (assignment_expression "local_48 = (*(code *)PTR_strlen_004c5b9c)(local_44)" (identifier "local_48") (= "=") (call_expression "(*(code *)PTR_strlen_004c5b9c)(local_44)" (parenthesized_expression "(*(code *)PTR_strlen_004c5b9c)" (( "(") (pointer_expression "*(code *)PTR_strlen_004c5b9c" (* "*") (cast_expression "(code *)PTR_strlen_004c5b9c" (( "(") (type_descriptor "code *" (type_identifier "code") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "PTR_strlen_004c5b9c"))) () ")")) (argument_list "(local_44)" (( "(") (identifier "local_44") () ")")))) (; ";")) (expression_statement "uVar26 = CONCAT44(local_60._0_4_,local_60._4_4_);" (assignment_expression "uVar26 = CONCAT44(local_60._0_4_,local_60._4_4_)" (identifier "uVar26") (= "=") (call_expression "CONCAT44(local_60._0_4_,local_60._4_4_)" (identifier "CONCAT44") (argument_list "(local_60._0_4_,local_60._4_4_)" (( "(") (field_expression "local_60._0_4_" (identifier "local_60") (. ".") (field_identifier "_0_4_")) (, ",") (field_expression "local_60._4_4_" (identifier "local_60") (. ".") (field_identifier "_4_4_")) () ")")))) (; ";")) (expression_statement "local_44 = (uint *)((int)local_30 + local_48 + 1);" (assignment_expression "local_44 = (uint *)((int)local_30 + local_48 + 1)" (identifier "local_44") (= "=") (cast_expression "(uint *)((int)local_30 + local_48 + 1)" (( "(") (type_descriptor "uint *" (type_identifier "uint") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "((int)local_30 + local_48 + 1)" (( "(") (binary_expression "(int)local_30 + local_48 + 1" (binary_expression "(int)local_30 + local_48" (cast_expression "(int)local_30" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "local_30")) (+ "+") (identifier "local_48")) (+ "+") (number_literal "1")) () ")")))) (; ";")) (expression_statement "uVar7 = CONCAT44(local_60._0_4_,local_60._4_4_);" (assignment_expression "uVar7 = CONCAT44(local_60._0_4_,local_60._4_4_)" (identifier "uVar7") (= "=") (call_expression "CONCAT44(local_60._0_4_,local_60._4_4_)" (identifier "CONCAT44") (argument_list "(local_60._0_4_,local_60._4_4_)" (( "(") (field_expression "local_60._0_4_" (identifier "local_60") (. ".") (field_identifier "_0_4_")) (, ",") (field_expression "local_60._4_4_" (identifier "local_60") (. ".") (field_identifier "_4_4_")) () ")")))) (; ";")) (if_statement "if (uVar22 == 0x31) goto LAB_002e313c;" (if "if") (parenthesized_expression "(uVar22 == 0x31)" (( "(") (binary_expression "uVar22 == 0x31" (identifier "uVar22") (== "==") (number_literal "0x31")) () ")")) (goto_statement "goto LAB_002e313c;" (goto "goto") (statement_identifier "LAB_002e313c") (; ";"))) (if_statement "if (0x31 < uVar22) {\n            if ((uVar22 != 0x6e) &&\n               (uVar7 = CONCAT44(local_60._0_4_,local_60._4_4_), uVar22 != 0x2007))\n            goto LAB_002e313c;\n            param_1[0x12] = (int)local_30;\n            uVar7 = uVar26;\n            goto LAB_002e313c;\n          }" (if "if") (parenthesized_expression "(0x31 < uVar22)" (( "(") (binary_expression "0x31 < uVar22" (number_literal "0x31") (< "<") (identifier "uVar22")) () ")")) (compound_statement "{\n            if ((uVar22 != 0x6e) &&\n               (uVar7 = CONCAT44(local_60._0_4_,local_60._4_4_), uVar22 != 0x2007))\n            goto LAB_002e313c;\n            param_1[0x12] = (int)local_30;\n            uVar7 = uVar26;\n            goto LAB_002e313c;\n          }" ({ "{") (if_statement "if ((uVar22 != 0x6e) &&\n               (uVar7 = CONCAT44(local_60._0_4_,local_60._4_4_), uVar22 != 0x2007))\n            goto LAB_002e313c;" (if "if") (parenthesized_expression "((uVar22 != 0x6e) &&\n               (uVar7 = CONCAT44(local_60._0_4_,local_60._4_4_), uVar22 != 0x2007))" (( "(") (binary_expression "(uVar22 != 0x6e) &&\n               (uVar7 = CONCAT44(local_60._0_4_,local_60._4_4_), uVar22 != 0x2007)" (parenthesized_expression "(uVar22 != 0x6e)" (( "(") (binary_expression "uVar22 != 0x6e" (identifier "uVar22") (!= "!=") (number_literal "0x6e")) () ")")) (&& "&&") (parenthesized_expression "(uVar7 = CONCAT44(local_60._0_4_,local_60._4_4_), uVar22 != 0x2007)" (( "(") (comma_expression "uVar7 = CONCAT44(local_60._0_4_,local_60._4_4_), uVar22 != 0x2007" (assignment_expression "uVar7 = CONCAT44(local_60._0_4_,local_60._4_4_)" (identifier "uVar7") (= "=") (call_expression "CONCAT44(local_60._0_4_,local_60._4_4_)" (identifier "CONCAT44") (argument_list "(local_60._0_4_,local_60._4_4_)" (( "(") (field_expression "local_60._0_4_" (identifier "local_60") (. ".") (field_identifier "_0_4_")) (, ",") (field_expression "local_60._4_4_" (identifier "local_60") (. ".") (field_identifier "_4_4_")) () ")")))) (, ",") (binary_expression "uVar22 != 0x2007" (identifier "uVar22") (!= "!=") (number_literal "0x2007"))) () ")"))) () ")")) (goto_statement "goto LAB_002e313c;" (goto "goto") (statement_identifier "LAB_002e313c") (; ";"))) (expression_statement "param_1[0x12] = (int)local_30;" (assignment_expression "param_1[0x12] = (int)local_30" (subscript_expression "param_1[0x12]" (identifier "param_1") ([ "[") (number_literal "0x12") (] "]")) (= "=") (cast_expression "(int)local_30" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "local_30"))) (; ";")) (expression_statement "uVar7 = uVar26;" (assignment_expression "uVar7 = uVar26" (identifier "uVar7") (= "=") (identifier "uVar26")) (; ";")) (goto_statement "goto LAB_002e313c;" (goto "goto") (statement_identifier "LAB_002e313c") (; ";")) (} "}"))) (labeled_statement "LAB_002e3118:\n          uVar7 = uVar26;" (statement_identifier "LAB_002e3118") (: ":") (expression_statement "uVar7 = uVar26;" (assignment_expression "uVar7 = uVar26" (identifier "uVar7") (= "=") (identifier "uVar26")) (; ";"))) (if_statement "if (uVar22 == 1) goto LAB_002e313c;" (if "if") (parenthesized_expression "(uVar22 == 1)" (( "(") (binary_expression "uVar22 == 1" (identifier "uVar22") (== "==") (number_literal "1")) () ")")) (goto_statement "goto LAB_002e313c;" (goto "goto") (statement_identifier "LAB_002e313c") (; ";"))) (labeled_statement "joined_r0x002e3124:\n          uVar7 = uVar26;" (statement_identifier "joined_r0x002e3124") (: ":") (expression_statement "uVar7 = uVar26;" (assignment_expression "uVar7 = uVar26" (identifier "uVar7") (= "=") (identifier "uVar26")) (; ";"))) (if_statement "if (uVar22 != 3) goto LAB_002e313c;" (if "if") (parenthesized_expression "(uVar22 != 3)" (( "(") (binary_expression "uVar22 != 3" (identifier "uVar22") (!= "!=") (number_literal "3")) () ")")) (goto_statement "goto LAB_002e313c;" (goto "goto") (statement_identifier "LAB_002e313c") (; ";"))) (expression_statement "local_60._0_4_ = (uint *)(uVar26 >> 0x20);" (assignment_expression "local_60._0_4_ = (uint *)(uVar26 >> 0x20)" (field_expression "local_60._0_4_" (identifier "local_60") (. ".") (field_identifier "_0_4_")) (= "=") (cast_expression "(uint *)(uVar26 >> 0x20)" (( "(") (type_descriptor "uint *" (type_identifier "uint") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(uVar26 >> 0x20)" (( "(") (binary_expression "uVar26 >> 0x20" (identifier "uVar26") (>> ">>") (number_literal "0x20")) () ")")))) (; ";")) (if_statement "if (uVar19 == 8) {\n            param_1[0xf] = (int)local_60._0_4_;\n            goto LAB_002e313c;\n          }" (if "if") (parenthesized_expression "(uVar19 == 8)" (( "(") (binary_expression "uVar19 == 8" (identifier "uVar19") (== "==") (number_literal "8")) () ")")) (compound_statement "{\n            param_1[0xf] = (int)local_60._0_4_;\n            goto LAB_002e313c;\n          }" ({ "{") (expression_statement "param_1[0xf] = (int)local_60._0_4_;" (assignment_expression "param_1[0xf] = (int)local_60._0_4_" (subscript_expression "param_1[0xf]" (identifier "param_1") ([ "[") (number_literal "0xf") (] "]")) (= "=") (cast_expression "(int)local_60._0_4_" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (field_expression "local_60._0_4_" (identifier "local_60") (. ".") (field_identifier "_0_4_")))) (; ";")) (goto_statement "goto LAB_002e313c;" (goto "goto") (statement_identifier "LAB_002e313c") (; ";")) (} "}"))) (if_statement "if (uVar19 != 0xe) goto LAB_002e313c;" (if "if") (parenthesized_expression "(uVar19 != 0xe)" (( "(") (binary_expression "uVar19 != 0xe" (identifier "uVar19") (!= "!=") (number_literal "0xe")) () ")")) (goto_statement "goto LAB_002e313c;" (goto "goto") (statement_identifier "LAB_002e313c") (; ";"))) (goto_statement "goto LAB_002e3284;" (goto "goto") (statement_identifier "LAB_002e3284") (; ";")) (} "}"))) (if_statement "if (uVar19 < 0xd) {\n          uVar26 = (ulonglong)*(byte *)local_44;\n          local_44 = (uint *)((int)local_44 + 1);\nLAB_002e382c:\n          uVar7 = uVar26;\n          if (uVar22 == 0x31) goto LAB_002e313c;\n          if (uVar22 < 0x32) goto LAB_002e3118;\n        }\n        else {\n          bVar1 = *(byte *)local_44;\n          uVar15 = (uint)bVar1;\n          puVar9 = (uint *)((int)local_44 + 1);\n          if ((char)bVar1 < '\0') {\n            uVar26 = (*(code *)PTR_read_signed_LEB_128_x_004c297c)(puVar9,&local_48,uVar15);\n            puVar9 = (uint *)((int)local_44 + local_48);\n          }\n          else {\n            local_48 = 1;\n            uVar26 = (ulonglong)uVar15;\n            if ((bVar1 & 0x40) != 0) {\n              uVar26 = CONCAT44(0xffffffff,uVar15 | 0xffffff80);\n            }\n          }\n          local_44 = puVar9;\n          uVar7 = uVar26;\n          if (uVar22 == 0x31) goto LAB_002e313c;\n          if (uVar22 < 0x32) {\n            puVar9 = (uint *)param_1[0xc];\n            if (puVar9 != (uint *)param_1[0xd]) goto LAB_002e314c;\nLAB_002e2f98:\n            iVar17 = iVar17 + 8;\n            local_60 = uVar26;\n            std::\n            vector<gold::Dwarf_die::Attribute_value,std::allocator<gold::Dwarf_die::Attribute_value>>\n            ::_M_realloc_insert<gold::Dwarf_die::Attribute_value_const&>(local_38,puVar9,&local_68);\n            iVar8 = param_1[10];\n            if (iVar17 == iVar21) goto LAB_002e2fb8;\n            goto LAB_002e2db4;\n          }\n        }" (if "if") (parenthesized_expression "(uVar19 < 0xd)" (( "(") (binary_expression "uVar19 < 0xd" (identifier "uVar19") (< "<") (number_literal "0xd")) () ")")) (compound_statement "{\n          uVar26 = (ulonglong)*(byte *)local_44;\n          local_44 = (uint *)((int)local_44 + 1);\nLAB_002e382c:\n          uVar7 = uVar26;\n          if (uVar22 == 0x31) goto LAB_002e313c;\n          if (uVar22 < 0x32) goto LAB_002e3118;\n        }" ({ "{") (expression_statement "uVar26 = (ulonglong)*(byte *)local_44;" (assignment_expression "uVar26 = (ulonglong)*(byte *)local_44" (identifier "uVar26") (= "=") (binary_expression "(ulonglong)*(byte *)local_44" (parenthesized_expression "(ulonglong)" (( "(") (identifier "ulonglong") () ")")) (* "*") (cast_expression "(byte *)local_44" (( "(") (type_descriptor "byte *" (type_identifier "byte") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "local_44")))) (; ";")) (expression_statement "local_44 = (uint *)((int)local_44 + 1);" (assignment_expression "local_44 = (uint *)((int)local_44 + 1)" (identifier "local_44") (= "=") (cast_expression "(uint *)((int)local_44 + 1)" (( "(") (type_descriptor "uint *" (type_identifier "uint") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "((int)local_44 + 1)" (( "(") (binary_expression "(int)local_44 + 1" (cast_expression "(int)local_44" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "local_44")) (+ "+") (number_literal "1")) () ")")))) (; ";")) (labeled_statement "LAB_002e382c:\n          uVar7 = uVar26;" (statement_identifier "LAB_002e382c") (: ":") (expression_statement "uVar7 = uVar26;" (assignment_expression "uVar7 = uVar26" (identifier "uVar7") (= "=") (identifier "uVar26")) (; ";"))) (if_statement "if (uVar22 == 0x31) goto LAB_002e313c;" (if "if") (parenthesized_expression "(uVar22 == 0x31)" (( "(") (binary_expression "uVar22 == 0x31" (identifier "uVar22") (== "==") (number_literal "0x31")) () ")")) (goto_statement "goto LAB_002e313c;" (goto "goto") (statement_identifier "LAB_002e313c") (; ";"))) (if_statement "if (uVar22 < 0x32) goto LAB_002e3118;" (if "if") (parenthesized_expression "(uVar22 < 0x32)" (( "(") (binary_expression "uVar22 < 0x32" (identifier "uVar22") (< "<") (number_literal "0x32")) () ")")) (goto_statement "goto LAB_002e3118;" (goto "goto") (statement_identifier "LAB_002e3118") (; ";"))) (} "}")) (else_clause "else {\n          bVar1 = *(byte *)local_44;\n          uVar15 = (uint)bVar1;\n          puVar9 = (uint *)((int)local_44 + 1);\n          if ((char)bVar1 < '\0') {\n            uVar26 = (*(code *)PTR_read_signed_LEB_128_x_004c297c)(puVar9,&local_48,uVar15);\n            puVar9 = (uint *)((int)local_44 + local_48);\n          }\n          else {\n            local_48 = 1;\n            uVar26 = (ulonglong)uVar15;\n            if ((bVar1 & 0x40) != 0) {\n              uVar26 = CONCAT44(0xffffffff,uVar15 | 0xffffff80);\n            }\n          }\n          local_44 = puVar9;\n          uVar7 = uVar26;\n          if (uVar22 == 0x31) goto LAB_002e313c;\n          if (uVar22 < 0x32) {\n            puVar9 = (uint *)param_1[0xc];\n            if (puVar9 != (uint *)param_1[0xd]) goto LAB_002e314c;\nLAB_002e2f98:\n            iVar17 = iVar17 + 8;\n            local_60 = uVar26;\n            std::\n            vector<gold::Dwarf_die::Attribute_value,std::allocator<gold::Dwarf_die::Attribute_value>>\n            ::_M_realloc_insert<gold::Dwarf_die::Attribute_value_const&>(local_38,puVar9,&local_68);\n            iVar8 = param_1[10];\n            if (iVar17 == iVar21) goto LAB_002e2fb8;\n            goto LAB_002e2db4;\n          }\n        }" (else "else") (compound_statement "{\n          bVar1 = *(byte *)local_44;\n          uVar15 = (uint)bVar1;\n          puVar9 = (uint *)((int)local_44 + 1);\n          if ((char)bVar1 < '\0') {\n            uVar26 = (*(code *)PTR_read_signed_LEB_128_x_004c297c)(puVar9,&local_48,uVar15);\n            puVar9 = (uint *)((int)local_44 + local_48);\n          }\n          else {\n            local_48 = 1;\n            uVar26 = (ulonglong)uVar15;\n            if ((bVar1 & 0x40) != 0) {\n              uVar26 = CONCAT44(0xffffffff,uVar15 | 0xffffff80);\n            }\n          }\n          local_44 = puVar9;\n          uVar7 = uVar26;\n          if (uVar22 == 0x31) goto LAB_002e313c;\n          if (uVar22 < 0x32) {\n            puVar9 = (uint *)param_1[0xc];\n            if (puVar9 != (uint *)param_1[0xd]) goto LAB_002e314c;\nLAB_002e2f98:\n            iVar17 = iVar17 + 8;\n            local_60 = uVar26;\n            std::\n            vector<gold::Dwarf_die::Attribute_value,std::allocator<gold::Dwarf_die::Attribute_value>>\n            ::_M_realloc_insert<gold::Dwarf_die::Attribute_value_const&>(local_38,puVar9,&local_68);\n            iVar8 = param_1[10];\n            if (iVar17 == iVar21) goto LAB_002e2fb8;\n            goto LAB_002e2db4;\n          }\n        }" ({ "{") (expression_statement "bVar1 = *(byte *)local_44;" (assignment_expression "bVar1 = *(byte *)local_44" (identifier "bVar1") (= "=") (pointer_expression "*(byte *)local_44" (* "*") (cast_expression "(byte *)local_44" (( "(") (type_descriptor "byte *" (type_identifier "byte") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "local_44")))) (; ";")) (expression_statement "uVar15 = (uint)bVar1;" (assignment_expression "uVar15 = (uint)bVar1" (identifier "uVar15") (= "=") (cast_expression "(uint)bVar1" (( "(") (type_descriptor "uint" (type_identifier "uint")) () ")") (identifier "bVar1"))) (; ";")) (expression_statement "puVar9 = (uint *)((int)local_44 + 1);" (assignment_expression "puVar9 = (uint *)((int)local_44 + 1)" (identifier "puVar9") (= "=") (cast_expression "(uint *)((int)local_44 + 1)" (( "(") (type_descriptor "uint *" (type_identifier "uint") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "((int)local_44 + 1)" (( "(") (binary_expression "(int)local_44 + 1" (cast_expression "(int)local_44" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "local_44")) (+ "+") (number_literal "1")) () ")")))) (; ";")) (if_statement "if ((char)bVar1 < '\0') {\n            uVar26 = (*(code *)PTR_read_signed_LEB_128_x_004c297c)(puVar9,&local_48,uVar15);\n            puVar9 = (uint *)((int)local_44 + local_48);\n          }\n          else {\n            local_48 = 1;\n            uVar26 = (ulonglong)uVar15;\n            if ((bVar1 & 0x40) != 0) {\n              uVar26 = CONCAT44(0xffffffff,uVar15 | 0xffffff80);\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            uVar26 = (*(code *)PTR_read_signed_LEB_128_x_004c297c)(puVar9,&local_48,uVar15);\n            puVar9 = (uint *)((int)local_44 + local_48);\n          }" ({ "{") (expression_statement "uVar26 = (*(code *)PTR_read_signed_LEB_128_x_004c297c)(puVar9,&local_48,uVar15);" (assignment_expression "uVar26 = (*(code *)PTR_read_signed_LEB_128_x_004c297c)(puVar9,&local_48,uVar15)" (identifier "uVar26") (= "=") (call_expression "(*(code *)PTR_read_signed_LEB_128_x_004c297c)(puVar9,&local_48,uVar15)" (parenthesized_expression "(*(code *)PTR_read_signed_LEB_128_x_004c297c)" (( "(") (pointer_expression "*(code *)PTR_read_signed_LEB_128_x_004c297c" (* "*") (cast_expression "(code *)PTR_read_signed_LEB_128_x_004c297c" (( "(") (type_descriptor "code *" (type_identifier "code") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "PTR_read_signed_LEB_128_x_004c297c"))) () ")")) (argument_list "(puVar9,&local_48,uVar15)" (( "(") (identifier "puVar9") (, ",") (pointer_expression "&local_48" (& "&") (identifier "local_48")) (, ",") (identifier "uVar15") () ")")))) (; ";")) (expression_statement "puVar9 = (uint *)((int)local_44 + local_48);" (assignment_expression "puVar9 = (uint *)((int)local_44 + local_48)" (identifier "puVar9") (= "=") (cast_expression "(uint *)((int)local_44 + local_48)" (( "(") (type_descriptor "uint *" (type_identifier "uint") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "((int)local_44 + local_48)" (( "(") (binary_expression "(int)local_44 + local_48" (cast_expression "(int)local_44" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "local_44")) (+ "+") (identifier "local_48")) () ")")))) (; ";")) (} "}")) (else_clause "else {\n            local_48 = 1;\n            uVar26 = (ulonglong)uVar15;\n            if ((bVar1 & 0x40) != 0) {\n              uVar26 = CONCAT44(0xffffffff,uVar15 | 0xffffff80);\n            }\n          }" (else "else") (compound_statement "{\n            local_48 = 1;\n            uVar26 = (ulonglong)uVar15;\n            if ((bVar1 & 0x40) != 0) {\n              uVar26 = CONCAT44(0xffffffff,uVar15 | 0xffffff80);\n            }\n          }" ({ "{") (expression_statement "local_48 = 1;" (assignment_expression "local_48 = 1" (identifier "local_48") (= "=") (number_literal "1")) (; ";")) (expression_statement "uVar26 = (ulonglong)uVar15;" (assignment_expression "uVar26 = (ulonglong)uVar15" (identifier "uVar26") (= "=") (cast_expression "(ulonglong)uVar15" (( "(") (type_descriptor "ulonglong" (type_identifier "ulonglong")) () ")") (identifier "uVar15"))) (; ";")) (if_statement "if ((bVar1 & 0x40) != 0) {\n              uVar26 = CONCAT44(0xffffffff,uVar15 | 0xffffff80);\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              uVar26 = CONCAT44(0xffffffff,uVar15 | 0xffffff80);\n            }" ({ "{") (expression_statement "uVar26 = CONCAT44(0xffffffff,uVar15 | 0xffffff80);" (assignment_expression "uVar26 = CONCAT44(0xffffffff,uVar15 | 0xffffff80)" (identifier "uVar26") (= "=") (call_expression "CONCAT44(0xffffffff,uVar15 | 0xffffff80)" (identifier "CONCAT44") (argument_list "(0xffffffff,uVar15 | 0xffffff80)" (( "(") (number_literal "0xffffffff") (, ",") (binary_expression "uVar15 | 0xffffff80" (identifier "uVar15") (| "|") (number_literal "0xffffff80")) () ")")))) (; ";")) (} "}"))) (} "}")))) (expression_statement "local_44 = puVar9;" (assignment_expression "local_44 = puVar9" (identifier "local_44") (= "=") (identifier "puVar9")) (; ";")) (expression_statement "uVar7 = uVar26;" (assignment_expression "uVar7 = uVar26" (identifier "uVar7") (= "=") (identifier "uVar26")) (; ";")) (if_statement "if (uVar22 == 0x31) goto LAB_002e313c;" (if "if") (parenthesized_expression "(uVar22 == 0x31)" (( "(") (binary_expression "uVar22 == 0x31" (identifier "uVar22") (== "==") (number_literal "0x31")) () ")")) (goto_statement "goto LAB_002e313c;" (goto "goto") (statement_identifier "LAB_002e313c") (; ";"))) (if_statement "if (uVar22 < 0x32) {\n            puVar9 = (uint *)param_1[0xc];\n            if (puVar9 != (uint *)param_1[0xd]) goto LAB_002e314c;\nLAB_002e2f98:\n            iVar17 = iVar17 + 8;\n            local_60 = uVar26;\n            std::\n            vector<gold::Dwarf_die::Attribute_value,std::allocator<gold::Dwarf_die::Attribute_value>>\n            ::_M_realloc_insert<gold::Dwarf_die::Attribute_value_const&>(local_38,puVar9,&local_68);\n            iVar8 = param_1[10];\n            if (iVar17 == iVar21) goto LAB_002e2fb8;\n            goto LAB_002e2db4;\n          }" (if "if") (parenthesized_expression "(uVar22 < 0x32)" (( "(") (binary_expression "uVar22 < 0x32" (identifier "uVar22") (< "<") (number_literal "0x32")) () ")")) (compound_statement "{\n            puVar9 = (uint *)param_1[0xc];\n            if (puVar9 != (uint *)param_1[0xd]) goto LAB_002e314c;\nLAB_002e2f98:\n            iVar17 = iVar17 + 8;\n            local_60 = uVar26;\n            std::\n            vector<gold::Dwarf_die::Attribute_value,std::allocator<gold::Dwarf_die::Attribute_value>>\n            ::_M_realloc_insert<gold::Dwarf_die::Attribute_value_const&>(local_38,puVar9,&local_68);\n            iVar8 = param_1[10];\n            if (iVar17 == iVar21) goto LAB_002e2fb8;\n            goto LAB_002e2db4;\n          }" ({ "{") (expression_statement "puVar9 = (uint *)param_1[0xc];" (assignment_expression "puVar9 = (uint *)param_1[0xc]" (identifier "puVar9") (= "=") (cast_expression "(uint *)param_1[0xc]" (( "(") (type_descriptor "uint *" (type_identifier "uint") (abstract_pointer_declarator "*" (* "*"))) () ")") (subscript_expression "param_1[0xc]" (identifier "param_1") ([ "[") (number_literal "0xc") (] "]")))) (; ";")) (if_statement "if (puVar9 != (uint *)param_1[0xd]) goto LAB_002e314c;" (if "if") (parenthesized_expression "(puVar9 != (uint *)param_1[0xd])" (( "(") (binary_expression "puVar9 != (uint *)param_1[0xd]" (identifier "puVar9") (!= "!=") (cast_expression "(uint *)param_1[0xd]" (( "(") (type_descriptor "uint *" (type_identifier "uint") (abstract_pointer_declarator "*" (* "*"))) () ")") (subscript_expression "param_1[0xd]" (identifier "param_1") ([ "[") (number_literal "0xd") (] "]")))) () ")")) (goto_statement "goto LAB_002e314c;" (goto "goto") (statement_identifier "LAB_002e314c") (; ";"))) (labeled_statement "LAB_002e2f98:\n            iVar17 = iVar17 + 8;" (statement_identifier "LAB_002e2f98") (: ":") (expression_statement "iVar17 = iVar17 + 8;" (assignment_expression "iVar17 = iVar17 + 8" (identifier "iVar17") (= "=") (binary_expression "iVar17 + 8" (identifier "iVar17") (+ "+") (number_literal "8"))) (; ";"))) (expression_statement "local_60 = uVar26;" (assignment_expression "local_60 = uVar26" (identifier "local_60") (= "=") (identifier "uVar26")) (; ";")) (labeled_statement "std::\n            vector<gold::Dwarf_die::Attribute_value,std::allocator<gold::Dwarf_die::Attribute_value>>\n            ::_M_realloc_insert<gold::Dwarf_die::Attribute_value_const&>(local_38,puVar9,&local_68);" (statement_identifier "std") (ERROR "::\n            vector<gold:" (: ":") (: ":") (binary_expression "vector<gold" (identifier "vector") (< "<") (identifier "gold")) (: ":")) (: ":") (labeled_statement "Dwarf_die::Attribute_value,std::allocator<gold::Dwarf_die::Attribute_value>>\n            ::_M_realloc_insert<gold::Dwarf_die::Attribute_value_const&>(local_38,puVar9,&local_68);" (statement_identifier "Dwarf_die") (ERROR "::Attribute_value,std::allocator<gold:" (: ":") (: ":") (comma_expression "Attribute_value,std" (identifier "Attribute_value") (, ",") (identifier "std")) (: ":") (: ":") (binary_expression "allocator<gold" (identifier "allocator") (< "<") (identifier "gold")) (: ":")) (: ":") (labeled_statement "Dwarf_die::Attribute_value>>\n            ::_M_realloc_insert<gold::Dwarf_die::Attribute_value_const&>(local_38,puVar9,&local_68);" (statement_identifier "Dwarf_die") (ERROR "::Attribute_value>>\n            ::_M_realloc_insert<gold:" (: ":") (: ":") (identifier "Attribute_value") (>> ">>") (: ":") (: ":") (binary_expression "_M_realloc_insert<gold" (identifier "_M_realloc_insert") (< "<") (identifier "gold")) (: ":")) (: ":") (labeled_statement "Dwarf_die::Attribute_value_const&>(local_38,puVar9,&local_68);" (statement_identifier "Dwarf_die") (: ":") (ERROR ":" (: ":")) (expression_statement "Attribute_value_const&>(local_38,puVar9,&local_68);" (binary_expression "Attribute_value_const&>(local_38,puVar9,&local_68)" (identifier "Attribute_value_const") (ERROR "&" (& "&")) (> ">") (parenthesized_expression "(local_38,puVar9,&local_68)" (( "(") (comma_expression "local_38,puVar9,&local_68" (identifier "local_38") (, ",") (comma_expression "puVar9,&local_68" (identifier "puVar9") (, ",") (pointer_expression "&local_68" (& "&") (identifier "local_68")))) () ")"))) (; ";")))))) (expression_statement "iVar8 = param_1[10];" (assignment_expression "iVar8 = param_1[10]" (identifier "iVar8") (= "=") (subscript_expression "param_1[10]" (identifier "param_1") ([ "[") (number_literal "10") (] "]"))) (; ";")) (if_statement "if (iVar17 == iVar21) goto LAB_002e2fb8;" (if "if") (parenthesized_expression "(iVar17 == iVar21)" (( "(") (binary_expression "iVar17 == iVar21" (identifier "iVar17") (== "==") (identifier "iVar21")) () ")")) (goto_statement "goto LAB_002e2fb8;" (goto "goto") (statement_identifier "LAB_002e2fb8") (; ";"))) (goto_statement "goto LAB_002e2db4;" (goto "goto") (statement_identifier "LAB_002e2db4") (; ";")) (} "}"))) (} "}")))) (if_statement "if ((uVar22 != 0x6e) && (uVar7 = uVar26, uVar22 != 0x2007)) goto LAB_002e313c;" (if "if") (parenthesized_expression "((uVar22 != 0x6e) && (uVar7 = uVar26, uVar22 != 0x2007))" (( "(") (binary_expression "(uVar22 != 0x6e) && (uVar7 = uVar26, uVar22 != 0x2007)" (parenthesized_expression "(uVar22 != 0x6e)" (( "(") (binary_expression "uVar22 != 0x6e" (identifier "uVar22") (!= "!=") (number_literal "0x6e")) () ")")) (&& "&&") (parenthesized_expression "(uVar7 = uVar26, uVar22 != 0x2007)" (( "(") (comma_expression "uVar7 = uVar26, uVar22 != 0x2007" (assignment_expression "uVar7 = uVar26" (identifier "uVar7") (= "=") (identifier "uVar26")) (, ",") (binary_expression "uVar22 != 0x2007" (identifier "uVar22") (!= "!=") (number_literal "0x2007"))) () ")"))) () ")")) (goto_statement "goto LAB_002e313c;" (goto "goto") (statement_identifier "LAB_002e313c") (; ";"))) (labeled_statement "LAB_002e3858:\n        local_60._0_4_ = (uint *)(uVar26 >> 0x20);" (statement_identifier "LAB_002e3858") (: ":") (expression_statement "local_60._0_4_ = (uint *)(uVar26 >> 0x20);" (assignment_expression "local_60._0_4_ = (uint *)(uVar26 >> 0x20)" (field_expression "local_60._0_4_" (identifier "local_60") (. ".") (field_identifier "_0_4_")) (= "=") (cast_expression "(uint *)(uVar26 >> 0x20)" (( "(") (type_descriptor "uint *" (type_identifier "uint") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(uVar26 >> 0x20)" (( "(") (binary_expression "uVar26 >> 0x20" (identifier "uVar26") (>> ">>") (number_literal "0x20")) () ")")))) (; ";"))) (expression_statement "uVar7 = uVar26;" (assignment_expression "uVar7 = uVar26" (identifier "uVar7") (= "=") (identifier "uVar26")) (; ";")) (if_statement "if (uVar19 == 8) {\n          param_1[0x12] = (int)local_60._0_4_;\n          goto LAB_002e313c;\n        }" (if "if") (parenthesized_expression "(uVar19 == 8)" (( "(") (binary_expression "uVar19 == 8" (identifier "uVar19") (== "==") (number_literal "8")) () ")")) (compound_statement "{\n          param_1[0x12] = (int)local_60._0_4_;\n          goto LAB_002e313c;\n        }" ({ "{") (expression_statement "param_1[0x12] = (int)local_60._0_4_;" (assignment_expression "param_1[0x12] = (int)local_60._0_4_" (subscript_expression "param_1[0x12]" (identifier "param_1") ([ "[") (number_literal "0x12") (] "]")) (= "=") (cast_expression "(int)local_60._0_4_" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (field_expression "local_60._0_4_" (identifier "local_60") (. ".") (field_identifier "_0_4_")))) (; ";")) (goto_statement "goto LAB_002e313c;" (goto "goto") (statement_identifier "LAB_002e313c") (; ";")) (} "}"))) (if_statement "if (uVar19 != 0xe) goto LAB_002e313c;" (if "if") (parenthesized_expression "(uVar19 != 0xe)" (( "(") (binary_expression "uVar19 != 0xe" (identifier "uVar19") (!= "!=") (number_literal "0xe")) () ")")) (goto_statement "goto LAB_002e313c;" (goto "goto") (statement_identifier "LAB_002e313c") (; ";"))) (goto_statement "goto LAB_002e387c;" (goto "goto") (statement_identifier "LAB_002e387c") (; ";")) (} "}"))) (if_statement "if (uVar19 == 4) {\n        pcVar25 = *(code **)(**(int **)(*param_1 + 8) + 0xc);\n        if (pcVar25 == (code *)PTR_is_big_endian_004c2950) {\n          iVar8 = (**(code **)(**(int **)(*param_1 + 8) + 0xe8))();\n        }\n        else {\n          iVar8 = (*pcVar25)();\n        }\n        local_58 = *local_44;\n        if (iVar8 == 0) {\n          local_58 = (((local_58 >> 0x10) << 0x18 | (local_58 >> 0x18) << 0x10) >> 0x10) +\n                     ((local_58 & 0xff) << 8 | local_58 >> 8 & 0xff) * 0x10000;\n        }\n        local_60._0_4_ = local_44 + 1;\n        local_44 = (uint *)((int)local_60._0_4_ + local_58);\nLAB_002e355c:\n        uVar26 = CONCAT44(local_60._0_4_,local_60._4_4_);\n        uVar7 = uVar26;\n        if (uVar22 == 0x31) goto LAB_002e313c;\n        if (uVar22 < 0x32) goto LAB_002e3118;\n        puVar9 = (uint *)param_1[0xc];\n      }\n      else {\n        if (4 < uVar19) {\n          if (uVar19 != 5) {\n            if (uVar19 != 6) {\n              return 0;\n            }\n            pcVar25 = *(code **)(**(int **)(*param_1 + 8) + 0xc);\n            if (pcVar25 == (code *)PTR_is_big_endian_004c2950) {\n              local_30 = puVar18;\n              iVar10 = (**(code **)(**(int **)(*param_1 + 8) + 0xe8))();\n            }\n            else {\n              local_30 = puVar18;\n              iVar10 = (*pcVar25)();\n            }\n            puVar9 = (uint *)*local_44;\n            if (iVar10 == 0) {\n              puVar9 = (uint *)(((((uint)puVar9 >> 0x10) << 0x18 | ((uint)puVar9 >> 0x18) << 0x10)\n                                >> 0x10) +\n                               (((uint)puVar9 & 0xff) << 8 | (uint)puVar9 >> 8 & 0xff) * 0x10000);\n            }\n            local_44 = local_44 + 1;\n            iVar10 = *param_1;\n            local_50._0_4_ = (uint *)0x0;\n            local_50._4_4_ = puVar9;\n            goto LAB_002e3708;\n          }\n          pcVar25 = *(code **)(**(int **)(*param_1 + 8) + 0xc);\n          if (pcVar25 == (code *)PTR_is_big_endian_004c2950) {\n            iVar8 = (**(code **)(**(int **)(*param_1 + 8) + 0xe8))();\n          }\n          else {\n            iVar8 = (*pcVar25)();\n          }\n          uVar6 = *(ushort *)local_44;\n          if (iVar8 == 0) {\n            uVar6 = CONCAT11(*(byte *)((int)local_44 + 1),*(byte *)local_44);\n          }\n          local_60._4_4_ = (uint *)(uint)uVar6;\n          local_44 = (uint *)((int)local_44 + 2);\n          local_60._0_4_ = (uint *)0x0;\n          goto LAB_002e355c;\n        }\n        if (uVar19 != 1) {\n          if (uVar19 != 3) {\n            return 0;\n          }\n          pcVar25 = *(code **)(**(int **)(*param_1 + 8) + 0xc);\n          if (pcVar25 == (code *)PTR_is_big_endian_004c2950) {\n            iVar8 = (**(code **)(**(int **)(*param_1 + 8) + 0xe8))();\n          }\n          else {\n            iVar8 = (*pcVar25)();\n          }\n          uVar6 = *(ushort *)local_44;\n          if (iVar8 == 0) {\n            uVar6 = CONCAT11(*(byte *)((int)local_44 + 1),*(byte *)local_44);\n          }\n          local_58 = (uint)uVar6;\n          local_60._0_4_ = (uint *)((int)local_44 + 2);\n          local_44 = (uint *)((int)local_60._0_4_ + local_58);\n          goto LAB_002e355c;\n        }\n        iVar8 = *param_1;\n        if (*(int *)(iVar8 + 0x4c) == 4) {\n          pcVar25 = *(code **)(**(int **)(iVar8 + 8) + 0xc);\n          if (pcVar25 == (code *)PTR_is_big_endian_004c2950) {\n            local_30 = puVar18;\n            iVar8 = (**(code **)(**(int **)(iVar8 + 8) + 0xe8))();\n          }\n          else {\n            local_30 = puVar18;\n            iVar8 = (*pcVar25)();\n          }\n          uVar15 = *local_44;\n          if (iVar8 == 0) {\n            uVar15 = (((uVar15 >> 0x10) << 0x18 | (uVar15 >> 0x18) << 0x10) >> 0x10) +\n                     ((uVar15 & 0xff) << 8 | uVar15 >> 8 & 0xff) * 0x10000;\n          }\n          local_44 = local_44 + 1;\n          uVar26 = (ulonglong)uVar15;\n        }\n        else {\n          local_30 = puVar18;\n          uVar26 = (*local_34)(iVar8,&local_44);\n        }\n        local_50 = uVar26;\n        local_58 = (*local_3c)(*param_1);\n        uVar26 = local_50;\n        if (uVar22 == 0x31) goto LAB_002e30bc;\n        if (uVar22 < 0x32) {\n          if (uVar22 != 1) goto joined_r0x002e3124;\n          goto LAB_002e39b4;\n        }\n        uVar7 = local_50;\n        if (uVar22 == 0x6e) goto LAB_002e313c;\n        if (uVar22 != 0x2007) goto LAB_002e339c;\n        puVar9 = (uint *)param_1[0xc];\n      }" (if "if") (parenthesized_expression "(uVar19 == 4)" (( "(") (binary_expression "uVar19 == 4" (identifier "uVar19") (== "==") (number_literal "4")) () ")")) (compound_statement "{\n        pcVar25 = *(code **)(**(int **)(*param_1 + 8) + 0xc);\n        if (pcVar25 == (code *)PTR_is_big_endian_004c2950) {\n          iVar8 = (**(code **)(**(int **)(*param_1 + 8) + 0xe8))();\n        }\n        else {\n          iVar8 = (*pcVar25)();\n        }\n        local_58 = *local_44;\n        if (iVar8 == 0) {\n          local_58 = (((local_58 >> 0x10) << 0x18 | (local_58 >> 0x18) << 0x10) >> 0x10) +\n                     ((local_58 & 0xff) << 8 | local_58 >> 8 & 0xff) * 0x10000;\n        }\n        local_60._0_4_ = local_44 + 1;\n        local_44 = (uint *)((int)local_60._0_4_ + local_58);\nLAB_002e355c:\n        uVar26 = CONCAT44(local_60._0_4_,local_60._4_4_);\n        uVar7 = uVar26;\n        if (uVar22 == 0x31) goto LAB_002e313c;\n        if (uVar22 < 0x32) goto LAB_002e3118;\n        puVar9 = (uint *)param_1[0xc];\n      }" ({ "{") (expression_statement "pcVar25 = *(code **)(**(int **)(*param_1 + 8) + 0xc);" (assignment_expression "pcVar25 = *(code **)(**(int **)(*param_1 + 8) + 0xc)" (identifier "pcVar25") (= "=") (pointer_expression "*(code **)(**(int **)(*param_1 + 8) + 0xc)" (* "*") (cast_expression "(code **)(**(int **)(*param_1 + 8) + 0xc)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(**(int **)(*param_1 + 8) + 0xc)" (( "(") (binary_expression "**(int **)(*param_1 + 8) + 0xc" (pointer_expression "**(int **)(*param_1 + 8)" (* "*") (pointer_expression "*(int **)(*param_1 + 8)" (* "*") (cast_expression "(int **)(*param_1 + 8)" (( "(") (type_descriptor "int **" (primitive_type "int") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(*param_1 + 8)" (( "(") (binary_expression "*param_1 + 8" (pointer_expression "*param_1" (* "*") (identifier "param_1")) (+ "+") (number_literal "8")) () ")"))))) (+ "+") (number_literal "0xc")) () ")"))))) (; ";")) (if_statement "if (pcVar25 == (code *)PTR_is_big_endian_004c2950) {\n          iVar8 = (**(code **)(**(int **)(*param_1 + 8) + 0xe8))();\n        }\n        else {\n          iVar8 = (*pcVar25)();\n        }" (if "if") (parenthesized_expression "(pcVar25 == (code *)PTR_is_big_endian_004c2950)" (( "(") (binary_expression "pcVar25 == (code *)PTR_is_big_endian_004c2950" (identifier "pcVar25") (== "==") (cast_expression "(code *)PTR_is_big_endian_004c2950" (( "(") (type_descriptor "code *" (type_identifier "code") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "PTR_is_big_endian_004c2950"))) () ")")) (compound_statement "{\n          iVar8 = (**(code **)(**(int **)(*param_1 + 8) + 0xe8))();\n        }" ({ "{") (expression_statement "iVar8 = (**(code **)(**(int **)(*param_1 + 8) + 0xe8))();" (assignment_expression "iVar8 = (**(code **)(**(int **)(*param_1 + 8) + 0xe8))()" (identifier "iVar8") (= "=") (call_expression "(**(code **)(**(int **)(*param_1 + 8) + 0xe8))()" (parenthesized_expression "(**(code **)(**(int **)(*param_1 + 8) + 0xe8))" (( "(") (pointer_expression "**(code **)(**(int **)(*param_1 + 8) + 0xe8)" (* "*") (pointer_expression "*(code **)(**(int **)(*param_1 + 8) + 0xe8)" (* "*") (cast_expression "(code **)(**(int **)(*param_1 + 8) + 0xe8)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(**(int **)(*param_1 + 8) + 0xe8)" (( "(") (binary_expression "**(int **)(*param_1 + 8) + 0xe8" (pointer_expression "**(int **)(*param_1 + 8)" (* "*") (pointer_expression "*(int **)(*param_1 + 8)" (* "*") (cast_expression "(int **)(*param_1 + 8)" (( "(") (type_descriptor "int **" (primitive_type "int") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(*param_1 + 8)" (( "(") (binary_expression "*param_1 + 8" (pointer_expression "*param_1" (* "*") (identifier "param_1")) (+ "+") (number_literal "8")) () ")"))))) (+ "+") (number_literal "0xe8")) () ")"))))) () ")")) (argument_list "()" (( "(") () ")")))) (; ";")) (} "}")) (else_clause "else {\n          iVar8 = (*pcVar25)();\n        }" (else "else") (compound_statement "{\n          iVar8 = (*pcVar25)();\n        }" ({ "{") (expression_statement "iVar8 = (*pcVar25)();" (assignment_expression "iVar8 = (*pcVar25)()" (identifier "iVar8") (= "=") (call_expression "(*pcVar25)()" (parenthesized_expression "(*pcVar25)" (( "(") (pointer_expression "*pcVar25" (* "*") (identifier "pcVar25")) () ")")) (argument_list "()" (( "(") () ")")))) (; ";")) (} "}")))) (expression_statement "local_58 = *local_44;" (assignment_expression "local_58 = *local_44" (identifier "local_58") (= "=") (pointer_expression "*local_44" (* "*") (identifier "local_44"))) (; ";")) (if_statement "if (iVar8 == 0) {\n          local_58 = (((local_58 >> 0x10) << 0x18 | (local_58 >> 0x18) << 0x10) >> 0x10) +\n                     ((local_58 & 0xff) << 8 | local_58 >> 8 & 0xff) * 0x10000;\n        }" (if "if") (parenthesized_expression "(iVar8 == 0)" (( "(") (binary_expression "iVar8 == 0" (identifier "iVar8") (== "==") (number_literal "0")) () ")")) (compound_statement "{\n          local_58 = (((local_58 >> 0x10) << 0x18 | (local_58 >> 0x18) << 0x10) >> 0x10) +\n                     ((local_58 & 0xff) << 8 | local_58 >> 8 & 0xff) * 0x10000;\n        }" ({ "{") (expression_statement "local_58 = (((local_58 >> 0x10) << 0x18 | (local_58 >> 0x18) << 0x10) >> 0x10) +\n                     ((local_58 & 0xff) << 8 | local_58 >> 8 & 0xff) * 0x10000;" (assignment_expression "local_58 = (((local_58 >> 0x10) << 0x18 | (local_58 >> 0x18) << 0x10) >> 0x10) +\n                     ((local_58 & 0xff) << 8 | local_58 >> 8 & 0xff) * 0x10000" (identifier "local_58") (= "=") (binary_expression "(((local_58 >> 0x10) << 0x18 | (local_58 >> 0x18) << 0x10) >> 0x10) +\n                     ((local_58 & 0xff) << 8 | local_58 >> 8 & 0xff) * 0x10000" (parenthesized_expression "(((local_58 >> 0x10) << 0x18 | (local_58 >> 0x18) << 0x10) >> 0x10)" (( "(") (binary_expression "((local_58 >> 0x10) << 0x18 | (local_58 >> 0x18) << 0x10) >> 0x10" (parenthesized_expression "((local_58 >> 0x10) << 0x18 | (local_58 >> 0x18) << 0x10)" (( "(") (binary_expression "(local_58 >> 0x10) << 0x18 | (local_58 >> 0x18) << 0x10" (binary_expression "(local_58 >> 0x10) << 0x18" (parenthesized_expression "(local_58 >> 0x10)" (( "(") (binary_expression "local_58 >> 0x10" (identifier "local_58") (>> ">>") (number_literal "0x10")) () ")")) (<< "<<") (number_literal "0x18")) (| "|") (binary_expression "(local_58 >> 0x18) << 0x10" (parenthesized_expression "(local_58 >> 0x18)" (( "(") (binary_expression "local_58 >> 0x18" (identifier "local_58") (>> ">>") (number_literal "0x18")) () ")")) (<< "<<") (number_literal "0x10"))) () ")")) (>> ">>") (number_literal "0x10")) () ")")) (+ "+") (binary_expression "((local_58 & 0xff) << 8 | local_58 >> 8 & 0xff) * 0x10000" (parenthesized_expression "((local_58 & 0xff) << 8 | local_58 >> 8 & 0xff)" (( "(") (binary_expression "(local_58 & 0xff) << 8 | local_58 >> 8 & 0xff" (binary_expression "(local_58 & 0xff) << 8" (parenthesized_expression "(local_58 & 0xff)" (( "(") (binary_expression "local_58 & 0xff" (identifier "local_58") (& "&") (number_literal "0xff")) () ")")) (<< "<<") (number_literal "8")) (| "|") (binary_expression "local_58 >> 8 & 0xff" (binary_expression "local_58 >> 8" (identifier "local_58") (>> ">>") (number_literal "8")) (& "&") (number_literal "0xff"))) () ")")) (* "*") (number_literal "0x10000")))) (; ";")) (} "}"))) (expression_statement "local_60._0_4_ = local_44 + 1;" (assignment_expression "local_60._0_4_ = local_44 + 1" (field_expression "local_60._0_4_" (identifier "local_60") (. ".") (field_identifier "_0_4_")) (= "=") (binary_expression "local_44 + 1" (identifier "local_44") (+ "+") (number_literal "1"))) (; ";")) (expression_statement "local_44 = (uint *)((int)local_60._0_4_ + local_58);" (assignment_expression "local_44 = (uint *)((int)local_60._0_4_ + local_58)" (identifier "local_44") (= "=") (cast_expression "(uint *)((int)local_60._0_4_ + local_58)" (( "(") (type_descriptor "uint *" (type_identifier "uint") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "((int)local_60._0_4_ + local_58)" (( "(") (binary_expression "(int)local_60._0_4_ + local_58" (cast_expression "(int)local_60._0_4_" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (field_expression "local_60._0_4_" (identifier "local_60") (. ".") (field_identifier "_0_4_"))) (+ "+") (identifier "local_58")) () ")")))) (; ";")) (labeled_statement "LAB_002e355c:\n        uVar26 = CONCAT44(local_60._0_4_,local_60._4_4_);" (statement_identifier "LAB_002e355c") (: ":") (expression_statement "uVar26 = CONCAT44(local_60._0_4_,local_60._4_4_);" (assignment_expression "uVar26 = CONCAT44(local_60._0_4_,local_60._4_4_)" (identifier "uVar26") (= "=") (call_expression "CONCAT44(local_60._0_4_,local_60._4_4_)" (identifier "CONCAT44") (argument_list "(local_60._0_4_,local_60._4_4_)" (( "(") (field_expression "local_60._0_4_" (identifier "local_60") (. ".") (field_identifier "_0_4_")) (, ",") (field_expression "local_60._4_4_" (identifier "local_60") (. ".") (field_identifier "_4_4_")) () ")")))) (; ";"))) (expression_statement "uVar7 = uVar26;" (assignment_expression "uVar7 = uVar26" (identifier "uVar7") (= "=") (identifier "uVar26")) (; ";")) (if_statement "if (uVar22 == 0x31) goto LAB_002e313c;" (if "if") (parenthesized_expression "(uVar22 == 0x31)" (( "(") (binary_expression "uVar22 == 0x31" (identifier "uVar22") (== "==") (number_literal "0x31")) () ")")) (goto_statement "goto LAB_002e313c;" (goto "goto") (statement_identifier "LAB_002e313c") (; ";"))) (if_statement "if (uVar22 < 0x32) goto LAB_002e3118;" (if "if") (parenthesized_expression "(uVar22 < 0x32)" (( "(") (binary_expression "uVar22 < 0x32" (identifier "uVar22") (< "<") (number_literal "0x32")) () ")")) (goto_statement "goto LAB_002e3118;" (goto "goto") (statement_identifier "LAB_002e3118") (; ";"))) (expression_statement "puVar9 = (uint *)param_1[0xc];" (assignment_expression "puVar9 = (uint *)param_1[0xc]" (identifier "puVar9") (= "=") (cast_expression "(uint *)param_1[0xc]" (( "(") (type_descriptor "uint *" (type_identifier "uint") (abstract_pointer_declarator "*" (* "*"))) () ")") (subscript_expression "param_1[0xc]" (identifier "param_1") ([ "[") (number_literal "0xc") (] "]")))) (; ";")) (} "}")) (else_clause "else {\n        if (4 < uVar19) {\n          if (uVar19 != 5) {\n            if (uVar19 != 6) {\n              return 0;\n            }\n            pcVar25 = *(code **)(**(int **)(*param_1 + 8) + 0xc);\n            if (pcVar25 == (code *)PTR_is_big_endian_004c2950) {\n              local_30 = puVar18;\n              iVar10 = (**(code **)(**(int **)(*param_1 + 8) + 0xe8))();\n            }\n            else {\n              local_30 = puVar18;\n              iVar10 = (*pcVar25)();\n            }\n            puVar9 = (uint *)*local_44;\n            if (iVar10 == 0) {\n              puVar9 = (uint *)(((((uint)puVar9 >> 0x10) << 0x18 | ((uint)puVar9 >> 0x18) << 0x10)\n                                >> 0x10) +\n                               (((uint)puVar9 & 0xff) << 8 | (uint)puVar9 >> 8 & 0xff) * 0x10000);\n            }\n            local_44 = local_44 + 1;\n            iVar10 = *param_1;\n            local_50._0_4_ = (uint *)0x0;\n            local_50._4_4_ = puVar9;\n            goto LAB_002e3708;\n          }\n          pcVar25 = *(code **)(**(int **)(*param_1 + 8) + 0xc);\n          if (pcVar25 == (code *)PTR_is_big_endian_004c2950) {\n            iVar8 = (**(code **)(**(int **)(*param_1 + 8) + 0xe8))();\n          }\n          else {\n            iVar8 = (*pcVar25)();\n          }\n          uVar6 = *(ushort *)local_44;\n          if (iVar8 == 0) {\n            uVar6 = CONCAT11(*(byte *)((int)local_44 + 1),*(byte *)local_44);\n          }\n          local_60._4_4_ = (uint *)(uint)uVar6;\n          local_44 = (uint *)((int)local_44 + 2);\n          local_60._0_4_ = (uint *)0x0;\n          goto LAB_002e355c;\n        }\n        if (uVar19 != 1) {\n          if (uVar19 != 3) {\n            return 0;\n          }\n          pcVar25 = *(code **)(**(int **)(*param_1 + 8) + 0xc);\n          if (pcVar25 == (code *)PTR_is_big_endian_004c2950) {\n            iVar8 = (**(code **)(**(int **)(*param_1 + 8) + 0xe8))();\n          }\n          else {\n            iVar8 = (*pcVar25)();\n          }\n          uVar6 = *(ushort *)local_44;\n          if (iVar8 == 0) {\n            uVar6 = CONCAT11(*(byte *)((int)local_44 + 1),*(byte *)local_44);\n          }\n          local_58 = (uint)uVar6;\n          local_60._0_4_ = (uint *)((int)local_44 + 2);\n          local_44 = (uint *)((int)local_60._0_4_ + local_58);\n          goto LAB_002e355c;\n        }\n        iVar8 = *param_1;\n        if (*(int *)(iVar8 + 0x4c) == 4) {\n          pcVar25 = *(code **)(**(int **)(iVar8 + 8) + 0xc);\n          if (pcVar25 == (code *)PTR_is_big_endian_004c2950) {\n            local_30 = puVar18;\n            iVar8 = (**(code **)(**(int **)(iVar8 + 8) + 0xe8))();\n          }\n          else {\n            local_30 = puVar18;\n            iVar8 = (*pcVar25)();\n          }\n          uVar15 = *local_44;\n          if (iVar8 == 0) {\n            uVar15 = (((uVar15 >> 0x10) << 0x18 | (uVar15 >> 0x18) << 0x10) >> 0x10) +\n                     ((uVar15 & 0xff) << 8 | uVar15 >> 8 & 0xff) * 0x10000;\n          }\n          local_44 = local_44 + 1;\n          uVar26 = (ulonglong)uVar15;\n        }\n        else {\n          local_30 = puVar18;\n          uVar26 = (*local_34)(iVar8,&local_44);\n        }\n        local_50 = uVar26;\n        local_58 = (*local_3c)(*param_1);\n        uVar26 = local_50;\n        if (uVar22 == 0x31) goto LAB_002e30bc;\n        if (uVar22 < 0x32) {\n          if (uVar22 != 1) goto joined_r0x002e3124;\n          goto LAB_002e39b4;\n        }\n        uVar7 = local_50;\n        if (uVar22 == 0x6e) goto LAB_002e313c;\n        if (uVar22 != 0x2007) goto LAB_002e339c;\n        puVar9 = (uint *)param_1[0xc];\n      }" (else "else") (compound_statement "{\n        if (4 < uVar19) {\n          if (uVar19 != 5) {\n            if (uVar19 != 6) {\n              return 0;\n            }\n            pcVar25 = *(code **)(**(int **)(*param_1 + 8) + 0xc);\n            if (pcVar25 == (code *)PTR_is_big_endian_004c2950) {\n              local_30 = puVar18;\n              iVar10 = (**(code **)(**(int **)(*param_1 + 8) + 0xe8))();\n            }\n            else {\n              local_30 = puVar18;\n              iVar10 = (*pcVar25)();\n            }\n            puVar9 = (uint *)*local_44;\n            if (iVar10 == 0) {\n              puVar9 = (uint *)(((((uint)puVar9 >> 0x10) << 0x18 | ((uint)puVar9 >> 0x18) << 0x10)\n                                >> 0x10) +\n                               (((uint)puVar9 & 0xff) << 8 | (uint)puVar9 >> 8 & 0xff) * 0x10000);\n            }\n            local_44 = local_44 + 1;\n            iVar10 = *param_1;\n            local_50._0_4_ = (uint *)0x0;\n            local_50._4_4_ = puVar9;\n            goto LAB_002e3708;\n          }\n          pcVar25 = *(code **)(**(int **)(*param_1 + 8) + 0xc);\n          if (pcVar25 == (code *)PTR_is_big_endian_004c2950) {\n            iVar8 = (**(code **)(**(int **)(*param_1 + 8) + 0xe8))();\n          }\n          else {\n            iVar8 = (*pcVar25)();\n          }\n          uVar6 = *(ushort *)local_44;\n          if (iVar8 == 0) {\n            uVar6 = CONCAT11(*(byte *)((int)local_44 + 1),*(byte *)local_44);\n          }\n          local_60._4_4_ = (uint *)(uint)uVar6;\n          local_44 = (uint *)((int)local_44 + 2);\n          local_60._0_4_ = (uint *)0x0;\n          goto LAB_002e355c;\n        }\n        if (uVar19 != 1) {\n          if (uVar19 != 3) {\n            return 0;\n          }\n          pcVar25 = *(code **)(**(int **)(*param_1 + 8) + 0xc);\n          if (pcVar25 == (code *)PTR_is_big_endian_004c2950) {\n            iVar8 = (**(code **)(**(int **)(*param_1 + 8) + 0xe8))();\n          }\n          else {\n            iVar8 = (*pcVar25)();\n          }\n          uVar6 = *(ushort *)local_44;\n          if (iVar8 == 0) {\n            uVar6 = CONCAT11(*(byte *)((int)local_44 + 1),*(byte *)local_44);\n          }\n          local_58 = (uint)uVar6;\n          local_60._0_4_ = (uint *)((int)local_44 + 2);\n          local_44 = (uint *)((int)local_60._0_4_ + local_58);\n          goto LAB_002e355c;\n        }\n        iVar8 = *param_1;\n        if (*(int *)(iVar8 + 0x4c) == 4) {\n          pcVar25 = *(code **)(**(int **)(iVar8 + 8) + 0xc);\n          if (pcVar25 == (code *)PTR_is_big_endian_004c2950) {\n            local_30 = puVar18;\n            iVar8 = (**(code **)(**(int **)(iVar8 + 8) + 0xe8))();\n          }\n          else {\n            local_30 = puVar18;\n            iVar8 = (*pcVar25)();\n          }\n          uVar15 = *local_44;\n          if (iVar8 == 0) {\n            uVar15 = (((uVar15 >> 0x10) << 0x18 | (uVar15 >> 0x18) << 0x10) >> 0x10) +\n                     ((uVar15 & 0xff) << 8 | uVar15 >> 8 & 0xff) * 0x10000;\n          }\n          local_44 = local_44 + 1;\n          uVar26 = (ulonglong)uVar15;\n        }\n        else {\n          local_30 = puVar18;\n          uVar26 = (*local_34)(iVar8,&local_44);\n        }\n        local_50 = uVar26;\n        local_58 = (*local_3c)(*param_1);\n        uVar26 = local_50;\n        if (uVar22 == 0x31) goto LAB_002e30bc;\n        if (uVar22 < 0x32) {\n          if (uVar22 != 1) goto joined_r0x002e3124;\n          goto LAB_002e39b4;\n        }\n        uVar7 = local_50;\n        if (uVar22 == 0x6e) goto LAB_002e313c;\n        if (uVar22 != 0x2007) goto LAB_002e339c;\n        puVar9 = (uint *)param_1[0xc];\n      }" ({ "{") (if_statement "if (4 < uVar19) {\n          if (uVar19 != 5) {\n            if (uVar19 != 6) {\n              return 0;\n            }\n            pcVar25 = *(code **)(**(int **)(*param_1 + 8) + 0xc);\n            if (pcVar25 == (code *)PTR_is_big_endian_004c2950) {\n              local_30 = puVar18;\n              iVar10 = (**(code **)(**(int **)(*param_1 + 8) + 0xe8))();\n            }\n            else {\n              local_30 = puVar18;\n              iVar10 = (*pcVar25)();\n            }\n            puVar9 = (uint *)*local_44;\n            if (iVar10 == 0) {\n              puVar9 = (uint *)(((((uint)puVar9 >> 0x10) << 0x18 | ((uint)puVar9 >> 0x18) << 0x10)\n                                >> 0x10) +\n                               (((uint)puVar9 & 0xff) << 8 | (uint)puVar9 >> 8 & 0xff) * 0x10000);\n            }\n            local_44 = local_44 + 1;\n            iVar10 = *param_1;\n            local_50._0_4_ = (uint *)0x0;\n            local_50._4_4_ = puVar9;\n            goto LAB_002e3708;\n          }\n          pcVar25 = *(code **)(**(int **)(*param_1 + 8) + 0xc);\n          if (pcVar25 == (code *)PTR_is_big_endian_004c2950) {\n            iVar8 = (**(code **)(**(int **)(*param_1 + 8) + 0xe8))();\n          }\n          else {\n            iVar8 = (*pcVar25)();\n          }\n          uVar6 = *(ushort *)local_44;\n          if (iVar8 == 0) {\n            uVar6 = CONCAT11(*(byte *)((int)local_44 + 1),*(byte *)local_44);\n          }\n          local_60._4_4_ = (uint *)(uint)uVar6;\n          local_44 = (uint *)((int)local_44 + 2);\n          local_60._0_4_ = (uint *)0x0;\n          goto LAB_002e355c;\n        }" (if "if") (parenthesized_expression "(4 < uVar19)" (( "(") (binary_expression "4 < uVar19" (number_literal "4") (< "<") (identifier "uVar19")) () ")")) (compound_statement "{\n          if (uVar19 != 5) {\n            if (uVar19 != 6) {\n              return 0;\n            }\n            pcVar25 = *(code **)(**(int **)(*param_1 + 8) + 0xc);\n            if (pcVar25 == (code *)PTR_is_big_endian_004c2950) {\n              local_30 = puVar18;\n              iVar10 = (**(code **)(**(int **)(*param_1 + 8) + 0xe8))();\n            }\n            else {\n              local_30 = puVar18;\n              iVar10 = (*pcVar25)();\n            }\n            puVar9 = (uint *)*local_44;\n            if (iVar10 == 0) {\n              puVar9 = (uint *)(((((uint)puVar9 >> 0x10) << 0x18 | ((uint)puVar9 >> 0x18) << 0x10)\n                                >> 0x10) +\n                               (((uint)puVar9 & 0xff) << 8 | (uint)puVar9 >> 8 & 0xff) * 0x10000);\n            }\n            local_44 = local_44 + 1;\n            iVar10 = *param_1;\n            local_50._0_4_ = (uint *)0x0;\n            local_50._4_4_ = puVar9;\n            goto LAB_002e3708;\n          }\n          pcVar25 = *(code **)(**(int **)(*param_1 + 8) + 0xc);\n          if (pcVar25 == (code *)PTR_is_big_endian_004c2950) {\n            iVar8 = (**(code **)(**(int **)(*param_1 + 8) + 0xe8))();\n          }\n          else {\n            iVar8 = (*pcVar25)();\n          }\n          uVar6 = *(ushort *)local_44;\n          if (iVar8 == 0) {\n            uVar6 = CONCAT11(*(byte *)((int)local_44 + 1),*(byte *)local_44);\n          }\n          local_60._4_4_ = (uint *)(uint)uVar6;\n          local_44 = (uint *)((int)local_44 + 2);\n          local_60._0_4_ = (uint *)0x0;\n          goto LAB_002e355c;\n        }" ({ "{") (if_statement "if (uVar19 != 5) {\n            if (uVar19 != 6) {\n              return 0;\n            }\n            pcVar25 = *(code **)(**(int **)(*param_1 + 8) + 0xc);\n            if (pcVar25 == (code *)PTR_is_big_endian_004c2950) {\n              local_30 = puVar18;\n              iVar10 = (**(code **)(**(int **)(*param_1 + 8) + 0xe8))();\n            }\n            else {\n              local_30 = puVar18;\n              iVar10 = (*pcVar25)();\n            }\n            puVar9 = (uint *)*local_44;\n            if (iVar10 == 0) {\n              puVar9 = (uint *)(((((uint)puVar9 >> 0x10) << 0x18 | ((uint)puVar9 >> 0x18) << 0x10)\n                                >> 0x10) +\n                               (((uint)puVar9 & 0xff) << 8 | (uint)puVar9 >> 8 & 0xff) * 0x10000);\n            }\n            local_44 = local_44 + 1;\n            iVar10 = *param_1;\n            local_50._0_4_ = (uint *)0x0;\n            local_50._4_4_ = puVar9;\n            goto LAB_002e3708;\n          }" (if "if") (parenthesized_expression "(uVar19 != 5)" (( "(") (binary_expression "uVar19 != 5" (identifier "uVar19") (!= "!=") (number_literal "5")) () ")")) (compound_statement "{\n            if (uVar19 != 6) {\n              return 0;\n            }\n            pcVar25 = *(code **)(**(int **)(*param_1 + 8) + 0xc);\n            if (pcVar25 == (code *)PTR_is_big_endian_004c2950) {\n              local_30 = puVar18;\n              iVar10 = (**(code **)(**(int **)(*param_1 + 8) + 0xe8))();\n            }\n            else {\n              local_30 = puVar18;\n              iVar10 = (*pcVar25)();\n            }\n            puVar9 = (uint *)*local_44;\n            if (iVar10 == 0) {\n              puVar9 = (uint *)(((((uint)puVar9 >> 0x10) << 0x18 | ((uint)puVar9 >> 0x18) << 0x10)\n                                >> 0x10) +\n                               (((uint)puVar9 & 0xff) << 8 | (uint)puVar9 >> 8 & 0xff) * 0x10000);\n            }\n            local_44 = local_44 + 1;\n            iVar10 = *param_1;\n            local_50._0_4_ = (uint *)0x0;\n            local_50._4_4_ = puVar9;\n            goto LAB_002e3708;\n          }" ({ "{") (if_statement "if (uVar19 != 6) {\n              return 0;\n            }" (if "if") (parenthesized_expression "(uVar19 != 6)" (( "(") (binary_expression "uVar19 != 6" (identifier "uVar19") (!= "!=") (number_literal "6")) () ")")) (compound_statement "{\n              return 0;\n            }" ({ "{") (return_statement "return 0;" (return "return") (number_literal "0") (; ";")) (} "}"))) (expression_statement "pcVar25 = *(code **)(**(int **)(*param_1 + 8) + 0xc);" (assignment_expression "pcVar25 = *(code **)(**(int **)(*param_1 + 8) + 0xc)" (identifier "pcVar25") (= "=") (pointer_expression "*(code **)(**(int **)(*param_1 + 8) + 0xc)" (* "*") (cast_expression "(code **)(**(int **)(*param_1 + 8) + 0xc)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(**(int **)(*param_1 + 8) + 0xc)" (( "(") (binary_expression "**(int **)(*param_1 + 8) + 0xc" (pointer_expression "**(int **)(*param_1 + 8)" (* "*") (pointer_expression "*(int **)(*param_1 + 8)" (* "*") (cast_expression "(int **)(*param_1 + 8)" (( "(") (type_descriptor "int **" (primitive_type "int") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(*param_1 + 8)" (( "(") (binary_expression "*param_1 + 8" (pointer_expression "*param_1" (* "*") (identifier "param_1")) (+ "+") (number_literal "8")) () ")"))))) (+ "+") (number_literal "0xc")) () ")"))))) (; ";")) (if_statement "if (pcVar25 == (code *)PTR_is_big_endian_004c2950) {\n              local_30 = puVar18;\n              iVar10 = (**(code **)(**(int **)(*param_1 + 8) + 0xe8))();\n            }\n            else {\n              local_30 = puVar18;\n              iVar10 = (*pcVar25)();\n            }" (if "if") (parenthesized_expression "(pcVar25 == (code *)PTR_is_big_endian_004c2950)" (( "(") (binary_expression "pcVar25 == (code *)PTR_is_big_endian_004c2950" (identifier "pcVar25") (== "==") (cast_expression "(code *)PTR_is_big_endian_004c2950" (( "(") (type_descriptor "code *" (type_identifier "code") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "PTR_is_big_endian_004c2950"))) () ")")) (compound_statement "{\n              local_30 = puVar18;\n              iVar10 = (**(code **)(**(int **)(*param_1 + 8) + 0xe8))();\n            }" ({ "{") (expression_statement "local_30 = puVar18;" (assignment_expression "local_30 = puVar18" (identifier "local_30") (= "=") (identifier "puVar18")) (; ";")) (expression_statement "iVar10 = (**(code **)(**(int **)(*param_1 + 8) + 0xe8))();" (assignment_expression "iVar10 = (**(code **)(**(int **)(*param_1 + 8) + 0xe8))()" (identifier "iVar10") (= "=") (call_expression "(**(code **)(**(int **)(*param_1 + 8) + 0xe8))()" (parenthesized_expression "(**(code **)(**(int **)(*param_1 + 8) + 0xe8))" (( "(") (pointer_expression "**(code **)(**(int **)(*param_1 + 8) + 0xe8)" (* "*") (pointer_expression "*(code **)(**(int **)(*param_1 + 8) + 0xe8)" (* "*") (cast_expression "(code **)(**(int **)(*param_1 + 8) + 0xe8)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(**(int **)(*param_1 + 8) + 0xe8)" (( "(") (binary_expression "**(int **)(*param_1 + 8) + 0xe8" (pointer_expression "**(int **)(*param_1 + 8)" (* "*") (pointer_expression "*(int **)(*param_1 + 8)" (* "*") (cast_expression "(int **)(*param_1 + 8)" (( "(") (type_descriptor "int **" (primitive_type "int") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(*param_1 + 8)" (( "(") (binary_expression "*param_1 + 8" (pointer_expression "*param_1" (* "*") (identifier "param_1")) (+ "+") (number_literal "8")) () ")"))))) (+ "+") (number_literal "0xe8")) () ")"))))) () ")")) (argument_list "()" (( "(") () ")")))) (; ";")) (} "}")) (else_clause "else {\n              local_30 = puVar18;\n              iVar10 = (*pcVar25)();\n            }" (else "else") (compound_statement "{\n              local_30 = puVar18;\n              iVar10 = (*pcVar25)();\n            }" ({ "{") (expression_statement "local_30 = puVar18;" (assignment_expression "local_30 = puVar18" (identifier "local_30") (= "=") (identifier "puVar18")) (; ";")) (expression_statement "iVar10 = (*pcVar25)();" (assignment_expression "iVar10 = (*pcVar25)()" (identifier "iVar10") (= "=") (call_expression "(*pcVar25)()" (parenthesized_expression "(*pcVar25)" (( "(") (pointer_expression "*pcVar25" (* "*") (identifier "pcVar25")) () ")")) (argument_list "()" (( "(") () ")")))) (; ";")) (} "}")))) (expression_statement "puVar9 = (uint *)*local_44;" (assignment_expression "puVar9 = (uint *)*local_44" (identifier "puVar9") (= "=") (cast_expression "(uint *)*local_44" (( "(") (type_descriptor "uint *" (type_identifier "uint") (abstract_pointer_declarator "*" (* "*"))) () ")") (pointer_expression "*local_44" (* "*") (identifier "local_44")))) (; ";")) (if_statement "if (iVar10 == 0) {\n              puVar9 = (uint *)(((((uint)puVar9 >> 0x10) << 0x18 | ((uint)puVar9 >> 0x18) << 0x10)\n                                >> 0x10) +\n                               (((uint)puVar9 & 0xff) << 8 | (uint)puVar9 >> 8 & 0xff) * 0x10000);\n            }" (if "if") (parenthesized_expression "(iVar10 == 0)" (( "(") (binary_expression "iVar10 == 0" (identifier "iVar10") (== "==") (number_literal "0")) () ")")) (compound_statement "{\n              puVar9 = (uint *)(((((uint)puVar9 >> 0x10) << 0x18 | ((uint)puVar9 >> 0x18) << 0x10)\n                                >> 0x10) +\n                               (((uint)puVar9 & 0xff) << 8 | (uint)puVar9 >> 8 & 0xff) * 0x10000);\n            }" ({ "{") (expression_statement "puVar9 = (uint *)(((((uint)puVar9 >> 0x10) << 0x18 | ((uint)puVar9 >> 0x18) << 0x10)\n                                >> 0x10) +\n                               (((uint)puVar9 & 0xff) << 8 | (uint)puVar9 >> 8 & 0xff) * 0x10000);" (assignment_expression "puVar9 = (uint *)(((((uint)puVar9 >> 0x10) << 0x18 | ((uint)puVar9 >> 0x18) << 0x10)\n                                >> 0x10) +\n                               (((uint)puVar9 & 0xff) << 8 | (uint)puVar9 >> 8 & 0xff) * 0x10000)" (identifier "puVar9") (= "=") (cast_expression "(uint *)(((((uint)puVar9 >> 0x10) << 0x18 | ((uint)puVar9 >> 0x18) << 0x10)\n                                >> 0x10) +\n                               (((uint)puVar9 & 0xff) << 8 | (uint)puVar9 >> 8 & 0xff) * 0x10000)" (( "(") (type_descriptor "uint *" (type_identifier "uint") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(((((uint)puVar9 >> 0x10) << 0x18 | ((uint)puVar9 >> 0x18) << 0x10)\n                                >> 0x10) +\n                               (((uint)puVar9 & 0xff) << 8 | (uint)puVar9 >> 8 & 0xff) * 0x10000)" (( "(") (binary_expression "((((uint)puVar9 >> 0x10) << 0x18 | ((uint)puVar9 >> 0x18) << 0x10)\n                                >> 0x10) +\n                               (((uint)puVar9 & 0xff) << 8 | (uint)puVar9 >> 8 & 0xff) * 0x10000" (parenthesized_expression "((((uint)puVar9 >> 0x10) << 0x18 | ((uint)puVar9 >> 0x18) << 0x10)\n                                >> 0x10)" (( "(") (binary_expression "(((uint)puVar9 >> 0x10) << 0x18 | ((uint)puVar9 >> 0x18) << 0x10)\n                                >> 0x10" (parenthesized_expression "(((uint)puVar9 >> 0x10) << 0x18 | ((uint)puVar9 >> 0x18) << 0x10)" (( "(") (binary_expression "((uint)puVar9 >> 0x10) << 0x18 | ((uint)puVar9 >> 0x18) << 0x10" (binary_expression "((uint)puVar9 >> 0x10) << 0x18" (parenthesized_expression "((uint)puVar9 >> 0x10)" (( "(") (binary_expression "(uint)puVar9 >> 0x10" (cast_expression "(uint)puVar9" (( "(") (type_descriptor "uint" (type_identifier "uint")) () ")") (identifier "puVar9")) (>> ">>") (number_literal "0x10")) () ")")) (<< "<<") (number_literal "0x18")) (| "|") (binary_expression "((uint)puVar9 >> 0x18) << 0x10" (parenthesized_expression "((uint)puVar9 >> 0x18)" (( "(") (binary_expression "(uint)puVar9 >> 0x18" (cast_expression "(uint)puVar9" (( "(") (type_descriptor "uint" (type_identifier "uint")) () ")") (identifier "puVar9")) (>> ">>") (number_literal "0x18")) () ")")) (<< "<<") (number_literal "0x10"))) () ")")) (>> ">>") (number_literal "0x10")) () ")")) (+ "+") (binary_expression "(((uint)puVar9 & 0xff) << 8 | (uint)puVar9 >> 8 & 0xff) * 0x10000" (parenthesized_expression "(((uint)puVar9 & 0xff) << 8 | (uint)puVar9 >> 8 & 0xff)" (( "(") (binary_expression "((uint)puVar9 & 0xff) << 8 | (uint)puVar9 >> 8 & 0xff" (binary_expression "((uint)puVar9 & 0xff) << 8" (parenthesized_expression "((uint)puVar9 & 0xff)" (( "(") (binary_expression "(uint)puVar9 & 0xff" (cast_expression "(uint)puVar9" (( "(") (type_descriptor "uint" (type_identifier "uint")) () ")") (identifier "puVar9")) (& "&") (number_literal "0xff")) () ")")) (<< "<<") (number_literal "8")) (| "|") (binary_expression "(uint)puVar9 >> 8 & 0xff" (binary_expression "(uint)puVar9 >> 8" (cast_expression "(uint)puVar9" (( "(") (type_descriptor "uint" (type_identifier "uint")) () ")") (identifier "puVar9")) (>> ">>") (number_literal "8")) (& "&") (number_literal "0xff"))) () ")")) (* "*") (number_literal "0x10000"))) () ")")))) (; ";")) (} "}"))) (expression_statement "local_44 = local_44 + 1;" (assignment_expression "local_44 = local_44 + 1" (identifier "local_44") (= "=") (binary_expression "local_44 + 1" (identifier "local_44") (+ "+") (number_literal "1"))) (; ";")) (expression_statement "iVar10 = *param_1;" (assignment_expression "iVar10 = *param_1" (identifier "iVar10") (= "=") (pointer_expression "*param_1" (* "*") (identifier "param_1"))) (; ";")) (expression_statement "local_50._0_4_ = (uint *)0x0;" (assignment_expression "local_50._0_4_ = (uint *)0x0" (field_expression "local_50._0_4_" (identifier "local_50") (. ".") (field_identifier "_0_4_")) (= "=") (cast_expression "(uint *)0x0" (( "(") (type_descriptor "uint *" (type_identifier "uint") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0"))) (; ";")) (expression_statement "local_50._4_4_ = puVar9;" (assignment_expression "local_50._4_4_ = puVar9" (field_expression "local_50._4_4_" (identifier "local_50") (. ".") (field_identifier "_4_4_")) (= "=") (identifier "puVar9")) (; ";")) (goto_statement "goto LAB_002e3708;" (goto "goto") (statement_identifier "LAB_002e3708") (; ";")) (} "}"))) (expression_statement "pcVar25 = *(code **)(**(int **)(*param_1 + 8) + 0xc);" (assignment_expression "pcVar25 = *(code **)(**(int **)(*param_1 + 8) + 0xc)" (identifier "pcVar25") (= "=") (pointer_expression "*(code **)(**(int **)(*param_1 + 8) + 0xc)" (* "*") (cast_expression "(code **)(**(int **)(*param_1 + 8) + 0xc)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(**(int **)(*param_1 + 8) + 0xc)" (( "(") (binary_expression "**(int **)(*param_1 + 8) + 0xc" (pointer_expression "**(int **)(*param_1 + 8)" (* "*") (pointer_expression "*(int **)(*param_1 + 8)" (* "*") (cast_expression "(int **)(*param_1 + 8)" (( "(") (type_descriptor "int **" (primitive_type "int") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(*param_1 + 8)" (( "(") (binary_expression "*param_1 + 8" (pointer_expression "*param_1" (* "*") (identifier "param_1")) (+ "+") (number_literal "8")) () ")"))))) (+ "+") (number_literal "0xc")) () ")"))))) (; ";")) (if_statement "if (pcVar25 == (code *)PTR_is_big_endian_004c2950) {\n            iVar8 = (**(code **)(**(int **)(*param_1 + 8) + 0xe8))();\n          }\n          else {\n            iVar8 = (*pcVar25)();\n          }" (if "if") (parenthesized_expression "(pcVar25 == (code *)PTR_is_big_endian_004c2950)" (( "(") (binary_expression "pcVar25 == (code *)PTR_is_big_endian_004c2950" (identifier "pcVar25") (== "==") (cast_expression "(code *)PTR_is_big_endian_004c2950" (( "(") (type_descriptor "code *" (type_identifier "code") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "PTR_is_big_endian_004c2950"))) () ")")) (compound_statement "{\n            iVar8 = (**(code **)(**(int **)(*param_1 + 8) + 0xe8))();\n          }" ({ "{") (expression_statement "iVar8 = (**(code **)(**(int **)(*param_1 + 8) + 0xe8))();" (assignment_expression "iVar8 = (**(code **)(**(int **)(*param_1 + 8) + 0xe8))()" (identifier "iVar8") (= "=") (call_expression "(**(code **)(**(int **)(*param_1 + 8) + 0xe8))()" (parenthesized_expression "(**(code **)(**(int **)(*param_1 + 8) + 0xe8))" (( "(") (pointer_expression "**(code **)(**(int **)(*param_1 + 8) + 0xe8)" (* "*") (pointer_expression "*(code **)(**(int **)(*param_1 + 8) + 0xe8)" (* "*") (cast_expression "(code **)(**(int **)(*param_1 + 8) + 0xe8)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(**(int **)(*param_1 + 8) + 0xe8)" (( "(") (binary_expression "**(int **)(*param_1 + 8) + 0xe8" (pointer_expression "**(int **)(*param_1 + 8)" (* "*") (pointer_expression "*(int **)(*param_1 + 8)" (* "*") (cast_expression "(int **)(*param_1 + 8)" (( "(") (type_descriptor "int **" (primitive_type "int") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(*param_1 + 8)" (( "(") (binary_expression "*param_1 + 8" (pointer_expression "*param_1" (* "*") (identifier "param_1")) (+ "+") (number_literal "8")) () ")"))))) (+ "+") (number_literal "0xe8")) () ")"))))) () ")")) (argument_list "()" (( "(") () ")")))) (; ";")) (} "}")) (else_clause "else {\n            iVar8 = (*pcVar25)();\n          }" (else "else") (compound_statement "{\n            iVar8 = (*pcVar25)();\n          }" ({ "{") (expression_statement "iVar8 = (*pcVar25)();" (assignment_expression "iVar8 = (*pcVar25)()" (identifier "iVar8") (= "=") (call_expression "(*pcVar25)()" (parenthesized_expression "(*pcVar25)" (( "(") (pointer_expression "*pcVar25" (* "*") (identifier "pcVar25")) () ")")) (argument_list "()" (( "(") () ")")))) (; ";")) (} "}")))) (expression_statement "uVar6 = *(ushort *)local_44;" (assignment_expression "uVar6 = *(ushort *)local_44" (identifier "uVar6") (= "=") (pointer_expression "*(ushort *)local_44" (* "*") (cast_expression "(ushort *)local_44" (( "(") (type_descriptor "ushort *" (type_identifier "ushort") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "local_44")))) (; ";")) (if_statement "if (iVar8 == 0) {\n            uVar6 = CONCAT11(*(byte *)((int)local_44 + 1),*(byte *)local_44);\n          }" (if "if") (parenthesized_expression "(iVar8 == 0)" (( "(") (binary_expression "iVar8 == 0" (identifier "iVar8") (== "==") (number_literal "0")) () ")")) (compound_statement "{\n            uVar6 = CONCAT11(*(byte *)((int)local_44 + 1),*(byte *)local_44);\n          }" ({ "{") (expression_statement "uVar6 = CONCAT11(*(byte *)((int)local_44 + 1),*(byte *)local_44);" (assignment_expression "uVar6 = CONCAT11(*(byte *)((int)local_44 + 1),*(byte *)local_44)" (identifier "uVar6") (= "=") (call_expression "CONCAT11(*(byte *)((int)local_44 + 1),*(byte *)local_44)" (identifier "CONCAT11") (argument_list "(*(byte *)((int)local_44 + 1),*(byte *)local_44)" (( "(") (pointer_expression "*(byte *)((int)local_44 + 1)" (* "*") (cast_expression "(byte *)((int)local_44 + 1)" (( "(") (type_descriptor "byte *" (type_identifier "byte") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "((int)local_44 + 1)" (( "(") (binary_expression "(int)local_44 + 1" (cast_expression "(int)local_44" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "local_44")) (+ "+") (number_literal "1")) () ")")))) (, ",") (pointer_expression "*(byte *)local_44" (* "*") (cast_expression "(byte *)local_44" (( "(") (type_descriptor "byte *" (type_identifier "byte") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "local_44"))) () ")")))) (; ";")) (} "}"))) (expression_statement "local_60._4_4_ = (uint *)(uint)uVar6;" (assignment_expression "local_60._4_4_ = (uint *)(uint)uVar6" (field_expression "local_60._4_4_" (identifier "local_60") (. ".") (field_identifier "_4_4_")) (= "=") (cast_expression "(uint *)(uint)uVar6" (( "(") (type_descriptor "uint *" (type_identifier "uint") (abstract_pointer_declarator "*" (* "*"))) () ")") (cast_expression "(uint)uVar6" (( "(") (type_descriptor "uint" (type_identifier "uint")) () ")") (identifier "uVar6")))) (; ";")) (expression_statement "local_44 = (uint *)((int)local_44 + 2);" (assignment_expression "local_44 = (uint *)((int)local_44 + 2)" (identifier "local_44") (= "=") (cast_expression "(uint *)((int)local_44 + 2)" (( "(") (type_descriptor "uint *" (type_identifier "uint") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "((int)local_44 + 2)" (( "(") (binary_expression "(int)local_44 + 2" (cast_expression "(int)local_44" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "local_44")) (+ "+") (number_literal "2")) () ")")))) (; ";")) (expression_statement "local_60._0_4_ = (uint *)0x0;" (assignment_expression "local_60._0_4_ = (uint *)0x0" (field_expression "local_60._0_4_" (identifier "local_60") (. ".") (field_identifier "_0_4_")) (= "=") (cast_expression "(uint *)0x0" (( "(") (type_descriptor "uint *" (type_identifier "uint") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0"))) (; ";")) (goto_statement "goto LAB_002e355c;" (goto "goto") (statement_identifier "LAB_002e355c") (; ";")) (} "}"))) (if_statement "if (uVar19 != 1) {\n          if (uVar19 != 3) {\n            return 0;\n          }\n          pcVar25 = *(code **)(**(int **)(*param_1 + 8) + 0xc);\n          if (pcVar25 == (code *)PTR_is_big_endian_004c2950) {\n            iVar8 = (**(code **)(**(int **)(*param_1 + 8) + 0xe8))();\n          }\n          else {\n            iVar8 = (*pcVar25)();\n          }\n          uVar6 = *(ushort *)local_44;\n          if (iVar8 == 0) {\n            uVar6 = CONCAT11(*(byte *)((int)local_44 + 1),*(byte *)local_44);\n          }\n          local_58 = (uint)uVar6;\n          local_60._0_4_ = (uint *)((int)local_44 + 2);\n          local_44 = (uint *)((int)local_60._0_4_ + local_58);\n          goto LAB_002e355c;\n        }" (if "if") (parenthesized_expression "(uVar19 != 1)" (( "(") (binary_expression "uVar19 != 1" (identifier "uVar19") (!= "!=") (number_literal "1")) () ")")) (compound_statement "{\n          if (uVar19 != 3) {\n            return 0;\n          }\n          pcVar25 = *(code **)(**(int **)(*param_1 + 8) + 0xc);\n          if (pcVar25 == (code *)PTR_is_big_endian_004c2950) {\n            iVar8 = (**(code **)(**(int **)(*param_1 + 8) + 0xe8))();\n          }\n          else {\n            iVar8 = (*pcVar25)();\n          }\n          uVar6 = *(ushort *)local_44;\n          if (iVar8 == 0) {\n            uVar6 = CONCAT11(*(byte *)((int)local_44 + 1),*(byte *)local_44);\n          }\n          local_58 = (uint)uVar6;\n          local_60._0_4_ = (uint *)((int)local_44 + 2);\n          local_44 = (uint *)((int)local_60._0_4_ + local_58);\n          goto LAB_002e355c;\n        }" ({ "{") (if_statement "if (uVar19 != 3) {\n            return 0;\n          }" (if "if") (parenthesized_expression "(uVar19 != 3)" (( "(") (binary_expression "uVar19 != 3" (identifier "uVar19") (!= "!=") (number_literal "3")) () ")")) (compound_statement "{\n            return 0;\n          }" ({ "{") (return_statement "return 0;" (return "return") (number_literal "0") (; ";")) (} "}"))) (expression_statement "pcVar25 = *(code **)(**(int **)(*param_1 + 8) + 0xc);" (assignment_expression "pcVar25 = *(code **)(**(int **)(*param_1 + 8) + 0xc)" (identifier "pcVar25") (= "=") (pointer_expression "*(code **)(**(int **)(*param_1 + 8) + 0xc)" (* "*") (cast_expression "(code **)(**(int **)(*param_1 + 8) + 0xc)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(**(int **)(*param_1 + 8) + 0xc)" (( "(") (binary_expression "**(int **)(*param_1 + 8) + 0xc" (pointer_expression "**(int **)(*param_1 + 8)" (* "*") (pointer_expression "*(int **)(*param_1 + 8)" (* "*") (cast_expression "(int **)(*param_1 + 8)" (( "(") (type_descriptor "int **" (primitive_type "int") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(*param_1 + 8)" (( "(") (binary_expression "*param_1 + 8" (pointer_expression "*param_1" (* "*") (identifier "param_1")) (+ "+") (number_literal "8")) () ")"))))) (+ "+") (number_literal "0xc")) () ")"))))) (; ";")) (if_statement "if (pcVar25 == (code *)PTR_is_big_endian_004c2950) {\n            iVar8 = (**(code **)(**(int **)(*param_1 + 8) + 0xe8))();\n          }\n          else {\n            iVar8 = (*pcVar25)();\n          }" (if "if") (parenthesized_expression "(pcVar25 == (code *)PTR_is_big_endian_004c2950)" (( "(") (binary_expression "pcVar25 == (code *)PTR_is_big_endian_004c2950" (identifier "pcVar25") (== "==") (cast_expression "(code *)PTR_is_big_endian_004c2950" (( "(") (type_descriptor "code *" (type_identifier "code") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "PTR_is_big_endian_004c2950"))) () ")")) (compound_statement "{\n            iVar8 = (**(code **)(**(int **)(*param_1 + 8) + 0xe8))();\n          }" ({ "{") (expression_statement "iVar8 = (**(code **)(**(int **)(*param_1 + 8) + 0xe8))();" (assignment_expression "iVar8 = (**(code **)(**(int **)(*param_1 + 8) + 0xe8))()" (identifier "iVar8") (= "=") (call_expression "(**(code **)(**(int **)(*param_1 + 8) + 0xe8))()" (parenthesized_expression "(**(code **)(**(int **)(*param_1 + 8) + 0xe8))" (( "(") (pointer_expression "**(code **)(**(int **)(*param_1 + 8) + 0xe8)" (* "*") (pointer_expression "*(code **)(**(int **)(*param_1 + 8) + 0xe8)" (* "*") (cast_expression "(code **)(**(int **)(*param_1 + 8) + 0xe8)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(**(int **)(*param_1 + 8) + 0xe8)" (( "(") (binary_expression "**(int **)(*param_1 + 8) + 0xe8" (pointer_expression "**(int **)(*param_1 + 8)" (* "*") (pointer_expression "*(int **)(*param_1 + 8)" (* "*") (cast_expression "(int **)(*param_1 + 8)" (( "(") (type_descriptor "int **" (primitive_type "int") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(*param_1 + 8)" (( "(") (binary_expression "*param_1 + 8" (pointer_expression "*param_1" (* "*") (identifier "param_1")) (+ "+") (number_literal "8")) () ")"))))) (+ "+") (number_literal "0xe8")) () ")"))))) () ")")) (argument_list "()" (( "(") () ")")))) (; ";")) (} "}")) (else_clause "else {\n            iVar8 = (*pcVar25)();\n          }" (else "else") (compound_statement "{\n            iVar8 = (*pcVar25)();\n          }" ({ "{") (expression_statement "iVar8 = (*pcVar25)();" (assignment_expression "iVar8 = (*pcVar25)()" (identifier "iVar8") (= "=") (call_expression "(*pcVar25)()" (parenthesized_expression "(*pcVar25)" (( "(") (pointer_expression "*pcVar25" (* "*") (identifier "pcVar25")) () ")")) (argument_list "()" (( "(") () ")")))) (; ";")) (} "}")))) (expression_statement "uVar6 = *(ushort *)local_44;" (assignment_expression "uVar6 = *(ushort *)local_44" (identifier "uVar6") (= "=") (pointer_expression "*(ushort *)local_44" (* "*") (cast_expression "(ushort *)local_44" (( "(") (type_descriptor "ushort *" (type_identifier "ushort") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "local_44")))) (; ";")) (if_statement "if (iVar8 == 0) {\n            uVar6 = CONCAT11(*(byte *)((int)local_44 + 1),*(byte *)local_44);\n          }" (if "if") (parenthesized_expression "(iVar8 == 0)" (( "(") (binary_expression "iVar8 == 0" (identifier "iVar8") (== "==") (number_literal "0")) () ")")) (compound_statement "{\n            uVar6 = CONCAT11(*(byte *)((int)local_44 + 1),*(byte *)local_44);\n          }" ({ "{") (expression_statement "uVar6 = CONCAT11(*(byte *)((int)local_44 + 1),*(byte *)local_44);" (assignment_expression "uVar6 = CONCAT11(*(byte *)((int)local_44 + 1),*(byte *)local_44)" (identifier "uVar6") (= "=") (call_expression "CONCAT11(*(byte *)((int)local_44 + 1),*(byte *)local_44)" (identifier "CONCAT11") (argument_list "(*(byte *)((int)local_44 + 1),*(byte *)local_44)" (( "(") (pointer_expression "*(byte *)((int)local_44 + 1)" (* "*") (cast_expression "(byte *)((int)local_44 + 1)" (( "(") (type_descriptor "byte *" (type_identifier "byte") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "((int)local_44 + 1)" (( "(") (binary_expression "(int)local_44 + 1" (cast_expression "(int)local_44" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "local_44")) (+ "+") (number_literal "1")) () ")")))) (, ",") (pointer_expression "*(byte *)local_44" (* "*") (cast_expression "(byte *)local_44" (( "(") (type_descriptor "byte *" (type_identifier "byte") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "local_44"))) () ")")))) (; ";")) (} "}"))) (expression_statement "local_58 = (uint)uVar6;" (assignment_expression "local_58 = (uint)uVar6" (identifier "local_58") (= "=") (cast_expression "(uint)uVar6" (( "(") (type_descriptor "uint" (type_identifier "uint")) () ")") (identifier "uVar6"))) (; ";")) (expression_statement "local_60._0_4_ = (uint *)((int)local_44 + 2);" (assignment_expression "local_60._0_4_ = (uint *)((int)local_44 + 2)" (field_expression "local_60._0_4_" (identifier "local_60") (. ".") (field_identifier "_0_4_")) (= "=") (cast_expression "(uint *)((int)local_44 + 2)" (( "(") (type_descriptor "uint *" (type_identifier "uint") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "((int)local_44 + 2)" (( "(") (binary_expression "(int)local_44 + 2" (cast_expression "(int)local_44" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "local_44")) (+ "+") (number_literal "2")) () ")")))) (; ";")) (expression_statement "local_44 = (uint *)((int)local_60._0_4_ + local_58);" (assignment_expression "local_44 = (uint *)((int)local_60._0_4_ + local_58)" (identifier "local_44") (= "=") (cast_expression "(uint *)((int)local_60._0_4_ + local_58)" (( "(") (type_descriptor "uint *" (type_identifier "uint") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "((int)local_60._0_4_ + local_58)" (( "(") (binary_expression "(int)local_60._0_4_ + local_58" (cast_expression "(int)local_60._0_4_" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (field_expression "local_60._0_4_" (identifier "local_60") (. ".") (field_identifier "_0_4_"))) (+ "+") (identifier "local_58")) () ")")))) (; ";")) (goto_statement "goto LAB_002e355c;" (goto "goto") (statement_identifier "LAB_002e355c") (; ";")) (} "}"))) (expression_statement "iVar8 = *param_1;" (assignment_expression "iVar8 = *param_1" (identifier "iVar8") (= "=") (pointer_expression "*param_1" (* "*") (identifier "param_1"))) (; ";")) (if_statement "if (*(int *)(iVar8 + 0x4c) == 4) {\n          pcVar25 = *(code **)(**(int **)(iVar8 + 8) + 0xc);\n          if (pcVar25 == (code *)PTR_is_big_endian_004c2950) {\n            local_30 = puVar18;\n            iVar8 = (**(code **)(**(int **)(iVar8 + 8) + 0xe8))();\n          }\n          else {\n            local_30 = puVar18;\n            iVar8 = (*pcVar25)();\n          }\n          uVar15 = *local_44;\n          if (iVar8 == 0) {\n            uVar15 = (((uVar15 >> 0x10) << 0x18 | (uVar15 >> 0x18) << 0x10) >> 0x10) +\n                     ((uVar15 & 0xff) << 8 | uVar15 >> 8 & 0xff) * 0x10000;\n          }\n          local_44 = local_44 + 1;\n          uVar26 = (ulonglong)uVar15;\n        }\n        else {\n          local_30 = puVar18;\n          uVar26 = (*local_34)(iVar8,&local_44);\n        }" (if "if") (parenthesized_expression "(*(int *)(iVar8 + 0x4c) == 4)" (( "(") (binary_expression "*(int *)(iVar8 + 0x4c) == 4" (pointer_expression "*(int *)(iVar8 + 0x4c)" (* "*") (cast_expression "(int *)(iVar8 + 0x4c)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar8 + 0x4c)" (( "(") (binary_expression "iVar8 + 0x4c" (identifier "iVar8") (+ "+") (number_literal "0x4c")) () ")")))) (== "==") (number_literal "4")) () ")")) (compound_statement "{\n          pcVar25 = *(code **)(**(int **)(iVar8 + 8) + 0xc);\n          if (pcVar25 == (code *)PTR_is_big_endian_004c2950) {\n            local_30 = puVar18;\n            iVar8 = (**(code **)(**(int **)(iVar8 + 8) + 0xe8))();\n          }\n          else {\n            local_30 = puVar18;\n            iVar8 = (*pcVar25)();\n          }\n          uVar15 = *local_44;\n          if (iVar8 == 0) {\n            uVar15 = (((uVar15 >> 0x10) << 0x18 | (uVar15 >> 0x18) << 0x10) >> 0x10) +\n                     ((uVar15 & 0xff) << 8 | uVar15 >> 8 & 0xff) * 0x10000;\n          }\n          local_44 = local_44 + 1;\n          uVar26 = (ulonglong)uVar15;\n        }" ({ "{") (expression_statement "pcVar25 = *(code **)(**(int **)(iVar8 + 8) + 0xc);" (assignment_expression "pcVar25 = *(code **)(**(int **)(iVar8 + 8) + 0xc)" (identifier "pcVar25") (= "=") (pointer_expression "*(code **)(**(int **)(iVar8 + 8) + 0xc)" (* "*") (cast_expression "(code **)(**(int **)(iVar8 + 8) + 0xc)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(**(int **)(iVar8 + 8) + 0xc)" (( "(") (binary_expression "**(int **)(iVar8 + 8) + 0xc" (pointer_expression "**(int **)(iVar8 + 8)" (* "*") (pointer_expression "*(int **)(iVar8 + 8)" (* "*") (cast_expression "(int **)(iVar8 + 8)" (( "(") (type_descriptor "int **" (primitive_type "int") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(iVar8 + 8)" (( "(") (binary_expression "iVar8 + 8" (identifier "iVar8") (+ "+") (number_literal "8")) () ")"))))) (+ "+") (number_literal "0xc")) () ")"))))) (; ";")) (if_statement "if (pcVar25 == (code *)PTR_is_big_endian_004c2950) {\n            local_30 = puVar18;\n            iVar8 = (**(code **)(**(int **)(iVar8 + 8) + 0xe8))();\n          }\n          else {\n            local_30 = puVar18;\n            iVar8 = (*pcVar25)();\n          }" (if "if") (parenthesized_expression "(pcVar25 == (code *)PTR_is_big_endian_004c2950)" (( "(") (binary_expression "pcVar25 == (code *)PTR_is_big_endian_004c2950" (identifier "pcVar25") (== "==") (cast_expression "(code *)PTR_is_big_endian_004c2950" (( "(") (type_descriptor "code *" (type_identifier "code") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "PTR_is_big_endian_004c2950"))) () ")")) (compound_statement "{\n            local_30 = puVar18;\n            iVar8 = (**(code **)(**(int **)(iVar8 + 8) + 0xe8))();\n          }" ({ "{") (expression_statement "local_30 = puVar18;" (assignment_expression "local_30 = puVar18" (identifier "local_30") (= "=") (identifier "puVar18")) (; ";")) (expression_statement "iVar8 = (**(code **)(**(int **)(iVar8 + 8) + 0xe8))();" (assignment_expression "iVar8 = (**(code **)(**(int **)(iVar8 + 8) + 0xe8))()" (identifier "iVar8") (= "=") (call_expression "(**(code **)(**(int **)(iVar8 + 8) + 0xe8))()" (parenthesized_expression "(**(code **)(**(int **)(iVar8 + 8) + 0xe8))" (( "(") (pointer_expression "**(code **)(**(int **)(iVar8 + 8) + 0xe8)" (* "*") (pointer_expression "*(code **)(**(int **)(iVar8 + 8) + 0xe8)" (* "*") (cast_expression "(code **)(**(int **)(iVar8 + 8) + 0xe8)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(**(int **)(iVar8 + 8) + 0xe8)" (( "(") (binary_expression "**(int **)(iVar8 + 8) + 0xe8" (pointer_expression "**(int **)(iVar8 + 8)" (* "*") (pointer_expression "*(int **)(iVar8 + 8)" (* "*") (cast_expression "(int **)(iVar8 + 8)" (( "(") (type_descriptor "int **" (primitive_type "int") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(iVar8 + 8)" (( "(") (binary_expression "iVar8 + 8" (identifier "iVar8") (+ "+") (number_literal "8")) () ")"))))) (+ "+") (number_literal "0xe8")) () ")"))))) () ")")) (argument_list "()" (( "(") () ")")))) (; ";")) (} "}")) (else_clause "else {\n            local_30 = puVar18;\n            iVar8 = (*pcVar25)();\n          }" (else "else") (compound_statement "{\n            local_30 = puVar18;\n            iVar8 = (*pcVar25)();\n          }" ({ "{") (expression_statement "local_30 = puVar18;" (assignment_expression "local_30 = puVar18" (identifier "local_30") (= "=") (identifier "puVar18")) (; ";")) (expression_statement "iVar8 = (*pcVar25)();" (assignment_expression "iVar8 = (*pcVar25)()" (identifier "iVar8") (= "=") (call_expression "(*pcVar25)()" (parenthesized_expression "(*pcVar25)" (( "(") (pointer_expression "*pcVar25" (* "*") (identifier "pcVar25")) () ")")) (argument_list "()" (( "(") () ")")))) (; ";")) (} "}")))) (expression_statement "uVar15 = *local_44;" (assignment_expression "uVar15 = *local_44" (identifier "uVar15") (= "=") (pointer_expression "*local_44" (* "*") (identifier "local_44"))) (; ";")) (if_statement "if (iVar8 == 0) {\n            uVar15 = (((uVar15 >> 0x10) << 0x18 | (uVar15 >> 0x18) << 0x10) >> 0x10) +\n                     ((uVar15 & 0xff) << 8 | uVar15 >> 8 & 0xff) * 0x10000;\n          }" (if "if") (parenthesized_expression "(iVar8 == 0)" (( "(") (binary_expression "iVar8 == 0" (identifier "iVar8") (== "==") (number_literal "0")) () ")")) (compound_statement "{\n            uVar15 = (((uVar15 >> 0x10) << 0x18 | (uVar15 >> 0x18) << 0x10) >> 0x10) +\n                     ((uVar15 & 0xff) << 8 | uVar15 >> 8 & 0xff) * 0x10000;\n          }" ({ "{") (expression_statement "uVar15 = (((uVar15 >> 0x10) << 0x18 | (uVar15 >> 0x18) << 0x10) >> 0x10) +\n                     ((uVar15 & 0xff) << 8 | uVar15 >> 8 & 0xff) * 0x10000;" (assignment_expression "uVar15 = (((uVar15 >> 0x10) << 0x18 | (uVar15 >> 0x18) << 0x10) >> 0x10) +\n                     ((uVar15 & 0xff) << 8 | uVar15 >> 8 & 0xff) * 0x10000" (identifier "uVar15") (= "=") (binary_expression "(((uVar15 >> 0x10) << 0x18 | (uVar15 >> 0x18) << 0x10) >> 0x10) +\n                     ((uVar15 & 0xff) << 8 | uVar15 >> 8 & 0xff) * 0x10000" (parenthesized_expression "(((uVar15 >> 0x10) << 0x18 | (uVar15 >> 0x18) << 0x10) >> 0x10)" (( "(") (binary_expression "((uVar15 >> 0x10) << 0x18 | (uVar15 >> 0x18) << 0x10) >> 0x10" (parenthesized_expression "((uVar15 >> 0x10) << 0x18 | (uVar15 >> 0x18) << 0x10)" (( "(") (binary_expression "(uVar15 >> 0x10) << 0x18 | (uVar15 >> 0x18) << 0x10" (binary_expression "(uVar15 >> 0x10) << 0x18" (parenthesized_expression "(uVar15 >> 0x10)" (( "(") (binary_expression "uVar15 >> 0x10" (identifier "uVar15") (>> ">>") (number_literal "0x10")) () ")")) (<< "<<") (number_literal "0x18")) (| "|") (binary_expression "(uVar15 >> 0x18) << 0x10" (parenthesized_expression "(uVar15 >> 0x18)" (( "(") (binary_expression "uVar15 >> 0x18" (identifier "uVar15") (>> ">>") (number_literal "0x18")) () ")")) (<< "<<") (number_literal "0x10"))) () ")")) (>> ">>") (number_literal "0x10")) () ")")) (+ "+") (binary_expression "((uVar15 & 0xff) << 8 | uVar15 >> 8 & 0xff) * 0x10000" (parenthesized_expression "((uVar15 & 0xff) << 8 | uVar15 >> 8 & 0xff)" (( "(") (binary_expression "(uVar15 & 0xff) << 8 | uVar15 >> 8 & 0xff" (binary_expression "(uVar15 & 0xff) << 8" (parenthesized_expression "(uVar15 & 0xff)" (( "(") (binary_expression "uVar15 & 0xff" (identifier "uVar15") (& "&") (number_literal "0xff")) () ")")) (<< "<<") (number_literal "8")) (| "|") (binary_expression "uVar15 >> 8 & 0xff" (binary_expression "uVar15 >> 8" (identifier "uVar15") (>> ">>") (number_literal "8")) (& "&") (number_literal "0xff"))) () ")")) (* "*") (number_literal "0x10000")))) (; ";")) (} "}"))) (expression_statement "local_44 = local_44 + 1;" (assignment_expression "local_44 = local_44 + 1" (identifier "local_44") (= "=") (binary_expression "local_44 + 1" (identifier "local_44") (+ "+") (number_literal "1"))) (; ";")) (expression_statement "uVar26 = (ulonglong)uVar15;" (assignment_expression "uVar26 = (ulonglong)uVar15" (identifier "uVar26") (= "=") (cast_expression "(ulonglong)uVar15" (( "(") (type_descriptor "ulonglong" (type_identifier "ulonglong")) () ")") (identifier "uVar15"))) (; ";")) (} "}")) (else_clause "else {\n          local_30 = puVar18;\n          uVar26 = (*local_34)(iVar8,&local_44);\n        }" (else "else") (compound_statement "{\n          local_30 = puVar18;\n          uVar26 = (*local_34)(iVar8,&local_44);\n        }" ({ "{") (expression_statement "local_30 = puVar18;" (assignment_expression "local_30 = puVar18" (identifier "local_30") (= "=") (identifier "puVar18")) (; ";")) (expression_statement "uVar26 = (*local_34)(iVar8,&local_44);" (assignment_expression "uVar26 = (*local_34)(iVar8,&local_44)" (identifier "uVar26") (= "=") (call_expression "(*local_34)(iVar8,&local_44)" (parenthesized_expression "(*local_34)" (( "(") (pointer_expression "*local_34" (* "*") (identifier "local_34")) () ")")) (argument_list "(iVar8,&local_44)" (( "(") (identifier "iVar8") (, ",") (pointer_expression "&local_44" (& "&") (identifier "local_44")) () ")")))) (; ";")) (} "}")))) (expression_statement "local_50 = uVar26;" (assignment_expression "local_50 = uVar26" (identifier "local_50") (= "=") (identifier "uVar26")) (; ";")) (expression_statement "local_58 = (*local_3c)(*param_1);" (assignment_expression "local_58 = (*local_3c)(*param_1)" (identifier "local_58") (= "=") (call_expression "(*local_3c)(*param_1)" (parenthesized_expression "(*local_3c)" (( "(") (pointer_expression "*local_3c" (* "*") (identifier "local_3c")) () ")")) (argument_list "(*param_1)" (( "(") (pointer_expression "*param_1" (* "*") (identifier "param_1")) () ")")))) (; ";")) (expression_statement "uVar26 = local_50;" (assignment_expression "uVar26 = local_50" (identifier "uVar26") (= "=") (identifier "local_50")) (; ";")) (if_statement "if (uVar22 == 0x31) goto LAB_002e30bc;" (if "if") (parenthesized_expression "(uVar22 == 0x31)" (( "(") (binary_expression "uVar22 == 0x31" (identifier "uVar22") (== "==") (number_literal "0x31")) () ")")) (goto_statement "goto LAB_002e30bc;" (goto "goto") (statement_identifier "LAB_002e30bc") (; ";"))) (if_statement "if (uVar22 < 0x32) {\n          if (uVar22 != 1) goto joined_r0x002e3124;\n          goto LAB_002e39b4;\n        }" (if "if") (parenthesized_expression "(uVar22 < 0x32)" (( "(") (binary_expression "uVar22 < 0x32" (identifier "uVar22") (< "<") (number_literal "0x32")) () ")")) (compound_statement "{\n          if (uVar22 != 1) goto joined_r0x002e3124;\n          goto LAB_002e39b4;\n        }" ({ "{") (if_statement "if (uVar22 != 1) goto joined_r0x002e3124;" (if "if") (parenthesized_expression "(uVar22 != 1)" (( "(") (binary_expression "uVar22 != 1" (identifier "uVar22") (!= "!=") (number_literal "1")) () ")")) (goto_statement "goto joined_r0x002e3124;" (goto "goto") (statement_identifier "joined_r0x002e3124") (; ";"))) (goto_statement "goto LAB_002e39b4;" (goto "goto") (statement_identifier "LAB_002e39b4") (; ";")) (} "}"))) (expression_statement "uVar7 = local_50;" (assignment_expression "uVar7 = local_50" (identifier "uVar7") (= "=") (identifier "local_50")) (; ";")) (if_statement "if (uVar22 == 0x6e) goto LAB_002e313c;" (if "if") (parenthesized_expression "(uVar22 == 0x6e)" (( "(") (binary_expression "uVar22 == 0x6e" (identifier "uVar22") (== "==") (number_literal "0x6e")) () ")")) (goto_statement "goto LAB_002e313c;" (goto "goto") (statement_identifier "LAB_002e313c") (; ";"))) (if_statement "if (uVar22 != 0x2007) goto LAB_002e339c;" (if "if") (parenthesized_expression "(uVar22 != 0x2007)" (( "(") (binary_expression "uVar22 != 0x2007" (identifier "uVar22") (!= "!=") (number_literal "0x2007")) () ")")) (goto_statement "goto LAB_002e339c;" (goto "goto") (statement_identifier "LAB_002e339c") (; ";"))) (expression_statement "puVar9 = (uint *)param_1[0xc];" (assignment_expression "puVar9 = (uint *)param_1[0xc]" (identifier "puVar9") (= "=") (cast_expression "(uint *)param_1[0xc]" (( "(") (type_descriptor "uint *" (type_identifier "uint") (abstract_pointer_declarator "*" (* "*"))) () ")") (subscript_expression "param_1[0xc]" (identifier "param_1") ([ "[") (number_literal "0xc") (] "]")))) (; ";")) (} "}")))) (while_statement "while( true ) {\n        if (puVar9 == (uint *)param_1[0xd]) goto LAB_002e2f98;\nLAB_002e314c:\n        local_60._0_4_ = (uint *)(uVar26 >> 0x20);\n        local_60._4_4_ = (uint *)uVar26;\n        iVar17 = iVar17 + 8;\n        puVar9[1] = local_64;\n        puVar9[2] = (uint)local_60._0_4_;\n        *puVar9 = local_68;\n        puVar9[3] = (uint)local_60._4_4_;\n        puVar9[4] = local_58;\n        puVar9[5] = local_54;\n        param_1[0xc] = (int)(puVar9 + 6);\n        iVar8 = param_1[10];\n        local_60 = uVar26;\n        if (iVar17 == iVar21) goto LAB_002e2fb8;\n        puVar9 = (uint *)(*(int *)(iVar8 + 8) + iVar17);\n        uVar19 = puVar9[1];\n        uVar22 = *puVar9;\n        if (uVar19 != 0x16) goto LAB_002e2dd0;\nLAB_002e31a8:\n        uVar19 = (uint)*(byte *)local_44;\n        puVar9 = (uint *)((int)local_44 + 1);\n        if ((char)*(byte *)local_44 < '\0') {\n          local_60 = uVar26;\n          (*(code *)PTR_read_unsigned_LEB_128_x_004c2980)(puVar9,&local_48,uVar19);\n          puVar9 = (uint *)((int)local_44 + local_48);\n          uVar19 = extraout_v1;\n          uVar26 = local_60;\n        }\n        else {\n          local_48 = 1;\n        }\n        puVar11 = (uint *)((int)puVar9 - iVar20);\n        puVar18 = (uint *)((int)puVar11 + param_1[3]);\n        iVar8 = (uint)(puVar18 < puVar11) + ((int)puVar11 >> 0x1f) + param_1[2];\n        local_64 = uVar19;\n        local_44 = puVar9;\n        if (uVar19 != 0xe) break;\nLAB_002e31fc:\n        local_58 = 0;\n        iVar8 = *param_1;\n        local_68 = uVar22;\n        local_30 = puVar18;\n        local_60 = uVar26;\n        if (*(int *)(iVar8 + 0x48) == 4) {\n          pcVar25 = *(code **)(**(int **)(iVar8 + 8) + 0xc);\n          if (pcVar25 == (code *)PTR_is_big_endian_004c2950) {\n            iVar8 = (**(code **)(**(int **)(iVar8 + 8) + 0xe8))();\n          }\n          else {\n            iVar8 = (*pcVar25)();\n          }\n          uVar19 = *local_44;\n          if (iVar8 == 0) {\n            uVar19 = (((uVar19 >> 0x10) << 0x18 | (uVar19 >> 0x18) << 0x10) >> 0x10) +\n                     ((uVar19 & 0xff) << 8 | uVar19 >> 8 & 0xff) * 0x10000;\n          }\n          local_44 = local_44 + 1;\n          uVar26 = (ulonglong)uVar19;\n        }\n        else {\n          uVar26 = (*local_34)(iVar8,&local_44);\n        }\n        local_50 = uVar26;\n        local_58 = (*local_3c)(*param_1);\n        uVar7 = local_50;\n        if (uVar22 != 0x31) {\n          uVar26 = local_50;\n          if (uVar22 < 0x32) {\n            if ((uVar22 != 1) && (uVar22 == 3)) {\nLAB_002e3284:\n              param_1[0x16] = local_58;\n              *(ulonglong *)(param_1 + 0x10) = uVar26;\n              uVar7 = uVar26;\n            }\n          }\n          else {\n            if (uVar22 == 0x6e) {\nLAB_002e387c:\n              param_1[0x16] = local_58;\n            }\n            else {\n              if (uVar22 != 0x2007) goto LAB_002e313c;\n              param_1[0x16] = local_58;\n            }\n            *(ulonglong *)(param_1 + 0x14) = uVar26;\n            uVar7 = uVar26;\n          }\n        }\nLAB_002e313c:\n        puVar9 = (uint *)param_1[0xc];\n        uVar26 = uVar7;\n      }" (while "while") (parenthesized_expression "( true )" (( "(") (true "true") () ")")) (compound_statement "{\n        if (puVar9 == (uint *)param_1[0xd]) goto LAB_002e2f98;\nLAB_002e314c:\n        local_60._0_4_ = (uint *)(uVar26 >> 0x20);\n        local_60._4_4_ = (uint *)uVar26;\n        iVar17 = iVar17 + 8;\n        puVar9[1] = local_64;\n        puVar9[2] = (uint)local_60._0_4_;\n        *puVar9 = local_68;\n        puVar9[3] = (uint)local_60._4_4_;\n        puVar9[4] = local_58;\n        puVar9[5] = local_54;\n        param_1[0xc] = (int)(puVar9 + 6);\n        iVar8 = param_1[10];\n        local_60 = uVar26;\n        if (iVar17 == iVar21) goto LAB_002e2fb8;\n        puVar9 = (uint *)(*(int *)(iVar8 + 8) + iVar17);\n        uVar19 = puVar9[1];\n        uVar22 = *puVar9;\n        if (uVar19 != 0x16) goto LAB_002e2dd0;\nLAB_002e31a8:\n        uVar19 = (uint)*(byte *)local_44;\n        puVar9 = (uint *)((int)local_44 + 1);\n        if ((char)*(byte *)local_44 < '\0') {\n          local_60 = uVar26;\n          (*(code *)PTR_read_unsigned_LEB_128_x_004c2980)(puVar9,&local_48,uVar19);\n          puVar9 = (uint *)((int)local_44 + local_48);\n          uVar19 = extraout_v1;\n          uVar26 = local_60;\n        }\n        else {\n          local_48 = 1;\n        }\n        puVar11 = (uint *)((int)puVar9 - iVar20);\n        puVar18 = (uint *)((int)puVar11 + param_1[3]);\n        iVar8 = (uint)(puVar18 < puVar11) + ((int)puVar11 >> 0x1f) + param_1[2];\n        local_64 = uVar19;\n        local_44 = puVar9;\n        if (uVar19 != 0xe) break;\nLAB_002e31fc:\n        local_58 = 0;\n        iVar8 = *param_1;\n        local_68 = uVar22;\n        local_30 = puVar18;\n        local_60 = uVar26;\n        if (*(int *)(iVar8 + 0x48) == 4) {\n          pcVar25 = *(code **)(**(int **)(iVar8 + 8) + 0xc);\n          if (pcVar25 == (code *)PTR_is_big_endian_004c2950) {\n            iVar8 = (**(code **)(**(int **)(iVar8 + 8) + 0xe8))();\n          }\n          else {\n            iVar8 = (*pcVar25)();\n          }\n          uVar19 = *local_44;\n          if (iVar8 == 0) {\n            uVar19 = (((uVar19 >> 0x10) << 0x18 | (uVar19 >> 0x18) << 0x10) >> 0x10) +\n                     ((uVar19 & 0xff) << 8 | uVar19 >> 8 & 0xff) * 0x10000;\n          }\n          local_44 = local_44 + 1;\n          uVar26 = (ulonglong)uVar19;\n        }\n        else {\n          uVar26 = (*local_34)(iVar8,&local_44);\n        }\n        local_50 = uVar26;\n        local_58 = (*local_3c)(*param_1);\n        uVar7 = local_50;\n        if (uVar22 != 0x31) {\n          uVar26 = local_50;\n          if (uVar22 < 0x32) {\n            if ((uVar22 != 1) && (uVar22 == 3)) {\nLAB_002e3284:\n              param_1[0x16] = local_58;\n              *(ulonglong *)(param_1 + 0x10) = uVar26;\n              uVar7 = uVar26;\n            }\n          }\n          else {\n            if (uVar22 == 0x6e) {\nLAB_002e387c:\n              param_1[0x16] = local_58;\n            }\n            else {\n              if (uVar22 != 0x2007) goto LAB_002e313c;\n              param_1[0x16] = local_58;\n            }\n            *(ulonglong *)(param_1 + 0x14) = uVar26;\n            uVar7 = uVar26;\n          }\n        }\nLAB_002e313c:\n        puVar9 = (uint *)param_1[0xc];\n        uVar26 = uVar7;\n      }" ({ "{") (if_statement "if (puVar9 == (uint *)param_1[0xd]) goto LAB_002e2f98;" (if "if") (parenthesized_expression "(puVar9 == (uint *)param_1[0xd])" (( "(") (binary_expression "puVar9 == (uint *)param_1[0xd]" (identifier "puVar9") (== "==") (cast_expression "(uint *)param_1[0xd]" (( "(") (type_descriptor "uint *" (type_identifier "uint") (abstract_pointer_declarator "*" (* "*"))) () ")") (subscript_expression "param_1[0xd]" (identifier "param_1") ([ "[") (number_literal "0xd") (] "]")))) () ")")) (goto_statement "goto LAB_002e2f98;" (goto "goto") (statement_identifier "LAB_002e2f98") (; ";"))) (labeled_statement "LAB_002e314c:\n        local_60._0_4_ = (uint *)(uVar26 >> 0x20);" (statement_identifier "LAB_002e314c") (: ":") (expression_statement "local_60._0_4_ = (uint *)(uVar26 >> 0x20);" (assignment_expression "local_60._0_4_ = (uint *)(uVar26 >> 0x20)" (field_expression "local_60._0_4_" (identifier "local_60") (. ".") (field_identifier "_0_4_")) (= "=") (cast_expression "(uint *)(uVar26 >> 0x20)" (( "(") (type_descriptor "uint *" (type_identifier "uint") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(uVar26 >> 0x20)" (( "(") (binary_expression "uVar26 >> 0x20" (identifier "uVar26") (>> ">>") (number_literal "0x20")) () ")")))) (; ";"))) (expression_statement "local_60._4_4_ = (uint *)uVar26;" (assignment_expression "local_60._4_4_ = (uint *)uVar26" (field_expression "local_60._4_4_" (identifier "local_60") (. ".") (field_identifier "_4_4_")) (= "=") (cast_expression "(uint *)uVar26" (( "(") (type_descriptor "uint *" (type_identifier "uint") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "uVar26"))) (; ";")) (expression_statement "iVar17 = iVar17 + 8;" (assignment_expression "iVar17 = iVar17 + 8" (identifier "iVar17") (= "=") (binary_expression "iVar17 + 8" (identifier "iVar17") (+ "+") (number_literal "8"))) (; ";")) (expression_statement "puVar9[1] = local_64;" (assignment_expression "puVar9[1] = local_64" (subscript_expression "puVar9[1]" (identifier "puVar9") ([ "[") (number_literal "1") (] "]")) (= "=") (identifier "local_64")) (; ";")) (expression_statement "puVar9[2] = (uint)local_60._0_4_;" (assignment_expression "puVar9[2] = (uint)local_60._0_4_" (subscript_expression "puVar9[2]" (identifier "puVar9") ([ "[") (number_literal "2") (] "]")) (= "=") (cast_expression "(uint)local_60._0_4_" (( "(") (type_descriptor "uint" (type_identifier "uint")) () ")") (field_expression "local_60._0_4_" (identifier "local_60") (. ".") (field_identifier "_0_4_")))) (; ";")) (expression_statement "*puVar9 = local_68;" (assignment_expression "*puVar9 = local_68" (pointer_expression "*puVar9" (* "*") (identifier "puVar9")) (= "=") (identifier "local_68")) (; ";")) (expression_statement "puVar9[3] = (uint)local_60._4_4_;" (assignment_expression "puVar9[3] = (uint)local_60._4_4_" (subscript_expression "puVar9[3]" (identifier "puVar9") ([ "[") (number_literal "3") (] "]")) (= "=") (cast_expression "(uint)local_60._4_4_" (( "(") (type_descriptor "uint" (type_identifier "uint")) () ")") (field_expression "local_60._4_4_" (identifier "local_60") (. ".") (field_identifier "_4_4_")))) (; ";")) (expression_statement "puVar9[4] = local_58;" (assignment_expression "puVar9[4] = local_58" (subscript_expression "puVar9[4]" (identifier "puVar9") ([ "[") (number_literal "4") (] "]")) (= "=") (identifier "local_58")) (; ";")) (expression_statement "puVar9[5] = local_54;" (assignment_expression "puVar9[5] = local_54" (subscript_expression "puVar9[5]" (identifier "puVar9") ([ "[") (number_literal "5") (] "]")) (= "=") (identifier "local_54")) (; ";")) (expression_statement "param_1[0xc] = (int)(puVar9 + 6);" (assignment_expression "param_1[0xc] = (int)(puVar9 + 6)" (subscript_expression "param_1[0xc]" (identifier "param_1") ([ "[") (number_literal "0xc") (] "]")) (= "=") (cast_expression "(int)(puVar9 + 6)" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (parenthesized_expression "(puVar9 + 6)" (( "(") (binary_expression "puVar9 + 6" (identifier "puVar9") (+ "+") (number_literal "6")) () ")")))) (; ";")) (expression_statement "iVar8 = param_1[10];" (assignment_expression "iVar8 = param_1[10]" (identifier "iVar8") (= "=") (subscript_expression "param_1[10]" (identifier "param_1") ([ "[") (number_literal "10") (] "]"))) (; ";")) (expression_statement "local_60 = uVar26;" (assignment_expression "local_60 = uVar26" (identifier "local_60") (= "=") (identifier "uVar26")) (; ";")) (if_statement "if (iVar17 == iVar21) goto LAB_002e2fb8;" (if "if") (parenthesized_expression "(iVar17 == iVar21)" (( "(") (binary_expression "iVar17 == iVar21" (identifier "iVar17") (== "==") (identifier "iVar21")) () ")")) (goto_statement "goto LAB_002e2fb8;" (goto "goto") (statement_identifier "LAB_002e2fb8") (; ";"))) (expression_statement "puVar9 = (uint *)(*(int *)(iVar8 + 8) + iVar17);" (assignment_expression "puVar9 = (uint *)(*(int *)(iVar8 + 8) + iVar17)" (identifier "puVar9") (= "=") (cast_expression "(uint *)(*(int *)(iVar8 + 8) + iVar17)" (( "(") (type_descriptor "uint *" (type_identifier "uint") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(*(int *)(iVar8 + 8) + iVar17)" (( "(") (binary_expression "*(int *)(iVar8 + 8) + iVar17" (pointer_expression "*(int *)(iVar8 + 8)" (* "*") (cast_expression "(int *)(iVar8 + 8)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar8 + 8)" (( "(") (binary_expression "iVar8 + 8" (identifier "iVar8") (+ "+") (number_literal "8")) () ")")))) (+ "+") (identifier "iVar17")) () ")")))) (; ";")) (expression_statement "uVar19 = puVar9[1];" (assignment_expression "uVar19 = puVar9[1]" (identifier "uVar19") (= "=") (subscript_expression "puVar9[1]" (identifier "puVar9") ([ "[") (number_literal "1") (] "]"))) (; ";")) (expression_statement "uVar22 = *puVar9;" (assignment_expression "uVar22 = *puVar9" (identifier "uVar22") (= "=") (pointer_expression "*puVar9" (* "*") (identifier "puVar9"))) (; ";")) (if_statement "if (uVar19 != 0x16) goto LAB_002e2dd0;" (if "if") (parenthesized_expression "(uVar19 != 0x16)" (( "(") (binary_expression "uVar19 != 0x16" (identifier "uVar19") (!= "!=") (number_literal "0x16")) () ")")) (goto_statement "goto LAB_002e2dd0;" (goto "goto") (statement_identifier "LAB_002e2dd0") (; ";"))) (labeled_statement "LAB_002e31a8:\n        uVar19 = (uint)*(byte *)local_44;" (statement_identifier "LAB_002e31a8") (: ":") (expression_statement "uVar19 = (uint)*(byte *)local_44;" (assignment_expression "uVar19 = (uint)*(byte *)local_44" (identifier "uVar19") (= "=") (binary_expression "(uint)*(byte *)local_44" (parenthesized_expression "(uint)" (( "(") (identifier "uint") () ")")) (* "*") (cast_expression "(byte *)local_44" (( "(") (type_descriptor "byte *" (type_identifier "byte") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "local_44")))) (; ";"))) (expression_statement "puVar9 = (uint *)((int)local_44 + 1);" (assignment_expression "puVar9 = (uint *)((int)local_44 + 1)" (identifier "puVar9") (= "=") (cast_expression "(uint *)((int)local_44 + 1)" (( "(") (type_descriptor "uint *" (type_identifier "uint") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "((int)local_44 + 1)" (( "(") (binary_expression "(int)local_44 + 1" (cast_expression "(int)local_44" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "local_44")) (+ "+") (number_literal "1")) () ")")))) (; ";")) (if_statement "if ((char)*(byte *)local_44 < '\0') {\n          local_60 = uVar26;\n          (*(code *)PTR_read_unsigned_LEB_128_x_004c2980)(puVar9,&local_48,uVar19);\n          puVar9 = (uint *)((int)local_44 + local_48);\n          uVar19 = extraout_v1;\n          uVar26 = local_60;\n        }\n        else {\n          local_48 = 1;\n        }" (if "if") (parenthesized_expression "((char)*(byte *)local_44 < '\0')" (( "(") (binary_expression "(char)*(byte *)local_44 < '\0'" (cast_expression "(char)*(byte *)local_44" (( "(") (type_descriptor "char" (primitive_type "char")) () ")") (pointer_expression "*(byte *)local_44" (* "*") (cast_expression "(byte *)local_44" (( "(") (type_descriptor "byte *" (type_identifier "byte") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "local_44")))) (< "<") (char_literal "'\0'" (' "'") (escape_sequence "\0") (' "'"))) () ")")) (compound_statement "{\n          local_60 = uVar26;\n          (*(code *)PTR_read_unsigned_LEB_128_x_004c2980)(puVar9,&local_48,uVar19);\n          puVar9 = (uint *)((int)local_44 + local_48);\n          uVar19 = extraout_v1;\n          uVar26 = local_60;\n        }" ({ "{") (expression_statement "local_60 = uVar26;" (assignment_expression "local_60 = uVar26" (identifier "local_60") (= "=") (identifier "uVar26")) (; ";")) (expression_statement "(*(code *)PTR_read_unsigned_LEB_128_x_004c2980)(puVar9,&local_48,uVar19);" (call_expression "(*(code *)PTR_read_unsigned_LEB_128_x_004c2980)(puVar9,&local_48,uVar19)" (parenthesized_expression "(*(code *)PTR_read_unsigned_LEB_128_x_004c2980)" (( "(") (pointer_expression "*(code *)PTR_read_unsigned_LEB_128_x_004c2980" (* "*") (cast_expression "(code *)PTR_read_unsigned_LEB_128_x_004c2980" (( "(") (type_descriptor "code *" (type_identifier "code") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "PTR_read_unsigned_LEB_128_x_004c2980"))) () ")")) (argument_list "(puVar9,&local_48,uVar19)" (( "(") (identifier "puVar9") (, ",") (pointer_expression "&local_48" (& "&") (identifier "local_48")) (, ",") (identifier "uVar19") () ")"))) (; ";")) (expression_statement "puVar9 = (uint *)((int)local_44 + local_48);" (assignment_expression "puVar9 = (uint *)((int)local_44 + local_48)" (identifier "puVar9") (= "=") (cast_expression "(uint *)((int)local_44 + local_48)" (( "(") (type_descriptor "uint *" (type_identifier "uint") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "((int)local_44 + local_48)" (( "(") (binary_expression "(int)local_44 + local_48" (cast_expression "(int)local_44" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "local_44")) (+ "+") (identifier "local_48")) () ")")))) (; ";")) (expression_statement "uVar19 = extraout_v1;" (assignment_expression "uVar19 = extraout_v1" (identifier "uVar19") (= "=") (identifier "extraout_v1")) (; ";")) (expression_statement "uVar26 = local_60;" (assignment_expression "uVar26 = local_60" (identifier "uVar26") (= "=") (identifier "local_60")) (; ";")) (} "}")) (else_clause "else {\n          local_48 = 1;\n        }" (else "else") (compound_statement "{\n          local_48 = 1;\n        }" ({ "{") (expression_statement "local_48 = 1;" (assignment_expression "local_48 = 1" (identifier "local_48") (= "=") (number_literal "1")) (; ";")) (} "}")))) (expression_statement "puVar11 = (uint *)((int)puVar9 - iVar20);" (assignment_expression "puVar11 = (uint *)((int)puVar9 - iVar20)" (identifier "puVar11") (= "=") (cast_expression "(uint *)((int)puVar9 - iVar20)" (( "(") (type_descriptor "uint *" (type_identifier "uint") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "((int)puVar9 - iVar20)" (( "(") (binary_expression "(int)puVar9 - iVar20" (cast_expression "(int)puVar9" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "puVar9")) (- "-") (identifier "iVar20")) () ")")))) (; ";")) (expression_statement "puVar18 = (uint *)((int)puVar11 + param_1[3]);" (assignment_expression "puVar18 = (uint *)((int)puVar11 + param_1[3])" (identifier "puVar18") (= "=") (cast_expression "(uint *)((int)puVar11 + param_1[3])" (( "(") (type_descriptor "uint *" (type_identifier "uint") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "((int)puVar11 + param_1[3])" (( "(") (binary_expression "(int)puVar11 + param_1[3]" (cast_expression "(int)puVar11" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "puVar11")) (+ "+") (subscript_expression "param_1[3]" (identifier "param_1") ([ "[") (number_literal "3") (] "]"))) () ")")))) (; ";")) (expression_statement "iVar8 = (uint)(puVar18 < puVar11) + ((int)puVar11 >> 0x1f) + param_1[2];" (assignment_expression "iVar8 = (uint)(puVar18 < puVar11) + ((int)puVar11 >> 0x1f) + param_1[2]" (identifier "iVar8") (= "=") (binary_expression "(uint)(puVar18 < puVar11) + ((int)puVar11 >> 0x1f) + param_1[2]" (binary_expression "(uint)(puVar18 < puVar11) + ((int)puVar11 >> 0x1f)" (call_expression "(uint)(puVar18 < puVar11)" (parenthesized_expression "(uint)" (( "(") (identifier "uint") () ")")) (argument_list "(puVar18 < puVar11)" (( "(") (binary_expression "puVar18 < puVar11" (identifier "puVar18") (< "<") (identifier "puVar11")) () ")"))) (+ "+") (parenthesized_expression "((int)puVar11 >> 0x1f)" (( "(") (binary_expression "(int)puVar11 >> 0x1f" (cast_expression "(int)puVar11" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "puVar11")) (>> ">>") (number_literal "0x1f")) () ")"))) (+ "+") (subscript_expression "param_1[2]" (identifier "param_1") ([ "[") (number_literal "2") (] "]")))) (; ";")) (expression_statement "local_64 = uVar19;" (assignment_expression "local_64 = uVar19" (identifier "local_64") (= "=") (identifier "uVar19")) (; ";")) (expression_statement "local_44 = puVar9;" (assignment_expression "local_44 = puVar9" (identifier "local_44") (= "=") (identifier "puVar9")) (; ";")) (if_statement "if (uVar19 != 0xe) break;" (if "if") (parenthesized_expression "(uVar19 != 0xe)" (( "(") (binary_expression "uVar19 != 0xe" (identifier "uVar19") (!= "!=") (number_literal "0xe")) () ")")) (break_statement "break;" (break "break") (; ";"))) (labeled_statement "LAB_002e31fc:\n        local_58 = 0;" (statement_identifier "LAB_002e31fc") (: ":") (expression_statement "local_58 = 0;" (assignment_expression "local_58 = 0" (identifier "local_58") (= "=") (number_literal "0")) (; ";"))) (expression_statement "iVar8 = *param_1;" (assignment_expression "iVar8 = *param_1" (identifier "iVar8") (= "=") (pointer_expression "*param_1" (* "*") (identifier "param_1"))) (; ";")) (expression_statement "local_68 = uVar22;" (assignment_expression "local_68 = uVar22" (identifier "local_68") (= "=") (identifier "uVar22")) (; ";")) (expression_statement "local_30 = puVar18;" (assignment_expression "local_30 = puVar18" (identifier "local_30") (= "=") (identifier "puVar18")) (; ";")) (expression_statement "local_60 = uVar26;" (assignment_expression "local_60 = uVar26" (identifier "local_60") (= "=") (identifier "uVar26")) (; ";")) (if_statement "if (*(int *)(iVar8 + 0x48) == 4) {\n          pcVar25 = *(code **)(**(int **)(iVar8 + 8) + 0xc);\n          if (pcVar25 == (code *)PTR_is_big_endian_004c2950) {\n            iVar8 = (**(code **)(**(int **)(iVar8 + 8) + 0xe8))();\n          }\n          else {\n            iVar8 = (*pcVar25)();\n          }\n          uVar19 = *local_44;\n          if (iVar8 == 0) {\n            uVar19 = (((uVar19 >> 0x10) << 0x18 | (uVar19 >> 0x18) << 0x10) >> 0x10) +\n                     ((uVar19 & 0xff) << 8 | uVar19 >> 8 & 0xff) * 0x10000;\n          }\n          local_44 = local_44 + 1;\n          uVar26 = (ulonglong)uVar19;\n        }\n        else {\n          uVar26 = (*local_34)(iVar8,&local_44);\n        }" (if "if") (parenthesized_expression "(*(int *)(iVar8 + 0x48) == 4)" (( "(") (binary_expression "*(int *)(iVar8 + 0x48) == 4" (pointer_expression "*(int *)(iVar8 + 0x48)" (* "*") (cast_expression "(int *)(iVar8 + 0x48)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar8 + 0x48)" (( "(") (binary_expression "iVar8 + 0x48" (identifier "iVar8") (+ "+") (number_literal "0x48")) () ")")))) (== "==") (number_literal "4")) () ")")) (compound_statement "{\n          pcVar25 = *(code **)(**(int **)(iVar8 + 8) + 0xc);\n          if (pcVar25 == (code *)PTR_is_big_endian_004c2950) {\n            iVar8 = (**(code **)(**(int **)(iVar8 + 8) + 0xe8))();\n          }\n          else {\n            iVar8 = (*pcVar25)();\n          }\n          uVar19 = *local_44;\n          if (iVar8 == 0) {\n            uVar19 = (((uVar19 >> 0x10) << 0x18 | (uVar19 >> 0x18) << 0x10) >> 0x10) +\n                     ((uVar19 & 0xff) << 8 | uVar19 >> 8 & 0xff) * 0x10000;\n          }\n          local_44 = local_44 + 1;\n          uVar26 = (ulonglong)uVar19;\n        }" ({ "{") (expression_statement "pcVar25 = *(code **)(**(int **)(iVar8 + 8) + 0xc);" (assignment_expression "pcVar25 = *(code **)(**(int **)(iVar8 + 8) + 0xc)" (identifier "pcVar25") (= "=") (pointer_expression "*(code **)(**(int **)(iVar8 + 8) + 0xc)" (* "*") (cast_expression "(code **)(**(int **)(iVar8 + 8) + 0xc)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(**(int **)(iVar8 + 8) + 0xc)" (( "(") (binary_expression "**(int **)(iVar8 + 8) + 0xc" (pointer_expression "**(int **)(iVar8 + 8)" (* "*") (pointer_expression "*(int **)(iVar8 + 8)" (* "*") (cast_expression "(int **)(iVar8 + 8)" (( "(") (type_descriptor "int **" (primitive_type "int") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(iVar8 + 8)" (( "(") (binary_expression "iVar8 + 8" (identifier "iVar8") (+ "+") (number_literal "8")) () ")"))))) (+ "+") (number_literal "0xc")) () ")"))))) (; ";")) (if_statement "if (pcVar25 == (code *)PTR_is_big_endian_004c2950) {\n            iVar8 = (**(code **)(**(int **)(iVar8 + 8) + 0xe8))();\n          }\n          else {\n            iVar8 = (*pcVar25)();\n          }" (if "if") (parenthesized_expression "(pcVar25 == (code *)PTR_is_big_endian_004c2950)" (( "(") (binary_expression "pcVar25 == (code *)PTR_is_big_endian_004c2950" (identifier "pcVar25") (== "==") (cast_expression "(code *)PTR_is_big_endian_004c2950" (( "(") (type_descriptor "code *" (type_identifier "code") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "PTR_is_big_endian_004c2950"))) () ")")) (compound_statement "{\n            iVar8 = (**(code **)(**(int **)(iVar8 + 8) + 0xe8))();\n          }" ({ "{") (expression_statement "iVar8 = (**(code **)(**(int **)(iVar8 + 8) + 0xe8))();" (assignment_expression "iVar8 = (**(code **)(**(int **)(iVar8 + 8) + 0xe8))()" (identifier "iVar8") (= "=") (call_expression "(**(code **)(**(int **)(iVar8 + 8) + 0xe8))()" (parenthesized_expression "(**(code **)(**(int **)(iVar8 + 8) + 0xe8))" (( "(") (pointer_expression "**(code **)(**(int **)(iVar8 + 8) + 0xe8)" (* "*") (pointer_expression "*(code **)(**(int **)(iVar8 + 8) + 0xe8)" (* "*") (cast_expression "(code **)(**(int **)(iVar8 + 8) + 0xe8)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(**(int **)(iVar8 + 8) + 0xe8)" (( "(") (binary_expression "**(int **)(iVar8 + 8) + 0xe8" (pointer_expression "**(int **)(iVar8 + 8)" (* "*") (pointer_expression "*(int **)(iVar8 + 8)" (* "*") (cast_expression "(int **)(iVar8 + 8)" (( "(") (type_descriptor "int **" (primitive_type "int") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(iVar8 + 8)" (( "(") (binary_expression "iVar8 + 8" (identifier "iVar8") (+ "+") (number_literal "8")) () ")"))))) (+ "+") (number_literal "0xe8")) () ")"))))) () ")")) (argument_list "()" (( "(") () ")")))) (; ";")) (} "}")) (else_clause "else {\n            iVar8 = (*pcVar25)();\n          }" (else "else") (compound_statement "{\n            iVar8 = (*pcVar25)();\n          }" ({ "{") (expression_statement "iVar8 = (*pcVar25)();" (assignment_expression "iVar8 = (*pcVar25)()" (identifier "iVar8") (= "=") (call_expression "(*pcVar25)()" (parenthesized_expression "(*pcVar25)" (( "(") (pointer_expression "*pcVar25" (* "*") (identifier "pcVar25")) () ")")) (argument_list "()" (( "(") () ")")))) (; ";")) (} "}")))) (expression_statement "uVar19 = *local_44;" (assignment_expression "uVar19 = *local_44" (identifier "uVar19") (= "=") (pointer_expression "*local_44" (* "*") (identifier "local_44"))) (; ";")) (if_statement "if (iVar8 == 0) {\n            uVar19 = (((uVar19 >> 0x10) << 0x18 | (uVar19 >> 0x18) << 0x10) >> 0x10) +\n                     ((uVar19 & 0xff) << 8 | uVar19 >> 8 & 0xff) * 0x10000;\n          }" (if "if") (parenthesized_expression "(iVar8 == 0)" (( "(") (binary_expression "iVar8 == 0" (identifier "iVar8") (== "==") (number_literal "0")) () ")")) (compound_statement "{\n            uVar19 = (((uVar19 >> 0x10) << 0x18 | (uVar19 >> 0x18) << 0x10) >> 0x10) +\n                     ((uVar19 & 0xff) << 8 | uVar19 >> 8 & 0xff) * 0x10000;\n          }" ({ "{") (expression_statement "uVar19 = (((uVar19 >> 0x10) << 0x18 | (uVar19 >> 0x18) << 0x10) >> 0x10) +\n                     ((uVar19 & 0xff) << 8 | uVar19 >> 8 & 0xff) * 0x10000;" (assignment_expression "uVar19 = (((uVar19 >> 0x10) << 0x18 | (uVar19 >> 0x18) << 0x10) >> 0x10) +\n                     ((uVar19 & 0xff) << 8 | uVar19 >> 8 & 0xff) * 0x10000" (identifier "uVar19") (= "=") (binary_expression "(((uVar19 >> 0x10) << 0x18 | (uVar19 >> 0x18) << 0x10) >> 0x10) +\n                     ((uVar19 & 0xff) << 8 | uVar19 >> 8 & 0xff) * 0x10000" (parenthesized_expression "(((uVar19 >> 0x10) << 0x18 | (uVar19 >> 0x18) << 0x10) >> 0x10)" (( "(") (binary_expression "((uVar19 >> 0x10) << 0x18 | (uVar19 >> 0x18) << 0x10) >> 0x10" (parenthesized_expression "((uVar19 >> 0x10) << 0x18 | (uVar19 >> 0x18) << 0x10)" (( "(") (binary_expression "(uVar19 >> 0x10) << 0x18 | (uVar19 >> 0x18) << 0x10" (binary_expression "(uVar19 >> 0x10) << 0x18" (parenthesized_expression "(uVar19 >> 0x10)" (( "(") (binary_expression "uVar19 >> 0x10" (identifier "uVar19") (>> ">>") (number_literal "0x10")) () ")")) (<< "<<") (number_literal "0x18")) (| "|") (binary_expression "(uVar19 >> 0x18) << 0x10" (parenthesized_expression "(uVar19 >> 0x18)" (( "(") (binary_expression "uVar19 >> 0x18" (identifier "uVar19") (>> ">>") (number_literal "0x18")) () ")")) (<< "<<") (number_literal "0x10"))) () ")")) (>> ">>") (number_literal "0x10")) () ")")) (+ "+") (binary_expression "((uVar19 & 0xff) << 8 | uVar19 >> 8 & 0xff) * 0x10000" (parenthesized_expression "((uVar19 & 0xff) << 8 | uVar19 >> 8 & 0xff)" (( "(") (binary_expression "(uVar19 & 0xff) << 8 | uVar19 >> 8 & 0xff" (binary_expression "(uVar19 & 0xff) << 8" (parenthesized_expression "(uVar19 & 0xff)" (( "(") (binary_expression "uVar19 & 0xff" (identifier "uVar19") (& "&") (number_literal "0xff")) () ")")) (<< "<<") (number_literal "8")) (| "|") (binary_expression "uVar19 >> 8 & 0xff" (binary_expression "uVar19 >> 8" (identifier "uVar19") (>> ">>") (number_literal "8")) (& "&") (number_literal "0xff"))) () ")")) (* "*") (number_literal "0x10000")))) (; ";")) (} "}"))) (expression_statement "local_44 = local_44 + 1;" (assignment_expression "local_44 = local_44 + 1" (identifier "local_44") (= "=") (binary_expression "local_44 + 1" (identifier "local_44") (+ "+") (number_literal "1"))) (; ";")) (expression_statement "uVar26 = (ulonglong)uVar19;" (assignment_expression "uVar26 = (ulonglong)uVar19" (identifier "uVar26") (= "=") (cast_expression "(ulonglong)uVar19" (( "(") (type_descriptor "ulonglong" (type_identifier "ulonglong")) () ")") (identifier "uVar19"))) (; ";")) (} "}")) (else_clause "else {\n          uVar26 = (*local_34)(iVar8,&local_44);\n        }" (else "else") (compound_statement "{\n          uVar26 = (*local_34)(iVar8,&local_44);\n        }" ({ "{") (expression_statement "uVar26 = (*local_34)(iVar8,&local_44);" (assignment_expression "uVar26 = (*local_34)(iVar8,&local_44)" (identifier "uVar26") (= "=") (call_expression "(*local_34)(iVar8,&local_44)" (parenthesized_expression "(*local_34)" (( "(") (pointer_expression "*local_34" (* "*") (identifier "local_34")) () ")")) (argument_list "(iVar8,&local_44)" (( "(") (identifier "iVar8") (, ",") (pointer_expression "&local_44" (& "&") (identifier "local_44")) () ")")))) (; ";")) (} "}")))) (expression_statement "local_50 = uVar26;" (assignment_expression "local_50 = uVar26" (identifier "local_50") (= "=") (identifier "uVar26")) (; ";")) (expression_statement "local_58 = (*local_3c)(*param_1);" (assignment_expression "local_58 = (*local_3c)(*param_1)" (identifier "local_58") (= "=") (call_expression "(*local_3c)(*param_1)" (parenthesized_expression "(*local_3c)" (( "(") (pointer_expression "*local_3c" (* "*") (identifier "local_3c")) () ")")) (argument_list "(*param_1)" (( "(") (pointer_expression "*param_1" (* "*") (identifier "param_1")) () ")")))) (; ";")) (expression_statement "uVar7 = local_50;" (assignment_expression "uVar7 = local_50" (identifier "uVar7") (= "=") (identifier "local_50")) (; ";")) (if_statement "if (uVar22 != 0x31) {\n          uVar26 = local_50;\n          if (uVar22 < 0x32) {\n            if ((uVar22 != 1) && (uVar22 == 3)) {\nLAB_002e3284:\n              param_1[0x16] = local_58;\n              *(ulonglong *)(param_1 + 0x10) = uVar26;\n              uVar7 = uVar26;\n            }\n          }\n          else {\n            if (uVar22 == 0x6e) {\nLAB_002e387c:\n              param_1[0x16] = local_58;\n            }\n            else {\n              if (uVar22 != 0x2007) goto LAB_002e313c;\n              param_1[0x16] = local_58;\n            }\n            *(ulonglong *)(param_1 + 0x14) = uVar26;\n            uVar7 = uVar26;\n          }\n        }" (if "if") (parenthesized_expression "(uVar22 != 0x31)" (( "(") (binary_expression "uVar22 != 0x31" (identifier "uVar22") (!= "!=") (number_literal "0x31")) () ")")) (compound_statement "{\n          uVar26 = local_50;\n          if (uVar22 < 0x32) {\n            if ((uVar22 != 1) && (uVar22 == 3)) {\nLAB_002e3284:\n              param_1[0x16] = local_58;\n              *(ulonglong *)(param_1 + 0x10) = uVar26;\n              uVar7 = uVar26;\n            }\n          }\n          else {\n            if (uVar22 == 0x6e) {\nLAB_002e387c:\n              param_1[0x16] = local_58;\n            }\n            else {\n              if (uVar22 != 0x2007) goto LAB_002e313c;\n              param_1[0x16] = local_58;\n            }\n            *(ulonglong *)(param_1 + 0x14) = uVar26;\n            uVar7 = uVar26;\n          }\n        }" ({ "{") (expression_statement "uVar26 = local_50;" (assignment_expression "uVar26 = local_50" (identifier "uVar26") (= "=") (identifier "local_50")) (; ";")) (if_statement "if (uVar22 < 0x32) {\n            if ((uVar22 != 1) && (uVar22 == 3)) {\nLAB_002e3284:\n              param_1[0x16] = local_58;\n              *(ulonglong *)(param_1 + 0x10) = uVar26;\n              uVar7 = uVar26;\n            }\n          }\n          else {\n            if (uVar22 == 0x6e) {\nLAB_002e387c:\n              param_1[0x16] = local_58;\n            }\n            else {\n              if (uVar22 != 0x2007) goto LAB_002e313c;\n              param_1[0x16] = local_58;\n            }\n            *(ulonglong *)(param_1 + 0x14) = uVar26;\n            uVar7 = uVar26;\n          }" (if "if") (parenthesized_expression "(uVar22 < 0x32)" (( "(") (binary_expression "uVar22 < 0x32" (identifier "uVar22") (< "<") (number_literal "0x32")) () ")")) (compound_statement "{\n            if ((uVar22 != 1) && (uVar22 == 3)) {\nLAB_002e3284:\n              param_1[0x16] = local_58;\n              *(ulonglong *)(param_1 + 0x10) = uVar26;\n              uVar7 = uVar26;\n            }\n          }" ({ "{") (if_statement "if ((uVar22 != 1) && (uVar22 == 3)) {\nLAB_002e3284:\n              param_1[0x16] = local_58;\n              *(ulonglong *)(param_1 + 0x10) = uVar26;\n              uVar7 = uVar26;\n            }" (if "if") (parenthesized_expression "((uVar22 != 1) && (uVar22 == 3))" (( "(") (binary_expression "(uVar22 != 1) && (uVar22 == 3)" (parenthesized_expression "(uVar22 != 1)" (( "(") (binary_expression "uVar22 != 1" (identifier "uVar22") (!= "!=") (number_literal "1")) () ")")) (&& "&&") (parenthesized_expression "(uVar22 == 3)" (( "(") (binary_expression "uVar22 == 3" (identifier "uVar22") (== "==") (number_literal "3")) () ")"))) () ")")) (compound_statement "{\nLAB_002e3284:\n              param_1[0x16] = local_58;\n              *(ulonglong *)(param_1 + 0x10) = uVar26;\n              uVar7 = uVar26;\n            }" ({ "{") (labeled_statement "LAB_002e3284:\n              param_1[0x16] = local_58;" (statement_identifier "LAB_002e3284") (: ":") (expression_statement "param_1[0x16] = local_58;" (assignment_expression "param_1[0x16] = local_58" (subscript_expression "param_1[0x16]" (identifier "param_1") ([ "[") (number_literal "0x16") (] "]")) (= "=") (identifier "local_58")) (; ";"))) (expression_statement "*(ulonglong *)(param_1 + 0x10) = uVar26;" (assignment_expression "*(ulonglong *)(param_1 + 0x10) = uVar26" (pointer_expression "*(ulonglong *)(param_1 + 0x10)" (* "*") (cast_expression "(ulonglong *)(param_1 + 0x10)" (( "(") (type_descriptor "ulonglong *" (type_identifier "ulonglong") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_1 + 0x10)" (( "(") (binary_expression "param_1 + 0x10" (identifier "param_1") (+ "+") (number_literal "0x10")) () ")")))) (= "=") (identifier "uVar26")) (; ";")) (expression_statement "uVar7 = uVar26;" (assignment_expression "uVar7 = uVar26" (identifier "uVar7") (= "=") (identifier "uVar26")) (; ";")) (} "}"))) (} "}")) (else_clause "else {\n            if (uVar22 == 0x6e) {\nLAB_002e387c:\n              param_1[0x16] = local_58;\n            }\n            else {\n              if (uVar22 != 0x2007) goto LAB_002e313c;\n              param_1[0x16] = local_58;\n            }\n            *(ulonglong *)(param_1 + 0x14) = uVar26;\n            uVar7 = uVar26;\n          }" (else "else") (compound_statement "{\n            if (uVar22 == 0x6e) {\nLAB_002e387c:\n              param_1[0x16] = local_58;\n            }\n            else {\n              if (uVar22 != 0x2007) goto LAB_002e313c;\n              param_1[0x16] = local_58;\n            }\n            *(ulonglong *)(param_1 + 0x14) = uVar26;\n            uVar7 = uVar26;\n          }" ({ "{") (if_statement "if (uVar22 == 0x6e) {\nLAB_002e387c:\n              param_1[0x16] = local_58;\n            }\n            else {\n              if (uVar22 != 0x2007) goto LAB_002e313c;\n              param_1[0x16] = local_58;\n            }" (if "if") (parenthesized_expression "(uVar22 == 0x6e)" (( "(") (binary_expression "uVar22 == 0x6e" (identifier "uVar22") (== "==") (number_literal "0x6e")) () ")")) (compound_statement "{\nLAB_002e387c:\n              param_1[0x16] = local_58;\n            }" ({ "{") (labeled_statement "LAB_002e387c:\n              param_1[0x16] = local_58;" (statement_identifier "LAB_002e387c") (: ":") (expression_statement "param_1[0x16] = local_58;" (assignment_expression "param_1[0x16] = local_58" (subscript_expression "param_1[0x16]" (identifier "param_1") ([ "[") (number_literal "0x16") (] "]")) (= "=") (identifier "local_58")) (; ";"))) (} "}")) (else_clause "else {\n              if (uVar22 != 0x2007) goto LAB_002e313c;\n              param_1[0x16] = local_58;\n            }" (else "else") (compound_statement "{\n              if (uVar22 != 0x2007) goto LAB_002e313c;\n              param_1[0x16] = local_58;\n            }" ({ "{") (if_statement "if (uVar22 != 0x2007) goto LAB_002e313c;" (if "if") (parenthesized_expression "(uVar22 != 0x2007)" (( "(") (binary_expression "uVar22 != 0x2007" (identifier "uVar22") (!= "!=") (number_literal "0x2007")) () ")")) (goto_statement "goto LAB_002e313c;" (goto "goto") (statement_identifier "LAB_002e313c") (; ";"))) (expression_statement "param_1[0x16] = local_58;" (assignment_expression "param_1[0x16] = local_58" (subscript_expression "param_1[0x16]" (identifier "param_1") ([ "[") (number_literal "0x16") (] "]")) (= "=") (identifier "local_58")) (; ";")) (} "}")))) (expression_statement "*(ulonglong *)(param_1 + 0x14) = uVar26;" (assignment_expression "*(ulonglong *)(param_1 + 0x14) = uVar26" (pointer_expression "*(ulonglong *)(param_1 + 0x14)" (* "*") (cast_expression "(ulonglong *)(param_1 + 0x14)" (( "(") (type_descriptor "ulonglong *" (type_identifier "ulonglong") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_1 + 0x14)" (( "(") (binary_expression "param_1 + 0x14" (identifier "param_1") (+ "+") (number_literal "0x14")) () ")")))) (= "=") (identifier "uVar26")) (; ";")) (expression_statement "uVar7 = uVar26;" (assignment_expression "uVar7 = uVar26" (identifier "uVar7") (= "=") (identifier "uVar26")) (; ";")) (} "}")))) (} "}"))) (labeled_statement "LAB_002e313c:\n        puVar9 = (uint *)param_1[0xc];" (statement_identifier "LAB_002e313c") (: ":") (expression_statement "puVar9 = (uint *)param_1[0xc];" (assignment_expression "puVar9 = (uint *)param_1[0xc]" (identifier "puVar9") (= "=") (cast_expression "(uint *)param_1[0xc]" (( "(") (type_descriptor "uint *" (type_identifier "uint") (abstract_pointer_declarator "*" (* "*"))) () ")") (subscript_expression "param_1[0xc]" (identifier "param_1") ([ "[") (number_literal "0xc") (] "]")))) (; ";"))) (expression_statement "uVar26 = uVar7;" (assignment_expression "uVar26 = uVar7" (identifier "uVar26") (= "=") (identifier "uVar7")) (; ";")) (} "}"))) (} "}")) (while "while") (parenthesized_expression "( true )" (( "(") (true "true") () ")")) (; ";")) (} "}"))))) (expression_statement "uVar22 = (int)local_44 - iVar20;" (assignment_expression "uVar22 = (int)local_44 - iVar20" (identifier "uVar22") (= "=") (binary_expression "(int)local_44 - iVar20" (cast_expression "(int)local_44" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "local_44")) (- "-") (identifier "iVar20"))) (; ";")) (expression_statement "uVar19 = uVar22 + iVar17;" (assignment_expression "uVar19 = uVar22 + iVar17" (identifier "uVar19") (= "=") (binary_expression "uVar22 + iVar17" (identifier "uVar22") (+ "+") (identifier "iVar17"))) (; ";")) (expression_statement "iVar17 = (uint)(uVar19 < uVar22) + ((int)uVar22 >> 0x1f) + param_1[2];" (assignment_expression "iVar17 = (uint)(uVar19 < uVar22) + ((int)uVar22 >> 0x1f) + param_1[2]" (identifier "iVar17") (= "=") (binary_expression "(uint)(uVar19 < uVar22) + ((int)uVar22 >> 0x1f) + param_1[2]" (binary_expression "(uint)(uVar19 < uVar22) + ((int)uVar22 >> 0x1f)" (call_expression "(uint)(uVar19 < uVar22)" (parenthesized_expression "(uint)" (( "(") (identifier "uint") () ")")) (argument_list "(uVar19 < uVar22)" (( "(") (binary_expression "uVar19 < uVar22" (identifier "uVar19") (< "<") (identifier "uVar22")) () ")"))) (+ "+") (parenthesized_expression "((int)uVar22 >> 0x1f)" (( "(") (binary_expression "(int)uVar22 >> 0x1f" (cast_expression "(int)uVar22" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "uVar22")) (>> ">>") (number_literal "0x1f")) () ")"))) (+ "+") (subscript_expression "param_1[2]" (identifier "param_1") ([ "[") (number_literal "2") (] "]")))) (; ";")) (if_statement "if (*(int *)(iVar8 + 4) < 0) {\n    param_1[6] = iVar17;\n    param_1[7] = uVar19;\n  }\n  else {\n    param_1[8] = iVar17;\n    param_1[9] = uVar19;\n  }" (if "if") (parenthesized_expression "(*(int *)(iVar8 + 4) < 0)" (( "(") (binary_expression "*(int *)(iVar8 + 4) < 0" (pointer_expression "*(int *)(iVar8 + 4)" (* "*") (cast_expression "(int *)(iVar8 + 4)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar8 + 4)" (( "(") (binary_expression "iVar8 + 4" (identifier "iVar8") (+ "+") (number_literal "4")) () ")")))) (< "<") (number_literal "0")) () ")")) (compound_statement "{\n    param_1[6] = iVar17;\n    param_1[7] = uVar19;\n  }" ({ "{") (expression_statement "param_1[6] = iVar17;" (assignment_expression "param_1[6] = iVar17" (subscript_expression "param_1[6]" (identifier "param_1") ([ "[") (number_literal "6") (] "]")) (= "=") (identifier "iVar17")) (; ";")) (expression_statement "param_1[7] = uVar19;" (assignment_expression "param_1[7] = uVar19" (subscript_expression "param_1[7]" (identifier "param_1") ([ "[") (number_literal "7") (] "]")) (= "=") (identifier "uVar19")) (; ";")) (} "}")) (else_clause "else {\n    param_1[8] = iVar17;\n    param_1[9] = uVar19;\n  }" (else "else") (compound_statement "{\n    param_1[8] = iVar17;\n    param_1[9] = uVar19;\n  }" ({ "{") (expression_statement "param_1[8] = iVar17;" (assignment_expression "param_1[8] = iVar17" (subscript_expression "param_1[8]" (identifier "param_1") ([ "[") (number_literal "8") (] "]")) (= "=") (identifier "iVar17")) (; ";")) (expression_statement "param_1[9] = uVar19;" (assignment_expression "param_1[9] = uVar19" (subscript_expression "param_1[9]" (identifier "param_1") ([ "[") (number_literal "9") (] "]")) (= "=") (identifier "uVar19")) (; ";")) (} "}")))) (expression_statement "*(undefined1 *)(param_1 + 0xe) = 1;" (assignment_expression "*(undefined1 *)(param_1 + 0xe) = 1" (pointer_expression "*(undefined1 *)(param_1 + 0xe)" (* "*") (cast_expression "(undefined1 *)(param_1 + 0xe)" (( "(") (type_descriptor "undefined1 *" (type_identifier "undefined1") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_1 + 0xe)" (( "(") (binary_expression "param_1 + 0xe" (identifier "param_1") (+ "+") (number_literal "0xe")) () ")")))) (= "=") (number_literal "1")) (; ";")) (return_statement "return 1;" (return "return") (number_literal "1") (; ";")) (} "}")))

/* WARNING: Struct "Output_section_data": ignoring overlapping field "output_section_" */
/* WARNING: Struct "Output_section": ignoring overlapping field "name_" */
/* DWARF original prototype: bool read_attributes(Dwarf_die * this) */

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

{
  type_2 var_33;
  type_3 var_22;
  type_3 var_28;
  type_3 var_23;
  type_3 var_29;
  type_4 uVar6;
  type_5 aVar7;
  type_5 aVar8;
  type_5 aVar9;
  type_5 aVar10;
  type_5 aVar11;
  type_5 aVar12;
  type_6 *var_1;
  type_3 *puVar14;
  type_7 *var_16;
  type_8 **pp_Var16;
  int var_31;
  type_7 *var_35;
  type_9 var_12;
  type_10 uVar20;
  bool bVar21;
  type_3 extraout_v1;
  type_11 extraout_v1_00;
  type_12 *pDVar22;
  type_3 var_21;
  type_13 *var_36;
  type_1 *this_00;
  char *pcVar25;
  type_14 __position;
  type_3 var_24;
  type_11 aVar27;
  type_7 *var_17;
  type_3 var_9;
  type_7 *var_5;
  int var_3;
  type_3 var_25;
  type_9 var_10;
  int var_4;
  type_9 var_11;
  int var_20;
  type_8 *var_19;
  type_15 uVar38;
  type_5 aVar39;
  type_5 aVar40;
  type_16 attr_value;
  type_17 var_14;
  size_t var_18;
  type_7 *var_15;
  type_11 local_40;
  type_18 *local_3c;
  type_19 *local_38;
  type_18 *local_34;
  type_7 *var_32;
  
  var_1 = this->abbrev_code_;
  if (var_1 == (type_6 *)0x0) {
    var_36 = var_2 + 0x7090;
    (*(type_18 *)PTR_do_gold_unreachable_004c1a30)
              (var_36,0x2a9,var_2 + 0x7414);
  }
  else {
    pDVar22 = this->dwinfo_;
    var_4 = (int)this->die_offset_;
    var_3 = (int)pDVar22->cu_offset_;
    var_5 = pDVar22->buffer_ + var_3 + var_4;
    if (pDVar22->buffer_ + var_3 + (int)pDVar22->cu_length_ < var_5 + 1) {
      Dwarf_info_reader::var_6(pDVar22);
      return false;
    }
    local_38 = &this->attributes_;
    if (var_5 == (type_7 *)0x0) {
      return false;
    }
    var_3 = (int)(var_1->attributes).
                  super__Vector_base<gold::Dwarf_abbrev_table::var_7,_std::allocator<gold::Dwarf_abbrev_table::var_7>var_8>
                  ._M_impl._M_finish -
             (int)(var_1->attributes).
                  super__Vector_base<gold::Dwarf_abbrev_table::var_7,_std::allocator<gold::Dwarf_abbrev_table::var_7>var_8>
                  ._M_impl._M_start;
    var_15 = var_5 + (int)this->attr_offset_;
    var_9 = var_3 >> 3;
    var_36 = PTR_s__s_004c1a50;
    if (var_9 < 0xaaaaaab) {
      var_10 = (this->attributes_).
                super__Vector_base<gold::Dwarf_die::type_16,_std::allocator<gold::Dwarf_die::type_16>var_8>
                ._M_impl._M_start;
      if ((type_3)(((int)(this->attributes_).
                       super__Vector_base<gold::type_1::type_16,_std::allocator<gold::type_1::type_16>var_8>
                       ._M_impl._M_end_of_storage - (int)var_10 >> 3) * -0x55555555) < var_9) {
        aVar27 = (type_11)
                 (this->attributes_).
                 super__Vector_base<gold::type_1::type_16,_std::allocator<gold::type_1::type_16>var_8>
                 ._M_impl._M_finish;
        var_4 = aVar27.shndx - (int)var_10;
        if (var_9 == 0) {
          var_12 = (type_9)0x0;
          var_11 = var_10;
        }
        else {
          local_40 = aVar27;
          var_12 = (type_9)(*(type_18 *)PTR_operator_new_004c13a8)(var_9 * 0x18);
          aVar27 = local_40;
          var_11 = (this->attributes_).
                    super__Vector_base<gold::Dwarf_die::type_16,_std::allocator<gold::Dwarf_die::type_16>var_8>
                    ._M_impl._M_start;
        }
        if (var_10 != (type_9)aVar27.shndx) {
          (*(type_18 *)PTR_memmove_004c5af8)(var_12,var_10,var_4);
        }
        if (var_11 != (type_9)0x0) {
          (*(type_18 *)PTR_operator_delete_004c12fc)(var_11);
        }
        var_1 = this->abbrev_code_;
        (this->attributes_).
        super__Vector_base<gold::Dwarf_die::type_16,_std::allocator<gold::Dwarf_die::type_16>var_8>
        ._M_impl._M_start = var_12;
        (this->attributes_).
        super__Vector_base<gold::Dwarf_die::type_16,_std::allocator<gold::Dwarf_die::type_16>var_8>
        ._M_impl._M_finish = (type_9)((int)var_12 + var_4);
        (this->attributes_).
        super__Vector_base<gold::Dwarf_die::type_16,_std::allocator<gold::Dwarf_die::type_16>var_8>
        ._M_impl._M_end_of_storage = var_12 + var_9;
        if (var_9 != 0) goto LAB_002e2d90;
LAB_002e2fb8:
        if (var_1 == (type_6 *)0x0) {
          this_00 = (type_1 *)(var_2 + 0x7108);
          (*(type_18 *)PTR_do_gold_unreachable_004c1a30)
                    (this_00,0x206,var_2 + 0x7404);
          if (this_00->attributes_read_ == false) {
            bVar21 = function_1(this_00);
            return bVar21;
          }
          return this_00->attributes_read_;
        }
        var_4 = (int)this->die_offset_;
      }
      else if (var_9 != 0) {
LAB_002e2d90:
        local_3c = (type_18 *)PTR_lookup_reloc_004c2994;
        var_4 = 0;
        local_34 = (type_18 *)PTR_read_from_pointer<64>var_13;
        local_40.shndx = (type_3)&var_14;
LAB_002e2db4:
        puVar14 = (type_3 *)((int)&((var_1->attributes).
                                  super__Vector_base<gold::Dwarf_abbrev_table::var_7,_std::allocator<gold::Dwarf_abbrev_table::var_7>var_8>
                                  ._M_impl._M_start)->attr + var_4);
        var_9 = puVar14[1];
        var_25 = *puVar14;
        aVar40 = attr_value.val;
        if (var_9 == 0x16) goto LAB_002e31a8;
LAB_002e2dd0:
        var_16 = var_15 + -(int)var_5;
        var_17 = var_16 + (int)this->die_offset_;
        var_20 = (type_3)(var_17 < var_16) + ((int)var_16 >> 0x1f) + *(int *)&this->die_offset_;
        attr_value.form = var_9;
        if (var_9 == 0xe) goto LAB_002e31fc;
        do {
          attr_value.val.intval._4_4_ = (type_20)aVar40.intval;
          attr_value.aux.shndx = 0;
          attr_value.attr = var_25;
          attr_value.form = var_9;
          attr_value.val = aVar40;
          if (0xe < var_9) {
            if (var_9 == 0x15) {
              if ((char)*var_15 < '\0') {
                aVar39.intval = (*(type_18 *)PTR_read_unsigned_LEB_128_x_004c2980)(var_15 + 1,&var_18);
                var_15 = var_15 + var_18;
              }
              else {
                aVar39.intval._0_7_ = 0;
                aVar39.intval._7_1_ = *var_15;
                var_18 = 1;
                var_15 = var_15 + 1;
              }
              goto joined_r0x002e3998;
            }
            if (0x15 < var_9) {
              if (var_9 == 0x19) {
                attr_value.val.intval._4_4_ = 1;
                attr_value.val.stringval = (char *)0x0;
              }
              else {
                if (var_9 < 0x1a) {
                  if (var_9 != 0x17) {
                    if (var_9 != 0x18) {
                      return false;
                    }
                    goto LAB_002e32bc;
                  }
                  pDVar22 = this->dwinfo_;
                  if (pDVar22->offset_size_ == 4) {
                    pp_Var16 = (pDVar22->object_->super_Object)._vptr_Object;
                    var_19 = pp_Var16[3];
                    if (var_19 == (type_8 *)PTR_is_big_endian_004c2950) {
                      var_32 = var_17;
                      var_20 = (*pp_Var16[0x3a])();
                    }
                    else {
                      var_32 = var_17;
                      var_20 = (*var_19)();
                    }
                    var_21 = *(type_3 *)var_15;
                    if (var_20 == 0) {
                      var_21 = (((var_21 >> 0x10) << 0x18 | (var_21 >> 0x18) << 0x10) >> 0x10) +
                               ((var_21 & 0xff) << 8 | var_21 >> 8 & 0xff) * 0x10000;
                    }
                    var_15 = var_15 + 4;
                    uVar38 = (type_15)var_21;
                  }
                  else {
                    var_32 = var_17;
                    uVar38 = (*local_34)(pDVar22,&var_15);
                  }
                  pDVar22 = this->dwinfo_;
                  goto LAB_002e3970;
                }
                if (var_9 != 0x20) {
                  if (var_9 < 0x20) {
                    return false;
                  }
                  if (1 < var_9 - 0x1f01) {
                    return false;
                  }
LAB_002e34d8:
                  if ((char)*var_15 < '\0') {
                    aVar40.intval = (*(type_18 *)PTR_read_unsigned_LEB_128_x_004c2980)(var_15 + 1,&var_18);
                    var_15 = var_15 + var_18;
                  }
                  else {
                    aVar40.intval._0_7_ = 0;
                    aVar40.intval._7_1_ = *var_15;
                    var_18 = 1;
                    var_15 = var_15 + 1;
                  }
                  goto LAB_002e382c;
                }
                pp_Var16 = (this->dwinfo_->object_->super_Object)._vptr_Object;
                var_19 = pp_Var16[3];
                if (var_19 == (type_8 *)PTR_is_big_endian_004c2950) {
                  var_20 = (*pp_Var16[0x3a])();
                }
                else {
                  var_20 = (*var_19)();
                }
                    /* WARNING: Load size is inaccurate */
                attr_value.val._4_4_ = var_15[4];
                    /* WARNING: Load size is inaccurate */
                attr_value.val.blockval = *var_15;
                if (var_20 == 0) {
                  var_21 = attr_value.val.uintval._4_4_ & 0xff;
                  var_24 = (type_3)attr_value.val.uintval._4_4_ >> 8;
                  var_22 = (type_3)attr_value.val.uintval._4_4_ >> 0x10;
                  var_23 = (type_3)attr_value.val.uintval._4_4_ >> 0x18;
                  attr_value.val.intval._4_4_ =
                       ((((type_3)attr_value.val.stringval >> 0x10) << 0x18 |
                        ((type_3)attr_value.val.stringval >> 0x18) << 0x10) >> 0x10) +
                       (((type_3)attr_value.val.stringval & 0xff) << 8 |
                       (type_3)attr_value.val.stringval >> 8 & 0xff) * 0x10000;
                  attr_value.val.stringval =
                       (char *)(((var_22 << 0x18 | var_23 << 0x10) >> 0x10) +
                               (var_21 << 8 | var_24 & 0xff) * 0x10000);
                }
                var_15 = var_15 + 8;
              }
              aVar39.stringval = attr_value.val.stringval;
              aVar39.intval._4_4_ = attr_value.val.intval._4_4_;
              aVar11.stringval = attr_value.val.stringval;
              aVar11.intval._4_4_ = attr_value.val.intval._4_4_;
              aVar7.stringval = attr_value.val.stringval;
              aVar7.intval._4_4_ = attr_value.val.intval._4_4_;
              if (var_25 == 0x6e) goto LAB_002e313c;
              aVar7 = aVar11;
              if (var_25 == 0x2007) goto LAB_002e313c;
              goto joined_r0x002e3124;
            }
            if (var_9 == 0x11) {
              var_16 = var_15 + 1;
              var_21 = var_26(0,*var_15);
              aVar39.stringval = (char *)0x0;
              aVar39.intval._4_4_ = var_21;
              aVar12.stringval = (char *)0x0;
              aVar12.uintval._4_4_ = var_21;
              aVar40.stringval = (char *)0x0;
              aVar40.uintval._4_4_ = var_21;
              aVar10.stringval = (char *)0x0;
              aVar10.uintval._4_4_ = var_21;
              aVar7.stringval = (char *)0x0;
              aVar7.uintval._4_4_ = var_21;
              aVar9.stringval = (char *)0x0;
              aVar9.uintval._4_4_ = var_21;
              var_15 = var_16;
              if (var_25 == 0x31) goto LAB_002e30bc;
              if (0x31 < var_25) {
                if ((var_25 != 0x6e) && (aVar40 = aVar12, var_25 != 0x2007)) {
                  if (var_25 != 0x47) goto LAB_002e313c;
                  *(type_20 *)&this->specification_ = 0;
                  *(type_3 *)((int)&this->specification_ + 4) = var_21;
                  aVar7 = aVar10;
                  goto LAB_002e313c;
                }
                goto LAB_002e3858;
              }
              if (var_25 == 1) {
                *(type_20 *)&this->sibling_offset_ = 0;
                *(type_3 *)((int)&this->sibling_offset_ + 4) = var_21;
                aVar7 = aVar9;
                goto LAB_002e313c;
              }
              goto joined_r0x002e3124;
            }
            if (var_9 < 0x12) {
              if (var_9 == 0xf) goto LAB_002e34d8;
              if (var_9 != 0x10) {
                return false;
              }
              pDVar22 = this->dwinfo_;
              var_21 = pDVar22->offset_size_;
              if (pDVar22->cu_version_ < 3) {
                var_21 = pDVar22->address_size_;
              }
              if (var_21 == 4) {
                pp_Var16 = (pDVar22->object_->super_Object)._vptr_Object;
                var_19 = pp_Var16[3];
                if (var_19 == (type_8 *)PTR_is_big_endian_004c2950) {
                  var_32 = var_17;
                  var_20 = (*pp_Var16[0x3a])();
                }
                else {
                  var_32 = var_17;
                  var_20 = (*var_19)();
                }
                var_21 = *(type_3 *)var_15;
                if (var_20 == 0) {
                  var_21 = (((var_21 >> 0x10) << 0x18 | (var_21 >> 0x18) << 0x10) >> 0x10) +
                           ((var_21 & 0xff) << 8 | var_21 >> 8 & 0xff) * 0x10000;
                }
                var_15 = var_15 + 4;
                uVar38 = (type_15)var_21;
              }
              else {
                var_32 = var_17;
                uVar38 = (*local_34)(pDVar22,&var_15);
              }
              var_14 = uVar38;
              attr_value.aux.shndx = (*local_3c)(this->dwinfo_);
              aVar39.refval = var_14;
            }
            else {
              if (var_9 == 0x13) {
                pp_Var16 = (this->dwinfo_->object_->super_Object)._vptr_Object;
                var_19 = pp_Var16[3];
                if (var_19 == (type_8 *)PTR_is_big_endian_004c2950) {
                  var_32 = var_17;
                  var_20 = (*pp_Var16[0x3a])();
                }
                else {
                  var_32 = var_17;
                  var_20 = (*var_19)();
                }
                var_21 = *(type_3 *)var_15;
                if (var_20 == 0) {
                  var_21 = (((var_21 >> 0x10) << 0x18 | (var_21 >> 0x18) << 0x10) >> 0x10) +
                           ((var_21 & 0xff) << 8 | var_21 >> 8 & 0xff) * 0x10000;
                }
                var_15 = var_15 + 4;
                pDVar22 = this->dwinfo_;
                uVar38 = (type_15)var_21;
              }
              else {
                if (var_9 < 0x14) {
                  pp_Var16 = (this->dwinfo_->object_->super_Object)._vptr_Object;
                  var_19 = pp_Var16[3];
                  if (var_19 == (type_8 *)PTR_is_big_endian_004c2950) {
                    var_20 = (*pp_Var16[0x3a])();
                  }
                  else {
                    var_20 = (*var_19)();
                  }
                  uVar6 = *(type_4 *)var_15;
                  if (var_20 == 0) {
                    uVar6 = var_27(var_15[1],*var_15);
                  }
                  aVar39.intval._0_6_ = 0;
                  aVar39.intval._6_2_ = uVar6;
                  var_15 = var_15 + 2;
                  goto joined_r0x002e3998;
                }
                pp_Var16 = (this->dwinfo_->object_->super_Object)._vptr_Object;
                var_19 = pp_Var16[3];
                if (var_19 == (type_8 *)PTR_is_big_endian_004c2950) {
                  var_32 = var_17;
                  var_20 = (*pp_Var16[0x3a])();
                }
                else {
                  var_32 = var_17;
                  var_20 = (*var_19)();
                }
                var_21 = *(type_3 *)(var_15 + 4);
                var_24 = *(type_3 *)var_15;
                if (var_20 == 0) {
                  var_22 = var_21 & 0xff;
                  var_23 = var_21 >> 8;
                  var_28 = var_21 >> 0x10;
                  var_29 = var_21 >> 0x18;
                  var_21 = (((var_24 >> 0x10) << 0x18 | (var_24 >> 0x18) << 0x10) >> 0x10) +
                           ((var_24 & 0xff) << 8 | var_24 >> 8 & 0xff) * 0x10000;
                  var_24 = ((var_28 << 0x18 | var_29 << 0x10) >> 0x10) +
                           (var_22 << 8 | var_23 & 0xff) * 0x10000;
                }
                uVar38 = var_30(var_24,var_21);
                var_15 = var_15 + 8;
                pDVar22 = this->dwinfo_;
              }
LAB_002e3970:
              var_14 = uVar38;
              attr_value.aux.shndx = (*local_3c)(pDVar22);
              aVar39.refval = var_14;
            }
joined_r0x002e3998:
            if (var_25 == 0x31) {
LAB_002e30bc:
              this->abstract_origin_ = (type_17)aVar39;
              aVar7 = aVar39;
              goto LAB_002e313c;
            }
            if (var_25 < 0x32) {
              aVar7 = aVar39;
              if (var_25 != 1) goto LAB_002e313c;
LAB_002e39b4:
              aVar7 = aVar39;
              if (attr_value.aux.shndx != 0) goto LAB_002e313c;
              this->sibling_offset_ = (type_17)aVar39;
              goto LAB_002e313c;
            }
            aVar40 = aVar39;
            if ((var_25 != 0x6e) && (var_25 != 0x2007)) {
LAB_002e339c:
              aVar7 = aVar39;
              if (var_25 != 0x47) goto LAB_002e313c;
              this->specification_ = (type_17)aVar39;
              goto LAB_002e313c;
            }
            goto LAB_002e3858;
          }
          if (var_9 == 7) {
            pp_Var16 = (this->dwinfo_->object_->super_Object)._vptr_Object;
            var_19 = pp_Var16[3];
            if (var_19 == (type_8 *)PTR_is_big_endian_004c2950) {
              var_32 = var_17;
              var_31 = (*pp_Var16[0x3a])();
            }
            else {
              var_32 = var_17;
              var_31 = (*var_19)();
            }
            var_14._4_4_ = *(char **)(var_15 + 4);
            pcVar25 = *(char **)var_15;
            if (var_31 == 0) {
              var_21 = (type_3)var_14._4_4_ & 0xff;
              var_24 = (type_3)var_14._4_4_ >> 8;
              var_22 = (type_3)var_14._4_4_ >> 0x10;
              var_23 = (type_3)var_14._4_4_ >> 0x18;
              var_14._4_4_ =
                   (char *)(((((type_3)pcVar25 >> 0x10) << 0x18 | ((type_3)pcVar25 >> 0x18) << 0x10) >>
                            0x10) + (((type_3)pcVar25 & 0xff) << 8 | (type_3)pcVar25 >> 8 & 0xff) *
                                    0x10000);
              pcVar25 = (char *)(((var_22 << 0x18 | var_23 << 0x10) >> 0x10) +
                                (var_21 << 8 | var_24 & 0xff) * 0x10000);
            }
            var_15 = var_15 + 8;
            pDVar22 = this->dwinfo_;
            var_14._0_4_ = pcVar25;
LAB_002e3708:
            attr_value.aux.shndx = (*local_3c)(pDVar22,pcVar25,var_20,var_32,local_40.shndx);
            attr_value.val._4_4_ = var_14._4_4_;
            attr_value.val.stringval = var_14._0_4_;
            goto LAB_002e355c;
          }
          if (7 < var_9) {
            if (var_9 == 10) {
              attr_value.val.stringval = (char *)(var_15 + 1);
              attr_value.aux.shndx._0_3_ = 0;
              attr_value.aux.shndx._3_1_ = *var_15;
              var_15 = (type_7 *)((int)attr_value.val.stringval + attr_value.aux.shndx);
              goto LAB_002e355c;
            }
            if (var_9 < 0xb) {
              if (var_9 != 8) {
                if (var_9 != 9) {
                  return false;
                }
LAB_002e32bc:
                aVar27.shndx._0_3_ = 0;
                aVar27.shndx._3_1_ = *var_15;
                var_16 = var_15 + 1;
                if ((char)*var_15 < '\0') {
                  (*(type_18 *)PTR_read_unsigned_LEB_128_x_004c2980)(var_16,&var_18);
                  var_16 = var_15 + var_18;
                  aVar27 = extraout_v1_00;
                }
                else {
                  var_18 = 1;
                }
                aVar40.blockval = var_16;
                aVar40.intval._4_4_ = attr_value.val.intval._4_4_;
                attr_value.aux = aVar27;
                var_15 = var_15 + aVar27.shndx + var_18;
                goto LAB_002e382c;
              }
              attr_value.val.blockval = var_15;
              var_32 = var_15;
              var_18 = (*(type_18 *)PTR_strlen_004c5b9c)(var_15);
              aVar40.stringval = attr_value.val.stringval;
              aVar40.intval._4_4_ = attr_value.val.intval._4_4_;
              aVar8.stringval = attr_value.val.stringval;
              aVar8.intval._4_4_ = attr_value.val.intval._4_4_;
              aVar7.stringval = attr_value.val.stringval;
              aVar7.intval._4_4_ = attr_value.val.intval._4_4_;
              var_15 = var_32 + var_18 + 1;
              if (var_25 == 0x31) goto LAB_002e313c;
              if (0x31 < var_25) {
                if ((var_25 != 0x6e) && (aVar7 = aVar8, var_25 != 0x2007)) goto LAB_002e313c;
                this->linkage_name_ = (char *)var_32;
                aVar7 = aVar40;
                goto LAB_002e313c;
              }
LAB_002e3118:
              aVar7 = aVar40;
              aVar39 = aVar40;
              if (var_25 == 1) goto LAB_002e313c;
joined_r0x002e3124:
              aVar7 = aVar39;
              if (var_25 != 3) goto LAB_002e313c;
              attr_value.val.stringval = (char *)((type_15)aVar39 >> 0x20);
              if (var_9 == 8) {
                this->name_ = attr_value.val.stringval;
                goto LAB_002e313c;
              }
              if (var_9 != 0xe) goto LAB_002e313c;
              goto LAB_002e3284;
            }
            if (var_9 < 0xd) {
              aVar40.intval._0_7_ = 0;
              aVar40.uintval._7_1_ = *var_15;
              var_15 = var_15 + 1;
LAB_002e382c:
              aVar7 = aVar40;
              if (var_25 == 0x31) goto LAB_002e313c;
              if (var_25 < 0x32) goto LAB_002e3118;
            }
            else {
              var_33 = *var_15;
              var_21 = var_26(0,var_33);
              var_16 = var_15 + 1;
              if ((char)var_33 < '\0') {
                aVar40.intval = (*(type_18 *)PTR_read_signed_LEB_128_x_004c297c)(var_16,&var_18,var_21);
                var_16 = var_15 + var_18;
              }
              else {
                var_18 = 1;
                aVar40.stringval = (char *)0x0;
                aVar40.uintval._4_4_ = var_21;
                if ((var_33 & 0x40) != 0) {
                  aVar40.stringval = (char *)0xffffffff;
                  aVar40.uintval._4_4_ = var_21 | 0xffffff80;
                }
              }
              var_15 = var_16;
              aVar7 = aVar40;
              if (var_25 == 0x31) goto LAB_002e313c;
              if (var_25 < 0x32) {
                __position._M_current =
                     (this->attributes_).
                     super__Vector_base<gold::type_1::type_16,_std::allocator<gold::Dwarf_die::type_16>var_8>
                     ._M_impl._M_finish;
                var_20 = var_4;
                if (__position._M_current !=
                    (this->attributes_).
                    super__Vector_base<gold::type_1::type_16,_std::allocator<gold::type_1::type_16>var_8>
                    ._M_impl._M_end_of_storage) goto LAB_002e314c;
LAB_002e2f98:
                var_4 = var_4 + 8;
                attr_value.val = aVar40;
                std::
                vector<gold::Dwarf_die::type_16,_std::allocator<gold::Dwarf_die::type_16>var_8>
                ::_M_realloc_insert<const_gold::Dwarf_die::type_16&>
                          (local_38,__position,&attr_value);
                var_1 = this->abbrev_code_;
                if (var_4 == var_3) goto LAB_002e2fb8;
                goto LAB_002e2db4;
              }
            }
            if ((var_25 != 0x6e) && (aVar7 = aVar40, var_25 != 0x2007)) goto LAB_002e313c;
LAB_002e3858:
            attr_value.val._0_4_ = aVar40.stringval;
            aVar7 = aVar40;
            if (var_9 == 8) {
              this->linkage_name_ = attr_value.val.stringval;
              goto LAB_002e313c;
            }
            if (var_9 != 0xe) goto LAB_002e313c;
            goto LAB_002e387c;
          }
          if (var_9 == 4) {
            pp_Var16 = (this->dwinfo_->object_->super_Object)._vptr_Object;
            var_19 = pp_Var16[3];
            if (var_19 == (type_8 *)PTR_is_big_endian_004c2950) {
              var_20 = (*pp_Var16[0x3a])();
            }
            else {
              var_20 = (*var_19)();
            }
            attr_value.aux.shndx = *(type_3 *)var_15;
            if (var_20 == 0) {
              attr_value.aux.shndx =
                   (((attr_value.aux.shndx >> 0x10) << 0x18 | (attr_value.aux.shndx >> 0x18) << 0x10
                    ) >> 0x10) +
                   ((attr_value.aux.shndx & 0xff) << 8 | attr_value.aux.shndx >> 8 & 0xff) * 0x10000
              ;
            }
            attr_value.val.stringval = (char *)(var_15 + 4);
            var_15 = (type_7 *)((int)attr_value.val.stringval + attr_value.aux.shndx);
LAB_002e355c:
            aVar40.stringval = attr_value.val.stringval;
            aVar40.intval._4_4_ = attr_value.val.intval._4_4_;
            aVar7 = aVar40;
            if (var_25 == 0x31) goto LAB_002e313c;
            if (var_25 < 0x32) goto LAB_002e3118;
            __position._M_current =
                 (this->attributes_).
                 super__Vector_base<gold::type_1::type_16,_std::allocator<gold::Dwarf_die::type_16>var_8>
                 ._M_impl._M_finish;
          }
          else {
            if (4 < var_9) {
              if (var_9 != 5) {
                if (var_9 != 6) {
                  return false;
                }
                pp_Var16 = (this->dwinfo_->object_->super_Object)._vptr_Object;
                var_19 = pp_Var16[3];
                if (var_19 == (type_8 *)PTR_is_big_endian_004c2950) {
                  var_32 = var_17;
                  var_31 = (*pp_Var16[0x3a])();
                }
                else {
                  var_32 = var_17;
                  var_31 = (*var_19)();
                }
                pcVar25 = *(char **)var_15;
                if (var_31 == 0) {
                  pcVar25 = (char *)(((((type_3)pcVar25 >> 0x10) << 0x18 |
                                      ((type_3)pcVar25 >> 0x18) << 0x10) >> 0x10) +
                                    (((type_3)pcVar25 & 0xff) << 8 | (type_3)pcVar25 >> 8 & 0xff) *
                                    0x10000);
                }
                var_15 = var_15 + 4;
                pDVar22 = this->dwinfo_;
                var_14._0_4_ = (char *)0x0;
                var_14._4_4_ = pcVar25;
                goto LAB_002e3708;
              }
              pp_Var16 = (this->dwinfo_->object_->super_Object)._vptr_Object;
              var_19 = pp_Var16[3];
              if (var_19 == (type_8 *)PTR_is_big_endian_004c2950) {
                var_20 = (*pp_Var16[0x3a])();
              }
              else {
                var_20 = (*var_19)();
              }
              uVar6 = *(type_4 *)var_15;
              if (var_20 == 0) {
                uVar6 = var_27(var_15[1],*var_15);
              }
              attr_value.val.intval._4_4_ = var_34(uVar6);
              var_15 = var_15 + 2;
              attr_value.val.stringval = (char *)0x0;
              goto LAB_002e355c;
            }
            if (var_9 != 1) {
              if (var_9 != 3) {
                return false;
              }
              pp_Var16 = (this->dwinfo_->object_->super_Object)._vptr_Object;
              var_19 = pp_Var16[3];
              if (var_19 == (type_8 *)PTR_is_big_endian_004c2950) {
                var_20 = (*pp_Var16[0x3a])();
              }
              else {
                var_20 = (*var_19)();
              }
              uVar6 = *(type_4 *)var_15;
              if (var_20 == 0) {
                uVar6 = var_27(var_15[1],*var_15);
              }
              attr_value.aux.shndx._0_2_ = 0;
              attr_value.aux.shndx._2_2_ = uVar6;
              attr_value.val.stringval = (char *)(var_15 + 2);
              var_15 = (type_7 *)((int)attr_value.val.stringval + attr_value.aux.shndx);
              goto LAB_002e355c;
            }
            pDVar22 = this->dwinfo_;
            if (pDVar22->address_size_ == 4) {
              pp_Var16 = (pDVar22->object_->super_Object)._vptr_Object;
              var_19 = pp_Var16[3];
              if (var_19 == (type_8 *)PTR_is_big_endian_004c2950) {
                var_32 = var_17;
                var_20 = (*pp_Var16[0x3a])();
              }
              else {
                var_32 = var_17;
                var_20 = (*var_19)();
              }
              var_21 = *(type_3 *)var_15;
              if (var_20 == 0) {
                var_21 = (((var_21 >> 0x10) << 0x18 | (var_21 >> 0x18) << 0x10) >> 0x10) +
                         ((var_21 & 0xff) << 8 | var_21 >> 8 & 0xff) * 0x10000;
              }
              var_15 = var_15 + 4;
              uVar38 = (type_15)var_21;
            }
            else {
              var_32 = var_17;
              uVar38 = (*local_34)(pDVar22,&var_15);
            }
            var_14 = uVar38;
            attr_value.aux.shndx = (*local_3c)(this->dwinfo_);
            aVar39.refval = var_14;
            if (var_25 == 0x31) goto LAB_002e30bc;
            if (var_25 < 0x32) {
              if (var_25 != 1) goto joined_r0x002e3124;
              goto LAB_002e39b4;
            }
            aVar7.refval = var_14;
            if (var_25 == 0x6e) goto LAB_002e313c;
            if (var_25 != 0x2007) goto LAB_002e339c;
            __position._M_current =
                 (this->attributes_).
                 super__Vector_base<gold::type_1::type_16,_std::allocator<gold::Dwarf_die::type_16>var_8>
                 ._M_impl._M_finish;
            aVar40.refval = var_14;
          }
          while( true ) {
            var_20 = var_4;
            if (__position._M_current ==
                (this->attributes_).
                super__Vector_base<gold::type_1::type_16,_std::allocator<gold::type_1::type_16>var_8>
                ._M_impl._M_end_of_storage) goto LAB_002e2f98;
LAB_002e314c:
            attr_value.val.stringval = (char *)((type_15)aVar40 >> 0x20);
            attr_value.val.intval._4_4_ = (type_20)aVar40.intval;
            var_4 = var_20 + 8;
            (__position._M_current)->form = attr_value.form;
            ((__position._M_current)->val).stringval = attr_value.val.stringval;
            (__position._M_current)->attr = attr_value.attr;
            *(type_20 *)((int)&(__position._M_current)->val + 4) = attr_value.val.intval._4_4_;
            (__position._M_current)->aux = attr_value.aux;
            *(type_20 *)&(__position._M_current)->field_0x14 = attr_value._20_4_;
            (this->attributes_).
            super__Vector_base<gold::Dwarf_die::type_16,_std::allocator<gold::Dwarf_die::type_16>var_8>
            ._M_impl._M_finish = __position._M_current + 1;
            var_1 = this->abbrev_code_;
            attr_value.val = aVar40;
            if (var_4 == var_3) goto LAB_002e2fb8;
            puVar14 = (type_3 *)((int)&(var_1->attributes).
                                     super__Vector_base<gold::Dwarf_abbrev_table::var_7,_std::allocator<gold::Dwarf_abbrev_table::var_7>var_8>
                                     ._M_impl._M_start[1].attr + var_20);
            var_9 = puVar14[1];
            var_25 = *puVar14;
            if (var_9 != 0x16) goto LAB_002e2dd0;
LAB_002e31a8:
            var_9 = (type_3)*var_15;
            var_16 = var_15 + 1;
            if ((char)*var_15 < '\0') {
              attr_value.val = aVar40;
              (*(type_18 *)PTR_read_unsigned_LEB_128_x_004c2980)(var_16,&var_18,var_9);
              var_16 = var_15 + var_18;
              var_9 = extraout_v1;
              aVar40 = attr_value.val;
            }
            else {
              var_18 = 1;
            }
            var_35 = var_16 + -(int)var_5;
            var_17 = var_35 + (int)this->die_offset_;
            var_20 = (type_3)(var_17 < var_35) + ((int)var_35 >> 0x1f) + *(int *)&this->die_offset_
            ;
            attr_value.form = var_9;
            var_15 = var_16;
            if (var_9 != 0xe) break;
LAB_002e31fc:
            attr_value.aux.shndx = 0;
            pDVar22 = this->dwinfo_;
            attr_value.attr = var_25;
            var_32 = var_17;
            attr_value.val = aVar40;
            if (pDVar22->offset_size_ == 4) {
              pp_Var16 = (pDVar22->object_->super_Object)._vptr_Object;
              var_19 = pp_Var16[3];
              if (var_19 == (type_8 *)PTR_is_big_endian_004c2950) {
                var_20 = (*pp_Var16[0x3a])();
              }
              else {
                var_20 = (*var_19)();
              }
              var_9 = *(type_3 *)var_15;
              if (var_20 == 0) {
                var_9 = (((var_9 >> 0x10) << 0x18 | (var_9 >> 0x18) << 0x10) >> 0x10) +
                         ((var_9 & 0xff) << 8 | var_9 >> 8 & 0xff) * 0x10000;
              }
              var_15 = var_15 + 4;
              uVar38 = (type_15)var_9;
            }
            else {
              uVar38 = (*local_34)(pDVar22,&var_15);
            }
            var_14 = uVar38;
            attr_value.aux.shndx = (*local_3c)(this->dwinfo_);
            aVar7.refval = var_14;
            if (var_25 != 0x31) {
              if (var_25 < 0x32) {
                if ((var_25 != 1) && (aVar39.refval = var_14, var_25 == 3)) {
LAB_002e3284:
                  this->string_shndx_ = (type_3)attr_value.aux;
                  this->name_off_ = (type_17)aVar39;
                  aVar7 = aVar39;
                }
              }
              else {
                aVar40.refval = var_14;
                if (var_25 == 0x6e) {
LAB_002e387c:
                  this->string_shndx_ = (type_3)attr_value.aux;
                }
                else {
                  if (var_25 != 0x2007) goto LAB_002e313c;
                  this->string_shndx_ = (type_3)attr_value.aux;
                }
                this->linkage_name_off_ = (type_17)aVar40;
                aVar7 = aVar40;
              }
            }
LAB_002e313c:
            __position._M_current =
                 (this->attributes_).
                 super__Vector_base<gold::type_1::type_16,_std::allocator<gold::Dwarf_die::type_16>var_8>
                 ._M_impl._M_finish;
            aVar40 = aVar7;
          }
        } while( true );
      }
      var_25 = (int)var_15 - (int)var_5;
      var_9 = var_25 + var_4;
      var_3 = (type_3)(var_9 < var_25) + ((int)var_25 >> 0x1f) + *(int *)&this->die_offset_;
      if (*(int *)&var_1->field_0x4 < 0) {
        *(int *)&this->child_offset_ = var_3;
        *(type_3 *)((int)&this->child_offset_ + 4) = var_9;
      }
      else {
        *(int *)&this->sibling_offset_ = var_3;
        *(type_3 *)((int)&this->sibling_offset_ + 4) = var_9;
      }
      this->attributes_read_ = true;
      return true;
    }
  }
  uVar20 = (*(type_18 *)PTR___throw_length_error_004c1e74)(var_36 + -0xda4);
  return (bool)uVar20;
}


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

undefined4 MASKED(int *param_1)

{
  byte bVar1;
  uint uVar2;
  uint uVar3;
  uint uVar4;
  uint uVar5;
  ushort uVar6;
  ulonglong uVar7;
  int iVar8;
  uint *puVar9;
  int iVar10;
  uint *puVar11;
  undefined4 uVar12;
  uint extraout_v1;
  undefined8 *puVar13;
  uint extraout_v1_00;
  Dwarf_info_reader *this;
  byte *pbVar14;
  uint uVar15;
  uint uVar16;
  int iVar17;
  uint *puVar18;
  uint uVar19;
  int iVar20;
  int iVar21;
  uint uVar22;
  undefined8 *puVar23;
  undefined8 *puVar24;
  code *pcVar25;
  ulonglong uVar26;
  uint local_68;
  uint local_64;
  undefined8 local_60;
  uint local_58;
  uint local_54;
  undefined8 local_50;
  int local_48;
  uint *local_44;
  undefined8 *local_40;
  code *local_3c;
  vector<gold::Dwarf_die::Attribute_value,std::allocator<gold::Dwarf_die::Attribute_value>>
  *local_38;
  code *local_34;
  uint *local_30;
  
  iVar8 = param_1[10];
  if (iVar8 == 0) {
    uVar12 = (*(code *)PTR_do_gold_unreachable_004c1a30)
                       (PTR_s_in_a_linker_script_004c191c + 0x7090,0x2a9,
                        PTR_s_in_a_linker_script_004c191c + 0x7414);
    return uVar12;
  }
  this = (Dwarf_info_reader *)*param_1;
  iVar17 = param_1[3];
  iVar20 = *(int *)(this + 0x2c) + *(int *)(this + 0x3c) + iVar17;
  if ((uint)(*(int *)(this + 0x2c) + *(int *)(this + 0x3c) + *(int *)(this + 0x44)) < iVar20 + 1U) {
    gold::Dwarf_info_reader::warn_corrupt_debug_section(this);
    return 0;
  }
  local_38 = (vector<gold::Dwarf_die::Attribute_value,std::allocator<gold::Dwarf_die::Attribute_value>>
              *)(param_1 + 0xb);
  if (iVar20 == 0) {
    return 0;
  }
  iVar21 = *(int *)(iVar8 + 0xc) - *(int *)(iVar8 + 8);
  local_44 = (uint *)(iVar20 + param_1[5]);
  uVar19 = iVar21 >> 3;
  if (0xaaaaaaa < uVar19) {
    uVar12 = (*(code *)PTR___throw_length_error_004c1e74)(PTR_s__s_004c1a50 + -0xda4);
    return uVar12;
  }
  puVar23 = (undefined8 *)param_1[0xb];
  if ((uint)((param_1[0xd] - (int)puVar23 >> 3) * -0x55555555) < uVar19) {
    puVar13 = (undefined8 *)param_1[0xc];
    iVar17 = (int)puVar13 - (int)puVar23;
    if (uVar19 == 0) {
      iVar10 = 0;
      puVar24 = puVar23;
    }
    else {
      local_40 = puVar13;
      iVar10 = (*(code *)PTR_operator_new_004c13a8)(uVar19 * 0x18);
      puVar13 = local_40;
      puVar24 = (undefined8 *)param_1[0xb];
    }
    if (puVar23 != puVar13) {
      (*(code *)PTR_memmove_004c5af8)(iVar10,puVar23,iVar17);
    }
    if (puVar24 != (undefined8 *)0x0) {
      (*(code *)PTR_operator_delete_004c12fc)(puVar24);
    }
    iVar8 = param_1[10];
    param_1[0xb] = iVar10;
    param_1[0xc] = iVar10 + iVar17;
    param_1[0xd] = iVar10 + uVar19 * 0x18;
    if (uVar19 != 0) goto LAB_002e2d90;
LAB_002e2fb8:
    if (iVar8 == 0) {
      uVar12 = (*(code *)PTR_do_gold_unreachable_004c1a30)
                         (PTR_s_in_a_linker_script_004c191c + 0x7108,0x206,
                          PTR_s_in_a_linker_script_004c191c + 0x7404);
      return uVar12;
    }
    iVar17 = param_1[3];
  }
  else if (uVar19 != 0) {
LAB_002e2d90:
    local_3c = (code *)PTR_lookup_reloc_004c2994;
    iVar17 = 0;
    local_34 = (code *)PTR_read_from_pointer<64>_004c2998;
    local_40 = &local_50;
LAB_002e2db4:
    puVar9 = (uint *)(*(int *)(iVar8 + 8) + iVar17);
    uVar19 = puVar9[1];
    uVar22 = *puVar9;
    uVar26 = local_60;
    if (uVar19 == 0x16) goto LAB_002e31a8;
LAB_002e2dd0:
    puVar9 = (uint *)((int)local_44 - iVar20);
    puVar18 = (uint *)((int)puVar9 + param_1[3]);
    iVar8 = (uint)(puVar18 < puVar9) + ((int)puVar9 >> 0x1f) + param_1[2];
    local_64 = uVar19;
    if (uVar19 == 0xe) goto LAB_002e31fc;
    do {
      local_60._4_4_ = (uint *)uVar26;
      local_58 = 0;
      local_68 = uVar22;
      local_64 = uVar19;
      local_60 = uVar26;
      if (0xe < uVar19) {
        if (uVar19 == 0x15) {
          if ((char)*(byte *)local_44 < '\0') {
            uVar26 = (*(code *)PTR_read_unsigned_LEB_128_x_004c2980)
                               ((uint *)((int)local_44 + 1),&local_48);
            local_44 = (uint *)((int)local_44 + local_48);
          }
          else {
            uVar26 = (ulonglong)*(byte *)local_44;
            local_48 = 1;
            local_44 = (uint *)((int)local_44 + 1);
          }
          goto joined_r0x002e3998;
        }
        if (0x15 < uVar19) {
          if (uVar19 == 0x19) {
            local_60._4_4_ = (uint *)0x1;
            local_60._0_4_ = (uint *)0x0;
          }
          else {
            if (uVar19 < 0x1a) {
              if (uVar19 != 0x17) {
                if (uVar19 != 0x18) {
                  return 0;
                }
                goto LAB_002e32bc;
              }
              iVar8 = *param_1;
              if (*(int *)(iVar8 + 0x48) == 4) {
                pcVar25 = *(code **)(**(int **)(iVar8 + 8) + 0xc);
                if (pcVar25 == (code *)PTR_is_big_endian_004c2950) {
                  local_30 = puVar18;
                  iVar8 = (**(code **)(**(int **)(iVar8 + 8) + 0xe8))();
                }
                else {
                  local_30 = puVar18;
                  iVar8 = (*pcVar25)();
                }
                uVar15 = *local_44;
                if (iVar8 == 0) {
                  uVar15 = (((uVar15 >> 0x10) << 0x18 | (uVar15 >> 0x18) << 0x10) >> 0x10) +
                           ((uVar15 & 0xff) << 8 | uVar15 >> 8 & 0xff) * 0x10000;
                }
                local_44 = local_44 + 1;
                uVar26 = (ulonglong)uVar15;
              }
              else {
                local_30 = puVar18;
                uVar26 = (*local_34)(iVar8,&local_44);
              }
              iVar8 = *param_1;
              goto LAB_002e3970;
            }
            if (uVar19 != 0x20) {
              if (uVar19 < 0x20) {
                return 0;
              }
              if (1 < uVar19 - 0x1f01) {
                return 0;
              }
LAB_002e34d8:
              if ((char)*(byte *)local_44 < '\0') {
                uVar26 = (*(code *)PTR_read_unsigned_LEB_128_x_004c2980)
                                   ((uint *)((int)local_44 + 1),&local_48);
                local_44 = (uint *)((int)local_44 + local_48);
              }
              else {
                uVar26 = (ulonglong)*(byte *)local_44;
                local_48 = 1;
                local_44 = (uint *)((int)local_44 + 1);
              }
              goto LAB_002e382c;
            }
            pcVar25 = *(code **)(**(int **)(*param_1 + 8) + 0xc);
            if (pcVar25 == (code *)PTR_is_big_endian_004c2950) {
              iVar8 = (**(code **)(**(int **)(*param_1 + 8) + 0xe8))();
            }
            else {
              iVar8 = (*pcVar25)();
            }
            local_60._4_4_ = (uint *)local_44[1];
            local_60._0_4_ = (uint *)*local_44;
            if (iVar8 == 0) {
              uVar15 = (uint)local_60._4_4_ & 0xff;
              uVar16 = (uint)local_60._4_4_ >> 8;
              uVar2 = (uint)local_60._4_4_ >> 0x10;
              uVar4 = (uint)local_60._4_4_ >> 0x18;
              local_60._4_4_ =
                   (uint *)(((((uint)local_60._0_4_ >> 0x10) << 0x18 |
                             ((uint)local_60._0_4_ >> 0x18) << 0x10) >> 0x10) +
                           (((uint)local_60._0_4_ & 0xff) << 8 | (uint)local_60._0_4_ >> 8 & 0xff) *
                           0x10000);
              local_60._0_4_ =
                   (uint *)(((uVar2 << 0x18 | uVar4 << 0x10) >> 0x10) +
                           (uVar15 << 8 | uVar16 & 0xff) * 0x10000);
            }
            local_44 = local_44 + 2;
          }
          uVar7 = CONCAT44(local_60._0_4_,local_60._4_4_);
          if (uVar22 == 0x6e) goto LAB_002e313c;
          uVar7 = CONCAT44(local_60._0_4_,local_60._4_4_);
          uVar26 = CONCAT44(local_60._0_4_,local_60._4_4_);
          if (uVar22 == 0x2007) goto LAB_002e313c;
          goto joined_r0x002e3124;
        }
        if (uVar19 == 0x11) {
          puVar9 = (uint *)((int)local_44 + 1);
          uVar15 = (uint)*(byte *)local_44;
          uVar26 = (ulonglong)uVar15;
          local_44 = puVar9;
          if (uVar22 == 0x31) goto LAB_002e30bc;
          if (0x31 < uVar22) {
            uVar26 = (ulonglong)uVar15;
            if ((uVar22 != 0x6e) && (uVar26 = (ulonglong)uVar15, uVar22 != 0x2007)) {
              uVar7 = (ulonglong)uVar15;
              if (uVar22 != 0x47) goto LAB_002e313c;
              param_1[0x18] = 0;
              param_1[0x19] = uVar15;
              uVar7 = (ulonglong)uVar15;
              goto LAB_002e313c;
            }
            goto LAB_002e3858;
          }
          if (uVar22 == 1) {
            param_1[8] = 0;
            param_1[9] = uVar15;
            uVar7 = (ulonglong)uVar15;
            goto LAB_002e313c;
          }
          goto joined_r0x002e3124;
        }
        if (uVar19 < 0x12) {
          if (uVar19 == 0xf) goto LAB_002e34d8;
          if (uVar19 != 0x10) {
            return 0;
          }
          iVar10 = *param_1;
          iVar8 = *(int *)(iVar10 + 0x48);
          if (*(uint *)(iVar10 + 0x50) < 3) {
            iVar8 = *(int *)(iVar10 + 0x4c);
          }
          if (iVar8 == 4) {
            pcVar25 = *(code **)(**(int **)(iVar10 + 8) + 0xc);
            if (pcVar25 == (code *)PTR_is_big_endian_004c2950) {
              local_30 = puVar18;
              iVar8 = (**(code **)(**(int **)(iVar10 + 8) + 0xe8))();
            }
            else {
              local_30 = puVar18;
              iVar8 = (*pcVar25)();
            }
            uVar15 = *local_44;
            if (iVar8 == 0) {
              uVar15 = (((uVar15 >> 0x10) << 0x18 | (uVar15 >> 0x18) << 0x10) >> 0x10) +
                       ((uVar15 & 0xff) << 8 | uVar15 >> 8 & 0xff) * 0x10000;
            }
            local_44 = local_44 + 1;
            uVar26 = (ulonglong)uVar15;
          }
          else {
            local_30 = puVar18;
            uVar26 = (*local_34)(iVar10,&local_44);
          }
          local_50 = uVar26;
          local_58 = (*local_3c)(*param_1);
          uVar26 = local_50;
        }
        else {
          if (uVar19 == 0x13) {
            pcVar25 = *(code **)(**(int **)(*param_1 + 8) + 0xc);
            if (pcVar25 == (code *)PTR_is_big_endian_004c2950) {
              local_30 = puVar18;
              iVar8 = (**(code **)(**(int **)(*param_1 + 8) + 0xe8))();
            }
            else {
              local_30 = puVar18;
              iVar8 = (*pcVar25)();
            }
            uVar15 = *local_44;
            if (iVar8 == 0) {
              uVar15 = (((uVar15 >> 0x10) << 0x18 | (uVar15 >> 0x18) << 0x10) >> 0x10) +
                       ((uVar15 & 0xff) << 8 | uVar15 >> 8 & 0xff) * 0x10000;
            }
            local_44 = local_44 + 1;
            iVar8 = *param_1;
            uVar26 = (ulonglong)uVar15;
          }
          else {
            if (uVar19 < 0x14) {
              pcVar25 = *(code **)(**(int **)(*param_1 + 8) + 0xc);
              if (pcVar25 == (code *)PTR_is_big_endian_004c2950) {
                iVar8 = (**(code **)(**(int **)(*param_1 + 8) + 0xe8))();
              }
              else {
                iVar8 = (*pcVar25)();
              }
              uVar6 = *(ushort *)local_44;
              if (iVar8 == 0) {
                uVar6 = CONCAT11(*(byte *)((int)local_44 + 1),*(byte *)local_44);
              }
              local_44 = (uint *)((int)local_44 + 2);
              uVar26 = (ulonglong)uVar6;
              goto joined_r0x002e3998;
            }
            pcVar25 = *(code **)(**(int **)(*param_1 + 8) + 0xc);
            if (pcVar25 == (code *)PTR_is_big_endian_004c2950) {
              local_30 = puVar18;
              iVar8 = (**(code **)(**(int **)(*param_1 + 8) + 0xe8))();
            }
            else {
              local_30 = puVar18;
              iVar8 = (*pcVar25)();
            }
            uVar15 = local_44[1];
            uVar16 = *local_44;
            if (iVar8 == 0) {
              uVar2 = uVar15 & 0xff;
              uVar4 = uVar15 >> 8;
              uVar3 = uVar15 >> 0x10;
              uVar5 = uVar15 >> 0x18;
              uVar15 = (((uVar16 >> 0x10) << 0x18 | (uVar16 >> 0x18) << 0x10) >> 0x10) +
                       ((uVar16 & 0xff) << 8 | uVar16 >> 8 & 0xff) * 0x10000;
              uVar16 = ((uVar3 << 0x18 | uVar5 << 0x10) >> 0x10) +
                       (uVar2 << 8 | uVar4 & 0xff) * 0x10000;
            }
            uVar26 = CONCAT44(uVar16,uVar15);
            local_44 = local_44 + 2;
            iVar8 = *param_1;
          }
LAB_002e3970:
          local_50 = uVar26;
          local_58 = (*local_3c)(iVar8);
          uVar26 = local_50;
        }
joined_r0x002e3998:
        if (uVar22 == 0x31) {
LAB_002e30bc:
          *(ulonglong *)(param_1 + 0x1a) = uVar26;
          uVar7 = uVar26;
          goto LAB_002e313c;
        }
        if (uVar22 < 0x32) {
          uVar7 = uVar26;
          if (uVar22 != 1) goto LAB_002e313c;
LAB_002e39b4:
          uVar7 = uVar26;
          if (local_58 != 0) goto LAB_002e313c;
          *(ulonglong *)(param_1 + 8) = uVar26;
          goto LAB_002e313c;
        }
        if ((uVar22 != 0x6e) && (uVar22 != 0x2007)) {
LAB_002e339c:
          uVar7 = uVar26;
          if (uVar22 != 0x47) goto LAB_002e313c;
          *(ulonglong *)(param_1 + 0x18) = uVar26;
          goto LAB_002e313c;
        }
        goto LAB_002e3858;
      }
      if (uVar19 == 7) {
        pcVar25 = *(code **)(**(int **)(*param_1 + 8) + 0xc);
        if (pcVar25 == (code *)PTR_is_big_endian_004c2950) {
          local_30 = puVar18;
          iVar10 = (**(code **)(**(int **)(*param_1 + 8) + 0xe8))();
        }
        else {
          local_30 = puVar18;
          iVar10 = (*pcVar25)();
        }
        local_50._4_4_ = (uint *)local_44[1];
        puVar9 = (uint *)*local_44;
        if (iVar10 == 0) {
          uVar15 = (uint)local_50._4_4_ & 0xff;
          uVar16 = (uint)local_50._4_4_ >> 8;
          uVar2 = (uint)local_50._4_4_ >> 0x10;
          uVar4 = (uint)local_50._4_4_ >> 0x18;
          local_50._4_4_ =
               (uint *)(((((uint)puVar9 >> 0x10) << 0x18 | ((uint)puVar9 >> 0x18) << 0x10) >> 0x10)
                       + (((uint)puVar9 & 0xff) << 8 | (uint)puVar9 >> 8 & 0xff) * 0x10000);
          puVar9 = (uint *)(((uVar2 << 0x18 | uVar4 << 0x10) >> 0x10) +
                           (uVar15 << 8 | uVar16 & 0xff) * 0x10000);
        }
        local_44 = local_44 + 2;
        iVar10 = *param_1;
        local_50._0_4_ = puVar9;
LAB_002e3708:
        local_58 = (*local_3c)(iVar10,puVar9,iVar8,local_30,local_40);
        local_60._4_4_ = local_50._4_4_;
        local_60._0_4_ = local_50._0_4_;
        goto LAB_002e355c;
      }
      if (7 < uVar19) {
        if (uVar19 == 10) {
          local_60._0_4_ = (uint *)((int)local_44 + 1);
          local_58 = (uint)*(byte *)local_44;
          local_44 = (uint *)((int)local_60._0_4_ + local_58);
          goto LAB_002e355c;
        }
        if (uVar19 < 0xb) {
          if (uVar19 != 8) {
            if (uVar19 != 9) {
              return 0;
            }
LAB_002e32bc:
            uVar15 = (uint)*(byte *)local_44;
            pbVar14 = (byte *)((int)local_44 + 1);
            if ((char)*(byte *)local_44 < '\0') {
              (*(code *)PTR_read_unsigned_LEB_128_x_004c2980)(pbVar14,&local_48);
              pbVar14 = (byte *)((int)local_44 + local_48);
              uVar15 = extraout_v1_00;
            }
            else {
              local_48 = 1;
            }
            uVar26 = CONCAT44(pbVar14,local_60._4_4_);
            local_58 = uVar15;
            local_44 = (uint *)((int)local_44 + uVar15 + local_48);
            goto LAB_002e382c;
          }
          local_60._0_4_ = local_44;
          local_30 = local_44;
          local_48 = (*(code *)PTR_strlen_004c5b9c)(local_44);
          uVar26 = CONCAT44(local_60._0_4_,local_60._4_4_);
          local_44 = (uint *)((int)local_30 + local_48 + 1);
          uVar7 = CONCAT44(local_60._0_4_,local_60._4_4_);
          if (uVar22 == 0x31) goto LAB_002e313c;
          if (0x31 < uVar22) {
            if ((uVar22 != 0x6e) &&
               (uVar7 = CONCAT44(local_60._0_4_,local_60._4_4_), uVar22 != 0x2007))
            goto LAB_002e313c;
            param_1[0x12] = (int)local_30;
            uVar7 = uVar26;
            goto LAB_002e313c;
          }
LAB_002e3118:
          uVar7 = uVar26;
          if (uVar22 == 1) goto LAB_002e313c;
joined_r0x002e3124:
          uVar7 = uVar26;
          if (uVar22 != 3) goto LAB_002e313c;
          local_60._0_4_ = (uint *)(uVar26 >> 0x20);
          if (uVar19 == 8) {
            param_1[0xf] = (int)local_60._0_4_;
            goto LAB_002e313c;
          }
          if (uVar19 != 0xe) goto LAB_002e313c;
          goto LAB_002e3284;
        }
        if (uVar19 < 0xd) {
          uVar26 = (ulonglong)*(byte *)local_44;
          local_44 = (uint *)((int)local_44 + 1);
LAB_002e382c:
          uVar7 = uVar26;
          if (uVar22 == 0x31) goto LAB_002e313c;
          if (uVar22 < 0x32) goto LAB_002e3118;
        }
        else {
          bVar1 = *(byte *)local_44;
          uVar15 = (uint)bVar1;
          puVar9 = (uint *)((int)local_44 + 1);
          if ((char)bVar1 < '\0') {
            uVar26 = (*(code *)PTR_read_signed_LEB_128_x_004c297c)(puVar9,&local_48,uVar15);
            puVar9 = (uint *)((int)local_44 + local_48);
          }
          else {
            local_48 = 1;
            uVar26 = (ulonglong)uVar15;
            if ((bVar1 & 0x40) != 0) {
              uVar26 = CONCAT44(0xffffffff,uVar15 | 0xffffff80);
            }
          }
          local_44 = puVar9;
          uVar7 = uVar26;
          if (uVar22 == 0x31) goto LAB_002e313c;
          if (uVar22 < 0x32) {
            puVar9 = (uint *)param_1[0xc];
            if (puVar9 != (uint *)param_1[0xd]) goto LAB_002e314c;
LAB_002e2f98:
            iVar17 = iVar17 + 8;
            local_60 = uVar26;
            std::
            vector<gold::Dwarf_die::Attribute_value,std::allocator<gold::Dwarf_die::Attribute_value>>
            ::_M_realloc_insert<gold::Dwarf_die::Attribute_value_const&>(local_38,puVar9,&local_68);
            iVar8 = param_1[10];
            if (iVar17 == iVar21) goto LAB_002e2fb8;
            goto LAB_002e2db4;
          }
        }
        if ((uVar22 != 0x6e) && (uVar7 = uVar26, uVar22 != 0x2007)) goto LAB_002e313c;
LAB_002e3858:
        local_60._0_4_ = (uint *)(uVar26 >> 0x20);
        uVar7 = uVar26;
        if (uVar19 == 8) {
          param_1[0x12] = (int)local_60._0_4_;
          goto LAB_002e313c;
        }
        if (uVar19 != 0xe) goto LAB_002e313c;
        goto LAB_002e387c;
      }
      if (uVar19 == 4) {
        pcVar25 = *(code **)(**(int **)(*param_1 + 8) + 0xc);
        if (pcVar25 == (code *)PTR_is_big_endian_004c2950) {
          iVar8 = (**(code **)(**(int **)(*param_1 + 8) + 0xe8))();
        }
        else {
          iVar8 = (*pcVar25)();
        }
        local_58 = *local_44;
        if (iVar8 == 0) {
          local_58 = (((local_58 >> 0x10) << 0x18 | (local_58 >> 0x18) << 0x10) >> 0x10) +
                     ((local_58 & 0xff) << 8 | local_58 >> 8 & 0xff) * 0x10000;
        }
        local_60._0_4_ = local_44 + 1;
        local_44 = (uint *)((int)local_60._0_4_ + local_58);
LAB_002e355c:
        uVar26 = CONCAT44(local_60._0_4_,local_60._4_4_);
        uVar7 = uVar26;
        if (uVar22 == 0x31) goto LAB_002e313c;
        if (uVar22 < 0x32) goto LAB_002e3118;
        puVar9 = (uint *)param_1[0xc];
      }
      else {
        if (4 < uVar19) {
          if (uVar19 != 5) {
            if (uVar19 != 6) {
              return 0;
            }
            pcVar25 = *(code **)(**(int **)(*param_1 + 8) + 0xc);
            if (pcVar25 == (code *)PTR_is_big_endian_004c2950) {
              local_30 = puVar18;
              iVar10 = (**(code **)(**(int **)(*param_1 + 8) + 0xe8))();
            }
            else {
              local_30 = puVar18;
              iVar10 = (*pcVar25)();
            }
            puVar9 = (uint *)*local_44;
            if (iVar10 == 0) {
              puVar9 = (uint *)(((((uint)puVar9 >> 0x10) << 0x18 | ((uint)puVar9 >> 0x18) << 0x10)
                                >> 0x10) +
                               (((uint)puVar9 & 0xff) << 8 | (uint)puVar9 >> 8 & 0xff) * 0x10000);
            }
            local_44 = local_44 + 1;
            iVar10 = *param_1;
            local_50._0_4_ = (uint *)0x0;
            local_50._4_4_ = puVar9;
            goto LAB_002e3708;
          }
          pcVar25 = *(code **)(**(int **)(*param_1 + 8) + 0xc);
          if (pcVar25 == (code *)PTR_is_big_endian_004c2950) {
            iVar8 = (**(code **)(**(int **)(*param_1 + 8) + 0xe8))();
          }
          else {
            iVar8 = (*pcVar25)();
          }
          uVar6 = *(ushort *)local_44;
          if (iVar8 == 0) {
            uVar6 = CONCAT11(*(byte *)((int)local_44 + 1),*(byte *)local_44);
          }
          local_60._4_4_ = (uint *)(uint)uVar6;
          local_44 = (uint *)((int)local_44 + 2);
          local_60._0_4_ = (uint *)0x0;
          goto LAB_002e355c;
        }
        if (uVar19 != 1) {
          if (uVar19 != 3) {
            return 0;
          }
          pcVar25 = *(code **)(**(int **)(*param_1 + 8) + 0xc);
          if (pcVar25 == (code *)PTR_is_big_endian_004c2950) {
            iVar8 = (**(code **)(**(int **)(*param_1 + 8) + 0xe8))();
          }
          else {
            iVar8 = (*pcVar25)();
          }
          uVar6 = *(ushort *)local_44;
          if (iVar8 == 0) {
            uVar6 = CONCAT11(*(byte *)((int)local_44 + 1),*(byte *)local_44);
          }
          local_58 = (uint)uVar6;
          local_60._0_4_ = (uint *)((int)local_44 + 2);
          local_44 = (uint *)((int)local_60._0_4_ + local_58);
          goto LAB_002e355c;
        }
        iVar8 = *param_1;
        if (*(int *)(iVar8 + 0x4c) == 4) {
          pcVar25 = *(code **)(**(int **)(iVar8 + 8) + 0xc);
          if (pcVar25 == (code *)PTR_is_big_endian_004c2950) {
            local_30 = puVar18;
            iVar8 = (**(code **)(**(int **)(iVar8 + 8) + 0xe8))();
          }
          else {
            local_30 = puVar18;
            iVar8 = (*pcVar25)();
          }
          uVar15 = *local_44;
          if (iVar8 == 0) {
            uVar15 = (((uVar15 >> 0x10) << 0x18 | (uVar15 >> 0x18) << 0x10) >> 0x10) +
                     ((uVar15 & 0xff) << 8 | uVar15 >> 8 & 0xff) * 0x10000;
          }
          local_44 = local_44 + 1;
          uVar26 = (ulonglong)uVar15;
        }
        else {
          local_30 = puVar18;
          uVar26 = (*local_34)(iVar8,&local_44);
        }
        local_50 = uVar26;
        local_58 = (*local_3c)(*param_1);
        uVar26 = local_50;
        if (uVar22 == 0x31) goto LAB_002e30bc;
        if (uVar22 < 0x32) {
          if (uVar22 != 1) goto joined_r0x002e3124;
          goto LAB_002e39b4;
        }
        uVar7 = local_50;
        if (uVar22 == 0x6e) goto LAB_002e313c;
        if (uVar22 != 0x2007) goto LAB_002e339c;
        puVar9 = (uint *)param_1[0xc];
      }
      while( true ) {
        if (puVar9 == (uint *)param_1[0xd]) goto LAB_002e2f98;
LAB_002e314c:
        local_60._0_4_ = (uint *)(uVar26 >> 0x20);
        local_60._4_4_ = (uint *)uVar26;
        iVar17 = iVar17 + 8;
        puVar9[1] = local_64;
        puVar9[2] = (uint)local_60._0_4_;
        *puVar9 = local_68;
        puVar9[3] = (uint)local_60._4_4_;
        puVar9[4] = local_58;
        puVar9[5] = local_54;
        param_1[0xc] = (int)(puVar9 + 6);
        iVar8 = param_1[10];
        local_60 = uVar26;
        if (iVar17 == iVar21) goto LAB_002e2fb8;
        puVar9 = (uint *)(*(int *)(iVar8 + 8) + iVar17);
        uVar19 = puVar9[1];
        uVar22 = *puVar9;
        if (uVar19 != 0x16) goto LAB_002e2dd0;
LAB_002e31a8:
        uVar19 = (uint)*(byte *)local_44;
        puVar9 = (uint *)((int)local_44 + 1);
        if ((char)*(byte *)local_44 < '\0') {
          local_60 = uVar26;
          (*(code *)PTR_read_unsigned_LEB_128_x_004c2980)(puVar9,&local_48,uVar19);
          puVar9 = (uint *)((int)local_44 + local_48);
          uVar19 = extraout_v1;
          uVar26 = local_60;
        }
        else {
          local_48 = 1;
        }
        puVar11 = (uint *)((int)puVar9 - iVar20);
        puVar18 = (uint *)((int)puVar11 + param_1[3]);
        iVar8 = (uint)(puVar18 < puVar11) + ((int)puVar11 >> 0x1f) + param_1[2];
        local_64 = uVar19;
        local_44 = puVar9;
        if (uVar19 != 0xe) break;
LAB_002e31fc:
        local_58 = 0;
        iVar8 = *param_1;
        local_68 = uVar22;
        local_30 = puVar18;
        local_60 = uVar26;
        if (*(int *)(iVar8 + 0x48) == 4) {
          pcVar25 = *(code **)(**(int **)(iVar8 + 8) + 0xc);
          if (pcVar25 == (code *)PTR_is_big_endian_004c2950) {
            iVar8 = (**(code **)(**(int **)(iVar8 + 8) + 0xe8))();
          }
          else {
            iVar8 = (*pcVar25)();
          }
          uVar19 = *local_44;
          if (iVar8 == 0) {
            uVar19 = (((uVar19 >> 0x10) << 0x18 | (uVar19 >> 0x18) << 0x10) >> 0x10) +
                     ((uVar19 & 0xff) << 8 | uVar19 >> 8 & 0xff) * 0x10000;
          }
          local_44 = local_44 + 1;
          uVar26 = (ulonglong)uVar19;
        }
        else {
          uVar26 = (*local_34)(iVar8,&local_44);
        }
        local_50 = uVar26;
        local_58 = (*local_3c)(*param_1);
        uVar7 = local_50;
        if (uVar22 != 0x31) {
          uVar26 = local_50;
          if (uVar22 < 0x32) {
            if ((uVar22 != 1) && (uVar22 == 3)) {
LAB_002e3284:
              param_1[0x16] = local_58;
              *(ulonglong *)(param_1 + 0x10) = uVar26;
              uVar7 = uVar26;
            }
          }
          else {
            if (uVar22 == 0x6e) {
LAB_002e387c:
              param_1[0x16] = local_58;
            }
            else {
              if (uVar22 != 0x2007) goto LAB_002e313c;
              param_1[0x16] = local_58;
            }
            *(ulonglong *)(param_1 + 0x14) = uVar26;
            uVar7 = uVar26;
          }
        }
LAB_002e313c:
        puVar9 = (uint *)param_1[0xc];
        uVar26 = uVar7;
      }
    } while( true );
  }
  uVar22 = (int)local_44 - iVar20;
  uVar19 = uVar22 + iVar17;
  iVar17 = (uint)(uVar19 < uVar22) + ((int)uVar22 >> 0x1f) + param_1[2];
  if (*(int *)(iVar8 + 4) < 0) {
    param_1[6] = iVar17;
    param_1[7] = uVar19;
  }
  else {
    param_1[8] = iVar17;
    param_1[9] = uVar19;
  }
  *(undefined1 *)(param_1 + 0xe) = 1;
  return 1;
}

