; LLVM IR from dynexcoin/Dynex :: src/DynexCNCore (Blockchain)

; 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.std::__cxx11::basic_string" = type { %"struct.std::__cxx11::basic_string<char>::_Alloc_hider", i64, %union.anon.38 }
%"struct.std::__cxx11::basic_string<char>::_Alloc_hider" = type { ptr }
%union.anon.38 = type { i64, [8 x i8] }
%"class.Logging::LoggerMessage" = type <{ %"class.std::basic_ostream.base", %"class.std::basic_streambuf", ptr, %"class.std::__cxx11::basic_string", i32, [4 x i8], %"class.std::__cxx11::basic_string", %"class.boost::posix_time::ptime", i8, [7 x i8], %"class.std::basic_ios" }>
%"class.std::basic_ostream.base" = type { ptr }
%"class.std::basic_streambuf" = type { ptr, ptr, ptr, ptr, ptr, ptr, ptr, %"class.std::locale" }
%"class.std::locale" = type { ptr }
%"class.boost::posix_time::ptime" = type { %"class.boost::date_time::base_time" }
%"class.boost::date_time::base_time" = type { %"struct.boost::date_time::counted_time_rep" }
%"struct.boost::date_time::counted_time_rep" = type { %"class.boost::date_time::int_adapter" }
%"class.boost::date_time::int_adapter" = type { i64 }
%"class.std::basic_ios" = type { %"class.std::ios_base", ptr, i8, i8, ptr, ptr, ptr, ptr }
%"class.std::ios_base" = type { ptr, i64, i64, i32, i32, i32, ptr, %"struct.std::ios_base::_Words", [8 x %"struct.std::ios_base::_Words"], i32, ptr, %"class.std::locale" }
%"struct.std::ios_base::_Words" = type { ptr, i64 }
%"class.std::vector.43" = type { %"struct.std::_Vector_base.44" }
%"struct.std::_Vector_base.44" = type { %"struct.std::_Vector_base<unsigned long, std::allocator<unsigned long>>::_Vector_impl" }
%"struct.std::_Vector_base<unsigned long, std::allocator<unsigned long>>::_Vector_impl" = type { %"struct.std::_Vector_base<unsigned long, std::allocator<unsigned long>>::_Vector_impl_data" }
%"struct.std::_Vector_base<unsigned long, std::allocator<unsigned long>>::_Vector_impl_data" = type { ptr, ptr, ptr }
%"class.std::lock_guard" = type { ptr }
%"struct.std::_List_const_iterator" = type { ptr }
%"struct.std::__detail::_Node_iterator.266" = type { %"struct.std::__detail::_Node_iterator_base.262" }
%"struct.std::__detail::_Node_iterator_base.262" = type { ptr }
%"struct.boost::foreach_detail_::auto_any" = type { ptr }
%"struct.boost::foreach_detail_::auto_any.280" = type { %"class.boost::iterators::reverse_iterator" }
%"class.boost::iterators::reverse_iterator" = type { %"class.boost::iterators::iterator_adaptor" }
%"class.boost::iterators::iterator_adaptor" = type { %"struct.std::_List_const_iterator" }
%"class.DynexCN::Blockchain" = type <{ %"class.DynexCN::ITransactionValidator", %"class.DynexCN::IDynexCNProtocolObserver", i8, [7 x i8], %"class.std::unordered_map", ptr, ptr, %"class.std::recursive_mutex", %"class.Crypto::cn_context", %"class.Tools::ObserverManager", %"class.boost::multi_index::multi_index_container", i64, %"class.std::unordered_map.14", %"class.google::sparse_hash_map", %"class.std::__cxx11::basic_string", %"class.DynexCN::Checkpoints", %"struct.std::atomic", [7 x i8], %class.SwappedVector, %"class.DynexCN::BlockIndex", %"class.std::unordered_map.66", %"class.google::sparse_hash_map.80", %"class.DynexCN::BasicUpgradeDetector", %"class.DynexCN::BasicUpgradeDetector", %"class.DynexCN::BasicUpgradeDetector", %"class.DynexCN::PaymentIdIndex", %"class.DynexCN::AddressIndex", %"class.DynexCN::TimestampBlocksIndex", %"class.DynexCN::GeneratedTransactionsIndex", %"class.DynexCN::OrphanBlocksIndex", i8, [7 x i8], %"class.DynexCN::IntrusiveLinkedList", %"class.Logging::LoggerRef", i32, [4 x i8] }>
%"class.DynexCN::ITransactionValidator" = type { ptr }
%"class.DynexCN::IDynexCNProtocolObserver" = type { ptr }
%"class.std::unordered_map" = 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::recursive_mutex" = type { %"class.std::__recursive_mutex_base" }
%"class.std::__recursive_mutex_base" = type { %union.pthread_mutex_t }
%union.pthread_mutex_t = type { %struct.__pthread_mutex_s }
%struct.__pthread_mutex_s = type { i32, i32, i32, i32, i32, i16, i16, %struct.__pthread_internal_list }
%struct.__pthread_internal_list = type { ptr, ptr }
%"class.Crypto::cn_context" = type { ptr }
%"class.Tools::ObserverManager" = type { %"class.std::vector.9", %"class.std::mutex" }
%"class.std::vector.9" = type { %"struct.std::_Vector_base.10" }
%"struct.std::_Vector_base.10" = type { %"struct.std::_Vector_base<DynexCN::IBlockchainStorageObserver *, std::allocator<DynexCN::IBlockchainStorageObserver *>>::_Vector_impl" }
%"struct.std::_Vector_base<DynexCN::IBlockchainStorageObserver *, std::allocator<DynexCN::IBlockchainStorageObserver *>>::_Vector_impl" = type { %"struct.std::_Vector_base<DynexCN::IBlockchainStorageObserver *, std::allocator<DynexCN::IBlockchainStorageObserver *>>::_Vector_impl_data" }
%"struct.std::_Vector_base<DynexCN::IBlockchainStorageObserver *, std::allocator<DynexCN::IBlockchainStorageObserver *>>::_Vector_impl_data" = type { ptr, ptr, ptr }
%"class.std::mutex" = type { %"class.std::__mutex_base" }
%"class.std::__mutex_base" = type { %union.pthread_mutex_t }
%"class.boost::multi_index::multi_index_container" = type { [8 x i8], %"struct.boost::multi_index::detail::header_holder", %"class.boost::multi_index::detail::ordered_index.base", i64 }
%"struct.boost::multi_index::detail::header_holder" = type { ptr }
%"class.boost::multi_index::detail::ordered_index.base" = type { %"class.boost::multi_index::detail::ordered_index_impl.base" }
%"class.boost::multi_index::detail::ordered_index_impl.base" = type <{ %"class.boost::multi_index::detail::hashed_index", [2 x i8] }>
%"class.boost::multi_index::detail::hashed_index" = type { [8 x i8], %"class.boost::multi_index::detail::bucket_array", float, i64 }
%"class.boost::multi_index::detail::bucket_array" = type { i64, %"struct.boost::multi_index::detail::auto_space" }
%"struct.boost::multi_index::detail::auto_space" = type { [8 x i8], i64, ptr }
%"class.std::unordered_map.14" = type { %"class.std::_Hashtable.15" }
%"class.std::_Hashtable.15" = type { ptr, i64, %"struct.std::__detail::_Hash_node_base", i64, %"struct.std::__detail::_Prime_rehash_policy", ptr }
%"class.google::sparse_hash_map" = type { %"class.google::sparse_hashtable" }
%"class.google::sparse_hashtable" = type { %"struct.google::sparse_hashtable<std::pair<const unsigned long, std::vector<std::pair<DynexCN::Blockchain::TransactionIndex, unsigned short>>>, unsigned long, std::hash<unsigned long>, google::sparse_hash_map<unsigned long, std::vector<std::pair<DynexCN::Blockchain::TransactionIndex, unsigned short>>>::SelectKey, google::sparse_hash_map<unsigned long, std::vector<std::pair<DynexCN::Blockchain::TransactionIndex, unsigned short>>>::SetKey, std::equal_to<unsigned long>, google::libc_allocator_with_realloc<std::pair<const unsigned long, std::vector<std::pair<DynexCN::Blockchain::TransactionIndex, unsigned short>>>>>::Settings", %"class.google::sparse_hashtable<std::pair<const unsigned long, std::vector<std::pair<DynexCN::Blockchain::TransactionIndex, unsigned short>>>, unsigned long, std::hash<unsigned long>, google::sparse_hash_map<unsigned long, std::vector<std::pair<DynexCN::Blockchain::TransactionIndex, unsigned short>>>::SelectKey, google::sparse_hash_map<unsigned long, std::vector<std::pair<DynexCN::Blockchain::TransactionIndex, unsigned short>>>::SetKey, std::equal_to<unsigned long>, google::libc_allocator_with_realloc<std::pair<const unsigned long, std::vector<std::pair<DynexCN::Blockchain::TransactionIndex, unsigned short>>>>>::KeyInfo", i64, %"class.google::sparsetable" }
%"struct.google::sparse_hashtable<std::pair<const unsigned long, std::vector<std::pair<DynexCN::Blockchain::TransactionIndex, unsigned short>>>, unsigned long, std::hash<unsigned long>, google::sparse_hash_map<unsigned long, std::vector<std::pair<DynexCN::Blockchain::TransactionIndex, unsigned short>>>::SelectKey, google::sparse_hash_map<unsigned long, std::vector<std::pair<DynexCN::Blockchain::TransactionIndex, unsigned short>>>::SetKey, std::equal_to<unsigned long>, google::libc_allocator_with_realloc<std::pair<const unsigned long, std::vector<std::pair<DynexCN::Blockchain::TransactionIndex, unsigned short>>>>>::Settings" = type { %class.sh_hashtable_settings }
%class.sh_hashtable_settings = type { i64, i64, float, float, i8, i8, i8, i32 }
%"class.google::sparse_hashtable<std::pair<const unsigned long, std::vector<std::pair<DynexCN::Blockchain::TransactionIndex, unsigned short>>>, unsigned long, std::hash<unsigned long>, google::sparse_hash_map<unsigned long, std::vector<std::pair<DynexCN::Blockchain::TransactionIndex, unsigned short>>>::SelectKey, google::sparse_hash_map<unsigned long, std::vector<std::pair<DynexCN::Blockchain::TransactionIndex, unsigned short>>>::SetKey, std::equal_to<unsigned long>, google::libc_allocator_with_realloc<std::pair<const unsigned long, std::vector<std::pair<DynexCN::Blockchain::TransactionIndex, unsigned short>>>>>::KeyInfo" = type { i64 }
%"class.google::sparsetable" = type { %"class.std::vector.31", %"class.google::sparsetable<std::pair<const unsigned long, std::vector<std::pair<DynexCN::Blockchain::TransactionIndex, unsigned short>>>>::Settings" }
%"class.std::vector.31" = type { %"struct.std::_Vector_base.32" }
%"struct.std::_Vector_base.32" = type { %"struct.std::_Vector_base<google::sparsegroup<std::pair<const unsigned long, std::vector<std::pair<DynexCN::Blockchain::TransactionIndex, unsigned short>>>, 48, google::libc_allocator_with_realloc<std::pair<const unsigned long, std::vector<std::pair<DynexCN::Blockchain::TransactionIndex, unsigned short>>>>>, google::libc_allocator_with_realloc<google::sparsegroup<std::pair<const unsigned long, std::vector<std::pair<DynexCN::Blockchain::TransactionIndex, unsigned short>>>, 48, google::libc_allocator_with_realloc<std::pair<const unsigned long, std::vector<std::pair<DynexCN::Blockchain::TransactionIndex, unsigned short>>>>>>>::_Vector_impl" }
%"struct.std::_Vector_base<google::sparsegroup<std::pair<const unsigned long, std::vector<std::pair<DynexCN::Blockchain::TransactionIndex, unsigned short>>>, 48, google::libc_allocator_with_realloc<std::pair<const unsigned long, std::vector<std::pair<DynexCN::Blockchain::TransactionIndex, unsigned short>>>>>, google::libc_allocator_with_realloc<google::sparsegroup<std::pair<const unsigned long, std::vector<std::pair<DynexCN::Blockchain::TransactionIndex, unsigned short>>>, 48, google::libc_allocator_with_realloc<std::pair<const unsigned long, std::vector<std::pair<DynexCN::Blockchain::TransactionIndex, unsigned short>>>>>>>::_Vector_impl" = type { %"struct.std::_Vector_base<google::sparsegroup<std::pair<const unsigned long, std::vector<std::pair<DynexCN::Blockchain::TransactionIndex, unsigned short>>>, 48, google::libc_allocator_with_realloc<std::pair<const unsigned long, std::vector<std::pair<DynexCN::Blockchain::TransactionIndex, unsigned short>>>>>, google::libc_allocator_with_realloc<google::sparsegroup<std::pair<const unsigned long, std::vector<std::pair<DynexCN::Blockchain::TransactionIndex, unsigned short>>>, 48, google::libc_allocator_with_realloc<std::pair<const unsigned long, std::vector<std::pair<DynexCN::Blockchain::TransactionIndex, unsigned short>>>>>>>::_Vector_impl_data" }
%"struct.std::_Vector_base<google::sparsegroup<std::pair<const unsigned long, std::vector<std::pair<DynexCN::Blockchain::TransactionIndex, unsigned short>>>, 48, google::libc_allocator_with_realloc<std::pair<const unsigned long, std::vector<std::pair<DynexCN::Blockchain::TransactionIndex, unsigned short>>>>>, google::libc_allocator_with_realloc<google::sparsegroup<std::pair<const unsigned long, std::vector<std::pair<DynexCN::Blockchain::TransactionIndex, unsigned short>>>, 48, google::libc_allocator_with_realloc<std::pair<const unsigned long, std::vector<std::pair<DynexCN::Blockchain::TransactionIndex, unsigned short>>>>>>>::_Vector_impl_data" = type { ptr, ptr, ptr }
%"class.google::sparsetable<std::pair<const unsigned long, std::vector<std::pair<DynexCN::Blockchain::TransactionIndex, unsigned short>>>>::Settings" = type { i64, i64 }
%"class.DynexCN::Checkpoints" = type { %"class.std::map", %"class.Logging::LoggerRef" }
%"class.std::map" = type { %"class.std::_Rb_tree" }
%"class.std::_Rb_tree" = type { %"struct.std::_Rb_tree<unsigned int, std::pair<const unsigned int, Crypto::Hash>, std::_Select1st<std::pair<const unsigned int, Crypto::Hash>>, std::less<unsigned int>>::_Rb_tree_impl" }
%"struct.std::_Rb_tree<unsigned int, std::pair<const unsigned int, Crypto::Hash>, std::_Select1st<std::pair<const unsigned int, Crypto::Hash>>, std::less<unsigned int>>::_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 }
%"struct.std::atomic" = type { %"struct.std::__atomic_base" }
%"struct.std::__atomic_base" = type { i8 }
%class.SwappedVector = type { %"class.std::basic_fstream", %"class.std::basic_fstream", i64, %"class.std::vector.43", i64, %"class.std::map.48", %"class.std::__cxx11::list", i64, i64 }
%"class.std::basic_fstream" = type { %"class.std::basic_iostream.base", %"class.std::basic_filebuf", %"class.std::basic_ios" }
%"class.std::basic_iostream.base" = type { %"class.std::basic_istream.base", %"class.std::basic_ostream.base" }
%"class.std::basic_istream.base" = type { ptr, i64 }
%"class.std::basic_filebuf" = type { %"class.std::basic_streambuf", %union.pthread_mutex_t, %"class.std::__basic_file", i32, %struct.__mbstate_t, %struct.__mbstate_t, %struct.__mbstate_t, ptr, i64, i8, i8, i8, i8, ptr, ptr, i8, ptr, ptr, i64, ptr, ptr }
%"class.std::__basic_file" = type <{ ptr, i8, [7 x i8] }>
%struct.__mbstate_t = type { i32, %union.anon.42 }
%union.anon.42 = type { i32 }
%"class.std::map.48" = type { %"class.std::_Rb_tree.49" }
%"class.std::_Rb_tree.49" = type { %"struct.std::_Rb_tree<unsigned long, std::pair<const unsigned long, SwappedVector<DynexCN::Blockchain::BlockEntry>::ItemEntry>, std::_Select1st<std::pair<const unsigned long, SwappedVector<DynexCN::Blockchain::BlockEntry>::ItemEntry>>, std::less<unsigned long>>::_Rb_tree_impl" }
%"struct.std::_Rb_tree<unsigned long, std::pair<const unsigned long, SwappedVector<DynexCN::Blockchain::BlockEntry>::ItemEntry>, std::_Select1st<std::pair<const unsigned long, SwappedVector<DynexCN::Blockchain::BlockEntry>::ItemEntry>>, std::less<unsigned long>>::_Rb_tree_impl" = type { [8 x i8], %"struct.std::_Rb_tree_header" }
%"class.std::__cxx11::list" = type { %"class.std::__cxx11::_List_base" }
%"class.std::__cxx11::_List_base" = type { %"struct.std::__cxx11::_List_base<SwappedVector<DynexCN::Blockchain::BlockEntry>::CacheEntry, std::allocator<SwappedVector<DynexCN::Blockchain::BlockEntry>::CacheEntry>>::_List_impl" }
%"struct.std::__cxx11::_List_base<SwappedVector<DynexCN::Blockchain::BlockEntry>::CacheEntry, std::allocator<SwappedVector<DynexCN::Blockchain::BlockEntry>::CacheEntry>>::_List_impl" = type { %"struct.std::__detail::_List_node_header" }
%"struct.std::__detail::_List_node_header" = type { %"struct.std::__detail::_List_node_base", i64 }
%"struct.std::__detail::_List_node_base" = type { ptr, ptr }
%"class.DynexCN::BlockIndex" = type { %"class.boost::multi_index::multi_index_container.57", ptr }
%"class.boost::multi_index::multi_index_container.57" = type { [8 x i8], %"struct.boost::multi_index::detail::header_holder.59", %"class.boost::multi_index::detail::random_access_index", i64 }
%"struct.boost::multi_index::detail::header_holder.59" = type { ptr }
%"class.boost::multi_index::detail::random_access_index" = type { %"class.boost::multi_index::detail::hashed_index.60", %"class.boost::multi_index::detail::random_access_index_ptr_array" }
%"class.boost::multi_index::detail::hashed_index.60" = type { [8 x i8], %"class.boost::multi_index::detail::bucket_array.63", float, i64 }
%"class.boost::multi_index::detail::bucket_array.63" = type { i64, %"struct.boost::multi_index::detail::auto_space.64" }
%"struct.boost::multi_index::detail::auto_space.64" = type { [8 x i8], i64, ptr }
%"class.boost::multi_index::detail::random_access_index_ptr_array" = type { i64, i64, %"struct.boost::multi_index::detail::auto_space.65" }
%"struct.boost::multi_index::detail::auto_space.65" = type { [8 x i8], i64, ptr }
%"class.std::unordered_map.66" = type { %"class.std::_Hashtable.67" }
%"class.std::_Hashtable.67" = type { ptr, i64, %"struct.std::__detail::_Hash_node_base", i64, %"struct.std::__detail::_Prime_rehash_policy", ptr }
%"class.google::sparse_hash_map.80" = type { %"class.google::sparse_hashtable.81" }
%"class.google::sparse_hashtable.81" = type { %"struct.google::sparse_hashtable<std::pair<const unsigned long, std::vector<DynexCN::Blockchain::MultisignatureOutputUsage>>, unsigned long, std::hash<unsigned long>, google::sparse_hash_map<unsigned long, std::vector<DynexCN::Blockchain::MultisignatureOutputUsage>>::SelectKey, google::sparse_hash_map<unsigned long, std::vector<DynexCN::Blockchain::MultisignatureOutputUsage>>::SetKey, std::equal_to<unsigned long>, google::libc_allocator_with_realloc<std::pair<const unsigned long, std::vector<DynexCN::Blockchain::MultisignatureOutputUsage>>>>::Settings", %"class.google::sparse_hashtable<std::pair<const unsigned long, std::vector<DynexCN::Blockchain::MultisignatureOutputUsage>>, unsigned long, std::hash<unsigned long>, google::sparse_hash_map<unsigned long, std::vector<DynexCN::Blockchain::MultisignatureOutputUsage>>::SelectKey, google::sparse_hash_map<unsigned long, std::vector<DynexCN::Blockchain::MultisignatureOutputUsage>>::SetKey, std::equal_to<unsigned long>, google::libc_allocator_with_realloc<std::pair<const unsigned long, std::vector<DynexCN::Blockchain::MultisignatureOutputUsage>>>>::KeyInfo", i64, %"class.google::sparsetable.82" }
%"struct.google::sparse_hashtable<std::pair<const unsigned long, std::vector<DynexCN::Blockchain::MultisignatureOutputUsage>>, unsigned long, std::hash<unsigned long>, google::sparse_hash_map<unsigned long, std::vector<DynexCN::Blockchain::MultisignatureOutputUsage>>::SelectKey, google::sparse_hash_map<unsigned long, std::vector<DynexCN::Blockchain::MultisignatureOutputUsage>>::SetKey, std::equal_to<unsigned long>, google::libc_allocator_with_realloc<std::pair<const unsigned long, std::vector<DynexCN::Blockchain::MultisignatureOutputUsage>>>>::Settings" = type { %class.sh_hashtable_settings }
%"class.google::sparse_hashtable<std::pair<const unsigned long, std::vector<DynexCN::Blockchain::MultisignatureOutputUsage>>, unsigned long, std::hash<unsigned long>, google::sparse_hash_map<unsigned long, std::vector<DynexCN::Blockchain::MultisignatureOutputUsage>>::SelectKey, google::sparse_hash_map<unsigned long, std::vector<DynexCN::Blockchain::MultisignatureOutputUsage>>::SetKey, std::equal_to<unsigned long>, google::libc_allocator_with_realloc<std::pair<const unsigned long, std::vector<DynexCN::Blockchain::MultisignatureOutputUsage>>>>::KeyInfo" = type { i64 }
%"class.google::sparsetable.82" = type { %"class.std::vector.83", %"class.google::sparsetable<std::pair<const unsigned long, std::vector<DynexCN::Blockchain::MultisignatureOutputUsage>>>::Settings" }
%"class.std::vector.83" = type { %"struct.std::_Vector_base.84" }
%"struct.std::_Vector_base.84" = type { %"struct.std::_Vector_base<google::sparsegroup<std::pair<const unsigned long, std::vector<DynexCN::Blockchain::MultisignatureOutputUsage>>, 48, google::libc_allocator_with_realloc<std::pair<const unsigned long, std::vector<DynexCN::Blockchain::MultisignatureOutputUsage>>>>, google::libc_allocator_with_realloc<google::sparsegroup<std::pair<const unsigned long, std::vector<DynexCN::Blockchain::MultisignatureOutputUsage>>, 48, google::libc_allocator_with_realloc<std::pair<const unsigned long, std::vector<DynexCN::Blockchain::MultisignatureOutputUsage>>>>>>::_Vector_impl" }
%"struct.std::_Vector_base<google::sparsegroup<std::pair<const unsigned long, std::vector<DynexCN::Blockchain::MultisignatureOutputUsage>>, 48, google::libc_allocator_with_realloc<std::pair<const unsigned long, std::vector<DynexCN::Blockchain::MultisignatureOutputUsage>>>>, google::libc_allocator_with_realloc<google::sparsegroup<std::pair<const unsigned long, std::vector<DynexCN::Blockchain::MultisignatureOutputUsage>>, 48, google::libc_allocator_with_realloc<std::pair<const unsigned long, std::vector<DynexCN::Blockchain::MultisignatureOutputUsage>>>>>>::_Vector_impl" = type { %"struct.std::_Vector_base<google::sparsegroup<std::pair<const unsigned long, std::vector<DynexCN::Blockchain::MultisignatureOutputUsage>>, 48, google::libc_allocator_with_realloc<std::pair<const unsigned long, std::vector<DynexCN::Blockchain::MultisignatureOutputUsage>>>>, google::libc_allocator_with_realloc<google::sparsegroup<std::pair<const unsigned long, std::vector<DynexCN::Blockchain::MultisignatureOutputUsage>>, 48, google::libc_allocator_with_realloc<std::pair<const unsigned long, std::vector<DynexCN::Blockchain::MultisignatureOutputUsage>>>>>>::_Vector_impl_data" }
%"struct.std::_Vector_base<google::sparsegroup<std::pair<const unsigned long, std::vector<DynexCN::Blockchain::MultisignatureOutputUsage>>, 48, google::libc_allocator_with_realloc<std::pair<const unsigned long, std::vector<DynexCN::Blockchain::MultisignatureOutputUsage>>>>, google::libc_allocator_with_realloc<google::sparsegroup<std::pair<const unsigned long, std::vector<DynexCN::Blockchain::MultisignatureOutputUsage>>, 48, google::libc_allocator_with_realloc<std::pair<const unsigned long, std::vector<DynexCN::Blockchain::MultisignatureOutputUsage>>>>>>::_Vector_impl_data" = type { ptr, ptr, ptr }
%"class.google::sparsetable<std::pair<const unsigned long, std::vector<DynexCN::Blockchain::MultisignatureOutputUsage>>>::Settings" = type { i64, i64 }
%"class.DynexCN::BasicUpgradeDetector" = type { %"class.Logging::LoggerRef", ptr, ptr, i8, i32 }
%"class.DynexCN::PaymentIdIndex" = type <{ %"class.std::unordered_multimap", i8, [7 x i8] }>
%"class.std::unordered_multimap" = type { %"class.std::_Hashtable.89" }
%"class.std::_Hashtable.89" = type { %"struct.std::__detail::_Hashtable_base.90", ptr, i64, %"struct.std::__detail::_Hash_node_base", i64, %"struct.std::__detail::_Prime_rehash_policy", ptr }
%"struct.std::__detail::_Hashtable_base.90" = type { %"struct.std::__detail::_Hash_code_base.91" }
%"struct.std::__detail::_Hash_code_base.91" = type { %"struct.std::__detail::_Hashtable_ebo_helper.92" }
%"struct.std::__detail::_Hashtable_ebo_helper.92" = 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 } }
%"class.DynexCN::AddressIndex" = type <{ %"class.std::multimap", i8, [7 x i8] }>
%"class.std::multimap" = type { %"class.std::_Rb_tree.103" }
%"class.std::_Rb_tree.103" = type { %"struct.std::_Rb_tree<std::__cxx11::basic_string<char>, std::pair<const std::__cxx11::basic_string<char>, Crypto::Hash>, std::_Select1st<std::pair<const std::__cxx11::basic_string<char>, Crypto::Hash>>, 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>, Crypto::Hash>, std::_Select1st<std::pair<const std::__cxx11::basic_string<char>, Crypto::Hash>>, std::less<std::__cxx11::basic_string<char>>>::_Rb_tree_impl" = type { [8 x i8], %"struct.std::_Rb_tree_header" }
%"class.DynexCN::TimestampBlocksIndex" = type <{ %"class.std::multimap.108", i8, [7 x i8] }>
%"class.std::multimap.108" = type { %"class.std::_Rb_tree.109" }
%"class.std::_Rb_tree.109" = type { %"struct.std::_Rb_tree<unsigned long, std::pair<const unsigned long, Crypto::Hash>, std::_Select1st<std::pair<const unsigned long, Crypto::Hash>>, std::less<unsigned long>>::_Rb_tree_impl" }
%"struct.std::_Rb_tree<unsigned long, std::pair<const unsigned long, Crypto::Hash>, std::_Select1st<std::pair<const unsigned long, Crypto::Hash>>, std::less<unsigned long>>::_Rb_tree_impl" = type { [8 x i8], %"struct.std::_Rb_tree_header" }
%"class.DynexCN::GeneratedTransactionsIndex" = type <{ %"class.std::unordered_map.113", i64, i8, [7 x i8] }>
%"class.std::unordered_map.113" = type { %"class.std::_Hashtable.114" }
%"class.std::_Hashtable.114" = type { ptr, i64, %"struct.std::__detail::_Hash_node_base", i64, %"struct.std::__detail::_Prime_rehash_policy", ptr }
%"class.DynexCN::OrphanBlocksIndex" = type <{ %"class.std::unordered_multimap.133", i8, [7 x i8] }>
%"class.std::unordered_multimap.133" = type { %"class.std::_Hashtable.134" }
%"class.std::_Hashtable.134" = type { ptr, i64, %"struct.std::__detail::_Hash_node_base", i64, %"struct.std::__detail::_Prime_rehash_policy", ptr }
%"class.DynexCN::IntrusiveLinkedList" = type { ptr, ptr }
%"class.Logging::LoggerRef" = type { ptr, %"class.std::__cxx11::basic_string" }
%"struct.std::pair.263" = type { %"struct.Crypto::Hash", %"struct.DynexCN::Blockchain::BlockEntry" }
%"struct.Crypto::Hash" = type { [32 x i8] }
%"struct.DynexCN::Blockchain::BlockEntry" = type { %"struct.DynexCN::Block", i32, i64, i64, i64, %"class.std::vector.227" }
%"struct.DynexCN::Block" = type { %"struct.DynexCN::BlockHeader", %"struct.DynexCN::ParentBlock", %"struct.DynexCN::Transaction", %"class.std::vector.147" }
%"struct.DynexCN::BlockHeader" = type { i8, i8, i32, i64, %"struct.Crypto::Hash" }
%"struct.DynexCN::ParentBlock" = type { i8, i8, %"struct.Crypto::Hash", i16, %"class.std::vector.147", %"struct.DynexCN::Transaction", %"class.std::vector.147" }
%"struct.DynexCN::Transaction" = type { %"struct.DynexCN::TransactionPrefix", %"class.std::vector.167" }
%"struct.DynexCN::TransactionPrefix" = type { i8, i64, %"class.std::vector.152", %"class.std::vector.157", %"class.std::vector.162" }
%"class.std::vector.152" = type { %"struct.std::_Vector_base.153" }
%"struct.std::_Vector_base.153" = type { %"struct.std::_Vector_base<boost::variant<DynexCN::BaseInput, DynexCN::KeyInput, DynexCN::MultisignatureInput>, std::allocator<boost::variant<DynexCN::BaseInput, DynexCN::KeyInput, DynexCN::MultisignatureInput>>>::_Vector_impl" }
%"struct.std::_Vector_base<boost::variant<DynexCN::BaseInput, DynexCN::KeyInput, DynexCN::MultisignatureInput>, std::allocator<boost::variant<DynexCN::BaseInput, DynexCN::KeyInput, DynexCN::MultisignatureInput>>>::_Vector_impl" = type { %"struct.std::_Vector_base<boost::variant<DynexCN::BaseInput, DynexCN::KeyInput, DynexCN::MultisignatureInput>, std::allocator<boost::variant<DynexCN::BaseInput, DynexCN::KeyInput, DynexCN::MultisignatureInput>>>::_Vector_impl_data" }
%"struct.std::_Vector_base<boost::variant<DynexCN::BaseInput, DynexCN::KeyInput, DynexCN::MultisignatureInput>, std::allocator<boost::variant<DynexCN::BaseInput, DynexCN::KeyInput, DynexCN::MultisignatureInput>>>::_Vector_impl_data" = type { ptr, ptr, ptr }
%"class.std::vector.157" = type { %"struct.std::_Vector_base.158" }
%"struct.std::_Vector_base.158" = type { %"struct.std::_Vector_base<DynexCN::TransactionOutput, std::allocator<DynexCN::TransactionOutput>>::_Vector_impl" }
%"struct.std::_Vector_base<DynexCN::TransactionOutput, std::allocator<DynexCN::TransactionOutput>>::_Vector_impl" = type { %"struct.std::_Vector_base<DynexCN::TransactionOutput, std::allocator<DynexCN::TransactionOutput>>::_Vector_impl_data" }
%"struct.std::_Vector_base<DynexCN::TransactionOutput, std::allocator<DynexCN::TransactionOutput>>::_Vector_impl_data" = type { ptr, ptr, ptr }
%"class.std::vector.162" = type { %"struct.std::_Vector_base.163" }
%"struct.std::_Vector_base.163" = type { %"struct.std::_Vector_base<unsigned char, std::allocator<unsigned char>>::_Vector_impl" }
%"struct.std::_Vector_base<unsigned char, std::allocator<unsigned char>>::_Vector_impl" = type { %"struct.std::_Vector_base<unsigned char, std::allocator<unsigned char>>::_Vector_impl_data" }
%"struct.std::_Vector_base<unsigned char, std::allocator<unsigned char>>::_Vector_impl_data" = type { ptr, ptr, ptr }
%"class.std::vector.167" = type { %"struct.std::_Vector_base.168" }
%"struct.std::_Vector_base.168" = type { %"struct.std::_Vector_base<std::vector<Crypto::Signature>, std::allocator<std::vector<Crypto::Signature>>>::_Vector_impl" }
%"struct.std::_Vector_base<std::vector<Crypto::Signature>, std::allocator<std::vector<Crypto::Signature>>>::_Vector_impl" = type { %"struct.std::_Vector_base<std::vector<Crypto::Signature>, std::allocator<std::vector<Crypto::Signature>>>::_Vector_impl_data" }
%"struct.std::_Vector_base<std::vector<Crypto::Signature>, std::allocator<std::vector<Crypto::Signature>>>::_Vector_impl_data" = type { ptr, ptr, ptr }
%"class.std::vector.147" = type { %"struct.std::_Vector_base.148" }
%"struct.std::_Vector_base.148" = type { %"struct.std::_Vector_base<Crypto::Hash, std::allocator<Crypto::Hash>>::_Vector_impl" }
%"struct.std::_Vector_base<Crypto::Hash, std::allocator<Crypto::Hash>>::_Vector_impl" = type { %"struct.std::_Vector_base<Crypto::Hash, std::allocator<Crypto::Hash>>::_Vector_impl_data" }
%"struct.std::_Vector_base<Crypto::Hash, std::allocator<Crypto::Hash>>::_Vector_impl_data" = type { ptr, ptr, ptr }
%"class.std::vector.227" = type { %"struct.std::_Vector_base.228" }
%"struct.std::_Vector_base.228" = type { %"struct.std::_Vector_base<DynexCN::Blockchain::TransactionEntry, std::allocator<DynexCN::Blockchain::TransactionEntry>>::_Vector_impl" }
%"struct.std::_Vector_base<DynexCN::Blockchain::TransactionEntry, std::allocator<DynexCN::Blockchain::TransactionEntry>>::_Vector_impl" = type { %"struct.std::_Vector_base<DynexCN::Blockchain::TransactionEntry, std::allocator<DynexCN::Blockchain::TransactionEntry>>::_Vector_impl_data" }
%"struct.std::_Vector_base<DynexCN::Blockchain::TransactionEntry, std::allocator<DynexCN::Blockchain::TransactionEntry>>::_Vector_impl_data" = type { ptr, ptr, ptr }

@_ZN7Logging10BRIGHT_REDB5cxx11E = external global %"class.std::__cxx11::basic_string", align 8
@.str.75 = external hidden unnamed_addr constant [34 x i8], align 1
@.str.76 = external hidden unnamed_addr constant [23 x i8], align 1
@.str.77 = external hidden unnamed_addr constant [45 x i8], align 1

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

; Function Attrs: nocallback nofree nounwind willreturn memory(argmem: readwrite)
declare void @llvm.memcpy.p0.p0.i64(ptr noalias nocapture writeonly, ptr noalias nocapture readonly, i64, i1 immarg) #1

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

declare i32 @__gxx_personality_v0(...)

; Function Attrs: inlinehint mustprogress uwtable
declare dso_local noundef nonnull align 8 dereferenceable(161) ptr @_ZStlsIN7Logging13LoggerMessageEmEOT_S3_RKT0_(ptr noundef nonnull align 8 dereferenceable(161), ptr noundef nonnull align 8 dereferenceable(8)) #2

declare void @_ZNK7Logging9LoggerRefclENS_5LevelERKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEE(ptr dead_on_unwind writable sret(%"class.Logging::LoggerMessage") align 8, ptr noundef nonnull align 8 dereferenceable(40), i32 noundef, ptr noundef nonnull align 8 dereferenceable(32)) #3

; Function Attrs: nounwind
declare void @_ZN7Logging13LoggerMessageD1Ev(ptr noundef nonnull align 8 dereferenceable(161)) unnamed_addr #4

; Function Attrs: mustprogress uwtable
declare dso_local void @_ZNSt10lock_guardISt15recursive_mutexEC2ERS0_(ptr noundef nonnull align 8 dereferenceable(8), ptr noundef nonnull align 8 dereferenceable(40)) unnamed_addr #5 align 2

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

; Function Attrs: mustprogress nounwind uwtable
declare dso_local noundef i64 @_ZNK13SwappedVectorIN7DynexCN10Blockchain10BlockEntryEE4sizeEv(ptr noundef nonnull align 8 dereferenceable(1184)) #6 align 2

; Function Attrs: inlinehint mustprogress uwtable
declare dso_local noundef nonnull align 8 dereferenceable(161) ptr @_ZStlsIN7Logging13LoggerMessageEA34_cEOT_S4_RKT0_(ptr noundef nonnull align 8 dereferenceable(161), ptr noundef nonnull align 1 dereferenceable(34)) #2

; Function Attrs: mustprogress uwtable
declare dso_local noundef nonnull align 8 dereferenceable(440) ptr @_ZN13SwappedVectorIN7DynexCN10Blockchain10BlockEntryEEixEm(ptr noundef nonnull align 8 dereferenceable(1184), i64 noundef) #5 align 2

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

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

; Function Attrs: mustprogress uwtable
declare dso_local noundef zeroext i8 @_ZNK7DynexCN10Blockchain29getBlockMajorVersionForHeightEj(ptr noundef nonnull align 8 dereferenceable(2636), i32 noundef) #5 align 2

; Function Attrs: inlinehint mustprogress nounwind uwtable
declare dso_local noundef nonnull align 8 dereferenceable(8) ptr @_ZSt3minImERKT_S2_S2_(ptr noundef nonnull align 8 dereferenceable(8), ptr noundef nonnull align 8 dereferenceable(8)) #7

; Function Attrs: mustprogress uwtable
declare dso_local noundef i64 @_ZNK7DynexCN8Currency35difficultyBlocksCountByBlockVersionEh(ptr noundef nonnull align 8 dereferenceable(984), i8 noundef zeroext) #5 align 2

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

declare noundef i64 @_ZNK7DynexCN8Currency14nextDifficultyEjhSt6vectorImSaImEES3_(ptr noundef nonnull align 8 dereferenceable(984), i32 noundef, i8 noundef zeroext, ptr noundef, ptr noundef) #3

; Function Attrs: mustprogress uwtable
declare dso_local void @_ZNSt6vectorImSaImEEC2ERKS1_(ptr noundef nonnull align 8 dereferenceable(24), ptr noundef nonnull align 8 dereferenceable(24)) unnamed_addr #5 align 2

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

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

; Function Attrs: mustprogress uwtable
define dso_local noundef i64 @_ZN7DynexCN10Blockchain41get_next_difficulty_for_alternative_chainERKNSt7__cxx114listINSt8__detail14_Node_iteratorISt4pairIKN6Crypto4HashENS0_10BlockEntryEELb0ELb1EEESaISB_EEERS9_(ptr noundef nonnull align 8 dereferenceable(2636) %0, ptr noundef nonnull align 8 dereferenceable(24) %1, ptr noundef nonnull align 8 dereferenceable(440) %2) #5 align 2 personality ptr @__gxx_personality_v0 {
  %4 = alloca i64, align 8
  %5 = alloca ptr, align 8
  %6 = alloca ptr, align 8
  %7 = alloca ptr, align 8
  %8 = alloca %"class.std::vector.43", align 8
  %9 = alloca %"class.std::vector.43", align 8
  %10 = alloca i8, align 1
  %11 = alloca ptr, align 8
  %12 = alloca i32, align 4
  %13 = alloca %"class.std::lock_guard", align 8
  %14 = alloca i64, align 8
  %15 = alloca i64, align 8
  %16 = alloca i64, align 8
  %17 = alloca i64, align 8
  %18 = alloca i64, align 8
  %19 = alloca %"class.Logging::LoggerMessage", align 8
  %20 = alloca i64, align 8
  %21 = alloca i64, align 8
  %22 = alloca i64, align 8
  %23 = alloca i8, align 1
  %24 = alloca i32, align 4
  %25 = alloca ptr, align 8
  %26 = alloca %"struct.std::_List_const_iterator", align 8
  %27 = alloca %"struct.std::_List_const_iterator", align 8
  %28 = alloca %"struct.std::__detail::_Node_iterator.266", align 8
  %29 = alloca i64, align 8
  %30 = alloca i64, align 8
  %31 = alloca i64, align 8
  %32 = alloca i64, align 8
  %33 = alloca i64, align 8
  %34 = alloca i64, align 8
  %35 = alloca ptr, align 8
  %36 = alloca %"struct.boost::foreach_detail_::auto_any", align 8
  %37 = alloca ptr, align 8
  %38 = alloca %"struct.boost::foreach_detail_::auto_any.280", align 8
  %39 = alloca ptr, align 8
  %40 = alloca %"struct.boost::foreach_detail_::auto_any.280", align 8
  %41 = alloca i8, align 1
  %42 = alloca %"struct.std::__detail::_Node_iterator.266", align 8
  %43 = alloca %"class.std::vector.43", align 8
  %44 = alloca %"class.std::vector.43", align 8
  store ptr %0, ptr %5, align 8, !tbaa !5
  store ptr %1, ptr %6, align 8, !tbaa !5
  store ptr %2, ptr %7, align 8, !tbaa !5
  %45 = load ptr, ptr %5, align 8
  call void @llvm.lifetime.start.p0(i64 24, ptr %8) #8
  call void @_ZNSt6vectorImSaImEEC2Ev(ptr noundef nonnull align 8 dereferenceable(24) %8) #8
  call void @llvm.lifetime.start.p0(i64 24, ptr %9) #8
  call void @_ZNSt6vectorImSaImEEC2Ev(ptr noundef nonnull align 8 dereferenceable(24) %9) #8
  call void @llvm.lifetime.start.p0(i64 1, ptr %10) #8
  %46 = getelementptr inbounds %"class.DynexCN::Blockchain", ptr %45, i32 0, i32 18
  %47 = invoke noundef i64 @_ZNK13SwappedVectorIN7DynexCN10Blockchain10BlockEntryEE4sizeEv(ptr noundef nonnull align 8 dereferenceable(1184) %46)
          to label %48 unwind label %107

48:                                               ; preds = %3
  %49 = trunc i64 %47 to i32
  %50 = invoke noundef zeroext i8 @_ZNK7DynexCN10Blockchain29getBlockMajorVersionForHeightEj(ptr noundef nonnull align 8 dereferenceable(2636) %45, i32 noundef %49)
          to label %51 unwind label %107

51:                                               ; preds = %48
  store i8 %50, ptr %10, align 1, !tbaa !9
  %52 = load ptr, ptr %6, align 8, !tbaa !5
  %53 = call noundef i64 @_ZNKSt7__cxx114listINSt8__detail14_Node_iteratorISt4pairIKN6Crypto4HashEN7DynexCN10Blockchain10BlockEntryEELb0ELb1EEESaISB_EE4sizeEv(ptr noundef nonnull align 8 dereferenceable(24) %52) #8
  %54 = getelementptr inbounds %"class.DynexCN::Blockchain", ptr %45, i32 0, i32 5
  %55 = load ptr, ptr %54, align 8, !tbaa !10
  %56 = load i8, ptr %10, align 1, !tbaa !9
  %57 = invoke noundef i64 @_ZNK7DynexCN8Currency35difficultyBlocksCountByBlockVersionEh(ptr noundef nonnull align 8 dereferenceable(984) %55, i8 noundef zeroext %56)
          to label %58 unwind label %107

58:                                               ; preds = %51
  %59 = icmp ult i64 %53, %57
  br i1 %59, label %60, label %254

60:                                               ; preds = %58
  call void @llvm.lifetime.start.p0(i64 8, ptr %13) #8
  %61 = getelementptr inbounds %"class.DynexCN::Blockchain", ptr %45, i32 0, i32 7
  invoke void @_ZNSt10lock_guardISt15recursive_mutexEC2ERS0_(ptr noundef nonnull align 8 dereferenceable(8) %13, ptr noundef nonnull align 8 dereferenceable(40) %61)
          to label %62 unwind label %111

62:                                               ; preds = %60
  call void @llvm.lifetime.start.p0(i64 8, ptr %14) #8
  %63 = load ptr, ptr %6, align 8, !tbaa !5
  %64 = call noundef i64 @_ZNKSt7__cxx114listINSt8__detail14_Node_iteratorISt4pairIKN6Crypto4HashEN7DynexCN10Blockchain10BlockEntryEELb0ELb1EEESaISB_EE4sizeEv(ptr noundef nonnull align 8 dereferenceable(24) %63) #8
  %65 = icmp ne i64 %64, 0
  br i1 %65, label %66, label %73

66:                                               ; preds = %62
  %67 = load ptr, ptr %6, align 8, !tbaa !5
  %68 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNKSt7__cxx114listINSt8__detail14_Node_iteratorISt4pairIKN6Crypto4HashEN7DynexCN10Blockchain10BlockEntryEELb0ELb1EEESaISB_EE5frontEv(ptr noundef nonnull align 8 dereferenceable(24) %67) #8
  %69 = call noundef ptr @_ZNKSt8__detail14_Node_iteratorISt4pairIKN6Crypto4HashEN7DynexCN10Blockchain10BlockEntryEELb0ELb1EEptEv(ptr noundef nonnull align 8 dereferenceable(8) %68) #8
  %70 = getelementptr inbounds %"struct.std::pair.263", ptr %69, i32 0, i32 1
  %71 = getelementptr inbounds %"struct.DynexCN::Blockchain::BlockEntry", ptr %70, i32 0, i32 1
  %72 = load i32, ptr %71, align 8, !tbaa !151
  br label %77

73:                                               ; preds = %62
  %74 = load ptr, ptr %7, align 8, !tbaa !5
  %75 = getelementptr inbounds %"struct.DynexCN::Blockchain::BlockEntry", ptr %74, i32 0, i32 1
  %76 = load i32, ptr %75, align 8, !tbaa !185
  br label %77

77:                                               ; preds = %73, %66
  %78 = phi i32 [ %72, %66 ], [ %76, %73 ]
  %79 = zext i32 %78 to i64
  store i64 %79, ptr %14, align 8, !tbaa !186
  call void @llvm.lifetime.start.p0(i64 8, ptr %15) #8
  %80 = getelementptr inbounds %"class.DynexCN::Blockchain", ptr %45, i32 0, i32 5
  %81 = load ptr, ptr %80, align 8, !tbaa !10
  %82 = load i8, ptr %10, align 1, !tbaa !9
  %83 = invoke noundef i64 @_ZNK7DynexCN8Currency35difficultyBlocksCountByBlockVersionEh(ptr noundef nonnull align 8 dereferenceable(984) %81, i8 noundef zeroext %82)
          to label %84 unwind label %115

84:                                               ; preds = %77
  call void @llvm.lifetime.start.p0(i64 8, ptr %16) #8
  %85 = getelementptr inbounds %"class.DynexCN::Blockchain", ptr %45, i32 0, i32 5
  %86 = load ptr, ptr %85, align 8, !tbaa !10
  %87 = load i8, ptr %10, align 1, !tbaa !9
  %88 = invoke noundef i64 @_ZNK7DynexCN8Currency35difficultyBlocksCountByBlockVersionEh(ptr noundef nonnull align 8 dereferenceable(984) %86, i8 noundef zeroext %87)
          to label %89 unwind label %119

89:                                               ; preds = %84
  store i64 %88, ptr %16, align 8, !tbaa !186
  call void @llvm.lifetime.start.p0(i64 8, ptr %17) #8
  %90 = load ptr, ptr %6, align 8, !tbaa !5
  %91 = call noundef i64 @_ZNKSt7__cxx114listINSt8__detail14_Node_iteratorISt4pairIKN6Crypto4HashEN7DynexCN10Blockchain10BlockEntryEELb0ELb1EEESaISB_EE4sizeEv(ptr noundef nonnull align 8 dereferenceable(24) %90) #8
  store i64 %91, ptr %17, align 8, !tbaa !186
  %92 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZSt3minImERKT_S2_S2_(ptr noundef nonnull align 8 dereferenceable(8) %16, ptr noundef nonnull align 8 dereferenceable(8) %17)
          to label %93 unwind label %123

93:                                               ; preds = %89
  %94 = load i64, ptr %92, align 8, !tbaa !186
  %95 = sub i64 %83, %94
  call void @llvm.lifetime.end.p0(i64 8, ptr %17) #8
  call void @llvm.lifetime.end.p0(i64 8, ptr %16) #8
  store i64 %95, ptr %15, align 8, !tbaa !186
  %96 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZSt3minImERKT_S2_S2_(ptr noundef nonnull align 8 dereferenceable(8) %15, ptr noundef nonnull align 8 dereferenceable(8) %14)
          to label %97 unwind label %115

97:                                               ; preds = %93
  %98 = load i64, ptr %96, align 8, !tbaa !186
  store i64 %98, ptr %15, align 8, !tbaa !186
  call void @llvm.lifetime.start.p0(i64 8, ptr %18) #8
  %99 = load i64, ptr %14, align 8, !tbaa !186
  %100 = load i64, ptr %15, align 8, !tbaa !186
  %101 = sub i64 %99, %100
  store i64 %101, ptr %18, align 8, !tbaa !186
  %102 = load i64, ptr %18, align 8, !tbaa !186
  %103 = icmp ne i64 %102, 0
  br i1 %103, label %128, label %104

104:                                              ; preds = %97
  %105 = load i64, ptr %18, align 8, !tbaa !186
  %106 = add i64 %105, 1
  store i64 %106, ptr %18, align 8, !tbaa !186
  br label %128

107:                                              ; preds = %434, %429, %51, %48, %3
  %108 = landingpad { ptr, i32 }
          cleanup
  %109 = extractvalue { ptr, i32 } %108, 0
  store ptr %109, ptr %11, align 8
  %110 = extractvalue { ptr, i32 } %108, 1
  store i32 %110, ptr %12, align 4
  br label %452

111:                                              ; preds = %60
  %112 = landingpad { ptr, i32 }
          cleanup
  %113 = extractvalue { ptr, i32 } %112, 0
  store ptr %113, ptr %11, align 8
  %114 = extractvalue { ptr, i32 } %112, 1
  store i32 %114, ptr %12, align 4
  br label %253

115:                                              ; preds = %93, %77
  %116 = landingpad { ptr, i32 }
          cleanup
  %117 = extractvalue { ptr, i32 } %116, 0
  store ptr %117, ptr %11, align 8
  %118 = extractvalue { ptr, i32 } %116, 1
  store i32 %118, ptr %12, align 4
  br label %252

119:                                              ; preds = %84
  %120 = landingpad { ptr, i32 }
          cleanup
  %121 = extractvalue { ptr, i32 } %120, 0
  store ptr %121, ptr %11, align 8
  %122 = extractvalue { ptr, i32 } %120, 1
  store i32 %122, ptr %12, align 4
  br label %127

123:                                              ; preds = %89
  %124 = landingpad { ptr, i32 }
          cleanup
  %125 = extractvalue { ptr, i32 } %124, 0
  store ptr %125, ptr %11, align 8
  %126 = extractvalue { ptr, i32 } %124, 1
  store i32 %126, ptr %12, align 4
  call void @llvm.lifetime.end.p0(i64 8, ptr %17) #8
  br label %127

127:                                              ; preds = %123, %119
  call void @llvm.lifetime.end.p0(i64 8, ptr %16) #8
  br label %252

128:                                              ; preds = %104, %97
  br label %129

129:                                              ; preds = %147, %128
  %130 = load i64, ptr %18, align 8, !tbaa !186
  %131 = load i64, ptr %14, align 8, !tbaa !186
  %132 = icmp ult i64 %130, %131
  br i1 %132, label %133, label %154

133:                                              ; preds = %129
  %134 = getelementptr inbounds %"class.DynexCN::Blockchain", ptr %45, i32 0, i32 18
  %135 = load i64, ptr %18, align 8, !tbaa !186
  %136 = invoke noundef nonnull align 8 dereferenceable(440) ptr @_ZN13SwappedVectorIN7DynexCN10Blockchain10BlockEntryEEixEm(ptr noundef nonnull align 8 dereferenceable(1184) %134, i64 noundef %135)
          to label %137 unwind label %150

137:                                              ; preds = %133
  %138 = getelementptr inbounds %"struct.DynexCN::Blockchain::BlockEntry", ptr %136, i32 0, i32 0
  %139 = getelementptr inbounds %"struct.DynexCN::BlockHeader", ptr %138, i32 0, i32 3
  invoke void @_ZNSt6vectorImSaImEE9push_backERKm(ptr noundef nonnull align 8 dereferenceable(24) %8, ptr noundef nonnull align 8 dereferenceable(8) %139)
          to label %140 unwind label %150

140:                                              ; preds = %137
  %141 = getelementptr inbounds %"class.DynexCN::Blockchain", ptr %45, i32 0, i32 18
  %142 = load i64, ptr %18, align 8, !tbaa !186
  %143 = invoke noundef nonnull align 8 dereferenceable(440) ptr @_ZN13SwappedVectorIN7DynexCN10Blockchain10BlockEntryEEixEm(ptr noundef nonnull align 8 dereferenceable(1184) %141, i64 noundef %142)
          to label %144 unwind label %150

144:                                              ; preds = %140
  %145 = getelementptr inbounds %"struct.DynexCN::Blockchain::BlockEntry", ptr %143, i32 0, i32 3
  invoke void @_ZNSt6vectorImSaImEE9push_backERKm(ptr noundef nonnull align 8 dereferenceable(24) %9, ptr noundef nonnull align 8 dereferenceable(8) %145)
          to label %146 unwind label %150

146:                                              ; preds = %144
  br label %147

147:                                              ; preds = %146
  %148 = load i64, ptr %18, align 8, !tbaa !186
  %149 = add i64 %148, 1
  store i64 %149, ptr %18, align 8, !tbaa !186
  br label %129, !llvm.loop !187

150:                                              ; preds = %154, %144, %140, %137, %133
  %151 = landingpad { ptr, i32 }
          cleanup
  %152 = extractvalue { ptr, i32 } %151, 0
  store ptr %152, ptr %11, align 8
  %153 = extractvalue { ptr, i32 } %151, 1
  store i32 %153, ptr %12, align 4
  br label %251

154:                                              ; preds = %129
  %155 = load ptr, ptr %6, align 8, !tbaa !5
  %156 = call noundef i64 @_ZNKSt7__cxx114listINSt8__detail14_Node_iteratorISt4pairIKN6Crypto4HashEN7DynexCN10Blockchain10BlockEntryEELb0ELb1EEESaISB_EE4sizeEv(ptr noundef nonnull align 8 dereferenceable(24) %155) #8
  %157 = call noundef i64 @_ZNKSt6vectorImSaImEE4sizeEv(ptr noundef nonnull align 8 dereferenceable(24) %8) #8
  %158 = add i64 %156, %157
  %159 = getelementptr inbounds %"class.DynexCN::Blockchain", ptr %45, i32 0, i32 5
  %160 = load ptr, ptr %159, align 8, !tbaa !10
  %161 = load i8, ptr %10, align 1, !tbaa !9
  %162 = invoke noundef i64 @_ZNK7DynexCN8Currency35difficultyBlocksCountByBlockVersionEh(ptr noundef nonnull align 8 dereferenceable(984) %160, i8 noundef zeroext %161)
          to label %163 unwind label %150

163:                                              ; preds = %154
  %164 = icmp ule i64 %158, %162
  br i1 %164, label %219, label %165

165:                                              ; preds = %163
  call void @llvm.lifetime.start.p0(i64 432, ptr %19) #8
  %166 = getelementptr inbounds %"class.DynexCN::Blockchain", ptr %45, i32 0, i32 33
  invoke void @_ZNK7Logging9LoggerRefclENS_5LevelERKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEE(ptr dead_on_unwind writable sret(%"class.Logging::LoggerMessage") align 8 %19, ptr noundef nonnull align 8 dereferenceable(40) %166, i32 noundef 1, ptr noundef nonnull align 8 dereferenceable(32) @_ZN7Logging10BRIGHT_REDB5cxx11E)
          to label %167 unwind label %190

167:                                              ; preds = %165
  %168 = invoke noundef nonnull align 8 dereferenceable(161) ptr @_ZStlsIN7Logging13LoggerMessageEA34_cEOT_S4_RKT0_(ptr noundef nonnull align 8 dereferenceable(161) %19, ptr noundef nonnull align 1 dereferenceable(34) @.str.75)
          to label %169 unwind label %194

169:                                              ; preds = %167
  call void @llvm.lifetime.start.p0(i64 8, ptr %20) #8
  %170 = load ptr, ptr %6, align 8, !tbaa !5
  %171 = call noundef i64 @_ZNKSt7__cxx114listINSt8__detail14_Node_iteratorISt4pairIKN6Crypto4HashEN7DynexCN10Blockchain10BlockEntryEELb0ELb1EEESaISB_EE4sizeEv(ptr noundef nonnull align 8 dereferenceable(24) %170) #8
  store i64 %171, ptr %20, align 8, !tbaa !186
  %172 = invoke noundef nonnull align 8 dereferenceable(161) ptr @_ZStlsIN7Logging13LoggerMessageEmEOT_S3_RKT0_(ptr noundef nonnull align 8 dereferenceable(161) %168, ptr noundef nonnull align 8 dereferenceable(8) %20)
          to label %173 unwind label %198

173:                                              ; preds = %169
  %174 = invoke noundef nonnull align 8 dereferenceable(161) ptr @_ZStlsIN7Logging13LoggerMessageEA23_cEOT_S4_RKT0_(ptr noundef nonnull align 8 dereferenceable(161) %172, ptr noundef nonnull align 1 dereferenceable(23) @.str.76)
          to label %175 unwind label %198

175:                                              ; preds = %173
  call void @llvm.lifetime.start.p0(i64 8, ptr %21) #8
  %176 = call noundef i64 @_ZNKSt6vectorImSaImEE4sizeEv(ptr noundef nonnull align 8 dereferenceable(24) %8) #8
  store i64 %176, ptr %21, align 8, !tbaa !186
  %177 = invoke noundef nonnull align 8 dereferenceable(161) ptr @_ZStlsIN7Logging13LoggerMessageEmEOT_S3_RKT0_(ptr noundef nonnull align 8 dereferenceable(161) %174, ptr noundef nonnull align 8 dereferenceable(8) %21)
          to label %178 unwind label %202

178:                                              ; preds = %175
  %179 = invoke noundef nonnull align 8 dereferenceable(161) ptr @_ZStlsIN7Logging13LoggerMessageEA45_cEOT_S4_RKT0_(ptr noundef nonnull align 8 dereferenceable(161) %177, ptr noundef nonnull align 1 dereferenceable(45) @.str.77)
          to label %180 unwind label %202

180:                                              ; preds = %178
  call void @llvm.lifetime.start.p0(i64 8, ptr %22) #8
  %181 = getelementptr inbounds %"class.DynexCN::Blockchain", ptr %45, i32 0, i32 5
  %182 = load ptr, ptr %181, align 8, !tbaa !10
  %183 = load i8, ptr %10, align 1, !tbaa !9
  %184 = invoke noundef i64 @_ZNK7DynexCN8Currency35difficultyBlocksCountByBlockVersionEh(ptr noundef nonnull align 8 dereferenceable(984) %182, i8 noundef zeroext %183)
          to label %185 unwind label %206

185:                                              ; preds = %180
  store i64 %184, ptr %22, align 8, !tbaa !186
  %186 = invoke noundef nonnull align 8 dereferenceable(161) ptr @_ZStlsIN7Logging13LoggerMessageEmEOT_S3_RKT0_(ptr noundef nonnull align 8 dereferenceable(161) %179, ptr noundef nonnull align 8 dereferenceable(8) %22)
          to label %187 unwind label %206

187:                                              ; preds = %185
  call void @llvm.lifetime.start.p0(i64 1, ptr %23) #8
  store i8 93, ptr %23, align 1, !tbaa !9
  %188 = invoke noundef nonnull align 8 dereferenceable(161) ptr @_ZStlsIN7Logging13LoggerMessageEcEOT_S3_RKT0_(ptr noundef nonnull align 8 dereferenceable(161) %186, ptr noundef nonnull align 1 dereferenceable(1) %23)
          to label %189 unwind label %210

189:                                              ; preds = %187
  call void @llvm.lifetime.end.p0(i64 1, ptr %23) #8
  call void @llvm.lifetime.end.p0(i64 8, ptr %22) #8
  call void @llvm.lifetime.end.p0(i64 8, ptr %21) #8
  call void @llvm.lifetime.end.p0(i64 8, ptr %20) #8
  call void @_ZN7Logging13LoggerMessageD1Ev(ptr noundef nonnull align 8 dereferenceable(161) %19) #8
  call void @llvm.lifetime.end.p0(i64 432, ptr %19) #8
  store i64 0, ptr %4, align 8
  store i32 1, ptr %24, align 4
  br label %248

190:                                              ; preds = %165
  %191 = landingpad { ptr, i32 }
          cleanup
  %192 = extractvalue { ptr, i32 } %191, 0
  store ptr %192, ptr %11, align 8
  %193 = extractvalue { ptr, i32 } %191, 1
  store i32 %193, ptr %12, align 4
  br label %218

194:                                              ; preds = %167
  %195 = landingpad { ptr, i32 }
          cleanup
  %196 = extractvalue { ptr, i32 } %195, 0
  store ptr %196, ptr %11, align 8
  %197 = extractvalue { ptr, i32 } %195, 1
  store i32 %197, ptr %12, align 4
  br label %217

198:                                              ; preds = %173, %169
  %199 = landingpad { ptr, i32 }
          cleanup
  %200 = extractvalue { ptr, i32 } %199, 0
  store ptr %200, ptr %11, align 8
  %201 = extractvalue { ptr, i32 } %199, 1
  store i32 %201, ptr %12, align 4
  br label %216

202:                                              ; preds = %178, %175
  %203 = landingpad { ptr, i32 }
          cleanup
  %204 = extractvalue { ptr, i32 } %203, 0
  store ptr %204, ptr %11, align 8
  %205 = extractvalue { ptr, i32 } %203, 1
  store i32 %205, ptr %12, align 4
  br label %215

206:                                              ; preds = %185, %180
  %207 = landingpad { ptr, i32 }
          cleanup
  %208 = extractvalue { ptr, i32 } %207, 0
  store ptr %208, ptr %11, align 8
  %209 = extractvalue { ptr, i32 } %207, 1
  store i32 %209, ptr %12, align 4
  br label %214

210:                                              ; preds = %187
  %211 = landingpad { ptr, i32 }
          cleanup
  %212 = extractvalue { ptr, i32 } %211, 0
  store ptr %212, ptr %11, align 8
  %213 = extractvalue { ptr, i32 } %211, 1
  store i32 %213, ptr %12, align 4
  call void @llvm.lifetime.end.p0(i64 1, ptr %23) #8
  br label %214

214:                                              ; preds = %210, %206
  call void @llvm.lifetime.end.p0(i64 8, ptr %22) #8
  br label %215

215:                                              ; preds = %214, %202
  call void @llvm.lifetime.end.p0(i64 8, ptr %21) #8
  br label %216

216:                                              ; preds = %215, %198
  call void @llvm.lifetime.end.p0(i64 8, ptr %20) #8
  br label %217

217:                                              ; preds = %216, %194
  call void @_ZN7Logging13LoggerMessageD1Ev(ptr noundef nonnull align 8 dereferenceable(161) %19) #8
  br label %218

218:                                              ; preds = %217, %190
  call void @llvm.lifetime.end.p0(i64 432, ptr %19) #8
  br label %251

219:                                              ; preds = %163
  call void @llvm.lifetime.start.p0(i64 8, ptr %25) #8
  %220 = load ptr, ptr %6, align 8, !tbaa !5
  store ptr %220, ptr %25, align 8, !tbaa !5
  call void @llvm.lifetime.start.p0(i64 8, ptr %26) #8
  %221 = load ptr, ptr %25, align 8, !tbaa !5
  %222 = call ptr @_ZNKSt7__cxx114listINSt8__detail14_Node_iteratorISt4pairIKN6Crypto4HashEN7DynexCN10Blockchain10BlockEntryEELb0ELb1EEESaISB_EE5beginEv(ptr noundef nonnull align 8 dereferenceable(24) %221) #8
  %223 = getelementptr inbounds %"struct.std::_List_const_iterator", ptr %26, i32 0, i32 0
  store ptr %222, ptr %223, align 8
  call void @llvm.lifetime.start.p0(i64 8, ptr %27) #8
  %224 = load ptr, ptr %25, align 8, !tbaa !5
  %225 = call ptr @_ZNKSt7__cxx114listINSt8__detail14_Node_iteratorISt4pairIKN6Crypto4HashEN7DynexCN10Blockchain10BlockEntryEELb0ELb1EEESaISB_EE3endEv(ptr noundef nonnull align 8 dereferenceable(24) %224) #8
  %226 = getelementptr inbounds %"struct.std::_List_const_iterator", ptr %27, i32 0, i32 0
  store ptr %225, ptr %226, align 8
  br label %227

227:                                              ; preds = %241, %219
  %228 = call noundef zeroext i1 @_ZStneRKSt20_List_const_iteratorINSt8__detail14_Node_iteratorISt4pairIKN6Crypto4HashEN7DynexCN10Blockchain10BlockEntryEELb0ELb1EEEESD_(ptr noundef nonnull align 8 dereferenceable(8) %26, ptr noundef nonnull align 8 dereferenceable(8) %27) #8
  br i1 %228, label %230, label %229

229:                                              ; preds = %227
  store i32 5, ptr %24, align 4
  call void @llvm.lifetime.end.p0(i64 8, ptr %27) #8
  call void @llvm.lifetime.end.p0(i64 8, ptr %26) #8
  call void @llvm.lifetime.end.p0(i64 8, ptr %25) #8
  br label %247

230:                                              ; preds = %227
  call void @llvm.lifetime.start.p0(i64 8, ptr %28) #8
  %231 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNKSt20_List_const_iteratorINSt8__detail14_Node_iteratorISt4pairIKN6Crypto4HashEN7DynexCN10Blockchain10BlockEntryEELb0ELb1EEEEdeEv(ptr noundef nonnull align 8 dereferenceable(8) %26) #8
  call void @llvm.memcpy.p0.p0.i64(ptr align 8 %28, ptr align 8 %231, i64 8, i1 false)
  %232 = call noundef ptr @_ZNKSt8__detail14_Node_iteratorISt4pairIKN6Crypto4HashEN7DynexCN10Blockchain10BlockEntryEELb0ELb1EEptEv(ptr noundef nonnull align 8 dereferenceable(8) %28) #8
  %233 = getelementptr inbounds %"struct.std::pair.263", ptr %232, i32 0, i32 1
  %234 = getelementptr inbounds %"struct.DynexCN::Blockchain::BlockEntry", ptr %233, i32 0, i32 0
  %235 = getelementptr inbounds %"struct.DynexCN::BlockHeader", ptr %234, i32 0, i32 3
  invoke void @_ZNSt6vectorImSaImEE9push_backERKm(ptr noundef nonnull align 8 dereferenceable(24) %8, ptr noundef nonnull align 8 dereferenceable(8) %235)
          to label %236 unwind label %243

236:                                              ; preds = %230
  %237 = call noundef ptr @_ZNKSt8__detail14_Node_iteratorISt4pairIKN6Crypto4HashEN7DynexCN10Blockchain10BlockEntryEELb0ELb1EEptEv(ptr noundef nonnull align 8 dereferenceable(8) %28) #8
  %238 = getelementptr inbounds %"struct.std::pair.263", ptr %237, i32 0, i32 1
  %239 = getelementptr inbounds %"struct.DynexCN::Blockchain::BlockEntry", ptr %238, i32 0, i32 3
  invoke void @_ZNSt6vectorImSaImEE9push_backERKm(ptr noundef nonnull align 8 dereferenceable(24) %9, ptr noundef nonnull align 8 dereferenceable(8) %239)
          to label %240 unwind label %243

240:                                              ; preds = %236
  call void @llvm.lifetime.end.p0(i64 8, ptr %28) #8
  br label %241

241:                                              ; preds = %240
  %242 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNSt20_List_const_iteratorINSt8__detail14_Node_iteratorISt4pairIKN6Crypto4HashEN7DynexCN10Blockchain10BlockEntryEELb0ELb1EEEEppEv(ptr noundef nonnull align 8 dereferenceable(8) %26) #8
  br label %227

243:                                              ; preds = %236, %230
  %244 = landingpad { ptr, i32 }
          cleanup
  %245 = extractvalue { ptr, i32 } %244, 0
  store ptr %245, ptr %11, align 8
  %246 = extractvalue { ptr, i32 } %244, 1
  store i32 %246, ptr %12, align 4
  call void @llvm.lifetime.end.p0(i64 8, ptr %28) #8
  call void @llvm.lifetime.end.p0(i64 8, ptr %27) #8
  call void @llvm.lifetime.end.p0(i64 8, ptr %26) #8
  call void @llvm.lifetime.end.p0(i64 8, ptr %25) #8
  br label %251

247:                                              ; preds = %229
  store i32 0, ptr %24, align 4
  br label %248

248:                                              ; preds = %247, %189
  call void @llvm.lifetime.end.p0(i64 8, ptr %18) #8
  call void @llvm.lifetime.end.p0(i64 8, ptr %15) #8
  call void @llvm.lifetime.end.p0(i64 8, ptr %14) #8
  call void @_ZNSt10lock_guardISt15recursive_mutexED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %13) #8
  call void @llvm.lifetime.end.p0(i64 8, ptr %13) #8
  %249 = load i32, ptr %24, align 4
  switch i32 %249, label %450 [
    i32 0, label %250
  ]

250:                                              ; preds = %248
  br label %429

251:                                              ; preds = %243, %218, %150
  call void @llvm.lifetime.end.p0(i64 8, ptr %18) #8
  br label %252

252:                                              ; preds = %251, %127, %115
  call void @llvm.lifetime.end.p0(i64 8, ptr %15) #8
  call void @llvm.lifetime.end.p0(i64 8, ptr %14) #8
  call void @_ZNSt10lock_guardISt15recursive_mutexED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %13) #8
  br label %253

253:                                              ; preds = %252, %111
  call void @llvm.lifetime.end.p0(i64 8, ptr %13) #8
  br label %452

254:                                              ; preds = %58
  call void @llvm.lifetime.start.p0(i64 8, ptr %29) #8
  %255 = load ptr, ptr %6, align 8, !tbaa !5
  %256 = call noundef i64 @_ZNKSt7__cxx114listINSt8__detail14_Node_iteratorISt4pairIKN6Crypto4HashEN7DynexCN10Blockchain10BlockEntryEELb0ELb1EEESaISB_EE4sizeEv(ptr noundef nonnull align 8 dereferenceable(24) %255) #8
  store i64 %256, ptr %29, align 8, !tbaa !186
  call void @llvm.lifetime.start.p0(i64 8, ptr %30) #8
  %257 = getelementptr inbounds %"class.DynexCN::Blockchain", ptr %45, i32 0, i32 5
  %258 = load ptr, ptr %257, align 8, !tbaa !10
  %259 = load i8, ptr %10, align 1, !tbaa !9
  %260 = invoke noundef i64 @_ZNK7DynexCN8Currency35difficultyBlocksCountByBlockVersionEh(ptr noundef nonnull align 8 dereferenceable(984) %258, i8 noundef zeroext %259)
          to label %261 unwind label %287

261:                                              ; preds = %254
  store i64 %260, ptr %30, align 8, !tbaa !186
  %262 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZSt3minImERKT_S2_S2_(ptr noundef nonnull align 8 dereferenceable(8) %29, ptr noundef nonnull align 8 dereferenceable(8) %30)
          to label %263 unwind label %287

263:                                              ; preds = %261
  %264 = load i64, ptr %262, align 8, !tbaa !186
  invoke void @_ZNSt6vectorImSaImEE6resizeEm(ptr noundef nonnull align 8 dereferenceable(24) %8, i64 noundef %264)
          to label %265 unwind label %287

265:                                              ; preds = %263
  call void @llvm.lifetime.end.p0(i64 8, ptr %30) #8
  call void @llvm.lifetime.end.p0(i64 8, ptr %29) #8
  call void @llvm.lifetime.start.p0(i64 8, ptr %31) #8
  %266 = load ptr, ptr %6, align 8, !tbaa !5
  %267 = call noundef i64 @_ZNKSt7__cxx114listINSt8__detail14_Node_iteratorISt4pairIKN6Crypto4HashEN7DynexCN10Blockchain10BlockEntryEELb0ELb1EEESaISB_EE4sizeEv(ptr noundef nonnull align 8 dereferenceable(24) %266) #8
  store i64 %267, ptr %31, align 8, !tbaa !186
  call void @llvm.lifetime.start.p0(i64 8, ptr %32) #8
  %268 = getelementptr inbounds %"class.DynexCN::Blockchain", ptr %45, i32 0, i32 5
  %269 = load ptr, ptr %268, align 8, !tbaa !10
  %270 = load i8, ptr %10, align 1, !tbaa !9
  %271 = invoke noundef i64 @_ZNK7DynexCN8Currency35difficultyBlocksCountByBlockVersionEh(ptr noundef nonnull align 8 dereferenceable(984) %269, i8 noundef zeroext %270)
          to label %272 unwind label %291

272:                                              ; preds = %265
  store i64 %271, ptr %32, align 8, !tbaa !186
  %273 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZSt3minImERKT_S2_S2_(ptr noundef nonnull align 8 dereferenceable(8) %31, ptr noundef nonnull align 8 dereferenceable(8) %32)
          to label %274 unwind label %291

274:                                              ; preds = %272
  %275 = load i64, ptr %273, align 8, !tbaa !186
  invoke void @_ZNSt6vectorImSaImEE6resizeEm(ptr noundef nonnull align 8 dereferenceable(24) %9, i64 noundef %275)
          to label %276 unwind label %291

276:                                              ; preds = %274
  call void @llvm.lifetime.end.p0(i64 8, ptr %32) #8
  call void @llvm.lifetime.end.p0(i64 8, ptr %31) #8
  call void @llvm.lifetime.start.p0(i64 8, ptr %33) #8
  store i64 0, ptr %33, align 8, !tbaa !186
  call void @llvm.lifetime.start.p0(i64 8, ptr %34) #8
  %277 = call noundef i64 @_ZNKSt6vectorImSaImEE4sizeEv(ptr noundef nonnull align 8 dereferenceable(24) %8) #8
  %278 = sub i64 %277, 1
  store i64 %278, ptr %34, align 8, !tbaa !186
  call void @llvm.lifetime.start.p0(i64 8, ptr %35) #8
  call void @llvm.lifetime.start.p0(i64 8, ptr %36) #8
  %279 = load ptr, ptr %6, align 8, !tbaa !5
  %280 = invoke ptr @_ZN5boost15foreach_detail_7containIKNSt7__cxx114listINSt8__detail14_Node_iteratorISt4pairIKN6Crypto4HashEN7DynexCN10Blockchain10BlockEntryEELb0ELb1EEESaISE_EEEEENS0_8auto_anyIPT_EERSJ_PN4mpl_5bool_ILb0EEE(ptr noundef nonnull align 8 dereferenceable(24) %279, ptr noundef null)
          to label %281 unwind label %295

281:                                              ; preds = %276
  %282 = getelementptr inbounds %"struct.boost::foreach_detail_::auto_any", ptr %36, i32 0, i32 0
  store ptr %280, ptr %282, align 8
  store ptr %36, ptr %35, align 8, !tbaa !5
  %283 = load ptr, ptr %35, align 8, !tbaa !5
  %284 = invoke noundef zeroext i1 @_ZNK5boost15foreach_detail_13auto_any_basecvbEv(ptr noundef nonnull align 1 dereferenceable(1) %283)
          to label %285 unwind label %299

285:                                              ; preds = %281
  br i1 %284, label %286, label %303

286:                                              ; preds = %285
  br label %426

287:                                              ; preds = %263, %261, %254
  %288 = landingpad { ptr, i32 }
          cleanup
  %289 = extractvalue { ptr, i32 } %288, 0
  store ptr %289, ptr %11, align 8
  %290 = extractvalue { ptr, i32 } %288, 1
  store i32 %290, ptr %12, align 4
  call void @llvm.lifetime.end.p0(i64 8, ptr %30) #8
  call void @llvm.lifetime.end.p0(i64 8, ptr %29) #8
  br label %452

291:                                              ; preds = %274, %272, %265
  %292 = landingpad { ptr, i32 }
          cleanup
  %293 = extractvalue { ptr, i32 } %292, 0
  store ptr %293, ptr %11, align 8
  %294 = extractvalue { ptr, i32 } %292, 1
  store i32 %294, ptr %12, align 4
  call void @llvm.lifetime.end.p0(i64 8, ptr %32) #8
  call void @llvm.lifetime.end.p0(i64 8, ptr %31) #8
  br label %452

295:                                              ; preds = %276
  %296 = landingpad { ptr, i32 }
          cleanup
  %297 = extractvalue { ptr, i32 } %296, 0
  store ptr %297, ptr %11, align 8
  %298 = extractvalue { ptr, i32 } %296, 1
  store i32 %298, ptr %12, align 4
  br label %428

299:                                              ; preds = %281
  %300 = landingpad { ptr, i32 }
          cleanup
  %301 = extractvalue { ptr, i32 } %300, 0
  store ptr %301, ptr %11, align 8
  %302 = extractvalue { ptr, i32 } %300, 1
  store i32 %302, ptr %12, align 4
  br label %427

303:                                              ; preds = %285
  call void @llvm.lifetime.start.p0(i64 8, ptr %37) #8
  call void @llvm.lifetime.start.p0(i64 8, ptr %38) #8
  %304 = load ptr, ptr %35, align 8, !tbaa !5
  %305 = invoke ptr @_ZN5boost15foreach_detail_6rbeginINSt7__cxx114listINSt8__detail14_Node_iteratorISt4pairIKN6Crypto4HashEN7DynexCN10Blockchain10BlockEntryEELb0ELb1EEESaISE_EEEN4mpl_5bool_ILb1EEEEENS0_8auto_anyINS0_24foreach_reverse_iteratorIT_T0_E4typeEEERKNS0_13auto_any_baseEPNS0_9type2typeISM_SN_EEPNSI_ILb0EEE(ptr noundef nonnull align 1 dereferenceable(1) %304, ptr noundef null, ptr noundef null)
          to label %306 unwind label %315

306:                                              ; preds = %303
  %307 = getelementptr inbounds %"struct.boost::foreach_detail_::auto_any.280", ptr %38, i32 0, i32 0
  %308 = getelementptr inbounds %"class.boost::iterators::reverse_iterator", ptr %307, i32 0, i32 0
  %309 = getelementptr inbounds %"class.boost::iterators::iterator_adaptor", ptr %308, i32 0, i32 0
  %310 = getelementptr inbounds %"struct.std::_List_const_iterator", ptr %309, i32 0, i32 0
  store ptr %305, ptr %310, align 8
  store ptr %38, ptr %37, align 8, !tbaa !5
  %311 = load ptr, ptr %37, align 8, !tbaa !5
  %312 = invoke noundef zeroext i1 @_ZNK5boost15foreach_detail_13auto_any_basecvbEv(ptr noundef nonnull align 1 dereferenceable(1) %311)
          to label %313 unwind label %319

313:                                              ; preds = %306
  br i1 %312, label %314, label %323

314:                                              ; preds = %313
  br label %423

315:                                              ; preds = %303
  %316 = landingpad { ptr, i32 }
          cleanup
  %317 = extractvalue { ptr, i32 } %316, 0
  store ptr %317, ptr %11, align 8
  %318 = extractvalue { ptr, i32 } %316, 1
  store i32 %318, ptr %12, align 4
  br label %425

319:                                              ; preds = %306
  %320 = landingpad { ptr, i32 }
          cleanup
  %321 = extractvalue { ptr, i32 } %320, 0
  store ptr %321, ptr %11, align 8
  %322 = extractvalue { ptr, i32 } %320, 1
  store i32 %322, ptr %12, align 4
  br label %424

323:                                              ; preds = %313
  call void @llvm.lifetime.start.p0(i64 8, ptr %39) #8
  call void @llvm.lifetime.start.p0(i64 8, ptr %40) #8
  %324 = load ptr, ptr %35, align 8, !tbaa !5
  %325 = invoke ptr @_ZN5boost15foreach_detail_4rendINSt7__cxx114listINSt8__detail14_Node_iteratorISt4pairIKN6Crypto4HashEN7DynexCN10Blockchain10BlockEntryEELb0ELb1EEESaISE_EEEN4mpl_5bool_ILb1EEEEENS0_8auto_anyINS0_24foreach_reverse_iteratorIT_T0_E4typeEEERKNS0_13auto_any_baseEPNS0_9type2typeISM_SN_EEPNSI_ILb0EEE(ptr noundef nonnull align 1 dereferenceable(1) %324, ptr noundef null, ptr noundef null)
          to label %326 unwind label %335

326:                                              ; preds = %323
  %327 = getelementptr inbounds %"struct.boost::foreach_detail_::auto_any.280", ptr %40, i32 0, i32 0
  %328 = getelementptr inbounds %"class.boost::iterators::reverse_iterator", ptr %327, i32 0, i32 0
  %329 = getelementptr inbounds %"class.boost::iterators::iterator_adaptor", ptr %328, i32 0, i32 0
  %330 = getelementptr inbounds %"struct.std::_List_const_iterator", ptr %329, i32 0, i32 0
  store ptr %325, ptr %330, align 8
  store ptr %40, ptr %39, align 8, !tbaa !5
  %331 = load ptr, ptr %39, align 8, !tbaa !5
  %332 = invoke noundef zeroext i1 @_ZNK5boost15foreach_detail_13auto_any_basecvbEv(ptr noundef nonnull align 1 dereferenceable(1) %331)
          to label %333 unwind label %339

333:                                              ; preds = %326
  br i1 %332, label %334, label %343

334:                                              ; preds = %333
  br label %420

335:                                              ; preds = %323
  %336 = landingpad { ptr, i32 }
          cleanup
  %337 = extractvalue { ptr, i32 } %336, 0
  store ptr %337, ptr %11, align 8
  %338 = extractvalue { ptr, i32 } %336, 1
  store i32 %338, ptr %12, align 4
  br label %422

339:                                              ; preds = %326
  %340 = landingpad { ptr, i32 }
          cleanup
  %341 = extractvalue { ptr, i32 } %340, 0
  store ptr %341, ptr %11, align 8
  %342 = extractvalue { ptr, i32 } %340, 1
  store i32 %342, ptr %12, align 4
  br label %421

343:                                              ; preds = %333
  call void @llvm.lifetime.start.p0(i64 1, ptr %41) #8
  store i8 1, ptr %41, align 1, !tbaa !189
  br label %344

344:                                              ; preds = %417, %343
  %345 = load i8, ptr %41, align 1, !tbaa !189, !range !190, !noundef !191
  %346 = trunc i8 %345 to i1
  br i1 %346, label %347, label %353

347:                                              ; preds = %344
  %348 = load ptr, ptr %37, align 8, !tbaa !5
  %349 = load ptr, ptr %39, align 8, !tbaa !5
  %350 = invoke noundef zeroext i1 @_ZN5boost15foreach_detail_5rdoneINSt7__cxx114listINSt8__detail14_Node_iteratorISt4pairIKN6Crypto4HashEN7DynexCN10Blockchain10BlockEntryEELb0ELb1EEESaISE_EEEN4mpl_5bool_ILb1EEEEEbRKNS0_13auto_any_baseESM_PNS0_9type2typeIT_T0_EE(ptr noundef nonnull align 1 dereferenceable(1) %348, ptr noundef nonnull align 1 dereferenceable(1) %349, ptr noundef null)
          to label %351 unwind label %356

351:                                              ; preds = %347
  %352 = xor i1 %350, true
  br label %353

353:                                              ; preds = %351, %344
  %354 = phi i1 [ false, %344 ], [ %352, %351 ]
  br i1 %354, label %360, label %355

355:                                              ; preds = %353
  store i32 7, ptr %24, align 4
  call void @llvm.lifetime.end.p0(i64 1, ptr %41) #8
  br label %419

356:                                              ; preds = %413, %360, %347
  %357 = landingpad { ptr, i32 }
          cleanup
  %358 = extractvalue { ptr, i32 } %357, 0
  store ptr %358, ptr %11, align 8
  %359 = extractvalue { ptr, i32 } %357, 1
  store i32 %359, ptr %12, align 4
  br label %418

360:                                              ; preds = %353
  %361 = invoke noundef zeroext i1 @_ZN5boost15foreach_detail_9set_falseERb(ptr noundef nonnull align 1 dereferenceable(1) %41)
          to label %362 unwind label %356

362:                                              ; preds = %360
  br i1 %361, label %363, label %364

363:                                              ; preds = %362
  br label %409

364:                                              ; preds = %362
  call void @llvm.lifetime.start.p0(i64 8, ptr %42) #8
  %365 = load ptr, ptr %37, align 8, !tbaa !5
  %366 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZN5boost15foreach_detail_6rderefINSt7__cxx114listINSt8__detail14_Node_iteratorISt4pairIKN6Crypto4HashEN7DynexCN10Blockchain10BlockEntryEELb0ELb1EEESaISE_EEEN4mpl_5bool_ILb1EEEEENS0_17foreach_referenceIT_T0_E4typeERKNS0_13auto_any_baseEPNS0_9type2typeISL_SM_EE(ptr noundef nonnull align 1 dereferenceable(1) %365, ptr noundef null)
          to label %367 unwind label %373

367:                                              ; preds = %364
  call void @llvm.memcpy.p0.p0.i64(ptr align 8 %42, ptr align 8 %366, i64 8, i1 false)
  br label %368

368:                                              ; preds = %406, %367
  %369 = load i8, ptr %41, align 1, !tbaa !189, !range !190, !noundef !191
  %370 = trunc i8 %369 to i1
  %371 = xor i1 %370, true
  br i1 %371, label %377, label %372

372:                                              ; preds = %368
  store i32 10, ptr %24, align 4
  br label %407

373:                                              ; preds = %377, %364
  %374 = landingpad { ptr, i32 }
          cleanup
  %375 = extractvalue { ptr, i32 } %374, 0
  store ptr %375, ptr %11, align 8
  %376 = extractvalue { ptr, i32 } %374, 1
  store i32 %376, ptr %12, align 4
  call void @llvm.lifetime.end.p0(i64 8, ptr %42) #8
  br label %418

377:                                              ; preds = %368
  %378 = call noundef ptr @_ZNKSt8__detail14_Node_iteratorISt4pairIKN6Crypto4HashEN7DynexCN10Blockchain10BlockEntryEELb0ELb1EEptEv(ptr noundef nonnull align 8 dereferenceable(8) %42) #8
  %379 = getelementptr inbounds %"struct.std::pair.263", ptr %378, i32 0, i32 1
  %380 = getelementptr inbounds %"struct.DynexCN::Blockchain::BlockEntry", ptr %379, i32 0, i32 0
  %381 = getelementptr inbounds %"struct.DynexCN::BlockHeader", ptr %380, i32 0, i32 3
  %382 = load i64, ptr %381, align 8, !tbaa !192
  %383 = load i64, ptr %34, align 8, !tbaa !186
  %384 = load i64, ptr %33, align 8, !tbaa !186
  %385 = sub i64 %383, %384
  %386 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNSt6vectorImSaImEEixEm(ptr noundef nonnull align 8 dereferenceable(24) %8, i64 noundef %385) #8
  store i64 %382, ptr %386, align 8, !tbaa !186
  %387 = call noundef ptr @_ZNKSt8__detail14_Node_iteratorISt4pairIKN6Crypto4HashEN7DynexCN10Blockchain10BlockEntryEELb0ELb1EEptEv(ptr noundef nonnull align 8 dereferenceable(8) %42) #8
  %388 = getelementptr inbounds %"struct.std::pair.263", ptr %387, i32 0, i32 1
  %389 = getelementptr inbounds %"struct.DynexCN::Blockchain::BlockEntry", ptr %388, i32 0, i32 3
  %390 = load i64, ptr %389, align 8, !tbaa !193
  %391 = load i64, ptr %34, align 8, !tbaa !186
  %392 = load i64, ptr %33, align 8, !tbaa !186
  %393 = sub i64 %391, %392
  %394 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNSt6vectorImSaImEEixEm(ptr noundef nonnull align 8 dereferenceable(24) %9, i64 noundef %393) #8
  store i64 %390, ptr %394, align 8, !tbaa !186
  %395 = load i64, ptr %33, align 8, !tbaa !186
  %396 = add i64 %395, 1
  store i64 %396, ptr %33, align 8, !tbaa !186
  %397 = load i64, ptr %33, align 8, !tbaa !186
  %398 = getelementptr inbounds %"class.DynexCN::Blockchain", ptr %45, i32 0, i32 5
  %399 = load ptr, ptr %398, align 8, !tbaa !10
  %400 = load i8, ptr %10, align 1, !tbaa !9
  %401 = invoke noundef i64 @_ZNK7DynexCN8Currency35difficultyBlocksCountByBlockVersionEh(ptr noundef nonnull align 8 dereferenceable(984) %399, i8 noundef zeroext %400)
          to label %402 unwind label %373

402:                                              ; preds = %377
  %403 = icmp uge i64 %397, %401
  br i1 %403, label %404, label %405

404:                                              ; preds = %402
  store i32 10, ptr %24, align 4
  br label %407

405:                                              ; preds = %402
  br label %406

406:                                              ; preds = %405
  store i8 1, ptr %41, align 1, !tbaa !189
  br label %368, !llvm.loop !194

407:                                              ; preds = %404, %372
  call void @llvm.lifetime.end.p0(i64 8, ptr %42) #8
  br label %408

408:                                              ; preds = %407
  br label %409

409:                                              ; preds = %408, %363
  br label %410

410:                                              ; preds = %409
  %411 = load i8, ptr %41, align 1, !tbaa !189, !range !190, !noundef !191
  %412 = trunc i8 %411 to i1
  br i1 %412, label %413, label %416

413:                                              ; preds = %410
  %414 = load ptr, ptr %37, align 8, !tbaa !5
  invoke void @_ZN5boost15foreach_detail_5rnextINSt7__cxx114listINSt8__detail14_Node_iteratorISt4pairIKN6Crypto4HashEN7DynexCN10Blockchain10BlockEntryEELb0ELb1EEESaISE_EEEN4mpl_5bool_ILb1EEEEEvRKNS0_13auto_any_baseEPNS0_9type2typeIT_T0_EE(ptr noundef nonnull align 1 dereferenceable(1) %414, ptr noundef null)
          to label %415 unwind label %356

415:                                              ; preds = %413
  br label %417

416:                                              ; preds = %410
  br label %417

417:                                              ; preds = %416, %415
  br label %344, !llvm.loop !195

418:                                              ; preds = %373, %356
  call void @llvm.lifetime.end.p0(i64 1, ptr %41) #8
  br label %421

419:                                              ; preds = %355
  br label %420

420:                                              ; preds = %419, %334
  call void @llvm.lifetime.end.p0(i64 8, ptr %40) #8
  call void @llvm.lifetime.end.p0(i64 8, ptr %39) #8
  br label %423

421:                                              ; preds = %418, %339
  call void @llvm.lifetime.end.p0(i64 8, ptr %40) #8
  br label %422

422:                                              ; preds = %421, %335
  call void @llvm.lifetime.end.p0(i64 8, ptr %39) #8
  br label %424

423:                                              ; preds = %420, %314
  call void @llvm.lifetime.end.p0(i64 8, ptr %38) #8
  call void @llvm.lifetime.end.p0(i64 8, ptr %37) #8
  br label %426

424:                                              ; preds = %422, %319
  call void @llvm.lifetime.end.p0(i64 8, ptr %38) #8
  br label %425

425:                                              ; preds = %424, %315
  call void @llvm.lifetime.end.p0(i64 8, ptr %37) #8
  br label %427

426:                                              ; preds = %423, %286
  call void @llvm.lifetime.end.p0(i64 8, ptr %36) #8
  call void @llvm.lifetime.end.p0(i64 8, ptr %35) #8
  call void @llvm.lifetime.end.p0(i64 8, ptr %34) #8
  call void @llvm.lifetime.end.p0(i64 8, ptr %33) #8
  br label %429

427:                                              ; preds = %425, %299
  call void @llvm.lifetime.end.p0(i64 8, ptr %36) #8
  br label %428

428:                                              ; preds = %427, %295
  call void @llvm.lifetime.end.p0(i64 8, ptr %35) #8
  call void @llvm.lifetime.end.p0(i64 8, ptr %34) #8
  call void @llvm.lifetime.end.p0(i64 8, ptr %33) #8
  br label %452

429:                                              ; preds = %426, %250
  %430 = getelementptr inbounds %"class.DynexCN::Blockchain", ptr %45, i32 0, i32 5
  %431 = load ptr, ptr %430, align 8, !tbaa !10
  %432 = getelementptr inbounds %"class.DynexCN::Blockchain", ptr %45, i32 0, i32 18
  %433 = invoke noundef i64 @_ZNK13SwappedVectorIN7DynexCN10Blockchain10BlockEntryEE4sizeEv(ptr noundef nonnull align 8 dereferenceable(1184) %432)
          to label %434 unwind label %107

434:                                              ; preds = %429
  %435 = trunc i64 %433 to i32
  %436 = load i8, ptr %10, align 1, !tbaa !9
  invoke void @_ZNSt6vectorImSaImEEC2ERKS1_(ptr noundef nonnull align 8 dereferenceable(24) %43, ptr noundef nonnull align 8 dereferenceable(24) %8)
          to label %437 unwind label %107

437:                                              ; preds = %434
  invoke void @_ZNSt6vectorImSaImEEC2ERKS1_(ptr noundef nonnull align 8 dereferenceable(24) %44, ptr noundef nonnull align 8 dereferenceable(24) %9)
          to label %438 unwind label %441

438:                                              ; preds = %437
  %439 = invoke noundef i64 @_ZNK7DynexCN8Currency14nextDifficultyEjhSt6vectorImSaImEES3_(ptr noundef nonnull align 8 dereferenceable(984) %431, i32 noundef %435, i8 noundef zeroext %436, ptr noundef %43, ptr noundef %44)
          to label %440 unwind label %445

440:                                              ; preds = %438
  store i64 %439, ptr %4, align 8
  call void @_ZNSt6vectorImSaImEED2Ev(ptr noundef nonnull align 8 dereferenceable(24) %44) #8
  call void @_ZNSt6vectorImSaImEED2Ev(ptr noundef nonnull align 8 dereferenceable(24) %43) #8
  store i32 1, ptr %24, align 4
  br label %450

441:                                              ; preds = %437
  %442 = landingpad { ptr, i32 }
          cleanup
  %443 = extractvalue { ptr, i32 } %442, 0
  store ptr %443, ptr %11, align 8
  %444 = extractvalue { ptr, i32 } %442, 1
  store i32 %444, ptr %12, align 4
  br label %449

445:                                              ; preds = %438
  %446 = landingpad { ptr, i32 }
          cleanup
  %447 = extractvalue { ptr, i32 } %446, 0
  store ptr %447, ptr %11, align 8
  %448 = extractvalue { ptr, i32 } %446, 1
  store i32 %448, ptr %12, align 4
  call void @_ZNSt6vectorImSaImEED2Ev(ptr noundef nonnull align 8 dereferenceable(24) %44) #8
  br label %449

449:                                              ; preds = %445, %441
  call void @_ZNSt6vectorImSaImEED2Ev(ptr noundef nonnull align 8 dereferenceable(24) %43) #8
  br label %452

450:                                              ; preds = %440, %248
  call void @llvm.lifetime.end.p0(i64 1, ptr %10) #8
  call void @_ZNSt6vectorImSaImEED2Ev(ptr noundef nonnull align 8 dereferenceable(24) %9) #8
  call void @llvm.lifetime.end.p0(i64 24, ptr %9) #8
  call void @_ZNSt6vectorImSaImEED2Ev(ptr noundef nonnull align 8 dereferenceable(24) %8) #8
  call void @llvm.lifetime.end.p0(i64 24, ptr %8) #8
  %451 = load i64, ptr %4, align 8
  ret i64 %451

452:                                              ; preds = %449, %428, %291, %287, %253, %107
  call void @llvm.lifetime.end.p0(i64 1, ptr %10) #8
  call void @_ZNSt6vectorImSaImEED2Ev(ptr noundef nonnull align 8 dereferenceable(24) %9) #8
  call void @llvm.lifetime.end.p0(i64 24, ptr %9) #8
  call void @_ZNSt6vectorImSaImEED2Ev(ptr noundef nonnull align 8 dereferenceable(24) %8) #8
  call void @llvm.lifetime.end.p0(i64 24, ptr %8) #8
  br label %453

453:                                              ; preds = %452
  %454 = load ptr, ptr %11, align 8
  %455 = load i32, ptr %12, align 4
  %456 = insertvalue { ptr, i32 } poison, ptr %454, 0
  %457 = insertvalue { ptr, i32 } %456, i32 %455, 1
  resume { ptr, i32 } %457
}

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

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

; Function Attrs: inlinehint mustprogress uwtable
declare dso_local noundef nonnull align 8 dereferenceable(161) ptr @_ZStlsIN7Logging13LoggerMessageEcEOT_S3_RKT0_(ptr noundef nonnull align 8 dereferenceable(161), ptr noundef nonnull align 1 dereferenceable(1)) #2

; Function Attrs: inlinehint mustprogress uwtable
declare dso_local noundef nonnull align 8 dereferenceable(161) ptr @_ZStlsIN7Logging13LoggerMessageEA45_cEOT_S4_RKT0_(ptr noundef nonnull align 8 dereferenceable(161), ptr noundef nonnull align 1 dereferenceable(45)) #2

; Function Attrs: inlinehint mustprogress uwtable
declare dso_local noundef nonnull align 8 dereferenceable(161) ptr @_ZStlsIN7Logging13LoggerMessageEA23_cEOT_S4_RKT0_(ptr noundef nonnull align 8 dereferenceable(161), ptr noundef nonnull align 1 dereferenceable(23)) #2

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

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

; Function Attrs: mustprogress nounwind uwtable
declare dso_local noundef zeroext i1 @_ZStneRKSt20_List_const_iteratorINSt8__detail14_Node_iteratorISt4pairIKN6Crypto4HashEN7DynexCN10Blockchain10BlockEntryEELb0ELb1EEEESD_(ptr noundef nonnull align 8 dereferenceable(8), ptr noundef nonnull align 8 dereferenceable(8)) #6

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

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

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

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

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

; Function Attrs: inlinehint mustprogress uwtable
declare dso_local ptr @_ZN5boost15foreach_detail_6rbeginINSt7__cxx114listINSt8__detail14_Node_iteratorISt4pairIKN6Crypto4HashEN7DynexCN10Blockchain10BlockEntryEELb0ELb1EEESaISE_EEEN4mpl_5bool_ILb1EEEEENS0_8auto_anyINS0_24foreach_reverse_iteratorIT_T0_E4typeEEERKNS0_13auto_any_baseEPNS0_9type2typeISM_SN_EEPNSI_ILb0EEE(ptr noundef nonnull align 1 dereferenceable(1), ptr noundef, ptr noundef) #2

; Function Attrs: inlinehint mustprogress uwtable
declare dso_local ptr @_ZN5boost15foreach_detail_4rendINSt7__cxx114listINSt8__detail14_Node_iteratorISt4pairIKN6Crypto4HashEN7DynexCN10Blockchain10BlockEntryEELb0ELb1EEESaISE_EEEN4mpl_5bool_ILb1EEEEENS0_8auto_anyINS0_24foreach_reverse_iteratorIT_T0_E4typeEEERKNS0_13auto_any_baseEPNS0_9type2typeISM_SN_EEPNSI_ILb0EEE(ptr noundef nonnull align 1 dereferenceable(1), ptr noundef, ptr noundef) #2

; Function Attrs: inlinehint mustprogress uwtable
declare dso_local noundef zeroext i1 @_ZN5boost15foreach_detail_5rdoneINSt7__cxx114listINSt8__detail14_Node_iteratorISt4pairIKN6Crypto4HashEN7DynexCN10Blockchain10BlockEntryEELb0ELb1EEESaISE_EEEN4mpl_5bool_ILb1EEEEEbRKNS0_13auto_any_baseESM_PNS0_9type2typeIT_T0_EE(ptr noundef nonnull align 1 dereferenceable(1), ptr noundef nonnull align 1 dereferenceable(1), ptr noundef) #2

; Function Attrs: inlinehint mustprogress nounwind uwtable
declare dso_local noundef zeroext i1 @_ZN5boost15foreach_detail_9set_falseERb(ptr noundef nonnull align 1 dereferenceable(1)) #7

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

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

; Function Attrs: inlinehint mustprogress uwtable
declare dso_local void @_ZN5boost15foreach_detail_5rnextINSt7__cxx114listINSt8__detail14_Node_iteratorISt4pairIKN6Crypto4HashEN7DynexCN10Blockchain10BlockEntryEELb0ELb1EEESaISE_EEEN4mpl_5bool_ILb1EEEEEvRKNS0_13auto_any_baseEPNS0_9type2typeIT_T0_EE(ptr noundef nonnull align 1 dereferenceable(1), ptr noundef) #2

attributes #0 = { nocallback nofree nosync nounwind willreturn memory(argmem: readwrite) }
attributes #1 = { nocallback nofree nounwind willreturn memory(argmem: readwrite) }
attributes #2 = { 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 #3 = { "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 = { 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 #5 = { 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 #6 = { 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 #7 = { 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 #8 = { 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 = !{!7, !7, i64 0}
!10 = !{!11, !6, i64 80}
!11 = !{!"_ZTSN7DynexCN10BlockchainE", !12, i64 0, !13, i64 8, !7, i64 16, !14, i64 24, !6, i64 80, !6, i64 88, !20, i64 96, !22, i64 136, !23, i64 144, !30, i64 208, !16, i64 296, !45, i64 304, !47, i64 360, !60, i64 448, !62, i64 480, !71, i64 568, !73, i64 576, !98, i64 1760, !113, i64 1888, !115, i64 1944, !125, i64 2032, !125, i64 2096, !125, i64 2160, !126, i64 2224, !134, i64 2320, !140, i64 2376, !144, i64 2432, !147, i64 2504, !51, i64 2568, !150, i64 2576, !70, i64 2592, !52, i64 2632}
!12 = !{!"_ZTSN7DynexCN21ITransactionValidatorE"}
!13 = !{!"_ZTSN7DynexCN24IDynexCNProtocolObserverE"}
!14 = !{!"_ZTSSt13unordered_mapIN6Crypto4HashEbSt4hashIS1_ESt8equal_toIS1_ESaISt4pairIKS1_bEEE", !15, i64 0}
!15 = !{!"_ZTSSt10_HashtableIN6Crypto4HashESt4pairIKS1_bESaIS4_ENSt8__detail10_Select1stESt8equal_toIS1_ESt4hashIS1_ENS6_18_Mod_range_hashingENS6_20_Default_ranged_hashENS6_20_Prime_rehash_policyENS6_17_Hashtable_traitsILb1ELb0ELb1EEEE", !6, i64 0, !16, i64 8, !17, i64 16, !16, i64 24, !18, i64 32, !6, i64 48}
!16 = !{!"long", !7, i64 0}
!17 = !{!"_ZTSNSt8__detail15_Hash_node_baseE", !6, i64 0}
!18 = !{!"_ZTSNSt8__detail20_Prime_rehash_policyE", !19, i64 0, !16, i64 8}
!19 = !{!"float", !7, i64 0}
!20 = !{!"_ZTSSt15recursive_mutex", !21, i64 0}
!21 = !{!"_ZTSSt22__recursive_mutex_base", !7, i64 0}
!22 = !{!"_ZTSN6Crypto10cn_contextE", !6, i64 0}
!23 = !{!"_ZTSN5Tools15ObserverManagerIN7DynexCN26IBlockchainStorageObserverEEE", !24, i64 0, !28, i64 24}
!24 = !{!"_ZTSSt6vectorIPN7DynexCN26IBlockchainStorageObserverESaIS2_EE", !25, i64 0}
!25 = !{!"_ZTSSt12_Vector_baseIPN7DynexCN26IBlockchainStorageObserverESaIS2_EE", !26, i64 0}
!26 = !{!"_ZTSNSt12_Vector_baseIPN7DynexCN26IBlockchainStorageObserverESaIS2_EE12_Vector_implE", !27, i64 0}
!27 = !{!"_ZTSNSt12_Vector_baseIPN7DynexCN26IBlockchainStorageObserverESaIS2_EE17_Vector_impl_dataE", !6, i64 0, !6, i64 8, !6, i64 16}
!28 = !{!"_ZTSSt5mutex", !29, i64 0}
!29 = !{!"_ZTSSt12__mutex_base", !7, i64 0}
!30 = !{!"_ZTSN5boost11multi_index21multi_index_containerIN7DynexCN10Blockchain13SpentKeyImageENS0_10indexed_byINS0_18ordered_non_uniqueINS0_3tagINS3_13BlockIndexTagEN4mpl_2naESA_SA_SA_SA_SA_SA_SA_SA_SA_SA_SA_SA_SA_SA_SA_SA_SA_SA_EENS0_6memberIS4_jXadL_ZNS4_10blockIndexEEEEESA_EENS0_13hashed_uniqueINS7_INS3_11KeyImageTagESA_SA_SA_SA_SA_SA_SA_SA_SA_SA_SA_SA_SA_SA_SA_SA_SA_SA_SA_EENSC_IS4_N6Crypto8KeyImageEXadL_ZNS4_8keyImageEEEEESA_SA_EESA_SA_SA_SA_SA_SA_SA_SA_SA_SA_SA_SA_SA_SA_SA_SA_SA_SA_EESaIS4_EEE", !31, i64 0, !33, i64 8, !34, i64 16, !16, i64 80}
!31 = !{!"_ZTSN5boost16base_from_memberISaINS_11multi_index6detail18ordered_index_nodeINS2_19null_augment_policyENS2_17hashed_index_nodeINS2_15index_node_baseIN7DynexCN10Blockchain13SpentKeyImageESaIS9_EEEEEEEELi0EEE", !32, i64 0}
!32 = !{!"_ZTSSaIN5boost11multi_index6detail18ordered_index_nodeINS1_19null_augment_policyENS1_17hashed_index_nodeINS1_15index_node_baseIN7DynexCN10Blockchain13SpentKeyImageESaIS8_EEEEEEEE"}
!33 = !{!"_ZTSN5boost11multi_index6detail13header_holderIPNS1_18ordered_index_nodeINS1_19null_augment_policyENS1_17hashed_index_nodeINS1_15index_node_baseIN7DynexCN10Blockchain13SpentKeyImageESaIS9_EEEEEEENS0_21multi_index_containerIS9_NS0_10indexed_byINS0_18ordered_non_uniqueINS0_3tagINS8_13BlockIndexTagEN4mpl_2naESL_SL_SL_SL_SL_SL_SL_SL_SL_SL_SL_SL_SL_SL_SL_SL_SL_SL_EENS0_6memberIS9_jXadL_ZNS9_10blockIndexEEEEESL_EENS0_13hashed_uniqueINSI_INS8_11KeyImageTagESL_SL_SL_SL_SL_SL_SL_SL_SL_SL_SL_SL_SL_SL_SL_SL_SL_SL_SL_EENSN_IS9_N6Crypto8KeyImageEXadL_ZNS9_8keyImageEEEEESL_SL_EESL_SL_SL_SL_SL_SL_SL_SL_SL_SL_SL_SL_SL_SL_SL_SL_SL_SL_EESA_EEEE", !6, i64 0}
!34 = !{!"_ZTSN5boost11multi_index6detail13ordered_indexINS0_6memberIN7DynexCN10Blockchain13SpentKeyImageEjXadL_ZNS6_10blockIndexEEEEESt4lessIjENS1_9nth_layerILi1ES6_NS0_10indexed_byINS0_18ordered_non_uniqueINS0_3tagINS5_13BlockIndexTagEN4mpl_2naESG_SG_SG_SG_SG_SG_SG_SG_SG_SG_SG_SG_SG_SG_SG_SG_SG_SG_EES7_SG_EENS0_13hashed_uniqueINSD_INS5_11KeyImageTagESG_SG_SG_SG_SG_SG_SG_SG_SG_SG_SG_SG_SG_SG_SG_SG_SG_SG_SG_EENS3_IS6_N6Crypto8KeyImageEXadL_ZNS6_8keyImageEEEEESG_SG_EESG_SG_SG_SG_SG_SG_SG_SG_SG_SG_SG_SG_SG_SG_SG_SG_SG_SG_EESaIS6_EEENS_3mpl6v_itemISE_NST_7vector0ISG_EELi0EEENS1_22ordered_non_unique_tagENS1_19null_augment_policyEEE", !35, i64 0}
!35 = !{!"_ZTSN5boost11multi_index6detail18ordered_index_implINS0_6memberIN7DynexCN10Blockchain13SpentKeyImageEjXadL_ZNS6_10blockIndexEEEEESt4lessIjENS1_9nth_layerILi1ES6_NS0_10indexed_byINS0_18ordered_non_uniqueINS0_3tagINS5_13BlockIndexTagEN4mpl_2naESG_SG_SG_SG_SG_SG_SG_SG_SG_SG_SG_SG_SG_SG_SG_SG_SG_SG_EES7_SG_EENS0_13hashed_uniqueINSD_INS5_11KeyImageTagESG_SG_SG_SG_SG_SG_SG_SG_SG_SG_SG_SG_SG_SG_SG_SG_SG_SG_SG_EENS3_IS6_N6Crypto8KeyImageEXadL_ZNS6_8keyImageEEEEESG_SG_EESG_SG_SG_SG_SG_SG_SG_SG_SG_SG_SG_SG_SG_SG_SG_SG_SG_SG_EESaIS6_EEENS_3mpl6v_itemISE_NST_7vector0ISG_EELi0EEENS1_22ordered_non_unique_tagENS1_19null_augment_policyEEE", !36, i64 0, !43, i64 56, !44, i64 57}
!36 = !{!"_ZTSN5boost11multi_index6detail12hashed_indexINS0_6memberIN7DynexCN10Blockchain13SpentKeyImageEN6Crypto8KeyImageEXadL_ZNS6_8keyImageEEEEENS_4hashIS8_EESt8equal_toIS8_ENS1_9nth_layerILi2ES6_NS0_10indexed_byINS0_18ordered_non_uniqueINS0_3tagINS5_13BlockIndexTagEN4mpl_2naESK_SK_SK_SK_SK_SK_SK_SK_SK_SK_SK_SK_SK_SK_SK_SK_SK_SK_EENS3_IS6_jXadL_ZNS6_10blockIndexEEEEESK_EENS0_13hashed_uniqueINSH_INS5_11KeyImageTagESK_SK_SK_SK_SK_SK_SK_SK_SK_SK_SK_SK_SK_SK_SK_SK_SK_SK_SK_EES9_SK_SK_EESK_SK_SK_SK_SK_SK_SK_SK_SK_SK_SK_SK_SK_SK_SK_SK_SK_SK_EESaIS6_EEENS_3mpl6v_itemISP_NSV_7vector0ISK_EELi0EEENS1_17hashed_unique_tagEEE", !37, i64 0, !38, i64 1, !39, i64 2, !40, i64 8, !19, i64 40, !16, i64 48}
!37 = !{!"_ZTSN5boost11multi_index6memberIN7DynexCN10Blockchain13SpentKeyImageEN6Crypto8KeyImageEXadL_ZNS4_8keyImageEEEEE"}
!38 = !{!"_ZTSN5boost4hashIN6Crypto8KeyImageEEE"}
!39 = !{!"_ZTSSt8equal_toIN6Crypto8KeyImageEE"}
!40 = !{!"_ZTSN5boost11multi_index6detail12bucket_arrayISaIN7DynexCN10Blockchain13SpentKeyImageEEEE", !16, i64 0, !41, i64 8}
!41 = !{!"_ZTSN5boost11multi_index6detail10auto_spaceINS1_27hashed_index_base_node_implISaIcEEESaIN7DynexCN10Blockchain13SpentKeyImageEEEE", !42, i64 0, !16, i64 8, !6, i64 16}
!42 = !{!"_ZTSSaIN5boost11multi_index6detail27hashed_index_base_node_implISaIcEEEE"}
!43 = !{!"_ZTSN5boost11multi_index6memberIN7DynexCN10Blockchain13SpentKeyImageEjXadL_ZNS4_10blockIndexEEEEE"}
!44 = !{!"_ZTSSt4lessIjE"}
!45 = !{!"_ZTSSt13unordered_mapIN6Crypto4HashEN7DynexCN10Blockchain10BlockEntryESt4hashIS1_ESt8equal_toIS1_ESaISt4pairIKS1_S4_EEE", !46, i64 0}
!46 = !{!"_ZTSSt10_HashtableIN6Crypto4HashESt4pairIKS1_N7DynexCN10Blockchain10BlockEntryEESaIS7_ENSt8__detail10_Select1stESt8equal_toIS1_ESt4hashIS1_ENS9_18_Mod_range_hashingENS9_20_Default_ranged_hashENS9_20_Prime_rehash_policyENS9_17_Hashtable_traitsILb1ELb0ELb1EEEE", !6, i64 0, !16, i64 8, !17, i64 16, !16, i64 24, !18, i64 32, !6, i64 48}
!47 = !{!"_ZTSN6google15sparse_hash_mapImSt6vectorISt4pairIN7DynexCN10Blockchain16TransactionIndexEtESaIS6_EESt4hashImESt8equal_toImENS_27libc_allocator_with_reallocIS2_IKmS8_EEEEE", !48, i64 0}
!48 = !{!"_ZTSN6google16sparse_hashtableISt4pairIKmSt6vectorIS1_IN7DynexCN10Blockchain16TransactionIndexEtESaIS7_EEEmSt4hashImENS_15sparse_hash_mapImS9_SC_St8equal_toImENS_27libc_allocator_with_reallocISA_EEE9SelectKeyENSI_6SetKeyESF_SH_EE", !49, i64 0, !53, i64 32, !16, i64 40, !54, i64 48}
!49 = !{!"_ZTSN6google16sparse_hashtableISt4pairIKmSt6vectorIS1_IN7DynexCN10Blockchain16TransactionIndexEtESaIS7_EEEmSt4hashImENS_15sparse_hash_mapImS9_SC_St8equal_toImENS_27libc_allocator_with_reallocISA_EEE9SelectKeyENSI_6SetKeyESF_SH_E8SettingsE", !50, i64 0}
!50 = !{!"_ZTS21sh_hashtable_settingsImSt4hashImEmLi4EE", !16, i64 0, !16, i64 8, !19, i64 16, !19, i64 20, !51, i64 24, !51, i64 25, !51, i64 26, !52, i64 28}
!51 = !{!"bool", !7, i64 0}
!52 = !{!"int", !7, i64 0}
!53 = !{!"_ZTSN6google16sparse_hashtableISt4pairIKmSt6vectorIS1_IN7DynexCN10Blockchain16TransactionIndexEtESaIS7_EEEmSt4hashImENS_15sparse_hash_mapImS9_SC_St8equal_toImENS_27libc_allocator_with_reallocISA_EEE9SelectKeyENSI_6SetKeyESF_SH_E7KeyInfoE", !16, i64 0}
!54 = !{!"_ZTSN6google11sparsetableISt4pairIKmSt6vectorIS1_IN7DynexCN10Blockchain16TransactionIndexEtESaIS7_EEELt48ENS_27libc_allocator_with_reallocISA_EEEE", !55, i64 0, !59, i64 24}
!55 = !{!"_ZTSSt6vectorIN6google11sparsegroupISt4pairIKmS_IS2_IN7DynexCN10Blockchain16TransactionIndexEtESaIS7_EEELt48ENS0_27libc_allocator_with_reallocISA_EEEENSB_ISD_EEE", !56, i64 0}
!56 = !{!"_ZTSSt12_Vector_baseIN6google11sparsegroupISt4pairIKmSt6vectorIS2_IN7DynexCN10Blockchain16TransactionIndexEtESaIS8_EEELt48ENS0_27libc_allocator_with_reallocISB_EEEENSC_ISE_EEE", !57, i64 0}
!57 = !{!"_ZTSNSt12_Vector_baseIN6google11sparsegroupISt4pairIKmSt6vectorIS2_IN7DynexCN10Blockchain16TransactionIndexEtESaIS8_EEELt48ENS0_27libc_allocator_with_reallocISB_EEEENSC_ISE_EEE12_Vector_implE", !58, i64 0}
!58 = !{!"_ZTSNSt12_Vector_baseIN6google11sparsegroupISt4pairIKmSt6vectorIS2_IN7DynexCN10Blockchain16TransactionIndexEtESaIS8_EEELt48ENS0_27libc_allocator_with_reallocISB_EEEENSC_ISE_EEE17_Vector_impl_dataE", !6, i64 0, !6, i64 8, !6, i64 16}
!59 = !{!"_ZTSN6google11sparsetableISt4pairIKmSt6vectorIS1_IN7DynexCN10Blockchain16TransactionIndexEtESaIS7_EEELt48ENS_27libc_allocator_with_reallocISA_EEE8SettingsE", !16, i64 0, !16, i64 8}
!60 = !{!"_ZTSNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEE", !61, i64 0, !16, i64 8, !7, i64 16}
!61 = !{!"_ZTSNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE12_Alloc_hiderE", !6, i64 0}
!62 = !{!"_ZTSN7DynexCN11CheckpointsE", !63, i64 0, !70, i64 48}
!63 = !{!"_ZTSSt3mapIjN6Crypto4HashESt4lessIjESaISt4pairIKjS1_EEE", !64, i64 0}
!64 = !{!"_ZTSSt8_Rb_treeIjSt4pairIKjN6Crypto4HashEESt10_Select1stIS4_ESt4lessIjESaIS4_EE", !65, i64 0}
!65 = !{!"_ZTSNSt8_Rb_treeIjSt4pairIKjN6Crypto4HashEESt10_Select1stIS4_ESt4lessIjESaIS4_EE13_Rb_tree_implIS8_Lb1EEE", !66, i64 0, !67, i64 8}
!66 = !{!"_ZTSSt20_Rb_tree_key_compareISt4lessIjEE", !44, i64 0}
!67 = !{!"_ZTSSt15_Rb_tree_header", !68, i64 0, !16, i64 32}
!68 = !{!"_ZTSSt18_Rb_tree_node_base", !69, i64 0, !6, i64 8, !6, i64 16, !6, i64 24}
!69 = !{!"_ZTSSt14_Rb_tree_color", !7, i64 0}
!70 = !{!"_ZTSN7Logging9LoggerRefE", !6, i64 0, !60, i64 8}
!71 = !{!"_ZTSSt6atomicIbE", !72, i64 0}
!72 = !{!"_ZTSSt13__atomic_baseIbE", !51, i64 0}
!73 = !{!"_ZTS13SwappedVectorIN7DynexCN10Blockchain10BlockEntryEE", !74, i64 0, !74, i64 528, !16, i64 1056, !84, i64 1064, !16, i64 1088, !88, i64 1096, !93, i64 1144, !16, i64 1168, !16, i64 1176}
!74 = !{!"_ZTSSt13basic_fstreamIcSt11char_traitsIcEE", !75, i64 0, !78, i64 24}
!75 = !{!"_ZTSSd", !76, i64 0, !77, i64 16}
!76 = !{!"_ZTSSi", !16, i64 8}
!77 = !{!"_ZTSSo"}
!78 = !{!"_ZTSSt13basic_filebufIcSt11char_traitsIcEE", !79, i64 0, !7, i64 64, !81, i64 104, !82, i64 120, !83, i64 124, !83, i64 132, !83, i64 140, !6, i64 152, !16, i64 160, !51, i64 168, !51, i64 169, !51, i64 170, !7, i64 171, !6, i64 176, !6, i64 184, !51, i64 192, !6, i64 200, !6, i64 208, !16, i64 216, !6, i64 224, !6, i64 232}
!79 = !{!"_ZTSSt15basic_streambufIcSt11char_traitsIcEE", !6, i64 8, !6, i64 16, !6, i64 24, !6, i64 32, !6, i64 40, !6, i64 48, !80, i64 56}
!80 = !{!"_ZTSSt6locale", !6, i64 0}
!81 = !{!"_ZTSSt12__basic_fileIcE", !6, i64 0, !51, i64 8}
!82 = !{!"_ZTSSt13_Ios_Openmode", !7, i64 0}
!83 = !{!"_ZTS11__mbstate_t", !52, i64 0, !7, i64 4}
!84 = !{!"_ZTSSt6vectorImSaImEE", !85, i64 0}
!85 = !{!"_ZTSSt12_Vector_baseImSaImEE", !86, i64 0}
!86 = !{!"_ZTSNSt12_Vector_baseImSaImEE12_Vector_implE", !87, i64 0}
!87 = !{!"_ZTSNSt12_Vector_baseImSaImEE17_Vector_impl_dataE", !6, i64 0, !6, i64 8, !6, i64 16}
!88 = !{!"_ZTSSt3mapImN13SwappedVectorIN7DynexCN10Blockchain10BlockEntryEE9ItemEntryESt4lessImESaISt4pairIKmS5_EEE", !89, i64 0}
!89 = !{!"_ZTSSt8_Rb_treeImSt4pairIKmN13SwappedVectorIN7DynexCN10Blockchain10BlockEntryEE9ItemEntryEESt10_Select1stIS8_ESt4lessImESaIS8_EE", !90, i64 0}
!90 = !{!"_ZTSNSt8_Rb_treeImSt4pairIKmN13SwappedVectorIN7DynexCN10Blockchain10BlockEntryEE9ItemEntryEESt10_Select1stIS8_ESt4lessImESaIS8_EE13_Rb_tree_implISC_Lb1EEE", !91, i64 0, !67, i64 8}
!91 = !{!"_ZTSSt20_Rb_tree_key_compareISt4lessImEE", !92, i64 0}
!92 = !{!"_ZTSSt4lessImE"}
!93 = !{!"_ZTSNSt7__cxx114listIN13SwappedVectorIN7DynexCN10Blockchain10BlockEntryEE10CacheEntryESaIS6_EEE", !94, i64 0}
!94 = !{!"_ZTSNSt7__cxx1110_List_baseIN13SwappedVectorIN7DynexCN10Blockchain10BlockEntryEE10CacheEntryESaIS6_EEE", !95, i64 0}
!95 = !{!"_ZTSNSt7__cxx1110_List_baseIN13SwappedVectorIN7DynexCN10Blockchain10BlockEntryEE10CacheEntryESaIS6_EE10_List_implE", !96, i64 0}
!96 = !{!"_ZTSNSt8__detail17_List_node_headerE", !97, i64 0, !16, i64 16}
!97 = !{!"_ZTSNSt8__detail15_List_node_baseE", !6, i64 0, !6, i64 8}
!98 = !{!"_ZTSN7DynexCN10BlockIndexE", !99, i64 0, !6, i64 120}
!99 = !{!"_ZTSN5boost11multi_index21multi_index_containerIN6Crypto4HashENS0_10indexed_byINS0_13random_accessINS0_3tagIN4mpl_2naES8_S8_S8_S8_S8_S8_S8_S8_S8_S8_S8_S8_S8_S8_S8_S8_S8_S8_S8_EEEENS0_13hashed_uniqueINS0_8identityIS3_EES8_S8_S8_EES8_S8_S8_S8_S8_S8_S8_S8_S8_S8_S8_S8_S8_S8_S8_S8_S8_S8_EESaIS3_EEE", !100, i64 0, !102, i64 8, !103, i64 16, !16, i64 112}
!100 = !{!"_ZTSN5boost16base_from_memberISaINS_11multi_index6detail24random_access_index_nodeINS2_17hashed_index_nodeINS2_15index_node_baseIN6Crypto4HashESaIS7_EEEEEEEELi0EEE", !101, i64 0}
!101 = !{!"_ZTSSaIN5boost11multi_index6detail24random_access_index_nodeINS1_17hashed_index_nodeINS1_15index_node_baseIN6Crypto4HashESaIS6_EEEEEEEE"}
!102 = !{!"_ZTSN5boost11multi_index6detail13header_holderIPNS1_24random_access_index_nodeINS1_17hashed_index_nodeINS1_15index_node_baseIN6Crypto4HashESaIS7_EEEEEEENS0_21multi_index_containerIS7_NS0_10indexed_byINS0_13random_accessINS0_3tagIN4mpl_2naESI_SI_SI_SI_SI_SI_SI_SI_SI_SI_SI_SI_SI_SI_SI_SI_SI_SI_SI_EEEENS0_13hashed_uniqueINS0_8identityIS7_EESI_SI_SI_EESI_SI_SI_SI_SI_SI_SI_SI_SI_SI_SI_SI_SI_SI_SI_SI_SI_SI_EES8_EEEE", !6, i64 0}
!103 = !{!"_ZTSN5boost11multi_index6detail19random_access_indexINS1_9nth_layerILi1EN6Crypto4HashENS0_10indexed_byINS0_13random_accessINS0_3tagIN4mpl_2naESA_SA_SA_SA_SA_SA_SA_SA_SA_SA_SA_SA_SA_SA_SA_SA_SA_SA_SA_EEEENS0_13hashed_uniqueINS0_8identityIS5_EESA_SA_SA_EESA_SA_SA_SA_SA_SA_SA_SA_SA_SA_SA_SA_SA_SA_SA_SA_SA_SA_EESaIS5_EEENS_3mpl7vector0ISA_EEEE", !104, i64 0, !110, i64 56}
!104 = !{!"_ZTSN5boost11multi_index6detail12hashed_indexINS0_8identityIN6Crypto4HashEEENS_4hashIS5_EESt8equal_toIS5_ENS1_9nth_layerILi2ES5_NS0_10indexed_byINS0_13random_accessINS0_3tagIN4mpl_2naESG_SG_SG_SG_SG_SG_SG_SG_SG_SG_SG_SG_SG_SG_SG_SG_SG_SG_SG_EEEENS0_13hashed_uniqueIS6_SG_SG_SG_EESG_SG_SG_SG_SG_SG_SG_SG_SG_SG_SG_SG_SG_SG_SG_SG_SG_SG_EESaIS5_EEENS_3mpl7vector0ISG_EENS1_17hashed_unique_tagEEE", !105, i64 0, !106, i64 1, !107, i64 2, !108, i64 8, !19, i64 40, !16, i64 48}
!105 = !{!"_ZTSN5boost11multi_index8identityIN6Crypto4HashEEE"}
!106 = !{!"_ZTSN5boost4hashIN6Crypto4HashEEE"}
!107 = !{!"_ZTSSt8equal_toIN6Crypto4HashEE"}
!108 = !{!"_ZTSN5boost11multi_index6detail12bucket_arrayISaIN6Crypto4HashEEEE", !16, i64 0, !109, i64 8}
!109 = !{!"_ZTSN5boost11multi_index6detail10auto_spaceINS1_27hashed_index_base_node_implISaIcEEESaIN6Crypto4HashEEEE", !42, i64 0, !16, i64 8, !6, i64 16}
!110 = !{!"_ZTSN5boost11multi_index6detail29random_access_index_ptr_arrayISaIN6Crypto4HashEEEE", !16, i64 0, !16, i64 8, !111, i64 16}
!111 = !{!"_ZTSN5boost11multi_index6detail10auto_spaceIPNS1_29random_access_index_node_implISaIcEEESaIN6Crypto4HashEEEE", !112, i64 0, !16, i64 8, !6, i64 16}
!112 = !{!"_ZTSSaIPN5boost11multi_index6detail29random_access_index_node_implISaIcEEEE"}
!113 = !{!"_ZTSSt13unordered_mapIN6Crypto4HashEN7DynexCN10Blockchain16TransactionIndexESt4hashIS1_ESt8equal_toIS1_ESaISt4pairIKS1_S4_EEE", !114, i64 0}
!114 = !{!"_ZTSSt10_HashtableIN6Crypto4HashESt4pairIKS1_N7DynexCN10Blockchain16TransactionIndexEESaIS7_ENSt8__detail10_Select1stESt8equal_toIS1_ESt4hashIS1_ENS9_18_Mod_range_hashingENS9_20_Default_ranged_hashENS9_20_Prime_rehash_policyENS9_17_Hashtable_traitsILb1ELb0ELb1EEEE", !6, i64 0, !16, i64 8, !17, i64 16, !16, i64 24, !18, i64 32, !6, i64 48}
!115 = !{!"_ZTSN6google15sparse_hash_mapImSt6vectorIN7DynexCN10Blockchain25MultisignatureOutputUsageESaIS4_EESt4hashImESt8equal_toImENS_27libc_allocator_with_reallocISt4pairIKmS6_EEEEE", !116, i64 0}
!116 = !{!"_ZTSN6google16sparse_hashtableISt4pairIKmSt6vectorIN7DynexCN10Blockchain25MultisignatureOutputUsageESaIS6_EEEmSt4hashImENS_15sparse_hash_mapImS8_SB_St8equal_toImENS_27libc_allocator_with_reallocIS9_EEE9SelectKeyENSH_6SetKeyESE_SG_EE", !117, i64 0, !118, i64 32, !16, i64 40, !119, i64 48}
!117 = !{!"_ZTSN6google16sparse_hashtableISt4pairIKmSt6vectorIN7DynexCN10Blockchain25MultisignatureOutputUsageESaIS6_EEEmSt4hashImENS_15sparse_hash_mapImS8_SB_St8equal_toImENS_27libc_allocator_with_reallocIS9_EEE9SelectKeyENSH_6SetKeyESE_SG_E8SettingsE", !50, i64 0}
!118 = !{!"_ZTSN6google16sparse_hashtableISt4pairIKmSt6vectorIN7DynexCN10Blockchain25MultisignatureOutputUsageESaIS6_EEEmSt4hashImENS_15sparse_hash_mapImS8_SB_St8equal_toImENS_27libc_allocator_with_reallocIS9_EEE9SelectKeyENSH_6SetKeyESE_SG_E7KeyInfoE", !16, i64 0}
!119 = !{!"_ZTSN6google11sparsetableISt4pairIKmSt6vectorIN7DynexCN10Blockchain25MultisignatureOutputUsageESaIS6_EEELt48ENS_27libc_allocator_with_reallocIS9_EEEE", !120, i64 0, !124, i64 24}
!120 = !{!"_ZTSSt6vectorIN6google11sparsegroupISt4pairIKmS_IN7DynexCN10Blockchain25MultisignatureOutputUsageESaIS6_EEELt48ENS0_27libc_allocator_with_reallocIS9_EEEENSA_ISC_EEE", !121, i64 0}
!121 = !{!"_ZTSSt12_Vector_baseIN6google11sparsegroupISt4pairIKmSt6vectorIN7DynexCN10Blockchain25MultisignatureOutputUsageESaIS7_EEELt48ENS0_27libc_allocator_with_reallocISA_EEEENSB_ISD_EEE", !122, i64 0}
!122 = !{!"_ZTSNSt12_Vector_baseIN6google11sparsegroupISt4pairIKmSt6vectorIN7DynexCN10Blockchain25MultisignatureOutputUsageESaIS7_EEELt48ENS0_27libc_allocator_with_reallocISA_EEEENSB_ISD_EEE12_Vector_implE", !123, i64 0}
!123 = !{!"_ZTSNSt12_Vector_baseIN6google11sparsegroupISt4pairIKmSt6vectorIN7DynexCN10Blockchain25MultisignatureOutputUsageESaIS7_EEELt48ENS0_27libc_allocator_with_reallocISA_EEEENSB_ISD_EEE17_Vector_impl_dataE", !6, i64 0, !6, i64 8, !6, i64 16}
!124 = !{!"_ZTSN6google11sparsetableISt4pairIKmSt6vectorIN7DynexCN10Blockchain25MultisignatureOutputUsageESaIS6_EEELt48ENS_27libc_allocator_with_reallocIS9_EEE8SettingsE", !16, i64 0, !16, i64 8}
!125 = !{!"_ZTSN7DynexCN20BasicUpgradeDetectorI13SwappedVectorINS_10Blockchain10BlockEntryEEEE", !70, i64 0, !6, i64 40, !6, i64 48, !7, i64 56, !52, i64 60}
!126 = !{!"_ZTSN7DynexCN14PaymentIdIndexE", !127, i64 0, !51, i64 88}
!127 = !{!"_ZTSSt18unordered_multimapIN6Crypto4HashES1_St8functionIFmRKS1_EESt8equal_toIS1_ESaISt4pairIS3_S1_EEE", !128, i64 0}
!128 = !{!"_ZTSSt10_HashtableIN6Crypto4HashESt4pairIKS1_S1_ESaIS4_ENSt8__detail10_Select1stESt8equal_toIS1_ESt8functionIFmRS3_EENS6_18_Mod_range_hashingENS6_20_Default_ranged_hashENS6_20_Prime_rehash_policyENS6_17_Hashtable_traitsILb1ELb0ELb0EEEE", !129, i64 0, !6, i64 32, !16, i64 40, !17, i64 48, !16, i64 56, !18, i64 64, !6, i64 80}
!129 = !{!"_ZTSNSt8__detail15_Hashtable_baseIN6Crypto4HashESt4pairIKS2_S2_ENS_10_Select1stESt8equal_toIS2_ESt8functionIFmRS4_EENS_18_Mod_range_hashingENS_20_Default_ranged_hashENS_17_Hashtable_traitsILb1ELb0ELb0EEEEE", !130, i64 0}
!130 = !{!"_ZTSNSt8__detail15_Hash_code_baseIN6Crypto4HashESt4pairIKS2_S2_ENS_10_Select1stESt8functionIFmRS4_EENS_18_Mod_range_hashingENS_20_Default_ranged_hashELb1EEE", !131, i64 0}
!131 = !{!"_ZTSNSt8__detail21_Hashtable_ebo_helperILi1ESt8functionIFmRKN6Crypto4HashEEELb0EEE", !132, i64 0}
!132 = !{!"_ZTSSt8functionIFmRKN6Crypto4HashEEE", !133, i64 0, !6, i64 24}
!133 = !{!"_ZTSSt14_Function_base", !7, i64 0, !6, i64 16}
!134 = !{!"_ZTSN7DynexCN12AddressIndexE", !135, i64 0, !51, i64 48}
!135 = !{!"_ZTSSt8multimapINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEN6Crypto4HashESt4lessIS5_ESaISt4pairIKS5_S7_EEE", !136, i64 0}
!136 = !{!"_ZTSSt8_Rb_treeINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEESt4pairIKS5_N6Crypto4HashEESt10_Select1stISA_ESt4lessIS5_ESaISA_EE", !137, i64 0}
!137 = !{!"_ZTSNSt8_Rb_treeINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEESt4pairIKS5_N6Crypto4HashEESt10_Select1stISA_ESt4lessIS5_ESaISA_EE13_Rb_tree_implISE_Lb1EEE", !138, i64 0, !67, i64 8}
!138 = !{!"_ZTSSt20_Rb_tree_key_compareISt4lessINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEEE", !139, i64 0}
!139 = !{!"_ZTSSt4lessINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEE"}
!140 = !{!"_ZTSN7DynexCN20TimestampBlocksIndexE", !141, i64 0, !51, i64 48}
!141 = !{!"_ZTSSt8multimapImN6Crypto4HashESt4lessImESaISt4pairIKmS1_EEE", !142, i64 0}
!142 = !{!"_ZTSSt8_Rb_treeImSt4pairIKmN6Crypto4HashEESt10_Select1stIS4_ESt4lessImESaIS4_EE", !143, i64 0}
!143 = !{!"_ZTSNSt8_Rb_treeImSt4pairIKmN6Crypto4HashEESt10_Select1stIS4_ESt4lessImESaIS4_EE13_Rb_tree_implIS8_Lb1EEE", !91, i64 0, !67, i64 8}
!144 = !{!"_ZTSN7DynexCN26GeneratedTransactionsIndexE", !145, i64 0, !16, i64 56, !51, i64 64}
!145 = !{!"_ZTSSt13unordered_mapIjmSt4hashIjESt8equal_toIjESaISt4pairIKjmEEE", !146, i64 0}
!146 = !{!"_ZTSSt10_HashtableIjSt4pairIKjmESaIS2_ENSt8__detail10_Select1stESt8equal_toIjESt4hashIjENS4_18_Mod_range_hashingENS4_20_Default_ranged_hashENS4_20_Prime_rehash_policyENS4_17_Hashtable_traitsILb0ELb0ELb1EEEE", !6, i64 0, !16, i64 8, !17, i64 16, !16, i64 24, !18, i64 32, !6, i64 48}
!147 = !{!"_ZTSN7DynexCN17OrphanBlocksIndexE", !148, i64 0, !51, i64 56}
!148 = !{!"_ZTSSt18unordered_multimapIjN6Crypto4HashESt4hashIjESt8equal_toIjESaISt4pairIKjS1_EEE", !149, i64 0}
!149 = !{!"_ZTSSt10_HashtableIjSt4pairIKjN6Crypto4HashEESaIS4_ENSt8__detail10_Select1stESt8equal_toIjESt4hashIjENS6_18_Mod_range_hashingENS6_20_Default_ranged_hashENS6_20_Prime_rehash_policyENS6_17_Hashtable_traitsILb0ELb0ELb0EEEE", !6, i64 0, !16, i64 8, !17, i64 16, !16, i64 24, !18, i64 32, !6, i64 48}
!150 = !{!"_ZTSN7DynexCN19IntrusiveLinkedListINS_12MessageQueueINS_17BlockchainMessageEEEEE", !6, i64 0, !6, i64 8}
!151 = !{!152, !52, i64 416}
!152 = !{!"_ZTSSt4pairIKN6Crypto4HashEN7DynexCN10Blockchain10BlockEntryEE", !153, i64 0, !154, i64 32}
!153 = !{!"_ZTSN6Crypto4HashE", !7, i64 0}
!154 = !{!"_ZTSN7DynexCN10Blockchain10BlockEntryE", !155, i64 0, !52, i64 384, !16, i64 392, !16, i64 400, !16, i64 408, !181, i64 416}
!155 = !{!"_ZTSN7DynexCN5BlockE", !156, i64 0, !157, i64 48, !163, i64 248, !159, i64 360}
!156 = !{!"_ZTSN7DynexCN11BlockHeaderE", !7, i64 0, !7, i64 1, !52, i64 4, !16, i64 8, !153, i64 16}
!157 = !{!"_ZTSN7DynexCN11ParentBlockE", !7, i64 0, !7, i64 1, !153, i64 2, !158, i64 34, !159, i64 40, !163, i64 64, !159, i64 176}
!158 = !{!"short", !7, i64 0}
!159 = !{!"_ZTSSt6vectorIN6Crypto4HashESaIS1_EE", !160, i64 0}
!160 = !{!"_ZTSSt12_Vector_baseIN6Crypto4HashESaIS1_EE", !161, i64 0}
!161 = !{!"_ZTSNSt12_Vector_baseIN6Crypto4HashESaIS1_EE12_Vector_implE", !162, i64 0}
!162 = !{!"_ZTSNSt12_Vector_baseIN6Crypto4HashESaIS1_EE17_Vector_impl_dataE", !6, i64 0, !6, i64 8, !6, i64 16}
!163 = !{!"_ZTSN7DynexCN11TransactionE", !164, i64 0, !177, i64 88}
!164 = !{!"_ZTSN7DynexCN17TransactionPrefixE", !7, i64 0, !16, i64 8, !165, i64 16, !169, i64 40, !173, i64 64}
!165 = !{!"_ZTSSt6vectorIN5boost7variantIN7DynexCN9BaseInputEJNS2_8KeyInputENS2_19MultisignatureInputEEEESaIS6_EE", !166, i64 0}
!166 = !{!"_ZTSSt12_Vector_baseIN5boost7variantIN7DynexCN9BaseInputEJNS2_8KeyInputENS2_19MultisignatureInputEEEESaIS6_EE", !167, i64 0}
!167 = !{!"_ZTSNSt12_Vector_baseIN5boost7variantIN7DynexCN9BaseInputEJNS2_8KeyInputENS2_19MultisignatureInputEEEESaIS6_EE12_Vector_implE", !168, i64 0}
!168 = !{!"_ZTSNSt12_Vector_baseIN5boost7variantIN7DynexCN9BaseInputEJNS2_8KeyInputENS2_19MultisignatureInputEEEESaIS6_EE17_Vector_impl_dataE", !6, i64 0, !6, i64 8, !6, i64 16}
!169 = !{!"_ZTSSt6vectorIN7DynexCN17TransactionOutputESaIS1_EE", !170, i64 0}
!170 = !{!"_ZTSSt12_Vector_baseIN7DynexCN17TransactionOutputESaIS1_EE", !171, i64 0}
!171 = !{!"_ZTSNSt12_Vector_baseIN7DynexCN17TransactionOutputESaIS1_EE12_Vector_implE", !172, i64 0}
!172 = !{!"_ZTSNSt12_Vector_baseIN7DynexCN17TransactionOutputESaIS1_EE17_Vector_impl_dataE", !6, i64 0, !6, i64 8, !6, i64 16}
!173 = !{!"_ZTSSt6vectorIhSaIhEE", !174, i64 0}
!174 = !{!"_ZTSSt12_Vector_baseIhSaIhEE", !175, i64 0}
!175 = !{!"_ZTSNSt12_Vector_baseIhSaIhEE12_Vector_implE", !176, i64 0}
!176 = !{!"_ZTSNSt12_Vector_baseIhSaIhEE17_Vector_impl_dataE", !6, i64 0, !6, i64 8, !6, i64 16}
!177 = !{!"_ZTSSt6vectorIS_IN6Crypto9SignatureESaIS1_EESaIS3_EE", !178, i64 0}
!178 = !{!"_ZTSSt12_Vector_baseISt6vectorIN6Crypto9SignatureESaIS2_EESaIS4_EE", !179, i64 0}
!179 = !{!"_ZTSNSt12_Vector_baseISt6vectorIN6Crypto9SignatureESaIS2_EESaIS4_EE12_Vector_implE", !180, i64 0}
!180 = !{!"_ZTSNSt12_Vector_baseISt6vectorIN6Crypto9SignatureESaIS2_EESaIS4_EE17_Vector_impl_dataE", !6, i64 0, !6, i64 8, !6, i64 16}
!181 = !{!"_ZTSSt6vectorIN7DynexCN10Blockchain16TransactionEntryESaIS2_EE", !182, i64 0}
!182 = !{!"_ZTSSt12_Vector_baseIN7DynexCN10Blockchain16TransactionEntryESaIS2_EE", !183, i64 0}
!183 = !{!"_ZTSNSt12_Vector_baseIN7DynexCN10Blockchain16TransactionEntryESaIS2_EE12_Vector_implE", !184, i64 0}
!184 = !{!"_ZTSNSt12_Vector_baseIN7DynexCN10Blockchain16TransactionEntryESaIS2_EE17_Vector_impl_dataE", !6, i64 0, !6, i64 8, !6, i64 16}
!185 = !{!154, !52, i64 384}
!186 = !{!16, !16, i64 0}
!187 = distinct !{!187, !188}
!188 = !{!"llvm.loop.mustprogress"}
!189 = !{!51, !51, i64 0}
!190 = !{i8 0, i8 2}
!191 = !{}
!192 = !{!156, !16, i64 8}
!193 = !{!152, !16, i64 432}
!194 = distinct !{!194, !188}
!195 = distinct !{!195, !188}


; 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.std::__cxx11::basic_string" = type { %"struct.std::__cxx11::basic_string<char>::_Alloc_hider", i64, %union.anon.38 }
%"struct.std::__cxx11::basic_string<char>::_Alloc_hider" = type { ptr }
%union.anon.38 = type { i64, [8 x i8] }
%"class.Logging::LoggerMessage" = type <{ %"class.std::basic_ostream.base", %"class.std::basic_streambuf", ptr, %"class.std::__cxx11::basic_string", i32, [4 x i8], %"class.std::__cxx11::basic_string", %"class.boost::posix_time::ptime", i8, [7 x i8], %"class.std::basic_ios" }>
%"class.std::basic_ostream.base" = type { ptr }
%"class.std::basic_streambuf" = type { ptr, ptr, ptr, ptr, ptr, ptr, ptr, %"class.std::locale" }
%"class.std::locale" = type { ptr }
%"class.boost::posix_time::ptime" = type { %"class.boost::date_time::base_time" }
%"class.boost::date_time::base_time" = type { %"struct.boost::date_time::counted_time_rep" }
%"struct.boost::date_time::counted_time_rep" = type { %"class.boost::date_time::int_adapter" }
%"class.boost::date_time::int_adapter" = type { i64 }
%"class.std::basic_ios" = type { %"class.std::ios_base", ptr, i8, i8, ptr, ptr, ptr, ptr }
%"class.std::ios_base" = type { ptr, i64, i64, i32, i32, i32, ptr, %"struct.std::ios_base::_Words", [8 x %"struct.std::ios_base::_Words"], i32, ptr, %"class.std::locale" }
%"struct.std::ios_base::_Words" = type { ptr, i64 }
%"class.std::vector.43" = type { %"struct.std::_Vector_base.44" }
%"struct.std::_Vector_base.44" = type { %"struct.std::_Vector_base<unsigned long, std::allocator<unsigned long>>::_Vector_impl" }
%"struct.std::_Vector_base<unsigned long, std::allocator<unsigned long>>::_Vector_impl" = type { %"struct.std::_Vector_base<unsigned long, std::allocator<unsigned long>>::_Vector_impl_data" }
%"struct.std::_Vector_base<unsigned long, std::allocator<unsigned long>>::_Vector_impl_data" = type { ptr, ptr, ptr }
%"class.std::lock_guard" = type { ptr }
%"struct.std::_List_const_iterator" = type { ptr }
%"struct.std::__detail::_Node_iterator.266" = type { %"struct.std::__detail::_Node_iterator_base.262" }
%"struct.std::__detail::_Node_iterator_base.262" = type { ptr }
%"struct.boost::foreach_detail_::auto_any" = type { ptr }
%"struct.boost::foreach_detail_::auto_any.280" = type { %"class.boost::iterators::reverse_iterator" }
%"class.boost::iterators::reverse_iterator" = type { %"class.boost::iterators::iterator_adaptor" }
%"class.boost::iterators::iterator_adaptor" = type { %"struct.std::_List_const_iterator" }

@_ZN7Logging10BRIGHT_REDB5cxx11E = external global %"class.std::__cxx11::basic_string", align 8
@.str.75 = external hidden unnamed_addr constant [34 x i8], align 1
@.str.76 = external hidden unnamed_addr constant [23 x i8], align 1
@.str.77 = external hidden unnamed_addr constant [45 x i8], align 1

; 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 nocallback nofree nosync nounwind willreturn memory(argmem: readwrite)
declare void @llvm.lifetime.end.p0(i64 immarg, ptr nocapture) #0

declare i32 @__gxx_personality_v0(...)

; Function Attrs: inlinehint mustprogress uwtable
declare dso_local noundef nonnull align 8 dereferenceable(161) ptr @_ZStlsIN7Logging13LoggerMessageEmEOT_S3_RKT0_(ptr noundef nonnull align 8 dereferenceable(161), ptr noundef nonnull align 8 dereferenceable(8)) local_unnamed_addr #1

declare void @_ZNK7Logging9LoggerRefclENS_5LevelERKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEE(ptr dead_on_unwind writable sret(%"class.Logging::LoggerMessage") align 8, ptr noundef nonnull align 8 dereferenceable(40), i32 noundef, ptr noundef nonnull align 8 dereferenceable(32)) local_unnamed_addr #2

; Function Attrs: nounwind
declare void @_ZN7Logging13LoggerMessageD1Ev(ptr noundef nonnull align 8 dereferenceable(161)) unnamed_addr #3

; Function Attrs: mustprogress uwtable
declare dso_local void @_ZNSt10lock_guardISt15recursive_mutexEC2ERS0_(ptr noundef nonnull align 8 dereferenceable(8), ptr noundef nonnull align 8 dereferenceable(40)) unnamed_addr #4 align 2

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

; Function Attrs: mustprogress nounwind uwtable
declare dso_local noundef i64 @_ZNK13SwappedVectorIN7DynexCN10Blockchain10BlockEntryEE4sizeEv(ptr noundef nonnull align 8 dereferenceable(1184)) local_unnamed_addr #5 align 2

; Function Attrs: inlinehint mustprogress uwtable
declare dso_local noundef nonnull align 8 dereferenceable(161) ptr @_ZStlsIN7Logging13LoggerMessageEA34_cEOT_S4_RKT0_(ptr noundef nonnull align 8 dereferenceable(161), ptr noundef nonnull align 1 dereferenceable(34)) local_unnamed_addr #1

; Function Attrs: mustprogress uwtable
declare dso_local noundef nonnull align 8 dereferenceable(440) ptr @_ZN13SwappedVectorIN7DynexCN10Blockchain10BlockEntryEEixEm(ptr noundef nonnull align 8 dereferenceable(1184), i64 noundef) local_unnamed_addr #4 align 2

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

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

; Function Attrs: mustprogress uwtable
declare dso_local noundef zeroext i8 @_ZNK7DynexCN10Blockchain29getBlockMajorVersionForHeightEj(ptr noundef nonnull align 8 dereferenceable(2636), i32 noundef) local_unnamed_addr #4 align 2

; Function Attrs: inlinehint mustprogress nounwind uwtable
declare dso_local noundef nonnull align 8 dereferenceable(8) ptr @_ZSt3minImERKT_S2_S2_(ptr noundef nonnull align 8 dereferenceable(8), ptr noundef nonnull align 8 dereferenceable(8)) local_unnamed_addr #6

; Function Attrs: mustprogress uwtable
declare dso_local noundef i64 @_ZNK7DynexCN8Currency35difficultyBlocksCountByBlockVersionEh(ptr noundef nonnull align 8 dereferenceable(984), i8 noundef zeroext) local_unnamed_addr #4 align 2

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

declare noundef i64 @_ZNK7DynexCN8Currency14nextDifficultyEjhSt6vectorImSaImEES3_(ptr noundef nonnull align 8 dereferenceable(984), i32 noundef, i8 noundef zeroext, ptr noundef, ptr noundef) local_unnamed_addr #2

; Function Attrs: mustprogress uwtable
declare dso_local void @_ZNSt6vectorImSaImEEC2ERKS1_(ptr noundef nonnull align 8 dereferenceable(24), ptr noundef nonnull align 8 dereferenceable(24)) unnamed_addr #4 align 2

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

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

; Function Attrs: mustprogress uwtable
define dso_local noundef i64 @_ZN7DynexCN10Blockchain41get_next_difficulty_for_alternative_chainERKNSt7__cxx114listINSt8__detail14_Node_iteratorISt4pairIKN6Crypto4HashENS0_10BlockEntryEELb0ELb1EEESaISB_EEERS9_(ptr noundef nonnull align 8 dereferenceable(2636) %0, ptr noundef nonnull align 8 dereferenceable(24) %1, ptr nocapture noundef nonnull readonly align 8 dereferenceable(440) %2) local_unnamed_addr #4 align 2 personality ptr @__gxx_personality_v0 {
  %4 = alloca %"class.std::vector.43", align 8
  %5 = alloca %"class.std::vector.43", align 8
  %6 = alloca %"class.std::lock_guard", align 8
  %7 = alloca i64, align 8
  %8 = alloca i64, align 8
  %9 = alloca i64, align 8
  %10 = alloca i64, align 8
  %11 = alloca %"class.Logging::LoggerMessage", align 8
  %12 = alloca i64, align 8
  %13 = alloca i64, align 8
  %14 = alloca i64, align 8
  %15 = alloca i8, align 1
  %16 = alloca %"struct.std::_List_const_iterator", align 8
  %17 = alloca %"struct.std::_List_const_iterator", align 8
  %18 = alloca %"struct.std::__detail::_Node_iterator.266", align 8
  %19 = alloca i64, align 8
  %20 = alloca i64, align 8
  %21 = alloca i64, align 8
  %22 = alloca i64, align 8
  %23 = alloca %"struct.boost::foreach_detail_::auto_any", align 8
  %24 = alloca %"struct.boost::foreach_detail_::auto_any.280", align 8
  %25 = alloca %"struct.boost::foreach_detail_::auto_any.280", align 8
  %26 = alloca i8, align 1
  %27 = alloca %"struct.std::__detail::_Node_iterator.266", align 8
  %28 = alloca %"class.std::vector.43", align 8
  %29 = alloca %"class.std::vector.43", align 8
  call void @llvm.lifetime.start.p0(i64 24, ptr nonnull %4) #7
  call void @_ZNSt6vectorImSaImEEC2Ev(ptr noundef nonnull align 8 dereferenceable(24) %4) #7
  call void @llvm.lifetime.start.p0(i64 24, ptr nonnull %5) #7
  call void @_ZNSt6vectorImSaImEEC2Ev(ptr noundef nonnull align 8 dereferenceable(24) %5) #7
  %30 = getelementptr inbounds i8, ptr %0, i64 576
  %31 = call noundef i64 @_ZNK13SwappedVectorIN7DynexCN10Blockchain10BlockEntryEE4sizeEv(ptr noundef nonnull align 8 dereferenceable(1184) %30)
  %32 = trunc i64 %31 to i32
  %33 = invoke noundef zeroext i8 @_ZNK7DynexCN10Blockchain29getBlockMajorVersionForHeightEj(ptr noundef nonnull align 8 dereferenceable(2636) %0, i32 noundef %32)
          to label %34 unwind label %69

34:                                               ; preds = %3
  %35 = call noundef i64 @_ZNKSt7__cxx114listINSt8__detail14_Node_iteratorISt4pairIKN6Crypto4HashEN7DynexCN10Blockchain10BlockEntryEELb0ELb1EEESaISB_EE4sizeEv(ptr noundef nonnull align 8 dereferenceable(24) %1) #7
  %36 = getelementptr inbounds i8, ptr %0, i64 80
  %37 = load ptr, ptr %36, align 8, !tbaa !5
  %38 = invoke noundef i64 @_ZNK7DynexCN8Currency35difficultyBlocksCountByBlockVersionEh(ptr noundef nonnull align 8 dereferenceable(984) %37, i8 noundef zeroext %33)
          to label %39 unwind label %69

39:                                               ; preds = %34
  %40 = icmp ult i64 %35, %38
  br i1 %40, label %41, label %150

41:                                               ; preds = %39
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %6) #7
  %42 = getelementptr inbounds i8, ptr %0, i64 96
  invoke void @_ZNSt10lock_guardISt15recursive_mutexEC2ERS0_(ptr noundef nonnull align 8 dereferenceable(8) %6, ptr noundef nonnull align 8 dereferenceable(40) %42)
          to label %43 unwind label %71

43:                                               ; preds = %41
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %7) #7
  %44 = call noundef i64 @_ZNKSt7__cxx114listINSt8__detail14_Node_iteratorISt4pairIKN6Crypto4HashEN7DynexCN10Blockchain10BlockEntryEELb0ELb1EEESaISB_EE4sizeEv(ptr noundef nonnull align 8 dereferenceable(24) %1) #7
  %.not77 = icmp eq i64 %44, 0
  br i1 %.not77, label %49, label %45

45:                                               ; preds = %43
  %46 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNKSt7__cxx114listINSt8__detail14_Node_iteratorISt4pairIKN6Crypto4HashEN7DynexCN10Blockchain10BlockEntryEELb0ELb1EEESaISB_EE5frontEv(ptr noundef nonnull align 8 dereferenceable(24) %1) #7
  %47 = call noundef ptr @_ZNKSt8__detail14_Node_iteratorISt4pairIKN6Crypto4HashEN7DynexCN10Blockchain10BlockEntryEELb0ELb1EEptEv(ptr noundef nonnull align 8 dereferenceable(8) %46) #7
  %48 = getelementptr inbounds i8, ptr %47, i64 416
  br label %51

49:                                               ; preds = %43
  %50 = getelementptr inbounds i8, ptr %2, i64 384
  br label %51

51:                                               ; preds = %49, %45
  %.in = phi ptr [ %48, %45 ], [ %50, %49 ]
  %52 = load i32, ptr %.in, align 8, !tbaa !149
  %53 = zext i32 %52 to i64
  store i64 %53, ptr %7, align 8, !tbaa !182
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %8) #7
  %54 = load ptr, ptr %36, align 8, !tbaa !5
  %55 = invoke noundef i64 @_ZNK7DynexCN8Currency35difficultyBlocksCountByBlockVersionEh(ptr noundef nonnull align 8 dereferenceable(984) %54, i8 noundef zeroext %33)
          to label %56 unwind label %73

56:                                               ; preds = %51
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %9) #7
  %57 = load ptr, ptr %36, align 8, !tbaa !5
  %58 = invoke noundef i64 @_ZNK7DynexCN8Currency35difficultyBlocksCountByBlockVersionEh(ptr noundef nonnull align 8 dereferenceable(984) %57, i8 noundef zeroext %33)
          to label %59 unwind label %75

59:                                               ; preds = %56
  store i64 %58, ptr %9, align 8, !tbaa !182
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %10) #7
  %60 = call noundef i64 @_ZNKSt7__cxx114listINSt8__detail14_Node_iteratorISt4pairIKN6Crypto4HashEN7DynexCN10Blockchain10BlockEntryEELb0ELb1EEESaISB_EE4sizeEv(ptr noundef nonnull align 8 dereferenceable(24) %1) #7
  store i64 %60, ptr %10, align 8, !tbaa !182
  %61 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZSt3minImERKT_S2_S2_(ptr noundef nonnull align 8 dereferenceable(8) %9, ptr noundef nonnull align 8 dereferenceable(8) %10)
  %62 = load i64, ptr %61, align 8, !tbaa !182
  %63 = sub i64 %55, %62
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %10) #7
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %9) #7
  store i64 %63, ptr %8, align 8, !tbaa !182
  %64 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZSt3minImERKT_S2_S2_(ptr noundef nonnull align 8 dereferenceable(8) %8, ptr noundef nonnull align 8 dereferenceable(8) %7)
  %65 = load i64, ptr %64, align 8, !tbaa !182
  store i64 %65, ptr %8, align 8, !tbaa !182
  %66 = load i64, ptr %7, align 8, !tbaa !182
  %67 = sub i64 %66, %65
  %.not78 = icmp eq i64 %66, %65
  %spec.select = select i1 %.not78, i64 1, i64 %67
  %68 = icmp ult i64 %spec.select, %66
  br i1 %68, label %.lr.ph107, label %._crit_edge108

69:                                               ; preds = %226, %34, %3
  %70 = landingpad { ptr, i32 }
          cleanup
  br label %240

71:                                               ; preds = %41
  %72 = landingpad { ptr, i32 }
          cleanup
  br label %149

73:                                               ; preds = %51
  %74 = landingpad { ptr, i32 }
          cleanup
  br label %148

75:                                               ; preds = %56
  %76 = landingpad { ptr, i32 }
          cleanup
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %9) #7
  br label %148

.lr.ph107:                                        ; preds = %59, %84
  %.164105 = phi i64 [ %85, %84 ], [ %spec.select, %59 ]
  %77 = invoke noundef nonnull align 8 dereferenceable(440) ptr @_ZN13SwappedVectorIN7DynexCN10Blockchain10BlockEntryEEixEm(ptr noundef nonnull align 8 dereferenceable(1184) %30, i64 noundef %.164105)
          to label %78 unwind label %.loopexit

78:                                               ; preds = %.lr.ph107
  %79 = getelementptr inbounds i8, ptr %77, i64 8
  invoke void @_ZNSt6vectorImSaImEE9push_backERKm(ptr noundef nonnull align 8 dereferenceable(24) %4, ptr noundef nonnull align 8 dereferenceable(8) %79)
          to label %80 unwind label %.loopexit

80:                                               ; preds = %78
  %81 = invoke noundef nonnull align 8 dereferenceable(440) ptr @_ZN13SwappedVectorIN7DynexCN10Blockchain10BlockEntryEEixEm(ptr noundef nonnull align 8 dereferenceable(1184) %30, i64 noundef %.164105)
          to label %82 unwind label %.loopexit

82:                                               ; preds = %80
  %83 = getelementptr inbounds i8, ptr %81, i64 400
  invoke void @_ZNSt6vectorImSaImEE9push_backERKm(ptr noundef nonnull align 8 dereferenceable(24) %5, ptr noundef nonnull align 8 dereferenceable(8) %83)
          to label %84 unwind label %.loopexit

84:                                               ; preds = %82
  %85 = add nuw i64 %.164105, 1
  %86 = load i64, ptr %7, align 8, !tbaa !182
  %87 = icmp ult i64 %85, %86
  br i1 %87, label %.lr.ph107, label %._crit_edge108, !llvm.loop !183

.loopexit:                                        ; preds = %.lr.ph107, %78, %80, %82
  %lpad.loopexit = landingpad { ptr, i32 }
          cleanup
  br label %148

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

._crit_edge108:                                   ; preds = %84, %59
  %88 = call noundef i64 @_ZNKSt7__cxx114listINSt8__detail14_Node_iteratorISt4pairIKN6Crypto4HashEN7DynexCN10Blockchain10BlockEntryEELb0ELb1EEESaISB_EE4sizeEv(ptr noundef nonnull align 8 dereferenceable(24) %1) #7
  %89 = call noundef i64 @_ZNKSt6vectorImSaImEE4sizeEv(ptr noundef nonnull align 8 dereferenceable(24) %4) #7
  %90 = load ptr, ptr %36, align 8, !tbaa !5
  %91 = invoke noundef i64 @_ZNK7DynexCN8Currency35difficultyBlocksCountByBlockVersionEh(ptr noundef nonnull align 8 dereferenceable(984) %90, i8 noundef zeroext %33)
          to label %92 unwind label %.loopexit.split-lp

92:                                               ; preds = %._crit_edge108
  %93 = add i64 %89, %88
  %.not79.not = icmp ugt i64 %93, %91
  br i1 %.not79.not, label %94, label %132

94:                                               ; preds = %92
  call void @llvm.lifetime.start.p0(i64 432, ptr nonnull %11) #7
  %95 = getelementptr inbounds i8, ptr %0, i64 2592
  invoke void @_ZNK7Logging9LoggerRefclENS_5LevelERKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEE(ptr dead_on_unwind nonnull writable sret(%"class.Logging::LoggerMessage") align 8 %11, ptr noundef nonnull align 8 dereferenceable(40) %95, i32 noundef 1, ptr noundef nonnull align 8 dereferenceable(32) @_ZN7Logging10BRIGHT_REDB5cxx11E)
          to label %96 unwind label %115

96:                                               ; preds = %94
  %97 = invoke noundef nonnull align 8 dereferenceable(161) ptr @_ZStlsIN7Logging13LoggerMessageEA34_cEOT_S4_RKT0_(ptr noundef nonnull align 8 dereferenceable(161) %11, ptr noundef nonnull align 1 dereferenceable(34) @.str.75)
          to label %98 unwind label %117

98:                                               ; preds = %96
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %12) #7
  %99 = call noundef i64 @_ZNKSt7__cxx114listINSt8__detail14_Node_iteratorISt4pairIKN6Crypto4HashEN7DynexCN10Blockchain10BlockEntryEELb0ELb1EEESaISB_EE4sizeEv(ptr noundef nonnull align 8 dereferenceable(24) %1) #7
  store i64 %99, ptr %12, align 8, !tbaa !182
  %100 = invoke noundef nonnull align 8 dereferenceable(161) ptr @_ZStlsIN7Logging13LoggerMessageEmEOT_S3_RKT0_(ptr noundef nonnull align 8 dereferenceable(161) %97, ptr noundef nonnull align 8 dereferenceable(8) %12)
          to label %101 unwind label %119

101:                                              ; preds = %98
  %102 = invoke noundef nonnull align 8 dereferenceable(161) ptr @_ZStlsIN7Logging13LoggerMessageEA23_cEOT_S4_RKT0_(ptr noundef nonnull align 8 dereferenceable(161) %100, ptr noundef nonnull align 1 dereferenceable(23) @.str.76)
          to label %103 unwind label %119

103:                                              ; preds = %101
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %13) #7
  %104 = call noundef i64 @_ZNKSt6vectorImSaImEE4sizeEv(ptr noundef nonnull align 8 dereferenceable(24) %4) #7
  store i64 %104, ptr %13, align 8, !tbaa !182
  %105 = invoke noundef nonnull align 8 dereferenceable(161) ptr @_ZStlsIN7Logging13LoggerMessageEmEOT_S3_RKT0_(ptr noundef nonnull align 8 dereferenceable(161) %102, ptr noundef nonnull align 8 dereferenceable(8) %13)
          to label %106 unwind label %121

106:                                              ; preds = %103
  %107 = invoke noundef nonnull align 8 dereferenceable(161) ptr @_ZStlsIN7Logging13LoggerMessageEA45_cEOT_S4_RKT0_(ptr noundef nonnull align 8 dereferenceable(161) %105, ptr noundef nonnull align 1 dereferenceable(45) @.str.77)
          to label %108 unwind label %121

108:                                              ; preds = %106
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %14) #7
  %109 = load ptr, ptr %36, align 8, !tbaa !5
  %110 = invoke noundef i64 @_ZNK7DynexCN8Currency35difficultyBlocksCountByBlockVersionEh(ptr noundef nonnull align 8 dereferenceable(984) %109, i8 noundef zeroext %33)
          to label %111 unwind label %123

111:                                              ; preds = %108
  store i64 %110, ptr %14, align 8, !tbaa !182
  %112 = invoke noundef nonnull align 8 dereferenceable(161) ptr @_ZStlsIN7Logging13LoggerMessageEmEOT_S3_RKT0_(ptr noundef nonnull align 8 dereferenceable(161) %107, ptr noundef nonnull align 8 dereferenceable(8) %14)
          to label %113 unwind label %123

113:                                              ; preds = %111
  call void @llvm.lifetime.start.p0(i64 1, ptr nonnull %15) #7
  store i8 93, ptr %15, align 1, !tbaa !185
  %114 = invoke noundef nonnull align 8 dereferenceable(161) ptr @_ZStlsIN7Logging13LoggerMessageEcEOT_S3_RKT0_(ptr noundef nonnull align 8 dereferenceable(161) %112, ptr noundef nonnull align 1 dereferenceable(1) %15)
          to label %.thread unwind label %125

.thread:                                          ; preds = %113
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %15) #7
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %14) #7
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %13) #7
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %12) #7
  call void @_ZN7Logging13LoggerMessageD1Ev(ptr noundef nonnull align 8 dereferenceable(161) %11) #7
  call void @llvm.lifetime.end.p0(i64 432, ptr nonnull %11) #7
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %8) #7
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %7) #7
  call void @_ZNSt10lock_guardISt15recursive_mutexED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %6) #7
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %6) #7
  br label %239

115:                                              ; preds = %94
  %116 = landingpad { ptr, i32 }
          cleanup
  br label %131

117:                                              ; preds = %96
  %118 = landingpad { ptr, i32 }
          cleanup
  br label %130

119:                                              ; preds = %101, %98
  %120 = landingpad { ptr, i32 }
          cleanup
  br label %129

121:                                              ; preds = %106, %103
  %122 = landingpad { ptr, i32 }
          cleanup
  br label %128

123:                                              ; preds = %111, %108
  %124 = landingpad { ptr, i32 }
          cleanup
  br label %127

125:                                              ; preds = %113
  %126 = landingpad { ptr, i32 }
          cleanup
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %15) #7
  br label %127

127:                                              ; preds = %125, %123
  %.pn80 = phi { ptr, i32 } [ %126, %125 ], [ %124, %123 ]
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %14) #7
  br label %128

128:                                              ; preds = %127, %121
  %.pn80.pn = phi { ptr, i32 } [ %.pn80, %127 ], [ %122, %121 ]
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %13) #7
  br label %129

129:                                              ; preds = %128, %119
  %.pn80.pn.pn = phi { ptr, i32 } [ %.pn80.pn, %128 ], [ %120, %119 ]
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %12) #7
  br label %130

130:                                              ; preds = %129, %117
  %.pn80.pn.pn.pn = phi { ptr, i32 } [ %.pn80.pn.pn, %129 ], [ %118, %117 ]
  call void @_ZN7Logging13LoggerMessageD1Ev(ptr noundef nonnull align 8 dereferenceable(161) %11) #7
  br label %131

131:                                              ; preds = %130, %115
  %.pn80.pn.pn.pn.pn = phi { ptr, i32 } [ %.pn80.pn.pn.pn, %130 ], [ %116, %115 ]
  call void @llvm.lifetime.end.p0(i64 432, ptr nonnull %11) #7
  br label %148

132:                                              ; preds = %92
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %16) #7
  %133 = call ptr @_ZNKSt7__cxx114listINSt8__detail14_Node_iteratorISt4pairIKN6Crypto4HashEN7DynexCN10Blockchain10BlockEntryEELb0ELb1EEESaISB_EE5beginEv(ptr noundef nonnull align 8 dereferenceable(24) %1) #7
  store ptr %133, ptr %16, align 8
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %17) #7
  %134 = call ptr @_ZNKSt7__cxx114listINSt8__detail14_Node_iteratorISt4pairIKN6Crypto4HashEN7DynexCN10Blockchain10BlockEntryEELb0ELb1EEESaISB_EE3endEv(ptr noundef nonnull align 8 dereferenceable(24) %1) #7
  store ptr %134, ptr %17, align 8
  %135 = call noundef zeroext i1 @_ZStneRKSt20_List_const_iteratorINSt8__detail14_Node_iteratorISt4pairIKN6Crypto4HashEN7DynexCN10Blockchain10BlockEntryEELb0ELb1EEEESD_(ptr noundef nonnull align 8 dereferenceable(8) %16, ptr noundef nonnull align 8 dereferenceable(8) %17) #7
  br i1 %135, label %.lr.ph110, label %._crit_edge111

.lr.ph110:                                        ; preds = %132, %143
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %18) #7
  %136 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNKSt20_List_const_iteratorINSt8__detail14_Node_iteratorISt4pairIKN6Crypto4HashEN7DynexCN10Blockchain10BlockEntryEELb0ELb1EEEEdeEv(ptr noundef nonnull align 8 dereferenceable(8) %16) #7
  %137 = load i64, ptr %136, align 8
  store i64 %137, ptr %18, align 8
  %138 = call noundef ptr @_ZNKSt8__detail14_Node_iteratorISt4pairIKN6Crypto4HashEN7DynexCN10Blockchain10BlockEntryEELb0ELb1EEptEv(ptr noundef nonnull align 8 dereferenceable(8) %18) #7
  %139 = getelementptr inbounds i8, ptr %138, i64 40
  invoke void @_ZNSt6vectorImSaImEE9push_backERKm(ptr noundef nonnull align 8 dereferenceable(24) %4, ptr noundef nonnull align 8 dereferenceable(8) %139)
          to label %140 unwind label %146

140:                                              ; preds = %.lr.ph110
  %141 = call noundef ptr @_ZNKSt8__detail14_Node_iteratorISt4pairIKN6Crypto4HashEN7DynexCN10Blockchain10BlockEntryEELb0ELb1EEptEv(ptr noundef nonnull align 8 dereferenceable(8) %18) #7
  %142 = getelementptr inbounds i8, ptr %141, i64 432
  invoke void @_ZNSt6vectorImSaImEE9push_backERKm(ptr noundef nonnull align 8 dereferenceable(24) %5, ptr noundef nonnull align 8 dereferenceable(8) %142)
          to label %143 unwind label %146

143:                                              ; preds = %140
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %18) #7
  %144 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNSt20_List_const_iteratorINSt8__detail14_Node_iteratorISt4pairIKN6Crypto4HashEN7DynexCN10Blockchain10BlockEntryEELb0ELb1EEEEppEv(ptr noundef nonnull align 8 dereferenceable(8) %16) #7
  %145 = call noundef zeroext i1 @_ZStneRKSt20_List_const_iteratorINSt8__detail14_Node_iteratorISt4pairIKN6Crypto4HashEN7DynexCN10Blockchain10BlockEntryEELb0ELb1EEEESD_(ptr noundef nonnull align 8 dereferenceable(8) %16, ptr noundef nonnull align 8 dereferenceable(8) %17) #7
  br i1 %145, label %.lr.ph110, label %._crit_edge111

146:                                              ; preds = %140, %.lr.ph110
  %147 = landingpad { ptr, i32 }
          cleanup
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %18) #7
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %17) #7
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %16) #7
  br label %148

._crit_edge111:                                   ; preds = %143, %132
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %17) #7
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %16) #7
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %8) #7
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %7) #7
  call void @_ZNSt10lock_guardISt15recursive_mutexED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %6) #7
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %6) #7
  br label %226

148:                                              ; preds = %.loopexit, %.loopexit.split-lp, %131, %146, %75, %73
  %.pn88.pn = phi { ptr, i32 } [ %76, %75 ], [ %74, %73 ], [ %147, %146 ], [ %.pn80.pn.pn.pn.pn, %131 ], [ %lpad.loopexit, %.loopexit ], [ %lpad.loopexit.split-lp, %.loopexit.split-lp ]
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %8) #7
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %7) #7
  call void @_ZNSt10lock_guardISt15recursive_mutexED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %6) #7
  br label %149

149:                                              ; preds = %148, %71
  %.pn88.pn.pn = phi { ptr, i32 } [ %.pn88.pn, %148 ], [ %72, %71 ]
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %6) #7
  br label %240

150:                                              ; preds = %39
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %19) #7
  %151 = call noundef i64 @_ZNKSt7__cxx114listINSt8__detail14_Node_iteratorISt4pairIKN6Crypto4HashEN7DynexCN10Blockchain10BlockEntryEELb0ELb1EEESaISB_EE4sizeEv(ptr noundef nonnull align 8 dereferenceable(24) %1) #7
  store i64 %151, ptr %19, align 8, !tbaa !182
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %20) #7
  %152 = load ptr, ptr %36, align 8, !tbaa !5
  %153 = invoke noundef i64 @_ZNK7DynexCN8Currency35difficultyBlocksCountByBlockVersionEh(ptr noundef nonnull align 8 dereferenceable(984) %152, i8 noundef zeroext %33)
          to label %154 unwind label %169

154:                                              ; preds = %150
  store i64 %153, ptr %20, align 8, !tbaa !182
  %155 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZSt3minImERKT_S2_S2_(ptr noundef nonnull align 8 dereferenceable(8) %19, ptr noundef nonnull align 8 dereferenceable(8) %20)
  %156 = load i64, ptr %155, align 8, !tbaa !182
  invoke void @_ZNSt6vectorImSaImEE6resizeEm(ptr noundef nonnull align 8 dereferenceable(24) %4, i64 noundef %156)
          to label %157 unwind label %169

157:                                              ; preds = %154
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %20) #7
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %19) #7
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %21) #7
  %158 = call noundef i64 @_ZNKSt7__cxx114listINSt8__detail14_Node_iteratorISt4pairIKN6Crypto4HashEN7DynexCN10Blockchain10BlockEntryEELb0ELb1EEESaISB_EE4sizeEv(ptr noundef nonnull align 8 dereferenceable(24) %1) #7
  store i64 %158, ptr %21, align 8, !tbaa !182
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %22) #7
  %159 = load ptr, ptr %36, align 8, !tbaa !5
  %160 = invoke noundef i64 @_ZNK7DynexCN8Currency35difficultyBlocksCountByBlockVersionEh(ptr noundef nonnull align 8 dereferenceable(984) %159, i8 noundef zeroext %33)
          to label %161 unwind label %171

161:                                              ; preds = %157
  store i64 %160, ptr %22, align 8, !tbaa !182
  %162 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZSt3minImERKT_S2_S2_(ptr noundef nonnull align 8 dereferenceable(8) %21, ptr noundef nonnull align 8 dereferenceable(8) %22)
  %163 = load i64, ptr %162, align 8, !tbaa !182
  invoke void @_ZNSt6vectorImSaImEE6resizeEm(ptr noundef nonnull align 8 dereferenceable(24) %5, i64 noundef %163)
          to label %164 unwind label %171

164:                                              ; preds = %161
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %22) #7
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %21) #7
  %165 = call noundef i64 @_ZNKSt6vectorImSaImEE4sizeEv(ptr noundef nonnull align 8 dereferenceable(24) %4) #7
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %23) #7
  %166 = invoke ptr @_ZN5boost15foreach_detail_7containIKNSt7__cxx114listINSt8__detail14_Node_iteratorISt4pairIKN6Crypto4HashEN7DynexCN10Blockchain10BlockEntryEELb0ELb1EEESaISE_EEEEENS0_8auto_anyIPT_EERSJ_PN4mpl_5bool_ILb0EEE(ptr noundef nonnull align 8 dereferenceable(24) %1, ptr noundef null)
          to label %167 unwind label %173

167:                                              ; preds = %164
  store ptr %166, ptr %23, align 8
  %168 = call noundef zeroext i1 @_ZNK5boost15foreach_detail_13auto_any_basecvbEv(ptr noundef nonnull align 1 dereferenceable(1) %23)
  br i1 %168, label %225, label %175

169:                                              ; preds = %154, %150
  %170 = landingpad { ptr, i32 }
          cleanup
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %20) #7
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %19) #7
  br label %240

171:                                              ; preds = %161, %157
  %172 = landingpad { ptr, i32 }
          cleanup
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %22) #7
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %21) #7
  br label %240

173:                                              ; preds = %164
  %174 = landingpad { ptr, i32 }
          cleanup
  br label %240

175:                                              ; preds = %167
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %24) #7
  %176 = invoke ptr @_ZN5boost15foreach_detail_6rbeginINSt7__cxx114listINSt8__detail14_Node_iteratorISt4pairIKN6Crypto4HashEN7DynexCN10Blockchain10BlockEntryEELb0ELb1EEESaISE_EEEN4mpl_5bool_ILb1EEEEENS0_8auto_anyINS0_24foreach_reverse_iteratorIT_T0_E4typeEEERKNS0_13auto_any_baseEPNS0_9type2typeISM_SN_EEPNSI_ILb0EEE(ptr noundef nonnull align 1 dereferenceable(1) %23, ptr noundef null, ptr noundef null)
          to label %177 unwind label %179

177:                                              ; preds = %175
  store ptr %176, ptr %24, align 8
  %178 = call noundef zeroext i1 @_ZNK5boost15foreach_detail_13auto_any_basecvbEv(ptr noundef nonnull align 1 dereferenceable(1) %24)
  br i1 %178, label %223, label %181

179:                                              ; preds = %175
  %180 = landingpad { ptr, i32 }
          cleanup
  br label %224

181:                                              ; preds = %177
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %25) #7
  %182 = invoke ptr @_ZN5boost15foreach_detail_4rendINSt7__cxx114listINSt8__detail14_Node_iteratorISt4pairIKN6Crypto4HashEN7DynexCN10Blockchain10BlockEntryEELb0ELb1EEESaISE_EEEN4mpl_5bool_ILb1EEEEENS0_8auto_anyINS0_24foreach_reverse_iteratorIT_T0_E4typeEEERKNS0_13auto_any_baseEPNS0_9type2typeISM_SN_EEPNSI_ILb0EEE(ptr noundef nonnull align 1 dereferenceable(1) %23, ptr noundef null, ptr noundef null)
          to label %183 unwind label %185

183:                                              ; preds = %181
  store ptr %182, ptr %25, align 8
  %184 = call noundef zeroext i1 @_ZNK5boost15foreach_detail_13auto_any_basecvbEv(ptr noundef nonnull align 1 dereferenceable(1) %25)
  br i1 %184, label %221, label %.lr.ph103.preheader

185:                                              ; preds = %181
  %186 = landingpad { ptr, i32 }
          cleanup
  br label %222

.lr.ph103.preheader:                              ; preds = %183
  call void @llvm.lifetime.start.p0(i64 1, ptr nonnull %26) #7
  store i8 1, ptr %26, align 1, !tbaa !186
  br label %.lr.ph103

.lr.ph103:                                        ; preds = %.lr.ph103.preheader, %219
  %.065101 = phi i64 [ %.368, %219 ], [ 0, %.lr.ph103.preheader ]
  %187 = invoke noundef zeroext i1 @_ZN5boost15foreach_detail_5rdoneINSt7__cxx114listINSt8__detail14_Node_iteratorISt4pairIKN6Crypto4HashEN7DynexCN10Blockchain10BlockEntryEELb0ELb1EEESaISE_EEEN4mpl_5bool_ILb1EEEEEbRKNS0_13auto_any_baseESM_PNS0_9type2typeIT_T0_EE(ptr noundef nonnull align 1 dereferenceable(1) %24, ptr noundef nonnull align 1 dereferenceable(1) %25, ptr noundef null)
          to label %188 unwind label %189

188:                                              ; preds = %.lr.ph103
  br i1 %187, label %.critedge, label %191

.critedge:                                        ; preds = %215, %188, %219
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %26) #7
  br label %221

189:                                              ; preds = %218, %.lr.ph103
  %190 = landingpad { ptr, i32 }
          cleanup
  br label %220

191:                                              ; preds = %188
  %192 = call noundef zeroext i1 @_ZN5boost15foreach_detail_9set_falseERb(ptr noundef nonnull align 1 dereferenceable(1) %26)
  br i1 %192, label %215, label %193

193:                                              ; preds = %191
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %27) #7
  %194 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZN5boost15foreach_detail_6rderefINSt7__cxx114listINSt8__detail14_Node_iteratorISt4pairIKN6Crypto4HashEN7DynexCN10Blockchain10BlockEntryEELb0ELb1EEESaISE_EEEN4mpl_5bool_ILb1EEEEENS0_17foreach_referenceIT_T0_E4typeERKNS0_13auto_any_baseEPNS0_9type2typeISL_SM_EE(ptr noundef nonnull align 1 dereferenceable(1) %24, ptr noundef null)
          to label %195 unwind label %.loopexit.split-lp94

195:                                              ; preds = %193
  %196 = load i64, ptr %194, align 8
  store i64 %196, ptr %27, align 8
  %197 = load i8, ptr %26, align 1, !tbaa !186, !range !187, !noundef !188
  %198 = trunc nuw i8 %197 to i1
  br i1 %198, label %._crit_edge, label %.lr.ph.preheader

.lr.ph.preheader:                                 ; preds = %195
  %199 = add i64 %.065101, 1
  %200 = call noundef ptr @_ZNKSt8__detail14_Node_iteratorISt4pairIKN6Crypto4HashEN7DynexCN10Blockchain10BlockEntryEELb0ELb1EEptEv(ptr noundef nonnull align 8 dereferenceable(8) %27) #7
  %201 = getelementptr inbounds i8, ptr %200, i64 40
  %202 = load i64, ptr %201, align 8, !tbaa !189
  %203 = xor i64 %.065101, -1
  %204 = add i64 %165, %203
  %205 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNSt6vectorImSaImEEixEm(ptr noundef nonnull align 8 dereferenceable(24) %4, i64 noundef %204) #7
  store i64 %202, ptr %205, align 8, !tbaa !182
  %206 = call noundef ptr @_ZNKSt8__detail14_Node_iteratorISt4pairIKN6Crypto4HashEN7DynexCN10Blockchain10BlockEntryEELb0ELb1EEptEv(ptr noundef nonnull align 8 dereferenceable(8) %27) #7
  %207 = getelementptr inbounds i8, ptr %206, i64 432
  %208 = load i64, ptr %207, align 8, !tbaa !190
  %209 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNSt6vectorImSaImEEixEm(ptr noundef nonnull align 8 dereferenceable(24) %5, i64 noundef %204) #7
  store i64 %208, ptr %209, align 8, !tbaa !182
  %210 = load ptr, ptr %36, align 8, !tbaa !5
  %211 = invoke noundef i64 @_ZNK7DynexCN8Currency35difficultyBlocksCountByBlockVersionEh(ptr noundef nonnull align 8 dereferenceable(984) %210, i8 noundef zeroext %33)
          to label %213 unwind label %.loopexit93

.loopexit93:                                      ; preds = %.lr.ph.preheader
  %lpad.loopexit95 = landingpad { ptr, i32 }
          cleanup
  br label %212

.loopexit.split-lp94:                             ; preds = %193
  %lpad.loopexit.split-lp96 = landingpad { ptr, i32 }
          cleanup
  br label %212

212:                                              ; preds = %.loopexit.split-lp94, %.loopexit93
  %lpad.phi97 = phi { ptr, i32 } [ %lpad.loopexit95, %.loopexit93 ], [ %lpad.loopexit.split-lp96, %.loopexit.split-lp94 ]
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %27) #7
  br label %220

213:                                              ; preds = %.lr.ph.preheader
  %.not = icmp ult i64 %199, %211
  br i1 %.not, label %214, label %._crit_edge

214:                                              ; preds = %213
  store i8 1, ptr %26, align 1, !tbaa !186
  br label %._crit_edge

._crit_edge:                                      ; preds = %213, %214, %195
  %.267 = phi i64 [ %.065101, %195 ], [ %199, %214 ], [ %199, %213 ]
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %27) #7
  br label %215

215:                                              ; preds = %._crit_edge, %191
  %.368 = phi i64 [ %.065101, %191 ], [ %.267, %._crit_edge ]
  %216 = load i8, ptr %26, align 1, !tbaa !186, !range !187, !noundef !188
  %217 = trunc nuw i8 %216 to i1
  br i1 %217, label %218, label %.critedge

218:                                              ; preds = %215
  invoke void @_ZN5boost15foreach_detail_5rnextINSt7__cxx114listINSt8__detail14_Node_iteratorISt4pairIKN6Crypto4HashEN7DynexCN10Blockchain10BlockEntryEELb0ELb1EEESaISE_EEEN4mpl_5bool_ILb1EEEEEvRKNS0_13auto_any_baseEPNS0_9type2typeIT_T0_EE(ptr noundef nonnull align 1 dereferenceable(1) %24, ptr noundef null)
          to label %219 unwind label %189

219:                                              ; preds = %218
  %.pre = load i8, ptr %26, align 1, !tbaa !186, !range !187
  %.pre114 = trunc nuw i8 %.pre to i1
  br i1 %.pre114, label %.lr.ph103, label %.critedge, !llvm.loop !192

220:                                              ; preds = %212, %189
  %.pn = phi { ptr, i32 } [ %190, %189 ], [ %lpad.phi97, %212 ]
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %26) #7
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %25) #7
  br label %222

221:                                              ; preds = %183, %.critedge
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %25) #7
  br label %223

222:                                              ; preds = %220, %185
  %.pn.pn = phi { ptr, i32 } [ %.pn, %220 ], [ %186, %185 ]
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %24) #7
  br label %224

223:                                              ; preds = %177, %221
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %24) #7
  br label %225

224:                                              ; preds = %222, %179
  %.pn.pn.pn = phi { ptr, i32 } [ %.pn.pn, %222 ], [ %180, %179 ]
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %23) #7
  br label %240

225:                                              ; preds = %167, %223
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %23) #7
  br label %226

226:                                              ; preds = %._crit_edge111, %225
  %227 = load ptr, ptr %36, align 8, !tbaa !5
  %228 = call noundef i64 @_ZNK13SwappedVectorIN7DynexCN10Blockchain10BlockEntryEE4sizeEv(ptr noundef nonnull align 8 dereferenceable(1184) %30)
  %229 = trunc i64 %228 to i32
  invoke void @_ZNSt6vectorImSaImEEC2ERKS1_(ptr noundef nonnull align 8 dereferenceable(24) %28, ptr noundef nonnull align 8 dereferenceable(24) %4)
          to label %230 unwind label %69

230:                                              ; preds = %226
  invoke void @_ZNSt6vectorImSaImEEC2ERKS1_(ptr noundef nonnull align 8 dereferenceable(24) %29, ptr noundef nonnull align 8 dereferenceable(24) %5)
          to label %231 unwind label %234

231:                                              ; preds = %230
  %232 = invoke noundef i64 @_ZNK7DynexCN8Currency14nextDifficultyEjhSt6vectorImSaImEES3_(ptr noundef nonnull align 8 dereferenceable(984) %227, i32 noundef %229, i8 noundef zeroext %33, ptr noundef nonnull %28, ptr noundef nonnull %29)
          to label %233 unwind label %236

233:                                              ; preds = %231
  call void @_ZNSt6vectorImSaImEED2Ev(ptr noundef nonnull align 8 dereferenceable(24) %29) #7
  call void @_ZNSt6vectorImSaImEED2Ev(ptr noundef nonnull align 8 dereferenceable(24) %28) #7
  br label %239

234:                                              ; preds = %230
  %235 = landingpad { ptr, i32 }
          cleanup
  br label %238

236:                                              ; preds = %231
  %237 = landingpad { ptr, i32 }
          cleanup
  call void @_ZNSt6vectorImSaImEED2Ev(ptr noundef nonnull align 8 dereferenceable(24) %29) #7
  br label %238

238:                                              ; preds = %236, %234
  %.pn86 = phi { ptr, i32 } [ %237, %236 ], [ %235, %234 ]
  call void @_ZNSt6vectorImSaImEED2Ev(ptr noundef nonnull align 8 dereferenceable(24) %28) #7
  br label %240

239:                                              ; preds = %.thread, %233
  %.1 = phi i64 [ %232, %233 ], [ 0, %.thread ]
  call void @_ZNSt6vectorImSaImEED2Ev(ptr noundef nonnull align 8 dereferenceable(24) %5) #7
  call void @llvm.lifetime.end.p0(i64 24, ptr nonnull %5) #7
  call void @_ZNSt6vectorImSaImEED2Ev(ptr noundef nonnull align 8 dereferenceable(24) %4) #7
  call void @llvm.lifetime.end.p0(i64 24, ptr nonnull %4) #7
  ret i64 %.1

240:                                              ; preds = %173, %224, %238, %171, %169, %149, %69
  %.pn88.pn.pn.pn = phi { ptr, i32 } [ %.pn88.pn.pn, %149 ], [ %.pn86, %238 ], [ %70, %69 ], [ %172, %171 ], [ %170, %169 ], [ %.pn.pn.pn, %224 ], [ %174, %173 ]
  call void @_ZNSt6vectorImSaImEED2Ev(ptr noundef nonnull align 8 dereferenceable(24) %5) #7
  call void @llvm.lifetime.end.p0(i64 24, ptr nonnull %5) #7
  call void @_ZNSt6vectorImSaImEED2Ev(ptr noundef nonnull align 8 dereferenceable(24) %4) #7
  call void @llvm.lifetime.end.p0(i64 24, ptr nonnull %4) #7
  resume { ptr, i32 } %.pn88.pn.pn.pn
}

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

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

; Function Attrs: inlinehint mustprogress uwtable
declare dso_local noundef nonnull align 8 dereferenceable(161) ptr @_ZStlsIN7Logging13LoggerMessageEcEOT_S3_RKT0_(ptr noundef nonnull align 8 dereferenceable(161), ptr noundef nonnull align 1 dereferenceable(1)) local_unnamed_addr #1

; Function Attrs: inlinehint mustprogress uwtable
declare dso_local noundef nonnull align 8 dereferenceable(161) ptr @_ZStlsIN7Logging13LoggerMessageEA45_cEOT_S4_RKT0_(ptr noundef nonnull align 8 dereferenceable(161), ptr noundef nonnull align 1 dereferenceable(45)) local_unnamed_addr #1

; Function Attrs: inlinehint mustprogress uwtable
declare dso_local noundef nonnull align 8 dereferenceable(161) ptr @_ZStlsIN7Logging13LoggerMessageEA23_cEOT_S4_RKT0_(ptr noundef nonnull align 8 dereferenceable(161), ptr noundef nonnull align 1 dereferenceable(23)) local_unnamed_addr #1

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

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

; Function Attrs: mustprogress nounwind uwtable
declare dso_local noundef zeroext i1 @_ZStneRKSt20_List_const_iteratorINSt8__detail14_Node_iteratorISt4pairIKN6Crypto4HashEN7DynexCN10Blockchain10BlockEntryEELb0ELb1EEEESD_(ptr noundef nonnull align 8 dereferenceable(8), ptr noundef nonnull align 8 dereferenceable(8)) local_unnamed_addr #5

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

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

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

; Function Attrs: inlinehint mustprogress uwtable
declare dso_local ptr @_ZN5boost15foreach_detail_7containIKNSt7__cxx114listINSt8__detail14_Node_iteratorISt4pairIKN6Crypto4HashEN7DynexCN10Blockchain10BlockEntryEELb0ELb1EEESaISE_EEEEENS0_8auto_anyIPT_EERSJ_PN4mpl_5bool_ILb0EEE(ptr noundef nonnull align 8 dereferenceable(24), ptr noundef) local_unnamed_addr #1

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

; Function Attrs: inlinehint mustprogress uwtable
declare dso_local ptr @_ZN5boost15foreach_detail_6rbeginINSt7__cxx114listINSt8__detail14_Node_iteratorISt4pairIKN6Crypto4HashEN7DynexCN10Blockchain10BlockEntryEELb0ELb1EEESaISE_EEEN4mpl_5bool_ILb1EEEEENS0_8auto_anyINS0_24foreach_reverse_iteratorIT_T0_E4typeEEERKNS0_13auto_any_baseEPNS0_9type2typeISM_SN_EEPNSI_ILb0EEE(ptr noundef nonnull align 1 dereferenceable(1), ptr noundef, ptr noundef) local_unnamed_addr #1

; Function Attrs: inlinehint mustprogress uwtable
declare dso_local ptr @_ZN5boost15foreach_detail_4rendINSt7__cxx114listINSt8__detail14_Node_iteratorISt4pairIKN6Crypto4HashEN7DynexCN10Blockchain10BlockEntryEELb0ELb1EEESaISE_EEEN4mpl_5bool_ILb1EEEEENS0_8auto_anyINS0_24foreach_reverse_iteratorIT_T0_E4typeEEERKNS0_13auto_any_baseEPNS0_9type2typeISM_SN_EEPNSI_ILb0EEE(ptr noundef nonnull align 1 dereferenceable(1), ptr noundef, ptr noundef) local_unnamed_addr #1

; Function Attrs: inlinehint mustprogress uwtable
declare dso_local noundef zeroext i1 @_ZN5boost15foreach_detail_5rdoneINSt7__cxx114listINSt8__detail14_Node_iteratorISt4pairIKN6Crypto4HashEN7DynexCN10Blockchain10BlockEntryEELb0ELb1EEESaISE_EEEN4mpl_5bool_ILb1EEEEEbRKNS0_13auto_any_baseESM_PNS0_9type2typeIT_T0_EE(ptr noundef nonnull align 1 dereferenceable(1), ptr noundef nonnull align 1 dereferenceable(1), ptr noundef) local_unnamed_addr #1

; Function Attrs: inlinehint mustprogress nounwind uwtable
declare dso_local noundef zeroext i1 @_ZN5boost15foreach_detail_9set_falseERb(ptr noundef nonnull align 1 dereferenceable(1)) local_unnamed_addr #6

; Function Attrs: inlinehint mustprogress uwtable
declare dso_local noundef nonnull align 8 dereferenceable(8) ptr @_ZN5boost15foreach_detail_6rderefINSt7__cxx114listINSt8__detail14_Node_iteratorISt4pairIKN6Crypto4HashEN7DynexCN10Blockchain10BlockEntryEELb0ELb1EEESaISE_EEEN4mpl_5bool_ILb1EEEEENS0_17foreach_referenceIT_T0_E4typeERKNS0_13auto_any_baseEPNS0_9type2typeISL_SM_EE(ptr noundef nonnull align 1 dereferenceable(1), ptr noundef) local_unnamed_addr #1

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

; Function Attrs: inlinehint mustprogress uwtable
declare dso_local void @_ZN5boost15foreach_detail_5rnextINSt7__cxx114listINSt8__detail14_Node_iteratorISt4pairIKN6Crypto4HashEN7DynexCN10Blockchain10BlockEntryEELb0ELb1EEESaISE_EEEN4mpl_5bool_ILb1EEEEEvRKNS0_13auto_any_baseEPNS0_9type2typeIT_T0_EE(ptr noundef nonnull align 1 dereferenceable(1), ptr noundef) local_unnamed_addr #1

attributes #0 = { mustprogress nocallback nofree nosync nounwind willreturn memory(argmem: readwrite) }
attributes #1 = { 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 #2 = { "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 = { 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 #4 = { 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 #5 = { 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 #6 = { 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 #7 = { 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, !13, i64 80}
!6 = !{!"_ZTSN7DynexCN10BlockchainE", !7, i64 0, !8, i64 8, !9, i64 16, !11, i64 24, !13, i64 80, !13, i64 88, !18, i64 96, !20, i64 136, !21, i64 144, !28, i64 208, !14, i64 296, !43, i64 304, !45, i64 360, !58, i64 448, !60, i64 480, !69, i64 568, !71, i64 576, !96, i64 1760, !111, i64 1888, !113, i64 1944, !123, i64 2032, !123, i64 2096, !123, i64 2160, !124, i64 2224, !132, i64 2320, !138, i64 2376, !142, i64 2432, !145, i64 2504, !49, i64 2568, !148, i64 2576, !68, i64 2592, !50, i64 2632}
!7 = !{!"_ZTSN7DynexCN21ITransactionValidatorE"}
!8 = !{!"_ZTSN7DynexCN24IDynexCNProtocolObserverE"}
!9 = !{!"omnipotent char", !10, i64 0}
!10 = !{!"Simple C++ TBAA"}
!11 = !{!"_ZTSSt13unordered_mapIN6Crypto4HashEbSt4hashIS1_ESt8equal_toIS1_ESaISt4pairIKS1_bEEE", !12, i64 0}
!12 = !{!"_ZTSSt10_HashtableIN6Crypto4HashESt4pairIKS1_bESaIS4_ENSt8__detail10_Select1stESt8equal_toIS1_ESt4hashIS1_ENS6_18_Mod_range_hashingENS6_20_Default_ranged_hashENS6_20_Prime_rehash_policyENS6_17_Hashtable_traitsILb1ELb0ELb1EEEE", !13, i64 0, !14, i64 8, !15, i64 16, !14, i64 24, !16, i64 32, !13, i64 48}
!13 = !{!"any pointer", !9, i64 0}
!14 = !{!"long", !9, i64 0}
!15 = !{!"_ZTSNSt8__detail15_Hash_node_baseE", !13, i64 0}
!16 = !{!"_ZTSNSt8__detail20_Prime_rehash_policyE", !17, i64 0, !14, i64 8}
!17 = !{!"float", !9, i64 0}
!18 = !{!"_ZTSSt15recursive_mutex", !19, i64 0}
!19 = !{!"_ZTSSt22__recursive_mutex_base", !9, i64 0}
!20 = !{!"_ZTSN6Crypto10cn_contextE", !13, i64 0}
!21 = !{!"_ZTSN5Tools15ObserverManagerIN7DynexCN26IBlockchainStorageObserverEEE", !22, i64 0, !26, i64 24}
!22 = !{!"_ZTSSt6vectorIPN7DynexCN26IBlockchainStorageObserverESaIS2_EE", !23, i64 0}
!23 = !{!"_ZTSSt12_Vector_baseIPN7DynexCN26IBlockchainStorageObserverESaIS2_EE", !24, i64 0}
!24 = !{!"_ZTSNSt12_Vector_baseIPN7DynexCN26IBlockchainStorageObserverESaIS2_EE12_Vector_implE", !25, i64 0}
!25 = !{!"_ZTSNSt12_Vector_baseIPN7DynexCN26IBlockchainStorageObserverESaIS2_EE17_Vector_impl_dataE", !13, i64 0, !13, i64 8, !13, i64 16}
!26 = !{!"_ZTSSt5mutex", !27, i64 0}
!27 = !{!"_ZTSSt12__mutex_base", !9, i64 0}
!28 = !{!"_ZTSN5boost11multi_index21multi_index_containerIN7DynexCN10Blockchain13SpentKeyImageENS0_10indexed_byINS0_18ordered_non_uniqueINS0_3tagINS3_13BlockIndexTagEN4mpl_2naESA_SA_SA_SA_SA_SA_SA_SA_SA_SA_SA_SA_SA_SA_SA_SA_SA_SA_EENS0_6memberIS4_jXadL_ZNS4_10blockIndexEEEEESA_EENS0_13hashed_uniqueINS7_INS3_11KeyImageTagESA_SA_SA_SA_SA_SA_SA_SA_SA_SA_SA_SA_SA_SA_SA_SA_SA_SA_SA_EENSC_IS4_N6Crypto8KeyImageEXadL_ZNS4_8keyImageEEEEESA_SA_EESA_SA_SA_SA_SA_SA_SA_SA_SA_SA_SA_SA_SA_SA_SA_SA_SA_SA_EESaIS4_EEE", !29, i64 0, !31, i64 8, !32, i64 16, !14, i64 80}
!29 = !{!"_ZTSN5boost16base_from_memberISaINS_11multi_index6detail18ordered_index_nodeINS2_19null_augment_policyENS2_17hashed_index_nodeINS2_15index_node_baseIN7DynexCN10Blockchain13SpentKeyImageESaIS9_EEEEEEEELi0EEE", !30, i64 0}
!30 = !{!"_ZTSSaIN5boost11multi_index6detail18ordered_index_nodeINS1_19null_augment_policyENS1_17hashed_index_nodeINS1_15index_node_baseIN7DynexCN10Blockchain13SpentKeyImageESaIS8_EEEEEEEE"}
!31 = !{!"_ZTSN5boost11multi_index6detail13header_holderIPNS1_18ordered_index_nodeINS1_19null_augment_policyENS1_17hashed_index_nodeINS1_15index_node_baseIN7DynexCN10Blockchain13SpentKeyImageESaIS9_EEEEEEENS0_21multi_index_containerIS9_NS0_10indexed_byINS0_18ordered_non_uniqueINS0_3tagINS8_13BlockIndexTagEN4mpl_2naESL_SL_SL_SL_SL_SL_SL_SL_SL_SL_SL_SL_SL_SL_SL_SL_SL_SL_EENS0_6memberIS9_jXadL_ZNS9_10blockIndexEEEEESL_EENS0_13hashed_uniqueINSI_INS8_11KeyImageTagESL_SL_SL_SL_SL_SL_SL_SL_SL_SL_SL_SL_SL_SL_SL_SL_SL_SL_SL_EENSN_IS9_N6Crypto8KeyImageEXadL_ZNS9_8keyImageEEEEESL_SL_EESL_SL_SL_SL_SL_SL_SL_SL_SL_SL_SL_SL_SL_SL_SL_SL_SL_SL_EESA_EEEE", !13, i64 0}
!32 = !{!"_ZTSN5boost11multi_index6detail13ordered_indexINS0_6memberIN7DynexCN10Blockchain13SpentKeyImageEjXadL_ZNS6_10blockIndexEEEEESt4lessIjENS1_9nth_layerILi1ES6_NS0_10indexed_byINS0_18ordered_non_uniqueINS0_3tagINS5_13BlockIndexTagEN4mpl_2naESG_SG_SG_SG_SG_SG_SG_SG_SG_SG_SG_SG_SG_SG_SG_SG_SG_SG_EES7_SG_EENS0_13hashed_uniqueINSD_INS5_11KeyImageTagESG_SG_SG_SG_SG_SG_SG_SG_SG_SG_SG_SG_SG_SG_SG_SG_SG_SG_SG_EENS3_IS6_N6Crypto8KeyImageEXadL_ZNS6_8keyImageEEEEESG_SG_EESG_SG_SG_SG_SG_SG_SG_SG_SG_SG_SG_SG_SG_SG_SG_SG_SG_SG_EESaIS6_EEENS_3mpl6v_itemISE_NST_7vector0ISG_EELi0EEENS1_22ordered_non_unique_tagENS1_19null_augment_policyEEE", !33, i64 0}
!33 = !{!"_ZTSN5boost11multi_index6detail18ordered_index_implINS0_6memberIN7DynexCN10Blockchain13SpentKeyImageEjXadL_ZNS6_10blockIndexEEEEESt4lessIjENS1_9nth_layerILi1ES6_NS0_10indexed_byINS0_18ordered_non_uniqueINS0_3tagINS5_13BlockIndexTagEN4mpl_2naESG_SG_SG_SG_SG_SG_SG_SG_SG_SG_SG_SG_SG_SG_SG_SG_SG_SG_EES7_SG_EENS0_13hashed_uniqueINSD_INS5_11KeyImageTagESG_SG_SG_SG_SG_SG_SG_SG_SG_SG_SG_SG_SG_SG_SG_SG_SG_SG_SG_EENS3_IS6_N6Crypto8KeyImageEXadL_ZNS6_8keyImageEEEEESG_SG_EESG_SG_SG_SG_SG_SG_SG_SG_SG_SG_SG_SG_SG_SG_SG_SG_SG_SG_EESaIS6_EEENS_3mpl6v_itemISE_NST_7vector0ISG_EELi0EEENS1_22ordered_non_unique_tagENS1_19null_augment_policyEEE", !34, i64 0, !41, i64 56, !42, i64 57}
!34 = !{!"_ZTSN5boost11multi_index6detail12hashed_indexINS0_6memberIN7DynexCN10Blockchain13SpentKeyImageEN6Crypto8KeyImageEXadL_ZNS6_8keyImageEEEEENS_4hashIS8_EESt8equal_toIS8_ENS1_9nth_layerILi2ES6_NS0_10indexed_byINS0_18ordered_non_uniqueINS0_3tagINS5_13BlockIndexTagEN4mpl_2naESK_SK_SK_SK_SK_SK_SK_SK_SK_SK_SK_SK_SK_SK_SK_SK_SK_SK_EENS3_IS6_jXadL_ZNS6_10blockIndexEEEEESK_EENS0_13hashed_uniqueINSH_INS5_11KeyImageTagESK_SK_SK_SK_SK_SK_SK_SK_SK_SK_SK_SK_SK_SK_SK_SK_SK_SK_SK_EES9_SK_SK_EESK_SK_SK_SK_SK_SK_SK_SK_SK_SK_SK_SK_SK_SK_SK_SK_SK_SK_EESaIS6_EEENS_3mpl6v_itemISP_NSV_7vector0ISK_EELi0EEENS1_17hashed_unique_tagEEE", !35, i64 0, !36, i64 1, !37, i64 2, !38, i64 8, !17, i64 40, !14, i64 48}
!35 = !{!"_ZTSN5boost11multi_index6memberIN7DynexCN10Blockchain13SpentKeyImageEN6Crypto8KeyImageEXadL_ZNS4_8keyImageEEEEE"}
!36 = !{!"_ZTSN5boost4hashIN6Crypto8KeyImageEEE"}
!37 = !{!"_ZTSSt8equal_toIN6Crypto8KeyImageEE"}
!38 = !{!"_ZTSN5boost11multi_index6detail12bucket_arrayISaIN7DynexCN10Blockchain13SpentKeyImageEEEE", !14, i64 0, !39, i64 8}
!39 = !{!"_ZTSN5boost11multi_index6detail10auto_spaceINS1_27hashed_index_base_node_implISaIcEEESaIN7DynexCN10Blockchain13SpentKeyImageEEEE", !40, i64 0, !14, i64 8, !13, i64 16}
!40 = !{!"_ZTSSaIN5boost11multi_index6detail27hashed_index_base_node_implISaIcEEEE"}
!41 = !{!"_ZTSN5boost11multi_index6memberIN7DynexCN10Blockchain13SpentKeyImageEjXadL_ZNS4_10blockIndexEEEEE"}
!42 = !{!"_ZTSSt4lessIjE"}
!43 = !{!"_ZTSSt13unordered_mapIN6Crypto4HashEN7DynexCN10Blockchain10BlockEntryESt4hashIS1_ESt8equal_toIS1_ESaISt4pairIKS1_S4_EEE", !44, i64 0}
!44 = !{!"_ZTSSt10_HashtableIN6Crypto4HashESt4pairIKS1_N7DynexCN10Blockchain10BlockEntryEESaIS7_ENSt8__detail10_Select1stESt8equal_toIS1_ESt4hashIS1_ENS9_18_Mod_range_hashingENS9_20_Default_ranged_hashENS9_20_Prime_rehash_policyENS9_17_Hashtable_traitsILb1ELb0ELb1EEEE", !13, i64 0, !14, i64 8, !15, i64 16, !14, i64 24, !16, i64 32, !13, i64 48}
!45 = !{!"_ZTSN6google15sparse_hash_mapImSt6vectorISt4pairIN7DynexCN10Blockchain16TransactionIndexEtESaIS6_EESt4hashImESt8equal_toImENS_27libc_allocator_with_reallocIS2_IKmS8_EEEEE", !46, i64 0}
!46 = !{!"_ZTSN6google16sparse_hashtableISt4pairIKmSt6vectorIS1_IN7DynexCN10Blockchain16TransactionIndexEtESaIS7_EEEmSt4hashImENS_15sparse_hash_mapImS9_SC_St8equal_toImENS_27libc_allocator_with_reallocISA_EEE9SelectKeyENSI_6SetKeyESF_SH_EE", !47, i64 0, !51, i64 32, !14, i64 40, !52, i64 48}
!47 = !{!"_ZTSN6google16sparse_hashtableISt4pairIKmSt6vectorIS1_IN7DynexCN10Blockchain16TransactionIndexEtESaIS7_EEEmSt4hashImENS_15sparse_hash_mapImS9_SC_St8equal_toImENS_27libc_allocator_with_reallocISA_EEE9SelectKeyENSI_6SetKeyESF_SH_E8SettingsE", !48, i64 0}
!48 = !{!"_ZTS21sh_hashtable_settingsImSt4hashImEmLi4EE", !14, i64 0, !14, i64 8, !17, i64 16, !17, i64 20, !49, i64 24, !49, i64 25, !49, i64 26, !50, i64 28}
!49 = !{!"bool", !9, i64 0}
!50 = !{!"int", !9, i64 0}
!51 = !{!"_ZTSN6google16sparse_hashtableISt4pairIKmSt6vectorIS1_IN7DynexCN10Blockchain16TransactionIndexEtESaIS7_EEEmSt4hashImENS_15sparse_hash_mapImS9_SC_St8equal_toImENS_27libc_allocator_with_reallocISA_EEE9SelectKeyENSI_6SetKeyESF_SH_E7KeyInfoE", !14, i64 0}
!52 = !{!"_ZTSN6google11sparsetableISt4pairIKmSt6vectorIS1_IN7DynexCN10Blockchain16TransactionIndexEtESaIS7_EEELt48ENS_27libc_allocator_with_reallocISA_EEEE", !53, i64 0, !57, i64 24}
!53 = !{!"_ZTSSt6vectorIN6google11sparsegroupISt4pairIKmS_IS2_IN7DynexCN10Blockchain16TransactionIndexEtESaIS7_EEELt48ENS0_27libc_allocator_with_reallocISA_EEEENSB_ISD_EEE", !54, i64 0}
!54 = !{!"_ZTSSt12_Vector_baseIN6google11sparsegroupISt4pairIKmSt6vectorIS2_IN7DynexCN10Blockchain16TransactionIndexEtESaIS8_EEELt48ENS0_27libc_allocator_with_reallocISB_EEEENSC_ISE_EEE", !55, i64 0}
!55 = !{!"_ZTSNSt12_Vector_baseIN6google11sparsegroupISt4pairIKmSt6vectorIS2_IN7DynexCN10Blockchain16TransactionIndexEtESaIS8_EEELt48ENS0_27libc_allocator_with_reallocISB_EEEENSC_ISE_EEE12_Vector_implE", !56, i64 0}
!56 = !{!"_ZTSNSt12_Vector_baseIN6google11sparsegroupISt4pairIKmSt6vectorIS2_IN7DynexCN10Blockchain16TransactionIndexEtESaIS8_EEELt48ENS0_27libc_allocator_with_reallocISB_EEEENSC_ISE_EEE17_Vector_impl_dataE", !13, i64 0, !13, i64 8, !13, i64 16}
!57 = !{!"_ZTSN6google11sparsetableISt4pairIKmSt6vectorIS1_IN7DynexCN10Blockchain16TransactionIndexEtESaIS7_EEELt48ENS_27libc_allocator_with_reallocISA_EEE8SettingsE", !14, i64 0, !14, i64 8}
!58 = !{!"_ZTSNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEE", !59, i64 0, !14, i64 8, !9, i64 16}
!59 = !{!"_ZTSNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE12_Alloc_hiderE", !13, i64 0}
!60 = !{!"_ZTSN7DynexCN11CheckpointsE", !61, i64 0, !68, i64 48}
!61 = !{!"_ZTSSt3mapIjN6Crypto4HashESt4lessIjESaISt4pairIKjS1_EEE", !62, i64 0}
!62 = !{!"_ZTSSt8_Rb_treeIjSt4pairIKjN6Crypto4HashEESt10_Select1stIS4_ESt4lessIjESaIS4_EE", !63, i64 0}
!63 = !{!"_ZTSNSt8_Rb_treeIjSt4pairIKjN6Crypto4HashEESt10_Select1stIS4_ESt4lessIjESaIS4_EE13_Rb_tree_implIS8_Lb1EEE", !64, i64 0, !65, i64 8}
!64 = !{!"_ZTSSt20_Rb_tree_key_compareISt4lessIjEE", !42, i64 0}
!65 = !{!"_ZTSSt15_Rb_tree_header", !66, i64 0, !14, i64 32}
!66 = !{!"_ZTSSt18_Rb_tree_node_base", !67, i64 0, !13, i64 8, !13, i64 16, !13, i64 24}
!67 = !{!"_ZTSSt14_Rb_tree_color", !9, i64 0}
!68 = !{!"_ZTSN7Logging9LoggerRefE", !13, i64 0, !58, i64 8}
!69 = !{!"_ZTSSt6atomicIbE", !70, i64 0}
!70 = !{!"_ZTSSt13__atomic_baseIbE", !49, i64 0}
!71 = !{!"_ZTS13SwappedVectorIN7DynexCN10Blockchain10BlockEntryEE", !72, i64 0, !72, i64 528, !14, i64 1056, !82, i64 1064, !14, i64 1088, !86, i64 1096, !91, i64 1144, !14, i64 1168, !14, i64 1176}
!72 = !{!"_ZTSSt13basic_fstreamIcSt11char_traitsIcEE", !73, i64 0, !76, i64 24}
!73 = !{!"_ZTSSd", !74, i64 0, !75, i64 16}
!74 = !{!"_ZTSSi", !14, i64 8}
!75 = !{!"_ZTSSo"}
!76 = !{!"_ZTSSt13basic_filebufIcSt11char_traitsIcEE", !77, i64 0, !9, i64 64, !79, i64 104, !80, i64 120, !81, i64 124, !81, i64 132, !81, i64 140, !13, i64 152, !14, i64 160, !49, i64 168, !49, i64 169, !49, i64 170, !9, i64 171, !13, i64 176, !13, i64 184, !49, i64 192, !13, i64 200, !13, i64 208, !14, i64 216, !13, i64 224, !13, i64 232}
!77 = !{!"_ZTSSt15basic_streambufIcSt11char_traitsIcEE", !13, i64 8, !13, i64 16, !13, i64 24, !13, i64 32, !13, i64 40, !13, i64 48, !78, i64 56}
!78 = !{!"_ZTSSt6locale", !13, i64 0}
!79 = !{!"_ZTSSt12__basic_fileIcE", !13, i64 0, !49, i64 8}
!80 = !{!"_ZTSSt13_Ios_Openmode", !9, i64 0}
!81 = !{!"_ZTS11__mbstate_t", !50, i64 0, !9, i64 4}
!82 = !{!"_ZTSSt6vectorImSaImEE", !83, i64 0}
!83 = !{!"_ZTSSt12_Vector_baseImSaImEE", !84, i64 0}
!84 = !{!"_ZTSNSt12_Vector_baseImSaImEE12_Vector_implE", !85, i64 0}
!85 = !{!"_ZTSNSt12_Vector_baseImSaImEE17_Vector_impl_dataE", !13, i64 0, !13, i64 8, !13, i64 16}
!86 = !{!"_ZTSSt3mapImN13SwappedVectorIN7DynexCN10Blockchain10BlockEntryEE9ItemEntryESt4lessImESaISt4pairIKmS5_EEE", !87, i64 0}
!87 = !{!"_ZTSSt8_Rb_treeImSt4pairIKmN13SwappedVectorIN7DynexCN10Blockchain10BlockEntryEE9ItemEntryEESt10_Select1stIS8_ESt4lessImESaIS8_EE", !88, i64 0}
!88 = !{!"_ZTSNSt8_Rb_treeImSt4pairIKmN13SwappedVectorIN7DynexCN10Blockchain10BlockEntryEE9ItemEntryEESt10_Select1stIS8_ESt4lessImESaIS8_EE13_Rb_tree_implISC_Lb1EEE", !89, i64 0, !65, i64 8}
!89 = !{!"_ZTSSt20_Rb_tree_key_compareISt4lessImEE", !90, i64 0}
!90 = !{!"_ZTSSt4lessImE"}
!91 = !{!"_ZTSNSt7__cxx114listIN13SwappedVectorIN7DynexCN10Blockchain10BlockEntryEE10CacheEntryESaIS6_EEE", !92, i64 0}
!92 = !{!"_ZTSNSt7__cxx1110_List_baseIN13SwappedVectorIN7DynexCN10Blockchain10BlockEntryEE10CacheEntryESaIS6_EEE", !93, i64 0}
!93 = !{!"_ZTSNSt7__cxx1110_List_baseIN13SwappedVectorIN7DynexCN10Blockchain10BlockEntryEE10CacheEntryESaIS6_EE10_List_implE", !94, i64 0}
!94 = !{!"_ZTSNSt8__detail17_List_node_headerE", !95, i64 0, !14, i64 16}
!95 = !{!"_ZTSNSt8__detail15_List_node_baseE", !13, i64 0, !13, i64 8}
!96 = !{!"_ZTSN7DynexCN10BlockIndexE", !97, i64 0, !13, i64 120}
!97 = !{!"_ZTSN5boost11multi_index21multi_index_containerIN6Crypto4HashENS0_10indexed_byINS0_13random_accessINS0_3tagIN4mpl_2naES8_S8_S8_S8_S8_S8_S8_S8_S8_S8_S8_S8_S8_S8_S8_S8_S8_S8_S8_EEEENS0_13hashed_uniqueINS0_8identityIS3_EES8_S8_S8_EES8_S8_S8_S8_S8_S8_S8_S8_S8_S8_S8_S8_S8_S8_S8_S8_S8_S8_EESaIS3_EEE", !98, i64 0, !100, i64 8, !101, i64 16, !14, i64 112}
!98 = !{!"_ZTSN5boost16base_from_memberISaINS_11multi_index6detail24random_access_index_nodeINS2_17hashed_index_nodeINS2_15index_node_baseIN6Crypto4HashESaIS7_EEEEEEEELi0EEE", !99, i64 0}
!99 = !{!"_ZTSSaIN5boost11multi_index6detail24random_access_index_nodeINS1_17hashed_index_nodeINS1_15index_node_baseIN6Crypto4HashESaIS6_EEEEEEEE"}
!100 = !{!"_ZTSN5boost11multi_index6detail13header_holderIPNS1_24random_access_index_nodeINS1_17hashed_index_nodeINS1_15index_node_baseIN6Crypto4HashESaIS7_EEEEEEENS0_21multi_index_containerIS7_NS0_10indexed_byINS0_13random_accessINS0_3tagIN4mpl_2naESI_SI_SI_SI_SI_SI_SI_SI_SI_SI_SI_SI_SI_SI_SI_SI_SI_SI_SI_EEEENS0_13hashed_uniqueINS0_8identityIS7_EESI_SI_SI_EESI_SI_SI_SI_SI_SI_SI_SI_SI_SI_SI_SI_SI_SI_SI_SI_SI_SI_EES8_EEEE", !13, i64 0}
!101 = !{!"_ZTSN5boost11multi_index6detail19random_access_indexINS1_9nth_layerILi1EN6Crypto4HashENS0_10indexed_byINS0_13random_accessINS0_3tagIN4mpl_2naESA_SA_SA_SA_SA_SA_SA_SA_SA_SA_SA_SA_SA_SA_SA_SA_SA_SA_SA_EEEENS0_13hashed_uniqueINS0_8identityIS5_EESA_SA_SA_EESA_SA_SA_SA_SA_SA_SA_SA_SA_SA_SA_SA_SA_SA_SA_SA_SA_SA_EESaIS5_EEENS_3mpl7vector0ISA_EEEE", !102, i64 0, !108, i64 56}
!102 = !{!"_ZTSN5boost11multi_index6detail12hashed_indexINS0_8identityIN6Crypto4HashEEENS_4hashIS5_EESt8equal_toIS5_ENS1_9nth_layerILi2ES5_NS0_10indexed_byINS0_13random_accessINS0_3tagIN4mpl_2naESG_SG_SG_SG_SG_SG_SG_SG_SG_SG_SG_SG_SG_SG_SG_SG_SG_SG_SG_EEEENS0_13hashed_uniqueIS6_SG_SG_SG_EESG_SG_SG_SG_SG_SG_SG_SG_SG_SG_SG_SG_SG_SG_SG_SG_SG_SG_EESaIS5_EEENS_3mpl7vector0ISG_EENS1_17hashed_unique_tagEEE", !103, i64 0, !104, i64 1, !105, i64 2, !106, i64 8, !17, i64 40, !14, i64 48}
!103 = !{!"_ZTSN5boost11multi_index8identityIN6Crypto4HashEEE"}
!104 = !{!"_ZTSN5boost4hashIN6Crypto4HashEEE"}
!105 = !{!"_ZTSSt8equal_toIN6Crypto4HashEE"}
!106 = !{!"_ZTSN5boost11multi_index6detail12bucket_arrayISaIN6Crypto4HashEEEE", !14, i64 0, !107, i64 8}
!107 = !{!"_ZTSN5boost11multi_index6detail10auto_spaceINS1_27hashed_index_base_node_implISaIcEEESaIN6Crypto4HashEEEE", !40, i64 0, !14, i64 8, !13, i64 16}
!108 = !{!"_ZTSN5boost11multi_index6detail29random_access_index_ptr_arrayISaIN6Crypto4HashEEEE", !14, i64 0, !14, i64 8, !109, i64 16}
!109 = !{!"_ZTSN5boost11multi_index6detail10auto_spaceIPNS1_29random_access_index_node_implISaIcEEESaIN6Crypto4HashEEEE", !110, i64 0, !14, i64 8, !13, i64 16}
!110 = !{!"_ZTSSaIPN5boost11multi_index6detail29random_access_index_node_implISaIcEEEE"}
!111 = !{!"_ZTSSt13unordered_mapIN6Crypto4HashEN7DynexCN10Blockchain16TransactionIndexESt4hashIS1_ESt8equal_toIS1_ESaISt4pairIKS1_S4_EEE", !112, i64 0}
!112 = !{!"_ZTSSt10_HashtableIN6Crypto4HashESt4pairIKS1_N7DynexCN10Blockchain16TransactionIndexEESaIS7_ENSt8__detail10_Select1stESt8equal_toIS1_ESt4hashIS1_ENS9_18_Mod_range_hashingENS9_20_Default_ranged_hashENS9_20_Prime_rehash_policyENS9_17_Hashtable_traitsILb1ELb0ELb1EEEE", !13, i64 0, !14, i64 8, !15, i64 16, !14, i64 24, !16, i64 32, !13, i64 48}
!113 = !{!"_ZTSN6google15sparse_hash_mapImSt6vectorIN7DynexCN10Blockchain25MultisignatureOutputUsageESaIS4_EESt4hashImESt8equal_toImENS_27libc_allocator_with_reallocISt4pairIKmS6_EEEEE", !114, i64 0}
!114 = !{!"_ZTSN6google16sparse_hashtableISt4pairIKmSt6vectorIN7DynexCN10Blockchain25MultisignatureOutputUsageESaIS6_EEEmSt4hashImENS_15sparse_hash_mapImS8_SB_St8equal_toImENS_27libc_allocator_with_reallocIS9_EEE9SelectKeyENSH_6SetKeyESE_SG_EE", !115, i64 0, !116, i64 32, !14, i64 40, !117, i64 48}
!115 = !{!"_ZTSN6google16sparse_hashtableISt4pairIKmSt6vectorIN7DynexCN10Blockchain25MultisignatureOutputUsageESaIS6_EEEmSt4hashImENS_15sparse_hash_mapImS8_SB_St8equal_toImENS_27libc_allocator_with_reallocIS9_EEE9SelectKeyENSH_6SetKeyESE_SG_E8SettingsE", !48, i64 0}
!116 = !{!"_ZTSN6google16sparse_hashtableISt4pairIKmSt6vectorIN7DynexCN10Blockchain25MultisignatureOutputUsageESaIS6_EEEmSt4hashImENS_15sparse_hash_mapImS8_SB_St8equal_toImENS_27libc_allocator_with_reallocIS9_EEE9SelectKeyENSH_6SetKeyESE_SG_E7KeyInfoE", !14, i64 0}
!117 = !{!"_ZTSN6google11sparsetableISt4pairIKmSt6vectorIN7DynexCN10Blockchain25MultisignatureOutputUsageESaIS6_EEELt48ENS_27libc_allocator_with_reallocIS9_EEEE", !118, i64 0, !122, i64 24}
!118 = !{!"_ZTSSt6vectorIN6google11sparsegroupISt4pairIKmS_IN7DynexCN10Blockchain25MultisignatureOutputUsageESaIS6_EEELt48ENS0_27libc_allocator_with_reallocIS9_EEEENSA_ISC_EEE", !119, i64 0}
!119 = !{!"_ZTSSt12_Vector_baseIN6google11sparsegroupISt4pairIKmSt6vectorIN7DynexCN10Blockchain25MultisignatureOutputUsageESaIS7_EEELt48ENS0_27libc_allocator_with_reallocISA_EEEENSB_ISD_EEE", !120, i64 0}
!120 = !{!"_ZTSNSt12_Vector_baseIN6google11sparsegroupISt4pairIKmSt6vectorIN7DynexCN10Blockchain25MultisignatureOutputUsageESaIS7_EEELt48ENS0_27libc_allocator_with_reallocISA_EEEENSB_ISD_EEE12_Vector_implE", !121, i64 0}
!121 = !{!"_ZTSNSt12_Vector_baseIN6google11sparsegroupISt4pairIKmSt6vectorIN7DynexCN10Blockchain25MultisignatureOutputUsageESaIS7_EEELt48ENS0_27libc_allocator_with_reallocISA_EEEENSB_ISD_EEE17_Vector_impl_dataE", !13, i64 0, !13, i64 8, !13, i64 16}
!122 = !{!"_ZTSN6google11sparsetableISt4pairIKmSt6vectorIN7DynexCN10Blockchain25MultisignatureOutputUsageESaIS6_EEELt48ENS_27libc_allocator_with_reallocIS9_EEE8SettingsE", !14, i64 0, !14, i64 8}
!123 = !{!"_ZTSN7DynexCN20BasicUpgradeDetectorI13SwappedVectorINS_10Blockchain10BlockEntryEEEE", !68, i64 0, !13, i64 40, !13, i64 48, !9, i64 56, !50, i64 60}
!124 = !{!"_ZTSN7DynexCN14PaymentIdIndexE", !125, i64 0, !49, i64 88}
!125 = !{!"_ZTSSt18unordered_multimapIN6Crypto4HashES1_St8functionIFmRKS1_EESt8equal_toIS1_ESaISt4pairIS3_S1_EEE", !126, i64 0}
!126 = !{!"_ZTSSt10_HashtableIN6Crypto4HashESt4pairIKS1_S1_ESaIS4_ENSt8__detail10_Select1stESt8equal_toIS1_ESt8functionIFmRS3_EENS6_18_Mod_range_hashingENS6_20_Default_ranged_hashENS6_20_Prime_rehash_policyENS6_17_Hashtable_traitsILb1ELb0ELb0EEEE", !127, i64 0, !13, i64 32, !14, i64 40, !15, i64 48, !14, i64 56, !16, i64 64, !13, i64 80}
!127 = !{!"_ZTSNSt8__detail15_Hashtable_baseIN6Crypto4HashESt4pairIKS2_S2_ENS_10_Select1stESt8equal_toIS2_ESt8functionIFmRS4_EENS_18_Mod_range_hashingENS_20_Default_ranged_hashENS_17_Hashtable_traitsILb1ELb0ELb0EEEEE", !128, i64 0}
!128 = !{!"_ZTSNSt8__detail15_Hash_code_baseIN6Crypto4HashESt4pairIKS2_S2_ENS_10_Select1stESt8functionIFmRS4_EENS_18_Mod_range_hashingENS_20_Default_ranged_hashELb1EEE", !129, i64 0}
!129 = !{!"_ZTSNSt8__detail21_Hashtable_ebo_helperILi1ESt8functionIFmRKN6Crypto4HashEEELb0EEE", !130, i64 0}
!130 = !{!"_ZTSSt8functionIFmRKN6Crypto4HashEEE", !131, i64 0, !13, i64 24}
!131 = !{!"_ZTSSt14_Function_base", !9, i64 0, !13, i64 16}
!132 = !{!"_ZTSN7DynexCN12AddressIndexE", !133, i64 0, !49, i64 48}
!133 = !{!"_ZTSSt8multimapINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEN6Crypto4HashESt4lessIS5_ESaISt4pairIKS5_S7_EEE", !134, i64 0}
!134 = !{!"_ZTSSt8_Rb_treeINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEESt4pairIKS5_N6Crypto4HashEESt10_Select1stISA_ESt4lessIS5_ESaISA_EE", !135, i64 0}
!135 = !{!"_ZTSNSt8_Rb_treeINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEESt4pairIKS5_N6Crypto4HashEESt10_Select1stISA_ESt4lessIS5_ESaISA_EE13_Rb_tree_implISE_Lb1EEE", !136, i64 0, !65, i64 8}
!136 = !{!"_ZTSSt20_Rb_tree_key_compareISt4lessINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEEE", !137, i64 0}
!137 = !{!"_ZTSSt4lessINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEE"}
!138 = !{!"_ZTSN7DynexCN20TimestampBlocksIndexE", !139, i64 0, !49, i64 48}
!139 = !{!"_ZTSSt8multimapImN6Crypto4HashESt4lessImESaISt4pairIKmS1_EEE", !140, i64 0}
!140 = !{!"_ZTSSt8_Rb_treeImSt4pairIKmN6Crypto4HashEESt10_Select1stIS4_ESt4lessImESaIS4_EE", !141, i64 0}
!141 = !{!"_ZTSNSt8_Rb_treeImSt4pairIKmN6Crypto4HashEESt10_Select1stIS4_ESt4lessImESaIS4_EE13_Rb_tree_implIS8_Lb1EEE", !89, i64 0, !65, i64 8}
!142 = !{!"_ZTSN7DynexCN26GeneratedTransactionsIndexE", !143, i64 0, !14, i64 56, !49, i64 64}
!143 = !{!"_ZTSSt13unordered_mapIjmSt4hashIjESt8equal_toIjESaISt4pairIKjmEEE", !144, i64 0}
!144 = !{!"_ZTSSt10_HashtableIjSt4pairIKjmESaIS2_ENSt8__detail10_Select1stESt8equal_toIjESt4hashIjENS4_18_Mod_range_hashingENS4_20_Default_ranged_hashENS4_20_Prime_rehash_policyENS4_17_Hashtable_traitsILb0ELb0ELb1EEEE", !13, i64 0, !14, i64 8, !15, i64 16, !14, i64 24, !16, i64 32, !13, i64 48}
!145 = !{!"_ZTSN7DynexCN17OrphanBlocksIndexE", !146, i64 0, !49, i64 56}
!146 = !{!"_ZTSSt18unordered_multimapIjN6Crypto4HashESt4hashIjESt8equal_toIjESaISt4pairIKjS1_EEE", !147, i64 0}
!147 = !{!"_ZTSSt10_HashtableIjSt4pairIKjN6Crypto4HashEESaIS4_ENSt8__detail10_Select1stESt8equal_toIjESt4hashIjENS6_18_Mod_range_hashingENS6_20_Default_ranged_hashENS6_20_Prime_rehash_policyENS6_17_Hashtable_traitsILb0ELb0ELb0EEEE", !13, i64 0, !14, i64 8, !15, i64 16, !14, i64 24, !16, i64 32, !13, i64 48}
!148 = !{!"_ZTSN7DynexCN19IntrusiveLinkedListINS_12MessageQueueINS_17BlockchainMessageEEEEE", !13, i64 0, !13, i64 8}
!149 = !{!150, !50, i64 384}
!150 = !{!"_ZTSN7DynexCN10Blockchain10BlockEntryE", !151, i64 0, !50, i64 384, !14, i64 392, !14, i64 400, !14, i64 408, !178, i64 416}
!151 = !{!"_ZTSN7DynexCN5BlockE", !152, i64 0, !154, i64 48, !160, i64 248, !156, i64 360}
!152 = !{!"_ZTSN7DynexCN11BlockHeaderE", !9, i64 0, !9, i64 1, !50, i64 4, !14, i64 8, !153, i64 16}
!153 = !{!"_ZTSN6Crypto4HashE", !9, i64 0}
!154 = !{!"_ZTSN7DynexCN11ParentBlockE", !9, i64 0, !9, i64 1, !153, i64 2, !155, i64 34, !156, i64 40, !160, i64 64, !156, i64 176}
!155 = !{!"short", !9, i64 0}
!156 = !{!"_ZTSSt6vectorIN6Crypto4HashESaIS1_EE", !157, i64 0}
!157 = !{!"_ZTSSt12_Vector_baseIN6Crypto4HashESaIS1_EE", !158, i64 0}
!158 = !{!"_ZTSNSt12_Vector_baseIN6Crypto4HashESaIS1_EE12_Vector_implE", !159, i64 0}
!159 = !{!"_ZTSNSt12_Vector_baseIN6Crypto4HashESaIS1_EE17_Vector_impl_dataE", !13, i64 0, !13, i64 8, !13, i64 16}
!160 = !{!"_ZTSN7DynexCN11TransactionE", !161, i64 0, !174, i64 88}
!161 = !{!"_ZTSN7DynexCN17TransactionPrefixE", !9, i64 0, !14, i64 8, !162, i64 16, !166, i64 40, !170, i64 64}
!162 = !{!"_ZTSSt6vectorIN5boost7variantIN7DynexCN9BaseInputEJNS2_8KeyInputENS2_19MultisignatureInputEEEESaIS6_EE", !163, i64 0}
!163 = !{!"_ZTSSt12_Vector_baseIN5boost7variantIN7DynexCN9BaseInputEJNS2_8KeyInputENS2_19MultisignatureInputEEEESaIS6_EE", !164, i64 0}
!164 = !{!"_ZTSNSt12_Vector_baseIN5boost7variantIN7DynexCN9BaseInputEJNS2_8KeyInputENS2_19MultisignatureInputEEEESaIS6_EE12_Vector_implE", !165, i64 0}
!165 = !{!"_ZTSNSt12_Vector_baseIN5boost7variantIN7DynexCN9BaseInputEJNS2_8KeyInputENS2_19MultisignatureInputEEEESaIS6_EE17_Vector_impl_dataE", !13, i64 0, !13, i64 8, !13, i64 16}
!166 = !{!"_ZTSSt6vectorIN7DynexCN17TransactionOutputESaIS1_EE", !167, i64 0}
!167 = !{!"_ZTSSt12_Vector_baseIN7DynexCN17TransactionOutputESaIS1_EE", !168, i64 0}
!168 = !{!"_ZTSNSt12_Vector_baseIN7DynexCN17TransactionOutputESaIS1_EE12_Vector_implE", !169, i64 0}
!169 = !{!"_ZTSNSt12_Vector_baseIN7DynexCN17TransactionOutputESaIS1_EE17_Vector_impl_dataE", !13, i64 0, !13, i64 8, !13, i64 16}
!170 = !{!"_ZTSSt6vectorIhSaIhEE", !171, i64 0}
!171 = !{!"_ZTSSt12_Vector_baseIhSaIhEE", !172, i64 0}
!172 = !{!"_ZTSNSt12_Vector_baseIhSaIhEE12_Vector_implE", !173, i64 0}
!173 = !{!"_ZTSNSt12_Vector_baseIhSaIhEE17_Vector_impl_dataE", !13, i64 0, !13, i64 8, !13, i64 16}
!174 = !{!"_ZTSSt6vectorIS_IN6Crypto9SignatureESaIS1_EESaIS3_EE", !175, i64 0}
!175 = !{!"_ZTSSt12_Vector_baseISt6vectorIN6Crypto9SignatureESaIS2_EESaIS4_EE", !176, i64 0}
!176 = !{!"_ZTSNSt12_Vector_baseISt6vectorIN6Crypto9SignatureESaIS2_EESaIS4_EE12_Vector_implE", !177, i64 0}
!177 = !{!"_ZTSNSt12_Vector_baseISt6vectorIN6Crypto9SignatureESaIS2_EESaIS4_EE17_Vector_impl_dataE", !13, i64 0, !13, i64 8, !13, i64 16}
!178 = !{!"_ZTSSt6vectorIN7DynexCN10Blockchain16TransactionEntryESaIS2_EE", !179, i64 0}
!179 = !{!"_ZTSSt12_Vector_baseIN7DynexCN10Blockchain16TransactionEntryESaIS2_EE", !180, i64 0}
!180 = !{!"_ZTSNSt12_Vector_baseIN7DynexCN10Blockchain16TransactionEntryESaIS2_EE12_Vector_implE", !181, i64 0}
!181 = !{!"_ZTSNSt12_Vector_baseIN7DynexCN10Blockchain16TransactionEntryESaIS2_EE17_Vector_impl_dataE", !13, i64 0, !13, i64 8, !13, i64 16}
!182 = !{!14, !14, i64 0}
!183 = distinct !{!183, !184}
!184 = !{!"llvm.loop.mustprogress"}
!185 = !{!9, !9, i64 0}
!186 = !{!49, !49, i64 0}
!187 = !{i8 0, i8 2}
!188 = !{}
!189 = !{!152, !14, i64 8}
!190 = !{!191, !14, i64 432}
!191 = !{!"_ZTSSt4pairIKN6Crypto4HashEN7DynexCN10Blockchain10BlockEntryEE", !153, i64 0, !150, i64 32}
!192 = distinct !{!192, !184}


; Effective O3 passes: BDCEPass,ConstraintEliminationPass,CorrelatedValuePropagationPass,EarlyCSEPass,GVNPass,GlobalOptPass,IPSCCPPass,IndVarSimplifyPass,InferFunctionAttrsPass,InstCombinePass,JumpThreadingPass,LCSSAPass,LoopRotatePass,LoopSimplifyPass,LoopUnrollPass,PostOrderFunctionAttrsPass,ReassociatePass,SCCPPass,SROAPass,SimplifyCFGPass