; LLVM IR from facebook/redex :: libredex/DexLoader.ll (ZN9DexLoader18gather_input_statsEv)

; Unoptimized IR (clang -disable-llvm-passes):
target datalayout = "e-m:e-p270:32:32-p271:32:32-p272:64:64-i64:64-i128:128-f80:128-n8:16:32:64-S128"
target triple = "x86_64-unknown-linux-gnu"

%class.UnorderedSet = type { %"class.std::unordered_set" }
%"class.std::unordered_set" = type { %"class.std::_Hashtable" }
%"class.std::_Hashtable" = type { ptr, i64, %"struct.std::__detail::_Hash_node_base", i64, %"struct.std::__detail::_Prime_rehash_policy", ptr }
%"struct.std::__detail::_Hash_node_base" = type { ptr }
%"struct.std::__detail::_Prime_rehash_policy" = type { float, i64 }
%"class.std::set" = type { %"class.std::_Rb_tree" }
%"class.std::_Rb_tree" = type { %"struct.std::_Rb_tree<DexTypeList *, DexTypeList *, std::_Identity<DexTypeList *>, dextypelists_comparator>::_Rb_tree_impl" }
%"struct.std::_Rb_tree<DexTypeList *, DexTypeList *, std::_Identity<DexTypeList *>, dextypelists_comparator>::_Rb_tree_impl" = type { [8 x i8], %"struct.std::_Rb_tree_header" }
%"struct.std::_Rb_tree_header" = type { %"struct.std::_Rb_tree_node_base", i64 }
%"struct.std::_Rb_tree_node_base" = type { i32, ptr, ptr, ptr }
%class.UnorderedSet.23 = type { %"class.std::unordered_set.25" }
%"class.std::unordered_set.25" = type { %"class.std::_Hashtable.26" }
%"class.std::_Hashtable.26" = type { ptr, i64, %"struct.std::__detail::_Hash_node_base", i64, %"struct.std::__detail::_Prime_rehash_policy", ptr }
%"struct.std::pair" = type <{ %"class.UnorderedSet<unsigned int>::FixedIterator", i8, [7 x i8] }>
%"class.UnorderedSet<unsigned int>::FixedIterator" = type { %"struct.std::__detail::_Node_iterator" }
%"struct.std::__detail::_Node_iterator" = type { %"struct.std::__detail::_Node_iterator_base" }
%"struct.std::__detail::_Node_iterator_base" = type { ptr }
%"struct.std::pair.99" = type <{ %"struct.std::_Rb_tree_const_iterator", i8, [7 x i8] }>
%"struct.std::_Rb_tree_const_iterator" = type { ptr }
%"class.std::unique_ptr.102" = type { %"struct.std::__uniq_ptr_data.103" }
%"struct.std::__uniq_ptr_data.103" = type { %"class.std::__uniq_ptr_impl.104" }
%"class.std::__uniq_ptr_impl.104" = type { %"class.std::tuple.105" }
%"class.std::tuple.105" = type { %"struct.std::_Tuple_impl.106" }
%"struct.std::_Tuple_impl.106" = type { %"struct.std::_Head_base.109" }
%"struct.std::_Head_base.109" = type { ptr }
%"struct.std::pair.110" = type <{ %"class.UnorderedSet<DexEncodedValueArray, boost::hash<DexEncodedValueArray>>::FixedIterator", i8, [7 x i8] }>
%"class.UnorderedSet<DexEncodedValueArray, boost::hash<DexEncodedValueArray>>::FixedIterator" = type { %"struct.std::__detail::_Node_iterator.112" }
%"struct.std::__detail::_Node_iterator.112" = type { %"struct.std::__detail::_Node_iterator_base.113" }
%"struct.std::__detail::_Node_iterator_base.113" = type { ptr }
%class.anon = type { ptr }
%"class.std::basic_string_view" = type { i64, ptr }
%class.anon.115 = type { ptr }
%"struct.(anonymous namespace)::AssertHelper" = type { %"class.std::optional", %"class.std::optional.118" }
%"class.std::optional" = type { %"struct.std::_Optional_base" }
%"struct.std::_Optional_base" = type { %"struct.std::_Optional_payload" }
%"struct.std::_Optional_payload" = type { %"struct.std::_Optional_payload.base", [7 x i8] }
%"struct.std::_Optional_payload.base" = type { %"struct.std::_Optional_payload_base.base" }
%"struct.std::_Optional_payload_base.base" = type <{ %"union.std::_Optional_payload_base<std::__cxx11::basic_string<char>>::_Storage", i8 }>
%"union.std::_Optional_payload_base<std::__cxx11::basic_string<char>>::_Storage" = type { %"class.std::__cxx11::basic_string" }
%"class.std::__cxx11::basic_string" = type { %"struct.std::__cxx11::basic_string<char>::_Alloc_hider", i64, %union.anon }
%"struct.std::__cxx11::basic_string<char>::_Alloc_hider" = type { ptr }
%union.anon = type { i64, [8 x i8] }
%"class.std::optional.118" = type { %"struct.std::_Optional_base.119" }
%"struct.std::_Optional_base.119" = type { %"struct.std::_Optional_payload.121" }
%"struct.std::_Optional_payload.121" = type { %"struct.std::_Optional_payload.base.130", [7 x i8] }
%"struct.std::_Optional_payload.base.130" = type { %"struct.std::_Optional_payload_base.base.129" }
%"struct.std::_Optional_payload_base.base.129" = type <{ %"union.std::_Optional_payload_base<std::map<std::__cxx11::basic_string<char>, std::__cxx11::basic_string<char>>>::_Storage", i8 }>
%"union.std::_Optional_payload_base<std::map<std::__cxx11::basic_string<char>, std::__cxx11::basic_string<char>>>::_Storage" = type { %"class.std::map" }
%"class.std::map" = type { %"class.std::_Rb_tree.124" }
%"class.std::_Rb_tree.124" = type { %"struct.std::_Rb_tree<std::__cxx11::basic_string<char>, std::pair<const std::__cxx11::basic_string<char>, std::__cxx11::basic_string<char>>, std::_Select1st<std::pair<const std::__cxx11::basic_string<char>, std::__cxx11::basic_string<char>>>, std::less<std::__cxx11::basic_string<char>>>::_Rb_tree_impl" }
%"struct.std::_Rb_tree<std::__cxx11::basic_string<char>, std::pair<const std::__cxx11::basic_string<char>, std::__cxx11::basic_string<char>>, std::_Select1st<std::pair<const std::__cxx11::basic_string<char>, std::__cxx11::basic_string<char>>>, std::less<std::__cxx11::basic_string<char>>>::_Rb_tree_impl" = type { [8 x i8], %"struct.std::_Rb_tree_header" }
%"class.std::allocator" = type { i8 }
%class.DexLoader = type { ptr, %"class.std::unique_ptr", ptr, %"class.std::vector", %"class.std::unique_ptr.6", i64, ptr, %struct.dex_stats_t, i32, i32 }
%"class.std::unique_ptr" = type { %"struct.std::__uniq_ptr_data" }
%"struct.std::__uniq_ptr_data" = type { %"class.std::__uniq_ptr_impl" }
%"class.std::__uniq_ptr_impl" = type { %"class.std::tuple" }
%"class.std::tuple" = type { %"struct.std::_Tuple_impl" }
%"struct.std::_Tuple_impl" = type { %"struct.std::_Head_base.2" }
%"struct.std::_Head_base.2" = type { ptr }
%"class.std::vector" = type { %"struct.std::_Vector_base" }
%"struct.std::_Vector_base" = type { %"struct.std::_Vector_base<DexClass *, std::allocator<DexClass *>>::_Vector_impl" }
%"struct.std::_Vector_base<DexClass *, std::allocator<DexClass *>>::_Vector_impl" = type { %"struct.std::_Vector_base<DexClass *, std::allocator<DexClass *>>::_Vector_impl_data" }
%"struct.std::_Vector_base<DexClass *, std::allocator<DexClass *>>::_Vector_impl_data" = type { ptr, ptr, ptr }
%"class.std::unique_ptr.6" = type { %"struct.std::__uniq_ptr_data.7" }
%"struct.std::__uniq_ptr_data.7" = type { %"class.std::__uniq_ptr_impl.8" }
%"class.std::__uniq_ptr_impl.8" = type { %"class.std::tuple.9" }
%"class.std::tuple.9" = type { %"struct.std::_Tuple_impl.10" }
%"struct.std::_Tuple_impl.10" = type { %"struct.std::_Tuple_impl.11", %"struct.std::_Head_base.13" }
%"struct.std::_Tuple_impl.11" = type { %"struct.std::_Head_base.12" }
%"struct.std::_Head_base.12" = type { %"class.std::function" }
%"class.std::function" = type { %"class.std::_Function_base", ptr }
%"class.std::_Function_base" = type { %"union.std::_Any_data", ptr }
%"union.std::_Any_data" = type { %"union.std::_Nocopy_types" }
%"union.std::_Nocopy_types" = type { { i64, i64 } }
%"struct.std::_Head_base.13" = type { ptr }
%struct.dex_stats_t = type { [20 x i8], i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32 }
%struct.dex_header = type { [8 x i8], i32, [20 x i8], i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32 }
%struct.dex_class_def = type { i32, i32, i32, i32, i32, i32, i32, i32 }
%struct.dex_annotations_directory_item = type { i32, i32, i32, i32 }
%struct.dex_map_list = type { i32, [0 x %struct.dex_map_item] }
%struct.dex_map_item = type { i16, i16, i32, i32 }
%struct.dex_code_item = type { i16, i16, i16, i16, i32, i32 }

@.str.8 = external hidden unnamed_addr constant [31 x i8], align 1
@.str.9 = external hidden unnamed_addr constant [71 x i8], align 1
@__PRETTY_FUNCTION__._ZN9DexLoader18gather_input_statsEv = external hidden unnamed_addr constant [37 x i8], align 1
@.str.10 = external hidden unnamed_addr constant [13 x i8], align 1
@.str.11 = external hidden unnamed_addr constant [46 x i8], align 1
@.str.12 = external hidden unnamed_addr constant [28 x i8], align 1
@.str.13 = external hidden unnamed_addr constant [45 x i8], align 1
@.str.14 = external hidden unnamed_addr constant [50 x i8], align 1
@.str.15 = external hidden unnamed_addr constant [2 x i8], align 1
@.str.16 = external hidden unnamed_addr constant [2 x i8], align 1
@.str.17 = external hidden unnamed_addr constant [63 x i8], align 1
@.str.18 = external hidden unnamed_addr constant [5 x i8], align 1
@stderr = external global ptr, align 8
@.str.19 = external hidden unnamed_addr constant [67 x i8], align 1

declare i32 @__gxx_personality_v0(...)

; Function Attrs: nocallback nofree nosync nounwind willreturn memory(argmem: readwrite)
declare void @llvm.lifetime.start.p0(i64 immarg, ptr nocapture) #0

; Function Attrs: mustprogress nounwind uwtable
declare void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1)) unnamed_addr #1 align 2

; Function Attrs: mustprogress uwtable
declare dso_local void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32), ptr noundef, ptr noundef nonnull align 1 dereferenceable(1)) unnamed_addr #2 align 2

; Function Attrs: mustprogress nounwind uwtable
declare void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32)) unnamed_addr #1 align 2

; Function Attrs: mustprogress nounwind uwtable
declare dso_local void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1)) unnamed_addr #1 align 2

; Function Attrs: nocallback nofree nosync nounwind willreturn memory(argmem: readwrite)
declare void @llvm.lifetime.end.p0(i64 immarg, ptr nocapture) #0

; Function Attrs: noinline noreturn nounwind uwtable
declare hidden void @__clang_call_terminate(ptr noundef) #3

; Function Attrs: mustprogress uwtable
define dso_local void @_ZN9DexLoader18gather_input_statsEv(ptr noundef nonnull align 8 dereferenceable(408) %0) #2 align 2 personality ptr @__gxx_personality_v0 {
  %2 = alloca ptr, align 8
  %3 = alloca %class.UnorderedSet, align 8
  %4 = alloca %"class.std::set", align 8
  %5 = alloca %class.UnorderedSet.23, align 8
  %6 = alloca ptr, align 8
  %7 = alloca i32, align 4
  %8 = alloca i32, align 4
  %9 = alloca i32, align 4
  %10 = alloca ptr, align 8
  %11 = alloca ptr, align 8
  %12 = alloca i32, align 4
  %13 = alloca ptr, align 8
  %14 = alloca i32, align 4
  %15 = alloca ptr, align 8
  %16 = alloca i32, align 4
  %17 = alloca i32, align 4
  %18 = alloca %"struct.std::pair", align 8
  %19 = alloca ptr, align 8
  %20 = alloca i32, align 4
  %21 = alloca %"struct.std::pair", align 8
  %22 = alloca i32, align 4
  %23 = alloca %"struct.std::pair", align 8
  %24 = alloca i32, align 4
  %25 = alloca i32, align 4
  %26 = alloca ptr, align 8
  %27 = alloca i32, align 4
  %28 = alloca i32, align 4
  %29 = alloca i32, align 4
  %30 = alloca %"struct.std::pair", align 8
  %31 = alloca ptr, align 8
  %32 = alloca %"struct.std::pair.99", align 8
  %33 = alloca %"class.std::unique_ptr.102", align 8
  %34 = alloca %"struct.std::pair.110", align 8
  %35 = alloca %class.anon, align 8
  %36 = alloca i32, align 4
  %37 = alloca ptr, align 8
  %38 = alloca ptr, align 8
  %39 = alloca ptr, align 8
  %40 = alloca %"struct.std::pair.99", align 8
  %41 = alloca i32, align 4
  %42 = alloca ptr, align 8
  %43 = alloca ptr, align 8
  %44 = alloca i8, align 1
  %45 = alloca i32, align 4
  %46 = alloca i32, align 4
  %47 = alloca ptr, align 8
  %48 = alloca %"class.std::basic_string_view", align 8
  %49 = alloca %class.anon.115, align 8
  %50 = alloca %"struct.(anonymous namespace)::AssertHelper", align 8
  %51 = alloca %"class.std::__cxx11::basic_string", align 8
  %52 = alloca %"class.std::allocator", align 1
  %53 = alloca %"class.std::__cxx11::basic_string", align 8
  %54 = alloca %"class.std::allocator", align 1
  %55 = alloca %"class.std::__cxx11::basic_string", align 8
  %56 = alloca %"class.std::allocator", align 1
  %57 = alloca %"struct.(anonymous namespace)::AssertHelper", align 8
  %58 = alloca %"class.std::__cxx11::basic_string", align 8
  %59 = alloca %"class.std::allocator", align 1
  %60 = alloca %"class.std::__cxx11::basic_string", align 8
  %61 = alloca %"class.std::allocator", align 1
  %62 = alloca i32, align 4
  %63 = alloca i32, align 4
  %64 = alloca i32, align 4
  %65 = alloca i32, align 4
  %66 = alloca i32, align 4
  %67 = alloca i32, align 4
  %68 = alloca i32, align 4
  %69 = alloca i32, align 4
  %70 = alloca i64, align 8
  %71 = alloca i32, align 4
  %72 = alloca i32, align 4
  %73 = alloca i32, align 4
  %74 = alloca i32, align 4
  %75 = alloca i32, align 4
  %76 = alloca i32, align 4
  %77 = alloca i32, align 4
  %78 = alloca i64, align 8
  %79 = alloca i32, align 4
  %80 = alloca ptr, align 8
  %81 = alloca i32, align 4
  %82 = alloca i32, align 4
  %83 = alloca i32, align 4
  %84 = alloca i32, align 4
  %85 = alloca i32, align 4
  %86 = alloca i64, align 8
  %87 = alloca i32, align 4
  %88 = alloca i64, align 8
  %89 = alloca i32, align 4
  %90 = alloca i32, align 4
  %91 = alloca i8, align 1
  %92 = alloca i8, align 1
  %93 = alloca i64, align 8
  %94 = alloca i32, align 4
  %95 = alloca ptr, align 8
  %96 = alloca i64, align 8
  store ptr %0, ptr %2, align 8, !tbaa !5
  %97 = load ptr, ptr %2, align 8
  %98 = getelementptr inbounds %class.DexLoader, ptr %97, i32 0, i32 0
  %99 = load ptr, ptr %98, align 8, !tbaa !9
  %100 = getelementptr inbounds %struct.dex_header, ptr %99, i32 0, i32 11
  %101 = load i32, ptr %100, align 1, !tbaa !35
  %102 = getelementptr inbounds %class.DexLoader, ptr %97, i32 0, i32 7
  %103 = getelementptr inbounds %struct.dex_stats_t, ptr %102, i32 0, i32 1
  %104 = load i32, ptr %103, align 4, !tbaa !37
  %105 = add i32 %104, %101
  store i32 %105, ptr %103, align 4, !tbaa !37
  %106 = getelementptr inbounds %class.DexLoader, ptr %97, i32 0, i32 0
  %107 = load ptr, ptr %106, align 8, !tbaa !9
  %108 = getelementptr inbounds %struct.dex_header, ptr %107, i32 0, i32 19
  %109 = load i32, ptr %108, align 1, !tbaa !38
  %110 = getelementptr inbounds %class.DexLoader, ptr %97, i32 0, i32 7
  %111 = getelementptr inbounds %struct.dex_stats_t, ptr %110, i32 0, i32 2
  %112 = load i32, ptr %111, align 8, !tbaa !39
  %113 = add i32 %112, %109
  store i32 %113, ptr %111, align 8, !tbaa !39
  %114 = getelementptr inbounds %class.DexLoader, ptr %97, i32 0, i32 0
  %115 = load ptr, ptr %114, align 8, !tbaa !9
  %116 = getelementptr inbounds %struct.dex_header, ptr %115, i32 0, i32 17
  %117 = load i32, ptr %116, align 1, !tbaa !40
  %118 = getelementptr inbounds %class.DexLoader, ptr %97, i32 0, i32 7
  %119 = getelementptr inbounds %struct.dex_stats_t, ptr %118, i32 0, i32 4
  %120 = load i32, ptr %119, align 8, !tbaa !41
  %121 = add i32 %120, %117
  store i32 %121, ptr %119, align 8, !tbaa !41
  %122 = getelementptr inbounds %class.DexLoader, ptr %97, i32 0, i32 0
  %123 = load ptr, ptr %122, align 8, !tbaa !9
  %124 = getelementptr inbounds %struct.dex_header, ptr %123, i32 0, i32 15
  %125 = load i32, ptr %124, align 1, !tbaa !42
  %126 = getelementptr inbounds %class.DexLoader, ptr %97, i32 0, i32 7
  %127 = getelementptr inbounds %struct.dex_stats_t, ptr %126, i32 0, i32 6
  %128 = load i32, ptr %127, align 8, !tbaa !43
  %129 = add i32 %128, %125
  store i32 %129, ptr %127, align 8, !tbaa !43
  %130 = getelementptr inbounds %class.DexLoader, ptr %97, i32 0, i32 0
  %131 = load ptr, ptr %130, align 8, !tbaa !9
  %132 = getelementptr inbounds %struct.dex_header, ptr %131, i32 0, i32 9
  %133 = load i32, ptr %132, align 1, !tbaa !44
  %134 = getelementptr inbounds %class.DexLoader, ptr %97, i32 0, i32 7
  %135 = getelementptr inbounds %struct.dex_stats_t, ptr %134, i32 0, i32 7
  %136 = load i32, ptr %135, align 4, !tbaa !45
  %137 = add i32 %136, %133
  store i32 %137, ptr %135, align 4, !tbaa !45
  %138 = getelementptr inbounds %class.DexLoader, ptr %97, i32 0, i32 0
  %139 = load ptr, ptr %138, align 8, !tbaa !9
  %140 = getelementptr inbounds %struct.dex_header, ptr %139, i32 0, i32 13
  %141 = load i32, ptr %140, align 1, !tbaa !46
  %142 = getelementptr inbounds %class.DexLoader, ptr %97, i32 0, i32 7
  %143 = getelementptr inbounds %struct.dex_stats_t, ptr %142, i32 0, i32 8
  %144 = load i32, ptr %143, align 8, !tbaa !47
  %145 = add i32 %144, %141
  store i32 %145, ptr %143, align 8, !tbaa !47
  %146 = getelementptr inbounds %class.DexLoader, ptr %97, i32 0, i32 0
  %147 = load ptr, ptr %146, align 8, !tbaa !9
  %148 = getelementptr inbounds %struct.dex_header, ptr %147, i32 0, i32 3
  %149 = load i32, ptr %148, align 1, !tbaa !48
  %150 = getelementptr inbounds %class.DexLoader, ptr %97, i32 0, i32 7
  %151 = getelementptr inbounds %struct.dex_stats_t, ptr %150, i32 0, i32 12
  %152 = load i32, ptr %151, align 8, !tbaa !49
  %153 = add i32 %152, %149
  store i32 %153, ptr %151, align 8, !tbaa !49
  %154 = getelementptr inbounds %class.DexLoader, ptr %97, i32 0, i32 7
  %155 = getelementptr inbounds %struct.dex_stats_t, ptr %154, i32 0, i32 14
  %156 = load i32, ptr %155, align 8, !tbaa !50
  %157 = add nsw i32 %156, 0
  store i32 %157, ptr %155, align 8, !tbaa !50
  %158 = getelementptr inbounds %class.DexLoader, ptr %97, i32 0, i32 7
  %159 = getelementptr inbounds %struct.dex_stats_t, ptr %158, i32 0, i32 15
  %160 = load i32, ptr %159, align 4, !tbaa !51
  %161 = add nsw i32 %160, 0
  store i32 %161, ptr %159, align 4, !tbaa !51
  call void @llvm.lifetime.start.p0(i64 56, ptr %3) #10
  call void @_ZN12UnorderedSetI20DexEncodedValueArrayN5boost4hashIS0_EESt8equal_toIS0_EEC2Ev(ptr noundef nonnull align 8 dereferenceable(56) %3)
  call void @llvm.lifetime.start.p0(i64 48, ptr %4) #10
  call void @_ZNSt3setIP11DexTypeList23dextypelists_comparatorSaIS1_EEC2Ev(ptr noundef nonnull align 8 dereferenceable(48) %4) #10
  call void @llvm.lifetime.start.p0(i64 56, ptr %5) #10
  invoke void @_ZN12UnorderedSetIjSt4hashIjESt8equal_toIjEEC2Ev(ptr noundef nonnull align 8 dereferenceable(56) %5)
          to label %162 unwind label %171

162:                                              ; preds = %1
  call void @llvm.lifetime.start.p0(i64 4, ptr %8) #10
  store i32 0, ptr %8, align 4, !tbaa !52
  br label %163

163:                                              ; preds = %516, %162
  %164 = load i32, ptr %8, align 4, !tbaa !52
  %165 = getelementptr inbounds %class.DexLoader, ptr %97, i32 0, i32 0
  %166 = load ptr, ptr %165, align 8, !tbaa !9
  %167 = getelementptr inbounds %struct.dex_header, ptr %166, i32 0, i32 19
  %168 = load i32, ptr %167, align 1, !tbaa !38
  %169 = icmp ult i32 %164, %168
  br i1 %169, label %175, label %170

170:                                              ; preds = %163
  store i32 2, ptr %9, align 4
  call void @llvm.lifetime.end.p0(i64 4, ptr %8) #10
  br label %528

171:                                              ; preds = %1
  %172 = landingpad { ptr, i32 }
          cleanup
  %173 = extractvalue { ptr, i32 } %172, 0
  store ptr %173, ptr %6, align 8
  %174 = extractvalue { ptr, i32 } %172, 1
  store i32 %174, ptr %7, align 4
  br label %1537

175:                                              ; preds = %163
  call void @llvm.lifetime.start.p0(i64 8, ptr %10) #10
  %176 = getelementptr inbounds %class.DexLoader, ptr %97, i32 0, i32 3
  %177 = load i32, ptr %8, align 4, !tbaa !52
  %178 = zext i32 %177 to i64
  %179 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZNSt6vectorIP8DexClassSaIS1_EE2atEm(ptr noundef nonnull align 8 dereferenceable(24) %176, i64 noundef %178)
          to label %180 unwind label %185

180:                                              ; preds = %175
  %181 = load ptr, ptr %179, align 8, !tbaa !5
  store ptr %181, ptr %10, align 8, !tbaa !5
  %182 = load ptr, ptr %10, align 8, !tbaa !5
  %183 = icmp eq ptr %182, null
  br i1 %183, label %184, label %189

184:                                              ; preds = %180
  store i32 4, ptr %9, align 4
  br label %513

185:                                              ; preds = %175
  %186 = landingpad { ptr, i32 }
          cleanup
  %187 = extractvalue { ptr, i32 } %186, 0
  store ptr %187, ptr %6, align 8
  %188 = extractvalue { ptr, i32 } %186, 1
  store i32 %188, ptr %7, align 4
  br label %527

189:                                              ; preds = %180
  call void @llvm.lifetime.start.p0(i64 8, ptr %11) #10
  %190 = getelementptr inbounds %class.DexLoader, ptr %97, i32 0, i32 2
  %191 = load ptr, ptr %190, align 8, !tbaa !53
  %192 = load i32, ptr %8, align 4, !tbaa !52
  %193 = zext i32 %192 to i64
  %194 = getelementptr inbounds %struct.dex_class_def, ptr %191, i64 %193
  store ptr %194, ptr %11, align 8, !tbaa !5
  call void @llvm.lifetime.start.p0(i64 4, ptr %12) #10
  %195 = load ptr, ptr %11, align 8, !tbaa !5
  %196 = getelementptr inbounds %struct.dex_class_def, ptr %195, i32 0, i32 5
  %197 = load i32, ptr %196, align 1, !tbaa !54
  store i32 %197, ptr %12, align 4, !tbaa !52
  %198 = load i32, ptr %12, align 4, !tbaa !52
  %199 = icmp ne i32 %198, 0
  br i1 %199, label %200, label %430

200:                                              ; preds = %189
  call void @llvm.lifetime.start.p0(i64 8, ptr %13) #10
  %201 = getelementptr inbounds %class.DexLoader, ptr %97, i32 0, i32 1
  %202 = call noundef ptr @_ZNKSt10unique_ptrI6DexIdxSt14default_deleteIS0_EEptEv(ptr noundef nonnull align 8 dereferenceable(8) %201) #10
  %203 = load i32, ptr %12, align 4, !tbaa !52
  %204 = invoke noundef ptr @_ZN6DexIdx8get_dataI30dex_annotations_directory_itemEEPKT_j(ptr noundef nonnull align 8 dereferenceable(288) %202, i32 noundef %203)
          to label %205 unwind label %229

205:                                              ; preds = %200
  store ptr %204, ptr %13, align 8, !tbaa !5
  call void @llvm.lifetime.start.p0(i64 4, ptr %14) #10
  %206 = load ptr, ptr %13, align 8, !tbaa !5
  %207 = getelementptr inbounds %struct.dex_annotations_directory_item, ptr %206, i32 0, i32 0
  %208 = load i32, ptr %207, align 1, !tbaa !56
  store i32 %208, ptr %14, align 4, !tbaa !52
  %209 = load i32, ptr %14, align 4, !tbaa !52
  %210 = icmp ne i32 %209, 0
  br i1 %210, label %211, label %283

211:                                              ; preds = %205
  call void @llvm.lifetime.start.p0(i64 8, ptr %15) #10
  %212 = getelementptr inbounds %class.DexLoader, ptr %97, i32 0, i32 1
  %213 = call noundef ptr @_ZNKSt10unique_ptrI6DexIdxSt14default_deleteIS0_EEptEv(ptr noundef nonnull align 8 dereferenceable(8) %212) #10
  %214 = load i32, ptr %14, align 4, !tbaa !52
  %215 = invoke noundef ptr @_ZN6DexIdx13get_uint_dataEj(ptr noundef nonnull align 8 dereferenceable(288) %213, i32 noundef %214)
          to label %216 unwind label %233

216:                                              ; preds = %211
  store ptr %215, ptr %15, align 8, !tbaa !5
  call void @llvm.lifetime.start.p0(i64 4, ptr %16) #10
  %217 = load ptr, ptr %15, align 8, !tbaa !5
  %218 = getelementptr inbounds i32, ptr %217, i32 1
  store ptr %218, ptr %15, align 8, !tbaa !5
  %219 = load i32, ptr %217, align 4, !tbaa !52
  store i32 %219, ptr %16, align 4, !tbaa !52
  %220 = load ptr, ptr %15, align 8, !tbaa !5
  %221 = load ptr, ptr %15, align 8, !tbaa !5
  %222 = load i32, ptr %16, align 4, !tbaa !52
  %223 = zext i32 %222 to i64
  %224 = getelementptr inbounds i32, ptr %221, i64 %223
  %225 = icmp ule ptr %220, %224
  br i1 %225, label %226, label %227

226:                                              ; preds = %216
  br label %242

227:                                              ; preds = %216
  invoke void (ptr, ptr, i32, ptr, i32, ptr, ...) @_Z11assert_failPKcS0_jS0_10RedexErrorS0_z(ptr noundef @.str.8, ptr noundef @.str.9, i32 noundef 315, ptr noundef @__PRETTY_FUNCTION__._ZN9DexLoader18gather_input_statsEv, i32 noundef 12, ptr noundef @.str.10) #11
          to label %228 unwind label %237

228:                                              ; preds = %227
  unreachable

229:                                              ; preds = %200
  %230 = landingpad { ptr, i32 }
          cleanup
  %231 = extractvalue { ptr, i32 } %230, 0
  store ptr %231, ptr %6, align 8
  %232 = extractvalue { ptr, i32 } %230, 1
  store i32 %232, ptr %7, align 4
  br label %429

233:                                              ; preds = %211
  %234 = landingpad { ptr, i32 }
          cleanup
  %235 = extractvalue { ptr, i32 } %234, 0
  store ptr %235, ptr %6, align 8
  %236 = extractvalue { ptr, i32 } %234, 1
  store i32 %236, ptr %7, align 4
  br label %282

237:                                              ; preds = %253, %242, %227
  %238 = landingpad { ptr, i32 }
          cleanup
  %239 = extractvalue { ptr, i32 } %238, 0
  store ptr %239, ptr %6, align 8
  %240 = extractvalue { ptr, i32 } %238, 1
  store i32 %240, ptr %7, align 4
  br label %281

241:                                              ; No predecessors!
  br label %242

242:                                              ; preds = %241, %226
  %243 = load ptr, ptr %15, align 8, !tbaa !5
  %244 = load i32, ptr %16, align 4, !tbaa !52
  %245 = zext i32 %244 to i64
  %246 = getelementptr inbounds i32, ptr %243, i64 %245
  %247 = getelementptr inbounds %class.DexLoader, ptr %97, i32 0, i32 1
  %248 = call noundef ptr @_ZNKSt10unique_ptrI6DexIdxSt14default_deleteIS0_EEptEv(ptr noundef nonnull align 8 dereferenceable(8) %247) #10
  %249 = invoke noundef ptr @_ZNK6DexIdx3endEv(ptr noundef nonnull align 8 dereferenceable(288) %248)
          to label %250 unwind label %237

250:                                              ; preds = %242
  %251 = icmp ule ptr %246, %249
  br i1 %251, label %252, label %253

252:                                              ; preds = %250
  br label %256

253:                                              ; preds = %250
  invoke void (ptr, ptr, i32, ptr, i32, ptr, ...) @_Z11assert_failPKcS0_jS0_10RedexErrorS0_z(ptr noundef @.str.11, ptr noundef @.str.9, i32 noundef 317, ptr noundef @__PRETTY_FUNCTION__._ZN9DexLoader18gather_input_statsEv, i32 noundef 12, ptr noundef @.str.10) #11
          to label %254 unwind label %237

254:                                              ; preds = %253
  unreachable

255:                                              ; No predecessors!
  br label %256

256:                                              ; preds = %255, %252
  call void @llvm.lifetime.start.p0(i64 4, ptr %17) #10
  store i32 0, ptr %17, align 4, !tbaa !52
  br label %257

257:                                              ; preds = %273, %256
  %258 = load i32, ptr %17, align 4, !tbaa !52
  %259 = load i32, ptr %16, align 4, !tbaa !52
  %260 = icmp ult i32 %258, %259
  br i1 %260, label %262, label %261

261:                                              ; preds = %257
  store i32 5, ptr %9, align 4
  call void @llvm.lifetime.end.p0(i64 4, ptr %17) #10
  br label %280

262:                                              ; preds = %257
  %263 = load ptr, ptr %15, align 8, !tbaa !5
  %264 = load i32, ptr %17, align 4, !tbaa !52
  %265 = zext i32 %264 to i64
  %266 = getelementptr inbounds i32, ptr %263, i64 %265
  %267 = invoke { ptr, i8 } @_ZN12UnorderedSetIjSt4hashIjESt8equal_toIjEE6insertERKj(ptr noundef nonnull align 8 dereferenceable(56) %5, ptr noundef nonnull align 4 dereferenceable(4) %266)
          to label %268 unwind label %276

268:                                              ; preds = %262
  %269 = getelementptr inbounds { ptr, i8 }, ptr %18, i32 0, i32 0
  %270 = extractvalue { ptr, i8 } %267, 0
  store ptr %270, ptr %269, align 8
  %271 = getelementptr inbounds { ptr, i8 }, ptr %18, i32 0, i32 1
  %272 = extractvalue { ptr, i8 } %267, 1
  store i8 %272, ptr %271, align 8
  br label %273

273:                                              ; preds = %268
  %274 = load i32, ptr %17, align 4, !tbaa !52
  %275 = add i32 %274, 1
  store i32 %275, ptr %17, align 4, !tbaa !52
  br label %257, !llvm.loop !58

276:                                              ; preds = %262
  %277 = landingpad { ptr, i32 }
          cleanup
  %278 = extractvalue { ptr, i32 } %277, 0
  store ptr %278, ptr %6, align 8
  %279 = extractvalue { ptr, i32 } %277, 1
  store i32 %279, ptr %7, align 4
  call void @llvm.lifetime.end.p0(i64 4, ptr %17) #10
  br label %281

280:                                              ; preds = %261
  call void @llvm.lifetime.end.p0(i64 4, ptr %16) #10
  call void @llvm.lifetime.end.p0(i64 8, ptr %15) #10
  br label %283

281:                                              ; preds = %276, %237
  call void @llvm.lifetime.end.p0(i64 4, ptr %16) #10
  br label %282

282:                                              ; preds = %281, %233
  call void @llvm.lifetime.end.p0(i64 8, ptr %15) #10
  br label %428

283:                                              ; preds = %280, %205
  call void @llvm.lifetime.start.p0(i64 8, ptr %19) #10
  %284 = load ptr, ptr %13, align 8, !tbaa !5
  %285 = getelementptr inbounds %struct.dex_annotations_directory_item, ptr %284, i64 1
  store ptr %285, ptr %19, align 8, !tbaa !5
  call void @llvm.lifetime.start.p0(i64 4, ptr %20) #10
  store i32 0, ptr %20, align 4, !tbaa !52
  br label %286

286:                                              ; preds = %304, %283
  %287 = load i32, ptr %20, align 4, !tbaa !52
  %288 = load ptr, ptr %13, align 8, !tbaa !5
  %289 = getelementptr inbounds %struct.dex_annotations_directory_item, ptr %288, i32 0, i32 1
  %290 = load i32, ptr %289, align 1, !tbaa !60
  %291 = icmp ult i32 %287, %290
  br i1 %291, label %293, label %292

292:                                              ; preds = %286
  store i32 8, ptr %9, align 4
  call void @llvm.lifetime.end.p0(i64 4, ptr %20) #10
  br label %311

293:                                              ; preds = %286
  %294 = load ptr, ptr %19, align 8, !tbaa !5
  %295 = getelementptr inbounds i32, ptr %294, i32 1
  store ptr %295, ptr %19, align 8, !tbaa !5
  %296 = load ptr, ptr %19, align 8, !tbaa !5
  %297 = getelementptr inbounds i32, ptr %296, i32 1
  store ptr %297, ptr %19, align 8, !tbaa !5
  %298 = invoke { ptr, i8 } @_ZN12UnorderedSetIjSt4hashIjESt8equal_toIjEE6insertERKj(ptr noundef nonnull align 8 dereferenceable(56) %5, ptr noundef nonnull align 4 dereferenceable(4) %296)
          to label %299 unwind label %307

299:                                              ; preds = %293
  %300 = getelementptr inbounds { ptr, i8 }, ptr %21, i32 0, i32 0
  %301 = extractvalue { ptr, i8 } %298, 0
  store ptr %301, ptr %300, align 8
  %302 = getelementptr inbounds { ptr, i8 }, ptr %21, i32 0, i32 1
  %303 = extractvalue { ptr, i8 } %298, 1
  store i8 %303, ptr %302, align 8
  br label %304

304:                                              ; preds = %299
  %305 = load i32, ptr %20, align 4, !tbaa !52
  %306 = add i32 %305, 1
  store i32 %306, ptr %20, align 4, !tbaa !52
  br label %286, !llvm.loop !61

307:                                              ; preds = %293
  %308 = landingpad { ptr, i32 }
          cleanup
  %309 = extractvalue { ptr, i32 } %308, 0
  store ptr %309, ptr %6, align 8
  %310 = extractvalue { ptr, i32 } %308, 1
  store i32 %310, ptr %7, align 4
  call void @llvm.lifetime.end.p0(i64 4, ptr %20) #10
  br label %427

311:                                              ; preds = %292
  call void @llvm.lifetime.start.p0(i64 4, ptr %22) #10
  store i32 0, ptr %22, align 4, !tbaa !52
  br label %312

312:                                              ; preds = %330, %311
  %313 = load i32, ptr %22, align 4, !tbaa !52
  %314 = load ptr, ptr %13, align 8, !tbaa !5
  %315 = getelementptr inbounds %struct.dex_annotations_directory_item, ptr %314, i32 0, i32 2
  %316 = load i32, ptr %315, align 1, !tbaa !62
  %317 = icmp ult i32 %313, %316
  br i1 %317, label %319, label %318

318:                                              ; preds = %312
  store i32 11, ptr %9, align 4
  call void @llvm.lifetime.end.p0(i64 4, ptr %22) #10
  br label %337

319:                                              ; preds = %312
  %320 = load ptr, ptr %19, align 8, !tbaa !5
  %321 = getelementptr inbounds i32, ptr %320, i32 1
  store ptr %321, ptr %19, align 8, !tbaa !5
  %322 = load ptr, ptr %19, align 8, !tbaa !5
  %323 = getelementptr inbounds i32, ptr %322, i32 1
  store ptr %323, ptr %19, align 8, !tbaa !5
  %324 = invoke { ptr, i8 } @_ZN12UnorderedSetIjSt4hashIjESt8equal_toIjEE6insertERKj(ptr noundef nonnull align 8 dereferenceable(56) %5, ptr noundef nonnull align 4 dereferenceable(4) %322)
          to label %325 unwind label %333

325:                                              ; preds = %319
  %326 = getelementptr inbounds { ptr, i8 }, ptr %23, i32 0, i32 0
  %327 = extractvalue { ptr, i8 } %324, 0
  store ptr %327, ptr %326, align 8
  %328 = getelementptr inbounds { ptr, i8 }, ptr %23, i32 0, i32 1
  %329 = extractvalue { ptr, i8 } %324, 1
  store i8 %329, ptr %328, align 8
  br label %330

330:                                              ; preds = %325
  %331 = load i32, ptr %22, align 4, !tbaa !52
  %332 = add i32 %331, 1
  store i32 %332, ptr %22, align 4, !tbaa !52
  br label %312, !llvm.loop !63

333:                                              ; preds = %319
  %334 = landingpad { ptr, i32 }
          cleanup
  %335 = extractvalue { ptr, i32 } %334, 0
  store ptr %335, ptr %6, align 8
  %336 = extractvalue { ptr, i32 } %334, 1
  store i32 %336, ptr %7, align 4
  call void @llvm.lifetime.end.p0(i64 4, ptr %22) #10
  br label %427

337:                                              ; preds = %318
  call void @llvm.lifetime.start.p0(i64 4, ptr %24) #10
  store i32 0, ptr %24, align 4, !tbaa !52
  br label %338

338:                                              ; preds = %423, %337
  %339 = load i32, ptr %24, align 4, !tbaa !52
  %340 = load ptr, ptr %13, align 8, !tbaa !5
  %341 = getelementptr inbounds %struct.dex_annotations_directory_item, ptr %340, i32 0, i32 3
  %342 = load i32, ptr %341, align 1, !tbaa !64
  %343 = icmp ult i32 %339, %342
  br i1 %343, label %345, label %344

344:                                              ; preds = %338
  store i32 14, ptr %9, align 4
  call void @llvm.lifetime.end.p0(i64 4, ptr %24) #10
  br label %426

345:                                              ; preds = %338
  %346 = load ptr, ptr %19, align 8, !tbaa !5
  %347 = getelementptr inbounds i32, ptr %346, i32 1
  store ptr %347, ptr %19, align 8, !tbaa !5
  call void @llvm.lifetime.start.p0(i64 4, ptr %25) #10
  %348 = load ptr, ptr %19, align 8, !tbaa !5
  %349 = getelementptr inbounds i32, ptr %348, i32 1
  store ptr %349, ptr %19, align 8, !tbaa !5
  %350 = load i32, ptr %348, align 4, !tbaa !52
  store i32 %350, ptr %25, align 4, !tbaa !52
  %351 = load i32, ptr %25, align 4, !tbaa !52
  %352 = icmp ne i32 %351, 0
  br i1 %352, label %353, label %422

353:                                              ; preds = %345
  call void @llvm.lifetime.start.p0(i64 8, ptr %26) #10
  %354 = getelementptr inbounds %class.DexLoader, ptr %97, i32 0, i32 1
  %355 = call noundef ptr @_ZNKSt10unique_ptrI6DexIdxSt14default_deleteIS0_EEptEv(ptr noundef nonnull align 8 dereferenceable(8) %354) #10
  %356 = load i32, ptr %25, align 4, !tbaa !52
  %357 = invoke noundef ptr @_ZN6DexIdx13get_uint_dataEj(ptr noundef nonnull align 8 dereferenceable(288) %355, i32 noundef %356)
          to label %358 unwind label %371

358:                                              ; preds = %353
  store ptr %357, ptr %26, align 8, !tbaa !5
  call void @llvm.lifetime.start.p0(i64 4, ptr %27) #10
  %359 = load ptr, ptr %26, align 8, !tbaa !5
  %360 = getelementptr inbounds i32, ptr %359, i32 1
  store ptr %360, ptr %26, align 8, !tbaa !5
  %361 = load i32, ptr %359, align 4, !tbaa !52
  store i32 %361, ptr %27, align 4, !tbaa !52
  %362 = load ptr, ptr %26, align 8, !tbaa !5
  %363 = load ptr, ptr %26, align 8, !tbaa !5
  %364 = load i32, ptr %27, align 4, !tbaa !52
  %365 = zext i32 %364 to i64
  %366 = getelementptr inbounds i32, ptr %363, i64 %365
  %367 = icmp ult ptr %362, %366
  br i1 %367, label %368, label %369

368:                                              ; preds = %358
  br label %380

369:                                              ; preds = %358
  invoke void (ptr, ptr, i32, ptr, i32, ptr, ...) @_Z11assert_failPKcS0_jS0_10RedexErrorS0_z(ptr noundef @.str.12, ptr noundef @.str.9, i32 noundef 338, ptr noundef @__PRETTY_FUNCTION__._ZN9DexLoader18gather_input_statsEv, i32 noundef 12, ptr noundef @.str.10) #11
          to label %370 unwind label %375

370:                                              ; preds = %369
  unreachable

371:                                              ; preds = %353
  %372 = landingpad { ptr, i32 }
          cleanup
  %373 = extractvalue { ptr, i32 } %372, 0
  store ptr %373, ptr %6, align 8
  %374 = extractvalue { ptr, i32 } %372, 1
  store i32 %374, ptr %7, align 4
  br label %421

375:                                              ; preds = %391, %380, %369
  %376 = landingpad { ptr, i32 }
          cleanup
  %377 = extractvalue { ptr, i32 } %376, 0
  store ptr %377, ptr %6, align 8
  %378 = extractvalue { ptr, i32 } %376, 1
  store i32 %378, ptr %7, align 4
  br label %420

379:                                              ; No predecessors!
  br label %380

380:                                              ; preds = %379, %368
  %381 = load ptr, ptr %26, align 8, !tbaa !5
  %382 = load i32, ptr %27, align 4, !tbaa !52
  %383 = zext i32 %382 to i64
  %384 = getelementptr inbounds i32, ptr %381, i64 %383
  %385 = getelementptr inbounds %class.DexLoader, ptr %97, i32 0, i32 1
  %386 = call noundef ptr @_ZNKSt10unique_ptrI6DexIdxSt14default_deleteIS0_EEptEv(ptr noundef nonnull align 8 dereferenceable(8) %385) #10
  %387 = invoke noundef ptr @_ZNK6DexIdx3endEv(ptr noundef nonnull align 8 dereferenceable(288) %386)
          to label %388 unwind label %375

388:                                              ; preds = %380
  %389 = icmp ule ptr %384, %387
  br i1 %389, label %390, label %391

390:                                              ; preds = %388
  br label %394

391:                                              ; preds = %388
  invoke void (ptr, ptr, i32, ptr, i32, ptr, ...) @_Z11assert_failPKcS0_jS0_10RedexErrorS0_z(ptr noundef @.str.13, ptr noundef @.str.9, i32 noundef 340, ptr noundef @__PRETTY_FUNCTION__._ZN9DexLoader18gather_input_statsEv, i32 noundef 12, ptr noundef @.str.10) #11
          to label %392 unwind label %375

392:                                              ; preds = %391
  unreachable

393:                                              ; No predecessors!
  br label %394

394:                                              ; preds = %393, %390
  call void @llvm.lifetime.start.p0(i64 4, ptr %28) #10
  store i32 0, ptr %28, align 4, !tbaa !52
  br label %395

395:                                              ; preds = %412, %394
  %396 = load i32, ptr %28, align 4, !tbaa !52
  %397 = load i32, ptr %27, align 4, !tbaa !52
  %398 = icmp ult i32 %396, %397
  br i1 %398, label %400, label %399

399:                                              ; preds = %395
  store i32 17, ptr %9, align 4
  call void @llvm.lifetime.end.p0(i64 4, ptr %28) #10
  br label %419

400:                                              ; preds = %395
  call void @llvm.lifetime.start.p0(i64 4, ptr %29) #10
  %401 = load ptr, ptr %26, align 8, !tbaa !5
  %402 = load i32, ptr %28, align 4, !tbaa !52
  %403 = zext i32 %402 to i64
  %404 = getelementptr inbounds i32, ptr %401, i64 %403
  %405 = load i32, ptr %404, align 4, !tbaa !52
  store i32 %405, ptr %29, align 4, !tbaa !52
  %406 = invoke { ptr, i8 } @_ZN12UnorderedSetIjSt4hashIjESt8equal_toIjEE6insertERKj(ptr noundef nonnull align 8 dereferenceable(56) %5, ptr noundef nonnull align 4 dereferenceable(4) %29)
          to label %407 unwind label %415

407:                                              ; preds = %400
  %408 = getelementptr inbounds { ptr, i8 }, ptr %30, i32 0, i32 0
  %409 = extractvalue { ptr, i8 } %406, 0
  store ptr %409, ptr %408, align 8
  %410 = getelementptr inbounds { ptr, i8 }, ptr %30, i32 0, i32 1
  %411 = extractvalue { ptr, i8 } %406, 1
  store i8 %411, ptr %410, align 8
  call void @llvm.lifetime.end.p0(i64 4, ptr %29) #10
  br label %412

412:                                              ; preds = %407
  %413 = load i32, ptr %28, align 4, !tbaa !52
  %414 = add i32 %413, 1
  store i32 %414, ptr %28, align 4, !tbaa !52
  br label %395, !llvm.loop !65

415:                                              ; preds = %400
  %416 = landingpad { ptr, i32 }
          cleanup
  %417 = extractvalue { ptr, i32 } %416, 0
  store ptr %417, ptr %6, align 8
  %418 = extractvalue { ptr, i32 } %416, 1
  store i32 %418, ptr %7, align 4
  call void @llvm.lifetime.end.p0(i64 4, ptr %29) #10
  call void @llvm.lifetime.end.p0(i64 4, ptr %28) #10
  br label %420

419:                                              ; preds = %399
  call void @llvm.lifetime.end.p0(i64 4, ptr %27) #10
  call void @llvm.lifetime.end.p0(i64 8, ptr %26) #10
  br label %422

420:                                              ; preds = %415, %375
  call void @llvm.lifetime.end.p0(i64 4, ptr %27) #10
  br label %421

421:                                              ; preds = %420, %371
  call void @llvm.lifetime.end.p0(i64 8, ptr %26) #10
  call void @llvm.lifetime.end.p0(i64 4, ptr %25) #10
  call void @llvm.lifetime.end.p0(i64 4, ptr %24) #10
  br label %427

422:                                              ; preds = %419, %345
  call void @llvm.lifetime.end.p0(i64 4, ptr %25) #10
  br label %423

423:                                              ; preds = %422
  %424 = load i32, ptr %24, align 4, !tbaa !52
  %425 = add i32 %424, 1
  store i32 %425, ptr %24, align 4, !tbaa !52
  br label %338, !llvm.loop !66

426:                                              ; preds = %344
  call void @llvm.lifetime.end.p0(i64 8, ptr %19) #10
  call void @llvm.lifetime.end.p0(i64 4, ptr %14) #10
  call void @llvm.lifetime.end.p0(i64 8, ptr %13) #10
  br label %430

427:                                              ; preds = %421, %333, %307
  call void @llvm.lifetime.end.p0(i64 8, ptr %19) #10
  br label %428

428:                                              ; preds = %427, %282
  call void @llvm.lifetime.end.p0(i64 4, ptr %14) #10
  br label %429

429:                                              ; preds = %428, %229
  call void @llvm.lifetime.end.p0(i64 8, ptr %13) #10
  br label %526

430:                                              ; preds = %426, %189
  call void @llvm.lifetime.start.p0(i64 8, ptr %31) #10
  %431 = load ptr, ptr %10, align 8, !tbaa !5
  %432 = invoke noundef ptr @_ZNK8DexClass14get_interfacesEv(ptr noundef nonnull align 8 dereferenceable(176) %431)
          to label %433 unwind label %460

433:                                              ; preds = %430
  store ptr %432, ptr %31, align 8, !tbaa !5
  %434 = invoke { ptr, i8 } @_ZNSt3setIP11DexTypeList23dextypelists_comparatorSaIS1_EE6insertERKS1_(ptr noundef nonnull align 8 dereferenceable(48) %4, ptr noundef nonnull align 8 dereferenceable(8) %31)
          to label %435 unwind label %460

435:                                              ; preds = %433
  %436 = getelementptr inbounds { ptr, i8 }, ptr %32, i32 0, i32 0
  %437 = extractvalue { ptr, i8 } %434, 0
  store ptr %437, ptr %436, align 8
  %438 = getelementptr inbounds { ptr, i8 }, ptr %32, i32 0, i32 1
  %439 = extractvalue { ptr, i8 } %434, 1
  store i8 %439, ptr %438, align 8
  call void @llvm.lifetime.start.p0(i64 8, ptr %33) #10
  %440 = load ptr, ptr %10, align 8, !tbaa !5
  invoke void @_ZN8DexClass17get_static_valuesEv(ptr dead_on_unwind writable sret(%"class.std::unique_ptr.102") align 8 %33, ptr noundef nonnull align 8 dereferenceable(176) %440)
          to label %441 unwind label %464

441:                                              ; preds = %435
  %442 = call noundef zeroext i1 @_ZNKSt10unique_ptrI20DexEncodedValueArraySt14default_deleteIS0_EEcvbEv(ptr noundef nonnull align 8 dereferenceable(8) %33) #10
  br i1 %442, label %443, label %473

443:                                              ; preds = %441
  %444 = call noundef nonnull align 8 dereferenceable(18) ptr @_ZNKSt10unique_ptrI20DexEncodedValueArraySt14default_deleteIS0_EEdeEv(ptr noundef nonnull align 8 dereferenceable(8) %33) #10
  %445 = invoke noundef i64 @_ZNK12UnorderedSetI20DexEncodedValueArrayN5boost4hashIS0_EESt8equal_toIS0_EE5countERKS0_(ptr noundef nonnull align 8 dereferenceable(56) %3, ptr noundef nonnull align 8 dereferenceable(18) %444)
          to label %446 unwind label %468

446:                                              ; preds = %443
  %447 = icmp ne i64 %445, 0
  br i1 %447, label %472, label %448

448:                                              ; preds = %446
  %449 = call noundef nonnull align 8 dereferenceable(18) ptr @_ZNKSt10unique_ptrI20DexEncodedValueArraySt14default_deleteIS0_EEdeEv(ptr noundef nonnull align 8 dereferenceable(8) %33) #10
  %450 = invoke { ptr, i8 } @_ZN12UnorderedSetI20DexEncodedValueArrayN5boost4hashIS0_EESt8equal_toIS0_EE7emplaceIJS0_EEESt4pairINS6_13FixedIteratorEbEDpOT_(ptr noundef nonnull align 8 dereferenceable(56) %3, ptr noundef nonnull align 8 dereferenceable(18) %449)
          to label %451 unwind label %468

451:                                              ; preds = %448
  %452 = getelementptr inbounds { ptr, i8 }, ptr %34, i32 0, i32 0
  %453 = extractvalue { ptr, i8 } %450, 0
  store ptr %453, ptr %452, align 8
  %454 = getelementptr inbounds { ptr, i8 }, ptr %34, i32 0, i32 1
  %455 = extractvalue { ptr, i8 } %450, 1
  store i8 %455, ptr %454, align 8
  %456 = getelementptr inbounds %class.DexLoader, ptr %97, i32 0, i32 7
  %457 = getelementptr inbounds %struct.dex_stats_t, ptr %456, i32 0, i32 9
  %458 = load i32, ptr %457, align 4, !tbaa !67
  %459 = add nsw i32 %458, 1
  store i32 %459, ptr %457, align 4, !tbaa !67
  br label %472

460:                                              ; preds = %433, %430
  %461 = landingpad { ptr, i32 }
          cleanup
  %462 = extractvalue { ptr, i32 } %461, 0
  store ptr %462, ptr %6, align 8
  %463 = extractvalue { ptr, i32 } %461, 1
  store i32 %463, ptr %7, align 4
  br label %525

464:                                              ; preds = %435
  %465 = landingpad { ptr, i32 }
          cleanup
  %466 = extractvalue { ptr, i32 } %465, 0
  store ptr %466, ptr %6, align 8
  %467 = extractvalue { ptr, i32 } %465, 1
  store i32 %467, ptr %7, align 4
  br label %524

468:                                              ; preds = %491, %480, %476, %473, %448, %443
  %469 = landingpad { ptr, i32 }
          cleanup
  %470 = extractvalue { ptr, i32 } %469, 0
  store ptr %470, ptr %6, align 8
  %471 = extractvalue { ptr, i32 } %469, 1
  store i32 %471, ptr %7, align 4
  br label %523

472:                                              ; preds = %451, %446
  br label %473

473:                                              ; preds = %472, %441
  %474 = load ptr, ptr %10, align 8, !tbaa !5
  %475 = invoke noundef nonnull align 8 dereferenceable(24) ptr @_ZN8DexClass11get_ifieldsEv(ptr noundef nonnull align 8 dereferenceable(176) %474)
          to label %476 unwind label %468

476:                                              ; preds = %473
  %477 = call noundef i64 @_ZNKSt6vectorIP8DexFieldSaIS1_EE4sizeEv(ptr noundef nonnull align 8 dereferenceable(24) %475) #10
  %478 = load ptr, ptr %10, align 8, !tbaa !5
  %479 = invoke noundef nonnull align 8 dereferenceable(24) ptr @_ZN8DexClass11get_sfieldsEv(ptr noundef nonnull align 8 dereferenceable(176) %478)
          to label %480 unwind label %468

480:                                              ; preds = %476
  %481 = call noundef i64 @_ZNKSt6vectorIP8DexFieldSaIS1_EE4sizeEv(ptr noundef nonnull align 8 dereferenceable(24) %479) #10
  %482 = add i64 %477, %481
  %483 = getelementptr inbounds %class.DexLoader, ptr %97, i32 0, i32 7
  %484 = getelementptr inbounds %struct.dex_stats_t, ptr %483, i32 0, i32 5
  %485 = load i32, ptr %484, align 4, !tbaa !68
  %486 = sext i32 %485 to i64
  %487 = add i64 %486, %482
  %488 = trunc i64 %487 to i32
  store i32 %488, ptr %484, align 4, !tbaa !68
  %489 = load ptr, ptr %10, align 8, !tbaa !5
  %490 = invoke noundef nonnull align 8 dereferenceable(24) ptr @_ZN8DexClass12get_vmethodsEv(ptr noundef nonnull align 8 dereferenceable(176) %489)
          to label %491 unwind label %468

491:                                              ; preds = %480
  %492 = call noundef i64 @_ZNKSt6vectorIP9DexMethodSaIS1_EE4sizeEv(ptr noundef nonnull align 8 dereferenceable(24) %490) #10
  %493 = load ptr, ptr %10, align 8, !tbaa !5
  %494 = invoke noundef nonnull align 8 dereferenceable(24) ptr @_ZN8DexClass12get_dmethodsEv(ptr noundef nonnull align 8 dereferenceable(176) %493)
          to label %495 unwind label %468

495:                                              ; preds = %491
  %496 = call noundef i64 @_ZNKSt6vectorIP9DexMethodSaIS1_EE4sizeEv(ptr noundef nonnull align 8 dereferenceable(24) %494) #10
  %497 = add i64 %492, %496
  %498 = getelementptr inbounds %class.DexLoader, ptr %97, i32 0, i32 7
  %499 = getelementptr inbounds %struct.dex_stats_t, ptr %498, i32 0, i32 3
  %500 = load i32, ptr %499, align 4, !tbaa !69
  %501 = sext i32 %500 to i64
  %502 = add i64 %501, %497
  %503 = trunc i64 %502 to i32
  store i32 %503, ptr %499, align 4, !tbaa !69
  call void @llvm.lifetime.start.p0(i64 8, ptr %35) #10
  %504 = getelementptr inbounds %class.anon, ptr %35, i32 0, i32 0
  store ptr %97, ptr %504, align 8, !tbaa !70
  %505 = load ptr, ptr %10, align 8, !tbaa !5
  %506 = invoke noundef nonnull align 8 dereferenceable(24) ptr @_ZN8DexClass12get_vmethodsEv(ptr noundef nonnull align 8 dereferenceable(176) %505)
          to label %507 unwind label %519

507:                                              ; preds = %495
  invoke void @"_ZZN9DexLoader18gather_input_statsEvENK3$_0clISt6vectorIP9DexMethodSaIS4_EEEEDaRKT_"(ptr noundef nonnull align 8 dereferenceable(8) %35, ptr noundef nonnull align 8 dereferenceable(24) %506)
          to label %508 unwind label %519

508:                                              ; preds = %507
  %509 = load ptr, ptr %10, align 8, !tbaa !5
  %510 = invoke noundef nonnull align 8 dereferenceable(24) ptr @_ZN8DexClass12get_dmethodsEv(ptr noundef nonnull align 8 dereferenceable(176) %509)
          to label %511 unwind label %519

511:                                              ; preds = %508
  invoke void @"_ZZN9DexLoader18gather_input_statsEvENK3$_0clISt6vectorIP9DexMethodSaIS4_EEEEDaRKT_"(ptr noundef nonnull align 8 dereferenceable(8) %35, ptr noundef nonnull align 8 dereferenceable(24) %510)
          to label %512 unwind label %519

512:                                              ; preds = %511
  call void @llvm.lifetime.end.p0(i64 8, ptr %35) #10
  call void @_ZNSt10unique_ptrI20DexEncodedValueArraySt14default_deleteIS0_EED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %33) #10
  call void @llvm.lifetime.end.p0(i64 8, ptr %33) #10
  call void @llvm.lifetime.end.p0(i64 8, ptr %31) #10
  call void @llvm.lifetime.end.p0(i64 4, ptr %12) #10
  call void @llvm.lifetime.end.p0(i64 8, ptr %11) #10
  store i32 0, ptr %9, align 4
  br label %513

513:                                              ; preds = %512, %184
  call void @llvm.lifetime.end.p0(i64 8, ptr %10) #10
  %514 = load i32, ptr %9, align 4
  switch i32 %514, label %1546 [
    i32 0, label %515
    i32 4, label %516
  ]

515:                                              ; preds = %513
  br label %516

516:                                              ; preds = %515, %513
  %517 = load i32, ptr %8, align 4, !tbaa !52
  %518 = add i32 %517, 1
  store i32 %518, ptr %8, align 4, !tbaa !52
  br label %163, !llvm.loop !72

519:                                              ; preds = %511, %508, %507, %495
  %520 = landingpad { ptr, i32 }
          cleanup
  %521 = extractvalue { ptr, i32 } %520, 0
  store ptr %521, ptr %6, align 8
  %522 = extractvalue { ptr, i32 } %520, 1
  store i32 %522, ptr %7, align 4
  call void @llvm.lifetime.end.p0(i64 8, ptr %35) #10
  br label %523

523:                                              ; preds = %519, %468
  call void @_ZNSt10unique_ptrI20DexEncodedValueArraySt14default_deleteIS0_EED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %33) #10
  br label %524

524:                                              ; preds = %523, %464
  call void @llvm.lifetime.end.p0(i64 8, ptr %33) #10
  br label %525

525:                                              ; preds = %524, %460
  call void @llvm.lifetime.end.p0(i64 8, ptr %31) #10
  br label %526

526:                                              ; preds = %525, %429
  call void @llvm.lifetime.end.p0(i64 4, ptr %12) #10
  call void @llvm.lifetime.end.p0(i64 8, ptr %11) #10
  br label %527

527:                                              ; preds = %526, %185
  call void @llvm.lifetime.end.p0(i64 8, ptr %10) #10
  call void @llvm.lifetime.end.p0(i64 4, ptr %8) #10
  br label %1536

528:                                              ; preds = %170
  call void @llvm.lifetime.start.p0(i64 4, ptr %36) #10
  store i32 0, ptr %36, align 4, !tbaa !52
  br label %529

529:                                              ; preds = %555, %528
  %530 = load i32, ptr %36, align 4, !tbaa !52
  %531 = getelementptr inbounds %class.DexLoader, ptr %97, i32 0, i32 0
  %532 = load ptr, ptr %531, align 8, !tbaa !9
  %533 = getelementptr inbounds %struct.dex_header, ptr %532, i32 0, i32 17
  %534 = load i32, ptr %533, align 1, !tbaa !40
  %535 = icmp ult i32 %530, %534
  br i1 %535, label %537, label %536

536:                                              ; preds = %529
  store i32 20, ptr %9, align 4
  call void @llvm.lifetime.end.p0(i64 4, ptr %36) #10
  br label %572

537:                                              ; preds = %529
  call void @llvm.lifetime.start.p0(i64 8, ptr %37) #10
  %538 = getelementptr inbounds %class.DexLoader, ptr %97, i32 0, i32 1
  %539 = call noundef ptr @_ZNKSt10unique_ptrI6DexIdxSt14default_deleteIS0_EEptEv(ptr noundef nonnull align 8 dereferenceable(8) %538) #10
  %540 = load i32, ptr %36, align 4, !tbaa !52
  %541 = invoke noundef ptr @_ZN6DexIdx13get_methodidxEj(ptr noundef nonnull align 8 dereferenceable(288) %539, i32 noundef %540)
          to label %542 unwind label %558

542:                                              ; preds = %537
  store ptr %541, ptr %37, align 8, !tbaa !5
  call void @llvm.lifetime.start.p0(i64 8, ptr %38) #10
  %543 = load ptr, ptr %37, align 8, !tbaa !5
  %544 = invoke noundef ptr @_ZNK12DexMethodRef9get_protoEv(ptr noundef nonnull align 8 dereferenceable(26) %543)
          to label %545 unwind label %562

545:                                              ; preds = %542
  store ptr %544, ptr %38, align 8, !tbaa !5
  call void @llvm.lifetime.start.p0(i64 8, ptr %39) #10
  %546 = load ptr, ptr %38, align 8, !tbaa !5
  %547 = invoke noundef ptr @_ZNK8DexProto8get_argsEv(ptr noundef nonnull align 8 dereferenceable(24) %546)
          to label %548 unwind label %566

548:                                              ; preds = %545
  store ptr %547, ptr %39, align 8, !tbaa !5
  %549 = invoke { ptr, i8 } @_ZNSt3setIP11DexTypeList23dextypelists_comparatorSaIS1_EE6insertEOS1_(ptr noundef nonnull align 8 dereferenceable(48) %4, ptr noundef nonnull align 8 dereferenceable(8) %39)
          to label %550 unwind label %566

550:                                              ; preds = %548
  %551 = getelementptr inbounds { ptr, i8 }, ptr %40, i32 0, i32 0
  %552 = extractvalue { ptr, i8 } %549, 0
  store ptr %552, ptr %551, align 8
  %553 = getelementptr inbounds { ptr, i8 }, ptr %40, i32 0, i32 1
  %554 = extractvalue { ptr, i8 } %549, 1
  store i8 %554, ptr %553, align 8
  call void @llvm.lifetime.end.p0(i64 8, ptr %39) #10
  call void @llvm.lifetime.end.p0(i64 8, ptr %38) #10
  call void @llvm.lifetime.end.p0(i64 8, ptr %37) #10
  br label %555

555:                                              ; preds = %550
  %556 = load i32, ptr %36, align 4, !tbaa !52
  %557 = add i32 %556, 1
  store i32 %557, ptr %36, align 4, !tbaa !52
  br label %529, !llvm.loop !73

558:                                              ; preds = %537
  %559 = landingpad { ptr, i32 }
          cleanup
  %560 = extractvalue { ptr, i32 } %559, 0
  store ptr %560, ptr %6, align 8
  %561 = extractvalue { ptr, i32 } %559, 1
  store i32 %561, ptr %7, align 4
  br label %571

562:                                              ; preds = %542
  %563 = landingpad { ptr, i32 }
          cleanup
  %564 = extractvalue { ptr, i32 } %563, 0
  store ptr %564, ptr %6, align 8
  %565 = extractvalue { ptr, i32 } %563, 1
  store i32 %565, ptr %7, align 4
  br label %570

566:                                              ; preds = %548, %545
  %567 = landingpad { ptr, i32 }
          cleanup
  %568 = extractvalue { ptr, i32 } %567, 0
  store ptr %568, ptr %6, align 8
  %569 = extractvalue { ptr, i32 } %567, 1
  store i32 %569, ptr %7, align 4
  call void @llvm.lifetime.end.p0(i64 8, ptr %39) #10
  br label %570

570:                                              ; preds = %566, %562
  call void @llvm.lifetime.end.p0(i64 8, ptr %38) #10
  br label %571

571:                                              ; preds = %570, %558
  call void @llvm.lifetime.end.p0(i64 8, ptr %37) #10
  call void @llvm.lifetime.end.p0(i64 4, ptr %36) #10
  br label %1536

572:                                              ; preds = %536
  %573 = invoke noundef i64 @_ZNK12UnorderedSetIjSt4hashIjESt8equal_toIjEE4sizeEv(ptr noundef nonnull align 8 dereferenceable(56) %5)
          to label %574 unwind label %596

574:                                              ; preds = %572
  %575 = getelementptr inbounds %class.DexLoader, ptr %97, i32 0, i32 7
  %576 = getelementptr inbounds %struct.dex_stats_t, ptr %575, i32 0, i32 10
  %577 = load i32, ptr %576, align 8, !tbaa !74
  %578 = sext i32 %577 to i64
  %579 = add i64 %578, %573
  %580 = trunc i64 %579 to i32
  store i32 %580, ptr %576, align 8, !tbaa !74
  %581 = call noundef i64 @_ZNKSt3setIP11DexTypeList23dextypelists_comparatorSaIS1_EE4sizeEv(ptr noundef nonnull align 8 dereferenceable(48) %4) #10
  %582 = getelementptr inbounds %class.DexLoader, ptr %97, i32 0, i32 7
  %583 = getelementptr inbounds %struct.dex_stats_t, ptr %582, i32 0, i32 11
  %584 = load i32, ptr %583, align 4, !tbaa !75
  %585 = sext i32 %584 to i64
  %586 = add i64 %585, %581
  %587 = trunc i64 %586 to i32
  store i32 %587, ptr %583, align 4, !tbaa !75
  call void @llvm.lifetime.start.p0(i64 4, ptr %41) #10
  store i32 0, ptr %41, align 4, !tbaa !52
  br label %588

588:                                              ; preds = %613, %574
  %589 = load i32, ptr %41, align 4, !tbaa !52
  %590 = getelementptr inbounds %class.DexLoader, ptr %97, i32 0, i32 0
  %591 = load ptr, ptr %590, align 8, !tbaa !9
  %592 = getelementptr inbounds %struct.dex_header, ptr %591, i32 0, i32 9
  %593 = load i32, ptr %592, align 1, !tbaa !44
  %594 = icmp ult i32 %589, %593
  br i1 %594, label %600, label %595

595:                                              ; preds = %588
  store i32 23, ptr %9, align 4
  call void @llvm.lifetime.end.p0(i64 4, ptr %41) #10
  br label %620

596:                                              ; preds = %572
  %597 = landingpad { ptr, i32 }
          cleanup
  %598 = extractvalue { ptr, i32 } %597, 0
  store ptr %598, ptr %6, align 8
  %599 = extractvalue { ptr, i32 } %597, 1
  store i32 %599, ptr %7, align 4
  br label %1536

600:                                              ; preds = %588
  call void @llvm.lifetime.start.p0(i64 8, ptr %42) #10
  %601 = getelementptr inbounds %class.DexLoader, ptr %97, i32 0, i32 1
  %602 = call noundef ptr @_ZNKSt10unique_ptrI6DexIdxSt14default_deleteIS0_EEptEv(ptr noundef nonnull align 8 dereferenceable(8) %601) #10
  %603 = load i32, ptr %41, align 4, !tbaa !52
  %604 = invoke noundef ptr @_ZN6DexIdx13get_stringidxEj(ptr noundef nonnull align 8 dereferenceable(288) %602, i32 noundef %603)
          to label %605 unwind label %616

605:                                              ; preds = %600
  store ptr %604, ptr %42, align 8, !tbaa !5
  %606 = load ptr, ptr %42, align 8, !tbaa !5
  %607 = invoke noundef i32 @_ZNK9DexString14get_entry_sizeEv(ptr noundef nonnull align 8 dereferenceable(16) %606)
          to label %608 unwind label %616

608:                                              ; preds = %605
  %609 = getelementptr inbounds %class.DexLoader, ptr %97, i32 0, i32 7
  %610 = getelementptr inbounds %struct.dex_stats_t, ptr %609, i32 0, i32 22
  %611 = load i32, ptr %610, align 8, !tbaa !76
  %612 = add i32 %611, %607
  store i32 %612, ptr %610, align 8, !tbaa !76
  call void @llvm.lifetime.end.p0(i64 8, ptr %42) #10
  br label %613

613:                                              ; preds = %608
  %614 = load i32, ptr %41, align 4, !tbaa !52
  %615 = add i32 %614, 1
  store i32 %615, ptr %41, align 4, !tbaa !52
  br label %588, !llvm.loop !77

616:                                              ; preds = %605, %600
  %617 = landingpad { ptr, i32 }
          cleanup
  %618 = extractvalue { ptr, i32 } %617, 0
  store ptr %618, ptr %6, align 8
  %619 = extractvalue { ptr, i32 } %617, 1
  store i32 %619, ptr %7, align 4
  call void @llvm.lifetime.end.p0(i64 8, ptr %42) #10
  call void @llvm.lifetime.end.p0(i64 4, ptr %41) #10
  br label %1536

620:                                              ; preds = %595
  call void @llvm.lifetime.start.p0(i64 8, ptr %43) #10
  %621 = getelementptr inbounds %class.DexLoader, ptr %97, i32 0, i32 4
  %622 = call noundef ptr @_ZNKSt10unique_ptrIKhSt8functionIFvPS0_EEE3getEv(ptr noundef nonnull align 8 dereferenceable(40) %621) #10
  %623 = getelementptr inbounds %class.DexLoader, ptr %97, i32 0, i32 0
  %624 = load ptr, ptr %623, align 8, !tbaa !9
  %625 = getelementptr inbounds %struct.dex_header, ptr %624, i32 0, i32 8
  %626 = load i32, ptr %625, align 1, !tbaa !78
  %627 = zext i32 %626 to i64
  %628 = getelementptr inbounds i8, ptr %622, i64 %627
  store ptr %628, ptr %43, align 8, !tbaa !5
  call void @llvm.lifetime.start.p0(i64 1, ptr %44) #10
  store i8 0, ptr %44, align 1, !tbaa !79
  call void @llvm.lifetime.start.p0(i64 4, ptr %45) #10
  store i32 0, ptr %45, align 4, !tbaa !52
  call void @llvm.lifetime.start.p0(i64 4, ptr %46) #10
  store i32 0, ptr %46, align 4, !tbaa !52
  br label %629

629:                                              ; preds = %1530, %620
  %630 = load i32, ptr %46, align 4, !tbaa !52
  %631 = load ptr, ptr %43, align 8, !tbaa !5
  %632 = getelementptr inbounds %struct.dex_map_list, ptr %631, i32 0, i32 0
  %633 = load i32, ptr %632, align 1, !tbaa !52
  %634 = icmp ult i32 %630, %633
  br i1 %634, label %636, label %635

635:                                              ; preds = %629
  store i32 26, ptr %9, align 4
  call void @llvm.lifetime.end.p0(i64 4, ptr %46) #10
  br label %1535

636:                                              ; preds = %629
  call void @llvm.lifetime.start.p0(i64 8, ptr %47) #10
  %637 = load ptr, ptr %43, align 8, !tbaa !5
  %638 = getelementptr inbounds %struct.dex_map_list, ptr %637, i32 0, i32 1
  %639 = load i32, ptr %46, align 4, !tbaa !52
  %640 = zext i32 %639 to i64
  %641 = getelementptr inbounds [0 x %struct.dex_map_item], ptr %638, i64 0, i64 %640
  store ptr %641, ptr %47, align 8, !tbaa !5
  call void @llvm.lifetime.start.p0(i64 16, ptr %48) #10
  %642 = getelementptr inbounds %class.DexLoader, ptr %97, i32 0, i32 1
  %643 = call noundef ptr @_ZNKSt10unique_ptrI6DexIdxSt14default_deleteIS0_EEptEv(ptr noundef nonnull align 8 dereferenceable(8) %642) #10
  %644 = load ptr, ptr %47, align 8, !tbaa !5
  %645 = getelementptr inbounds %struct.dex_map_item, ptr %644, i32 0, i32 3
  %646 = load i32, ptr %645, align 1, !tbaa !81
  %647 = invoke noundef ptr @_ZN6DexIdx13get_uleb_dataEj(ptr noundef nonnull align 8 dereferenceable(288) %643, i32 noundef %646)
          to label %648 unwind label %663

648:                                              ; preds = %636
  %649 = getelementptr inbounds %class.DexLoader, ptr %97, i32 0, i32 1
  %650 = call noundef ptr @_ZNKSt10unique_ptrI6DexIdxSt14default_deleteIS0_EEptEv(ptr noundef nonnull align 8 dereferenceable(8) %649) #10
  %651 = invoke noundef i32 @_ZNK6DexIdx13get_file_sizeEv(ptr noundef nonnull align 8 dereferenceable(288) %650)
          to label %652 unwind label %663

652:                                              ; preds = %648
  %653 = load ptr, ptr %47, align 8, !tbaa !5
  %654 = getelementptr inbounds %struct.dex_map_item, ptr %653, i32 0, i32 3
  %655 = load i32, ptr %654, align 1, !tbaa !81
  %656 = sub i32 %651, %655
  %657 = zext i32 %656 to i64
  call void @_ZNSt17basic_string_viewIcSt11char_traitsIcEEC2EPKcm(ptr noundef nonnull align 8 dereferenceable(16) %48, ptr noundef %647, i64 noundef %657) #10
  call void @llvm.lifetime.start.p0(i64 8, ptr %49) #10
  %658 = getelementptr inbounds %class.anon.115, ptr %49, i32 0, i32 0
  store ptr %48, ptr %658, align 8, !tbaa !5
  %659 = load ptr, ptr %47, align 8, !tbaa !5
  %660 = getelementptr inbounds %struct.dex_map_item, ptr %659, i32 0, i32 0
  %661 = load i16, ptr %660, align 1, !tbaa !84
  %662 = zext i16 %661 to i32
  switch i32 %662, label %1521 [
    i32 0, label %667
    i32 1, label %781
    i32 2, label %800
    i32 3, label %819
    i32 4, label %838
    i32 5, label %857
    i32 6, label %876
    i32 7, label %895
    i32 8, label %914
    i32 4096, label %933
    i32 4097, label %974
    i32 4098, label %1015
    i32 4099, label %1056
    i32 8192, label %1097
    i32 8193, label %1197
    i32 8194, label %1322
    i32 8195, label %1366
    i32 8196, label %1529
    i32 8197, label %1529
    i32 8198, label %1461
    i32 61440, label %1529
  ]

663:                                              ; preds = %648, %636
  %664 = landingpad { ptr, i32 }
          cleanup
  %665 = extractvalue { ptr, i32 } %664, 0
  store ptr %665, ptr %6, align 8
  %666 = extractvalue { ptr, i32 } %664, 1
  store i32 %666, ptr %7, align 4
  br label %1534

667:                                              ; preds = %652
  %668 = load i8, ptr %44, align 1, !tbaa !79, !range !85, !noundef !86
  %669 = trunc i8 %668 to i1
  br i1 %669, label %670, label %719

670:                                              ; preds = %667
  call void @llvm.lifetime.start.p0(i64 96, ptr %50) #10
  invoke void @_ZN12_GLOBAL__N_112AssertHelperC2Ev(ptr noundef nonnull align 8 dereferenceable(96) %50)
          to label %671 unwind label %684

671:                                              ; preds = %670
  call void @llvm.lifetime.start.p0(i64 32, ptr %51) #10
  call void @llvm.lifetime.start.p0(i64 1, ptr %52) #10
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %52) #10
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %51, ptr noundef @.str.14, ptr noundef nonnull align 1 dereferenceable(1) %52)
          to label %672 unwind label %688

672:                                              ; preds = %671
  %673 = invoke noundef nonnull align 8 dereferenceable(96) ptr @_ZN12_GLOBAL__N_112AssertHelper11set_messageEONSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEE(ptr noundef nonnull align 8 dereferenceable(96) %50, ptr noundef nonnull align 8 dereferenceable(32) %51)
          to label %674 unwind label %692

674:                                              ; preds = %672
  call void @llvm.lifetime.start.p0(i64 32, ptr %53) #10
  call void @llvm.lifetime.start.p0(i64 1, ptr %54) #10
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %54) #10
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %53, ptr noundef @.str.15, ptr noundef nonnull align 1 dereferenceable(1) %54)
          to label %675 unwind label %696

675:                                              ; preds = %674
  %676 = load i32, ptr %45, align 4, !tbaa !52
  %677 = invoke noundef nonnull align 8 dereferenceable(96) ptr @_ZN12_GLOBAL__N_112AssertHelper8add_infoIjEERS0_ONSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEET_(ptr noundef nonnull align 8 dereferenceable(96) %673, ptr noundef nonnull align 8 dereferenceable(32) %53, i32 noundef %676)
          to label %678 unwind label %700

678:                                              ; preds = %675
  call void @llvm.lifetime.start.p0(i64 32, ptr %55) #10
  call void @llvm.lifetime.start.p0(i64 1, ptr %56) #10
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %56) #10
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %55, ptr noundef @.str.16, ptr noundef nonnull align 1 dereferenceable(1) %56)
          to label %679 unwind label %704

679:                                              ; preds = %678
  %680 = load i32, ptr %46, align 4, !tbaa !52
  %681 = invoke noundef nonnull align 8 dereferenceable(96) ptr @_ZN12_GLOBAL__N_112AssertHelper8add_infoIjEERS0_ONSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEET_(ptr noundef nonnull align 8 dereferenceable(96) %677, ptr noundef nonnull align 8 dereferenceable(32) %55, i32 noundef %680)
          to label %682 unwind label %708

682:                                              ; preds = %679
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %55) #10
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %56) #10
  call void @llvm.lifetime.end.p0(i64 1, ptr %56) #10
  call void @llvm.lifetime.end.p0(i64 32, ptr %55) #10
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %53) #10
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %54) #10
  call void @llvm.lifetime.end.p0(i64 1, ptr %54) #10
  call void @llvm.lifetime.end.p0(i64 32, ptr %53) #10
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %51) #10
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %52) #10
  call void @llvm.lifetime.end.p0(i64 1, ptr %52) #10
  call void @llvm.lifetime.end.p0(i64 32, ptr %51) #10
  invoke void @_ZN12_GLOBAL__N_112AssertHelperD2Ev(ptr noundef nonnull align 8 dereferenceable(96) %50)
          to label %683 unwind label %684

683:                                              ; preds = %682
  call void @llvm.lifetime.end.p0(i64 96, ptr %50) #10
  br label %719

684:                                              ; preds = %682, %670
  %685 = landingpad { ptr, i32 }
          cleanup
  %686 = extractvalue { ptr, i32 } %685, 0
  store ptr %686, ptr %6, align 8
  %687 = extractvalue { ptr, i32 } %685, 1
  store i32 %687, ptr %7, align 4
  br label %718

688:                                              ; preds = %671
  %689 = landingpad { ptr, i32 }
          cleanup
  %690 = extractvalue { ptr, i32 } %689, 0
  store ptr %690, ptr %6, align 8
  %691 = extractvalue { ptr, i32 } %689, 1
  store i32 %691, ptr %7, align 4
  br label %716

692:                                              ; preds = %672
  %693 = landingpad { ptr, i32 }
          cleanup
  %694 = extractvalue { ptr, i32 } %693, 0
  store ptr %694, ptr %6, align 8
  %695 = extractvalue { ptr, i32 } %693, 1
  store i32 %695, ptr %7, align 4
  br label %715

696:                                              ; preds = %674
  %697 = landingpad { ptr, i32 }
          cleanup
  %698 = extractvalue { ptr, i32 } %697, 0
  store ptr %698, ptr %6, align 8
  %699 = extractvalue { ptr, i32 } %697, 1
  store i32 %699, ptr %7, align 4
  br label %714

700:                                              ; preds = %675
  %701 = landingpad { ptr, i32 }
          cleanup
  %702 = extractvalue { ptr, i32 } %701, 0
  store ptr %702, ptr %6, align 8
  %703 = extractvalue { ptr, i32 } %701, 1
  store i32 %703, ptr %7, align 4
  br label %713

704:                                              ; preds = %678
  %705 = landingpad { ptr, i32 }
          cleanup
  %706 = extractvalue { ptr, i32 } %705, 0
  store ptr %706, ptr %6, align 8
  %707 = extractvalue { ptr, i32 } %705, 1
  store i32 %707, ptr %7, align 4
  br label %712

708:                                              ; preds = %679
  %709 = landingpad { ptr, i32 }
          cleanup
  %710 = extractvalue { ptr, i32 } %709, 0
  store ptr %710, ptr %6, align 8
  %711 = extractvalue { ptr, i32 } %709, 1
  store i32 %711, ptr %7, align 4
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %55) #10
  br label %712

712:                                              ; preds = %708, %704
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %56) #10
  call void @llvm.lifetime.end.p0(i64 1, ptr %56) #10
  call void @llvm.lifetime.end.p0(i64 32, ptr %55) #10
  br label %713

713:                                              ; preds = %712, %700
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %53) #10
  br label %714

714:                                              ; preds = %713, %696
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %54) #10
  call void @llvm.lifetime.end.p0(i64 1, ptr %54) #10
  call void @llvm.lifetime.end.p0(i64 32, ptr %53) #10
  br label %715

715:                                              ; preds = %714, %692
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %51) #10
  br label %716

716:                                              ; preds = %715, %688
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %52) #10
  call void @llvm.lifetime.end.p0(i64 1, ptr %52) #10
  call void @llvm.lifetime.end.p0(i64 32, ptr %51) #10
  invoke void @_ZN12_GLOBAL__N_112AssertHelperD2Ev(ptr noundef nonnull align 8 dereferenceable(96) %50)
          to label %717 unwind label %1543

717:                                              ; preds = %716
  br label %718

718:                                              ; preds = %717, %684
  call void @llvm.lifetime.end.p0(i64 96, ptr %50) #10
  br label %1533

719:                                              ; preds = %683, %667
  store i8 1, ptr %44, align 1, !tbaa !79
  %720 = load i32, ptr %46, align 4, !tbaa !52
  store i32 %720, ptr %45, align 4, !tbaa !52
  %721 = load ptr, ptr %47, align 8, !tbaa !5
  %722 = getelementptr inbounds %struct.dex_map_item, ptr %721, i32 0, i32 2
  %723 = load i32, ptr %722, align 1, !tbaa !87
  %724 = icmp eq i32 1, %723
  br i1 %724, label %762, label %725

725:                                              ; preds = %719
  call void @llvm.lifetime.start.p0(i64 96, ptr %57) #10
  invoke void @_ZN12_GLOBAL__N_112AssertHelperC2Ev(ptr noundef nonnull align 8 dereferenceable(96) %57)
          to label %726 unwind label %737

726:                                              ; preds = %725
  call void @llvm.lifetime.start.p0(i64 32, ptr %58) #10
  call void @llvm.lifetime.start.p0(i64 1, ptr %59) #10
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %59) #10
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %58, ptr noundef @.str.17, ptr noundef nonnull align 1 dereferenceable(1) %59)
          to label %727 unwind label %741

727:                                              ; preds = %726
  %728 = invoke noundef nonnull align 8 dereferenceable(96) ptr @_ZN12_GLOBAL__N_112AssertHelper11set_messageEONSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEE(ptr noundef nonnull align 8 dereferenceable(96) %57, ptr noundef nonnull align 8 dereferenceable(32) %58)
          to label %729 unwind label %745

729:                                              ; preds = %727
  call void @llvm.lifetime.start.p0(i64 32, ptr %60) #10
  call void @llvm.lifetime.start.p0(i64 1, ptr %61) #10
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %61) #10
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %60, ptr noundef @.str.18, ptr noundef nonnull align 1 dereferenceable(1) %61)
          to label %730 unwind label %749

730:                                              ; preds = %729
  %731 = load ptr, ptr %47, align 8, !tbaa !5
  %732 = getelementptr inbounds %struct.dex_map_item, ptr %731, i32 0, i32 2
  %733 = load i32, ptr %732, align 1, !tbaa !87
  %734 = invoke noundef nonnull align 8 dereferenceable(96) ptr @_ZN12_GLOBAL__N_112AssertHelper8add_infoIjEERS0_ONSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEET_(ptr noundef nonnull align 8 dereferenceable(96) %728, ptr noundef nonnull align 8 dereferenceable(32) %60, i32 noundef %733)
          to label %735 unwind label %753

735:                                              ; preds = %730
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %60) #10
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %61) #10
  call void @llvm.lifetime.end.p0(i64 1, ptr %61) #10
  call void @llvm.lifetime.end.p0(i64 32, ptr %60) #10
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %58) #10
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %59) #10
  call void @llvm.lifetime.end.p0(i64 1, ptr %59) #10
  call void @llvm.lifetime.end.p0(i64 32, ptr %58) #10
  invoke void @_ZN12_GLOBAL__N_112AssertHelperD2Ev(ptr noundef nonnull align 8 dereferenceable(96) %57)
          to label %736 unwind label %737

736:                                              ; preds = %735
  call void @llvm.lifetime.end.p0(i64 96, ptr %57) #10
  br label %762

737:                                              ; preds = %735, %725
  %738 = landingpad { ptr, i32 }
          cleanup
  %739 = extractvalue { ptr, i32 } %738, 0
  store ptr %739, ptr %6, align 8
  %740 = extractvalue { ptr, i32 } %738, 1
  store i32 %740, ptr %7, align 4
  br label %761

741:                                              ; preds = %726
  %742 = landingpad { ptr, i32 }
          cleanup
  %743 = extractvalue { ptr, i32 } %742, 0
  store ptr %743, ptr %6, align 8
  %744 = extractvalue { ptr, i32 } %742, 1
  store i32 %744, ptr %7, align 4
  br label %759

745:                                              ; preds = %727
  %746 = landingpad { ptr, i32 }
          cleanup
  %747 = extractvalue { ptr, i32 } %746, 0
  store ptr %747, ptr %6, align 8
  %748 = extractvalue { ptr, i32 } %746, 1
  store i32 %748, ptr %7, align 4
  br label %758

749:                                              ; preds = %729
  %750 = landingpad { ptr, i32 }
          cleanup
  %751 = extractvalue { ptr, i32 } %750, 0
  store ptr %751, ptr %6, align 8
  %752 = extractvalue { ptr, i32 } %750, 1
  store i32 %752, ptr %7, align 4
  br label %757

753:                                              ; preds = %730
  %754 = landingpad { ptr, i32 }
          cleanup
  %755 = extractvalue { ptr, i32 } %754, 0
  store ptr %755, ptr %6, align 8
  %756 = extractvalue { ptr, i32 } %754, 1
  store i32 %756, ptr %7, align 4
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %60) #10
  br label %757

757:                                              ; preds = %753, %749
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %61) #10
  call void @llvm.lifetime.end.p0(i64 1, ptr %61) #10
  call void @llvm.lifetime.end.p0(i64 32, ptr %60) #10
  br label %758

758:                                              ; preds = %757, %745
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %58) #10
  br label %759

759:                                              ; preds = %758, %741
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %59) #10
  call void @llvm.lifetime.end.p0(i64 1, ptr %59) #10
  call void @llvm.lifetime.end.p0(i64 32, ptr %58) #10
  invoke void @_ZN12_GLOBAL__N_112AssertHelperD2Ev(ptr noundef nonnull align 8 dereferenceable(96) %57)
          to label %760 unwind label %1543

760:                                              ; preds = %759
  br label %761

761:                                              ; preds = %760, %737
  call void @llvm.lifetime.end.p0(i64 96, ptr %57) #10
  br label %1533

762:                                              ; preds = %736, %719
  %763 = load ptr, ptr %47, align 8, !tbaa !5
  %764 = getelementptr inbounds %struct.dex_map_item, ptr %763, i32 0, i32 2
  %765 = load i32, ptr %764, align 1, !tbaa !87
  %766 = getelementptr inbounds %class.DexLoader, ptr %97, i32 0, i32 7
  %767 = getelementptr inbounds %struct.dex_stats_t, ptr %766, i32 0, i32 30
  %768 = load i32, ptr %767, align 8, !tbaa !88
  %769 = add i32 %768, %765
  store i32 %769, ptr %767, align 8, !tbaa !88
  %770 = load ptr, ptr %47, align 8, !tbaa !5
  %771 = getelementptr inbounds %struct.dex_map_item, ptr %770, i32 0, i32 2
  %772 = load i32, ptr %771, align 1, !tbaa !87
  %773 = zext i32 %772 to i64
  %774 = mul i64 %773, 112
  %775 = getelementptr inbounds %class.DexLoader, ptr %97, i32 0, i32 7
  %776 = getelementptr inbounds %struct.dex_stats_t, ptr %775, i32 0, i32 31
  %777 = load i32, ptr %776, align 4, !tbaa !89
  %778 = sext i32 %777 to i64
  %779 = add i64 %778, %774
  %780 = trunc i64 %779 to i32
  store i32 %780, ptr %776, align 4, !tbaa !89
  br label %1529

781:                                              ; preds = %652
  %782 = load ptr, ptr %47, align 8, !tbaa !5
  %783 = getelementptr inbounds %struct.dex_map_item, ptr %782, i32 0, i32 2
  %784 = load i32, ptr %783, align 1, !tbaa !87
  %785 = getelementptr inbounds %class.DexLoader, ptr %97, i32 0, i32 7
  %786 = getelementptr inbounds %struct.dex_stats_t, ptr %785, i32 0, i32 32
  %787 = load i32, ptr %786, align 8, !tbaa !90
  %788 = add i32 %787, %784
  store i32 %788, ptr %786, align 8, !tbaa !90
  %789 = load ptr, ptr %47, align 8, !tbaa !5
  %790 = getelementptr inbounds %struct.dex_map_item, ptr %789, i32 0, i32 2
  %791 = load i32, ptr %790, align 1, !tbaa !87
  %792 = zext i32 %791 to i64
  %793 = mul i64 %792, 4
  %794 = getelementptr inbounds %class.DexLoader, ptr %97, i32 0, i32 7
  %795 = getelementptr inbounds %struct.dex_stats_t, ptr %794, i32 0, i32 33
  %796 = load i32, ptr %795, align 4, !tbaa !91
  %797 = sext i32 %796 to i64
  %798 = add i64 %797, %793
  %799 = trunc i64 %798 to i32
  store i32 %799, ptr %795, align 4, !tbaa !91
  br label %1529

800:                                              ; preds = %652
  %801 = load ptr, ptr %47, align 8, !tbaa !5
  %802 = getelementptr inbounds %struct.dex_map_item, ptr %801, i32 0, i32 2
  %803 = load i32, ptr %802, align 1, !tbaa !87
  %804 = getelementptr inbounds %class.DexLoader, ptr %97, i32 0, i32 7
  %805 = getelementptr inbounds %struct.dex_stats_t, ptr %804, i32 0, i32 34
  %806 = load i32, ptr %805, align 8, !tbaa !92
  %807 = add i32 %806, %803
  store i32 %807, ptr %805, align 8, !tbaa !92
  %808 = load ptr, ptr %47, align 8, !tbaa !5
  %809 = getelementptr inbounds %struct.dex_map_item, ptr %808, i32 0, i32 2
  %810 = load i32, ptr %809, align 1, !tbaa !87
  %811 = zext i32 %810 to i64
  %812 = mul i64 %811, 4
  %813 = getelementptr inbounds %class.DexLoader, ptr %97, i32 0, i32 7
  %814 = getelementptr inbounds %struct.dex_stats_t, ptr %813, i32 0, i32 35
  %815 = load i32, ptr %814, align 4, !tbaa !93
  %816 = sext i32 %815 to i64
  %817 = add i64 %816, %812
  %818 = trunc i64 %817 to i32
  store i32 %818, ptr %814, align 4, !tbaa !93
  br label %1529

819:                                              ; preds = %652
  %820 = load ptr, ptr %47, align 8, !tbaa !5
  %821 = getelementptr inbounds %struct.dex_map_item, ptr %820, i32 0, i32 2
  %822 = load i32, ptr %821, align 1, !tbaa !87
  %823 = getelementptr inbounds %class.DexLoader, ptr %97, i32 0, i32 7
  %824 = getelementptr inbounds %struct.dex_stats_t, ptr %823, i32 0, i32 36
  %825 = load i32, ptr %824, align 8, !tbaa !94
  %826 = add i32 %825, %822
  store i32 %826, ptr %824, align 8, !tbaa !94
  %827 = load ptr, ptr %47, align 8, !tbaa !5
  %828 = getelementptr inbounds %struct.dex_map_item, ptr %827, i32 0, i32 2
  %829 = load i32, ptr %828, align 1, !tbaa !87
  %830 = zext i32 %829 to i64
  %831 = mul i64 %830, 12
  %832 = getelementptr inbounds %class.DexLoader, ptr %97, i32 0, i32 7
  %833 = getelementptr inbounds %struct.dex_stats_t, ptr %832, i32 0, i32 37
  %834 = load i32, ptr %833, align 4, !tbaa !95
  %835 = sext i32 %834 to i64
  %836 = add i64 %835, %831
  %837 = trunc i64 %836 to i32
  store i32 %837, ptr %833, align 4, !tbaa !95
  br label %1529

838:                                              ; preds = %652
  %839 = load ptr, ptr %47, align 8, !tbaa !5
  %840 = getelementptr inbounds %struct.dex_map_item, ptr %839, i32 0, i32 2
  %841 = load i32, ptr %840, align 1, !tbaa !87
  %842 = getelementptr inbounds %class.DexLoader, ptr %97, i32 0, i32 7
  %843 = getelementptr inbounds %struct.dex_stats_t, ptr %842, i32 0, i32 38
  %844 = load i32, ptr %843, align 8, !tbaa !96
  %845 = add i32 %844, %841
  store i32 %845, ptr %843, align 8, !tbaa !96
  %846 = load ptr, ptr %47, align 8, !tbaa !5
  %847 = getelementptr inbounds %struct.dex_map_item, ptr %846, i32 0, i32 2
  %848 = load i32, ptr %847, align 1, !tbaa !87
  %849 = zext i32 %848 to i64
  %850 = mul i64 %849, 8
  %851 = getelementptr inbounds %class.DexLoader, ptr %97, i32 0, i32 7
  %852 = getelementptr inbounds %struct.dex_stats_t, ptr %851, i32 0, i32 39
  %853 = load i32, ptr %852, align 4, !tbaa !97
  %854 = sext i32 %853 to i64
  %855 = add i64 %854, %850
  %856 = trunc i64 %855 to i32
  store i32 %856, ptr %852, align 4, !tbaa !97
  br label %1529

857:                                              ; preds = %652
  %858 = load ptr, ptr %47, align 8, !tbaa !5
  %859 = getelementptr inbounds %struct.dex_map_item, ptr %858, i32 0, i32 2
  %860 = load i32, ptr %859, align 1, !tbaa !87
  %861 = getelementptr inbounds %class.DexLoader, ptr %97, i32 0, i32 7
  %862 = getelementptr inbounds %struct.dex_stats_t, ptr %861, i32 0, i32 40
  %863 = load i32, ptr %862, align 8, !tbaa !98
  %864 = add i32 %863, %860
  store i32 %864, ptr %862, align 8, !tbaa !98
  %865 = load ptr, ptr %47, align 8, !tbaa !5
  %866 = getelementptr inbounds %struct.dex_map_item, ptr %865, i32 0, i32 2
  %867 = load i32, ptr %866, align 1, !tbaa !87
  %868 = zext i32 %867 to i64
  %869 = mul i64 %868, 8
  %870 = getelementptr inbounds %class.DexLoader, ptr %97, i32 0, i32 7
  %871 = getelementptr inbounds %struct.dex_stats_t, ptr %870, i32 0, i32 41
  %872 = load i32, ptr %871, align 4, !tbaa !99
  %873 = sext i32 %872 to i64
  %874 = add i64 %873, %869
  %875 = trunc i64 %874 to i32
  store i32 %875, ptr %871, align 4, !tbaa !99
  br label %1529

876:                                              ; preds = %652
  %877 = load ptr, ptr %47, align 8, !tbaa !5
  %878 = getelementptr inbounds %struct.dex_map_item, ptr %877, i32 0, i32 2
  %879 = load i32, ptr %878, align 1, !tbaa !87
  %880 = getelementptr inbounds %class.DexLoader, ptr %97, i32 0, i32 7
  %881 = getelementptr inbounds %struct.dex_stats_t, ptr %880, i32 0, i32 42
  %882 = load i32, ptr %881, align 8, !tbaa !100
  %883 = add i32 %882, %879
  store i32 %883, ptr %881, align 8, !tbaa !100
  %884 = load ptr, ptr %47, align 8, !tbaa !5
  %885 = getelementptr inbounds %struct.dex_map_item, ptr %884, i32 0, i32 2
  %886 = load i32, ptr %885, align 1, !tbaa !87
  %887 = zext i32 %886 to i64
  %888 = mul i64 %887, 32
  %889 = getelementptr inbounds %class.DexLoader, ptr %97, i32 0, i32 7
  %890 = getelementptr inbounds %struct.dex_stats_t, ptr %889, i32 0, i32 43
  %891 = load i32, ptr %890, align 4, !tbaa !101
  %892 = sext i32 %891 to i64
  %893 = add i64 %892, %888
  %894 = trunc i64 %893 to i32
  store i32 %894, ptr %890, align 4, !tbaa !101
  br label %1529

895:                                              ; preds = %652
  %896 = load ptr, ptr %47, align 8, !tbaa !5
  %897 = getelementptr inbounds %struct.dex_map_item, ptr %896, i32 0, i32 2
  %898 = load i32, ptr %897, align 1, !tbaa !87
  %899 = getelementptr inbounds %class.DexLoader, ptr %97, i32 0, i32 7
  %900 = getelementptr inbounds %struct.dex_stats_t, ptr %899, i32 0, i32 44
  %901 = load i32, ptr %900, align 8, !tbaa !102
  %902 = add i32 %901, %898
  store i32 %902, ptr %900, align 8, !tbaa !102
  %903 = load ptr, ptr %47, align 8, !tbaa !5
  %904 = getelementptr inbounds %struct.dex_map_item, ptr %903, i32 0, i32 2
  %905 = load i32, ptr %904, align 1, !tbaa !87
  %906 = zext i32 %905 to i64
  %907 = mul i64 %906, 4
  %908 = getelementptr inbounds %class.DexLoader, ptr %97, i32 0, i32 7
  %909 = getelementptr inbounds %struct.dex_stats_t, ptr %908, i32 0, i32 45
  %910 = load i32, ptr %909, align 4, !tbaa !103
  %911 = sext i32 %910 to i64
  %912 = add i64 %911, %907
  %913 = trunc i64 %912 to i32
  store i32 %913, ptr %909, align 4, !tbaa !103
  br label %1529

914:                                              ; preds = %652
  %915 = load ptr, ptr %47, align 8, !tbaa !5
  %916 = getelementptr inbounds %struct.dex_map_item, ptr %915, i32 0, i32 2
  %917 = load i32, ptr %916, align 1, !tbaa !87
  %918 = getelementptr inbounds %class.DexLoader, ptr %97, i32 0, i32 7
  %919 = getelementptr inbounds %struct.dex_stats_t, ptr %918, i32 0, i32 46
  %920 = load i32, ptr %919, align 8, !tbaa !104
  %921 = add i32 %920, %917
  store i32 %921, ptr %919, align 8, !tbaa !104
  %922 = load ptr, ptr %47, align 8, !tbaa !5
  %923 = getelementptr inbounds %struct.dex_map_item, ptr %922, i32 0, i32 2
  %924 = load i32, ptr %923, align 1, !tbaa !87
  %925 = zext i32 %924 to i64
  %926 = mul i64 %925, 8
  %927 = getelementptr inbounds %class.DexLoader, ptr %97, i32 0, i32 7
  %928 = getelementptr inbounds %struct.dex_stats_t, ptr %927, i32 0, i32 47
  %929 = load i32, ptr %928, align 4, !tbaa !105
  %930 = sext i32 %929 to i64
  %931 = add i64 %930, %926
  %932 = trunc i64 %931 to i32
  store i32 %932, ptr %928, align 4, !tbaa !105
  br label %1529

933:                                              ; preds = %652
  %934 = load ptr, ptr %47, align 8, !tbaa !5
  %935 = getelementptr inbounds %struct.dex_map_item, ptr %934, i32 0, i32 2
  %936 = load i32, ptr %935, align 1, !tbaa !87
  %937 = getelementptr inbounds %class.DexLoader, ptr %97, i32 0, i32 7
  %938 = getelementptr inbounds %struct.dex_stats_t, ptr %937, i32 0, i32 48
  %939 = load i32, ptr %938, align 8, !tbaa !106
  %940 = add i32 %939, %936
  store i32 %940, ptr %938, align 8, !tbaa !106
  call void @llvm.lifetime.start.p0(i64 4, ptr %62) #10
  store i32 0, ptr %62, align 4, !tbaa !52
  br label %941

941:                                              ; preds = %966, %933
  %942 = load i32, ptr %62, align 4, !tbaa !52
  %943 = load ptr, ptr %47, align 8, !tbaa !5
  %944 = getelementptr inbounds %struct.dex_map_item, ptr %943, i32 0, i32 2
  %945 = load i32, ptr %944, align 1, !tbaa !87
  %946 = icmp ult i32 %942, %945
  br i1 %946, label %948, label %947

947:                                              ; preds = %941
  store i32 30, ptr %9, align 4
  call void @llvm.lifetime.end.p0(i64 4, ptr %62) #10
  br label %973

948:                                              ; preds = %941
  call void @llvm.lifetime.start.p0(i64 4, ptr %63) #10
  %949 = invoke noundef ptr @_ZN12_GLOBAL__N_115get_and_consumeIjEEPKT_RSt17basic_string_viewIcSt11char_traitsIcEEm(ptr noundef nonnull align 8 dereferenceable(16) %48, i64 noundef 4)
          to label %950 unwind label %969

950:                                              ; preds = %948
  %951 = load i32, ptr %949, align 4, !tbaa !52
  store i32 %951, ptr %63, align 4, !tbaa !52
  %952 = load i32, ptr %63, align 4, !tbaa !52
  %953 = zext i32 %952 to i64
  %954 = mul i64 %953, 12
  %955 = add i64 4, %954
  %956 = getelementptr inbounds %class.DexLoader, ptr %97, i32 0, i32 7
  %957 = getelementptr inbounds %struct.dex_stats_t, ptr %956, i32 0, i32 49
  %958 = load i32, ptr %957, align 4, !tbaa !107
  %959 = sext i32 %958 to i64
  %960 = add i64 %959, %955
  %961 = trunc i64 %960 to i32
  store i32 %961, ptr %957, align 4, !tbaa !107
  %962 = load i32, ptr %63, align 4, !tbaa !52
  %963 = zext i32 %962 to i64
  %964 = mul i64 %963, 12
  invoke void @"_ZZN9DexLoader18gather_input_statsEvENK3$_1clEm"(ptr noundef nonnull align 8 dereferenceable(8) %49, i64 noundef %964)
          to label %965 unwind label %969

965:                                              ; preds = %950
  call void @llvm.lifetime.end.p0(i64 4, ptr %63) #10
  br label %966

966:                                              ; preds = %965
  %967 = load i32, ptr %62, align 4, !tbaa !52
  %968 = add i32 %967, 1
  store i32 %968, ptr %62, align 4, !tbaa !52
  br label %941, !llvm.loop !108

969:                                              ; preds = %950, %948
  %970 = landingpad { ptr, i32 }
          cleanup
  %971 = extractvalue { ptr, i32 } %970, 0
  store ptr %971, ptr %6, align 8
  %972 = extractvalue { ptr, i32 } %970, 1
  store i32 %972, ptr %7, align 4
  call void @llvm.lifetime.end.p0(i64 4, ptr %63) #10
  call void @llvm.lifetime.end.p0(i64 4, ptr %62) #10
  br label %1533

973:                                              ; preds = %947
  br label %1529

974:                                              ; preds = %652
  %975 = load ptr, ptr %47, align 8, !tbaa !5
  %976 = getelementptr inbounds %struct.dex_map_item, ptr %975, i32 0, i32 2
  %977 = load i32, ptr %976, align 1, !tbaa !87
  %978 = getelementptr inbounds %class.DexLoader, ptr %97, i32 0, i32 7
  %979 = getelementptr inbounds %struct.dex_stats_t, ptr %978, i32 0, i32 50
  %980 = load i32, ptr %979, align 8, !tbaa !109
  %981 = add i32 %980, %977
  store i32 %981, ptr %979, align 8, !tbaa !109
  call void @llvm.lifetime.start.p0(i64 4, ptr %64) #10
  store i32 0, ptr %64, align 4, !tbaa !52
  br label %982

982:                                              ; preds = %1007, %974
  %983 = load i32, ptr %64, align 4, !tbaa !52
  %984 = load ptr, ptr %47, align 8, !tbaa !5
  %985 = getelementptr inbounds %struct.dex_map_item, ptr %984, i32 0, i32 2
  %986 = load i32, ptr %985, align 1, !tbaa !87
  %987 = icmp ult i32 %983, %986
  br i1 %987, label %989, label %988

988:                                              ; preds = %982
  store i32 33, ptr %9, align 4
  call void @llvm.lifetime.end.p0(i64 4, ptr %64) #10
  br label %1014

989:                                              ; preds = %982
  call void @llvm.lifetime.start.p0(i64 4, ptr %65) #10
  %990 = invoke noundef ptr @_ZN12_GLOBAL__N_115get_and_consumeIjEEPKT_RSt17basic_string_viewIcSt11char_traitsIcEEm(ptr noundef nonnull align 8 dereferenceable(16) %48, i64 noundef 4)
          to label %991 unwind label %1010

991:                                              ; preds = %989
  %992 = load i32, ptr %990, align 4, !tbaa !52
  store i32 %992, ptr %65, align 4, !tbaa !52
  %993 = load i32, ptr %65, align 4, !tbaa !52
  %994 = zext i32 %993 to i64
  %995 = mul i64 %994, 2
  %996 = add i64 4, %995
  %997 = getelementptr inbounds %class.DexLoader, ptr %97, i32 0, i32 7
  %998 = getelementptr inbounds %struct.dex_stats_t, ptr %997, i32 0, i32 51
  %999 = load i32, ptr %998, align 4, !tbaa !110
  %1000 = sext i32 %999 to i64
  %1001 = add i64 %1000, %996
  %1002 = trunc i64 %1001 to i32
  store i32 %1002, ptr %998, align 4, !tbaa !110
  %1003 = load i32, ptr %65, align 4, !tbaa !52
  %1004 = zext i32 %1003 to i64
  %1005 = mul i64 %1004, 2
  invoke void @"_ZZN9DexLoader18gather_input_statsEvENK3$_1clEm"(ptr noundef nonnull align 8 dereferenceable(8) %49, i64 noundef %1005)
          to label %1006 unwind label %1010

1006:                                             ; preds = %991
  call void @llvm.lifetime.end.p0(i64 4, ptr %65) #10
  br label %1007

1007:                                             ; preds = %1006
  %1008 = load i32, ptr %64, align 4, !tbaa !52
  %1009 = add i32 %1008, 1
  store i32 %1009, ptr %64, align 4, !tbaa !52
  br label %982, !llvm.loop !111

1010:                                             ; preds = %991, %989
  %1011 = landingpad { ptr, i32 }
          cleanup
  %1012 = extractvalue { ptr, i32 } %1011, 0
  store ptr %1012, ptr %6, align 8
  %1013 = extractvalue { ptr, i32 } %1011, 1
  store i32 %1013, ptr %7, align 4
  call void @llvm.lifetime.end.p0(i64 4, ptr %65) #10
  call void @llvm.lifetime.end.p0(i64 4, ptr %64) #10
  br label %1533

1014:                                             ; preds = %988
  br label %1529

1015:                                             ; preds = %652
  %1016 = load ptr, ptr %47, align 8, !tbaa !5
  %1017 = getelementptr inbounds %struct.dex_map_item, ptr %1016, i32 0, i32 2
  %1018 = load i32, ptr %1017, align 1, !tbaa !87
  %1019 = getelementptr inbounds %class.DexLoader, ptr %97, i32 0, i32 7
  %1020 = getelementptr inbounds %struct.dex_stats_t, ptr %1019, i32 0, i32 52
  %1021 = load i32, ptr %1020, align 8, !tbaa !112
  %1022 = add i32 %1021, %1018
  store i32 %1022, ptr %1020, align 8, !tbaa !112
  call void @llvm.lifetime.start.p0(i64 4, ptr %66) #10
  store i32 0, ptr %66, align 4, !tbaa !52
  br label %1023

1023:                                             ; preds = %1048, %1015
  %1024 = load i32, ptr %66, align 4, !tbaa !52
  %1025 = load ptr, ptr %47, align 8, !tbaa !5
  %1026 = getelementptr inbounds %struct.dex_map_item, ptr %1025, i32 0, i32 2
  %1027 = load i32, ptr %1026, align 1, !tbaa !87
  %1028 = icmp ult i32 %1024, %1027
  br i1 %1028, label %1030, label %1029

1029:                                             ; preds = %1023
  store i32 36, ptr %9, align 4
  call void @llvm.lifetime.end.p0(i64 4, ptr %66) #10
  br label %1055

1030:                                             ; preds = %1023
  call void @llvm.lifetime.start.p0(i64 4, ptr %67) #10
  %1031 = invoke noundef ptr @_ZN12_GLOBAL__N_115get_and_consumeIjEEPKT_RSt17basic_string_viewIcSt11char_traitsIcEEm(ptr noundef nonnull align 8 dereferenceable(16) %48, i64 noundef 4)
          to label %1032 unwind label %1051

1032:                                             ; preds = %1030
  %1033 = load i32, ptr %1031, align 4, !tbaa !52
  store i32 %1033, ptr %67, align 4, !tbaa !52
  %1034 = load i32, ptr %67, align 4, !tbaa !52
  %1035 = zext i32 %1034 to i64
  %1036 = mul i64 %1035, 4
  %1037 = add i64 4, %1036
  %1038 = getelementptr inbounds %class.DexLoader, ptr %97, i32 0, i32 7
  %1039 = getelementptr inbounds %struct.dex_stats_t, ptr %1038, i32 0, i32 53
  %1040 = load i32, ptr %1039, align 4, !tbaa !113
  %1041 = sext i32 %1040 to i64
  %1042 = add i64 %1041, %1037
  %1043 = trunc i64 %1042 to i32
  store i32 %1043, ptr %1039, align 4, !tbaa !113
  %1044 = load i32, ptr %67, align 4, !tbaa !52
  %1045 = zext i32 %1044 to i64
  %1046 = mul i64 %1045, 4
  invoke void @"_ZZN9DexLoader18gather_input_statsEvENK3$_1clEm"(ptr noundef nonnull align 8 dereferenceable(8) %49, i64 noundef %1046)
          to label %1047 unwind label %1051

1047:                                             ; preds = %1032
  call void @llvm.lifetime.end.p0(i64 4, ptr %67) #10
  br label %1048

1048:                                             ; preds = %1047
  %1049 = load i32, ptr %66, align 4, !tbaa !52
  %1050 = add i32 %1049, 1
  store i32 %1050, ptr %66, align 4, !tbaa !52
  br label %1023, !llvm.loop !114

1051:                                             ; preds = %1032, %1030
  %1052 = landingpad { ptr, i32 }
          cleanup
  %1053 = extractvalue { ptr, i32 } %1052, 0
  store ptr %1053, ptr %6, align 8
  %1054 = extractvalue { ptr, i32 } %1052, 1
  store i32 %1054, ptr %7, align 4
  call void @llvm.lifetime.end.p0(i64 4, ptr %67) #10
  call void @llvm.lifetime.end.p0(i64 4, ptr %66) #10
  br label %1533

1055:                                             ; preds = %1029
  br label %1529

1056:                                             ; preds = %652
  %1057 = load ptr, ptr %47, align 8, !tbaa !5
  %1058 = getelementptr inbounds %struct.dex_map_item, ptr %1057, i32 0, i32 2
  %1059 = load i32, ptr %1058, align 1, !tbaa !87
  %1060 = getelementptr inbounds %class.DexLoader, ptr %97, i32 0, i32 7
  %1061 = getelementptr inbounds %struct.dex_stats_t, ptr %1060, i32 0, i32 54
  %1062 = load i32, ptr %1061, align 8, !tbaa !115
  %1063 = add i32 %1062, %1059
  store i32 %1063, ptr %1061, align 8, !tbaa !115
  call void @llvm.lifetime.start.p0(i64 4, ptr %68) #10
  store i32 0, ptr %68, align 4, !tbaa !52
  br label %1064

1064:                                             ; preds = %1089, %1056
  %1065 = load i32, ptr %68, align 4, !tbaa !52
  %1066 = load ptr, ptr %47, align 8, !tbaa !5
  %1067 = getelementptr inbounds %struct.dex_map_item, ptr %1066, i32 0, i32 2
  %1068 = load i32, ptr %1067, align 1, !tbaa !87
  %1069 = icmp ult i32 %1065, %1068
  br i1 %1069, label %1071, label %1070

1070:                                             ; preds = %1064
  store i32 39, ptr %9, align 4
  call void @llvm.lifetime.end.p0(i64 4, ptr %68) #10
  br label %1096

1071:                                             ; preds = %1064
  call void @llvm.lifetime.start.p0(i64 4, ptr %69) #10
  %1072 = invoke noundef ptr @_ZN12_GLOBAL__N_115get_and_consumeIjEEPKT_RSt17basic_string_viewIcSt11char_traitsIcEEm(ptr noundef nonnull align 8 dereferenceable(16) %48, i64 noundef 4)
          to label %1073 unwind label %1092

1073:                                             ; preds = %1071
  %1074 = load i32, ptr %1072, align 4, !tbaa !52
  store i32 %1074, ptr %69, align 4, !tbaa !52
  %1075 = load i32, ptr %69, align 4, !tbaa !52
  %1076 = zext i32 %1075 to i64
  %1077 = mul i64 %1076, 4
  %1078 = add i64 4, %1077
  %1079 = getelementptr inbounds %class.DexLoader, ptr %97, i32 0, i32 7
  %1080 = getelementptr inbounds %struct.dex_stats_t, ptr %1079, i32 0, i32 55
  %1081 = load i32, ptr %1080, align 4, !tbaa !116
  %1082 = sext i32 %1081 to i64
  %1083 = add i64 %1082, %1078
  %1084 = trunc i64 %1083 to i32
  store i32 %1084, ptr %1080, align 4, !tbaa !116
  %1085 = load i32, ptr %69, align 4, !tbaa !52
  %1086 = zext i32 %1085 to i64
  %1087 = mul i64 %1086, 4
  invoke void @"_ZZN9DexLoader18gather_input_statsEvENK3$_1clEm"(ptr noundef nonnull align 8 dereferenceable(8) %49, i64 noundef %1087)
          to label %1088 unwind label %1092

1088:                                             ; preds = %1073
  call void @llvm.lifetime.end.p0(i64 4, ptr %69) #10
  br label %1089

1089:                                             ; preds = %1088
  %1090 = load i32, ptr %68, align 4, !tbaa !52
  %1091 = add i32 %1090, 1
  store i32 %1091, ptr %68, align 4, !tbaa !52
  br label %1064, !llvm.loop !117

1092:                                             ; preds = %1073, %1071
  %1093 = landingpad { ptr, i32 }
          cleanup
  %1094 = extractvalue { ptr, i32 } %1093, 0
  store ptr %1094, ptr %6, align 8
  %1095 = extractvalue { ptr, i32 } %1093, 1
  store i32 %1095, ptr %7, align 4
  call void @llvm.lifetime.end.p0(i64 4, ptr %69) #10
  call void @llvm.lifetime.end.p0(i64 4, ptr %68) #10
  br label %1533

1096:                                             ; preds = %1070
  br label %1529

1097:                                             ; preds = %652
  call void @llvm.lifetime.start.p0(i64 8, ptr %70) #10
  %1098 = call noundef i64 @_ZNKSt17basic_string_viewIcSt11char_traitsIcEE4sizeEv(ptr noundef nonnull align 8 dereferenceable(16) %48) #10
  store i64 %1098, ptr %70, align 8, !tbaa !118
  %1099 = load ptr, ptr %47, align 8, !tbaa !5
  %1100 = getelementptr inbounds %struct.dex_map_item, ptr %1099, i32 0, i32 2
  %1101 = load i32, ptr %1100, align 1, !tbaa !87
  %1102 = getelementptr inbounds %class.DexLoader, ptr %97, i32 0, i32 7
  %1103 = getelementptr inbounds %struct.dex_stats_t, ptr %1102, i32 0, i32 56
  %1104 = load i32, ptr %1103, align 8, !tbaa !119
  %1105 = add i32 %1104, %1101
  store i32 %1105, ptr %1103, align 8, !tbaa !119
  call void @llvm.lifetime.start.p0(i64 4, ptr %71) #10
  store i32 0, ptr %71, align 4, !tbaa !52
  br label %1106

1106:                                             ; preds = %1180, %1097
  %1107 = load i32, ptr %71, align 4, !tbaa !52
  %1108 = load ptr, ptr %47, align 8, !tbaa !5
  %1109 = getelementptr inbounds %struct.dex_map_item, ptr %1108, i32 0, i32 2
  %1110 = load i32, ptr %1109, align 1, !tbaa !87
  %1111 = icmp ult i32 %1107, %1110
  br i1 %1111, label %1113, label %1112

1112:                                             ; preds = %1106
  store i32 42, ptr %9, align 4
  call void @llvm.lifetime.end.p0(i64 4, ptr %71) #10
  br label %1187

1113:                                             ; preds = %1106
  call void @llvm.lifetime.start.p0(i64 4, ptr %72) #10
  %1114 = invoke noundef i32 @_Z20read_uleb128_checkedIN5redex9DexAssertEEjRSt17basic_string_viewIcSt11char_traitsIcEE(ptr noundef nonnull align 8 dereferenceable(16) %48)
          to label %1115 unwind label %1129

1115:                                             ; preds = %1113
  store i32 %1114, ptr %72, align 4, !tbaa !52
  call void @llvm.lifetime.start.p0(i64 4, ptr %73) #10
  %1116 = invoke noundef i32 @_Z20read_uleb128_checkedIN5redex9DexAssertEEjRSt17basic_string_viewIcSt11char_traitsIcEE(ptr noundef nonnull align 8 dereferenceable(16) %48)
          to label %1117 unwind label %1133

1117:                                             ; preds = %1115
  store i32 %1116, ptr %73, align 4, !tbaa !52
  call void @llvm.lifetime.start.p0(i64 4, ptr %74) #10
  %1118 = invoke noundef i32 @_Z20read_uleb128_checkedIN5redex9DexAssertEEjRSt17basic_string_viewIcSt11char_traitsIcEE(ptr noundef nonnull align 8 dereferenceable(16) %48)
          to label %1119 unwind label %1137

1119:                                             ; preds = %1117
  store i32 %1118, ptr %74, align 4, !tbaa !52
  call void @llvm.lifetime.start.p0(i64 4, ptr %75) #10
  %1120 = invoke noundef i32 @_Z20read_uleb128_checkedIN5redex9DexAssertEEjRSt17basic_string_viewIcSt11char_traitsIcEE(ptr noundef nonnull align 8 dereferenceable(16) %48)
          to label %1121 unwind label %1141

1121:                                             ; preds = %1119
  store i32 %1120, ptr %75, align 4, !tbaa !52
  call void @llvm.lifetime.start.p0(i64 4, ptr %76) #10
  store i32 0, ptr %76, align 4, !tbaa !52
  br label %1122

1122:                                             ; preds = %1150, %1121
  %1123 = load i32, ptr %76, align 4, !tbaa !52
  %1124 = load i32, ptr %72, align 4, !tbaa !52
  %1125 = load i32, ptr %73, align 4, !tbaa !52
  %1126 = add i32 %1124, %1125
  %1127 = icmp ult i32 %1123, %1126
  br i1 %1127, label %1145, label %1128

1128:                                             ; preds = %1122
  store i32 45, ptr %9, align 4
  call void @llvm.lifetime.end.p0(i64 4, ptr %76) #10
  br label %1157

1129:                                             ; preds = %1113
  %1130 = landingpad { ptr, i32 }
          cleanup
  %1131 = extractvalue { ptr, i32 } %1130, 0
  store ptr %1131, ptr %6, align 8
  %1132 = extractvalue { ptr, i32 } %1130, 1
  store i32 %1132, ptr %7, align 4
  br label %1186

1133:                                             ; preds = %1115
  %1134 = landingpad { ptr, i32 }
          cleanup
  %1135 = extractvalue { ptr, i32 } %1134, 0
  store ptr %1135, ptr %6, align 8
  %1136 = extractvalue { ptr, i32 } %1134, 1
  store i32 %1136, ptr %7, align 4
  br label %1185

1137:                                             ; preds = %1117
  %1138 = landingpad { ptr, i32 }
          cleanup
  %1139 = extractvalue { ptr, i32 } %1138, 0
  store ptr %1139, ptr %6, align 8
  %1140 = extractvalue { ptr, i32 } %1138, 1
  store i32 %1140, ptr %7, align 4
  br label %1184

1141:                                             ; preds = %1119
  %1142 = landingpad { ptr, i32 }
          cleanup
  %1143 = extractvalue { ptr, i32 } %1142, 0
  store ptr %1143, ptr %6, align 8
  %1144 = extractvalue { ptr, i32 } %1142, 1
  store i32 %1144, ptr %7, align 4
  br label %1183

1145:                                             ; preds = %1122
  %1146 = invoke noundef i32 @_Z20read_uleb128_checkedIN5redex9DexAssertEEjRSt17basic_string_viewIcSt11char_traitsIcEE(ptr noundef nonnull align 8 dereferenceable(16) %48)
          to label %1147 unwind label %1153

1147:                                             ; preds = %1145
  %1148 = invoke noundef i32 @_Z20read_uleb128_checkedIN5redex9DexAssertEEjRSt17basic_string_viewIcSt11char_traitsIcEE(ptr noundef nonnull align 8 dereferenceable(16) %48)
          to label %1149 unwind label %1153

1149:                                             ; preds = %1147
  br label %1150

1150:                                             ; preds = %1149
  %1151 = load i32, ptr %76, align 4, !tbaa !52
  %1152 = add i32 %1151, 1
  store i32 %1152, ptr %76, align 4, !tbaa !52
  br label %1122, !llvm.loop !120

1153:                                             ; preds = %1147, %1145
  %1154 = landingpad { ptr, i32 }
          cleanup
  %1155 = extractvalue { ptr, i32 } %1154, 0
  store ptr %1155, ptr %6, align 8
  %1156 = extractvalue { ptr, i32 } %1154, 1
  store i32 %1156, ptr %7, align 4
  call void @llvm.lifetime.end.p0(i64 4, ptr %76) #10
  br label %1183

1157:                                             ; preds = %1128
  call void @llvm.lifetime.start.p0(i64 4, ptr %77) #10
  store i32 0, ptr %77, align 4, !tbaa !52
  br label %1158

1158:                                             ; preds = %1172, %1157
  %1159 = load i32, ptr %77, align 4, !tbaa !52
  %1160 = load i32, ptr %74, align 4, !tbaa !52
  %1161 = load i32, ptr %75, align 4, !tbaa !52
  %1162 = add i32 %1160, %1161
  %1163 = icmp ult i32 %1159, %1162
  br i1 %1163, label %1165, label %1164

1164:                                             ; preds = %1158
  store i32 48, ptr %9, align 4
  call void @llvm.lifetime.end.p0(i64 4, ptr %77) #10
  br label %1179

1165:                                             ; preds = %1158
  %1166 = invoke noundef i32 @_Z20read_uleb128_checkedIN5redex9DexAssertEEjRSt17basic_string_viewIcSt11char_traitsIcEE(ptr noundef nonnull align 8 dereferenceable(16) %48)
          to label %1167 unwind label %1175

1167:                                             ; preds = %1165
  %1168 = invoke noundef i32 @_Z20read_uleb128_checkedIN5redex9DexAssertEEjRSt17basic_string_viewIcSt11char_traitsIcEE(ptr noundef nonnull align 8 dereferenceable(16) %48)
          to label %1169 unwind label %1175

1169:                                             ; preds = %1167
  %1170 = invoke noundef i32 @_Z20read_uleb128_checkedIN5redex9DexAssertEEjRSt17basic_string_viewIcSt11char_traitsIcEE(ptr noundef nonnull align 8 dereferenceable(16) %48)
          to label %1171 unwind label %1175

1171:                                             ; preds = %1169
  br label %1172

1172:                                             ; preds = %1171
  %1173 = load i32, ptr %77, align 4, !tbaa !52
  %1174 = add i32 %1173, 1
  store i32 %1174, ptr %77, align 4, !tbaa !52
  br label %1158, !llvm.loop !121

1175:                                             ; preds = %1169, %1167, %1165
  %1176 = landingpad { ptr, i32 }
          cleanup
  %1177 = extractvalue { ptr, i32 } %1176, 0
  store ptr %1177, ptr %6, align 8
  %1178 = extractvalue { ptr, i32 } %1176, 1
  store i32 %1178, ptr %7, align 4
  call void @llvm.lifetime.end.p0(i64 4, ptr %77) #10
  br label %1183

1179:                                             ; preds = %1164
  call void @llvm.lifetime.end.p0(i64 4, ptr %75) #10
  call void @llvm.lifetime.end.p0(i64 4, ptr %74) #10
  call void @llvm.lifetime.end.p0(i64 4, ptr %73) #10
  call void @llvm.lifetime.end.p0(i64 4, ptr %72) #10
  br label %1180

1180:                                             ; preds = %1179
  %1181 = load i32, ptr %71, align 4, !tbaa !52
  %1182 = add i32 %1181, 1
  store i32 %1182, ptr %71, align 4, !tbaa !52
  br label %1106, !llvm.loop !122

1183:                                             ; preds = %1175, %1153, %1141
  call void @llvm.lifetime.end.p0(i64 4, ptr %75) #10
  br label %1184

1184:                                             ; preds = %1183, %1137
  call void @llvm.lifetime.end.p0(i64 4, ptr %74) #10
  br label %1185

1185:                                             ; preds = %1184, %1133
  call void @llvm.lifetime.end.p0(i64 4, ptr %73) #10
  br label %1186

1186:                                             ; preds = %1185, %1129
  call void @llvm.lifetime.end.p0(i64 4, ptr %72) #10
  call void @llvm.lifetime.end.p0(i64 4, ptr %71) #10
  call void @llvm.lifetime.end.p0(i64 8, ptr %70) #10
  br label %1533

1187:                                             ; preds = %1112
  %1188 = load i64, ptr %70, align 8, !tbaa !118
  %1189 = call noundef i64 @_ZNKSt17basic_string_viewIcSt11char_traitsIcEE4sizeEv(ptr noundef nonnull align 8 dereferenceable(16) %48) #10
  %1190 = sub i64 %1188, %1189
  %1191 = getelementptr inbounds %class.DexLoader, ptr %97, i32 0, i32 7
  %1192 = getelementptr inbounds %struct.dex_stats_t, ptr %1191, i32 0, i32 57
  %1193 = load i32, ptr %1192, align 4, !tbaa !123
  %1194 = sext i32 %1193 to i64
  %1195 = add i64 %1194, %1190
  %1196 = trunc i64 %1195 to i32
  store i32 %1196, ptr %1192, align 4, !tbaa !123
  store i32 29, ptr %9, align 4
  call void @llvm.lifetime.end.p0(i64 8, ptr %70) #10
  br label %1529

1197:                                             ; preds = %652
  call void @llvm.lifetime.start.p0(i64 8, ptr %78) #10
  %1198 = call noundef i64 @_ZNKSt17basic_string_viewIcSt11char_traitsIcEE4sizeEv(ptr noundef nonnull align 8 dereferenceable(16) %48) #10
  store i64 %1198, ptr %78, align 8, !tbaa !118
  %1199 = load ptr, ptr %47, align 8, !tbaa !5
  %1200 = getelementptr inbounds %struct.dex_map_item, ptr %1199, i32 0, i32 2
  %1201 = load i32, ptr %1200, align 1, !tbaa !87
  %1202 = getelementptr inbounds %class.DexLoader, ptr %97, i32 0, i32 7
  %1203 = getelementptr inbounds %struct.dex_stats_t, ptr %1202, i32 0, i32 58
  %1204 = load i32, ptr %1203, align 8, !tbaa !124
  %1205 = add i32 %1204, %1201
  store i32 %1205, ptr %1203, align 8, !tbaa !124
  call void @llvm.lifetime.start.p0(i64 4, ptr %79) #10
  store i32 0, ptr %79, align 4, !tbaa !52
  br label %1206

1206:                                             ; preds = %1308, %1197
  %1207 = load i32, ptr %79, align 4, !tbaa !52
  %1208 = load ptr, ptr %47, align 8, !tbaa !5
  %1209 = getelementptr inbounds %struct.dex_map_item, ptr %1208, i32 0, i32 2
  %1210 = load i32, ptr %1209, align 1, !tbaa !87
  %1211 = icmp ult i32 %1207, %1210
  br i1 %1211, label %1213, label %1212

1212:                                             ; preds = %1206
  store i32 51, ptr %9, align 4
  call void @llvm.lifetime.end.p0(i64 4, ptr %79) #10
  br label %1312

1213:                                             ; preds = %1206
  call void @llvm.lifetime.start.p0(i64 8, ptr %80) #10
  %1214 = invoke noundef ptr @_ZN12_GLOBAL__N_115get_and_consumeI13dex_code_itemEEPKT_RSt17basic_string_viewIcSt11char_traitsIcEEm(ptr noundef nonnull align 8 dereferenceable(16) %48, i64 noundef 4)
          to label %1215 unwind label %1235

1215:                                             ; preds = %1213
  store ptr %1214, ptr %80, align 8, !tbaa !5
  %1216 = load ptr, ptr %80, align 8, !tbaa !5
  %1217 = getelementptr inbounds %struct.dex_code_item, ptr %1216, i32 0, i32 5
  %1218 = load i32, ptr %1217, align 1, !tbaa !125
  %1219 = zext i32 %1218 to i64
  %1220 = mul i64 %1219, 2
  invoke void @"_ZZN9DexLoader18gather_input_statsEvENK3$_1clEm"(ptr noundef nonnull align 8 dereferenceable(8) %49, i64 noundef %1220)
          to label %1221 unwind label %1235

1221:                                             ; preds = %1215
  %1222 = load ptr, ptr %80, align 8, !tbaa !5
  %1223 = getelementptr inbounds %struct.dex_code_item, ptr %1222, i32 0, i32 3
  %1224 = load i16, ptr %1223, align 1, !tbaa !127
  %1225 = zext i16 %1224 to i32
  %1226 = icmp ne i32 %1225, 0
  br i1 %1226, label %1227, label %1239

1227:                                             ; preds = %1221
  %1228 = load ptr, ptr %80, align 8, !tbaa !5
  %1229 = getelementptr inbounds %struct.dex_code_item, ptr %1228, i32 0, i32 5
  %1230 = load i32, ptr %1229, align 1, !tbaa !125
  %1231 = urem i32 %1230, 2
  %1232 = icmp eq i32 %1231, 1
  br i1 %1232, label %1233, label %1239

1233:                                             ; preds = %1227
  invoke void @"_ZZN9DexLoader18gather_input_statsEvENK3$_1clEm"(ptr noundef nonnull align 8 dereferenceable(8) %49, i64 noundef 2)
          to label %1234 unwind label %1235

1234:                                             ; preds = %1233
  br label %1239

1235:                                             ; preds = %1239, %1233, %1215, %1213
  %1236 = landingpad { ptr, i32 }
          cleanup
  %1237 = extractvalue { ptr, i32 } %1236, 0
  store ptr %1237, ptr %6, align 8
  %1238 = extractvalue { ptr, i32 } %1236, 1
  store i32 %1238, ptr %7, align 4
  br label %1311

1239:                                             ; preds = %1234, %1227, %1221
  %1240 = load ptr, ptr %80, align 8, !tbaa !5
  %1241 = getelementptr inbounds %struct.dex_code_item, ptr %1240, i32 0, i32 3
  %1242 = load i16, ptr %1241, align 1, !tbaa !127
  %1243 = zext i16 %1242 to i64
  %1244 = mul i64 %1243, 8
  invoke void @"_ZZN9DexLoader18gather_input_statsEvENK3$_1clEm"(ptr noundef nonnull align 8 dereferenceable(8) %49, i64 noundef %1244)
          to label %1245 unwind label %1235

1245:                                             ; preds = %1239
  %1246 = load ptr, ptr %80, align 8, !tbaa !5
  %1247 = getelementptr inbounds %struct.dex_code_item, ptr %1246, i32 0, i32 3
  %1248 = load i16, ptr %1247, align 1, !tbaa !127
  %1249 = zext i16 %1248 to i32
  %1250 = icmp ne i32 %1249, 0
  br i1 %1250, label %1251, label %1307

1251:                                             ; preds = %1245
  call void @llvm.lifetime.start.p0(i64 4, ptr %81) #10
  %1252 = invoke noundef i32 @_Z20read_uleb128_checkedIN5redex9DexAssertEEjRSt17basic_string_viewIcSt11char_traitsIcEE(ptr noundef nonnull align 8 dereferenceable(16) %48)
          to label %1253 unwind label %1259

1253:                                             ; preds = %1251
  store i32 %1252, ptr %81, align 4, !tbaa !52
  call void @llvm.lifetime.start.p0(i64 4, ptr %82) #10
  store i32 0, ptr %82, align 4, !tbaa !52
  br label %1254

1254:                                             ; preds = %1300, %1253
  %1255 = load i32, ptr %82, align 4, !tbaa !52
  %1256 = load i32, ptr %81, align 4, !tbaa !52
  %1257 = icmp ult i32 %1255, %1256
  br i1 %1257, label %1263, label %1258

1258:                                             ; preds = %1254
  store i32 54, ptr %9, align 4
  call void @llvm.lifetime.end.p0(i64 4, ptr %82) #10
  br label %1305

1259:                                             ; preds = %1251
  %1260 = landingpad { ptr, i32 }
          cleanup
  %1261 = extractvalue { ptr, i32 } %1260, 0
  store ptr %1261, ptr %6, align 8
  %1262 = extractvalue { ptr, i32 } %1260, 1
  store i32 %1262, ptr %7, align 4
  br label %1306

1263:                                             ; preds = %1254
  call void @llvm.lifetime.start.p0(i64 4, ptr %83) #10
  %1264 = invoke noundef i32 @_Z20read_sleb128_checkedIN5redex9DexAssertEEiRSt17basic_string_viewIcSt11char_traitsIcEE(ptr noundef nonnull align 8 dereferenceable(16) %48)
          to label %1265 unwind label %1273

1265:                                             ; preds = %1263
  store i32 %1264, ptr %83, align 4, !tbaa !52
  call void @llvm.lifetime.start.p0(i64 4, ptr %84) #10
  %1266 = load i32, ptr %83, align 4, !tbaa !52
  %1267 = call i32 @llvm.abs.i32(i32 %1266, i1 true)
  store i32 %1267, ptr %84, align 4, !tbaa !52
  call void @llvm.lifetime.start.p0(i64 4, ptr %85) #10
  store i32 0, ptr %85, align 4, !tbaa !52
  br label %1268

1268:                                             ; preds = %1282, %1265
  %1269 = load i32, ptr %85, align 4, !tbaa !52
  %1270 = load i32, ptr %84, align 4, !tbaa !52
  %1271 = icmp ult i32 %1269, %1270
  br i1 %1271, label %1277, label %1272

1272:                                             ; preds = %1268
  store i32 57, ptr %9, align 4
  call void @llvm.lifetime.end.p0(i64 4, ptr %85) #10
  br label %1289

1273:                                             ; preds = %1263
  %1274 = landingpad { ptr, i32 }
          cleanup
  %1275 = extractvalue { ptr, i32 } %1274, 0
  store ptr %1275, ptr %6, align 8
  %1276 = extractvalue { ptr, i32 } %1274, 1
  store i32 %1276, ptr %7, align 4
  br label %1304

1277:                                             ; preds = %1268
  %1278 = invoke noundef i32 @_Z20read_uleb128_checkedIN5redex9DexAssertEEjRSt17basic_string_viewIcSt11char_traitsIcEE(ptr noundef nonnull align 8 dereferenceable(16) %48)
          to label %1279 unwind label %1285

1279:                                             ; preds = %1277
  %1280 = invoke noundef i32 @_Z20read_uleb128_checkedIN5redex9DexAssertEEjRSt17basic_string_viewIcSt11char_traitsIcEE(ptr noundef nonnull align 8 dereferenceable(16) %48)
          to label %1281 unwind label %1285

1281:                                             ; preds = %1279
  br label %1282

1282:                                             ; preds = %1281
  %1283 = load i32, ptr %85, align 4, !tbaa !52
  %1284 = add i32 %1283, 1
  store i32 %1284, ptr %85, align 4, !tbaa !52
  br label %1268, !llvm.loop !128

1285:                                             ; preds = %1279, %1277
  %1286 = landingpad { ptr, i32 }
          cleanup
  %1287 = extractvalue { ptr, i32 } %1286, 0
  store ptr %1287, ptr %6, align 8
  %1288 = extractvalue { ptr, i32 } %1286, 1
  store i32 %1288, ptr %7, align 4
  call void @llvm.lifetime.end.p0(i64 4, ptr %85) #10
  br label %1303

1289:                                             ; preds = %1272
  %1290 = load i32, ptr %83, align 4, !tbaa !52
  %1291 = icmp sle i32 %1290, 0
  br i1 %1291, label %1292, label %1299

1292:                                             ; preds = %1289
  %1293 = invoke noundef i32 @_Z20read_uleb128_checkedIN5redex9DexAssertEEjRSt17basic_string_viewIcSt11char_traitsIcEE(ptr noundef nonnull align 8 dereferenceable(16) %48)
          to label %1294 unwind label %1295

1294:                                             ; preds = %1292
  br label %1299

1295:                                             ; preds = %1292
  %1296 = landingpad { ptr, i32 }
          cleanup
  %1297 = extractvalue { ptr, i32 } %1296, 0
  store ptr %1297, ptr %6, align 8
  %1298 = extractvalue { ptr, i32 } %1296, 1
  store i32 %1298, ptr %7, align 4
  br label %1303

1299:                                             ; preds = %1294, %1289
  call void @llvm.lifetime.end.p0(i64 4, ptr %84) #10
  call void @llvm.lifetime.end.p0(i64 4, ptr %83) #10
  br label %1300

1300:                                             ; preds = %1299
  %1301 = load i32, ptr %82, align 4, !tbaa !52
  %1302 = add i32 %1301, 1
  store i32 %1302, ptr %82, align 4, !tbaa !52
  br label %1254, !llvm.loop !129

1303:                                             ; preds = %1295, %1285
  call void @llvm.lifetime.end.p0(i64 4, ptr %84) #10
  br label %1304

1304:                                             ; preds = %1303, %1273
  call void @llvm.lifetime.end.p0(i64 4, ptr %83) #10
  call void @llvm.lifetime.end.p0(i64 4, ptr %82) #10
  br label %1306

1305:                                             ; preds = %1258
  call void @llvm.lifetime.end.p0(i64 4, ptr %81) #10
  br label %1307

1306:                                             ; preds = %1304, %1259
  call void @llvm.lifetime.end.p0(i64 4, ptr %81) #10
  br label %1311

1307:                                             ; preds = %1305, %1245
  call void @llvm.lifetime.end.p0(i64 8, ptr %80) #10
  br label %1308

1308:                                             ; preds = %1307
  %1309 = load i32, ptr %79, align 4, !tbaa !52
  %1310 = add i32 %1309, 1
  store i32 %1310, ptr %79, align 4, !tbaa !52
  br label %1206, !llvm.loop !130

1311:                                             ; preds = %1306, %1235
  call void @llvm.lifetime.end.p0(i64 8, ptr %80) #10
  call void @llvm.lifetime.end.p0(i64 4, ptr %79) #10
  call void @llvm.lifetime.end.p0(i64 8, ptr %78) #10
  br label %1533

1312:                                             ; preds = %1212
  %1313 = load i64, ptr %78, align 8, !tbaa !118
  %1314 = call noundef i64 @_ZNKSt17basic_string_viewIcSt11char_traitsIcEE4sizeEv(ptr noundef nonnull align 8 dereferenceable(16) %48) #10
  %1315 = sub i64 %1313, %1314
  %1316 = getelementptr inbounds %class.DexLoader, ptr %97, i32 0, i32 7
  %1317 = getelementptr inbounds %struct.dex_stats_t, ptr %1316, i32 0, i32 59
  %1318 = load i32, ptr %1317, align 4, !tbaa !131
  %1319 = sext i32 %1318 to i64
  %1320 = add i64 %1319, %1315
  %1321 = trunc i64 %1320 to i32
  store i32 %1321, ptr %1317, align 4, !tbaa !131
  store i32 29, ptr %9, align 4
  call void @llvm.lifetime.end.p0(i64 8, ptr %78) #10
  br label %1529

1322:                                             ; preds = %652
  call void @llvm.lifetime.start.p0(i64 8, ptr %86) #10
  %1323 = call noundef i64 @_ZNKSt17basic_string_viewIcSt11char_traitsIcEE4sizeEv(ptr noundef nonnull align 8 dereferenceable(16) %48) #10
  store i64 %1323, ptr %86, align 8, !tbaa !118
  %1324 = load ptr, ptr %47, align 8, !tbaa !5
  %1325 = getelementptr inbounds %struct.dex_map_item, ptr %1324, i32 0, i32 2
  %1326 = load i32, ptr %1325, align 1, !tbaa !87
  %1327 = getelementptr inbounds %class.DexLoader, ptr %97, i32 0, i32 7
  %1328 = getelementptr inbounds %struct.dex_stats_t, ptr %1327, i32 0, i32 60
  %1329 = load i32, ptr %1328, align 8, !tbaa !132
  %1330 = add i32 %1329, %1326
  store i32 %1330, ptr %1328, align 8, !tbaa !132
  call void @llvm.lifetime.start.p0(i64 4, ptr %87) #10
  store i32 0, ptr %87, align 4, !tbaa !52
  br label %1331

1331:                                             ; preds = %1353, %1322
  %1332 = load i32, ptr %87, align 4, !tbaa !52
  %1333 = load ptr, ptr %47, align 8, !tbaa !5
  %1334 = getelementptr inbounds %struct.dex_map_item, ptr %1333, i32 0, i32 2
  %1335 = load i32, ptr %1334, align 1, !tbaa !87
  %1336 = icmp ult i32 %1332, %1335
  br i1 %1336, label %1338, label %1337

1337:                                             ; preds = %1331
  store i32 60, ptr %9, align 4
  call void @llvm.lifetime.end.p0(i64 4, ptr %87) #10
  br label %1356

1338:                                             ; preds = %1331
  %1339 = invoke noundef i32 @_Z20read_uleb128_checkedIN5redex9DexAssertEEjRSt17basic_string_viewIcSt11char_traitsIcEE(ptr noundef nonnull align 8 dereferenceable(16) %48)
          to label %1340 unwind label %1348

1340:                                             ; preds = %1338
  br label %1341

1341:                                             ; preds = %1347, %1340
  %1342 = invoke noundef ptr @_ZN12_GLOBAL__N_115get_and_consumeIcEEPKT_RSt17basic_string_viewIcSt11char_traitsIcEEm(ptr noundef nonnull align 8 dereferenceable(16) %48, i64 noundef 1)
          to label %1343 unwind label %1348

1343:                                             ; preds = %1341
  %1344 = load i8, ptr %1342, align 1, !tbaa !133
  %1345 = sext i8 %1344 to i32
  %1346 = icmp ne i32 %1345, 0
  br i1 %1346, label %1347, label %1352

1347:                                             ; preds = %1343
  br label %1341, !llvm.loop !134

1348:                                             ; preds = %1341, %1338
  %1349 = landingpad { ptr, i32 }
          cleanup
  %1350 = extractvalue { ptr, i32 } %1349, 0
  store ptr %1350, ptr %6, align 8
  %1351 = extractvalue { ptr, i32 } %1349, 1
  store i32 %1351, ptr %7, align 4
  call void @llvm.lifetime.end.p0(i64 4, ptr %87) #10
  call void @llvm.lifetime.end.p0(i64 8, ptr %86) #10
  br label %1533

1352:                                             ; preds = %1343
  br label %1353

1353:                                             ; preds = %1352
  %1354 = load i32, ptr %87, align 4, !tbaa !52
  %1355 = add i32 %1354, 1
  store i32 %1355, ptr %87, align 4, !tbaa !52
  br label %1331, !llvm.loop !135

1356:                                             ; preds = %1337
  %1357 = call noundef i64 @_ZNKSt17basic_string_viewIcSt11char_traitsIcEE4sizeEv(ptr noundef nonnull align 8 dereferenceable(16) %48) #10
  %1358 = load i64, ptr %86, align 8, !tbaa !118
  %1359 = sub i64 %1357, %1358
  %1360 = getelementptr inbounds %class.DexLoader, ptr %97, i32 0, i32 7
  %1361 = getelementptr inbounds %struct.dex_stats_t, ptr %1360, i32 0, i32 61
  %1362 = load i32, ptr %1361, align 4, !tbaa !136
  %1363 = sext i32 %1362 to i64
  %1364 = add i64 %1363, %1359
  %1365 = trunc i64 %1364 to i32
  store i32 %1365, ptr %1361, align 4, !tbaa !136
  store i32 29, ptr %9, align 4
  call void @llvm.lifetime.end.p0(i64 8, ptr %86) #10
  br label %1529

1366:                                             ; preds = %652
  call void @llvm.lifetime.start.p0(i64 8, ptr %88) #10
  %1367 = call noundef i64 @_ZNKSt17basic_string_viewIcSt11char_traitsIcEE4sizeEv(ptr noundef nonnull align 8 dereferenceable(16) %48) #10
  store i64 %1367, ptr %88, align 8, !tbaa !118
  %1368 = load ptr, ptr %47, align 8, !tbaa !5
  %1369 = getelementptr inbounds %struct.dex_map_item, ptr %1368, i32 0, i32 2
  %1370 = load i32, ptr %1369, align 1, !tbaa !87
  %1371 = getelementptr inbounds %class.DexLoader, ptr %97, i32 0, i32 7
  %1372 = getelementptr inbounds %struct.dex_stats_t, ptr %1371, i32 0, i32 27
  %1373 = load i32, ptr %1372, align 4, !tbaa !137
  %1374 = add i32 %1373, %1370
  store i32 %1374, ptr %1372, align 4, !tbaa !137
  call void @llvm.lifetime.start.p0(i64 4, ptr %89) #10
  store i32 0, ptr %89, align 4, !tbaa !52
  br label %1375

1375:                                             ; preds = %1446, %1366
  %1376 = load i32, ptr %89, align 4, !tbaa !52
  %1377 = load ptr, ptr %47, align 8, !tbaa !5
  %1378 = getelementptr inbounds %struct.dex_map_item, ptr %1377, i32 0, i32 2
  %1379 = load i32, ptr %1378, align 1, !tbaa !87
  %1380 = icmp ult i32 %1376, %1379
  br i1 %1380, label %1382, label %1381

1381:                                             ; preds = %1375
  store i32 65, ptr %9, align 4
  call void @llvm.lifetime.end.p0(i64 4, ptr %89) #10
  br label %1451

1382:                                             ; preds = %1375
  %1383 = invoke noundef i32 @_Z20read_uleb128_checkedIN5redex9DexAssertEEjRSt17basic_string_viewIcSt11char_traitsIcEE(ptr noundef nonnull align 8 dereferenceable(16) %48)
          to label %1384 unwind label %1394

1384:                                             ; preds = %1382
  call void @llvm.lifetime.start.p0(i64 4, ptr %90) #10
  %1385 = invoke noundef i32 @_Z20read_uleb128_checkedIN5redex9DexAssertEEjRSt17basic_string_viewIcSt11char_traitsIcEE(ptr noundef nonnull align 8 dereferenceable(16) %48)
          to label %1386 unwind label %1398

1386:                                             ; preds = %1384
  store i32 %1385, ptr %90, align 4, !tbaa !52
  br label %1387

1387:                                             ; preds = %1393, %1386
  %1388 = load i32, ptr %90, align 4, !tbaa !52
  %1389 = add i32 %1388, -1
  store i32 %1389, ptr %90, align 4, !tbaa !52
  %1390 = icmp ne i32 %1388, 0
  br i1 %1390, label %1391, label %1402

1391:                                             ; preds = %1387
  %1392 = invoke noundef i32 @_Z20read_uleb128_checkedIN5redex9DexAssertEEjRSt17basic_string_viewIcSt11char_traitsIcEE(ptr noundef nonnull align 8 dereferenceable(16) %48)
          to label %1393 unwind label %1398

1393:                                             ; preds = %1391
  br label %1387, !llvm.loop !138

1394:                                             ; preds = %1382
  %1395 = landingpad { ptr, i32 }
          cleanup
  %1396 = extractvalue { ptr, i32 } %1395, 0
  store ptr %1396, ptr %6, align 8
  %1397 = extractvalue { ptr, i32 } %1395, 1
  store i32 %1397, ptr %7, align 4
  br label %1450

1398:                                             ; preds = %1391, %1384
  %1399 = landingpad { ptr, i32 }
          cleanup
  %1400 = extractvalue { ptr, i32 } %1399, 0
  store ptr %1400, ptr %6, align 8
  %1401 = extractvalue { ptr, i32 } %1399, 1
  store i32 %1401, ptr %7, align 4
  br label %1449

1402:                                             ; preds = %1387
  call void @llvm.lifetime.start.p0(i64 1, ptr %91) #10
  store i8 1, ptr %91, align 1, !tbaa !79
  br label %1403

1403:                                             ; preds = %1444, %1402
  %1404 = load i8, ptr %91, align 1, !tbaa !79, !range !85, !noundef !86
  %1405 = trunc i8 %1404 to i1
  br i1 %1405, label %1406, label %1445

1406:                                             ; preds = %1403
  call void @llvm.lifetime.start.p0(i64 1, ptr %92) #10
  %1407 = invoke noundef ptr @_ZN12_GLOBAL__N_115get_and_consumeIhEEPKT_RSt17basic_string_viewIcSt11char_traitsIcEEm(ptr noundef nonnull align 8 dereferenceable(16) %48, i64 noundef 1)
          to label %1408 unwind label %1412

1408:                                             ; preds = %1406
  %1409 = load i8, ptr %1407, align 1, !tbaa !133
  store i8 %1409, ptr %92, align 1, !tbaa !133
  %1410 = load i8, ptr %92, align 1, !tbaa !133
  %1411 = zext i8 %1410 to i32
  switch i32 %1411, label %1443 [
    i32 0, label %1416
    i32 1, label %1417
    i32 5, label %1417
    i32 6, label %1417
    i32 2, label %1420
    i32 3, label %1423
    i32 4, label %1430
    i32 9, label %1439
    i32 7, label %1442
    i32 8, label %1442
  ]

1412:                                             ; preds = %1439, %1436, %1434, %1432, %1430, %1427, %1425, %1423, %1420, %1417, %1406
  %1413 = landingpad { ptr, i32 }
          cleanup
  %1414 = extractvalue { ptr, i32 } %1413, 0
  store ptr %1414, ptr %6, align 8
  %1415 = extractvalue { ptr, i32 } %1413, 1
  store i32 %1415, ptr %7, align 4
  call void @llvm.lifetime.end.p0(i64 1, ptr %92) #10
  call void @llvm.lifetime.end.p0(i64 1, ptr %91) #10
  br label %1449

1416:                                             ; preds = %1408
  store i8 0, ptr %91, align 1, !tbaa !79
  br label %1444

1417:                                             ; preds = %1408, %1408, %1408
  %1418 = invoke noundef i32 @_Z20read_uleb128_checkedIN5redex9DexAssertEEjRSt17basic_string_viewIcSt11char_traitsIcEE(ptr noundef nonnull align 8 dereferenceable(16) %48)
          to label %1419 unwind label %1412

1419:                                             ; preds = %1417
  br label %1444

1420:                                             ; preds = %1408
  %1421 = invoke noundef i32 @_Z20read_sleb128_checkedIN5redex9DexAssertEEiRSt17basic_string_viewIcSt11char_traitsIcEE(ptr noundef nonnull align 8 dereferenceable(16) %48)
          to label %1422 unwind label %1412

1422:                                             ; preds = %1420
  br label %1444

1423:                                             ; preds = %1408
  %1424 = invoke noundef i32 @_Z20read_uleb128_checkedIN5redex9DexAssertEEjRSt17basic_string_viewIcSt11char_traitsIcEE(ptr noundef nonnull align 8 dereferenceable(16) %48)
          to label %1425 unwind label %1412

1425:                                             ; preds = %1423
  %1426 = invoke noundef i32 @_Z20read_uleb128_checkedIN5redex9DexAssertEEjRSt17basic_string_viewIcSt11char_traitsIcEE(ptr noundef nonnull align 8 dereferenceable(16) %48)
          to label %1427 unwind label %1412

1427:                                             ; preds = %1425
  %1428 = invoke noundef i32 @_Z20read_uleb128_checkedIN5redex9DexAssertEEjRSt17basic_string_viewIcSt11char_traitsIcEE(ptr noundef nonnull align 8 dereferenceable(16) %48)
          to label %1429 unwind label %1412

1429:                                             ; preds = %1427
  br label %1444

1430:                                             ; preds = %1408
  %1431 = invoke noundef i32 @_Z20read_uleb128_checkedIN5redex9DexAssertEEjRSt17basic_string_viewIcSt11char_traitsIcEE(ptr noundef nonnull align 8 dereferenceable(16) %48)
          to label %1432 unwind label %1412

1432:                                             ; preds = %1430
  %1433 = invoke noundef i32 @_Z20read_uleb128_checkedIN5redex9DexAssertEEjRSt17basic_string_viewIcSt11char_traitsIcEE(ptr noundef nonnull align 8 dereferenceable(16) %48)
          to label %1434 unwind label %1412

1434:                                             ; preds = %1432
  %1435 = invoke noundef i32 @_Z20read_uleb128_checkedIN5redex9DexAssertEEjRSt17basic_string_viewIcSt11char_traitsIcEE(ptr noundef nonnull align 8 dereferenceable(16) %48)
          to label %1436 unwind label %1412

1436:                                             ; preds = %1434
  %1437 = invoke noundef i32 @_Z20read_uleb128_checkedIN5redex9DexAssertEEjRSt17basic_string_viewIcSt11char_traitsIcEE(ptr noundef nonnull align 8 dereferenceable(16) %48)
          to label %1438 unwind label %1412

1438:                                             ; preds = %1436
  br label %1444

1439:                                             ; preds = %1408
  %1440 = invoke noundef i32 @_Z20read_uleb128_checkedIN5redex9DexAssertEEjRSt17basic_string_viewIcSt11char_traitsIcEE(ptr noundef nonnull align 8 dereferenceable(16) %48)
          to label %1441 unwind label %1412

1441:                                             ; preds = %1439
  br label %1444

1442:                                             ; preds = %1408, %1408
  br label %1444

1443:                                             ; preds = %1408
  br label %1444

1444:                                             ; preds = %1443, %1442, %1441, %1438, %1429, %1422, %1419, %1416
  call void @llvm.lifetime.end.p0(i64 1, ptr %92) #10
  br label %1403, !llvm.loop !139

1445:                                             ; preds = %1403
  call void @llvm.lifetime.end.p0(i64 1, ptr %91) #10
  call void @llvm.lifetime.end.p0(i64 4, ptr %90) #10
  br label %1446

1446:                                             ; preds = %1445
  %1447 = load i32, ptr %89, align 4, !tbaa !52
  %1448 = add i32 %1447, 1
  store i32 %1448, ptr %89, align 4, !tbaa !52
  br label %1375, !llvm.loop !140

1449:                                             ; preds = %1412, %1398
  call void @llvm.lifetime.end.p0(i64 4, ptr %90) #10
  br label %1450

1450:                                             ; preds = %1449, %1394
  call void @llvm.lifetime.end.p0(i64 4, ptr %89) #10
  call void @llvm.lifetime.end.p0(i64 8, ptr %88) #10
  br label %1533

1451:                                             ; preds = %1381
  %1452 = load i64, ptr %88, align 8, !tbaa !118
  %1453 = call noundef i64 @_ZNKSt17basic_string_viewIcSt11char_traitsIcEE4sizeEv(ptr noundef nonnull align 8 dereferenceable(16) %48) #10
  %1454 = sub i64 %1452, %1453
  %1455 = getelementptr inbounds %class.DexLoader, ptr %97, i32 0, i32 7
  %1456 = getelementptr inbounds %struct.dex_stats_t, ptr %1455, i32 0, i32 28
  %1457 = load i32, ptr %1456, align 8, !tbaa !141
  %1458 = sext i32 %1457 to i64
  %1459 = add i64 %1458, %1454
  %1460 = trunc i64 %1459 to i32
  store i32 %1460, ptr %1456, align 8, !tbaa !141
  store i32 29, ptr %9, align 4
  call void @llvm.lifetime.end.p0(i64 8, ptr %88) #10
  br label %1529

1461:                                             ; preds = %652
  call void @llvm.lifetime.start.p0(i64 8, ptr %93) #10
  %1462 = call noundef i64 @_ZNKSt17basic_string_viewIcSt11char_traitsIcEE4sizeEv(ptr noundef nonnull align 8 dereferenceable(16) %48) #10
  store i64 %1462, ptr %93, align 8, !tbaa !118
  %1463 = load ptr, ptr %47, align 8, !tbaa !5
  %1464 = getelementptr inbounds %struct.dex_map_item, ptr %1463, i32 0, i32 2
  %1465 = load i32, ptr %1464, align 1, !tbaa !87
  %1466 = getelementptr inbounds %class.DexLoader, ptr %97, i32 0, i32 7
  %1467 = getelementptr inbounds %struct.dex_stats_t, ptr %1466, i32 0, i32 68
  %1468 = load i32, ptr %1467, align 8, !tbaa !142
  %1469 = add i32 %1468, %1465
  store i32 %1469, ptr %1467, align 8, !tbaa !142
  call void @llvm.lifetime.start.p0(i64 4, ptr %94) #10
  store i32 0, ptr %94, align 4, !tbaa !52
  br label %1470

1470:                                             ; preds = %1499, %1461
  %1471 = load i32, ptr %94, align 4, !tbaa !52
  %1472 = load ptr, ptr %47, align 8, !tbaa !5
  %1473 = getelementptr inbounds %struct.dex_map_item, ptr %1472, i32 0, i32 2
  %1474 = load i32, ptr %1473, align 1, !tbaa !87
  %1475 = icmp ult i32 %1471, %1474
  br i1 %1475, label %1477, label %1476

1476:                                             ; preds = %1470
  store i32 73, ptr %9, align 4
  call void @llvm.lifetime.end.p0(i64 4, ptr %94) #10
  br label %1511

1477:                                             ; preds = %1470
  call void @llvm.lifetime.start.p0(i64 8, ptr %95) #10
  %1478 = invoke noundef ptr @_ZN12_GLOBAL__N_115get_and_consumeI30dex_annotations_directory_itemEEPKT_RSt17basic_string_viewIcSt11char_traitsIcEEm(ptr noundef nonnull align 8 dereferenceable(16) %48, i64 noundef 4)
          to label %1479 unwind label %1502

1479:                                             ; preds = %1477
  store ptr %1478, ptr %95, align 8, !tbaa !5
  call void @llvm.lifetime.start.p0(i64 8, ptr %96) #10
  %1480 = load ptr, ptr %95, align 8, !tbaa !5
  %1481 = getelementptr inbounds %struct.dex_annotations_directory_item, ptr %1480, i32 0, i32 1
  %1482 = load i32, ptr %1481, align 1, !tbaa !60
  %1483 = zext i32 %1482 to i64
  %1484 = mul i64 8, %1483
  %1485 = load ptr, ptr %95, align 8, !tbaa !5
  %1486 = getelementptr inbounds %struct.dex_annotations_directory_item, ptr %1485, i32 0, i32 2
  %1487 = load i32, ptr %1486, align 1, !tbaa !62
  %1488 = zext i32 %1487 to i64
  %1489 = mul i64 8, %1488
  %1490 = add i64 %1484, %1489
  %1491 = load ptr, ptr %95, align 8, !tbaa !5
  %1492 = getelementptr inbounds %struct.dex_annotations_directory_item, ptr %1491, i32 0, i32 3
  %1493 = load i32, ptr %1492, align 1, !tbaa !64
  %1494 = zext i32 %1493 to i64
  %1495 = mul i64 8, %1494
  %1496 = add i64 %1490, %1495
  store i64 %1496, ptr %96, align 8, !tbaa !118
  %1497 = load i64, ptr %96, align 8, !tbaa !118
  invoke void @"_ZZN9DexLoader18gather_input_statsEvENK3$_1clEm"(ptr noundef nonnull align 8 dereferenceable(8) %49, i64 noundef %1497)
          to label %1498 unwind label %1506

1498:                                             ; preds = %1479
  call void @llvm.lifetime.end.p0(i64 8, ptr %96) #10
  call void @llvm.lifetime.end.p0(i64 8, ptr %95) #10
  br label %1499

1499:                                             ; preds = %1498
  %1500 = load i32, ptr %94, align 4, !tbaa !52
  %1501 = add i32 %1500, 1
  store i32 %1501, ptr %94, align 4, !tbaa !52
  br label %1470, !llvm.loop !143

1502:                                             ; preds = %1477
  %1503 = landingpad { ptr, i32 }
          cleanup
  %1504 = extractvalue { ptr, i32 } %1503, 0
  store ptr %1504, ptr %6, align 8
  %1505 = extractvalue { ptr, i32 } %1503, 1
  store i32 %1505, ptr %7, align 4
  br label %1510

1506:                                             ; preds = %1479
  %1507 = landingpad { ptr, i32 }
          cleanup
  %1508 = extractvalue { ptr, i32 } %1507, 0
  store ptr %1508, ptr %6, align 8
  %1509 = extractvalue { ptr, i32 } %1507, 1
  store i32 %1509, ptr %7, align 4
  call void @llvm.lifetime.end.p0(i64 8, ptr %96) #10
  br label %1510

1510:                                             ; preds = %1506, %1502
  call void @llvm.lifetime.end.p0(i64 8, ptr %95) #10
  call void @llvm.lifetime.end.p0(i64 4, ptr %94) #10
  call void @llvm.lifetime.end.p0(i64 8, ptr %93) #10
  br label %1533

1511:                                             ; preds = %1476
  %1512 = call noundef i64 @_ZNKSt17basic_string_viewIcSt11char_traitsIcEE4sizeEv(ptr noundef nonnull align 8 dereferenceable(16) %48) #10
  %1513 = load i64, ptr %93, align 8, !tbaa !118
  %1514 = sub i64 %1512, %1513
  %1515 = getelementptr inbounds %class.DexLoader, ptr %97, i32 0, i32 7
  %1516 = getelementptr inbounds %struct.dex_stats_t, ptr %1515, i32 0, i32 69
  %1517 = load i32, ptr %1516, align 4, !tbaa !144
  %1518 = sext i32 %1517 to i64
  %1519 = add i64 %1518, %1514
  %1520 = trunc i64 %1519 to i32
  store i32 %1520, ptr %1516, align 4, !tbaa !144
  store i32 29, ptr %9, align 4
  call void @llvm.lifetime.end.p0(i64 8, ptr %93) #10
  br label %1529

1521:                                             ; preds = %652
  %1522 = load ptr, ptr @stderr, align 8, !tbaa !5
  %1523 = load i32, ptr %46, align 4, !tbaa !52
  %1524 = load ptr, ptr %47, align 8, !tbaa !5
  %1525 = getelementptr inbounds %struct.dex_map_item, ptr %1524, i32 0, i32 0
  %1526 = load i16, ptr %1525, align 1, !tbaa !84
  %1527 = zext i16 %1526 to i32
  %1528 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1522, ptr noundef @.str.19, i32 noundef %1523, i32 noundef %1527) #10
  br label %1529

1529:                                             ; preds = %1521, %1511, %1451, %1356, %1312, %1187, %1096, %1055, %1014, %973, %914, %895, %876, %857, %838, %819, %800, %781, %762, %652, %652, %652
  call void @llvm.lifetime.end.p0(i64 8, ptr %49) #10
  call void @llvm.lifetime.end.p0(i64 16, ptr %48) #10
  call void @llvm.lifetime.end.p0(i64 8, ptr %47) #10
  br label %1530

1530:                                             ; preds = %1529
  %1531 = load i32, ptr %46, align 4, !tbaa !52
  %1532 = add i32 %1531, 1
  store i32 %1532, ptr %46, align 4, !tbaa !52
  br label %629, !llvm.loop !145

1533:                                             ; preds = %1510, %1450, %1348, %1311, %1186, %1092, %1051, %1010, %969, %761, %718
  call void @llvm.lifetime.end.p0(i64 8, ptr %49) #10
  br label %1534

1534:                                             ; preds = %1533, %663
  call void @llvm.lifetime.end.p0(i64 16, ptr %48) #10
  call void @llvm.lifetime.end.p0(i64 8, ptr %47) #10
  call void @llvm.lifetime.end.p0(i64 4, ptr %46) #10
  call void @llvm.lifetime.end.p0(i64 4, ptr %45) #10
  call void @llvm.lifetime.end.p0(i64 1, ptr %44) #10
  call void @llvm.lifetime.end.p0(i64 8, ptr %43) #10
  br label %1536

1535:                                             ; preds = %635
  call void @llvm.lifetime.end.p0(i64 4, ptr %45) #10
  call void @llvm.lifetime.end.p0(i64 1, ptr %44) #10
  call void @llvm.lifetime.end.p0(i64 8, ptr %43) #10
  call void @_ZN12UnorderedSetIjSt4hashIjESt8equal_toIjEED2Ev(ptr noundef nonnull align 8 dereferenceable(56) %5) #10
  call void @llvm.lifetime.end.p0(i64 56, ptr %5) #10
  call void @_ZNSt3setIP11DexTypeList23dextypelists_comparatorSaIS1_EED2Ev(ptr noundef nonnull align 8 dereferenceable(48) %4) #10
  call void @llvm.lifetime.end.p0(i64 48, ptr %4) #10
  call void @_ZN12UnorderedSetI20DexEncodedValueArrayN5boost4hashIS0_EESt8equal_toIS0_EED2Ev(ptr noundef nonnull align 8 dereferenceable(56) %3) #10
  call void @llvm.lifetime.end.p0(i64 56, ptr %3) #10
  ret void

1536:                                             ; preds = %1534, %616, %596, %571, %527
  call void @_ZN12UnorderedSetIjSt4hashIjESt8equal_toIjEED2Ev(ptr noundef nonnull align 8 dereferenceable(56) %5) #10
  br label %1537

1537:                                             ; preds = %1536, %171
  call void @llvm.lifetime.end.p0(i64 56, ptr %5) #10
  call void @_ZNSt3setIP11DexTypeList23dextypelists_comparatorSaIS1_EED2Ev(ptr noundef nonnull align 8 dereferenceable(48) %4) #10
  call void @llvm.lifetime.end.p0(i64 48, ptr %4) #10
  call void @_ZN12UnorderedSetI20DexEncodedValueArrayN5boost4hashIS0_EESt8equal_toIS0_EED2Ev(ptr noundef nonnull align 8 dereferenceable(56) %3) #10
  call void @llvm.lifetime.end.p0(i64 56, ptr %3) #10
  br label %1538

1538:                                             ; preds = %1537
  %1539 = load ptr, ptr %6, align 8
  %1540 = load i32, ptr %7, align 4
  %1541 = insertvalue { ptr, i32 } poison, ptr %1539, 0
  %1542 = insertvalue { ptr, i32 } %1541, i32 %1540, 1
  resume { ptr, i32 } %1542

1543:                                             ; preds = %759, %716
  %1544 = landingpad { ptr, i32 }
          catch ptr null
  %1545 = extractvalue { ptr, i32 } %1544, 0
  call void @__clang_call_terminate(ptr %1545) #12
  unreachable

1546:                                             ; preds = %513
  unreachable
}

; Function Attrs: mustprogress nounwind uwtable
declare dso_local void @_ZN12UnorderedSetI20DexEncodedValueArrayN5boost4hashIS0_EESt8equal_toIS0_EEC2Ev(ptr noundef nonnull align 8 dereferenceable(56)) unnamed_addr #1 align 2

; Function Attrs: mustprogress nounwind uwtable
declare dso_local void @_ZNSt3setIP11DexTypeList23dextypelists_comparatorSaIS1_EEC2Ev(ptr noundef nonnull align 8 dereferenceable(48)) unnamed_addr #1 align 2

; Function Attrs: mustprogress nounwind uwtable
declare dso_local void @_ZN12UnorderedSetIjSt4hashIjESt8equal_toIjEEC2Ev(ptr noundef nonnull align 8 dereferenceable(56)) unnamed_addr #1 align 2

; Function Attrs: mustprogress uwtable
declare dso_local noundef nonnull align 8 dereferenceable(8) ptr @_ZNSt6vectorIP8DexClassSaIS1_EE2atEm(ptr noundef nonnull align 8 dereferenceable(24), i64 noundef) #2 align 2

; Function Attrs: mustprogress nounwind uwtable
declare dso_local noundef ptr @_ZNKSt10unique_ptrI6DexIdxSt14default_deleteIS0_EEptEv(ptr noundef nonnull align 8 dereferenceable(8)) #1 align 2

; Function Attrs: mustprogress uwtable
declare dso_local noundef ptr @_ZN6DexIdx8get_dataI30dex_annotations_directory_itemEEPKT_j(ptr noundef nonnull align 8 dereferenceable(288), i32 noundef) #2 align 2

; Function Attrs: mustprogress uwtable
declare dso_local noundef ptr @_ZN6DexIdx13get_uint_dataEj(ptr noundef nonnull align 8 dereferenceable(288), i32 noundef) #2 align 2

; Function Attrs: noreturn
declare void @_Z11assert_failPKcS0_jS0_10RedexErrorS0_z(ptr noundef, ptr noundef, i32 noundef, ptr noundef, i32 noundef, ptr noundef, ...) #4

; Function Attrs: mustprogress uwtable
declare dso_local noundef ptr @_ZNK6DexIdx3endEv(ptr noundef nonnull align 8 dereferenceable(288)) #2 align 2

; Function Attrs: mustprogress uwtable
declare dso_local { ptr, i8 } @_ZN12UnorderedSetIjSt4hashIjESt8equal_toIjEE6insertERKj(ptr noundef nonnull align 8 dereferenceable(56), ptr noundef nonnull align 4 dereferenceable(4)) #2 align 2

; Function Attrs: mustprogress nounwind uwtable
declare dso_local noundef ptr @_ZNK8DexClass14get_interfacesEv(ptr noundef nonnull align 8 dereferenceable(176)) #1 align 2

; Function Attrs: mustprogress uwtable
declare dso_local { ptr, i8 } @_ZNSt3setIP11DexTypeList23dextypelists_comparatorSaIS1_EE6insertERKS1_(ptr noundef nonnull align 8 dereferenceable(48), ptr noundef nonnull align 8 dereferenceable(8)) #2 align 2

declare void @_ZN8DexClass17get_static_valuesEv(ptr dead_on_unwind writable sret(%"class.std::unique_ptr.102") align 8, ptr noundef nonnull align 8 dereferenceable(176)) #5

; Function Attrs: mustprogress nounwind uwtable
declare dso_local noundef zeroext i1 @_ZNKSt10unique_ptrI20DexEncodedValueArraySt14default_deleteIS0_EEcvbEv(ptr noundef nonnull align 8 dereferenceable(8)) #1 align 2

; Function Attrs: mustprogress uwtable
declare dso_local noundef i64 @_ZNK12UnorderedSetI20DexEncodedValueArrayN5boost4hashIS0_EESt8equal_toIS0_EE5countERKS0_(ptr noundef nonnull align 8 dereferenceable(56), ptr noundef nonnull align 8 dereferenceable(18)) #2 align 2

; Function Attrs: mustprogress nounwind uwtable
declare dso_local noundef nonnull align 8 dereferenceable(18) ptr @_ZNKSt10unique_ptrI20DexEncodedValueArraySt14default_deleteIS0_EEdeEv(ptr noundef nonnull align 8 dereferenceable(8)) #1 align 2

; Function Attrs: mustprogress uwtable
declare dso_local { ptr, i8 } @_ZN12UnorderedSetI20DexEncodedValueArrayN5boost4hashIS0_EESt8equal_toIS0_EE7emplaceIJS0_EEESt4pairINS6_13FixedIteratorEbEDpOT_(ptr noundef nonnull align 8 dereferenceable(56), ptr noundef nonnull align 8 dereferenceable(18)) #2 align 2

; Function Attrs: mustprogress uwtable
declare dso_local noundef nonnull align 8 dereferenceable(24) ptr @_ZN8DexClass11get_ifieldsEv(ptr noundef nonnull align 8 dereferenceable(176)) #2 align 2

; Function Attrs: mustprogress nounwind uwtable
declare dso_local noundef i64 @_ZNKSt6vectorIP8DexFieldSaIS1_EE4sizeEv(ptr noundef nonnull align 8 dereferenceable(24)) #1 align 2

; Function Attrs: mustprogress uwtable
declare dso_local noundef nonnull align 8 dereferenceable(24) ptr @_ZN8DexClass11get_sfieldsEv(ptr noundef nonnull align 8 dereferenceable(176)) #2 align 2

; Function Attrs: mustprogress uwtable
declare dso_local noundef nonnull align 8 dereferenceable(24) ptr @_ZN8DexClass12get_vmethodsEv(ptr noundef nonnull align 8 dereferenceable(176)) #2 align 2

; Function Attrs: mustprogress nounwind uwtable
declare dso_local noundef i64 @_ZNKSt6vectorIP9DexMethodSaIS1_EE4sizeEv(ptr noundef nonnull align 8 dereferenceable(24)) #1 align 2

; Function Attrs: mustprogress uwtable
declare dso_local noundef nonnull align 8 dereferenceable(24) ptr @_ZN8DexClass12get_dmethodsEv(ptr noundef nonnull align 8 dereferenceable(176)) #2 align 2

; Function Attrs: inlinehint mustprogress uwtable
declare hidden void @"_ZZN9DexLoader18gather_input_statsEvENK3$_0clISt6vectorIP9DexMethodSaIS4_EEEEDaRKT_"(ptr noundef nonnull align 8 dereferenceable(8), ptr noundef nonnull align 8 dereferenceable(24)) #6 align 2

; Function Attrs: mustprogress nounwind uwtable
declare dso_local void @_ZNSt10unique_ptrI20DexEncodedValueArraySt14default_deleteIS0_EED2Ev(ptr noundef nonnull align 8 dereferenceable(8)) unnamed_addr #1 align 2

; Function Attrs: mustprogress uwtable
declare dso_local noundef ptr @_ZN6DexIdx13get_methodidxEj(ptr noundef nonnull align 8 dereferenceable(288), i32 noundef) #2 align 2

; Function Attrs: mustprogress nounwind uwtable
declare dso_local noundef ptr @_ZNK12DexMethodRef9get_protoEv(ptr noundef nonnull align 8 dereferenceable(26)) #1 align 2

; Function Attrs: mustprogress uwtable
declare dso_local { ptr, i8 } @_ZNSt3setIP11DexTypeList23dextypelists_comparatorSaIS1_EE6insertEOS1_(ptr noundef nonnull align 8 dereferenceable(48), ptr noundef nonnull align 8 dereferenceable(8)) #2 align 2

; Function Attrs: mustprogress nounwind uwtable
declare dso_local noundef ptr @_ZNK8DexProto8get_argsEv(ptr noundef nonnull align 8 dereferenceable(24)) #1 align 2

; Function Attrs: mustprogress nounwind uwtable
declare dso_local noundef i64 @_ZNK12UnorderedSetIjSt4hashIjESt8equal_toIjEE4sizeEv(ptr noundef nonnull align 8 dereferenceable(56)) #1 align 2

; Function Attrs: mustprogress nounwind uwtable
declare dso_local noundef i64 @_ZNKSt3setIP11DexTypeList23dextypelists_comparatorSaIS1_EE4sizeEv(ptr noundef nonnull align 8 dereferenceable(48)) #1 align 2

; Function Attrs: mustprogress uwtable
declare dso_local noundef ptr @_ZN6DexIdx13get_stringidxEj(ptr noundef nonnull align 8 dereferenceable(288), i32 noundef) #2 align 2

; Function Attrs: mustprogress uwtable
declare dso_local noundef i32 @_ZNK9DexString14get_entry_sizeEv(ptr noundef nonnull align 8 dereferenceable(16)) #2 align 2

; Function Attrs: mustprogress nounwind uwtable
declare dso_local noundef ptr @_ZNKSt10unique_ptrIKhSt8functionIFvPS0_EEE3getEv(ptr noundef nonnull align 8 dereferenceable(40)) #1 align 2

; Function Attrs: mustprogress uwtable
declare dso_local noundef ptr @_ZN6DexIdx13get_uleb_dataEj(ptr noundef nonnull align 8 dereferenceable(288), i32 noundef) #2 align 2

; Function Attrs: mustprogress nounwind uwtable
declare dso_local noundef i32 @_ZNK6DexIdx13get_file_sizeEv(ptr noundef nonnull align 8 dereferenceable(288)) #1 align 2

; Function Attrs: mustprogress nounwind uwtable
declare dso_local void @_ZNSt17basic_string_viewIcSt11char_traitsIcEEC2EPKcm(ptr noundef nonnull align 8 dereferenceable(16), ptr noundef, i64 noundef) unnamed_addr #1 align 2

; Function Attrs: mustprogress nounwind uwtable
declare hidden void @_ZN12_GLOBAL__N_112AssertHelperC2Ev(ptr noundef nonnull align 8 dereferenceable(96)) unnamed_addr #1 align 2

; Function Attrs: mustprogress nounwind uwtable
declare hidden noundef nonnull align 8 dereferenceable(96) ptr @_ZN12_GLOBAL__N_112AssertHelper11set_messageEONSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEE(ptr noundef nonnull align 8 dereferenceable(96), ptr noundef nonnull align 8 dereferenceable(32)) #1 align 2

; Function Attrs: mustprogress uwtable
declare hidden noundef nonnull align 8 dereferenceable(96) ptr @_ZN12_GLOBAL__N_112AssertHelper8add_infoIjEERS0_ONSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEET_(ptr noundef nonnull align 8 dereferenceable(96), ptr noundef nonnull align 8 dereferenceable(32), i32 noundef) #2 align 2

; Function Attrs: mustprogress uwtable
declare hidden void @_ZN12_GLOBAL__N_112AssertHelperD2Ev(ptr noundef nonnull align 8 dereferenceable(96)) unnamed_addr #2 align 2

; Function Attrs: mustprogress uwtable
declare hidden noundef ptr @_ZN12_GLOBAL__N_115get_and_consumeIjEEPKT_RSt17basic_string_viewIcSt11char_traitsIcEEm(ptr noundef nonnull align 8 dereferenceable(16), i64 noundef) #2

; Function Attrs: inlinehint mustprogress uwtable
declare hidden void @"_ZZN9DexLoader18gather_input_statsEvENK3$_1clEm"(ptr noundef nonnull align 8 dereferenceable(8), i64 noundef) #6 align 2

; Function Attrs: mustprogress nounwind uwtable
declare dso_local noundef i64 @_ZNKSt17basic_string_viewIcSt11char_traitsIcEE4sizeEv(ptr noundef nonnull align 8 dereferenceable(16)) #1 align 2

; Function Attrs: mustprogress uwtable
declare dso_local noundef i32 @_Z20read_uleb128_checkedIN5redex9DexAssertEEjRSt17basic_string_viewIcSt11char_traitsIcEE(ptr noundef nonnull align 8 dereferenceable(16)) #2

; Function Attrs: mustprogress uwtable
declare hidden noundef ptr @_ZN12_GLOBAL__N_115get_and_consumeI13dex_code_itemEEPKT_RSt17basic_string_viewIcSt11char_traitsIcEEm(ptr noundef nonnull align 8 dereferenceable(16), i64 noundef) #2

; Function Attrs: mustprogress uwtable
declare dso_local noundef i32 @_Z20read_sleb128_checkedIN5redex9DexAssertEEiRSt17basic_string_viewIcSt11char_traitsIcEE(ptr noundef nonnull align 8 dereferenceable(16)) #2

; Function Attrs: nocallback nofree nosync nounwind speculatable willreturn memory(none)
declare i32 @llvm.abs.i32(i32, i1 immarg) #7

; Function Attrs: mustprogress uwtable
declare hidden noundef ptr @_ZN12_GLOBAL__N_115get_and_consumeIcEEPKT_RSt17basic_string_viewIcSt11char_traitsIcEEm(ptr noundef nonnull align 8 dereferenceable(16), i64 noundef) #2

; Function Attrs: mustprogress uwtable
declare hidden noundef ptr @_ZN12_GLOBAL__N_115get_and_consumeIhEEPKT_RSt17basic_string_viewIcSt11char_traitsIcEEm(ptr noundef nonnull align 8 dereferenceable(16), i64 noundef) #2

; Function Attrs: mustprogress uwtable
declare hidden noundef ptr @_ZN12_GLOBAL__N_115get_and_consumeI30dex_annotations_directory_itemEEPKT_RSt17basic_string_viewIcSt11char_traitsIcEEm(ptr noundef nonnull align 8 dereferenceable(16), i64 noundef) #2

; Function Attrs: nounwind
declare i32 @fprintf(ptr noundef, ptr noundef, ...) #8

; Function Attrs: inlinehint mustprogress nounwind uwtable
declare dso_local void @_ZN12UnorderedSetIjSt4hashIjESt8equal_toIjEED2Ev(ptr noundef nonnull align 8 dereferenceable(56)) unnamed_addr #9 align 2

; Function Attrs: mustprogress nounwind uwtable
declare dso_local void @_ZNSt3setIP11DexTypeList23dextypelists_comparatorSaIS1_EED2Ev(ptr noundef nonnull align 8 dereferenceable(48)) unnamed_addr #1 align 2

; Function Attrs: inlinehint mustprogress nounwind uwtable
declare dso_local void @_ZN12UnorderedSetI20DexEncodedValueArrayN5boost4hashIS0_EESt8equal_toIS0_EED2Ev(ptr noundef nonnull align 8 dereferenceable(56)) unnamed_addr #9 align 2

attributes #0 = { nocallback nofree nosync nounwind willreturn memory(argmem: readwrite) }
attributes #1 = { mustprogress nounwind uwtable "min-legal-vector-width"="0" "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="x86-64" "target-features"="+cmov,+cx8,+fxsr,+mmx,+sse,+sse2,+x87" "tune-cpu"="generic" }
attributes #2 = { mustprogress uwtable "min-legal-vector-width"="0" "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="x86-64" "target-features"="+cmov,+cx8,+fxsr,+mmx,+sse,+sse2,+x87" "tune-cpu"="generic" }
attributes #3 = { noinline noreturn nounwind uwtable "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="x86-64" "target-features"="+cmov,+cx8,+fxsr,+mmx,+sse,+sse2,+x87" "tune-cpu"="generic" }
attributes #4 = { noreturn "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="x86-64" "target-features"="+cmov,+cx8,+fxsr,+mmx,+sse,+sse2,+x87" "tune-cpu"="generic" }
attributes #5 = { "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="x86-64" "target-features"="+cmov,+cx8,+fxsr,+mmx,+sse,+sse2,+x87" "tune-cpu"="generic" }
attributes #6 = { inlinehint mustprogress uwtable "min-legal-vector-width"="0" "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="x86-64" "target-features"="+cmov,+cx8,+fxsr,+mmx,+sse,+sse2,+x87" "tune-cpu"="generic" }
attributes #7 = { nocallback nofree nosync nounwind speculatable willreturn memory(none) }
attributes #8 = { nounwind "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="x86-64" "target-features"="+cmov,+cx8,+fxsr,+mmx,+sse,+sse2,+x87" "tune-cpu"="generic" }
attributes #9 = { inlinehint mustprogress nounwind uwtable "min-legal-vector-width"="0" "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="x86-64" "target-features"="+cmov,+cx8,+fxsr,+mmx,+sse,+sse2,+x87" "tune-cpu"="generic" }
attributes #10 = { nounwind }
attributes #11 = { noreturn }
attributes #12 = { noreturn nounwind }

!llvm.module.flags = !{!0, !1, !2, !3}
!llvm.ident = !{!4}

!0 = !{i32 1, !"wchar_size", i32 4}
!1 = !{i32 8, !"PIC Level", i32 2}
!2 = !{i32 7, !"PIE Level", i32 2}
!3 = !{i32 7, !"uwtable", i32 2}
!4 = !{!"clang version 19.1.0 (git@github.com:llvm/llvm-project.git a4bf6cd7cfb1a1421ba92bca9d017b49936c55e4)"}
!5 = !{!6, !6, i64 0}
!6 = !{!"any pointer", !7, i64 0}
!7 = !{!"omnipotent char", !8, i64 0}
!8 = !{!"Simple C++ TBAA"}
!9 = !{!10, !6, i64 0}
!10 = !{!"_ZTS9DexLoader", !6, i64 0, !11, i64 8, !6, i64 16, !17, i64 24, !21, i64 48, !31, i64 88, !6, i64 96, !32, i64 104, !33, i64 400, !34, i64 404}
!11 = !{!"_ZTSSt10unique_ptrI6DexIdxSt14default_deleteIS0_EE", !12, i64 0}
!12 = !{!"_ZTSSt15__uniq_ptr_dataI6DexIdxSt14default_deleteIS0_ELb1ELb1EE", !13, i64 0}
!13 = !{!"_ZTSSt15__uniq_ptr_implI6DexIdxSt14default_deleteIS0_EE", !14, i64 0}
!14 = !{!"_ZTSSt5tupleIJP6DexIdxSt14default_deleteIS0_EEE", !15, i64 0}
!15 = !{!"_ZTSSt11_Tuple_implILm0EJP6DexIdxSt14default_deleteIS0_EEE", !16, i64 0}
!16 = !{!"_ZTSSt10_Head_baseILm0EP6DexIdxLb0EE", !6, i64 0}
!17 = !{!"_ZTSSt6vectorIP8DexClassSaIS1_EE", !18, i64 0}
!18 = !{!"_ZTSSt12_Vector_baseIP8DexClassSaIS1_EE", !19, i64 0}
!19 = !{!"_ZTSNSt12_Vector_baseIP8DexClassSaIS1_EE12_Vector_implE", !20, i64 0}
!20 = !{!"_ZTSNSt12_Vector_baseIP8DexClassSaIS1_EE17_Vector_impl_dataE", !6, i64 0, !6, i64 8, !6, i64 16}
!21 = !{!"_ZTSSt10unique_ptrIKhSt8functionIFvPS0_EEE", !22, i64 0}
!22 = !{!"_ZTSSt15__uniq_ptr_dataIKhSt8functionIFvPS0_EELb1ELb1EE", !23, i64 0}
!23 = !{!"_ZTSSt15__uniq_ptr_implIKhSt8functionIFvPS0_EEE", !24, i64 0}
!24 = !{!"_ZTSSt5tupleIJPKhSt8functionIFvS1_EEEE", !25, i64 0}
!25 = !{!"_ZTSSt11_Tuple_implILm0EJPKhSt8functionIFvS1_EEEE", !26, i64 0, !30, i64 32}
!26 = !{!"_ZTSSt11_Tuple_implILm1EJSt8functionIFvPKhEEEE", !27, i64 0}
!27 = !{!"_ZTSSt10_Head_baseILm1ESt8functionIFvPKhEELb0EE", !28, i64 0}
!28 = !{!"_ZTSSt8functionIFvPKhEE", !29, i64 0, !6, i64 24}
!29 = !{!"_ZTSSt14_Function_base", !7, i64 0, !6, i64 16}
!30 = !{!"_ZTSSt10_Head_baseILm0EPKhLb0EE", !6, i64 0}
!31 = !{!"long", !7, i64 0}
!32 = !{!"_ZTS11dex_stats_t", !7, i64 0, !33, i64 20, !33, i64 24, !33, i64 28, !33, i64 32, !33, i64 36, !33, i64 40, !33, i64 44, !33, i64 48, !33, i64 52, !33, i64 56, !33, i64 60, !33, i64 64, !33, i64 68, !33, i64 72, !33, i64 76, !33, i64 80, !33, i64 84, !33, i64 88, !33, i64 92, !33, i64 96, !33, i64 100, !33, i64 104, !33, i64 108, !33, i64 112, !33, i64 116, !33, i64 120, !33, i64 124, !33, i64 128, !33, i64 132, !33, i64 136, !33, i64 140, !33, i64 144, !33, i64 148, !33, i64 152, !33, i64 156, !33, i64 160, !33, i64 164, !33, i64 168, !33, i64 172, !33, i64 176, !33, i64 180, !33, i64 184, !33, i64 188, !33, i64 192, !33, i64 196, !33, i64 200, !33, i64 204, !33, i64 208, !33, i64 212, !33, i64 216, !33, i64 220, !33, i64 224, !33, i64 228, !33, i64 232, !33, i64 236, !33, i64 240, !33, i64 244, !33, i64 248, !33, i64 252, !33, i64 256, !33, i64 260, !33, i64 264, !33, i64 268, !33, i64 272, !33, i64 276, !33, i64 280, !33, i64 284, !33, i64 288, !33, i64 292}
!33 = !{!"int", !7, i64 0}
!34 = !{!"_ZTSN9DexLoader8ParallelE", !7, i64 0}
!35 = !{!36, !33, i64 64}
!36 = !{!"_ZTS10dex_header", !7, i64 0, !33, i64 8, !7, i64 12, !33, i64 32, !33, i64 36, !33, i64 40, !33, i64 44, !33, i64 48, !33, i64 52, !33, i64 56, !33, i64 60, !33, i64 64, !33, i64 68, !33, i64 72, !33, i64 76, !33, i64 80, !33, i64 84, !33, i64 88, !33, i64 92, !33, i64 96, !33, i64 100, !33, i64 104, !33, i64 108}
!37 = !{!10, !33, i64 124}
!38 = !{!36, !33, i64 96}
!39 = !{!10, !33, i64 128}
!40 = !{!36, !33, i64 88}
!41 = !{!10, !33, i64 136}
!42 = !{!36, !33, i64 80}
!43 = !{!10, !33, i64 144}
!44 = !{!36, !33, i64 56}
!45 = !{!10, !33, i64 148}
!46 = !{!36, !33, i64 72}
!47 = !{!10, !33, i64 152}
!48 = !{!36, !33, i64 32}
!49 = !{!10, !33, i64 168}
!50 = !{!10, !33, i64 176}
!51 = !{!10, !33, i64 180}
!52 = !{!33, !33, i64 0}
!53 = !{!10, !6, i64 16}
!54 = !{!55, !33, i64 20}
!55 = !{!"_ZTS13dex_class_def", !33, i64 0, !33, i64 4, !33, i64 8, !33, i64 12, !33, i64 16, !33, i64 20, !33, i64 24, !33, i64 28}
!56 = !{!57, !33, i64 0}
!57 = !{!"_ZTS30dex_annotations_directory_item", !33, i64 0, !33, i64 4, !33, i64 8, !33, i64 12}
!58 = distinct !{!58, !59}
!59 = !{!"llvm.loop.mustprogress"}
!60 = !{!57, !33, i64 4}
!61 = distinct !{!61, !59}
!62 = !{!57, !33, i64 8}
!63 = distinct !{!63, !59}
!64 = !{!57, !33, i64 12}
!65 = distinct !{!65, !59}
!66 = distinct !{!66, !59}
!67 = !{!10, !33, i64 156}
!68 = !{!10, !33, i64 140}
!69 = !{!10, !33, i64 132}
!70 = !{!71, !6, i64 0}
!71 = !{!"_ZTSZN9DexLoader18gather_input_statsEvE3$_0", !6, i64 0}
!72 = distinct !{!72, !59}
!73 = distinct !{!73, !59}
!74 = !{!10, !33, i64 160}
!75 = !{!10, !33, i64 164}
!76 = !{!10, !33, i64 208}
!77 = distinct !{!77, !59}
!78 = !{!36, !33, i64 52}
!79 = !{!80, !80, i64 0}
!80 = !{!"bool", !7, i64 0}
!81 = !{!82, !33, i64 8}
!82 = !{!"_ZTS12dex_map_item", !83, i64 0, !83, i64 2, !33, i64 4, !33, i64 8}
!83 = !{!"short", !7, i64 0}
!84 = !{!82, !83, i64 0}
!85 = !{i8 0, i8 2}
!86 = !{}
!87 = !{!82, !33, i64 4}
!88 = !{!10, !33, i64 240}
!89 = !{!10, !33, i64 244}
!90 = !{!10, !33, i64 248}
!91 = !{!10, !33, i64 252}
!92 = !{!10, !33, i64 256}
!93 = !{!10, !33, i64 260}
!94 = !{!10, !33, i64 264}
!95 = !{!10, !33, i64 268}
!96 = !{!10, !33, i64 272}
!97 = !{!10, !33, i64 276}
!98 = !{!10, !33, i64 280}
!99 = !{!10, !33, i64 284}
!100 = !{!10, !33, i64 288}
!101 = !{!10, !33, i64 292}
!102 = !{!10, !33, i64 296}
!103 = !{!10, !33, i64 300}
!104 = !{!10, !33, i64 304}
!105 = !{!10, !33, i64 308}
!106 = !{!10, !33, i64 312}
!107 = !{!10, !33, i64 316}
!108 = distinct !{!108, !59}
!109 = !{!10, !33, i64 320}
!110 = !{!10, !33, i64 324}
!111 = distinct !{!111, !59}
!112 = !{!10, !33, i64 328}
!113 = !{!10, !33, i64 332}
!114 = distinct !{!114, !59}
!115 = !{!10, !33, i64 336}
!116 = !{!10, !33, i64 340}
!117 = distinct !{!117, !59}
!118 = !{!31, !31, i64 0}
!119 = !{!10, !33, i64 344}
!120 = distinct !{!120, !59}
!121 = distinct !{!121, !59}
!122 = distinct !{!122, !59}
!123 = !{!10, !33, i64 348}
!124 = !{!10, !33, i64 352}
!125 = !{!126, !33, i64 12}
!126 = !{!"_ZTS13dex_code_item", !83, i64 0, !83, i64 2, !83, i64 4, !83, i64 6, !33, i64 8, !33, i64 12}
!127 = !{!126, !83, i64 6}
!128 = distinct !{!128, !59}
!129 = distinct !{!129, !59}
!130 = distinct !{!130, !59}
!131 = !{!10, !33, i64 356}
!132 = !{!10, !33, i64 360}
!133 = !{!7, !7, i64 0}
!134 = distinct !{!134, !59}
!135 = distinct !{!135, !59}
!136 = !{!10, !33, i64 364}
!137 = !{!10, !33, i64 228}
!138 = distinct !{!138, !59}
!139 = distinct !{!139, !59}
!140 = distinct !{!140, !59}
!141 = !{!10, !33, i64 232}
!142 = !{!10, !33, i64 392}
!143 = distinct !{!143, !59}
!144 = !{!10, !33, i64 396}
!145 = distinct !{!145, !59}


; Optimized IR (opt -passes='default<O3>'):
target datalayout = "e-m:e-p270:32:32-p271:32:32-p272:64:64-i64:64-i128:128-f80:128-n8:16:32:64-S128"
target triple = "x86_64-unknown-linux-gnu"

%class.UnorderedSet = type { %"class.std::unordered_set" }
%"class.std::unordered_set" = type { %"class.std::_Hashtable" }
%"class.std::_Hashtable" = type { ptr, i64, %"struct.std::__detail::_Hash_node_base", i64, %"struct.std::__detail::_Prime_rehash_policy", ptr }
%"struct.std::__detail::_Hash_node_base" = type { ptr }
%"struct.std::__detail::_Prime_rehash_policy" = type { float, i64 }
%"class.std::set" = type { %"class.std::_Rb_tree" }
%"class.std::_Rb_tree" = type { %"struct.std::_Rb_tree<DexTypeList *, DexTypeList *, std::_Identity<DexTypeList *>, dextypelists_comparator>::_Rb_tree_impl" }
%"struct.std::_Rb_tree<DexTypeList *, DexTypeList *, std::_Identity<DexTypeList *>, dextypelists_comparator>::_Rb_tree_impl" = type { [8 x i8], %"struct.std::_Rb_tree_header" }
%"struct.std::_Rb_tree_header" = type { %"struct.std::_Rb_tree_node_base", i64 }
%"struct.std::_Rb_tree_node_base" = type { i32, ptr, ptr, ptr }
%class.UnorderedSet.23 = type { %"class.std::unordered_set.25" }
%"class.std::unordered_set.25" = type { %"class.std::_Hashtable.26" }
%"class.std::_Hashtable.26" = type { ptr, i64, %"struct.std::__detail::_Hash_node_base", i64, %"struct.std::__detail::_Prime_rehash_policy", ptr }
%"class.std::unique_ptr.102" = type { %"struct.std::__uniq_ptr_data.103" }
%"struct.std::__uniq_ptr_data.103" = type { %"class.std::__uniq_ptr_impl.104" }
%"class.std::__uniq_ptr_impl.104" = type { %"class.std::tuple.105" }
%"class.std::tuple.105" = type { %"struct.std::_Tuple_impl.106" }
%"struct.std::_Tuple_impl.106" = type { %"struct.std::_Head_base.109" }
%"struct.std::_Head_base.109" = type { ptr }
%class.anon = type { ptr }
%"class.std::basic_string_view" = type { i64, ptr }
%class.anon.115 = type { ptr }
%"struct.(anonymous namespace)::AssertHelper" = type { %"class.std::optional", %"class.std::optional.118" }
%"class.std::optional" = type { %"struct.std::_Optional_base" }
%"struct.std::_Optional_base" = type { %"struct.std::_Optional_payload" }
%"struct.std::_Optional_payload" = type { %"struct.std::_Optional_payload.base", [7 x i8] }
%"struct.std::_Optional_payload.base" = type { %"struct.std::_Optional_payload_base.base" }
%"struct.std::_Optional_payload_base.base" = type <{ %"union.std::_Optional_payload_base<std::__cxx11::basic_string<char>>::_Storage", i8 }>
%"union.std::_Optional_payload_base<std::__cxx11::basic_string<char>>::_Storage" = type { %"class.std::__cxx11::basic_string" }
%"class.std::__cxx11::basic_string" = type { %"struct.std::__cxx11::basic_string<char>::_Alloc_hider", i64, %union.anon }
%"struct.std::__cxx11::basic_string<char>::_Alloc_hider" = type { ptr }
%union.anon = type { i64, [8 x i8] }
%"class.std::optional.118" = type { %"struct.std::_Optional_base.119" }
%"struct.std::_Optional_base.119" = type { %"struct.std::_Optional_payload.121" }
%"struct.std::_Optional_payload.121" = type { %"struct.std::_Optional_payload.base.130", [7 x i8] }
%"struct.std::_Optional_payload.base.130" = type { %"struct.std::_Optional_payload_base.base.129" }
%"struct.std::_Optional_payload_base.base.129" = type <{ %"union.std::_Optional_payload_base<std::map<std::__cxx11::basic_string<char>, std::__cxx11::basic_string<char>>>::_Storage", i8 }>
%"union.std::_Optional_payload_base<std::map<std::__cxx11::basic_string<char>, std::__cxx11::basic_string<char>>>::_Storage" = type { %"class.std::map" }
%"class.std::map" = type { %"class.std::_Rb_tree.124" }
%"class.std::_Rb_tree.124" = type { %"struct.std::_Rb_tree<std::__cxx11::basic_string<char>, std::pair<const std::__cxx11::basic_string<char>, std::__cxx11::basic_string<char>>, std::_Select1st<std::pair<const std::__cxx11::basic_string<char>, std::__cxx11::basic_string<char>>>, std::less<std::__cxx11::basic_string<char>>>::_Rb_tree_impl" }
%"struct.std::_Rb_tree<std::__cxx11::basic_string<char>, std::pair<const std::__cxx11::basic_string<char>, std::__cxx11::basic_string<char>>, std::_Select1st<std::pair<const std::__cxx11::basic_string<char>, std::__cxx11::basic_string<char>>>, std::less<std::__cxx11::basic_string<char>>>::_Rb_tree_impl" = type { [8 x i8], %"struct.std::_Rb_tree_header" }
%"class.std::allocator" = type { i8 }
%struct.dex_class_def = type { i32, i32, i32, i32, i32, i32, i32, i32 }
%struct.dex_map_item = type { i16, i16, i32, i32 }

@.str.9 = external hidden unnamed_addr constant [71 x i8], align 1
@__PRETTY_FUNCTION__._ZN9DexLoader18gather_input_statsEv = external hidden unnamed_addr constant [37 x i8], align 1
@.str.10 = external hidden unnamed_addr constant [13 x i8], align 1
@.str.11 = external hidden unnamed_addr constant [46 x i8], align 1
@.str.12 = external hidden unnamed_addr constant [28 x i8], align 1
@.str.13 = external hidden unnamed_addr constant [45 x i8], align 1
@.str.14 = external hidden unnamed_addr constant [50 x i8], align 1
@.str.15 = external hidden unnamed_addr constant [2 x i8], align 1
@.str.16 = external hidden unnamed_addr constant [2 x i8], align 1
@.str.17 = external hidden unnamed_addr constant [63 x i8], align 1
@.str.18 = external hidden unnamed_addr constant [5 x i8], align 1
@stderr = external local_unnamed_addr global ptr, align 8
@.str.19 = external hidden unnamed_addr constant [67 x i8], align 1

declare i32 @__gxx_personality_v0(...)

; Function Attrs: mustprogress nocallback nofree nosync nounwind willreturn memory(argmem: readwrite)
declare void @llvm.lifetime.start.p0(i64 immarg, ptr nocapture) #0

; Function Attrs: mustprogress nounwind uwtable
declare void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1)) unnamed_addr #1 align 2

; Function Attrs: mustprogress uwtable
declare dso_local void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32), ptr noundef, ptr noundef nonnull align 1 dereferenceable(1)) unnamed_addr #2 align 2

; Function Attrs: mustprogress nounwind uwtable
declare void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32)) unnamed_addr #1 align 2

; Function Attrs: mustprogress nounwind uwtable
declare dso_local void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1)) unnamed_addr #1 align 2

; Function Attrs: mustprogress nocallback nofree nosync nounwind willreturn memory(argmem: readwrite)
declare void @llvm.lifetime.end.p0(i64 immarg, ptr nocapture) #0

; Function Attrs: noinline noreturn nounwind uwtable
declare hidden void @__clang_call_terminate(ptr noundef) local_unnamed_addr #3

; Function Attrs: mustprogress uwtable
define dso_local void @_ZN9DexLoader18gather_input_statsEv(ptr noundef nonnull align 8 dereferenceable(408) %0) local_unnamed_addr #2 align 2 personality ptr @__gxx_personality_v0 {
  %2 = alloca %class.UnorderedSet, align 8
  %3 = alloca %"class.std::set", align 8
  %4 = alloca %class.UnorderedSet.23, align 8
  %5 = alloca i32, align 4
  %6 = alloca ptr, align 8
  %7 = alloca %"class.std::unique_ptr.102", align 8
  %8 = alloca %class.anon, align 8
  %9 = alloca ptr, align 8
  %10 = alloca %"class.std::basic_string_view", align 8
  %11 = alloca %class.anon.115, align 8
  %12 = alloca %"struct.(anonymous namespace)::AssertHelper", align 8
  %13 = alloca %"class.std::__cxx11::basic_string", align 8
  %14 = alloca %"class.std::allocator", align 1
  %15 = alloca %"class.std::__cxx11::basic_string", align 8
  %16 = alloca %"class.std::allocator", align 1
  %17 = alloca %"class.std::__cxx11::basic_string", align 8
  %18 = alloca %"class.std::allocator", align 1
  %19 = alloca %"struct.(anonymous namespace)::AssertHelper", align 8
  %20 = alloca %"class.std::__cxx11::basic_string", align 8
  %21 = alloca %"class.std::allocator", align 1
  %22 = alloca %"class.std::__cxx11::basic_string", align 8
  %23 = alloca %"class.std::allocator", align 1
  %24 = load ptr, ptr %0, align 8, !tbaa !5
  %25 = getelementptr inbounds i8, ptr %24, i64 64
  %26 = load i32, ptr %25, align 1, !tbaa !34
  %27 = getelementptr inbounds i8, ptr %0, i64 124
  %28 = load i32, ptr %27, align 4, !tbaa !36
  %29 = add i32 %28, %26
  store i32 %29, ptr %27, align 4, !tbaa !36
  %30 = getelementptr inbounds i8, ptr %24, i64 96
  %31 = load i32, ptr %30, align 1, !tbaa !37
  %32 = getelementptr inbounds i8, ptr %0, i64 128
  %33 = load i32, ptr %32, align 8, !tbaa !38
  %34 = add i32 %33, %31
  store i32 %34, ptr %32, align 8, !tbaa !38
  %35 = getelementptr inbounds i8, ptr %24, i64 88
  %36 = load i32, ptr %35, align 1, !tbaa !39
  %37 = getelementptr inbounds i8, ptr %0, i64 136
  %38 = load i32, ptr %37, align 8, !tbaa !40
  %39 = add i32 %38, %36
  store i32 %39, ptr %37, align 8, !tbaa !40
  %40 = getelementptr inbounds i8, ptr %24, i64 80
  %41 = load i32, ptr %40, align 1, !tbaa !41
  %42 = getelementptr inbounds i8, ptr %0, i64 144
  %43 = load i32, ptr %42, align 8, !tbaa !42
  %44 = add i32 %43, %41
  store i32 %44, ptr %42, align 8, !tbaa !42
  %45 = getelementptr inbounds i8, ptr %24, i64 56
  %46 = load i32, ptr %45, align 1, !tbaa !43
  %47 = getelementptr inbounds i8, ptr %0, i64 148
  %48 = load i32, ptr %47, align 4, !tbaa !44
  %49 = add i32 %48, %46
  store i32 %49, ptr %47, align 4, !tbaa !44
  %50 = getelementptr inbounds i8, ptr %24, i64 72
  %51 = load i32, ptr %50, align 1, !tbaa !45
  %52 = getelementptr inbounds i8, ptr %0, i64 152
  %53 = load i32, ptr %52, align 8, !tbaa !46
  %54 = add i32 %53, %51
  store i32 %54, ptr %52, align 8, !tbaa !46
  %55 = getelementptr inbounds i8, ptr %24, i64 32
  %56 = load i32, ptr %55, align 1, !tbaa !47
  %57 = getelementptr inbounds i8, ptr %0, i64 168
  %58 = load i32, ptr %57, align 8, !tbaa !48
  %59 = add i32 %58, %56
  store i32 %59, ptr %57, align 8, !tbaa !48
  call void @llvm.lifetime.start.p0(i64 56, ptr nonnull %2) #10
  call void @_ZN12UnorderedSetI20DexEncodedValueArrayN5boost4hashIS0_EESt8equal_toIS0_EEC2Ev(ptr noundef nonnull align 8 dereferenceable(56) %2)
  call void @llvm.lifetime.start.p0(i64 48, ptr nonnull %3) #10
  call void @_ZNSt3setIP11DexTypeList23dextypelists_comparatorSaIS1_EEC2Ev(ptr noundef nonnull align 8 dereferenceable(48) %3) #10
  call void @llvm.lifetime.start.p0(i64 56, ptr nonnull %4) #10
  call void @_ZN12UnorderedSetIjSt4hashIjESt8equal_toIjEEC2Ev(ptr noundef nonnull align 8 dereferenceable(56) %4)
  %60 = load ptr, ptr %0, align 8, !tbaa !5
  %61 = getelementptr inbounds i8, ptr %60, i64 96
  %62 = load i32, ptr %61, align 1, !tbaa !37
  %.not436 = icmp eq i32 %62, 0
  br i1 %.not436, label %.preheader346, label %.lr.ph379

.lr.ph379:                                        ; preds = %1
  %63 = getelementptr inbounds i8, ptr %0, i64 24
  %64 = getelementptr inbounds i8, ptr %0, i64 16
  %65 = getelementptr inbounds i8, ptr %0, i64 8
  %66 = getelementptr inbounds i8, ptr %0, i64 156
  %67 = getelementptr inbounds i8, ptr %0, i64 140
  %68 = getelementptr inbounds i8, ptr %0, i64 132
  br label %73

.preheader346:                                    ; preds = %211, %1
  %69 = phi ptr [ %60, %1 ], [ %212, %211 ]
  %70 = getelementptr inbounds i8, ptr %69, i64 88
  %71 = load i32, ptr %70, align 1, !tbaa !39
  %.not441 = icmp eq i32 %71, 0
  br i1 %.not441, label %._crit_edge, label %.lr.ph381

.lr.ph381:                                        ; preds = %.preheader346
  %72 = getelementptr inbounds i8, ptr %0, i64 8
  br label %237

73:                                               ; preds = %.lr.ph379, %211
  %indvars.iv467 = phi i64 [ 0, %.lr.ph379 ], [ %indvars.iv.next468, %211 ]
  %74 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZNSt6vectorIP8DexClassSaIS1_EE2atEm(ptr noundef nonnull align 8 dereferenceable(24) %63, i64 noundef %indvars.iv467)
          to label %75 unwind label %78

75:                                               ; preds = %73
  %76 = load ptr, ptr %74, align 8, !tbaa !49
  %77 = icmp eq ptr %76, null
  br i1 %77, label %211, label %80

78:                                               ; preds = %73
  %79 = landingpad { ptr, i32 }
          cleanup
  br label %734

80:                                               ; preds = %75
  %81 = load ptr, ptr %64, align 8, !tbaa !50
  %82 = getelementptr inbounds %struct.dex_class_def, ptr %81, i64 %indvars.iv467, i32 5
  %83 = load i32, ptr %82, align 1, !tbaa !51
  %.not302 = icmp eq i32 %83, 0
  br i1 %.not302, label %.loopexit350, label %84

84:                                               ; preds = %80
  %85 = call noundef ptr @_ZNKSt10unique_ptrI6DexIdxSt14default_deleteIS0_EEptEv(ptr noundef nonnull align 8 dereferenceable(8) %65) #10
  %86 = invoke noundef ptr @_ZN6DexIdx8get_dataI30dex_annotations_directory_itemEEPKT_j(ptr noundef nonnull align 8 dereferenceable(288) %85, i32 noundef %83)
          to label %87 unwind label %96

87:                                               ; preds = %84
  %88 = load i32, ptr %86, align 1, !tbaa !53
  %.not303 = icmp eq i32 %88, 0
  br i1 %.not303, label %.loopexit358, label %89

89:                                               ; preds = %87
  %90 = call noundef ptr @_ZNKSt10unique_ptrI6DexIdxSt14default_deleteIS0_EEptEv(ptr noundef nonnull align 8 dereferenceable(8) %65) #10
  %91 = invoke noundef ptr @_ZN6DexIdx13get_uint_dataEj(ptr noundef nonnull align 8 dereferenceable(288) %90, i32 noundef %88)
          to label %92 unwind label %98

92:                                               ; preds = %89
  %.ptr = getelementptr inbounds i8, ptr %91, i64 4
  %93 = load i32, ptr %91, align 4, !tbaa !55
  %94 = call noundef ptr @_ZNKSt10unique_ptrI6DexIdxSt14default_deleteIS0_EEptEv(ptr noundef nonnull align 8 dereferenceable(8) %65) #10
  %95 = invoke noundef ptr @_ZNK6DexIdx3endEv(ptr noundef nonnull align 8 dereferenceable(288) %94)
          to label %100 unwind label %.loopexit359

96:                                               ; preds = %84
  %97 = landingpad { ptr, i32 }
          cleanup
  br label %734

98:                                               ; preds = %89
  %99 = landingpad { ptr, i32 }
          cleanup
  br label %734

.loopexit359:                                     ; preds = %92
  %lpad.loopexit361 = landingpad { ptr, i32 }
          cleanup
  br label %734

.loopexit.split-lp360:                            ; preds = %103
  %lpad.loopexit.split-lp362 = landingpad { ptr, i32 }
          cleanup
  br label %734

100:                                              ; preds = %92
  %101 = zext i32 %93 to i64
  %.idx = shl nuw nsw i64 %101, 2
  %102 = getelementptr inbounds i8, ptr %91, i64 %.idx
  %.ptr305 = getelementptr inbounds i8, ptr %102, i64 4
  %.not306 = icmp ugt ptr %.ptr305, %95
  br i1 %.not306, label %103, label %.preheader357

.preheader357:                                    ; preds = %100
  %.not437 = icmp eq i32 %93, 0
  br i1 %.not437, label %.loopexit358, label %.lr.ph

103:                                              ; preds = %100
  invoke void (ptr, ptr, i32, ptr, i32, ptr, ...) @_Z11assert_failPKcS0_jS0_10RedexErrorS0_z(ptr noundef nonnull @.str.11, ptr noundef nonnull @.str.9, i32 noundef 317, ptr noundef nonnull @__PRETTY_FUNCTION__._ZN9DexLoader18gather_input_statsEv, i32 noundef 12, ptr noundef nonnull @.str.10) #11
          to label %104 unwind label %.loopexit.split-lp360

104:                                              ; preds = %103
  unreachable

.lr.ph:                                           ; preds = %.preheader357, %107
  %indvars.iv = phi i64 [ %indvars.iv.next, %107 ], [ 0, %.preheader357 ]
  %105 = getelementptr inbounds i32, ptr %.ptr, i64 %indvars.iv
  %106 = invoke { ptr, i8 } @_ZN12UnorderedSetIjSt4hashIjESt8equal_toIjEE6insertERKj(ptr noundef nonnull align 8 dereferenceable(56) %4, ptr noundef nonnull align 4 dereferenceable(4) %105)
          to label %107 unwind label %108

107:                                              ; preds = %.lr.ph
  %indvars.iv.next = add nuw nsw i64 %indvars.iv, 1
  %exitcond.not = icmp eq i64 %indvars.iv.next, %101
  br i1 %exitcond.not, label %.loopexit358, label %.lr.ph, !llvm.loop !56

108:                                              ; preds = %.lr.ph
  %109 = landingpad { ptr, i32 }
          cleanup
  br label %734

.loopexit358:                                     ; preds = %107, %.preheader357, %87
  %110 = getelementptr inbounds i8, ptr %86, i64 16
  %111 = getelementptr inbounds i8, ptr %86, i64 4
  %112 = load i32, ptr %111, align 1, !tbaa !58
  %.not438 = icmp eq i32 %112, 0
  br i1 %.not438, label %.preheader356, label %.lr.ph369

.preheader356:                                    ; preds = %117, %.loopexit358
  %.0237.lcssa = phi ptr [ %110, %.loopexit358 ], [ %118, %117 ]
  %113 = getelementptr inbounds i8, ptr %86, i64 8
  %114 = load i32, ptr %113, align 1, !tbaa !59
  %.not439 = icmp eq i32 %114, 0
  br i1 %.not439, label %.preheader349, label %.lr.ph372

.lr.ph369:                                        ; preds = %.loopexit358, %117
  %.0237368 = phi ptr [ %118, %117 ], [ %110, %.loopexit358 ]
  %.0240367 = phi i32 [ %119, %117 ], [ 0, %.loopexit358 ]
  %115 = getelementptr inbounds i8, ptr %.0237368, i64 4
  %116 = invoke { ptr, i8 } @_ZN12UnorderedSetIjSt4hashIjESt8equal_toIjEE6insertERKj(ptr noundef nonnull align 8 dereferenceable(56) %4, ptr noundef nonnull align 4 dereferenceable(4) %115)
          to label %117 unwind label %122

117:                                              ; preds = %.lr.ph369
  %118 = getelementptr inbounds i8, ptr %.0237368, i64 8
  %119 = add nuw i32 %.0240367, 1
  %120 = load i32, ptr %111, align 1, !tbaa !58
  %121 = icmp ult i32 %119, %120
  br i1 %121, label %.lr.ph369, label %.preheader356, !llvm.loop !60

122:                                              ; preds = %.lr.ph369
  %123 = landingpad { ptr, i32 }
          cleanup
  br label %734

.preheader349:                                    ; preds = %128, %.preheader356
  %.1238.lcssa = phi ptr [ %.0237.lcssa, %.preheader356 ], [ %129, %128 ]
  %124 = getelementptr inbounds i8, ptr %86, i64 12
  %125 = load i32, ptr %124, align 1, !tbaa !61
  %.not440 = icmp eq i32 %125, 0
  br i1 %.not440, label %.loopexit350, label %.lr.ph377

.lr.ph372:                                        ; preds = %.preheader356, %128
  %.1238371 = phi ptr [ %129, %128 ], [ %.0237.lcssa, %.preheader356 ]
  %.0242370 = phi i32 [ %130, %128 ], [ 0, %.preheader356 ]
  %126 = getelementptr inbounds i8, ptr %.1238371, i64 4
  %127 = invoke { ptr, i8 } @_ZN12UnorderedSetIjSt4hashIjESt8equal_toIjEE6insertERKj(ptr noundef nonnull align 8 dereferenceable(56) %4, ptr noundef nonnull align 4 dereferenceable(4) %126)
          to label %128 unwind label %133

128:                                              ; preds = %.lr.ph372
  %129 = getelementptr inbounds i8, ptr %.1238371, i64 8
  %130 = add nuw i32 %.0242370, 1
  %131 = load i32, ptr %113, align 1, !tbaa !59
  %132 = icmp ult i32 %130, %131
  br i1 %132, label %.lr.ph372, label %.preheader349, !llvm.loop !62

133:                                              ; preds = %.lr.ph372
  %134 = landingpad { ptr, i32 }
          cleanup
  br label %734

.lr.ph377:                                        ; preds = %.preheader349, %.loopexit348
  %135 = phi i32 [ %160, %.loopexit348 ], [ %125, %.preheader349 ]
  %.2239376 = phi ptr [ %137, %.loopexit348 ], [ %.1238.lcssa, %.preheader349 ]
  %.0243375 = phi i32 [ %161, %.loopexit348 ], [ 0, %.preheader349 ]
  %136 = getelementptr inbounds i8, ptr %.2239376, i64 4
  %137 = getelementptr inbounds i8, ptr %.2239376, i64 8
  %138 = load i32, ptr %136, align 4, !tbaa !55
  %.not312 = icmp eq i32 %138, 0
  br i1 %.not312, label %.loopexit348, label %139

139:                                              ; preds = %.lr.ph377
  %140 = call noundef ptr @_ZNKSt10unique_ptrI6DexIdxSt14default_deleteIS0_EEptEv(ptr noundef nonnull align 8 dereferenceable(8) %65) #10
  %141 = invoke noundef ptr @_ZN6DexIdx13get_uint_dataEj(ptr noundef nonnull align 8 dereferenceable(288) %140, i32 noundef %138)
          to label %142 unwind label %148

142:                                              ; preds = %139
  %.ptr314 = getelementptr inbounds i8, ptr %141, i64 4
  %143 = load i32, ptr %141, align 4, !tbaa !55
  %144 = zext i32 %143 to i64
  %.idx313 = shl nuw nsw i64 %144, 2
  %145 = getelementptr inbounds i8, ptr %141, i64 %.idx313
  %.ptr315 = getelementptr inbounds i8, ptr %145, i64 4
  %.not316 = icmp eq i32 %143, 0
  br i1 %.not316, label %.invoke, label %150

.invoke:                                          ; preds = %142, %153
  %146 = phi ptr [ @.str.13, %153 ], [ @.str.12, %142 ]
  %147 = phi i32 [ 340, %153 ], [ 338, %142 ]
  invoke void (ptr, ptr, i32, ptr, i32, ptr, ...) @_Z11assert_failPKcS0_jS0_10RedexErrorS0_z(ptr noundef nonnull %146, ptr noundef nonnull @.str.9, i32 noundef %147, ptr noundef nonnull @__PRETTY_FUNCTION__._ZN9DexLoader18gather_input_statsEv, i32 noundef 12, ptr noundef nonnull @.str.10) #11
          to label %.cont unwind label %.loopexit.split-lp352

.cont:                                            ; preds = %.invoke
  unreachable

148:                                              ; preds = %139
  %149 = landingpad { ptr, i32 }
          cleanup
  br label %734

.loopexit351:                                     ; preds = %150
  %lpad.loopexit353 = landingpad { ptr, i32 }
          cleanup
  br label %734

.loopexit.split-lp352:                            ; preds = %.invoke
  %lpad.loopexit.split-lp354 = landingpad { ptr, i32 }
          cleanup
  br label %734

150:                                              ; preds = %142
  %151 = call noundef ptr @_ZNKSt10unique_ptrI6DexIdxSt14default_deleteIS0_EEptEv(ptr noundef nonnull align 8 dereferenceable(8) %65) #10
  %152 = invoke noundef ptr @_ZNK6DexIdx3endEv(ptr noundef nonnull align 8 dereferenceable(288) %151)
          to label %153 unwind label %.loopexit351

153:                                              ; preds = %150
  %.not317 = icmp ugt ptr %.ptr315, %152
  br i1 %.not317, label %.invoke, label %.preheader347

.preheader347:                                    ; preds = %153, %157
  %indvars.iv462 = phi i64 [ %indvars.iv.next463, %157 ], [ 0, %153 ]
  call void @llvm.lifetime.start.p0(i64 4, ptr nonnull %5) #10
  %154 = getelementptr inbounds i32, ptr %.ptr314, i64 %indvars.iv462
  %155 = load i32, ptr %154, align 4, !tbaa !55
  store i32 %155, ptr %5, align 4, !tbaa !55
  %156 = invoke { ptr, i8 } @_ZN12UnorderedSetIjSt4hashIjESt8equal_toIjEE6insertERKj(ptr noundef nonnull align 8 dereferenceable(56) %4, ptr noundef nonnull align 4 dereferenceable(4) %5)
          to label %157 unwind label %158

157:                                              ; preds = %.preheader347
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %5) #10
  %indvars.iv.next463 = add nuw nsw i64 %indvars.iv462, 1
  %exitcond466.not = icmp eq i64 %indvars.iv.next463, %144
  br i1 %exitcond466.not, label %.loopexit348.loopexit, label %.preheader347, !llvm.loop !63

158:                                              ; preds = %.preheader347
  %159 = landingpad { ptr, i32 }
          cleanup
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %5) #10
  br label %734

.loopexit348.loopexit:                            ; preds = %157
  %.pre = load i32, ptr %124, align 1, !tbaa !61
  br label %.loopexit348

.loopexit348:                                     ; preds = %.loopexit348.loopexit, %.lr.ph377
  %160 = phi i32 [ %.pre, %.loopexit348.loopexit ], [ %135, %.lr.ph377 ]
  %161 = add nuw i32 %.0243375, 1
  %162 = icmp ult i32 %161, %160
  br i1 %162, label %.lr.ph377, label %.loopexit350, !llvm.loop !64

.loopexit350:                                     ; preds = %.loopexit348, %.preheader349, %80
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %6) #10
  %163 = call noundef ptr @_ZNK8DexClass14get_interfacesEv(ptr noundef nonnull align 8 dereferenceable(176) %76)
  store ptr %163, ptr %6, align 8, !tbaa !49
  %164 = invoke { ptr, i8 } @_ZNSt3setIP11DexTypeList23dextypelists_comparatorSaIS1_EE6insertERKS1_(ptr noundef nonnull align 8 dereferenceable(48) %3, ptr noundef nonnull align 8 dereferenceable(8) %6)
          to label %165 unwind label %178

165:                                              ; preds = %.loopexit350
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %7) #10
  invoke void @_ZN8DexClass17get_static_valuesEv(ptr dead_on_unwind nonnull writable sret(%"class.std::unique_ptr.102") align 8 %7, ptr noundef nonnull align 8 dereferenceable(176) %76)
          to label %166 unwind label %180

166:                                              ; preds = %165
  %167 = call noundef zeroext i1 @_ZNKSt10unique_ptrI20DexEncodedValueArraySt14default_deleteIS0_EEcvbEv(ptr noundef nonnull align 8 dereferenceable(8) %7) #10
  br i1 %167, label %168, label %184

168:                                              ; preds = %166
  %169 = call noundef nonnull align 8 dereferenceable(18) ptr @_ZNKSt10unique_ptrI20DexEncodedValueArraySt14default_deleteIS0_EEdeEv(ptr noundef nonnull align 8 dereferenceable(8) %7) #10
  %170 = invoke noundef i64 @_ZNK12UnorderedSetI20DexEncodedValueArrayN5boost4hashIS0_EESt8equal_toIS0_EE5countERKS0_(ptr noundef nonnull align 8 dereferenceable(56) %2, ptr noundef nonnull align 8 dereferenceable(18) %169)
          to label %171 unwind label %182

171:                                              ; preds = %168
  %.not307 = icmp eq i64 %170, 0
  br i1 %.not307, label %172, label %184

172:                                              ; preds = %171
  %173 = call noundef nonnull align 8 dereferenceable(18) ptr @_ZNKSt10unique_ptrI20DexEncodedValueArraySt14default_deleteIS0_EEdeEv(ptr noundef nonnull align 8 dereferenceable(8) %7) #10
  %174 = invoke { ptr, i8 } @_ZN12UnorderedSetI20DexEncodedValueArrayN5boost4hashIS0_EESt8equal_toIS0_EE7emplaceIJS0_EEESt4pairINS6_13FixedIteratorEbEDpOT_(ptr noundef nonnull align 8 dereferenceable(56) %2, ptr noundef nonnull align 8 dereferenceable(18) %173)
          to label %175 unwind label %182

175:                                              ; preds = %172
  %176 = load i32, ptr %66, align 4, !tbaa !65
  %177 = add nsw i32 %176, 1
  store i32 %177, ptr %66, align 4, !tbaa !65
  br label %184

178:                                              ; preds = %.loopexit350
  %179 = landingpad { ptr, i32 }
          cleanup
  br label %221

180:                                              ; preds = %165
  %181 = landingpad { ptr, i32 }
          cleanup
  br label %220

182:                                              ; preds = %196, %189, %186, %184, %172, %168
  %183 = landingpad { ptr, i32 }
          cleanup
  br label %219

184:                                              ; preds = %171, %175, %166
  %185 = invoke noundef nonnull align 8 dereferenceable(24) ptr @_ZN8DexClass11get_ifieldsEv(ptr noundef nonnull align 8 dereferenceable(176) %76)
          to label %186 unwind label %182

186:                                              ; preds = %184
  %187 = call noundef i64 @_ZNKSt6vectorIP8DexFieldSaIS1_EE4sizeEv(ptr noundef nonnull align 8 dereferenceable(24) %185) #10
  %188 = invoke noundef nonnull align 8 dereferenceable(24) ptr @_ZN8DexClass11get_sfieldsEv(ptr noundef nonnull align 8 dereferenceable(176) %76)
          to label %189 unwind label %182

189:                                              ; preds = %186
  %190 = call noundef i64 @_ZNKSt6vectorIP8DexFieldSaIS1_EE4sizeEv(ptr noundef nonnull align 8 dereferenceable(24) %188) #10
  %191 = add i64 %190, %187
  %192 = load i32, ptr %67, align 4, !tbaa !66
  %193 = trunc i64 %191 to i32
  %194 = add i32 %192, %193
  store i32 %194, ptr %67, align 4, !tbaa !66
  %195 = invoke noundef nonnull align 8 dereferenceable(24) ptr @_ZN8DexClass12get_vmethodsEv(ptr noundef nonnull align 8 dereferenceable(176) %76)
          to label %196 unwind label %182

196:                                              ; preds = %189
  %197 = call noundef i64 @_ZNKSt6vectorIP9DexMethodSaIS1_EE4sizeEv(ptr noundef nonnull align 8 dereferenceable(24) %195) #10
  %198 = invoke noundef nonnull align 8 dereferenceable(24) ptr @_ZN8DexClass12get_dmethodsEv(ptr noundef nonnull align 8 dereferenceable(176) %76)
          to label %199 unwind label %182

199:                                              ; preds = %196
  %200 = call noundef i64 @_ZNKSt6vectorIP9DexMethodSaIS1_EE4sizeEv(ptr noundef nonnull align 8 dereferenceable(24) %198) #10
  %201 = add i64 %200, %197
  %202 = load i32, ptr %68, align 4, !tbaa !67
  %203 = trunc i64 %201 to i32
  %204 = add i32 %202, %203
  store i32 %204, ptr %68, align 4, !tbaa !67
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %8) #10
  store ptr %0, ptr %8, align 8, !tbaa !68
  %205 = invoke noundef nonnull align 8 dereferenceable(24) ptr @_ZN8DexClass12get_vmethodsEv(ptr noundef nonnull align 8 dereferenceable(176) %76)
          to label %206 unwind label %217

206:                                              ; preds = %199
  invoke void @"_ZZN9DexLoader18gather_input_statsEvENK3$_0clISt6vectorIP9DexMethodSaIS4_EEEEDaRKT_"(ptr noundef nonnull align 8 dereferenceable(8) %8, ptr noundef nonnull align 8 dereferenceable(24) %205)
          to label %207 unwind label %217

207:                                              ; preds = %206
  %208 = invoke noundef nonnull align 8 dereferenceable(24) ptr @_ZN8DexClass12get_dmethodsEv(ptr noundef nonnull align 8 dereferenceable(176) %76)
          to label %209 unwind label %217

209:                                              ; preds = %207
  invoke void @"_ZZN9DexLoader18gather_input_statsEvENK3$_0clISt6vectorIP9DexMethodSaIS4_EEEEDaRKT_"(ptr noundef nonnull align 8 dereferenceable(8) %8, ptr noundef nonnull align 8 dereferenceable(24) %208)
          to label %210 unwind label %217

210:                                              ; preds = %209
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %8) #10
  call void @_ZNSt10unique_ptrI20DexEncodedValueArraySt14default_deleteIS0_EED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %7) #10
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %7) #10
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %6) #10
  br label %211

211:                                              ; preds = %75, %210
  %indvars.iv.next468 = add nuw nsw i64 %indvars.iv467, 1
  %212 = load ptr, ptr %0, align 8, !tbaa !5
  %213 = getelementptr inbounds i8, ptr %212, i64 96
  %214 = load i32, ptr %213, align 1, !tbaa !37
  %215 = zext i32 %214 to i64
  %216 = icmp ult i64 %indvars.iv.next468, %215
  br i1 %216, label %73, label %.preheader346, !llvm.loop !70

217:                                              ; preds = %209, %207, %206, %199
  %218 = landingpad { ptr, i32 }
          cleanup
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %8) #10
  br label %219

219:                                              ; preds = %217, %182
  %.pn308 = phi { ptr, i32 } [ %218, %217 ], [ %183, %182 ]
  call void @_ZNSt10unique_ptrI20DexEncodedValueArraySt14default_deleteIS0_EED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %7) #10
  br label %220

220:                                              ; preds = %219, %180
  %.pn308.pn = phi { ptr, i32 } [ %.pn308, %219 ], [ %181, %180 ]
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %7) #10
  br label %221

221:                                              ; preds = %220, %178
  %.pn308.pn.pn = phi { ptr, i32 } [ %.pn308.pn, %220 ], [ %179, %178 ]
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %6) #10
  br label %734

._crit_edge:                                      ; preds = %244, %.preheader346
  %222 = call noundef i64 @_ZNK12UnorderedSetIjSt4hashIjESt8equal_toIjEE4sizeEv(ptr noundef nonnull align 8 dereferenceable(56) %4)
  %223 = getelementptr inbounds i8, ptr %0, i64 160
  %224 = load i32, ptr %223, align 8, !tbaa !71
  %225 = trunc i64 %222 to i32
  %226 = add i32 %224, %225
  store i32 %226, ptr %223, align 8, !tbaa !71
  %227 = call noundef i64 @_ZNKSt3setIP11DexTypeList23dextypelists_comparatorSaIS1_EE4sizeEv(ptr noundef nonnull align 8 dereferenceable(48) %3) #10
  %228 = getelementptr inbounds i8, ptr %0, i64 164
  %229 = load i32, ptr %228, align 4, !tbaa !72
  %230 = trunc i64 %227 to i32
  %231 = add i32 %229, %230
  store i32 %231, ptr %228, align 4, !tbaa !72
  %232 = load ptr, ptr %0, align 8, !tbaa !5
  %233 = getelementptr inbounds i8, ptr %232, i64 56
  %234 = load i32, ptr %233, align 1, !tbaa !43
  %.not442 = icmp eq i32 %234, 0
  br i1 %.not442, label %._crit_edge385, label %.lr.ph384

.lr.ph384:                                        ; preds = %._crit_edge
  %235 = getelementptr inbounds i8, ptr %0, i64 8
  %236 = getelementptr inbounds i8, ptr %0, i64 208
  br label %300

237:                                              ; preds = %.lr.ph381, %244
  %.0248380 = phi i32 [ 0, %.lr.ph381 ], [ %245, %244 ]
  %238 = call noundef ptr @_ZNKSt10unique_ptrI6DexIdxSt14default_deleteIS0_EEptEv(ptr noundef nonnull align 8 dereferenceable(8) %72) #10
  %239 = invoke noundef ptr @_ZN6DexIdx13get_methodidxEj(ptr noundef nonnull align 8 dereferenceable(288) %238, i32 noundef %.0248380)
          to label %240 unwind label %250

240:                                              ; preds = %237
  %241 = call noundef ptr @_ZNK12DexMethodRef9get_protoEv(ptr noundef nonnull align 8 dereferenceable(26) %239)
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %9) #10
  %242 = call noundef ptr @_ZNK8DexProto8get_argsEv(ptr noundef nonnull align 8 dereferenceable(24) %241)
  store ptr %242, ptr %9, align 8, !tbaa !49
  %243 = invoke { ptr, i8 } @_ZNSt3setIP11DexTypeList23dextypelists_comparatorSaIS1_EE6insertEOS1_(ptr noundef nonnull align 8 dereferenceable(48) %3, ptr noundef nonnull align 8 dereferenceable(8) %9)
          to label %244 unwind label %252

244:                                              ; preds = %240
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %9) #10
  %245 = add nuw i32 %.0248380, 1
  %246 = load ptr, ptr %0, align 8, !tbaa !5
  %247 = getelementptr inbounds i8, ptr %246, i64 88
  %248 = load i32, ptr %247, align 1, !tbaa !39
  %249 = icmp ult i32 %245, %248
  br i1 %249, label %237, label %._crit_edge, !llvm.loop !73

250:                                              ; preds = %237
  %251 = landingpad { ptr, i32 }
          cleanup
  br label %734

252:                                              ; preds = %240
  %253 = landingpad { ptr, i32 }
          cleanup
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %9) #10
  br label %734

._crit_edge385:                                   ; preds = %305, %._crit_edge
  %254 = getelementptr inbounds i8, ptr %0, i64 48
  %255 = call noundef ptr @_ZNKSt10unique_ptrIKhSt8functionIFvPS0_EEE3getEv(ptr noundef nonnull align 8 dereferenceable(40) %254) #10
  %256 = load ptr, ptr %0, align 8, !tbaa !5
  %257 = getelementptr inbounds i8, ptr %256, i64 52
  %258 = load i32, ptr %257, align 1, !tbaa !74
  %259 = zext i32 %258 to i64
  %260 = getelementptr inbounds i8, ptr %255, i64 %259
  %261 = load i32, ptr %260, align 1, !tbaa !55
  %.not443 = icmp eq i32 %261, 0
  br i1 %.not443, label %._crit_edge435, label %.lr.ph434

.lr.ph434:                                        ; preds = %._crit_edge385
  %262 = getelementptr inbounds i8, ptr %260, i64 4
  %263 = getelementptr inbounds i8, ptr %0, i64 8
  %264 = getelementptr inbounds i8, ptr %0, i64 392
  %265 = getelementptr inbounds i8, ptr %0, i64 396
  %266 = getelementptr inbounds i8, ptr %0, i64 228
  %267 = getelementptr inbounds i8, ptr %0, i64 232
  %268 = getelementptr inbounds i8, ptr %0, i64 360
  %269 = getelementptr inbounds i8, ptr %0, i64 364
  %270 = getelementptr inbounds i8, ptr %0, i64 352
  %271 = getelementptr inbounds i8, ptr %0, i64 356
  %272 = getelementptr inbounds i8, ptr %0, i64 344
  %273 = getelementptr inbounds i8, ptr %0, i64 348
  %274 = getelementptr inbounds i8, ptr %0, i64 336
  %275 = getelementptr inbounds i8, ptr %0, i64 340
  %276 = getelementptr inbounds i8, ptr %0, i64 328
  %277 = getelementptr inbounds i8, ptr %0, i64 332
  %278 = getelementptr inbounds i8, ptr %0, i64 320
  %279 = getelementptr inbounds i8, ptr %0, i64 324
  %280 = getelementptr inbounds i8, ptr %0, i64 312
  %281 = getelementptr inbounds i8, ptr %0, i64 316
  %282 = getelementptr inbounds i8, ptr %0, i64 304
  %283 = getelementptr inbounds i8, ptr %0, i64 308
  %284 = getelementptr inbounds i8, ptr %0, i64 296
  %285 = getelementptr inbounds i8, ptr %0, i64 300
  %286 = getelementptr inbounds i8, ptr %0, i64 288
  %287 = getelementptr inbounds i8, ptr %0, i64 292
  %288 = getelementptr inbounds i8, ptr %0, i64 280
  %289 = getelementptr inbounds i8, ptr %0, i64 284
  %290 = getelementptr inbounds i8, ptr %0, i64 272
  %291 = getelementptr inbounds i8, ptr %0, i64 276
  %292 = getelementptr inbounds i8, ptr %0, i64 264
  %293 = getelementptr inbounds i8, ptr %0, i64 268
  %294 = getelementptr inbounds i8, ptr %0, i64 256
  %295 = getelementptr inbounds i8, ptr %0, i64 260
  %296 = getelementptr inbounds i8, ptr %0, i64 248
  %297 = getelementptr inbounds i8, ptr %0, i64 252
  %298 = getelementptr inbounds i8, ptr %0, i64 240
  %299 = getelementptr inbounds i8, ptr %0, i64 244
  br label %315

300:                                              ; preds = %.lr.ph384, %305
  %.0249382 = phi i32 [ 0, %.lr.ph384 ], [ %308, %305 ]
  %301 = call noundef ptr @_ZNKSt10unique_ptrI6DexIdxSt14default_deleteIS0_EEptEv(ptr noundef nonnull align 8 dereferenceable(8) %235) #10
  %302 = invoke noundef ptr @_ZN6DexIdx13get_stringidxEj(ptr noundef nonnull align 8 dereferenceable(288) %301, i32 noundef %.0249382)
          to label %303 unwind label %313

303:                                              ; preds = %300
  %304 = invoke noundef i32 @_ZNK9DexString14get_entry_sizeEv(ptr noundef nonnull align 8 dereferenceable(16) %302)
          to label %305 unwind label %313

305:                                              ; preds = %303
  %306 = load i32, ptr %236, align 8, !tbaa !75
  %307 = add i32 %306, %304
  store i32 %307, ptr %236, align 8, !tbaa !75
  %308 = add nuw i32 %.0249382, 1
  %309 = load ptr, ptr %0, align 8, !tbaa !5
  %310 = getelementptr inbounds i8, ptr %309, i64 56
  %311 = load i32, ptr %310, align 1, !tbaa !43
  %312 = icmp ult i32 %308, %311
  br i1 %312, label %300, label %._crit_edge385, !llvm.loop !76

313:                                              ; preds = %303, %300
  %314 = landingpad { ptr, i32 }
          cleanup
  br label %734

._crit_edge435:                                   ; preds = %.loopexit342, %._crit_edge385
  call void @_ZN12UnorderedSetIjSt4hashIjESt8equal_toIjEED2Ev(ptr noundef nonnull align 8 dereferenceable(56) %4) #10
  call void @llvm.lifetime.end.p0(i64 56, ptr nonnull %4) #10
  call void @_ZNSt3setIP11DexTypeList23dextypelists_comparatorSaIS1_EED2Ev(ptr noundef nonnull align 8 dereferenceable(48) %3) #10
  call void @llvm.lifetime.end.p0(i64 48, ptr nonnull %3) #10
  call void @_ZN12UnorderedSetI20DexEncodedValueArrayN5boost4hashIS0_EESt8equal_toIS0_EED2Ev(ptr noundef nonnull align 8 dereferenceable(56) %2) #10
  call void @llvm.lifetime.end.p0(i64 56, ptr nonnull %2) #10
  ret void

315:                                              ; preds = %.lr.ph434, %.loopexit342
  %indvars.iv474 = phi i64 [ 0, %.lr.ph434 ], [ %indvars.iv.next475, %.loopexit342 ]
  %.0250432 = phi i1 [ false, %.lr.ph434 ], [ %.1251, %.loopexit342 ]
  %.0253431 = phi i32 [ 0, %.lr.ph434 ], [ %.1254, %.loopexit342 ]
  %316 = getelementptr inbounds [0 x %struct.dex_map_item], ptr %262, i64 0, i64 %indvars.iv474
  call void @llvm.lifetime.start.p0(i64 16, ptr nonnull %10) #10
  %317 = call noundef ptr @_ZNKSt10unique_ptrI6DexIdxSt14default_deleteIS0_EEptEv(ptr noundef nonnull align 8 dereferenceable(8) %263) #10
  %318 = getelementptr inbounds i8, ptr %316, i64 8
  %319 = load i32, ptr %318, align 1, !tbaa !77
  %320 = invoke noundef ptr @_ZN6DexIdx13get_uleb_dataEj(ptr noundef nonnull align 8 dereferenceable(288) %317, i32 noundef %319)
          to label %321 unwind label %328

321:                                              ; preds = %315
  %322 = call noundef ptr @_ZNKSt10unique_ptrI6DexIdxSt14default_deleteIS0_EEptEv(ptr noundef nonnull align 8 dereferenceable(8) %263) #10
  %323 = call noundef i32 @_ZNK6DexIdx13get_file_sizeEv(ptr noundef nonnull align 8 dereferenceable(288) %322)
  %324 = load i32, ptr %318, align 1, !tbaa !77
  %325 = sub i32 %323, %324
  %326 = zext i32 %325 to i64
  call void @_ZNSt17basic_string_viewIcSt11char_traitsIcEEC2EPKcm(ptr noundef nonnull align 8 dereferenceable(16) %10, ptr noundef %320, i64 noundef %326) #10
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %11) #10
  store ptr %10, ptr %11, align 8, !tbaa !49
  %327 = load i16, ptr %316, align 1, !tbaa !80
  switch i16 %327, label %724 [
    i16 0, label %330
    i16 1, label %390
    i16 2, label %398
    i16 3, label %406
    i16 4, label %414
    i16 5, label %422
    i16 6, label %430
    i16 7, label %438
    i16 8, label %446
    i16 4096, label %454
    i16 4097, label %474
    i16 4098, label %494
    i16 4099, label %514
    i16 8192, label %534
    i16 8193, label %581
    i16 8194, label %637
    i16 8195, label %656
    i16 8196, label %.loopexit342
    i16 8197, label %.loopexit342
    i16 8198, label %691
    i16 -4096, label %.loopexit342
  ]

328:                                              ; preds = %315
  %329 = landingpad { ptr, i32 }
          cleanup
  br label %733

330:                                              ; preds = %321
  br i1 %.0250432, label %331, label %359

331:                                              ; preds = %330
  call void @llvm.lifetime.start.p0(i64 96, ptr nonnull %12) #10
  call void @_ZN12_GLOBAL__N_112AssertHelperC2Ev(ptr noundef nonnull align 8 dereferenceable(96) %12)
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %13) #10
  call void @llvm.lifetime.start.p0(i64 1, ptr nonnull %14) #10
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %14) #10
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %13, ptr noundef nonnull @.str.14, ptr noundef nonnull align 1 dereferenceable(1) %14)
          to label %332 unwind label %344

332:                                              ; preds = %331
  %333 = call noundef nonnull align 8 dereferenceable(96) ptr @_ZN12_GLOBAL__N_112AssertHelper11set_messageEONSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEE(ptr noundef nonnull align 8 dereferenceable(96) %12, ptr noundef nonnull align 8 dereferenceable(32) %13)
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %15) #10
  call void @llvm.lifetime.start.p0(i64 1, ptr nonnull %16) #10
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %16) #10
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %15, ptr noundef nonnull @.str.15, ptr noundef nonnull align 1 dereferenceable(1) %16)
          to label %334 unwind label %346

334:                                              ; preds = %332
  %335 = invoke noundef nonnull align 8 dereferenceable(96) ptr @_ZN12_GLOBAL__N_112AssertHelper8add_infoIjEERS0_ONSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEET_(ptr noundef nonnull align 8 dereferenceable(96) %333, ptr noundef nonnull align 8 dereferenceable(32) %15, i32 noundef %.0253431)
          to label %336 unwind label %348

336:                                              ; preds = %334
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %17) #10
  call void @llvm.lifetime.start.p0(i64 1, ptr nonnull %18) #10
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %18) #10
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %17, ptr noundef nonnull @.str.16, ptr noundef nonnull align 1 dereferenceable(1) %18)
          to label %337 unwind label %350

337:                                              ; preds = %336
  %338 = trunc nuw i64 %indvars.iv474 to i32
  %339 = invoke noundef nonnull align 8 dereferenceable(96) ptr @_ZN12_GLOBAL__N_112AssertHelper8add_infoIjEERS0_ONSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEET_(ptr noundef nonnull align 8 dereferenceable(96) %335, ptr noundef nonnull align 8 dereferenceable(32) %17, i32 noundef %338)
          to label %340 unwind label %352

340:                                              ; preds = %337
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %17) #10
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %18) #10
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %18) #10
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %17) #10
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %15) #10
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %16) #10
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %16) #10
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %15) #10
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %13) #10
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %14) #10
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %14) #10
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %13) #10
  invoke void @_ZN12_GLOBAL__N_112AssertHelperD2Ev(ptr noundef nonnull align 8 dereferenceable(96) %12)
          to label %341 unwind label %342

341:                                              ; preds = %340
  call void @llvm.lifetime.end.p0(i64 96, ptr nonnull %12) #10
  br label %359

342:                                              ; preds = %340
  %343 = landingpad { ptr, i32 }
          cleanup
  br label %358

344:                                              ; preds = %331
  %345 = landingpad { ptr, i32 }
          cleanup
  br label %357

346:                                              ; preds = %332
  %347 = landingpad { ptr, i32 }
          cleanup
  br label %356

348:                                              ; preds = %334
  %349 = landingpad { ptr, i32 }
          cleanup
  br label %355

350:                                              ; preds = %336
  %351 = landingpad { ptr, i32 }
          cleanup
  br label %354

352:                                              ; preds = %337
  %353 = landingpad { ptr, i32 }
          cleanup
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %17) #10
  br label %354

354:                                              ; preds = %352, %350
  %.pn286 = phi { ptr, i32 } [ %353, %352 ], [ %351, %350 ]
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %18) #10
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %18) #10
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %17) #10
  br label %355

355:                                              ; preds = %354, %348
  %.pn286.pn = phi { ptr, i32 } [ %.pn286, %354 ], [ %349, %348 ]
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %15) #10
  br label %356

356:                                              ; preds = %355, %346
  %.pn286.pn.pn = phi { ptr, i32 } [ %.pn286.pn, %355 ], [ %347, %346 ]
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %16) #10
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %16) #10
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %15) #10
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %13) #10
  br label %357

357:                                              ; preds = %356, %344
  %.pn286.pn.pn.pn = phi { ptr, i32 } [ %.pn286.pn.pn, %356 ], [ %345, %344 ]
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %14) #10
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %14) #10
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %13) #10
  invoke void @_ZN12_GLOBAL__N_112AssertHelperD2Ev(ptr noundef nonnull align 8 dereferenceable(96) %12)
          to label %358 unwind label %735

358:                                              ; preds = %357, %342
  %.pn291 = phi { ptr, i32 } [ %343, %342 ], [ %.pn286.pn.pn.pn, %357 ]
  call void @llvm.lifetime.end.p0(i64 96, ptr nonnull %12) #10
  br label %732

359:                                              ; preds = %341, %330
  %360 = getelementptr inbounds i8, ptr %316, i64 4
  %361 = load i32, ptr %360, align 1, !tbaa !81
  %362 = icmp eq i32 %361, 1
  br i1 %362, label %382, label %363

363:                                              ; preds = %359
  call void @llvm.lifetime.start.p0(i64 96, ptr nonnull %19) #10
  call void @_ZN12_GLOBAL__N_112AssertHelperC2Ev(ptr noundef nonnull align 8 dereferenceable(96) %19)
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %20) #10
  call void @llvm.lifetime.start.p0(i64 1, ptr nonnull %21) #10
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %21) #10
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %20, ptr noundef nonnull @.str.17, ptr noundef nonnull align 1 dereferenceable(1) %21)
          to label %364 unwind label %373

364:                                              ; preds = %363
  %365 = call noundef nonnull align 8 dereferenceable(96) ptr @_ZN12_GLOBAL__N_112AssertHelper11set_messageEONSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEE(ptr noundef nonnull align 8 dereferenceable(96) %19, ptr noundef nonnull align 8 dereferenceable(32) %20)
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %22) #10
  call void @llvm.lifetime.start.p0(i64 1, ptr nonnull %23) #10
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %23) #10
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %22, ptr noundef nonnull @.str.18, ptr noundef nonnull align 1 dereferenceable(1) %23)
          to label %366 unwind label %375

366:                                              ; preds = %364
  %367 = load i32, ptr %360, align 1, !tbaa !81
  %368 = invoke noundef nonnull align 8 dereferenceable(96) ptr @_ZN12_GLOBAL__N_112AssertHelper8add_infoIjEERS0_ONSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEET_(ptr noundef nonnull align 8 dereferenceable(96) %365, ptr noundef nonnull align 8 dereferenceable(32) %22, i32 noundef %367)
          to label %369 unwind label %377

369:                                              ; preds = %366
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %22) #10
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %23) #10
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %23) #10
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %22) #10
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %20) #10
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %21) #10
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %21) #10
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %20) #10
  invoke void @_ZN12_GLOBAL__N_112AssertHelperD2Ev(ptr noundef nonnull align 8 dereferenceable(96) %19)
          to label %370 unwind label %371

370:                                              ; preds = %369
  call void @llvm.lifetime.end.p0(i64 96, ptr nonnull %19) #10
  %.pre478 = load i32, ptr %360, align 1, !tbaa !81
  br label %382

371:                                              ; preds = %369
  %372 = landingpad { ptr, i32 }
          cleanup
  br label %381

373:                                              ; preds = %363
  %374 = landingpad { ptr, i32 }
          cleanup
  br label %380

375:                                              ; preds = %364
  %376 = landingpad { ptr, i32 }
          cleanup
  br label %379

377:                                              ; preds = %366
  %378 = landingpad { ptr, i32 }
          cleanup
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %22) #10
  br label %379

379:                                              ; preds = %377, %375
  %.pn293 = phi { ptr, i32 } [ %378, %377 ], [ %376, %375 ]
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %23) #10
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %23) #10
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %22) #10
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %20) #10
  br label %380

380:                                              ; preds = %379, %373
  %.pn293.pn = phi { ptr, i32 } [ %.pn293, %379 ], [ %374, %373 ]
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %21) #10
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %21) #10
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %20) #10
  invoke void @_ZN12_GLOBAL__N_112AssertHelperD2Ev(ptr noundef nonnull align 8 dereferenceable(96) %19)
          to label %381 unwind label %735

381:                                              ; preds = %380, %371
  %.pn296 = phi { ptr, i32 } [ %372, %371 ], [ %.pn293.pn, %380 ]
  call void @llvm.lifetime.end.p0(i64 96, ptr nonnull %19) #10
  br label %732

382:                                              ; preds = %370, %359
  %383 = phi i32 [ %.pre478, %370 ], [ 1, %359 ]
  %384 = load i32, ptr %298, align 8, !tbaa !82
  %385 = add i32 %384, %383
  store i32 %385, ptr %298, align 8, !tbaa !82
  %386 = mul i32 %383, 112
  %387 = load i32, ptr %299, align 4, !tbaa !83
  %388 = add i32 %387, %386
  store i32 %388, ptr %299, align 4, !tbaa !83
  %389 = trunc nuw i64 %indvars.iv474 to i32
  br label %.loopexit342

390:                                              ; preds = %321
  %391 = getelementptr inbounds i8, ptr %316, i64 4
  %392 = load i32, ptr %391, align 1, !tbaa !81
  %393 = load i32, ptr %296, align 8, !tbaa !84
  %394 = add i32 %393, %392
  store i32 %394, ptr %296, align 8, !tbaa !84
  %395 = shl i32 %392, 2
  %396 = load i32, ptr %297, align 4, !tbaa !85
  %397 = add i32 %396, %395
  store i32 %397, ptr %297, align 4, !tbaa !85
  br label %.loopexit342

398:                                              ; preds = %321
  %399 = getelementptr inbounds i8, ptr %316, i64 4
  %400 = load i32, ptr %399, align 1, !tbaa !81
  %401 = load i32, ptr %294, align 8, !tbaa !86
  %402 = add i32 %401, %400
  store i32 %402, ptr %294, align 8, !tbaa !86
  %403 = shl i32 %400, 2
  %404 = load i32, ptr %295, align 4, !tbaa !87
  %405 = add i32 %404, %403
  store i32 %405, ptr %295, align 4, !tbaa !87
  br label %.loopexit342

406:                                              ; preds = %321
  %407 = getelementptr inbounds i8, ptr %316, i64 4
  %408 = load i32, ptr %407, align 1, !tbaa !81
  %409 = load i32, ptr %292, align 8, !tbaa !88
  %410 = add i32 %409, %408
  store i32 %410, ptr %292, align 8, !tbaa !88
  %411 = mul i32 %408, 12
  %412 = load i32, ptr %293, align 4, !tbaa !89
  %413 = add i32 %412, %411
  store i32 %413, ptr %293, align 4, !tbaa !89
  br label %.loopexit342

414:                                              ; preds = %321
  %415 = getelementptr inbounds i8, ptr %316, i64 4
  %416 = load i32, ptr %415, align 1, !tbaa !81
  %417 = load i32, ptr %290, align 8, !tbaa !90
  %418 = add i32 %417, %416
  store i32 %418, ptr %290, align 8, !tbaa !90
  %419 = shl i32 %416, 3
  %420 = load i32, ptr %291, align 4, !tbaa !91
  %421 = add i32 %420, %419
  store i32 %421, ptr %291, align 4, !tbaa !91
  br label %.loopexit342

422:                                              ; preds = %321
  %423 = getelementptr inbounds i8, ptr %316, i64 4
  %424 = load i32, ptr %423, align 1, !tbaa !81
  %425 = load i32, ptr %288, align 8, !tbaa !92
  %426 = add i32 %425, %424
  store i32 %426, ptr %288, align 8, !tbaa !92
  %427 = shl i32 %424, 3
  %428 = load i32, ptr %289, align 4, !tbaa !93
  %429 = add i32 %428, %427
  store i32 %429, ptr %289, align 4, !tbaa !93
  br label %.loopexit342

430:                                              ; preds = %321
  %431 = getelementptr inbounds i8, ptr %316, i64 4
  %432 = load i32, ptr %431, align 1, !tbaa !81
  %433 = load i32, ptr %286, align 8, !tbaa !94
  %434 = add i32 %433, %432
  store i32 %434, ptr %286, align 8, !tbaa !94
  %435 = shl i32 %432, 5
  %436 = load i32, ptr %287, align 4, !tbaa !95
  %437 = add i32 %436, %435
  store i32 %437, ptr %287, align 4, !tbaa !95
  br label %.loopexit342

438:                                              ; preds = %321
  %439 = getelementptr inbounds i8, ptr %316, i64 4
  %440 = load i32, ptr %439, align 1, !tbaa !81
  %441 = load i32, ptr %284, align 8, !tbaa !96
  %442 = add i32 %441, %440
  store i32 %442, ptr %284, align 8, !tbaa !96
  %443 = shl i32 %440, 2
  %444 = load i32, ptr %285, align 4, !tbaa !97
  %445 = add i32 %444, %443
  store i32 %445, ptr %285, align 4, !tbaa !97
  br label %.loopexit342

446:                                              ; preds = %321
  %447 = getelementptr inbounds i8, ptr %316, i64 4
  %448 = load i32, ptr %447, align 1, !tbaa !81
  %449 = load i32, ptr %282, align 8, !tbaa !98
  %450 = add i32 %449, %448
  store i32 %450, ptr %282, align 8, !tbaa !98
  %451 = shl i32 %448, 3
  %452 = load i32, ptr %283, align 4, !tbaa !99
  %453 = add i32 %452, %451
  store i32 %453, ptr %283, align 4, !tbaa !99
  br label %.loopexit342

454:                                              ; preds = %321
  %455 = getelementptr inbounds i8, ptr %316, i64 4
  %456 = load i32, ptr %455, align 1, !tbaa !81
  %457 = load i32, ptr %280, align 8, !tbaa !100
  %458 = add i32 %457, %456
  store i32 %458, ptr %280, align 8, !tbaa !100
  %.not456 = icmp eq i32 %456, 0
  br i1 %.not456, label %.loopexit342, label %.lr.ph429

.lr.ph429:                                        ; preds = %454, %468
  %.0257427 = phi i32 [ %469, %468 ], [ 0, %454 ]
  %459 = invoke noundef ptr @_ZN12_GLOBAL__N_115get_and_consumeIjEEPKT_RSt17basic_string_viewIcSt11char_traitsIcEEm(ptr noundef nonnull align 8 dereferenceable(16) %10, i64 noundef 4)
          to label %460 unwind label %472

460:                                              ; preds = %.lr.ph429
  %461 = load i32, ptr %459, align 4, !tbaa !55
  %462 = zext i32 %461 to i64
  %463 = mul nuw nsw i64 %462, 12
  %464 = load i32, ptr %281, align 4, !tbaa !101
  %465 = trunc i64 %463 to i32
  %466 = add i32 %464, 4
  %467 = add i32 %466, %465
  store i32 %467, ptr %281, align 4, !tbaa !101
  invoke void @"_ZZN9DexLoader18gather_input_statsEvENK3$_1clEm"(ptr noundef nonnull align 8 dereferenceable(8) %11, i64 noundef %463)
          to label %468 unwind label %472

468:                                              ; preds = %460
  %469 = add nuw i32 %.0257427, 1
  %470 = load i32, ptr %455, align 1, !tbaa !81
  %471 = icmp ult i32 %469, %470
  br i1 %471, label %.lr.ph429, label %.loopexit342, !llvm.loop !102

472:                                              ; preds = %460, %.lr.ph429
  %473 = landingpad { ptr, i32 }
          cleanup
  br label %732

474:                                              ; preds = %321
  %475 = getelementptr inbounds i8, ptr %316, i64 4
  %476 = load i32, ptr %475, align 1, !tbaa !81
  %477 = load i32, ptr %278, align 8, !tbaa !103
  %478 = add i32 %477, %476
  store i32 %478, ptr %278, align 8, !tbaa !103
  %.not455 = icmp eq i32 %476, 0
  br i1 %.not455, label %.loopexit342, label %.lr.ph426

.lr.ph426:                                        ; preds = %474, %488
  %.0259424 = phi i32 [ %489, %488 ], [ 0, %474 ]
  %479 = invoke noundef ptr @_ZN12_GLOBAL__N_115get_and_consumeIjEEPKT_RSt17basic_string_viewIcSt11char_traitsIcEEm(ptr noundef nonnull align 8 dereferenceable(16) %10, i64 noundef 4)
          to label %480 unwind label %492

480:                                              ; preds = %.lr.ph426
  %481 = load i32, ptr %479, align 4, !tbaa !55
  %482 = zext i32 %481 to i64
  %483 = shl nuw nsw i64 %482, 1
  %484 = load i32, ptr %279, align 4, !tbaa !104
  %485 = trunc i64 %483 to i32
  %486 = add i32 %484, 4
  %487 = add i32 %486, %485
  store i32 %487, ptr %279, align 4, !tbaa !104
  invoke void @"_ZZN9DexLoader18gather_input_statsEvENK3$_1clEm"(ptr noundef nonnull align 8 dereferenceable(8) %11, i64 noundef %483)
          to label %488 unwind label %492

488:                                              ; preds = %480
  %489 = add nuw i32 %.0259424, 1
  %490 = load i32, ptr %475, align 1, !tbaa !81
  %491 = icmp ult i32 %489, %490
  br i1 %491, label %.lr.ph426, label %.loopexit342, !llvm.loop !105

492:                                              ; preds = %480, %.lr.ph426
  %493 = landingpad { ptr, i32 }
          cleanup
  br label %732

494:                                              ; preds = %321
  %495 = getelementptr inbounds i8, ptr %316, i64 4
  %496 = load i32, ptr %495, align 1, !tbaa !81
  %497 = load i32, ptr %276, align 8, !tbaa !106
  %498 = add i32 %497, %496
  store i32 %498, ptr %276, align 8, !tbaa !106
  %.not454 = icmp eq i32 %496, 0
  br i1 %.not454, label %.loopexit342, label %.lr.ph423

.lr.ph423:                                        ; preds = %494, %508
  %.0258421 = phi i32 [ %509, %508 ], [ 0, %494 ]
  %499 = invoke noundef ptr @_ZN12_GLOBAL__N_115get_and_consumeIjEEPKT_RSt17basic_string_viewIcSt11char_traitsIcEEm(ptr noundef nonnull align 8 dereferenceable(16) %10, i64 noundef 4)
          to label %500 unwind label %512

500:                                              ; preds = %.lr.ph423
  %501 = load i32, ptr %499, align 4, !tbaa !55
  %502 = zext i32 %501 to i64
  %503 = shl nuw nsw i64 %502, 2
  %504 = load i32, ptr %277, align 4, !tbaa !107
  %505 = trunc i64 %503 to i32
  %506 = add i32 %504, 4
  %507 = add i32 %506, %505
  store i32 %507, ptr %277, align 4, !tbaa !107
  invoke void @"_ZZN9DexLoader18gather_input_statsEvENK3$_1clEm"(ptr noundef nonnull align 8 dereferenceable(8) %11, i64 noundef %503)
          to label %508 unwind label %512

508:                                              ; preds = %500
  %509 = add nuw i32 %.0258421, 1
  %510 = load i32, ptr %495, align 1, !tbaa !81
  %511 = icmp ult i32 %509, %510
  br i1 %511, label %.lr.ph423, label %.loopexit342, !llvm.loop !108

512:                                              ; preds = %500, %.lr.ph423
  %513 = landingpad { ptr, i32 }
          cleanup
  br label %732

514:                                              ; preds = %321
  %515 = getelementptr inbounds i8, ptr %316, i64 4
  %516 = load i32, ptr %515, align 1, !tbaa !81
  %517 = load i32, ptr %274, align 8, !tbaa !109
  %518 = add i32 %517, %516
  store i32 %518, ptr %274, align 8, !tbaa !109
  %.not453 = icmp eq i32 %516, 0
  br i1 %.not453, label %.loopexit342, label %.lr.ph420

.lr.ph420:                                        ; preds = %514, %528
  %.0256418 = phi i32 [ %529, %528 ], [ 0, %514 ]
  %519 = invoke noundef ptr @_ZN12_GLOBAL__N_115get_and_consumeIjEEPKT_RSt17basic_string_viewIcSt11char_traitsIcEEm(ptr noundef nonnull align 8 dereferenceable(16) %10, i64 noundef 4)
          to label %520 unwind label %532

520:                                              ; preds = %.lr.ph420
  %521 = load i32, ptr %519, align 4, !tbaa !55
  %522 = zext i32 %521 to i64
  %523 = shl nuw nsw i64 %522, 2
  %524 = load i32, ptr %275, align 4, !tbaa !110
  %525 = trunc i64 %523 to i32
  %526 = add i32 %524, 4
  %527 = add i32 %526, %525
  store i32 %527, ptr %275, align 4, !tbaa !110
  invoke void @"_ZZN9DexLoader18gather_input_statsEvENK3$_1clEm"(ptr noundef nonnull align 8 dereferenceable(8) %11, i64 noundef %523)
          to label %528 unwind label %532

528:                                              ; preds = %520
  %529 = add nuw i32 %.0256418, 1
  %530 = load i32, ptr %515, align 1, !tbaa !81
  %531 = icmp ult i32 %529, %530
  br i1 %531, label %.lr.ph420, label %.loopexit342, !llvm.loop !111

532:                                              ; preds = %520, %.lr.ph420
  %533 = landingpad { ptr, i32 }
          cleanup
  br label %732

534:                                              ; preds = %321
  %535 = call noundef i64 @_ZNKSt17basic_string_viewIcSt11char_traitsIcEE4sizeEv(ptr noundef nonnull align 8 dereferenceable(16) %10) #10
  %536 = getelementptr inbounds i8, ptr %316, i64 4
  %537 = load i32, ptr %536, align 1, !tbaa !81
  %538 = load i32, ptr %272, align 8, !tbaa !112
  %539 = add i32 %538, %537
  store i32 %539, ptr %272, align 8, !tbaa !112
  %.not450 = icmp eq i32 %537, 0
  br i1 %.not450, label %._crit_edge417, label %.lr.ph416

._crit_edge417:                                   ; preds = %._crit_edge413, %534
  %540 = call noundef i64 @_ZNKSt17basic_string_viewIcSt11char_traitsIcEE4sizeEv(ptr noundef nonnull align 8 dereferenceable(16) %10) #10
  %541 = sub i64 %535, %540
  %542 = load i32, ptr %273, align 4, !tbaa !113
  %543 = trunc i64 %541 to i32
  %544 = add i32 %542, %543
  store i32 %544, ptr %273, align 4, !tbaa !113
  br label %.loopexit342

.lr.ph416:                                        ; preds = %534, %._crit_edge413
  %.0252414 = phi i32 [ %569, %._crit_edge413 ], [ 0, %534 ]
  %545 = invoke noundef i32 @_Z20read_uleb128_checkedIN5redex9DexAssertEEjRSt17basic_string_viewIcSt11char_traitsIcEE(ptr noundef nonnull align 8 dereferenceable(16) %10)
          to label %546 unwind label %554

546:                                              ; preds = %.lr.ph416
  %547 = invoke noundef i32 @_Z20read_uleb128_checkedIN5redex9DexAssertEEjRSt17basic_string_viewIcSt11char_traitsIcEE(ptr noundef nonnull align 8 dereferenceable(16) %10)
          to label %548 unwind label %556

548:                                              ; preds = %546
  %549 = invoke noundef i32 @_Z20read_uleb128_checkedIN5redex9DexAssertEEjRSt17basic_string_viewIcSt11char_traitsIcEE(ptr noundef nonnull align 8 dereferenceable(16) %10)
          to label %550 unwind label %558

550:                                              ; preds = %548
  %551 = invoke noundef i32 @_Z20read_uleb128_checkedIN5redex9DexAssertEEjRSt17basic_string_viewIcSt11char_traitsIcEE(ptr noundef nonnull align 8 dereferenceable(16) %10)
          to label %.preheader331 unwind label %560

.preheader331:                                    ; preds = %550
  %552 = add i32 %547, %545
  %.not451 = icmp eq i32 %552, 0
  br i1 %.not451, label %.preheader, label %.lr.ph410

.preheader:                                       ; preds = %565, %.preheader331
  %553 = add i32 %551, %549
  %.not452 = icmp eq i32 %553, 0
  br i1 %.not452, label %._crit_edge413, label %.lr.ph412

554:                                              ; preds = %.lr.ph416
  %555 = landingpad { ptr, i32 }
          cleanup
  br label %732

556:                                              ; preds = %546
  %557 = landingpad { ptr, i32 }
          cleanup
  br label %732

558:                                              ; preds = %548
  %559 = landingpad { ptr, i32 }
          cleanup
  br label %732

560:                                              ; preds = %550
  %561 = landingpad { ptr, i32 }
          cleanup
  br label %732

.lr.ph410:                                        ; preds = %.preheader331, %565
  %.0246409 = phi i32 [ %566, %565 ], [ 0, %.preheader331 ]
  %562 = invoke noundef i32 @_Z20read_uleb128_checkedIN5redex9DexAssertEEjRSt17basic_string_viewIcSt11char_traitsIcEE(ptr noundef nonnull align 8 dereferenceable(16) %10)
          to label %563 unwind label %567

563:                                              ; preds = %.lr.ph410
  %564 = invoke noundef i32 @_Z20read_uleb128_checkedIN5redex9DexAssertEEjRSt17basic_string_viewIcSt11char_traitsIcEE(ptr noundef nonnull align 8 dereferenceable(16) %10)
          to label %565 unwind label %567

565:                                              ; preds = %563
  %566 = add nuw i32 %.0246409, 1
  %exitcond472.not = icmp eq i32 %566, %552
  br i1 %exitcond472.not, label %.preheader, label %.lr.ph410, !llvm.loop !114

567:                                              ; preds = %563, %.lr.ph410
  %568 = landingpad { ptr, i32 }
          cleanup
  br label %732

._crit_edge413:                                   ; preds = %577, %.preheader
  %569 = add nuw i32 %.0252414, 1
  %570 = load i32, ptr %536, align 1, !tbaa !81
  %571 = icmp ult i32 %569, %570
  br i1 %571, label %.lr.ph416, label %._crit_edge417, !llvm.loop !115

.lr.ph412:                                        ; preds = %.preheader, %577
  %.0245411 = phi i32 [ %578, %577 ], [ 0, %.preheader ]
  %572 = invoke noundef i32 @_Z20read_uleb128_checkedIN5redex9DexAssertEEjRSt17basic_string_viewIcSt11char_traitsIcEE(ptr noundef nonnull align 8 dereferenceable(16) %10)
          to label %573 unwind label %579

573:                                              ; preds = %.lr.ph412
  %574 = invoke noundef i32 @_Z20read_uleb128_checkedIN5redex9DexAssertEEjRSt17basic_string_viewIcSt11char_traitsIcEE(ptr noundef nonnull align 8 dereferenceable(16) %10)
          to label %575 unwind label %579

575:                                              ; preds = %573
  %576 = invoke noundef i32 @_Z20read_uleb128_checkedIN5redex9DexAssertEEjRSt17basic_string_viewIcSt11char_traitsIcEE(ptr noundef nonnull align 8 dereferenceable(16) %10)
          to label %577 unwind label %579

577:                                              ; preds = %575
  %578 = add nuw i32 %.0245411, 1
  %exitcond473.not = icmp eq i32 %578, %553
  br i1 %exitcond473.not, label %._crit_edge413, label %.lr.ph412, !llvm.loop !116

579:                                              ; preds = %575, %573, %.lr.ph412
  %580 = landingpad { ptr, i32 }
          cleanup
  br label %732

581:                                              ; preds = %321
  %582 = call noundef i64 @_ZNKSt17basic_string_viewIcSt11char_traitsIcEE4sizeEv(ptr noundef nonnull align 8 dereferenceable(16) %10) #10
  %583 = getelementptr inbounds i8, ptr %316, i64 4
  %584 = load i32, ptr %583, align 1, !tbaa !81
  %585 = load i32, ptr %270, align 8, !tbaa !117
  %586 = add i32 %585, %584
  store i32 %586, ptr %270, align 8, !tbaa !117
  %.not447 = icmp eq i32 %584, 0
  br i1 %.not447, label %._crit_edge408, label %.lr.ph407

._crit_edge408:                                   ; preds = %.loopexit, %581
  %587 = call noundef i64 @_ZNKSt17basic_string_viewIcSt11char_traitsIcEE4sizeEv(ptr noundef nonnull align 8 dereferenceable(16) %10) #10
  %588 = sub i64 %582, %587
  %589 = load i32, ptr %271, align 4, !tbaa !118
  %590 = trunc i64 %588 to i32
  %591 = add i32 %589, %590
  store i32 %591, ptr %271, align 4, !tbaa !118
  br label %.loopexit342

.lr.ph407:                                        ; preds = %581, %.loopexit
  %.0244405 = phi i32 [ %634, %.loopexit ], [ 0, %581 ]
  %592 = invoke noundef ptr @_ZN12_GLOBAL__N_115get_and_consumeI13dex_code_itemEEPKT_RSt17basic_string_viewIcSt11char_traitsIcEEm(ptr noundef nonnull align 8 dereferenceable(16) %10, i64 noundef 4)
          to label %593 unwind label %605

593:                                              ; preds = %.lr.ph407
  %594 = getelementptr inbounds i8, ptr %592, i64 12
  %595 = load i32, ptr %594, align 1, !tbaa !119
  %596 = zext i32 %595 to i64
  %597 = shl nuw nsw i64 %596, 1
  invoke void @"_ZZN9DexLoader18gather_input_statsEvENK3$_1clEm"(ptr noundef nonnull align 8 dereferenceable(8) %11, i64 noundef %597)
          to label %598 unwind label %605

598:                                              ; preds = %593
  %599 = getelementptr inbounds i8, ptr %592, i64 6
  %600 = load i16, ptr %599, align 1, !tbaa !121
  %.not273 = icmp eq i16 %600, 0
  br i1 %.not273, label %607, label %601

601:                                              ; preds = %598
  %602 = load i32, ptr %594, align 1, !tbaa !119
  %603 = and i32 %602, 1
  %.not274 = icmp eq i32 %603, 0
  br i1 %.not274, label %607, label %604

604:                                              ; preds = %601
  invoke void @"_ZZN9DexLoader18gather_input_statsEvENK3$_1clEm"(ptr noundef nonnull align 8 dereferenceable(8) %11, i64 noundef 2)
          to label %._crit_edge476 unwind label %605

._crit_edge476:                                   ; preds = %604
  %.pre477 = load i16, ptr %599, align 1, !tbaa !121
  br label %607

605:                                              ; preds = %607, %604, %593, %.lr.ph407
  %606 = landingpad { ptr, i32 }
          cleanup
  br label %732

607:                                              ; preds = %._crit_edge476, %601, %598
  %608 = phi i16 [ %.pre477, %._crit_edge476 ], [ %600, %601 ], [ 0, %598 ]
  %609 = zext i16 %608 to i64
  %610 = shl nuw nsw i64 %609, 3
  invoke void @"_ZZN9DexLoader18gather_input_statsEvENK3$_1clEm"(ptr noundef nonnull align 8 dereferenceable(8) %11, i64 noundef %610)
          to label %611 unwind label %605

611:                                              ; preds = %607
  %612 = load i16, ptr %599, align 1, !tbaa !121
  %.not275 = icmp eq i16 %612, 0
  br i1 %.not275, label %.loopexit, label %613

613:                                              ; preds = %611
  %614 = invoke noundef i32 @_Z20read_uleb128_checkedIN5redex9DexAssertEEjRSt17basic_string_viewIcSt11char_traitsIcEE(ptr noundef nonnull align 8 dereferenceable(16) %10)
          to label %.preheader332 unwind label %615

.preheader332:                                    ; preds = %613
  %.not448 = icmp eq i32 %614, 0
  br i1 %.not448, label %.loopexit, label %.lr.ph404

615:                                              ; preds = %613
  %616 = landingpad { ptr, i32 }
          cleanup
  br label %732

.lr.ph404:                                        ; preds = %.preheader332, %632
  %.0241403 = phi i32 [ %633, %632 ], [ 0, %.preheader332 ]
  %617 = invoke noundef i32 @_Z20read_sleb128_checkedIN5redex9DexAssertEEiRSt17basic_string_viewIcSt11char_traitsIcEE(ptr noundef nonnull align 8 dereferenceable(16) %10)
          to label %618 unwind label %620

618:                                              ; preds = %.lr.ph404
  %.not449 = icmp eq i32 %617, 0
  br i1 %.not449, label %._crit_edge402.thread, label %.lr.ph401.preheader

.lr.ph401.preheader:                              ; preds = %618
  %smax = call i32 @llvm.abs.i32(i32 %617, i1 true)
  br label %.lr.ph401

._crit_edge402:                                   ; preds = %625
  %619 = icmp slt i32 %617, 1
  br i1 %619, label %._crit_edge402.thread, label %632

620:                                              ; preds = %.lr.ph404
  %621 = landingpad { ptr, i32 }
          cleanup
  br label %732

.lr.ph401:                                        ; preds = %.lr.ph401.preheader, %625
  %.0236399 = phi i32 [ %626, %625 ], [ 0, %.lr.ph401.preheader ]
  %622 = invoke noundef i32 @_Z20read_uleb128_checkedIN5redex9DexAssertEEjRSt17basic_string_viewIcSt11char_traitsIcEE(ptr noundef nonnull align 8 dereferenceable(16) %10)
          to label %623 unwind label %627

623:                                              ; preds = %.lr.ph401
  %624 = invoke noundef i32 @_Z20read_uleb128_checkedIN5redex9DexAssertEEjRSt17basic_string_viewIcSt11char_traitsIcEE(ptr noundef nonnull align 8 dereferenceable(16) %10)
          to label %625 unwind label %627

625:                                              ; preds = %623
  %626 = add nuw i32 %.0236399, 1
  %exitcond470.not = icmp eq i32 %626, %smax
  br i1 %exitcond470.not, label %._crit_edge402, label %.lr.ph401, !llvm.loop !122

627:                                              ; preds = %623, %.lr.ph401
  %628 = landingpad { ptr, i32 }
          cleanup
  br label %732

._crit_edge402.thread:                            ; preds = %618, %._crit_edge402
  %629 = invoke noundef i32 @_Z20read_uleb128_checkedIN5redex9DexAssertEEjRSt17basic_string_viewIcSt11char_traitsIcEE(ptr noundef nonnull align 8 dereferenceable(16) %10)
          to label %632 unwind label %630

630:                                              ; preds = %._crit_edge402.thread
  %631 = landingpad { ptr, i32 }
          cleanup
  br label %732

632:                                              ; preds = %._crit_edge402.thread, %._crit_edge402
  %633 = add nuw i32 %.0241403, 1
  %exitcond471.not = icmp eq i32 %633, %614
  br i1 %exitcond471.not, label %.loopexit, label %.lr.ph404, !llvm.loop !123

.loopexit:                                        ; preds = %632, %.preheader332, %611
  %634 = add nuw i32 %.0244405, 1
  %635 = load i32, ptr %583, align 1, !tbaa !81
  %636 = icmp ult i32 %634, %635
  br i1 %636, label %.lr.ph407, label %._crit_edge408, !llvm.loop !124

637:                                              ; preds = %321
  %638 = call noundef i64 @_ZNKSt17basic_string_viewIcSt11char_traitsIcEE4sizeEv(ptr noundef nonnull align 8 dereferenceable(16) %10) #10
  %639 = getelementptr inbounds i8, ptr %316, i64 4
  %640 = load i32, ptr %639, align 1, !tbaa !81
  %641 = load i32, ptr %268, align 8, !tbaa !125
  %642 = add i32 %641, %640
  store i32 %642, ptr %268, align 8, !tbaa !125
  %.not446 = icmp eq i32 %640, 0
  br i1 %.not446, label %._crit_edge398, label %.lr.ph397

._crit_edge398:                                   ; preds = %652, %637
  %643 = call noundef i64 @_ZNKSt17basic_string_viewIcSt11char_traitsIcEE4sizeEv(ptr noundef nonnull align 8 dereferenceable(16) %10) #10
  %644 = sub i64 %643, %638
  %645 = load i32, ptr %269, align 4, !tbaa !126
  %646 = trunc i64 %644 to i32
  %647 = add i32 %645, %646
  store i32 %647, ptr %269, align 4, !tbaa !126
  br label %.loopexit342

.lr.ph397:                                        ; preds = %637, %652
  %.0234395 = phi i32 [ %653, %652 ], [ 0, %637 ]
  %648 = invoke noundef i32 @_Z20read_uleb128_checkedIN5redex9DexAssertEEjRSt17basic_string_viewIcSt11char_traitsIcEE(ptr noundef nonnull align 8 dereferenceable(16) %10)
          to label %.preheader333 unwind label %.loopexit.split-lp

.preheader333:                                    ; preds = %.lr.ph397, %650
  %649 = invoke noundef ptr @_ZN12_GLOBAL__N_115get_and_consumeIcEEPKT_RSt17basic_string_viewIcSt11char_traitsIcEEm(ptr noundef nonnull align 8 dereferenceable(16) %10, i64 noundef 1)
          to label %650 unwind label %.loopexit334

650:                                              ; preds = %.preheader333
  %651 = load i8, ptr %649, align 1, !tbaa !127
  %.not272 = icmp eq i8 %651, 0
  br i1 %.not272, label %652, label %.preheader333, !llvm.loop !128

.loopexit334:                                     ; preds = %.preheader333
  %lpad.loopexit = landingpad { ptr, i32 }
          cleanup
  br label %732

.loopexit.split-lp:                               ; preds = %.lr.ph397
  %lpad.loopexit.split-lp = landingpad { ptr, i32 }
          cleanup
  br label %732

652:                                              ; preds = %650
  %653 = add nuw i32 %.0234395, 1
  %654 = load i32, ptr %639, align 1, !tbaa !81
  %655 = icmp ult i32 %653, %654
  br i1 %655, label %.lr.ph397, label %._crit_edge398, !llvm.loop !129

656:                                              ; preds = %321
  %657 = call noundef i64 @_ZNKSt17basic_string_viewIcSt11char_traitsIcEE4sizeEv(ptr noundef nonnull align 8 dereferenceable(16) %10) #10
  %658 = getelementptr inbounds i8, ptr %316, i64 4
  %659 = load i32, ptr %658, align 1, !tbaa !81
  %660 = load i32, ptr %266, align 4, !tbaa !130
  %661 = add i32 %660, %659
  store i32 %661, ptr %266, align 4, !tbaa !130
  %.not445 = icmp eq i32 %659, 0
  br i1 %.not445, label %._crit_edge394, label %.lr.ph393

._crit_edge394:                                   ; preds = %687, %656
  %662 = call noundef i64 @_ZNKSt17basic_string_viewIcSt11char_traitsIcEE4sizeEv(ptr noundef nonnull align 8 dereferenceable(16) %10) #10
  %663 = sub i64 %657, %662
  %664 = load i32, ptr %267, align 8, !tbaa !131
  %665 = trunc i64 %663 to i32
  %666 = add i32 %664, %665
  store i32 %666, ptr %267, align 8, !tbaa !131
  br label %.loopexit342

.lr.ph393:                                        ; preds = %656, %687
  %.0233391 = phi i32 [ %688, %687 ], [ 0, %656 ]
  %667 = invoke noundef i32 @_Z20read_uleb128_checkedIN5redex9DexAssertEEjRSt17basic_string_viewIcSt11char_traitsIcEE(ptr noundef nonnull align 8 dereferenceable(16) %10)
          to label %668 unwind label %673

668:                                              ; preds = %.lr.ph393
  %669 = invoke noundef i32 @_Z20read_uleb128_checkedIN5redex9DexAssertEEjRSt17basic_string_viewIcSt11char_traitsIcEE(ptr noundef nonnull align 8 dereferenceable(16) %10)
          to label %.preheader336 unwind label %.loopexit.split-lp338

.preheader336:                                    ; preds = %668, %670
  %.0232 = phi i32 [ %671, %670 ], [ %669, %668 ]
  %.not = icmp eq i32 %.0232, 0
  br i1 %.not, label %.preheader335, label %670

670:                                              ; preds = %.preheader336
  %671 = add i32 %.0232, -1
  %672 = invoke noundef i32 @_Z20read_uleb128_checkedIN5redex9DexAssertEEjRSt17basic_string_viewIcSt11char_traitsIcEE(ptr noundef nonnull align 8 dereferenceable(16) %10)
          to label %.preheader336 unwind label %.loopexit337, !llvm.loop !132

673:                                              ; preds = %.lr.ph393
  %674 = landingpad { ptr, i32 }
          cleanup
  br label %732

.loopexit337:                                     ; preds = %670
  %lpad.loopexit339 = landingpad { ptr, i32 }
          cleanup
  br label %732

.loopexit.split-lp338:                            ; preds = %668
  %lpad.loopexit.split-lp340 = landingpad { ptr, i32 }
          cleanup
  br label %732

.preheader335:                                    ; preds = %.preheader336, %.preheader335.backedge
  %675 = invoke noundef ptr @_ZN12_GLOBAL__N_115get_and_consumeIhEEPKT_RSt17basic_string_viewIcSt11char_traitsIcEEm(ptr noundef nonnull align 8 dereferenceable(16) %10, i64 noundef 1)
          to label %676 unwind label %678

676:                                              ; preds = %.preheader335
  %677 = load i8, ptr %675, align 1, !tbaa !127
  switch i8 %677, label %.preheader335.backedge [
    i8 0, label %687
    i8 1, label %.invoke485
    i8 5, label %.invoke485
    i8 6, label %.invoke485
    i8 2, label %680
    i8 3, label %.invoke487
    i8 4, label %682
    i8 9, label %.invoke485
  ]

678:                                              ; preds = %.invoke487, %.invoke486, %.invoke485, %682, %680, %.preheader335
  %679 = landingpad { ptr, i32 }
          cleanup
  br label %732

680:                                              ; preds = %676
  %681 = invoke noundef i32 @_Z20read_sleb128_checkedIN5redex9DexAssertEEiRSt17basic_string_viewIcSt11char_traitsIcEE(ptr noundef nonnull align 8 dereferenceable(16) %10)
          to label %.preheader335.backedge unwind label %678

682:                                              ; preds = %676
  %683 = invoke noundef i32 @_Z20read_uleb128_checkedIN5redex9DexAssertEEjRSt17basic_string_viewIcSt11char_traitsIcEE(ptr noundef nonnull align 8 dereferenceable(16) %10)
          to label %.invoke487 unwind label %678

.invoke487:                                       ; preds = %682, %676
  %684 = invoke noundef i32 @_Z20read_uleb128_checkedIN5redex9DexAssertEEjRSt17basic_string_viewIcSt11char_traitsIcEE(ptr noundef nonnull align 8 dereferenceable(16) %10)
          to label %.invoke486 unwind label %678

.invoke486:                                       ; preds = %.invoke487
  %685 = invoke noundef i32 @_Z20read_uleb128_checkedIN5redex9DexAssertEEjRSt17basic_string_viewIcSt11char_traitsIcEE(ptr noundef nonnull align 8 dereferenceable(16) %10)
          to label %.invoke485 unwind label %678

.invoke485:                                       ; preds = %.invoke486, %676, %676, %676, %676
  %686 = invoke noundef i32 @_Z20read_uleb128_checkedIN5redex9DexAssertEEjRSt17basic_string_viewIcSt11char_traitsIcEE(ptr noundef nonnull align 8 dereferenceable(16) %10)
          to label %.preheader335.backedge unwind label %678

.preheader335.backedge:                           ; preds = %.invoke485, %676, %680
  br label %.preheader335, !llvm.loop !133

687:                                              ; preds = %676
  %688 = add nuw i32 %.0233391, 1
  %689 = load i32, ptr %658, align 1, !tbaa !81
  %690 = icmp ult i32 %688, %689
  br i1 %690, label %.lr.ph393, label %._crit_edge394, !llvm.loop !134

691:                                              ; preds = %321
  %692 = call noundef i64 @_ZNKSt17basic_string_viewIcSt11char_traitsIcEE4sizeEv(ptr noundef nonnull align 8 dereferenceable(16) %10) #10
  %693 = getelementptr inbounds i8, ptr %316, i64 4
  %694 = load i32, ptr %693, align 1, !tbaa !81
  %695 = load i32, ptr %264, align 8, !tbaa !135
  %696 = add i32 %695, %694
  store i32 %696, ptr %264, align 8, !tbaa !135
  %.not444 = icmp eq i32 %694, 0
  br i1 %.not444, label %._crit_edge389, label %.lr.ph388

._crit_edge389:                                   ; preds = %716, %691
  %697 = call noundef i64 @_ZNKSt17basic_string_viewIcSt11char_traitsIcEE4sizeEv(ptr noundef nonnull align 8 dereferenceable(16) %10) #10
  %698 = sub i64 %697, %692
  %699 = load i32, ptr %265, align 4, !tbaa !136
  %700 = trunc i64 %698 to i32
  %701 = add i32 %699, %700
  store i32 %701, ptr %265, align 4, !tbaa !136
  br label %.loopexit342

.lr.ph388:                                        ; preds = %691, %716
  %.0228386 = phi i32 [ %717, %716 ], [ 0, %691 ]
  %702 = invoke noundef ptr @_ZN12_GLOBAL__N_115get_and_consumeI30dex_annotations_directory_itemEEPKT_RSt17basic_string_viewIcSt11char_traitsIcEEm(ptr noundef nonnull align 8 dereferenceable(16) %10, i64 noundef 4)
          to label %703 unwind label %720

703:                                              ; preds = %.lr.ph388
  %704 = getelementptr inbounds i8, ptr %702, i64 4
  %705 = load i32, ptr %704, align 1, !tbaa !58
  %706 = zext i32 %705 to i64
  %707 = getelementptr inbounds i8, ptr %702, i64 8
  %708 = load i32, ptr %707, align 1, !tbaa !59
  %709 = zext i32 %708 to i64
  %710 = add nuw nsw i64 %709, %706
  %711 = getelementptr inbounds i8, ptr %702, i64 12
  %712 = load i32, ptr %711, align 1, !tbaa !61
  %713 = zext i32 %712 to i64
  %714 = add nuw nsw i64 %710, %713
  %715 = shl nuw nsw i64 %714, 3
  invoke void @"_ZZN9DexLoader18gather_input_statsEvENK3$_1clEm"(ptr noundef nonnull align 8 dereferenceable(8) %11, i64 noundef %715)
          to label %716 unwind label %722

716:                                              ; preds = %703
  %717 = add nuw i32 %.0228386, 1
  %718 = load i32, ptr %693, align 1, !tbaa !81
  %719 = icmp ult i32 %717, %718
  br i1 %719, label %.lr.ph388, label %._crit_edge389, !llvm.loop !137

720:                                              ; preds = %.lr.ph388
  %721 = landingpad { ptr, i32 }
          cleanup
  br label %732

722:                                              ; preds = %703
  %723 = landingpad { ptr, i32 }
          cleanup
  br label %732

724:                                              ; preds = %321
  %725 = zext i16 %327 to i32
  %726 = load ptr, ptr @stderr, align 8, !tbaa !49
  %727 = trunc nuw i64 %indvars.iv474 to i32
  %728 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %726, ptr noundef nonnull @.str.19, i32 noundef %727, i32 noundef %725) #12
  br label %.loopexit342

.loopexit342:                                     ; preds = %528, %508, %488, %468, %514, %494, %474, %454, %724, %._crit_edge389, %._crit_edge394, %._crit_edge398, %._crit_edge408, %._crit_edge417, %446, %438, %430, %422, %414, %406, %398, %390, %382, %321, %321, %321
  %.1254 = phi i32 [ %.0253431, %724 ], [ %.0253431, %._crit_edge389 ], [ %.0253431, %321 ], [ %.0253431, %321 ], [ %.0253431, %321 ], [ %.0253431, %._crit_edge394 ], [ %.0253431, %._crit_edge398 ], [ %.0253431, %._crit_edge408 ], [ %.0253431, %._crit_edge417 ], [ %.0253431, %446 ], [ %.0253431, %438 ], [ %.0253431, %430 ], [ %.0253431, %422 ], [ %.0253431, %414 ], [ %.0253431, %406 ], [ %.0253431, %398 ], [ %.0253431, %390 ], [ %389, %382 ], [ %.0253431, %454 ], [ %.0253431, %474 ], [ %.0253431, %494 ], [ %.0253431, %514 ], [ %.0253431, %468 ], [ %.0253431, %488 ], [ %.0253431, %508 ], [ %.0253431, %528 ]
  %.1251 = phi i1 [ %.0250432, %724 ], [ %.0250432, %._crit_edge389 ], [ %.0250432, %321 ], [ %.0250432, %321 ], [ %.0250432, %321 ], [ %.0250432, %._crit_edge394 ], [ %.0250432, %._crit_edge398 ], [ %.0250432, %._crit_edge408 ], [ %.0250432, %._crit_edge417 ], [ %.0250432, %446 ], [ %.0250432, %438 ], [ %.0250432, %430 ], [ %.0250432, %422 ], [ %.0250432, %414 ], [ %.0250432, %406 ], [ %.0250432, %398 ], [ %.0250432, %390 ], [ true, %382 ], [ %.0250432, %454 ], [ %.0250432, %474 ], [ %.0250432, %494 ], [ %.0250432, %514 ], [ %.0250432, %468 ], [ %.0250432, %488 ], [ %.0250432, %508 ], [ %.0250432, %528 ]
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %11) #10
  call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %10) #10
  %indvars.iv.next475 = add nuw nsw i64 %indvars.iv474, 1
  %729 = load i32, ptr %260, align 1, !tbaa !55
  %730 = zext i32 %729 to i64
  %731 = icmp ult i64 %indvars.iv.next475, %730
  br i1 %731, label %315, label %._crit_edge435, !llvm.loop !138

732:                                              ; preds = %.loopexit337, %.loopexit.split-lp338, %.loopexit334, %.loopexit.split-lp, %720, %722, %673, %678, %605, %620, %630, %627, %615, %554, %558, %579, %567, %560, %556, %532, %512, %492, %472, %381, %358
  %.pn.pn = phi { ptr, i32 } [ %533, %532 ], [ %513, %512 ], [ %493, %492 ], [ %473, %472 ], [ %.pn296, %381 ], [ %.pn291, %358 ], [ %555, %554 ], [ %557, %556 ], [ %559, %558 ], [ %568, %567 ], [ %580, %579 ], [ %561, %560 ], [ %606, %605 ], [ %616, %615 ], [ %621, %620 ], [ %628, %627 ], [ %631, %630 ], [ %674, %673 ], [ %679, %678 ], [ %723, %722 ], [ %721, %720 ], [ %lpad.loopexit, %.loopexit334 ], [ %lpad.loopexit.split-lp, %.loopexit.split-lp ], [ %lpad.loopexit339, %.loopexit337 ], [ %lpad.loopexit.split-lp340, %.loopexit.split-lp338 ]
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %11) #10
  br label %733

733:                                              ; preds = %732, %328
  %.pn.pn.pn = phi { ptr, i32 } [ %.pn.pn, %732 ], [ %329, %328 ]
  call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %10) #10
  br label %734

734:                                              ; preds = %.loopexit351, %.loopexit.split-lp352, %.loopexit359, %.loopexit.split-lp360, %250, %252, %78, %96, %122, %133, %158, %148, %98, %108, %221, %733, %313
  %.pn323.pn.pn.pn.pn.pn.pn = phi { ptr, i32 } [ %314, %313 ], [ %.pn.pn.pn, %733 ], [ %79, %78 ], [ %.pn308.pn.pn, %221 ], [ %97, %96 ], [ %99, %98 ], [ %109, %108 ], [ %123, %122 ], [ %134, %133 ], [ %149, %148 ], [ %159, %158 ], [ %253, %252 ], [ %251, %250 ], [ %lpad.loopexit361, %.loopexit359 ], [ %lpad.loopexit.split-lp362, %.loopexit.split-lp360 ], [ %lpad.loopexit353, %.loopexit351 ], [ %lpad.loopexit.split-lp354, %.loopexit.split-lp352 ]
  call void @_ZN12UnorderedSetIjSt4hashIjESt8equal_toIjEED2Ev(ptr noundef nonnull align 8 dereferenceable(56) %4) #10
  call void @llvm.lifetime.end.p0(i64 56, ptr nonnull %4) #10
  call void @_ZNSt3setIP11DexTypeList23dextypelists_comparatorSaIS1_EED2Ev(ptr noundef nonnull align 8 dereferenceable(48) %3) #10
  call void @llvm.lifetime.end.p0(i64 48, ptr nonnull %3) #10
  call void @_ZN12UnorderedSetI20DexEncodedValueArrayN5boost4hashIS0_EESt8equal_toIS0_EED2Ev(ptr noundef nonnull align 8 dereferenceable(56) %2) #10
  call void @llvm.lifetime.end.p0(i64 56, ptr nonnull %2) #10
  resume { ptr, i32 } %.pn323.pn.pn.pn.pn.pn.pn

735:                                              ; preds = %380, %357
  %736 = landingpad { ptr, i32 }
          catch ptr null
  %737 = extractvalue { ptr, i32 } %736, 0
  call void @__clang_call_terminate(ptr %737) #13
  unreachable
}

; Function Attrs: mustprogress nounwind uwtable
declare dso_local void @_ZN12UnorderedSetI20DexEncodedValueArrayN5boost4hashIS0_EESt8equal_toIS0_EEC2Ev(ptr noundef nonnull align 8 dereferenceable(56)) unnamed_addr #1 align 2

; Function Attrs: mustprogress nounwind uwtable
declare dso_local void @_ZNSt3setIP11DexTypeList23dextypelists_comparatorSaIS1_EEC2Ev(ptr noundef nonnull align 8 dereferenceable(48)) unnamed_addr #1 align 2

; Function Attrs: mustprogress nounwind uwtable
declare dso_local void @_ZN12UnorderedSetIjSt4hashIjESt8equal_toIjEEC2Ev(ptr noundef nonnull align 8 dereferenceable(56)) unnamed_addr #1 align 2

; Function Attrs: mustprogress uwtable
declare dso_local noundef nonnull align 8 dereferenceable(8) ptr @_ZNSt6vectorIP8DexClassSaIS1_EE2atEm(ptr noundef nonnull align 8 dereferenceable(24), i64 noundef) local_unnamed_addr #2 align 2

; Function Attrs: mustprogress nounwind uwtable
declare dso_local noundef ptr @_ZNKSt10unique_ptrI6DexIdxSt14default_deleteIS0_EEptEv(ptr noundef nonnull align 8 dereferenceable(8)) local_unnamed_addr #1 align 2

; Function Attrs: mustprogress uwtable
declare dso_local noundef ptr @_ZN6DexIdx8get_dataI30dex_annotations_directory_itemEEPKT_j(ptr noundef nonnull align 8 dereferenceable(288), i32 noundef) local_unnamed_addr #2 align 2

; Function Attrs: mustprogress uwtable
declare dso_local noundef ptr @_ZN6DexIdx13get_uint_dataEj(ptr noundef nonnull align 8 dereferenceable(288), i32 noundef) local_unnamed_addr #2 align 2

; Function Attrs: noreturn
declare void @_Z11assert_failPKcS0_jS0_10RedexErrorS0_z(ptr noundef, ptr noundef, i32 noundef, ptr noundef, i32 noundef, ptr noundef, ...) local_unnamed_addr #4

; Function Attrs: mustprogress uwtable
declare dso_local noundef ptr @_ZNK6DexIdx3endEv(ptr noundef nonnull align 8 dereferenceable(288)) local_unnamed_addr #2 align 2

; Function Attrs: mustprogress uwtable
declare dso_local { ptr, i8 } @_ZN12UnorderedSetIjSt4hashIjESt8equal_toIjEE6insertERKj(ptr noundef nonnull align 8 dereferenceable(56), ptr noundef nonnull align 4 dereferenceable(4)) local_unnamed_addr #2 align 2

; Function Attrs: mustprogress nounwind uwtable
declare dso_local noundef ptr @_ZNK8DexClass14get_interfacesEv(ptr noundef nonnull align 8 dereferenceable(176)) local_unnamed_addr #1 align 2

; Function Attrs: mustprogress uwtable
declare dso_local { ptr, i8 } @_ZNSt3setIP11DexTypeList23dextypelists_comparatorSaIS1_EE6insertERKS1_(ptr noundef nonnull align 8 dereferenceable(48), ptr noundef nonnull align 8 dereferenceable(8)) local_unnamed_addr #2 align 2

declare void @_ZN8DexClass17get_static_valuesEv(ptr dead_on_unwind writable sret(%"class.std::unique_ptr.102") align 8, ptr noundef nonnull align 8 dereferenceable(176)) local_unnamed_addr #5

; Function Attrs: mustprogress nounwind uwtable
declare dso_local noundef zeroext i1 @_ZNKSt10unique_ptrI20DexEncodedValueArraySt14default_deleteIS0_EEcvbEv(ptr noundef nonnull align 8 dereferenceable(8)) local_unnamed_addr #1 align 2

; Function Attrs: mustprogress uwtable
declare dso_local noundef i64 @_ZNK12UnorderedSetI20DexEncodedValueArrayN5boost4hashIS0_EESt8equal_toIS0_EE5countERKS0_(ptr noundef nonnull align 8 dereferenceable(56), ptr noundef nonnull align 8 dereferenceable(18)) local_unnamed_addr #2 align 2

; Function Attrs: mustprogress nounwind uwtable
declare dso_local noundef nonnull align 8 dereferenceable(18) ptr @_ZNKSt10unique_ptrI20DexEncodedValueArraySt14default_deleteIS0_EEdeEv(ptr noundef nonnull align 8 dereferenceable(8)) local_unnamed_addr #1 align 2

; Function Attrs: mustprogress uwtable
declare dso_local { ptr, i8 } @_ZN12UnorderedSetI20DexEncodedValueArrayN5boost4hashIS0_EESt8equal_toIS0_EE7emplaceIJS0_EEESt4pairINS6_13FixedIteratorEbEDpOT_(ptr noundef nonnull align 8 dereferenceable(56), ptr noundef nonnull align 8 dereferenceable(18)) local_unnamed_addr #2 align 2

; Function Attrs: mustprogress uwtable
declare dso_local noundef nonnull align 8 dereferenceable(24) ptr @_ZN8DexClass11get_ifieldsEv(ptr noundef nonnull align 8 dereferenceable(176)) local_unnamed_addr #2 align 2

; Function Attrs: mustprogress nounwind uwtable
declare dso_local noundef i64 @_ZNKSt6vectorIP8DexFieldSaIS1_EE4sizeEv(ptr noundef nonnull align 8 dereferenceable(24)) local_unnamed_addr #1 align 2

; Function Attrs: mustprogress uwtable
declare dso_local noundef nonnull align 8 dereferenceable(24) ptr @_ZN8DexClass11get_sfieldsEv(ptr noundef nonnull align 8 dereferenceable(176)) local_unnamed_addr #2 align 2

; Function Attrs: mustprogress uwtable
declare dso_local noundef nonnull align 8 dereferenceable(24) ptr @_ZN8DexClass12get_vmethodsEv(ptr noundef nonnull align 8 dereferenceable(176)) local_unnamed_addr #2 align 2

; Function Attrs: mustprogress nounwind uwtable
declare dso_local noundef i64 @_ZNKSt6vectorIP9DexMethodSaIS1_EE4sizeEv(ptr noundef nonnull align 8 dereferenceable(24)) local_unnamed_addr #1 align 2

; Function Attrs: mustprogress uwtable
declare dso_local noundef nonnull align 8 dereferenceable(24) ptr @_ZN8DexClass12get_dmethodsEv(ptr noundef nonnull align 8 dereferenceable(176)) local_unnamed_addr #2 align 2

; Function Attrs: inlinehint mustprogress uwtable
declare hidden void @"_ZZN9DexLoader18gather_input_statsEvENK3$_0clISt6vectorIP9DexMethodSaIS4_EEEEDaRKT_"(ptr noundef nonnull align 8 dereferenceable(8), ptr noundef nonnull align 8 dereferenceable(24)) local_unnamed_addr #6 align 2

; Function Attrs: mustprogress nounwind uwtable
declare dso_local void @_ZNSt10unique_ptrI20DexEncodedValueArraySt14default_deleteIS0_EED2Ev(ptr noundef nonnull align 8 dereferenceable(8)) unnamed_addr #1 align 2

; Function Attrs: mustprogress uwtable
declare dso_local noundef ptr @_ZN6DexIdx13get_methodidxEj(ptr noundef nonnull align 8 dereferenceable(288), i32 noundef) local_unnamed_addr #2 align 2

; Function Attrs: mustprogress nounwind uwtable
declare dso_local noundef ptr @_ZNK12DexMethodRef9get_protoEv(ptr noundef nonnull align 8 dereferenceable(26)) local_unnamed_addr #1 align 2

; Function Attrs: mustprogress uwtable
declare dso_local { ptr, i8 } @_ZNSt3setIP11DexTypeList23dextypelists_comparatorSaIS1_EE6insertEOS1_(ptr noundef nonnull align 8 dereferenceable(48), ptr noundef nonnull align 8 dereferenceable(8)) local_unnamed_addr #2 align 2

; Function Attrs: mustprogress nounwind uwtable
declare dso_local noundef ptr @_ZNK8DexProto8get_argsEv(ptr noundef nonnull align 8 dereferenceable(24)) local_unnamed_addr #1 align 2

; Function Attrs: mustprogress nounwind uwtable
declare dso_local noundef i64 @_ZNK12UnorderedSetIjSt4hashIjESt8equal_toIjEE4sizeEv(ptr noundef nonnull align 8 dereferenceable(56)) local_unnamed_addr #1 align 2

; Function Attrs: mustprogress nounwind uwtable
declare dso_local noundef i64 @_ZNKSt3setIP11DexTypeList23dextypelists_comparatorSaIS1_EE4sizeEv(ptr noundef nonnull align 8 dereferenceable(48)) local_unnamed_addr #1 align 2

; Function Attrs: mustprogress uwtable
declare dso_local noundef ptr @_ZN6DexIdx13get_stringidxEj(ptr noundef nonnull align 8 dereferenceable(288), i32 noundef) local_unnamed_addr #2 align 2

; Function Attrs: mustprogress uwtable
declare dso_local noundef i32 @_ZNK9DexString14get_entry_sizeEv(ptr noundef nonnull align 8 dereferenceable(16)) local_unnamed_addr #2 align 2

; Function Attrs: mustprogress nounwind uwtable
declare dso_local noundef ptr @_ZNKSt10unique_ptrIKhSt8functionIFvPS0_EEE3getEv(ptr noundef nonnull align 8 dereferenceable(40)) local_unnamed_addr #1 align 2

; Function Attrs: mustprogress uwtable
declare dso_local noundef ptr @_ZN6DexIdx13get_uleb_dataEj(ptr noundef nonnull align 8 dereferenceable(288), i32 noundef) local_unnamed_addr #2 align 2

; Function Attrs: mustprogress nounwind uwtable
declare dso_local noundef i32 @_ZNK6DexIdx13get_file_sizeEv(ptr noundef nonnull align 8 dereferenceable(288)) local_unnamed_addr #1 align 2

; Function Attrs: mustprogress nounwind uwtable
declare dso_local void @_ZNSt17basic_string_viewIcSt11char_traitsIcEEC2EPKcm(ptr noundef nonnull align 8 dereferenceable(16), ptr noundef, i64 noundef) unnamed_addr #1 align 2

; Function Attrs: mustprogress nounwind uwtable
declare hidden void @_ZN12_GLOBAL__N_112AssertHelperC2Ev(ptr noundef nonnull align 8 dereferenceable(96)) unnamed_addr #1 align 2

; Function Attrs: mustprogress nounwind uwtable
declare hidden noundef nonnull align 8 dereferenceable(96) ptr @_ZN12_GLOBAL__N_112AssertHelper11set_messageEONSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEE(ptr noundef nonnull align 8 dereferenceable(96), ptr noundef nonnull align 8 dereferenceable(32)) local_unnamed_addr #1 align 2

; Function Attrs: mustprogress uwtable
declare hidden noundef nonnull align 8 dereferenceable(96) ptr @_ZN12_GLOBAL__N_112AssertHelper8add_infoIjEERS0_ONSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEET_(ptr noundef nonnull align 8 dereferenceable(96), ptr noundef nonnull align 8 dereferenceable(32), i32 noundef) local_unnamed_addr #2 align 2

; Function Attrs: mustprogress uwtable
declare hidden void @_ZN12_GLOBAL__N_112AssertHelperD2Ev(ptr noundef nonnull align 8 dereferenceable(96)) unnamed_addr #2 align 2

; Function Attrs: mustprogress uwtable
declare hidden noundef ptr @_ZN12_GLOBAL__N_115get_and_consumeIjEEPKT_RSt17basic_string_viewIcSt11char_traitsIcEEm(ptr noundef nonnull align 8 dereferenceable(16), i64 noundef) local_unnamed_addr #2

; Function Attrs: inlinehint mustprogress uwtable
declare hidden void @"_ZZN9DexLoader18gather_input_statsEvENK3$_1clEm"(ptr noundef nonnull align 8 dereferenceable(8), i64 noundef) local_unnamed_addr #6 align 2

; Function Attrs: mustprogress nounwind uwtable
declare dso_local noundef i64 @_ZNKSt17basic_string_viewIcSt11char_traitsIcEE4sizeEv(ptr noundef nonnull align 8 dereferenceable(16)) local_unnamed_addr #1 align 2

; Function Attrs: mustprogress uwtable
declare dso_local noundef i32 @_Z20read_uleb128_checkedIN5redex9DexAssertEEjRSt17basic_string_viewIcSt11char_traitsIcEE(ptr noundef nonnull align 8 dereferenceable(16)) local_unnamed_addr #2

; Function Attrs: mustprogress uwtable
declare hidden noundef ptr @_ZN12_GLOBAL__N_115get_and_consumeI13dex_code_itemEEPKT_RSt17basic_string_viewIcSt11char_traitsIcEEm(ptr noundef nonnull align 8 dereferenceable(16), i64 noundef) local_unnamed_addr #2

; Function Attrs: mustprogress uwtable
declare dso_local noundef i32 @_Z20read_sleb128_checkedIN5redex9DexAssertEEiRSt17basic_string_viewIcSt11char_traitsIcEE(ptr noundef nonnull align 8 dereferenceable(16)) local_unnamed_addr #2

; Function Attrs: mustprogress nocallback nofree nosync nounwind speculatable willreturn memory(none)
declare i32 @llvm.abs.i32(i32, i1 immarg) #7

; Function Attrs: mustprogress uwtable
declare hidden noundef ptr @_ZN12_GLOBAL__N_115get_and_consumeIcEEPKT_RSt17basic_string_viewIcSt11char_traitsIcEEm(ptr noundef nonnull align 8 dereferenceable(16), i64 noundef) local_unnamed_addr #2

; Function Attrs: mustprogress uwtable
declare hidden noundef ptr @_ZN12_GLOBAL__N_115get_and_consumeIhEEPKT_RSt17basic_string_viewIcSt11char_traitsIcEEm(ptr noundef nonnull align 8 dereferenceable(16), i64 noundef) local_unnamed_addr #2

; Function Attrs: mustprogress uwtable
declare hidden noundef ptr @_ZN12_GLOBAL__N_115get_and_consumeI30dex_annotations_directory_itemEEPKT_RSt17basic_string_viewIcSt11char_traitsIcEEm(ptr noundef nonnull align 8 dereferenceable(16), i64 noundef) local_unnamed_addr #2

; Function Attrs: nofree nounwind
declare noundef i32 @fprintf(ptr nocapture noundef, ptr nocapture noundef readonly, ...) local_unnamed_addr #8

; Function Attrs: inlinehint mustprogress nounwind uwtable
declare dso_local void @_ZN12UnorderedSetIjSt4hashIjESt8equal_toIjEED2Ev(ptr noundef nonnull align 8 dereferenceable(56)) unnamed_addr #9 align 2

; Function Attrs: mustprogress nounwind uwtable
declare dso_local void @_ZNSt3setIP11DexTypeList23dextypelists_comparatorSaIS1_EED2Ev(ptr noundef nonnull align 8 dereferenceable(48)) unnamed_addr #1 align 2

; Function Attrs: inlinehint mustprogress nounwind uwtable
declare dso_local void @_ZN12UnorderedSetI20DexEncodedValueArrayN5boost4hashIS0_EESt8equal_toIS0_EED2Ev(ptr noundef nonnull align 8 dereferenceable(56)) unnamed_addr #9 align 2

attributes #0 = { mustprogress nocallback nofree nosync nounwind willreturn memory(argmem: readwrite) }
attributes #1 = { mustprogress nounwind uwtable "min-legal-vector-width"="0" "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="x86-64" "target-features"="+cmov,+cx8,+fxsr,+mmx,+sse,+sse2,+x87" "tune-cpu"="generic" }
attributes #2 = { mustprogress uwtable "min-legal-vector-width"="0" "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="x86-64" "target-features"="+cmov,+cx8,+fxsr,+mmx,+sse,+sse2,+x87" "tune-cpu"="generic" }
attributes #3 = { noinline noreturn nounwind uwtable "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="x86-64" "target-features"="+cmov,+cx8,+fxsr,+mmx,+sse,+sse2,+x87" "tune-cpu"="generic" }
attributes #4 = { noreturn "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="x86-64" "target-features"="+cmov,+cx8,+fxsr,+mmx,+sse,+sse2,+x87" "tune-cpu"="generic" }
attributes #5 = { "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="x86-64" "target-features"="+cmov,+cx8,+fxsr,+mmx,+sse,+sse2,+x87" "tune-cpu"="generic" }
attributes #6 = { inlinehint mustprogress uwtable "min-legal-vector-width"="0" "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="x86-64" "target-features"="+cmov,+cx8,+fxsr,+mmx,+sse,+sse2,+x87" "tune-cpu"="generic" }
attributes #7 = { mustprogress nocallback nofree nosync nounwind speculatable willreturn memory(none) }
attributes #8 = { nofree nounwind "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="x86-64" "target-features"="+cmov,+cx8,+fxsr,+mmx,+sse,+sse2,+x87" "tune-cpu"="generic" }
attributes #9 = { inlinehint mustprogress nounwind uwtable "min-legal-vector-width"="0" "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="x86-64" "target-features"="+cmov,+cx8,+fxsr,+mmx,+sse,+sse2,+x87" "tune-cpu"="generic" }
attributes #10 = { nounwind }
attributes #11 = { noreturn }
attributes #12 = { cold nounwind }
attributes #13 = { noreturn nounwind }

!llvm.module.flags = !{!0, !1, !2, !3}
!llvm.ident = !{!4}

!0 = !{i32 1, !"wchar_size", i32 4}
!1 = !{i32 8, !"PIC Level", i32 2}
!2 = !{i32 7, !"PIE Level", i32 2}
!3 = !{i32 7, !"uwtable", i32 2}
!4 = !{!"clang version 19.1.0 (git@github.com:llvm/llvm-project.git a4bf6cd7cfb1a1421ba92bca9d017b49936c55e4)"}
!5 = !{!6, !7, i64 0}
!6 = !{!"_ZTS9DexLoader", !7, i64 0, !10, i64 8, !7, i64 16, !16, i64 24, !20, i64 48, !30, i64 88, !7, i64 96, !31, i64 104, !32, i64 400, !33, i64 404}
!7 = !{!"any pointer", !8, i64 0}
!8 = !{!"omnipotent char", !9, i64 0}
!9 = !{!"Simple C++ TBAA"}
!10 = !{!"_ZTSSt10unique_ptrI6DexIdxSt14default_deleteIS0_EE", !11, i64 0}
!11 = !{!"_ZTSSt15__uniq_ptr_dataI6DexIdxSt14default_deleteIS0_ELb1ELb1EE", !12, i64 0}
!12 = !{!"_ZTSSt15__uniq_ptr_implI6DexIdxSt14default_deleteIS0_EE", !13, i64 0}
!13 = !{!"_ZTSSt5tupleIJP6DexIdxSt14default_deleteIS0_EEE", !14, i64 0}
!14 = !{!"_ZTSSt11_Tuple_implILm0EJP6DexIdxSt14default_deleteIS0_EEE", !15, i64 0}
!15 = !{!"_ZTSSt10_Head_baseILm0EP6DexIdxLb0EE", !7, i64 0}
!16 = !{!"_ZTSSt6vectorIP8DexClassSaIS1_EE", !17, i64 0}
!17 = !{!"_ZTSSt12_Vector_baseIP8DexClassSaIS1_EE", !18, i64 0}
!18 = !{!"_ZTSNSt12_Vector_baseIP8DexClassSaIS1_EE12_Vector_implE", !19, i64 0}
!19 = !{!"_ZTSNSt12_Vector_baseIP8DexClassSaIS1_EE17_Vector_impl_dataE", !7, i64 0, !7, i64 8, !7, i64 16}
!20 = !{!"_ZTSSt10unique_ptrIKhSt8functionIFvPS0_EEE", !21, i64 0}
!21 = !{!"_ZTSSt15__uniq_ptr_dataIKhSt8functionIFvPS0_EELb1ELb1EE", !22, i64 0}
!22 = !{!"_ZTSSt15__uniq_ptr_implIKhSt8functionIFvPS0_EEE", !23, i64 0}
!23 = !{!"_ZTSSt5tupleIJPKhSt8functionIFvS1_EEEE", !24, i64 0}
!24 = !{!"_ZTSSt11_Tuple_implILm0EJPKhSt8functionIFvS1_EEEE", !25, i64 0, !29, i64 32}
!25 = !{!"_ZTSSt11_Tuple_implILm1EJSt8functionIFvPKhEEEE", !26, i64 0}
!26 = !{!"_ZTSSt10_Head_baseILm1ESt8functionIFvPKhEELb0EE", !27, i64 0}
!27 = !{!"_ZTSSt8functionIFvPKhEE", !28, i64 0, !7, i64 24}
!28 = !{!"_ZTSSt14_Function_base", !8, i64 0, !7, i64 16}
!29 = !{!"_ZTSSt10_Head_baseILm0EPKhLb0EE", !7, i64 0}
!30 = !{!"long", !8, i64 0}
!31 = !{!"_ZTS11dex_stats_t", !8, i64 0, !32, i64 20, !32, i64 24, !32, i64 28, !32, i64 32, !32, i64 36, !32, i64 40, !32, i64 44, !32, i64 48, !32, i64 52, !32, i64 56, !32, i64 60, !32, i64 64, !32, i64 68, !32, i64 72, !32, i64 76, !32, i64 80, !32, i64 84, !32, i64 88, !32, i64 92, !32, i64 96, !32, i64 100, !32, i64 104, !32, i64 108, !32, i64 112, !32, i64 116, !32, i64 120, !32, i64 124, !32, i64 128, !32, i64 132, !32, i64 136, !32, i64 140, !32, i64 144, !32, i64 148, !32, i64 152, !32, i64 156, !32, i64 160, !32, i64 164, !32, i64 168, !32, i64 172, !32, i64 176, !32, i64 180, !32, i64 184, !32, i64 188, !32, i64 192, !32, i64 196, !32, i64 200, !32, i64 204, !32, i64 208, !32, i64 212, !32, i64 216, !32, i64 220, !32, i64 224, !32, i64 228, !32, i64 232, !32, i64 236, !32, i64 240, !32, i64 244, !32, i64 248, !32, i64 252, !32, i64 256, !32, i64 260, !32, i64 264, !32, i64 268, !32, i64 272, !32, i64 276, !32, i64 280, !32, i64 284, !32, i64 288, !32, i64 292}
!32 = !{!"int", !8, i64 0}
!33 = !{!"_ZTSN9DexLoader8ParallelE", !8, i64 0}
!34 = !{!35, !32, i64 64}
!35 = !{!"_ZTS10dex_header", !8, i64 0, !32, i64 8, !8, i64 12, !32, i64 32, !32, i64 36, !32, i64 40, !32, i64 44, !32, i64 48, !32, i64 52, !32, i64 56, !32, i64 60, !32, i64 64, !32, i64 68, !32, i64 72, !32, i64 76, !32, i64 80, !32, i64 84, !32, i64 88, !32, i64 92, !32, i64 96, !32, i64 100, !32, i64 104, !32, i64 108}
!36 = !{!6, !32, i64 124}
!37 = !{!35, !32, i64 96}
!38 = !{!6, !32, i64 128}
!39 = !{!35, !32, i64 88}
!40 = !{!6, !32, i64 136}
!41 = !{!35, !32, i64 80}
!42 = !{!6, !32, i64 144}
!43 = !{!35, !32, i64 56}
!44 = !{!6, !32, i64 148}
!45 = !{!35, !32, i64 72}
!46 = !{!6, !32, i64 152}
!47 = !{!35, !32, i64 32}
!48 = !{!6, !32, i64 168}
!49 = !{!7, !7, i64 0}
!50 = !{!6, !7, i64 16}
!51 = !{!52, !32, i64 20}
!52 = !{!"_ZTS13dex_class_def", !32, i64 0, !32, i64 4, !32, i64 8, !32, i64 12, !32, i64 16, !32, i64 20, !32, i64 24, !32, i64 28}
!53 = !{!54, !32, i64 0}
!54 = !{!"_ZTS30dex_annotations_directory_item", !32, i64 0, !32, i64 4, !32, i64 8, !32, i64 12}
!55 = !{!32, !32, i64 0}
!56 = distinct !{!56, !57}
!57 = !{!"llvm.loop.mustprogress"}
!58 = !{!54, !32, i64 4}
!59 = !{!54, !32, i64 8}
!60 = distinct !{!60, !57}
!61 = !{!54, !32, i64 12}
!62 = distinct !{!62, !57}
!63 = distinct !{!63, !57}
!64 = distinct !{!64, !57}
!65 = !{!6, !32, i64 156}
!66 = !{!6, !32, i64 140}
!67 = !{!6, !32, i64 132}
!68 = !{!69, !7, i64 0}
!69 = !{!"_ZTSZN9DexLoader18gather_input_statsEvE3$_0", !7, i64 0}
!70 = distinct !{!70, !57}
!71 = !{!6, !32, i64 160}
!72 = !{!6, !32, i64 164}
!73 = distinct !{!73, !57}
!74 = !{!35, !32, i64 52}
!75 = !{!6, !32, i64 208}
!76 = distinct !{!76, !57}
!77 = !{!78, !32, i64 8}
!78 = !{!"_ZTS12dex_map_item", !79, i64 0, !79, i64 2, !32, i64 4, !32, i64 8}
!79 = !{!"short", !8, i64 0}
!80 = !{!78, !79, i64 0}
!81 = !{!78, !32, i64 4}
!82 = !{!6, !32, i64 240}
!83 = !{!6, !32, i64 244}
!84 = !{!6, !32, i64 248}
!85 = !{!6, !32, i64 252}
!86 = !{!6, !32, i64 256}
!87 = !{!6, !32, i64 260}
!88 = !{!6, !32, i64 264}
!89 = !{!6, !32, i64 268}
!90 = !{!6, !32, i64 272}
!91 = !{!6, !32, i64 276}
!92 = !{!6, !32, i64 280}
!93 = !{!6, !32, i64 284}
!94 = !{!6, !32, i64 288}
!95 = !{!6, !32, i64 292}
!96 = !{!6, !32, i64 296}
!97 = !{!6, !32, i64 300}
!98 = !{!6, !32, i64 304}
!99 = !{!6, !32, i64 308}
!100 = !{!6, !32, i64 312}
!101 = !{!6, !32, i64 316}
!102 = distinct !{!102, !57}
!103 = !{!6, !32, i64 320}
!104 = !{!6, !32, i64 324}
!105 = distinct !{!105, !57}
!106 = !{!6, !32, i64 328}
!107 = !{!6, !32, i64 332}
!108 = distinct !{!108, !57}
!109 = !{!6, !32, i64 336}
!110 = !{!6, !32, i64 340}
!111 = distinct !{!111, !57}
!112 = !{!6, !32, i64 344}
!113 = !{!6, !32, i64 348}
!114 = distinct !{!114, !57}
!115 = distinct !{!115, !57}
!116 = distinct !{!116, !57}
!117 = !{!6, !32, i64 352}
!118 = !{!6, !32, i64 356}
!119 = !{!120, !32, i64 12}
!120 = !{!"_ZTS13dex_code_item", !79, i64 0, !79, i64 2, !79, i64 4, !79, i64 6, !32, i64 8, !32, i64 12}
!121 = !{!120, !79, i64 6}
!122 = distinct !{!122, !57}
!123 = distinct !{!123, !57}
!124 = distinct !{!124, !57}
!125 = !{!6, !32, i64 360}
!126 = !{!6, !32, i64 364}
!127 = !{!8, !8, i64 0}
!128 = distinct !{!128, !57}
!129 = distinct !{!129, !57}
!130 = !{!6, !32, i64 228}
!131 = !{!6, !32, i64 232}
!132 = distinct !{!132, !57}
!133 = distinct !{!133, !57}
!134 = distinct !{!134, !57}
!135 = !{!6, !32, i64 392}
!136 = !{!6, !32, i64 396}
!137 = distinct !{!137, !57}
!138 = distinct !{!138, !57}


; Effective O3 passes: AggressiveInstCombinePass,CorrelatedValuePropagationPass,EarlyCSEPass,GVNPass,GlobalOptPass,IPSCCPPass,IndVarSimplifyPass,InferFunctionAttrsPass,InstCombinePass,InstSimplifyPass,JumpThreadingPass,LCSSAPass,LICMPass,LoopRotatePass,LoopSimplifyPass,LoopUnrollPass,ReassociatePass,SROAPass,SimplifyCFGPass