
/* WARNING: Type propagation algorithm not settling */
/* DWARF original name: read_cie<64, false>
   DWARF original prototype: bool read_cie<64,_false>(Eh_frame * this, Sized_relobj_file<64,_false>
   * object, uint shndx, uchar * symbols, section_size_type symbols_size, uchar * symbol_names,
   section_size_type symbol_names_size, uchar * pcontents, uchar * pcie, uchar * pcieend,
   Track_relocs<64,_false> * relocs, Offsets_to_cie * cies, New_cies * new_cies) */

bool __thiscall
gold::Eh_frame::read_cie<64,_false>
          (Eh_frame *this,Sized_relobj_file<64,_false> *object,uint shndx,uchar *symbols,
          section_size_type symbols_size,uchar *symbol_names,section_size_type symbol_names_size,
          uchar *pcontents,uchar *pcie,uchar *pcieend,Track_relocs<64,_false> *relocs,
          Offsets_to_cie *cies,New_cies *new_cies)

{
  uchar uVar1;
  pointer ppVar2;
  bool bVar3;
  int iVar4;
  uint uVar5;
  uint uVar6;
  int iVar7;
  void *pvVar8;
  off_t oVar9;
  long lVar10;
  iterator iVar11;
  byte *pbVar12;
  Cie *cie1;
  uint uVar13;
  ulong uVar14;
  byte bVar15;
  byte bVar16;
  byte bVar17;
  uchar *puVar18;
  pointer ppVar19;
  byte *__s;
  uchar *puVar20;
  byte bVar21;
  pair<long_int,_gold::Cie*> *local_f8;
  char local_cd;
  undefined1 local_c8 [16];
  Cie cie;
  
  bVar21 = 0;
  if (pcieend == pcie || (long)pcieend - (long)pcie < 0) {
    return false;
  }
  bVar16 = *pcie;
  if ((bVar16 & 0xfd) != 1) {
    return false;
  }
  __s = pcie + 1;
  pvVar8 = memchr(__s,0,(long)pcieend - (long)__s);
  if (pvVar8 == (void *)0x0) {
    return false;
  }
  puVar20 = (uchar *)((long)pvVar8 + 1);
  local_cd = '\x01';
  if ((pcie[1] == 'e') && (pcie[2] == 'h')) {
    if (pcie[3] != '\0') {
      return false;
    }
    if ((long)pcieend - (long)puVar20 < 8) {
      return false;
    }
    __s = pcie + 3;
    puVar20 = (uchar *)((long)pvVar8 + 9);
    local_cd = '\0';
  }
  if (pcieend <= puVar20) {
    return false;
  }
  while ((char)*puVar20 < '\0') {
    puVar20 = puVar20 + 1;
    if (pcieend == puVar20) {
      return false;
    }
  }
  puVar18 = puVar20 + 1;
  if (pcieend <= puVar18) {
    return false;
  }
  uVar1 = puVar20[1];
  while ((char)uVar1 < '\0') {
    puVar18 = puVar18 + 1;
    if (pcieend == puVar18) {
      return false;
    }
    uVar1 = *puVar18;
  }
  puVar20 = puVar18 + 1;
  if (bVar16 == 1) {
    pbVar12 = puVar18 + 2;
    if (pcieend == puVar20 || (long)pcieend - (long)puVar20 < 0) {
      return false;
    }
  }
  else {
    if (pcieend <= puVar20) {
      return false;
    }
    uVar1 = puVar18[1];
    while ((char)uVar1 < '\0') {
      puVar20 = puVar20 + 1;
      if (pcieend == puVar20) {
        return false;
      }
      uVar1 = *puVar20;
    }
    pbVar12 = puVar20 + 1;
  }
  bVar16 = *__s;
  if (bVar16 == 0x7a) {
    if (pcieend <= pbVar12) {
      return false;
    }
    while ((char)*pbVar12 < '\0') {
      pbVar12 = pbVar12 + 1;
      if (pcieend == pbVar12) {
        return false;
      }
    }
    bVar16 = __s[1];
    pbVar12 = pbVar12 + 1;
    if (bVar16 != 0) {
      __s = __s + 1;
      goto LAB_0024b528;
    }
LAB_0024b955:
    puVar20 = "";
  }
  else {
    if (bVar16 == 0) goto LAB_0024b955;
LAB_0024b528:
    iVar7 = -1;
    bVar17 = 0;
    bVar15 = bVar16;
    do {
      bVar16 = bVar17;
      if (bVar15 == 0x50) {
        if (pcieend == pbVar12 || (long)pcieend - (long)pbVar12 < 0) {
          return false;
        }
        bVar15 = *pbVar12;
        pbVar12 = pbVar12 + 1;
        if ((bVar15 & 0x60) == 0x60) {
          return false;
        }
        bVar17 = bVar15 & 7;
        if (bVar17 == 2) {
          lVar10 = 2;
        }
        else {
          if (bVar17 < 3) {
            if (bVar17 != 0) {
              return false;
            }
          }
          else {
            if (bVar17 == 3) {
              lVar10 = 4;
              goto LAB_0024b853;
            }
            if (bVar17 != 4) {
              return false;
            }
          }
          lVar10 = 8;
        }
LAB_0024b853:
        uVar6 = (int)pcieend - (int)pbVar12;
        uVar5 = (uint)lVar10;
        if ((bVar15 & 0xf0) == 0x50) {
          uVar13 = -uVar5 & (uVar5 - 1) + ((int)pbVar12 - (int)pcie);
          if (uVar6 < uVar13) {
            return false;
          }
          pbVar12 = pbVar12 + uVar13;
          uVar6 = (int)pcieend - (int)pbVar12;
        }
        iVar7 = (int)pbVar12 - (int)pcontents;
        if (uVar6 < uVar5) {
          return false;
        }
        pbVar12 = pbVar12 + lVar10;
      }
      else {
        if (bVar15 < 0x51) {
          if (bVar15 != 0x4c) {
            return false;
          }
          if (pcieend == pbVar12 || (long)pcieend - (long)pbVar12 < 0) {
            return false;
          }
        }
        else {
          if (bVar15 != 0x52) {
            if (bVar15 != 0x53) {
              return false;
            }
            goto LAB_0024b557;
          }
          if (pcieend == pbVar12 || (long)pcieend - (long)pbVar12 < 0) {
            return false;
          }
          bVar16 = *pbVar12;
          if (4 < (bVar16 & 7)) {
            return false;
          }
          if ((1L << (bVar16 & 7) & 0x1dU) == 0) {
            return false;
          }
        }
        pbVar12 = pbVar12 + 1;
      }
LAB_0024b557:
      __s = __s + 1;
      bVar15 = *__s;
      bVar17 = bVar16;
    } while (bVar15 != 0);
    if (iVar7 == -1) goto LAB_0024b955;
    iVar4 = Track_relocs<64,_false>::advance(relocs,(long)iVar7);
    if (0 < iVar4) {
      return false;
    }
    oVar9 = Track_relocs<64,_false>::next_offset(relocs);
    if (iVar7 != oVar9) {
      return false;
    }
    uVar5 = Track_relocs<64,_false>::next_symndx(relocs);
    if (uVar5 == 0xffffffff) {
      return false;
    }
    uVar6 = (*(object->super_Sized_relobj<64,_false>).super_Relobj.super_Object._vptr_Object[0x23])
                      (object);
    if (uVar5 < uVar6) {
      local_cd = '\0';
      puVar20 = "";
    }
    else {
      if (symbols_size / 0x18 <= (ulong)uVar5) {
        return false;
      }
      if (symbol_names_size <= *(uint *)(symbols + uVar5 * 0x18)) {
        return false;
      }
      puVar20 = symbol_names + *(uint *)(symbols + uVar5 * 0x18);
    }
    iVar7 = Track_relocs<64,_false>::advance(relocs,(long)(iVar7 + 1));
    if (iVar7 != 1) {
                    /* WARNING: Subroutine does not return */
      do_gold_unreachable("../../gold/ehframe.cc",0x3af,"read_cie");
    }
  }
  iVar7 = Track_relocs<64,_false>::advance(relocs,(long)pcieend - (long)pcontents);
  if (0 < iVar7) {
    return false;
  }
  lVar10 = (long)(pcie + -8) - (long)pcontents;
  puVar18 = (uchar *)0xffffffffffffffff;
  cie.personality_name_._M_dataplus._M_p = (pointer)&cie.personality_name_.field_2;
  if (puVar20 != (uchar *)0x0) {
    uVar14 = 0xffffffffffffffff;
    puVar18 = puVar20;
    do {
      if (uVar14 == 0) break;
      uVar14 = uVar14 - 1;
      uVar1 = *puVar18;
      puVar18 = puVar18 + (ulong)bVar21 * -2 + 1;
    } while (uVar1 != '\0');
    puVar18 = puVar20 + (~uVar14 - 1);
  }
  cie.object_ = (Relobj *)object;
  cie.shndx_ = shndx;
  cie.input_offset_ = lVar10;
  cie.fde_encoding_ = bVar16;
  std::__cxx11::basic_string<char,_std::char_traits<char>,_std::allocator<char>_>::
  _M_construct<char_const*>(&cie.personality_name_,puVar20,puVar18);
  cie.contents_._M_dataplus._M_p = (pointer)&cie.contents_.field_2;
  cie.fdes_.super__Vector_base<gold::Fde*,_std::allocator<gold::Fde*>_>._M_impl._M_start =
       (pointer)0x0;
  cie.fdes_.super__Vector_base<gold::Fde*,_std::allocator<gold::Fde*>_>._M_impl._M_finish =
       (pointer)0x0;
  cie.fdes_.super__Vector_base<gold::Fde*,_std::allocator<gold::Fde*>_>._M_impl._M_end_of_storage =
       (pointer)0x0;
                    /* try { // try from 0024b743 to 0024b747 has its CatchHandler @ 0024ba39 */
  std::__cxx11::basic_string<char,_std::char_traits<char>,_std::allocator<char>_>::
  _M_construct<char_const*>(&cie.contents_,pcie,pcieend);
  if (local_cd != '\0') {
    local_c8._0_8_ = &cie;
    iVar11 = std::
             _Rb_tree<gold::Cie*,_gold::Cie*,_std::_Identity<gold::Cie*>,_gold::Eh_frame::Cie_less,_std::allocator<gold::Cie*>_>
             ::find(&(this->cie_offsets_)._M_t,(Cie **)local_c8);
    if ((_Rb_tree_header *)iVar11._M_node ==
        &(this->cie_offsets_)._M_t._M_impl.super__Rb_tree_header) {
      ppVar2 = (new_cies->
               super__Vector_base<std::pair<gold::Cie*,_bool>,_std::allocator<std::pair<gold::Cie*,_bool>_>_>
               )._M_impl._M_finish;
      for (ppVar19 = (new_cies->
                     super__Vector_base<std::pair<gold::Cie*,_bool>,_std::allocator<std::pair<gold::Cie*,_bool>_>_>
                     )._M_impl._M_start; ppVar19 != ppVar2; ppVar19 = ppVar19 + 1) {
        cie1 = ppVar19->first;
        bVar3 = operator==(cie1,&cie);
        if (bVar3) goto LAB_0024b77c;
      }
    }
    else {
      cie1 = *(Cie **)(iVar11._M_node + 1);
LAB_0024b77c:
      if (cie1 != (Cie *)0x0) {
                    /* try { // try from 0024b7a0 to 0024b96d has its CatchHandler @ 0024ba2f */
        Relobj::add_merge_mapping
                  ((Relobj *)object,&this->super_Output_section_data,shndx,lVar10,
                   (long)pcieend - (long)(pcie + -8),-1);
        goto LAB_0024b7a5;
      }
    }
  }
  cie1 = (Cie *)operator_new(0x78);
                    /* try { // try from 0024b977 to 0024b97b has its CatchHandler @ 0024ba34 */
  Cie::Cie(cie1,&cie);
  local_c8[8] = local_cd;
  local_c8._0_8_ = cie1;
                    /* try { // try from 0024b99c to 0024b9a0 has its CatchHandler @ 0024ba2f */
  std::vector<std::pair<gold::Cie*,_bool>,_std::allocator<std::pair<gold::Cie*,_bool>_>_>::
  emplace_back<std::pair<gold::Cie*,_bool>_>(new_cies,(pair<gold::Cie*,_bool> *)local_c8);
LAB_0024b7a5:
  local_f8 = (pair<long_int,_gold::Cie*> *)local_c8;
  local_c8._0_8_ = pcie + -(long)pcontents;
  local_c8._8_8_ = cie1;
  std::
  _Rb_tree<long_unsigned_int,_std::pair<long_unsigned_int_const,_gold::Cie*>,_std::_Select1st<std::pair<long_unsigned_int_const,_gold::Cie*>_>,_std::less<long_unsigned_int>,_std::allocator<std::pair<long_unsigned_int_const,_gold::Cie*>_>_>
  ::_M_emplace_unique<std::pair<long_int,_gold::Cie*>_>(&cies->_M_t,local_f8);
  Cie::~Cie(&cie,(int)local_f8);
  return true;
}



/* WARNING: Type propagation algorithm not settling */

undefined8
FUN_0024b3c0(long param_1,long *param_2,undefined4 param_3,long param_4,ulong param_5,long param_6,
            ulong param_7,long param_8,byte *param_9,byte *param_10,undefined8 param_11,
            undefined8 param_12,undefined8 *param_13)

{
  long *plVar1;
  char cVar2;
  int iVar3;
  uint uVar4;
  uint uVar5;
  int iVar6;
  void *pvVar7;
  long lVar8;
  ulong uVar9;
  long lVar10;
  byte *pbVar11;
  long **pplVar12;
  uint uVar13;
  byte bVar14;
  byte bVar15;
  byte bVar16;
  byte *pbVar17;
  ulong extraout_RDX;
  ulong uVar18;
  char *pcVar19;
  long *plVar20;
  byte *__s;
  char *pcVar21;
  byte bVar22;
  long ***local_f8;
  char local_cd;
  long **local_c8;
  long **local_c0;
  long *local_b8;
  undefined4 local_b0;
  long local_a8;
  byte local_a0;
  undefined1 *local_98 [2];
  undefined1 local_88 [16];
  undefined8 local_78;
  undefined8 local_70;
  undefined8 local_68;
  undefined1 *local_60 [2];
  undefined1 local_50 [32];
  
  bVar22 = 0;
  if (param_10 == param_9 || (long)param_10 - (long)param_9 < 0) {
    return 0;
  }
  bVar14 = *param_9;
  if ((bVar14 & 0xfd) != 1) {
    return 0;
  }
  __s = param_9 + 1;
  pvVar7 = memchr(__s,0,(long)param_10 - (long)__s);
  if (pvVar7 == (void *)0x0) {
    return 0;
  }
  pbVar17 = (byte *)((long)pvVar7 + 1);
  local_cd = '\x01';
  if ((param_9[1] == 0x65) && (param_9[2] == 0x68)) {
    if (param_9[3] != 0) {
      return 0;
    }
    if ((long)param_10 - (long)pbVar17 < 8) {
      return 0;
    }
    __s = param_9 + 3;
    pbVar17 = (byte *)((long)pvVar7 + 9);
    local_cd = '\0';
  }
  if (param_10 <= pbVar17) {
    return 0;
  }
  while ((char)*pbVar17 < '\0') {
    pbVar17 = pbVar17 + 1;
    if (param_10 == pbVar17) {
      return 0;
    }
  }
  pbVar11 = pbVar17 + 1;
  if (param_10 <= pbVar11) {
    return 0;
  }
  bVar15 = pbVar17[1];
  while ((char)bVar15 < '\0') {
    pbVar11 = pbVar11 + 1;
    if (param_10 == pbVar11) {
      return 0;
    }
    bVar15 = *pbVar11;
  }
  pbVar17 = pbVar11 + 1;
  if (bVar14 == 1) {
    pbVar11 = pbVar11 + 2;
    if (param_10 == pbVar17 || (long)param_10 - (long)pbVar17 < 0) {
      return 0;
    }
  }
  else {
    if (param_10 <= pbVar17) {
      return 0;
    }
    bVar14 = pbVar11[1];
    while ((char)bVar14 < '\0') {
      pbVar17 = pbVar17 + 1;
      if (param_10 == pbVar17) {
        return 0;
      }
      bVar14 = *pbVar17;
    }
    pbVar11 = pbVar17 + 1;
  }
  bVar14 = *__s;
  if (bVar14 == 0x7a) {
    if (param_10 <= pbVar11) {
      return 0;
    }
    while ((char)*pbVar11 < '\0') {
      pbVar11 = pbVar11 + 1;
      if (param_10 == pbVar11) {
        return 0;
      }
    }
    bVar14 = __s[1];
    pbVar11 = pbVar11 + 1;
    if (bVar14 != 0) {
      __s = __s + 1;
      goto LAB_0024b528;
    }
LAB_0024b955:
    pcVar21 = "";
  }
  else {
    if (bVar14 == 0) goto LAB_0024b955;
LAB_0024b528:
    iVar6 = -1;
    bVar16 = 0;
    bVar15 = bVar14;
    do {
      bVar14 = bVar16;
      if (bVar15 == 0x50) {
        if (param_10 == pbVar11 || (long)param_10 - (long)pbVar11 < 0) {
          return 0;
        }
        bVar15 = *pbVar11;
        pbVar11 = pbVar11 + 1;
        if ((bVar15 & 0x60) == 0x60) {
          return 0;
        }
        bVar16 = bVar15 & 7;
        if (bVar16 == 2) {
          lVar8 = 2;
        }
        else {
          if (bVar16 < 3) {
            if (bVar16 != 0) {
              return 0;
            }
          }
          else {
            if (bVar16 == 3) {
              lVar8 = 4;
              goto LAB_0024b853;
            }
            if (bVar16 != 4) {
              return 0;
            }
          }
          lVar8 = 8;
        }
LAB_0024b853:
        uVar5 = (int)param_10 - (int)pbVar11;
        uVar4 = (uint)lVar8;
        if ((bVar15 & 0xf0) == 0x50) {
          uVar13 = -uVar4 & (uVar4 - 1) + ((int)pbVar11 - (int)param_9);
          if (uVar5 < uVar13) {
            return 0;
          }
          pbVar11 = pbVar11 + uVar13;
          uVar5 = (int)param_10 - (int)pbVar11;
        }
        iVar6 = (int)pbVar11 - (int)param_8;
        if (uVar5 < uVar4) {
          return 0;
        }
        pbVar11 = pbVar11 + lVar8;
      }
      else {
        if (bVar15 < 0x51) {
          if (bVar15 != 0x4c) {
            return 0;
          }
          if (param_10 == pbVar11 || (long)param_10 - (long)pbVar11 < 0) {
            return 0;
          }
        }
        else {
          if (bVar15 != 0x52) {
            if (bVar15 != 0x53) {
              return 0;
            }
            goto LAB_0024b557;
          }
          if (param_10 == pbVar11 || (long)param_10 - (long)pbVar11 < 0) {
            return 0;
          }
          bVar14 = *pbVar11;
          if (4 < (bVar14 & 7)) {
            return 0;
          }
          if ((1L << (bVar14 & 7) & 0x1dU) == 0) {
            return 0;
          }
        }
        pbVar11 = pbVar11 + 1;
      }
LAB_0024b557:
      __s = __s + 1;
      bVar15 = *__s;
      bVar16 = bVar14;
    } while (bVar15 != 0);
    if (iVar6 == -1) goto LAB_0024b955;
    iVar3 = FUN_001fab10(param_11,(long)iVar6);
    if (0 < iVar3) {
      return 0;
    }
    lVar8 = FUN_001faa60(param_11);
    if (iVar6 != lVar8) {
      return 0;
    }
    uVar4 = FUN_001faa80(param_11);
    if (uVar4 == 0xffffffff) {
      return 0;
    }
    uVar5 = (**(code **)(*param_2 + 0x118))(param_2);
    if (uVar4 < uVar5) {
      local_cd = '\0';
      pcVar21 = "";
      uVar18 = extraout_RDX;
    }
    else {
      uVar18 = param_5 % 0x18;
      if (param_5 / 0x18 <= (ulong)uVar4) {
        return 0;
      }
      uVar9 = (ulong)*(uint *)(param_4 + (ulong)(uVar4 * 0x18));
      if (param_7 <= uVar9) {
        return 0;
      }
      pcVar21 = (char *)(param_6 + uVar9);
    }
    iVar6 = FUN_001fab10(param_11,(long)(iVar6 + 1),uVar18);
    if (iVar6 != 1) {
                    /* WARNING: Subroutine does not return */
      FUN_0016cdf0("../../gold/ehframe.cc",0x3af,"read_cie");
    }
  }
  iVar6 = FUN_001fab10(param_11,(long)param_10 - param_8);
  if (0 < iVar6) {
    return 0;
  }
  lVar8 = (long)(param_9 + -8) - param_8;
  pcVar19 = (char *)0xffffffffffffffff;
  local_98[0] = local_88;
  if (pcVar21 != (char *)0x0) {
    uVar18 = 0xffffffffffffffff;
    pcVar19 = pcVar21;
    do {
      if (uVar18 == 0) break;
      uVar18 = uVar18 - 1;
      cVar2 = *pcVar19;
      pcVar19 = pcVar19 + (ulong)bVar22 * -2 + 1;
    } while (cVar2 != '\0');
    pcVar19 = pcVar21 + (~uVar18 - 1);
  }
  local_b8 = param_2;
  local_b0 = param_3;
  local_a8 = lVar8;
  local_a0 = bVar14;
  FUN_0015cbe0(local_98,pcVar21,pcVar19);
  local_60[0] = local_50;
  local_78 = 0;
  local_70 = 0;
  local_68 = 0;
                    /* try { // try from 0024b743 to 0024b747 has its CatchHandler @ 0024ba39 */
  FUN_0015cbe0(local_60,param_9,param_10);
  if (local_cd != '\0') {
    local_c8 = &local_b8;
    lVar10 = FUN_00248330(param_1 + 0x40);
    if (lVar10 == param_1 + 0x48) {
      plVar1 = (long *)param_13[1];
      for (plVar20 = (long *)*param_13; plVar20 != plVar1; plVar20 = plVar20 + 2) {
        pplVar12 = (long **)*plVar20;
        cVar2 = FUN_002476d0(pplVar12,&local_b8);
        if (cVar2 != '\0') goto LAB_0024b77c;
      }
    }
    else {
      pplVar12 = *(long ***)(lVar10 + 0x20);
LAB_0024b77c:
      if (pplVar12 != (long **)0x0) {
                    /* try { // try from 0024b7a0 to 0024b96d has its CatchHandler @ 0024ba2f */
        FUN_0019a930(param_2,param_1,param_3,lVar8,(long)param_10 - (long)(param_9 + -8),
                     0xffffffffffffffff);
        goto LAB_0024b7a5;
      }
    }
  }
  pplVar12 = (long **)FUN_00275550(0x78);
                    /* try { // try from 0024b977 to 0024b97b has its CatchHandler @ 0024ba34 */
  FUN_00249730(pplVar12,&local_b8);
  local_c0 = (long **)CONCAT71(local_c0._1_7_,local_cd);
  local_c8 = pplVar12;
                    /* try { // try from 0024b99c to 0024b9a0 has its CatchHandler @ 0024ba2f */
  FUN_0024a870(param_13);
LAB_0024b7a5:
  local_f8 = &local_c8;
  local_c8 = (long **)(param_9 + -param_8);
  local_c0 = pplVar12;
  FUN_0024a340(param_12,local_f8);
  FUN_00247330(&local_b8);
  return 1;
}


PUSH R15
PUSH R14
PUSH R13
PUSH R12
PUSH RBP
PUSH RBX
SUB RSP,0xd8
MOV RBX,qword ptr [RSP + 0x128]
MOV RBP,qword ptr [RSP + 0x120]
MOV RAX,RBX
SUB RAX,RBP
TEST RAX,RAX
JLE 0x0024b480
MOVZX R15D,byte ptr [RBP]
MOV EAX,R15D
AND EAX,0xfffffffd
CMP AL,0x1
JNZ 0x0024b480
LEA R14,[RBP + 0x1]
MOV dword ptr [RSP + 0xc],EDX
MOV RDX,RBX
MOV R12,RSI
MOV R13,RDI
SUB RDX,R14
XOR ESI,ESI
MOV RDI,R14
MOV qword ptr [RSP + 0x20],R9
MOV qword ptr [RSP + 0x18],R8
MOV qword ptr [RSP + 0x10],RCX
CALL 0x0013e1b0
TEST RAX,RAX
JZ 0x0024b480
CMP byte ptr [RBP + 0x1],0x65
LEA RDX,[RAX + 0x1]
MOV byte ptr [RSP + 0x3b],0x1
JZ 0x0024b4d0
CMP RBX,RDX
JA 0x0024b459
JMP 0x0024b480
ADD RDX,0x1
CMP RBX,RDX
JZ 0x0024b480
CMP byte ptr [RDX],0x0
JS 0x0024b450
LEA RAX,[RDX + 0x1]
CMP RBX,RAX
JBE 0x0024b480
CMP byte ptr [RDX + 0x1],0x0
JS 0x0024b475
JMP 0x0024b498
CMP byte ptr [RAX],0x0
JNS 0x0024b498
ADD RAX,0x1
CMP RBX,RAX
JNZ 0x0024b470
NOP
XOR EAX,EAX
ADD RSP,0xd8
POP RBX
POP RBP
POP R12
POP R13
POP R14
POP R15
RET
LEA RDX,[RAX + 0x1]
CMP R15B,0x1
JZ 0x0024b500
CMP RBX,RDX
JBE 0x0024b480
CMP byte ptr [RAX + 0x1],0x0
JS 0x0024b4c1
JMP 0x0024b8d0
CMP byte ptr [RDX],0x0
JNS 0x0024b8d0
ADD RDX,0x1
CMP RBX,RDX
JNZ 0x0024b4b8
JMP 0x0024b480
CMP byte ptr [RBP + 0x2],0x68
JNZ 0x0024b448
CMP byte ptr [RBP + 0x3],0x0
JNZ 0x0024b480
MOV RDI,RBX
SUB RDI,RDX
CMP RDI,0x7
JLE 0x0024b480
LEA R14,[RBP + 0x3]
LEA RDX,[RAX + 0x9]
MOV byte ptr [RSP + 0x3b],0x0
JMP 0x0024b448
MOV RSI,RBX
ADD RAX,0x2
SUB RSI,RDX
TEST RSI,RSI
JLE 0x0024b480
MOVZX EDX,byte ptr [R14]
CMP DL,0x7a
JZ 0x0024b910
TEST DL,DL
JZ 0x0024b955
MOV R10D,0xffffffff
XOR R9D,R9D
MOV ESI,0x1
CMP DL,0x50
JZ 0x0024b808
JBE 0x0024b7e0
CMP DL,0x52
JZ 0x0024b890
CMP DL,0x53
JNZ 0x0024b480
ADD R14,0x1
MOVZX EDX,byte ptr [R14]
TEST DL,DL
JNZ 0x0024b536
CMP R10D,-0x1
JZ 0x0024b952
MOVSXD RAX,R10D
MOV RDI,qword ptr [RSP + 0x130]
MOV byte ptr [RSP + 0x30],R9B
MOV RSI,RAX
MOV dword ptr [RSP + 0x28],R10D
MOV R15,RAX
CALL 0x001fab10
MOV R10D,dword ptr [RSP + 0x28]
MOVZX R9D,byte ptr [RSP + 0x30]
TEST EAX,EAX
JG 0x0024b480
MOV RDI,qword ptr [RSP + 0x130]
MOV dword ptr [RSP + 0x30],R10D
MOV byte ptr [RSP + 0x28],R9B
CALL 0x001faa60
MOVZX R9D,byte ptr [RSP + 0x28]
MOV R10D,dword ptr [RSP + 0x30]
CMP R15,RAX
JNZ 0x0024b480
MOV RDI,qword ptr [RSP + 0x130]
MOV dword ptr [RSP + 0x3c],R10D
MOV byte ptr [RSP + 0x30],R9B
CALL 0x001faa80
CMP EAX,-0x1
MOV dword ptr [RSP + 0x28],EAX
JZ 0x0024b480
MOV RAX,qword ptr [R12]
MOV RDI,R12
CALL qword ptr [RAX + 0x118]
MOV ECX,dword ptr [RSP + 0x28]
MOV R10D,dword ptr [RSP + 0x3c]
MOVZX R9D,byte ptr [RSP + 0x30]
CMP ECX,EAX
JC 0x0024b9be
MOV RAX,qword ptr [RSP + 0x18]
MOV EDI,0x18
XOR EDX,EDX
MOV ESI,ECX
DIV RDI
CMP RSI,RAX
JNC 0x0024b480
IMUL EAX,ECX,0x18
MOV RSI,qword ptr [RSP + 0x10]
MOV EAX,dword ptr [RSI + RAX*0x1]
CMP RAX,qword ptr [RSP + 0x110]
JNC 0x0024b480
MOV R15,qword ptr [RSP + 0x20]
ADD R15,RAX
LEA ESI,[R10 + 0x1]
MOV RDI,qword ptr [RSP + 0x130]
MOV byte ptr [RSP + 0x10],R9B
MOVSXD RSI,ESI
CALL 0x001fab10
MOVZX R9D,byte ptr [RSP + 0x10]
SUB EAX,0x1
MOV EDX,R9D
JNZ 0x0024b9a6
MOV RDI,qword ptr [RSP + 0x130]
MOV RSI,RBX
MOV byte ptr [RSP + 0x10],DL
SUB RSI,qword ptr [RSP + 0x118]
CALL 0x001fab10
MOVZX EDX,byte ptr [RSP + 0x10]
TEST EAX,EAX
JG 0x0024b480
LEA RAX,[RBP + -0x8]
MOV EDI,dword ptr [RSP + 0xc]
LEA R14,[RSP + 0x50]
MOV byte ptr [RSP + 0x68],DL
MOV qword ptr [RSP + 0x18],RAX
SUB RAX,qword ptr [RSP + 0x118]
MOV RDX,-0x1
MOV qword ptr [RSP + 0x20],RAX
MOV qword ptr [RSP + 0x60],RAX
LEA RAX,[R14 + 0x30]
MOV qword ptr [RSP + 0x50],R12
MOV dword ptr [RSP + 0x58],EDI
MOV qword ptr [RSP + 0x70],RAX
TEST R15,R15
JZ 0x0024b6fd
XOR EAX,EAX
MOV RCX,RDX
MOV RDI,R15
SCASB.REPNE RDI
MOV RAX,RCX
NOT RAX
LEA RDX,[R15 + RAX*0x1 + -0x1]
LEA RDI,[R14 + 0x20]
MOV RSI,R15
CALL 0x0015cbe0
LEA RAX,[R14 + 0x68]
LEA RDI,[R14 + 0x58]
MOV RDX,RBX
MOV RSI,RBP
MOV qword ptr [RSP + 0x90],0x0
MOV qword ptr [RSP + 0x98],0x0
MOV qword ptr [RSP + 0xa0],0x0
MOV qword ptr [RSP + 0xa8],RAX
CALL 0x0015cbe0
CMP byte ptr [RSP + 0x3b],0x0
JZ 0x0024b964
LEA RSI,[RSP + 0x40]
LEA RDI,[R13 + 0x40]
MOV qword ptr [RSP + 0x40],R14
MOV qword ptr [RSP + 0x10],RSI
CALL 0x00248330
LEA RDX,[R13 + 0x48]
CMP RAX,RDX
JZ 0x0024b9cf
MOV R15,qword ptr [RAX + 0x20]
TEST R15,R15
JZ 0x0024b964
SUB RBX,qword ptr [RSP + 0x18]
MOV RCX,qword ptr [RSP + 0x20]
MOV RSI,R13
MOV RDI,R12
MOV EDX,dword ptr [RSP + 0xc]
OR R9,-0x1
MOV R8,RBX
CALL 0x0019a930
MOV RSI,qword ptr [RSP + 0x10]
MOV RDI,qword ptr [RSP + 0x138]
MOV qword ptr [RSP + 0x48],R15
SUB RBP,qword ptr [RSP + 0x118]
MOV qword ptr [RSP + 0x40],RBP
CALL 0x0024a340
MOV RDI,R14
CALL 0x00247330
MOV EAX,0x1
JMP 0x0024b482
CMP DL,0x4c
JNZ 0x0024b480
MOV RDX,RBX
SUB RDX,RAX
TEST RDX,RDX
JLE 0x0024b480
ADD RAX,0x1
JMP 0x0024b557
MOV RDX,RBX
SUB RDX,RAX
TEST RDX,RDX
JLE 0x0024b480
MOVZX ECX,byte ptr [RAX]
ADD RAX,0x1
MOV EDX,ECX
AND EDX,0x60
CMP DL,0x60
JZ 0x0024b480
MOV EDX,ECX
AND EDX,0x7
CMP DL,0x2
JZ 0x0024b948
JBE 0x0024b87f
CMP DL,0x3
JZ 0x0024b8d9
CMP DL,0x4
JNZ 0x0024b480
MOV EDX,0x8
MOV R8,RBX
AND ECX,0xfffffff0
SUB R8,RAX
MOV EDI,R8D
CMP CL,0x50
JZ 0x0024b8e3
MOV R10D,EAX
SUB R10D,dword ptr [RSP + 0x118]
CMP EDX,EDI
JA 0x0024b480
ADD RAX,RDX
JMP 0x0024b557
TEST DL,DL
JZ 0x0024b84e
JMP 0x0024b480
MOV RDX,RBX
SUB RDX,RAX
TEST RDX,RDX
JLE 0x0024b480
MOVZX R9D,byte ptr [RAX]
MOV ECX,R9D
AND ECX,0x7
CMP CL,0x4
JA 0x0024b480
MOV RDX,RSI
SHL RDX,CL
AND EDX,0x1d
JNZ 0x0024b7f8
JMP 0x0024b480
LEA RAX,[RDX + 0x1]
JMP 0x0024b513
MOV EDX,0x4
JMP 0x0024b853
MOV RCX,RAX
SUB RCX,RBP
LEA EDI,[RDX + RCX*0x1 + -0x1]
MOV ECX,EDX
NEG ECX
AND ECX,EDI
CMP R8D,ECX
JC 0x0024b480
ADD RAX,RCX
MOV EDI,EBX
SUB EDI,EAX
JMP 0x0024b864
CMP RBX,RAX
JA 0x0024b92d
JMP 0x0024b480
ADD RAX,0x1
CMP RBX,RAX
JZ 0x0024b480
CMP byte ptr [RAX],0x0
JS 0x0024b920
MOVZX EDX,byte ptr [R14 + 0x1]
ADD RAX,0x1
TEST DL,DL
JZ 0x0024b955
ADD R14,0x1
JMP 0x0024b528
MOV EDX,0x2
JMP 0x0024b853
MOV EDX,R9D
LEA R15,[0x323456]
JMP 0x0024b679
MOV RBP,R12
MOV EDI,0x78
CALL 0x00275550
MOV RSI,R14
MOV RDI,RAX
MOV R15,RAX
CALL 0x00249730
MOVZX EAX,byte ptr [RSP + 0x3b]
LEA RSI,[RSP + 0x40]
MOV qword ptr [RSP + 0x40],R15
MOV RDI,qword ptr [RSP + 0x140]
MOV qword ptr [RSP + 0x10],RSI
MOV byte ptr [RSP + 0x48],AL
CALL 0x0024a870
JMP 0x0024b7a5
LEA RDX,[0x3242b8]
MOV ESI,0x3af
LEA RDI,[0x32417f]
CALL 0x0016cdf0
MOV byte ptr [RSP + 0x3b],0x0
LEA R15,[0x323456]
JMP 0x0024b64e
MOV RAX,qword ptr [RSP + 0x140]
MOV RDX,qword ptr [RAX]
MOV RCX,qword ptr [RAX + 0x8]
CMP RDX,RCX
JZ 0x0024b964
MOV qword ptr [RSP + 0x28],R13
MOV R13,RBX
MOV RBX,RDX
MOV qword ptr [RSP + 0x30],R12
MOV R12,RBP
MOV RBP,RCX
JMP 0x0024ba08
ADD RBX,0x10
CMP RBP,RBX
JZ 0x0024b961
MOV R15,qword ptr [RBX]
MOV RSI,R14
MOV RDI,R15
CALL 0x002476d0
TEST AL,AL
JZ 0x0024b9fb
MOV RBP,R12
MOV RBX,R13
MOV R12,qword ptr [RSP + 0x30]
MOV R13,qword ptr [RSP + 0x28]
JMP 0x0024b77c
(translation_unit "/* WARNING: Type propagation algorithm not settling */\n\nundefined8\nFUN_0024b3c0(long param_1,long *param_2,undefined4 param_3,long param_4,ulong param_5,long param_6,\n            ulong param_7,long param_8,byte *param_9,byte *param_10,undefined8 param_11,\n            undefined8 param_12,undefined8 *param_13)\n\n{\n  long *plVar1;\n  char cVar2;\n  int iVar3;\n  uint uVar4;\n  uint uVar5;\n  int iVar6;\n  void *pvVar7;\n  long lVar8;\n  ulong uVar9;\n  long lVar10;\n  byte *pbVar11;\n  long **pplVar12;\n  uint uVar13;\n  byte bVar14;\n  byte bVar15;\n  byte bVar16;\n  byte *pbVar17;\n  ulong extraout_RDX;\n  ulong uVar18;\n  char *pcVar19;\n  long *plVar20;\n  byte *__s;\n  char *pcVar21;\n  byte bVar22;\n  long ***local_f8;\n  char local_cd;\n  long **local_c8;\n  long **local_c0;\n  long *local_b8;\n  undefined4 local_b0;\n  long local_a8;\n  byte local_a0;\n  undefined1 *local_98 [2];\n  undefined1 local_88 [16];\n  undefined8 local_78;\n  undefined8 local_70;\n  undefined8 local_68;\n  undefined1 *local_60 [2];\n  undefined1 local_50 [32];\n  \n  bVar22 = 0;\n  if (param_10 == param_9 || (long)param_10 - (long)param_9 < 0) {\n    return 0;\n  }\n  bVar14 = *param_9;\n  if ((bVar14 & 0xfd) != 1) {\n    return 0;\n  }\n  __s = param_9 + 1;\n  pvVar7 = memchr(__s,0,(long)param_10 - (long)__s);\n  if (pvVar7 == (void *)0x0) {\n    return 0;\n  }\n  pbVar17 = (byte *)((long)pvVar7 + 1);\n  local_cd = '\x01';\n  if ((param_9[1] == 0x65) && (param_9[2] == 0x68)) {\n    if (param_9[3] != 0) {\n      return 0;\n    }\n    if ((long)param_10 - (long)pbVar17 < 8) {\n      return 0;\n    }\n    __s = param_9 + 3;\n    pbVar17 = (byte *)((long)pvVar7 + 9);\n    local_cd = '\0';\n  }\n  if (param_10 <= pbVar17) {\n    return 0;\n  }\n  while ((char)*pbVar17 < '\0') {\n    pbVar17 = pbVar17 + 1;\n    if (param_10 == pbVar17) {\n      return 0;\n    }\n  }\n  pbVar11 = pbVar17 + 1;\n  if (param_10 <= pbVar11) {\n    return 0;\n  }\n  bVar15 = pbVar17[1];\n  while ((char)bVar15 < '\0') {\n    pbVar11 = pbVar11 + 1;\n    if (param_10 == pbVar11) {\n      return 0;\n    }\n    bVar15 = *pbVar11;\n  }\n  pbVar17 = pbVar11 + 1;\n  if (bVar14 == 1) {\n    pbVar11 = pbVar11 + 2;\n    if (param_10 == pbVar17 || (long)param_10 - (long)pbVar17 < 0) {\n      return 0;\n    }\n  }\n  else {\n    if (param_10 <= pbVar17) {\n      return 0;\n    }\n    bVar14 = pbVar11[1];\n    while ((char)bVar14 < '\0') {\n      pbVar17 = pbVar17 + 1;\n      if (param_10 == pbVar17) {\n        return 0;\n      }\n      bVar14 = *pbVar17;\n    }\n    pbVar11 = pbVar17 + 1;\n  }\n  bVar14 = *__s;\n  if (bVar14 == 0x7a) {\n    if (param_10 <= pbVar11) {\n      return 0;\n    }\n    while ((char)*pbVar11 < '\0') {\n      pbVar11 = pbVar11 + 1;\n      if (param_10 == pbVar11) {\n        return 0;\n      }\n    }\n    bVar14 = __s[1];\n    pbVar11 = pbVar11 + 1;\n    if (bVar14 != 0) {\n      __s = __s + 1;\n      goto LAB_0024b528;\n    }\nLAB_0024b955:\n    pcVar21 = "";\n  }\n  else {\n    if (bVar14 == 0) goto LAB_0024b955;\nLAB_0024b528:\n    iVar6 = -1;\n    bVar16 = 0;\n    bVar15 = bVar14;\n    do {\n      bVar14 = bVar16;\n      if (bVar15 == 0x50) {\n        if (param_10 == pbVar11 || (long)param_10 - (long)pbVar11 < 0) {\n          return 0;\n        }\n        bVar15 = *pbVar11;\n        pbVar11 = pbVar11 + 1;\n        if ((bVar15 & 0x60) == 0x60) {\n          return 0;\n        }\n        bVar16 = bVar15 & 7;\n        if (bVar16 == 2) {\n          lVar8 = 2;\n        }\n        else {\n          if (bVar16 < 3) {\n            if (bVar16 != 0) {\n              return 0;\n            }\n          }\n          else {\n            if (bVar16 == 3) {\n              lVar8 = 4;\n              goto LAB_0024b853;\n            }\n            if (bVar16 != 4) {\n              return 0;\n            }\n          }\n          lVar8 = 8;\n        }\nLAB_0024b853:\n        uVar5 = (int)param_10 - (int)pbVar11;\n        uVar4 = (uint)lVar8;\n        if ((bVar15 & 0xf0) == 0x50) {\n          uVar13 = -uVar4 & (uVar4 - 1) + ((int)pbVar11 - (int)param_9);\n          if (uVar5 < uVar13) {\n            return 0;\n          }\n          pbVar11 = pbVar11 + uVar13;\n          uVar5 = (int)param_10 - (int)pbVar11;\n        }\n        iVar6 = (int)pbVar11 - (int)param_8;\n        if (uVar5 < uVar4) {\n          return 0;\n        }\n        pbVar11 = pbVar11 + lVar8;\n      }\n      else {\n        if (bVar15 < 0x51) {\n          if (bVar15 != 0x4c) {\n            return 0;\n          }\n          if (param_10 == pbVar11 || (long)param_10 - (long)pbVar11 < 0) {\n            return 0;\n          }\n        }\n        else {\n          if (bVar15 != 0x52) {\n            if (bVar15 != 0x53) {\n              return 0;\n            }\n            goto LAB_0024b557;\n          }\n          if (param_10 == pbVar11 || (long)param_10 - (long)pbVar11 < 0) {\n            return 0;\n          }\n          bVar14 = *pbVar11;\n          if (4 < (bVar14 & 7)) {\n            return 0;\n          }\n          if ((1L << (bVar14 & 7) & 0x1dU) == 0) {\n            return 0;\n          }\n        }\n        pbVar11 = pbVar11 + 1;\n      }\nLAB_0024b557:\n      __s = __s + 1;\n      bVar15 = *__s;\n      bVar16 = bVar14;\n    } while (bVar15 != 0);\n    if (iVar6 == -1) goto LAB_0024b955;\n    iVar3 = FUN_001fab10(param_11,(long)iVar6);\n    if (0 < iVar3) {\n      return 0;\n    }\n    lVar8 = FUN_001faa60(param_11);\n    if (iVar6 != lVar8) {\n      return 0;\n    }\n    uVar4 = FUN_001faa80(param_11);\n    if (uVar4 == 0xffffffff) {\n      return 0;\n    }\n    uVar5 = (**(code **)(*param_2 + 0x118))(param_2);\n    if (uVar4 < uVar5) {\n      local_cd = '\0';\n      pcVar21 = "";\n      uVar18 = extraout_RDX;\n    }\n    else {\n      uVar18 = param_5 % 0x18;\n      if (param_5 / 0x18 <= (ulong)uVar4) {\n        return 0;\n      }\n      uVar9 = (ulong)*(uint *)(param_4 + (ulong)(uVar4 * 0x18));\n      if (param_7 <= uVar9) {\n        return 0;\n      }\n      pcVar21 = (char *)(param_6 + uVar9);\n    }\n    iVar6 = FUN_001fab10(param_11,(long)(iVar6 + 1),uVar18);\n    if (iVar6 != 1) {\n                    /* WARNING: Subroutine does not return */\n      FUN_0016cdf0("../../gold/ehframe.cc",0x3af,"read_cie");\n    }\n  }\n  iVar6 = FUN_001fab10(param_11,(long)param_10 - param_8);\n  if (0 < iVar6) {\n    return 0;\n  }\n  lVar8 = (long)(param_9 + -8) - param_8;\n  pcVar19 = (char *)0xffffffffffffffff;\n  local_98[0] = local_88;\n  if (pcVar21 != (char *)0x0) {\n    uVar18 = 0xffffffffffffffff;\n    pcVar19 = pcVar21;\n    do {\n      if (uVar18 == 0) break;\n      uVar18 = uVar18 - 1;\n      cVar2 = *pcVar19;\n      pcVar19 = pcVar19 + (ulong)bVar22 * -2 + 1;\n    } while (cVar2 != '\0');\n    pcVar19 = pcVar21 + (~uVar18 - 1);\n  }\n  local_b8 = param_2;\n  local_b0 = param_3;\n  local_a8 = lVar8;\n  local_a0 = bVar14;\n  FUN_0015cbe0(local_98,pcVar21,pcVar19);\n  local_60[0] = local_50;\n  local_78 = 0;\n  local_70 = 0;\n  local_68 = 0;\n                    /* try { // try from 0024b743 to 0024b747 has its CatchHandler @ 0024ba39 */\n  FUN_0015cbe0(local_60,param_9,param_10);\n  if (local_cd != '\0') {\n    local_c8 = &local_b8;\n    lVar10 = FUN_00248330(param_1 + 0x40);\n    if (lVar10 == param_1 + 0x48) {\n      plVar1 = (long *)param_13[1];\n      for (plVar20 = (long *)*param_13; plVar20 != plVar1; plVar20 = plVar20 + 2) {\n        pplVar12 = (long **)*plVar20;\n        cVar2 = FUN_002476d0(pplVar12,&local_b8);\n        if (cVar2 != '\0') goto LAB_0024b77c;\n      }\n    }\n    else {\n      pplVar12 = *(long ***)(lVar10 + 0x20);\nLAB_0024b77c:\n      if (pplVar12 != (long **)0x0) {\n                    /* try { // try from 0024b7a0 to 0024b96d has its CatchHandler @ 0024ba2f */\n        FUN_0019a930(param_2,param_1,param_3,lVar8,(long)param_10 - (long)(param_9 + -8),\n                     0xffffffffffffffff);\n        goto LAB_0024b7a5;\n      }\n    }\n  }\n  pplVar12 = (long **)FUN_00275550(0x78);\n                    /* try { // try from 0024b977 to 0024b97b has its CatchHandler @ 0024ba34 */\n  FUN_00249730(pplVar12,&local_b8);\n  local_c0 = (long **)CONCAT71(local_c0._1_7_,local_cd);\n  local_c8 = pplVar12;\n                    /* try { // try from 0024b99c to 0024b9a0 has its CatchHandler @ 0024ba2f */\n  FUN_0024a870(param_13);\nLAB_0024b7a5:\n  local_f8 = &local_c8;\n  local_c8 = (long **)(param_9 + -param_8);\n  local_c0 = pplVar12;\n  FUN_0024a340(param_12,local_f8);\n  FUN_00247330(&local_b8);\n  return 1;\n}\n\n" comment (function_definition "undefined8\nFUN_0024b3c0(long param_1,long *param_2,undefined4 param_3,long param_4,ulong param_5,long param_6,\n            ulong param_7,long param_8,byte *param_9,byte *param_10,undefined8 param_11,\n            undefined8 param_12,undefined8 *param_13)\n\n{\n  long *plVar1;\n  char cVar2;\n  int iVar3;\n  uint uVar4;\n  uint uVar5;\n  int iVar6;\n  void *pvVar7;\n  long lVar8;\n  ulong uVar9;\n  long lVar10;\n  byte *pbVar11;\n  long **pplVar12;\n  uint uVar13;\n  byte bVar14;\n  byte bVar15;\n  byte bVar16;\n  byte *pbVar17;\n  ulong extraout_RDX;\n  ulong uVar18;\n  char *pcVar19;\n  long *plVar20;\n  byte *__s;\n  char *pcVar21;\n  byte bVar22;\n  long ***local_f8;\n  char local_cd;\n  long **local_c8;\n  long **local_c0;\n  long *local_b8;\n  undefined4 local_b0;\n  long local_a8;\n  byte local_a0;\n  undefined1 *local_98 [2];\n  undefined1 local_88 [16];\n  undefined8 local_78;\n  undefined8 local_70;\n  undefined8 local_68;\n  undefined1 *local_60 [2];\n  undefined1 local_50 [32];\n  \n  bVar22 = 0;\n  if (param_10 == param_9 || (long)param_10 - (long)param_9 < 0) {\n    return 0;\n  }\n  bVar14 = *param_9;\n  if ((bVar14 & 0xfd) != 1) {\n    return 0;\n  }\n  __s = param_9 + 1;\n  pvVar7 = memchr(__s,0,(long)param_10 - (long)__s);\n  if (pvVar7 == (void *)0x0) {\n    return 0;\n  }\n  pbVar17 = (byte *)((long)pvVar7 + 1);\n  local_cd = '\x01';\n  if ((param_9[1] == 0x65) && (param_9[2] == 0x68)) {\n    if (param_9[3] != 0) {\n      return 0;\n    }\n    if ((long)param_10 - (long)pbVar17 < 8) {\n      return 0;\n    }\n    __s = param_9 + 3;\n    pbVar17 = (byte *)((long)pvVar7 + 9);\n    local_cd = '\0';\n  }\n  if (param_10 <= pbVar17) {\n    return 0;\n  }\n  while ((char)*pbVar17 < '\0') {\n    pbVar17 = pbVar17 + 1;\n    if (param_10 == pbVar17) {\n      return 0;\n    }\n  }\n  pbVar11 = pbVar17 + 1;\n  if (param_10 <= pbVar11) {\n    return 0;\n  }\n  bVar15 = pbVar17[1];\n  while ((char)bVar15 < '\0') {\n    pbVar11 = pbVar11 + 1;\n    if (param_10 == pbVar11) {\n      return 0;\n    }\n    bVar15 = *pbVar11;\n  }\n  pbVar17 = pbVar11 + 1;\n  if (bVar14 == 1) {\n    pbVar11 = pbVar11 + 2;\n    if (param_10 == pbVar17 || (long)param_10 - (long)pbVar17 < 0) {\n      return 0;\n    }\n  }\n  else {\n    if (param_10 <= pbVar17) {\n      return 0;\n    }\n    bVar14 = pbVar11[1];\n    while ((char)bVar14 < '\0') {\n      pbVar17 = pbVar17 + 1;\n      if (param_10 == pbVar17) {\n        return 0;\n      }\n      bVar14 = *pbVar17;\n    }\n    pbVar11 = pbVar17 + 1;\n  }\n  bVar14 = *__s;\n  if (bVar14 == 0x7a) {\n    if (param_10 <= pbVar11) {\n      return 0;\n    }\n    while ((char)*pbVar11 < '\0') {\n      pbVar11 = pbVar11 + 1;\n      if (param_10 == pbVar11) {\n        return 0;\n      }\n    }\n    bVar14 = __s[1];\n    pbVar11 = pbVar11 + 1;\n    if (bVar14 != 0) {\n      __s = __s + 1;\n      goto LAB_0024b528;\n    }\nLAB_0024b955:\n    pcVar21 = "";\n  }\n  else {\n    if (bVar14 == 0) goto LAB_0024b955;\nLAB_0024b528:\n    iVar6 = -1;\n    bVar16 = 0;\n    bVar15 = bVar14;\n    do {\n      bVar14 = bVar16;\n      if (bVar15 == 0x50) {\n        if (param_10 == pbVar11 || (long)param_10 - (long)pbVar11 < 0) {\n          return 0;\n        }\n        bVar15 = *pbVar11;\n        pbVar11 = pbVar11 + 1;\n        if ((bVar15 & 0x60) == 0x60) {\n          return 0;\n        }\n        bVar16 = bVar15 & 7;\n        if (bVar16 == 2) {\n          lVar8 = 2;\n        }\n        else {\n          if (bVar16 < 3) {\n            if (bVar16 != 0) {\n              return 0;\n            }\n          }\n          else {\n            if (bVar16 == 3) {\n              lVar8 = 4;\n              goto LAB_0024b853;\n            }\n            if (bVar16 != 4) {\n              return 0;\n            }\n          }\n          lVar8 = 8;\n        }\nLAB_0024b853:\n        uVar5 = (int)param_10 - (int)pbVar11;\n        uVar4 = (uint)lVar8;\n        if ((bVar15 & 0xf0) == 0x50) {\n          uVar13 = -uVar4 & (uVar4 - 1) + ((int)pbVar11 - (int)param_9);\n          if (uVar5 < uVar13) {\n            return 0;\n          }\n          pbVar11 = pbVar11 + uVar13;\n          uVar5 = (int)param_10 - (int)pbVar11;\n        }\n        iVar6 = (int)pbVar11 - (int)param_8;\n        if (uVar5 < uVar4) {\n          return 0;\n        }\n        pbVar11 = pbVar11 + lVar8;\n      }\n      else {\n        if (bVar15 < 0x51) {\n          if (bVar15 != 0x4c) {\n            return 0;\n          }\n          if (param_10 == pbVar11 || (long)param_10 - (long)pbVar11 < 0) {\n            return 0;\n          }\n        }\n        else {\n          if (bVar15 != 0x52) {\n            if (bVar15 != 0x53) {\n              return 0;\n            }\n            goto LAB_0024b557;\n          }\n          if (param_10 == pbVar11 || (long)param_10 - (long)pbVar11 < 0) {\n            return 0;\n          }\n          bVar14 = *pbVar11;\n          if (4 < (bVar14 & 7)) {\n            return 0;\n          }\n          if ((1L << (bVar14 & 7) & 0x1dU) == 0) {\n            return 0;\n          }\n        }\n        pbVar11 = pbVar11 + 1;\n      }\nLAB_0024b557:\n      __s = __s + 1;\n      bVar15 = *__s;\n      bVar16 = bVar14;\n    } while (bVar15 != 0);\n    if (iVar6 == -1) goto LAB_0024b955;\n    iVar3 = FUN_001fab10(param_11,(long)iVar6);\n    if (0 < iVar3) {\n      return 0;\n    }\n    lVar8 = FUN_001faa60(param_11);\n    if (iVar6 != lVar8) {\n      return 0;\n    }\n    uVar4 = FUN_001faa80(param_11);\n    if (uVar4 == 0xffffffff) {\n      return 0;\n    }\n    uVar5 = (**(code **)(*param_2 + 0x118))(param_2);\n    if (uVar4 < uVar5) {\n      local_cd = '\0';\n      pcVar21 = "";\n      uVar18 = extraout_RDX;\n    }\n    else {\n      uVar18 = param_5 % 0x18;\n      if (param_5 / 0x18 <= (ulong)uVar4) {\n        return 0;\n      }\n      uVar9 = (ulong)*(uint *)(param_4 + (ulong)(uVar4 * 0x18));\n      if (param_7 <= uVar9) {\n        return 0;\n      }\n      pcVar21 = (char *)(param_6 + uVar9);\n    }\n    iVar6 = FUN_001fab10(param_11,(long)(iVar6 + 1),uVar18);\n    if (iVar6 != 1) {\n                    /* WARNING: Subroutine does not return */\n      FUN_0016cdf0("../../gold/ehframe.cc",0x3af,"read_cie");\n    }\n  }\n  iVar6 = FUN_001fab10(param_11,(long)param_10 - param_8);\n  if (0 < iVar6) {\n    return 0;\n  }\n  lVar8 = (long)(param_9 + -8) - param_8;\n  pcVar19 = (char *)0xffffffffffffffff;\n  local_98[0] = local_88;\n  if (pcVar21 != (char *)0x0) {\n    uVar18 = 0xffffffffffffffff;\n    pcVar19 = pcVar21;\n    do {\n      if (uVar18 == 0) break;\n      uVar18 = uVar18 - 1;\n      cVar2 = *pcVar19;\n      pcVar19 = pcVar19 + (ulong)bVar22 * -2 + 1;\n    } while (cVar2 != '\0');\n    pcVar19 = pcVar21 + (~uVar18 - 1);\n  }\n  local_b8 = param_2;\n  local_b0 = param_3;\n  local_a8 = lVar8;\n  local_a0 = bVar14;\n  FUN_0015cbe0(local_98,pcVar21,pcVar19);\n  local_60[0] = local_50;\n  local_78 = 0;\n  local_70 = 0;\n  local_68 = 0;\n                    /* try { // try from 0024b743 to 0024b747 has its CatchHandler @ 0024ba39 */\n  FUN_0015cbe0(local_60,param_9,param_10);\n  if (local_cd != '\0') {\n    local_c8 = &local_b8;\n    lVar10 = FUN_00248330(param_1 + 0x40);\n    if (lVar10 == param_1 + 0x48) {\n      plVar1 = (long *)param_13[1];\n      for (plVar20 = (long *)*param_13; plVar20 != plVar1; plVar20 = plVar20 + 2) {\n        pplVar12 = (long **)*plVar20;\n        cVar2 = FUN_002476d0(pplVar12,&local_b8);\n        if (cVar2 != '\0') goto LAB_0024b77c;\n      }\n    }\n    else {\n      pplVar12 = *(long ***)(lVar10 + 0x20);\nLAB_0024b77c:\n      if (pplVar12 != (long **)0x0) {\n                    /* try { // try from 0024b7a0 to 0024b96d has its CatchHandler @ 0024ba2f */\n        FUN_0019a930(param_2,param_1,param_3,lVar8,(long)param_10 - (long)(param_9 + -8),\n                     0xffffffffffffffff);\n        goto LAB_0024b7a5;\n      }\n    }\n  }\n  pplVar12 = (long **)FUN_00275550(0x78);\n                    /* try { // try from 0024b977 to 0024b97b has its CatchHandler @ 0024ba34 */\n  FUN_00249730(pplVar12,&local_b8);\n  local_c0 = (long **)CONCAT71(local_c0._1_7_,local_cd);\n  local_c8 = pplVar12;\n                    /* try { // try from 0024b99c to 0024b9a0 has its CatchHandler @ 0024ba2f */\n  FUN_0024a870(param_13);\nLAB_0024b7a5:\n  local_f8 = &local_c8;\n  local_c8 = (long **)(param_9 + -param_8);\n  local_c0 = pplVar12;\n  FUN_0024a340(param_12,local_f8);\n  FUN_00247330(&local_b8);\n  return 1;\n}" type_identifier (function_declarator "FUN_0024b3c0(long param_1,long *param_2,undefined4 param_3,long param_4,ulong param_5,long param_6,\n            ulong param_7,long param_8,byte *param_9,byte *param_10,undefined8 param_11,\n            undefined8 param_12,undefined8 *param_13)" identifier (parameter_list "(long param_1,long *param_2,undefined4 param_3,long param_4,ulong param_5,long param_6,\n            ulong param_7,long param_8,byte *param_9,byte *param_10,undefined8 param_11,\n            undefined8 param_12,undefined8 *param_13)" ( (parameter_declaration "long param_1" (sized_type_specifier "long" long) identifier) , (parameter_declaration "long *param_2" (sized_type_specifier "long" long) (pointer_declarator "*param_2" * identifier)) , (parameter_declaration "undefined4 param_3" type_identifier identifier) , (parameter_declaration "long param_4" (sized_type_specifier "long" long) identifier) , (parameter_declaration "ulong param_5" type_identifier identifier) , (parameter_declaration "long param_6" (sized_type_specifier "long" long) identifier) , (parameter_declaration "ulong param_7" type_identifier identifier) , (parameter_declaration "long param_8" (sized_type_specifier "long" long) identifier) , (parameter_declaration "byte *param_9" type_identifier (pointer_declarator "*param_9" * identifier)) , (parameter_declaration "byte *param_10" type_identifier (pointer_declarator "*param_10" * identifier)) , (parameter_declaration "undefined8 param_11" type_identifier identifier) , (parameter_declaration "undefined8 param_12" type_identifier identifier) , (parameter_declaration "undefined8 *param_13" type_identifier (pointer_declarator "*param_13" * identifier)) ))) (compound_statement "{\n  long *plVar1;\n  char cVar2;\n  int iVar3;\n  uint uVar4;\n  uint uVar5;\n  int iVar6;\n  void *pvVar7;\n  long lVar8;\n  ulong uVar9;\n  long lVar10;\n  byte *pbVar11;\n  long **pplVar12;\n  uint uVar13;\n  byte bVar14;\n  byte bVar15;\n  byte bVar16;\n  byte *pbVar17;\n  ulong extraout_RDX;\n  ulong uVar18;\n  char *pcVar19;\n  long *plVar20;\n  byte *__s;\n  char *pcVar21;\n  byte bVar22;\n  long ***local_f8;\n  char local_cd;\n  long **local_c8;\n  long **local_c0;\n  long *local_b8;\n  undefined4 local_b0;\n  long local_a8;\n  byte local_a0;\n  undefined1 *local_98 [2];\n  undefined1 local_88 [16];\n  undefined8 local_78;\n  undefined8 local_70;\n  undefined8 local_68;\n  undefined1 *local_60 [2];\n  undefined1 local_50 [32];\n  \n  bVar22 = 0;\n  if (param_10 == param_9 || (long)param_10 - (long)param_9 < 0) {\n    return 0;\n  }\n  bVar14 = *param_9;\n  if ((bVar14 & 0xfd) != 1) {\n    return 0;\n  }\n  __s = param_9 + 1;\n  pvVar7 = memchr(__s,0,(long)param_10 - (long)__s);\n  if (pvVar7 == (void *)0x0) {\n    return 0;\n  }\n  pbVar17 = (byte *)((long)pvVar7 + 1);\n  local_cd = '\x01';\n  if ((param_9[1] == 0x65) && (param_9[2] == 0x68)) {\n    if (param_9[3] != 0) {\n      return 0;\n    }\n    if ((long)param_10 - (long)pbVar17 < 8) {\n      return 0;\n    }\n    __s = param_9 + 3;\n    pbVar17 = (byte *)((long)pvVar7 + 9);\n    local_cd = '\0';\n  }\n  if (param_10 <= pbVar17) {\n    return 0;\n  }\n  while ((char)*pbVar17 < '\0') {\n    pbVar17 = pbVar17 + 1;\n    if (param_10 == pbVar17) {\n      return 0;\n    }\n  }\n  pbVar11 = pbVar17 + 1;\n  if (param_10 <= pbVar11) {\n    return 0;\n  }\n  bVar15 = pbVar17[1];\n  while ((char)bVar15 < '\0') {\n    pbVar11 = pbVar11 + 1;\n    if (param_10 == pbVar11) {\n      return 0;\n    }\n    bVar15 = *pbVar11;\n  }\n  pbVar17 = pbVar11 + 1;\n  if (bVar14 == 1) {\n    pbVar11 = pbVar11 + 2;\n    if (param_10 == pbVar17 || (long)param_10 - (long)pbVar17 < 0) {\n      return 0;\n    }\n  }\n  else {\n    if (param_10 <= pbVar17) {\n      return 0;\n    }\n    bVar14 = pbVar11[1];\n    while ((char)bVar14 < '\0') {\n      pbVar17 = pbVar17 + 1;\n      if (param_10 == pbVar17) {\n        return 0;\n      }\n      bVar14 = *pbVar17;\n    }\n    pbVar11 = pbVar17 + 1;\n  }\n  bVar14 = *__s;\n  if (bVar14 == 0x7a) {\n    if (param_10 <= pbVar11) {\n      return 0;\n    }\n    while ((char)*pbVar11 < '\0') {\n      pbVar11 = pbVar11 + 1;\n      if (param_10 == pbVar11) {\n        return 0;\n      }\n    }\n    bVar14 = __s[1];\n    pbVar11 = pbVar11 + 1;\n    if (bVar14 != 0) {\n      __s = __s + 1;\n      goto LAB_0024b528;\n    }\nLAB_0024b955:\n    pcVar21 = "";\n  }\n  else {\n    if (bVar14 == 0) goto LAB_0024b955;\nLAB_0024b528:\n    iVar6 = -1;\n    bVar16 = 0;\n    bVar15 = bVar14;\n    do {\n      bVar14 = bVar16;\n      if (bVar15 == 0x50) {\n        if (param_10 == pbVar11 || (long)param_10 - (long)pbVar11 < 0) {\n          return 0;\n        }\n        bVar15 = *pbVar11;\n        pbVar11 = pbVar11 + 1;\n        if ((bVar15 & 0x60) == 0x60) {\n          return 0;\n        }\n        bVar16 = bVar15 & 7;\n        if (bVar16 == 2) {\n          lVar8 = 2;\n        }\n        else {\n          if (bVar16 < 3) {\n            if (bVar16 != 0) {\n              return 0;\n            }\n          }\n          else {\n            if (bVar16 == 3) {\n              lVar8 = 4;\n              goto LAB_0024b853;\n            }\n            if (bVar16 != 4) {\n              return 0;\n            }\n          }\n          lVar8 = 8;\n        }\nLAB_0024b853:\n        uVar5 = (int)param_10 - (int)pbVar11;\n        uVar4 = (uint)lVar8;\n        if ((bVar15 & 0xf0) == 0x50) {\n          uVar13 = -uVar4 & (uVar4 - 1) + ((int)pbVar11 - (int)param_9);\n          if (uVar5 < uVar13) {\n            return 0;\n          }\n          pbVar11 = pbVar11 + uVar13;\n          uVar5 = (int)param_10 - (int)pbVar11;\n        }\n        iVar6 = (int)pbVar11 - (int)param_8;\n        if (uVar5 < uVar4) {\n          return 0;\n        }\n        pbVar11 = pbVar11 + lVar8;\n      }\n      else {\n        if (bVar15 < 0x51) {\n          if (bVar15 != 0x4c) {\n            return 0;\n          }\n          if (param_10 == pbVar11 || (long)param_10 - (long)pbVar11 < 0) {\n            return 0;\n          }\n        }\n        else {\n          if (bVar15 != 0x52) {\n            if (bVar15 != 0x53) {\n              return 0;\n            }\n            goto LAB_0024b557;\n          }\n          if (param_10 == pbVar11 || (long)param_10 - (long)pbVar11 < 0) {\n            return 0;\n          }\n          bVar14 = *pbVar11;\n          if (4 < (bVar14 & 7)) {\n            return 0;\n          }\n          if ((1L << (bVar14 & 7) & 0x1dU) == 0) {\n            return 0;\n          }\n        }\n        pbVar11 = pbVar11 + 1;\n      }\nLAB_0024b557:\n      __s = __s + 1;\n      bVar15 = *__s;\n      bVar16 = bVar14;\n    } while (bVar15 != 0);\n    if (iVar6 == -1) goto LAB_0024b955;\n    iVar3 = FUN_001fab10(param_11,(long)iVar6);\n    if (0 < iVar3) {\n      return 0;\n    }\n    lVar8 = FUN_001faa60(param_11);\n    if (iVar6 != lVar8) {\n      return 0;\n    }\n    uVar4 = FUN_001faa80(param_11);\n    if (uVar4 == 0xffffffff) {\n      return 0;\n    }\n    uVar5 = (**(code **)(*param_2 + 0x118))(param_2);\n    if (uVar4 < uVar5) {\n      local_cd = '\0';\n      pcVar21 = "";\n      uVar18 = extraout_RDX;\n    }\n    else {\n      uVar18 = param_5 % 0x18;\n      if (param_5 / 0x18 <= (ulong)uVar4) {\n        return 0;\n      }\n      uVar9 = (ulong)*(uint *)(param_4 + (ulong)(uVar4 * 0x18));\n      if (param_7 <= uVar9) {\n        return 0;\n      }\n      pcVar21 = (char *)(param_6 + uVar9);\n    }\n    iVar6 = FUN_001fab10(param_11,(long)(iVar6 + 1),uVar18);\n    if (iVar6 != 1) {\n                    /* WARNING: Subroutine does not return */\n      FUN_0016cdf0("../../gold/ehframe.cc",0x3af,"read_cie");\n    }\n  }\n  iVar6 = FUN_001fab10(param_11,(long)param_10 - param_8);\n  if (0 < iVar6) {\n    return 0;\n  }\n  lVar8 = (long)(param_9 + -8) - param_8;\n  pcVar19 = (char *)0xffffffffffffffff;\n  local_98[0] = local_88;\n  if (pcVar21 != (char *)0x0) {\n    uVar18 = 0xffffffffffffffff;\n    pcVar19 = pcVar21;\n    do {\n      if (uVar18 == 0) break;\n      uVar18 = uVar18 - 1;\n      cVar2 = *pcVar19;\n      pcVar19 = pcVar19 + (ulong)bVar22 * -2 + 1;\n    } while (cVar2 != '\0');\n    pcVar19 = pcVar21 + (~uVar18 - 1);\n  }\n  local_b8 = param_2;\n  local_b0 = param_3;\n  local_a8 = lVar8;\n  local_a0 = bVar14;\n  FUN_0015cbe0(local_98,pcVar21,pcVar19);\n  local_60[0] = local_50;\n  local_78 = 0;\n  local_70 = 0;\n  local_68 = 0;\n                    /* try { // try from 0024b743 to 0024b747 has its CatchHandler @ 0024ba39 */\n  FUN_0015cbe0(local_60,param_9,param_10);\n  if (local_cd != '\0') {\n    local_c8 = &local_b8;\n    lVar10 = FUN_00248330(param_1 + 0x40);\n    if (lVar10 == param_1 + 0x48) {\n      plVar1 = (long *)param_13[1];\n      for (plVar20 = (long *)*param_13; plVar20 != plVar1; plVar20 = plVar20 + 2) {\n        pplVar12 = (long **)*plVar20;\n        cVar2 = FUN_002476d0(pplVar12,&local_b8);\n        if (cVar2 != '\0') goto LAB_0024b77c;\n      }\n    }\n    else {\n      pplVar12 = *(long ***)(lVar10 + 0x20);\nLAB_0024b77c:\n      if (pplVar12 != (long **)0x0) {\n                    /* try { // try from 0024b7a0 to 0024b96d has its CatchHandler @ 0024ba2f */\n        FUN_0019a930(param_2,param_1,param_3,lVar8,(long)param_10 - (long)(param_9 + -8),\n                     0xffffffffffffffff);\n        goto LAB_0024b7a5;\n      }\n    }\n  }\n  pplVar12 = (long **)FUN_00275550(0x78);\n                    /* try { // try from 0024b977 to 0024b97b has its CatchHandler @ 0024ba34 */\n  FUN_00249730(pplVar12,&local_b8);\n  local_c0 = (long **)CONCAT71(local_c0._1_7_,local_cd);\n  local_c8 = pplVar12;\n                    /* try { // try from 0024b99c to 0024b9a0 has its CatchHandler @ 0024ba2f */\n  FUN_0024a870(param_13);\nLAB_0024b7a5:\n  local_f8 = &local_c8;\n  local_c8 = (long **)(param_9 + -param_8);\n  local_c0 = pplVar12;\n  FUN_0024a340(param_12,local_f8);\n  FUN_00247330(&local_b8);\n  return 1;\n}" { (declaration "long *plVar1;" (sized_type_specifier "long" long) (pointer_declarator "*plVar1" * identifier) ;) (declaration "char cVar2;" primitive_type identifier ;) (declaration "int iVar3;" primitive_type identifier ;) (declaration "uint uVar4;" type_identifier identifier ;) (declaration "uint uVar5;" type_identifier identifier ;) (declaration "int iVar6;" primitive_type identifier ;) (declaration "void *pvVar7;" primitive_type (pointer_declarator "*pvVar7" * identifier) ;) (declaration "long lVar8;" (sized_type_specifier "long" long) identifier ;) (declaration "ulong uVar9;" type_identifier identifier ;) (declaration "long lVar10;" (sized_type_specifier "long" long) identifier ;) (declaration "byte *pbVar11;" type_identifier (pointer_declarator "*pbVar11" * identifier) ;) (declaration "long **pplVar12;" (sized_type_specifier "long" long) (pointer_declarator "**pplVar12" * (pointer_declarator "*pplVar12" * identifier)) ;) (declaration "uint uVar13;" type_identifier identifier ;) (declaration "byte bVar14;" type_identifier identifier ;) (declaration "byte bVar15;" type_identifier identifier ;) (declaration "byte bVar16;" type_identifier identifier ;) (declaration "byte *pbVar17;" type_identifier (pointer_declarator "*pbVar17" * identifier) ;) (declaration "ulong extraout_RDX;" type_identifier identifier ;) (declaration "ulong uVar18;" type_identifier identifier ;) (declaration "char *pcVar19;" primitive_type (pointer_declarator "*pcVar19" * identifier) ;) (declaration "long *plVar20;" (sized_type_specifier "long" long) (pointer_declarator "*plVar20" * identifier) ;) (declaration "byte *__s;" type_identifier (pointer_declarator "*__s" * identifier) ;) (declaration "char *pcVar21;" primitive_type (pointer_declarator "*pcVar21" * identifier) ;) (declaration "byte bVar22;" type_identifier identifier ;) (declaration "long ***local_f8;" (sized_type_specifier "long" long) (pointer_declarator "***local_f8" * (pointer_declarator "**local_f8" * (pointer_declarator "*local_f8" * identifier))) ;) (declaration "char local_cd;" primitive_type identifier ;) (declaration "long **local_c8;" (sized_type_specifier "long" long) (pointer_declarator "**local_c8" * (pointer_declarator "*local_c8" * identifier)) ;) (declaration "long **local_c0;" (sized_type_specifier "long" long) (pointer_declarator "**local_c0" * (pointer_declarator "*local_c0" * identifier)) ;) (declaration "long *local_b8;" (sized_type_specifier "long" long) (pointer_declarator "*local_b8" * identifier) ;) (declaration "undefined4 local_b0;" type_identifier identifier ;) (declaration "long local_a8;" (sized_type_specifier "long" long) identifier ;) (declaration "byte local_a0;" type_identifier identifier ;) (declaration "undefined1 *local_98 [2];" type_identifier (pointer_declarator "*local_98 [2]" * (array_declarator "local_98 [2]" identifier [ number_literal ])) ;) (declaration "undefined1 local_88 [16];" type_identifier (array_declarator "local_88 [16]" identifier [ number_literal ]) ;) (declaration "undefined8 local_78;" type_identifier identifier ;) (declaration "undefined8 local_70;" type_identifier identifier ;) (declaration "undefined8 local_68;" type_identifier identifier ;) (declaration "undefined1 *local_60 [2];" type_identifier (pointer_declarator "*local_60 [2]" * (array_declarator "local_60 [2]" identifier [ number_literal ])) ;) (declaration "undefined1 local_50 [32];" type_identifier (array_declarator "local_50 [32]" identifier [ number_literal ]) ;) (expression_statement "bVar22 = 0;" (assignment_expression "bVar22 = 0" identifier = number_literal) ;) (if_statement "if (param_10 == param_9 || (long)param_10 - (long)param_9 < 0) {\n    return 0;\n  }" if (parenthesized_expression "(param_10 == param_9 || (long)param_10 - (long)param_9 < 0)" ( (binary_expression "param_10 == param_9 || (long)param_10 - (long)param_9 < 0" (binary_expression "param_10 == param_9" identifier == identifier) || (binary_expression "(long)param_10 - (long)param_9 < 0" (binary_expression "(long)param_10 - (long)param_9" (cast_expression "(long)param_10" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) identifier) - (cast_expression "(long)param_9" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) identifier)) < number_literal)) )) (compound_statement "{\n    return 0;\n  }" { (return_statement "return 0;" return number_literal ;) })) (expression_statement "bVar14 = *param_9;" (assignment_expression "bVar14 = *param_9" identifier = (pointer_expression "*param_9" * identifier)) ;) (if_statement "if ((bVar14 & 0xfd) != 1) {\n    return 0;\n  }" if (parenthesized_expression "((bVar14 & 0xfd) != 1)" ( (binary_expression "(bVar14 & 0xfd) != 1" (parenthesized_expression "(bVar14 & 0xfd)" ( (binary_expression "bVar14 & 0xfd" identifier & number_literal) )) != number_literal) )) (compound_statement "{\n    return 0;\n  }" { (return_statement "return 0;" return number_literal ;) })) (expression_statement "__s = param_9 + 1;" (assignment_expression "__s = param_9 + 1" identifier = (binary_expression "param_9 + 1" identifier + number_literal)) ;) (expression_statement "pvVar7 = memchr(__s,0,(long)param_10 - (long)__s);" (assignment_expression "pvVar7 = memchr(__s,0,(long)param_10 - (long)__s)" identifier = (call_expression "memchr(__s,0,(long)param_10 - (long)__s)" identifier (argument_list "(__s,0,(long)param_10 - (long)__s)" ( identifier , number_literal , (binary_expression "(long)param_10 - (long)__s" (cast_expression "(long)param_10" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) identifier) - (cast_expression "(long)__s" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) identifier)) )))) ;) (if_statement "if (pvVar7 == (void *)0x0) {\n    return 0;\n  }" if (parenthesized_expression "(pvVar7 == (void *)0x0)" ( (binary_expression "pvVar7 == (void *)0x0" identifier == (cast_expression "(void *)0x0" ( (type_descriptor "void *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n    return 0;\n  }" { (return_statement "return 0;" return number_literal ;) })) (expression_statement "pbVar17 = (byte *)((long)pvVar7 + 1);" (assignment_expression "pbVar17 = (byte *)((long)pvVar7 + 1)" identifier = (cast_expression "(byte *)((long)pvVar7 + 1)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((long)pvVar7 + 1)" ( (binary_expression "(long)pvVar7 + 1" (cast_expression "(long)pvVar7" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) identifier) + number_literal) )))) ;) (expression_statement "local_cd = '\x01';" (assignment_expression "local_cd = '\x01'" identifier = (char_literal "'\x01'" ' escape_sequence ')) ;) (if_statement "if ((param_9[1] == 0x65) && (param_9[2] == 0x68)) {\n    if (param_9[3] != 0) {\n      return 0;\n    }\n    if ((long)param_10 - (long)pbVar17 < 8) {\n      return 0;\n    }\n    __s = param_9 + 3;\n    pbVar17 = (byte *)((long)pvVar7 + 9);\n    local_cd = '\0';\n  }" if (parenthesized_expression "((param_9[1] == 0x65) && (param_9[2] == 0x68))" ( (binary_expression "(param_9[1] == 0x65) && (param_9[2] == 0x68)" (parenthesized_expression "(param_9[1] == 0x65)" ( (binary_expression "param_9[1] == 0x65" (subscript_expression "param_9[1]" identifier [ number_literal ]) == number_literal) )) && (parenthesized_expression "(param_9[2] == 0x68)" ( (binary_expression "param_9[2] == 0x68" (subscript_expression "param_9[2]" identifier [ number_literal ]) == number_literal) ))) )) (compound_statement "{\n    if (param_9[3] != 0) {\n      return 0;\n    }\n    if ((long)param_10 - (long)pbVar17 < 8) {\n      return 0;\n    }\n    __s = param_9 + 3;\n    pbVar17 = (byte *)((long)pvVar7 + 9);\n    local_cd = '\0';\n  }" { (if_statement "if (param_9[3] != 0) {\n      return 0;\n    }" if (parenthesized_expression "(param_9[3] != 0)" ( (binary_expression "param_9[3] != 0" (subscript_expression "param_9[3]" identifier [ number_literal ]) != number_literal) )) (compound_statement "{\n      return 0;\n    }" { (return_statement "return 0;" return number_literal ;) })) (if_statement "if ((long)param_10 - (long)pbVar17 < 8) {\n      return 0;\n    }" if (parenthesized_expression "((long)param_10 - (long)pbVar17 < 8)" ( (binary_expression "(long)param_10 - (long)pbVar17 < 8" (binary_expression "(long)param_10 - (long)pbVar17" (cast_expression "(long)param_10" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) identifier) - (cast_expression "(long)pbVar17" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) identifier)) < number_literal) )) (compound_statement "{\n      return 0;\n    }" { (return_statement "return 0;" return number_literal ;) })) (expression_statement "__s = param_9 + 3;" (assignment_expression "__s = param_9 + 3" identifier = (binary_expression "param_9 + 3" identifier + number_literal)) ;) (expression_statement "pbVar17 = (byte *)((long)pvVar7 + 9);" (assignment_expression "pbVar17 = (byte *)((long)pvVar7 + 9)" identifier = (cast_expression "(byte *)((long)pvVar7 + 9)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((long)pvVar7 + 9)" ( (binary_expression "(long)pvVar7 + 9" (cast_expression "(long)pvVar7" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) identifier) + number_literal) )))) ;) (expression_statement "local_cd = '\0';" (assignment_expression "local_cd = '\0'" identifier = (char_literal "'\0'" ' escape_sequence ')) ;) })) (if_statement "if (param_10 <= pbVar17) {\n    return 0;\n  }" if (parenthesized_expression "(param_10 <= pbVar17)" ( (binary_expression "param_10 <= pbVar17" identifier <= identifier) )) (compound_statement "{\n    return 0;\n  }" { (return_statement "return 0;" return number_literal ;) })) (while_statement "while ((char)*pbVar17 < '\0') {\n    pbVar17 = pbVar17 + 1;\n    if (param_10 == pbVar17) {\n      return 0;\n    }\n  }" while (parenthesized_expression "((char)*pbVar17 < '\0')" ( (binary_expression "(char)*pbVar17 < '\0'" (cast_expression "(char)*pbVar17" ( (type_descriptor "char" primitive_type) ) (pointer_expression "*pbVar17" * identifier)) < (char_literal "'\0'" ' escape_sequence ')) )) (compound_statement "{\n    pbVar17 = pbVar17 + 1;\n    if (param_10 == pbVar17) {\n      return 0;\n    }\n  }" { (expression_statement "pbVar17 = pbVar17 + 1;" (assignment_expression "pbVar17 = pbVar17 + 1" identifier = (binary_expression "pbVar17 + 1" identifier + number_literal)) ;) (if_statement "if (param_10 == pbVar17) {\n      return 0;\n    }" if (parenthesized_expression "(param_10 == pbVar17)" ( (binary_expression "param_10 == pbVar17" identifier == identifier) )) (compound_statement "{\n      return 0;\n    }" { (return_statement "return 0;" return number_literal ;) })) })) (expression_statement "pbVar11 = pbVar17 + 1;" (assignment_expression "pbVar11 = pbVar17 + 1" identifier = (binary_expression "pbVar17 + 1" identifier + number_literal)) ;) (if_statement "if (param_10 <= pbVar11) {\n    return 0;\n  }" if (parenthesized_expression "(param_10 <= pbVar11)" ( (binary_expression "param_10 <= pbVar11" identifier <= identifier) )) (compound_statement "{\n    return 0;\n  }" { (return_statement "return 0;" return number_literal ;) })) (expression_statement "bVar15 = pbVar17[1];" (assignment_expression "bVar15 = pbVar17[1]" identifier = (subscript_expression "pbVar17[1]" identifier [ number_literal ])) ;) (while_statement "while ((char)bVar15 < '\0') {\n    pbVar11 = pbVar11 + 1;\n    if (param_10 == pbVar11) {\n      return 0;\n    }\n    bVar15 = *pbVar11;\n  }" while (parenthesized_expression "((char)bVar15 < '\0')" ( (binary_expression "(char)bVar15 < '\0'" (cast_expression "(char)bVar15" ( (type_descriptor "char" primitive_type) ) identifier) < (char_literal "'\0'" ' escape_sequence ')) )) (compound_statement "{\n    pbVar11 = pbVar11 + 1;\n    if (param_10 == pbVar11) {\n      return 0;\n    }\n    bVar15 = *pbVar11;\n  }" { (expression_statement "pbVar11 = pbVar11 + 1;" (assignment_expression "pbVar11 = pbVar11 + 1" identifier = (binary_expression "pbVar11 + 1" identifier + number_literal)) ;) (if_statement "if (param_10 == pbVar11) {\n      return 0;\n    }" if (parenthesized_expression "(param_10 == pbVar11)" ( (binary_expression "param_10 == pbVar11" identifier == identifier) )) (compound_statement "{\n      return 0;\n    }" { (return_statement "return 0;" return number_literal ;) })) (expression_statement "bVar15 = *pbVar11;" (assignment_expression "bVar15 = *pbVar11" identifier = (pointer_expression "*pbVar11" * identifier)) ;) })) (expression_statement "pbVar17 = pbVar11 + 1;" (assignment_expression "pbVar17 = pbVar11 + 1" identifier = (binary_expression "pbVar11 + 1" identifier + number_literal)) ;) (if_statement "if (bVar14 == 1) {\n    pbVar11 = pbVar11 + 2;\n    if (param_10 == pbVar17 || (long)param_10 - (long)pbVar17 < 0) {\n      return 0;\n    }\n  }\n  else {\n    if (param_10 <= pbVar17) {\n      return 0;\n    }\n    bVar14 = pbVar11[1];\n    while ((char)bVar14 < '\0') {\n      pbVar17 = pbVar17 + 1;\n      if (param_10 == pbVar17) {\n        return 0;\n      }\n      bVar14 = *pbVar17;\n    }\n    pbVar11 = pbVar17 + 1;\n  }" if (parenthesized_expression "(bVar14 == 1)" ( (binary_expression "bVar14 == 1" identifier == number_literal) )) (compound_statement "{\n    pbVar11 = pbVar11 + 2;\n    if (param_10 == pbVar17 || (long)param_10 - (long)pbVar17 < 0) {\n      return 0;\n    }\n  }" { (expression_statement "pbVar11 = pbVar11 + 2;" (assignment_expression "pbVar11 = pbVar11 + 2" identifier = (binary_expression "pbVar11 + 2" identifier + number_literal)) ;) (if_statement "if (param_10 == pbVar17 || (long)param_10 - (long)pbVar17 < 0) {\n      return 0;\n    }" if (parenthesized_expression "(param_10 == pbVar17 || (long)param_10 - (long)pbVar17 < 0)" ( (binary_expression "param_10 == pbVar17 || (long)param_10 - (long)pbVar17 < 0" (binary_expression "param_10 == pbVar17" identifier == identifier) || (binary_expression "(long)param_10 - (long)pbVar17 < 0" (binary_expression "(long)param_10 - (long)pbVar17" (cast_expression "(long)param_10" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) identifier) - (cast_expression "(long)pbVar17" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) identifier)) < number_literal)) )) (compound_statement "{\n      return 0;\n    }" { (return_statement "return 0;" return number_literal ;) })) }) (else_clause "else {\n    if (param_10 <= pbVar17) {\n      return 0;\n    }\n    bVar14 = pbVar11[1];\n    while ((char)bVar14 < '\0') {\n      pbVar17 = pbVar17 + 1;\n      if (param_10 == pbVar17) {\n        return 0;\n      }\n      bVar14 = *pbVar17;\n    }\n    pbVar11 = pbVar17 + 1;\n  }" else (compound_statement "{\n    if (param_10 <= pbVar17) {\n      return 0;\n    }\n    bVar14 = pbVar11[1];\n    while ((char)bVar14 < '\0') {\n      pbVar17 = pbVar17 + 1;\n      if (param_10 == pbVar17) {\n        return 0;\n      }\n      bVar14 = *pbVar17;\n    }\n    pbVar11 = pbVar17 + 1;\n  }" { (if_statement "if (param_10 <= pbVar17) {\n      return 0;\n    }" if (parenthesized_expression "(param_10 <= pbVar17)" ( (binary_expression "param_10 <= pbVar17" identifier <= identifier) )) (compound_statement "{\n      return 0;\n    }" { (return_statement "return 0;" return number_literal ;) })) (expression_statement "bVar14 = pbVar11[1];" (assignment_expression "bVar14 = pbVar11[1]" identifier = (subscript_expression "pbVar11[1]" identifier [ number_literal ])) ;) (while_statement "while ((char)bVar14 < '\0') {\n      pbVar17 = pbVar17 + 1;\n      if (param_10 == pbVar17) {\n        return 0;\n      }\n      bVar14 = *pbVar17;\n    }" while (parenthesized_expression "((char)bVar14 < '\0')" ( (binary_expression "(char)bVar14 < '\0'" (cast_expression "(char)bVar14" ( (type_descriptor "char" primitive_type) ) identifier) < (char_literal "'\0'" ' escape_sequence ')) )) (compound_statement "{\n      pbVar17 = pbVar17 + 1;\n      if (param_10 == pbVar17) {\n        return 0;\n      }\n      bVar14 = *pbVar17;\n    }" { (expression_statement "pbVar17 = pbVar17 + 1;" (assignment_expression "pbVar17 = pbVar17 + 1" identifier = (binary_expression "pbVar17 + 1" identifier + number_literal)) ;) (if_statement "if (param_10 == pbVar17) {\n        return 0;\n      }" if (parenthesized_expression "(param_10 == pbVar17)" ( (binary_expression "param_10 == pbVar17" identifier == identifier) )) (compound_statement "{\n        return 0;\n      }" { (return_statement "return 0;" return number_literal ;) })) (expression_statement "bVar14 = *pbVar17;" (assignment_expression "bVar14 = *pbVar17" identifier = (pointer_expression "*pbVar17" * identifier)) ;) })) (expression_statement "pbVar11 = pbVar17 + 1;" (assignment_expression "pbVar11 = pbVar17 + 1" identifier = (binary_expression "pbVar17 + 1" identifier + number_literal)) ;) }))) (expression_statement "bVar14 = *__s;" (assignment_expression "bVar14 = *__s" identifier = (pointer_expression "*__s" * identifier)) ;) (if_statement "if (bVar14 == 0x7a) {\n    if (param_10 <= pbVar11) {\n      return 0;\n    }\n    while ((char)*pbVar11 < '\0') {\n      pbVar11 = pbVar11 + 1;\n      if (param_10 == pbVar11) {\n        return 0;\n      }\n    }\n    bVar14 = __s[1];\n    pbVar11 = pbVar11 + 1;\n    if (bVar14 != 0) {\n      __s = __s + 1;\n      goto LAB_0024b528;\n    }\nLAB_0024b955:\n    pcVar21 = "";\n  }\n  else {\n    if (bVar14 == 0) goto LAB_0024b955;\nLAB_0024b528:\n    iVar6 = -1;\n    bVar16 = 0;\n    bVar15 = bVar14;\n    do {\n      bVar14 = bVar16;\n      if (bVar15 == 0x50) {\n        if (param_10 == pbVar11 || (long)param_10 - (long)pbVar11 < 0) {\n          return 0;\n        }\n        bVar15 = *pbVar11;\n        pbVar11 = pbVar11 + 1;\n        if ((bVar15 & 0x60) == 0x60) {\n          return 0;\n        }\n        bVar16 = bVar15 & 7;\n        if (bVar16 == 2) {\n          lVar8 = 2;\n        }\n        else {\n          if (bVar16 < 3) {\n            if (bVar16 != 0) {\n              return 0;\n            }\n          }\n          else {\n            if (bVar16 == 3) {\n              lVar8 = 4;\n              goto LAB_0024b853;\n            }\n            if (bVar16 != 4) {\n              return 0;\n            }\n          }\n          lVar8 = 8;\n        }\nLAB_0024b853:\n        uVar5 = (int)param_10 - (int)pbVar11;\n        uVar4 = (uint)lVar8;\n        if ((bVar15 & 0xf0) == 0x50) {\n          uVar13 = -uVar4 & (uVar4 - 1) + ((int)pbVar11 - (int)param_9);\n          if (uVar5 < uVar13) {\n            return 0;\n          }\n          pbVar11 = pbVar11 + uVar13;\n          uVar5 = (int)param_10 - (int)pbVar11;\n        }\n        iVar6 = (int)pbVar11 - (int)param_8;\n        if (uVar5 < uVar4) {\n          return 0;\n        }\n        pbVar11 = pbVar11 + lVar8;\n      }\n      else {\n        if (bVar15 < 0x51) {\n          if (bVar15 != 0x4c) {\n            return 0;\n          }\n          if (param_10 == pbVar11 || (long)param_10 - (long)pbVar11 < 0) {\n            return 0;\n          }\n        }\n        else {\n          if (bVar15 != 0x52) {\n            if (bVar15 != 0x53) {\n              return 0;\n            }\n            goto LAB_0024b557;\n          }\n          if (param_10 == pbVar11 || (long)param_10 - (long)pbVar11 < 0) {\n            return 0;\n          }\n          bVar14 = *pbVar11;\n          if (4 < (bVar14 & 7)) {\n            return 0;\n          }\n          if ((1L << (bVar14 & 7) & 0x1dU) == 0) {\n            return 0;\n          }\n        }\n        pbVar11 = pbVar11 + 1;\n      }\nLAB_0024b557:\n      __s = __s + 1;\n      bVar15 = *__s;\n      bVar16 = bVar14;\n    } while (bVar15 != 0);\n    if (iVar6 == -1) goto LAB_0024b955;\n    iVar3 = FUN_001fab10(param_11,(long)iVar6);\n    if (0 < iVar3) {\n      return 0;\n    }\n    lVar8 = FUN_001faa60(param_11);\n    if (iVar6 != lVar8) {\n      return 0;\n    }\n    uVar4 = FUN_001faa80(param_11);\n    if (uVar4 == 0xffffffff) {\n      return 0;\n    }\n    uVar5 = (**(code **)(*param_2 + 0x118))(param_2);\n    if (uVar4 < uVar5) {\n      local_cd = '\0';\n      pcVar21 = "";\n      uVar18 = extraout_RDX;\n    }\n    else {\n      uVar18 = param_5 % 0x18;\n      if (param_5 / 0x18 <= (ulong)uVar4) {\n        return 0;\n      }\n      uVar9 = (ulong)*(uint *)(param_4 + (ulong)(uVar4 * 0x18));\n      if (param_7 <= uVar9) {\n        return 0;\n      }\n      pcVar21 = (char *)(param_6 + uVar9);\n    }\n    iVar6 = FUN_001fab10(param_11,(long)(iVar6 + 1),uVar18);\n    if (iVar6 != 1) {\n                    /* WARNING: Subroutine does not return */\n      FUN_0016cdf0("../../gold/ehframe.cc",0x3af,"read_cie");\n    }\n  }" if (parenthesized_expression "(bVar14 == 0x7a)" ( (binary_expression "bVar14 == 0x7a" identifier == number_literal) )) (compound_statement "{\n    if (param_10 <= pbVar11) {\n      return 0;\n    }\n    while ((char)*pbVar11 < '\0') {\n      pbVar11 = pbVar11 + 1;\n      if (param_10 == pbVar11) {\n        return 0;\n      }\n    }\n    bVar14 = __s[1];\n    pbVar11 = pbVar11 + 1;\n    if (bVar14 != 0) {\n      __s = __s + 1;\n      goto LAB_0024b528;\n    }\nLAB_0024b955:\n    pcVar21 = "";\n  }" { (if_statement "if (param_10 <= pbVar11) {\n      return 0;\n    }" if (parenthesized_expression "(param_10 <= pbVar11)" ( (binary_expression "param_10 <= pbVar11" identifier <= identifier) )) (compound_statement "{\n      return 0;\n    }" { (return_statement "return 0;" return number_literal ;) })) (while_statement "while ((char)*pbVar11 < '\0') {\n      pbVar11 = pbVar11 + 1;\n      if (param_10 == pbVar11) {\n        return 0;\n      }\n    }" while (parenthesized_expression "((char)*pbVar11 < '\0')" ( (binary_expression "(char)*pbVar11 < '\0'" (cast_expression "(char)*pbVar11" ( (type_descriptor "char" primitive_type) ) (pointer_expression "*pbVar11" * identifier)) < (char_literal "'\0'" ' escape_sequence ')) )) (compound_statement "{\n      pbVar11 = pbVar11 + 1;\n      if (param_10 == pbVar11) {\n        return 0;\n      }\n    }" { (expression_statement "pbVar11 = pbVar11 + 1;" (assignment_expression "pbVar11 = pbVar11 + 1" identifier = (binary_expression "pbVar11 + 1" identifier + number_literal)) ;) (if_statement "if (param_10 == pbVar11) {\n        return 0;\n      }" if (parenthesized_expression "(param_10 == pbVar11)" ( (binary_expression "param_10 == pbVar11" identifier == identifier) )) (compound_statement "{\n        return 0;\n      }" { (return_statement "return 0;" return number_literal ;) })) })) (expression_statement "bVar14 = __s[1];" (assignment_expression "bVar14 = __s[1]" identifier = (subscript_expression "__s[1]" identifier [ number_literal ])) ;) (expression_statement "pbVar11 = pbVar11 + 1;" (assignment_expression "pbVar11 = pbVar11 + 1" identifier = (binary_expression "pbVar11 + 1" identifier + number_literal)) ;) (if_statement "if (bVar14 != 0) {\n      __s = __s + 1;\n      goto LAB_0024b528;\n    }" if (parenthesized_expression "(bVar14 != 0)" ( (binary_expression "bVar14 != 0" identifier != number_literal) )) (compound_statement "{\n      __s = __s + 1;\n      goto LAB_0024b528;\n    }" { (expression_statement "__s = __s + 1;" (assignment_expression "__s = __s + 1" identifier = (binary_expression "__s + 1" identifier + number_literal)) ;) (goto_statement "goto LAB_0024b528;" goto statement_identifier ;) })) (labeled_statement "LAB_0024b955:\n    pcVar21 = "";" statement_identifier : (expression_statement "pcVar21 = "";" (assignment_expression "pcVar21 = """ identifier = (string_literal """" " ")) ;)) }) (else_clause "else {\n    if (bVar14 == 0) goto LAB_0024b955;\nLAB_0024b528:\n    iVar6 = -1;\n    bVar16 = 0;\n    bVar15 = bVar14;\n    do {\n      bVar14 = bVar16;\n      if (bVar15 == 0x50) {\n        if (param_10 == pbVar11 || (long)param_10 - (long)pbVar11 < 0) {\n          return 0;\n        }\n        bVar15 = *pbVar11;\n        pbVar11 = pbVar11 + 1;\n        if ((bVar15 & 0x60) == 0x60) {\n          return 0;\n        }\n        bVar16 = bVar15 & 7;\n        if (bVar16 == 2) {\n          lVar8 = 2;\n        }\n        else {\n          if (bVar16 < 3) {\n            if (bVar16 != 0) {\n              return 0;\n            }\n          }\n          else {\n            if (bVar16 == 3) {\n              lVar8 = 4;\n              goto LAB_0024b853;\n            }\n            if (bVar16 != 4) {\n              return 0;\n            }\n          }\n          lVar8 = 8;\n        }\nLAB_0024b853:\n        uVar5 = (int)param_10 - (int)pbVar11;\n        uVar4 = (uint)lVar8;\n        if ((bVar15 & 0xf0) == 0x50) {\n          uVar13 = -uVar4 & (uVar4 - 1) + ((int)pbVar11 - (int)param_9);\n          if (uVar5 < uVar13) {\n            return 0;\n          }\n          pbVar11 = pbVar11 + uVar13;\n          uVar5 = (int)param_10 - (int)pbVar11;\n        }\n        iVar6 = (int)pbVar11 - (int)param_8;\n        if (uVar5 < uVar4) {\n          return 0;\n        }\n        pbVar11 = pbVar11 + lVar8;\n      }\n      else {\n        if (bVar15 < 0x51) {\n          if (bVar15 != 0x4c) {\n            return 0;\n          }\n          if (param_10 == pbVar11 || (long)param_10 - (long)pbVar11 < 0) {\n            return 0;\n          }\n        }\n        else {\n          if (bVar15 != 0x52) {\n            if (bVar15 != 0x53) {\n              return 0;\n            }\n            goto LAB_0024b557;\n          }\n          if (param_10 == pbVar11 || (long)param_10 - (long)pbVar11 < 0) {\n            return 0;\n          }\n          bVar14 = *pbVar11;\n          if (4 < (bVar14 & 7)) {\n            return 0;\n          }\n          if ((1L << (bVar14 & 7) & 0x1dU) == 0) {\n            return 0;\n          }\n        }\n        pbVar11 = pbVar11 + 1;\n      }\nLAB_0024b557:\n      __s = __s + 1;\n      bVar15 = *__s;\n      bVar16 = bVar14;\n    } while (bVar15 != 0);\n    if (iVar6 == -1) goto LAB_0024b955;\n    iVar3 = FUN_001fab10(param_11,(long)iVar6);\n    if (0 < iVar3) {\n      return 0;\n    }\n    lVar8 = FUN_001faa60(param_11);\n    if (iVar6 != lVar8) {\n      return 0;\n    }\n    uVar4 = FUN_001faa80(param_11);\n    if (uVar4 == 0xffffffff) {\n      return 0;\n    }\n    uVar5 = (**(code **)(*param_2 + 0x118))(param_2);\n    if (uVar4 < uVar5) {\n      local_cd = '\0';\n      pcVar21 = "";\n      uVar18 = extraout_RDX;\n    }\n    else {\n      uVar18 = param_5 % 0x18;\n      if (param_5 / 0x18 <= (ulong)uVar4) {\n        return 0;\n      }\n      uVar9 = (ulong)*(uint *)(param_4 + (ulong)(uVar4 * 0x18));\n      if (param_7 <= uVar9) {\n        return 0;\n      }\n      pcVar21 = (char *)(param_6 + uVar9);\n    }\n    iVar6 = FUN_001fab10(param_11,(long)(iVar6 + 1),uVar18);\n    if (iVar6 != 1) {\n                    /* WARNING: Subroutine does not return */\n      FUN_0016cdf0("../../gold/ehframe.cc",0x3af,"read_cie");\n    }\n  }" else (compound_statement "{\n    if (bVar14 == 0) goto LAB_0024b955;\nLAB_0024b528:\n    iVar6 = -1;\n    bVar16 = 0;\n    bVar15 = bVar14;\n    do {\n      bVar14 = bVar16;\n      if (bVar15 == 0x50) {\n        if (param_10 == pbVar11 || (long)param_10 - (long)pbVar11 < 0) {\n          return 0;\n        }\n        bVar15 = *pbVar11;\n        pbVar11 = pbVar11 + 1;\n        if ((bVar15 & 0x60) == 0x60) {\n          return 0;\n        }\n        bVar16 = bVar15 & 7;\n        if (bVar16 == 2) {\n          lVar8 = 2;\n        }\n        else {\n          if (bVar16 < 3) {\n            if (bVar16 != 0) {\n              return 0;\n            }\n          }\n          else {\n            if (bVar16 == 3) {\n              lVar8 = 4;\n              goto LAB_0024b853;\n            }\n            if (bVar16 != 4) {\n              return 0;\n            }\n          }\n          lVar8 = 8;\n        }\nLAB_0024b853:\n        uVar5 = (int)param_10 - (int)pbVar11;\n        uVar4 = (uint)lVar8;\n        if ((bVar15 & 0xf0) == 0x50) {\n          uVar13 = -uVar4 & (uVar4 - 1) + ((int)pbVar11 - (int)param_9);\n          if (uVar5 < uVar13) {\n            return 0;\n          }\n          pbVar11 = pbVar11 + uVar13;\n          uVar5 = (int)param_10 - (int)pbVar11;\n        }\n        iVar6 = (int)pbVar11 - (int)param_8;\n        if (uVar5 < uVar4) {\n          return 0;\n        }\n        pbVar11 = pbVar11 + lVar8;\n      }\n      else {\n        if (bVar15 < 0x51) {\n          if (bVar15 != 0x4c) {\n            return 0;\n          }\n          if (param_10 == pbVar11 || (long)param_10 - (long)pbVar11 < 0) {\n            return 0;\n          }\n        }\n        else {\n          if (bVar15 != 0x52) {\n            if (bVar15 != 0x53) {\n              return 0;\n            }\n            goto LAB_0024b557;\n          }\n          if (param_10 == pbVar11 || (long)param_10 - (long)pbVar11 < 0) {\n            return 0;\n          }\n          bVar14 = *pbVar11;\n          if (4 < (bVar14 & 7)) {\n            return 0;\n          }\n          if ((1L << (bVar14 & 7) & 0x1dU) == 0) {\n            return 0;\n          }\n        }\n        pbVar11 = pbVar11 + 1;\n      }\nLAB_0024b557:\n      __s = __s + 1;\n      bVar15 = *__s;\n      bVar16 = bVar14;\n    } while (bVar15 != 0);\n    if (iVar6 == -1) goto LAB_0024b955;\n    iVar3 = FUN_001fab10(param_11,(long)iVar6);\n    if (0 < iVar3) {\n      return 0;\n    }\n    lVar8 = FUN_001faa60(param_11);\n    if (iVar6 != lVar8) {\n      return 0;\n    }\n    uVar4 = FUN_001faa80(param_11);\n    if (uVar4 == 0xffffffff) {\n      return 0;\n    }\n    uVar5 = (**(code **)(*param_2 + 0x118))(param_2);\n    if (uVar4 < uVar5) {\n      local_cd = '\0';\n      pcVar21 = "";\n      uVar18 = extraout_RDX;\n    }\n    else {\n      uVar18 = param_5 % 0x18;\n      if (param_5 / 0x18 <= (ulong)uVar4) {\n        return 0;\n      }\n      uVar9 = (ulong)*(uint *)(param_4 + (ulong)(uVar4 * 0x18));\n      if (param_7 <= uVar9) {\n        return 0;\n      }\n      pcVar21 = (char *)(param_6 + uVar9);\n    }\n    iVar6 = FUN_001fab10(param_11,(long)(iVar6 + 1),uVar18);\n    if (iVar6 != 1) {\n                    /* WARNING: Subroutine does not return */\n      FUN_0016cdf0("../../gold/ehframe.cc",0x3af,"read_cie");\n    }\n  }" { (if_statement "if (bVar14 == 0) goto LAB_0024b955;" if (parenthesized_expression "(bVar14 == 0)" ( (binary_expression "bVar14 == 0" identifier == number_literal) )) (goto_statement "goto LAB_0024b955;" goto statement_identifier ;)) (labeled_statement "LAB_0024b528:\n    iVar6 = -1;" statement_identifier : (expression_statement "iVar6 = -1;" (assignment_expression "iVar6 = -1" identifier = number_literal) ;)) (expression_statement "bVar16 = 0;" (assignment_expression "bVar16 = 0" identifier = number_literal) ;) (expression_statement "bVar15 = bVar14;" (assignment_expression "bVar15 = bVar14" identifier = identifier) ;) (do_statement "do {\n      bVar14 = bVar16;\n      if (bVar15 == 0x50) {\n        if (param_10 == pbVar11 || (long)param_10 - (long)pbVar11 < 0) {\n          return 0;\n        }\n        bVar15 = *pbVar11;\n        pbVar11 = pbVar11 + 1;\n        if ((bVar15 & 0x60) == 0x60) {\n          return 0;\n        }\n        bVar16 = bVar15 & 7;\n        if (bVar16 == 2) {\n          lVar8 = 2;\n        }\n        else {\n          if (bVar16 < 3) {\n            if (bVar16 != 0) {\n              return 0;\n            }\n          }\n          else {\n            if (bVar16 == 3) {\n              lVar8 = 4;\n              goto LAB_0024b853;\n            }\n            if (bVar16 != 4) {\n              return 0;\n            }\n          }\n          lVar8 = 8;\n        }\nLAB_0024b853:\n        uVar5 = (int)param_10 - (int)pbVar11;\n        uVar4 = (uint)lVar8;\n        if ((bVar15 & 0xf0) == 0x50) {\n          uVar13 = -uVar4 & (uVar4 - 1) + ((int)pbVar11 - (int)param_9);\n          if (uVar5 < uVar13) {\n            return 0;\n          }\n          pbVar11 = pbVar11 + uVar13;\n          uVar5 = (int)param_10 - (int)pbVar11;\n        }\n        iVar6 = (int)pbVar11 - (int)param_8;\n        if (uVar5 < uVar4) {\n          return 0;\n        }\n        pbVar11 = pbVar11 + lVar8;\n      }\n      else {\n        if (bVar15 < 0x51) {\n          if (bVar15 != 0x4c) {\n            return 0;\n          }\n          if (param_10 == pbVar11 || (long)param_10 - (long)pbVar11 < 0) {\n            return 0;\n          }\n        }\n        else {\n          if (bVar15 != 0x52) {\n            if (bVar15 != 0x53) {\n              return 0;\n            }\n            goto LAB_0024b557;\n          }\n          if (param_10 == pbVar11 || (long)param_10 - (long)pbVar11 < 0) {\n            return 0;\n          }\n          bVar14 = *pbVar11;\n          if (4 < (bVar14 & 7)) {\n            return 0;\n          }\n          if ((1L << (bVar14 & 7) & 0x1dU) == 0) {\n            return 0;\n          }\n        }\n        pbVar11 = pbVar11 + 1;\n      }\nLAB_0024b557:\n      __s = __s + 1;\n      bVar15 = *__s;\n      bVar16 = bVar14;\n    } while (bVar15 != 0);" do (compound_statement "{\n      bVar14 = bVar16;\n      if (bVar15 == 0x50) {\n        if (param_10 == pbVar11 || (long)param_10 - (long)pbVar11 < 0) {\n          return 0;\n        }\n        bVar15 = *pbVar11;\n        pbVar11 = pbVar11 + 1;\n        if ((bVar15 & 0x60) == 0x60) {\n          return 0;\n        }\n        bVar16 = bVar15 & 7;\n        if (bVar16 == 2) {\n          lVar8 = 2;\n        }\n        else {\n          if (bVar16 < 3) {\n            if (bVar16 != 0) {\n              return 0;\n            }\n          }\n          else {\n            if (bVar16 == 3) {\n              lVar8 = 4;\n              goto LAB_0024b853;\n            }\n            if (bVar16 != 4) {\n              return 0;\n            }\n          }\n          lVar8 = 8;\n        }\nLAB_0024b853:\n        uVar5 = (int)param_10 - (int)pbVar11;\n        uVar4 = (uint)lVar8;\n        if ((bVar15 & 0xf0) == 0x50) {\n          uVar13 = -uVar4 & (uVar4 - 1) + ((int)pbVar11 - (int)param_9);\n          if (uVar5 < uVar13) {\n            return 0;\n          }\n          pbVar11 = pbVar11 + uVar13;\n          uVar5 = (int)param_10 - (int)pbVar11;\n        }\n        iVar6 = (int)pbVar11 - (int)param_8;\n        if (uVar5 < uVar4) {\n          return 0;\n        }\n        pbVar11 = pbVar11 + lVar8;\n      }\n      else {\n        if (bVar15 < 0x51) {\n          if (bVar15 != 0x4c) {\n            return 0;\n          }\n          if (param_10 == pbVar11 || (long)param_10 - (long)pbVar11 < 0) {\n            return 0;\n          }\n        }\n        else {\n          if (bVar15 != 0x52) {\n            if (bVar15 != 0x53) {\n              return 0;\n            }\n            goto LAB_0024b557;\n          }\n          if (param_10 == pbVar11 || (long)param_10 - (long)pbVar11 < 0) {\n            return 0;\n          }\n          bVar14 = *pbVar11;\n          if (4 < (bVar14 & 7)) {\n            return 0;\n          }\n          if ((1L << (bVar14 & 7) & 0x1dU) == 0) {\n            return 0;\n          }\n        }\n        pbVar11 = pbVar11 + 1;\n      }\nLAB_0024b557:\n      __s = __s + 1;\n      bVar15 = *__s;\n      bVar16 = bVar14;\n    }" { (expression_statement "bVar14 = bVar16;" (assignment_expression "bVar14 = bVar16" identifier = identifier) ;) (if_statement "if (bVar15 == 0x50) {\n        if (param_10 == pbVar11 || (long)param_10 - (long)pbVar11 < 0) {\n          return 0;\n        }\n        bVar15 = *pbVar11;\n        pbVar11 = pbVar11 + 1;\n        if ((bVar15 & 0x60) == 0x60) {\n          return 0;\n        }\n        bVar16 = bVar15 & 7;\n        if (bVar16 == 2) {\n          lVar8 = 2;\n        }\n        else {\n          if (bVar16 < 3) {\n            if (bVar16 != 0) {\n              return 0;\n            }\n          }\n          else {\n            if (bVar16 == 3) {\n              lVar8 = 4;\n              goto LAB_0024b853;\n            }\n            if (bVar16 != 4) {\n              return 0;\n            }\n          }\n          lVar8 = 8;\n        }\nLAB_0024b853:\n        uVar5 = (int)param_10 - (int)pbVar11;\n        uVar4 = (uint)lVar8;\n        if ((bVar15 & 0xf0) == 0x50) {\n          uVar13 = -uVar4 & (uVar4 - 1) + ((int)pbVar11 - (int)param_9);\n          if (uVar5 < uVar13) {\n            return 0;\n          }\n          pbVar11 = pbVar11 + uVar13;\n          uVar5 = (int)param_10 - (int)pbVar11;\n        }\n        iVar6 = (int)pbVar11 - (int)param_8;\n        if (uVar5 < uVar4) {\n          return 0;\n        }\n        pbVar11 = pbVar11 + lVar8;\n      }\n      else {\n        if (bVar15 < 0x51) {\n          if (bVar15 != 0x4c) {\n            return 0;\n          }\n          if (param_10 == pbVar11 || (long)param_10 - (long)pbVar11 < 0) {\n            return 0;\n          }\n        }\n        else {\n          if (bVar15 != 0x52) {\n            if (bVar15 != 0x53) {\n              return 0;\n            }\n            goto LAB_0024b557;\n          }\n          if (param_10 == pbVar11 || (long)param_10 - (long)pbVar11 < 0) {\n            return 0;\n          }\n          bVar14 = *pbVar11;\n          if (4 < (bVar14 & 7)) {\n            return 0;\n          }\n          if ((1L << (bVar14 & 7) & 0x1dU) == 0) {\n            return 0;\n          }\n        }\n        pbVar11 = pbVar11 + 1;\n      }" if (parenthesized_expression "(bVar15 == 0x50)" ( (binary_expression "bVar15 == 0x50" identifier == number_literal) )) (compound_statement "{\n        if (param_10 == pbVar11 || (long)param_10 - (long)pbVar11 < 0) {\n          return 0;\n        }\n        bVar15 = *pbVar11;\n        pbVar11 = pbVar11 + 1;\n        if ((bVar15 & 0x60) == 0x60) {\n          return 0;\n        }\n        bVar16 = bVar15 & 7;\n        if (bVar16 == 2) {\n          lVar8 = 2;\n        }\n        else {\n          if (bVar16 < 3) {\n            if (bVar16 != 0) {\n              return 0;\n            }\n          }\n          else {\n            if (bVar16 == 3) {\n              lVar8 = 4;\n              goto LAB_0024b853;\n            }\n            if (bVar16 != 4) {\n              return 0;\n            }\n          }\n          lVar8 = 8;\n        }\nLAB_0024b853:\n        uVar5 = (int)param_10 - (int)pbVar11;\n        uVar4 = (uint)lVar8;\n        if ((bVar15 & 0xf0) == 0x50) {\n          uVar13 = -uVar4 & (uVar4 - 1) + ((int)pbVar11 - (int)param_9);\n          if (uVar5 < uVar13) {\n            return 0;\n          }\n          pbVar11 = pbVar11 + uVar13;\n          uVar5 = (int)param_10 - (int)pbVar11;\n        }\n        iVar6 = (int)pbVar11 - (int)param_8;\n        if (uVar5 < uVar4) {\n          return 0;\n        }\n        pbVar11 = pbVar11 + lVar8;\n      }" { (if_statement "if (param_10 == pbVar11 || (long)param_10 - (long)pbVar11 < 0) {\n          return 0;\n        }" if (parenthesized_expression "(param_10 == pbVar11 || (long)param_10 - (long)pbVar11 < 0)" ( (binary_expression "param_10 == pbVar11 || (long)param_10 - (long)pbVar11 < 0" (binary_expression "param_10 == pbVar11" identifier == identifier) || (binary_expression "(long)param_10 - (long)pbVar11 < 0" (binary_expression "(long)param_10 - (long)pbVar11" (cast_expression "(long)param_10" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) identifier) - (cast_expression "(long)pbVar11" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) identifier)) < number_literal)) )) (compound_statement "{\n          return 0;\n        }" { (return_statement "return 0;" return number_literal ;) })) (expression_statement "bVar15 = *pbVar11;" (assignment_expression "bVar15 = *pbVar11" identifier = (pointer_expression "*pbVar11" * identifier)) ;) (expression_statement "pbVar11 = pbVar11 + 1;" (assignment_expression "pbVar11 = pbVar11 + 1" identifier = (binary_expression "pbVar11 + 1" identifier + number_literal)) ;) (if_statement "if ((bVar15 & 0x60) == 0x60) {\n          return 0;\n        }" if (parenthesized_expression "((bVar15 & 0x60) == 0x60)" ( (binary_expression "(bVar15 & 0x60) == 0x60" (parenthesized_expression "(bVar15 & 0x60)" ( (binary_expression "bVar15 & 0x60" identifier & number_literal) )) == number_literal) )) (compound_statement "{\n          return 0;\n        }" { (return_statement "return 0;" return number_literal ;) })) (expression_statement "bVar16 = bVar15 & 7;" (assignment_expression "bVar16 = bVar15 & 7" identifier = (binary_expression "bVar15 & 7" identifier & number_literal)) ;) (if_statement "if (bVar16 == 2) {\n          lVar8 = 2;\n        }\n        else {\n          if (bVar16 < 3) {\n            if (bVar16 != 0) {\n              return 0;\n            }\n          }\n          else {\n            if (bVar16 == 3) {\n              lVar8 = 4;\n              goto LAB_0024b853;\n            }\n            if (bVar16 != 4) {\n              return 0;\n            }\n          }\n          lVar8 = 8;\n        }" if (parenthesized_expression "(bVar16 == 2)" ( (binary_expression "bVar16 == 2" identifier == number_literal) )) (compound_statement "{\n          lVar8 = 2;\n        }" { (expression_statement "lVar8 = 2;" (assignment_expression "lVar8 = 2" identifier = number_literal) ;) }) (else_clause "else {\n          if (bVar16 < 3) {\n            if (bVar16 != 0) {\n              return 0;\n            }\n          }\n          else {\n            if (bVar16 == 3) {\n              lVar8 = 4;\n              goto LAB_0024b853;\n            }\n            if (bVar16 != 4) {\n              return 0;\n            }\n          }\n          lVar8 = 8;\n        }" else (compound_statement "{\n          if (bVar16 < 3) {\n            if (bVar16 != 0) {\n              return 0;\n            }\n          }\n          else {\n            if (bVar16 == 3) {\n              lVar8 = 4;\n              goto LAB_0024b853;\n            }\n            if (bVar16 != 4) {\n              return 0;\n            }\n          }\n          lVar8 = 8;\n        }" { (if_statement "if (bVar16 < 3) {\n            if (bVar16 != 0) {\n              return 0;\n            }\n          }\n          else {\n            if (bVar16 == 3) {\n              lVar8 = 4;\n              goto LAB_0024b853;\n            }\n            if (bVar16 != 4) {\n              return 0;\n            }\n          }" if (parenthesized_expression "(bVar16 < 3)" ( (binary_expression "bVar16 < 3" identifier < number_literal) )) (compound_statement "{\n            if (bVar16 != 0) {\n              return 0;\n            }\n          }" { (if_statement "if (bVar16 != 0) {\n              return 0;\n            }" if (parenthesized_expression "(bVar16 != 0)" ( (binary_expression "bVar16 != 0" identifier != number_literal) )) (compound_statement "{\n              return 0;\n            }" { (return_statement "return 0;" return number_literal ;) })) }) (else_clause "else {\n            if (bVar16 == 3) {\n              lVar8 = 4;\n              goto LAB_0024b853;\n            }\n            if (bVar16 != 4) {\n              return 0;\n            }\n          }" else (compound_statement "{\n            if (bVar16 == 3) {\n              lVar8 = 4;\n              goto LAB_0024b853;\n            }\n            if (bVar16 != 4) {\n              return 0;\n            }\n          }" { (if_statement "if (bVar16 == 3) {\n              lVar8 = 4;\n              goto LAB_0024b853;\n            }" if (parenthesized_expression "(bVar16 == 3)" ( (binary_expression "bVar16 == 3" identifier == number_literal) )) (compound_statement "{\n              lVar8 = 4;\n              goto LAB_0024b853;\n            }" { (expression_statement "lVar8 = 4;" (assignment_expression "lVar8 = 4" identifier = number_literal) ;) (goto_statement "goto LAB_0024b853;" goto statement_identifier ;) })) (if_statement "if (bVar16 != 4) {\n              return 0;\n            }" if (parenthesized_expression "(bVar16 != 4)" ( (binary_expression "bVar16 != 4" identifier != number_literal) )) (compound_statement "{\n              return 0;\n            }" { (return_statement "return 0;" return number_literal ;) })) }))) (expression_statement "lVar8 = 8;" (assignment_expression "lVar8 = 8" identifier = number_literal) ;) }))) (labeled_statement "LAB_0024b853:\n        uVar5 = (int)param_10 - (int)pbVar11;" statement_identifier : (expression_statement "uVar5 = (int)param_10 - (int)pbVar11;" (assignment_expression "uVar5 = (int)param_10 - (int)pbVar11" identifier = (binary_expression "(int)param_10 - (int)pbVar11" (cast_expression "(int)param_10" ( (type_descriptor "int" primitive_type) ) identifier) - (cast_expression "(int)pbVar11" ( (type_descriptor "int" primitive_type) ) identifier))) ;)) (expression_statement "uVar4 = (uint)lVar8;" (assignment_expression "uVar4 = (uint)lVar8" identifier = (cast_expression "(uint)lVar8" ( (type_descriptor "uint" type_identifier) ) identifier)) ;) (if_statement "if ((bVar15 & 0xf0) == 0x50) {\n          uVar13 = -uVar4 & (uVar4 - 1) + ((int)pbVar11 - (int)param_9);\n          if (uVar5 < uVar13) {\n            return 0;\n          }\n          pbVar11 = pbVar11 + uVar13;\n          uVar5 = (int)param_10 - (int)pbVar11;\n        }" if (parenthesized_expression "((bVar15 & 0xf0) == 0x50)" ( (binary_expression "(bVar15 & 0xf0) == 0x50" (parenthesized_expression "(bVar15 & 0xf0)" ( (binary_expression "bVar15 & 0xf0" identifier & number_literal) )) == number_literal) )) (compound_statement "{\n          uVar13 = -uVar4 & (uVar4 - 1) + ((int)pbVar11 - (int)param_9);\n          if (uVar5 < uVar13) {\n            return 0;\n          }\n          pbVar11 = pbVar11 + uVar13;\n          uVar5 = (int)param_10 - (int)pbVar11;\n        }" { (expression_statement "uVar13 = -uVar4 & (uVar4 - 1) + ((int)pbVar11 - (int)param_9);" (assignment_expression "uVar13 = -uVar4 & (uVar4 - 1) + ((int)pbVar11 - (int)param_9)" identifier = (binary_expression "-uVar4 & (uVar4 - 1) + ((int)pbVar11 - (int)param_9)" (unary_expression "-uVar4" - identifier) & (binary_expression "(uVar4 - 1) + ((int)pbVar11 - (int)param_9)" (parenthesized_expression "(uVar4 - 1)" ( (binary_expression "uVar4 - 1" identifier - number_literal) )) + (parenthesized_expression "((int)pbVar11 - (int)param_9)" ( (binary_expression "(int)pbVar11 - (int)param_9" (cast_expression "(int)pbVar11" ( (type_descriptor "int" primitive_type) ) identifier) - (cast_expression "(int)param_9" ( (type_descriptor "int" primitive_type) ) identifier)) ))))) ;) (if_statement "if (uVar5 < uVar13) {\n            return 0;\n          }" if (parenthesized_expression "(uVar5 < uVar13)" ( (binary_expression "uVar5 < uVar13" identifier < identifier) )) (compound_statement "{\n            return 0;\n          }" { (return_statement "return 0;" return number_literal ;) })) (expression_statement "pbVar11 = pbVar11 + uVar13;" (assignment_expression "pbVar11 = pbVar11 + uVar13" identifier = (binary_expression "pbVar11 + uVar13" identifier + identifier)) ;) (expression_statement "uVar5 = (int)param_10 - (int)pbVar11;" (assignment_expression "uVar5 = (int)param_10 - (int)pbVar11" identifier = (binary_expression "(int)param_10 - (int)pbVar11" (cast_expression "(int)param_10" ( (type_descriptor "int" primitive_type) ) identifier) - (cast_expression "(int)pbVar11" ( (type_descriptor "int" primitive_type) ) identifier))) ;) })) (expression_statement "iVar6 = (int)pbVar11 - (int)param_8;" (assignment_expression "iVar6 = (int)pbVar11 - (int)param_8" identifier = (binary_expression "(int)pbVar11 - (int)param_8" (cast_expression "(int)pbVar11" ( (type_descriptor "int" primitive_type) ) identifier) - (cast_expression "(int)param_8" ( (type_descriptor "int" primitive_type) ) identifier))) ;) (if_statement "if (uVar5 < uVar4) {\n          return 0;\n        }" if (parenthesized_expression "(uVar5 < uVar4)" ( (binary_expression "uVar5 < uVar4" identifier < identifier) )) (compound_statement "{\n          return 0;\n        }" { (return_statement "return 0;" return number_literal ;) })) (expression_statement "pbVar11 = pbVar11 + lVar8;" (assignment_expression "pbVar11 = pbVar11 + lVar8" identifier = (binary_expression "pbVar11 + lVar8" identifier + identifier)) ;) }) (else_clause "else {\n        if (bVar15 < 0x51) {\n          if (bVar15 != 0x4c) {\n            return 0;\n          }\n          if (param_10 == pbVar11 || (long)param_10 - (long)pbVar11 < 0) {\n            return 0;\n          }\n        }\n        else {\n          if (bVar15 != 0x52) {\n            if (bVar15 != 0x53) {\n              return 0;\n            }\n            goto LAB_0024b557;\n          }\n          if (param_10 == pbVar11 || (long)param_10 - (long)pbVar11 < 0) {\n            return 0;\n          }\n          bVar14 = *pbVar11;\n          if (4 < (bVar14 & 7)) {\n            return 0;\n          }\n          if ((1L << (bVar14 & 7) & 0x1dU) == 0) {\n            return 0;\n          }\n        }\n        pbVar11 = pbVar11 + 1;\n      }" else (compound_statement "{\n        if (bVar15 < 0x51) {\n          if (bVar15 != 0x4c) {\n            return 0;\n          }\n          if (param_10 == pbVar11 || (long)param_10 - (long)pbVar11 < 0) {\n            return 0;\n          }\n        }\n        else {\n          if (bVar15 != 0x52) {\n            if (bVar15 != 0x53) {\n              return 0;\n            }\n            goto LAB_0024b557;\n          }\n          if (param_10 == pbVar11 || (long)param_10 - (long)pbVar11 < 0) {\n            return 0;\n          }\n          bVar14 = *pbVar11;\n          if (4 < (bVar14 & 7)) {\n            return 0;\n          }\n          if ((1L << (bVar14 & 7) & 0x1dU) == 0) {\n            return 0;\n          }\n        }\n        pbVar11 = pbVar11 + 1;\n      }" { (if_statement "if (bVar15 < 0x51) {\n          if (bVar15 != 0x4c) {\n            return 0;\n          }\n          if (param_10 == pbVar11 || (long)param_10 - (long)pbVar11 < 0) {\n            return 0;\n          }\n        }\n        else {\n          if (bVar15 != 0x52) {\n            if (bVar15 != 0x53) {\n              return 0;\n            }\n            goto LAB_0024b557;\n          }\n          if (param_10 == pbVar11 || (long)param_10 - (long)pbVar11 < 0) {\n            return 0;\n          }\n          bVar14 = *pbVar11;\n          if (4 < (bVar14 & 7)) {\n            return 0;\n          }\n          if ((1L << (bVar14 & 7) & 0x1dU) == 0) {\n            return 0;\n          }\n        }" if (parenthesized_expression "(bVar15 < 0x51)" ( (binary_expression "bVar15 < 0x51" identifier < number_literal) )) (compound_statement "{\n          if (bVar15 != 0x4c) {\n            return 0;\n          }\n          if (param_10 == pbVar11 || (long)param_10 - (long)pbVar11 < 0) {\n            return 0;\n          }\n        }" { (if_statement "if (bVar15 != 0x4c) {\n            return 0;\n          }" if (parenthesized_expression "(bVar15 != 0x4c)" ( (binary_expression "bVar15 != 0x4c" identifier != number_literal) )) (compound_statement "{\n            return 0;\n          }" { (return_statement "return 0;" return number_literal ;) })) (if_statement "if (param_10 == pbVar11 || (long)param_10 - (long)pbVar11 < 0) {\n            return 0;\n          }" if (parenthesized_expression "(param_10 == pbVar11 || (long)param_10 - (long)pbVar11 < 0)" ( (binary_expression "param_10 == pbVar11 || (long)param_10 - (long)pbVar11 < 0" (binary_expression "param_10 == pbVar11" identifier == identifier) || (binary_expression "(long)param_10 - (long)pbVar11 < 0" (binary_expression "(long)param_10 - (long)pbVar11" (cast_expression "(long)param_10" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) identifier) - (cast_expression "(long)pbVar11" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) identifier)) < number_literal)) )) (compound_statement "{\n            return 0;\n          }" { (return_statement "return 0;" return number_literal ;) })) }) (else_clause "else {\n          if (bVar15 != 0x52) {\n            if (bVar15 != 0x53) {\n              return 0;\n            }\n            goto LAB_0024b557;\n          }\n          if (param_10 == pbVar11 || (long)param_10 - (long)pbVar11 < 0) {\n            return 0;\n          }\n          bVar14 = *pbVar11;\n          if (4 < (bVar14 & 7)) {\n            return 0;\n          }\n          if ((1L << (bVar14 & 7) & 0x1dU) == 0) {\n            return 0;\n          }\n        }" else (compound_statement "{\n          if (bVar15 != 0x52) {\n            if (bVar15 != 0x53) {\n              return 0;\n            }\n            goto LAB_0024b557;\n          }\n          if (param_10 == pbVar11 || (long)param_10 - (long)pbVar11 < 0) {\n            return 0;\n          }\n          bVar14 = *pbVar11;\n          if (4 < (bVar14 & 7)) {\n            return 0;\n          }\n          if ((1L << (bVar14 & 7) & 0x1dU) == 0) {\n            return 0;\n          }\n        }" { (if_statement "if (bVar15 != 0x52) {\n            if (bVar15 != 0x53) {\n              return 0;\n            }\n            goto LAB_0024b557;\n          }" if (parenthesized_expression "(bVar15 != 0x52)" ( (binary_expression "bVar15 != 0x52" identifier != number_literal) )) (compound_statement "{\n            if (bVar15 != 0x53) {\n              return 0;\n            }\n            goto LAB_0024b557;\n          }" { (if_statement "if (bVar15 != 0x53) {\n              return 0;\n            }" if (parenthesized_expression "(bVar15 != 0x53)" ( (binary_expression "bVar15 != 0x53" identifier != number_literal) )) (compound_statement "{\n              return 0;\n            }" { (return_statement "return 0;" return number_literal ;) })) (goto_statement "goto LAB_0024b557;" goto statement_identifier ;) })) (if_statement "if (param_10 == pbVar11 || (long)param_10 - (long)pbVar11 < 0) {\n            return 0;\n          }" if (parenthesized_expression "(param_10 == pbVar11 || (long)param_10 - (long)pbVar11 < 0)" ( (binary_expression "param_10 == pbVar11 || (long)param_10 - (long)pbVar11 < 0" (binary_expression "param_10 == pbVar11" identifier == identifier) || (binary_expression "(long)param_10 - (long)pbVar11 < 0" (binary_expression "(long)param_10 - (long)pbVar11" (cast_expression "(long)param_10" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) identifier) - (cast_expression "(long)pbVar11" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) identifier)) < number_literal)) )) (compound_statement "{\n            return 0;\n          }" { (return_statement "return 0;" return number_literal ;) })) (expression_statement "bVar14 = *pbVar11;" (assignment_expression "bVar14 = *pbVar11" identifier = (pointer_expression "*pbVar11" * identifier)) ;) (if_statement "if (4 < (bVar14 & 7)) {\n            return 0;\n          }" if (parenthesized_expression "(4 < (bVar14 & 7))" ( (binary_expression "4 < (bVar14 & 7)" number_literal < (parenthesized_expression "(bVar14 & 7)" ( (binary_expression "bVar14 & 7" identifier & number_literal) ))) )) (compound_statement "{\n            return 0;\n          }" { (return_statement "return 0;" return number_literal ;) })) (if_statement "if ((1L << (bVar14 & 7) & 0x1dU) == 0) {\n            return 0;\n          }" if (parenthesized_expression "((1L << (bVar14 & 7) & 0x1dU) == 0)" ( (binary_expression "(1L << (bVar14 & 7) & 0x1dU) == 0" (parenthesized_expression "(1L << (bVar14 & 7) & 0x1dU)" ( (binary_expression "1L << (bVar14 & 7) & 0x1dU" (binary_expression "1L << (bVar14 & 7)" number_literal << (parenthesized_expression "(bVar14 & 7)" ( (binary_expression "bVar14 & 7" identifier & number_literal) ))) & number_literal) )) == number_literal) )) (compound_statement "{\n            return 0;\n          }" { (return_statement "return 0;" return number_literal ;) })) }))) (expression_statement "pbVar11 = pbVar11 + 1;" (assignment_expression "pbVar11 = pbVar11 + 1" identifier = (binary_expression "pbVar11 + 1" identifier + number_literal)) ;) }))) (labeled_statement "LAB_0024b557:\n      __s = __s + 1;" statement_identifier : (expression_statement "__s = __s + 1;" (assignment_expression "__s = __s + 1" identifier = (binary_expression "__s + 1" identifier + number_literal)) ;)) (expression_statement "bVar15 = *__s;" (assignment_expression "bVar15 = *__s" identifier = (pointer_expression "*__s" * identifier)) ;) (expression_statement "bVar16 = bVar14;" (assignment_expression "bVar16 = bVar14" identifier = identifier) ;) }) while (parenthesized_expression "(bVar15 != 0)" ( (binary_expression "bVar15 != 0" identifier != number_literal) )) ;) (if_statement "if (iVar6 == -1) goto LAB_0024b955;" if (parenthesized_expression "(iVar6 == -1)" ( (binary_expression "iVar6 == -1" identifier == number_literal) )) (goto_statement "goto LAB_0024b955;" goto statement_identifier ;)) (expression_statement "iVar3 = FUN_001fab10(param_11,(long)iVar6);" (assignment_expression "iVar3 = FUN_001fab10(param_11,(long)iVar6)" identifier = (call_expression "FUN_001fab10(param_11,(long)iVar6)" identifier (argument_list "(param_11,(long)iVar6)" ( identifier , (cast_expression "(long)iVar6" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) identifier) )))) ;) (if_statement "if (0 < iVar3) {\n      return 0;\n    }" if (parenthesized_expression "(0 < iVar3)" ( (binary_expression "0 < iVar3" number_literal < identifier) )) (compound_statement "{\n      return 0;\n    }" { (return_statement "return 0;" return number_literal ;) })) (expression_statement "lVar8 = FUN_001faa60(param_11);" (assignment_expression "lVar8 = FUN_001faa60(param_11)" identifier = (call_expression "FUN_001faa60(param_11)" identifier (argument_list "(param_11)" ( identifier )))) ;) (if_statement "if (iVar6 != lVar8) {\n      return 0;\n    }" if (parenthesized_expression "(iVar6 != lVar8)" ( (binary_expression "iVar6 != lVar8" identifier != identifier) )) (compound_statement "{\n      return 0;\n    }" { (return_statement "return 0;" return number_literal ;) })) (expression_statement "uVar4 = FUN_001faa80(param_11);" (assignment_expression "uVar4 = FUN_001faa80(param_11)" identifier = (call_expression "FUN_001faa80(param_11)" identifier (argument_list "(param_11)" ( identifier )))) ;) (if_statement "if (uVar4 == 0xffffffff) {\n      return 0;\n    }" if (parenthesized_expression "(uVar4 == 0xffffffff)" ( (binary_expression "uVar4 == 0xffffffff" identifier == number_literal) )) (compound_statement "{\n      return 0;\n    }" { (return_statement "return 0;" return number_literal ;) })) (expression_statement "uVar5 = (**(code **)(*param_2 + 0x118))(param_2);" (assignment_expression "uVar5 = (**(code **)(*param_2 + 0x118))(param_2)" identifier = (call_expression "(**(code **)(*param_2 + 0x118))(param_2)" (parenthesized_expression "(**(code **)(*param_2 + 0x118))" ( (pointer_expression "**(code **)(*param_2 + 0x118)" * (pointer_expression "*(code **)(*param_2 + 0x118)" * (cast_expression "(code **)(*param_2 + 0x118)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(*param_2 + 0x118)" ( (binary_expression "*param_2 + 0x118" (pointer_expression "*param_2" * identifier) + number_literal) ))))) )) (argument_list "(param_2)" ( identifier )))) ;) (if_statement "if (uVar4 < uVar5) {\n      local_cd = '\0';\n      pcVar21 = "";\n      uVar18 = extraout_RDX;\n    }\n    else {\n      uVar18 = param_5 % 0x18;\n      if (param_5 / 0x18 <= (ulong)uVar4) {\n        return 0;\n      }\n      uVar9 = (ulong)*(uint *)(param_4 + (ulong)(uVar4 * 0x18));\n      if (param_7 <= uVar9) {\n        return 0;\n      }\n      pcVar21 = (char *)(param_6 + uVar9);\n    }" if (parenthesized_expression "(uVar4 < uVar5)" ( (binary_expression "uVar4 < uVar5" identifier < identifier) )) (compound_statement "{\n      local_cd = '\0';\n      pcVar21 = "";\n      uVar18 = extraout_RDX;\n    }" { (expression_statement "local_cd = '\0';" (assignment_expression "local_cd = '\0'" identifier = (char_literal "'\0'" ' escape_sequence ')) ;) (expression_statement "pcVar21 = "";" (assignment_expression "pcVar21 = """ identifier = (string_literal """" " ")) ;) (expression_statement "uVar18 = extraout_RDX;" (assignment_expression "uVar18 = extraout_RDX" identifier = identifier) ;) }) (else_clause "else {\n      uVar18 = param_5 % 0x18;\n      if (param_5 / 0x18 <= (ulong)uVar4) {\n        return 0;\n      }\n      uVar9 = (ulong)*(uint *)(param_4 + (ulong)(uVar4 * 0x18));\n      if (param_7 <= uVar9) {\n        return 0;\n      }\n      pcVar21 = (char *)(param_6 + uVar9);\n    }" else (compound_statement "{\n      uVar18 = param_5 % 0x18;\n      if (param_5 / 0x18 <= (ulong)uVar4) {\n        return 0;\n      }\n      uVar9 = (ulong)*(uint *)(param_4 + (ulong)(uVar4 * 0x18));\n      if (param_7 <= uVar9) {\n        return 0;\n      }\n      pcVar21 = (char *)(param_6 + uVar9);\n    }" { (expression_statement "uVar18 = param_5 % 0x18;" (assignment_expression "uVar18 = param_5 % 0x18" identifier = (binary_expression "param_5 % 0x18" identifier % number_literal)) ;) (if_statement "if (param_5 / 0x18 <= (ulong)uVar4) {\n        return 0;\n      }" if (parenthesized_expression "(param_5 / 0x18 <= (ulong)uVar4)" ( (binary_expression "param_5 / 0x18 <= (ulong)uVar4" (binary_expression "param_5 / 0x18" identifier / number_literal) <= (cast_expression "(ulong)uVar4" ( (type_descriptor "ulong" type_identifier) ) identifier)) )) (compound_statement "{\n        return 0;\n      }" { (return_statement "return 0;" return number_literal ;) })) (expression_statement "uVar9 = (ulong)*(uint *)(param_4 + (ulong)(uVar4 * 0x18));" (assignment_expression "uVar9 = (ulong)*(uint *)(param_4 + (ulong)(uVar4 * 0x18))" identifier = (binary_expression "(ulong)*(uint *)(param_4 + (ulong)(uVar4 * 0x18))" (parenthesized_expression "(ulong)" ( identifier )) * (cast_expression "(uint *)(param_4 + (ulong)(uVar4 * 0x18))" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_4 + (ulong)(uVar4 * 0x18))" ( (binary_expression "param_4 + (ulong)(uVar4 * 0x18)" identifier + (call_expression "(ulong)(uVar4 * 0x18)" (parenthesized_expression "(ulong)" ( identifier )) (argument_list "(uVar4 * 0x18)" ( (binary_expression "uVar4 * 0x18" identifier * number_literal) )))) ))))) ;) (if_statement "if (param_7 <= uVar9) {\n        return 0;\n      }" if (parenthesized_expression "(param_7 <= uVar9)" ( (binary_expression "param_7 <= uVar9" identifier <= identifier) )) (compound_statement "{\n        return 0;\n      }" { (return_statement "return 0;" return number_literal ;) })) (expression_statement "pcVar21 = (char *)(param_6 + uVar9);" (assignment_expression "pcVar21 = (char *)(param_6 + uVar9)" identifier = (cast_expression "(char *)(param_6 + uVar9)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_6 + uVar9)" ( (binary_expression "param_6 + uVar9" identifier + identifier) )))) ;) }))) (expression_statement "iVar6 = FUN_001fab10(param_11,(long)(iVar6 + 1),uVar18);" (assignment_expression "iVar6 = FUN_001fab10(param_11,(long)(iVar6 + 1),uVar18)" identifier = (call_expression "FUN_001fab10(param_11,(long)(iVar6 + 1),uVar18)" identifier (argument_list "(param_11,(long)(iVar6 + 1),uVar18)" ( identifier , (cast_expression "(long)(iVar6 + 1)" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) (parenthesized_expression "(iVar6 + 1)" ( (binary_expression "iVar6 + 1" identifier + number_literal) ))) , identifier )))) ;) (if_statement "if (iVar6 != 1) {\n                    /* WARNING: Subroutine does not return */\n      FUN_0016cdf0("../../gold/ehframe.cc",0x3af,"read_cie");\n    }" if (parenthesized_expression "(iVar6 != 1)" ( (binary_expression "iVar6 != 1" identifier != number_literal) )) (compound_statement "{\n                    /* WARNING: Subroutine does not return */\n      FUN_0016cdf0("../../gold/ehframe.cc",0x3af,"read_cie");\n    }" { comment (expression_statement "FUN_0016cdf0("../../gold/ehframe.cc",0x3af,"read_cie");" (call_expression "FUN_0016cdf0("../../gold/ehframe.cc",0x3af,"read_cie")" identifier (argument_list "("../../gold/ehframe.cc",0x3af,"read_cie")" ( (string_literal ""../../gold/ehframe.cc"" " string_content ") , number_literal , (string_literal ""read_cie"" " string_content ") ))) ;) })) }))) (expression_statement "iVar6 = FUN_001fab10(param_11,(long)param_10 - param_8);" (assignment_expression "iVar6 = FUN_001fab10(param_11,(long)param_10 - param_8)" identifier = (call_expression "FUN_001fab10(param_11,(long)param_10 - param_8)" identifier (argument_list "(param_11,(long)param_10 - param_8)" ( identifier , (binary_expression "(long)param_10 - param_8" (cast_expression "(long)param_10" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) identifier) - identifier) )))) ;) (if_statement "if (0 < iVar6) {\n    return 0;\n  }" if (parenthesized_expression "(0 < iVar6)" ( (binary_expression "0 < iVar6" number_literal < identifier) )) (compound_statement "{\n    return 0;\n  }" { (return_statement "return 0;" return number_literal ;) })) (expression_statement "lVar8 = (long)(param_9 + -8) - param_8;" (assignment_expression "lVar8 = (long)(param_9 + -8) - param_8" identifier = (binary_expression "(long)(param_9 + -8) - param_8" (cast_expression "(long)(param_9 + -8)" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) (parenthesized_expression "(param_9 + -8)" ( (binary_expression "param_9 + -8" identifier + number_literal) ))) - identifier)) ;) (expression_statement "pcVar19 = (char *)0xffffffffffffffff;" (assignment_expression "pcVar19 = (char *)0xffffffffffffffff" identifier = (cast_expression "(char *)0xffffffffffffffff" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (expression_statement "local_98[0] = local_88;" (assignment_expression "local_98[0] = local_88" (subscript_expression "local_98[0]" identifier [ number_literal ]) = identifier) ;) (if_statement "if (pcVar21 != (char *)0x0) {\n    uVar18 = 0xffffffffffffffff;\n    pcVar19 = pcVar21;\n    do {\n      if (uVar18 == 0) break;\n      uVar18 = uVar18 - 1;\n      cVar2 = *pcVar19;\n      pcVar19 = pcVar19 + (ulong)bVar22 * -2 + 1;\n    } while (cVar2 != '\0');\n    pcVar19 = pcVar21 + (~uVar18 - 1);\n  }" if (parenthesized_expression "(pcVar21 != (char *)0x0)" ( (binary_expression "pcVar21 != (char *)0x0" identifier != (cast_expression "(char *)0x0" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n    uVar18 = 0xffffffffffffffff;\n    pcVar19 = pcVar21;\n    do {\n      if (uVar18 == 0) break;\n      uVar18 = uVar18 - 1;\n      cVar2 = *pcVar19;\n      pcVar19 = pcVar19 + (ulong)bVar22 * -2 + 1;\n    } while (cVar2 != '\0');\n    pcVar19 = pcVar21 + (~uVar18 - 1);\n  }" { (expression_statement "uVar18 = 0xffffffffffffffff;" (assignment_expression "uVar18 = 0xffffffffffffffff" identifier = number_literal) ;) (expression_statement "pcVar19 = pcVar21;" (assignment_expression "pcVar19 = pcVar21" identifier = identifier) ;) (do_statement "do {\n      if (uVar18 == 0) break;\n      uVar18 = uVar18 - 1;\n      cVar2 = *pcVar19;\n      pcVar19 = pcVar19 + (ulong)bVar22 * -2 + 1;\n    } while (cVar2 != '\0');" do (compound_statement "{\n      if (uVar18 == 0) break;\n      uVar18 = uVar18 - 1;\n      cVar2 = *pcVar19;\n      pcVar19 = pcVar19 + (ulong)bVar22 * -2 + 1;\n    }" { (if_statement "if (uVar18 == 0) break;" if (parenthesized_expression "(uVar18 == 0)" ( (binary_expression "uVar18 == 0" identifier == number_literal) )) (break_statement "break;" break ;)) (expression_statement "uVar18 = uVar18 - 1;" (assignment_expression "uVar18 = uVar18 - 1" identifier = (binary_expression "uVar18 - 1" identifier - number_literal)) ;) (expression_statement "cVar2 = *pcVar19;" (assignment_expression "cVar2 = *pcVar19" identifier = (pointer_expression "*pcVar19" * identifier)) ;) (expression_statement "pcVar19 = pcVar19 + (ulong)bVar22 * -2 + 1;" (assignment_expression "pcVar19 = pcVar19 + (ulong)bVar22 * -2 + 1" identifier = (binary_expression "pcVar19 + (ulong)bVar22 * -2 + 1" (binary_expression "pcVar19 + (ulong)bVar22 * -2" identifier + (binary_expression "(ulong)bVar22 * -2" (cast_expression "(ulong)bVar22" ( (type_descriptor "ulong" type_identifier) ) identifier) * number_literal)) + number_literal)) ;) }) while (parenthesized_expression "(cVar2 != '\0')" ( (binary_expression "cVar2 != '\0'" identifier != (char_literal "'\0'" ' escape_sequence ')) )) ;) (expression_statement "pcVar19 = pcVar21 + (~uVar18 - 1);" (assignment_expression "pcVar19 = pcVar21 + (~uVar18 - 1)" identifier = (binary_expression "pcVar21 + (~uVar18 - 1)" identifier + (parenthesized_expression "(~uVar18 - 1)" ( (binary_expression "~uVar18 - 1" (unary_expression "~uVar18" ~ identifier) - number_literal) )))) ;) })) (expression_statement "local_b8 = param_2;" (assignment_expression "local_b8 = param_2" identifier = identifier) ;) (expression_statement "local_b0 = param_3;" (assignment_expression "local_b0 = param_3" identifier = identifier) ;) (expression_statement "local_a8 = lVar8;" (assignment_expression "local_a8 = lVar8" identifier = identifier) ;) (expression_statement "local_a0 = bVar14;" (assignment_expression "local_a0 = bVar14" identifier = identifier) ;) (expression_statement "FUN_0015cbe0(local_98,pcVar21,pcVar19);" (call_expression "FUN_0015cbe0(local_98,pcVar21,pcVar19)" identifier (argument_list "(local_98,pcVar21,pcVar19)" ( identifier , identifier , identifier ))) ;) (expression_statement "local_60[0] = local_50;" (assignment_expression "local_60[0] = local_50" (subscript_expression "local_60[0]" identifier [ number_literal ]) = identifier) ;) (expression_statement "local_78 = 0;" (assignment_expression "local_78 = 0" identifier = number_literal) ;) (expression_statement "local_70 = 0;" (assignment_expression "local_70 = 0" identifier = number_literal) ;) (expression_statement "local_68 = 0;" (assignment_expression "local_68 = 0" identifier = number_literal) ;) comment (expression_statement "FUN_0015cbe0(local_60,param_9,param_10);" (call_expression "FUN_0015cbe0(local_60,param_9,param_10)" identifier (argument_list "(local_60,param_9,param_10)" ( identifier , identifier , identifier ))) ;) (if_statement "if (local_cd != '\0') {\n    local_c8 = &local_b8;\n    lVar10 = FUN_00248330(param_1 + 0x40);\n    if (lVar10 == param_1 + 0x48) {\n      plVar1 = (long *)param_13[1];\n      for (plVar20 = (long *)*param_13; plVar20 != plVar1; plVar20 = plVar20 + 2) {\n        pplVar12 = (long **)*plVar20;\n        cVar2 = FUN_002476d0(pplVar12,&local_b8);\n        if (cVar2 != '\0') goto LAB_0024b77c;\n      }\n    }\n    else {\n      pplVar12 = *(long ***)(lVar10 + 0x20);\nLAB_0024b77c:\n      if (pplVar12 != (long **)0x0) {\n                    /* try { // try from 0024b7a0 to 0024b96d has its CatchHandler @ 0024ba2f */\n        FUN_0019a930(param_2,param_1,param_3,lVar8,(long)param_10 - (long)(param_9 + -8),\n                     0xffffffffffffffff);\n        goto LAB_0024b7a5;\n      }\n    }\n  }" if (parenthesized_expression "(local_cd != '\0')" ( (binary_expression "local_cd != '\0'" identifier != (char_literal "'\0'" ' escape_sequence ')) )) (compound_statement "{\n    local_c8 = &local_b8;\n    lVar10 = FUN_00248330(param_1 + 0x40);\n    if (lVar10 == param_1 + 0x48) {\n      plVar1 = (long *)param_13[1];\n      for (plVar20 = (long *)*param_13; plVar20 != plVar1; plVar20 = plVar20 + 2) {\n        pplVar12 = (long **)*plVar20;\n        cVar2 = FUN_002476d0(pplVar12,&local_b8);\n        if (cVar2 != '\0') goto LAB_0024b77c;\n      }\n    }\n    else {\n      pplVar12 = *(long ***)(lVar10 + 0x20);\nLAB_0024b77c:\n      if (pplVar12 != (long **)0x0) {\n                    /* try { // try from 0024b7a0 to 0024b96d has its CatchHandler @ 0024ba2f */\n        FUN_0019a930(param_2,param_1,param_3,lVar8,(long)param_10 - (long)(param_9 + -8),\n                     0xffffffffffffffff);\n        goto LAB_0024b7a5;\n      }\n    }\n  }" { (expression_statement "local_c8 = &local_b8;" (assignment_expression "local_c8 = &local_b8" identifier = (pointer_expression "&local_b8" & identifier)) ;) (expression_statement "lVar10 = FUN_00248330(param_1 + 0x40);" (assignment_expression "lVar10 = FUN_00248330(param_1 + 0x40)" identifier = (call_expression "FUN_00248330(param_1 + 0x40)" identifier (argument_list "(param_1 + 0x40)" ( (binary_expression "param_1 + 0x40" identifier + number_literal) )))) ;) (if_statement "if (lVar10 == param_1 + 0x48) {\n      plVar1 = (long *)param_13[1];\n      for (plVar20 = (long *)*param_13; plVar20 != plVar1; plVar20 = plVar20 + 2) {\n        pplVar12 = (long **)*plVar20;\n        cVar2 = FUN_002476d0(pplVar12,&local_b8);\n        if (cVar2 != '\0') goto LAB_0024b77c;\n      }\n    }\n    else {\n      pplVar12 = *(long ***)(lVar10 + 0x20);\nLAB_0024b77c:\n      if (pplVar12 != (long **)0x0) {\n                    /* try { // try from 0024b7a0 to 0024b96d has its CatchHandler @ 0024ba2f */\n        FUN_0019a930(param_2,param_1,param_3,lVar8,(long)param_10 - (long)(param_9 + -8),\n                     0xffffffffffffffff);\n        goto LAB_0024b7a5;\n      }\n    }" if (parenthesized_expression "(lVar10 == param_1 + 0x48)" ( (binary_expression "lVar10 == param_1 + 0x48" identifier == (binary_expression "param_1 + 0x48" identifier + number_literal)) )) (compound_statement "{\n      plVar1 = (long *)param_13[1];\n      for (plVar20 = (long *)*param_13; plVar20 != plVar1; plVar20 = plVar20 + 2) {\n        pplVar12 = (long **)*plVar20;\n        cVar2 = FUN_002476d0(pplVar12,&local_b8);\n        if (cVar2 != '\0') goto LAB_0024b77c;\n      }\n    }" { (expression_statement "plVar1 = (long *)param_13[1];" (assignment_expression "plVar1 = (long *)param_13[1]" identifier = (cast_expression "(long *)param_13[1]" ( (type_descriptor "long *" (sized_type_specifier "long" long) (abstract_pointer_declarator "*" *)) ) (subscript_expression "param_13[1]" identifier [ number_literal ]))) ;) (for_statement "for (plVar20 = (long *)*param_13; plVar20 != plVar1; plVar20 = plVar20 + 2) {\n        pplVar12 = (long **)*plVar20;\n        cVar2 = FUN_002476d0(pplVar12,&local_b8);\n        if (cVar2 != '\0') goto LAB_0024b77c;\n      }" for ( (assignment_expression "plVar20 = (long *)*param_13" identifier = (cast_expression "(long *)*param_13" ( (type_descriptor "long *" (sized_type_specifier "long" long) (abstract_pointer_declarator "*" *)) ) (pointer_expression "*param_13" * identifier))) ; (binary_expression "plVar20 != plVar1" identifier != identifier) ; (assignment_expression "plVar20 = plVar20 + 2" identifier = (binary_expression "plVar20 + 2" identifier + number_literal)) ) (compound_statement "{\n        pplVar12 = (long **)*plVar20;\n        cVar2 = FUN_002476d0(pplVar12,&local_b8);\n        if (cVar2 != '\0') goto LAB_0024b77c;\n      }" { (expression_statement "pplVar12 = (long **)*plVar20;" (assignment_expression "pplVar12 = (long **)*plVar20" identifier = (cast_expression "(long **)*plVar20" ( (type_descriptor "long **" (sized_type_specifier "long" long) (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (pointer_expression "*plVar20" * identifier))) ;) (expression_statement "cVar2 = FUN_002476d0(pplVar12,&local_b8);" (assignment_expression "cVar2 = FUN_002476d0(pplVar12,&local_b8)" identifier = (call_expression "FUN_002476d0(pplVar12,&local_b8)" identifier (argument_list "(pplVar12,&local_b8)" ( identifier , (pointer_expression "&local_b8" & identifier) )))) ;) (if_statement "if (cVar2 != '\0') goto LAB_0024b77c;" if (parenthesized_expression "(cVar2 != '\0')" ( (binary_expression "cVar2 != '\0'" identifier != (char_literal "'\0'" ' escape_sequence ')) )) (goto_statement "goto LAB_0024b77c;" goto statement_identifier ;)) })) }) (else_clause "else {\n      pplVar12 = *(long ***)(lVar10 + 0x20);\nLAB_0024b77c:\n      if (pplVar12 != (long **)0x0) {\n                    /* try { // try from 0024b7a0 to 0024b96d has its CatchHandler @ 0024ba2f */\n        FUN_0019a930(param_2,param_1,param_3,lVar8,(long)param_10 - (long)(param_9 + -8),\n                     0xffffffffffffffff);\n        goto LAB_0024b7a5;\n      }\n    }" else (compound_statement "{\n      pplVar12 = *(long ***)(lVar10 + 0x20);\nLAB_0024b77c:\n      if (pplVar12 != (long **)0x0) {\n                    /* try { // try from 0024b7a0 to 0024b96d has its CatchHandler @ 0024ba2f */\n        FUN_0019a930(param_2,param_1,param_3,lVar8,(long)param_10 - (long)(param_9 + -8),\n                     0xffffffffffffffff);\n        goto LAB_0024b7a5;\n      }\n    }" { (expression_statement "pplVar12 = *(long ***)(lVar10 + 0x20);" (assignment_expression "pplVar12 = *(long ***)(lVar10 + 0x20)" identifier = (pointer_expression "*(long ***)(lVar10 + 0x20)" * (cast_expression "(long ***)(lVar10 + 0x20)" ( (type_descriptor "long ***" (sized_type_specifier "long" long) (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *)))) ) (parenthesized_expression "(lVar10 + 0x20)" ( (binary_expression "lVar10 + 0x20" identifier + number_literal) ))))) ;) (labeled_statement "LAB_0024b77c:\n      if (pplVar12 != (long **)0x0) {\n                    /* try { // try from 0024b7a0 to 0024b96d has its CatchHandler @ 0024ba2f */\n        FUN_0019a930(param_2,param_1,param_3,lVar8,(long)param_10 - (long)(param_9 + -8),\n                     0xffffffffffffffff);\n        goto LAB_0024b7a5;\n      }" statement_identifier : (if_statement "if (pplVar12 != (long **)0x0) {\n                    /* try { // try from 0024b7a0 to 0024b96d has its CatchHandler @ 0024ba2f */\n        FUN_0019a930(param_2,param_1,param_3,lVar8,(long)param_10 - (long)(param_9 + -8),\n                     0xffffffffffffffff);\n        goto LAB_0024b7a5;\n      }" if (parenthesized_expression "(pplVar12 != (long **)0x0)" ( (binary_expression "pplVar12 != (long **)0x0" identifier != (cast_expression "(long **)0x0" ( (type_descriptor "long **" (sized_type_specifier "long" long) (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) number_literal)) )) (compound_statement "{\n                    /* try { // try from 0024b7a0 to 0024b96d has its CatchHandler @ 0024ba2f */\n        FUN_0019a930(param_2,param_1,param_3,lVar8,(long)param_10 - (long)(param_9 + -8),\n                     0xffffffffffffffff);\n        goto LAB_0024b7a5;\n      }" { comment (expression_statement "FUN_0019a930(param_2,param_1,param_3,lVar8,(long)param_10 - (long)(param_9 + -8),\n                     0xffffffffffffffff);" (call_expression "FUN_0019a930(param_2,param_1,param_3,lVar8,(long)param_10 - (long)(param_9 + -8),\n                     0xffffffffffffffff)" identifier (argument_list "(param_2,param_1,param_3,lVar8,(long)param_10 - (long)(param_9 + -8),\n                     0xffffffffffffffff)" ( identifier , identifier , identifier , identifier , (binary_expression "(long)param_10 - (long)(param_9 + -8)" (cast_expression "(long)param_10" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) identifier) - (cast_expression "(long)(param_9 + -8)" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) (parenthesized_expression "(param_9 + -8)" ( (binary_expression "param_9 + -8" identifier + number_literal) )))) , number_literal ))) ;) (goto_statement "goto LAB_0024b7a5;" goto statement_identifier ;) }))) }))) })) (expression_statement "pplVar12 = (long **)FUN_00275550(0x78);" (assignment_expression "pplVar12 = (long **)FUN_00275550(0x78)" identifier = (cast_expression "(long **)FUN_00275550(0x78)" ( (type_descriptor "long **" (sized_type_specifier "long" long) (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (call_expression "FUN_00275550(0x78)" identifier (argument_list "(0x78)" ( number_literal ))))) ;) comment (expression_statement "FUN_00249730(pplVar12,&local_b8);" (call_expression "FUN_00249730(pplVar12,&local_b8)" identifier (argument_list "(pplVar12,&local_b8)" ( identifier , (pointer_expression "&local_b8" & identifier) ))) ;) (expression_statement "local_c0 = (long **)CONCAT71(local_c0._1_7_,local_cd);" (assignment_expression "local_c0 = (long **)CONCAT71(local_c0._1_7_,local_cd)" identifier = (cast_expression "(long **)CONCAT71(local_c0._1_7_,local_cd)" ( (type_descriptor "long **" (sized_type_specifier "long" long) (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (call_expression "CONCAT71(local_c0._1_7_,local_cd)" identifier (argument_list "(local_c0._1_7_,local_cd)" ( (field_expression "local_c0._1_7_" identifier . field_identifier) , identifier ))))) ;) (expression_statement "local_c8 = pplVar12;" (assignment_expression "local_c8 = pplVar12" identifier = identifier) ;) comment (expression_statement "FUN_0024a870(param_13);" (call_expression "FUN_0024a870(param_13)" identifier (argument_list "(param_13)" ( identifier ))) ;) (labeled_statement "LAB_0024b7a5:\n  local_f8 = &local_c8;" statement_identifier : (expression_statement "local_f8 = &local_c8;" (assignment_expression "local_f8 = &local_c8" identifier = (pointer_expression "&local_c8" & identifier)) ;)) (expression_statement "local_c8 = (long **)(param_9 + -param_8);" (assignment_expression "local_c8 = (long **)(param_9 + -param_8)" identifier = (cast_expression "(long **)(param_9 + -param_8)" ( (type_descriptor "long **" (sized_type_specifier "long" long) (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(param_9 + -param_8)" ( (binary_expression "param_9 + -param_8" identifier + (unary_expression "-param_8" - identifier)) )))) ;) (expression_statement "local_c0 = pplVar12;" (assignment_expression "local_c0 = pplVar12" identifier = identifier) ;) (expression_statement "FUN_0024a340(param_12,local_f8);" (call_expression "FUN_0024a340(param_12,local_f8)" identifier (argument_list "(param_12,local_f8)" ( identifier , identifier ))) ;) (expression_statement "FUN_00247330(&local_b8);" (call_expression "FUN_00247330(&local_b8)" identifier (argument_list "(&local_b8)" ( (pointer_expression "&local_b8" & identifier) ))) ;) (return_statement "return 1;" return number_literal ;) })))
(translation_unit "/* WARNING: Type propagation algorithm not settling */\n/* DWARF original name: read_cie<64, false>\n   DWARF original prototype: bool read_cie<64,_false>(Eh_frame * this, Sized_relobj_file<64,_false>\n   * object, uint shndx, uchar * symbols, section_size_type symbols_size, uchar * symbol_names,\n   section_size_type symbol_names_size, uchar * pcontents, uchar * pcie, uchar * pcieend,\n   Track_relocs<64,_false> * relocs, Offsets_to_cie * cies, New_cies * new_cies) */\n\nbool __thiscall\ngold::Eh_frame::read_cie<64,_false>\n          (Eh_frame *this,Sized_relobj_file<64,_false> *object,uint shndx,uchar *symbols,\n          section_size_type symbols_size,uchar *symbol_names,section_size_type symbol_names_size,\n          uchar *pcontents,uchar *pcie,uchar *pcieend,Track_relocs<64,_false> *relocs,\n          Offsets_to_cie *cies,New_cies *new_cies)\n\n{\n  uchar uVar1;\n  pointer ppVar2;\n  bool bVar3;\n  int iVar4;\n  uint uVar5;\n  uint uVar6;\n  int iVar7;\n  void *pvVar8;\n  off_t oVar9;\n  long lVar10;\n  iterator iVar11;\n  byte *pbVar12;\n  Cie *cie1;\n  uint uVar13;\n  ulong uVar14;\n  byte bVar15;\n  byte bVar16;\n  byte bVar17;\n  uchar *puVar18;\n  pointer ppVar19;\n  byte *__s;\n  uchar *puVar20;\n  byte bVar21;\n  pair<long_int,_gold::Cie*> *local_f8;\n  char local_cd;\n  undefined1 local_c8 [16];\n  Cie cie;\n  \n  bVar21 = 0;\n  if (pcieend == pcie || (long)pcieend - (long)pcie < 0) {\n    return false;\n  }\n  bVar16 = *pcie;\n  if ((bVar16 & 0xfd) != 1) {\n    return false;\n  }\n  __s = pcie + 1;\n  pvVar8 = memchr(__s,0,(long)pcieend - (long)__s);\n  if (pvVar8 == (void *)0x0) {\n    return false;\n  }\n  puVar20 = (uchar *)((long)pvVar8 + 1);\n  local_cd = '\x01';\n  if ((pcie[1] == 'e') && (pcie[2] == 'h')) {\n    if (pcie[3] != '\0') {\n      return false;\n    }\n    if ((long)pcieend - (long)puVar20 < 8) {\n      return false;\n    }\n    __s = pcie + 3;\n    puVar20 = (uchar *)((long)pvVar8 + 9);\n    local_cd = '\0';\n  }\n  if (pcieend <= puVar20) {\n    return false;\n  }\n  while ((char)*puVar20 < '\0') {\n    puVar20 = puVar20 + 1;\n    if (pcieend == puVar20) {\n      return false;\n    }\n  }\n  puVar18 = puVar20 + 1;\n  if (pcieend <= puVar18) {\n    return false;\n  }\n  uVar1 = puVar20[1];\n  while ((char)uVar1 < '\0') {\n    puVar18 = puVar18 + 1;\n    if (pcieend == puVar18) {\n      return false;\n    }\n    uVar1 = *puVar18;\n  }\n  puVar20 = puVar18 + 1;\n  if (bVar16 == 1) {\n    pbVar12 = puVar18 + 2;\n    if (pcieend == puVar20 || (long)pcieend - (long)puVar20 < 0) {\n      return false;\n    }\n  }\n  else {\n    if (pcieend <= puVar20) {\n      return false;\n    }\n    uVar1 = puVar18[1];\n    while ((char)uVar1 < '\0') {\n      puVar20 = puVar20 + 1;\n      if (pcieend == puVar20) {\n        return false;\n      }\n      uVar1 = *puVar20;\n    }\n    pbVar12 = puVar20 + 1;\n  }\n  bVar16 = *__s;\n  if (bVar16 == 0x7a) {\n    if (pcieend <= pbVar12) {\n      return false;\n    }\n    while ((char)*pbVar12 < '\0') {\n      pbVar12 = pbVar12 + 1;\n      if (pcieend == pbVar12) {\n        return false;\n      }\n    }\n    bVar16 = __s[1];\n    pbVar12 = pbVar12 + 1;\n    if (bVar16 != 0) {\n      __s = __s + 1;\n      goto LAB_0024b528;\n    }\nLAB_0024b955:\n    puVar20 = "";\n  }\n  else {\n    if (bVar16 == 0) goto LAB_0024b955;\nLAB_0024b528:\n    iVar7 = -1;\n    bVar17 = 0;\n    bVar15 = bVar16;\n    do {\n      bVar16 = bVar17;\n      if (bVar15 == 0x50) {\n        if (pcieend == pbVar12 || (long)pcieend - (long)pbVar12 < 0) {\n          return false;\n        }\n        bVar15 = *pbVar12;\n        pbVar12 = pbVar12 + 1;\n        if ((bVar15 & 0x60) == 0x60) {\n          return false;\n        }\n        bVar17 = bVar15 & 7;\n        if (bVar17 == 2) {\n          lVar10 = 2;\n        }\n        else {\n          if (bVar17 < 3) {\n            if (bVar17 != 0) {\n              return false;\n            }\n          }\n          else {\n            if (bVar17 == 3) {\n              lVar10 = 4;\n              goto LAB_0024b853;\n            }\n            if (bVar17 != 4) {\n              return false;\n            }\n          }\n          lVar10 = 8;\n        }\nLAB_0024b853:\n        uVar6 = (int)pcieend - (int)pbVar12;\n        uVar5 = (uint)lVar10;\n        if ((bVar15 & 0xf0) == 0x50) {\n          uVar13 = -uVar5 & (uVar5 - 1) + ((int)pbVar12 - (int)pcie);\n          if (uVar6 < uVar13) {\n            return false;\n          }\n          pbVar12 = pbVar12 + uVar13;\n          uVar6 = (int)pcieend - (int)pbVar12;\n        }\n        iVar7 = (int)pbVar12 - (int)pcontents;\n        if (uVar6 < uVar5) {\n          return false;\n        }\n        pbVar12 = pbVar12 + lVar10;\n      }\n      else {\n        if (bVar15 < 0x51) {\n          if (bVar15 != 0x4c) {\n            return false;\n          }\n          if (pcieend == pbVar12 || (long)pcieend - (long)pbVar12 < 0) {\n            return false;\n          }\n        }\n        else {\n          if (bVar15 != 0x52) {\n            if (bVar15 != 0x53) {\n              return false;\n            }\n            goto LAB_0024b557;\n          }\n          if (pcieend == pbVar12 || (long)pcieend - (long)pbVar12 < 0) {\n            return false;\n          }\n          bVar16 = *pbVar12;\n          if (4 < (bVar16 & 7)) {\n            return false;\n          }\n          if ((1L << (bVar16 & 7) & 0x1dU) == 0) {\n            return false;\n          }\n        }\n        pbVar12 = pbVar12 + 1;\n      }\nLAB_0024b557:\n      __s = __s + 1;\n      bVar15 = *__s;\n      bVar17 = bVar16;\n    } while (bVar15 != 0);\n    if (iVar7 == -1) goto LAB_0024b955;\n    iVar4 = Track_relocs<64,_false>::advance(relocs,(long)iVar7);\n    if (0 < iVar4) {\n      return false;\n    }\n    oVar9 = Track_relocs<64,_false>::next_offset(relocs);\n    if (iVar7 != oVar9) {\n      return false;\n    }\n    uVar5 = Track_relocs<64,_false>::next_symndx(relocs);\n    if (uVar5 == 0xffffffff) {\n      return false;\n    }\n    uVar6 = (*(object->super_Sized_relobj<64,_false>).super_Relobj.super_Object._vptr_Object[0x23])\n                      (object);\n    if (uVar5 < uVar6) {\n      local_cd = '\0';\n      puVar20 = "";\n    }\n    else {\n      if (symbols_size / 0x18 <= (ulong)uVar5) {\n        return false;\n      }\n      if (symbol_names_size <= *(uint *)(symbols + uVar5 * 0x18)) {\n        return false;\n      }\n      puVar20 = symbol_names + *(uint *)(symbols + uVar5 * 0x18);\n    }\n    iVar7 = Track_relocs<64,_false>::advance(relocs,(long)(iVar7 + 1));\n    if (iVar7 != 1) {\n                    /* WARNING: Subroutine does not return */\n      do_gold_unreachable("../../gold/ehframe.cc",0x3af,"read_cie");\n    }\n  }\n  iVar7 = Track_relocs<64,_false>::advance(relocs,(long)pcieend - (long)pcontents);\n  if (0 < iVar7) {\n    return false;\n  }\n  lVar10 = (long)(pcie + -8) - (long)pcontents;\n  puVar18 = (uchar *)0xffffffffffffffff;\n  cie.personality_name_._M_dataplus._M_p = (pointer)&cie.personality_name_.field_2;\n  if (puVar20 != (uchar *)0x0) {\n    uVar14 = 0xffffffffffffffff;\n    puVar18 = puVar20;\n    do {\n      if (uVar14 == 0) break;\n      uVar14 = uVar14 - 1;\n      uVar1 = *puVar18;\n      puVar18 = puVar18 + (ulong)bVar21 * -2 + 1;\n    } while (uVar1 != '\0');\n    puVar18 = puVar20 + (~uVar14 - 1);\n  }\n  cie.object_ = (Relobj *)object;\n  cie.shndx_ = shndx;\n  cie.input_offset_ = lVar10;\n  cie.fde_encoding_ = bVar16;\n  std::__cxx11::basic_string<char,_std::char_traits<char>,_std::allocator<char>_>::\n  _M_construct<char_const*>(&cie.personality_name_,puVar20,puVar18);\n  cie.contents_._M_dataplus._M_p = (pointer)&cie.contents_.field_2;\n  cie.fdes_.super__Vector_base<gold::Fde*,_std::allocator<gold::Fde*>_>._M_impl._M_start =\n       (pointer)0x0;\n  cie.fdes_.super__Vector_base<gold::Fde*,_std::allocator<gold::Fde*>_>._M_impl._M_finish =\n       (pointer)0x0;\n  cie.fdes_.super__Vector_base<gold::Fde*,_std::allocator<gold::Fde*>_>._M_impl._M_end_of_storage =\n       (pointer)0x0;\n                    /* try { // try from 0024b743 to 0024b747 has its CatchHandler @ 0024ba39 */\n  std::__cxx11::basic_string<char,_std::char_traits<char>,_std::allocator<char>_>::\n  _M_construct<char_const*>(&cie.contents_,pcie,pcieend);\n  if (local_cd != '\0') {\n    local_c8._0_8_ = &cie;\n    iVar11 = std::\n             _Rb_tree<gold::Cie*,_gold::Cie*,_std::_Identity<gold::Cie*>,_gold::Eh_frame::Cie_less,_std::allocator<gold::Cie*>_>\n             ::find(&(this->cie_offsets_)._M_t,(Cie **)local_c8);\n    if ((_Rb_tree_header *)iVar11._M_node ==\n        &(this->cie_offsets_)._M_t._M_impl.super__Rb_tree_header) {\n      ppVar2 = (new_cies->\n               super__Vector_base<std::pair<gold::Cie*,_bool>,_std::allocator<std::pair<gold::Cie*,_bool>_>_>\n               )._M_impl._M_finish;\n      for (ppVar19 = (new_cies->\n                     super__Vector_base<std::pair<gold::Cie*,_bool>,_std::allocator<std::pair<gold::Cie*,_bool>_>_>\n                     )._M_impl._M_start; ppVar19 != ppVar2; ppVar19 = ppVar19 + 1) {\n        cie1 = ppVar19->first;\n        bVar3 = operator==(cie1,&cie);\n        if (bVar3) goto LAB_0024b77c;\n      }\n    }\n    else {\n      cie1 = *(Cie **)(iVar11._M_node + 1);\nLAB_0024b77c:\n      if (cie1 != (Cie *)0x0) {\n                    /* try { // try from 0024b7a0 to 0024b96d has its CatchHandler @ 0024ba2f */\n        Relobj::add_merge_mapping\n                  ((Relobj *)object,&this->super_Output_section_data,shndx,lVar10,\n                   (long)pcieend - (long)(pcie + -8),-1);\n        goto LAB_0024b7a5;\n      }\n    }\n  }\n  cie1 = (Cie *)operator_new(0x78);\n                    /* try { // try from 0024b977 to 0024b97b has its CatchHandler @ 0024ba34 */\n  Cie::Cie(cie1,&cie);\n  local_c8[8] = local_cd;\n  local_c8._0_8_ = cie1;\n                    /* try { // try from 0024b99c to 0024b9a0 has its CatchHandler @ 0024ba2f */\n  std::vector<std::pair<gold::Cie*,_bool>,_std::allocator<std::pair<gold::Cie*,_bool>_>_>::\n  emplace_back<std::pair<gold::Cie*,_bool>_>(new_cies,(pair<gold::Cie*,_bool> *)local_c8);\nLAB_0024b7a5:\n  local_f8 = (pair<long_int,_gold::Cie*> *)local_c8;\n  local_c8._0_8_ = pcie + -(long)pcontents;\n  local_c8._8_8_ = cie1;\n  std::\n  _Rb_tree<long_unsigned_int,_std::pair<long_unsigned_int_const,_gold::Cie*>,_std::_Select1st<std::pair<long_unsigned_int_const,_gold::Cie*>_>,_std::less<long_unsigned_int>,_std::allocator<std::pair<long_unsigned_int_const,_gold::Cie*>_>_>\n  ::_M_emplace_unique<std::pair<long_int,_gold::Cie*>_>(&cies->_M_t,local_f8);\n  Cie::~Cie(&cie,(int)local_f8);\n  return true;\n}\n\n" comment comment (declaration "bool __thiscall\ngold::Eh_frame::read_cie<64,_false>\n          (Eh_frame *this,Sized_relobj_file<64,_false> *object,uint shndx,uchar *symbols,\n          section_size_type symbols_size,uchar *symbol_names,section_size_type symbol_names_size,\n          uchar *pcontents,uchar *pcie,uchar *pcieend,Track_relocs<64,_false> *relocs,\n          Offsets_to_cie *cies,New_cies *new_cies)\n\n{\n  uchar uVar1;" primitive_type (ms_call_modifier "__thiscall" __thiscall) (ERROR "gold::Eh_frame::" identifier : : identifier : :) identifier (ERROR "<64" < number_literal) , (ERROR "_false>\n          (Eh_frame *this,Sized_relobj_file<64,_false> *object,uint shndx,uchar *symbols,\n          section_size_type symbols_size,uchar *symbol_names,section_size_type symbol_names_size,\n          uchar *pcontents,uchar *pcie,uchar *pcieend,Track_relocs<64,_false> *relocs,\n          Offsets_to_cie *cies,New_cies *new_cies)\n\n{\n  uchar" (function_declarator "_false>\n          (Eh_frame *this,Sized_relobj_file<64,_false> *object,uint shndx,uchar *symbols,\n          section_size_type symbols_size,uchar *symbol_names,section_size_type symbol_names_size,\n          uchar *pcontents,uchar *pcie,uchar *pcieend,Track_relocs<64,_false> *relocs,\n          Offsets_to_cie *cies,New_cies *new_cies)" identifier (ERROR ">" >) (parameter_list "(Eh_frame *this,Sized_relobj_file<64,_false> *object,uint shndx,uchar *symbols,\n          section_size_type symbols_size,uchar *symbol_names,section_size_type symbol_names_size,\n          uchar *pcontents,uchar *pcie,uchar *pcieend,Track_relocs<64,_false> *relocs,\n          Offsets_to_cie *cies,New_cies *new_cies)" ( (parameter_declaration "Eh_frame *this" type_identifier (pointer_declarator "*this" * identifier)) , (parameter_declaration "Sized_relobj_file" type_identifier) (ERROR "<64" < number_literal) , (parameter_declaration "_false> *object" type_identifier (ERROR ">" >) (pointer_declarator "*object" * identifier)) , (parameter_declaration "uint shndx" type_identifier identifier) , (parameter_declaration "uchar *symbols" type_identifier (pointer_declarator "*symbols" * identifier)) , (parameter_declaration "section_size_type symbols_size" type_identifier identifier) , (parameter_declaration "uchar *symbol_names" type_identifier (pointer_declarator "*symbol_names" * identifier)) , (parameter_declaration "section_size_type symbol_names_size" type_identifier identifier) , (parameter_declaration "uchar *pcontents" type_identifier (pointer_declarator "*pcontents" * identifier)) , (parameter_declaration "uchar *pcie" type_identifier (pointer_declarator "*pcie" * identifier)) , (parameter_declaration "uchar *pcieend" type_identifier (pointer_declarator "*pcieend" * identifier)) , (parameter_declaration "Track_relocs" type_identifier) (ERROR "<64" < number_literal) , (parameter_declaration "_false> *relocs" type_identifier (ERROR ">" >) (pointer_declarator "*relocs" * identifier)) , (parameter_declaration "Offsets_to_cie *cies" type_identifier (pointer_declarator "*cies" * identifier)) , (parameter_declaration "New_cies *new_cies" type_identifier (pointer_declarator "*new_cies" * identifier)) ))) { identifier) identifier ;) (declaration "pointer ppVar2;" type_identifier identifier ;) (declaration "bool bVar3;" primitive_type identifier ;) (declaration "int iVar4;" primitive_type identifier ;) (declaration "uint uVar5;" type_identifier identifier ;) (declaration "uint uVar6;" type_identifier identifier ;) (declaration "int iVar7;" primitive_type identifier ;) (declaration "void *pvVar8;" primitive_type (pointer_declarator "*pvVar8" * identifier) ;) (declaration "off_t oVar9;" type_identifier identifier ;) (declaration "long lVar10;" (sized_type_specifier "long" long) identifier ;) (declaration "iterator iVar11;" type_identifier identifier ;) (declaration "byte *pbVar12;" type_identifier (pointer_declarator "*pbVar12" * identifier) ;) (declaration "Cie *cie1;" type_identifier (pointer_declarator "*cie1" * identifier) ;) (declaration "uint uVar13;" type_identifier identifier ;) (declaration "ulong uVar14;" type_identifier identifier ;) (declaration "byte bVar15;" type_identifier identifier ;) (declaration "byte bVar16;" type_identifier identifier ;) (declaration "byte bVar17;" type_identifier identifier ;) (declaration "uchar *puVar18;" type_identifier (pointer_declarator "*puVar18" * identifier) ;) (declaration "pointer ppVar19;" type_identifier identifier ;) (declaration "byte *__s;" type_identifier (pointer_declarator "*__s" * identifier) ;) (declaration "uchar *puVar20;" type_identifier (pointer_declarator "*puVar20" * identifier) ;) (declaration "byte bVar21;" type_identifier identifier ;) (ERROR "pair<long_int," (binary_expression "pair<long_int" identifier < identifier) ,) (labeled_statement "_gold::Cie*> *local_f8;" statement_identifier : (ERROR ":" :) (expression_statement "Cie*> *local_f8;" (binary_expression "Cie*> *local_f8" identifier * (ERROR ">" >) (pointer_expression "*local_f8" * identifier)) ;)) (declaration "char local_cd;" primitive_type identifier ;) (declaration "undefined1 local_c8 [16];" type_identifier (array_declarator "local_c8 [16]" identifier [ number_literal ]) ;) (declaration "Cie cie;" type_identifier identifier ;) (expression_statement "bVar21 = 0;" (assignment_expression "bVar21 = 0" identifier = number_literal) ;) (if_statement "if (pcieend == pcie || (long)pcieend - (long)pcie < 0) {\n    return false;\n  }" if (parenthesized_expression "(pcieend == pcie || (long)pcieend - (long)pcie < 0)" ( (binary_expression "pcieend == pcie || (long)pcieend - (long)pcie < 0" (binary_expression "pcieend == pcie" identifier == identifier) || (binary_expression "(long)pcieend - (long)pcie < 0" (binary_expression "(long)pcieend - (long)pcie" (cast_expression "(long)pcieend" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) identifier) - (cast_expression "(long)pcie" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) identifier)) < number_literal)) )) (compound_statement "{\n    return false;\n  }" { (return_statement "return false;" return false ;) })) (expression_statement "bVar16 = *pcie;" (assignment_expression "bVar16 = *pcie" identifier = (pointer_expression "*pcie" * identifier)) ;) (if_statement "if ((bVar16 & 0xfd) != 1) {\n    return false;\n  }" if (parenthesized_expression "((bVar16 & 0xfd) != 1)" ( (binary_expression "(bVar16 & 0xfd) != 1" (parenthesized_expression "(bVar16 & 0xfd)" ( (binary_expression "bVar16 & 0xfd" identifier & number_literal) )) != number_literal) )) (compound_statement "{\n    return false;\n  }" { (return_statement "return false;" return false ;) })) (expression_statement "__s = pcie + 1;" (assignment_expression "__s = pcie + 1" identifier = (binary_expression "pcie + 1" identifier + number_literal)) ;) (expression_statement "pvVar8 = memchr(__s,0,(long)pcieend - (long)__s);" (assignment_expression "pvVar8 = memchr(__s,0,(long)pcieend - (long)__s)" identifier = (call_expression "memchr(__s,0,(long)pcieend - (long)__s)" identifier (argument_list "(__s,0,(long)pcieend - (long)__s)" ( identifier , number_literal , (binary_expression "(long)pcieend - (long)__s" (cast_expression "(long)pcieend" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) identifier) - (cast_expression "(long)__s" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) identifier)) )))) ;) (if_statement "if (pvVar8 == (void *)0x0) {\n    return false;\n  }" if (parenthesized_expression "(pvVar8 == (void *)0x0)" ( (binary_expression "pvVar8 == (void *)0x0" identifier == (cast_expression "(void *)0x0" ( (type_descriptor "void *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n    return false;\n  }" { (return_statement "return false;" return false ;) })) (expression_statement "puVar20 = (uchar *)((long)pvVar8 + 1);" (assignment_expression "puVar20 = (uchar *)((long)pvVar8 + 1)" identifier = (cast_expression "(uchar *)((long)pvVar8 + 1)" ( (type_descriptor "uchar *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((long)pvVar8 + 1)" ( (binary_expression "(long)pvVar8 + 1" (cast_expression "(long)pvVar8" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) identifier) + number_literal) )))) ;) (expression_statement "local_cd = '\x01';" (assignment_expression "local_cd = '\x01'" identifier = (char_literal "'\x01'" ' escape_sequence ')) ;) (if_statement "if ((pcie[1] == 'e') && (pcie[2] == 'h')) {\n    if (pcie[3] != '\0') {\n      return false;\n    }\n    if ((long)pcieend - (long)puVar20 < 8) {\n      return false;\n    }\n    __s = pcie + 3;\n    puVar20 = (uchar *)((long)pvVar8 + 9);\n    local_cd = '\0';\n  }" if (parenthesized_expression "((pcie[1] == 'e') && (pcie[2] == 'h'))" ( (binary_expression "(pcie[1] == 'e') && (pcie[2] == 'h')" (parenthesized_expression "(pcie[1] == 'e')" ( (binary_expression "pcie[1] == 'e'" (subscript_expression "pcie[1]" identifier [ number_literal ]) == (char_literal "'e'" ' character ')) )) && (parenthesized_expression "(pcie[2] == 'h')" ( (binary_expression "pcie[2] == 'h'" (subscript_expression "pcie[2]" identifier [ number_literal ]) == (char_literal "'h'" ' character ')) ))) )) (compound_statement "{\n    if (pcie[3] != '\0') {\n      return false;\n    }\n    if ((long)pcieend - (long)puVar20 < 8) {\n      return false;\n    }\n    __s = pcie + 3;\n    puVar20 = (uchar *)((long)pvVar8 + 9);\n    local_cd = '\0';\n  }" { (if_statement "if (pcie[3] != '\0') {\n      return false;\n    }" if (parenthesized_expression "(pcie[3] != '\0')" ( (binary_expression "pcie[3] != '\0'" (subscript_expression "pcie[3]" identifier [ number_literal ]) != (char_literal "'\0'" ' escape_sequence ')) )) (compound_statement "{\n      return false;\n    }" { (return_statement "return false;" return false ;) })) (if_statement "if ((long)pcieend - (long)puVar20 < 8) {\n      return false;\n    }" if (parenthesized_expression "((long)pcieend - (long)puVar20 < 8)" ( (binary_expression "(long)pcieend - (long)puVar20 < 8" (binary_expression "(long)pcieend - (long)puVar20" (cast_expression "(long)pcieend" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) identifier) - (cast_expression "(long)puVar20" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) identifier)) < number_literal) )) (compound_statement "{\n      return false;\n    }" { (return_statement "return false;" return false ;) })) (expression_statement "__s = pcie + 3;" (assignment_expression "__s = pcie + 3" identifier = (binary_expression "pcie + 3" identifier + number_literal)) ;) (expression_statement "puVar20 = (uchar *)((long)pvVar8 + 9);" (assignment_expression "puVar20 = (uchar *)((long)pvVar8 + 9)" identifier = (cast_expression "(uchar *)((long)pvVar8 + 9)" ( (type_descriptor "uchar *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((long)pvVar8 + 9)" ( (binary_expression "(long)pvVar8 + 9" (cast_expression "(long)pvVar8" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) identifier) + number_literal) )))) ;) (expression_statement "local_cd = '\0';" (assignment_expression "local_cd = '\0'" identifier = (char_literal "'\0'" ' escape_sequence ')) ;) })) (if_statement "if (pcieend <= puVar20) {\n    return false;\n  }" if (parenthesized_expression "(pcieend <= puVar20)" ( (binary_expression "pcieend <= puVar20" identifier <= identifier) )) (compound_statement "{\n    return false;\n  }" { (return_statement "return false;" return false ;) })) (while_statement "while ((char)*puVar20 < '\0') {\n    puVar20 = puVar20 + 1;\n    if (pcieend == puVar20) {\n      return false;\n    }\n  }" while (parenthesized_expression "((char)*puVar20 < '\0')" ( (binary_expression "(char)*puVar20 < '\0'" (cast_expression "(char)*puVar20" ( (type_descriptor "char" primitive_type) ) (pointer_expression "*puVar20" * identifier)) < (char_literal "'\0'" ' escape_sequence ')) )) (compound_statement "{\n    puVar20 = puVar20 + 1;\n    if (pcieend == puVar20) {\n      return false;\n    }\n  }" { (expression_statement "puVar20 = puVar20 + 1;" (assignment_expression "puVar20 = puVar20 + 1" identifier = (binary_expression "puVar20 + 1" identifier + number_literal)) ;) (if_statement "if (pcieend == puVar20) {\n      return false;\n    }" if (parenthesized_expression "(pcieend == puVar20)" ( (binary_expression "pcieend == puVar20" identifier == identifier) )) (compound_statement "{\n      return false;\n    }" { (return_statement "return false;" return false ;) })) })) (expression_statement "puVar18 = puVar20 + 1;" (assignment_expression "puVar18 = puVar20 + 1" identifier = (binary_expression "puVar20 + 1" identifier + number_literal)) ;) (if_statement "if (pcieend <= puVar18) {\n    return false;\n  }" if (parenthesized_expression "(pcieend <= puVar18)" ( (binary_expression "pcieend <= puVar18" identifier <= identifier) )) (compound_statement "{\n    return false;\n  }" { (return_statement "return false;" return false ;) })) (expression_statement "uVar1 = puVar20[1];" (assignment_expression "uVar1 = puVar20[1]" identifier = (subscript_expression "puVar20[1]" identifier [ number_literal ])) ;) (while_statement "while ((char)uVar1 < '\0') {\n    puVar18 = puVar18 + 1;\n    if (pcieend == puVar18) {\n      return false;\n    }\n    uVar1 = *puVar18;\n  }" while (parenthesized_expression "((char)uVar1 < '\0')" ( (binary_expression "(char)uVar1 < '\0'" (cast_expression "(char)uVar1" ( (type_descriptor "char" primitive_type) ) identifier) < (char_literal "'\0'" ' escape_sequence ')) )) (compound_statement "{\n    puVar18 = puVar18 + 1;\n    if (pcieend == puVar18) {\n      return false;\n    }\n    uVar1 = *puVar18;\n  }" { (expression_statement "puVar18 = puVar18 + 1;" (assignment_expression "puVar18 = puVar18 + 1" identifier = (binary_expression "puVar18 + 1" identifier + number_literal)) ;) (if_statement "if (pcieend == puVar18) {\n      return false;\n    }" if (parenthesized_expression "(pcieend == puVar18)" ( (binary_expression "pcieend == puVar18" identifier == identifier) )) (compound_statement "{\n      return false;\n    }" { (return_statement "return false;" return false ;) })) (expression_statement "uVar1 = *puVar18;" (assignment_expression "uVar1 = *puVar18" identifier = (pointer_expression "*puVar18" * identifier)) ;) })) (expression_statement "puVar20 = puVar18 + 1;" (assignment_expression "puVar20 = puVar18 + 1" identifier = (binary_expression "puVar18 + 1" identifier + number_literal)) ;) (if_statement "if (bVar16 == 1) {\n    pbVar12 = puVar18 + 2;\n    if (pcieend == puVar20 || (long)pcieend - (long)puVar20 < 0) {\n      return false;\n    }\n  }\n  else {\n    if (pcieend <= puVar20) {\n      return false;\n    }\n    uVar1 = puVar18[1];\n    while ((char)uVar1 < '\0') {\n      puVar20 = puVar20 + 1;\n      if (pcieend == puVar20) {\n        return false;\n      }\n      uVar1 = *puVar20;\n    }\n    pbVar12 = puVar20 + 1;\n  }" if (parenthesized_expression "(bVar16 == 1)" ( (binary_expression "bVar16 == 1" identifier == number_literal) )) (compound_statement "{\n    pbVar12 = puVar18 + 2;\n    if (pcieend == puVar20 || (long)pcieend - (long)puVar20 < 0) {\n      return false;\n    }\n  }" { (expression_statement "pbVar12 = puVar18 + 2;" (assignment_expression "pbVar12 = puVar18 + 2" identifier = (binary_expression "puVar18 + 2" identifier + number_literal)) ;) (if_statement "if (pcieend == puVar20 || (long)pcieend - (long)puVar20 < 0) {\n      return false;\n    }" if (parenthesized_expression "(pcieend == puVar20 || (long)pcieend - (long)puVar20 < 0)" ( (binary_expression "pcieend == puVar20 || (long)pcieend - (long)puVar20 < 0" (binary_expression "pcieend == puVar20" identifier == identifier) || (binary_expression "(long)pcieend - (long)puVar20 < 0" (binary_expression "(long)pcieend - (long)puVar20" (cast_expression "(long)pcieend" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) identifier) - (cast_expression "(long)puVar20" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) identifier)) < number_literal)) )) (compound_statement "{\n      return false;\n    }" { (return_statement "return false;" return false ;) })) }) (else_clause "else {\n    if (pcieend <= puVar20) {\n      return false;\n    }\n    uVar1 = puVar18[1];\n    while ((char)uVar1 < '\0') {\n      puVar20 = puVar20 + 1;\n      if (pcieend == puVar20) {\n        return false;\n      }\n      uVar1 = *puVar20;\n    }\n    pbVar12 = puVar20 + 1;\n  }" else (compound_statement "{\n    if (pcieend <= puVar20) {\n      return false;\n    }\n    uVar1 = puVar18[1];\n    while ((char)uVar1 < '\0') {\n      puVar20 = puVar20 + 1;\n      if (pcieend == puVar20) {\n        return false;\n      }\n      uVar1 = *puVar20;\n    }\n    pbVar12 = puVar20 + 1;\n  }" { (if_statement "if (pcieend <= puVar20) {\n      return false;\n    }" if (parenthesized_expression "(pcieend <= puVar20)" ( (binary_expression "pcieend <= puVar20" identifier <= identifier) )) (compound_statement "{\n      return false;\n    }" { (return_statement "return false;" return false ;) })) (expression_statement "uVar1 = puVar18[1];" (assignment_expression "uVar1 = puVar18[1]" identifier = (subscript_expression "puVar18[1]" identifier [ number_literal ])) ;) (while_statement "while ((char)uVar1 < '\0') {\n      puVar20 = puVar20 + 1;\n      if (pcieend == puVar20) {\n        return false;\n      }\n      uVar1 = *puVar20;\n    }" while (parenthesized_expression "((char)uVar1 < '\0')" ( (binary_expression "(char)uVar1 < '\0'" (cast_expression "(char)uVar1" ( (type_descriptor "char" primitive_type) ) identifier) < (char_literal "'\0'" ' escape_sequence ')) )) (compound_statement "{\n      puVar20 = puVar20 + 1;\n      if (pcieend == puVar20) {\n        return false;\n      }\n      uVar1 = *puVar20;\n    }" { (expression_statement "puVar20 = puVar20 + 1;" (assignment_expression "puVar20 = puVar20 + 1" identifier = (binary_expression "puVar20 + 1" identifier + number_literal)) ;) (if_statement "if (pcieend == puVar20) {\n        return false;\n      }" if (parenthesized_expression "(pcieend == puVar20)" ( (binary_expression "pcieend == puVar20" identifier == identifier) )) (compound_statement "{\n        return false;\n      }" { (return_statement "return false;" return false ;) })) (expression_statement "uVar1 = *puVar20;" (assignment_expression "uVar1 = *puVar20" identifier = (pointer_expression "*puVar20" * identifier)) ;) })) (expression_statement "pbVar12 = puVar20 + 1;" (assignment_expression "pbVar12 = puVar20 + 1" identifier = (binary_expression "puVar20 + 1" identifier + number_literal)) ;) }))) (expression_statement "bVar16 = *__s;" (assignment_expression "bVar16 = *__s" identifier = (pointer_expression "*__s" * identifier)) ;) (if_statement "if (bVar16 == 0x7a) {\n    if (pcieend <= pbVar12) {\n      return false;\n    }\n    while ((char)*pbVar12 < '\0') {\n      pbVar12 = pbVar12 + 1;\n      if (pcieend == pbVar12) {\n        return false;\n      }\n    }\n    bVar16 = __s[1];\n    pbVar12 = pbVar12 + 1;\n    if (bVar16 != 0) {\n      __s = __s + 1;\n      goto LAB_0024b528;\n    }\nLAB_0024b955:\n    puVar20 = "";\n  }\n  else {\n    if (bVar16 == 0) goto LAB_0024b955;\nLAB_0024b528:\n    iVar7 = -1;\n    bVar17 = 0;\n    bVar15 = bVar16;\n    do {\n      bVar16 = bVar17;\n      if (bVar15 == 0x50) {\n        if (pcieend == pbVar12 || (long)pcieend - (long)pbVar12 < 0) {\n          return false;\n        }\n        bVar15 = *pbVar12;\n        pbVar12 = pbVar12 + 1;\n        if ((bVar15 & 0x60) == 0x60) {\n          return false;\n        }\n        bVar17 = bVar15 & 7;\n        if (bVar17 == 2) {\n          lVar10 = 2;\n        }\n        else {\n          if (bVar17 < 3) {\n            if (bVar17 != 0) {\n              return false;\n            }\n          }\n          else {\n            if (bVar17 == 3) {\n              lVar10 = 4;\n              goto LAB_0024b853;\n            }\n            if (bVar17 != 4) {\n              return false;\n            }\n          }\n          lVar10 = 8;\n        }\nLAB_0024b853:\n        uVar6 = (int)pcieend - (int)pbVar12;\n        uVar5 = (uint)lVar10;\n        if ((bVar15 & 0xf0) == 0x50) {\n          uVar13 = -uVar5 & (uVar5 - 1) + ((int)pbVar12 - (int)pcie);\n          if (uVar6 < uVar13) {\n            return false;\n          }\n          pbVar12 = pbVar12 + uVar13;\n          uVar6 = (int)pcieend - (int)pbVar12;\n        }\n        iVar7 = (int)pbVar12 - (int)pcontents;\n        if (uVar6 < uVar5) {\n          return false;\n        }\n        pbVar12 = pbVar12 + lVar10;\n      }\n      else {\n        if (bVar15 < 0x51) {\n          if (bVar15 != 0x4c) {\n            return false;\n          }\n          if (pcieend == pbVar12 || (long)pcieend - (long)pbVar12 < 0) {\n            return false;\n          }\n        }\n        else {\n          if (bVar15 != 0x52) {\n            if (bVar15 != 0x53) {\n              return false;\n            }\n            goto LAB_0024b557;\n          }\n          if (pcieend == pbVar12 || (long)pcieend - (long)pbVar12 < 0) {\n            return false;\n          }\n          bVar16 = *pbVar12;\n          if (4 < (bVar16 & 7)) {\n            return false;\n          }\n          if ((1L << (bVar16 & 7) & 0x1dU) == 0) {\n            return false;\n          }\n        }\n        pbVar12 = pbVar12 + 1;\n      }\nLAB_0024b557:\n      __s = __s + 1;\n      bVar15 = *__s;\n      bVar17 = bVar16;\n    } while (bVar15 != 0);\n    if (iVar7 == -1) goto LAB_0024b955;\n    iVar4 = Track_relocs<64,_false>::advance(relocs,(long)iVar7);\n    if (0 < iVar4) {\n      return false;\n    }\n    oVar9 = Track_relocs<64,_false>::next_offset(relocs);\n    if (iVar7 != oVar9) {\n      return false;\n    }\n    uVar5 = Track_relocs<64,_false>::next_symndx(relocs);\n    if (uVar5 == 0xffffffff) {\n      return false;\n    }\n    uVar6 = (*(object->super_Sized_relobj<64,_false>).super_Relobj.super_Object._vptr_Object[0x23])\n                      (object);\n    if (uVar5 < uVar6) {\n      local_cd = '\0';\n      puVar20 = "";\n    }\n    else {\n      if (symbols_size / 0x18 <= (ulong)uVar5) {\n        return false;\n      }\n      if (symbol_names_size <= *(uint *)(symbols + uVar5 * 0x18)) {\n        return false;\n      }\n      puVar20 = symbol_names + *(uint *)(symbols + uVar5 * 0x18);\n    }\n    iVar7 = Track_relocs<64,_false>::advance(relocs,(long)(iVar7 + 1));\n    if (iVar7 != 1) {\n                    /* WARNING: Subroutine does not return */\n      do_gold_unreachable("../../gold/ehframe.cc",0x3af,"read_cie");\n    }\n  }" if (parenthesized_expression "(bVar16 == 0x7a)" ( (binary_expression "bVar16 == 0x7a" identifier == number_literal) )) (compound_statement "{\n    if (pcieend <= pbVar12) {\n      return false;\n    }\n    while ((char)*pbVar12 < '\0') {\n      pbVar12 = pbVar12 + 1;\n      if (pcieend == pbVar12) {\n        return false;\n      }\n    }\n    bVar16 = __s[1];\n    pbVar12 = pbVar12 + 1;\n    if (bVar16 != 0) {\n      __s = __s + 1;\n      goto LAB_0024b528;\n    }\nLAB_0024b955:\n    puVar20 = "";\n  }" { (if_statement "if (pcieend <= pbVar12) {\n      return false;\n    }" if (parenthesized_expression "(pcieend <= pbVar12)" ( (binary_expression "pcieend <= pbVar12" identifier <= identifier) )) (compound_statement "{\n      return false;\n    }" { (return_statement "return false;" return false ;) })) (while_statement "while ((char)*pbVar12 < '\0') {\n      pbVar12 = pbVar12 + 1;\n      if (pcieend == pbVar12) {\n        return false;\n      }\n    }" while (parenthesized_expression "((char)*pbVar12 < '\0')" ( (binary_expression "(char)*pbVar12 < '\0'" (cast_expression "(char)*pbVar12" ( (type_descriptor "char" primitive_type) ) (pointer_expression "*pbVar12" * identifier)) < (char_literal "'\0'" ' escape_sequence ')) )) (compound_statement "{\n      pbVar12 = pbVar12 + 1;\n      if (pcieend == pbVar12) {\n        return false;\n      }\n    }" { (expression_statement "pbVar12 = pbVar12 + 1;" (assignment_expression "pbVar12 = pbVar12 + 1" identifier = (binary_expression "pbVar12 + 1" identifier + number_literal)) ;) (if_statement "if (pcieend == pbVar12) {\n        return false;\n      }" if (parenthesized_expression "(pcieend == pbVar12)" ( (binary_expression "pcieend == pbVar12" identifier == identifier) )) (compound_statement "{\n        return false;\n      }" { (return_statement "return false;" return false ;) })) })) (expression_statement "bVar16 = __s[1];" (assignment_expression "bVar16 = __s[1]" identifier = (subscript_expression "__s[1]" identifier [ number_literal ])) ;) (expression_statement "pbVar12 = pbVar12 + 1;" (assignment_expression "pbVar12 = pbVar12 + 1" identifier = (binary_expression "pbVar12 + 1" identifier + number_literal)) ;) (if_statement "if (bVar16 != 0) {\n      __s = __s + 1;\n      goto LAB_0024b528;\n    }" if (parenthesized_expression "(bVar16 != 0)" ( (binary_expression "bVar16 != 0" identifier != number_literal) )) (compound_statement "{\n      __s = __s + 1;\n      goto LAB_0024b528;\n    }" { (expression_statement "__s = __s + 1;" (assignment_expression "__s = __s + 1" identifier = (binary_expression "__s + 1" identifier + number_literal)) ;) (goto_statement "goto LAB_0024b528;" goto statement_identifier ;) })) (labeled_statement "LAB_0024b955:\n    puVar20 = "";" statement_identifier : (expression_statement "puVar20 = "";" (assignment_expression "puVar20 = """ identifier = (string_literal """" " ")) ;)) }) (else_clause "else {\n    if (bVar16 == 0) goto LAB_0024b955;\nLAB_0024b528:\n    iVar7 = -1;\n    bVar17 = 0;\n    bVar15 = bVar16;\n    do {\n      bVar16 = bVar17;\n      if (bVar15 == 0x50) {\n        if (pcieend == pbVar12 || (long)pcieend - (long)pbVar12 < 0) {\n          return false;\n        }\n        bVar15 = *pbVar12;\n        pbVar12 = pbVar12 + 1;\n        if ((bVar15 & 0x60) == 0x60) {\n          return false;\n        }\n        bVar17 = bVar15 & 7;\n        if (bVar17 == 2) {\n          lVar10 = 2;\n        }\n        else {\n          if (bVar17 < 3) {\n            if (bVar17 != 0) {\n              return false;\n            }\n          }\n          else {\n            if (bVar17 == 3) {\n              lVar10 = 4;\n              goto LAB_0024b853;\n            }\n            if (bVar17 != 4) {\n              return false;\n            }\n          }\n          lVar10 = 8;\n        }\nLAB_0024b853:\n        uVar6 = (int)pcieend - (int)pbVar12;\n        uVar5 = (uint)lVar10;\n        if ((bVar15 & 0xf0) == 0x50) {\n          uVar13 = -uVar5 & (uVar5 - 1) + ((int)pbVar12 - (int)pcie);\n          if (uVar6 < uVar13) {\n            return false;\n          }\n          pbVar12 = pbVar12 + uVar13;\n          uVar6 = (int)pcieend - (int)pbVar12;\n        }\n        iVar7 = (int)pbVar12 - (int)pcontents;\n        if (uVar6 < uVar5) {\n          return false;\n        }\n        pbVar12 = pbVar12 + lVar10;\n      }\n      else {\n        if (bVar15 < 0x51) {\n          if (bVar15 != 0x4c) {\n            return false;\n          }\n          if (pcieend == pbVar12 || (long)pcieend - (long)pbVar12 < 0) {\n            return false;\n          }\n        }\n        else {\n          if (bVar15 != 0x52) {\n            if (bVar15 != 0x53) {\n              return false;\n            }\n            goto LAB_0024b557;\n          }\n          if (pcieend == pbVar12 || (long)pcieend - (long)pbVar12 < 0) {\n            return false;\n          }\n          bVar16 = *pbVar12;\n          if (4 < (bVar16 & 7)) {\n            return false;\n          }\n          if ((1L << (bVar16 & 7) & 0x1dU) == 0) {\n            return false;\n          }\n        }\n        pbVar12 = pbVar12 + 1;\n      }\nLAB_0024b557:\n      __s = __s + 1;\n      bVar15 = *__s;\n      bVar17 = bVar16;\n    } while (bVar15 != 0);\n    if (iVar7 == -1) goto LAB_0024b955;\n    iVar4 = Track_relocs<64,_false>::advance(relocs,(long)iVar7);\n    if (0 < iVar4) {\n      return false;\n    }\n    oVar9 = Track_relocs<64,_false>::next_offset(relocs);\n    if (iVar7 != oVar9) {\n      return false;\n    }\n    uVar5 = Track_relocs<64,_false>::next_symndx(relocs);\n    if (uVar5 == 0xffffffff) {\n      return false;\n    }\n    uVar6 = (*(object->super_Sized_relobj<64,_false>).super_Relobj.super_Object._vptr_Object[0x23])\n                      (object);\n    if (uVar5 < uVar6) {\n      local_cd = '\0';\n      puVar20 = "";\n    }\n    else {\n      if (symbols_size / 0x18 <= (ulong)uVar5) {\n        return false;\n      }\n      if (symbol_names_size <= *(uint *)(symbols + uVar5 * 0x18)) {\n        return false;\n      }\n      puVar20 = symbol_names + *(uint *)(symbols + uVar5 * 0x18);\n    }\n    iVar7 = Track_relocs<64,_false>::advance(relocs,(long)(iVar7 + 1));\n    if (iVar7 != 1) {\n                    /* WARNING: Subroutine does not return */\n      do_gold_unreachable("../../gold/ehframe.cc",0x3af,"read_cie");\n    }\n  }" else (compound_statement "{\n    if (bVar16 == 0) goto LAB_0024b955;\nLAB_0024b528:\n    iVar7 = -1;\n    bVar17 = 0;\n    bVar15 = bVar16;\n    do {\n      bVar16 = bVar17;\n      if (bVar15 == 0x50) {\n        if (pcieend == pbVar12 || (long)pcieend - (long)pbVar12 < 0) {\n          return false;\n        }\n        bVar15 = *pbVar12;\n        pbVar12 = pbVar12 + 1;\n        if ((bVar15 & 0x60) == 0x60) {\n          return false;\n        }\n        bVar17 = bVar15 & 7;\n        if (bVar17 == 2) {\n          lVar10 = 2;\n        }\n        else {\n          if (bVar17 < 3) {\n            if (bVar17 != 0) {\n              return false;\n            }\n          }\n          else {\n            if (bVar17 == 3) {\n              lVar10 = 4;\n              goto LAB_0024b853;\n            }\n            if (bVar17 != 4) {\n              return false;\n            }\n          }\n          lVar10 = 8;\n        }\nLAB_0024b853:\n        uVar6 = (int)pcieend - (int)pbVar12;\n        uVar5 = (uint)lVar10;\n        if ((bVar15 & 0xf0) == 0x50) {\n          uVar13 = -uVar5 & (uVar5 - 1) + ((int)pbVar12 - (int)pcie);\n          if (uVar6 < uVar13) {\n            return false;\n          }\n          pbVar12 = pbVar12 + uVar13;\n          uVar6 = (int)pcieend - (int)pbVar12;\n        }\n        iVar7 = (int)pbVar12 - (int)pcontents;\n        if (uVar6 < uVar5) {\n          return false;\n        }\n        pbVar12 = pbVar12 + lVar10;\n      }\n      else {\n        if (bVar15 < 0x51) {\n          if (bVar15 != 0x4c) {\n            return false;\n          }\n          if (pcieend == pbVar12 || (long)pcieend - (long)pbVar12 < 0) {\n            return false;\n          }\n        }\n        else {\n          if (bVar15 != 0x52) {\n            if (bVar15 != 0x53) {\n              return false;\n            }\n            goto LAB_0024b557;\n          }\n          if (pcieend == pbVar12 || (long)pcieend - (long)pbVar12 < 0) {\n            return false;\n          }\n          bVar16 = *pbVar12;\n          if (4 < (bVar16 & 7)) {\n            return false;\n          }\n          if ((1L << (bVar16 & 7) & 0x1dU) == 0) {\n            return false;\n          }\n        }\n        pbVar12 = pbVar12 + 1;\n      }\nLAB_0024b557:\n      __s = __s + 1;\n      bVar15 = *__s;\n      bVar17 = bVar16;\n    } while (bVar15 != 0);\n    if (iVar7 == -1) goto LAB_0024b955;\n    iVar4 = Track_relocs<64,_false>::advance(relocs,(long)iVar7);\n    if (0 < iVar4) {\n      return false;\n    }\n    oVar9 = Track_relocs<64,_false>::next_offset(relocs);\n    if (iVar7 != oVar9) {\n      return false;\n    }\n    uVar5 = Track_relocs<64,_false>::next_symndx(relocs);\n    if (uVar5 == 0xffffffff) {\n      return false;\n    }\n    uVar6 = (*(object->super_Sized_relobj<64,_false>).super_Relobj.super_Object._vptr_Object[0x23])\n                      (object);\n    if (uVar5 < uVar6) {\n      local_cd = '\0';\n      puVar20 = "";\n    }\n    else {\n      if (symbols_size / 0x18 <= (ulong)uVar5) {\n        return false;\n      }\n      if (symbol_names_size <= *(uint *)(symbols + uVar5 * 0x18)) {\n        return false;\n      }\n      puVar20 = symbol_names + *(uint *)(symbols + uVar5 * 0x18);\n    }\n    iVar7 = Track_relocs<64,_false>::advance(relocs,(long)(iVar7 + 1));\n    if (iVar7 != 1) {\n                    /* WARNING: Subroutine does not return */\n      do_gold_unreachable("../../gold/ehframe.cc",0x3af,"read_cie");\n    }\n  }" { (if_statement "if (bVar16 == 0) goto LAB_0024b955;" if (parenthesized_expression "(bVar16 == 0)" ( (binary_expression "bVar16 == 0" identifier == number_literal) )) (goto_statement "goto LAB_0024b955;" goto statement_identifier ;)) (labeled_statement "LAB_0024b528:\n    iVar7 = -1;" statement_identifier : (expression_statement "iVar7 = -1;" (assignment_expression "iVar7 = -1" identifier = number_literal) ;)) (expression_statement "bVar17 = 0;" (assignment_expression "bVar17 = 0" identifier = number_literal) ;) (expression_statement "bVar15 = bVar16;" (assignment_expression "bVar15 = bVar16" identifier = identifier) ;) (do_statement "do {\n      bVar16 = bVar17;\n      if (bVar15 == 0x50) {\n        if (pcieend == pbVar12 || (long)pcieend - (long)pbVar12 < 0) {\n          return false;\n        }\n        bVar15 = *pbVar12;\n        pbVar12 = pbVar12 + 1;\n        if ((bVar15 & 0x60) == 0x60) {\n          return false;\n        }\n        bVar17 = bVar15 & 7;\n        if (bVar17 == 2) {\n          lVar10 = 2;\n        }\n        else {\n          if (bVar17 < 3) {\n            if (bVar17 != 0) {\n              return false;\n            }\n          }\n          else {\n            if (bVar17 == 3) {\n              lVar10 = 4;\n              goto LAB_0024b853;\n            }\n            if (bVar17 != 4) {\n              return false;\n            }\n          }\n          lVar10 = 8;\n        }\nLAB_0024b853:\n        uVar6 = (int)pcieend - (int)pbVar12;\n        uVar5 = (uint)lVar10;\n        if ((bVar15 & 0xf0) == 0x50) {\n          uVar13 = -uVar5 & (uVar5 - 1) + ((int)pbVar12 - (int)pcie);\n          if (uVar6 < uVar13) {\n            return false;\n          }\n          pbVar12 = pbVar12 + uVar13;\n          uVar6 = (int)pcieend - (int)pbVar12;\n        }\n        iVar7 = (int)pbVar12 - (int)pcontents;\n        if (uVar6 < uVar5) {\n          return false;\n        }\n        pbVar12 = pbVar12 + lVar10;\n      }\n      else {\n        if (bVar15 < 0x51) {\n          if (bVar15 != 0x4c) {\n            return false;\n          }\n          if (pcieend == pbVar12 || (long)pcieend - (long)pbVar12 < 0) {\n            return false;\n          }\n        }\n        else {\n          if (bVar15 != 0x52) {\n            if (bVar15 != 0x53) {\n              return false;\n            }\n            goto LAB_0024b557;\n          }\n          if (pcieend == pbVar12 || (long)pcieend - (long)pbVar12 < 0) {\n            return false;\n          }\n          bVar16 = *pbVar12;\n          if (4 < (bVar16 & 7)) {\n            return false;\n          }\n          if ((1L << (bVar16 & 7) & 0x1dU) == 0) {\n            return false;\n          }\n        }\n        pbVar12 = pbVar12 + 1;\n      }\nLAB_0024b557:\n      __s = __s + 1;\n      bVar15 = *__s;\n      bVar17 = bVar16;\n    } while (bVar15 != 0);" do (compound_statement "{\n      bVar16 = bVar17;\n      if (bVar15 == 0x50) {\n        if (pcieend == pbVar12 || (long)pcieend - (long)pbVar12 < 0) {\n          return false;\n        }\n        bVar15 = *pbVar12;\n        pbVar12 = pbVar12 + 1;\n        if ((bVar15 & 0x60) == 0x60) {\n          return false;\n        }\n        bVar17 = bVar15 & 7;\n        if (bVar17 == 2) {\n          lVar10 = 2;\n        }\n        else {\n          if (bVar17 < 3) {\n            if (bVar17 != 0) {\n              return false;\n            }\n          }\n          else {\n            if (bVar17 == 3) {\n              lVar10 = 4;\n              goto LAB_0024b853;\n            }\n            if (bVar17 != 4) {\n              return false;\n            }\n          }\n          lVar10 = 8;\n        }\nLAB_0024b853:\n        uVar6 = (int)pcieend - (int)pbVar12;\n        uVar5 = (uint)lVar10;\n        if ((bVar15 & 0xf0) == 0x50) {\n          uVar13 = -uVar5 & (uVar5 - 1) + ((int)pbVar12 - (int)pcie);\n          if (uVar6 < uVar13) {\n            return false;\n          }\n          pbVar12 = pbVar12 + uVar13;\n          uVar6 = (int)pcieend - (int)pbVar12;\n        }\n        iVar7 = (int)pbVar12 - (int)pcontents;\n        if (uVar6 < uVar5) {\n          return false;\n        }\n        pbVar12 = pbVar12 + lVar10;\n      }\n      else {\n        if (bVar15 < 0x51) {\n          if (bVar15 != 0x4c) {\n            return false;\n          }\n          if (pcieend == pbVar12 || (long)pcieend - (long)pbVar12 < 0) {\n            return false;\n          }\n        }\n        else {\n          if (bVar15 != 0x52) {\n            if (bVar15 != 0x53) {\n              return false;\n            }\n            goto LAB_0024b557;\n          }\n          if (pcieend == pbVar12 || (long)pcieend - (long)pbVar12 < 0) {\n            return false;\n          }\n          bVar16 = *pbVar12;\n          if (4 < (bVar16 & 7)) {\n            return false;\n          }\n          if ((1L << (bVar16 & 7) & 0x1dU) == 0) {\n            return false;\n          }\n        }\n        pbVar12 = pbVar12 + 1;\n      }\nLAB_0024b557:\n      __s = __s + 1;\n      bVar15 = *__s;\n      bVar17 = bVar16;\n    }" { (expression_statement "bVar16 = bVar17;" (assignment_expression "bVar16 = bVar17" identifier = identifier) ;) (if_statement "if (bVar15 == 0x50) {\n        if (pcieend == pbVar12 || (long)pcieend - (long)pbVar12 < 0) {\n          return false;\n        }\n        bVar15 = *pbVar12;\n        pbVar12 = pbVar12 + 1;\n        if ((bVar15 & 0x60) == 0x60) {\n          return false;\n        }\n        bVar17 = bVar15 & 7;\n        if (bVar17 == 2) {\n          lVar10 = 2;\n        }\n        else {\n          if (bVar17 < 3) {\n            if (bVar17 != 0) {\n              return false;\n            }\n          }\n          else {\n            if (bVar17 == 3) {\n              lVar10 = 4;\n              goto LAB_0024b853;\n            }\n            if (bVar17 != 4) {\n              return false;\n            }\n          }\n          lVar10 = 8;\n        }\nLAB_0024b853:\n        uVar6 = (int)pcieend - (int)pbVar12;\n        uVar5 = (uint)lVar10;\n        if ((bVar15 & 0xf0) == 0x50) {\n          uVar13 = -uVar5 & (uVar5 - 1) + ((int)pbVar12 - (int)pcie);\n          if (uVar6 < uVar13) {\n            return false;\n          }\n          pbVar12 = pbVar12 + uVar13;\n          uVar6 = (int)pcieend - (int)pbVar12;\n        }\n        iVar7 = (int)pbVar12 - (int)pcontents;\n        if (uVar6 < uVar5) {\n          return false;\n        }\n        pbVar12 = pbVar12 + lVar10;\n      }\n      else {\n        if (bVar15 < 0x51) {\n          if (bVar15 != 0x4c) {\n            return false;\n          }\n          if (pcieend == pbVar12 || (long)pcieend - (long)pbVar12 < 0) {\n            return false;\n          }\n        }\n        else {\n          if (bVar15 != 0x52) {\n            if (bVar15 != 0x53) {\n              return false;\n            }\n            goto LAB_0024b557;\n          }\n          if (pcieend == pbVar12 || (long)pcieend - (long)pbVar12 < 0) {\n            return false;\n          }\n          bVar16 = *pbVar12;\n          if (4 < (bVar16 & 7)) {\n            return false;\n          }\n          if ((1L << (bVar16 & 7) & 0x1dU) == 0) {\n            return false;\n          }\n        }\n        pbVar12 = pbVar12 + 1;\n      }" if (parenthesized_expression "(bVar15 == 0x50)" ( (binary_expression "bVar15 == 0x50" identifier == number_literal) )) (compound_statement "{\n        if (pcieend == pbVar12 || (long)pcieend - (long)pbVar12 < 0) {\n          return false;\n        }\n        bVar15 = *pbVar12;\n        pbVar12 = pbVar12 + 1;\n        if ((bVar15 & 0x60) == 0x60) {\n          return false;\n        }\n        bVar17 = bVar15 & 7;\n        if (bVar17 == 2) {\n          lVar10 = 2;\n        }\n        else {\n          if (bVar17 < 3) {\n            if (bVar17 != 0) {\n              return false;\n            }\n          }\n          else {\n            if (bVar17 == 3) {\n              lVar10 = 4;\n              goto LAB_0024b853;\n            }\n            if (bVar17 != 4) {\n              return false;\n            }\n          }\n          lVar10 = 8;\n        }\nLAB_0024b853:\n        uVar6 = (int)pcieend - (int)pbVar12;\n        uVar5 = (uint)lVar10;\n        if ((bVar15 & 0xf0) == 0x50) {\n          uVar13 = -uVar5 & (uVar5 - 1) + ((int)pbVar12 - (int)pcie);\n          if (uVar6 < uVar13) {\n            return false;\n          }\n          pbVar12 = pbVar12 + uVar13;\n          uVar6 = (int)pcieend - (int)pbVar12;\n        }\n        iVar7 = (int)pbVar12 - (int)pcontents;\n        if (uVar6 < uVar5) {\n          return false;\n        }\n        pbVar12 = pbVar12 + lVar10;\n      }" { (if_statement "if (pcieend == pbVar12 || (long)pcieend - (long)pbVar12 < 0) {\n          return false;\n        }" if (parenthesized_expression "(pcieend == pbVar12 || (long)pcieend - (long)pbVar12 < 0)" ( (binary_expression "pcieend == pbVar12 || (long)pcieend - (long)pbVar12 < 0" (binary_expression "pcieend == pbVar12" identifier == identifier) || (binary_expression "(long)pcieend - (long)pbVar12 < 0" (binary_expression "(long)pcieend - (long)pbVar12" (cast_expression "(long)pcieend" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) identifier) - (cast_expression "(long)pbVar12" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) identifier)) < number_literal)) )) (compound_statement "{\n          return false;\n        }" { (return_statement "return false;" return false ;) })) (expression_statement "bVar15 = *pbVar12;" (assignment_expression "bVar15 = *pbVar12" identifier = (pointer_expression "*pbVar12" * identifier)) ;) (expression_statement "pbVar12 = pbVar12 + 1;" (assignment_expression "pbVar12 = pbVar12 + 1" identifier = (binary_expression "pbVar12 + 1" identifier + number_literal)) ;) (if_statement "if ((bVar15 & 0x60) == 0x60) {\n          return false;\n        }" if (parenthesized_expression "((bVar15 & 0x60) == 0x60)" ( (binary_expression "(bVar15 & 0x60) == 0x60" (parenthesized_expression "(bVar15 & 0x60)" ( (binary_expression "bVar15 & 0x60" identifier & number_literal) )) == number_literal) )) (compound_statement "{\n          return false;\n        }" { (return_statement "return false;" return false ;) })) (expression_statement "bVar17 = bVar15 & 7;" (assignment_expression "bVar17 = bVar15 & 7" identifier = (binary_expression "bVar15 & 7" identifier & number_literal)) ;) (if_statement "if (bVar17 == 2) {\n          lVar10 = 2;\n        }\n        else {\n          if (bVar17 < 3) {\n            if (bVar17 != 0) {\n              return false;\n            }\n          }\n          else {\n            if (bVar17 == 3) {\n              lVar10 = 4;\n              goto LAB_0024b853;\n            }\n            if (bVar17 != 4) {\n              return false;\n            }\n          }\n          lVar10 = 8;\n        }" if (parenthesized_expression "(bVar17 == 2)" ( (binary_expression "bVar17 == 2" identifier == number_literal) )) (compound_statement "{\n          lVar10 = 2;\n        }" { (expression_statement "lVar10 = 2;" (assignment_expression "lVar10 = 2" identifier = number_literal) ;) }) (else_clause "else {\n          if (bVar17 < 3) {\n            if (bVar17 != 0) {\n              return false;\n            }\n          }\n          else {\n            if (bVar17 == 3) {\n              lVar10 = 4;\n              goto LAB_0024b853;\n            }\n            if (bVar17 != 4) {\n              return false;\n            }\n          }\n          lVar10 = 8;\n        }" else (compound_statement "{\n          if (bVar17 < 3) {\n            if (bVar17 != 0) {\n              return false;\n            }\n          }\n          else {\n            if (bVar17 == 3) {\n              lVar10 = 4;\n              goto LAB_0024b853;\n            }\n            if (bVar17 != 4) {\n              return false;\n            }\n          }\n          lVar10 = 8;\n        }" { (if_statement "if (bVar17 < 3) {\n            if (bVar17 != 0) {\n              return false;\n            }\n          }\n          else {\n            if (bVar17 == 3) {\n              lVar10 = 4;\n              goto LAB_0024b853;\n            }\n            if (bVar17 != 4) {\n              return false;\n            }\n          }" if (parenthesized_expression "(bVar17 < 3)" ( (binary_expression "bVar17 < 3" identifier < number_literal) )) (compound_statement "{\n            if (bVar17 != 0) {\n              return false;\n            }\n          }" { (if_statement "if (bVar17 != 0) {\n              return false;\n            }" if (parenthesized_expression "(bVar17 != 0)" ( (binary_expression "bVar17 != 0" identifier != number_literal) )) (compound_statement "{\n              return false;\n            }" { (return_statement "return false;" return false ;) })) }) (else_clause "else {\n            if (bVar17 == 3) {\n              lVar10 = 4;\n              goto LAB_0024b853;\n            }\n            if (bVar17 != 4) {\n              return false;\n            }\n          }" else (compound_statement "{\n            if (bVar17 == 3) {\n              lVar10 = 4;\n              goto LAB_0024b853;\n            }\n            if (bVar17 != 4) {\n              return false;\n            }\n          }" { (if_statement "if (bVar17 == 3) {\n              lVar10 = 4;\n              goto LAB_0024b853;\n            }" if (parenthesized_expression "(bVar17 == 3)" ( (binary_expression "bVar17 == 3" identifier == number_literal) )) (compound_statement "{\n              lVar10 = 4;\n              goto LAB_0024b853;\n            }" { (expression_statement "lVar10 = 4;" (assignment_expression "lVar10 = 4" identifier = number_literal) ;) (goto_statement "goto LAB_0024b853;" goto statement_identifier ;) })) (if_statement "if (bVar17 != 4) {\n              return false;\n            }" if (parenthesized_expression "(bVar17 != 4)" ( (binary_expression "bVar17 != 4" identifier != number_literal) )) (compound_statement "{\n              return false;\n            }" { (return_statement "return false;" return false ;) })) }))) (expression_statement "lVar10 = 8;" (assignment_expression "lVar10 = 8" identifier = number_literal) ;) }))) (labeled_statement "LAB_0024b853:\n        uVar6 = (int)pcieend - (int)pbVar12;" statement_identifier : (expression_statement "uVar6 = (int)pcieend - (int)pbVar12;" (assignment_expression "uVar6 = (int)pcieend - (int)pbVar12" identifier = (binary_expression "(int)pcieend - (int)pbVar12" (cast_expression "(int)pcieend" ( (type_descriptor "int" primitive_type) ) identifier) - (cast_expression "(int)pbVar12" ( (type_descriptor "int" primitive_type) ) identifier))) ;)) (expression_statement "uVar5 = (uint)lVar10;" (assignment_expression "uVar5 = (uint)lVar10" identifier = (cast_expression "(uint)lVar10" ( (type_descriptor "uint" type_identifier) ) identifier)) ;) (if_statement "if ((bVar15 & 0xf0) == 0x50) {\n          uVar13 = -uVar5 & (uVar5 - 1) + ((int)pbVar12 - (int)pcie);\n          if (uVar6 < uVar13) {\n            return false;\n          }\n          pbVar12 = pbVar12 + uVar13;\n          uVar6 = (int)pcieend - (int)pbVar12;\n        }" if (parenthesized_expression "((bVar15 & 0xf0) == 0x50)" ( (binary_expression "(bVar15 & 0xf0) == 0x50" (parenthesized_expression "(bVar15 & 0xf0)" ( (binary_expression "bVar15 & 0xf0" identifier & number_literal) )) == number_literal) )) (compound_statement "{\n          uVar13 = -uVar5 & (uVar5 - 1) + ((int)pbVar12 - (int)pcie);\n          if (uVar6 < uVar13) {\n            return false;\n          }\n          pbVar12 = pbVar12 + uVar13;\n          uVar6 = (int)pcieend - (int)pbVar12;\n        }" { (expression_statement "uVar13 = -uVar5 & (uVar5 - 1) + ((int)pbVar12 - (int)pcie);" (assignment_expression "uVar13 = -uVar5 & (uVar5 - 1) + ((int)pbVar12 - (int)pcie)" identifier = (binary_expression "-uVar5 & (uVar5 - 1) + ((int)pbVar12 - (int)pcie)" (unary_expression "-uVar5" - identifier) & (binary_expression "(uVar5 - 1) + ((int)pbVar12 - (int)pcie)" (parenthesized_expression "(uVar5 - 1)" ( (binary_expression "uVar5 - 1" identifier - number_literal) )) + (parenthesized_expression "((int)pbVar12 - (int)pcie)" ( (binary_expression "(int)pbVar12 - (int)pcie" (cast_expression "(int)pbVar12" ( (type_descriptor "int" primitive_type) ) identifier) - (cast_expression "(int)pcie" ( (type_descriptor "int" primitive_type) ) identifier)) ))))) ;) (if_statement "if (uVar6 < uVar13) {\n            return false;\n          }" if (parenthesized_expression "(uVar6 < uVar13)" ( (binary_expression "uVar6 < uVar13" identifier < identifier) )) (compound_statement "{\n            return false;\n          }" { (return_statement "return false;" return false ;) })) (expression_statement "pbVar12 = pbVar12 + uVar13;" (assignment_expression "pbVar12 = pbVar12 + uVar13" identifier = (binary_expression "pbVar12 + uVar13" identifier + identifier)) ;) (expression_statement "uVar6 = (int)pcieend - (int)pbVar12;" (assignment_expression "uVar6 = (int)pcieend - (int)pbVar12" identifier = (binary_expression "(int)pcieend - (int)pbVar12" (cast_expression "(int)pcieend" ( (type_descriptor "int" primitive_type) ) identifier) - (cast_expression "(int)pbVar12" ( (type_descriptor "int" primitive_type) ) identifier))) ;) })) (expression_statement "iVar7 = (int)pbVar12 - (int)pcontents;" (assignment_expression "iVar7 = (int)pbVar12 - (int)pcontents" identifier = (binary_expression "(int)pbVar12 - (int)pcontents" (cast_expression "(int)pbVar12" ( (type_descriptor "int" primitive_type) ) identifier) - (cast_expression "(int)pcontents" ( (type_descriptor "int" primitive_type) ) identifier))) ;) (if_statement "if (uVar6 < uVar5) {\n          return false;\n        }" if (parenthesized_expression "(uVar6 < uVar5)" ( (binary_expression "uVar6 < uVar5" identifier < identifier) )) (compound_statement "{\n          return false;\n        }" { (return_statement "return false;" return false ;) })) (expression_statement "pbVar12 = pbVar12 + lVar10;" (assignment_expression "pbVar12 = pbVar12 + lVar10" identifier = (binary_expression "pbVar12 + lVar10" identifier + identifier)) ;) }) (else_clause "else {\n        if (bVar15 < 0x51) {\n          if (bVar15 != 0x4c) {\n            return false;\n          }\n          if (pcieend == pbVar12 || (long)pcieend - (long)pbVar12 < 0) {\n            return false;\n          }\n        }\n        else {\n          if (bVar15 != 0x52) {\n            if (bVar15 != 0x53) {\n              return false;\n            }\n            goto LAB_0024b557;\n          }\n          if (pcieend == pbVar12 || (long)pcieend - (long)pbVar12 < 0) {\n            return false;\n          }\n          bVar16 = *pbVar12;\n          if (4 < (bVar16 & 7)) {\n            return false;\n          }\n          if ((1L << (bVar16 & 7) & 0x1dU) == 0) {\n            return false;\n          }\n        }\n        pbVar12 = pbVar12 + 1;\n      }" else (compound_statement "{\n        if (bVar15 < 0x51) {\n          if (bVar15 != 0x4c) {\n            return false;\n          }\n          if (pcieend == pbVar12 || (long)pcieend - (long)pbVar12 < 0) {\n            return false;\n          }\n        }\n        else {\n          if (bVar15 != 0x52) {\n            if (bVar15 != 0x53) {\n              return false;\n            }\n            goto LAB_0024b557;\n          }\n          if (pcieend == pbVar12 || (long)pcieend - (long)pbVar12 < 0) {\n            return false;\n          }\n          bVar16 = *pbVar12;\n          if (4 < (bVar16 & 7)) {\n            return false;\n          }\n          if ((1L << (bVar16 & 7) & 0x1dU) == 0) {\n            return false;\n          }\n        }\n        pbVar12 = pbVar12 + 1;\n      }" { (if_statement "if (bVar15 < 0x51) {\n          if (bVar15 != 0x4c) {\n            return false;\n          }\n          if (pcieend == pbVar12 || (long)pcieend - (long)pbVar12 < 0) {\n            return false;\n          }\n        }\n        else {\n          if (bVar15 != 0x52) {\n            if (bVar15 != 0x53) {\n              return false;\n            }\n            goto LAB_0024b557;\n          }\n          if (pcieend == pbVar12 || (long)pcieend - (long)pbVar12 < 0) {\n            return false;\n          }\n          bVar16 = *pbVar12;\n          if (4 < (bVar16 & 7)) {\n            return false;\n          }\n          if ((1L << (bVar16 & 7) & 0x1dU) == 0) {\n            return false;\n          }\n        }" if (parenthesized_expression "(bVar15 < 0x51)" ( (binary_expression "bVar15 < 0x51" identifier < number_literal) )) (compound_statement "{\n          if (bVar15 != 0x4c) {\n            return false;\n          }\n          if (pcieend == pbVar12 || (long)pcieend - (long)pbVar12 < 0) {\n            return false;\n          }\n        }" { (if_statement "if (bVar15 != 0x4c) {\n            return false;\n          }" if (parenthesized_expression "(bVar15 != 0x4c)" ( (binary_expression "bVar15 != 0x4c" identifier != number_literal) )) (compound_statement "{\n            return false;\n          }" { (return_statement "return false;" return false ;) })) (if_statement "if (pcieend == pbVar12 || (long)pcieend - (long)pbVar12 < 0) {\n            return false;\n          }" if (parenthesized_expression "(pcieend == pbVar12 || (long)pcieend - (long)pbVar12 < 0)" ( (binary_expression "pcieend == pbVar12 || (long)pcieend - (long)pbVar12 < 0" (binary_expression "pcieend == pbVar12" identifier == identifier) || (binary_expression "(long)pcieend - (long)pbVar12 < 0" (binary_expression "(long)pcieend - (long)pbVar12" (cast_expression "(long)pcieend" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) identifier) - (cast_expression "(long)pbVar12" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) identifier)) < number_literal)) )) (compound_statement "{\n            return false;\n          }" { (return_statement "return false;" return false ;) })) }) (else_clause "else {\n          if (bVar15 != 0x52) {\n            if (bVar15 != 0x53) {\n              return false;\n            }\n            goto LAB_0024b557;\n          }\n          if (pcieend == pbVar12 || (long)pcieend - (long)pbVar12 < 0) {\n            return false;\n          }\n          bVar16 = *pbVar12;\n          if (4 < (bVar16 & 7)) {\n            return false;\n          }\n          if ((1L << (bVar16 & 7) & 0x1dU) == 0) {\n            return false;\n          }\n        }" else (compound_statement "{\n          if (bVar15 != 0x52) {\n            if (bVar15 != 0x53) {\n              return false;\n            }\n            goto LAB_0024b557;\n          }\n          if (pcieend == pbVar12 || (long)pcieend - (long)pbVar12 < 0) {\n            return false;\n          }\n          bVar16 = *pbVar12;\n          if (4 < (bVar16 & 7)) {\n            return false;\n          }\n          if ((1L << (bVar16 & 7) & 0x1dU) == 0) {\n            return false;\n          }\n        }" { (if_statement "if (bVar15 != 0x52) {\n            if (bVar15 != 0x53) {\n              return false;\n            }\n            goto LAB_0024b557;\n          }" if (parenthesized_expression "(bVar15 != 0x52)" ( (binary_expression "bVar15 != 0x52" identifier != number_literal) )) (compound_statement "{\n            if (bVar15 != 0x53) {\n              return false;\n            }\n            goto LAB_0024b557;\n          }" { (if_statement "if (bVar15 != 0x53) {\n              return false;\n            }" if (parenthesized_expression "(bVar15 != 0x53)" ( (binary_expression "bVar15 != 0x53" identifier != number_literal) )) (compound_statement "{\n              return false;\n            }" { (return_statement "return false;" return false ;) })) (goto_statement "goto LAB_0024b557;" goto statement_identifier ;) })) (if_statement "if (pcieend == pbVar12 || (long)pcieend - (long)pbVar12 < 0) {\n            return false;\n          }" if (parenthesized_expression "(pcieend == pbVar12 || (long)pcieend - (long)pbVar12 < 0)" ( (binary_expression "pcieend == pbVar12 || (long)pcieend - (long)pbVar12 < 0" (binary_expression "pcieend == pbVar12" identifier == identifier) || (binary_expression "(long)pcieend - (long)pbVar12 < 0" (binary_expression "(long)pcieend - (long)pbVar12" (cast_expression "(long)pcieend" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) identifier) - (cast_expression "(long)pbVar12" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) identifier)) < number_literal)) )) (compound_statement "{\n            return false;\n          }" { (return_statement "return false;" return false ;) })) (expression_statement "bVar16 = *pbVar12;" (assignment_expression "bVar16 = *pbVar12" identifier = (pointer_expression "*pbVar12" * identifier)) ;) (if_statement "if (4 < (bVar16 & 7)) {\n            return false;\n          }" if (parenthesized_expression "(4 < (bVar16 & 7))" ( (binary_expression "4 < (bVar16 & 7)" number_literal < (parenthesized_expression "(bVar16 & 7)" ( (binary_expression "bVar16 & 7" identifier & number_literal) ))) )) (compound_statement "{\n            return false;\n          }" { (return_statement "return false;" return false ;) })) (if_statement "if ((1L << (bVar16 & 7) & 0x1dU) == 0) {\n            return false;\n          }" if (parenthesized_expression "((1L << (bVar16 & 7) & 0x1dU) == 0)" ( (binary_expression "(1L << (bVar16 & 7) & 0x1dU) == 0" (parenthesized_expression "(1L << (bVar16 & 7) & 0x1dU)" ( (binary_expression "1L << (bVar16 & 7) & 0x1dU" (binary_expression "1L << (bVar16 & 7)" number_literal << (parenthesized_expression "(bVar16 & 7)" ( (binary_expression "bVar16 & 7" identifier & number_literal) ))) & number_literal) )) == number_literal) )) (compound_statement "{\n            return false;\n          }" { (return_statement "return false;" return false ;) })) }))) (expression_statement "pbVar12 = pbVar12 + 1;" (assignment_expression "pbVar12 = pbVar12 + 1" identifier = (binary_expression "pbVar12 + 1" identifier + number_literal)) ;) }))) (labeled_statement "LAB_0024b557:\n      __s = __s + 1;" statement_identifier : (expression_statement "__s = __s + 1;" (assignment_expression "__s = __s + 1" identifier = (binary_expression "__s + 1" identifier + number_literal)) ;)) (expression_statement "bVar15 = *__s;" (assignment_expression "bVar15 = *__s" identifier = (pointer_expression "*__s" * identifier)) ;) (expression_statement "bVar17 = bVar16;" (assignment_expression "bVar17 = bVar16" identifier = identifier) ;) }) while (parenthesized_expression "(bVar15 != 0)" ( (binary_expression "bVar15 != 0" identifier != number_literal) )) ;) (if_statement "if (iVar7 == -1) goto LAB_0024b955;" if (parenthesized_expression "(iVar7 == -1)" ( (binary_expression "iVar7 == -1" identifier == number_literal) )) (goto_statement "goto LAB_0024b955;" goto statement_identifier ;)) (expression_statement "iVar4 = Track_relocs<64,_false>::advance(relocs,(long)iVar7);" (comma_expression "iVar4 = Track_relocs<64,_false>::advance(relocs,(long)iVar7)" (assignment_expression "iVar4 = Track_relocs<64" identifier = (binary_expression "Track_relocs<64" identifier < number_literal)) , (binary_expression "_false>::advance(relocs,(long)iVar7)" identifier > (ERROR "::" : :) (call_expression "advance(relocs,(long)iVar7)" identifier (argument_list "(relocs,(long)iVar7)" ( identifier , (cast_expression "(long)iVar7" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) identifier) ))))) ;) (if_statement "if (0 < iVar4) {\n      return false;\n    }" if (parenthesized_expression "(0 < iVar4)" ( (binary_expression "0 < iVar4" number_literal < identifier) )) (compound_statement "{\n      return false;\n    }" { (return_statement "return false;" return false ;) })) (expression_statement "oVar9 = Track_relocs<64,_false>::next_offset(relocs);" (comma_expression "oVar9 = Track_relocs<64,_false>::next_offset(relocs)" (assignment_expression "oVar9 = Track_relocs<64" identifier = (binary_expression "Track_relocs<64" identifier < number_literal)) , (binary_expression "_false>::next_offset(relocs)" identifier > (ERROR "::" : :) (call_expression "next_offset(relocs)" identifier (argument_list "(relocs)" ( identifier ))))) ;) (if_statement "if (iVar7 != oVar9) {\n      return false;\n    }" if (parenthesized_expression "(iVar7 != oVar9)" ( (binary_expression "iVar7 != oVar9" identifier != identifier) )) (compound_statement "{\n      return false;\n    }" { (return_statement "return false;" return false ;) })) (expression_statement "uVar5 = Track_relocs<64,_false>::next_symndx(relocs);" (comma_expression "uVar5 = Track_relocs<64,_false>::next_symndx(relocs)" (assignment_expression "uVar5 = Track_relocs<64" identifier = (binary_expression "Track_relocs<64" identifier < number_literal)) , (binary_expression "_false>::next_symndx(relocs)" identifier > (ERROR "::" : :) (call_expression "next_symndx(relocs)" identifier (argument_list "(relocs)" ( identifier ))))) ;) (if_statement "if (uVar5 == 0xffffffff) {\n      return false;\n    }" if (parenthesized_expression "(uVar5 == 0xffffffff)" ( (binary_expression "uVar5 == 0xffffffff" identifier == number_literal) )) (compound_statement "{\n      return false;\n    }" { (return_statement "return false;" return false ;) })) (expression_statement "uVar6 = (*(object->super_Sized_relobj<64,_false>).super_Relobj.super_Object._vptr_Object[0x23])\n                      (object);" (assignment_expression "uVar6 = (*(object->super_Sized_relobj<64,_false>).super_Relobj.super_Object._vptr_Object[0x23])\n                      (object)" identifier = (call_expression "(*(object->super_Sized_relobj<64,_false>).super_Relobj.super_Object._vptr_Object[0x23])\n                      (object)" (parenthesized_expression "(*(object->super_Sized_relobj<64,_false>).super_Relobj.super_Object._vptr_Object[0x23])" ( (pointer_expression "*(object->super_Sized_relobj<64,_false>).super_Relobj.super_Object._vptr_Object[0x23]" * (subscript_expression "(object->super_Sized_relobj<64,_false>).super_Relobj.super_Object._vptr_Object[0x23]" (field_expression "(object->super_Sized_relobj<64,_false>).super_Relobj.super_Object._vptr_Object" (field_expression "(object->super_Sized_relobj<64,_false>).super_Relobj.super_Object" (field_expression "(object->super_Sized_relobj<64,_false>).super_Relobj" (parenthesized_expression "(object->super_Sized_relobj<64,_false>)" ( (comma_expression "object->super_Sized_relobj<64,_false" (binary_expression "object->super_Sized_relobj<64" (field_expression "object->super_Sized_relobj" identifier -> field_identifier) < number_literal) , identifier) (ERROR ">" >) )) . field_identifier) . field_identifier) . field_identifier) [ number_literal ])) )) (argument_list "(object)" ( identifier )))) ;) (if_statement "if (uVar5 < uVar6) {\n      local_cd = '\0';\n      puVar20 = "";\n    }\n    else {\n      if (symbols_size / 0x18 <= (ulong)uVar5) {\n        return false;\n      }\n      if (symbol_names_size <= *(uint *)(symbols + uVar5 * 0x18)) {\n        return false;\n      }\n      puVar20 = symbol_names + *(uint *)(symbols + uVar5 * 0x18);\n    }" if (parenthesized_expression "(uVar5 < uVar6)" ( (binary_expression "uVar5 < uVar6" identifier < identifier) )) (compound_statement "{\n      local_cd = '\0';\n      puVar20 = "";\n    }" { (expression_statement "local_cd = '\0';" (assignment_expression "local_cd = '\0'" identifier = (char_literal "'\0'" ' escape_sequence ')) ;) (expression_statement "puVar20 = "";" (assignment_expression "puVar20 = """ identifier = (string_literal """" " ")) ;) }) (else_clause "else {\n      if (symbols_size / 0x18 <= (ulong)uVar5) {\n        return false;\n      }\n      if (symbol_names_size <= *(uint *)(symbols + uVar5 * 0x18)) {\n        return false;\n      }\n      puVar20 = symbol_names + *(uint *)(symbols + uVar5 * 0x18);\n    }" else (compound_statement "{\n      if (symbols_size / 0x18 <= (ulong)uVar5) {\n        return false;\n      }\n      if (symbol_names_size <= *(uint *)(symbols + uVar5 * 0x18)) {\n        return false;\n      }\n      puVar20 = symbol_names + *(uint *)(symbols + uVar5 * 0x18);\n    }" { (if_statement "if (symbols_size / 0x18 <= (ulong)uVar5) {\n        return false;\n      }" if (parenthesized_expression "(symbols_size / 0x18 <= (ulong)uVar5)" ( (binary_expression "symbols_size / 0x18 <= (ulong)uVar5" (binary_expression "symbols_size / 0x18" identifier / number_literal) <= (cast_expression "(ulong)uVar5" ( (type_descriptor "ulong" type_identifier) ) identifier)) )) (compound_statement "{\n        return false;\n      }" { (return_statement "return false;" return false ;) })) (if_statement "if (symbol_names_size <= *(uint *)(symbols + uVar5 * 0x18)) {\n        return false;\n      }" if (parenthesized_expression "(symbol_names_size <= *(uint *)(symbols + uVar5 * 0x18))" ( (binary_expression "symbol_names_size <= *(uint *)(symbols + uVar5 * 0x18)" identifier <= (pointer_expression "*(uint *)(symbols + uVar5 * 0x18)" * (cast_expression "(uint *)(symbols + uVar5 * 0x18)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(symbols + uVar5 * 0x18)" ( (binary_expression "symbols + uVar5 * 0x18" identifier + (binary_expression "uVar5 * 0x18" identifier * number_literal)) ))))) )) (compound_statement "{\n        return false;\n      }" { (return_statement "return false;" return false ;) })) (expression_statement "puVar20 = symbol_names + *(uint *)(symbols + uVar5 * 0x18);" (assignment_expression "puVar20 = symbol_names + *(uint *)(symbols + uVar5 * 0x18)" identifier = (binary_expression "symbol_names + *(uint *)(symbols + uVar5 * 0x18)" identifier + (pointer_expression "*(uint *)(symbols + uVar5 * 0x18)" * (cast_expression "(uint *)(symbols + uVar5 * 0x18)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(symbols + uVar5 * 0x18)" ( (binary_expression "symbols + uVar5 * 0x18" identifier + (binary_expression "uVar5 * 0x18" identifier * number_literal)) )))))) ;) }))) (expression_statement "iVar7 = Track_relocs<64,_false>::advance(relocs,(long)(iVar7 + 1));" (comma_expression "iVar7 = Track_relocs<64,_false>::advance(relocs,(long)(iVar7 + 1))" (assignment_expression "iVar7 = Track_relocs<64" identifier = (binary_expression "Track_relocs<64" identifier < number_literal)) , (binary_expression "_false>::advance(relocs,(long)(iVar7 + 1))" identifier > (ERROR "::" : :) (call_expression "advance(relocs,(long)(iVar7 + 1))" identifier (argument_list "(relocs,(long)(iVar7 + 1))" ( identifier , (cast_expression "(long)(iVar7 + 1)" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) (parenthesized_expression "(iVar7 + 1)" ( (binary_expression "iVar7 + 1" identifier + number_literal) ))) ))))) ;) (if_statement "if (iVar7 != 1) {\n                    /* WARNING: Subroutine does not return */\n      do_gold_unreachable("../../gold/ehframe.cc",0x3af,"read_cie");\n    }" if (parenthesized_expression "(iVar7 != 1)" ( (binary_expression "iVar7 != 1" identifier != number_literal) )) (compound_statement "{\n                    /* WARNING: Subroutine does not return */\n      do_gold_unreachable("../../gold/ehframe.cc",0x3af,"read_cie");\n    }" { comment (expression_statement "do_gold_unreachable("../../gold/ehframe.cc",0x3af,"read_cie");" (call_expression "do_gold_unreachable("../../gold/ehframe.cc",0x3af,"read_cie")" identifier (argument_list "("../../gold/ehframe.cc",0x3af,"read_cie")" ( (string_literal ""../../gold/ehframe.cc"" " string_content ") , number_literal , (string_literal ""read_cie"" " string_content ") ))) ;) })) }))) (expression_statement "iVar7 = Track_relocs<64,_false>::advance(relocs,(long)pcieend - (long)pcontents);" (update_expression "iVar7 = Track_relocs<64,_false>::advance(relocs,(long)pcieend - (long)pcontents)" (binary_expression "iVar7 = Track_relocs<64,_false>::advance(relocs,(long)pcieend - (long)pcontents)" (assignment_expression "iVar7 = Track_relocs<64" identifier = (binary_expression "Track_relocs<64" identifier < number_literal)) (ERROR ",_false" , identifier) > (ERROR "::" : :) (call_expression "advance(relocs,(long)pcieend - (long)pcontents)" identifier (argument_list "(relocs,(long)pcieend - (long)pcontents)" ( identifier , (binary_expression "(long)pcieend - (long)pcontents" (cast_expression "(long)pcieend" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) identifier) - (cast_expression "(long)pcontents" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) identifier)) )))) --) ;) (if_statement "if (0 < iVar7) {\n    return false;\n  }" if (parenthesized_expression "(0 < iVar7)" ( (binary_expression "0 < iVar7" number_literal < identifier) )) (compound_statement "{\n    return false;\n  }" { (return_statement "return false;" return false ;) })) (expression_statement "lVar10 = (long)(pcie + -8) - (long)pcontents;" (assignment_expression "lVar10 = (long)(pcie + -8) - (long)pcontents" identifier = (binary_expression "(long)(pcie + -8) - (long)pcontents" (cast_expression "(long)(pcie + -8)" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) (parenthesized_expression "(pcie + -8)" ( (binary_expression "pcie + -8" identifier + number_literal) ))) - (cast_expression "(long)pcontents" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) identifier))) ;) (expression_statement "puVar18 = (uchar *)0xffffffffffffffff;" (assignment_expression "puVar18 = (uchar *)0xffffffffffffffff" identifier = (cast_expression "(uchar *)0xffffffffffffffff" ( (type_descriptor "uchar *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (expression_statement "cie.personality_name_._M_dataplus._M_p = (pointer)&cie.personality_name_.field_2;" (assignment_expression "cie.personality_name_._M_dataplus._M_p = (pointer)&cie.personality_name_.field_2" (field_expression "cie.personality_name_._M_dataplus._M_p" (field_expression "cie.personality_name_._M_dataplus" (field_expression "cie.personality_name_" identifier . field_identifier) . field_identifier) . field_identifier) = (binary_expression "(pointer)&cie.personality_name_.field_2" (parenthesized_expression "(pointer)" ( identifier )) & (field_expression "cie.personality_name_.field_2" (field_expression "cie.personality_name_" identifier . field_identifier) . field_identifier))) ;) (if_statement "if (puVar20 != (uchar *)0x0) {\n    uVar14 = 0xffffffffffffffff;\n    puVar18 = puVar20;\n    do {\n      if (uVar14 == 0) break;\n      uVar14 = uVar14 - 1;\n      uVar1 = *puVar18;\n      puVar18 = puVar18 + (ulong)bVar21 * -2 + 1;\n    } while (uVar1 != '\0');\n    puVar18 = puVar20 + (~uVar14 - 1);\n  }" if (parenthesized_expression "(puVar20 != (uchar *)0x0)" ( (binary_expression "puVar20 != (uchar *)0x0" identifier != (cast_expression "(uchar *)0x0" ( (type_descriptor "uchar *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n    uVar14 = 0xffffffffffffffff;\n    puVar18 = puVar20;\n    do {\n      if (uVar14 == 0) break;\n      uVar14 = uVar14 - 1;\n      uVar1 = *puVar18;\n      puVar18 = puVar18 + (ulong)bVar21 * -2 + 1;\n    } while (uVar1 != '\0');\n    puVar18 = puVar20 + (~uVar14 - 1);\n  }" { (expression_statement "uVar14 = 0xffffffffffffffff;" (assignment_expression "uVar14 = 0xffffffffffffffff" identifier = number_literal) ;) (expression_statement "puVar18 = puVar20;" (assignment_expression "puVar18 = puVar20" identifier = identifier) ;) (do_statement "do {\n      if (uVar14 == 0) break;\n      uVar14 = uVar14 - 1;\n      uVar1 = *puVar18;\n      puVar18 = puVar18 + (ulong)bVar21 * -2 + 1;\n    } while (uVar1 != '\0');" do (compound_statement "{\n      if (uVar14 == 0) break;\n      uVar14 = uVar14 - 1;\n      uVar1 = *puVar18;\n      puVar18 = puVar18 + (ulong)bVar21 * -2 + 1;\n    }" { (if_statement "if (uVar14 == 0) break;" if (parenthesized_expression "(uVar14 == 0)" ( (binary_expression "uVar14 == 0" identifier == number_literal) )) (break_statement "break;" break ;)) (expression_statement "uVar14 = uVar14 - 1;" (assignment_expression "uVar14 = uVar14 - 1" identifier = (binary_expression "uVar14 - 1" identifier - number_literal)) ;) (expression_statement "uVar1 = *puVar18;" (assignment_expression "uVar1 = *puVar18" identifier = (pointer_expression "*puVar18" * identifier)) ;) (expression_statement "puVar18 = puVar18 + (ulong)bVar21 * -2 + 1;" (assignment_expression "puVar18 = puVar18 + (ulong)bVar21 * -2 + 1" identifier = (binary_expression "puVar18 + (ulong)bVar21 * -2 + 1" (binary_expression "puVar18 + (ulong)bVar21 * -2" identifier + (binary_expression "(ulong)bVar21 * -2" (cast_expression "(ulong)bVar21" ( (type_descriptor "ulong" type_identifier) ) identifier) * number_literal)) + number_literal)) ;) }) while (parenthesized_expression "(uVar1 != '\0')" ( (binary_expression "uVar1 != '\0'" identifier != (char_literal "'\0'" ' escape_sequence ')) )) ;) (expression_statement "puVar18 = puVar20 + (~uVar14 - 1);" (assignment_expression "puVar18 = puVar20 + (~uVar14 - 1)" identifier = (binary_expression "puVar20 + (~uVar14 - 1)" identifier + (parenthesized_expression "(~uVar14 - 1)" ( (binary_expression "~uVar14 - 1" (unary_expression "~uVar14" ~ identifier) - number_literal) )))) ;) })) (expression_statement "cie.object_ = (Relobj *)object;" (assignment_expression "cie.object_ = (Relobj *)object" (field_expression "cie.object_" identifier . field_identifier) = (cast_expression "(Relobj *)object" ( (type_descriptor "Relobj *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) ;) (expression_statement "cie.shndx_ = shndx;" (assignment_expression "cie.shndx_ = shndx" (field_expression "cie.shndx_" identifier . field_identifier) = identifier) ;) (expression_statement "cie.input_offset_ = lVar10;" (assignment_expression "cie.input_offset_ = lVar10" (field_expression "cie.input_offset_" identifier . field_identifier) = identifier) ;) (expression_statement "cie.fde_encoding_ = bVar16;" (assignment_expression "cie.fde_encoding_ = bVar16" (field_expression "cie.fde_encoding_" identifier . field_identifier) = identifier) ;) (labeled_statement "std::__cxx11::basic_string<char,_std::char_traits<char>,_std::allocator<char>_>::\n  _M_construct<char_const*>(&cie.personality_name_,puVar20,puVar18);" statement_identifier (ERROR "::__cxx11::basic_string<char,_std::char_traits<char>,_std::allocator<char>_>:" : : (comma_expression "__cxx11::basic_string<char,_std::char_traits<char>,_std" identifier (ERROR "::basic_string<char,_std::char_traits<char>" : : (comma_expression "basic_string<char,_std" (binary_expression "basic_string<char" identifier < identifier) , identifier) : : (binary_expression "char_traits<char" identifier < identifier) >) , identifier) : : (binary_expression "allocator<char>_" (binary_expression "allocator<char" identifier < identifier) > identifier) > :) : (expression_statement "_M_construct<char_const*>(&cie.personality_name_,puVar20,puVar18);" (binary_expression "_M_construct<char_const*>(&cie.personality_name_,puVar20,puVar18)" (binary_expression "_M_construct<char_const" identifier < identifier) (ERROR "*" *) > (parenthesized_expression "(&cie.personality_name_,puVar20,puVar18)" ( (comma_expression "&cie.personality_name_,puVar20,puVar18" (pointer_expression "&cie.personality_name_" & (field_expression "cie.personality_name_" identifier . field_identifier)) , (comma_expression "puVar20,puVar18" identifier , identifier)) ))) ;)) (expression_statement "cie.contents_._M_dataplus._M_p = (pointer)&cie.contents_.field_2;" (assignment_expression "cie.contents_._M_dataplus._M_p = (pointer)&cie.contents_.field_2" (field_expression "cie.contents_._M_dataplus._M_p" (field_expression "cie.contents_._M_dataplus" (field_expression "cie.contents_" identifier . field_identifier) . field_identifier) . field_identifier) = (binary_expression "(pointer)&cie.contents_.field_2" (parenthesized_expression "(pointer)" ( identifier )) & (field_expression "cie.contents_.field_2" (field_expression "cie.contents_" identifier . field_identifier) . field_identifier))) ;) (expression_statement "cie.fdes_.super__Vector_base<gold::Fde*,_std::allocator<gold::Fde*>_>._M_impl._M_start =\n       (pointer)0x0;" (assignment_expression "cie.fdes_.super__Vector_base<gold::Fde*,_std::allocator<gold::Fde*>_>._M_impl._M_start =\n       (pointer)0x0" (field_expression "cie.fdes_.super__Vector_base<gold::Fde*,_std::allocator<gold::Fde*>_>._M_impl._M_start" (field_expression "cie.fdes_.super__Vector_base<gold::Fde*,_std::allocator<gold::Fde*>_>._M_impl" (binary_expression "cie.fdes_.super__Vector_base<gold::Fde*,_std::allocator<gold::Fde*>_" (binary_expression "cie.fdes_.super__Vector_base<gold::Fde*,_std::allocator<gold" (binary_expression "cie.fdes_.super__Vector_base<gold::Fde*,_std" (binary_expression "cie.fdes_.super__Vector_base<gold" (field_expression "cie.fdes_.super__Vector_base" (field_expression "cie.fdes_" identifier . field_identifier) . field_identifier) < identifier) (ERROR "::Fde" : : identifier) * (ERROR "," ,) identifier) (ERROR "::allocator" : : identifier) < identifier) (ERROR "::Fde" : : identifier) * (ERROR ">" >) identifier) (ERROR ">" >) . field_identifier) . field_identifier) = (cast_expression "(pointer)0x0" ( (type_descriptor "pointer" type_identifier) ) number_literal)) ;) (expression_statement "cie.fdes_.super__Vector_base<gold::Fde*,_std::allocator<gold::Fde*>_>._M_impl._M_finish =\n       (pointer)0x0;" (assignment_expression "cie.fdes_.super__Vector_base<gold::Fde*,_std::allocator<gold::Fde*>_>._M_impl._M_finish =\n       (pointer)0x0" (field_expression "cie.fdes_.super__Vector_base<gold::Fde*,_std::allocator<gold::Fde*>_>._M_impl._M_finish" (field_expression "cie.fdes_.super__Vector_base<gold::Fde*,_std::allocator<gold::Fde*>_>._M_impl" (binary_expression "cie.fdes_.super__Vector_base<gold::Fde*,_std::allocator<gold::Fde*>_" (binary_expression "cie.fdes_.super__Vector_base<gold::Fde*,_std::allocator<gold" (binary_expression "cie.fdes_.super__Vector_base<gold::Fde*,_std" (binary_expression "cie.fdes_.super__Vector_base<gold" (field_expression "cie.fdes_.super__Vector_base" (field_expression "cie.fdes_" identifier . field_identifier) . field_identifier) < identifier) (ERROR "::Fde" : : identifier) * (ERROR "," ,) identifier) (ERROR "::allocator" : : identifier) < identifier) (ERROR "::Fde" : : identifier) * (ERROR ">" >) identifier) (ERROR ">" >) . field_identifier) . field_identifier) = (cast_expression "(pointer)0x0" ( (type_descriptor "pointer" type_identifier) ) number_literal)) ;) (expression_statement "cie.fdes_.super__Vector_base<gold::Fde*,_std::allocator<gold::Fde*>_>._M_impl._M_end_of_storage =\n       (pointer)0x0;" (assignment_expression "cie.fdes_.super__Vector_base<gold::Fde*,_std::allocator<gold::Fde*>_>._M_impl._M_end_of_storage =\n       (pointer)0x0" (field_expression "cie.fdes_.super__Vector_base<gold::Fde*,_std::allocator<gold::Fde*>_>._M_impl._M_end_of_storage" (field_expression "cie.fdes_.super__Vector_base<gold::Fde*,_std::allocator<gold::Fde*>_>._M_impl" (binary_expression "cie.fdes_.super__Vector_base<gold::Fde*,_std::allocator<gold::Fde*>_" (binary_expression "cie.fdes_.super__Vector_base<gold::Fde*,_std::allocator<gold" (binary_expression "cie.fdes_.super__Vector_base<gold::Fde*,_std" (binary_expression "cie.fdes_.super__Vector_base<gold" (field_expression "cie.fdes_.super__Vector_base" (field_expression "cie.fdes_" identifier . field_identifier) . field_identifier) < identifier) (ERROR "::Fde" : : identifier) * (ERROR "," ,) identifier) (ERROR "::allocator" : : identifier) < identifier) (ERROR "::Fde" : : identifier) * (ERROR ">" >) identifier) (ERROR ">" >) . field_identifier) . field_identifier) = (cast_expression "(pointer)0x0" ( (type_descriptor "pointer" type_identifier) ) number_literal)) ;) comment (labeled_statement "std::__cxx11::basic_string<char,_std::char_traits<char>,_std::allocator<char>_>::\n  _M_construct<char_const*>(&cie.contents_,pcie,pcieend);" statement_identifier (ERROR "::__cxx11::basic_string<char,_std::char_traits<char>,_std::allocator<char>_>:" : : (comma_expression "__cxx11::basic_string<char,_std::char_traits<char>,_std" identifier (ERROR "::basic_string<char,_std::char_traits<char>" : : (comma_expression "basic_string<char,_std" (binary_expression "basic_string<char" identifier < identifier) , identifier) : : (binary_expression "char_traits<char" identifier < identifier) >) , identifier) : : (binary_expression "allocator<char>_" (binary_expression "allocator<char" identifier < identifier) > identifier) > :) : (expression_statement "_M_construct<char_const*>(&cie.contents_,pcie,pcieend);" (binary_expression "_M_construct<char_const*>(&cie.contents_,pcie,pcieend)" (binary_expression "_M_construct<char_const" identifier < identifier) (ERROR "*" *) > (parenthesized_expression "(&cie.contents_,pcie,pcieend)" ( (comma_expression "&cie.contents_,pcie,pcieend" (pointer_expression "&cie.contents_" & (field_expression "cie.contents_" identifier . field_identifier)) , (comma_expression "pcie,pcieend" identifier , identifier)) ))) ;)) (if_statement "if (local_cd != '\0') {\n    local_c8._0_8_ = &cie;\n    iVar11 = std::\n             _Rb_tree<gold::Cie*,_gold::Cie*,_std::_Identity<gold::Cie*>,_gold::Eh_frame::Cie_less,_std::allocator<gold::Cie*>_>\n             ::find(&(this->cie_offsets_)._M_t,(Cie **)local_c8);\n    if ((_Rb_tree_header *)iVar11._M_node ==\n        &(this->cie_offsets_)._M_t._M_impl.super__Rb_tree_header) {\n      ppVar2 = (new_cies->\n               super__Vector_base<std::pair<gold::Cie*,_bool>,_std::allocator<std::pair<gold::Cie*,_bool>_>_>\n               )._M_impl._M_finish;\n      for (ppVar19 = (new_cies->\n                     super__Vector_base<std::pair<gold::Cie*,_bool>,_std::allocator<std::pair<gold::Cie*,_bool>_>_>\n                     )._M_impl._M_start; ppVar19 != ppVar2; ppVar19 = ppVar19 + 1) {\n        cie1 = ppVar19->first;\n        bVar3 = operator==(cie1,&cie);\n        if (bVar3) goto LAB_0024b77c;\n      }\n    }\n    else {\n      cie1 = *(Cie **)(iVar11._M_node + 1);\nLAB_0024b77c:\n      if (cie1 != (Cie *)0x0) {\n                    /* try { // try from 0024b7a0 to 0024b96d has its CatchHandler @ 0024ba2f */\n        Relobj::add_merge_mapping\n                  ((Relobj *)object,&this->super_Output_section_data,shndx,lVar10,\n                   (long)pcieend - (long)(pcie + -8),-1);\n        goto LAB_0024b7a5;\n      }\n    }\n  }" if (parenthesized_expression "(local_cd != '\0')" ( (binary_expression "local_cd != '\0'" identifier != (char_literal "'\0'" ' escape_sequence ')) )) (compound_statement "{\n    local_c8._0_8_ = &cie;\n    iVar11 = std::\n             _Rb_tree<gold::Cie*,_gold::Cie*,_std::_Identity<gold::Cie*>,_gold::Eh_frame::Cie_less,_std::allocator<gold::Cie*>_>\n             ::find(&(this->cie_offsets_)._M_t,(Cie **)local_c8);\n    if ((_Rb_tree_header *)iVar11._M_node ==\n        &(this->cie_offsets_)._M_t._M_impl.super__Rb_tree_header) {\n      ppVar2 = (new_cies->\n               super__Vector_base<std::pair<gold::Cie*,_bool>,_std::allocator<std::pair<gold::Cie*,_bool>_>_>\n               )._M_impl._M_finish;\n      for (ppVar19 = (new_cies->\n                     super__Vector_base<std::pair<gold::Cie*,_bool>,_std::allocator<std::pair<gold::Cie*,_bool>_>_>\n                     )._M_impl._M_start; ppVar19 != ppVar2; ppVar19 = ppVar19 + 1) {\n        cie1 = ppVar19->first;\n        bVar3 = operator==(cie1,&cie);\n        if (bVar3) goto LAB_0024b77c;\n      }\n    }\n    else {\n      cie1 = *(Cie **)(iVar11._M_node + 1);\nLAB_0024b77c:\n      if (cie1 != (Cie *)0x0) {\n                    /* try { // try from 0024b7a0 to 0024b96d has its CatchHandler @ 0024ba2f */\n        Relobj::add_merge_mapping\n                  ((Relobj *)object,&this->super_Output_section_data,shndx,lVar10,\n                   (long)pcieend - (long)(pcie + -8),-1);\n        goto LAB_0024b7a5;\n      }\n    }\n  }" { (expression_statement "local_c8._0_8_ = &cie;" (assignment_expression "local_c8._0_8_ = &cie" (field_expression "local_c8._0_8_" identifier . field_identifier) = (pointer_expression "&cie" & identifier)) ;) (ERROR "iVar11 = std::\n             _Rb_tree<gold::Cie*,_gold::Cie*,_std::_Identity<gold::Cie*>,_gold::" (assignment_expression "iVar11 = std" identifier = identifier) : : (binary_expression "_Rb_tree<gold" identifier < identifier) : : (binary_expression "Cie*,_gold" identifier * (ERROR "," ,) identifier) : : (binary_expression "Cie*,_std" identifier * (ERROR "," ,) identifier) : : (binary_expression "_Identity<gold" identifier < identifier) : : (comma_expression "Cie*>,_gold" identifier (ERROR "*>" * >) , identifier) : :) (expression_statement "Eh_frame::Cie_less,_std::allocator<gold::Cie*>_>\n             ::find(&(this->cie_offsets_)._M_t,(Cie **)local_c8);" (binary_expression "Eh_frame::Cie_less,_std::allocator<gold::Cie*>_>\n             ::find(&(this->cie_offsets_)._M_t,(Cie **)local_c8)" (binary_expression "Eh_frame::Cie_less,_std::allocator<gold::Cie*>_" identifier (ERROR "::Cie_less,_std::allocator<gold::Cie*" : : (comma_expression "Cie_less,_std" identifier , identifier) : : (binary_expression "allocator<gold" identifier < identifier) : : identifier *) > identifier) > (ERROR "::" : :) (call_expression "find(&(this->cie_offsets_)._M_t,(Cie **)local_c8)" identifier (argument_list "(&(this->cie_offsets_)._M_t,(Cie **)local_c8)" ( (pointer_expression "&(this->cie_offsets_)._M_t" & (field_expression "(this->cie_offsets_)._M_t" (parenthesized_expression "(this->cie_offsets_)" ( (field_expression "this->cie_offsets_" identifier -> field_identifier) )) . field_identifier)) , (cast_expression "(Cie **)local_c8" ( (type_descriptor "Cie **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) identifier) )))) ;) (if_statement "if ((_Rb_tree_header *)iVar11._M_node ==\n        &(this->cie_offsets_)._M_t._M_impl.super__Rb_tree_header) {\n      ppVar2 = (new_cies->\n               super__Vector_base<std::pair<gold::Cie*,_bool>,_std::allocator<std::pair<gold::Cie*,_bool>_>_>\n               )._M_impl._M_finish;\n      for (ppVar19 = (new_cies->\n                     super__Vector_base<std::pair<gold::Cie*,_bool>,_std::allocator<std::pair<gold::Cie*,_bool>_>_>\n                     )._M_impl._M_start; ppVar19 != ppVar2; ppVar19 = ppVar19 + 1) {\n        cie1 = ppVar19->first;\n        bVar3 = operator==(cie1,&cie);\n        if (bVar3) goto LAB_0024b77c;\n      }\n    }\n    else {\n      cie1 = *(Cie **)(iVar11._M_node + 1);\nLAB_0024b77c:\n      if (cie1 != (Cie *)0x0) {\n                    /* try { // try from 0024b7a0 to 0024b96d has its CatchHandler @ 0024ba2f */\n        Relobj::add_merge_mapping\n                  ((Relobj *)object,&this->super_Output_section_data,shndx,lVar10,\n                   (long)pcieend - (long)(pcie + -8),-1);\n        goto LAB_0024b7a5;\n      }\n    }" if (parenthesized_expression "((_Rb_tree_header *)iVar11._M_node ==\n        &(this->cie_offsets_)._M_t._M_impl.super__Rb_tree_header)" ( (binary_expression "(_Rb_tree_header *)iVar11._M_node ==\n        &(this->cie_offsets_)._M_t._M_impl.super__Rb_tree_header" (cast_expression "(_Rb_tree_header *)iVar11._M_node" ( (type_descriptor "_Rb_tree_header *" type_identifier (abstract_pointer_declarator "*" *)) ) (field_expression "iVar11._M_node" identifier . field_identifier)) == (pointer_expression "&(this->cie_offsets_)._M_t._M_impl.super__Rb_tree_header" & (field_expression "(this->cie_offsets_)._M_t._M_impl.super__Rb_tree_header" (field_expression "(this->cie_offsets_)._M_t._M_impl" (field_expression "(this->cie_offsets_)._M_t" (parenthesized_expression "(this->cie_offsets_)" ( (field_expression "this->cie_offsets_" identifier -> field_identifier) )) . field_identifier) . field_identifier) . field_identifier))) )) (compound_statement "{\n      ppVar2 = (new_cies->\n               super__Vector_base<std::pair<gold::Cie*,_bool>,_std::allocator<std::pair<gold::Cie*,_bool>_>_>\n               )._M_impl._M_finish;\n      for (ppVar19 = (new_cies->\n                     super__Vector_base<std::pair<gold::Cie*,_bool>,_std::allocator<std::pair<gold::Cie*,_bool>_>_>\n                     )._M_impl._M_start; ppVar19 != ppVar2; ppVar19 = ppVar19 + 1) {\n        cie1 = ppVar19->first;\n        bVar3 = operator==(cie1,&cie);\n        if (bVar3) goto LAB_0024b77c;\n      }\n    }" { (expression_statement "ppVar2 = (new_cies->\n               super__Vector_base<std::pair<gold::Cie*,_bool>,_std::allocator<std::pair<gold::Cie*,_bool>_>_>\n               )._M_impl._M_finish;" (assignment_expression "ppVar2 = (new_cies->\n               super__Vector_base<std::pair<gold::Cie*,_bool>,_std::allocator<std::pair<gold::Cie*,_bool>_>_>\n               )._M_impl._M_finish" identifier = (field_expression "(new_cies->\n               super__Vector_base<std::pair<gold::Cie*,_bool>,_std::allocator<std::pair<gold::Cie*,_bool>_>_>\n               )._M_impl._M_finish" (field_expression "(new_cies->\n               super__Vector_base<std::pair<gold::Cie*,_bool>,_std::allocator<std::pair<gold::Cie*,_bool>_>_>\n               )._M_impl" (parenthesized_expression "(new_cies->\n               super__Vector_base<std::pair<gold::Cie*,_bool>,_std::allocator<std::pair<gold::Cie*,_bool>_>_>\n               )" ( (ERROR "new_cies->\n               super__Vector_base<std::pair<gold::Cie*,_bool>,_std::allocator<std::pair<gold::Cie*," (comma_expression "new_cies->\n               super__Vector_base<std::pair<gold::Cie*,_bool>,_std" (binary_expression "new_cies->\n               super__Vector_base<std::pair<gold::Cie*" (binary_expression "new_cies->\n               super__Vector_base<std::pair<gold" (binary_expression "new_cies->\n               super__Vector_base<std" (field_expression "new_cies->\n               super__Vector_base" identifier -> field_identifier) < identifier) (ERROR "::pair" : : identifier) < identifier) (ERROR "::Cie" : : identifier) * identifier) , (binary_expression "_bool>,_std" identifier > (ERROR "," ,) identifier)) : : (binary_expression "allocator<std" identifier < identifier) : : (binary_expression "pair<gold" identifier < identifier) : : (type_descriptor "Cie*" type_identifier (abstract_pointer_declarator "*" *)) ,) (binary_expression "_bool>_>_>" (binary_expression "_bool>_>_" (binary_expression "_bool>_" identifier > identifier) > identifier) > identifier) )) . field_identifier) . field_identifier)) ;) (for_statement "for (ppVar19 = (new_cies->\n                     super__Vector_base<std::pair<gold::Cie*,_bool>,_std::allocator<std::pair<gold::Cie*,_bool>_>_>\n                     )._M_impl._M_start; ppVar19 != ppVar2; ppVar19 = ppVar19 + 1) {\n        cie1 = ppVar19->first;\n        bVar3 = operator==(cie1,&cie);\n        if (bVar3) goto LAB_0024b77c;\n      }" for ( (assignment_expression "ppVar19 = (new_cies->\n                     super__Vector_base<std::pair<gold::Cie*,_bool>,_std::allocator<std::pair<gold::Cie*,_bool>_>_>\n                     )._M_impl._M_start" identifier = (field_expression "(new_cies->\n                     super__Vector_base<std::pair<gold::Cie*,_bool>,_std::allocator<std::pair<gold::Cie*,_bool>_>_>\n                     )._M_impl._M_start" (field_expression "(new_cies->\n                     super__Vector_base<std::pair<gold::Cie*,_bool>,_std::allocator<std::pair<gold::Cie*,_bool>_>_>\n                     )._M_impl" (parenthesized_expression "(new_cies->\n                     super__Vector_base<std::pair<gold::Cie*,_bool>,_std::allocator<std::pair<gold::Cie*,_bool>_>_>\n                     )" ( (binary_expression "new_cies->\n                     super__Vector_base<std::pair<gold::Cie*,_bool>,_std::allocator<std::pair<gold::Cie*,_bool>_>_>" (binary_expression "new_cies->\n                     super__Vector_base<std::pair<gold::Cie*,_bool>,_std::allocator<std::pair<gold::Cie*,_bool>_>_" (binary_expression "new_cies->\n                     super__Vector_base<std::pair<gold::Cie*,_bool>,_std::allocator<std::pair<gold::Cie*,_bool>_" (binary_expression "new_cies->\n                     super__Vector_base<std::pair<gold::Cie*,_bool>,_std::allocator<std::pair<gold::Cie*,_bool" (binary_expression "new_cies->\n                     super__Vector_base<std::pair<gold::Cie*,_bool>,_std::allocator<std::pair<gold" (binary_expression "new_cies->\n                     super__Vector_base<std::pair<gold::Cie*,_bool>,_std::allocator<std" (binary_expression "new_cies->\n                     super__Vector_base<std::pair<gold::Cie*,_bool>,_std" (binary_expression "new_cies->\n                     super__Vector_base<std::pair<gold::Cie*,_bool" (binary_expression "new_cies->\n                     super__Vector_base<std::pair<gold" (binary_expression "new_cies->\n                     super__Vector_base<std" (field_expression "new_cies->\n                     super__Vector_base" identifier -> field_identifier) < identifier) (ERROR "::pair" : : identifier) < identifier) (ERROR "::Cie" : : identifier) * (ERROR "," ,) identifier) > (ERROR "," ,) identifier) (ERROR "::allocator" : : identifier) < identifier) (ERROR "::pair" : : identifier) < identifier) (ERROR "::Cie" : : identifier) * (ERROR "," ,) identifier) > identifier) > identifier) > identifier) )) . field_identifier) . field_identifier)) ; (binary_expression "ppVar19 != ppVar2" identifier != identifier) ; (assignment_expression "ppVar19 = ppVar19 + 1" identifier = (binary_expression "ppVar19 + 1" identifier + number_literal)) ) (compound_statement "{\n        cie1 = ppVar19->first;\n        bVar3 = operator==(cie1,&cie);\n        if (bVar3) goto LAB_0024b77c;\n      }" { (expression_statement "cie1 = ppVar19->first;" (assignment_expression "cie1 = ppVar19->first" identifier = (field_expression "ppVar19->first" identifier -> field_identifier)) ;) (expression_statement "bVar3 = operator==(cie1,&cie);" (assignment_expression "bVar3 = operator==(cie1,&cie)" identifier = (binary_expression "operator==(cie1,&cie)" identifier == (parenthesized_expression "(cie1,&cie)" ( (comma_expression "cie1,&cie" identifier , (pointer_expression "&cie" & identifier)) )))) ;) (if_statement "if (bVar3) goto LAB_0024b77c;" if (parenthesized_expression "(bVar3)" ( identifier )) (goto_statement "goto LAB_0024b77c;" goto statement_identifier ;)) })) }) (else_clause "else {\n      cie1 = *(Cie **)(iVar11._M_node + 1);\nLAB_0024b77c:\n      if (cie1 != (Cie *)0x0) {\n                    /* try { // try from 0024b7a0 to 0024b96d has its CatchHandler @ 0024ba2f */\n        Relobj::add_merge_mapping\n                  ((Relobj *)object,&this->super_Output_section_data,shndx,lVar10,\n                   (long)pcieend - (long)(pcie + -8),-1);\n        goto LAB_0024b7a5;\n      }\n    }" else (compound_statement "{\n      cie1 = *(Cie **)(iVar11._M_node + 1);\nLAB_0024b77c:\n      if (cie1 != (Cie *)0x0) {\n                    /* try { // try from 0024b7a0 to 0024b96d has its CatchHandler @ 0024ba2f */\n        Relobj::add_merge_mapping\n                  ((Relobj *)object,&this->super_Output_section_data,shndx,lVar10,\n                   (long)pcieend - (long)(pcie + -8),-1);\n        goto LAB_0024b7a5;\n      }\n    }" { (expression_statement "cie1 = *(Cie **)(iVar11._M_node + 1);" (assignment_expression "cie1 = *(Cie **)(iVar11._M_node + 1)" identifier = (pointer_expression "*(Cie **)(iVar11._M_node + 1)" * (cast_expression "(Cie **)(iVar11._M_node + 1)" ( (type_descriptor "Cie **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(iVar11._M_node + 1)" ( (binary_expression "iVar11._M_node + 1" (field_expression "iVar11._M_node" identifier . field_identifier) + number_literal) ))))) ;) (labeled_statement "LAB_0024b77c:\n      if (cie1 != (Cie *)0x0) {\n                    /* try { // try from 0024b7a0 to 0024b96d has its CatchHandler @ 0024ba2f */\n        Relobj::add_merge_mapping\n                  ((Relobj *)object,&this->super_Output_section_data,shndx,lVar10,\n                   (long)pcieend - (long)(pcie + -8),-1);\n        goto LAB_0024b7a5;\n      }" statement_identifier : (if_statement "if (cie1 != (Cie *)0x0) {\n                    /* try { // try from 0024b7a0 to 0024b96d has its CatchHandler @ 0024ba2f */\n        Relobj::add_merge_mapping\n                  ((Relobj *)object,&this->super_Output_section_data,shndx,lVar10,\n                   (long)pcieend - (long)(pcie + -8),-1);\n        goto LAB_0024b7a5;\n      }" if (parenthesized_expression "(cie1 != (Cie *)0x0)" ( (binary_expression "cie1 != (Cie *)0x0" identifier != (cast_expression "(Cie *)0x0" ( (type_descriptor "Cie *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n                    /* try { // try from 0024b7a0 to 0024b96d has its CatchHandler @ 0024ba2f */\n        Relobj::add_merge_mapping\n                  ((Relobj *)object,&this->super_Output_section_data,shndx,lVar10,\n                   (long)pcieend - (long)(pcie + -8),-1);\n        goto LAB_0024b7a5;\n      }" { comment (labeled_statement "Relobj::add_merge_mapping\n                  ((Relobj *)object,&this->super_Output_section_data,shndx,lVar10,\n                   (long)pcieend - (long)(pcie + -8),-1);" statement_identifier : (ERROR ":" :) (expression_statement "add_merge_mapping\n                  ((Relobj *)object,&this->super_Output_section_data,shndx,lVar10,\n                   (long)pcieend - (long)(pcie + -8),-1);" (call_expression "add_merge_mapping\n                  ((Relobj *)object,&this->super_Output_section_data,shndx,lVar10,\n                   (long)pcieend - (long)(pcie + -8),-1)" identifier (argument_list "((Relobj *)object,&this->super_Output_section_data,shndx,lVar10,\n                   (long)pcieend - (long)(pcie + -8),-1)" ( (cast_expression "(Relobj *)object" ( (type_descriptor "Relobj *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier) , (pointer_expression "&this->super_Output_section_data" & (field_expression "this->super_Output_section_data" identifier -> field_identifier)) , identifier , identifier , (binary_expression "(long)pcieend - (long)(pcie + -8)" (cast_expression "(long)pcieend" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) identifier) - (cast_expression "(long)(pcie + -8)" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) (parenthesized_expression "(pcie + -8)" ( (binary_expression "pcie + -8" identifier + number_literal) )))) , number_literal ))) ;)) (goto_statement "goto LAB_0024b7a5;" goto statement_identifier ;) }))) }))) })) (expression_statement "cie1 = (Cie *)operator_new(0x78);" (assignment_expression "cie1 = (Cie *)operator_new(0x78)" identifier = (cast_expression "(Cie *)operator_new(0x78)" ( (type_descriptor "Cie *" type_identifier (abstract_pointer_declarator "*" *)) ) (call_expression "operator_new(0x78)" identifier (argument_list "(0x78)" ( number_literal ))))) ;) comment (labeled_statement "Cie::Cie(cie1,&cie);" statement_identifier : (ERROR ":" :) (expression_statement "Cie(cie1,&cie);" (call_expression "Cie(cie1,&cie)" identifier (argument_list "(cie1,&cie)" ( identifier , (pointer_expression "&cie" & identifier) ))) ;)) (expression_statement "local_c8[8] = local_cd;" (assignment_expression "local_c8[8] = local_cd" (subscript_expression "local_c8[8]" identifier [ number_literal ]) = identifier) ;) (expression_statement "local_c8._0_8_ = cie1;" (assignment_expression "local_c8._0_8_ = cie1" (field_expression "local_c8._0_8_" identifier . field_identifier) = identifier) ;) comment (labeled_statement "std::vector<std::pair<gold::Cie*,_bool>,_std::allocator<std::pair<gold::Cie*,_bool>_>_>::\n  emplace_back<std::pair<gold::Cie*,_bool>_>(new_cies,(pair<gold::Cie*,_bool> *)local_c8);" statement_identifier (ERROR "::vector<std::pair<gold::Cie*,_bool>,_std::allocator<std::pair<gold::Cie*,_bool>_>_>::\n  emplace_back<std::pair<gold:" : : (binary_expression "vector<std" identifier < identifier) : : (binary_expression "pair<gold" identifier < identifier) : : (binary_expression "Cie*,_bool>,_std" (binary_expression "Cie*,_bool" identifier * (ERROR "," ,) identifier) > (ERROR "," ,) identifier) : : (binary_expression "allocator<std" identifier < identifier) : : (binary_expression "pair<gold" identifier < identifier) : : (binary_expression "Cie*,_bool>_>_" (binary_expression "Cie*,_bool>_" (binary_expression "Cie*,_bool" identifier * (ERROR "," ,) identifier) > identifier) > identifier) > : : (binary_expression "emplace_back<std" identifier < identifier) : : (binary_expression "pair<gold" identifier < identifier) :) : (expression_statement "Cie*,_bool>_>(new_cies,(pair<gold::Cie*,_bool> *)local_c8);" (binary_expression "Cie*,_bool>_>(new_cies,(pair<gold::Cie*,_bool> *)local_c8)" (binary_expression "Cie*,_bool>_" (binary_expression "Cie*,_bool" identifier * (ERROR "," ,) identifier) > identifier) > (parenthesized_expression "(new_cies,(pair<gold::Cie*,_bool> *)local_c8)" ( (comma_expression "new_cies,(pair<gold::Cie*,_bool> *)local_c8)" identifier , (parenthesized_expression "(pair<gold::Cie*,_bool> *)local_c8)" ( (binary_expression "pair<gold::Cie*,_bool> *)local_c8" (binary_expression "pair<gold::Cie*,_bool" (binary_expression "pair<gold" identifier < identifier) (ERROR "::Cie" : : identifier) * (ERROR "," ,) identifier) > (pointer_expression "*)local_c8" * (ERROR ")" )) identifier)) ))) ))) ;)) (labeled_statement "LAB_0024b7a5:\n  local_f8 = (pair<long_int,_gold::Cie*> *)local_c8;\n  local_c8._0_8_ = pcie + -(long)pcontents;\n  local_c8._8_8_ = cie1;" statement_identifier : (expression_statement "local_f8 = (pair<long_int,_gold::Cie*> *)local_c8;\n  local_c8._0_8_ = pcie + -(long)pcontents;\n  local_c8._8_8_ = cie1;" (assignment_expression "local_f8 = (pair<long_int,_gold::Cie*> *)local_c8;\n  local_c8._0_8_ = pcie + -(long)pcontents;\n  local_c8._8_8_ = cie1" identifier = (parenthesized_expression "(pair<long_int,_gold::Cie*> *)local_c8;\n  local_c8._0_8_ = pcie + -(long)pcontents;\n  local_c8._8_8_ = cie1" ( (ERROR "pair<long_int,_gold::Cie*> *)local_c8;\n  local_c8._0_8_ = pcie + -(long)pcontents;" (comma_expression "pair<long_int,_gold" (binary_expression "pair<long_int" identifier < identifier) , identifier) : : (binary_expression "Cie*> *)local_c8" (binary_expression "Cie*" identifier * identifier) > (pointer_expression "*)local_c8" * (ERROR ")" )) identifier)) ; (assignment_expression "local_c8._0_8_ = pcie + -(long)pcontents" (field_expression "local_c8._0_8_" identifier . field_identifier) = (binary_expression "pcie + -(long)pcontents" identifier + (unary_expression "-(long)pcontents" - (cast_expression "(long)pcontents" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) identifier)))) ;) (assignment_expression "local_c8._8_8_ = cie1" (field_expression "local_c8._8_8_" identifier . field_identifier) = identifier) ))) ;)) (expression_statement "std::\n  _Rb_tree<long_unsigned_int,_std::pair<long_unsigned_int_const,_gold::Cie*>,_std::_Select1st<std::pair<long_unsigned_int_const,_gold::Cie*>_>,_std::less<long_unsigned_int>,_std::allocator<std::pair<long_unsigned_int_const,_gold::Cie*>_>_>\n  ::_M_emplace_unique<std::pair<long_int,_gold::Cie*>_>(&cies->_M_t,local_f8);" (update_expression "std::\n  _Rb_tree<long_unsigned_int,_std::pair<long_unsigned_int_const,_gold::Cie*>,_std::_Select1st<std::pair<long_unsigned_int_const,_gold::Cie*>_>,_std::less<long_unsigned_int>,_std::allocator<std::pair<long_unsigned_int_const,_gold::Cie*>_>_>\n  ::_M_emplace_unique<std::pair<long_int,_gold::Cie*>_>(&cies->_M_t,local_f8)" (binary_expression "std::\n  _Rb_tree<long_unsigned_int,_std::pair<long_unsigned_int_const,_gold::Cie*>,_std::_Select1st<std::pair<long_unsigned_int_const,_gold::Cie*>_>,_std::less<long_unsigned_int>,_std::allocator<std::pair<long_unsigned_int_const,_gold::Cie*>_>_>\n  ::_M_emplace_unique<std::pair<long_int,_gold::Cie*>_>(&cies->_M_t,local_f8)" (binary_expression "std::\n  _Rb_tree<long_unsigned_int,_std::pair<long_unsigned_int_const,_gold::Cie*>,_std::_Select1st<std::pair<long_unsigned_int_const,_gold::Cie*>_>,_std::less<long_unsigned_int>,_std::allocator<std::pair<long_unsigned_int_const,_gold::Cie*>_>_>\n  ::_M_emplace_unique<std::pair<long_int,_gold::Cie*>_" (binary_expression "std::\n  _Rb_tree<long_unsigned_int,_std::pair<long_unsigned_int_const,_gold::Cie*>,_std::_Select1st<std::pair<long_unsigned_int_const,_gold::Cie*>_>,_std::less<long_unsigned_int>,_std::allocator<std::pair<long_unsigned_int_const,_gold::Cie*>_>_>\n  ::_M_emplace_unique<std::pair<long_int" (binary_expression "std::\n  _Rb_tree<long_unsigned_int,_std::pair<long_unsigned_int_const,_gold::Cie*>,_std::_Select1st<std::pair<long_unsigned_int_const,_gold::Cie*>_>,_std::less<long_unsigned_int>,_std::allocator<std::pair<long_unsigned_int_const,_gold::Cie*>_>_>\n  ::_M_emplace_unique<std" (binary_expression "std::\n  _Rb_tree<long_unsigned_int,_std::pair<long_unsigned_int_const,_gold::Cie*>,_std::_Select1st<std::pair<long_unsigned_int_const,_gold::Cie*>_>,_std::less<long_unsigned_int>,_std::allocator<std::pair<long_unsigned_int_const,_gold::Cie*>_>_>\n  ::_M_emplace_unique" (binary_expression "std::\n  _Rb_tree<long_unsigned_int,_std::pair<long_unsigned_int_const,_gold::Cie*>,_std::_Select1st<std::pair<long_unsigned_int_const,_gold::Cie*>_>,_std::less<long_unsigned_int>,_std::allocator<std::pair<long_unsigned_int_const,_gold::Cie*>_>_" (binary_expression "std::\n  _Rb_tree<long_unsigned_int,_std::pair<long_unsigned_int_const,_gold::Cie*>,_std::_Select1st<std::pair<long_unsigned_int_const,_gold::Cie*>_>,_std::less<long_unsigned_int>,_std::allocator<std::pair<long_unsigned_int_const,_gold::Cie*>_" (binary_expression "std::\n  _Rb_tree<long_unsigned_int,_std::pair<long_unsigned_int_const,_gold::Cie*>,_std::_Select1st<std::pair<long_unsigned_int_const,_gold::Cie*>_>,_std::less<long_unsigned_int>,_std::allocator<std::pair<long_unsigned_int_const" (binary_expression "std::\n  _Rb_tree<long_unsigned_int,_std::pair<long_unsigned_int_const,_gold::Cie*>,_std::_Select1st<std::pair<long_unsigned_int_const,_gold::Cie*>_>,_std::less<long_unsigned_int>,_std::allocator<std" (binary_expression "std::\n  _Rb_tree<long_unsigned_int,_std::pair<long_unsigned_int_const,_gold::Cie*>,_std::_Select1st<std::pair<long_unsigned_int_const,_gold::Cie*>_>,_std::less<long_unsigned_int>,_std" (binary_expression "std::\n  _Rb_tree<long_unsigned_int,_std::pair<long_unsigned_int_const,_gold::Cie*>,_std::_Select1st<std::pair<long_unsigned_int_const,_gold::Cie*>_>,_std::less<long_unsigned_int" (binary_expression "std::\n  _Rb_tree<long_unsigned_int,_std::pair<long_unsigned_int_const,_gold::Cie*>,_std::_Select1st<std::pair<long_unsigned_int_const,_gold::Cie*>_>,_std" (binary_expression "std::\n  _Rb_tree<long_unsigned_int,_std::pair<long_unsigned_int_const,_gold::Cie*>,_std::_Select1st<std::pair<long_unsigned_int_const,_gold::Cie*>_" identifier (ERROR "::\n  _Rb_tree<long_unsigned_int,_std::pair<long_unsigned_int_const,_gold::Cie*>,_std::_Select1st<std::pair<long_unsigned_int_const,_gold::Cie*" : : (comma_expression "_Rb_tree<long_unsigned_int,_std" (binary_expression "_Rb_tree<long_unsigned_int" identifier < identifier) , identifier) : : (comma_expression "pair<long_unsigned_int_const,_gold" (binary_expression "pair<long_unsigned_int_const" identifier < identifier) , identifier) : : (comma_expression "Cie*>,_std" identifier (ERROR "*>" * >) , identifier) : : (binary_expression "_Select1st<std" identifier < identifier) : : (comma_expression "pair<long_unsigned_int_const,_gold" (binary_expression "pair<long_unsigned_int_const" identifier < identifier) , identifier) : : identifier *) > identifier) > (ERROR "," ,) identifier) (ERROR "::less" : : identifier) < identifier) > (ERROR "," ,) identifier) (ERROR "::allocator" : : identifier) < identifier) (ERROR "::pair" : : identifier) < identifier) (ERROR ",_gold::Cie" , identifier : : identifier) * (ERROR ">" >) identifier) > identifier) > (ERROR "::" : :) identifier) < identifier) (ERROR "::pair" : : identifier) < identifier) (ERROR ",_gold::Cie" , identifier : : identifier) * (ERROR ">" >) identifier) > (parenthesized_expression "(&cies->_M_t,local_f8)" ( (comma_expression "&cies->_M_t,local_f8" (pointer_expression "&cies->_M_t" & (field_expression "cies->_M_t" identifier -> field_identifier)) , identifier) ))) --) ;) (labeled_statement "Cie::~Cie(&cie,(int)local_f8);" statement_identifier : (ERROR ":" :) (expression_statement "~Cie(&cie,(int)local_f8);" (unary_expression "~Cie(&cie,(int)local_f8)" ~ (call_expression "Cie(&cie,(int)local_f8)" identifier (argument_list "(&cie,(int)local_f8)" ( (pointer_expression "&cie" & identifier) , (cast_expression "(int)local_f8" ( (type_descriptor "int" primitive_type) ) identifier) )))) ;)) (return_statement "return true;" return true ;) (ERROR "}" }))
(translation_unit "undefined8\nFUN_0024b3c0(long param_1,long *param_2,undefined4 param_3,long param_4,ulong param_5,long param_6,\n            ulong param_7,long param_8,byte *param_9,byte *param_10,undefined8 param_11,\n            undefined8 param_12,undefined8 *param_13)\n\n{\n  long *plVar1;\n  char cVar2;\n  int iVar3;\n  uint uVar4;\n  uint uVar5;\n  int iVar6;\n  void *pvVar7;\n  long lVar8;\n  ulong uVar9;\n  long lVar10;\n  byte *pbVar11;\n  long **pplVar12;\n  uint uVar13;\n  byte bVar14;\n  byte bVar15;\n  byte bVar16;\n  byte *pbVar17;\n  ulong extraout_RDX;\n  ulong uVar18;\n  char *pcVar19;\n  long *plVar20;\n  byte *__s;\n  char *pcVar21;\n  byte bVar22;\n  long ***local_f8;\n  char local_cd;\n  long **local_c8;\n  long **local_c0;\n  long *local_b8;\n  undefined4 local_b0;\n  long local_a8;\n  byte local_a0;\n  undefined1 *local_98 [2];\n  undefined1 local_88 [16];\n  undefined8 local_78;\n  undefined8 local_70;\n  undefined8 local_68;\n  undefined1 *local_60 [2];\n  undefined1 local_50 [32];\n  \n  bVar22 = 0;\n  if (param_10 == param_9 || (long)param_10 - (long)param_9 < 0) {\n    return 0;\n  }\n  bVar14 = *param_9;\n  if ((bVar14 & 0xfd) != 1) {\n    return 0;\n  }\n  __s = param_9 + 1;\n  pvVar7 = memchr(__s,0,(long)param_10 - (long)__s);\n  if (pvVar7 == (void *)0x0) {\n    return 0;\n  }\n  pbVar17 = (byte *)((long)pvVar7 + 1);\n  local_cd = '\x01';\n  if ((param_9[1] == 0x65) && (param_9[2] == 0x68)) {\n    if (param_9[3] != 0) {\n      return 0;\n    }\n    if ((long)param_10 - (long)pbVar17 < 8) {\n      return 0;\n    }\n    __s = param_9 + 3;\n    pbVar17 = (byte *)((long)pvVar7 + 9);\n    local_cd = '\0';\n  }\n  if (param_10 <= pbVar17) {\n    return 0;\n  }\n  while ((char)*pbVar17 < '\0') {\n    pbVar17 = pbVar17 + 1;\n    if (param_10 == pbVar17) {\n      return 0;\n    }\n  }\n  pbVar11 = pbVar17 + 1;\n  if (param_10 <= pbVar11) {\n    return 0;\n  }\n  bVar15 = pbVar17[1];\n  while ((char)bVar15 < '\0') {\n    pbVar11 = pbVar11 + 1;\n    if (param_10 == pbVar11) {\n      return 0;\n    }\n    bVar15 = *pbVar11;\n  }\n  pbVar17 = pbVar11 + 1;\n  if (bVar14 == 1) {\n    pbVar11 = pbVar11 + 2;\n    if (param_10 == pbVar17 || (long)param_10 - (long)pbVar17 < 0) {\n      return 0;\n    }\n  }\n  else {\n    if (param_10 <= pbVar17) {\n      return 0;\n    }\n    bVar14 = pbVar11[1];\n    while ((char)bVar14 < '\0') {\n      pbVar17 = pbVar17 + 1;\n      if (param_10 == pbVar17) {\n        return 0;\n      }\n      bVar14 = *pbVar17;\n    }\n    pbVar11 = pbVar17 + 1;\n  }\n  bVar14 = *__s;\n  if (bVar14 == 0x7a) {\n    if (param_10 <= pbVar11) {\n      return 0;\n    }\n    while ((char)*pbVar11 < '\0') {\n      pbVar11 = pbVar11 + 1;\n      if (param_10 == pbVar11) {\n        return 0;\n      }\n    }\n    bVar14 = __s[1];\n    pbVar11 = pbVar11 + 1;\n    if (bVar14 != 0) {\n      __s = __s + 1;\n      goto LAB_0024b528;\n    }\nLAB_0024b955:\n    pcVar21 = "";\n  }\n  else {\n    if (bVar14 == 0) goto LAB_0024b955;\nLAB_0024b528:\n    iVar6 = -1;\n    bVar16 = 0;\n    bVar15 = bVar14;\n    do {\n      bVar14 = bVar16;\n      if (bVar15 == 0x50) {\n        if (param_10 == pbVar11 || (long)param_10 - (long)pbVar11 < 0) {\n          return 0;\n        }\n        bVar15 = *pbVar11;\n        pbVar11 = pbVar11 + 1;\n        if ((bVar15 & 0x60) == 0x60) {\n          return 0;\n        }\n        bVar16 = bVar15 & 7;\n        if (bVar16 == 2) {\n          lVar8 = 2;\n        }\n        else {\n          if (bVar16 < 3) {\n            if (bVar16 != 0) {\n              return 0;\n            }\n          }\n          else {\n            if (bVar16 == 3) {\n              lVar8 = 4;\n              goto LAB_0024b853;\n            }\n            if (bVar16 != 4) {\n              return 0;\n            }\n          }\n          lVar8 = 8;\n        }\nLAB_0024b853:\n        uVar5 = (int)param_10 - (int)pbVar11;\n        uVar4 = (uint)lVar8;\n        if ((bVar15 & 0xf0) == 0x50) {\n          uVar13 = -uVar4 & (uVar4 - 1) + ((int)pbVar11 - (int)param_9);\n          if (uVar5 < uVar13) {\n            return 0;\n          }\n          pbVar11 = pbVar11 + uVar13;\n          uVar5 = (int)param_10 - (int)pbVar11;\n        }\n        iVar6 = (int)pbVar11 - (int)param_8;\n        if (uVar5 < uVar4) {\n          return 0;\n        }\n        pbVar11 = pbVar11 + lVar8;\n      }\n      else {\n        if (bVar15 < 0x51) {\n          if (bVar15 != 0x4c) {\n            return 0;\n          }\n          if (param_10 == pbVar11 || (long)param_10 - (long)pbVar11 < 0) {\n            return 0;\n          }\n        }\n        else {\n          if (bVar15 != 0x52) {\n            if (bVar15 != 0x53) {\n              return 0;\n            }\n            goto LAB_0024b557;\n          }\n          if (param_10 == pbVar11 || (long)param_10 - (long)pbVar11 < 0) {\n            return 0;\n          }\n          bVar14 = *pbVar11;\n          if (4 < (bVar14 & 7)) {\n            return 0;\n          }\n          if ((1L << (bVar14 & 7) & 0x1dU) == 0) {\n            return 0;\n          }\n        }\n        pbVar11 = pbVar11 + 1;\n      }\nLAB_0024b557:\n      __s = __s + 1;\n      bVar15 = *__s;\n      bVar16 = bVar14;\n    } while (bVar15 != 0);\n    if (iVar6 == -1) goto LAB_0024b955;\n    iVar3 = FUN_001fab10(param_11,(long)iVar6);\n    if (0 < iVar3) {\n      return 0;\n    }\n    lVar8 = FUN_001faa60(param_11);\n    if (iVar6 != lVar8) {\n      return 0;\n    }\n    uVar4 = FUN_001faa80(param_11);\n    if (uVar4 == 0xffffffff) {\n      return 0;\n    }\n    uVar5 = (**(code **)(*param_2 + 0x118))(param_2);\n    if (uVar4 < uVar5) {\n      local_cd = '\0';\n      pcVar21 = "";\n      uVar18 = extraout_RDX;\n    }\n    else {\n      uVar18 = param_5 % 0x18;\n      if (param_5 / 0x18 <= (ulong)uVar4) {\n        return 0;\n      }\n      uVar9 = (ulong)*(uint *)(param_4 + (ulong)(uVar4 * 0x18));\n      if (param_7 <= uVar9) {\n        return 0;\n      }\n      pcVar21 = (char *)(param_6 + uVar9);\n    }\n    iVar6 = FUN_001fab10(param_11,(long)(iVar6 + 1),uVar18);\n    if (iVar6 != 1) {\n                    \n      FUN_0016cdf0("../../gold/ehframe.cc",0x3af,"read_cie");\n    }\n  }\n  iVar6 = FUN_001fab10(param_11,(long)param_10 - param_8);\n  if (0 < iVar6) {\n    return 0;\n  }\n  lVar8 = (long)(param_9 + -8) - param_8;\n  pcVar19 = (char *)0xffffffffffffffff;\n  local_98[0] = local_88;\n  if (pcVar21 != (char *)0x0) {\n    uVar18 = 0xffffffffffffffff;\n    pcVar19 = pcVar21;\n    do {\n      if (uVar18 == 0) break;\n      uVar18 = uVar18 - 1;\n      cVar2 = *pcVar19;\n      pcVar19 = pcVar19 + (ulong)bVar22 * -2 + 1;\n    } while (cVar2 != '\0');\n    pcVar19 = pcVar21 + (~uVar18 - 1);\n  }\n  local_b8 = param_2;\n  local_b0 = param_3;\n  local_a8 = lVar8;\n  local_a0 = bVar14;\n  FUN_0015cbe0(local_98,pcVar21,pcVar19);\n  local_60[0] = local_50;\n  local_78 = 0;\n  local_70 = 0;\n  local_68 = 0;\n                    \n  FUN_0015cbe0(local_60,param_9,param_10);\n  if (local_cd != '\0') {\n    local_c8 = &local_b8;\n    lVar10 = FUN_00248330(param_1 + 0x40);\n    if (lVar10 == param_1 + 0x48) {\n      plVar1 = (long *)param_13[1];\n      for (plVar20 = (long *)*param_13; plVar20 != plVar1; plVar20 = plVar20 + 2) {\n        pplVar12 = (long **)*plVar20;\n        cVar2 = FUN_002476d0(pplVar12,&local_b8);\n        if (cVar2 != '\0') goto LAB_0024b77c;\n      }\n    }\n    else {\n      pplVar12 = *(long ***)(lVar10 + 0x20);\nLAB_0024b77c:\n      if (pplVar12 != (long **)0x0) {\n                    \n        FUN_0019a930(param_2,param_1,param_3,lVar8,(long)param_10 - (long)(param_9 + -8),\n                     0xffffffffffffffff);\n        goto LAB_0024b7a5;\n      }\n    }\n  }\n  pplVar12 = (long **)FUN_00275550(0x78);\n                    \n  FUN_00249730(pplVar12,&local_b8);\n  local_c0 = (long **)CONCAT71(local_c0._1_7_,local_cd);\n  local_c8 = pplVar12;\n                    \n  FUN_0024a870(param_13);\nLAB_0024b7a5:\n  local_f8 = &local_c8;\n  local_c8 = (long **)(param_9 + -param_8);\n  local_c0 = pplVar12;\n  FUN_0024a340(param_12,local_f8);\n  FUN_00247330(&local_b8);\n  return 1;\n}\n\n" (function_definition "undefined8\nFUN_0024b3c0(long param_1,long *param_2,undefined4 param_3,long param_4,ulong param_5,long param_6,\n            ulong param_7,long param_8,byte *param_9,byte *param_10,undefined8 param_11,\n            undefined8 param_12,undefined8 *param_13)\n\n{\n  long *plVar1;\n  char cVar2;\n  int iVar3;\n  uint uVar4;\n  uint uVar5;\n  int iVar6;\n  void *pvVar7;\n  long lVar8;\n  ulong uVar9;\n  long lVar10;\n  byte *pbVar11;\n  long **pplVar12;\n  uint uVar13;\n  byte bVar14;\n  byte bVar15;\n  byte bVar16;\n  byte *pbVar17;\n  ulong extraout_RDX;\n  ulong uVar18;\n  char *pcVar19;\n  long *plVar20;\n  byte *__s;\n  char *pcVar21;\n  byte bVar22;\n  long ***local_f8;\n  char local_cd;\n  long **local_c8;\n  long **local_c0;\n  long *local_b8;\n  undefined4 local_b0;\n  long local_a8;\n  byte local_a0;\n  undefined1 *local_98 [2];\n  undefined1 local_88 [16];\n  undefined8 local_78;\n  undefined8 local_70;\n  undefined8 local_68;\n  undefined1 *local_60 [2];\n  undefined1 local_50 [32];\n  \n  bVar22 = 0;\n  if (param_10 == param_9 || (long)param_10 - (long)param_9 < 0) {\n    return 0;\n  }\n  bVar14 = *param_9;\n  if ((bVar14 & 0xfd) != 1) {\n    return 0;\n  }\n  __s = param_9 + 1;\n  pvVar7 = memchr(__s,0,(long)param_10 - (long)__s);\n  if (pvVar7 == (void *)0x0) {\n    return 0;\n  }\n  pbVar17 = (byte *)((long)pvVar7 + 1);\n  local_cd = '\x01';\n  if ((param_9[1] == 0x65) && (param_9[2] == 0x68)) {\n    if (param_9[3] != 0) {\n      return 0;\n    }\n    if ((long)param_10 - (long)pbVar17 < 8) {\n      return 0;\n    }\n    __s = param_9 + 3;\n    pbVar17 = (byte *)((long)pvVar7 + 9);\n    local_cd = '\0';\n  }\n  if (param_10 <= pbVar17) {\n    return 0;\n  }\n  while ((char)*pbVar17 < '\0') {\n    pbVar17 = pbVar17 + 1;\n    if (param_10 == pbVar17) {\n      return 0;\n    }\n  }\n  pbVar11 = pbVar17 + 1;\n  if (param_10 <= pbVar11) {\n    return 0;\n  }\n  bVar15 = pbVar17[1];\n  while ((char)bVar15 < '\0') {\n    pbVar11 = pbVar11 + 1;\n    if (param_10 == pbVar11) {\n      return 0;\n    }\n    bVar15 = *pbVar11;\n  }\n  pbVar17 = pbVar11 + 1;\n  if (bVar14 == 1) {\n    pbVar11 = pbVar11 + 2;\n    if (param_10 == pbVar17 || (long)param_10 - (long)pbVar17 < 0) {\n      return 0;\n    }\n  }\n  else {\n    if (param_10 <= pbVar17) {\n      return 0;\n    }\n    bVar14 = pbVar11[1];\n    while ((char)bVar14 < '\0') {\n      pbVar17 = pbVar17 + 1;\n      if (param_10 == pbVar17) {\n        return 0;\n      }\n      bVar14 = *pbVar17;\n    }\n    pbVar11 = pbVar17 + 1;\n  }\n  bVar14 = *__s;\n  if (bVar14 == 0x7a) {\n    if (param_10 <= pbVar11) {\n      return 0;\n    }\n    while ((char)*pbVar11 < '\0') {\n      pbVar11 = pbVar11 + 1;\n      if (param_10 == pbVar11) {\n        return 0;\n      }\n    }\n    bVar14 = __s[1];\n    pbVar11 = pbVar11 + 1;\n    if (bVar14 != 0) {\n      __s = __s + 1;\n      goto LAB_0024b528;\n    }\nLAB_0024b955:\n    pcVar21 = "";\n  }\n  else {\n    if (bVar14 == 0) goto LAB_0024b955;\nLAB_0024b528:\n    iVar6 = -1;\n    bVar16 = 0;\n    bVar15 = bVar14;\n    do {\n      bVar14 = bVar16;\n      if (bVar15 == 0x50) {\n        if (param_10 == pbVar11 || (long)param_10 - (long)pbVar11 < 0) {\n          return 0;\n        }\n        bVar15 = *pbVar11;\n        pbVar11 = pbVar11 + 1;\n        if ((bVar15 & 0x60) == 0x60) {\n          return 0;\n        }\n        bVar16 = bVar15 & 7;\n        if (bVar16 == 2) {\n          lVar8 = 2;\n        }\n        else {\n          if (bVar16 < 3) {\n            if (bVar16 != 0) {\n              return 0;\n            }\n          }\n          else {\n            if (bVar16 == 3) {\n              lVar8 = 4;\n              goto LAB_0024b853;\n            }\n            if (bVar16 != 4) {\n              return 0;\n            }\n          }\n          lVar8 = 8;\n        }\nLAB_0024b853:\n        uVar5 = (int)param_10 - (int)pbVar11;\n        uVar4 = (uint)lVar8;\n        if ((bVar15 & 0xf0) == 0x50) {\n          uVar13 = -uVar4 & (uVar4 - 1) + ((int)pbVar11 - (int)param_9);\n          if (uVar5 < uVar13) {\n            return 0;\n          }\n          pbVar11 = pbVar11 + uVar13;\n          uVar5 = (int)param_10 - (int)pbVar11;\n        }\n        iVar6 = (int)pbVar11 - (int)param_8;\n        if (uVar5 < uVar4) {\n          return 0;\n        }\n        pbVar11 = pbVar11 + lVar8;\n      }\n      else {\n        if (bVar15 < 0x51) {\n          if (bVar15 != 0x4c) {\n            return 0;\n          }\n          if (param_10 == pbVar11 || (long)param_10 - (long)pbVar11 < 0) {\n            return 0;\n          }\n        }\n        else {\n          if (bVar15 != 0x52) {\n            if (bVar15 != 0x53) {\n              return 0;\n            }\n            goto LAB_0024b557;\n          }\n          if (param_10 == pbVar11 || (long)param_10 - (long)pbVar11 < 0) {\n            return 0;\n          }\n          bVar14 = *pbVar11;\n          if (4 < (bVar14 & 7)) {\n            return 0;\n          }\n          if ((1L << (bVar14 & 7) & 0x1dU) == 0) {\n            return 0;\n          }\n        }\n        pbVar11 = pbVar11 + 1;\n      }\nLAB_0024b557:\n      __s = __s + 1;\n      bVar15 = *__s;\n      bVar16 = bVar14;\n    } while (bVar15 != 0);\n    if (iVar6 == -1) goto LAB_0024b955;\n    iVar3 = FUN_001fab10(param_11,(long)iVar6);\n    if (0 < iVar3) {\n      return 0;\n    }\n    lVar8 = FUN_001faa60(param_11);\n    if (iVar6 != lVar8) {\n      return 0;\n    }\n    uVar4 = FUN_001faa80(param_11);\n    if (uVar4 == 0xffffffff) {\n      return 0;\n    }\n    uVar5 = (**(code **)(*param_2 + 0x118))(param_2);\n    if (uVar4 < uVar5) {\n      local_cd = '\0';\n      pcVar21 = "";\n      uVar18 = extraout_RDX;\n    }\n    else {\n      uVar18 = param_5 % 0x18;\n      if (param_5 / 0x18 <= (ulong)uVar4) {\n        return 0;\n      }\n      uVar9 = (ulong)*(uint *)(param_4 + (ulong)(uVar4 * 0x18));\n      if (param_7 <= uVar9) {\n        return 0;\n      }\n      pcVar21 = (char *)(param_6 + uVar9);\n    }\n    iVar6 = FUN_001fab10(param_11,(long)(iVar6 + 1),uVar18);\n    if (iVar6 != 1) {\n                    \n      FUN_0016cdf0("../../gold/ehframe.cc",0x3af,"read_cie");\n    }\n  }\n  iVar6 = FUN_001fab10(param_11,(long)param_10 - param_8);\n  if (0 < iVar6) {\n    return 0;\n  }\n  lVar8 = (long)(param_9 + -8) - param_8;\n  pcVar19 = (char *)0xffffffffffffffff;\n  local_98[0] = local_88;\n  if (pcVar21 != (char *)0x0) {\n    uVar18 = 0xffffffffffffffff;\n    pcVar19 = pcVar21;\n    do {\n      if (uVar18 == 0) break;\n      uVar18 = uVar18 - 1;\n      cVar2 = *pcVar19;\n      pcVar19 = pcVar19 + (ulong)bVar22 * -2 + 1;\n    } while (cVar2 != '\0');\n    pcVar19 = pcVar21 + (~uVar18 - 1);\n  }\n  local_b8 = param_2;\n  local_b0 = param_3;\n  local_a8 = lVar8;\n  local_a0 = bVar14;\n  FUN_0015cbe0(local_98,pcVar21,pcVar19);\n  local_60[0] = local_50;\n  local_78 = 0;\n  local_70 = 0;\n  local_68 = 0;\n                    \n  FUN_0015cbe0(local_60,param_9,param_10);\n  if (local_cd != '\0') {\n    local_c8 = &local_b8;\n    lVar10 = FUN_00248330(param_1 + 0x40);\n    if (lVar10 == param_1 + 0x48) {\n      plVar1 = (long *)param_13[1];\n      for (plVar20 = (long *)*param_13; plVar20 != plVar1; plVar20 = plVar20 + 2) {\n        pplVar12 = (long **)*plVar20;\n        cVar2 = FUN_002476d0(pplVar12,&local_b8);\n        if (cVar2 != '\0') goto LAB_0024b77c;\n      }\n    }\n    else {\n      pplVar12 = *(long ***)(lVar10 + 0x20);\nLAB_0024b77c:\n      if (pplVar12 != (long **)0x0) {\n                    \n        FUN_0019a930(param_2,param_1,param_3,lVar8,(long)param_10 - (long)(param_9 + -8),\n                     0xffffffffffffffff);\n        goto LAB_0024b7a5;\n      }\n    }\n  }\n  pplVar12 = (long **)FUN_00275550(0x78);\n                    \n  FUN_00249730(pplVar12,&local_b8);\n  local_c0 = (long **)CONCAT71(local_c0._1_7_,local_cd);\n  local_c8 = pplVar12;\n                    \n  FUN_0024a870(param_13);\nLAB_0024b7a5:\n  local_f8 = &local_c8;\n  local_c8 = (long **)(param_9 + -param_8);\n  local_c0 = pplVar12;\n  FUN_0024a340(param_12,local_f8);\n  FUN_00247330(&local_b8);\n  return 1;\n}" type_identifier (function_declarator "FUN_0024b3c0(long param_1,long *param_2,undefined4 param_3,long param_4,ulong param_5,long param_6,\n            ulong param_7,long param_8,byte *param_9,byte *param_10,undefined8 param_11,\n            undefined8 param_12,undefined8 *param_13)" identifier (parameter_list "(long param_1,long *param_2,undefined4 param_3,long param_4,ulong param_5,long param_6,\n            ulong param_7,long param_8,byte *param_9,byte *param_10,undefined8 param_11,\n            undefined8 param_12,undefined8 *param_13)" ( (parameter_declaration "long param_1" (sized_type_specifier "long" long) identifier) , (parameter_declaration "long *param_2" (sized_type_specifier "long" long) (pointer_declarator "*param_2" * identifier)) , (parameter_declaration "undefined4 param_3" type_identifier identifier) , (parameter_declaration "long param_4" (sized_type_specifier "long" long) identifier) , (parameter_declaration "ulong param_5" type_identifier identifier) , (parameter_declaration "long param_6" (sized_type_specifier "long" long) identifier) , (parameter_declaration "ulong param_7" type_identifier identifier) , (parameter_declaration "long param_8" (sized_type_specifier "long" long) identifier) , (parameter_declaration "byte *param_9" type_identifier (pointer_declarator "*param_9" * identifier)) , (parameter_declaration "byte *param_10" type_identifier (pointer_declarator "*param_10" * identifier)) , (parameter_declaration "undefined8 param_11" type_identifier identifier) , (parameter_declaration "undefined8 param_12" type_identifier identifier) , (parameter_declaration "undefined8 *param_13" type_identifier (pointer_declarator "*param_13" * identifier)) ))) (compound_statement "{\n  long *plVar1;\n  char cVar2;\n  int iVar3;\n  uint uVar4;\n  uint uVar5;\n  int iVar6;\n  void *pvVar7;\n  long lVar8;\n  ulong uVar9;\n  long lVar10;\n  byte *pbVar11;\n  long **pplVar12;\n  uint uVar13;\n  byte bVar14;\n  byte bVar15;\n  byte bVar16;\n  byte *pbVar17;\n  ulong extraout_RDX;\n  ulong uVar18;\n  char *pcVar19;\n  long *plVar20;\n  byte *__s;\n  char *pcVar21;\n  byte bVar22;\n  long ***local_f8;\n  char local_cd;\n  long **local_c8;\n  long **local_c0;\n  long *local_b8;\n  undefined4 local_b0;\n  long local_a8;\n  byte local_a0;\n  undefined1 *local_98 [2];\n  undefined1 local_88 [16];\n  undefined8 local_78;\n  undefined8 local_70;\n  undefined8 local_68;\n  undefined1 *local_60 [2];\n  undefined1 local_50 [32];\n  \n  bVar22 = 0;\n  if (param_10 == param_9 || (long)param_10 - (long)param_9 < 0) {\n    return 0;\n  }\n  bVar14 = *param_9;\n  if ((bVar14 & 0xfd) != 1) {\n    return 0;\n  }\n  __s = param_9 + 1;\n  pvVar7 = memchr(__s,0,(long)param_10 - (long)__s);\n  if (pvVar7 == (void *)0x0) {\n    return 0;\n  }\n  pbVar17 = (byte *)((long)pvVar7 + 1);\n  local_cd = '\x01';\n  if ((param_9[1] == 0x65) && (param_9[2] == 0x68)) {\n    if (param_9[3] != 0) {\n      return 0;\n    }\n    if ((long)param_10 - (long)pbVar17 < 8) {\n      return 0;\n    }\n    __s = param_9 + 3;\n    pbVar17 = (byte *)((long)pvVar7 + 9);\n    local_cd = '\0';\n  }\n  if (param_10 <= pbVar17) {\n    return 0;\n  }\n  while ((char)*pbVar17 < '\0') {\n    pbVar17 = pbVar17 + 1;\n    if (param_10 == pbVar17) {\n      return 0;\n    }\n  }\n  pbVar11 = pbVar17 + 1;\n  if (param_10 <= pbVar11) {\n    return 0;\n  }\n  bVar15 = pbVar17[1];\n  while ((char)bVar15 < '\0') {\n    pbVar11 = pbVar11 + 1;\n    if (param_10 == pbVar11) {\n      return 0;\n    }\n    bVar15 = *pbVar11;\n  }\n  pbVar17 = pbVar11 + 1;\n  if (bVar14 == 1) {\n    pbVar11 = pbVar11 + 2;\n    if (param_10 == pbVar17 || (long)param_10 - (long)pbVar17 < 0) {\n      return 0;\n    }\n  }\n  else {\n    if (param_10 <= pbVar17) {\n      return 0;\n    }\n    bVar14 = pbVar11[1];\n    while ((char)bVar14 < '\0') {\n      pbVar17 = pbVar17 + 1;\n      if (param_10 == pbVar17) {\n        return 0;\n      }\n      bVar14 = *pbVar17;\n    }\n    pbVar11 = pbVar17 + 1;\n  }\n  bVar14 = *__s;\n  if (bVar14 == 0x7a) {\n    if (param_10 <= pbVar11) {\n      return 0;\n    }\n    while ((char)*pbVar11 < '\0') {\n      pbVar11 = pbVar11 + 1;\n      if (param_10 == pbVar11) {\n        return 0;\n      }\n    }\n    bVar14 = __s[1];\n    pbVar11 = pbVar11 + 1;\n    if (bVar14 != 0) {\n      __s = __s + 1;\n      goto LAB_0024b528;\n    }\nLAB_0024b955:\n    pcVar21 = "";\n  }\n  else {\n    if (bVar14 == 0) goto LAB_0024b955;\nLAB_0024b528:\n    iVar6 = -1;\n    bVar16 = 0;\n    bVar15 = bVar14;\n    do {\n      bVar14 = bVar16;\n      if (bVar15 == 0x50) {\n        if (param_10 == pbVar11 || (long)param_10 - (long)pbVar11 < 0) {\n          return 0;\n        }\n        bVar15 = *pbVar11;\n        pbVar11 = pbVar11 + 1;\n        if ((bVar15 & 0x60) == 0x60) {\n          return 0;\n        }\n        bVar16 = bVar15 & 7;\n        if (bVar16 == 2) {\n          lVar8 = 2;\n        }\n        else {\n          if (bVar16 < 3) {\n            if (bVar16 != 0) {\n              return 0;\n            }\n          }\n          else {\n            if (bVar16 == 3) {\n              lVar8 = 4;\n              goto LAB_0024b853;\n            }\n            if (bVar16 != 4) {\n              return 0;\n            }\n          }\n          lVar8 = 8;\n        }\nLAB_0024b853:\n        uVar5 = (int)param_10 - (int)pbVar11;\n        uVar4 = (uint)lVar8;\n        if ((bVar15 & 0xf0) == 0x50) {\n          uVar13 = -uVar4 & (uVar4 - 1) + ((int)pbVar11 - (int)param_9);\n          if (uVar5 < uVar13) {\n            return 0;\n          }\n          pbVar11 = pbVar11 + uVar13;\n          uVar5 = (int)param_10 - (int)pbVar11;\n        }\n        iVar6 = (int)pbVar11 - (int)param_8;\n        if (uVar5 < uVar4) {\n          return 0;\n        }\n        pbVar11 = pbVar11 + lVar8;\n      }\n      else {\n        if (bVar15 < 0x51) {\n          if (bVar15 != 0x4c) {\n            return 0;\n          }\n          if (param_10 == pbVar11 || (long)param_10 - (long)pbVar11 < 0) {\n            return 0;\n          }\n        }\n        else {\n          if (bVar15 != 0x52) {\n            if (bVar15 != 0x53) {\n              return 0;\n            }\n            goto LAB_0024b557;\n          }\n          if (param_10 == pbVar11 || (long)param_10 - (long)pbVar11 < 0) {\n            return 0;\n          }\n          bVar14 = *pbVar11;\n          if (4 < (bVar14 & 7)) {\n            return 0;\n          }\n          if ((1L << (bVar14 & 7) & 0x1dU) == 0) {\n            return 0;\n          }\n        }\n        pbVar11 = pbVar11 + 1;\n      }\nLAB_0024b557:\n      __s = __s + 1;\n      bVar15 = *__s;\n      bVar16 = bVar14;\n    } while (bVar15 != 0);\n    if (iVar6 == -1) goto LAB_0024b955;\n    iVar3 = FUN_001fab10(param_11,(long)iVar6);\n    if (0 < iVar3) {\n      return 0;\n    }\n    lVar8 = FUN_001faa60(param_11);\n    if (iVar6 != lVar8) {\n      return 0;\n    }\n    uVar4 = FUN_001faa80(param_11);\n    if (uVar4 == 0xffffffff) {\n      return 0;\n    }\n    uVar5 = (**(code **)(*param_2 + 0x118))(param_2);\n    if (uVar4 < uVar5) {\n      local_cd = '\0';\n      pcVar21 = "";\n      uVar18 = extraout_RDX;\n    }\n    else {\n      uVar18 = param_5 % 0x18;\n      if (param_5 / 0x18 <= (ulong)uVar4) {\n        return 0;\n      }\n      uVar9 = (ulong)*(uint *)(param_4 + (ulong)(uVar4 * 0x18));\n      if (param_7 <= uVar9) {\n        return 0;\n      }\n      pcVar21 = (char *)(param_6 + uVar9);\n    }\n    iVar6 = FUN_001fab10(param_11,(long)(iVar6 + 1),uVar18);\n    if (iVar6 != 1) {\n                    \n      FUN_0016cdf0("../../gold/ehframe.cc",0x3af,"read_cie");\n    }\n  }\n  iVar6 = FUN_001fab10(param_11,(long)param_10 - param_8);\n  if (0 < iVar6) {\n    return 0;\n  }\n  lVar8 = (long)(param_9 + -8) - param_8;\n  pcVar19 = (char *)0xffffffffffffffff;\n  local_98[0] = local_88;\n  if (pcVar21 != (char *)0x0) {\n    uVar18 = 0xffffffffffffffff;\n    pcVar19 = pcVar21;\n    do {\n      if (uVar18 == 0) break;\n      uVar18 = uVar18 - 1;\n      cVar2 = *pcVar19;\n      pcVar19 = pcVar19 + (ulong)bVar22 * -2 + 1;\n    } while (cVar2 != '\0');\n    pcVar19 = pcVar21 + (~uVar18 - 1);\n  }\n  local_b8 = param_2;\n  local_b0 = param_3;\n  local_a8 = lVar8;\n  local_a0 = bVar14;\n  FUN_0015cbe0(local_98,pcVar21,pcVar19);\n  local_60[0] = local_50;\n  local_78 = 0;\n  local_70 = 0;\n  local_68 = 0;\n                    \n  FUN_0015cbe0(local_60,param_9,param_10);\n  if (local_cd != '\0') {\n    local_c8 = &local_b8;\n    lVar10 = FUN_00248330(param_1 + 0x40);\n    if (lVar10 == param_1 + 0x48) {\n      plVar1 = (long *)param_13[1];\n      for (plVar20 = (long *)*param_13; plVar20 != plVar1; plVar20 = plVar20 + 2) {\n        pplVar12 = (long **)*plVar20;\n        cVar2 = FUN_002476d0(pplVar12,&local_b8);\n        if (cVar2 != '\0') goto LAB_0024b77c;\n      }\n    }\n    else {\n      pplVar12 = *(long ***)(lVar10 + 0x20);\nLAB_0024b77c:\n      if (pplVar12 != (long **)0x0) {\n                    \n        FUN_0019a930(param_2,param_1,param_3,lVar8,(long)param_10 - (long)(param_9 + -8),\n                     0xffffffffffffffff);\n        goto LAB_0024b7a5;\n      }\n    }\n  }\n  pplVar12 = (long **)FUN_00275550(0x78);\n                    \n  FUN_00249730(pplVar12,&local_b8);\n  local_c0 = (long **)CONCAT71(local_c0._1_7_,local_cd);\n  local_c8 = pplVar12;\n                    \n  FUN_0024a870(param_13);\nLAB_0024b7a5:\n  local_f8 = &local_c8;\n  local_c8 = (long **)(param_9 + -param_8);\n  local_c0 = pplVar12;\n  FUN_0024a340(param_12,local_f8);\n  FUN_00247330(&local_b8);\n  return 1;\n}" { (declaration "long *plVar1;" (sized_type_specifier "long" long) (pointer_declarator "*plVar1" * identifier) ;) (declaration "char cVar2;" primitive_type identifier ;) (declaration "int iVar3;" primitive_type identifier ;) (declaration "uint uVar4;" type_identifier identifier ;) (declaration "uint uVar5;" type_identifier identifier ;) (declaration "int iVar6;" primitive_type identifier ;) (declaration "void *pvVar7;" primitive_type (pointer_declarator "*pvVar7" * identifier) ;) (declaration "long lVar8;" (sized_type_specifier "long" long) identifier ;) (declaration "ulong uVar9;" type_identifier identifier ;) (declaration "long lVar10;" (sized_type_specifier "long" long) identifier ;) (declaration "byte *pbVar11;" type_identifier (pointer_declarator "*pbVar11" * identifier) ;) (declaration "long **pplVar12;" (sized_type_specifier "long" long) (pointer_declarator "**pplVar12" * (pointer_declarator "*pplVar12" * identifier)) ;) (declaration "uint uVar13;" type_identifier identifier ;) (declaration "byte bVar14;" type_identifier identifier ;) (declaration "byte bVar15;" type_identifier identifier ;) (declaration "byte bVar16;" type_identifier identifier ;) (declaration "byte *pbVar17;" type_identifier (pointer_declarator "*pbVar17" * identifier) ;) (declaration "ulong extraout_RDX;" type_identifier identifier ;) (declaration "ulong uVar18;" type_identifier identifier ;) (declaration "char *pcVar19;" primitive_type (pointer_declarator "*pcVar19" * identifier) ;) (declaration "long *plVar20;" (sized_type_specifier "long" long) (pointer_declarator "*plVar20" * identifier) ;) (declaration "byte *__s;" type_identifier (pointer_declarator "*__s" * identifier) ;) (declaration "char *pcVar21;" primitive_type (pointer_declarator "*pcVar21" * identifier) ;) (declaration "byte bVar22;" type_identifier identifier ;) (declaration "long ***local_f8;" (sized_type_specifier "long" long) (pointer_declarator "***local_f8" * (pointer_declarator "**local_f8" * (pointer_declarator "*local_f8" * identifier))) ;) (declaration "char local_cd;" primitive_type identifier ;) (declaration "long **local_c8;" (sized_type_specifier "long" long) (pointer_declarator "**local_c8" * (pointer_declarator "*local_c8" * identifier)) ;) (declaration "long **local_c0;" (sized_type_specifier "long" long) (pointer_declarator "**local_c0" * (pointer_declarator "*local_c0" * identifier)) ;) (declaration "long *local_b8;" (sized_type_specifier "long" long) (pointer_declarator "*local_b8" * identifier) ;) (declaration "undefined4 local_b0;" type_identifier identifier ;) (declaration "long local_a8;" (sized_type_specifier "long" long) identifier ;) (declaration "byte local_a0;" type_identifier identifier ;) (declaration "undefined1 *local_98 [2];" type_identifier (pointer_declarator "*local_98 [2]" * (array_declarator "local_98 [2]" identifier [ number_literal ])) ;) (declaration "undefined1 local_88 [16];" type_identifier (array_declarator "local_88 [16]" identifier [ number_literal ]) ;) (declaration "undefined8 local_78;" type_identifier identifier ;) (declaration "undefined8 local_70;" type_identifier identifier ;) (declaration "undefined8 local_68;" type_identifier identifier ;) (declaration "undefined1 *local_60 [2];" type_identifier (pointer_declarator "*local_60 [2]" * (array_declarator "local_60 [2]" identifier [ number_literal ])) ;) (declaration "undefined1 local_50 [32];" type_identifier (array_declarator "local_50 [32]" identifier [ number_literal ]) ;) (expression_statement "bVar22 = 0;" (assignment_expression "bVar22 = 0" identifier = number_literal) ;) (if_statement "if (param_10 == param_9 || (long)param_10 - (long)param_9 < 0) {\n    return 0;\n  }" if (parenthesized_expression "(param_10 == param_9 || (long)param_10 - (long)param_9 < 0)" ( (binary_expression "param_10 == param_9 || (long)param_10 - (long)param_9 < 0" (binary_expression "param_10 == param_9" identifier == identifier) || (binary_expression "(long)param_10 - (long)param_9 < 0" (binary_expression "(long)param_10 - (long)param_9" (cast_expression "(long)param_10" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) identifier) - (cast_expression "(long)param_9" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) identifier)) < number_literal)) )) (compound_statement "{\n    return 0;\n  }" { (return_statement "return 0;" return number_literal ;) })) (expression_statement "bVar14 = *param_9;" (assignment_expression "bVar14 = *param_9" identifier = (pointer_expression "*param_9" * identifier)) ;) (if_statement "if ((bVar14 & 0xfd) != 1) {\n    return 0;\n  }" if (parenthesized_expression "((bVar14 & 0xfd) != 1)" ( (binary_expression "(bVar14 & 0xfd) != 1" (parenthesized_expression "(bVar14 & 0xfd)" ( (binary_expression "bVar14 & 0xfd" identifier & number_literal) )) != number_literal) )) (compound_statement "{\n    return 0;\n  }" { (return_statement "return 0;" return number_literal ;) })) (expression_statement "__s = param_9 + 1;" (assignment_expression "__s = param_9 + 1" identifier = (binary_expression "param_9 + 1" identifier + number_literal)) ;) (expression_statement "pvVar7 = memchr(__s,0,(long)param_10 - (long)__s);" (assignment_expression "pvVar7 = memchr(__s,0,(long)param_10 - (long)__s)" identifier = (call_expression "memchr(__s,0,(long)param_10 - (long)__s)" identifier (argument_list "(__s,0,(long)param_10 - (long)__s)" ( identifier , number_literal , (binary_expression "(long)param_10 - (long)__s" (cast_expression "(long)param_10" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) identifier) - (cast_expression "(long)__s" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) identifier)) )))) ;) (if_statement "if (pvVar7 == (void *)0x0) {\n    return 0;\n  }" if (parenthesized_expression "(pvVar7 == (void *)0x0)" ( (binary_expression "pvVar7 == (void *)0x0" identifier == (cast_expression "(void *)0x0" ( (type_descriptor "void *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n    return 0;\n  }" { (return_statement "return 0;" return number_literal ;) })) (expression_statement "pbVar17 = (byte *)((long)pvVar7 + 1);" (assignment_expression "pbVar17 = (byte *)((long)pvVar7 + 1)" identifier = (cast_expression "(byte *)((long)pvVar7 + 1)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((long)pvVar7 + 1)" ( (binary_expression "(long)pvVar7 + 1" (cast_expression "(long)pvVar7" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) identifier) + number_literal) )))) ;) (expression_statement "local_cd = '\x01';" (assignment_expression "local_cd = '\x01'" identifier = (char_literal "'\x01'" ' escape_sequence ')) ;) (if_statement "if ((param_9[1] == 0x65) && (param_9[2] == 0x68)) {\n    if (param_9[3] != 0) {\n      return 0;\n    }\n    if ((long)param_10 - (long)pbVar17 < 8) {\n      return 0;\n    }\n    __s = param_9 + 3;\n    pbVar17 = (byte *)((long)pvVar7 + 9);\n    local_cd = '\0';\n  }" if (parenthesized_expression "((param_9[1] == 0x65) && (param_9[2] == 0x68))" ( (binary_expression "(param_9[1] == 0x65) && (param_9[2] == 0x68)" (parenthesized_expression "(param_9[1] == 0x65)" ( (binary_expression "param_9[1] == 0x65" (subscript_expression "param_9[1]" identifier [ number_literal ]) == number_literal) )) && (parenthesized_expression "(param_9[2] == 0x68)" ( (binary_expression "param_9[2] == 0x68" (subscript_expression "param_9[2]" identifier [ number_literal ]) == number_literal) ))) )) (compound_statement "{\n    if (param_9[3] != 0) {\n      return 0;\n    }\n    if ((long)param_10 - (long)pbVar17 < 8) {\n      return 0;\n    }\n    __s = param_9 + 3;\n    pbVar17 = (byte *)((long)pvVar7 + 9);\n    local_cd = '\0';\n  }" { (if_statement "if (param_9[3] != 0) {\n      return 0;\n    }" if (parenthesized_expression "(param_9[3] != 0)" ( (binary_expression "param_9[3] != 0" (subscript_expression "param_9[3]" identifier [ number_literal ]) != number_literal) )) (compound_statement "{\n      return 0;\n    }" { (return_statement "return 0;" return number_literal ;) })) (if_statement "if ((long)param_10 - (long)pbVar17 < 8) {\n      return 0;\n    }" if (parenthesized_expression "((long)param_10 - (long)pbVar17 < 8)" ( (binary_expression "(long)param_10 - (long)pbVar17 < 8" (binary_expression "(long)param_10 - (long)pbVar17" (cast_expression "(long)param_10" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) identifier) - (cast_expression "(long)pbVar17" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) identifier)) < number_literal) )) (compound_statement "{\n      return 0;\n    }" { (return_statement "return 0;" return number_literal ;) })) (expression_statement "__s = param_9 + 3;" (assignment_expression "__s = param_9 + 3" identifier = (binary_expression "param_9 + 3" identifier + number_literal)) ;) (expression_statement "pbVar17 = (byte *)((long)pvVar7 + 9);" (assignment_expression "pbVar17 = (byte *)((long)pvVar7 + 9)" identifier = (cast_expression "(byte *)((long)pvVar7 + 9)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((long)pvVar7 + 9)" ( (binary_expression "(long)pvVar7 + 9" (cast_expression "(long)pvVar7" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) identifier) + number_literal) )))) ;) (expression_statement "local_cd = '\0';" (assignment_expression "local_cd = '\0'" identifier = (char_literal "'\0'" ' escape_sequence ')) ;) })) (if_statement "if (param_10 <= pbVar17) {\n    return 0;\n  }" if (parenthesized_expression "(param_10 <= pbVar17)" ( (binary_expression "param_10 <= pbVar17" identifier <= identifier) )) (compound_statement "{\n    return 0;\n  }" { (return_statement "return 0;" return number_literal ;) })) (while_statement "while ((char)*pbVar17 < '\0') {\n    pbVar17 = pbVar17 + 1;\n    if (param_10 == pbVar17) {\n      return 0;\n    }\n  }" while (parenthesized_expression "((char)*pbVar17 < '\0')" ( (binary_expression "(char)*pbVar17 < '\0'" (cast_expression "(char)*pbVar17" ( (type_descriptor "char" primitive_type) ) (pointer_expression "*pbVar17" * identifier)) < (char_literal "'\0'" ' escape_sequence ')) )) (compound_statement "{\n    pbVar17 = pbVar17 + 1;\n    if (param_10 == pbVar17) {\n      return 0;\n    }\n  }" { (expression_statement "pbVar17 = pbVar17 + 1;" (assignment_expression "pbVar17 = pbVar17 + 1" identifier = (binary_expression "pbVar17 + 1" identifier + number_literal)) ;) (if_statement "if (param_10 == pbVar17) {\n      return 0;\n    }" if (parenthesized_expression "(param_10 == pbVar17)" ( (binary_expression "param_10 == pbVar17" identifier == identifier) )) (compound_statement "{\n      return 0;\n    }" { (return_statement "return 0;" return number_literal ;) })) })) (expression_statement "pbVar11 = pbVar17 + 1;" (assignment_expression "pbVar11 = pbVar17 + 1" identifier = (binary_expression "pbVar17 + 1" identifier + number_literal)) ;) (if_statement "if (param_10 <= pbVar11) {\n    return 0;\n  }" if (parenthesized_expression "(param_10 <= pbVar11)" ( (binary_expression "param_10 <= pbVar11" identifier <= identifier) )) (compound_statement "{\n    return 0;\n  }" { (return_statement "return 0;" return number_literal ;) })) (expression_statement "bVar15 = pbVar17[1];" (assignment_expression "bVar15 = pbVar17[1]" identifier = (subscript_expression "pbVar17[1]" identifier [ number_literal ])) ;) (while_statement "while ((char)bVar15 < '\0') {\n    pbVar11 = pbVar11 + 1;\n    if (param_10 == pbVar11) {\n      return 0;\n    }\n    bVar15 = *pbVar11;\n  }" while (parenthesized_expression "((char)bVar15 < '\0')" ( (binary_expression "(char)bVar15 < '\0'" (cast_expression "(char)bVar15" ( (type_descriptor "char" primitive_type) ) identifier) < (char_literal "'\0'" ' escape_sequence ')) )) (compound_statement "{\n    pbVar11 = pbVar11 + 1;\n    if (param_10 == pbVar11) {\n      return 0;\n    }\n    bVar15 = *pbVar11;\n  }" { (expression_statement "pbVar11 = pbVar11 + 1;" (assignment_expression "pbVar11 = pbVar11 + 1" identifier = (binary_expression "pbVar11 + 1" identifier + number_literal)) ;) (if_statement "if (param_10 == pbVar11) {\n      return 0;\n    }" if (parenthesized_expression "(param_10 == pbVar11)" ( (binary_expression "param_10 == pbVar11" identifier == identifier) )) (compound_statement "{\n      return 0;\n    }" { (return_statement "return 0;" return number_literal ;) })) (expression_statement "bVar15 = *pbVar11;" (assignment_expression "bVar15 = *pbVar11" identifier = (pointer_expression "*pbVar11" * identifier)) ;) })) (expression_statement "pbVar17 = pbVar11 + 1;" (assignment_expression "pbVar17 = pbVar11 + 1" identifier = (binary_expression "pbVar11 + 1" identifier + number_literal)) ;) (if_statement "if (bVar14 == 1) {\n    pbVar11 = pbVar11 + 2;\n    if (param_10 == pbVar17 || (long)param_10 - (long)pbVar17 < 0) {\n      return 0;\n    }\n  }\n  else {\n    if (param_10 <= pbVar17) {\n      return 0;\n    }\n    bVar14 = pbVar11[1];\n    while ((char)bVar14 < '\0') {\n      pbVar17 = pbVar17 + 1;\n      if (param_10 == pbVar17) {\n        return 0;\n      }\n      bVar14 = *pbVar17;\n    }\n    pbVar11 = pbVar17 + 1;\n  }" if (parenthesized_expression "(bVar14 == 1)" ( (binary_expression "bVar14 == 1" identifier == number_literal) )) (compound_statement "{\n    pbVar11 = pbVar11 + 2;\n    if (param_10 == pbVar17 || (long)param_10 - (long)pbVar17 < 0) {\n      return 0;\n    }\n  }" { (expression_statement "pbVar11 = pbVar11 + 2;" (assignment_expression "pbVar11 = pbVar11 + 2" identifier = (binary_expression "pbVar11 + 2" identifier + number_literal)) ;) (if_statement "if (param_10 == pbVar17 || (long)param_10 - (long)pbVar17 < 0) {\n      return 0;\n    }" if (parenthesized_expression "(param_10 == pbVar17 || (long)param_10 - (long)pbVar17 < 0)" ( (binary_expression "param_10 == pbVar17 || (long)param_10 - (long)pbVar17 < 0" (binary_expression "param_10 == pbVar17" identifier == identifier) || (binary_expression "(long)param_10 - (long)pbVar17 < 0" (binary_expression "(long)param_10 - (long)pbVar17" (cast_expression "(long)param_10" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) identifier) - (cast_expression "(long)pbVar17" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) identifier)) < number_literal)) )) (compound_statement "{\n      return 0;\n    }" { (return_statement "return 0;" return number_literal ;) })) }) (else_clause "else {\n    if (param_10 <= pbVar17) {\n      return 0;\n    }\n    bVar14 = pbVar11[1];\n    while ((char)bVar14 < '\0') {\n      pbVar17 = pbVar17 + 1;\n      if (param_10 == pbVar17) {\n        return 0;\n      }\n      bVar14 = *pbVar17;\n    }\n    pbVar11 = pbVar17 + 1;\n  }" else (compound_statement "{\n    if (param_10 <= pbVar17) {\n      return 0;\n    }\n    bVar14 = pbVar11[1];\n    while ((char)bVar14 < '\0') {\n      pbVar17 = pbVar17 + 1;\n      if (param_10 == pbVar17) {\n        return 0;\n      }\n      bVar14 = *pbVar17;\n    }\n    pbVar11 = pbVar17 + 1;\n  }" { (if_statement "if (param_10 <= pbVar17) {\n      return 0;\n    }" if (parenthesized_expression "(param_10 <= pbVar17)" ( (binary_expression "param_10 <= pbVar17" identifier <= identifier) )) (compound_statement "{\n      return 0;\n    }" { (return_statement "return 0;" return number_literal ;) })) (expression_statement "bVar14 = pbVar11[1];" (assignment_expression "bVar14 = pbVar11[1]" identifier = (subscript_expression "pbVar11[1]" identifier [ number_literal ])) ;) (while_statement "while ((char)bVar14 < '\0') {\n      pbVar17 = pbVar17 + 1;\n      if (param_10 == pbVar17) {\n        return 0;\n      }\n      bVar14 = *pbVar17;\n    }" while (parenthesized_expression "((char)bVar14 < '\0')" ( (binary_expression "(char)bVar14 < '\0'" (cast_expression "(char)bVar14" ( (type_descriptor "char" primitive_type) ) identifier) < (char_literal "'\0'" ' escape_sequence ')) )) (compound_statement "{\n      pbVar17 = pbVar17 + 1;\n      if (param_10 == pbVar17) {\n        return 0;\n      }\n      bVar14 = *pbVar17;\n    }" { (expression_statement "pbVar17 = pbVar17 + 1;" (assignment_expression "pbVar17 = pbVar17 + 1" identifier = (binary_expression "pbVar17 + 1" identifier + number_literal)) ;) (if_statement "if (param_10 == pbVar17) {\n        return 0;\n      }" if (parenthesized_expression "(param_10 == pbVar17)" ( (binary_expression "param_10 == pbVar17" identifier == identifier) )) (compound_statement "{\n        return 0;\n      }" { (return_statement "return 0;" return number_literal ;) })) (expression_statement "bVar14 = *pbVar17;" (assignment_expression "bVar14 = *pbVar17" identifier = (pointer_expression "*pbVar17" * identifier)) ;) })) (expression_statement "pbVar11 = pbVar17 + 1;" (assignment_expression "pbVar11 = pbVar17 + 1" identifier = (binary_expression "pbVar17 + 1" identifier + number_literal)) ;) }))) (expression_statement "bVar14 = *__s;" (assignment_expression "bVar14 = *__s" identifier = (pointer_expression "*__s" * identifier)) ;) (if_statement "if (bVar14 == 0x7a) {\n    if (param_10 <= pbVar11) {\n      return 0;\n    }\n    while ((char)*pbVar11 < '\0') {\n      pbVar11 = pbVar11 + 1;\n      if (param_10 == pbVar11) {\n        return 0;\n      }\n    }\n    bVar14 = __s[1];\n    pbVar11 = pbVar11 + 1;\n    if (bVar14 != 0) {\n      __s = __s + 1;\n      goto LAB_0024b528;\n    }\nLAB_0024b955:\n    pcVar21 = "";\n  }\n  else {\n    if (bVar14 == 0) goto LAB_0024b955;\nLAB_0024b528:\n    iVar6 = -1;\n    bVar16 = 0;\n    bVar15 = bVar14;\n    do {\n      bVar14 = bVar16;\n      if (bVar15 == 0x50) {\n        if (param_10 == pbVar11 || (long)param_10 - (long)pbVar11 < 0) {\n          return 0;\n        }\n        bVar15 = *pbVar11;\n        pbVar11 = pbVar11 + 1;\n        if ((bVar15 & 0x60) == 0x60) {\n          return 0;\n        }\n        bVar16 = bVar15 & 7;\n        if (bVar16 == 2) {\n          lVar8 = 2;\n        }\n        else {\n          if (bVar16 < 3) {\n            if (bVar16 != 0) {\n              return 0;\n            }\n          }\n          else {\n            if (bVar16 == 3) {\n              lVar8 = 4;\n              goto LAB_0024b853;\n            }\n            if (bVar16 != 4) {\n              return 0;\n            }\n          }\n          lVar8 = 8;\n        }\nLAB_0024b853:\n        uVar5 = (int)param_10 - (int)pbVar11;\n        uVar4 = (uint)lVar8;\n        if ((bVar15 & 0xf0) == 0x50) {\n          uVar13 = -uVar4 & (uVar4 - 1) + ((int)pbVar11 - (int)param_9);\n          if (uVar5 < uVar13) {\n            return 0;\n          }\n          pbVar11 = pbVar11 + uVar13;\n          uVar5 = (int)param_10 - (int)pbVar11;\n        }\n        iVar6 = (int)pbVar11 - (int)param_8;\n        if (uVar5 < uVar4) {\n          return 0;\n        }\n        pbVar11 = pbVar11 + lVar8;\n      }\n      else {\n        if (bVar15 < 0x51) {\n          if (bVar15 != 0x4c) {\n            return 0;\n          }\n          if (param_10 == pbVar11 || (long)param_10 - (long)pbVar11 < 0) {\n            return 0;\n          }\n        }\n        else {\n          if (bVar15 != 0x52) {\n            if (bVar15 != 0x53) {\n              return 0;\n            }\n            goto LAB_0024b557;\n          }\n          if (param_10 == pbVar11 || (long)param_10 - (long)pbVar11 < 0) {\n            return 0;\n          }\n          bVar14 = *pbVar11;\n          if (4 < (bVar14 & 7)) {\n            return 0;\n          }\n          if ((1L << (bVar14 & 7) & 0x1dU) == 0) {\n            return 0;\n          }\n        }\n        pbVar11 = pbVar11 + 1;\n      }\nLAB_0024b557:\n      __s = __s + 1;\n      bVar15 = *__s;\n      bVar16 = bVar14;\n    } while (bVar15 != 0);\n    if (iVar6 == -1) goto LAB_0024b955;\n    iVar3 = FUN_001fab10(param_11,(long)iVar6);\n    if (0 < iVar3) {\n      return 0;\n    }\n    lVar8 = FUN_001faa60(param_11);\n    if (iVar6 != lVar8) {\n      return 0;\n    }\n    uVar4 = FUN_001faa80(param_11);\n    if (uVar4 == 0xffffffff) {\n      return 0;\n    }\n    uVar5 = (**(code **)(*param_2 + 0x118))(param_2);\n    if (uVar4 < uVar5) {\n      local_cd = '\0';\n      pcVar21 = "";\n      uVar18 = extraout_RDX;\n    }\n    else {\n      uVar18 = param_5 % 0x18;\n      if (param_5 / 0x18 <= (ulong)uVar4) {\n        return 0;\n      }\n      uVar9 = (ulong)*(uint *)(param_4 + (ulong)(uVar4 * 0x18));\n      if (param_7 <= uVar9) {\n        return 0;\n      }\n      pcVar21 = (char *)(param_6 + uVar9);\n    }\n    iVar6 = FUN_001fab10(param_11,(long)(iVar6 + 1),uVar18);\n    if (iVar6 != 1) {\n                    \n      FUN_0016cdf0("../../gold/ehframe.cc",0x3af,"read_cie");\n    }\n  }" if (parenthesized_expression "(bVar14 == 0x7a)" ( (binary_expression "bVar14 == 0x7a" identifier == number_literal) )) (compound_statement "{\n    if (param_10 <= pbVar11) {\n      return 0;\n    }\n    while ((char)*pbVar11 < '\0') {\n      pbVar11 = pbVar11 + 1;\n      if (param_10 == pbVar11) {\n        return 0;\n      }\n    }\n    bVar14 = __s[1];\n    pbVar11 = pbVar11 + 1;\n    if (bVar14 != 0) {\n      __s = __s + 1;\n      goto LAB_0024b528;\n    }\nLAB_0024b955:\n    pcVar21 = "";\n  }" { (if_statement "if (param_10 <= pbVar11) {\n      return 0;\n    }" if (parenthesized_expression "(param_10 <= pbVar11)" ( (binary_expression "param_10 <= pbVar11" identifier <= identifier) )) (compound_statement "{\n      return 0;\n    }" { (return_statement "return 0;" return number_literal ;) })) (while_statement "while ((char)*pbVar11 < '\0') {\n      pbVar11 = pbVar11 + 1;\n      if (param_10 == pbVar11) {\n        return 0;\n      }\n    }" while (parenthesized_expression "((char)*pbVar11 < '\0')" ( (binary_expression "(char)*pbVar11 < '\0'" (cast_expression "(char)*pbVar11" ( (type_descriptor "char" primitive_type) ) (pointer_expression "*pbVar11" * identifier)) < (char_literal "'\0'" ' escape_sequence ')) )) (compound_statement "{\n      pbVar11 = pbVar11 + 1;\n      if (param_10 == pbVar11) {\n        return 0;\n      }\n    }" { (expression_statement "pbVar11 = pbVar11 + 1;" (assignment_expression "pbVar11 = pbVar11 + 1" identifier = (binary_expression "pbVar11 + 1" identifier + number_literal)) ;) (if_statement "if (param_10 == pbVar11) {\n        return 0;\n      }" if (parenthesized_expression "(param_10 == pbVar11)" ( (binary_expression "param_10 == pbVar11" identifier == identifier) )) (compound_statement "{\n        return 0;\n      }" { (return_statement "return 0;" return number_literal ;) })) })) (expression_statement "bVar14 = __s[1];" (assignment_expression "bVar14 = __s[1]" identifier = (subscript_expression "__s[1]" identifier [ number_literal ])) ;) (expression_statement "pbVar11 = pbVar11 + 1;" (assignment_expression "pbVar11 = pbVar11 + 1" identifier = (binary_expression "pbVar11 + 1" identifier + number_literal)) ;) (if_statement "if (bVar14 != 0) {\n      __s = __s + 1;\n      goto LAB_0024b528;\n    }" if (parenthesized_expression "(bVar14 != 0)" ( (binary_expression "bVar14 != 0" identifier != number_literal) )) (compound_statement "{\n      __s = __s + 1;\n      goto LAB_0024b528;\n    }" { (expression_statement "__s = __s + 1;" (assignment_expression "__s = __s + 1" identifier = (binary_expression "__s + 1" identifier + number_literal)) ;) (goto_statement "goto LAB_0024b528;" goto statement_identifier ;) })) (labeled_statement "LAB_0024b955:\n    pcVar21 = "";" statement_identifier : (expression_statement "pcVar21 = "";" (assignment_expression "pcVar21 = """ identifier = (string_literal """" " ")) ;)) }) (else_clause "else {\n    if (bVar14 == 0) goto LAB_0024b955;\nLAB_0024b528:\n    iVar6 = -1;\n    bVar16 = 0;\n    bVar15 = bVar14;\n    do {\n      bVar14 = bVar16;\n      if (bVar15 == 0x50) {\n        if (param_10 == pbVar11 || (long)param_10 - (long)pbVar11 < 0) {\n          return 0;\n        }\n        bVar15 = *pbVar11;\n        pbVar11 = pbVar11 + 1;\n        if ((bVar15 & 0x60) == 0x60) {\n          return 0;\n        }\n        bVar16 = bVar15 & 7;\n        if (bVar16 == 2) {\n          lVar8 = 2;\n        }\n        else {\n          if (bVar16 < 3) {\n            if (bVar16 != 0) {\n              return 0;\n            }\n          }\n          else {\n            if (bVar16 == 3) {\n              lVar8 = 4;\n              goto LAB_0024b853;\n            }\n            if (bVar16 != 4) {\n              return 0;\n            }\n          }\n          lVar8 = 8;\n        }\nLAB_0024b853:\n        uVar5 = (int)param_10 - (int)pbVar11;\n        uVar4 = (uint)lVar8;\n        if ((bVar15 & 0xf0) == 0x50) {\n          uVar13 = -uVar4 & (uVar4 - 1) + ((int)pbVar11 - (int)param_9);\n          if (uVar5 < uVar13) {\n            return 0;\n          }\n          pbVar11 = pbVar11 + uVar13;\n          uVar5 = (int)param_10 - (int)pbVar11;\n        }\n        iVar6 = (int)pbVar11 - (int)param_8;\n        if (uVar5 < uVar4) {\n          return 0;\n        }\n        pbVar11 = pbVar11 + lVar8;\n      }\n      else {\n        if (bVar15 < 0x51) {\n          if (bVar15 != 0x4c) {\n            return 0;\n          }\n          if (param_10 == pbVar11 || (long)param_10 - (long)pbVar11 < 0) {\n            return 0;\n          }\n        }\n        else {\n          if (bVar15 != 0x52) {\n            if (bVar15 != 0x53) {\n              return 0;\n            }\n            goto LAB_0024b557;\n          }\n          if (param_10 == pbVar11 || (long)param_10 - (long)pbVar11 < 0) {\n            return 0;\n          }\n          bVar14 = *pbVar11;\n          if (4 < (bVar14 & 7)) {\n            return 0;\n          }\n          if ((1L << (bVar14 & 7) & 0x1dU) == 0) {\n            return 0;\n          }\n        }\n        pbVar11 = pbVar11 + 1;\n      }\nLAB_0024b557:\n      __s = __s + 1;\n      bVar15 = *__s;\n      bVar16 = bVar14;\n    } while (bVar15 != 0);\n    if (iVar6 == -1) goto LAB_0024b955;\n    iVar3 = FUN_001fab10(param_11,(long)iVar6);\n    if (0 < iVar3) {\n      return 0;\n    }\n    lVar8 = FUN_001faa60(param_11);\n    if (iVar6 != lVar8) {\n      return 0;\n    }\n    uVar4 = FUN_001faa80(param_11);\n    if (uVar4 == 0xffffffff) {\n      return 0;\n    }\n    uVar5 = (**(code **)(*param_2 + 0x118))(param_2);\n    if (uVar4 < uVar5) {\n      local_cd = '\0';\n      pcVar21 = "";\n      uVar18 = extraout_RDX;\n    }\n    else {\n      uVar18 = param_5 % 0x18;\n      if (param_5 / 0x18 <= (ulong)uVar4) {\n        return 0;\n      }\n      uVar9 = (ulong)*(uint *)(param_4 + (ulong)(uVar4 * 0x18));\n      if (param_7 <= uVar9) {\n        return 0;\n      }\n      pcVar21 = (char *)(param_6 + uVar9);\n    }\n    iVar6 = FUN_001fab10(param_11,(long)(iVar6 + 1),uVar18);\n    if (iVar6 != 1) {\n                    \n      FUN_0016cdf0("../../gold/ehframe.cc",0x3af,"read_cie");\n    }\n  }" else (compound_statement "{\n    if (bVar14 == 0) goto LAB_0024b955;\nLAB_0024b528:\n    iVar6 = -1;\n    bVar16 = 0;\n    bVar15 = bVar14;\n    do {\n      bVar14 = bVar16;\n      if (bVar15 == 0x50) {\n        if (param_10 == pbVar11 || (long)param_10 - (long)pbVar11 < 0) {\n          return 0;\n        }\n        bVar15 = *pbVar11;\n        pbVar11 = pbVar11 + 1;\n        if ((bVar15 & 0x60) == 0x60) {\n          return 0;\n        }\n        bVar16 = bVar15 & 7;\n        if (bVar16 == 2) {\n          lVar8 = 2;\n        }\n        else {\n          if (bVar16 < 3) {\n            if (bVar16 != 0) {\n              return 0;\n            }\n          }\n          else {\n            if (bVar16 == 3) {\n              lVar8 = 4;\n              goto LAB_0024b853;\n            }\n            if (bVar16 != 4) {\n              return 0;\n            }\n          }\n          lVar8 = 8;\n        }\nLAB_0024b853:\n        uVar5 = (int)param_10 - (int)pbVar11;\n        uVar4 = (uint)lVar8;\n        if ((bVar15 & 0xf0) == 0x50) {\n          uVar13 = -uVar4 & (uVar4 - 1) + ((int)pbVar11 - (int)param_9);\n          if (uVar5 < uVar13) {\n            return 0;\n          }\n          pbVar11 = pbVar11 + uVar13;\n          uVar5 = (int)param_10 - (int)pbVar11;\n        }\n        iVar6 = (int)pbVar11 - (int)param_8;\n        if (uVar5 < uVar4) {\n          return 0;\n        }\n        pbVar11 = pbVar11 + lVar8;\n      }\n      else {\n        if (bVar15 < 0x51) {\n          if (bVar15 != 0x4c) {\n            return 0;\n          }\n          if (param_10 == pbVar11 || (long)param_10 - (long)pbVar11 < 0) {\n            return 0;\n          }\n        }\n        else {\n          if (bVar15 != 0x52) {\n            if (bVar15 != 0x53) {\n              return 0;\n            }\n            goto LAB_0024b557;\n          }\n          if (param_10 == pbVar11 || (long)param_10 - (long)pbVar11 < 0) {\n            return 0;\n          }\n          bVar14 = *pbVar11;\n          if (4 < (bVar14 & 7)) {\n            return 0;\n          }\n          if ((1L << (bVar14 & 7) & 0x1dU) == 0) {\n            return 0;\n          }\n        }\n        pbVar11 = pbVar11 + 1;\n      }\nLAB_0024b557:\n      __s = __s + 1;\n      bVar15 = *__s;\n      bVar16 = bVar14;\n    } while (bVar15 != 0);\n    if (iVar6 == -1) goto LAB_0024b955;\n    iVar3 = FUN_001fab10(param_11,(long)iVar6);\n    if (0 < iVar3) {\n      return 0;\n    }\n    lVar8 = FUN_001faa60(param_11);\n    if (iVar6 != lVar8) {\n      return 0;\n    }\n    uVar4 = FUN_001faa80(param_11);\n    if (uVar4 == 0xffffffff) {\n      return 0;\n    }\n    uVar5 = (**(code **)(*param_2 + 0x118))(param_2);\n    if (uVar4 < uVar5) {\n      local_cd = '\0';\n      pcVar21 = "";\n      uVar18 = extraout_RDX;\n    }\n    else {\n      uVar18 = param_5 % 0x18;\n      if (param_5 / 0x18 <= (ulong)uVar4) {\n        return 0;\n      }\n      uVar9 = (ulong)*(uint *)(param_4 + (ulong)(uVar4 * 0x18));\n      if (param_7 <= uVar9) {\n        return 0;\n      }\n      pcVar21 = (char *)(param_6 + uVar9);\n    }\n    iVar6 = FUN_001fab10(param_11,(long)(iVar6 + 1),uVar18);\n    if (iVar6 != 1) {\n                    \n      FUN_0016cdf0("../../gold/ehframe.cc",0x3af,"read_cie");\n    }\n  }" { (if_statement "if (bVar14 == 0) goto LAB_0024b955;" if (parenthesized_expression "(bVar14 == 0)" ( (binary_expression "bVar14 == 0" identifier == number_literal) )) (goto_statement "goto LAB_0024b955;" goto statement_identifier ;)) (labeled_statement "LAB_0024b528:\n    iVar6 = -1;" statement_identifier : (expression_statement "iVar6 = -1;" (assignment_expression "iVar6 = -1" identifier = number_literal) ;)) (expression_statement "bVar16 = 0;" (assignment_expression "bVar16 = 0" identifier = number_literal) ;) (expression_statement "bVar15 = bVar14;" (assignment_expression "bVar15 = bVar14" identifier = identifier) ;) (do_statement "do {\n      bVar14 = bVar16;\n      if (bVar15 == 0x50) {\n        if (param_10 == pbVar11 || (long)param_10 - (long)pbVar11 < 0) {\n          return 0;\n        }\n        bVar15 = *pbVar11;\n        pbVar11 = pbVar11 + 1;\n        if ((bVar15 & 0x60) == 0x60) {\n          return 0;\n        }\n        bVar16 = bVar15 & 7;\n        if (bVar16 == 2) {\n          lVar8 = 2;\n        }\n        else {\n          if (bVar16 < 3) {\n            if (bVar16 != 0) {\n              return 0;\n            }\n          }\n          else {\n            if (bVar16 == 3) {\n              lVar8 = 4;\n              goto LAB_0024b853;\n            }\n            if (bVar16 != 4) {\n              return 0;\n            }\n          }\n          lVar8 = 8;\n        }\nLAB_0024b853:\n        uVar5 = (int)param_10 - (int)pbVar11;\n        uVar4 = (uint)lVar8;\n        if ((bVar15 & 0xf0) == 0x50) {\n          uVar13 = -uVar4 & (uVar4 - 1) + ((int)pbVar11 - (int)param_9);\n          if (uVar5 < uVar13) {\n            return 0;\n          }\n          pbVar11 = pbVar11 + uVar13;\n          uVar5 = (int)param_10 - (int)pbVar11;\n        }\n        iVar6 = (int)pbVar11 - (int)param_8;\n        if (uVar5 < uVar4) {\n          return 0;\n        }\n        pbVar11 = pbVar11 + lVar8;\n      }\n      else {\n        if (bVar15 < 0x51) {\n          if (bVar15 != 0x4c) {\n            return 0;\n          }\n          if (param_10 == pbVar11 || (long)param_10 - (long)pbVar11 < 0) {\n            return 0;\n          }\n        }\n        else {\n          if (bVar15 != 0x52) {\n            if (bVar15 != 0x53) {\n              return 0;\n            }\n            goto LAB_0024b557;\n          }\n          if (param_10 == pbVar11 || (long)param_10 - (long)pbVar11 < 0) {\n            return 0;\n          }\n          bVar14 = *pbVar11;\n          if (4 < (bVar14 & 7)) {\n            return 0;\n          }\n          if ((1L << (bVar14 & 7) & 0x1dU) == 0) {\n            return 0;\n          }\n        }\n        pbVar11 = pbVar11 + 1;\n      }\nLAB_0024b557:\n      __s = __s + 1;\n      bVar15 = *__s;\n      bVar16 = bVar14;\n    } while (bVar15 != 0);" do (compound_statement "{\n      bVar14 = bVar16;\n      if (bVar15 == 0x50) {\n        if (param_10 == pbVar11 || (long)param_10 - (long)pbVar11 < 0) {\n          return 0;\n        }\n        bVar15 = *pbVar11;\n        pbVar11 = pbVar11 + 1;\n        if ((bVar15 & 0x60) == 0x60) {\n          return 0;\n        }\n        bVar16 = bVar15 & 7;\n        if (bVar16 == 2) {\n          lVar8 = 2;\n        }\n        else {\n          if (bVar16 < 3) {\n            if (bVar16 != 0) {\n              return 0;\n            }\n          }\n          else {\n            if (bVar16 == 3) {\n              lVar8 = 4;\n              goto LAB_0024b853;\n            }\n            if (bVar16 != 4) {\n              return 0;\n            }\n          }\n          lVar8 = 8;\n        }\nLAB_0024b853:\n        uVar5 = (int)param_10 - (int)pbVar11;\n        uVar4 = (uint)lVar8;\n        if ((bVar15 & 0xf0) == 0x50) {\n          uVar13 = -uVar4 & (uVar4 - 1) + ((int)pbVar11 - (int)param_9);\n          if (uVar5 < uVar13) {\n            return 0;\n          }\n          pbVar11 = pbVar11 + uVar13;\n          uVar5 = (int)param_10 - (int)pbVar11;\n        }\n        iVar6 = (int)pbVar11 - (int)param_8;\n        if (uVar5 < uVar4) {\n          return 0;\n        }\n        pbVar11 = pbVar11 + lVar8;\n      }\n      else {\n        if (bVar15 < 0x51) {\n          if (bVar15 != 0x4c) {\n            return 0;\n          }\n          if (param_10 == pbVar11 || (long)param_10 - (long)pbVar11 < 0) {\n            return 0;\n          }\n        }\n        else {\n          if (bVar15 != 0x52) {\n            if (bVar15 != 0x53) {\n              return 0;\n            }\n            goto LAB_0024b557;\n          }\n          if (param_10 == pbVar11 || (long)param_10 - (long)pbVar11 < 0) {\n            return 0;\n          }\n          bVar14 = *pbVar11;\n          if (4 < (bVar14 & 7)) {\n            return 0;\n          }\n          if ((1L << (bVar14 & 7) & 0x1dU) == 0) {\n            return 0;\n          }\n        }\n        pbVar11 = pbVar11 + 1;\n      }\nLAB_0024b557:\n      __s = __s + 1;\n      bVar15 = *__s;\n      bVar16 = bVar14;\n    }" { (expression_statement "bVar14 = bVar16;" (assignment_expression "bVar14 = bVar16" identifier = identifier) ;) (if_statement "if (bVar15 == 0x50) {\n        if (param_10 == pbVar11 || (long)param_10 - (long)pbVar11 < 0) {\n          return 0;\n        }\n        bVar15 = *pbVar11;\n        pbVar11 = pbVar11 + 1;\n        if ((bVar15 & 0x60) == 0x60) {\n          return 0;\n        }\n        bVar16 = bVar15 & 7;\n        if (bVar16 == 2) {\n          lVar8 = 2;\n        }\n        else {\n          if (bVar16 < 3) {\n            if (bVar16 != 0) {\n              return 0;\n            }\n          }\n          else {\n            if (bVar16 == 3) {\n              lVar8 = 4;\n              goto LAB_0024b853;\n            }\n            if (bVar16 != 4) {\n              return 0;\n            }\n          }\n          lVar8 = 8;\n        }\nLAB_0024b853:\n        uVar5 = (int)param_10 - (int)pbVar11;\n        uVar4 = (uint)lVar8;\n        if ((bVar15 & 0xf0) == 0x50) {\n          uVar13 = -uVar4 & (uVar4 - 1) + ((int)pbVar11 - (int)param_9);\n          if (uVar5 < uVar13) {\n            return 0;\n          }\n          pbVar11 = pbVar11 + uVar13;\n          uVar5 = (int)param_10 - (int)pbVar11;\n        }\n        iVar6 = (int)pbVar11 - (int)param_8;\n        if (uVar5 < uVar4) {\n          return 0;\n        }\n        pbVar11 = pbVar11 + lVar8;\n      }\n      else {\n        if (bVar15 < 0x51) {\n          if (bVar15 != 0x4c) {\n            return 0;\n          }\n          if (param_10 == pbVar11 || (long)param_10 - (long)pbVar11 < 0) {\n            return 0;\n          }\n        }\n        else {\n          if (bVar15 != 0x52) {\n            if (bVar15 != 0x53) {\n              return 0;\n            }\n            goto LAB_0024b557;\n          }\n          if (param_10 == pbVar11 || (long)param_10 - (long)pbVar11 < 0) {\n            return 0;\n          }\n          bVar14 = *pbVar11;\n          if (4 < (bVar14 & 7)) {\n            return 0;\n          }\n          if ((1L << (bVar14 & 7) & 0x1dU) == 0) {\n            return 0;\n          }\n        }\n        pbVar11 = pbVar11 + 1;\n      }" if (parenthesized_expression "(bVar15 == 0x50)" ( (binary_expression "bVar15 == 0x50" identifier == number_literal) )) (compound_statement "{\n        if (param_10 == pbVar11 || (long)param_10 - (long)pbVar11 < 0) {\n          return 0;\n        }\n        bVar15 = *pbVar11;\n        pbVar11 = pbVar11 + 1;\n        if ((bVar15 & 0x60) == 0x60) {\n          return 0;\n        }\n        bVar16 = bVar15 & 7;\n        if (bVar16 == 2) {\n          lVar8 = 2;\n        }\n        else {\n          if (bVar16 < 3) {\n            if (bVar16 != 0) {\n              return 0;\n            }\n          }\n          else {\n            if (bVar16 == 3) {\n              lVar8 = 4;\n              goto LAB_0024b853;\n            }\n            if (bVar16 != 4) {\n              return 0;\n            }\n          }\n          lVar8 = 8;\n        }\nLAB_0024b853:\n        uVar5 = (int)param_10 - (int)pbVar11;\n        uVar4 = (uint)lVar8;\n        if ((bVar15 & 0xf0) == 0x50) {\n          uVar13 = -uVar4 & (uVar4 - 1) + ((int)pbVar11 - (int)param_9);\n          if (uVar5 < uVar13) {\n            return 0;\n          }\n          pbVar11 = pbVar11 + uVar13;\n          uVar5 = (int)param_10 - (int)pbVar11;\n        }\n        iVar6 = (int)pbVar11 - (int)param_8;\n        if (uVar5 < uVar4) {\n          return 0;\n        }\n        pbVar11 = pbVar11 + lVar8;\n      }" { (if_statement "if (param_10 == pbVar11 || (long)param_10 - (long)pbVar11 < 0) {\n          return 0;\n        }" if (parenthesized_expression "(param_10 == pbVar11 || (long)param_10 - (long)pbVar11 < 0)" ( (binary_expression "param_10 == pbVar11 || (long)param_10 - (long)pbVar11 < 0" (binary_expression "param_10 == pbVar11" identifier == identifier) || (binary_expression "(long)param_10 - (long)pbVar11 < 0" (binary_expression "(long)param_10 - (long)pbVar11" (cast_expression "(long)param_10" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) identifier) - (cast_expression "(long)pbVar11" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) identifier)) < number_literal)) )) (compound_statement "{\n          return 0;\n        }" { (return_statement "return 0;" return number_literal ;) })) (expression_statement "bVar15 = *pbVar11;" (assignment_expression "bVar15 = *pbVar11" identifier = (pointer_expression "*pbVar11" * identifier)) ;) (expression_statement "pbVar11 = pbVar11 + 1;" (assignment_expression "pbVar11 = pbVar11 + 1" identifier = (binary_expression "pbVar11 + 1" identifier + number_literal)) ;) (if_statement "if ((bVar15 & 0x60) == 0x60) {\n          return 0;\n        }" if (parenthesized_expression "((bVar15 & 0x60) == 0x60)" ( (binary_expression "(bVar15 & 0x60) == 0x60" (parenthesized_expression "(bVar15 & 0x60)" ( (binary_expression "bVar15 & 0x60" identifier & number_literal) )) == number_literal) )) (compound_statement "{\n          return 0;\n        }" { (return_statement "return 0;" return number_literal ;) })) (expression_statement "bVar16 = bVar15 & 7;" (assignment_expression "bVar16 = bVar15 & 7" identifier = (binary_expression "bVar15 & 7" identifier & number_literal)) ;) (if_statement "if (bVar16 == 2) {\n          lVar8 = 2;\n        }\n        else {\n          if (bVar16 < 3) {\n            if (bVar16 != 0) {\n              return 0;\n            }\n          }\n          else {\n            if (bVar16 == 3) {\n              lVar8 = 4;\n              goto LAB_0024b853;\n            }\n            if (bVar16 != 4) {\n              return 0;\n            }\n          }\n          lVar8 = 8;\n        }" if (parenthesized_expression "(bVar16 == 2)" ( (binary_expression "bVar16 == 2" identifier == number_literal) )) (compound_statement "{\n          lVar8 = 2;\n        }" { (expression_statement "lVar8 = 2;" (assignment_expression "lVar8 = 2" identifier = number_literal) ;) }) (else_clause "else {\n          if (bVar16 < 3) {\n            if (bVar16 != 0) {\n              return 0;\n            }\n          }\n          else {\n            if (bVar16 == 3) {\n              lVar8 = 4;\n              goto LAB_0024b853;\n            }\n            if (bVar16 != 4) {\n              return 0;\n            }\n          }\n          lVar8 = 8;\n        }" else (compound_statement "{\n          if (bVar16 < 3) {\n            if (bVar16 != 0) {\n              return 0;\n            }\n          }\n          else {\n            if (bVar16 == 3) {\n              lVar8 = 4;\n              goto LAB_0024b853;\n            }\n            if (bVar16 != 4) {\n              return 0;\n            }\n          }\n          lVar8 = 8;\n        }" { (if_statement "if (bVar16 < 3) {\n            if (bVar16 != 0) {\n              return 0;\n            }\n          }\n          else {\n            if (bVar16 == 3) {\n              lVar8 = 4;\n              goto LAB_0024b853;\n            }\n            if (bVar16 != 4) {\n              return 0;\n            }\n          }" if (parenthesized_expression "(bVar16 < 3)" ( (binary_expression "bVar16 < 3" identifier < number_literal) )) (compound_statement "{\n            if (bVar16 != 0) {\n              return 0;\n            }\n          }" { (if_statement "if (bVar16 != 0) {\n              return 0;\n            }" if (parenthesized_expression "(bVar16 != 0)" ( (binary_expression "bVar16 != 0" identifier != number_literal) )) (compound_statement "{\n              return 0;\n            }" { (return_statement "return 0;" return number_literal ;) })) }) (else_clause "else {\n            if (bVar16 == 3) {\n              lVar8 = 4;\n              goto LAB_0024b853;\n            }\n            if (bVar16 != 4) {\n              return 0;\n            }\n          }" else (compound_statement "{\n            if (bVar16 == 3) {\n              lVar8 = 4;\n              goto LAB_0024b853;\n            }\n            if (bVar16 != 4) {\n              return 0;\n            }\n          }" { (if_statement "if (bVar16 == 3) {\n              lVar8 = 4;\n              goto LAB_0024b853;\n            }" if (parenthesized_expression "(bVar16 == 3)" ( (binary_expression "bVar16 == 3" identifier == number_literal) )) (compound_statement "{\n              lVar8 = 4;\n              goto LAB_0024b853;\n            }" { (expression_statement "lVar8 = 4;" (assignment_expression "lVar8 = 4" identifier = number_literal) ;) (goto_statement "goto LAB_0024b853;" goto statement_identifier ;) })) (if_statement "if (bVar16 != 4) {\n              return 0;\n            }" if (parenthesized_expression "(bVar16 != 4)" ( (binary_expression "bVar16 != 4" identifier != number_literal) )) (compound_statement "{\n              return 0;\n            }" { (return_statement "return 0;" return number_literal ;) })) }))) (expression_statement "lVar8 = 8;" (assignment_expression "lVar8 = 8" identifier = number_literal) ;) }))) (labeled_statement "LAB_0024b853:\n        uVar5 = (int)param_10 - (int)pbVar11;" statement_identifier : (expression_statement "uVar5 = (int)param_10 - (int)pbVar11;" (assignment_expression "uVar5 = (int)param_10 - (int)pbVar11" identifier = (binary_expression "(int)param_10 - (int)pbVar11" (cast_expression "(int)param_10" ( (type_descriptor "int" primitive_type) ) identifier) - (cast_expression "(int)pbVar11" ( (type_descriptor "int" primitive_type) ) identifier))) ;)) (expression_statement "uVar4 = (uint)lVar8;" (assignment_expression "uVar4 = (uint)lVar8" identifier = (cast_expression "(uint)lVar8" ( (type_descriptor "uint" type_identifier) ) identifier)) ;) (if_statement "if ((bVar15 & 0xf0) == 0x50) {\n          uVar13 = -uVar4 & (uVar4 - 1) + ((int)pbVar11 - (int)param_9);\n          if (uVar5 < uVar13) {\n            return 0;\n          }\n          pbVar11 = pbVar11 + uVar13;\n          uVar5 = (int)param_10 - (int)pbVar11;\n        }" if (parenthesized_expression "((bVar15 & 0xf0) == 0x50)" ( (binary_expression "(bVar15 & 0xf0) == 0x50" (parenthesized_expression "(bVar15 & 0xf0)" ( (binary_expression "bVar15 & 0xf0" identifier & number_literal) )) == number_literal) )) (compound_statement "{\n          uVar13 = -uVar4 & (uVar4 - 1) + ((int)pbVar11 - (int)param_9);\n          if (uVar5 < uVar13) {\n            return 0;\n          }\n          pbVar11 = pbVar11 + uVar13;\n          uVar5 = (int)param_10 - (int)pbVar11;\n        }" { (expression_statement "uVar13 = -uVar4 & (uVar4 - 1) + ((int)pbVar11 - (int)param_9);" (assignment_expression "uVar13 = -uVar4 & (uVar4 - 1) + ((int)pbVar11 - (int)param_9)" identifier = (binary_expression "-uVar4 & (uVar4 - 1) + ((int)pbVar11 - (int)param_9)" (unary_expression "-uVar4" - identifier) & (binary_expression "(uVar4 - 1) + ((int)pbVar11 - (int)param_9)" (parenthesized_expression "(uVar4 - 1)" ( (binary_expression "uVar4 - 1" identifier - number_literal) )) + (parenthesized_expression "((int)pbVar11 - (int)param_9)" ( (binary_expression "(int)pbVar11 - (int)param_9" (cast_expression "(int)pbVar11" ( (type_descriptor "int" primitive_type) ) identifier) - (cast_expression "(int)param_9" ( (type_descriptor "int" primitive_type) ) identifier)) ))))) ;) (if_statement "if (uVar5 < uVar13) {\n            return 0;\n          }" if (parenthesized_expression "(uVar5 < uVar13)" ( (binary_expression "uVar5 < uVar13" identifier < identifier) )) (compound_statement "{\n            return 0;\n          }" { (return_statement "return 0;" return number_literal ;) })) (expression_statement "pbVar11 = pbVar11 + uVar13;" (assignment_expression "pbVar11 = pbVar11 + uVar13" identifier = (binary_expression "pbVar11 + uVar13" identifier + identifier)) ;) (expression_statement "uVar5 = (int)param_10 - (int)pbVar11;" (assignment_expression "uVar5 = (int)param_10 - (int)pbVar11" identifier = (binary_expression "(int)param_10 - (int)pbVar11" (cast_expression "(int)param_10" ( (type_descriptor "int" primitive_type) ) identifier) - (cast_expression "(int)pbVar11" ( (type_descriptor "int" primitive_type) ) identifier))) ;) })) (expression_statement "iVar6 = (int)pbVar11 - (int)param_8;" (assignment_expression "iVar6 = (int)pbVar11 - (int)param_8" identifier = (binary_expression "(int)pbVar11 - (int)param_8" (cast_expression "(int)pbVar11" ( (type_descriptor "int" primitive_type) ) identifier) - (cast_expression "(int)param_8" ( (type_descriptor "int" primitive_type) ) identifier))) ;) (if_statement "if (uVar5 < uVar4) {\n          return 0;\n        }" if (parenthesized_expression "(uVar5 < uVar4)" ( (binary_expression "uVar5 < uVar4" identifier < identifier) )) (compound_statement "{\n          return 0;\n        }" { (return_statement "return 0;" return number_literal ;) })) (expression_statement "pbVar11 = pbVar11 + lVar8;" (assignment_expression "pbVar11 = pbVar11 + lVar8" identifier = (binary_expression "pbVar11 + lVar8" identifier + identifier)) ;) }) (else_clause "else {\n        if (bVar15 < 0x51) {\n          if (bVar15 != 0x4c) {\n            return 0;\n          }\n          if (param_10 == pbVar11 || (long)param_10 - (long)pbVar11 < 0) {\n            return 0;\n          }\n        }\n        else {\n          if (bVar15 != 0x52) {\n            if (bVar15 != 0x53) {\n              return 0;\n            }\n            goto LAB_0024b557;\n          }\n          if (param_10 == pbVar11 || (long)param_10 - (long)pbVar11 < 0) {\n            return 0;\n          }\n          bVar14 = *pbVar11;\n          if (4 < (bVar14 & 7)) {\n            return 0;\n          }\n          if ((1L << (bVar14 & 7) & 0x1dU) == 0) {\n            return 0;\n          }\n        }\n        pbVar11 = pbVar11 + 1;\n      }" else (compound_statement "{\n        if (bVar15 < 0x51) {\n          if (bVar15 != 0x4c) {\n            return 0;\n          }\n          if (param_10 == pbVar11 || (long)param_10 - (long)pbVar11 < 0) {\n            return 0;\n          }\n        }\n        else {\n          if (bVar15 != 0x52) {\n            if (bVar15 != 0x53) {\n              return 0;\n            }\n            goto LAB_0024b557;\n          }\n          if (param_10 == pbVar11 || (long)param_10 - (long)pbVar11 < 0) {\n            return 0;\n          }\n          bVar14 = *pbVar11;\n          if (4 < (bVar14 & 7)) {\n            return 0;\n          }\n          if ((1L << (bVar14 & 7) & 0x1dU) == 0) {\n            return 0;\n          }\n        }\n        pbVar11 = pbVar11 + 1;\n      }" { (if_statement "if (bVar15 < 0x51) {\n          if (bVar15 != 0x4c) {\n            return 0;\n          }\n          if (param_10 == pbVar11 || (long)param_10 - (long)pbVar11 < 0) {\n            return 0;\n          }\n        }\n        else {\n          if (bVar15 != 0x52) {\n            if (bVar15 != 0x53) {\n              return 0;\n            }\n            goto LAB_0024b557;\n          }\n          if (param_10 == pbVar11 || (long)param_10 - (long)pbVar11 < 0) {\n            return 0;\n          }\n          bVar14 = *pbVar11;\n          if (4 < (bVar14 & 7)) {\n            return 0;\n          }\n          if ((1L << (bVar14 & 7) & 0x1dU) == 0) {\n            return 0;\n          }\n        }" if (parenthesized_expression "(bVar15 < 0x51)" ( (binary_expression "bVar15 < 0x51" identifier < number_literal) )) (compound_statement "{\n          if (bVar15 != 0x4c) {\n            return 0;\n          }\n          if (param_10 == pbVar11 || (long)param_10 - (long)pbVar11 < 0) {\n            return 0;\n          }\n        }" { (if_statement "if (bVar15 != 0x4c) {\n            return 0;\n          }" if (parenthesized_expression "(bVar15 != 0x4c)" ( (binary_expression "bVar15 != 0x4c" identifier != number_literal) )) (compound_statement "{\n            return 0;\n          }" { (return_statement "return 0;" return number_literal ;) })) (if_statement "if (param_10 == pbVar11 || (long)param_10 - (long)pbVar11 < 0) {\n            return 0;\n          }" if (parenthesized_expression "(param_10 == pbVar11 || (long)param_10 - (long)pbVar11 < 0)" ( (binary_expression "param_10 == pbVar11 || (long)param_10 - (long)pbVar11 < 0" (binary_expression "param_10 == pbVar11" identifier == identifier) || (binary_expression "(long)param_10 - (long)pbVar11 < 0" (binary_expression "(long)param_10 - (long)pbVar11" (cast_expression "(long)param_10" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) identifier) - (cast_expression "(long)pbVar11" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) identifier)) < number_literal)) )) (compound_statement "{\n            return 0;\n          }" { (return_statement "return 0;" return number_literal ;) })) }) (else_clause "else {\n          if (bVar15 != 0x52) {\n            if (bVar15 != 0x53) {\n              return 0;\n            }\n            goto LAB_0024b557;\n          }\n          if (param_10 == pbVar11 || (long)param_10 - (long)pbVar11 < 0) {\n            return 0;\n          }\n          bVar14 = *pbVar11;\n          if (4 < (bVar14 & 7)) {\n            return 0;\n          }\n          if ((1L << (bVar14 & 7) & 0x1dU) == 0) {\n            return 0;\n          }\n        }" else (compound_statement "{\n          if (bVar15 != 0x52) {\n            if (bVar15 != 0x53) {\n              return 0;\n            }\n            goto LAB_0024b557;\n          }\n          if (param_10 == pbVar11 || (long)param_10 - (long)pbVar11 < 0) {\n            return 0;\n          }\n          bVar14 = *pbVar11;\n          if (4 < (bVar14 & 7)) {\n            return 0;\n          }\n          if ((1L << (bVar14 & 7) & 0x1dU) == 0) {\n            return 0;\n          }\n        }" { (if_statement "if (bVar15 != 0x52) {\n            if (bVar15 != 0x53) {\n              return 0;\n            }\n            goto LAB_0024b557;\n          }" if (parenthesized_expression "(bVar15 != 0x52)" ( (binary_expression "bVar15 != 0x52" identifier != number_literal) )) (compound_statement "{\n            if (bVar15 != 0x53) {\n              return 0;\n            }\n            goto LAB_0024b557;\n          }" { (if_statement "if (bVar15 != 0x53) {\n              return 0;\n            }" if (parenthesized_expression "(bVar15 != 0x53)" ( (binary_expression "bVar15 != 0x53" identifier != number_literal) )) (compound_statement "{\n              return 0;\n            }" { (return_statement "return 0;" return number_literal ;) })) (goto_statement "goto LAB_0024b557;" goto statement_identifier ;) })) (if_statement "if (param_10 == pbVar11 || (long)param_10 - (long)pbVar11 < 0) {\n            return 0;\n          }" if (parenthesized_expression "(param_10 == pbVar11 || (long)param_10 - (long)pbVar11 < 0)" ( (binary_expression "param_10 == pbVar11 || (long)param_10 - (long)pbVar11 < 0" (binary_expression "param_10 == pbVar11" identifier == identifier) || (binary_expression "(long)param_10 - (long)pbVar11 < 0" (binary_expression "(long)param_10 - (long)pbVar11" (cast_expression "(long)param_10" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) identifier) - (cast_expression "(long)pbVar11" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) identifier)) < number_literal)) )) (compound_statement "{\n            return 0;\n          }" { (return_statement "return 0;" return number_literal ;) })) (expression_statement "bVar14 = *pbVar11;" (assignment_expression "bVar14 = *pbVar11" identifier = (pointer_expression "*pbVar11" * identifier)) ;) (if_statement "if (4 < (bVar14 & 7)) {\n            return 0;\n          }" if (parenthesized_expression "(4 < (bVar14 & 7))" ( (binary_expression "4 < (bVar14 & 7)" number_literal < (parenthesized_expression "(bVar14 & 7)" ( (binary_expression "bVar14 & 7" identifier & number_literal) ))) )) (compound_statement "{\n            return 0;\n          }" { (return_statement "return 0;" return number_literal ;) })) (if_statement "if ((1L << (bVar14 & 7) & 0x1dU) == 0) {\n            return 0;\n          }" if (parenthesized_expression "((1L << (bVar14 & 7) & 0x1dU) == 0)" ( (binary_expression "(1L << (bVar14 & 7) & 0x1dU) == 0" (parenthesized_expression "(1L << (bVar14 & 7) & 0x1dU)" ( (binary_expression "1L << (bVar14 & 7) & 0x1dU" (binary_expression "1L << (bVar14 & 7)" number_literal << (parenthesized_expression "(bVar14 & 7)" ( (binary_expression "bVar14 & 7" identifier & number_literal) ))) & number_literal) )) == number_literal) )) (compound_statement "{\n            return 0;\n          }" { (return_statement "return 0;" return number_literal ;) })) }))) (expression_statement "pbVar11 = pbVar11 + 1;" (assignment_expression "pbVar11 = pbVar11 + 1" identifier = (binary_expression "pbVar11 + 1" identifier + number_literal)) ;) }))) (labeled_statement "LAB_0024b557:\n      __s = __s + 1;" statement_identifier : (expression_statement "__s = __s + 1;" (assignment_expression "__s = __s + 1" identifier = (binary_expression "__s + 1" identifier + number_literal)) ;)) (expression_statement "bVar15 = *__s;" (assignment_expression "bVar15 = *__s" identifier = (pointer_expression "*__s" * identifier)) ;) (expression_statement "bVar16 = bVar14;" (assignment_expression "bVar16 = bVar14" identifier = identifier) ;) }) while (parenthesized_expression "(bVar15 != 0)" ( (binary_expression "bVar15 != 0" identifier != number_literal) )) ;) (if_statement "if (iVar6 == -1) goto LAB_0024b955;" if (parenthesized_expression "(iVar6 == -1)" ( (binary_expression "iVar6 == -1" identifier == number_literal) )) (goto_statement "goto LAB_0024b955;" goto statement_identifier ;)) (expression_statement "iVar3 = FUN_001fab10(param_11,(long)iVar6);" (assignment_expression "iVar3 = FUN_001fab10(param_11,(long)iVar6)" identifier = (call_expression "FUN_001fab10(param_11,(long)iVar6)" identifier (argument_list "(param_11,(long)iVar6)" ( identifier , (cast_expression "(long)iVar6" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) identifier) )))) ;) (if_statement "if (0 < iVar3) {\n      return 0;\n    }" if (parenthesized_expression "(0 < iVar3)" ( (binary_expression "0 < iVar3" number_literal < identifier) )) (compound_statement "{\n      return 0;\n    }" { (return_statement "return 0;" return number_literal ;) })) (expression_statement "lVar8 = FUN_001faa60(param_11);" (assignment_expression "lVar8 = FUN_001faa60(param_11)" identifier = (call_expression "FUN_001faa60(param_11)" identifier (argument_list "(param_11)" ( identifier )))) ;) (if_statement "if (iVar6 != lVar8) {\n      return 0;\n    }" if (parenthesized_expression "(iVar6 != lVar8)" ( (binary_expression "iVar6 != lVar8" identifier != identifier) )) (compound_statement "{\n      return 0;\n    }" { (return_statement "return 0;" return number_literal ;) })) (expression_statement "uVar4 = FUN_001faa80(param_11);" (assignment_expression "uVar4 = FUN_001faa80(param_11)" identifier = (call_expression "FUN_001faa80(param_11)" identifier (argument_list "(param_11)" ( identifier )))) ;) (if_statement "if (uVar4 == 0xffffffff) {\n      return 0;\n    }" if (parenthesized_expression "(uVar4 == 0xffffffff)" ( (binary_expression "uVar4 == 0xffffffff" identifier == number_literal) )) (compound_statement "{\n      return 0;\n    }" { (return_statement "return 0;" return number_literal ;) })) (expression_statement "uVar5 = (**(code **)(*param_2 + 0x118))(param_2);" (assignment_expression "uVar5 = (**(code **)(*param_2 + 0x118))(param_2)" identifier = (call_expression "(**(code **)(*param_2 + 0x118))(param_2)" (parenthesized_expression "(**(code **)(*param_2 + 0x118))" ( (pointer_expression "**(code **)(*param_2 + 0x118)" * (pointer_expression "*(code **)(*param_2 + 0x118)" * (cast_expression "(code **)(*param_2 + 0x118)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(*param_2 + 0x118)" ( (binary_expression "*param_2 + 0x118" (pointer_expression "*param_2" * identifier) + number_literal) ))))) )) (argument_list "(param_2)" ( identifier )))) ;) (if_statement "if (uVar4 < uVar5) {\n      local_cd = '\0';\n      pcVar21 = "";\n      uVar18 = extraout_RDX;\n    }\n    else {\n      uVar18 = param_5 % 0x18;\n      if (param_5 / 0x18 <= (ulong)uVar4) {\n        return 0;\n      }\n      uVar9 = (ulong)*(uint *)(param_4 + (ulong)(uVar4 * 0x18));\n      if (param_7 <= uVar9) {\n        return 0;\n      }\n      pcVar21 = (char *)(param_6 + uVar9);\n    }" if (parenthesized_expression "(uVar4 < uVar5)" ( (binary_expression "uVar4 < uVar5" identifier < identifier) )) (compound_statement "{\n      local_cd = '\0';\n      pcVar21 = "";\n      uVar18 = extraout_RDX;\n    }" { (expression_statement "local_cd = '\0';" (assignment_expression "local_cd = '\0'" identifier = (char_literal "'\0'" ' escape_sequence ')) ;) (expression_statement "pcVar21 = "";" (assignment_expression "pcVar21 = """ identifier = (string_literal """" " ")) ;) (expression_statement "uVar18 = extraout_RDX;" (assignment_expression "uVar18 = extraout_RDX" identifier = identifier) ;) }) (else_clause "else {\n      uVar18 = param_5 % 0x18;\n      if (param_5 / 0x18 <= (ulong)uVar4) {\n        return 0;\n      }\n      uVar9 = (ulong)*(uint *)(param_4 + (ulong)(uVar4 * 0x18));\n      if (param_7 <= uVar9) {\n        return 0;\n      }\n      pcVar21 = (char *)(param_6 + uVar9);\n    }" else (compound_statement "{\n      uVar18 = param_5 % 0x18;\n      if (param_5 / 0x18 <= (ulong)uVar4) {\n        return 0;\n      }\n      uVar9 = (ulong)*(uint *)(param_4 + (ulong)(uVar4 * 0x18));\n      if (param_7 <= uVar9) {\n        return 0;\n      }\n      pcVar21 = (char *)(param_6 + uVar9);\n    }" { (expression_statement "uVar18 = param_5 % 0x18;" (assignment_expression "uVar18 = param_5 % 0x18" identifier = (binary_expression "param_5 % 0x18" identifier % number_literal)) ;) (if_statement "if (param_5 / 0x18 <= (ulong)uVar4) {\n        return 0;\n      }" if (parenthesized_expression "(param_5 / 0x18 <= (ulong)uVar4)" ( (binary_expression "param_5 / 0x18 <= (ulong)uVar4" (binary_expression "param_5 / 0x18" identifier / number_literal) <= (cast_expression "(ulong)uVar4" ( (type_descriptor "ulong" type_identifier) ) identifier)) )) (compound_statement "{\n        return 0;\n      }" { (return_statement "return 0;" return number_literal ;) })) (expression_statement "uVar9 = (ulong)*(uint *)(param_4 + (ulong)(uVar4 * 0x18));" (assignment_expression "uVar9 = (ulong)*(uint *)(param_4 + (ulong)(uVar4 * 0x18))" identifier = (binary_expression "(ulong)*(uint *)(param_4 + (ulong)(uVar4 * 0x18))" (parenthesized_expression "(ulong)" ( identifier )) * (cast_expression "(uint *)(param_4 + (ulong)(uVar4 * 0x18))" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_4 + (ulong)(uVar4 * 0x18))" ( (binary_expression "param_4 + (ulong)(uVar4 * 0x18)" identifier + (call_expression "(ulong)(uVar4 * 0x18)" (parenthesized_expression "(ulong)" ( identifier )) (argument_list "(uVar4 * 0x18)" ( (binary_expression "uVar4 * 0x18" identifier * number_literal) )))) ))))) ;) (if_statement "if (param_7 <= uVar9) {\n        return 0;\n      }" if (parenthesized_expression "(param_7 <= uVar9)" ( (binary_expression "param_7 <= uVar9" identifier <= identifier) )) (compound_statement "{\n        return 0;\n      }" { (return_statement "return 0;" return number_literal ;) })) (expression_statement "pcVar21 = (char *)(param_6 + uVar9);" (assignment_expression "pcVar21 = (char *)(param_6 + uVar9)" identifier = (cast_expression "(char *)(param_6 + uVar9)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_6 + uVar9)" ( (binary_expression "param_6 + uVar9" identifier + identifier) )))) ;) }))) (expression_statement "iVar6 = FUN_001fab10(param_11,(long)(iVar6 + 1),uVar18);" (assignment_expression "iVar6 = FUN_001fab10(param_11,(long)(iVar6 + 1),uVar18)" identifier = (call_expression "FUN_001fab10(param_11,(long)(iVar6 + 1),uVar18)" identifier (argument_list "(param_11,(long)(iVar6 + 1),uVar18)" ( identifier , (cast_expression "(long)(iVar6 + 1)" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) (parenthesized_expression "(iVar6 + 1)" ( (binary_expression "iVar6 + 1" identifier + number_literal) ))) , identifier )))) ;) (if_statement "if (iVar6 != 1) {\n                    \n      FUN_0016cdf0("../../gold/ehframe.cc",0x3af,"read_cie");\n    }" if (parenthesized_expression "(iVar6 != 1)" ( (binary_expression "iVar6 != 1" identifier != number_literal) )) (compound_statement "{\n                    \n      FUN_0016cdf0("../../gold/ehframe.cc",0x3af,"read_cie");\n    }" { (expression_statement "FUN_0016cdf0("../../gold/ehframe.cc",0x3af,"read_cie");" (call_expression "FUN_0016cdf0("../../gold/ehframe.cc",0x3af,"read_cie")" identifier (argument_list "("../../gold/ehframe.cc",0x3af,"read_cie")" ( (string_literal ""../../gold/ehframe.cc"" " string_content ") , number_literal , (string_literal ""read_cie"" " string_content ") ))) ;) })) }))) (expression_statement "iVar6 = FUN_001fab10(param_11,(long)param_10 - param_8);" (assignment_expression "iVar6 = FUN_001fab10(param_11,(long)param_10 - param_8)" identifier = (call_expression "FUN_001fab10(param_11,(long)param_10 - param_8)" identifier (argument_list "(param_11,(long)param_10 - param_8)" ( identifier , (binary_expression "(long)param_10 - param_8" (cast_expression "(long)param_10" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) identifier) - identifier) )))) ;) (if_statement "if (0 < iVar6) {\n    return 0;\n  }" if (parenthesized_expression "(0 < iVar6)" ( (binary_expression "0 < iVar6" number_literal < identifier) )) (compound_statement "{\n    return 0;\n  }" { (return_statement "return 0;" return number_literal ;) })) (expression_statement "lVar8 = (long)(param_9 + -8) - param_8;" (assignment_expression "lVar8 = (long)(param_9 + -8) - param_8" identifier = (binary_expression "(long)(param_9 + -8) - param_8" (cast_expression "(long)(param_9 + -8)" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) (parenthesized_expression "(param_9 + -8)" ( (binary_expression "param_9 + -8" identifier + number_literal) ))) - identifier)) ;) (expression_statement "pcVar19 = (char *)0xffffffffffffffff;" (assignment_expression "pcVar19 = (char *)0xffffffffffffffff" identifier = (cast_expression "(char *)0xffffffffffffffff" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (expression_statement "local_98[0] = local_88;" (assignment_expression "local_98[0] = local_88" (subscript_expression "local_98[0]" identifier [ number_literal ]) = identifier) ;) (if_statement "if (pcVar21 != (char *)0x0) {\n    uVar18 = 0xffffffffffffffff;\n    pcVar19 = pcVar21;\n    do {\n      if (uVar18 == 0) break;\n      uVar18 = uVar18 - 1;\n      cVar2 = *pcVar19;\n      pcVar19 = pcVar19 + (ulong)bVar22 * -2 + 1;\n    } while (cVar2 != '\0');\n    pcVar19 = pcVar21 + (~uVar18 - 1);\n  }" if (parenthesized_expression "(pcVar21 != (char *)0x0)" ( (binary_expression "pcVar21 != (char *)0x0" identifier != (cast_expression "(char *)0x0" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n    uVar18 = 0xffffffffffffffff;\n    pcVar19 = pcVar21;\n    do {\n      if (uVar18 == 0) break;\n      uVar18 = uVar18 - 1;\n      cVar2 = *pcVar19;\n      pcVar19 = pcVar19 + (ulong)bVar22 * -2 + 1;\n    } while (cVar2 != '\0');\n    pcVar19 = pcVar21 + (~uVar18 - 1);\n  }" { (expression_statement "uVar18 = 0xffffffffffffffff;" (assignment_expression "uVar18 = 0xffffffffffffffff" identifier = number_literal) ;) (expression_statement "pcVar19 = pcVar21;" (assignment_expression "pcVar19 = pcVar21" identifier = identifier) ;) (do_statement "do {\n      if (uVar18 == 0) break;\n      uVar18 = uVar18 - 1;\n      cVar2 = *pcVar19;\n      pcVar19 = pcVar19 + (ulong)bVar22 * -2 + 1;\n    } while (cVar2 != '\0');" do (compound_statement "{\n      if (uVar18 == 0) break;\n      uVar18 = uVar18 - 1;\n      cVar2 = *pcVar19;\n      pcVar19 = pcVar19 + (ulong)bVar22 * -2 + 1;\n    }" { (if_statement "if (uVar18 == 0) break;" if (parenthesized_expression "(uVar18 == 0)" ( (binary_expression "uVar18 == 0" identifier == number_literal) )) (break_statement "break;" break ;)) (expression_statement "uVar18 = uVar18 - 1;" (assignment_expression "uVar18 = uVar18 - 1" identifier = (binary_expression "uVar18 - 1" identifier - number_literal)) ;) (expression_statement "cVar2 = *pcVar19;" (assignment_expression "cVar2 = *pcVar19" identifier = (pointer_expression "*pcVar19" * identifier)) ;) (expression_statement "pcVar19 = pcVar19 + (ulong)bVar22 * -2 + 1;" (assignment_expression "pcVar19 = pcVar19 + (ulong)bVar22 * -2 + 1" identifier = (binary_expression "pcVar19 + (ulong)bVar22 * -2 + 1" (binary_expression "pcVar19 + (ulong)bVar22 * -2" identifier + (binary_expression "(ulong)bVar22 * -2" (cast_expression "(ulong)bVar22" ( (type_descriptor "ulong" type_identifier) ) identifier) * number_literal)) + number_literal)) ;) }) while (parenthesized_expression "(cVar2 != '\0')" ( (binary_expression "cVar2 != '\0'" identifier != (char_literal "'\0'" ' escape_sequence ')) )) ;) (expression_statement "pcVar19 = pcVar21 + (~uVar18 - 1);" (assignment_expression "pcVar19 = pcVar21 + (~uVar18 - 1)" identifier = (binary_expression "pcVar21 + (~uVar18 - 1)" identifier + (parenthesized_expression "(~uVar18 - 1)" ( (binary_expression "~uVar18 - 1" (unary_expression "~uVar18" ~ identifier) - number_literal) )))) ;) })) (expression_statement "local_b8 = param_2;" (assignment_expression "local_b8 = param_2" identifier = identifier) ;) (expression_statement "local_b0 = param_3;" (assignment_expression "local_b0 = param_3" identifier = identifier) ;) (expression_statement "local_a8 = lVar8;" (assignment_expression "local_a8 = lVar8" identifier = identifier) ;) (expression_statement "local_a0 = bVar14;" (assignment_expression "local_a0 = bVar14" identifier = identifier) ;) (expression_statement "FUN_0015cbe0(local_98,pcVar21,pcVar19);" (call_expression "FUN_0015cbe0(local_98,pcVar21,pcVar19)" identifier (argument_list "(local_98,pcVar21,pcVar19)" ( identifier , identifier , identifier ))) ;) (expression_statement "local_60[0] = local_50;" (assignment_expression "local_60[0] = local_50" (subscript_expression "local_60[0]" identifier [ number_literal ]) = identifier) ;) (expression_statement "local_78 = 0;" (assignment_expression "local_78 = 0" identifier = number_literal) ;) (expression_statement "local_70 = 0;" (assignment_expression "local_70 = 0" identifier = number_literal) ;) (expression_statement "local_68 = 0;" (assignment_expression "local_68 = 0" identifier = number_literal) ;) (expression_statement "FUN_0015cbe0(local_60,param_9,param_10);" (call_expression "FUN_0015cbe0(local_60,param_9,param_10)" identifier (argument_list "(local_60,param_9,param_10)" ( identifier , identifier , identifier ))) ;) (if_statement "if (local_cd != '\0') {\n    local_c8 = &local_b8;\n    lVar10 = FUN_00248330(param_1 + 0x40);\n    if (lVar10 == param_1 + 0x48) {\n      plVar1 = (long *)param_13[1];\n      for (plVar20 = (long *)*param_13; plVar20 != plVar1; plVar20 = plVar20 + 2) {\n        pplVar12 = (long **)*plVar20;\n        cVar2 = FUN_002476d0(pplVar12,&local_b8);\n        if (cVar2 != '\0') goto LAB_0024b77c;\n      }\n    }\n    else {\n      pplVar12 = *(long ***)(lVar10 + 0x20);\nLAB_0024b77c:\n      if (pplVar12 != (long **)0x0) {\n                    \n        FUN_0019a930(param_2,param_1,param_3,lVar8,(long)param_10 - (long)(param_9 + -8),\n                     0xffffffffffffffff);\n        goto LAB_0024b7a5;\n      }\n    }\n  }" if (parenthesized_expression "(local_cd != '\0')" ( (binary_expression "local_cd != '\0'" identifier != (char_literal "'\0'" ' escape_sequence ')) )) (compound_statement "{\n    local_c8 = &local_b8;\n    lVar10 = FUN_00248330(param_1 + 0x40);\n    if (lVar10 == param_1 + 0x48) {\n      plVar1 = (long *)param_13[1];\n      for (plVar20 = (long *)*param_13; plVar20 != plVar1; plVar20 = plVar20 + 2) {\n        pplVar12 = (long **)*plVar20;\n        cVar2 = FUN_002476d0(pplVar12,&local_b8);\n        if (cVar2 != '\0') goto LAB_0024b77c;\n      }\n    }\n    else {\n      pplVar12 = *(long ***)(lVar10 + 0x20);\nLAB_0024b77c:\n      if (pplVar12 != (long **)0x0) {\n                    \n        FUN_0019a930(param_2,param_1,param_3,lVar8,(long)param_10 - (long)(param_9 + -8),\n                     0xffffffffffffffff);\n        goto LAB_0024b7a5;\n      }\n    }\n  }" { (expression_statement "local_c8 = &local_b8;" (assignment_expression "local_c8 = &local_b8" identifier = (pointer_expression "&local_b8" & identifier)) ;) (expression_statement "lVar10 = FUN_00248330(param_1 + 0x40);" (assignment_expression "lVar10 = FUN_00248330(param_1 + 0x40)" identifier = (call_expression "FUN_00248330(param_1 + 0x40)" identifier (argument_list "(param_1 + 0x40)" ( (binary_expression "param_1 + 0x40" identifier + number_literal) )))) ;) (if_statement "if (lVar10 == param_1 + 0x48) {\n      plVar1 = (long *)param_13[1];\n      for (plVar20 = (long *)*param_13; plVar20 != plVar1; plVar20 = plVar20 + 2) {\n        pplVar12 = (long **)*plVar20;\n        cVar2 = FUN_002476d0(pplVar12,&local_b8);\n        if (cVar2 != '\0') goto LAB_0024b77c;\n      }\n    }\n    else {\n      pplVar12 = *(long ***)(lVar10 + 0x20);\nLAB_0024b77c:\n      if (pplVar12 != (long **)0x0) {\n                    \n        FUN_0019a930(param_2,param_1,param_3,lVar8,(long)param_10 - (long)(param_9 + -8),\n                     0xffffffffffffffff);\n        goto LAB_0024b7a5;\n      }\n    }" if (parenthesized_expression "(lVar10 == param_1 + 0x48)" ( (binary_expression "lVar10 == param_1 + 0x48" identifier == (binary_expression "param_1 + 0x48" identifier + number_literal)) )) (compound_statement "{\n      plVar1 = (long *)param_13[1];\n      for (plVar20 = (long *)*param_13; plVar20 != plVar1; plVar20 = plVar20 + 2) {\n        pplVar12 = (long **)*plVar20;\n        cVar2 = FUN_002476d0(pplVar12,&local_b8);\n        if (cVar2 != '\0') goto LAB_0024b77c;\n      }\n    }" { (expression_statement "plVar1 = (long *)param_13[1];" (assignment_expression "plVar1 = (long *)param_13[1]" identifier = (cast_expression "(long *)param_13[1]" ( (type_descriptor "long *" (sized_type_specifier "long" long) (abstract_pointer_declarator "*" *)) ) (subscript_expression "param_13[1]" identifier [ number_literal ]))) ;) (for_statement "for (plVar20 = (long *)*param_13; plVar20 != plVar1; plVar20 = plVar20 + 2) {\n        pplVar12 = (long **)*plVar20;\n        cVar2 = FUN_002476d0(pplVar12,&local_b8);\n        if (cVar2 != '\0') goto LAB_0024b77c;\n      }" for ( (assignment_expression "plVar20 = (long *)*param_13" identifier = (cast_expression "(long *)*param_13" ( (type_descriptor "long *" (sized_type_specifier "long" long) (abstract_pointer_declarator "*" *)) ) (pointer_expression "*param_13" * identifier))) ; (binary_expression "plVar20 != plVar1" identifier != identifier) ; (assignment_expression "plVar20 = plVar20 + 2" identifier = (binary_expression "plVar20 + 2" identifier + number_literal)) ) (compound_statement "{\n        pplVar12 = (long **)*plVar20;\n        cVar2 = FUN_002476d0(pplVar12,&local_b8);\n        if (cVar2 != '\0') goto LAB_0024b77c;\n      }" { (expression_statement "pplVar12 = (long **)*plVar20;" (assignment_expression "pplVar12 = (long **)*plVar20" identifier = (cast_expression "(long **)*plVar20" ( (type_descriptor "long **" (sized_type_specifier "long" long) (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (pointer_expression "*plVar20" * identifier))) ;) (expression_statement "cVar2 = FUN_002476d0(pplVar12,&local_b8);" (assignment_expression "cVar2 = FUN_002476d0(pplVar12,&local_b8)" identifier = (call_expression "FUN_002476d0(pplVar12,&local_b8)" identifier (argument_list "(pplVar12,&local_b8)" ( identifier , (pointer_expression "&local_b8" & identifier) )))) ;) (if_statement "if (cVar2 != '\0') goto LAB_0024b77c;" if (parenthesized_expression "(cVar2 != '\0')" ( (binary_expression "cVar2 != '\0'" identifier != (char_literal "'\0'" ' escape_sequence ')) )) (goto_statement "goto LAB_0024b77c;" goto statement_identifier ;)) })) }) (else_clause "else {\n      pplVar12 = *(long ***)(lVar10 + 0x20);\nLAB_0024b77c:\n      if (pplVar12 != (long **)0x0) {\n                    \n        FUN_0019a930(param_2,param_1,param_3,lVar8,(long)param_10 - (long)(param_9 + -8),\n                     0xffffffffffffffff);\n        goto LAB_0024b7a5;\n      }\n    }" else (compound_statement "{\n      pplVar12 = *(long ***)(lVar10 + 0x20);\nLAB_0024b77c:\n      if (pplVar12 != (long **)0x0) {\n                    \n        FUN_0019a930(param_2,param_1,param_3,lVar8,(long)param_10 - (long)(param_9 + -8),\n                     0xffffffffffffffff);\n        goto LAB_0024b7a5;\n      }\n    }" { (expression_statement "pplVar12 = *(long ***)(lVar10 + 0x20);" (assignment_expression "pplVar12 = *(long ***)(lVar10 + 0x20)" identifier = (pointer_expression "*(long ***)(lVar10 + 0x20)" * (cast_expression "(long ***)(lVar10 + 0x20)" ( (type_descriptor "long ***" (sized_type_specifier "long" long) (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *)))) ) (parenthesized_expression "(lVar10 + 0x20)" ( (binary_expression "lVar10 + 0x20" identifier + number_literal) ))))) ;) (labeled_statement "LAB_0024b77c:\n      if (pplVar12 != (long **)0x0) {\n                    \n        FUN_0019a930(param_2,param_1,param_3,lVar8,(long)param_10 - (long)(param_9 + -8),\n                     0xffffffffffffffff);\n        goto LAB_0024b7a5;\n      }" statement_identifier : (if_statement "if (pplVar12 != (long **)0x0) {\n                    \n        FUN_0019a930(param_2,param_1,param_3,lVar8,(long)param_10 - (long)(param_9 + -8),\n                     0xffffffffffffffff);\n        goto LAB_0024b7a5;\n      }" if (parenthesized_expression "(pplVar12 != (long **)0x0)" ( (binary_expression "pplVar12 != (long **)0x0" identifier != (cast_expression "(long **)0x0" ( (type_descriptor "long **" (sized_type_specifier "long" long) (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) number_literal)) )) (compound_statement "{\n                    \n        FUN_0019a930(param_2,param_1,param_3,lVar8,(long)param_10 - (long)(param_9 + -8),\n                     0xffffffffffffffff);\n        goto LAB_0024b7a5;\n      }" { (expression_statement "FUN_0019a930(param_2,param_1,param_3,lVar8,(long)param_10 - (long)(param_9 + -8),\n                     0xffffffffffffffff);" (call_expression "FUN_0019a930(param_2,param_1,param_3,lVar8,(long)param_10 - (long)(param_9 + -8),\n                     0xffffffffffffffff)" identifier (argument_list "(param_2,param_1,param_3,lVar8,(long)param_10 - (long)(param_9 + -8),\n                     0xffffffffffffffff)" ( identifier , identifier , identifier , identifier , (binary_expression "(long)param_10 - (long)(param_9 + -8)" (cast_expression "(long)param_10" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) identifier) - (cast_expression "(long)(param_9 + -8)" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) (parenthesized_expression "(param_9 + -8)" ( (binary_expression "param_9 + -8" identifier + number_literal) )))) , number_literal ))) ;) (goto_statement "goto LAB_0024b7a5;" goto statement_identifier ;) }))) }))) })) (expression_statement "pplVar12 = (long **)FUN_00275550(0x78);" (assignment_expression "pplVar12 = (long **)FUN_00275550(0x78)" identifier = (cast_expression "(long **)FUN_00275550(0x78)" ( (type_descriptor "long **" (sized_type_specifier "long" long) (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (call_expression "FUN_00275550(0x78)" identifier (argument_list "(0x78)" ( number_literal ))))) ;) (expression_statement "FUN_00249730(pplVar12,&local_b8);" (call_expression "FUN_00249730(pplVar12,&local_b8)" identifier (argument_list "(pplVar12,&local_b8)" ( identifier , (pointer_expression "&local_b8" & identifier) ))) ;) (expression_statement "local_c0 = (long **)CONCAT71(local_c0._1_7_,local_cd);" (assignment_expression "local_c0 = (long **)CONCAT71(local_c0._1_7_,local_cd)" identifier = (cast_expression "(long **)CONCAT71(local_c0._1_7_,local_cd)" ( (type_descriptor "long **" (sized_type_specifier "long" long) (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (call_expression "CONCAT71(local_c0._1_7_,local_cd)" identifier (argument_list "(local_c0._1_7_,local_cd)" ( (field_expression "local_c0._1_7_" identifier . field_identifier) , identifier ))))) ;) (expression_statement "local_c8 = pplVar12;" (assignment_expression "local_c8 = pplVar12" identifier = identifier) ;) (expression_statement "FUN_0024a870(param_13);" (call_expression "FUN_0024a870(param_13)" identifier (argument_list "(param_13)" ( identifier ))) ;) (labeled_statement "LAB_0024b7a5:\n  local_f8 = &local_c8;" statement_identifier : (expression_statement "local_f8 = &local_c8;" (assignment_expression "local_f8 = &local_c8" identifier = (pointer_expression "&local_c8" & identifier)) ;)) (expression_statement "local_c8 = (long **)(param_9 + -param_8);" (assignment_expression "local_c8 = (long **)(param_9 + -param_8)" identifier = (cast_expression "(long **)(param_9 + -param_8)" ( (type_descriptor "long **" (sized_type_specifier "long" long) (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(param_9 + -param_8)" ( (binary_expression "param_9 + -param_8" identifier + (unary_expression "-param_8" - identifier)) )))) ;) (expression_statement "local_c0 = pplVar12;" (assignment_expression "local_c0 = pplVar12" identifier = identifier) ;) (expression_statement "FUN_0024a340(param_12,local_f8);" (call_expression "FUN_0024a340(param_12,local_f8)" identifier (argument_list "(param_12,local_f8)" ( identifier , identifier ))) ;) (expression_statement "FUN_00247330(&local_b8);" (call_expression "FUN_00247330(&local_b8)" identifier (argument_list "(&local_b8)" ( (pointer_expression "&local_b8" & identifier) ))) ;) (return_statement "return 1;" return number_literal ;) })))
(translation_unit (function_definition TYPE (function_declarator IDENT (parameter_list ( (parameter_declaration (sized_type_specifier long) IDENT) , (parameter_declaration (sized_type_specifier long) (pointer_declarator * IDENT)) , (parameter_declaration TYPE IDENT) , (parameter_declaration (sized_type_specifier long) IDENT) , (parameter_declaration TYPE IDENT) , (parameter_declaration (sized_type_specifier long) IDENT) , (parameter_declaration TYPE IDENT) , (parameter_declaration (sized_type_specifier long) IDENT) , (parameter_declaration TYPE (pointer_declarator * IDENT)) , (parameter_declaration TYPE (pointer_declarator * IDENT)) , (parameter_declaration TYPE IDENT) , (parameter_declaration TYPE IDENT) , (parameter_declaration TYPE (pointer_declarator * IDENT)) ))) (compound_statement { (declaration (sized_type_specifier long) (pointer_declarator * IDENT) ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration (sized_type_specifier long) IDENT ;) (declaration TYPE IDENT ;) (declaration (sized_type_specifier long) IDENT ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration (sized_type_specifier long) (pointer_declarator * (pointer_declarator * IDENT)) ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration (sized_type_specifier long) (pointer_declarator * IDENT) ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE IDENT ;) (declaration (sized_type_specifier long) (pointer_declarator * (pointer_declarator * (pointer_declarator * IDENT))) ;) (declaration TYPE IDENT ;) (declaration (sized_type_specifier long) (pointer_declarator * (pointer_declarator * IDENT)) ;) (declaration (sized_type_specifier long) (pointer_declarator * (pointer_declarator * IDENT)) ;) (declaration (sized_type_specifier long) (pointer_declarator * IDENT) ;) (declaration TYPE IDENT ;) (declaration (sized_type_specifier long) IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE (pointer_declarator * (array_declarator IDENT [ LIT ])) ;) (declaration TYPE (array_declarator IDENT [ LIT ]) ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE (pointer_declarator * (array_declarator IDENT [ LIT ])) ;) (declaration TYPE (array_declarator IDENT [ LIT ]) ;) (expression_statement (assignment_expression IDENT = LIT) ;) (if_statement if (parenthesized_expression ( (binary_expression (binary_expression IDENT == IDENT) || (binary_expression (binary_expression (cast_expression ( (type_descriptor (sized_type_specifier long)) ) IDENT) - (cast_expression ( (type_descriptor (sized_type_specifier long)) ) IDENT)) < LIT)) )) (compound_statement { (return_statement return LIT ;) })) (expression_statement (assignment_expression IDENT = (pointer_expression * IDENT)) ;) (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression IDENT & LIT) )) != LIT) )) (compound_statement { (return_statement return LIT ;) })) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( IDENT , LIT , (binary_expression (cast_expression ( (type_descriptor (sized_type_specifier long)) ) IDENT) - (cast_expression ( (type_descriptor (sized_type_specifier long)) ) IDENT)) )))) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT == (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT)) )) (compound_statement { (return_statement return LIT ;) })) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor (sized_type_specifier long)) ) IDENT) + LIT) )))) ;) (expression_statement (assignment_expression IDENT = (char_literal ' escape_sequence ')) ;) (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression (subscript_expression IDENT [ LIT ]) == LIT) )) && (parenthesized_expression ( (binary_expression (subscript_expression IDENT [ LIT ]) == LIT) ))) )) (compound_statement { (if_statement if (parenthesized_expression ( (binary_expression (subscript_expression IDENT [ LIT ]) != LIT) )) (compound_statement { (return_statement return LIT ;) })) (if_statement if (parenthesized_expression ( (binary_expression (binary_expression (cast_expression ( (type_descriptor (sized_type_specifier long)) ) IDENT) - (cast_expression ( (type_descriptor (sized_type_specifier long)) ) IDENT)) < LIT) )) (compound_statement { (return_statement return LIT ;) })) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor (sized_type_specifier long)) ) IDENT) + LIT) )))) ;) (expression_statement (assignment_expression IDENT = (char_literal ' escape_sequence ')) ;) })) (if_statement if (parenthesized_expression ( (binary_expression IDENT <= IDENT) )) (compound_statement { (return_statement return LIT ;) })) (while_statement while (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) (pointer_expression * IDENT)) < (char_literal ' escape_sequence ')) )) (compound_statement { (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT == IDENT) )) (compound_statement { (return_statement return LIT ;) })) })) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT <= IDENT) )) (compound_statement { (return_statement return LIT ;) })) (expression_statement (assignment_expression IDENT = (subscript_expression IDENT [ LIT ])) ;) (while_statement while (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) < (char_literal ' escape_sequence ')) )) (compound_statement { (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT == IDENT) )) (compound_statement { (return_statement return LIT ;) })) (expression_statement (assignment_expression IDENT = (pointer_expression * IDENT)) ;) })) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT == LIT) )) (compound_statement { (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) (if_statement if (parenthesized_expression ( (binary_expression (binary_expression IDENT == IDENT) || (binary_expression (binary_expression (cast_expression ( (type_descriptor (sized_type_specifier long)) ) IDENT) - (cast_expression ( (type_descriptor (sized_type_specifier long)) ) IDENT)) < LIT)) )) (compound_statement { (return_statement return LIT ;) })) }) (else_clause else (compound_statement { (if_statement if (parenthesized_expression ( (binary_expression IDENT <= IDENT) )) (compound_statement { (return_statement return LIT ;) })) (expression_statement (assignment_expression IDENT = (subscript_expression IDENT [ LIT ])) ;) (while_statement while (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) < (char_literal ' escape_sequence ')) )) (compound_statement { (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT == IDENT) )) (compound_statement { (return_statement return LIT ;) })) (expression_statement (assignment_expression IDENT = (pointer_expression * IDENT)) ;) })) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) }))) (expression_statement (assignment_expression IDENT = (pointer_expression * IDENT)) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT == LIT) )) (compound_statement { (if_statement if (parenthesized_expression ( (binary_expression IDENT <= IDENT) )) (compound_statement { (return_statement return LIT ;) })) (while_statement while (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) (pointer_expression * IDENT)) < (char_literal ' escape_sequence ')) )) (compound_statement { (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT == IDENT) )) (compound_statement { (return_statement return LIT ;) })) })) (expression_statement (assignment_expression IDENT = (subscript_expression IDENT [ LIT ])) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT != LIT) )) (compound_statement { (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) (goto_statement goto statement_identifier ;) })) (labeled_statement statement_identifier : (expression_statement (assignment_expression IDENT = (string_literal " ")) ;)) }) (else_clause else (compound_statement { (if_statement if (parenthesized_expression ( (binary_expression IDENT == LIT) )) (goto_statement goto statement_identifier ;)) (labeled_statement statement_identifier : (expression_statement (assignment_expression IDENT = LIT) ;)) (expression_statement (assignment_expression IDENT = LIT) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (do_statement do (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 (binary_expression IDENT == IDENT) || (binary_expression (binary_expression (cast_expression ( (type_descriptor (sized_type_specifier long)) ) IDENT) - (cast_expression ( (type_descriptor (sized_type_specifier long)) ) IDENT)) < LIT)) )) (compound_statement { (return_statement return LIT ;) })) (expression_statement (assignment_expression IDENT = (pointer_expression * IDENT)) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression IDENT & LIT) )) == LIT) )) (compound_statement { (return_statement return LIT ;) })) (expression_statement (assignment_expression IDENT = (binary_expression IDENT & LIT)) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT == LIT) )) (compound_statement { (expression_statement (assignment_expression IDENT = 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 { (return_statement return LIT ;) })) }) (else_clause else (compound_statement { (if_statement if (parenthesized_expression ( (binary_expression IDENT == LIT) )) (compound_statement { (expression_statement (assignment_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 = LIT) ;) }))) (labeled_statement statement_identifier : (expression_statement (assignment_expression IDENT = (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) - (cast_expression ( (type_descriptor TYPE) ) IDENT))) ;)) (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 = (binary_expression (unary_expression - IDENT) & (binary_expression (parenthesized_expression ( (binary_expression IDENT - LIT) )) + (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) - (cast_expression ( (type_descriptor TYPE) ) IDENT)) ))))) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT < IDENT) )) (compound_statement { (return_statement return LIT ;) })) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + IDENT)) ;) (expression_statement (assignment_expression IDENT = (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) - (cast_expression ( (type_descriptor TYPE) ) IDENT))) ;) })) (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 < IDENT) )) (compound_statement { (return_statement return LIT ;) })) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + IDENT)) ;) }) (else_clause else (compound_statement { (if_statement if (parenthesized_expression ( (binary_expression IDENT < LIT) )) (compound_statement { (if_statement if (parenthesized_expression ( (binary_expression IDENT != LIT) )) (compound_statement { (return_statement return LIT ;) })) (if_statement if (parenthesized_expression ( (binary_expression (binary_expression IDENT == IDENT) || (binary_expression (binary_expression (cast_expression ( (type_descriptor (sized_type_specifier long)) ) IDENT) - (cast_expression ( (type_descriptor (sized_type_specifier long)) ) IDENT)) < LIT)) )) (compound_statement { (return_statement return 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 { (return_statement return LIT ;) })) (goto_statement goto statement_identifier ;) })) (if_statement if (parenthesized_expression ( (binary_expression (binary_expression IDENT == IDENT) || (binary_expression (binary_expression (cast_expression ( (type_descriptor (sized_type_specifier long)) ) IDENT) - (cast_expression ( (type_descriptor (sized_type_specifier long)) ) IDENT)) < LIT)) )) (compound_statement { (return_statement return LIT ;) })) (expression_statement (assignment_expression IDENT = (pointer_expression * IDENT)) ;) (if_statement if (parenthesized_expression ( (binary_expression LIT < (parenthesized_expression ( (binary_expression IDENT & LIT) ))) )) (compound_statement { (return_statement return LIT ;) })) (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression (binary_expression LIT << (parenthesized_expression ( (binary_expression IDENT & LIT) ))) & LIT) )) == LIT) )) (compound_statement { (return_statement return LIT ;) })) }))) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) }))) (labeled_statement statement_identifier : (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;)) (expression_statement (assignment_expression IDENT = (pointer_expression * IDENT)) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) }) while (parenthesized_expression ( (binary_expression IDENT != LIT) )) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT == LIT) )) (goto_statement goto statement_identifier ;)) (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( IDENT , (cast_expression ( (type_descriptor (sized_type_specifier long)) ) IDENT) )))) ;) (if_statement if (parenthesized_expression ( (binary_expression LIT < IDENT) )) (compound_statement { (return_statement return LIT ;) })) (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( IDENT )))) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT != IDENT) )) (compound_statement { (return_statement return LIT ;) })) (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( IDENT )))) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT == LIT) )) (compound_statement { (return_statement return LIT ;) })) (expression_statement (assignment_expression IDENT = (call_expression (parenthesized_expression ( (pointer_expression * (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression (pointer_expression * IDENT) + LIT) ))))) )) (argument_list ( IDENT )))) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT < IDENT) )) (compound_statement { (expression_statement (assignment_expression IDENT = (char_literal ' escape_sequence ')) ;) (expression_statement (assignment_expression IDENT = (string_literal " ")) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) }) (else_clause else (compound_statement { (expression_statement (assignment_expression IDENT = (binary_expression IDENT % LIT)) ;) (if_statement if (parenthesized_expression ( (binary_expression (binary_expression IDENT / LIT) <= (cast_expression ( (type_descriptor TYPE) ) IDENT)) )) (compound_statement { (return_statement return LIT ;) })) (expression_statement (assignment_expression IDENT = (binary_expression (parenthesized_expression ( IDENT )) * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + (call_expression (parenthesized_expression ( IDENT )) (argument_list ( (binary_expression IDENT * LIT) )))) ))))) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT <= IDENT) )) (compound_statement { (return_statement return LIT ;) })) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + IDENT) )))) ;) }))) (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( IDENT , (cast_expression ( (type_descriptor (sized_type_specifier long)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))) , IDENT )))) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT != LIT) )) (compound_statement { (expression_statement (call_expression IDENT (argument_list ( (string_literal " string_content ") , LIT , (string_literal " string_content ") ))) ;) })) }))) (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( IDENT , (binary_expression (cast_expression ( (type_descriptor (sized_type_specifier long)) ) IDENT) - IDENT) )))) ;) (if_statement if (parenthesized_expression ( (binary_expression LIT < IDENT) )) (compound_statement { (return_statement return LIT ;) })) (expression_statement (assignment_expression IDENT = (binary_expression (cast_expression ( (type_descriptor (sized_type_specifier long)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))) - IDENT)) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT)) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = IDENT) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT != (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT)) )) (compound_statement { (expression_statement (assignment_expression IDENT = LIT) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (do_statement do (compound_statement { (if_statement if (parenthesized_expression ( (binary_expression IDENT == LIT) )) (break_statement break ;)) (expression_statement (assignment_expression IDENT = (binary_expression IDENT - LIT)) ;) (expression_statement (assignment_expression IDENT = (pointer_expression * IDENT)) ;) (expression_statement (assignment_expression IDENT = (binary_expression (binary_expression IDENT + (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) * LIT)) + LIT)) ;) }) while (parenthesized_expression ( (binary_expression IDENT != (char_literal ' escape_sequence ')) )) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + (parenthesized_expression ( (binary_expression (unary_expression ~ IDENT) - LIT) )))) ;) })) (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (call_expression IDENT (argument_list ( IDENT , IDENT , IDENT ))) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = IDENT) ;) (expression_statement (assignment_expression IDENT = LIT) ;) (expression_statement (assignment_expression IDENT = LIT) ;) (expression_statement (assignment_expression IDENT = LIT) ;) (expression_statement (call_expression IDENT (argument_list ( IDENT , IDENT , IDENT ))) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT != (char_literal ' escape_sequence ')) )) (compound_statement { (expression_statement (assignment_expression IDENT = (pointer_expression & IDENT)) ;) (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( (binary_expression IDENT + LIT) )))) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT == (binary_expression IDENT + LIT)) )) (compound_statement { (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor (sized_type_specifier long) (abstract_pointer_declarator *)) ) (subscript_expression IDENT [ LIT ]))) ;) (for_statement for ( (assignment_expression IDENT = (cast_expression ( (type_descriptor (sized_type_specifier long) (abstract_pointer_declarator *)) ) (pointer_expression * IDENT))) ; (binary_expression IDENT != IDENT) ; (assignment_expression IDENT = (binary_expression IDENT + LIT)) ) (compound_statement { (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor (sized_type_specifier long) (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (pointer_expression * IDENT))) ;) (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( IDENT , (pointer_expression & IDENT) )))) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT != (char_literal ' escape_sequence ')) )) (goto_statement goto statement_identifier ;)) })) }) (else_clause else (compound_statement { (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor (sized_type_specifier long) (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator *)))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) (labeled_statement statement_identifier : (if_statement if (parenthesized_expression ( (binary_expression IDENT != (cast_expression ( (type_descriptor (sized_type_specifier long) (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) LIT)) )) (compound_statement { (expression_statement (call_expression IDENT (argument_list ( IDENT , IDENT , IDENT , IDENT , (binary_expression (cast_expression ( (type_descriptor (sized_type_specifier long)) ) IDENT) - (cast_expression ( (type_descriptor (sized_type_specifier long)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) , LIT ))) ;) (goto_statement goto statement_identifier ;) }))) }))) })) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor (sized_type_specifier long) (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (call_expression IDENT (argument_list ( LIT ))))) ;) (expression_statement (call_expression IDENT (argument_list ( IDENT , (pointer_expression & IDENT) ))) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor (sized_type_specifier long) (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (call_expression IDENT (argument_list ( (field_expression IDENT . field_identifier) , IDENT ))))) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (call_expression IDENT (argument_list ( IDENT ))) ;) (labeled_statement statement_identifier : (expression_statement (assignment_expression IDENT = (pointer_expression & IDENT)) ;)) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor (sized_type_specifier long) (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + (unary_expression - IDENT)) )))) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (call_expression IDENT (argument_list ( IDENT , IDENT ))) ;) (expression_statement (call_expression IDENT (argument_list ( (pointer_expression & IDENT) ))) ;) (return_statement return LIT ;) })))
(function_definition "undefined8\nFUN_0024b3c0(long param_1,long *param_2,undefined4 param_3,long param_4,ulong param_5,long param_6,\n            ulong param_7,long param_8,byte *param_9,byte *param_10,undefined8 param_11,\n            undefined8 param_12,undefined8 *param_13)\n\n{\n  long *plVar1;\n  char cVar2;\n  int iVar3;\n  uint uVar4;\n  uint uVar5;\n  int iVar6;\n  void *pvVar7;\n  long lVar8;\n  ulong uVar9;\n  long lVar10;\n  byte *pbVar11;\n  long **pplVar12;\n  uint uVar13;\n  byte bVar14;\n  byte bVar15;\n  byte bVar16;\n  byte *pbVar17;\n  ulong extraout_RDX;\n  ulong uVar18;\n  char *pcVar19;\n  long *plVar20;\n  byte *__s;\n  char *pcVar21;\n  byte bVar22;\n  long ***local_f8;\n  char local_cd;\n  long **local_c8;\n  long **local_c0;\n  long *local_b8;\n  undefined4 local_b0;\n  long local_a8;\n  byte local_a0;\n  undefined1 *local_98 [2];\n  undefined1 local_88 [16];\n  undefined8 local_78;\n  undefined8 local_70;\n  undefined8 local_68;\n  undefined1 *local_60 [2];\n  undefined1 local_50 [32];\n  \n  bVar22 = 0;\n  if (param_10 == param_9 || (long)param_10 - (long)param_9 < 0) {\n    return 0;\n  }\n  bVar14 = *param_9;\n  if ((bVar14 & 0xfd) != 1) {\n    return 0;\n  }\n  __s = param_9 + 1;\n  pvVar7 = memchr(__s,0,(long)param_10 - (long)__s);\n  if (pvVar7 == (void *)0x0) {\n    return 0;\n  }\n  pbVar17 = (byte *)((long)pvVar7 + 1);\n  local_cd = '\x01';\n  if ((param_9[1] == 0x65) && (param_9[2] == 0x68)) {\n    if (param_9[3] != 0) {\n      return 0;\n    }\n    if ((long)param_10 - (long)pbVar17 < 8) {\n      return 0;\n    }\n    __s = param_9 + 3;\n    pbVar17 = (byte *)((long)pvVar7 + 9);\n    local_cd = '\0';\n  }\n  if (param_10 <= pbVar17) {\n    return 0;\n  }\n  while ((char)*pbVar17 < '\0') {\n    pbVar17 = pbVar17 + 1;\n    if (param_10 == pbVar17) {\n      return 0;\n    }\n  }\n  pbVar11 = pbVar17 + 1;\n  if (param_10 <= pbVar11) {\n    return 0;\n  }\n  bVar15 = pbVar17[1];\n  while ((char)bVar15 < '\0') {\n    pbVar11 = pbVar11 + 1;\n    if (param_10 == pbVar11) {\n      return 0;\n    }\n    bVar15 = *pbVar11;\n  }\n  pbVar17 = pbVar11 + 1;\n  if (bVar14 == 1) {\n    pbVar11 = pbVar11 + 2;\n    if (param_10 == pbVar17 || (long)param_10 - (long)pbVar17 < 0) {\n      return 0;\n    }\n  }\n  else {\n    if (param_10 <= pbVar17) {\n      return 0;\n    }\n    bVar14 = pbVar11[1];\n    while ((char)bVar14 < '\0') {\n      pbVar17 = pbVar17 + 1;\n      if (param_10 == pbVar17) {\n        return 0;\n      }\n      bVar14 = *pbVar17;\n    }\n    pbVar11 = pbVar17 + 1;\n  }\n  bVar14 = *__s;\n  if (bVar14 == 0x7a) {\n    if (param_10 <= pbVar11) {\n      return 0;\n    }\n    while ((char)*pbVar11 < '\0') {\n      pbVar11 = pbVar11 + 1;\n      if (param_10 == pbVar11) {\n        return 0;\n      }\n    }\n    bVar14 = __s[1];\n    pbVar11 = pbVar11 + 1;\n    if (bVar14 != 0) {\n      __s = __s + 1;\n      goto LAB_0024b528;\n    }\nLAB_0024b955:\n    pcVar21 = "";\n  }\n  else {\n    if (bVar14 == 0) goto LAB_0024b955;\nLAB_0024b528:\n    iVar6 = -1;\n    bVar16 = 0;\n    bVar15 = bVar14;\n    do {\n      bVar14 = bVar16;\n      if (bVar15 == 0x50) {\n        if (param_10 == pbVar11 || (long)param_10 - (long)pbVar11 < 0) {\n          return 0;\n        }\n        bVar15 = *pbVar11;\n        pbVar11 = pbVar11 + 1;\n        if ((bVar15 & 0x60) == 0x60) {\n          return 0;\n        }\n        bVar16 = bVar15 & 7;\n        if (bVar16 == 2) {\n          lVar8 = 2;\n        }\n        else {\n          if (bVar16 < 3) {\n            if (bVar16 != 0) {\n              return 0;\n            }\n          }\n          else {\n            if (bVar16 == 3) {\n              lVar8 = 4;\n              goto LAB_0024b853;\n            }\n            if (bVar16 != 4) {\n              return 0;\n            }\n          }\n          lVar8 = 8;\n        }\nLAB_0024b853:\n        uVar5 = (int)param_10 - (int)pbVar11;\n        uVar4 = (uint)lVar8;\n        if ((bVar15 & 0xf0) == 0x50) {\n          uVar13 = -uVar4 & (uVar4 - 1) + ((int)pbVar11 - (int)param_9);\n          if (uVar5 < uVar13) {\n            return 0;\n          }\n          pbVar11 = pbVar11 + uVar13;\n          uVar5 = (int)param_10 - (int)pbVar11;\n        }\n        iVar6 = (int)pbVar11 - (int)param_8;\n        if (uVar5 < uVar4) {\n          return 0;\n        }\n        pbVar11 = pbVar11 + lVar8;\n      }\n      else {\n        if (bVar15 < 0x51) {\n          if (bVar15 != 0x4c) {\n            return 0;\n          }\n          if (param_10 == pbVar11 || (long)param_10 - (long)pbVar11 < 0) {\n            return 0;\n          }\n        }\n        else {\n          if (bVar15 != 0x52) {\n            if (bVar15 != 0x53) {\n              return 0;\n            }\n            goto LAB_0024b557;\n          }\n          if (param_10 == pbVar11 || (long)param_10 - (long)pbVar11 < 0) {\n            return 0;\n          }\n          bVar14 = *pbVar11;\n          if (4 < (bVar14 & 7)) {\n            return 0;\n          }\n          if ((1L << (bVar14 & 7) & 0x1dU) == 0) {\n            return 0;\n          }\n        }\n        pbVar11 = pbVar11 + 1;\n      }\nLAB_0024b557:\n      __s = __s + 1;\n      bVar15 = *__s;\n      bVar16 = bVar14;\n    } while (bVar15 != 0);\n    if (iVar6 == -1) goto LAB_0024b955;\n    iVar3 = FUN_001fab10(param_11,(long)iVar6);\n    if (0 < iVar3) {\n      return 0;\n    }\n    lVar8 = FUN_001faa60(param_11);\n    if (iVar6 != lVar8) {\n      return 0;\n    }\n    uVar4 = FUN_001faa80(param_11);\n    if (uVar4 == 0xffffffff) {\n      return 0;\n    }\n    uVar5 = (**(code **)(*param_2 + 0x118))(param_2);\n    if (uVar4 < uVar5) {\n      local_cd = '\0';\n      pcVar21 = "";\n      uVar18 = extraout_RDX;\n    }\n    else {\n      uVar18 = param_5 % 0x18;\n      if (param_5 / 0x18 <= (ulong)uVar4) {\n        return 0;\n      }\n      uVar9 = (ulong)*(uint *)(param_4 + (ulong)(uVar4 * 0x18));\n      if (param_7 <= uVar9) {\n        return 0;\n      }\n      pcVar21 = (char *)(param_6 + uVar9);\n    }\n    iVar6 = FUN_001fab10(param_11,(long)(iVar6 + 1),uVar18);\n    if (iVar6 != 1) {\n                    \n      FUN_0016cdf0("../../gold/ehframe.cc",0x3af,"read_cie");\n    }\n  }\n  iVar6 = FUN_001fab10(param_11,(long)param_10 - param_8);\n  if (0 < iVar6) {\n    return 0;\n  }\n  lVar8 = (long)(param_9 + -8) - param_8;\n  pcVar19 = (char *)0xffffffffffffffff;\n  local_98[0] = local_88;\n  if (pcVar21 != (char *)0x0) {\n    uVar18 = 0xffffffffffffffff;\n    pcVar19 = pcVar21;\n    do {\n      if (uVar18 == 0) break;\n      uVar18 = uVar18 - 1;\n      cVar2 = *pcVar19;\n      pcVar19 = pcVar19 + (ulong)bVar22 * -2 + 1;\n    } while (cVar2 != '\0');\n    pcVar19 = pcVar21 + (~uVar18 - 1);\n  }\n  local_b8 = param_2;\n  local_b0 = param_3;\n  local_a8 = lVar8;\n  local_a0 = bVar14;\n  FUN_0015cbe0(local_98,pcVar21,pcVar19);\n  local_60[0] = local_50;\n  local_78 = 0;\n  local_70 = 0;\n  local_68 = 0;\n                    \n  FUN_0015cbe0(local_60,param_9,param_10);\n  if (local_cd != '\0') {\n    local_c8 = &local_b8;\n    lVar10 = FUN_00248330(param_1 + 0x40);\n    if (lVar10 == param_1 + 0x48) {\n      plVar1 = (long *)param_13[1];\n      for (plVar20 = (long *)*param_13; plVar20 != plVar1; plVar20 = plVar20 + 2) {\n        pplVar12 = (long **)*plVar20;\n        cVar2 = FUN_002476d0(pplVar12,&local_b8);\n        if (cVar2 != '\0') goto LAB_0024b77c;\n      }\n    }\n    else {\n      pplVar12 = *(long ***)(lVar10 + 0x20);\nLAB_0024b77c:\n      if (pplVar12 != (long **)0x0) {\n                    \n        FUN_0019a930(param_2,param_1,param_3,lVar8,(long)param_10 - (long)(param_9 + -8),\n                     0xffffffffffffffff);\n        goto LAB_0024b7a5;\n      }\n    }\n  }\n  pplVar12 = (long **)FUN_00275550(0x78);\n                    \n  FUN_00249730(pplVar12,&local_b8);\n  local_c0 = (long **)CONCAT71(local_c0._1_7_,local_cd);\n  local_c8 = pplVar12;\n                    \n  FUN_0024a870(param_13);\nLAB_0024b7a5:\n  local_f8 = &local_c8;\n  local_c8 = (long **)(param_9 + -param_8);\n  local_c0 = pplVar12;\n  FUN_0024a340(param_12,local_f8);\n  FUN_00247330(&local_b8);\n  return 1;\n}" (type_identifier "undefined8") (function_declarator "FUN_0024b3c0(long param_1,long *param_2,undefined4 param_3,long param_4,ulong param_5,long param_6,\n            ulong param_7,long param_8,byte *param_9,byte *param_10,undefined8 param_11,\n            undefined8 param_12,undefined8 *param_13)" (identifier "FUN_0024b3c0") (parameter_list "(long param_1,long *param_2,undefined4 param_3,long param_4,ulong param_5,long param_6,\n            ulong param_7,long param_8,byte *param_9,byte *param_10,undefined8 param_11,\n            undefined8 param_12,undefined8 *param_13)" (( "(") (parameter_declaration "long param_1" (sized_type_specifier "long" (long "long")) (identifier "param_1")) (, ",") (parameter_declaration "long *param_2" (sized_type_specifier "long" (long "long")) (pointer_declarator "*param_2" (* "*") (identifier "param_2"))) (, ",") (parameter_declaration "undefined4 param_3" (type_identifier "undefined4") (identifier "param_3")) (, ",") (parameter_declaration "long param_4" (sized_type_specifier "long" (long "long")) (identifier "param_4")) (, ",") (parameter_declaration "ulong param_5" (type_identifier "ulong") (identifier "param_5")) (, ",") (parameter_declaration "long param_6" (sized_type_specifier "long" (long "long")) (identifier "param_6")) (, ",") (parameter_declaration "ulong param_7" (type_identifier "ulong") (identifier "param_7")) (, ",") (parameter_declaration "long param_8" (sized_type_specifier "long" (long "long")) (identifier "param_8")) (, ",") (parameter_declaration "byte *param_9" (type_identifier "byte") (pointer_declarator "*param_9" (* "*") (identifier "param_9"))) (, ",") (parameter_declaration "byte *param_10" (type_identifier "byte") (pointer_declarator "*param_10" (* "*") (identifier "param_10"))) (, ",") (parameter_declaration "undefined8 param_11" (type_identifier "undefined8") (identifier "param_11")) (, ",") (parameter_declaration "undefined8 param_12" (type_identifier "undefined8") (identifier "param_12")) (, ",") (parameter_declaration "undefined8 *param_13" (type_identifier "undefined8") (pointer_declarator "*param_13" (* "*") (identifier "param_13"))) () ")"))) (compound_statement "{\n  long *plVar1;\n  char cVar2;\n  int iVar3;\n  uint uVar4;\n  uint uVar5;\n  int iVar6;\n  void *pvVar7;\n  long lVar8;\n  ulong uVar9;\n  long lVar10;\n  byte *pbVar11;\n  long **pplVar12;\n  uint uVar13;\n  byte bVar14;\n  byte bVar15;\n  byte bVar16;\n  byte *pbVar17;\n  ulong extraout_RDX;\n  ulong uVar18;\n  char *pcVar19;\n  long *plVar20;\n  byte *__s;\n  char *pcVar21;\n  byte bVar22;\n  long ***local_f8;\n  char local_cd;\n  long **local_c8;\n  long **local_c0;\n  long *local_b8;\n  undefined4 local_b0;\n  long local_a8;\n  byte local_a0;\n  undefined1 *local_98 [2];\n  undefined1 local_88 [16];\n  undefined8 local_78;\n  undefined8 local_70;\n  undefined8 local_68;\n  undefined1 *local_60 [2];\n  undefined1 local_50 [32];\n  \n  bVar22 = 0;\n  if (param_10 == param_9 || (long)param_10 - (long)param_9 < 0) {\n    return 0;\n  }\n  bVar14 = *param_9;\n  if ((bVar14 & 0xfd) != 1) {\n    return 0;\n  }\n  __s = param_9 + 1;\n  pvVar7 = memchr(__s,0,(long)param_10 - (long)__s);\n  if (pvVar7 == (void *)0x0) {\n    return 0;\n  }\n  pbVar17 = (byte *)((long)pvVar7 + 1);\n  local_cd = '\x01';\n  if ((param_9[1] == 0x65) && (param_9[2] == 0x68)) {\n    if (param_9[3] != 0) {\n      return 0;\n    }\n    if ((long)param_10 - (long)pbVar17 < 8) {\n      return 0;\n    }\n    __s = param_9 + 3;\n    pbVar17 = (byte *)((long)pvVar7 + 9);\n    local_cd = '\0';\n  }\n  if (param_10 <= pbVar17) {\n    return 0;\n  }\n  while ((char)*pbVar17 < '\0') {\n    pbVar17 = pbVar17 + 1;\n    if (param_10 == pbVar17) {\n      return 0;\n    }\n  }\n  pbVar11 = pbVar17 + 1;\n  if (param_10 <= pbVar11) {\n    return 0;\n  }\n  bVar15 = pbVar17[1];\n  while ((char)bVar15 < '\0') {\n    pbVar11 = pbVar11 + 1;\n    if (param_10 == pbVar11) {\n      return 0;\n    }\n    bVar15 = *pbVar11;\n  }\n  pbVar17 = pbVar11 + 1;\n  if (bVar14 == 1) {\n    pbVar11 = pbVar11 + 2;\n    if (param_10 == pbVar17 || (long)param_10 - (long)pbVar17 < 0) {\n      return 0;\n    }\n  }\n  else {\n    if (param_10 <= pbVar17) {\n      return 0;\n    }\n    bVar14 = pbVar11[1];\n    while ((char)bVar14 < '\0') {\n      pbVar17 = pbVar17 + 1;\n      if (param_10 == pbVar17) {\n        return 0;\n      }\n      bVar14 = *pbVar17;\n    }\n    pbVar11 = pbVar17 + 1;\n  }\n  bVar14 = *__s;\n  if (bVar14 == 0x7a) {\n    if (param_10 <= pbVar11) {\n      return 0;\n    }\n    while ((char)*pbVar11 < '\0') {\n      pbVar11 = pbVar11 + 1;\n      if (param_10 == pbVar11) {\n        return 0;\n      }\n    }\n    bVar14 = __s[1];\n    pbVar11 = pbVar11 + 1;\n    if (bVar14 != 0) {\n      __s = __s + 1;\n      goto LAB_0024b528;\n    }\nLAB_0024b955:\n    pcVar21 = "";\n  }\n  else {\n    if (bVar14 == 0) goto LAB_0024b955;\nLAB_0024b528:\n    iVar6 = -1;\n    bVar16 = 0;\n    bVar15 = bVar14;\n    do {\n      bVar14 = bVar16;\n      if (bVar15 == 0x50) {\n        if (param_10 == pbVar11 || (long)param_10 - (long)pbVar11 < 0) {\n          return 0;\n        }\n        bVar15 = *pbVar11;\n        pbVar11 = pbVar11 + 1;\n        if ((bVar15 & 0x60) == 0x60) {\n          return 0;\n        }\n        bVar16 = bVar15 & 7;\n        if (bVar16 == 2) {\n          lVar8 = 2;\n        }\n        else {\n          if (bVar16 < 3) {\n            if (bVar16 != 0) {\n              return 0;\n            }\n          }\n          else {\n            if (bVar16 == 3) {\n              lVar8 = 4;\n              goto LAB_0024b853;\n            }\n            if (bVar16 != 4) {\n              return 0;\n            }\n          }\n          lVar8 = 8;\n        }\nLAB_0024b853:\n        uVar5 = (int)param_10 - (int)pbVar11;\n        uVar4 = (uint)lVar8;\n        if ((bVar15 & 0xf0) == 0x50) {\n          uVar13 = -uVar4 & (uVar4 - 1) + ((int)pbVar11 - (int)param_9);\n          if (uVar5 < uVar13) {\n            return 0;\n          }\n          pbVar11 = pbVar11 + uVar13;\n          uVar5 = (int)param_10 - (int)pbVar11;\n        }\n        iVar6 = (int)pbVar11 - (int)param_8;\n        if (uVar5 < uVar4) {\n          return 0;\n        }\n        pbVar11 = pbVar11 + lVar8;\n      }\n      else {\n        if (bVar15 < 0x51) {\n          if (bVar15 != 0x4c) {\n            return 0;\n          }\n          if (param_10 == pbVar11 || (long)param_10 - (long)pbVar11 < 0) {\n            return 0;\n          }\n        }\n        else {\n          if (bVar15 != 0x52) {\n            if (bVar15 != 0x53) {\n              return 0;\n            }\n            goto LAB_0024b557;\n          }\n          if (param_10 == pbVar11 || (long)param_10 - (long)pbVar11 < 0) {\n            return 0;\n          }\n          bVar14 = *pbVar11;\n          if (4 < (bVar14 & 7)) {\n            return 0;\n          }\n          if ((1L << (bVar14 & 7) & 0x1dU) == 0) {\n            return 0;\n          }\n        }\n        pbVar11 = pbVar11 + 1;\n      }\nLAB_0024b557:\n      __s = __s + 1;\n      bVar15 = *__s;\n      bVar16 = bVar14;\n    } while (bVar15 != 0);\n    if (iVar6 == -1) goto LAB_0024b955;\n    iVar3 = FUN_001fab10(param_11,(long)iVar6);\n    if (0 < iVar3) {\n      return 0;\n    }\n    lVar8 = FUN_001faa60(param_11);\n    if (iVar6 != lVar8) {\n      return 0;\n    }\n    uVar4 = FUN_001faa80(param_11);\n    if (uVar4 == 0xffffffff) {\n      return 0;\n    }\n    uVar5 = (**(code **)(*param_2 + 0x118))(param_2);\n    if (uVar4 < uVar5) {\n      local_cd = '\0';\n      pcVar21 = "";\n      uVar18 = extraout_RDX;\n    }\n    else {\n      uVar18 = param_5 % 0x18;\n      if (param_5 / 0x18 <= (ulong)uVar4) {\n        return 0;\n      }\n      uVar9 = (ulong)*(uint *)(param_4 + (ulong)(uVar4 * 0x18));\n      if (param_7 <= uVar9) {\n        return 0;\n      }\n      pcVar21 = (char *)(param_6 + uVar9);\n    }\n    iVar6 = FUN_001fab10(param_11,(long)(iVar6 + 1),uVar18);\n    if (iVar6 != 1) {\n                    \n      FUN_0016cdf0("../../gold/ehframe.cc",0x3af,"read_cie");\n    }\n  }\n  iVar6 = FUN_001fab10(param_11,(long)param_10 - param_8);\n  if (0 < iVar6) {\n    return 0;\n  }\n  lVar8 = (long)(param_9 + -8) - param_8;\n  pcVar19 = (char *)0xffffffffffffffff;\n  local_98[0] = local_88;\n  if (pcVar21 != (char *)0x0) {\n    uVar18 = 0xffffffffffffffff;\n    pcVar19 = pcVar21;\n    do {\n      if (uVar18 == 0) break;\n      uVar18 = uVar18 - 1;\n      cVar2 = *pcVar19;\n      pcVar19 = pcVar19 + (ulong)bVar22 * -2 + 1;\n    } while (cVar2 != '\0');\n    pcVar19 = pcVar21 + (~uVar18 - 1);\n  }\n  local_b8 = param_2;\n  local_b0 = param_3;\n  local_a8 = lVar8;\n  local_a0 = bVar14;\n  FUN_0015cbe0(local_98,pcVar21,pcVar19);\n  local_60[0] = local_50;\n  local_78 = 0;\n  local_70 = 0;\n  local_68 = 0;\n                    \n  FUN_0015cbe0(local_60,param_9,param_10);\n  if (local_cd != '\0') {\n    local_c8 = &local_b8;\n    lVar10 = FUN_00248330(param_1 + 0x40);\n    if (lVar10 == param_1 + 0x48) {\n      plVar1 = (long *)param_13[1];\n      for (plVar20 = (long *)*param_13; plVar20 != plVar1; plVar20 = plVar20 + 2) {\n        pplVar12 = (long **)*plVar20;\n        cVar2 = FUN_002476d0(pplVar12,&local_b8);\n        if (cVar2 != '\0') goto LAB_0024b77c;\n      }\n    }\n    else {\n      pplVar12 = *(long ***)(lVar10 + 0x20);\nLAB_0024b77c:\n      if (pplVar12 != (long **)0x0) {\n                    \n        FUN_0019a930(param_2,param_1,param_3,lVar8,(long)param_10 - (long)(param_9 + -8),\n                     0xffffffffffffffff);\n        goto LAB_0024b7a5;\n      }\n    }\n  }\n  pplVar12 = (long **)FUN_00275550(0x78);\n                    \n  FUN_00249730(pplVar12,&local_b8);\n  local_c0 = (long **)CONCAT71(local_c0._1_7_,local_cd);\n  local_c8 = pplVar12;\n                    \n  FUN_0024a870(param_13);\nLAB_0024b7a5:\n  local_f8 = &local_c8;\n  local_c8 = (long **)(param_9 + -param_8);\n  local_c0 = pplVar12;\n  FUN_0024a340(param_12,local_f8);\n  FUN_00247330(&local_b8);\n  return 1;\n}" ({ "{") (declaration "long *plVar1;" (sized_type_specifier "long" (long "long")) (pointer_declarator "*plVar1" (* "*") (identifier "plVar1")) (; ";")) (declaration "char cVar2;" (primitive_type "char") (identifier "cVar2") (; ";")) (declaration "int iVar3;" (primitive_type "int") (identifier "iVar3") (; ";")) (declaration "uint uVar4;" (type_identifier "uint") (identifier "uVar4") (; ";")) (declaration "uint uVar5;" (type_identifier "uint") (identifier "uVar5") (; ";")) (declaration "int iVar6;" (primitive_type "int") (identifier "iVar6") (; ";")) (declaration "void *pvVar7;" (primitive_type "void") (pointer_declarator "*pvVar7" (* "*") (identifier "pvVar7")) (; ";")) (declaration "long lVar8;" (sized_type_specifier "long" (long "long")) (identifier "lVar8") (; ";")) (declaration "ulong uVar9;" (type_identifier "ulong") (identifier "uVar9") (; ";")) (declaration "long lVar10;" (sized_type_specifier "long" (long "long")) (identifier "lVar10") (; ";")) (declaration "byte *pbVar11;" (type_identifier "byte") (pointer_declarator "*pbVar11" (* "*") (identifier "pbVar11")) (; ";")) (declaration "long **pplVar12;" (sized_type_specifier "long" (long "long")) (pointer_declarator "**pplVar12" (* "*") (pointer_declarator "*pplVar12" (* "*") (identifier "pplVar12"))) (; ";")) (declaration "uint uVar13;" (type_identifier "uint") (identifier "uVar13") (; ";")) (declaration "byte bVar14;" (type_identifier "byte") (identifier "bVar14") (; ";")) (declaration "byte bVar15;" (type_identifier "byte") (identifier "bVar15") (; ";")) (declaration "byte bVar16;" (type_identifier "byte") (identifier "bVar16") (; ";")) (declaration "byte *pbVar17;" (type_identifier "byte") (pointer_declarator "*pbVar17" (* "*") (identifier "pbVar17")) (; ";")) (declaration "ulong extraout_RDX;" (type_identifier "ulong") (identifier "extraout_RDX") (; ";")) (declaration "ulong uVar18;" (type_identifier "ulong") (identifier "uVar18") (; ";")) (declaration "char *pcVar19;" (primitive_type "char") (pointer_declarator "*pcVar19" (* "*") (identifier "pcVar19")) (; ";")) (declaration "long *plVar20;" (sized_type_specifier "long" (long "long")) (pointer_declarator "*plVar20" (* "*") (identifier "plVar20")) (; ";")) (declaration "byte *__s;" (type_identifier "byte") (pointer_declarator "*__s" (* "*") (identifier "__s")) (; ";")) (declaration "char *pcVar21;" (primitive_type "char") (pointer_declarator "*pcVar21" (* "*") (identifier "pcVar21")) (; ";")) (declaration "byte bVar22;" (type_identifier "byte") (identifier "bVar22") (; ";")) (declaration "long ***local_f8;" (sized_type_specifier "long" (long "long")) (pointer_declarator "***local_f8" (* "*") (pointer_declarator "**local_f8" (* "*") (pointer_declarator "*local_f8" (* "*") (identifier "local_f8")))) (; ";")) (declaration "char local_cd;" (primitive_type "char") (identifier "local_cd") (; ";")) (declaration "long **local_c8;" (sized_type_specifier "long" (long "long")) (pointer_declarator "**local_c8" (* "*") (pointer_declarator "*local_c8" (* "*") (identifier "local_c8"))) (; ";")) (declaration "long **local_c0;" (sized_type_specifier "long" (long "long")) (pointer_declarator "**local_c0" (* "*") (pointer_declarator "*local_c0" (* "*") (identifier "local_c0"))) (; ";")) (declaration "long *local_b8;" (sized_type_specifier "long" (long "long")) (pointer_declarator "*local_b8" (* "*") (identifier "local_b8")) (; ";")) (declaration "undefined4 local_b0;" (type_identifier "undefined4") (identifier "local_b0") (; ";")) (declaration "long local_a8;" (sized_type_specifier "long" (long "long")) (identifier "local_a8") (; ";")) (declaration "byte local_a0;" (type_identifier "byte") (identifier "local_a0") (; ";")) (declaration "undefined1 *local_98 [2];" (type_identifier "undefined1") (pointer_declarator "*local_98 [2]" (* "*") (array_declarator "local_98 [2]" (identifier "local_98") ([ "[") (number_literal "2") (] "]"))) (; ";")) (declaration "undefined1 local_88 [16];" (type_identifier "undefined1") (array_declarator "local_88 [16]" (identifier "local_88") ([ "[") (number_literal "16") (] "]")) (; ";")) (declaration "undefined8 local_78;" (type_identifier "undefined8") (identifier "local_78") (; ";")) (declaration "undefined8 local_70;" (type_identifier "undefined8") (identifier "local_70") (; ";")) (declaration "undefined8 local_68;" (type_identifier "undefined8") (identifier "local_68") (; ";")) (declaration "undefined1 *local_60 [2];" (type_identifier "undefined1") (pointer_declarator "*local_60 [2]" (* "*") (array_declarator "local_60 [2]" (identifier "local_60") ([ "[") (number_literal "2") (] "]"))) (; ";")) (declaration "undefined1 local_50 [32];" (type_identifier "undefined1") (array_declarator "local_50 [32]" (identifier "local_50") ([ "[") (number_literal "32") (] "]")) (; ";")) (expression_statement "bVar22 = 0;" (assignment_expression "bVar22 = 0" (identifier "bVar22") (= "=") (number_literal "0")) (; ";")) (if_statement "if (param_10 == param_9 || (long)param_10 - (long)param_9 < 0) {\n    return 0;\n  }" (if "if") (parenthesized_expression "(param_10 == param_9 || (long)param_10 - (long)param_9 < 0)" (( "(") (binary_expression "param_10 == param_9 || (long)param_10 - (long)param_9 < 0" (binary_expression "param_10 == param_9" (identifier "param_10") (== "==") (identifier "param_9")) (|| "||") (binary_expression "(long)param_10 - (long)param_9 < 0" (binary_expression "(long)param_10 - (long)param_9" (cast_expression "(long)param_10" (( "(") (type_descriptor "long" (sized_type_specifier "long" (long "long"))) () ")") (identifier "param_10")) (- "-") (cast_expression "(long)param_9" (( "(") (type_descriptor "long" (sized_type_specifier "long" (long "long"))) () ")") (identifier "param_9"))) (< "<") (number_literal "0"))) () ")")) (compound_statement "{\n    return 0;\n  }" ({ "{") (return_statement "return 0;" (return "return") (number_literal "0") (; ";")) (} "}"))) (expression_statement "bVar14 = *param_9;" (assignment_expression "bVar14 = *param_9" (identifier "bVar14") (= "=") (pointer_expression "*param_9" (* "*") (identifier "param_9"))) (; ";")) (if_statement "if ((bVar14 & 0xfd) != 1) {\n    return 0;\n  }" (if "if") (parenthesized_expression "((bVar14 & 0xfd) != 1)" (( "(") (binary_expression "(bVar14 & 0xfd) != 1" (parenthesized_expression "(bVar14 & 0xfd)" (( "(") (binary_expression "bVar14 & 0xfd" (identifier "bVar14") (& "&") (number_literal "0xfd")) () ")")) (!= "!=") (number_literal "1")) () ")")) (compound_statement "{\n    return 0;\n  }" ({ "{") (return_statement "return 0;" (return "return") (number_literal "0") (; ";")) (} "}"))) (expression_statement "__s = param_9 + 1;" (assignment_expression "__s = param_9 + 1" (identifier "__s") (= "=") (binary_expression "param_9 + 1" (identifier "param_9") (+ "+") (number_literal "1"))) (; ";")) (expression_statement "pvVar7 = memchr(__s,0,(long)param_10 - (long)__s);" (assignment_expression "pvVar7 = memchr(__s,0,(long)param_10 - (long)__s)" (identifier "pvVar7") (= "=") (call_expression "memchr(__s,0,(long)param_10 - (long)__s)" (identifier "memchr") (argument_list "(__s,0,(long)param_10 - (long)__s)" (( "(") (identifier "__s") (, ",") (number_literal "0") (, ",") (binary_expression "(long)param_10 - (long)__s" (cast_expression "(long)param_10" (( "(") (type_descriptor "long" (sized_type_specifier "long" (long "long"))) () ")") (identifier "param_10")) (- "-") (cast_expression "(long)__s" (( "(") (type_descriptor "long" (sized_type_specifier "long" (long "long"))) () ")") (identifier "__s"))) () ")")))) (; ";")) (if_statement "if (pvVar7 == (void *)0x0) {\n    return 0;\n  }" (if "if") (parenthesized_expression "(pvVar7 == (void *)0x0)" (( "(") (binary_expression "pvVar7 == (void *)0x0" (identifier "pvVar7") (== "==") (cast_expression "(void *)0x0" (( "(") (type_descriptor "void *" (primitive_type "void") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0"))) () ")")) (compound_statement "{\n    return 0;\n  }" ({ "{") (return_statement "return 0;" (return "return") (number_literal "0") (; ";")) (} "}"))) (expression_statement "pbVar17 = (byte *)((long)pvVar7 + 1);" (assignment_expression "pbVar17 = (byte *)((long)pvVar7 + 1)" (identifier "pbVar17") (= "=") (cast_expression "(byte *)((long)pvVar7 + 1)" (( "(") (type_descriptor "byte *" (type_identifier "byte") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "((long)pvVar7 + 1)" (( "(") (binary_expression "(long)pvVar7 + 1" (cast_expression "(long)pvVar7" (( "(") (type_descriptor "long" (sized_type_specifier "long" (long "long"))) () ")") (identifier "pvVar7")) (+ "+") (number_literal "1")) () ")")))) (; ";")) (expression_statement "local_cd = '\x01';" (assignment_expression "local_cd = '\x01'" (identifier "local_cd") (= "=") (char_literal "'\x01'" (' "'") (escape_sequence "\x01") (' "'"))) (; ";")) (if_statement "if ((param_9[1] == 0x65) && (param_9[2] == 0x68)) {\n    if (param_9[3] != 0) {\n      return 0;\n    }\n    if ((long)param_10 - (long)pbVar17 < 8) {\n      return 0;\n    }\n    __s = param_9 + 3;\n    pbVar17 = (byte *)((long)pvVar7 + 9);\n    local_cd = '\0';\n  }" (if "if") (parenthesized_expression "((param_9[1] == 0x65) && (param_9[2] == 0x68))" (( "(") (binary_expression "(param_9[1] == 0x65) && (param_9[2] == 0x68)" (parenthesized_expression "(param_9[1] == 0x65)" (( "(") (binary_expression "param_9[1] == 0x65" (subscript_expression "param_9[1]" (identifier "param_9") ([ "[") (number_literal "1") (] "]")) (== "==") (number_literal "0x65")) () ")")) (&& "&&") (parenthesized_expression "(param_9[2] == 0x68)" (( "(") (binary_expression "param_9[2] == 0x68" (subscript_expression "param_9[2]" (identifier "param_9") ([ "[") (number_literal "2") (] "]")) (== "==") (number_literal "0x68")) () ")"))) () ")")) (compound_statement "{\n    if (param_9[3] != 0) {\n      return 0;\n    }\n    if ((long)param_10 - (long)pbVar17 < 8) {\n      return 0;\n    }\n    __s = param_9 + 3;\n    pbVar17 = (byte *)((long)pvVar7 + 9);\n    local_cd = '\0';\n  }" ({ "{") (if_statement "if (param_9[3] != 0) {\n      return 0;\n    }" (if "if") (parenthesized_expression "(param_9[3] != 0)" (( "(") (binary_expression "param_9[3] != 0" (subscript_expression "param_9[3]" (identifier "param_9") ([ "[") (number_literal "3") (] "]")) (!= "!=") (number_literal "0")) () ")")) (compound_statement "{\n      return 0;\n    }" ({ "{") (return_statement "return 0;" (return "return") (number_literal "0") (; ";")) (} "}"))) (if_statement "if ((long)param_10 - (long)pbVar17 < 8) {\n      return 0;\n    }" (if "if") (parenthesized_expression "((long)param_10 - (long)pbVar17 < 8)" (( "(") (binary_expression "(long)param_10 - (long)pbVar17 < 8" (binary_expression "(long)param_10 - (long)pbVar17" (cast_expression "(long)param_10" (( "(") (type_descriptor "long" (sized_type_specifier "long" (long "long"))) () ")") (identifier "param_10")) (- "-") (cast_expression "(long)pbVar17" (( "(") (type_descriptor "long" (sized_type_specifier "long" (long "long"))) () ")") (identifier "pbVar17"))) (< "<") (number_literal "8")) () ")")) (compound_statement "{\n      return 0;\n    }" ({ "{") (return_statement "return 0;" (return "return") (number_literal "0") (; ";")) (} "}"))) (expression_statement "__s = param_9 + 3;" (assignment_expression "__s = param_9 + 3" (identifier "__s") (= "=") (binary_expression "param_9 + 3" (identifier "param_9") (+ "+") (number_literal "3"))) (; ";")) (expression_statement "pbVar17 = (byte *)((long)pvVar7 + 9);" (assignment_expression "pbVar17 = (byte *)((long)pvVar7 + 9)" (identifier "pbVar17") (= "=") (cast_expression "(byte *)((long)pvVar7 + 9)" (( "(") (type_descriptor "byte *" (type_identifier "byte") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "((long)pvVar7 + 9)" (( "(") (binary_expression "(long)pvVar7 + 9" (cast_expression "(long)pvVar7" (( "(") (type_descriptor "long" (sized_type_specifier "long" (long "long"))) () ")") (identifier "pvVar7")) (+ "+") (number_literal "9")) () ")")))) (; ";")) (expression_statement "local_cd = '\0';" (assignment_expression "local_cd = '\0'" (identifier "local_cd") (= "=") (char_literal "'\0'" (' "'") (escape_sequence "\0") (' "'"))) (; ";")) (} "}"))) (if_statement "if (param_10 <= pbVar17) {\n    return 0;\n  }" (if "if") (parenthesized_expression "(param_10 <= pbVar17)" (( "(") (binary_expression "param_10 <= pbVar17" (identifier "param_10") (<= "<=") (identifier "pbVar17")) () ")")) (compound_statement "{\n    return 0;\n  }" ({ "{") (return_statement "return 0;" (return "return") (number_literal "0") (; ";")) (} "}"))) (while_statement "while ((char)*pbVar17 < '\0') {\n    pbVar17 = pbVar17 + 1;\n    if (param_10 == pbVar17) {\n      return 0;\n    }\n  }" (while "while") (parenthesized_expression "((char)*pbVar17 < '\0')" (( "(") (binary_expression "(char)*pbVar17 < '\0'" (cast_expression "(char)*pbVar17" (( "(") (type_descriptor "char" (primitive_type "char")) () ")") (pointer_expression "*pbVar17" (* "*") (identifier "pbVar17"))) (< "<") (char_literal "'\0'" (' "'") (escape_sequence "\0") (' "'"))) () ")")) (compound_statement "{\n    pbVar17 = pbVar17 + 1;\n    if (param_10 == pbVar17) {\n      return 0;\n    }\n  }" ({ "{") (expression_statement "pbVar17 = pbVar17 + 1;" (assignment_expression "pbVar17 = pbVar17 + 1" (identifier "pbVar17") (= "=") (binary_expression "pbVar17 + 1" (identifier "pbVar17") (+ "+") (number_literal "1"))) (; ";")) (if_statement "if (param_10 == pbVar17) {\n      return 0;\n    }" (if "if") (parenthesized_expression "(param_10 == pbVar17)" (( "(") (binary_expression "param_10 == pbVar17" (identifier "param_10") (== "==") (identifier "pbVar17")) () ")")) (compound_statement "{\n      return 0;\n    }" ({ "{") (return_statement "return 0;" (return "return") (number_literal "0") (; ";")) (} "}"))) (} "}"))) (expression_statement "pbVar11 = pbVar17 + 1;" (assignment_expression "pbVar11 = pbVar17 + 1" (identifier "pbVar11") (= "=") (binary_expression "pbVar17 + 1" (identifier "pbVar17") (+ "+") (number_literal "1"))) (; ";")) (if_statement "if (param_10 <= pbVar11) {\n    return 0;\n  }" (if "if") (parenthesized_expression "(param_10 <= pbVar11)" (( "(") (binary_expression "param_10 <= pbVar11" (identifier "param_10") (<= "<=") (identifier "pbVar11")) () ")")) (compound_statement "{\n    return 0;\n  }" ({ "{") (return_statement "return 0;" (return "return") (number_literal "0") (; ";")) (} "}"))) (expression_statement "bVar15 = pbVar17[1];" (assignment_expression "bVar15 = pbVar17[1]" (identifier "bVar15") (= "=") (subscript_expression "pbVar17[1]" (identifier "pbVar17") ([ "[") (number_literal "1") (] "]"))) (; ";")) (while_statement "while ((char)bVar15 < '\0') {\n    pbVar11 = pbVar11 + 1;\n    if (param_10 == pbVar11) {\n      return 0;\n    }\n    bVar15 = *pbVar11;\n  }" (while "while") (parenthesized_expression "((char)bVar15 < '\0')" (( "(") (binary_expression "(char)bVar15 < '\0'" (cast_expression "(char)bVar15" (( "(") (type_descriptor "char" (primitive_type "char")) () ")") (identifier "bVar15")) (< "<") (char_literal "'\0'" (' "'") (escape_sequence "\0") (' "'"))) () ")")) (compound_statement "{\n    pbVar11 = pbVar11 + 1;\n    if (param_10 == pbVar11) {\n      return 0;\n    }\n    bVar15 = *pbVar11;\n  }" ({ "{") (expression_statement "pbVar11 = pbVar11 + 1;" (assignment_expression "pbVar11 = pbVar11 + 1" (identifier "pbVar11") (= "=") (binary_expression "pbVar11 + 1" (identifier "pbVar11") (+ "+") (number_literal "1"))) (; ";")) (if_statement "if (param_10 == pbVar11) {\n      return 0;\n    }" (if "if") (parenthesized_expression "(param_10 == pbVar11)" (( "(") (binary_expression "param_10 == pbVar11" (identifier "param_10") (== "==") (identifier "pbVar11")) () ")")) (compound_statement "{\n      return 0;\n    }" ({ "{") (return_statement "return 0;" (return "return") (number_literal "0") (; ";")) (} "}"))) (expression_statement "bVar15 = *pbVar11;" (assignment_expression "bVar15 = *pbVar11" (identifier "bVar15") (= "=") (pointer_expression "*pbVar11" (* "*") (identifier "pbVar11"))) (; ";")) (} "}"))) (expression_statement "pbVar17 = pbVar11 + 1;" (assignment_expression "pbVar17 = pbVar11 + 1" (identifier "pbVar17") (= "=") (binary_expression "pbVar11 + 1" (identifier "pbVar11") (+ "+") (number_literal "1"))) (; ";")) (if_statement "if (bVar14 == 1) {\n    pbVar11 = pbVar11 + 2;\n    if (param_10 == pbVar17 || (long)param_10 - (long)pbVar17 < 0) {\n      return 0;\n    }\n  }\n  else {\n    if (param_10 <= pbVar17) {\n      return 0;\n    }\n    bVar14 = pbVar11[1];\n    while ((char)bVar14 < '\0') {\n      pbVar17 = pbVar17 + 1;\n      if (param_10 == pbVar17) {\n        return 0;\n      }\n      bVar14 = *pbVar17;\n    }\n    pbVar11 = pbVar17 + 1;\n  }" (if "if") (parenthesized_expression "(bVar14 == 1)" (( "(") (binary_expression "bVar14 == 1" (identifier "bVar14") (== "==") (number_literal "1")) () ")")) (compound_statement "{\n    pbVar11 = pbVar11 + 2;\n    if (param_10 == pbVar17 || (long)param_10 - (long)pbVar17 < 0) {\n      return 0;\n    }\n  }" ({ "{") (expression_statement "pbVar11 = pbVar11 + 2;" (assignment_expression "pbVar11 = pbVar11 + 2" (identifier "pbVar11") (= "=") (binary_expression "pbVar11 + 2" (identifier "pbVar11") (+ "+") (number_literal "2"))) (; ";")) (if_statement "if (param_10 == pbVar17 || (long)param_10 - (long)pbVar17 < 0) {\n      return 0;\n    }" (if "if") (parenthesized_expression "(param_10 == pbVar17 || (long)param_10 - (long)pbVar17 < 0)" (( "(") (binary_expression "param_10 == pbVar17 || (long)param_10 - (long)pbVar17 < 0" (binary_expression "param_10 == pbVar17" (identifier "param_10") (== "==") (identifier "pbVar17")) (|| "||") (binary_expression "(long)param_10 - (long)pbVar17 < 0" (binary_expression "(long)param_10 - (long)pbVar17" (cast_expression "(long)param_10" (( "(") (type_descriptor "long" (sized_type_specifier "long" (long "long"))) () ")") (identifier "param_10")) (- "-") (cast_expression "(long)pbVar17" (( "(") (type_descriptor "long" (sized_type_specifier "long" (long "long"))) () ")") (identifier "pbVar17"))) (< "<") (number_literal "0"))) () ")")) (compound_statement "{\n      return 0;\n    }" ({ "{") (return_statement "return 0;" (return "return") (number_literal "0") (; ";")) (} "}"))) (} "}")) (else_clause "else {\n    if (param_10 <= pbVar17) {\n      return 0;\n    }\n    bVar14 = pbVar11[1];\n    while ((char)bVar14 < '\0') {\n      pbVar17 = pbVar17 + 1;\n      if (param_10 == pbVar17) {\n        return 0;\n      }\n      bVar14 = *pbVar17;\n    }\n    pbVar11 = pbVar17 + 1;\n  }" (else "else") (compound_statement "{\n    if (param_10 <= pbVar17) {\n      return 0;\n    }\n    bVar14 = pbVar11[1];\n    while ((char)bVar14 < '\0') {\n      pbVar17 = pbVar17 + 1;\n      if (param_10 == pbVar17) {\n        return 0;\n      }\n      bVar14 = *pbVar17;\n    }\n    pbVar11 = pbVar17 + 1;\n  }" ({ "{") (if_statement "if (param_10 <= pbVar17) {\n      return 0;\n    }" (if "if") (parenthesized_expression "(param_10 <= pbVar17)" (( "(") (binary_expression "param_10 <= pbVar17" (identifier "param_10") (<= "<=") (identifier "pbVar17")) () ")")) (compound_statement "{\n      return 0;\n    }" ({ "{") (return_statement "return 0;" (return "return") (number_literal "0") (; ";")) (} "}"))) (expression_statement "bVar14 = pbVar11[1];" (assignment_expression "bVar14 = pbVar11[1]" (identifier "bVar14") (= "=") (subscript_expression "pbVar11[1]" (identifier "pbVar11") ([ "[") (number_literal "1") (] "]"))) (; ";")) (while_statement "while ((char)bVar14 < '\0') {\n      pbVar17 = pbVar17 + 1;\n      if (param_10 == pbVar17) {\n        return 0;\n      }\n      bVar14 = *pbVar17;\n    }" (while "while") (parenthesized_expression "((char)bVar14 < '\0')" (( "(") (binary_expression "(char)bVar14 < '\0'" (cast_expression "(char)bVar14" (( "(") (type_descriptor "char" (primitive_type "char")) () ")") (identifier "bVar14")) (< "<") (char_literal "'\0'" (' "'") (escape_sequence "\0") (' "'"))) () ")")) (compound_statement "{\n      pbVar17 = pbVar17 + 1;\n      if (param_10 == pbVar17) {\n        return 0;\n      }\n      bVar14 = *pbVar17;\n    }" ({ "{") (expression_statement "pbVar17 = pbVar17 + 1;" (assignment_expression "pbVar17 = pbVar17 + 1" (identifier "pbVar17") (= "=") (binary_expression "pbVar17 + 1" (identifier "pbVar17") (+ "+") (number_literal "1"))) (; ";")) (if_statement "if (param_10 == pbVar17) {\n        return 0;\n      }" (if "if") (parenthesized_expression "(param_10 == pbVar17)" (( "(") (binary_expression "param_10 == pbVar17" (identifier "param_10") (== "==") (identifier "pbVar17")) () ")")) (compound_statement "{\n        return 0;\n      }" ({ "{") (return_statement "return 0;" (return "return") (number_literal "0") (; ";")) (} "}"))) (expression_statement "bVar14 = *pbVar17;" (assignment_expression "bVar14 = *pbVar17" (identifier "bVar14") (= "=") (pointer_expression "*pbVar17" (* "*") (identifier "pbVar17"))) (; ";")) (} "}"))) (expression_statement "pbVar11 = pbVar17 + 1;" (assignment_expression "pbVar11 = pbVar17 + 1" (identifier "pbVar11") (= "=") (binary_expression "pbVar17 + 1" (identifier "pbVar17") (+ "+") (number_literal "1"))) (; ";")) (} "}")))) (expression_statement "bVar14 = *__s;" (assignment_expression "bVar14 = *__s" (identifier "bVar14") (= "=") (pointer_expression "*__s" (* "*") (identifier "__s"))) (; ";")) (if_statement "if (bVar14 == 0x7a) {\n    if (param_10 <= pbVar11) {\n      return 0;\n    }\n    while ((char)*pbVar11 < '\0') {\n      pbVar11 = pbVar11 + 1;\n      if (param_10 == pbVar11) {\n        return 0;\n      }\n    }\n    bVar14 = __s[1];\n    pbVar11 = pbVar11 + 1;\n    if (bVar14 != 0) {\n      __s = __s + 1;\n      goto LAB_0024b528;\n    }\nLAB_0024b955:\n    pcVar21 = "";\n  }\n  else {\n    if (bVar14 == 0) goto LAB_0024b955;\nLAB_0024b528:\n    iVar6 = -1;\n    bVar16 = 0;\n    bVar15 = bVar14;\n    do {\n      bVar14 = bVar16;\n      if (bVar15 == 0x50) {\n        if (param_10 == pbVar11 || (long)param_10 - (long)pbVar11 < 0) {\n          return 0;\n        }\n        bVar15 = *pbVar11;\n        pbVar11 = pbVar11 + 1;\n        if ((bVar15 & 0x60) == 0x60) {\n          return 0;\n        }\n        bVar16 = bVar15 & 7;\n        if (bVar16 == 2) {\n          lVar8 = 2;\n        }\n        else {\n          if (bVar16 < 3) {\n            if (bVar16 != 0) {\n              return 0;\n            }\n          }\n          else {\n            if (bVar16 == 3) {\n              lVar8 = 4;\n              goto LAB_0024b853;\n            }\n            if (bVar16 != 4) {\n              return 0;\n            }\n          }\n          lVar8 = 8;\n        }\nLAB_0024b853:\n        uVar5 = (int)param_10 - (int)pbVar11;\n        uVar4 = (uint)lVar8;\n        if ((bVar15 & 0xf0) == 0x50) {\n          uVar13 = -uVar4 & (uVar4 - 1) + ((int)pbVar11 - (int)param_9);\n          if (uVar5 < uVar13) {\n            return 0;\n          }\n          pbVar11 = pbVar11 + uVar13;\n          uVar5 = (int)param_10 - (int)pbVar11;\n        }\n        iVar6 = (int)pbVar11 - (int)param_8;\n        if (uVar5 < uVar4) {\n          return 0;\n        }\n        pbVar11 = pbVar11 + lVar8;\n      }\n      else {\n        if (bVar15 < 0x51) {\n          if (bVar15 != 0x4c) {\n            return 0;\n          }\n          if (param_10 == pbVar11 || (long)param_10 - (long)pbVar11 < 0) {\n            return 0;\n          }\n        }\n        else {\n          if (bVar15 != 0x52) {\n            if (bVar15 != 0x53) {\n              return 0;\n            }\n            goto LAB_0024b557;\n          }\n          if (param_10 == pbVar11 || (long)param_10 - (long)pbVar11 < 0) {\n            return 0;\n          }\n          bVar14 = *pbVar11;\n          if (4 < (bVar14 & 7)) {\n            return 0;\n          }\n          if ((1L << (bVar14 & 7) & 0x1dU) == 0) {\n            return 0;\n          }\n        }\n        pbVar11 = pbVar11 + 1;\n      }\nLAB_0024b557:\n      __s = __s + 1;\n      bVar15 = *__s;\n      bVar16 = bVar14;\n    } while (bVar15 != 0);\n    if (iVar6 == -1) goto LAB_0024b955;\n    iVar3 = FUN_001fab10(param_11,(long)iVar6);\n    if (0 < iVar3) {\n      return 0;\n    }\n    lVar8 = FUN_001faa60(param_11);\n    if (iVar6 != lVar8) {\n      return 0;\n    }\n    uVar4 = FUN_001faa80(param_11);\n    if (uVar4 == 0xffffffff) {\n      return 0;\n    }\n    uVar5 = (**(code **)(*param_2 + 0x118))(param_2);\n    if (uVar4 < uVar5) {\n      local_cd = '\0';\n      pcVar21 = "";\n      uVar18 = extraout_RDX;\n    }\n    else {\n      uVar18 = param_5 % 0x18;\n      if (param_5 / 0x18 <= (ulong)uVar4) {\n        return 0;\n      }\n      uVar9 = (ulong)*(uint *)(param_4 + (ulong)(uVar4 * 0x18));\n      if (param_7 <= uVar9) {\n        return 0;\n      }\n      pcVar21 = (char *)(param_6 + uVar9);\n    }\n    iVar6 = FUN_001fab10(param_11,(long)(iVar6 + 1),uVar18);\n    if (iVar6 != 1) {\n                    \n      FUN_0016cdf0("../../gold/ehframe.cc",0x3af,"read_cie");\n    }\n  }" (if "if") (parenthesized_expression "(bVar14 == 0x7a)" (( "(") (binary_expression "bVar14 == 0x7a" (identifier "bVar14") (== "==") (number_literal "0x7a")) () ")")) (compound_statement "{\n    if (param_10 <= pbVar11) {\n      return 0;\n    }\n    while ((char)*pbVar11 < '\0') {\n      pbVar11 = pbVar11 + 1;\n      if (param_10 == pbVar11) {\n        return 0;\n      }\n    }\n    bVar14 = __s[1];\n    pbVar11 = pbVar11 + 1;\n    if (bVar14 != 0) {\n      __s = __s + 1;\n      goto LAB_0024b528;\n    }\nLAB_0024b955:\n    pcVar21 = "";\n  }" ({ "{") (if_statement "if (param_10 <= pbVar11) {\n      return 0;\n    }" (if "if") (parenthesized_expression "(param_10 <= pbVar11)" (( "(") (binary_expression "param_10 <= pbVar11" (identifier "param_10") (<= "<=") (identifier "pbVar11")) () ")")) (compound_statement "{\n      return 0;\n    }" ({ "{") (return_statement "return 0;" (return "return") (number_literal "0") (; ";")) (} "}"))) (while_statement "while ((char)*pbVar11 < '\0') {\n      pbVar11 = pbVar11 + 1;\n      if (param_10 == pbVar11) {\n        return 0;\n      }\n    }" (while "while") (parenthesized_expression "((char)*pbVar11 < '\0')" (( "(") (binary_expression "(char)*pbVar11 < '\0'" (cast_expression "(char)*pbVar11" (( "(") (type_descriptor "char" (primitive_type "char")) () ")") (pointer_expression "*pbVar11" (* "*") (identifier "pbVar11"))) (< "<") (char_literal "'\0'" (' "'") (escape_sequence "\0") (' "'"))) () ")")) (compound_statement "{\n      pbVar11 = pbVar11 + 1;\n      if (param_10 == pbVar11) {\n        return 0;\n      }\n    }" ({ "{") (expression_statement "pbVar11 = pbVar11 + 1;" (assignment_expression "pbVar11 = pbVar11 + 1" (identifier "pbVar11") (= "=") (binary_expression "pbVar11 + 1" (identifier "pbVar11") (+ "+") (number_literal "1"))) (; ";")) (if_statement "if (param_10 == pbVar11) {\n        return 0;\n      }" (if "if") (parenthesized_expression "(param_10 == pbVar11)" (( "(") (binary_expression "param_10 == pbVar11" (identifier "param_10") (== "==") (identifier "pbVar11")) () ")")) (compound_statement "{\n        return 0;\n      }" ({ "{") (return_statement "return 0;" (return "return") (number_literal "0") (; ";")) (} "}"))) (} "}"))) (expression_statement "bVar14 = __s[1];" (assignment_expression "bVar14 = __s[1]" (identifier "bVar14") (= "=") (subscript_expression "__s[1]" (identifier "__s") ([ "[") (number_literal "1") (] "]"))) (; ";")) (expression_statement "pbVar11 = pbVar11 + 1;" (assignment_expression "pbVar11 = pbVar11 + 1" (identifier "pbVar11") (= "=") (binary_expression "pbVar11 + 1" (identifier "pbVar11") (+ "+") (number_literal "1"))) (; ";")) (if_statement "if (bVar14 != 0) {\n      __s = __s + 1;\n      goto LAB_0024b528;\n    }" (if "if") (parenthesized_expression "(bVar14 != 0)" (( "(") (binary_expression "bVar14 != 0" (identifier "bVar14") (!= "!=") (number_literal "0")) () ")")) (compound_statement "{\n      __s = __s + 1;\n      goto LAB_0024b528;\n    }" ({ "{") (expression_statement "__s = __s + 1;" (assignment_expression "__s = __s + 1" (identifier "__s") (= "=") (binary_expression "__s + 1" (identifier "__s") (+ "+") (number_literal "1"))) (; ";")) (goto_statement "goto LAB_0024b528;" (goto "goto") (statement_identifier "LAB_0024b528") (; ";")) (} "}"))) (labeled_statement "LAB_0024b955:\n    pcVar21 = "";" (statement_identifier "LAB_0024b955") (: ":") (expression_statement "pcVar21 = "";" (assignment_expression "pcVar21 = """ (identifier "pcVar21") (= "=") (string_literal """" (" """) (" """))) (; ";"))) (} "}")) (else_clause "else {\n    if (bVar14 == 0) goto LAB_0024b955;\nLAB_0024b528:\n    iVar6 = -1;\n    bVar16 = 0;\n    bVar15 = bVar14;\n    do {\n      bVar14 = bVar16;\n      if (bVar15 == 0x50) {\n        if (param_10 == pbVar11 || (long)param_10 - (long)pbVar11 < 0) {\n          return 0;\n        }\n        bVar15 = *pbVar11;\n        pbVar11 = pbVar11 + 1;\n        if ((bVar15 & 0x60) == 0x60) {\n          return 0;\n        }\n        bVar16 = bVar15 & 7;\n        if (bVar16 == 2) {\n          lVar8 = 2;\n        }\n        else {\n          if (bVar16 < 3) {\n            if (bVar16 != 0) {\n              return 0;\n            }\n          }\n          else {\n            if (bVar16 == 3) {\n              lVar8 = 4;\n              goto LAB_0024b853;\n            }\n            if (bVar16 != 4) {\n              return 0;\n            }\n          }\n          lVar8 = 8;\n        }\nLAB_0024b853:\n        uVar5 = (int)param_10 - (int)pbVar11;\n        uVar4 = (uint)lVar8;\n        if ((bVar15 & 0xf0) == 0x50) {\n          uVar13 = -uVar4 & (uVar4 - 1) + ((int)pbVar11 - (int)param_9);\n          if (uVar5 < uVar13) {\n            return 0;\n          }\n          pbVar11 = pbVar11 + uVar13;\n          uVar5 = (int)param_10 - (int)pbVar11;\n        }\n        iVar6 = (int)pbVar11 - (int)param_8;\n        if (uVar5 < uVar4) {\n          return 0;\n        }\n        pbVar11 = pbVar11 + lVar8;\n      }\n      else {\n        if (bVar15 < 0x51) {\n          if (bVar15 != 0x4c) {\n            return 0;\n          }\n          if (param_10 == pbVar11 || (long)param_10 - (long)pbVar11 < 0) {\n            return 0;\n          }\n        }\n        else {\n          if (bVar15 != 0x52) {\n            if (bVar15 != 0x53) {\n              return 0;\n            }\n            goto LAB_0024b557;\n          }\n          if (param_10 == pbVar11 || (long)param_10 - (long)pbVar11 < 0) {\n            return 0;\n          }\n          bVar14 = *pbVar11;\n          if (4 < (bVar14 & 7)) {\n            return 0;\n          }\n          if ((1L << (bVar14 & 7) & 0x1dU) == 0) {\n            return 0;\n          }\n        }\n        pbVar11 = pbVar11 + 1;\n      }\nLAB_0024b557:\n      __s = __s + 1;\n      bVar15 = *__s;\n      bVar16 = bVar14;\n    } while (bVar15 != 0);\n    if (iVar6 == -1) goto LAB_0024b955;\n    iVar3 = FUN_001fab10(param_11,(long)iVar6);\n    if (0 < iVar3) {\n      return 0;\n    }\n    lVar8 = FUN_001faa60(param_11);\n    if (iVar6 != lVar8) {\n      return 0;\n    }\n    uVar4 = FUN_001faa80(param_11);\n    if (uVar4 == 0xffffffff) {\n      return 0;\n    }\n    uVar5 = (**(code **)(*param_2 + 0x118))(param_2);\n    if (uVar4 < uVar5) {\n      local_cd = '\0';\n      pcVar21 = "";\n      uVar18 = extraout_RDX;\n    }\n    else {\n      uVar18 = param_5 % 0x18;\n      if (param_5 / 0x18 <= (ulong)uVar4) {\n        return 0;\n      }\n      uVar9 = (ulong)*(uint *)(param_4 + (ulong)(uVar4 * 0x18));\n      if (param_7 <= uVar9) {\n        return 0;\n      }\n      pcVar21 = (char *)(param_6 + uVar9);\n    }\n    iVar6 = FUN_001fab10(param_11,(long)(iVar6 + 1),uVar18);\n    if (iVar6 != 1) {\n                    \n      FUN_0016cdf0("../../gold/ehframe.cc",0x3af,"read_cie");\n    }\n  }" (else "else") (compound_statement "{\n    if (bVar14 == 0) goto LAB_0024b955;\nLAB_0024b528:\n    iVar6 = -1;\n    bVar16 = 0;\n    bVar15 = bVar14;\n    do {\n      bVar14 = bVar16;\n      if (bVar15 == 0x50) {\n        if (param_10 == pbVar11 || (long)param_10 - (long)pbVar11 < 0) {\n          return 0;\n        }\n        bVar15 = *pbVar11;\n        pbVar11 = pbVar11 + 1;\n        if ((bVar15 & 0x60) == 0x60) {\n          return 0;\n        }\n        bVar16 = bVar15 & 7;\n        if (bVar16 == 2) {\n          lVar8 = 2;\n        }\n        else {\n          if (bVar16 < 3) {\n            if (bVar16 != 0) {\n              return 0;\n            }\n          }\n          else {\n            if (bVar16 == 3) {\n              lVar8 = 4;\n              goto LAB_0024b853;\n            }\n            if (bVar16 != 4) {\n              return 0;\n            }\n          }\n          lVar8 = 8;\n        }\nLAB_0024b853:\n        uVar5 = (int)param_10 - (int)pbVar11;\n        uVar4 = (uint)lVar8;\n        if ((bVar15 & 0xf0) == 0x50) {\n          uVar13 = -uVar4 & (uVar4 - 1) + ((int)pbVar11 - (int)param_9);\n          if (uVar5 < uVar13) {\n            return 0;\n          }\n          pbVar11 = pbVar11 + uVar13;\n          uVar5 = (int)param_10 - (int)pbVar11;\n        }\n        iVar6 = (int)pbVar11 - (int)param_8;\n        if (uVar5 < uVar4) {\n          return 0;\n        }\n        pbVar11 = pbVar11 + lVar8;\n      }\n      else {\n        if (bVar15 < 0x51) {\n          if (bVar15 != 0x4c) {\n            return 0;\n          }\n          if (param_10 == pbVar11 || (long)param_10 - (long)pbVar11 < 0) {\n            return 0;\n          }\n        }\n        else {\n          if (bVar15 != 0x52) {\n            if (bVar15 != 0x53) {\n              return 0;\n            }\n            goto LAB_0024b557;\n          }\n          if (param_10 == pbVar11 || (long)param_10 - (long)pbVar11 < 0) {\n            return 0;\n          }\n          bVar14 = *pbVar11;\n          if (4 < (bVar14 & 7)) {\n            return 0;\n          }\n          if ((1L << (bVar14 & 7) & 0x1dU) == 0) {\n            return 0;\n          }\n        }\n        pbVar11 = pbVar11 + 1;\n      }\nLAB_0024b557:\n      __s = __s + 1;\n      bVar15 = *__s;\n      bVar16 = bVar14;\n    } while (bVar15 != 0);\n    if (iVar6 == -1) goto LAB_0024b955;\n    iVar3 = FUN_001fab10(param_11,(long)iVar6);\n    if (0 < iVar3) {\n      return 0;\n    }\n    lVar8 = FUN_001faa60(param_11);\n    if (iVar6 != lVar8) {\n      return 0;\n    }\n    uVar4 = FUN_001faa80(param_11);\n    if (uVar4 == 0xffffffff) {\n      return 0;\n    }\n    uVar5 = (**(code **)(*param_2 + 0x118))(param_2);\n    if (uVar4 < uVar5) {\n      local_cd = '\0';\n      pcVar21 = "";\n      uVar18 = extraout_RDX;\n    }\n    else {\n      uVar18 = param_5 % 0x18;\n      if (param_5 / 0x18 <= (ulong)uVar4) {\n        return 0;\n      }\n      uVar9 = (ulong)*(uint *)(param_4 + (ulong)(uVar4 * 0x18));\n      if (param_7 <= uVar9) {\n        return 0;\n      }\n      pcVar21 = (char *)(param_6 + uVar9);\n    }\n    iVar6 = FUN_001fab10(param_11,(long)(iVar6 + 1),uVar18);\n    if (iVar6 != 1) {\n                    \n      FUN_0016cdf0("../../gold/ehframe.cc",0x3af,"read_cie");\n    }\n  }" ({ "{") (if_statement "if (bVar14 == 0) goto LAB_0024b955;" (if "if") (parenthesized_expression "(bVar14 == 0)" (( "(") (binary_expression "bVar14 == 0" (identifier "bVar14") (== "==") (number_literal "0")) () ")")) (goto_statement "goto LAB_0024b955;" (goto "goto") (statement_identifier "LAB_0024b955") (; ";"))) (labeled_statement "LAB_0024b528:\n    iVar6 = -1;" (statement_identifier "LAB_0024b528") (: ":") (expression_statement "iVar6 = -1;" (assignment_expression "iVar6 = -1" (identifier "iVar6") (= "=") (number_literal "-1")) (; ";"))) (expression_statement "bVar16 = 0;" (assignment_expression "bVar16 = 0" (identifier "bVar16") (= "=") (number_literal "0")) (; ";")) (expression_statement "bVar15 = bVar14;" (assignment_expression "bVar15 = bVar14" (identifier "bVar15") (= "=") (identifier "bVar14")) (; ";")) (do_statement "do {\n      bVar14 = bVar16;\n      if (bVar15 == 0x50) {\n        if (param_10 == pbVar11 || (long)param_10 - (long)pbVar11 < 0) {\n          return 0;\n        }\n        bVar15 = *pbVar11;\n        pbVar11 = pbVar11 + 1;\n        if ((bVar15 & 0x60) == 0x60) {\n          return 0;\n        }\n        bVar16 = bVar15 & 7;\n        if (bVar16 == 2) {\n          lVar8 = 2;\n        }\n        else {\n          if (bVar16 < 3) {\n            if (bVar16 != 0) {\n              return 0;\n            }\n          }\n          else {\n            if (bVar16 == 3) {\n              lVar8 = 4;\n              goto LAB_0024b853;\n            }\n            if (bVar16 != 4) {\n              return 0;\n            }\n          }\n          lVar8 = 8;\n        }\nLAB_0024b853:\n        uVar5 = (int)param_10 - (int)pbVar11;\n        uVar4 = (uint)lVar8;\n        if ((bVar15 & 0xf0) == 0x50) {\n          uVar13 = -uVar4 & (uVar4 - 1) + ((int)pbVar11 - (int)param_9);\n          if (uVar5 < uVar13) {\n            return 0;\n          }\n          pbVar11 = pbVar11 + uVar13;\n          uVar5 = (int)param_10 - (int)pbVar11;\n        }\n        iVar6 = (int)pbVar11 - (int)param_8;\n        if (uVar5 < uVar4) {\n          return 0;\n        }\n        pbVar11 = pbVar11 + lVar8;\n      }\n      else {\n        if (bVar15 < 0x51) {\n          if (bVar15 != 0x4c) {\n            return 0;\n          }\n          if (param_10 == pbVar11 || (long)param_10 - (long)pbVar11 < 0) {\n            return 0;\n          }\n        }\n        else {\n          if (bVar15 != 0x52) {\n            if (bVar15 != 0x53) {\n              return 0;\n            }\n            goto LAB_0024b557;\n          }\n          if (param_10 == pbVar11 || (long)param_10 - (long)pbVar11 < 0) {\n            return 0;\n          }\n          bVar14 = *pbVar11;\n          if (4 < (bVar14 & 7)) {\n            return 0;\n          }\n          if ((1L << (bVar14 & 7) & 0x1dU) == 0) {\n            return 0;\n          }\n        }\n        pbVar11 = pbVar11 + 1;\n      }\nLAB_0024b557:\n      __s = __s + 1;\n      bVar15 = *__s;\n      bVar16 = bVar14;\n    } while (bVar15 != 0);" (do "do") (compound_statement "{\n      bVar14 = bVar16;\n      if (bVar15 == 0x50) {\n        if (param_10 == pbVar11 || (long)param_10 - (long)pbVar11 < 0) {\n          return 0;\n        }\n        bVar15 = *pbVar11;\n        pbVar11 = pbVar11 + 1;\n        if ((bVar15 & 0x60) == 0x60) {\n          return 0;\n        }\n        bVar16 = bVar15 & 7;\n        if (bVar16 == 2) {\n          lVar8 = 2;\n        }\n        else {\n          if (bVar16 < 3) {\n            if (bVar16 != 0) {\n              return 0;\n            }\n          }\n          else {\n            if (bVar16 == 3) {\n              lVar8 = 4;\n              goto LAB_0024b853;\n            }\n            if (bVar16 != 4) {\n              return 0;\n            }\n          }\n          lVar8 = 8;\n        }\nLAB_0024b853:\n        uVar5 = (int)param_10 - (int)pbVar11;\n        uVar4 = (uint)lVar8;\n        if ((bVar15 & 0xf0) == 0x50) {\n          uVar13 = -uVar4 & (uVar4 - 1) + ((int)pbVar11 - (int)param_9);\n          if (uVar5 < uVar13) {\n            return 0;\n          }\n          pbVar11 = pbVar11 + uVar13;\n          uVar5 = (int)param_10 - (int)pbVar11;\n        }\n        iVar6 = (int)pbVar11 - (int)param_8;\n        if (uVar5 < uVar4) {\n          return 0;\n        }\n        pbVar11 = pbVar11 + lVar8;\n      }\n      else {\n        if (bVar15 < 0x51) {\n          if (bVar15 != 0x4c) {\n            return 0;\n          }\n          if (param_10 == pbVar11 || (long)param_10 - (long)pbVar11 < 0) {\n            return 0;\n          }\n        }\n        else {\n          if (bVar15 != 0x52) {\n            if (bVar15 != 0x53) {\n              return 0;\n            }\n            goto LAB_0024b557;\n          }\n          if (param_10 == pbVar11 || (long)param_10 - (long)pbVar11 < 0) {\n            return 0;\n          }\n          bVar14 = *pbVar11;\n          if (4 < (bVar14 & 7)) {\n            return 0;\n          }\n          if ((1L << (bVar14 & 7) & 0x1dU) == 0) {\n            return 0;\n          }\n        }\n        pbVar11 = pbVar11 + 1;\n      }\nLAB_0024b557:\n      __s = __s + 1;\n      bVar15 = *__s;\n      bVar16 = bVar14;\n    }" ({ "{") (expression_statement "bVar14 = bVar16;" (assignment_expression "bVar14 = bVar16" (identifier "bVar14") (= "=") (identifier "bVar16")) (; ";")) (if_statement "if (bVar15 == 0x50) {\n        if (param_10 == pbVar11 || (long)param_10 - (long)pbVar11 < 0) {\n          return 0;\n        }\n        bVar15 = *pbVar11;\n        pbVar11 = pbVar11 + 1;\n        if ((bVar15 & 0x60) == 0x60) {\n          return 0;\n        }\n        bVar16 = bVar15 & 7;\n        if (bVar16 == 2) {\n          lVar8 = 2;\n        }\n        else {\n          if (bVar16 < 3) {\n            if (bVar16 != 0) {\n              return 0;\n            }\n          }\n          else {\n            if (bVar16 == 3) {\n              lVar8 = 4;\n              goto LAB_0024b853;\n            }\n            if (bVar16 != 4) {\n              return 0;\n            }\n          }\n          lVar8 = 8;\n        }\nLAB_0024b853:\n        uVar5 = (int)param_10 - (int)pbVar11;\n        uVar4 = (uint)lVar8;\n        if ((bVar15 & 0xf0) == 0x50) {\n          uVar13 = -uVar4 & (uVar4 - 1) + ((int)pbVar11 - (int)param_9);\n          if (uVar5 < uVar13) {\n            return 0;\n          }\n          pbVar11 = pbVar11 + uVar13;\n          uVar5 = (int)param_10 - (int)pbVar11;\n        }\n        iVar6 = (int)pbVar11 - (int)param_8;\n        if (uVar5 < uVar4) {\n          return 0;\n        }\n        pbVar11 = pbVar11 + lVar8;\n      }\n      else {\n        if (bVar15 < 0x51) {\n          if (bVar15 != 0x4c) {\n            return 0;\n          }\n          if (param_10 == pbVar11 || (long)param_10 - (long)pbVar11 < 0) {\n            return 0;\n          }\n        }\n        else {\n          if (bVar15 != 0x52) {\n            if (bVar15 != 0x53) {\n              return 0;\n            }\n            goto LAB_0024b557;\n          }\n          if (param_10 == pbVar11 || (long)param_10 - (long)pbVar11 < 0) {\n            return 0;\n          }\n          bVar14 = *pbVar11;\n          if (4 < (bVar14 & 7)) {\n            return 0;\n          }\n          if ((1L << (bVar14 & 7) & 0x1dU) == 0) {\n            return 0;\n          }\n        }\n        pbVar11 = pbVar11 + 1;\n      }" (if "if") (parenthesized_expression "(bVar15 == 0x50)" (( "(") (binary_expression "bVar15 == 0x50" (identifier "bVar15") (== "==") (number_literal "0x50")) () ")")) (compound_statement "{\n        if (param_10 == pbVar11 || (long)param_10 - (long)pbVar11 < 0) {\n          return 0;\n        }\n        bVar15 = *pbVar11;\n        pbVar11 = pbVar11 + 1;\n        if ((bVar15 & 0x60) == 0x60) {\n          return 0;\n        }\n        bVar16 = bVar15 & 7;\n        if (bVar16 == 2) {\n          lVar8 = 2;\n        }\n        else {\n          if (bVar16 < 3) {\n            if (bVar16 != 0) {\n              return 0;\n            }\n          }\n          else {\n            if (bVar16 == 3) {\n              lVar8 = 4;\n              goto LAB_0024b853;\n            }\n            if (bVar16 != 4) {\n              return 0;\n            }\n          }\n          lVar8 = 8;\n        }\nLAB_0024b853:\n        uVar5 = (int)param_10 - (int)pbVar11;\n        uVar4 = (uint)lVar8;\n        if ((bVar15 & 0xf0) == 0x50) {\n          uVar13 = -uVar4 & (uVar4 - 1) + ((int)pbVar11 - (int)param_9);\n          if (uVar5 < uVar13) {\n            return 0;\n          }\n          pbVar11 = pbVar11 + uVar13;\n          uVar5 = (int)param_10 - (int)pbVar11;\n        }\n        iVar6 = (int)pbVar11 - (int)param_8;\n        if (uVar5 < uVar4) {\n          return 0;\n        }\n        pbVar11 = pbVar11 + lVar8;\n      }" ({ "{") (if_statement "if (param_10 == pbVar11 || (long)param_10 - (long)pbVar11 < 0) {\n          return 0;\n        }" (if "if") (parenthesized_expression "(param_10 == pbVar11 || (long)param_10 - (long)pbVar11 < 0)" (( "(") (binary_expression "param_10 == pbVar11 || (long)param_10 - (long)pbVar11 < 0" (binary_expression "param_10 == pbVar11" (identifier "param_10") (== "==") (identifier "pbVar11")) (|| "||") (binary_expression "(long)param_10 - (long)pbVar11 < 0" (binary_expression "(long)param_10 - (long)pbVar11" (cast_expression "(long)param_10" (( "(") (type_descriptor "long" (sized_type_specifier "long" (long "long"))) () ")") (identifier "param_10")) (- "-") (cast_expression "(long)pbVar11" (( "(") (type_descriptor "long" (sized_type_specifier "long" (long "long"))) () ")") (identifier "pbVar11"))) (< "<") (number_literal "0"))) () ")")) (compound_statement "{\n          return 0;\n        }" ({ "{") (return_statement "return 0;" (return "return") (number_literal "0") (; ";")) (} "}"))) (expression_statement "bVar15 = *pbVar11;" (assignment_expression "bVar15 = *pbVar11" (identifier "bVar15") (= "=") (pointer_expression "*pbVar11" (* "*") (identifier "pbVar11"))) (; ";")) (expression_statement "pbVar11 = pbVar11 + 1;" (assignment_expression "pbVar11 = pbVar11 + 1" (identifier "pbVar11") (= "=") (binary_expression "pbVar11 + 1" (identifier "pbVar11") (+ "+") (number_literal "1"))) (; ";")) (if_statement "if ((bVar15 & 0x60) == 0x60) {\n          return 0;\n        }" (if "if") (parenthesized_expression "((bVar15 & 0x60) == 0x60)" (( "(") (binary_expression "(bVar15 & 0x60) == 0x60" (parenthesized_expression "(bVar15 & 0x60)" (( "(") (binary_expression "bVar15 & 0x60" (identifier "bVar15") (& "&") (number_literal "0x60")) () ")")) (== "==") (number_literal "0x60")) () ")")) (compound_statement "{\n          return 0;\n        }" ({ "{") (return_statement "return 0;" (return "return") (number_literal "0") (; ";")) (} "}"))) (expression_statement "bVar16 = bVar15 & 7;" (assignment_expression "bVar16 = bVar15 & 7" (identifier "bVar16") (= "=") (binary_expression "bVar15 & 7" (identifier "bVar15") (& "&") (number_literal "7"))) (; ";")) (if_statement "if (bVar16 == 2) {\n          lVar8 = 2;\n        }\n        else {\n          if (bVar16 < 3) {\n            if (bVar16 != 0) {\n              return 0;\n            }\n          }\n          else {\n            if (bVar16 == 3) {\n              lVar8 = 4;\n              goto LAB_0024b853;\n            }\n            if (bVar16 != 4) {\n              return 0;\n            }\n          }\n          lVar8 = 8;\n        }" (if "if") (parenthesized_expression "(bVar16 == 2)" (( "(") (binary_expression "bVar16 == 2" (identifier "bVar16") (== "==") (number_literal "2")) () ")")) (compound_statement "{\n          lVar8 = 2;\n        }" ({ "{") (expression_statement "lVar8 = 2;" (assignment_expression "lVar8 = 2" (identifier "lVar8") (= "=") (number_literal "2")) (; ";")) (} "}")) (else_clause "else {\n          if (bVar16 < 3) {\n            if (bVar16 != 0) {\n              return 0;\n            }\n          }\n          else {\n            if (bVar16 == 3) {\n              lVar8 = 4;\n              goto LAB_0024b853;\n            }\n            if (bVar16 != 4) {\n              return 0;\n            }\n          }\n          lVar8 = 8;\n        }" (else "else") (compound_statement "{\n          if (bVar16 < 3) {\n            if (bVar16 != 0) {\n              return 0;\n            }\n          }\n          else {\n            if (bVar16 == 3) {\n              lVar8 = 4;\n              goto LAB_0024b853;\n            }\n            if (bVar16 != 4) {\n              return 0;\n            }\n          }\n          lVar8 = 8;\n        }" ({ "{") (if_statement "if (bVar16 < 3) {\n            if (bVar16 != 0) {\n              return 0;\n            }\n          }\n          else {\n            if (bVar16 == 3) {\n              lVar8 = 4;\n              goto LAB_0024b853;\n            }\n            if (bVar16 != 4) {\n              return 0;\n            }\n          }" (if "if") (parenthesized_expression "(bVar16 < 3)" (( "(") (binary_expression "bVar16 < 3" (identifier "bVar16") (< "<") (number_literal "3")) () ")")) (compound_statement "{\n            if (bVar16 != 0) {\n              return 0;\n            }\n          }" ({ "{") (if_statement "if (bVar16 != 0) {\n              return 0;\n            }" (if "if") (parenthesized_expression "(bVar16 != 0)" (( "(") (binary_expression "bVar16 != 0" (identifier "bVar16") (!= "!=") (number_literal "0")) () ")")) (compound_statement "{\n              return 0;\n            }" ({ "{") (return_statement "return 0;" (return "return") (number_literal "0") (; ";")) (} "}"))) (} "}")) (else_clause "else {\n            if (bVar16 == 3) {\n              lVar8 = 4;\n              goto LAB_0024b853;\n            }\n            if (bVar16 != 4) {\n              return 0;\n            }\n          }" (else "else") (compound_statement "{\n            if (bVar16 == 3) {\n              lVar8 = 4;\n              goto LAB_0024b853;\n            }\n            if (bVar16 != 4) {\n              return 0;\n            }\n          }" ({ "{") (if_statement "if (bVar16 == 3) {\n              lVar8 = 4;\n              goto LAB_0024b853;\n            }" (if "if") (parenthesized_expression "(bVar16 == 3)" (( "(") (binary_expression "bVar16 == 3" (identifier "bVar16") (== "==") (number_literal "3")) () ")")) (compound_statement "{\n              lVar8 = 4;\n              goto LAB_0024b853;\n            }" ({ "{") (expression_statement "lVar8 = 4;" (assignment_expression "lVar8 = 4" (identifier "lVar8") (= "=") (number_literal "4")) (; ";")) (goto_statement "goto LAB_0024b853;" (goto "goto") (statement_identifier "LAB_0024b853") (; ";")) (} "}"))) (if_statement "if (bVar16 != 4) {\n              return 0;\n            }" (if "if") (parenthesized_expression "(bVar16 != 4)" (( "(") (binary_expression "bVar16 != 4" (identifier "bVar16") (!= "!=") (number_literal "4")) () ")")) (compound_statement "{\n              return 0;\n            }" ({ "{") (return_statement "return 0;" (return "return") (number_literal "0") (; ";")) (} "}"))) (} "}")))) (expression_statement "lVar8 = 8;" (assignment_expression "lVar8 = 8" (identifier "lVar8") (= "=") (number_literal "8")) (; ";")) (} "}")))) (labeled_statement "LAB_0024b853:\n        uVar5 = (int)param_10 - (int)pbVar11;" (statement_identifier "LAB_0024b853") (: ":") (expression_statement "uVar5 = (int)param_10 - (int)pbVar11;" (assignment_expression "uVar5 = (int)param_10 - (int)pbVar11" (identifier "uVar5") (= "=") (binary_expression "(int)param_10 - (int)pbVar11" (cast_expression "(int)param_10" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "param_10")) (- "-") (cast_expression "(int)pbVar11" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "pbVar11")))) (; ";"))) (expression_statement "uVar4 = (uint)lVar8;" (assignment_expression "uVar4 = (uint)lVar8" (identifier "uVar4") (= "=") (cast_expression "(uint)lVar8" (( "(") (type_descriptor "uint" (type_identifier "uint")) () ")") (identifier "lVar8"))) (; ";")) (if_statement "if ((bVar15 & 0xf0) == 0x50) {\n          uVar13 = -uVar4 & (uVar4 - 1) + ((int)pbVar11 - (int)param_9);\n          if (uVar5 < uVar13) {\n            return 0;\n          }\n          pbVar11 = pbVar11 + uVar13;\n          uVar5 = (int)param_10 - (int)pbVar11;\n        }" (if "if") (parenthesized_expression "((bVar15 & 0xf0) == 0x50)" (( "(") (binary_expression "(bVar15 & 0xf0) == 0x50" (parenthesized_expression "(bVar15 & 0xf0)" (( "(") (binary_expression "bVar15 & 0xf0" (identifier "bVar15") (& "&") (number_literal "0xf0")) () ")")) (== "==") (number_literal "0x50")) () ")")) (compound_statement "{\n          uVar13 = -uVar4 & (uVar4 - 1) + ((int)pbVar11 - (int)param_9);\n          if (uVar5 < uVar13) {\n            return 0;\n          }\n          pbVar11 = pbVar11 + uVar13;\n          uVar5 = (int)param_10 - (int)pbVar11;\n        }" ({ "{") (expression_statement "uVar13 = -uVar4 & (uVar4 - 1) + ((int)pbVar11 - (int)param_9);" (assignment_expression "uVar13 = -uVar4 & (uVar4 - 1) + ((int)pbVar11 - (int)param_9)" (identifier "uVar13") (= "=") (binary_expression "-uVar4 & (uVar4 - 1) + ((int)pbVar11 - (int)param_9)" (unary_expression "-uVar4" (- "-") (identifier "uVar4")) (& "&") (binary_expression "(uVar4 - 1) + ((int)pbVar11 - (int)param_9)" (parenthesized_expression "(uVar4 - 1)" (( "(") (binary_expression "uVar4 - 1" (identifier "uVar4") (- "-") (number_literal "1")) () ")")) (+ "+") (parenthesized_expression "((int)pbVar11 - (int)param_9)" (( "(") (binary_expression "(int)pbVar11 - (int)param_9" (cast_expression "(int)pbVar11" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "pbVar11")) (- "-") (cast_expression "(int)param_9" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "param_9"))) () ")"))))) (; ";")) (if_statement "if (uVar5 < uVar13) {\n            return 0;\n          }" (if "if") (parenthesized_expression "(uVar5 < uVar13)" (( "(") (binary_expression "uVar5 < uVar13" (identifier "uVar5") (< "<") (identifier "uVar13")) () ")")) (compound_statement "{\n            return 0;\n          }" ({ "{") (return_statement "return 0;" (return "return") (number_literal "0") (; ";")) (} "}"))) (expression_statement "pbVar11 = pbVar11 + uVar13;" (assignment_expression "pbVar11 = pbVar11 + uVar13" (identifier "pbVar11") (= "=") (binary_expression "pbVar11 + uVar13" (identifier "pbVar11") (+ "+") (identifier "uVar13"))) (; ";")) (expression_statement "uVar5 = (int)param_10 - (int)pbVar11;" (assignment_expression "uVar5 = (int)param_10 - (int)pbVar11" (identifier "uVar5") (= "=") (binary_expression "(int)param_10 - (int)pbVar11" (cast_expression "(int)param_10" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "param_10")) (- "-") (cast_expression "(int)pbVar11" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "pbVar11")))) (; ";")) (} "}"))) (expression_statement "iVar6 = (int)pbVar11 - (int)param_8;" (assignment_expression "iVar6 = (int)pbVar11 - (int)param_8" (identifier "iVar6") (= "=") (binary_expression "(int)pbVar11 - (int)param_8" (cast_expression "(int)pbVar11" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "pbVar11")) (- "-") (cast_expression "(int)param_8" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "param_8")))) (; ";")) (if_statement "if (uVar5 < uVar4) {\n          return 0;\n        }" (if "if") (parenthesized_expression "(uVar5 < uVar4)" (( "(") (binary_expression "uVar5 < uVar4" (identifier "uVar5") (< "<") (identifier "uVar4")) () ")")) (compound_statement "{\n          return 0;\n        }" ({ "{") (return_statement "return 0;" (return "return") (number_literal "0") (; ";")) (} "}"))) (expression_statement "pbVar11 = pbVar11 + lVar8;" (assignment_expression "pbVar11 = pbVar11 + lVar8" (identifier "pbVar11") (= "=") (binary_expression "pbVar11 + lVar8" (identifier "pbVar11") (+ "+") (identifier "lVar8"))) (; ";")) (} "}")) (else_clause "else {\n        if (bVar15 < 0x51) {\n          if (bVar15 != 0x4c) {\n            return 0;\n          }\n          if (param_10 == pbVar11 || (long)param_10 - (long)pbVar11 < 0) {\n            return 0;\n          }\n        }\n        else {\n          if (bVar15 != 0x52) {\n            if (bVar15 != 0x53) {\n              return 0;\n            }\n            goto LAB_0024b557;\n          }\n          if (param_10 == pbVar11 || (long)param_10 - (long)pbVar11 < 0) {\n            return 0;\n          }\n          bVar14 = *pbVar11;\n          if (4 < (bVar14 & 7)) {\n            return 0;\n          }\n          if ((1L << (bVar14 & 7) & 0x1dU) == 0) {\n            return 0;\n          }\n        }\n        pbVar11 = pbVar11 + 1;\n      }" (else "else") (compound_statement "{\n        if (bVar15 < 0x51) {\n          if (bVar15 != 0x4c) {\n            return 0;\n          }\n          if (param_10 == pbVar11 || (long)param_10 - (long)pbVar11 < 0) {\n            return 0;\n          }\n        }\n        else {\n          if (bVar15 != 0x52) {\n            if (bVar15 != 0x53) {\n              return 0;\n            }\n            goto LAB_0024b557;\n          }\n          if (param_10 == pbVar11 || (long)param_10 - (long)pbVar11 < 0) {\n            return 0;\n          }\n          bVar14 = *pbVar11;\n          if (4 < (bVar14 & 7)) {\n            return 0;\n          }\n          if ((1L << (bVar14 & 7) & 0x1dU) == 0) {\n            return 0;\n          }\n        }\n        pbVar11 = pbVar11 + 1;\n      }" ({ "{") (if_statement "if (bVar15 < 0x51) {\n          if (bVar15 != 0x4c) {\n            return 0;\n          }\n          if (param_10 == pbVar11 || (long)param_10 - (long)pbVar11 < 0) {\n            return 0;\n          }\n        }\n        else {\n          if (bVar15 != 0x52) {\n            if (bVar15 != 0x53) {\n              return 0;\n            }\n            goto LAB_0024b557;\n          }\n          if (param_10 == pbVar11 || (long)param_10 - (long)pbVar11 < 0) {\n            return 0;\n          }\n          bVar14 = *pbVar11;\n          if (4 < (bVar14 & 7)) {\n            return 0;\n          }\n          if ((1L << (bVar14 & 7) & 0x1dU) == 0) {\n            return 0;\n          }\n        }" (if "if") (parenthesized_expression "(bVar15 < 0x51)" (( "(") (binary_expression "bVar15 < 0x51" (identifier "bVar15") (< "<") (number_literal "0x51")) () ")")) (compound_statement "{\n          if (bVar15 != 0x4c) {\n            return 0;\n          }\n          if (param_10 == pbVar11 || (long)param_10 - (long)pbVar11 < 0) {\n            return 0;\n          }\n        }" ({ "{") (if_statement "if (bVar15 != 0x4c) {\n            return 0;\n          }" (if "if") (parenthesized_expression "(bVar15 != 0x4c)" (( "(") (binary_expression "bVar15 != 0x4c" (identifier "bVar15") (!= "!=") (number_literal "0x4c")) () ")")) (compound_statement "{\n            return 0;\n          }" ({ "{") (return_statement "return 0;" (return "return") (number_literal "0") (; ";")) (} "}"))) (if_statement "if (param_10 == pbVar11 || (long)param_10 - (long)pbVar11 < 0) {\n            return 0;\n          }" (if "if") (parenthesized_expression "(param_10 == pbVar11 || (long)param_10 - (long)pbVar11 < 0)" (( "(") (binary_expression "param_10 == pbVar11 || (long)param_10 - (long)pbVar11 < 0" (binary_expression "param_10 == pbVar11" (identifier "param_10") (== "==") (identifier "pbVar11")) (|| "||") (binary_expression "(long)param_10 - (long)pbVar11 < 0" (binary_expression "(long)param_10 - (long)pbVar11" (cast_expression "(long)param_10" (( "(") (type_descriptor "long" (sized_type_specifier "long" (long "long"))) () ")") (identifier "param_10")) (- "-") (cast_expression "(long)pbVar11" (( "(") (type_descriptor "long" (sized_type_specifier "long" (long "long"))) () ")") (identifier "pbVar11"))) (< "<") (number_literal "0"))) () ")")) (compound_statement "{\n            return 0;\n          }" ({ "{") (return_statement "return 0;" (return "return") (number_literal "0") (; ";")) (} "}"))) (} "}")) (else_clause "else {\n          if (bVar15 != 0x52) {\n            if (bVar15 != 0x53) {\n              return 0;\n            }\n            goto LAB_0024b557;\n          }\n          if (param_10 == pbVar11 || (long)param_10 - (long)pbVar11 < 0) {\n            return 0;\n          }\n          bVar14 = *pbVar11;\n          if (4 < (bVar14 & 7)) {\n            return 0;\n          }\n          if ((1L << (bVar14 & 7) & 0x1dU) == 0) {\n            return 0;\n          }\n        }" (else "else") (compound_statement "{\n          if (bVar15 != 0x52) {\n            if (bVar15 != 0x53) {\n              return 0;\n            }\n            goto LAB_0024b557;\n          }\n          if (param_10 == pbVar11 || (long)param_10 - (long)pbVar11 < 0) {\n            return 0;\n          }\n          bVar14 = *pbVar11;\n          if (4 < (bVar14 & 7)) {\n            return 0;\n          }\n          if ((1L << (bVar14 & 7) & 0x1dU) == 0) {\n            return 0;\n          }\n        }" ({ "{") (if_statement "if (bVar15 != 0x52) {\n            if (bVar15 != 0x53) {\n              return 0;\n            }\n            goto LAB_0024b557;\n          }" (if "if") (parenthesized_expression "(bVar15 != 0x52)" (( "(") (binary_expression "bVar15 != 0x52" (identifier "bVar15") (!= "!=") (number_literal "0x52")) () ")")) (compound_statement "{\n            if (bVar15 != 0x53) {\n              return 0;\n            }\n            goto LAB_0024b557;\n          }" ({ "{") (if_statement "if (bVar15 != 0x53) {\n              return 0;\n            }" (if "if") (parenthesized_expression "(bVar15 != 0x53)" (( "(") (binary_expression "bVar15 != 0x53" (identifier "bVar15") (!= "!=") (number_literal "0x53")) () ")")) (compound_statement "{\n              return 0;\n            }" ({ "{") (return_statement "return 0;" (return "return") (number_literal "0") (; ";")) (} "}"))) (goto_statement "goto LAB_0024b557;" (goto "goto") (statement_identifier "LAB_0024b557") (; ";")) (} "}"))) (if_statement "if (param_10 == pbVar11 || (long)param_10 - (long)pbVar11 < 0) {\n            return 0;\n          }" (if "if") (parenthesized_expression "(param_10 == pbVar11 || (long)param_10 - (long)pbVar11 < 0)" (( "(") (binary_expression "param_10 == pbVar11 || (long)param_10 - (long)pbVar11 < 0" (binary_expression "param_10 == pbVar11" (identifier "param_10") (== "==") (identifier "pbVar11")) (|| "||") (binary_expression "(long)param_10 - (long)pbVar11 < 0" (binary_expression "(long)param_10 - (long)pbVar11" (cast_expression "(long)param_10" (( "(") (type_descriptor "long" (sized_type_specifier "long" (long "long"))) () ")") (identifier "param_10")) (- "-") (cast_expression "(long)pbVar11" (( "(") (type_descriptor "long" (sized_type_specifier "long" (long "long"))) () ")") (identifier "pbVar11"))) (< "<") (number_literal "0"))) () ")")) (compound_statement "{\n            return 0;\n          }" ({ "{") (return_statement "return 0;" (return "return") (number_literal "0") (; ";")) (} "}"))) (expression_statement "bVar14 = *pbVar11;" (assignment_expression "bVar14 = *pbVar11" (identifier "bVar14") (= "=") (pointer_expression "*pbVar11" (* "*") (identifier "pbVar11"))) (; ";")) (if_statement "if (4 < (bVar14 & 7)) {\n            return 0;\n          }" (if "if") (parenthesized_expression "(4 < (bVar14 & 7))" (( "(") (binary_expression "4 < (bVar14 & 7)" (number_literal "4") (< "<") (parenthesized_expression "(bVar14 & 7)" (( "(") (binary_expression "bVar14 & 7" (identifier "bVar14") (& "&") (number_literal "7")) () ")"))) () ")")) (compound_statement "{\n            return 0;\n          }" ({ "{") (return_statement "return 0;" (return "return") (number_literal "0") (; ";")) (} "}"))) (if_statement "if ((1L << (bVar14 & 7) & 0x1dU) == 0) {\n            return 0;\n          }" (if "if") (parenthesized_expression "((1L << (bVar14 & 7) & 0x1dU) == 0)" (( "(") (binary_expression "(1L << (bVar14 & 7) & 0x1dU) == 0" (parenthesized_expression "(1L << (bVar14 & 7) & 0x1dU)" (( "(") (binary_expression "1L << (bVar14 & 7) & 0x1dU" (binary_expression "1L << (bVar14 & 7)" (number_literal "1L") (<< "<<") (parenthesized_expression "(bVar14 & 7)" (( "(") (binary_expression "bVar14 & 7" (identifier "bVar14") (& "&") (number_literal "7")) () ")"))) (& "&") (number_literal "0x1dU")) () ")")) (== "==") (number_literal "0")) () ")")) (compound_statement "{\n            return 0;\n          }" ({ "{") (return_statement "return 0;" (return "return") (number_literal "0") (; ";")) (} "}"))) (} "}")))) (expression_statement "pbVar11 = pbVar11 + 1;" (assignment_expression "pbVar11 = pbVar11 + 1" (identifier "pbVar11") (= "=") (binary_expression "pbVar11 + 1" (identifier "pbVar11") (+ "+") (number_literal "1"))) (; ";")) (} "}")))) (labeled_statement "LAB_0024b557:\n      __s = __s + 1;" (statement_identifier "LAB_0024b557") (: ":") (expression_statement "__s = __s + 1;" (assignment_expression "__s = __s + 1" (identifier "__s") (= "=") (binary_expression "__s + 1" (identifier "__s") (+ "+") (number_literal "1"))) (; ";"))) (expression_statement "bVar15 = *__s;" (assignment_expression "bVar15 = *__s" (identifier "bVar15") (= "=") (pointer_expression "*__s" (* "*") (identifier "__s"))) (; ";")) (expression_statement "bVar16 = bVar14;" (assignment_expression "bVar16 = bVar14" (identifier "bVar16") (= "=") (identifier "bVar14")) (; ";")) (} "}")) (while "while") (parenthesized_expression "(bVar15 != 0)" (( "(") (binary_expression "bVar15 != 0" (identifier "bVar15") (!= "!=") (number_literal "0")) () ")")) (; ";")) (if_statement "if (iVar6 == -1) goto LAB_0024b955;" (if "if") (parenthesized_expression "(iVar6 == -1)" (( "(") (binary_expression "iVar6 == -1" (identifier "iVar6") (== "==") (number_literal "-1")) () ")")) (goto_statement "goto LAB_0024b955;" (goto "goto") (statement_identifier "LAB_0024b955") (; ";"))) (expression_statement "iVar3 = FUN_001fab10(param_11,(long)iVar6);" (assignment_expression "iVar3 = FUN_001fab10(param_11,(long)iVar6)" (identifier "iVar3") (= "=") (call_expression "FUN_001fab10(param_11,(long)iVar6)" (identifier "FUN_001fab10") (argument_list "(param_11,(long)iVar6)" (( "(") (identifier "param_11") (, ",") (cast_expression "(long)iVar6" (( "(") (type_descriptor "long" (sized_type_specifier "long" (long "long"))) () ")") (identifier "iVar6")) () ")")))) (; ";")) (if_statement "if (0 < iVar3) {\n      return 0;\n    }" (if "if") (parenthesized_expression "(0 < iVar3)" (( "(") (binary_expression "0 < iVar3" (number_literal "0") (< "<") (identifier "iVar3")) () ")")) (compound_statement "{\n      return 0;\n    }" ({ "{") (return_statement "return 0;" (return "return") (number_literal "0") (; ";")) (} "}"))) (expression_statement "lVar8 = FUN_001faa60(param_11);" (assignment_expression "lVar8 = FUN_001faa60(param_11)" (identifier "lVar8") (= "=") (call_expression "FUN_001faa60(param_11)" (identifier "FUN_001faa60") (argument_list "(param_11)" (( "(") (identifier "param_11") () ")")))) (; ";")) (if_statement "if (iVar6 != lVar8) {\n      return 0;\n    }" (if "if") (parenthesized_expression "(iVar6 != lVar8)" (( "(") (binary_expression "iVar6 != lVar8" (identifier "iVar6") (!= "!=") (identifier "lVar8")) () ")")) (compound_statement "{\n      return 0;\n    }" ({ "{") (return_statement "return 0;" (return "return") (number_literal "0") (; ";")) (} "}"))) (expression_statement "uVar4 = FUN_001faa80(param_11);" (assignment_expression "uVar4 = FUN_001faa80(param_11)" (identifier "uVar4") (= "=") (call_expression "FUN_001faa80(param_11)" (identifier "FUN_001faa80") (argument_list "(param_11)" (( "(") (identifier "param_11") () ")")))) (; ";")) (if_statement "if (uVar4 == 0xffffffff) {\n      return 0;\n    }" (if "if") (parenthesized_expression "(uVar4 == 0xffffffff)" (( "(") (binary_expression "uVar4 == 0xffffffff" (identifier "uVar4") (== "==") (number_literal "0xffffffff")) () ")")) (compound_statement "{\n      return 0;\n    }" ({ "{") (return_statement "return 0;" (return "return") (number_literal "0") (; ";")) (} "}"))) (expression_statement "uVar5 = (**(code **)(*param_2 + 0x118))(param_2);" (assignment_expression "uVar5 = (**(code **)(*param_2 + 0x118))(param_2)" (identifier "uVar5") (= "=") (call_expression "(**(code **)(*param_2 + 0x118))(param_2)" (parenthesized_expression "(**(code **)(*param_2 + 0x118))" (( "(") (pointer_expression "**(code **)(*param_2 + 0x118)" (* "*") (pointer_expression "*(code **)(*param_2 + 0x118)" (* "*") (cast_expression "(code **)(*param_2 + 0x118)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(*param_2 + 0x118)" (( "(") (binary_expression "*param_2 + 0x118" (pointer_expression "*param_2" (* "*") (identifier "param_2")) (+ "+") (number_literal "0x118")) () ")"))))) () ")")) (argument_list "(param_2)" (( "(") (identifier "param_2") () ")")))) (; ";")) (if_statement "if (uVar4 < uVar5) {\n      local_cd = '\0';\n      pcVar21 = "";\n      uVar18 = extraout_RDX;\n    }\n    else {\n      uVar18 = param_5 % 0x18;\n      if (param_5 / 0x18 <= (ulong)uVar4) {\n        return 0;\n      }\n      uVar9 = (ulong)*(uint *)(param_4 + (ulong)(uVar4 * 0x18));\n      if (param_7 <= uVar9) {\n        return 0;\n      }\n      pcVar21 = (char *)(param_6 + uVar9);\n    }" (if "if") (parenthesized_expression "(uVar4 < uVar5)" (( "(") (binary_expression "uVar4 < uVar5" (identifier "uVar4") (< "<") (identifier "uVar5")) () ")")) (compound_statement "{\n      local_cd = '\0';\n      pcVar21 = "";\n      uVar18 = extraout_RDX;\n    }" ({ "{") (expression_statement "local_cd = '\0';" (assignment_expression "local_cd = '\0'" (identifier "local_cd") (= "=") (char_literal "'\0'" (' "'") (escape_sequence "\0") (' "'"))) (; ";")) (expression_statement "pcVar21 = "";" (assignment_expression "pcVar21 = """ (identifier "pcVar21") (= "=") (string_literal """" (" """) (" """))) (; ";")) (expression_statement "uVar18 = extraout_RDX;" (assignment_expression "uVar18 = extraout_RDX" (identifier "uVar18") (= "=") (identifier "extraout_RDX")) (; ";")) (} "}")) (else_clause "else {\n      uVar18 = param_5 % 0x18;\n      if (param_5 / 0x18 <= (ulong)uVar4) {\n        return 0;\n      }\n      uVar9 = (ulong)*(uint *)(param_4 + (ulong)(uVar4 * 0x18));\n      if (param_7 <= uVar9) {\n        return 0;\n      }\n      pcVar21 = (char *)(param_6 + uVar9);\n    }" (else "else") (compound_statement "{\n      uVar18 = param_5 % 0x18;\n      if (param_5 / 0x18 <= (ulong)uVar4) {\n        return 0;\n      }\n      uVar9 = (ulong)*(uint *)(param_4 + (ulong)(uVar4 * 0x18));\n      if (param_7 <= uVar9) {\n        return 0;\n      }\n      pcVar21 = (char *)(param_6 + uVar9);\n    }" ({ "{") (expression_statement "uVar18 = param_5 % 0x18;" (assignment_expression "uVar18 = param_5 % 0x18" (identifier "uVar18") (= "=") (binary_expression "param_5 % 0x18" (identifier "param_5") (% "%") (number_literal "0x18"))) (; ";")) (if_statement "if (param_5 / 0x18 <= (ulong)uVar4) {\n        return 0;\n      }" (if "if") (parenthesized_expression "(param_5 / 0x18 <= (ulong)uVar4)" (( "(") (binary_expression "param_5 / 0x18 <= (ulong)uVar4" (binary_expression "param_5 / 0x18" (identifier "param_5") (/ "/") (number_literal "0x18")) (<= "<=") (cast_expression "(ulong)uVar4" (( "(") (type_descriptor "ulong" (type_identifier "ulong")) () ")") (identifier "uVar4"))) () ")")) (compound_statement "{\n        return 0;\n      }" ({ "{") (return_statement "return 0;" (return "return") (number_literal "0") (; ";")) (} "}"))) (expression_statement "uVar9 = (ulong)*(uint *)(param_4 + (ulong)(uVar4 * 0x18));" (assignment_expression "uVar9 = (ulong)*(uint *)(param_4 + (ulong)(uVar4 * 0x18))" (identifier "uVar9") (= "=") (binary_expression "(ulong)*(uint *)(param_4 + (ulong)(uVar4 * 0x18))" (parenthesized_expression "(ulong)" (( "(") (identifier "ulong") () ")")) (* "*") (cast_expression "(uint *)(param_4 + (ulong)(uVar4 * 0x18))" (( "(") (type_descriptor "uint *" (type_identifier "uint") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_4 + (ulong)(uVar4 * 0x18))" (( "(") (binary_expression "param_4 + (ulong)(uVar4 * 0x18)" (identifier "param_4") (+ "+") (call_expression "(ulong)(uVar4 * 0x18)" (parenthesized_expression "(ulong)" (( "(") (identifier "ulong") () ")")) (argument_list "(uVar4 * 0x18)" (( "(") (binary_expression "uVar4 * 0x18" (identifier "uVar4") (* "*") (number_literal "0x18")) () ")")))) () ")"))))) (; ";")) (if_statement "if (param_7 <= uVar9) {\n        return 0;\n      }" (if "if") (parenthesized_expression "(param_7 <= uVar9)" (( "(") (binary_expression "param_7 <= uVar9" (identifier "param_7") (<= "<=") (identifier "uVar9")) () ")")) (compound_statement "{\n        return 0;\n      }" ({ "{") (return_statement "return 0;" (return "return") (number_literal "0") (; ";")) (} "}"))) (expression_statement "pcVar21 = (char *)(param_6 + uVar9);" (assignment_expression "pcVar21 = (char *)(param_6 + uVar9)" (identifier "pcVar21") (= "=") (cast_expression "(char *)(param_6 + uVar9)" (( "(") (type_descriptor "char *" (primitive_type "char") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_6 + uVar9)" (( "(") (binary_expression "param_6 + uVar9" (identifier "param_6") (+ "+") (identifier "uVar9")) () ")")))) (; ";")) (} "}")))) (expression_statement "iVar6 = FUN_001fab10(param_11,(long)(iVar6 + 1),uVar18);" (assignment_expression "iVar6 = FUN_001fab10(param_11,(long)(iVar6 + 1),uVar18)" (identifier "iVar6") (= "=") (call_expression "FUN_001fab10(param_11,(long)(iVar6 + 1),uVar18)" (identifier "FUN_001fab10") (argument_list "(param_11,(long)(iVar6 + 1),uVar18)" (( "(") (identifier "param_11") (, ",") (cast_expression "(long)(iVar6 + 1)" (( "(") (type_descriptor "long" (sized_type_specifier "long" (long "long"))) () ")") (parenthesized_expression "(iVar6 + 1)" (( "(") (binary_expression "iVar6 + 1" (identifier "iVar6") (+ "+") (number_literal "1")) () ")"))) (, ",") (identifier "uVar18") () ")")))) (; ";")) (if_statement "if (iVar6 != 1) {\n                    \n      FUN_0016cdf0("../../gold/ehframe.cc",0x3af,"read_cie");\n    }" (if "if") (parenthesized_expression "(iVar6 != 1)" (( "(") (binary_expression "iVar6 != 1" (identifier "iVar6") (!= "!=") (number_literal "1")) () ")")) (compound_statement "{\n                    \n      FUN_0016cdf0("../../gold/ehframe.cc",0x3af,"read_cie");\n    }" ({ "{") (expression_statement "FUN_0016cdf0("../../gold/ehframe.cc",0x3af,"read_cie");" (call_expression "FUN_0016cdf0("../../gold/ehframe.cc",0x3af,"read_cie")" (identifier "FUN_0016cdf0") (argument_list "("../../gold/ehframe.cc",0x3af,"read_cie")" (( "(") (string_literal ""../../gold/ehframe.cc"" (" """) (string_content "../../gold/ehframe.cc") (" """)) (, ",") (number_literal "0x3af") (, ",") (string_literal ""read_cie"" (" """) (string_content "read_cie") (" """)) () ")"))) (; ";")) (} "}"))) (} "}")))) (expression_statement "iVar6 = FUN_001fab10(param_11,(long)param_10 - param_8);" (assignment_expression "iVar6 = FUN_001fab10(param_11,(long)param_10 - param_8)" (identifier "iVar6") (= "=") (call_expression "FUN_001fab10(param_11,(long)param_10 - param_8)" (identifier "FUN_001fab10") (argument_list "(param_11,(long)param_10 - param_8)" (( "(") (identifier "param_11") (, ",") (binary_expression "(long)param_10 - param_8" (cast_expression "(long)param_10" (( "(") (type_descriptor "long" (sized_type_specifier "long" (long "long"))) () ")") (identifier "param_10")) (- "-") (identifier "param_8")) () ")")))) (; ";")) (if_statement "if (0 < iVar6) {\n    return 0;\n  }" (if "if") (parenthesized_expression "(0 < iVar6)" (( "(") (binary_expression "0 < iVar6" (number_literal "0") (< "<") (identifier "iVar6")) () ")")) (compound_statement "{\n    return 0;\n  }" ({ "{") (return_statement "return 0;" (return "return") (number_literal "0") (; ";")) (} "}"))) (expression_statement "lVar8 = (long)(param_9 + -8) - param_8;" (assignment_expression "lVar8 = (long)(param_9 + -8) - param_8" (identifier "lVar8") (= "=") (binary_expression "(long)(param_9 + -8) - param_8" (cast_expression "(long)(param_9 + -8)" (( "(") (type_descriptor "long" (sized_type_specifier "long" (long "long"))) () ")") (parenthesized_expression "(param_9 + -8)" (( "(") (binary_expression "param_9 + -8" (identifier "param_9") (+ "+") (number_literal "-8")) () ")"))) (- "-") (identifier "param_8"))) (; ";")) (expression_statement "pcVar19 = (char *)0xffffffffffffffff;" (assignment_expression "pcVar19 = (char *)0xffffffffffffffff" (identifier "pcVar19") (= "=") (cast_expression "(char *)0xffffffffffffffff" (( "(") (type_descriptor "char *" (primitive_type "char") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0xffffffffffffffff"))) (; ";")) (expression_statement "local_98[0] = local_88;" (assignment_expression "local_98[0] = local_88" (subscript_expression "local_98[0]" (identifier "local_98") ([ "[") (number_literal "0") (] "]")) (= "=") (identifier "local_88")) (; ";")) (if_statement "if (pcVar21 != (char *)0x0) {\n    uVar18 = 0xffffffffffffffff;\n    pcVar19 = pcVar21;\n    do {\n      if (uVar18 == 0) break;\n      uVar18 = uVar18 - 1;\n      cVar2 = *pcVar19;\n      pcVar19 = pcVar19 + (ulong)bVar22 * -2 + 1;\n    } while (cVar2 != '\0');\n    pcVar19 = pcVar21 + (~uVar18 - 1);\n  }" (if "if") (parenthesized_expression "(pcVar21 != (char *)0x0)" (( "(") (binary_expression "pcVar21 != (char *)0x0" (identifier "pcVar21") (!= "!=") (cast_expression "(char *)0x0" (( "(") (type_descriptor "char *" (primitive_type "char") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0"))) () ")")) (compound_statement "{\n    uVar18 = 0xffffffffffffffff;\n    pcVar19 = pcVar21;\n    do {\n      if (uVar18 == 0) break;\n      uVar18 = uVar18 - 1;\n      cVar2 = *pcVar19;\n      pcVar19 = pcVar19 + (ulong)bVar22 * -2 + 1;\n    } while (cVar2 != '\0');\n    pcVar19 = pcVar21 + (~uVar18 - 1);\n  }" ({ "{") (expression_statement "uVar18 = 0xffffffffffffffff;" (assignment_expression "uVar18 = 0xffffffffffffffff" (identifier "uVar18") (= "=") (number_literal "0xffffffffffffffff")) (; ";")) (expression_statement "pcVar19 = pcVar21;" (assignment_expression "pcVar19 = pcVar21" (identifier "pcVar19") (= "=") (identifier "pcVar21")) (; ";")) (do_statement "do {\n      if (uVar18 == 0) break;\n      uVar18 = uVar18 - 1;\n      cVar2 = *pcVar19;\n      pcVar19 = pcVar19 + (ulong)bVar22 * -2 + 1;\n    } while (cVar2 != '\0');" (do "do") (compound_statement "{\n      if (uVar18 == 0) break;\n      uVar18 = uVar18 - 1;\n      cVar2 = *pcVar19;\n      pcVar19 = pcVar19 + (ulong)bVar22 * -2 + 1;\n    }" ({ "{") (if_statement "if (uVar18 == 0) break;" (if "if") (parenthesized_expression "(uVar18 == 0)" (( "(") (binary_expression "uVar18 == 0" (identifier "uVar18") (== "==") (number_literal "0")) () ")")) (break_statement "break;" (break "break") (; ";"))) (expression_statement "uVar18 = uVar18 - 1;" (assignment_expression "uVar18 = uVar18 - 1" (identifier "uVar18") (= "=") (binary_expression "uVar18 - 1" (identifier "uVar18") (- "-") (number_literal "1"))) (; ";")) (expression_statement "cVar2 = *pcVar19;" (assignment_expression "cVar2 = *pcVar19" (identifier "cVar2") (= "=") (pointer_expression "*pcVar19" (* "*") (identifier "pcVar19"))) (; ";")) (expression_statement "pcVar19 = pcVar19 + (ulong)bVar22 * -2 + 1;" (assignment_expression "pcVar19 = pcVar19 + (ulong)bVar22 * -2 + 1" (identifier "pcVar19") (= "=") (binary_expression "pcVar19 + (ulong)bVar22 * -2 + 1" (binary_expression "pcVar19 + (ulong)bVar22 * -2" (identifier "pcVar19") (+ "+") (binary_expression "(ulong)bVar22 * -2" (cast_expression "(ulong)bVar22" (( "(") (type_descriptor "ulong" (type_identifier "ulong")) () ")") (identifier "bVar22")) (* "*") (number_literal "-2"))) (+ "+") (number_literal "1"))) (; ";")) (} "}")) (while "while") (parenthesized_expression "(cVar2 != '\0')" (( "(") (binary_expression "cVar2 != '\0'" (identifier "cVar2") (!= "!=") (char_literal "'\0'" (' "'") (escape_sequence "\0") (' "'"))) () ")")) (; ";")) (expression_statement "pcVar19 = pcVar21 + (~uVar18 - 1);" (assignment_expression "pcVar19 = pcVar21 + (~uVar18 - 1)" (identifier "pcVar19") (= "=") (binary_expression "pcVar21 + (~uVar18 - 1)" (identifier "pcVar21") (+ "+") (parenthesized_expression "(~uVar18 - 1)" (( "(") (binary_expression "~uVar18 - 1" (unary_expression "~uVar18" (~ "~") (identifier "uVar18")) (- "-") (number_literal "1")) () ")")))) (; ";")) (} "}"))) (expression_statement "local_b8 = param_2;" (assignment_expression "local_b8 = param_2" (identifier "local_b8") (= "=") (identifier "param_2")) (; ";")) (expression_statement "local_b0 = param_3;" (assignment_expression "local_b0 = param_3" (identifier "local_b0") (= "=") (identifier "param_3")) (; ";")) (expression_statement "local_a8 = lVar8;" (assignment_expression "local_a8 = lVar8" (identifier "local_a8") (= "=") (identifier "lVar8")) (; ";")) (expression_statement "local_a0 = bVar14;" (assignment_expression "local_a0 = bVar14" (identifier "local_a0") (= "=") (identifier "bVar14")) (; ";")) (expression_statement "FUN_0015cbe0(local_98,pcVar21,pcVar19);" (call_expression "FUN_0015cbe0(local_98,pcVar21,pcVar19)" (identifier "FUN_0015cbe0") (argument_list "(local_98,pcVar21,pcVar19)" (( "(") (identifier "local_98") (, ",") (identifier "pcVar21") (, ",") (identifier "pcVar19") () ")"))) (; ";")) (expression_statement "local_60[0] = local_50;" (assignment_expression "local_60[0] = local_50" (subscript_expression "local_60[0]" (identifier "local_60") ([ "[") (number_literal "0") (] "]")) (= "=") (identifier "local_50")) (; ";")) (expression_statement "local_78 = 0;" (assignment_expression "local_78 = 0" (identifier "local_78") (= "=") (number_literal "0")) (; ";")) (expression_statement "local_70 = 0;" (assignment_expression "local_70 = 0" (identifier "local_70") (= "=") (number_literal "0")) (; ";")) (expression_statement "local_68 = 0;" (assignment_expression "local_68 = 0" (identifier "local_68") (= "=") (number_literal "0")) (; ";")) (expression_statement "FUN_0015cbe0(local_60,param_9,param_10);" (call_expression "FUN_0015cbe0(local_60,param_9,param_10)" (identifier "FUN_0015cbe0") (argument_list "(local_60,param_9,param_10)" (( "(") (identifier "local_60") (, ",") (identifier "param_9") (, ",") (identifier "param_10") () ")"))) (; ";")) (if_statement "if (local_cd != '\0') {\n    local_c8 = &local_b8;\n    lVar10 = FUN_00248330(param_1 + 0x40);\n    if (lVar10 == param_1 + 0x48) {\n      plVar1 = (long *)param_13[1];\n      for (plVar20 = (long *)*param_13; plVar20 != plVar1; plVar20 = plVar20 + 2) {\n        pplVar12 = (long **)*plVar20;\n        cVar2 = FUN_002476d0(pplVar12,&local_b8);\n        if (cVar2 != '\0') goto LAB_0024b77c;\n      }\n    }\n    else {\n      pplVar12 = *(long ***)(lVar10 + 0x20);\nLAB_0024b77c:\n      if (pplVar12 != (long **)0x0) {\n                    \n        FUN_0019a930(param_2,param_1,param_3,lVar8,(long)param_10 - (long)(param_9 + -8),\n                     0xffffffffffffffff);\n        goto LAB_0024b7a5;\n      }\n    }\n  }" (if "if") (parenthesized_expression "(local_cd != '\0')" (( "(") (binary_expression "local_cd != '\0'" (identifier "local_cd") (!= "!=") (char_literal "'\0'" (' "'") (escape_sequence "\0") (' "'"))) () ")")) (compound_statement "{\n    local_c8 = &local_b8;\n    lVar10 = FUN_00248330(param_1 + 0x40);\n    if (lVar10 == param_1 + 0x48) {\n      plVar1 = (long *)param_13[1];\n      for (plVar20 = (long *)*param_13; plVar20 != plVar1; plVar20 = plVar20 + 2) {\n        pplVar12 = (long **)*plVar20;\n        cVar2 = FUN_002476d0(pplVar12,&local_b8);\n        if (cVar2 != '\0') goto LAB_0024b77c;\n      }\n    }\n    else {\n      pplVar12 = *(long ***)(lVar10 + 0x20);\nLAB_0024b77c:\n      if (pplVar12 != (long **)0x0) {\n                    \n        FUN_0019a930(param_2,param_1,param_3,lVar8,(long)param_10 - (long)(param_9 + -8),\n                     0xffffffffffffffff);\n        goto LAB_0024b7a5;\n      }\n    }\n  }" ({ "{") (expression_statement "local_c8 = &local_b8;" (assignment_expression "local_c8 = &local_b8" (identifier "local_c8") (= "=") (pointer_expression "&local_b8" (& "&") (identifier "local_b8"))) (; ";")) (expression_statement "lVar10 = FUN_00248330(param_1 + 0x40);" (assignment_expression "lVar10 = FUN_00248330(param_1 + 0x40)" (identifier "lVar10") (= "=") (call_expression "FUN_00248330(param_1 + 0x40)" (identifier "FUN_00248330") (argument_list "(param_1 + 0x40)" (( "(") (binary_expression "param_1 + 0x40" (identifier "param_1") (+ "+") (number_literal "0x40")) () ")")))) (; ";")) (if_statement "if (lVar10 == param_1 + 0x48) {\n      plVar1 = (long *)param_13[1];\n      for (plVar20 = (long *)*param_13; plVar20 != plVar1; plVar20 = plVar20 + 2) {\n        pplVar12 = (long **)*plVar20;\n        cVar2 = FUN_002476d0(pplVar12,&local_b8);\n        if (cVar2 != '\0') goto LAB_0024b77c;\n      }\n    }\n    else {\n      pplVar12 = *(long ***)(lVar10 + 0x20);\nLAB_0024b77c:\n      if (pplVar12 != (long **)0x0) {\n                    \n        FUN_0019a930(param_2,param_1,param_3,lVar8,(long)param_10 - (long)(param_9 + -8),\n                     0xffffffffffffffff);\n        goto LAB_0024b7a5;\n      }\n    }" (if "if") (parenthesized_expression "(lVar10 == param_1 + 0x48)" (( "(") (binary_expression "lVar10 == param_1 + 0x48" (identifier "lVar10") (== "==") (binary_expression "param_1 + 0x48" (identifier "param_1") (+ "+") (number_literal "0x48"))) () ")")) (compound_statement "{\n      plVar1 = (long *)param_13[1];\n      for (plVar20 = (long *)*param_13; plVar20 != plVar1; plVar20 = plVar20 + 2) {\n        pplVar12 = (long **)*plVar20;\n        cVar2 = FUN_002476d0(pplVar12,&local_b8);\n        if (cVar2 != '\0') goto LAB_0024b77c;\n      }\n    }" ({ "{") (expression_statement "plVar1 = (long *)param_13[1];" (assignment_expression "plVar1 = (long *)param_13[1]" (identifier "plVar1") (= "=") (cast_expression "(long *)param_13[1]" (( "(") (type_descriptor "long *" (sized_type_specifier "long" (long "long")) (abstract_pointer_declarator "*" (* "*"))) () ")") (subscript_expression "param_13[1]" (identifier "param_13") ([ "[") (number_literal "1") (] "]")))) (; ";")) (for_statement "for (plVar20 = (long *)*param_13; plVar20 != plVar1; plVar20 = plVar20 + 2) {\n        pplVar12 = (long **)*plVar20;\n        cVar2 = FUN_002476d0(pplVar12,&local_b8);\n        if (cVar2 != '\0') goto LAB_0024b77c;\n      }" (for "for") (( "(") (assignment_expression "plVar20 = (long *)*param_13" (identifier "plVar20") (= "=") (cast_expression "(long *)*param_13" (( "(") (type_descriptor "long *" (sized_type_specifier "long" (long "long")) (abstract_pointer_declarator "*" (* "*"))) () ")") (pointer_expression "*param_13" (* "*") (identifier "param_13")))) (; ";") (binary_expression "plVar20 != plVar1" (identifier "plVar20") (!= "!=") (identifier "plVar1")) (; ";") (assignment_expression "plVar20 = plVar20 + 2" (identifier "plVar20") (= "=") (binary_expression "plVar20 + 2" (identifier "plVar20") (+ "+") (number_literal "2"))) () ")") (compound_statement "{\n        pplVar12 = (long **)*plVar20;\n        cVar2 = FUN_002476d0(pplVar12,&local_b8);\n        if (cVar2 != '\0') goto LAB_0024b77c;\n      }" ({ "{") (expression_statement "pplVar12 = (long **)*plVar20;" (assignment_expression "pplVar12 = (long **)*plVar20" (identifier "pplVar12") (= "=") (cast_expression "(long **)*plVar20" (( "(") (type_descriptor "long **" (sized_type_specifier "long" (long "long")) (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (pointer_expression "*plVar20" (* "*") (identifier "plVar20")))) (; ";")) (expression_statement "cVar2 = FUN_002476d0(pplVar12,&local_b8);" (assignment_expression "cVar2 = FUN_002476d0(pplVar12,&local_b8)" (identifier "cVar2") (= "=") (call_expression "FUN_002476d0(pplVar12,&local_b8)" (identifier "FUN_002476d0") (argument_list "(pplVar12,&local_b8)" (( "(") (identifier "pplVar12") (, ",") (pointer_expression "&local_b8" (& "&") (identifier "local_b8")) () ")")))) (; ";")) (if_statement "if (cVar2 != '\0') goto LAB_0024b77c;" (if "if") (parenthesized_expression "(cVar2 != '\0')" (( "(") (binary_expression "cVar2 != '\0'" (identifier "cVar2") (!= "!=") (char_literal "'\0'" (' "'") (escape_sequence "\0") (' "'"))) () ")")) (goto_statement "goto LAB_0024b77c;" (goto "goto") (statement_identifier "LAB_0024b77c") (; ";"))) (} "}"))) (} "}")) (else_clause "else {\n      pplVar12 = *(long ***)(lVar10 + 0x20);\nLAB_0024b77c:\n      if (pplVar12 != (long **)0x0) {\n                    \n        FUN_0019a930(param_2,param_1,param_3,lVar8,(long)param_10 - (long)(param_9 + -8),\n                     0xffffffffffffffff);\n        goto LAB_0024b7a5;\n      }\n    }" (else "else") (compound_statement "{\n      pplVar12 = *(long ***)(lVar10 + 0x20);\nLAB_0024b77c:\n      if (pplVar12 != (long **)0x0) {\n                    \n        FUN_0019a930(param_2,param_1,param_3,lVar8,(long)param_10 - (long)(param_9 + -8),\n                     0xffffffffffffffff);\n        goto LAB_0024b7a5;\n      }\n    }" ({ "{") (expression_statement "pplVar12 = *(long ***)(lVar10 + 0x20);" (assignment_expression "pplVar12 = *(long ***)(lVar10 + 0x20)" (identifier "pplVar12") (= "=") (pointer_expression "*(long ***)(lVar10 + 0x20)" (* "*") (cast_expression "(long ***)(lVar10 + 0x20)" (( "(") (type_descriptor "long ***" (sized_type_specifier "long" (long "long")) (abstract_pointer_declarator "***" (* "*") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*"))))) () ")") (parenthesized_expression "(lVar10 + 0x20)" (( "(") (binary_expression "lVar10 + 0x20" (identifier "lVar10") (+ "+") (number_literal "0x20")) () ")"))))) (; ";")) (labeled_statement "LAB_0024b77c:\n      if (pplVar12 != (long **)0x0) {\n                    \n        FUN_0019a930(param_2,param_1,param_3,lVar8,(long)param_10 - (long)(param_9 + -8),\n                     0xffffffffffffffff);\n        goto LAB_0024b7a5;\n      }" (statement_identifier "LAB_0024b77c") (: ":") (if_statement "if (pplVar12 != (long **)0x0) {\n                    \n        FUN_0019a930(param_2,param_1,param_3,lVar8,(long)param_10 - (long)(param_9 + -8),\n                     0xffffffffffffffff);\n        goto LAB_0024b7a5;\n      }" (if "if") (parenthesized_expression "(pplVar12 != (long **)0x0)" (( "(") (binary_expression "pplVar12 != (long **)0x0" (identifier "pplVar12") (!= "!=") (cast_expression "(long **)0x0" (( "(") (type_descriptor "long **" (sized_type_specifier "long" (long "long")) (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (number_literal "0x0"))) () ")")) (compound_statement "{\n                    \n        FUN_0019a930(param_2,param_1,param_3,lVar8,(long)param_10 - (long)(param_9 + -8),\n                     0xffffffffffffffff);\n        goto LAB_0024b7a5;\n      }" ({ "{") (expression_statement "FUN_0019a930(param_2,param_1,param_3,lVar8,(long)param_10 - (long)(param_9 + -8),\n                     0xffffffffffffffff);" (call_expression "FUN_0019a930(param_2,param_1,param_3,lVar8,(long)param_10 - (long)(param_9 + -8),\n                     0xffffffffffffffff)" (identifier "FUN_0019a930") (argument_list "(param_2,param_1,param_3,lVar8,(long)param_10 - (long)(param_9 + -8),\n                     0xffffffffffffffff)" (( "(") (identifier "param_2") (, ",") (identifier "param_1") (, ",") (identifier "param_3") (, ",") (identifier "lVar8") (, ",") (binary_expression "(long)param_10 - (long)(param_9 + -8)" (cast_expression "(long)param_10" (( "(") (type_descriptor "long" (sized_type_specifier "long" (long "long"))) () ")") (identifier "param_10")) (- "-") (cast_expression "(long)(param_9 + -8)" (( "(") (type_descriptor "long" (sized_type_specifier "long" (long "long"))) () ")") (parenthesized_expression "(param_9 + -8)" (( "(") (binary_expression "param_9 + -8" (identifier "param_9") (+ "+") (number_literal "-8")) () ")")))) (, ",") (number_literal "0xffffffffffffffff") () ")"))) (; ";")) (goto_statement "goto LAB_0024b7a5;" (goto "goto") (statement_identifier "LAB_0024b7a5") (; ";")) (} "}")))) (} "}")))) (} "}"))) (expression_statement "pplVar12 = (long **)FUN_00275550(0x78);" (assignment_expression "pplVar12 = (long **)FUN_00275550(0x78)" (identifier "pplVar12") (= "=") (cast_expression "(long **)FUN_00275550(0x78)" (( "(") (type_descriptor "long **" (sized_type_specifier "long" (long "long")) (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (call_expression "FUN_00275550(0x78)" (identifier "FUN_00275550") (argument_list "(0x78)" (( "(") (number_literal "0x78") () ")"))))) (; ";")) (expression_statement "FUN_00249730(pplVar12,&local_b8);" (call_expression "FUN_00249730(pplVar12,&local_b8)" (identifier "FUN_00249730") (argument_list "(pplVar12,&local_b8)" (( "(") (identifier "pplVar12") (, ",") (pointer_expression "&local_b8" (& "&") (identifier "local_b8")) () ")"))) (; ";")) (expression_statement "local_c0 = (long **)CONCAT71(local_c0._1_7_,local_cd);" (assignment_expression "local_c0 = (long **)CONCAT71(local_c0._1_7_,local_cd)" (identifier "local_c0") (= "=") (cast_expression "(long **)CONCAT71(local_c0._1_7_,local_cd)" (( "(") (type_descriptor "long **" (sized_type_specifier "long" (long "long")) (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (call_expression "CONCAT71(local_c0._1_7_,local_cd)" (identifier "CONCAT71") (argument_list "(local_c0._1_7_,local_cd)" (( "(") (field_expression "local_c0._1_7_" (identifier "local_c0") (. ".") (field_identifier "_1_7_")) (, ",") (identifier "local_cd") () ")"))))) (; ";")) (expression_statement "local_c8 = pplVar12;" (assignment_expression "local_c8 = pplVar12" (identifier "local_c8") (= "=") (identifier "pplVar12")) (; ";")) (expression_statement "FUN_0024a870(param_13);" (call_expression "FUN_0024a870(param_13)" (identifier "FUN_0024a870") (argument_list "(param_13)" (( "(") (identifier "param_13") () ")"))) (; ";")) (labeled_statement "LAB_0024b7a5:\n  local_f8 = &local_c8;" (statement_identifier "LAB_0024b7a5") (: ":") (expression_statement "local_f8 = &local_c8;" (assignment_expression "local_f8 = &local_c8" (identifier "local_f8") (= "=") (pointer_expression "&local_c8" (& "&") (identifier "local_c8"))) (; ";"))) (expression_statement "local_c8 = (long **)(param_9 + -param_8);" (assignment_expression "local_c8 = (long **)(param_9 + -param_8)" (identifier "local_c8") (= "=") (cast_expression "(long **)(param_9 + -param_8)" (( "(") (type_descriptor "long **" (sized_type_specifier "long" (long "long")) (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(param_9 + -param_8)" (( "(") (binary_expression "param_9 + -param_8" (identifier "param_9") (+ "+") (unary_expression "-param_8" (- "-") (identifier "param_8"))) () ")")))) (; ";")) (expression_statement "local_c0 = pplVar12;" (assignment_expression "local_c0 = pplVar12" (identifier "local_c0") (= "=") (identifier "pplVar12")) (; ";")) (expression_statement "FUN_0024a340(param_12,local_f8);" (call_expression "FUN_0024a340(param_12,local_f8)" (identifier "FUN_0024a340") (argument_list "(param_12,local_f8)" (( "(") (identifier "param_12") (, ",") (identifier "local_f8") () ")"))) (; ";")) (expression_statement "FUN_00247330(&local_b8);" (call_expression "FUN_00247330(&local_b8)" (identifier "FUN_00247330") (argument_list "(&local_b8)" (( "(") (pointer_expression "&local_b8" (& "&") (identifier "local_b8")) () ")"))) (; ";")) (return_statement "return 1;" (return "return") (number_literal "1") (; ";")) (} "}")))

/* WARNING: Type propagation algorithm not settling */
/* DWARF original name: read_cie<64, false>
   DWARF original prototype: bool read_cie<64,_false>(Eh_frame * this, Sized_relobj_file<64,_false>
   * object, uint shndx, uchar * symbols, section_size_type symbols_size, uchar * symbol_names,
   section_size_type symbol_names_size, uchar * pcontents, uchar * pcie, uchar * pcieend,
   Track_relocs<64,_false> * relocs, Offsets_to_cie * cies, New_cies * new_cies) */

bool __thiscall
var_33::var_37::read_cie<64,var_18>
          (var_37 *this,Sized_relobj_file<64,var_18> *object,type_2 shndx,type_8 *var_26,
          section_size_type var_24,type_8 *var_27,section_size_type var_25,
          type_8 *pcontents,type_8 *var_2,type_8 *var_1,var_17<64,var_18> *relocs,
          Offsets_to_cie *cies,New_cies *new_cies)

{
  type_8 var_30;
  type_1 var_43;
  bool bVar3;
  int var_20;
  type_2 var_12;
  type_2 var_13;
  int var_16;
  void *var_5;
  type_3 var_22;
  long var_15;
  type_4 iVar11;
  type_5 *var_8;
  type_6 *var_45;
  type_2 var_14;
  type_7 var_29;
  type_5 var_10;
  type_5 var_3;
  type_5 var_11;
  type_8 *var_7;
  type_1 var_42;
  type_5 *var_9;
  type_8 *var_6;
  type_5 bVar21;
  var_48<var_52,_gold::type_6*> *local_f8;
  char var_36;
  type_9 local_c8 [16];
  type_6 cie;
  
  bVar21 = 0;
  if (var_1 == var_2 || (long)var_1 - (long)var_2 < 0) {
    return false;
  }
  var_3 = *var_2;
  if ((var_3 & 0xfd) != 1) {
    return false;
  }
  var_9 = var_2 + 1;
  var_5 = var_4(var_9,0,(long)var_1 - (long)var_9);
  if (var_5 == (void *)0x0) {
    return false;
  }
  var_6 = (type_8 *)((long)var_5 + 1);
  var_36 = '\x01';
  if ((var_2[1] == 'e') && (var_2[2] == 'h')) {
    if (var_2[3] != '\0') {
      return false;
    }
    if ((long)var_1 - (long)var_6 < 8) {
      return false;
    }
    var_9 = var_2 + 3;
    var_6 = (type_8 *)((long)var_5 + 9);
    var_36 = '\0';
  }
  if (var_1 <= var_6) {
    return false;
  }
  while ((char)*var_6 < '\0') {
    var_6 = var_6 + 1;
    if (var_1 == var_6) {
      return false;
    }
  }
  var_7 = var_6 + 1;
  if (var_1 <= var_7) {
    return false;
  }
  var_30 = var_6[1];
  while ((char)var_30 < '\0') {
    var_7 = var_7 + 1;
    if (var_1 == var_7) {
      return false;
    }
    var_30 = *var_7;
  }
  var_6 = var_7 + 1;
  if (var_3 == 1) {
    var_8 = var_7 + 2;
    if (var_1 == var_6 || (long)var_1 - (long)var_6 < 0) {
      return false;
    }
  }
  else {
    if (var_1 <= var_6) {
      return false;
    }
    var_30 = var_7[1];
    while ((char)var_30 < '\0') {
      var_6 = var_6 + 1;
      if (var_1 == var_6) {
        return false;
      }
      var_30 = *var_6;
    }
    var_8 = var_6 + 1;
  }
  var_3 = *var_9;
  if (var_3 == 0x7a) {
    if (var_1 <= var_8) {
      return false;
    }
    while ((char)*var_8 < '\0') {
      var_8 = var_8 + 1;
      if (var_1 == var_8) {
        return false;
      }
    }
    var_3 = var_9[1];
    var_8 = var_8 + 1;
    if (var_3 != 0) {
      var_9 = var_9 + 1;
      goto LAB_0024b528;
    }
LAB_0024b955:
    var_6 = "";
  }
  else {
    if (var_3 == 0) goto LAB_0024b955;
LAB_0024b528:
    var_16 = -1;
    var_11 = 0;
    var_10 = var_3;
    do {
      var_3 = var_11;
      if (var_10 == 0x50) {
        if (var_1 == var_8 || (long)var_1 - (long)var_8 < 0) {
          return false;
        }
        var_10 = *var_8;
        var_8 = var_8 + 1;
        if ((var_10 & 0x60) == 0x60) {
          return false;
        }
        var_11 = var_10 & 7;
        if (var_11 == 2) {
          var_15 = 2;
        }
        else {
          if (var_11 < 3) {
            if (var_11 != 0) {
              return false;
            }
          }
          else {
            if (var_11 == 3) {
              var_15 = 4;
              goto LAB_0024b853;
            }
            if (var_11 != 4) {
              return false;
            }
          }
          var_15 = 8;
        }
LAB_0024b853:
        var_13 = (int)var_1 - (int)var_8;
        var_12 = (type_2)var_15;
        if ((var_10 & 0xf0) == 0x50) {
          var_14 = -var_12 & (var_12 - 1) + ((int)var_8 - (int)var_2);
          if (var_13 < var_14) {
            return false;
          }
          var_8 = var_8 + var_14;
          var_13 = (int)var_1 - (int)var_8;
        }
        var_16 = (int)var_8 - (int)pcontents;
        if (var_13 < var_12) {
          return false;
        }
        var_8 = var_8 + var_15;
      }
      else {
        if (var_10 < 0x51) {
          if (var_10 != 0x4c) {
            return false;
          }
          if (var_1 == var_8 || (long)var_1 - (long)var_8 < 0) {
            return false;
          }
        }
        else {
          if (var_10 != 0x52) {
            if (var_10 != 0x53) {
              return false;
            }
            goto LAB_0024b557;
          }
          if (var_1 == var_8 || (long)var_1 - (long)var_8 < 0) {
            return false;
          }
          var_3 = *var_8;
          if (4 < (var_3 & 7)) {
            return false;
          }
          if ((1L << (var_3 & 7) & 0x1dU) == 0) {
            return false;
          }
        }
        var_8 = var_8 + 1;
      }
LAB_0024b557:
      var_9 = var_9 + 1;
      var_10 = *var_9;
      var_11 = var_3;
    } while (var_10 != 0);
    if (var_16 == -1) goto LAB_0024b955;
    var_20 = var_17<64,var_18>::var_19(relocs,(long)var_16);
    if (0 < var_20) {
      return false;
    }
    var_22 = var_17<64,var_18>::var_21(relocs);
    if (var_16 != var_22) {
      return false;
    }
    var_12 = var_17<64,var_18>::var_23(relocs);
    if (var_12 == 0xffffffff) {
      return false;
    }
    var_13 = (*(object->super_Sized_relobj<64,var_18>).super_Relobj.super_Object._vptr_Object[0x23])
                      (object);
    if (var_12 < var_13) {
      var_36 = '\0';
      var_6 = "";
    }
    else {
      if (var_24 / 0x18 <= (type_7)var_12) {
        return false;
      }
      if (var_25 <= *(type_2 *)(var_26 + var_12 * 0x18)) {
        return false;
      }
      var_6 = var_27 + *(type_2 *)(var_26 + var_12 * 0x18);
    }
    var_16 = var_17<64,var_18>::var_19(relocs,(long)(var_16 + 1));
    if (var_16 != 1) {
                    /* WARNING: Subroutine does not return */
      var_28("../../gold/ehframe.cc",0x3af,"read_cie");
    }
  }
  var_16 = var_17<64,var_18>::var_19(relocs,(long)var_1 - (long)pcontents);
  if (0 < var_16) {
    return false;
  }
  var_15 = (long)(var_2 + -8) - (long)pcontents;
  var_7 = (type_8 *)0xffffffffffffffff;
  cie.personality_name_._M_dataplus._M_p = (type_1)&cie.personality_name_.field_2;
  if (var_6 != (type_8 *)0x0) {
    var_29 = 0xffffffffffffffff;
    var_7 = var_6;
    do {
      if (var_29 == 0) break;
      var_29 = var_29 - 1;
      var_30 = *var_7;
      var_7 = var_7 + (type_7)bVar21 * -2 + 1;
    } while (var_30 != '\0');
    var_7 = var_6 + (~var_29 - 1);
  }
  cie.object_ = (type_10 *)object;
  cie.shndx_ = shndx;
  cie.input_offset_ = var_15;
  cie.fde_encoding_ = var_3;
  std::__cxx11::basic_string<char,var_34::char_traits<char>,var_34::allocator<char>var_35>::
  var_31<var_32*>(&cie.personality_name_,var_6,var_7);
  cie.contents_._M_dataplus._M_p = (type_1)&cie.contents_.field_2;
  cie.fdes_.super__Vector_base<var_33::Fde*,var_34::allocator<var_33::Fde*>var_35>._M_impl._M_start =
       (type_1)0x0;
  cie.fdes_.super__Vector_base<var_33::Fde*,var_34::allocator<var_33::Fde*>var_35>._M_impl._M_finish =
       (type_1)0x0;
  cie.fdes_.super__Vector_base<var_33::Fde*,var_34::allocator<var_33::Fde*>var_35>._M_impl._M_end_of_storage =
       (type_1)0x0;
                    /* try { // try from 0024b743 to 0024b747 has its CatchHandler @ 0024ba39 */
  std::__cxx11::basic_string<char,var_34::char_traits<char>,var_34::allocator<char>var_35>::
  var_31<var_32*>(&cie.contents_,var_2,var_1);
  if (var_36 != '\0') {
    local_c8._0_8_ = &cie;
    iVar11 = var_41::
             _Rb_tree<var_33::type_6*,_gold::type_6*,var_34::_Identity<var_33::type_6*>,_gold::var_37::Cie_less,var_34::allocator<var_33::type_6*>var_35>
             ::var_38(&(this->cie_offsets_)._M_t,(type_6 **)local_c8);
    if ((type_11 *)iVar11._M_node ==
        &(this->cie_offsets_)._M_t._M_impl.super__Rb_tree_header) {
      var_43 = (new_cies->
               super__Vector_base<var_41::var_48<var_33::type_6*var_40,var_39>,var_34::allocator<var_41::var_48<var_33::type_6*,var_39>var_35>var_35>var_40
               )._M_impl._M_finish;
      for (var_42 = (new_cies->
                     super__Vector_base<var_41::var_48<var_33::type_6*,var_39>,var_34::allocator<var_41::var_48<var_33::type_6*,var_39>var_35>var_35>var_40
                     )._M_impl._M_start; var_42 != var_43; var_42 = var_42 + 1) {
        var_45 = var_42->first;
        bVar3 = var_44==(var_45,&cie);
        if (bVar3) goto LAB_0024b77c;
      }
    }
    else {
      var_45 = *(type_6 **)(iVar11._M_node + 1);
LAB_0024b77c:
      if (var_45 != (type_6 *)0x0) {
                    /* try { // try from 0024b7a0 to 0024b96d has its CatchHandler @ 0024ba2f */
        Relobj::var_46
                  ((type_10 *)object,&this->super_Output_section_data,shndx,var_15,
                   (long)var_1 - (long)(var_2 + -8),-1);
        goto LAB_0024b7a5;
      }
    }
  }
  var_45 = (type_6 *)var_47(0x78);
                    /* try { // try from 0024b977 to 0024b97b has its CatchHandler @ 0024ba34 */
  Cie::type_6(var_45,&cie);
  local_c8[8] = var_36;
  local_c8._0_8_ = var_45;
                    /* try { // try from 0024b99c to 0024b9a0 has its CatchHandler @ 0024ba2f */
  std::vector<var_41::var_48<var_33::type_6*,var_39>,var_34::allocator<var_41::var_48<var_33::type_6*,var_39>var_35>var_35>::
  emplace_back<var_41::var_48<var_33::type_6*,var_39>var_35>(new_cies,(var_48<var_33::type_6*,var_39> *)local_c8);
LAB_0024b7a5:
  local_f8 = (var_48<var_52,_gold::type_6*var_40> *)local_c8;
  local_c8._0_8_ = var_2 + -(long)pcontents;
  local_c8._8_8_ = var_45;
  var_41::
  _Rb_tree<var_49,var_34::var_48<var_50,_gold::type_6*>,var_34::_Select1st<var_41::var_48<var_50,_gold::type_6*>var_35>,var_34::less<var_49>,var_34::allocator<var_41::var_48<var_50,_gold::type_6*>var_35>var_35>
  ::var_51<var_41::var_48<var_52,_gold::type_6*>var_35>(&cies->_M_t,local_f8);
  Cie::~type_6(&cie,(int)local_f8);
  return true;
}


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

/* WARNING: Type propagation algorithm not settling */

undefined8
MASKED(long param_1,long *param_2,undefined4 param_3,long param_4,ulong param_5,long param_6,
            ulong param_7,long param_8,byte *param_9,byte *param_10,undefined8 param_11,
            undefined8 param_12,undefined8 *param_13)

{
  long *plVar1;
  char cVar2;
  int iVar3;
  uint uVar4;
  uint uVar5;
  int iVar6;
  void *pvVar7;
  long lVar8;
  ulong uVar9;
  long lVar10;
  byte *pbVar11;
  long **pplVar12;
  uint uVar13;
  byte bVar14;
  byte bVar15;
  byte bVar16;
  byte *pbVar17;
  ulong extraout_RDX;
  ulong uVar18;
  char *pcVar19;
  long *plVar20;
  byte *__s;
  char *pcVar21;
  byte bVar22;
  long ***local_f8;
  char local_cd;
  long **local_c8;
  long **local_c0;
  long *local_b8;
  undefined4 local_b0;
  long local_a8;
  byte local_a0;
  undefined1 *local_98 [2];
  undefined1 local_88 [16];
  undefined8 local_78;
  undefined8 local_70;
  undefined8 local_68;
  undefined1 *local_60 [2];
  undefined1 local_50 [32];
  
  bVar22 = 0;
  if (param_10 == param_9 || (long)param_10 - (long)param_9 < 0) {
    return 0;
  }
  bVar14 = *param_9;
  if ((bVar14 & 0xfd) != 1) {
    return 0;
  }
  __s = param_9 + 1;
  pvVar7 = memchr(__s,0,(long)param_10 - (long)__s);
  if (pvVar7 == (void *)0x0) {
    return 0;
  }
  pbVar17 = (byte *)((long)pvVar7 + 1);
  local_cd = '\x01';
  if ((param_9[1] == 0x65) && (param_9[2] == 0x68)) {
    if (param_9[3] != 0) {
      return 0;
    }
    if ((long)param_10 - (long)pbVar17 < 8) {
      return 0;
    }
    __s = param_9 + 3;
    pbVar17 = (byte *)((long)pvVar7 + 9);
    local_cd = '\0';
  }
  if (param_10 <= pbVar17) {
    return 0;
  }
  while ((char)*pbVar17 < '\0') {
    pbVar17 = pbVar17 + 1;
    if (param_10 == pbVar17) {
      return 0;
    }
  }
  pbVar11 = pbVar17 + 1;
  if (param_10 <= pbVar11) {
    return 0;
  }
  bVar15 = pbVar17[1];
  while ((char)bVar15 < '\0') {
    pbVar11 = pbVar11 + 1;
    if (param_10 == pbVar11) {
      return 0;
    }
    bVar15 = *pbVar11;
  }
  pbVar17 = pbVar11 + 1;
  if (bVar14 == 1) {
    pbVar11 = pbVar11 + 2;
    if (param_10 == pbVar17 || (long)param_10 - (long)pbVar17 < 0) {
      return 0;
    }
  }
  else {
    if (param_10 <= pbVar17) {
      return 0;
    }
    bVar14 = pbVar11[1];
    while ((char)bVar14 < '\0') {
      pbVar17 = pbVar17 + 1;
      if (param_10 == pbVar17) {
        return 0;
      }
      bVar14 = *pbVar17;
    }
    pbVar11 = pbVar17 + 1;
  }
  bVar14 = *__s;
  if (bVar14 == 0x7a) {
    if (param_10 <= pbVar11) {
      return 0;
    }
    while ((char)*pbVar11 < '\0') {
      pbVar11 = pbVar11 + 1;
      if (param_10 == pbVar11) {
        return 0;
      }
    }
    bVar14 = __s[1];
    pbVar11 = pbVar11 + 1;
    if (bVar14 != 0) {
      __s = __s + 1;
      goto LAB_0024b528;
    }
LAB_0024b955:
    pcVar21 = "";
  }
  else {
    if (bVar14 == 0) goto LAB_0024b955;
LAB_0024b528:
    iVar6 = -1;
    bVar16 = 0;
    bVar15 = bVar14;
    do {
      bVar14 = bVar16;
      if (bVar15 == 0x50) {
        if (param_10 == pbVar11 || (long)param_10 - (long)pbVar11 < 0) {
          return 0;
        }
        bVar15 = *pbVar11;
        pbVar11 = pbVar11 + 1;
        if ((bVar15 & 0x60) == 0x60) {
          return 0;
        }
        bVar16 = bVar15 & 7;
        if (bVar16 == 2) {
          lVar8 = 2;
        }
        else {
          if (bVar16 < 3) {
            if (bVar16 != 0) {
              return 0;
            }
          }
          else {
            if (bVar16 == 3) {
              lVar8 = 4;
              goto LAB_0024b853;
            }
            if (bVar16 != 4) {
              return 0;
            }
          }
          lVar8 = 8;
        }
LAB_0024b853:
        uVar5 = (int)param_10 - (int)pbVar11;
        uVar4 = (uint)lVar8;
        if ((bVar15 & 0xf0) == 0x50) {
          uVar13 = -uVar4 & (uVar4 - 1) + ((int)pbVar11 - (int)param_9);
          if (uVar5 < uVar13) {
            return 0;
          }
          pbVar11 = pbVar11 + uVar13;
          uVar5 = (int)param_10 - (int)pbVar11;
        }
        iVar6 = (int)pbVar11 - (int)param_8;
        if (uVar5 < uVar4) {
          return 0;
        }
        pbVar11 = pbVar11 + lVar8;
      }
      else {
        if (bVar15 < 0x51) {
          if (bVar15 != 0x4c) {
            return 0;
          }
          if (param_10 == pbVar11 || (long)param_10 - (long)pbVar11 < 0) {
            return 0;
          }
        }
        else {
          if (bVar15 != 0x52) {
            if (bVar15 != 0x53) {
              return 0;
            }
            goto LAB_0024b557;
          }
          if (param_10 == pbVar11 || (long)param_10 - (long)pbVar11 < 0) {
            return 0;
          }
          bVar14 = *pbVar11;
          if (4 < (bVar14 & 7)) {
            return 0;
          }
          if ((1L << (bVar14 & 7) & 0x1dU) == 0) {
            return 0;
          }
        }
        pbVar11 = pbVar11 + 1;
      }
LAB_0024b557:
      __s = __s + 1;
      bVar15 = *__s;
      bVar16 = bVar14;
    } while (bVar15 != 0);
    if (iVar6 == -1) goto LAB_0024b955;
    iVar3 = FUN_001fab10(param_11,(long)iVar6);
    if (0 < iVar3) {
      return 0;
    }
    lVar8 = FUN_001faa60(param_11);
    if (iVar6 != lVar8) {
      return 0;
    }
    uVar4 = FUN_001faa80(param_11);
    if (uVar4 == 0xffffffff) {
      return 0;
    }
    uVar5 = (**(code **)(*param_2 + 0x118))(param_2);
    if (uVar4 < uVar5) {
      local_cd = '\0';
      pcVar21 = "";
      uVar18 = extraout_RDX;
    }
    else {
      uVar18 = param_5 % 0x18;
      if (param_5 / 0x18 <= (ulong)uVar4) {
        return 0;
      }
      uVar9 = (ulong)*(uint *)(param_4 + (ulong)(uVar4 * 0x18));
      if (param_7 <= uVar9) {
        return 0;
      }
      pcVar21 = (char *)(param_6 + uVar9);
    }
    iVar6 = FUN_001fab10(param_11,(long)(iVar6 + 1),uVar18);
    if (iVar6 != 1) {
                    /* WARNING: Subroutine does not return */
      FUN_0016cdf0("../../gold/ehframe.cc",0x3af,"read_cie");
    }
  }
  iVar6 = FUN_001fab10(param_11,(long)param_10 - param_8);
  if (0 < iVar6) {
    return 0;
  }
  lVar8 = (long)(param_9 + -8) - param_8;
  pcVar19 = (char *)0xffffffffffffffff;
  local_98[0] = local_88;
  if (pcVar21 != (char *)0x0) {
    uVar18 = 0xffffffffffffffff;
    pcVar19 = pcVar21;
    do {
      if (uVar18 == 0) break;
      uVar18 = uVar18 - 1;
      cVar2 = *pcVar19;
      pcVar19 = pcVar19 + (ulong)bVar22 * -2 + 1;
    } while (cVar2 != '\0');
    pcVar19 = pcVar21 + (~uVar18 - 1);
  }
  local_b8 = param_2;
  local_b0 = param_3;
  local_a8 = lVar8;
  local_a0 = bVar14;
  FUN_0015cbe0(local_98,pcVar21,pcVar19);
  local_60[0] = local_50;
  local_78 = 0;
  local_70 = 0;
  local_68 = 0;
                    /* try { // try from 0024b743 to 0024b747 has its CatchHandler @ 0024ba39 */
  FUN_0015cbe0(local_60,param_9,param_10);
  if (local_cd != '\0') {
    local_c8 = &local_b8;
    lVar10 = FUN_00248330(param_1 + 0x40);
    if (lVar10 == param_1 + 0x48) {
      plVar1 = (long *)param_13[1];
      for (plVar20 = (long *)*param_13; plVar20 != plVar1; plVar20 = plVar20 + 2) {
        pplVar12 = (long **)*plVar20;
        cVar2 = FUN_002476d0(pplVar12,&local_b8);
        if (cVar2 != '\0') goto LAB_0024b77c;
      }
    }
    else {
      pplVar12 = *(long ***)(lVar10 + 0x20);
LAB_0024b77c:
      if (pplVar12 != (long **)0x0) {
                    /* try { // try from 0024b7a0 to 0024b96d has its CatchHandler @ 0024ba2f */
        FUN_0019a930(param_2,param_1,param_3,lVar8,(long)param_10 - (long)(param_9 + -8),
                     0xffffffffffffffff);
        goto LAB_0024b7a5;
      }
    }
  }
  pplVar12 = (long **)FUN_00275550(0x78);
                    /* try { // try from 0024b977 to 0024b97b has its CatchHandler @ 0024ba34 */
  FUN_00249730(pplVar12,&local_b8);
  local_c0 = (long **)CONCAT71(local_c0._1_7_,local_cd);
  local_c8 = pplVar12;
                    /* try { // try from 0024b99c to 0024b9a0 has its CatchHandler @ 0024ba2f */
  FUN_0024a870(param_13);
LAB_0024b7a5:
  local_f8 = &local_c8;
  local_c8 = (long **)(param_9 + -param_8);
  local_c0 = pplVar12;
  FUN_0024a340(param_12,local_f8);
  FUN_00247330(&local_b8);
  return 1;
}

