; 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::lock_guard" = type { ptr }
%"class.DynexCN::BlockCacheSerializer" = type { %"class.Logging::LoggerRef", i8, ptr, %"struct.Crypto::Hash" }
%"class.Logging::LoggerRef" = type { ptr, %"class.std::__cxx11::basic_string" }
%"struct.Crypto::Hash" = type { [32 x i8] }
%"class.DynexCN::BlockchainIndicesSerializer" = type { %"class.Logging::LoggerRef", i8, ptr, %"struct.Crypto::Hash" }
%"struct.DynexCN::block_verification_context" = type { i8, i8, i8, i8, i8 }
%"class.boost::value_initialized.232" = type { %"class.boost::initialized.233" }
%"class.boost::initialized.233" = type { %"struct.DynexCN::block_verification_context" }
%"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::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::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 }
%"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.12 = external hidden unnamed_addr constant [34 x i8], align 1
@_ZN7Logging12BRIGHT_WHITEB5cxx11E = external global %"class.std::__cxx11::basic_string", align 8
@.str.13 = external hidden unnamed_addr constant [22 x i8], align 1
@_ZN7Logging13BRIGHT_YELLOWB5cxx11E = external global %"class.std::__cxx11::basic_string", align 8
@.str.14 = external hidden unnamed_addr constant [68 x i8], align 1
@.str.15 = external hidden unnamed_addr constant [53 x i8], align 1
@.str.16 = external hidden unnamed_addr constant [73 x i8], align 1
@.str.17 = external hidden unnamed_addr constant [49 x i8], align 1
@.str.18 = external hidden unnamed_addr constant [42 x i8], align 1
@.str.19 = external hidden unnamed_addr constant [131 x i8], align 1
@.str.20 = external hidden unnamed_addr constant [57 x i8], align 1
@.str.21 = external hidden unnamed_addr constant [70 x i8], align 1
@.str.22 = external hidden unnamed_addr constant [51 x i8], align 1
@.str.23 = external hidden unnamed_addr constant [80 x i8], align 1
@__PRETTY_FUNCTION__._ZN7DynexCN10Blockchain4initERKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEb = external hidden unnamed_addr constant [58 x i8], align 1
@.str.24 = external hidden unnamed_addr constant [26 x i8], align 1
@.str.25 = external hidden unnamed_addr constant [8 x i8], align 1
@.str.26 = external hidden unnamed_addr constant [11 x i8], align 1
@.str.27 = external hidden unnamed_addr constant [33 x i8], align 1
@.str.28 = external hidden unnamed_addr constant [38 x i8], align 1
@_ZN7Logging12BRIGHT_GREENB5cxx11E = external global %"class.std::__cxx11::basic_string", align 8
@.str.29 = external hidden unnamed_addr constant [37 x i8], align 1
@.str.30 = external hidden unnamed_addr constant [3 x i8], align 1
@.str.31 = external hidden unnamed_addr constant [32 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: mustprogress nounwind uwtable
declare void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32)) unnamed_addr #2 align 2

; Function Attrs: inlinehint mustprogress nounwind uwtable
declare dso_local noundef zeroext i1 @_ZN6CryptoeqERKNS_4HashES2_(ptr noundef nonnull align 1 dereferenceable(32), ptr noundef nonnull align 1 dereferenceable(32)) #3

; 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)) #4

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)) #5

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

; 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 #7 align 2

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

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

; Function Attrs: mustprogress uwtable
define dso_local noundef zeroext i1 @_ZN7DynexCN10Blockchain4initERKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEb(ptr noundef nonnull align 8 dereferenceable(2636) %0, ptr noundef nonnull align 8 dereferenceable(32) %1, i1 noundef zeroext %2) #7 align 2 personality ptr @__gxx_personality_v0 {
  %4 = alloca i1, align 1
  %5 = alloca ptr, align 8
  %6 = alloca ptr, align 8
  %7 = alloca i8, align 1
  %8 = alloca %"class.std::lock_guard", align 8
  %9 = alloca ptr, align 8
  %10 = alloca i32, align 4
  %11 = alloca %"class.Logging::LoggerMessage", align 8
  %12 = alloca i32, align 4
  %13 = alloca %"class.Logging::LoggerMessage", align 8
  %14 = alloca %"class.std::__cxx11::basic_string", align 8
  %15 = alloca %"class.std::__cxx11::basic_string", align 8
  %16 = alloca i8, align 1
  %17 = alloca %"class.DynexCN::BlockCacheSerializer", align 8
  %18 = alloca %"struct.Crypto::Hash", align 8
  %19 = alloca %"class.std::__cxx11::basic_string", align 8
  %20 = alloca %"class.Logging::LoggerMessage", align 8
  %21 = alloca %"class.Logging::LoggerMessage", align 8
  %22 = alloca %"class.DynexCN::BlockchainIndicesSerializer", align 8
  %23 = alloca %"struct.Crypto::Hash", align 8
  %24 = alloca %"class.std::__cxx11::basic_string", align 8
  %25 = alloca %"class.Logging::LoggerMessage", align 8
  %26 = alloca %"class.Logging::LoggerMessage", align 8
  %27 = alloca %"struct.DynexCN::block_verification_context", align 1
  %28 = alloca %"class.boost::value_initialized.232", align 1
  %29 = alloca %"class.Logging::LoggerMessage", align 8
  %30 = alloca %"struct.Crypto::Hash", align 1
  %31 = alloca %"class.Logging::LoggerMessage", align 8
  %32 = alloca i32, align 4
  %33 = alloca %"class.Logging::LoggerMessage", align 8
  %34 = alloca %"class.Logging::LoggerMessage", align 8
  %35 = alloca i8, align 1
  %36 = alloca i32, align 4
  %37 = alloca %"class.Logging::LoggerMessage", align 8
  %38 = alloca i32, align 4
  %39 = alloca i32, align 4
  %40 = alloca i32, align 4
  %41 = alloca i32, align 4
  %42 = alloca %"class.Logging::LoggerMessage", align 8
  %43 = alloca i32, align 4
  %44 = alloca i32, align 4
  %45 = alloca i32, align 4
  %46 = alloca i32, align 4
  %47 = alloca %"class.Logging::LoggerMessage", align 8
  %48 = alloca i32, align 4
  %49 = alloca i32, align 4
  %50 = alloca i32, align 4
  %51 = alloca %"class.Logging::LoggerMessage", align 8
  %52 = alloca i64, align 8
  %53 = alloca %"class.Logging::LoggerMessage", align 8
  %54 = alloca i64, align 8
  %55 = alloca %"class.std::__cxx11::basic_string", align 8
  %56 = alloca i64, align 8
  store ptr %0, ptr %5, align 8, !tbaa !5
  store ptr %1, ptr %6, align 8, !tbaa !5
  %57 = zext i1 %2 to i8
  store i8 %57, ptr %7, align 1, !tbaa !9
  %58 = load ptr, ptr %5, align 8
  call void @llvm.lifetime.start.p0(i64 8, ptr %8) #9
  %59 = getelementptr inbounds %"class.DynexCN::Blockchain", ptr %58, i32 0, i32 7
  call void @_ZNSt10lock_guardISt15recursive_mutexEC2ERS0_(ptr noundef nonnull align 8 dereferenceable(8) %8, ptr noundef nonnull align 8 dereferenceable(40) %59)
  %60 = load ptr, ptr %6, align 8, !tbaa !5
  %61 = call noundef zeroext i1 @_ZNKSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE5emptyEv(ptr noundef nonnull align 8 dereferenceable(32) %60) #9
  br i1 %61, label %87, label %62

62:                                               ; preds = %3
  %63 = load ptr, ptr %6, align 8, !tbaa !5
  %64 = invoke noundef zeroext i1 @_ZN5Tools31create_directories_if_necessaryERKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEE(ptr noundef nonnull align 8 dereferenceable(32) %63)
          to label %65 unwind label %74

65:                                               ; preds = %62
  br i1 %64, label %87, label %66

66:                                               ; preds = %65
  call void @llvm.lifetime.start.p0(i64 432, ptr %11) #9
  %67 = getelementptr inbounds %"class.DynexCN::Blockchain", ptr %58, i32 0, i32 33
  invoke void @_ZNK7Logging9LoggerRefclENS_5LevelERKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEE(ptr dead_on_unwind writable sret(%"class.Logging::LoggerMessage") align 8 %11, ptr noundef nonnull align 8 dereferenceable(40) %67, i32 noundef 1, ptr noundef nonnull align 8 dereferenceable(32) @_ZN7Logging10BRIGHT_REDB5cxx11E)
          to label %68 unwind label %78

68:                                               ; preds = %66
  %69 = 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.12)
          to label %70 unwind label %82

70:                                               ; preds = %68
  %71 = getelementptr inbounds %"class.DynexCN::Blockchain", ptr %58, i32 0, i32 14
  %72 = invoke noundef nonnull align 8 dereferenceable(161) ptr @_ZStlsIN7Logging13LoggerMessageENSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEEOT_S9_RKT0_(ptr noundef nonnull align 8 dereferenceable(161) %69, ptr noundef nonnull align 8 dereferenceable(32) %71)
          to label %73 unwind label %82

73:                                               ; preds = %70
  call void @_ZN7Logging13LoggerMessageD1Ev(ptr noundef nonnull align 8 dereferenceable(161) %11) #9
  call void @llvm.lifetime.end.p0(i64 432, ptr %11) #9
  store i1 false, ptr %4, align 1
  store i32 1, ptr %12, align 4
  br label %763

74:                                               ; preds = %278, %275, %139, %87, %62
  %75 = landingpad { ptr, i32 }
          cleanup
  %76 = extractvalue { ptr, i32 } %75, 0
  store ptr %76, ptr %9, align 8
  %77 = extractvalue { ptr, i32 } %75, 1
  store i32 %77, ptr %10, align 4
  br label %765

78:                                               ; preds = %66
  %79 = landingpad { ptr, i32 }
          cleanup
  %80 = extractvalue { ptr, i32 } %79, 0
  store ptr %80, ptr %9, align 8
  %81 = extractvalue { ptr, i32 } %79, 1
  store i32 %81, ptr %10, align 4
  br label %86

82:                                               ; preds = %70, %68
  %83 = landingpad { ptr, i32 }
          cleanup
  %84 = extractvalue { ptr, i32 } %83, 0
  store ptr %84, ptr %9, align 8
  %85 = extractvalue { ptr, i32 } %83, 1
  store i32 %85, ptr %10, align 4
  call void @_ZN7Logging13LoggerMessageD1Ev(ptr noundef nonnull align 8 dereferenceable(161) %11) #9
  br label %86

86:                                               ; preds = %82, %78
  call void @llvm.lifetime.end.p0(i64 432, ptr %11) #9
  br label %765

87:                                               ; preds = %65, %3
  %88 = load ptr, ptr %6, align 8, !tbaa !5
  %89 = getelementptr inbounds %"class.DynexCN::Blockchain", ptr %58, i32 0, i32 14
  %90 = invoke noundef nonnull align 8 dereferenceable(32) ptr @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEaSERKS4_(ptr noundef nonnull align 8 dereferenceable(32) %89, ptr noundef nonnull align 8 dereferenceable(32) %88)
          to label %91 unwind label %74

91:                                               ; preds = %87
  call void @llvm.lifetime.start.p0(i64 432, ptr %13) #9
  %92 = getelementptr inbounds %"class.DynexCN::Blockchain", ptr %58, i32 0, i32 33
  invoke void @_ZNK7Logging9LoggerRefclENS_5LevelERKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEE(ptr dead_on_unwind writable sret(%"class.Logging::LoggerMessage") align 8 %13, ptr noundef nonnull align 8 dereferenceable(40) %92, i32 noundef 3, ptr noundef nonnull align 8 dereferenceable(32) @_ZN7Logging12BRIGHT_WHITEB5cxx11E)
          to label %93 unwind label %113

93:                                               ; preds = %91
  %94 = invoke noundef nonnull align 8 dereferenceable(161) ptr @_ZStlsIN7Logging13LoggerMessageEA22_cEOT_S4_RKT0_(ptr noundef nonnull align 8 dereferenceable(161) %13, ptr noundef nonnull align 1 dereferenceable(22) @.str.13)
          to label %95 unwind label %117

95:                                               ; preds = %93
  call void @_ZN7Logging13LoggerMessageD1Ev(ptr noundef nonnull align 8 dereferenceable(161) %13) #9
  call void @llvm.lifetime.end.p0(i64 432, ptr %13) #9
  %96 = getelementptr inbounds %"class.DynexCN::Blockchain", ptr %58, i32 0, i32 18
  call void @llvm.lifetime.start.p0(i64 32, ptr %14) #9
  %97 = load ptr, ptr %6, align 8, !tbaa !5
  %98 = getelementptr inbounds %"class.DynexCN::Blockchain", ptr %58, i32 0, i32 5
  %99 = load ptr, ptr %98, align 8, !tbaa !11
  %100 = invoke noundef nonnull align 8 dereferenceable(32) ptr @_ZNK7DynexCN8Currency14blocksFileNameB5cxx11Ev(ptr noundef nonnull align 8 dereferenceable(984) %99)
          to label %101 unwind label %122

101:                                              ; preds = %95
  invoke void @_ZN12_GLOBAL__N_110appendPathERKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEES7_(ptr dead_on_unwind writable sret(%"class.std::__cxx11::basic_string") align 8 %14, ptr noundef nonnull align 8 dereferenceable(32) %97, ptr noundef nonnull align 8 dereferenceable(32) %100)
          to label %102 unwind label %122

102:                                              ; preds = %101
  call void @llvm.lifetime.start.p0(i64 32, ptr %15) #9
  %103 = load ptr, ptr %6, align 8, !tbaa !5
  %104 = getelementptr inbounds %"class.DynexCN::Blockchain", ptr %58, i32 0, i32 5
  %105 = load ptr, ptr %104, align 8, !tbaa !11
  %106 = invoke noundef nonnull align 8 dereferenceable(32) ptr @_ZNK7DynexCN8Currency20blockIndexesFileNameB5cxx11Ev(ptr noundef nonnull align 8 dereferenceable(984) %105)
          to label %107 unwind label %126

107:                                              ; preds = %102
  invoke void @_ZN12_GLOBAL__N_110appendPathERKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEES7_(ptr dead_on_unwind writable sret(%"class.std::__cxx11::basic_string") align 8 %15, ptr noundef nonnull align 8 dereferenceable(32) %103, ptr noundef nonnull align 8 dereferenceable(32) %106)
          to label %108 unwind label %126

108:                                              ; preds = %107
  %109 = invoke noundef zeroext i1 @_ZN13SwappedVectorIN7DynexCN10Blockchain10BlockEntryEE4openERKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEESB_m(ptr noundef nonnull align 8 dereferenceable(1184) %96, ptr noundef nonnull align 8 dereferenceable(32) %14, ptr noundef nonnull align 8 dereferenceable(32) %15, i64 noundef 1024)
          to label %110 unwind label %130

110:                                              ; preds = %108
  %111 = xor i1 %109, true
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %15) #9
  call void @llvm.lifetime.end.p0(i64 32, ptr %15) #9
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %14) #9
  call void @llvm.lifetime.end.p0(i64 32, ptr %14) #9
  br i1 %111, label %112, label %136

112:                                              ; preds = %110
  store i1 false, ptr %4, align 1
  store i32 1, ptr %12, align 4
  br label %763

113:                                              ; preds = %91
  %114 = landingpad { ptr, i32 }
          cleanup
  %115 = extractvalue { ptr, i32 } %114, 0
  store ptr %115, ptr %9, align 8
  %116 = extractvalue { ptr, i32 } %114, 1
  store i32 %116, ptr %10, align 4
  br label %121

117:                                              ; preds = %93
  %118 = landingpad { ptr, i32 }
          cleanup
  %119 = extractvalue { ptr, i32 } %118, 0
  store ptr %119, ptr %9, align 8
  %120 = extractvalue { ptr, i32 } %118, 1
  store i32 %120, ptr %10, align 4
  call void @_ZN7Logging13LoggerMessageD1Ev(ptr noundef nonnull align 8 dereferenceable(161) %13) #9
  br label %121

121:                                              ; preds = %117, %113
  call void @llvm.lifetime.end.p0(i64 432, ptr %13) #9
  br label %765

122:                                              ; preds = %101, %95
  %123 = landingpad { ptr, i32 }
          cleanup
  %124 = extractvalue { ptr, i32 } %123, 0
  store ptr %124, ptr %9, align 8
  %125 = extractvalue { ptr, i32 } %123, 1
  store i32 %125, ptr %10, align 4
  br label %135

126:                                              ; preds = %107, %102
  %127 = landingpad { ptr, i32 }
          cleanup
  %128 = extractvalue { ptr, i32 } %127, 0
  store ptr %128, ptr %9, align 8
  %129 = extractvalue { ptr, i32 } %127, 1
  store i32 %129, ptr %10, align 4
  br label %134

130:                                              ; preds = %108
  %131 = landingpad { ptr, i32 }
          cleanup
  %132 = extractvalue { ptr, i32 } %131, 0
  store ptr %132, ptr %9, align 8
  %133 = extractvalue { ptr, i32 } %131, 1
  store i32 %133, ptr %10, align 4
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %15) #9
  br label %134

134:                                              ; preds = %130, %126
  call void @llvm.lifetime.end.p0(i64 32, ptr %15) #9
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %14) #9
  br label %135

135:                                              ; preds = %134, %122
  call void @llvm.lifetime.end.p0(i64 32, ptr %14) #9
  br label %765

136:                                              ; preds = %110
  %137 = load i8, ptr %7, align 1, !tbaa !9, !range !151, !noundef !152
  %138 = trunc i8 %137 to i1
  br i1 %138, label %139, label %275

139:                                              ; preds = %136
  %140 = getelementptr inbounds %"class.DynexCN::Blockchain", ptr %58, i32 0, i32 18
  %141 = invoke noundef zeroext i1 @_ZNK13SwappedVectorIN7DynexCN10Blockchain10BlockEntryEE5emptyEv(ptr noundef nonnull align 8 dereferenceable(1184) %140)
          to label %142 unwind label %74

142:                                              ; preds = %139
  br i1 %141, label %275, label %143

143:                                              ; preds = %142
  call void @llvm.lifetime.start.p0(i64 1, ptr %16) #9
  store i8 0, ptr %16, align 1, !tbaa !9
  call void @llvm.lifetime.start.p0(i64 88, ptr %17) #9
  %144 = getelementptr inbounds %"class.DynexCN::Blockchain", ptr %58, i32 0, i32 18
  %145 = invoke noundef nonnull align 8 dereferenceable(440) ptr @_ZN13SwappedVectorIN7DynexCN10Blockchain10BlockEntryEE4backEv(ptr noundef nonnull align 8 dereferenceable(1184) %144)
          to label %146 unwind label %167

146:                                              ; preds = %143
  %147 = getelementptr inbounds %"struct.DynexCN::Blockchain::BlockEntry", ptr %145, i32 0, i32 0
  invoke void @_ZN7DynexCN14get_block_hashERKNS_5BlockE(ptr dead_on_unwind writable sret(%"struct.Crypto::Hash") align 1 %18, ptr noundef nonnull align 8 dereferenceable(384) %147)
          to label %148 unwind label %167

148:                                              ; preds = %146
  %149 = getelementptr inbounds %"class.DynexCN::Blockchain", ptr %58, i32 0, i32 33
  %150 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZNK7Logging9LoggerRef9getLoggerEv(ptr noundef nonnull align 8 dereferenceable(40) %149)
          to label %151 unwind label %167

151:                                              ; preds = %148
  invoke void @_ZN7DynexCN20BlockCacheSerializerC2ERNS_10BlockchainEN6Crypto4HashERN7Logging7ILoggerE(ptr noundef nonnull align 8 dereferenceable(88) %17, ptr noundef nonnull align 8 dereferenceable(2636) %58, ptr noundef byval(%"struct.Crypto::Hash") align 8 %18, ptr noundef nonnull align 8 dereferenceable(8) %150)
          to label %152 unwind label %167

152:                                              ; preds = %151
  call void @llvm.lifetime.start.p0(i64 32, ptr %19) #9
  %153 = load ptr, ptr %6, align 8, !tbaa !5
  %154 = getelementptr inbounds %"class.DynexCN::Blockchain", ptr %58, i32 0, i32 5
  %155 = load ptr, ptr %154, align 8, !tbaa !11
  %156 = invoke noundef nonnull align 8 dereferenceable(32) ptr @_ZNK7DynexCN8Currency19blocksCacheFileNameB5cxx11Ev(ptr noundef nonnull align 8 dereferenceable(984) %155)
          to label %157 unwind label %171

157:                                              ; preds = %152
  invoke void @_ZN12_GLOBAL__N_110appendPathERKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEES7_(ptr dead_on_unwind writable sret(%"class.std::__cxx11::basic_string") align 8 %19, ptr noundef nonnull align 8 dereferenceable(32) %153, ptr noundef nonnull align 8 dereferenceable(32) %156)
          to label %158 unwind label %171

158:                                              ; preds = %157
  invoke void @_ZN7DynexCN20BlockCacheSerializer4loadERKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEE(ptr noundef nonnull align 8 dereferenceable(88) %17, ptr noundef nonnull align 8 dereferenceable(32) %19)
          to label %159 unwind label %175

159:                                              ; preds = %158
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %19) #9
  call void @llvm.lifetime.end.p0(i64 32, ptr %19) #9
  %160 = invoke noundef zeroext i1 @_ZNK7DynexCN20BlockCacheSerializer6loadedEv(ptr noundef nonnull align 8 dereferenceable(88) %17)
          to label %161 unwind label %180

161:                                              ; preds = %159
  br i1 %160, label %193, label %162

162:                                              ; preds = %161
  call void @llvm.lifetime.start.p0(i64 432, ptr %20) #9
  %163 = getelementptr inbounds %"class.DynexCN::Blockchain", ptr %58, i32 0, i32 33
  invoke void @_ZNK7Logging9LoggerRefclENS_5LevelERKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEE(ptr dead_on_unwind writable sret(%"class.Logging::LoggerMessage") align 8 %20, ptr noundef nonnull align 8 dereferenceable(40) %163, i32 noundef 2, ptr noundef nonnull align 8 dereferenceable(32) @_ZN7Logging13BRIGHT_YELLOWB5cxx11E)
          to label %164 unwind label %184

164:                                              ; preds = %162
  %165 = invoke noundef nonnull align 8 dereferenceable(161) ptr @_ZStlsIN7Logging13LoggerMessageEA68_cEOT_S4_RKT0_(ptr noundef nonnull align 8 dereferenceable(161) %20, ptr noundef nonnull align 1 dereferenceable(68) @.str.14)
          to label %166 unwind label %188

166:                                              ; preds = %164
  call void @_ZN7Logging13LoggerMessageD1Ev(ptr noundef nonnull align 8 dereferenceable(161) %20) #9
  call void @llvm.lifetime.end.p0(i64 432, ptr %20) #9
  store i8 1, ptr %16, align 1, !tbaa !9
  br label %193

167:                                              ; preds = %151, %148, %146, %143
  %168 = landingpad { ptr, i32 }
          cleanup
  %169 = extractvalue { ptr, i32 } %168, 0
  store ptr %169, ptr %9, align 8
  %170 = extractvalue { ptr, i32 } %168, 1
  store i32 %170, ptr %10, align 4
  br label %274

171:                                              ; preds = %157, %152
  %172 = landingpad { ptr, i32 }
          cleanup
  %173 = extractvalue { ptr, i32 } %172, 0
  store ptr %173, ptr %9, align 8
  %174 = extractvalue { ptr, i32 } %172, 1
  store i32 %174, ptr %10, align 4
  br label %179

175:                                              ; preds = %158
  %176 = landingpad { ptr, i32 }
          cleanup
  %177 = extractvalue { ptr, i32 } %176, 0
  store ptr %177, ptr %9, align 8
  %178 = extractvalue { ptr, i32 } %176, 1
  store i32 %178, ptr %10, align 4
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %19) #9
  br label %179

179:                                              ; preds = %175, %171
  call void @llvm.lifetime.end.p0(i64 32, ptr %19) #9
  br label %273

180:                                              ; preds = %270, %159
  %181 = landingpad { ptr, i32 }
          cleanup
  %182 = extractvalue { ptr, i32 } %181, 0
  store ptr %182, ptr %9, align 8
  %183 = extractvalue { ptr, i32 } %181, 1
  store i32 %183, ptr %10, align 4
  br label %273

184:                                              ; preds = %162
  %185 = landingpad { ptr, i32 }
          cleanup
  %186 = extractvalue { ptr, i32 } %185, 0
  store ptr %186, ptr %9, align 8
  %187 = extractvalue { ptr, i32 } %185, 1
  store i32 %187, ptr %10, align 4
  br label %192

188:                                              ; preds = %164
  %189 = landingpad { ptr, i32 }
          cleanup
  %190 = extractvalue { ptr, i32 } %189, 0
  store ptr %190, ptr %9, align 8
  %191 = extractvalue { ptr, i32 } %189, 1
  store i32 %191, ptr %10, align 4
  call void @_ZN7Logging13LoggerMessageD1Ev(ptr noundef nonnull align 8 dereferenceable(161) %20) #9
  br label %192

192:                                              ; preds = %188, %184
  call void @llvm.lifetime.end.p0(i64 432, ptr %20) #9
  br label %273

193:                                              ; preds = %166, %161
  %194 = load i8, ptr %16, align 1, !tbaa !9, !range !151, !noundef !152
  %195 = trunc i8 %194 to i1
  br i1 %195, label %267, label %196

196:                                              ; preds = %193
  %197 = getelementptr inbounds %"class.DynexCN::Blockchain", ptr %58, i32 0, i32 30
  %198 = load i8, ptr %197, align 8, !tbaa !153, !range !151, !noundef !152
  %199 = trunc i8 %198 to i1
  br i1 %199, label %200, label %267

200:                                              ; preds = %196
  call void @llvm.lifetime.start.p0(i64 432, ptr %21) #9
  %201 = getelementptr inbounds %"class.DynexCN::Blockchain", ptr %58, i32 0, i32 33
  invoke void @_ZNK7Logging9LoggerRefclENS_5LevelERKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEE(ptr dead_on_unwind writable sret(%"class.Logging::LoggerMessage") align 8 %21, ptr noundef nonnull align 8 dereferenceable(40) %201, i32 noundef 3, ptr noundef nonnull align 8 dereferenceable(32) @_ZN7Logging12BRIGHT_WHITEB5cxx11E)
          to label %202 unwind label %229

202:                                              ; preds = %200
  %203 = invoke noundef nonnull align 8 dereferenceable(161) ptr @_ZStlsIN7Logging13LoggerMessageEA53_cEOT_S4_RKT0_(ptr noundef nonnull align 8 dereferenceable(161) %21, ptr noundef nonnull align 1 dereferenceable(53) @.str.15)
          to label %204 unwind label %233

204:                                              ; preds = %202
  call void @_ZN7Logging13LoggerMessageD1Ev(ptr noundef nonnull align 8 dereferenceable(161) %21) #9
  call void @llvm.lifetime.end.p0(i64 432, ptr %21) #9
  call void @llvm.lifetime.start.p0(i64 88, ptr %22) #9
  %205 = getelementptr inbounds %"class.DynexCN::Blockchain", ptr %58, i32 0, i32 18
  %206 = invoke noundef nonnull align 8 dereferenceable(440) ptr @_ZN13SwappedVectorIN7DynexCN10Blockchain10BlockEntryEE4backEv(ptr noundef nonnull align 8 dereferenceable(1184) %205)
          to label %207 unwind label %238

207:                                              ; preds = %204
  %208 = getelementptr inbounds %"struct.DynexCN::Blockchain::BlockEntry", ptr %206, i32 0, i32 0
  invoke void @_ZN7DynexCN14get_block_hashERKNS_5BlockE(ptr dead_on_unwind writable sret(%"struct.Crypto::Hash") align 1 %23, ptr noundef nonnull align 8 dereferenceable(384) %208)
          to label %209 unwind label %238

209:                                              ; preds = %207
  %210 = getelementptr inbounds %"class.DynexCN::Blockchain", ptr %58, i32 0, i32 33
  %211 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZNK7Logging9LoggerRef9getLoggerEv(ptr noundef nonnull align 8 dereferenceable(40) %210)
          to label %212 unwind label %238

212:                                              ; preds = %209
  invoke void @_ZN7DynexCN27BlockchainIndicesSerializerC2ERNS_10BlockchainEN6Crypto4HashERN7Logging7ILoggerE(ptr noundef nonnull align 8 dereferenceable(88) %22, ptr noundef nonnull align 8 dereferenceable(2636) %58, ptr noundef byval(%"struct.Crypto::Hash") align 8 %23, ptr noundef nonnull align 8 dereferenceable(8) %211)
          to label %213 unwind label %238

213:                                              ; preds = %212
  call void @llvm.lifetime.start.p0(i64 32, ptr %24) #9
  %214 = getelementptr inbounds %"class.DynexCN::Blockchain", ptr %58, i32 0, i32 14
  %215 = getelementptr inbounds %"class.DynexCN::Blockchain", ptr %58, i32 0, i32 5
  %216 = load ptr, ptr %215, align 8, !tbaa !11
  %217 = invoke noundef nonnull align 8 dereferenceable(32) ptr @_ZNK7DynexCN8Currency25blockchainIndicesFileNameB5cxx11Ev(ptr noundef nonnull align 8 dereferenceable(984) %216)
          to label %218 unwind label %242

218:                                              ; preds = %213
  invoke void @_ZN12_GLOBAL__N_110appendPathERKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEES7_(ptr dead_on_unwind writable sret(%"class.std::__cxx11::basic_string") align 8 %24, ptr noundef nonnull align 8 dereferenceable(32) %214, ptr noundef nonnull align 8 dereferenceable(32) %217)
          to label %219 unwind label %242

219:                                              ; preds = %218
  %220 = invoke noundef zeroext i1 @_ZN7DynexCN18loadFromBinaryFileINS_27BlockchainIndicesSerializerEEEbRT_RKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEE(ptr noundef nonnull align 8 dereferenceable(88) %22, ptr noundef nonnull align 8 dereferenceable(32) %24)
          to label %221 unwind label %246

221:                                              ; preds = %219
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %24) #9
  call void @llvm.lifetime.end.p0(i64 32, ptr %24) #9
  %222 = invoke noundef zeroext i1 @_ZNK7DynexCN27BlockchainIndicesSerializer6loadedEv(ptr noundef nonnull align 8 dereferenceable(88) %22)
          to label %223 unwind label %251

223:                                              ; preds = %221
  br i1 %222, label %264, label %224

224:                                              ; preds = %223
  call void @llvm.lifetime.start.p0(i64 432, ptr %25) #9
  %225 = getelementptr inbounds %"class.DynexCN::Blockchain", ptr %58, i32 0, i32 33
  invoke void @_ZNK7Logging9LoggerRefclENS_5LevelERKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEE(ptr dead_on_unwind writable sret(%"class.Logging::LoggerMessage") align 8 %25, ptr noundef nonnull align 8 dereferenceable(40) %225, i32 noundef 2, ptr noundef nonnull align 8 dereferenceable(32) @_ZN7Logging13BRIGHT_YELLOWB5cxx11E)
          to label %226 unwind label %255

226:                                              ; preds = %224
  %227 = invoke noundef nonnull align 8 dereferenceable(161) ptr @_ZStlsIN7Logging13LoggerMessageEA73_cEOT_S4_RKT0_(ptr noundef nonnull align 8 dereferenceable(161) %25, ptr noundef nonnull align 1 dereferenceable(73) @.str.16)
          to label %228 unwind label %259

228:                                              ; preds = %226
  call void @_ZN7Logging13LoggerMessageD1Ev(ptr noundef nonnull align 8 dereferenceable(161) %25) #9
  call void @llvm.lifetime.end.p0(i64 432, ptr %25) #9
  store i8 1, ptr %16, align 1, !tbaa !9
  br label %264

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

233:                                              ; preds = %202
  %234 = landingpad { ptr, i32 }
          cleanup
  %235 = extractvalue { ptr, i32 } %234, 0
  store ptr %235, ptr %9, align 8
  %236 = extractvalue { ptr, i32 } %234, 1
  store i32 %236, ptr %10, align 4
  call void @_ZN7Logging13LoggerMessageD1Ev(ptr noundef nonnull align 8 dereferenceable(161) %21) #9
  br label %237

237:                                              ; preds = %233, %229
  call void @llvm.lifetime.end.p0(i64 432, ptr %21) #9
  br label %273

238:                                              ; preds = %212, %209, %207, %204
  %239 = landingpad { ptr, i32 }
          cleanup
  %240 = extractvalue { ptr, i32 } %239, 0
  store ptr %240, ptr %9, align 8
  %241 = extractvalue { ptr, i32 } %239, 1
  store i32 %241, ptr %10, align 4
  br label %266

242:                                              ; preds = %218, %213
  %243 = landingpad { ptr, i32 }
          cleanup
  %244 = extractvalue { ptr, i32 } %243, 0
  store ptr %244, ptr %9, align 8
  %245 = extractvalue { ptr, i32 } %243, 1
  store i32 %245, ptr %10, align 4
  br label %250

246:                                              ; preds = %219
  %247 = landingpad { ptr, i32 }
          cleanup
  %248 = extractvalue { ptr, i32 } %247, 0
  store ptr %248, ptr %9, align 8
  %249 = extractvalue { ptr, i32 } %247, 1
  store i32 %249, ptr %10, align 4
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %24) #9
  br label %250

250:                                              ; preds = %246, %242
  call void @llvm.lifetime.end.p0(i64 32, ptr %24) #9
  br label %265

251:                                              ; preds = %221
  %252 = landingpad { ptr, i32 }
          cleanup
  %253 = extractvalue { ptr, i32 } %252, 0
  store ptr %253, ptr %9, align 8
  %254 = extractvalue { ptr, i32 } %252, 1
  store i32 %254, ptr %10, align 4
  br label %265

255:                                              ; preds = %224
  %256 = landingpad { ptr, i32 }
          cleanup
  %257 = extractvalue { ptr, i32 } %256, 0
  store ptr %257, ptr %9, align 8
  %258 = extractvalue { ptr, i32 } %256, 1
  store i32 %258, ptr %10, align 4
  br label %263

259:                                              ; preds = %226
  %260 = landingpad { ptr, i32 }
          cleanup
  %261 = extractvalue { ptr, i32 } %260, 0
  store ptr %261, ptr %9, align 8
  %262 = extractvalue { ptr, i32 } %260, 1
  store i32 %262, ptr %10, align 4
  call void @_ZN7Logging13LoggerMessageD1Ev(ptr noundef nonnull align 8 dereferenceable(161) %25) #9
  br label %263

263:                                              ; preds = %259, %255
  call void @llvm.lifetime.end.p0(i64 432, ptr %25) #9
  br label %265

264:                                              ; preds = %228, %223
  call void @_ZN7DynexCN27BlockchainIndicesSerializerD2Ev(ptr noundef nonnull align 8 dereferenceable(88) %22) #9
  call void @llvm.lifetime.end.p0(i64 88, ptr %22) #9
  br label %267

265:                                              ; preds = %263, %251, %250
  call void @_ZN7DynexCN27BlockchainIndicesSerializerD2Ev(ptr noundef nonnull align 8 dereferenceable(88) %22) #9
  br label %266

266:                                              ; preds = %265, %238
  call void @llvm.lifetime.end.p0(i64 88, ptr %22) #9
  br label %273

267:                                              ; preds = %264, %196, %193
  %268 = load i8, ptr %16, align 1, !tbaa !9, !range !151, !noundef !152
  %269 = trunc i8 %268 to i1
  br i1 %269, label %270, label %272

270:                                              ; preds = %267
  invoke void @_ZN7DynexCN10Blockchain12rebuildCacheEv(ptr noundef nonnull align 8 dereferenceable(2636) %58)
          to label %271 unwind label %180

271:                                              ; preds = %270
  br label %272

272:                                              ; preds = %271, %267
  call void @_ZN7DynexCN20BlockCacheSerializerD2Ev(ptr noundef nonnull align 8 dereferenceable(88) %17) #9
  call void @llvm.lifetime.end.p0(i64 88, ptr %17) #9
  call void @llvm.lifetime.end.p0(i64 1, ptr %16) #9
  br label %278

273:                                              ; preds = %266, %237, %192, %180, %179
  call void @_ZN7DynexCN20BlockCacheSerializerD2Ev(ptr noundef nonnull align 8 dereferenceable(88) %17) #9
  br label %274

274:                                              ; preds = %273, %167
  call void @llvm.lifetime.end.p0(i64 88, ptr %17) #9
  call void @llvm.lifetime.end.p0(i64 1, ptr %16) #9
  br label %765

275:                                              ; preds = %142, %136
  %276 = getelementptr inbounds %"class.DynexCN::Blockchain", ptr %58, i32 0, i32 18
  invoke void @_ZN13SwappedVectorIN7DynexCN10Blockchain10BlockEntryEE5clearEv(ptr noundef nonnull align 8 dereferenceable(1184) %276)
          to label %277 unwind label %74

277:                                              ; preds = %275
  br label %278

278:                                              ; preds = %277, %272
  %279 = getelementptr inbounds %"class.DynexCN::Blockchain", ptr %58, i32 0, i32 18
  %280 = invoke noundef zeroext i1 @_ZNK13SwappedVectorIN7DynexCN10Blockchain10BlockEntryEE5emptyEv(ptr noundef nonnull align 8 dereferenceable(1184) %279)
          to label %281 unwind label %74

281:                                              ; preds = %278
  br i1 %280, label %282, label %335

282:                                              ; preds = %281
  call void @llvm.lifetime.start.p0(i64 432, ptr %26) #9
  %283 = getelementptr inbounds %"class.DynexCN::Blockchain", ptr %58, i32 0, i32 33
  invoke void @_ZNK7Logging9LoggerRefclENS_5LevelERKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEE(ptr dead_on_unwind writable sret(%"class.Logging::LoggerMessage") align 8 %26, ptr noundef nonnull align 8 dereferenceable(40) %283, i32 noundef 3, ptr noundef nonnull align 8 dereferenceable(32) @_ZN7Logging12BRIGHT_WHITEB5cxx11E)
          to label %284 unwind label %304

284:                                              ; preds = %282
  %285 = invoke noundef nonnull align 8 dereferenceable(161) ptr @_ZStlsIN7Logging13LoggerMessageEA49_cEOT_S4_RKT0_(ptr noundef nonnull align 8 dereferenceable(161) %26, ptr noundef nonnull align 1 dereferenceable(49) @.str.17)
          to label %286 unwind label %308

286:                                              ; preds = %284
  call void @_ZN7Logging13LoggerMessageD1Ev(ptr noundef nonnull align 8 dereferenceable(161) %26) #9
  call void @llvm.lifetime.end.p0(i64 432, ptr %26) #9
  call void @llvm.lifetime.start.p0(i64 5, ptr %27) #9
  call void @llvm.lifetime.start.p0(i64 5, ptr %28) #9
  invoke void @_ZN5boost17value_initializedIN7DynexCN26block_verification_contextEEC2Ev(ptr noundef nonnull align 1 dereferenceable(5) %28)
          to label %287 unwind label %313

287:                                              ; preds = %286
  %288 = invoke noundef nonnull align 1 dereferenceable(5) ptr @_ZN5boost17value_initializedIN7DynexCN26block_verification_contextEEcvRS2_Ev(ptr noundef nonnull align 1 dereferenceable(5) %28)
          to label %289 unwind label %313

289:                                              ; preds = %287
  call void @llvm.memcpy.p0.p0.i64(ptr align 1 %27, ptr align 1 %288, i64 5, i1 false), !tbaa.struct !154
  call void @llvm.lifetime.end.p0(i64 5, ptr %28) #9
  %290 = getelementptr inbounds %"class.DynexCN::Blockchain", ptr %58, i32 0, i32 5
  %291 = load ptr, ptr %290, align 8, !tbaa !11
  %292 = invoke noundef nonnull align 8 dereferenceable(384) ptr @_ZNK7DynexCN8Currency12genesisBlockEv(ptr noundef nonnull align 8 dereferenceable(984) %291)
          to label %293 unwind label %317

293:                                              ; preds = %289
  %294 = invoke noundef zeroext i1 @_ZN7DynexCN10Blockchain9pushBlockERKNS_5BlockERNS_26block_verification_contextE(ptr noundef nonnull align 8 dereferenceable(2636) %58, ptr noundef nonnull align 8 dereferenceable(384) %292, ptr noundef nonnull align 1 dereferenceable(5) %27)
          to label %295 unwind label %317

295:                                              ; preds = %293
  %296 = getelementptr inbounds %"struct.DynexCN::block_verification_context", ptr %27, i32 0, i32 1
  %297 = load i8, ptr %296, align 1, !tbaa !155, !range !151, !noundef !152
  %298 = trunc i8 %297 to i1
  br i1 %298, label %299, label %330

299:                                              ; preds = %295
  call void @llvm.lifetime.start.p0(i64 432, ptr %29) #9
  %300 = getelementptr inbounds %"class.DynexCN::Blockchain", ptr %58, i32 0, i32 33
  invoke void @_ZNK7Logging9LoggerRefclENS_5LevelERKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEE(ptr dead_on_unwind writable sret(%"class.Logging::LoggerMessage") align 8 %29, ptr noundef nonnull align 8 dereferenceable(40) %300, i32 noundef 1, ptr noundef nonnull align 8 dereferenceable(32) @_ZN7Logging10BRIGHT_REDB5cxx11E)
          to label %301 unwind label %321

301:                                              ; preds = %299
  %302 = invoke noundef nonnull align 8 dereferenceable(161) ptr @_ZStlsIN7Logging13LoggerMessageEA42_cEOT_S4_RKT0_(ptr noundef nonnull align 8 dereferenceable(161) %29, ptr noundef nonnull align 1 dereferenceable(42) @.str.18)
          to label %303 unwind label %325

303:                                              ; preds = %301
  call void @_ZN7Logging13LoggerMessageD1Ev(ptr noundef nonnull align 8 dereferenceable(161) %29) #9
  call void @llvm.lifetime.end.p0(i64 432, ptr %29) #9
  store i1 false, ptr %4, align 1
  store i32 1, ptr %12, align 4
  br label %331

304:                                              ; preds = %282
  %305 = landingpad { ptr, i32 }
          cleanup
  %306 = extractvalue { ptr, i32 } %305, 0
  store ptr %306, ptr %9, align 8
  %307 = extractvalue { ptr, i32 } %305, 1
  store i32 %307, ptr %10, align 4
  br label %312

308:                                              ; preds = %284
  %309 = landingpad { ptr, i32 }
          cleanup
  %310 = extractvalue { ptr, i32 } %309, 0
  store ptr %310, ptr %9, align 8
  %311 = extractvalue { ptr, i32 } %309, 1
  store i32 %311, ptr %10, align 4
  call void @_ZN7Logging13LoggerMessageD1Ev(ptr noundef nonnull align 8 dereferenceable(161) %26) #9
  br label %312

312:                                              ; preds = %308, %304
  call void @llvm.lifetime.end.p0(i64 432, ptr %26) #9
  br label %765

313:                                              ; preds = %287, %286
  %314 = landingpad { ptr, i32 }
          cleanup
  %315 = extractvalue { ptr, i32 } %314, 0
  store ptr %315, ptr %9, align 8
  %316 = extractvalue { ptr, i32 } %314, 1
  store i32 %316, ptr %10, align 4
  call void @llvm.lifetime.end.p0(i64 5, ptr %28) #9
  br label %334

317:                                              ; preds = %293, %289
  %318 = landingpad { ptr, i32 }
          cleanup
  %319 = extractvalue { ptr, i32 } %318, 0
  store ptr %319, ptr %9, align 8
  %320 = extractvalue { ptr, i32 } %318, 1
  store i32 %320, ptr %10, align 4
  br label %334

321:                                              ; preds = %299
  %322 = landingpad { ptr, i32 }
          cleanup
  %323 = extractvalue { ptr, i32 } %322, 0
  store ptr %323, ptr %9, align 8
  %324 = extractvalue { ptr, i32 } %322, 1
  store i32 %324, ptr %10, align 4
  br label %329

325:                                              ; preds = %301
  %326 = landingpad { ptr, i32 }
          cleanup
  %327 = extractvalue { ptr, i32 } %326, 0
  store ptr %327, ptr %9, align 8
  %328 = extractvalue { ptr, i32 } %326, 1
  store i32 %328, ptr %10, align 4
  call void @_ZN7Logging13LoggerMessageD1Ev(ptr noundef nonnull align 8 dereferenceable(161) %29) #9
  br label %329

329:                                              ; preds = %325, %321
  call void @llvm.lifetime.end.p0(i64 432, ptr %29) #9
  br label %334

330:                                              ; preds = %295
  store i32 0, ptr %12, align 4
  br label %331

331:                                              ; preds = %330, %303
  call void @llvm.lifetime.end.p0(i64 5, ptr %27) #9
  %332 = load i32, ptr %12, align 4
  switch i32 %332, label %763 [
    i32 0, label %333
  ]

333:                                              ; preds = %331
  br label %370

334:                                              ; preds = %329, %317, %313
  call void @llvm.lifetime.end.p0(i64 5, ptr %27) #9
  br label %765

335:                                              ; preds = %281
  call void @llvm.lifetime.start.p0(i64 32, ptr %30) #9
  %336 = getelementptr inbounds %"class.DynexCN::Blockchain", ptr %58, i32 0, i32 18
  %337 = invoke noundef nonnull align 8 dereferenceable(440) ptr @_ZN13SwappedVectorIN7DynexCN10Blockchain10BlockEntryEEixEm(ptr noundef nonnull align 8 dereferenceable(1184) %336, i64 noundef 0)
          to label %338 unwind label %352

338:                                              ; preds = %335
  %339 = getelementptr inbounds %"struct.DynexCN::Blockchain::BlockEntry", ptr %337, i32 0, i32 0
  invoke void @_ZN7DynexCN14get_block_hashERKNS_5BlockE(ptr dead_on_unwind writable sret(%"struct.Crypto::Hash") align 1 %30, ptr noundef nonnull align 8 dereferenceable(384) %339)
          to label %340 unwind label %352

340:                                              ; preds = %338
  %341 = getelementptr inbounds %"class.DynexCN::Blockchain", ptr %58, i32 0, i32 5
  %342 = load ptr, ptr %341, align 8, !tbaa !11
  %343 = invoke noundef nonnull align 1 dereferenceable(32) ptr @_ZNK7DynexCN8Currency16genesisBlockHashEv(ptr noundef nonnull align 8 dereferenceable(984) %342)
          to label %344 unwind label %352

344:                                              ; preds = %340
  %345 = invoke noundef zeroext i1 @_ZN6CryptoeqERKNS_4HashES2_(ptr noundef nonnull align 1 dereferenceable(32) %30, ptr noundef nonnull align 1 dereferenceable(32) %343)
          to label %346 unwind label %352

346:                                              ; preds = %344
  br i1 %345, label %365, label %347

347:                                              ; preds = %346
  call void @llvm.lifetime.start.p0(i64 432, ptr %31) #9
  %348 = getelementptr inbounds %"class.DynexCN::Blockchain", ptr %58, i32 0, i32 33
  invoke void @_ZNK7Logging9LoggerRefclENS_5LevelERKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEE(ptr dead_on_unwind writable sret(%"class.Logging::LoggerMessage") align 8 %31, ptr noundef nonnull align 8 dereferenceable(40) %348, i32 noundef 1, ptr noundef nonnull align 8 dereferenceable(32) @_ZN7Logging10BRIGHT_REDB5cxx11E)
          to label %349 unwind label %356

349:                                              ; preds = %347
  %350 = invoke noundef nonnull align 8 dereferenceable(161) ptr @_ZStlsIN7Logging13LoggerMessageEA131_cEOT_S4_RKT0_(ptr noundef nonnull align 8 dereferenceable(161) %31, ptr noundef nonnull align 1 dereferenceable(131) @.str.19)
          to label %351 unwind label %360

351:                                              ; preds = %349
  call void @_ZN7Logging13LoggerMessageD1Ev(ptr noundef nonnull align 8 dereferenceable(161) %31) #9
  call void @llvm.lifetime.end.p0(i64 432, ptr %31) #9
  store i1 false, ptr %4, align 1
  store i32 1, ptr %12, align 4
  br label %366

352:                                              ; preds = %344, %340, %338, %335
  %353 = landingpad { ptr, i32 }
          cleanup
  %354 = extractvalue { ptr, i32 } %353, 0
  store ptr %354, ptr %9, align 8
  %355 = extractvalue { ptr, i32 } %353, 1
  store i32 %355, ptr %10, align 4
  br label %369

356:                                              ; preds = %347
  %357 = landingpad { ptr, i32 }
          cleanup
  %358 = extractvalue { ptr, i32 } %357, 0
  store ptr %358, ptr %9, align 8
  %359 = extractvalue { ptr, i32 } %357, 1
  store i32 %359, ptr %10, align 4
  br label %364

360:                                              ; preds = %349
  %361 = landingpad { ptr, i32 }
          cleanup
  %362 = extractvalue { ptr, i32 } %361, 0
  store ptr %362, ptr %9, align 8
  %363 = extractvalue { ptr, i32 } %361, 1
  store i32 %363, ptr %10, align 4
  call void @_ZN7Logging13LoggerMessageD1Ev(ptr noundef nonnull align 8 dereferenceable(161) %31) #9
  br label %364

364:                                              ; preds = %360, %356
  call void @llvm.lifetime.end.p0(i64 432, ptr %31) #9
  br label %369

365:                                              ; preds = %346
  store i32 0, ptr %12, align 4
  br label %366

366:                                              ; preds = %365, %351
  call void @llvm.lifetime.end.p0(i64 32, ptr %30) #9
  %367 = load i32, ptr %12, align 4
  switch i32 %367, label %763 [
    i32 0, label %368
  ]

368:                                              ; preds = %366
  br label %370

369:                                              ; preds = %364, %352
  call void @llvm.lifetime.end.p0(i64 32, ptr %30) #9
  br label %765

370:                                              ; preds = %368, %333
  call void @llvm.lifetime.start.p0(i64 4, ptr %32) #9
  store i32 0, ptr %32, align 4, !tbaa !157
  %371 = invoke noundef zeroext i1 @_ZN7DynexCN10Blockchain16checkCheckpointsERj(ptr noundef nonnull align 8 dereferenceable(2636) %58, ptr noundef nonnull align 4 dereferenceable(4) %32)
          to label %372 unwind label %382

372:                                              ; preds = %370
  br i1 %371, label %395, label %373

373:                                              ; preds = %372
  call void @llvm.lifetime.start.p0(i64 432, ptr %33) #9
  %374 = getelementptr inbounds %"class.DynexCN::Blockchain", ptr %58, i32 0, i32 33
  invoke void @_ZNK7Logging9LoggerRefclENS_5LevelERKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEE(ptr dead_on_unwind writable sret(%"class.Logging::LoggerMessage") align 8 %33, ptr noundef nonnull align 8 dereferenceable(40) %374, i32 noundef 2, ptr noundef nonnull align 8 dereferenceable(32) @_ZN7Logging13BRIGHT_YELLOWB5cxx11E)
          to label %375 unwind label %386

375:                                              ; preds = %373
  %376 = invoke noundef nonnull align 8 dereferenceable(161) ptr @_ZStlsIN7Logging13LoggerMessageEA57_cEOT_S4_RKT0_(ptr noundef nonnull align 8 dereferenceable(161) %33, ptr noundef nonnull align 1 dereferenceable(57) @.str.20)
          to label %377 unwind label %390

377:                                              ; preds = %375
  %378 = invoke noundef nonnull align 8 dereferenceable(161) ptr @_ZStlsIN7Logging13LoggerMessageEjEOT_S3_RKT0_(ptr noundef nonnull align 8 dereferenceable(161) %376, ptr noundef nonnull align 4 dereferenceable(4) %32)
          to label %379 unwind label %390

379:                                              ; preds = %377
  call void @_ZN7Logging13LoggerMessageD1Ev(ptr noundef nonnull align 8 dereferenceable(161) %33) #9
  call void @llvm.lifetime.end.p0(i64 432, ptr %33) #9
  %380 = load i32, ptr %32, align 4, !tbaa !157
  invoke void @_ZN7DynexCN10Blockchain20rollbackBlockchainToEj(ptr noundef nonnull align 8 dereferenceable(2636) %58, i32 noundef %380)
          to label %381 unwind label %382

381:                                              ; preds = %379
  br label %395

382:                                              ; preds = %403, %399, %395, %379, %370
  %383 = landingpad { ptr, i32 }
          cleanup
  %384 = extractvalue { ptr, i32 } %383, 0
  store ptr %384, ptr %9, align 8
  %385 = extractvalue { ptr, i32 } %383, 1
  store i32 %385, ptr %10, align 4
  br label %762

386:                                              ; preds = %373
  %387 = landingpad { ptr, i32 }
          cleanup
  %388 = extractvalue { ptr, i32 } %387, 0
  store ptr %388, ptr %9, align 8
  %389 = extractvalue { ptr, i32 } %387, 1
  store i32 %389, ptr %10, align 4
  br label %394

390:                                              ; preds = %377, %375
  %391 = landingpad { ptr, i32 }
          cleanup
  %392 = extractvalue { ptr, i32 } %391, 0
  store ptr %392, ptr %9, align 8
  %393 = extractvalue { ptr, i32 } %391, 1
  store i32 %393, ptr %10, align 4
  call void @_ZN7Logging13LoggerMessageD1Ev(ptr noundef nonnull align 8 dereferenceable(161) %33) #9
  br label %394

394:                                              ; preds = %390, %386
  call void @llvm.lifetime.end.p0(i64 432, ptr %33) #9
  br label %762

395:                                              ; preds = %381, %372
  %396 = getelementptr inbounds %"class.DynexCN::Blockchain", ptr %58, i32 0, i32 22
  %397 = invoke noundef zeroext i1 @_ZN7DynexCN20BasicUpgradeDetectorI13SwappedVectorINS_10Blockchain10BlockEntryEEE4initEv(ptr noundef nonnull align 8 dereferenceable(64) %396)
          to label %398 unwind label %382

398:                                              ; preds = %395
  br i1 %397, label %399, label %407

399:                                              ; preds = %398
  %400 = getelementptr inbounds %"class.DynexCN::Blockchain", ptr %58, i32 0, i32 23
  %401 = invoke noundef zeroext i1 @_ZN7DynexCN20BasicUpgradeDetectorI13SwappedVectorINS_10Blockchain10BlockEntryEEE4initEv(ptr noundef nonnull align 8 dereferenceable(64) %400)
          to label %402 unwind label %382

402:                                              ; preds = %399
  br i1 %401, label %403, label %407

403:                                              ; preds = %402
  %404 = getelementptr inbounds %"class.DynexCN::Blockchain", ptr %58, i32 0, i32 24
  %405 = invoke noundef zeroext i1 @_ZN7DynexCN20BasicUpgradeDetectorI13SwappedVectorINS_10Blockchain10BlockEntryEEE4initEv(ptr noundef nonnull align 8 dereferenceable(64) %404)
          to label %406 unwind label %382

406:                                              ; preds = %403
  br i1 %405, label %421, label %407

407:                                              ; preds = %406, %402, %398
  call void @llvm.lifetime.start.p0(i64 432, ptr %34) #9
  %408 = getelementptr inbounds %"class.DynexCN::Blockchain", ptr %58, i32 0, i32 33
  invoke void @_ZNK7Logging9LoggerRefclENS_5LevelERKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEE(ptr dead_on_unwind writable sret(%"class.Logging::LoggerMessage") align 8 %34, ptr noundef nonnull align 8 dereferenceable(40) %408, i32 noundef 1, ptr noundef nonnull align 8 dereferenceable(32) @_ZN7Logging10BRIGHT_REDB5cxx11E)
          to label %409 unwind label %412

409:                                              ; preds = %407
  %410 = invoke noundef nonnull align 8 dereferenceable(161) ptr @_ZStlsIN7Logging13LoggerMessageEA70_cEOT_S4_RKT0_(ptr noundef nonnull align 8 dereferenceable(161) %34, ptr noundef nonnull align 1 dereferenceable(70) @.str.21)
          to label %411 unwind label %416

411:                                              ; preds = %409
  call void @_ZN7Logging13LoggerMessageD1Ev(ptr noundef nonnull align 8 dereferenceable(161) %34) #9
  call void @llvm.lifetime.end.p0(i64 432, ptr %34) #9
  store i1 false, ptr %4, align 1
  store i32 1, ptr %12, align 4
  br label %761

412:                                              ; preds = %407
  %413 = landingpad { ptr, i32 }
          cleanup
  %414 = extractvalue { ptr, i32 } %413, 0
  store ptr %414, ptr %9, align 8
  %415 = extractvalue { ptr, i32 } %413, 1
  store i32 %415, ptr %10, align 4
  br label %420

416:                                              ; preds = %409
  %417 = landingpad { ptr, i32 }
          cleanup
  %418 = extractvalue { ptr, i32 } %417, 0
  store ptr %418, ptr %9, align 8
  %419 = extractvalue { ptr, i32 } %417, 1
  store i32 %419, ptr %10, align 4
  call void @_ZN7Logging13LoggerMessageD1Ev(ptr noundef nonnull align 8 dereferenceable(161) %34) #9
  br label %420

420:                                              ; preds = %416, %412
  call void @llvm.lifetime.end.p0(i64 432, ptr %34) #9
  br label %762

421:                                              ; preds = %406
  call void @llvm.lifetime.start.p0(i64 1, ptr %35) #9
  store i8 0, ptr %35, align 1, !tbaa !9
  %422 = getelementptr inbounds %"class.DynexCN::Blockchain", ptr %58, i32 0, i32 22
  %423 = invoke noundef zeroext i1 @_ZN7DynexCN10Blockchain18checkUpgradeHeightERKNS_20BasicUpgradeDetectorI13SwappedVectorINS0_10BlockEntryEEEE(ptr noundef nonnull align 8 dereferenceable(2636) %58, ptr noundef nonnull align 8 dereferenceable(64) %422)
          to label %424 unwind label %433

424:                                              ; preds = %421
  br i1 %423, label %504, label %425

425:                                              ; preds = %424
  call void @llvm.lifetime.start.p0(i64 4, ptr %36) #9
  %426 = getelementptr inbounds %"class.DynexCN::Blockchain", ptr %58, i32 0, i32 22
  %427 = invoke noundef i32 @_ZNK7DynexCN20BasicUpgradeDetectorI13SwappedVectorINS_10Blockchain10BlockEntryEEE13upgradeHeightEv(ptr noundef nonnull align 8 dereferenceable(64) %426)
          to label %428 unwind label %437

428:                                              ; preds = %425
  store i32 %427, ptr %36, align 4, !tbaa !157
  %429 = load i32, ptr %36, align 4, !tbaa !157
  %430 = icmp ne i32 %429, -1
  br i1 %430, label %431, label %432

431:                                              ; preds = %428
  br label %442

432:                                              ; preds = %428
  call void @__assert_fail(ptr noundef @.str.22, ptr noundef @.str.23, i32 noundef 562, ptr noundef @__PRETTY_FUNCTION__._ZN7DynexCN10Blockchain4initERKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEb) #10
  unreachable

433:                                              ; preds = %681, %663, %659, %655, %577, %504, %421
  %434 = landingpad { ptr, i32 }
          cleanup
  %435 = extractvalue { ptr, i32 } %434, 0
  store ptr %435, ptr %9, align 8
  %436 = extractvalue { ptr, i32 } %434, 1
  store i32 %436, ptr %10, align 4
  br label %760

437:                                              ; preds = %476, %425
  %438 = landingpad { ptr, i32 }
          cleanup
  %439 = extractvalue { ptr, i32 } %438, 0
  store ptr %439, ptr %9, align 8
  %440 = extractvalue { ptr, i32 } %438, 1
  store i32 %440, ptr %10, align 4
  br label %503

441:                                              ; No predecessors!
  br label %442

442:                                              ; preds = %441, %431
  call void @llvm.lifetime.start.p0(i64 432, ptr %37) #9
  %443 = getelementptr inbounds %"class.DynexCN::Blockchain", ptr %58, i32 0, i32 33
  invoke void @_ZNK7Logging9LoggerRefclENS_5LevelERKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEE(ptr dead_on_unwind writable sret(%"class.Logging::LoggerMessage") align 8 %37, ptr noundef nonnull align 8 dereferenceable(40) %443, i32 noundef 2, ptr noundef nonnull align 8 dereferenceable(32) @_ZN7Logging13BRIGHT_YELLOWB5cxx11E)
          to label %444 unwind label %479

444:                                              ; preds = %442
  %445 = invoke noundef nonnull align 8 dereferenceable(161) ptr @_ZStlsIN7Logging13LoggerMessageEA26_cEOT_S4_RKT0_(ptr noundef nonnull align 8 dereferenceable(161) %37, ptr noundef nonnull align 1 dereferenceable(26) @.str.24)
          to label %446 unwind label %483

446:                                              ; preds = %444
  call void @llvm.lifetime.start.p0(i64 4, ptr %38) #9
  %447 = load i32, ptr %36, align 4, !tbaa !157
  %448 = add i32 %447, 1
  store i32 %448, ptr %38, align 4, !tbaa !157
  %449 = invoke noundef nonnull align 8 dereferenceable(161) ptr @_ZStlsIN7Logging13LoggerMessageEjEOT_S3_RKT0_(ptr noundef nonnull align 8 dereferenceable(161) %445, ptr noundef nonnull align 4 dereferenceable(4) %38)
          to label %450 unwind label %487

450:                                              ; preds = %446
  %451 = invoke noundef nonnull align 8 dereferenceable(161) ptr @_ZStlsIN7Logging13LoggerMessageEA8_cEOT_S4_RKT0_(ptr noundef nonnull align 8 dereferenceable(161) %449, ptr noundef nonnull align 1 dereferenceable(8) @.str.25)
          to label %452 unwind label %487

452:                                              ; preds = %450
  call void @llvm.lifetime.start.p0(i64 4, ptr %39) #9
  %453 = getelementptr inbounds %"class.DynexCN::Blockchain", ptr %58, i32 0, i32 18
  %454 = load i32, ptr %36, align 4, !tbaa !157
  %455 = add i32 %454, 1
  %456 = zext i32 %455 to i64
  %457 = invoke noundef nonnull align 8 dereferenceable(440) ptr @_ZN13SwappedVectorIN7DynexCN10Blockchain10BlockEntryEEixEm(ptr noundef nonnull align 8 dereferenceable(1184) %453, i64 noundef %456)
          to label %458 unwind label %491

458:                                              ; preds = %452
  %459 = getelementptr inbounds %"struct.DynexCN::Blockchain::BlockEntry", ptr %457, i32 0, i32 0
  %460 = getelementptr inbounds %"struct.DynexCN::BlockHeader", ptr %459, i32 0, i32 0
  %461 = load i8, ptr %460, align 8, !tbaa !158
  %462 = zext i8 %461 to i32
  store i32 %462, ptr %39, align 4, !tbaa !157
  %463 = invoke noundef nonnull align 8 dereferenceable(161) ptr @_ZStlsIN7Logging13LoggerMessageEiEOT_S3_RKT0_(ptr noundef nonnull align 8 dereferenceable(161) %451, ptr noundef nonnull align 4 dereferenceable(4) %39)
          to label %464 unwind label %491

464:                                              ; preds = %458
  %465 = invoke noundef nonnull align 8 dereferenceable(161) ptr @_ZStlsIN7Logging13LoggerMessageEA11_cEOT_S4_RKT0_(ptr noundef nonnull align 8 dereferenceable(161) %463, ptr noundef nonnull align 1 dereferenceable(11) @.str.26)
          to label %466 unwind label %491

466:                                              ; preds = %464
  call void @llvm.lifetime.start.p0(i64 4, ptr %40) #9
  %467 = getelementptr inbounds %"class.DynexCN::Blockchain", ptr %58, i32 0, i32 22
  %468 = invoke noundef zeroext i8 @_ZNK7DynexCN20BasicUpgradeDetectorI13SwappedVectorINS_10Blockchain10BlockEntryEEE13targetVersionEv(ptr noundef nonnull align 8 dereferenceable(64) %467)
          to label %469 unwind label %495

469:                                              ; preds = %466
  %470 = zext i8 %468 to i32
  store i32 %470, ptr %40, align 4, !tbaa !157
  %471 = invoke noundef nonnull align 8 dereferenceable(161) ptr @_ZStlsIN7Logging13LoggerMessageEiEOT_S3_RKT0_(ptr noundef nonnull align 8 dereferenceable(161) %465, ptr noundef nonnull align 4 dereferenceable(4) %40)
          to label %472 unwind label %495

472:                                              ; preds = %469
  %473 = invoke noundef nonnull align 8 dereferenceable(161) ptr @_ZStlsIN7Logging13LoggerMessageEA33_cEOT_S4_RKT0_(ptr noundef nonnull align 8 dereferenceable(161) %471, ptr noundef nonnull align 1 dereferenceable(33) @.str.27)
          to label %474 unwind label %495

474:                                              ; preds = %472
  %475 = invoke noundef nonnull align 8 dereferenceable(161) ptr @_ZStlsIN7Logging13LoggerMessageEjEOT_S3_RKT0_(ptr noundef nonnull align 8 dereferenceable(161) %473, ptr noundef nonnull align 4 dereferenceable(4) %36)
          to label %476 unwind label %495

476:                                              ; preds = %474
  call void @llvm.lifetime.end.p0(i64 4, ptr %40) #9
  call void @llvm.lifetime.end.p0(i64 4, ptr %39) #9
  call void @llvm.lifetime.end.p0(i64 4, ptr %38) #9
  call void @_ZN7Logging13LoggerMessageD1Ev(ptr noundef nonnull align 8 dereferenceable(161) %37) #9
  call void @llvm.lifetime.end.p0(i64 432, ptr %37) #9
  %477 = load i32, ptr %36, align 4, !tbaa !157
  invoke void @_ZN7DynexCN10Blockchain20rollbackBlockchainToEj(ptr noundef nonnull align 8 dereferenceable(2636) %58, i32 noundef %477)
          to label %478 unwind label %437

478:                                              ; preds = %476
  store i8 1, ptr %35, align 1, !tbaa !9
  call void @llvm.lifetime.end.p0(i64 4, ptr %36) #9
  br label %652

479:                                              ; preds = %442
  %480 = landingpad { ptr, i32 }
          cleanup
  %481 = extractvalue { ptr, i32 } %480, 0
  store ptr %481, ptr %9, align 8
  %482 = extractvalue { ptr, i32 } %480, 1
  store i32 %482, ptr %10, align 4
  br label %502

483:                                              ; preds = %444
  %484 = landingpad { ptr, i32 }
          cleanup
  %485 = extractvalue { ptr, i32 } %484, 0
  store ptr %485, ptr %9, align 8
  %486 = extractvalue { ptr, i32 } %484, 1
  store i32 %486, ptr %10, align 4
  br label %501

487:                                              ; preds = %450, %446
  %488 = landingpad { ptr, i32 }
          cleanup
  %489 = extractvalue { ptr, i32 } %488, 0
  store ptr %489, ptr %9, align 8
  %490 = extractvalue { ptr, i32 } %488, 1
  store i32 %490, ptr %10, align 4
  br label %500

491:                                              ; preds = %464, %458, %452
  %492 = landingpad { ptr, i32 }
          cleanup
  %493 = extractvalue { ptr, i32 } %492, 0
  store ptr %493, ptr %9, align 8
  %494 = extractvalue { ptr, i32 } %492, 1
  store i32 %494, ptr %10, align 4
  br label %499

495:                                              ; preds = %474, %472, %469, %466
  %496 = landingpad { ptr, i32 }
          cleanup
  %497 = extractvalue { ptr, i32 } %496, 0
  store ptr %497, ptr %9, align 8
  %498 = extractvalue { ptr, i32 } %496, 1
  store i32 %498, ptr %10, align 4
  call void @llvm.lifetime.end.p0(i64 4, ptr %40) #9
  br label %499

499:                                              ; preds = %495, %491
  call void @llvm.lifetime.end.p0(i64 4, ptr %39) #9
  br label %500

500:                                              ; preds = %499, %487
  call void @llvm.lifetime.end.p0(i64 4, ptr %38) #9
  br label %501

501:                                              ; preds = %500, %483
  call void @_ZN7Logging13LoggerMessageD1Ev(ptr noundef nonnull align 8 dereferenceable(161) %37) #9
  br label %502

502:                                              ; preds = %501, %479
  call void @llvm.lifetime.end.p0(i64 432, ptr %37) #9
  br label %503

503:                                              ; preds = %502, %437
  call void @llvm.lifetime.end.p0(i64 4, ptr %36) #9
  br label %760

504:                                              ; preds = %424
  %505 = getelementptr inbounds %"class.DynexCN::Blockchain", ptr %58, i32 0, i32 23
  %506 = invoke noundef zeroext i1 @_ZN7DynexCN10Blockchain18checkUpgradeHeightERKNS_20BasicUpgradeDetectorI13SwappedVectorINS0_10BlockEntryEEEE(ptr noundef nonnull align 8 dereferenceable(2636) %58, ptr noundef nonnull align 8 dereferenceable(64) %505)
          to label %507 unwind label %433

507:                                              ; preds = %504
  br i1 %506, label %577, label %508

508:                                              ; preds = %507
  call void @llvm.lifetime.start.p0(i64 4, ptr %41) #9
  %509 = getelementptr inbounds %"class.DynexCN::Blockchain", ptr %58, i32 0, i32 23
  %510 = invoke noundef i32 @_ZNK7DynexCN20BasicUpgradeDetectorI13SwappedVectorINS_10Blockchain10BlockEntryEEE13upgradeHeightEv(ptr noundef nonnull align 8 dereferenceable(64) %509)
          to label %511 unwind label %548

511:                                              ; preds = %508
  store i32 %510, ptr %41, align 4, !tbaa !157
  call void @llvm.lifetime.start.p0(i64 432, ptr %42) #9
  %512 = getelementptr inbounds %"class.DynexCN::Blockchain", ptr %58, i32 0, i32 33
  invoke void @_ZNK7Logging9LoggerRefclENS_5LevelERKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEE(ptr dead_on_unwind writable sret(%"class.Logging::LoggerMessage") align 8 %42, ptr noundef nonnull align 8 dereferenceable(40) %512, i32 noundef 2, ptr noundef nonnull align 8 dereferenceable(32) @_ZN7Logging13BRIGHT_YELLOWB5cxx11E)
          to label %513 unwind label %552

513:                                              ; preds = %511
  %514 = invoke noundef nonnull align 8 dereferenceable(161) ptr @_ZStlsIN7Logging13LoggerMessageEA26_cEOT_S4_RKT0_(ptr noundef nonnull align 8 dereferenceable(161) %42, ptr noundef nonnull align 1 dereferenceable(26) @.str.24)
          to label %515 unwind label %556

515:                                              ; preds = %513
  call void @llvm.lifetime.start.p0(i64 4, ptr %43) #9
  %516 = load i32, ptr %41, align 4, !tbaa !157
  %517 = add i32 %516, 1
  store i32 %517, ptr %43, align 4, !tbaa !157
  %518 = invoke noundef nonnull align 8 dereferenceable(161) ptr @_ZStlsIN7Logging13LoggerMessageEjEOT_S3_RKT0_(ptr noundef nonnull align 8 dereferenceable(161) %514, ptr noundef nonnull align 4 dereferenceable(4) %43)
          to label %519 unwind label %560

519:                                              ; preds = %515
  %520 = invoke noundef nonnull align 8 dereferenceable(161) ptr @_ZStlsIN7Logging13LoggerMessageEA8_cEOT_S4_RKT0_(ptr noundef nonnull align 8 dereferenceable(161) %518, ptr noundef nonnull align 1 dereferenceable(8) @.str.25)
          to label %521 unwind label %560

521:                                              ; preds = %519
  call void @llvm.lifetime.start.p0(i64 4, ptr %44) #9
  %522 = getelementptr inbounds %"class.DynexCN::Blockchain", ptr %58, i32 0, i32 18
  %523 = load i32, ptr %41, align 4, !tbaa !157
  %524 = add i32 %523, 1
  %525 = zext i32 %524 to i64
  %526 = invoke noundef nonnull align 8 dereferenceable(440) ptr @_ZN13SwappedVectorIN7DynexCN10Blockchain10BlockEntryEEixEm(ptr noundef nonnull align 8 dereferenceable(1184) %522, i64 noundef %525)
          to label %527 unwind label %564

527:                                              ; preds = %521
  %528 = getelementptr inbounds %"struct.DynexCN::Blockchain::BlockEntry", ptr %526, i32 0, i32 0
  %529 = getelementptr inbounds %"struct.DynexCN::BlockHeader", ptr %528, i32 0, i32 0
  %530 = load i8, ptr %529, align 8, !tbaa !158
  %531 = zext i8 %530 to i32
  store i32 %531, ptr %44, align 4, !tbaa !157
  %532 = invoke noundef nonnull align 8 dereferenceable(161) ptr @_ZStlsIN7Logging13LoggerMessageEiEOT_S3_RKT0_(ptr noundef nonnull align 8 dereferenceable(161) %520, ptr noundef nonnull align 4 dereferenceable(4) %44)
          to label %533 unwind label %564

533:                                              ; preds = %527
  %534 = invoke noundef nonnull align 8 dereferenceable(161) ptr @_ZStlsIN7Logging13LoggerMessageEA11_cEOT_S4_RKT0_(ptr noundef nonnull align 8 dereferenceable(161) %532, ptr noundef nonnull align 1 dereferenceable(11) @.str.26)
          to label %535 unwind label %564

535:                                              ; preds = %533
  call void @llvm.lifetime.start.p0(i64 4, ptr %45) #9
  %536 = getelementptr inbounds %"class.DynexCN::Blockchain", ptr %58, i32 0, i32 23
  %537 = invoke noundef zeroext i8 @_ZNK7DynexCN20BasicUpgradeDetectorI13SwappedVectorINS_10Blockchain10BlockEntryEEE13targetVersionEv(ptr noundef nonnull align 8 dereferenceable(64) %536)
          to label %538 unwind label %568

538:                                              ; preds = %535
  %539 = zext i8 %537 to i32
  store i32 %539, ptr %45, align 4, !tbaa !157
  %540 = invoke noundef nonnull align 8 dereferenceable(161) ptr @_ZStlsIN7Logging13LoggerMessageEiEOT_S3_RKT0_(ptr noundef nonnull align 8 dereferenceable(161) %534, ptr noundef nonnull align 4 dereferenceable(4) %45)
          to label %541 unwind label %568

541:                                              ; preds = %538
  %542 = invoke noundef nonnull align 8 dereferenceable(161) ptr @_ZStlsIN7Logging13LoggerMessageEA33_cEOT_S4_RKT0_(ptr noundef nonnull align 8 dereferenceable(161) %540, ptr noundef nonnull align 1 dereferenceable(33) @.str.27)
          to label %543 unwind label %568

543:                                              ; preds = %541
  %544 = invoke noundef nonnull align 8 dereferenceable(161) ptr @_ZStlsIN7Logging13LoggerMessageEjEOT_S3_RKT0_(ptr noundef nonnull align 8 dereferenceable(161) %542, ptr noundef nonnull align 4 dereferenceable(4) %41)
          to label %545 unwind label %568

545:                                              ; preds = %543
  call void @llvm.lifetime.end.p0(i64 4, ptr %45) #9
  call void @llvm.lifetime.end.p0(i64 4, ptr %44) #9
  call void @llvm.lifetime.end.p0(i64 4, ptr %43) #9
  call void @_ZN7Logging13LoggerMessageD1Ev(ptr noundef nonnull align 8 dereferenceable(161) %42) #9
  call void @llvm.lifetime.end.p0(i64 432, ptr %42) #9
  %546 = load i32, ptr %41, align 4, !tbaa !157
  invoke void @_ZN7DynexCN10Blockchain20rollbackBlockchainToEj(ptr noundef nonnull align 8 dereferenceable(2636) %58, i32 noundef %546)
          to label %547 unwind label %548

547:                                              ; preds = %545
  store i8 1, ptr %35, align 1, !tbaa !9
  call void @llvm.lifetime.end.p0(i64 4, ptr %41) #9
  br label %651

548:                                              ; preds = %545, %508
  %549 = landingpad { ptr, i32 }
          cleanup
  %550 = extractvalue { ptr, i32 } %549, 0
  store ptr %550, ptr %9, align 8
  %551 = extractvalue { ptr, i32 } %549, 1
  store i32 %551, ptr %10, align 4
  br label %576

552:                                              ; preds = %511
  %553 = landingpad { ptr, i32 }
          cleanup
  %554 = extractvalue { ptr, i32 } %553, 0
  store ptr %554, ptr %9, align 8
  %555 = extractvalue { ptr, i32 } %553, 1
  store i32 %555, ptr %10, align 4
  br label %575

556:                                              ; preds = %513
  %557 = landingpad { ptr, i32 }
          cleanup
  %558 = extractvalue { ptr, i32 } %557, 0
  store ptr %558, ptr %9, align 8
  %559 = extractvalue { ptr, i32 } %557, 1
  store i32 %559, ptr %10, align 4
  br label %574

560:                                              ; preds = %519, %515
  %561 = landingpad { ptr, i32 }
          cleanup
  %562 = extractvalue { ptr, i32 } %561, 0
  store ptr %562, ptr %9, align 8
  %563 = extractvalue { ptr, i32 } %561, 1
  store i32 %563, ptr %10, align 4
  br label %573

564:                                              ; preds = %533, %527, %521
  %565 = landingpad { ptr, i32 }
          cleanup
  %566 = extractvalue { ptr, i32 } %565, 0
  store ptr %566, ptr %9, align 8
  %567 = extractvalue { ptr, i32 } %565, 1
  store i32 %567, ptr %10, align 4
  br label %572

568:                                              ; preds = %543, %541, %538, %535
  %569 = landingpad { ptr, i32 }
          cleanup
  %570 = extractvalue { ptr, i32 } %569, 0
  store ptr %570, ptr %9, align 8
  %571 = extractvalue { ptr, i32 } %569, 1
  store i32 %571, ptr %10, align 4
  call void @llvm.lifetime.end.p0(i64 4, ptr %45) #9
  br label %572

572:                                              ; preds = %568, %564
  call void @llvm.lifetime.end.p0(i64 4, ptr %44) #9
  br label %573

573:                                              ; preds = %572, %560
  call void @llvm.lifetime.end.p0(i64 4, ptr %43) #9
  br label %574

574:                                              ; preds = %573, %556
  call void @_ZN7Logging13LoggerMessageD1Ev(ptr noundef nonnull align 8 dereferenceable(161) %42) #9
  br label %575

575:                                              ; preds = %574, %552
  call void @llvm.lifetime.end.p0(i64 432, ptr %42) #9
  br label %576

576:                                              ; preds = %575, %548
  call void @llvm.lifetime.end.p0(i64 4, ptr %41) #9
  br label %760

577:                                              ; preds = %507
  %578 = getelementptr inbounds %"class.DynexCN::Blockchain", ptr %58, i32 0, i32 24
  %579 = invoke noundef zeroext i1 @_ZN7DynexCN10Blockchain18checkUpgradeHeightERKNS_20BasicUpgradeDetectorI13SwappedVectorINS0_10BlockEntryEEEE(ptr noundef nonnull align 8 dereferenceable(2636) %58, ptr noundef nonnull align 8 dereferenceable(64) %578)
          to label %580 unwind label %433

580:                                              ; preds = %577
  br i1 %579, label %650, label %581

581:                                              ; preds = %580
  call void @llvm.lifetime.start.p0(i64 4, ptr %46) #9
  %582 = getelementptr inbounds %"class.DynexCN::Blockchain", ptr %58, i32 0, i32 24
  %583 = invoke noundef i32 @_ZNK7DynexCN20BasicUpgradeDetectorI13SwappedVectorINS_10Blockchain10BlockEntryEEE13upgradeHeightEv(ptr noundef nonnull align 8 dereferenceable(64) %582)
          to label %584 unwind label %621

584:                                              ; preds = %581
  store i32 %583, ptr %46, align 4, !tbaa !157
  call void @llvm.lifetime.start.p0(i64 432, ptr %47) #9
  %585 = getelementptr inbounds %"class.DynexCN::Blockchain", ptr %58, i32 0, i32 33
  invoke void @_ZNK7Logging9LoggerRefclENS_5LevelERKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEE(ptr dead_on_unwind writable sret(%"class.Logging::LoggerMessage") align 8 %47, ptr noundef nonnull align 8 dereferenceable(40) %585, i32 noundef 2, ptr noundef nonnull align 8 dereferenceable(32) @_ZN7Logging13BRIGHT_YELLOWB5cxx11E)
          to label %586 unwind label %625

586:                                              ; preds = %584
  %587 = invoke noundef nonnull align 8 dereferenceable(161) ptr @_ZStlsIN7Logging13LoggerMessageEA26_cEOT_S4_RKT0_(ptr noundef nonnull align 8 dereferenceable(161) %47, ptr noundef nonnull align 1 dereferenceable(26) @.str.24)
          to label %588 unwind label %629

588:                                              ; preds = %586
  call void @llvm.lifetime.start.p0(i64 4, ptr %48) #9
  %589 = load i32, ptr %46, align 4, !tbaa !157
  %590 = add i32 %589, 1
  store i32 %590, ptr %48, align 4, !tbaa !157
  %591 = invoke noundef nonnull align 8 dereferenceable(161) ptr @_ZStlsIN7Logging13LoggerMessageEjEOT_S3_RKT0_(ptr noundef nonnull align 8 dereferenceable(161) %587, ptr noundef nonnull align 4 dereferenceable(4) %48)
          to label %592 unwind label %633

592:                                              ; preds = %588
  %593 = invoke noundef nonnull align 8 dereferenceable(161) ptr @_ZStlsIN7Logging13LoggerMessageEA8_cEOT_S4_RKT0_(ptr noundef nonnull align 8 dereferenceable(161) %591, ptr noundef nonnull align 1 dereferenceable(8) @.str.25)
          to label %594 unwind label %633

594:                                              ; preds = %592
  call void @llvm.lifetime.start.p0(i64 4, ptr %49) #9
  %595 = getelementptr inbounds %"class.DynexCN::Blockchain", ptr %58, i32 0, i32 18
  %596 = load i32, ptr %46, align 4, !tbaa !157
  %597 = add i32 %596, 1
  %598 = zext i32 %597 to i64
  %599 = invoke noundef nonnull align 8 dereferenceable(440) ptr @_ZN13SwappedVectorIN7DynexCN10Blockchain10BlockEntryEEixEm(ptr noundef nonnull align 8 dereferenceable(1184) %595, i64 noundef %598)
          to label %600 unwind label %637

600:                                              ; preds = %594
  %601 = getelementptr inbounds %"struct.DynexCN::Blockchain::BlockEntry", ptr %599, i32 0, i32 0
  %602 = getelementptr inbounds %"struct.DynexCN::BlockHeader", ptr %601, i32 0, i32 0
  %603 = load i8, ptr %602, align 8, !tbaa !158
  %604 = zext i8 %603 to i32
  store i32 %604, ptr %49, align 4, !tbaa !157
  %605 = invoke noundef nonnull align 8 dereferenceable(161) ptr @_ZStlsIN7Logging13LoggerMessageEiEOT_S3_RKT0_(ptr noundef nonnull align 8 dereferenceable(161) %593, ptr noundef nonnull align 4 dereferenceable(4) %49)
          to label %606 unwind label %637

606:                                              ; preds = %600
  %607 = invoke noundef nonnull align 8 dereferenceable(161) ptr @_ZStlsIN7Logging13LoggerMessageEA11_cEOT_S4_RKT0_(ptr noundef nonnull align 8 dereferenceable(161) %605, ptr noundef nonnull align 1 dereferenceable(11) @.str.26)
          to label %608 unwind label %637

608:                                              ; preds = %606
  call void @llvm.lifetime.start.p0(i64 4, ptr %50) #9
  %609 = getelementptr inbounds %"class.DynexCN::Blockchain", ptr %58, i32 0, i32 24
  %610 = invoke noundef zeroext i8 @_ZNK7DynexCN20BasicUpgradeDetectorI13SwappedVectorINS_10Blockchain10BlockEntryEEE13targetVersionEv(ptr noundef nonnull align 8 dereferenceable(64) %609)
          to label %611 unwind label %641

611:                                              ; preds = %608
  %612 = zext i8 %610 to i32
  store i32 %612, ptr %50, align 4, !tbaa !157
  %613 = invoke noundef nonnull align 8 dereferenceable(161) ptr @_ZStlsIN7Logging13LoggerMessageEiEOT_S3_RKT0_(ptr noundef nonnull align 8 dereferenceable(161) %607, ptr noundef nonnull align 4 dereferenceable(4) %50)
          to label %614 unwind label %641

614:                                              ; preds = %611
  %615 = invoke noundef nonnull align 8 dereferenceable(161) ptr @_ZStlsIN7Logging13LoggerMessageEA33_cEOT_S4_RKT0_(ptr noundef nonnull align 8 dereferenceable(161) %613, ptr noundef nonnull align 1 dereferenceable(33) @.str.27)
          to label %616 unwind label %641

616:                                              ; preds = %614
  %617 = invoke noundef nonnull align 8 dereferenceable(161) ptr @_ZStlsIN7Logging13LoggerMessageEjEOT_S3_RKT0_(ptr noundef nonnull align 8 dereferenceable(161) %615, ptr noundef nonnull align 4 dereferenceable(4) %46)
          to label %618 unwind label %641

618:                                              ; preds = %616
  call void @llvm.lifetime.end.p0(i64 4, ptr %50) #9
  call void @llvm.lifetime.end.p0(i64 4, ptr %49) #9
  call void @llvm.lifetime.end.p0(i64 4, ptr %48) #9
  call void @_ZN7Logging13LoggerMessageD1Ev(ptr noundef nonnull align 8 dereferenceable(161) %47) #9
  call void @llvm.lifetime.end.p0(i64 432, ptr %47) #9
  %619 = load i32, ptr %46, align 4, !tbaa !157
  invoke void @_ZN7DynexCN10Blockchain20rollbackBlockchainToEj(ptr noundef nonnull align 8 dereferenceable(2636) %58, i32 noundef %619)
          to label %620 unwind label %621

620:                                              ; preds = %618
  store i8 1, ptr %35, align 1, !tbaa !9
  call void @llvm.lifetime.end.p0(i64 4, ptr %46) #9
  br label %650

621:                                              ; preds = %618, %581
  %622 = landingpad { ptr, i32 }
          cleanup
  %623 = extractvalue { ptr, i32 } %622, 0
  store ptr %623, ptr %9, align 8
  %624 = extractvalue { ptr, i32 } %622, 1
  store i32 %624, ptr %10, align 4
  br label %649

625:                                              ; preds = %584
  %626 = landingpad { ptr, i32 }
          cleanup
  %627 = extractvalue { ptr, i32 } %626, 0
  store ptr %627, ptr %9, align 8
  %628 = extractvalue { ptr, i32 } %626, 1
  store i32 %628, ptr %10, align 4
  br label %648

629:                                              ; preds = %586
  %630 = landingpad { ptr, i32 }
          cleanup
  %631 = extractvalue { ptr, i32 } %630, 0
  store ptr %631, ptr %9, align 8
  %632 = extractvalue { ptr, i32 } %630, 1
  store i32 %632, ptr %10, align 4
  br label %647

633:                                              ; preds = %592, %588
  %634 = landingpad { ptr, i32 }
          cleanup
  %635 = extractvalue { ptr, i32 } %634, 0
  store ptr %635, ptr %9, align 8
  %636 = extractvalue { ptr, i32 } %634, 1
  store i32 %636, ptr %10, align 4
  br label %646

637:                                              ; preds = %606, %600, %594
  %638 = landingpad { ptr, i32 }
          cleanup
  %639 = extractvalue { ptr, i32 } %638, 0
  store ptr %639, ptr %9, align 8
  %640 = extractvalue { ptr, i32 } %638, 1
  store i32 %640, ptr %10, align 4
  br label %645

641:                                              ; preds = %616, %614, %611, %608
  %642 = landingpad { ptr, i32 }
          cleanup
  %643 = extractvalue { ptr, i32 } %642, 0
  store ptr %643, ptr %9, align 8
  %644 = extractvalue { ptr, i32 } %642, 1
  store i32 %644, ptr %10, align 4
  call void @llvm.lifetime.end.p0(i64 4, ptr %50) #9
  br label %645

645:                                              ; preds = %641, %637
  call void @llvm.lifetime.end.p0(i64 4, ptr %49) #9
  br label %646

646:                                              ; preds = %645, %633
  call void @llvm.lifetime.end.p0(i64 4, ptr %48) #9
  br label %647

647:                                              ; preds = %646, %629
  call void @_ZN7Logging13LoggerMessageD1Ev(ptr noundef nonnull align 8 dereferenceable(161) %47) #9
  br label %648

648:                                              ; preds = %647, %625
  call void @llvm.lifetime.end.p0(i64 432, ptr %47) #9
  br label %649

649:                                              ; preds = %648, %621
  call void @llvm.lifetime.end.p0(i64 4, ptr %46) #9
  br label %760

650:                                              ; preds = %620, %580
  br label %651

651:                                              ; preds = %650, %547
  br label %652

652:                                              ; preds = %651, %478
  %653 = load i8, ptr %35, align 1, !tbaa !9, !range !151, !noundef !152
  %654 = trunc i8 %653 to i1
  br i1 %654, label %655, label %681

655:                                              ; preds = %652
  %656 = getelementptr inbounds %"class.DynexCN::Blockchain", ptr %58, i32 0, i32 22
  %657 = invoke noundef zeroext i1 @_ZN7DynexCN20BasicUpgradeDetectorI13SwappedVectorINS_10Blockchain10BlockEntryEEE4initEv(ptr noundef nonnull align 8 dereferenceable(64) %656)
          to label %658 unwind label %433

658:                                              ; preds = %655
  br i1 %657, label %659, label %667

659:                                              ; preds = %658
  %660 = getelementptr inbounds %"class.DynexCN::Blockchain", ptr %58, i32 0, i32 23
  %661 = invoke noundef zeroext i1 @_ZN7DynexCN20BasicUpgradeDetectorI13SwappedVectorINS_10Blockchain10BlockEntryEEE4initEv(ptr noundef nonnull align 8 dereferenceable(64) %660)
          to label %662 unwind label %433

662:                                              ; preds = %659
  br i1 %661, label %663, label %667

663:                                              ; preds = %662
  %664 = getelementptr inbounds %"class.DynexCN::Blockchain", ptr %58, i32 0, i32 24
  %665 = invoke noundef zeroext i1 @_ZN7DynexCN20BasicUpgradeDetectorI13SwappedVectorINS_10Blockchain10BlockEntryEEE4initEv(ptr noundef nonnull align 8 dereferenceable(64) %664)
          to label %666 unwind label %433

666:                                              ; preds = %663
  br i1 %665, label %681, label %667

667:                                              ; preds = %666, %662, %658
  call void @llvm.lifetime.start.p0(i64 432, ptr %51) #9
  %668 = getelementptr inbounds %"class.DynexCN::Blockchain", ptr %58, i32 0, i32 33
  invoke void @_ZNK7Logging9LoggerRefclENS_5LevelERKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEE(ptr dead_on_unwind writable sret(%"class.Logging::LoggerMessage") align 8 %51, ptr noundef nonnull align 8 dereferenceable(40) %668, i32 noundef 1, ptr noundef nonnull align 8 dereferenceable(32) @_ZN7Logging10BRIGHT_REDB5cxx11E)
          to label %669 unwind label %672

669:                                              ; preds = %667
  %670 = invoke noundef nonnull align 8 dereferenceable(161) ptr @_ZStlsIN7Logging13LoggerMessageEA38_cEOT_S4_RKT0_(ptr noundef nonnull align 8 dereferenceable(161) %51, ptr noundef nonnull align 1 dereferenceable(38) @.str.28)
          to label %671 unwind label %676

671:                                              ; preds = %669
  call void @_ZN7Logging13LoggerMessageD1Ev(ptr noundef nonnull align 8 dereferenceable(161) %51) #9
  call void @llvm.lifetime.end.p0(i64 432, ptr %51) #9
  store i1 false, ptr %4, align 1
  store i32 1, ptr %12, align 4
  br label %759

672:                                              ; preds = %667
  %673 = landingpad { ptr, i32 }
          cleanup
  %674 = extractvalue { ptr, i32 } %673, 0
  store ptr %674, ptr %9, align 8
  %675 = extractvalue { ptr, i32 } %673, 1
  store i32 %675, ptr %10, align 4
  br label %680

676:                                              ; preds = %669
  %677 = landingpad { ptr, i32 }
          cleanup
  %678 = extractvalue { ptr, i32 } %677, 0
  store ptr %678, ptr %9, align 8
  %679 = extractvalue { ptr, i32 } %677, 1
  store i32 %679, ptr %10, align 4
  call void @_ZN7Logging13LoggerMessageD1Ev(ptr noundef nonnull align 8 dereferenceable(161) %51) #9
  br label %680

680:                                              ; preds = %676, %672
  call void @llvm.lifetime.end.p0(i64 432, ptr %51) #9
  br label %760

681:                                              ; preds = %666, %652
  %682 = invoke noundef zeroext i1 @_ZN7DynexCN10Blockchain33update_next_cumulative_size_limitEv(ptr noundef nonnull align 8 dereferenceable(2636) %58)
          to label %683 unwind label %433

683:                                              ; preds = %681
  call void @llvm.lifetime.start.p0(i64 8, ptr %52) #9
  %684 = call i64 @time(ptr noundef null) #9
  %685 = getelementptr inbounds %"class.DynexCN::Blockchain", ptr %58, i32 0, i32 18
  %686 = invoke noundef nonnull align 8 dereferenceable(440) ptr @_ZN13SwappedVectorIN7DynexCN10Blockchain10BlockEntryEE4backEv(ptr noundef nonnull align 8 dereferenceable(1184) %685)
          to label %687 unwind label %702

687:                                              ; preds = %683
  %688 = getelementptr inbounds %"struct.DynexCN::Blockchain::BlockEntry", ptr %686, i32 0, i32 0
  %689 = getelementptr inbounds %"struct.DynexCN::BlockHeader", ptr %688, i32 0, i32 3
  %690 = load i64, ptr %689, align 8, !tbaa !161
  %691 = sub i64 %684, %690
  store i64 %691, ptr %52, align 8, !tbaa !162
  %692 = getelementptr inbounds %"class.DynexCN::Blockchain", ptr %58, i32 0, i32 18
  %693 = invoke noundef nonnull align 8 dereferenceable(440) ptr @_ZN13SwappedVectorIN7DynexCN10Blockchain10BlockEntryEE4backEv(ptr noundef nonnull align 8 dereferenceable(1184) %692)
          to label %694 unwind label %702

694:                                              ; preds = %687
  %695 = getelementptr inbounds %"struct.DynexCN::Blockchain::BlockEntry", ptr %693, i32 0, i32 0
  %696 = getelementptr inbounds %"struct.DynexCN::BlockHeader", ptr %695, i32 0, i32 3
  %697 = load i64, ptr %696, align 8, !tbaa !161
  %698 = icmp ne i64 %697, 0
  br i1 %698, label %706, label %699

699:                                              ; preds = %694
  %700 = call i64 @time(ptr noundef null) #9
  %701 = sub i64 %700, 1663331870
  store i64 %701, ptr %52, align 8, !tbaa !162
  br label %706

702:                                              ; preds = %687, %683
  %703 = landingpad { ptr, i32 }
          cleanup
  %704 = extractvalue { ptr, i32 } %703, 0
  store ptr %704, ptr %9, align 8
  %705 = extractvalue { ptr, i32 } %703, 1
  store i32 %705, ptr %10, align 4
  br label %758

706:                                              ; preds = %699, %694
  call void @llvm.lifetime.start.p0(i64 432, ptr %53) #9
  %707 = getelementptr inbounds %"class.DynexCN::Blockchain", ptr %58, i32 0, i32 33
  invoke void @_ZNK7Logging9LoggerRefclENS_5LevelERKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEE(ptr dead_on_unwind writable sret(%"class.Logging::LoggerMessage") align 8 %53, ptr noundef nonnull align 8 dereferenceable(40) %707, i32 noundef 3, ptr noundef nonnull align 8 dereferenceable(32) @_ZN7Logging12BRIGHT_GREENB5cxx11E)
          to label %708 unwind label %729

708:                                              ; preds = %706
  %709 = invoke noundef nonnull align 8 dereferenceable(161) ptr @_ZStlsIN7Logging13LoggerMessageEA37_cEOT_S4_RKT0_(ptr noundef nonnull align 8 dereferenceable(161) %53, ptr noundef nonnull align 1 dereferenceable(37) @.str.29)
          to label %710 unwind label %733

710:                                              ; preds = %708
  call void @llvm.lifetime.start.p0(i64 8, ptr %54) #9
  %711 = getelementptr inbounds %"class.DynexCN::Blockchain", ptr %58, i32 0, i32 18
  %712 = invoke noundef i64 @_ZNK13SwappedVectorIN7DynexCN10Blockchain10BlockEntryEE4sizeEv(ptr noundef nonnull align 8 dereferenceable(1184) %711)
          to label %713 unwind label %737

713:                                              ; preds = %710
  %714 = sub i64 %712, 1
  store i64 %714, ptr %54, align 8, !tbaa !162
  %715 = invoke noundef nonnull align 8 dereferenceable(161) ptr @_ZStlsIN7Logging13LoggerMessageEmEOT_S3_RKT0_(ptr noundef nonnull align 8 dereferenceable(161) %709, ptr noundef nonnull align 8 dereferenceable(8) %54)
          to label %716 unwind label %737

716:                                              ; preds = %713
  %717 = invoke noundef nonnull align 8 dereferenceable(161) ptr @_ZStlsIN7Logging13LoggerMessageEA3_cEOT_S4_RKT0_(ptr noundef nonnull align 8 dereferenceable(161) %715, ptr noundef nonnull align 1 dereferenceable(3) @.str.30)
          to label %718 unwind label %737

718:                                              ; preds = %716
  call void @llvm.lifetime.start.p0(i64 32, ptr %55) #9
  %719 = load i64, ptr %52, align 8, !tbaa !162
  invoke void @_ZN6Common20timeIntervalToStringB5cxx11Em(ptr dead_on_unwind writable sret(%"class.std::__cxx11::basic_string") align 8 %55, i64 noundef %719)
          to label %720 unwind label %741

720:                                              ; preds = %718
  %721 = invoke noundef nonnull align 8 dereferenceable(161) ptr @_ZStlsIN7Logging13LoggerMessageENSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEEOT_S9_RKT0_(ptr noundef nonnull align 8 dereferenceable(161) %717, ptr noundef nonnull align 8 dereferenceable(32) %55)
          to label %722 unwind label %745

722:                                              ; preds = %720
  %723 = invoke noundef nonnull align 8 dereferenceable(161) ptr @_ZStlsIN7Logging13LoggerMessageEA32_cEOT_S4_RKT0_(ptr noundef nonnull align 8 dereferenceable(161) %721, ptr noundef nonnull align 1 dereferenceable(32) @.str.31)
          to label %724 unwind label %745

724:                                              ; preds = %722
  call void @llvm.lifetime.start.p0(i64 8, ptr %56) #9
  %725 = invoke noundef i64 @_ZN7DynexCN10Blockchain25getDifficultyForNextBlockEv(ptr noundef nonnull align 8 dereferenceable(2636) %58)
          to label %726 unwind label %749

726:                                              ; preds = %724
  store i64 %725, ptr %56, align 8, !tbaa !162
  %727 = invoke noundef nonnull align 8 dereferenceable(161) ptr @_ZStlsIN7Logging13LoggerMessageEmEOT_S3_RKT0_(ptr noundef nonnull align 8 dereferenceable(161) %723, ptr noundef nonnull align 8 dereferenceable(8) %56)
          to label %728 unwind label %749

728:                                              ; preds = %726
  call void @llvm.lifetime.end.p0(i64 8, ptr %56) #9
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %55) #9
  call void @llvm.lifetime.end.p0(i64 32, ptr %55) #9
  call void @llvm.lifetime.end.p0(i64 8, ptr %54) #9
  call void @_ZN7Logging13LoggerMessageD1Ev(ptr noundef nonnull align 8 dereferenceable(161) %53) #9
  call void @llvm.lifetime.end.p0(i64 432, ptr %53) #9
  store i1 true, ptr %4, align 1
  store i32 1, ptr %12, align 4
  call void @llvm.lifetime.end.p0(i64 8, ptr %52) #9
  br label %759

729:                                              ; preds = %706
  %730 = landingpad { ptr, i32 }
          cleanup
  %731 = extractvalue { ptr, i32 } %730, 0
  store ptr %731, ptr %9, align 8
  %732 = extractvalue { ptr, i32 } %730, 1
  store i32 %732, ptr %10, align 4
  br label %757

733:                                              ; preds = %708
  %734 = landingpad { ptr, i32 }
          cleanup
  %735 = extractvalue { ptr, i32 } %734, 0
  store ptr %735, ptr %9, align 8
  %736 = extractvalue { ptr, i32 } %734, 1
  store i32 %736, ptr %10, align 4
  br label %756

737:                                              ; preds = %716, %713, %710
  %738 = landingpad { ptr, i32 }
          cleanup
  %739 = extractvalue { ptr, i32 } %738, 0
  store ptr %739, ptr %9, align 8
  %740 = extractvalue { ptr, i32 } %738, 1
  store i32 %740, ptr %10, align 4
  br label %755

741:                                              ; preds = %718
  %742 = landingpad { ptr, i32 }
          cleanup
  %743 = extractvalue { ptr, i32 } %742, 0
  store ptr %743, ptr %9, align 8
  %744 = extractvalue { ptr, i32 } %742, 1
  store i32 %744, ptr %10, align 4
  br label %754

745:                                              ; preds = %722, %720
  %746 = landingpad { ptr, i32 }
          cleanup
  %747 = extractvalue { ptr, i32 } %746, 0
  store ptr %747, ptr %9, align 8
  %748 = extractvalue { ptr, i32 } %746, 1
  store i32 %748, ptr %10, align 4
  br label %753

749:                                              ; preds = %726, %724
  %750 = landingpad { ptr, i32 }
          cleanup
  %751 = extractvalue { ptr, i32 } %750, 0
  store ptr %751, ptr %9, align 8
  %752 = extractvalue { ptr, i32 } %750, 1
  store i32 %752, ptr %10, align 4
  call void @llvm.lifetime.end.p0(i64 8, ptr %56) #9
  br label %753

753:                                              ; preds = %749, %745
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %55) #9
  br label %754

754:                                              ; preds = %753, %741
  call void @llvm.lifetime.end.p0(i64 32, ptr %55) #9
  br label %755

755:                                              ; preds = %754, %737
  call void @llvm.lifetime.end.p0(i64 8, ptr %54) #9
  br label %756

756:                                              ; preds = %755, %733
  call void @_ZN7Logging13LoggerMessageD1Ev(ptr noundef nonnull align 8 dereferenceable(161) %53) #9
  br label %757

757:                                              ; preds = %756, %729
  call void @llvm.lifetime.end.p0(i64 432, ptr %53) #9
  br label %758

758:                                              ; preds = %757, %702
  call void @llvm.lifetime.end.p0(i64 8, ptr %52) #9
  br label %760

759:                                              ; preds = %728, %671
  call void @llvm.lifetime.end.p0(i64 1, ptr %35) #9
  br label %761

760:                                              ; preds = %758, %680, %649, %576, %503, %433
  call void @llvm.lifetime.end.p0(i64 1, ptr %35) #9
  br label %762

761:                                              ; preds = %759, %411
  call void @llvm.lifetime.end.p0(i64 4, ptr %32) #9
  br label %763

762:                                              ; preds = %760, %420, %394, %382
  call void @llvm.lifetime.end.p0(i64 4, ptr %32) #9
  br label %765

763:                                              ; preds = %761, %366, %331, %112, %73
  call void @_ZNSt10lock_guardISt15recursive_mutexED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %8) #9
  call void @llvm.lifetime.end.p0(i64 8, ptr %8) #9
  %764 = load i1, ptr %4, align 1
  ret i1 %764

765:                                              ; preds = %762, %369, %334, %312, %274, %135, %121, %86, %74
  call void @_ZNSt10lock_guardISt15recursive_mutexED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %8) #9
  call void @llvm.lifetime.end.p0(i64 8, ptr %8) #9
  br label %766

766:                                              ; preds = %765
  %767 = load ptr, ptr %9, align 8
  %768 = load i32, ptr %10, align 4
  %769 = insertvalue { ptr, i32 } poison, ptr %767, 0
  %770 = insertvalue { ptr, i32 } %769, i32 %768, 1
  resume { ptr, i32 } %770
}

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

declare noundef zeroext i1 @_ZN5Tools31create_directories_if_necessaryERKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEE(ptr noundef nonnull align 8 dereferenceable(32)) #5

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

; 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)) #4

; Function Attrs: mustprogress uwtable
declare noundef nonnull align 8 dereferenceable(32) ptr @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEaSERKS4_(ptr noundef nonnull align 8 dereferenceable(32), ptr noundef nonnull align 8 dereferenceable(32)) #7 align 2

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

; Function Attrs: mustprogress uwtable
declare dso_local noundef zeroext i1 @_ZN13SwappedVectorIN7DynexCN10Blockchain10BlockEntryEE4openERKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEESB_m(ptr noundef nonnull align 8 dereferenceable(1184), ptr noundef nonnull align 8 dereferenceable(32), ptr noundef nonnull align 8 dereferenceable(32), i64 noundef) #7 align 2

; Function Attrs: mustprogress uwtable
declare hidden void @_ZN12_GLOBAL__N_110appendPathERKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEES7_(ptr dead_on_unwind noalias writable sret(%"class.std::__cxx11::basic_string") align 8, ptr noundef nonnull align 8 dereferenceable(32), ptr noundef nonnull align 8 dereferenceable(32)) #7

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

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

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

declare void @_ZN7DynexCN14get_block_hashERKNS_5BlockE(ptr dead_on_unwind writable sret(%"struct.Crypto::Hash") align 1, ptr noundef nonnull align 8 dereferenceable(384)) #5

; Function Attrs: mustprogress uwtable
declare dso_local noundef nonnull align 8 dereferenceable(440) ptr @_ZN13SwappedVectorIN7DynexCN10Blockchain10BlockEntryEE4backEv(ptr noundef nonnull align 8 dereferenceable(1184)) #7 align 2

declare noundef nonnull align 8 dereferenceable(8) ptr @_ZNK7Logging9LoggerRef9getLoggerEv(ptr noundef nonnull align 8 dereferenceable(40)) #5

; Function Attrs: mustprogress uwtable
declare dso_local void @_ZN7DynexCN20BlockCacheSerializerC2ERNS_10BlockchainEN6Crypto4HashERN7Logging7ILoggerE(ptr noundef nonnull align 8 dereferenceable(88), ptr noundef nonnull align 8 dereferenceable(2636), ptr noundef byval(%"struct.Crypto::Hash") align 8, ptr noundef nonnull align 8 dereferenceable(8)) unnamed_addr #7 align 2

; Function Attrs: mustprogress uwtable
declare dso_local void @_ZN7DynexCN20BlockCacheSerializer4loadERKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEE(ptr noundef nonnull align 8 dereferenceable(88), ptr noundef nonnull align 8 dereferenceable(32)) #7 align 2

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

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

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

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

; Function Attrs: mustprogress uwtable
declare dso_local void @_ZN7DynexCN27BlockchainIndicesSerializerC2ERNS_10BlockchainEN6Crypto4HashERN7Logging7ILoggerE(ptr noundef nonnull align 8 dereferenceable(88), ptr noundef nonnull align 8 dereferenceable(2636), ptr noundef byval(%"struct.Crypto::Hash") align 8, ptr noundef nonnull align 8 dereferenceable(8)) unnamed_addr #7 align 2

; Function Attrs: mustprogress uwtable
declare dso_local noundef zeroext i1 @_ZN7DynexCN18loadFromBinaryFileINS_27BlockchainIndicesSerializerEEEbRT_RKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEE(ptr noundef nonnull align 8 dereferenceable(88), ptr noundef nonnull align 8 dereferenceable(32)) #7

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

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

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

; Function Attrs: inlinehint mustprogress nounwind uwtable
declare dso_local void @_ZN7DynexCN27BlockchainIndicesSerializerD2Ev(ptr noundef nonnull align 8 dereferenceable(88)) unnamed_addr #3 align 2

; Function Attrs: mustprogress uwtable
declare dso_local void @_ZN7DynexCN10Blockchain12rebuildCacheEv(ptr noundef nonnull align 8 dereferenceable(2636)) #7 align 2

; Function Attrs: inlinehint mustprogress nounwind uwtable
declare dso_local void @_ZN7DynexCN20BlockCacheSerializerD2Ev(ptr noundef nonnull align 8 dereferenceable(88)) unnamed_addr #3 align 2

; Function Attrs: mustprogress uwtable
declare dso_local void @_ZN13SwappedVectorIN7DynexCN10Blockchain10BlockEntryEE5clearEv(ptr noundef nonnull align 8 dereferenceable(1184)) #7 align 2

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

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

; Function Attrs: mustprogress uwtable
declare dso_local noundef nonnull align 1 dereferenceable(5) ptr @_ZN5boost17value_initializedIN7DynexCN26block_verification_contextEEcvRS2_Ev(ptr noundef nonnull align 1 dereferenceable(5)) #7 align 2

; Function Attrs: mustprogress uwtable
declare dso_local noundef zeroext i1 @_ZN7DynexCN10Blockchain9pushBlockERKNS_5BlockERNS_26block_verification_contextE(ptr noundef nonnull align 8 dereferenceable(2636), ptr noundef nonnull align 8 dereferenceable(384), ptr noundef nonnull align 1 dereferenceable(5)) #7 align 2

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

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

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

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

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

; Function Attrs: mustprogress uwtable
declare dso_local noundef zeroext i1 @_ZN7DynexCN10Blockchain16checkCheckpointsERj(ptr noundef nonnull align 8 dereferenceable(2636), ptr noundef nonnull align 4 dereferenceable(4)) #7 align 2

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

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

; Function Attrs: mustprogress uwtable
declare dso_local void @_ZN7DynexCN10Blockchain20rollbackBlockchainToEj(ptr noundef nonnull align 8 dereferenceable(2636), i32 noundef) #7 align 2

; Function Attrs: mustprogress uwtable
declare dso_local noundef zeroext i1 @_ZN7DynexCN20BasicUpgradeDetectorI13SwappedVectorINS_10Blockchain10BlockEntryEEE4initEv(ptr noundef nonnull align 8 dereferenceable(64)) #7 align 2

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

; Function Attrs: mustprogress uwtable
declare dso_local noundef zeroext i1 @_ZN7DynexCN10Blockchain18checkUpgradeHeightERKNS_20BasicUpgradeDetectorI13SwappedVectorINS0_10BlockEntryEEEE(ptr noundef nonnull align 8 dereferenceable(2636), ptr noundef nonnull align 8 dereferenceable(64)) #7 align 2

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

; Function Attrs: noreturn nounwind
declare void @__assert_fail(ptr noundef, ptr noundef, i32 noundef, ptr noundef) #8

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

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

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

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

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

; Function Attrs: mustprogress nounwind uwtable
declare dso_local noundef zeroext i8 @_ZNK7DynexCN20BasicUpgradeDetectorI13SwappedVectorINS_10Blockchain10BlockEntryEEE13targetVersionEv(ptr noundef nonnull align 8 dereferenceable(64)) #2 align 2

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

; Function Attrs: mustprogress uwtable
declare dso_local noundef zeroext i1 @_ZN7DynexCN10Blockchain33update_next_cumulative_size_limitEv(ptr noundef nonnull align 8 dereferenceable(2636)) #7 align 2

; Function Attrs: nounwind
declare i64 @time(ptr noundef) #6

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

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

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

declare void @_ZN6Common20timeIntervalToStringB5cxx11Em(ptr dead_on_unwind writable sret(%"class.std::__cxx11::basic_string") align 8, i64 noundef) #5

; Function Attrs: mustprogress uwtable
declare dso_local noundef i64 @_ZN7DynexCN10Blockchain25getDifficultyForNextBlockEv(ptr noundef nonnull align 8 dereferenceable(2636)) #7 align 2

attributes #0 = { nocallback nofree nosync nounwind willreturn memory(argmem: readwrite) }
attributes #1 = { nocallback nofree nounwind willreturn memory(argmem: readwrite) }
attributes #2 = { 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 #3 = { 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 #4 = { 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 #5 = { "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="x86-64" "target-features"="+cmov,+cx8,+fxsr,+mmx,+sse,+sse2,+x87" "tune-cpu"="generic" }
attributes #6 = { 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 #7 = { 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 #8 = { noreturn nounwind "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="x86-64" "target-features"="+cmov,+cx8,+fxsr,+mmx,+sse,+sse2,+x87" "tune-cpu"="generic" }
attributes #9 = { nounwind }
attributes #10 = { noreturn nounwind }

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

!0 = !{i32 1, !"wchar_size", i32 4}
!1 = !{i32 8, !"PIC Level", i32 2}
!2 = !{i32 7, !"PIE Level", i32 2}
!3 = !{i32 7, !"uwtable", i32 2}
!4 = !{!"clang version 19.1.0 (git@github.com:llvm/llvm-project.git a4bf6cd7cfb1a1421ba92bca9d017b49936c55e4)"}
!5 = !{!6, !6, i64 0}
!6 = !{!"any pointer", !7, i64 0}
!7 = !{!"omnipotent char", !8, i64 0}
!8 = !{!"Simple C++ TBAA"}
!9 = !{!10, !10, i64 0}
!10 = !{!"bool", !7, i64 0}
!11 = !{!12, !6, i64 80}
!12 = !{!"_ZTSN7DynexCN10BlockchainE", !13, i64 0, !14, i64 8, !7, i64 16, !15, i64 24, !6, i64 80, !6, i64 88, !21, i64 96, !23, i64 136, !24, i64 144, !31, i64 208, !17, i64 296, !46, i64 304, !48, 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, !10, i64 2568, !150, i64 2576, !70, i64 2592, !52, i64 2632}
!13 = !{!"_ZTSN7DynexCN21ITransactionValidatorE"}
!14 = !{!"_ZTSN7DynexCN24IDynexCNProtocolObserverE"}
!15 = !{!"_ZTSSt13unordered_mapIN6Crypto4HashEbSt4hashIS1_ESt8equal_toIS1_ESaISt4pairIKS1_bEEE", !16, i64 0}
!16 = !{!"_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, !17, i64 8, !18, i64 16, !17, i64 24, !19, i64 32, !6, i64 48}
!17 = !{!"long", !7, i64 0}
!18 = !{!"_ZTSNSt8__detail15_Hash_node_baseE", !6, i64 0}
!19 = !{!"_ZTSNSt8__detail20_Prime_rehash_policyE", !20, i64 0, !17, i64 8}
!20 = !{!"float", !7, i64 0}
!21 = !{!"_ZTSSt15recursive_mutex", !22, i64 0}
!22 = !{!"_ZTSSt22__recursive_mutex_base", !7, i64 0}
!23 = !{!"_ZTSN6Crypto10cn_contextE", !6, i64 0}
!24 = !{!"_ZTSN5Tools15ObserverManagerIN7DynexCN26IBlockchainStorageObserverEEE", !25, i64 0, !29, i64 24}
!25 = !{!"_ZTSSt6vectorIPN7DynexCN26IBlockchainStorageObserverESaIS2_EE", !26, i64 0}
!26 = !{!"_ZTSSt12_Vector_baseIPN7DynexCN26IBlockchainStorageObserverESaIS2_EE", !27, i64 0}
!27 = !{!"_ZTSNSt12_Vector_baseIPN7DynexCN26IBlockchainStorageObserverESaIS2_EE12_Vector_implE", !28, i64 0}
!28 = !{!"_ZTSNSt12_Vector_baseIPN7DynexCN26IBlockchainStorageObserverESaIS2_EE17_Vector_impl_dataE", !6, i64 0, !6, i64 8, !6, i64 16}
!29 = !{!"_ZTSSt5mutex", !30, i64 0}
!30 = !{!"_ZTSSt12__mutex_base", !7, i64 0}
!31 = !{!"_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", !32, i64 0, !34, i64 8, !35, i64 16, !17, i64 80}
!32 = !{!"_ZTSN5boost16base_from_memberISaINS_11multi_index6detail18ordered_index_nodeINS2_19null_augment_policyENS2_17hashed_index_nodeINS2_15index_node_baseIN7DynexCN10Blockchain13SpentKeyImageESaIS9_EEEEEEEELi0EEE", !33, i64 0}
!33 = !{!"_ZTSSaIN5boost11multi_index6detail18ordered_index_nodeINS1_19null_augment_policyENS1_17hashed_index_nodeINS1_15index_node_baseIN7DynexCN10Blockchain13SpentKeyImageESaIS8_EEEEEEEE"}
!34 = !{!"_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}
!35 = !{!"_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", !36, i64 0}
!36 = !{!"_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", !37, i64 0, !44, i64 56, !45, i64 57}
!37 = !{!"_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", !38, i64 0, !39, i64 1, !40, i64 2, !41, i64 8, !20, i64 40, !17, i64 48}
!38 = !{!"_ZTSN5boost11multi_index6memberIN7DynexCN10Blockchain13SpentKeyImageEN6Crypto8KeyImageEXadL_ZNS4_8keyImageEEEEE"}
!39 = !{!"_ZTSN5boost4hashIN6Crypto8KeyImageEEE"}
!40 = !{!"_ZTSSt8equal_toIN6Crypto8KeyImageEE"}
!41 = !{!"_ZTSN5boost11multi_index6detail12bucket_arrayISaIN7DynexCN10Blockchain13SpentKeyImageEEEE", !17, i64 0, !42, i64 8}
!42 = !{!"_ZTSN5boost11multi_index6detail10auto_spaceINS1_27hashed_index_base_node_implISaIcEEESaIN7DynexCN10Blockchain13SpentKeyImageEEEE", !43, i64 0, !17, i64 8, !6, i64 16}
!43 = !{!"_ZTSSaIN5boost11multi_index6detail27hashed_index_base_node_implISaIcEEEE"}
!44 = !{!"_ZTSN5boost11multi_index6memberIN7DynexCN10Blockchain13SpentKeyImageEjXadL_ZNS4_10blockIndexEEEEE"}
!45 = !{!"_ZTSSt4lessIjE"}
!46 = !{!"_ZTSSt13unordered_mapIN6Crypto4HashEN7DynexCN10Blockchain10BlockEntryESt4hashIS1_ESt8equal_toIS1_ESaISt4pairIKS1_S4_EEE", !47, i64 0}
!47 = !{!"_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, !17, i64 8, !18, i64 16, !17, i64 24, !19, i64 32, !6, i64 48}
!48 = !{!"_ZTSN6google15sparse_hash_mapImSt6vectorISt4pairIN7DynexCN10Blockchain16TransactionIndexEtESaIS6_EESt4hashImESt8equal_toImENS_27libc_allocator_with_reallocIS2_IKmS8_EEEEE", !49, i64 0}
!49 = !{!"_ZTSN6google16sparse_hashtableISt4pairIKmSt6vectorIS1_IN7DynexCN10Blockchain16TransactionIndexEtESaIS7_EEEmSt4hashImENS_15sparse_hash_mapImS9_SC_St8equal_toImENS_27libc_allocator_with_reallocISA_EEE9SelectKeyENSI_6SetKeyESF_SH_EE", !50, i64 0, !53, i64 32, !17, i64 40, !54, i64 48}
!50 = !{!"_ZTSN6google16sparse_hashtableISt4pairIKmSt6vectorIS1_IN7DynexCN10Blockchain16TransactionIndexEtESaIS7_EEEmSt4hashImENS_15sparse_hash_mapImS9_SC_St8equal_toImENS_27libc_allocator_with_reallocISA_EEE9SelectKeyENSI_6SetKeyESF_SH_E8SettingsE", !51, i64 0}
!51 = !{!"_ZTS21sh_hashtable_settingsImSt4hashImEmLi4EE", !17, i64 0, !17, i64 8, !20, i64 16, !20, i64 20, !10, i64 24, !10, i64 25, !10, i64 26, !52, i64 28}
!52 = !{!"int", !7, i64 0}
!53 = !{!"_ZTSN6google16sparse_hashtableISt4pairIKmSt6vectorIS1_IN7DynexCN10Blockchain16TransactionIndexEtESaIS7_EEEmSt4hashImENS_15sparse_hash_mapImS9_SC_St8equal_toImENS_27libc_allocator_with_reallocISA_EEE9SelectKeyENSI_6SetKeyESF_SH_E7KeyInfoE", !17, 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", !17, i64 0, !17, i64 8}
!60 = !{!"_ZTSNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEE", !61, i64 0, !17, 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", !45, i64 0}
!67 = !{!"_ZTSSt15_Rb_tree_header", !68, i64 0, !17, 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", !10, i64 0}
!73 = !{!"_ZTS13SwappedVectorIN7DynexCN10Blockchain10BlockEntryEE", !74, i64 0, !74, i64 528, !17, i64 1056, !84, i64 1064, !17, i64 1088, !88, i64 1096, !93, i64 1144, !17, i64 1168, !17, i64 1176}
!74 = !{!"_ZTSSt13basic_fstreamIcSt11char_traitsIcEE", !75, i64 0, !78, i64 24}
!75 = !{!"_ZTSSd", !76, i64 0, !77, i64 16}
!76 = !{!"_ZTSSi", !17, 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, !17, i64 160, !10, i64 168, !10, i64 169, !10, i64 170, !7, i64 171, !6, i64 176, !6, i64 184, !10, i64 192, !6, i64 200, !6, i64 208, !17, 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, !10, 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, !17, 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, !17, 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, !20, i64 40, !17, i64 48}
!105 = !{!"_ZTSN5boost11multi_index8identityIN6Crypto4HashEEE"}
!106 = !{!"_ZTSN5boost4hashIN6Crypto4HashEEE"}
!107 = !{!"_ZTSSt8equal_toIN6Crypto4HashEE"}
!108 = !{!"_ZTSN5boost11multi_index6detail12bucket_arrayISaIN6Crypto4HashEEEE", !17, i64 0, !109, i64 8}
!109 = !{!"_ZTSN5boost11multi_index6detail10auto_spaceINS1_27hashed_index_base_node_implISaIcEEESaIN6Crypto4HashEEEE", !43, i64 0, !17, i64 8, !6, i64 16}
!110 = !{!"_ZTSN5boost11multi_index6detail29random_access_index_ptr_arrayISaIN6Crypto4HashEEEE", !17, i64 0, !17, i64 8, !111, i64 16}
!111 = !{!"_ZTSN5boost11multi_index6detail10auto_spaceIPNS1_29random_access_index_node_implISaIcEEESaIN6Crypto4HashEEEE", !112, i64 0, !17, 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, !17, i64 8, !18, i64 16, !17, i64 24, !19, 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, !17, i64 40, !119, i64 48}
!117 = !{!"_ZTSN6google16sparse_hashtableISt4pairIKmSt6vectorIN7DynexCN10Blockchain25MultisignatureOutputUsageESaIS6_EEEmSt4hashImENS_15sparse_hash_mapImS8_SB_St8equal_toImENS_27libc_allocator_with_reallocIS9_EEE9SelectKeyENSH_6SetKeyESE_SG_E8SettingsE", !51, i64 0}
!118 = !{!"_ZTSN6google16sparse_hashtableISt4pairIKmSt6vectorIN7DynexCN10Blockchain25MultisignatureOutputUsageESaIS6_EEEmSt4hashImENS_15sparse_hash_mapImS8_SB_St8equal_toImENS_27libc_allocator_with_reallocIS9_EEE9SelectKeyENSH_6SetKeyESE_SG_E7KeyInfoE", !17, 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", !17, i64 0, !17, 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, !10, 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, !17, i64 40, !18, i64 48, !17, i64 56, !19, 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, !10, 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, !10, 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, !17, i64 56, !10, 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, !17, i64 8, !18, i64 16, !17, i64 24, !19, i64 32, !6, i64 48}
!147 = !{!"_ZTSN7DynexCN17OrphanBlocksIndexE", !148, i64 0, !10, 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, !17, i64 8, !18, i64 16, !17, i64 24, !19, i64 32, !6, i64 48}
!150 = !{!"_ZTSN7DynexCN19IntrusiveLinkedListINS_12MessageQueueINS_17BlockchainMessageEEEEE", !6, i64 0, !6, i64 8}
!151 = !{i8 0, i8 2}
!152 = !{}
!153 = !{!12, !10, i64 2568}
!154 = !{i64 0, i64 1, !9, i64 1, i64 1, !9, i64 2, i64 1, !9, i64 3, i64 1, !9, i64 4, i64 1, !9}
!155 = !{!156, !10, i64 1}
!156 = !{!"_ZTSN7DynexCN26block_verification_contextE", !10, i64 0, !10, i64 1, !10, i64 2, !10, i64 3, !10, i64 4}
!157 = !{!52, !52, i64 0}
!158 = !{!159, !7, i64 0}
!159 = !{!"_ZTSN7DynexCN11BlockHeaderE", !7, i64 0, !7, i64 1, !52, i64 4, !17, i64 8, !160, i64 16}
!160 = !{!"_ZTSN6Crypto4HashE", !7, i64 0}
!161 = !{!159, !17, i64 8}
!162 = !{!17, !17, i64 0}


; 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::lock_guard" = type { ptr }
%"class.DynexCN::BlockCacheSerializer" = type { %"class.Logging::LoggerRef", i8, ptr, %"struct.Crypto::Hash" }
%"class.Logging::LoggerRef" = type { ptr, %"class.std::__cxx11::basic_string" }
%"struct.Crypto::Hash" = type { [32 x i8] }
%"class.DynexCN::BlockchainIndicesSerializer" = type { %"class.Logging::LoggerRef", i8, ptr, %"struct.Crypto::Hash" }
%"struct.DynexCN::block_verification_context" = type { i8, i8, i8, i8, i8 }
%"class.boost::value_initialized.232" = type { %"class.boost::initialized.233" }
%"class.boost::initialized.233" = type { %"struct.DynexCN::block_verification_context" }

@_ZN7Logging10BRIGHT_REDB5cxx11E = external global %"class.std::__cxx11::basic_string", align 8
@.str.12 = external hidden unnamed_addr constant [34 x i8], align 1
@_ZN7Logging12BRIGHT_WHITEB5cxx11E = external global %"class.std::__cxx11::basic_string", align 8
@.str.13 = external hidden unnamed_addr constant [22 x i8], align 1
@_ZN7Logging13BRIGHT_YELLOWB5cxx11E = external global %"class.std::__cxx11::basic_string", align 8
@.str.14 = external hidden unnamed_addr constant [68 x i8], align 1
@.str.15 = external hidden unnamed_addr constant [53 x i8], align 1
@.str.16 = external hidden unnamed_addr constant [73 x i8], align 1
@.str.17 = external hidden unnamed_addr constant [49 x i8], align 1
@.str.18 = external hidden unnamed_addr constant [42 x i8], align 1
@.str.19 = external hidden unnamed_addr constant [131 x i8], align 1
@.str.20 = external hidden unnamed_addr constant [57 x i8], align 1
@.str.21 = external hidden unnamed_addr constant [70 x i8], align 1
@.str.22 = external hidden unnamed_addr constant [51 x i8], align 1
@.str.23 = external hidden unnamed_addr constant [80 x i8], align 1
@__PRETTY_FUNCTION__._ZN7DynexCN10Blockchain4initERKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEb = external hidden unnamed_addr constant [58 x i8], align 1
@.str.24 = external hidden unnamed_addr constant [26 x i8], align 1
@.str.25 = external hidden unnamed_addr constant [8 x i8], align 1
@.str.26 = external hidden unnamed_addr constant [11 x i8], align 1
@.str.27 = external hidden unnamed_addr constant [33 x i8], align 1
@.str.28 = external hidden unnamed_addr constant [38 x i8], align 1
@_ZN7Logging12BRIGHT_GREENB5cxx11E = external global %"class.std::__cxx11::basic_string", align 8
@.str.29 = external hidden unnamed_addr constant [37 x i8], align 1
@.str.30 = external hidden unnamed_addr constant [3 x i8], align 1
@.str.31 = external hidden unnamed_addr constant [32 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 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: 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: mustprogress nounwind uwtable
declare void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32)) unnamed_addr #2 align 2

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

; 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 #4

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 #5

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

; 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 #7 align 2

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

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

; Function Attrs: mustprogress uwtable
define dso_local noundef zeroext i1 @_ZN7DynexCN10Blockchain4initERKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEb(ptr noundef nonnull align 8 dereferenceable(2636) %0, ptr noundef nonnull align 8 dereferenceable(32) %1, i1 noundef zeroext %2) local_unnamed_addr #7 align 2 personality ptr @__gxx_personality_v0 {
  %4 = alloca %"class.std::lock_guard", align 8
  %5 = alloca %"class.Logging::LoggerMessage", align 8
  %6 = alloca %"class.Logging::LoggerMessage", align 8
  %7 = alloca %"class.std::__cxx11::basic_string", align 8
  %8 = alloca %"class.std::__cxx11::basic_string", align 8
  %9 = alloca %"class.DynexCN::BlockCacheSerializer", align 8
  %10 = alloca %"struct.Crypto::Hash", align 8
  %11 = alloca %"class.std::__cxx11::basic_string", align 8
  %12 = alloca %"class.Logging::LoggerMessage", align 8
  %13 = alloca %"class.Logging::LoggerMessage", align 8
  %14 = alloca %"class.DynexCN::BlockchainIndicesSerializer", align 8
  %15 = alloca %"struct.Crypto::Hash", align 8
  %16 = alloca %"class.std::__cxx11::basic_string", align 8
  %17 = alloca %"class.Logging::LoggerMessage", align 8
  %18 = alloca %"class.Logging::LoggerMessage", align 8
  %19 = alloca %"struct.DynexCN::block_verification_context", align 1
  %20 = alloca %"class.boost::value_initialized.232", align 1
  %21 = alloca %"class.Logging::LoggerMessage", align 8
  %22 = alloca %"struct.Crypto::Hash", align 1
  %23 = alloca %"class.Logging::LoggerMessage", align 8
  %24 = alloca i32, align 4
  %25 = alloca %"class.Logging::LoggerMessage", align 8
  %26 = alloca %"class.Logging::LoggerMessage", align 8
  %27 = alloca i32, align 4
  %28 = alloca %"class.Logging::LoggerMessage", align 8
  %29 = alloca i32, align 4
  %30 = alloca i32, align 4
  %31 = alloca i32, align 4
  %32 = alloca i32, align 4
  %33 = alloca %"class.Logging::LoggerMessage", align 8
  %34 = alloca i32, align 4
  %35 = alloca i32, align 4
  %36 = alloca i32, align 4
  %37 = alloca i32, align 4
  %38 = alloca %"class.Logging::LoggerMessage", align 8
  %39 = alloca i32, align 4
  %40 = alloca i32, align 4
  %41 = alloca i32, align 4
  %42 = alloca %"class.Logging::LoggerMessage", align 8
  %43 = alloca %"class.Logging::LoggerMessage", align 8
  %44 = alloca i64, align 8
  %45 = alloca %"class.std::__cxx11::basic_string", align 8
  %46 = alloca i64, align 8
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %4) #9
  %47 = getelementptr inbounds i8, ptr %0, i64 96
  call void @_ZNSt10lock_guardISt15recursive_mutexEC2ERS0_(ptr noundef nonnull align 8 dereferenceable(8) %4, ptr noundef nonnull align 8 dereferenceable(40) %47)
  %48 = call noundef zeroext i1 @_ZNKSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE5emptyEv(ptr noundef nonnull align 8 dereferenceable(32) %1) #9
  br i1 %48, label %67, label %49

49:                                               ; preds = %3
  %50 = invoke noundef zeroext i1 @_ZN5Tools31create_directories_if_necessaryERKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEE(ptr noundef nonnull align 8 dereferenceable(32) %1)
          to label %51 unwind label %60

51:                                               ; preds = %49
  br i1 %50, label %67, label %52

52:                                               ; preds = %51
  call void @llvm.lifetime.start.p0(i64 432, ptr nonnull %5) #9
  %53 = 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 %5, ptr noundef nonnull align 8 dereferenceable(40) %53, i32 noundef 1, ptr noundef nonnull align 8 dereferenceable(32) @_ZN7Logging10BRIGHT_REDB5cxx11E)
          to label %54 unwind label %62

54:                                               ; preds = %52
  %55 = invoke noundef nonnull align 8 dereferenceable(161) ptr @_ZStlsIN7Logging13LoggerMessageEA34_cEOT_S4_RKT0_(ptr noundef nonnull align 8 dereferenceable(161) %5, ptr noundef nonnull align 1 dereferenceable(34) @.str.12)
          to label %56 unwind label %64

56:                                               ; preds = %54
  %57 = getelementptr inbounds i8, ptr %0, i64 448
  %58 = invoke noundef nonnull align 8 dereferenceable(161) ptr @_ZStlsIN7Logging13LoggerMessageENSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEEOT_S9_RKT0_(ptr noundef nonnull align 8 dereferenceable(161) %55, ptr noundef nonnull align 8 dereferenceable(32) %57)
          to label %59 unwind label %64

59:                                               ; preds = %56
  call void @_ZN7Logging13LoggerMessageD1Ev(ptr noundef nonnull align 8 dereferenceable(161) %5) #9
  call void @llvm.lifetime.end.p0(i64 432, ptr nonnull %5) #9
  br label %505

60:                                               ; preds = %176, %67, %49
  %61 = landingpad { ptr, i32 }
          cleanup
  br label %506

62:                                               ; preds = %52
  %63 = landingpad { ptr, i32 }
          cleanup
  br label %66

64:                                               ; preds = %56, %54
  %65 = landingpad { ptr, i32 }
          cleanup
  call void @_ZN7Logging13LoggerMessageD1Ev(ptr noundef nonnull align 8 dereferenceable(161) %5) #9
  br label %66

66:                                               ; preds = %64, %62
  %.pn = phi { ptr, i32 } [ %65, %64 ], [ %63, %62 ]
  call void @llvm.lifetime.end.p0(i64 432, ptr nonnull %5) #9
  br label %506

67:                                               ; preds = %51, %3
  %68 = getelementptr inbounds i8, ptr %0, i64 448
  %69 = invoke noundef nonnull align 8 dereferenceable(32) ptr @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEaSERKS4_(ptr noundef nonnull align 8 dereferenceable(32) %68, ptr noundef nonnull align 8 dereferenceable(32) %1)
          to label %70 unwind label %60

70:                                               ; preds = %67
  call void @llvm.lifetime.start.p0(i64 432, ptr nonnull %6) #9
  %71 = 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 %6, ptr noundef nonnull align 8 dereferenceable(40) %71, i32 noundef 3, ptr noundef nonnull align 8 dereferenceable(32) @_ZN7Logging12BRIGHT_WHITEB5cxx11E)
          to label %72 unwind label %85

72:                                               ; preds = %70
  %73 = invoke noundef nonnull align 8 dereferenceable(161) ptr @_ZStlsIN7Logging13LoggerMessageEA22_cEOT_S4_RKT0_(ptr noundef nonnull align 8 dereferenceable(161) %6, ptr noundef nonnull align 1 dereferenceable(22) @.str.13)
          to label %74 unwind label %87

74:                                               ; preds = %72
  call void @_ZN7Logging13LoggerMessageD1Ev(ptr noundef nonnull align 8 dereferenceable(161) %6) #9
  call void @llvm.lifetime.end.p0(i64 432, ptr nonnull %6) #9
  %75 = getelementptr inbounds i8, ptr %0, i64 576
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %7) #9
  %76 = getelementptr inbounds i8, ptr %0, i64 80
  %77 = load ptr, ptr %76, align 8, !tbaa !5
  %78 = call noundef nonnull align 8 dereferenceable(32) ptr @_ZNK7DynexCN8Currency14blocksFileNameB5cxx11Ev(ptr noundef nonnull align 8 dereferenceable(984) %77)
  invoke void @_ZN12_GLOBAL__N_110appendPathERKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEES7_(ptr dead_on_unwind nonnull writable sret(%"class.std::__cxx11::basic_string") align 8 %7, ptr noundef nonnull align 8 dereferenceable(32) %1, ptr noundef nonnull align 8 dereferenceable(32) %78)
          to label %79 unwind label %90

79:                                               ; preds = %74
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %8) #9
  %80 = load ptr, ptr %76, align 8, !tbaa !5
  %81 = call noundef nonnull align 8 dereferenceable(32) ptr @_ZNK7DynexCN8Currency20blockIndexesFileNameB5cxx11Ev(ptr noundef nonnull align 8 dereferenceable(984) %80)
  invoke void @_ZN12_GLOBAL__N_110appendPathERKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEES7_(ptr dead_on_unwind nonnull writable sret(%"class.std::__cxx11::basic_string") align 8 %8, ptr noundef nonnull align 8 dereferenceable(32) %1, ptr noundef nonnull align 8 dereferenceable(32) %81)
          to label %82 unwind label %92

82:                                               ; preds = %79
  %83 = invoke noundef zeroext i1 @_ZN13SwappedVectorIN7DynexCN10Blockchain10BlockEntryEE4openERKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEESB_m(ptr noundef nonnull align 8 dereferenceable(1184) %75, ptr noundef nonnull align 8 dereferenceable(32) %7, ptr noundef nonnull align 8 dereferenceable(32) %8, i64 noundef 1024)
          to label %84 unwind label %94

84:                                               ; preds = %82
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %8) #9
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %8) #9
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %7) #9
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %7) #9
  br i1 %83, label %98, label %505

85:                                               ; preds = %70
  %86 = landingpad { ptr, i32 }
          cleanup
  br label %89

87:                                               ; preds = %72
  %88 = landingpad { ptr, i32 }
          cleanup
  call void @_ZN7Logging13LoggerMessageD1Ev(ptr noundef nonnull align 8 dereferenceable(161) %6) #9
  br label %89

89:                                               ; preds = %87, %85
  %.pn75 = phi { ptr, i32 } [ %88, %87 ], [ %86, %85 ]
  call void @llvm.lifetime.end.p0(i64 432, ptr nonnull %6) #9
  br label %506

90:                                               ; preds = %74
  %91 = landingpad { ptr, i32 }
          cleanup
  br label %97

92:                                               ; preds = %79
  %93 = landingpad { ptr, i32 }
          cleanup
  br label %96

94:                                               ; preds = %82
  %95 = landingpad { ptr, i32 }
          cleanup
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %8) #9
  br label %96

96:                                               ; preds = %94, %92
  %.pn77 = phi { ptr, i32 } [ %95, %94 ], [ %93, %92 ]
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %8) #9
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %7) #9
  br label %97

97:                                               ; preds = %96, %90
  %.pn77.pn = phi { ptr, i32 } [ %.pn77, %96 ], [ %91, %90 ]
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %7) #9
  br label %506

98:                                               ; preds = %84
  br i1 %2, label %99, label %176

99:                                               ; preds = %98
  %100 = call noundef zeroext i1 @_ZNK13SwappedVectorIN7DynexCN10Blockchain10BlockEntryEE5emptyEv(ptr noundef nonnull align 8 dereferenceable(1184) %75)
  br i1 %100, label %176, label %101

101:                                              ; preds = %99
  call void @llvm.lifetime.start.p0(i64 88, ptr nonnull %9) #9
  %102 = invoke noundef nonnull align 8 dereferenceable(440) ptr @_ZN13SwappedVectorIN7DynexCN10Blockchain10BlockEntryEE4backEv(ptr noundef nonnull align 8 dereferenceable(1184) %75)
          to label %103 unwind label %116

103:                                              ; preds = %101
  invoke void @_ZN7DynexCN14get_block_hashERKNS_5BlockE(ptr dead_on_unwind nonnull writable sret(%"struct.Crypto::Hash") align 1 %10, ptr noundef nonnull align 8 dereferenceable(384) %102)
          to label %104 unwind label %116

104:                                              ; preds = %103
  %105 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZNK7Logging9LoggerRef9getLoggerEv(ptr noundef nonnull align 8 dereferenceable(40) %71)
          to label %106 unwind label %116

106:                                              ; preds = %104
  invoke void @_ZN7DynexCN20BlockCacheSerializerC2ERNS_10BlockchainEN6Crypto4HashERN7Logging7ILoggerE(ptr noundef nonnull align 8 dereferenceable(88) %9, ptr noundef nonnull align 8 dereferenceable(2636) %0, ptr noundef nonnull byval(%"struct.Crypto::Hash") align 8 %10, ptr noundef nonnull align 8 dereferenceable(8) %105)
          to label %107 unwind label %116

107:                                              ; preds = %106
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %11) #9
  %108 = load ptr, ptr %76, align 8, !tbaa !5
  %109 = call noundef nonnull align 8 dereferenceable(32) ptr @_ZNK7DynexCN8Currency19blocksCacheFileNameB5cxx11Ev(ptr noundef nonnull align 8 dereferenceable(984) %108)
  invoke void @_ZN12_GLOBAL__N_110appendPathERKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEES7_(ptr dead_on_unwind nonnull writable sret(%"class.std::__cxx11::basic_string") align 8 %11, ptr noundef nonnull align 8 dereferenceable(32) %1, ptr noundef nonnull align 8 dereferenceable(32) %109)
          to label %110 unwind label %118

110:                                              ; preds = %107
  invoke void @_ZN7DynexCN20BlockCacheSerializer4loadERKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEE(ptr noundef nonnull align 8 dereferenceable(88) %9, ptr noundef nonnull align 8 dereferenceable(32) %11)
          to label %111 unwind label %120

111:                                              ; preds = %110
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %11) #9
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %11) #9
  %112 = call noundef zeroext i1 @_ZNK7DynexCN20BlockCacheSerializer6loadedEv(ptr noundef nonnull align 8 dereferenceable(88) %9)
  br i1 %112, label %130, label %113

113:                                              ; preds = %111
  call void @llvm.lifetime.start.p0(i64 432, ptr nonnull %12) #9
  invoke void @_ZNK7Logging9LoggerRefclENS_5LevelERKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEE(ptr dead_on_unwind nonnull writable sret(%"class.Logging::LoggerMessage") align 8 %12, ptr noundef nonnull align 8 dereferenceable(40) %71, i32 noundef 2, ptr noundef nonnull align 8 dereferenceable(32) @_ZN7Logging13BRIGHT_YELLOWB5cxx11E)
          to label %114 unwind label %125

114:                                              ; preds = %113
  %115 = invoke noundef nonnull align 8 dereferenceable(161) ptr @_ZStlsIN7Logging13LoggerMessageEA68_cEOT_S4_RKT0_(ptr noundef nonnull align 8 dereferenceable(161) %12, ptr noundef nonnull align 1 dereferenceable(68) @.str.14)
          to label %.thread146 unwind label %127

.thread146:                                       ; preds = %114
  call void @_ZN7Logging13LoggerMessageD1Ev(ptr noundef nonnull align 8 dereferenceable(161) %12) #9
  call void @llvm.lifetime.end.p0(i64 432, ptr nonnull %12) #9
  br label %173

116:                                              ; preds = %106, %104, %103, %101
  %117 = landingpad { ptr, i32 }
          cleanup
  br label %175

118:                                              ; preds = %107
  %119 = landingpad { ptr, i32 }
          cleanup
  br label %122

120:                                              ; preds = %110
  %121 = landingpad { ptr, i32 }
          cleanup
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %11) #9
  br label %122

122:                                              ; preds = %120, %118
  %.pn80 = phi { ptr, i32 } [ %121, %120 ], [ %119, %118 ]
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %11) #9
  br label %174

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

125:                                              ; preds = %113
  %126 = landingpad { ptr, i32 }
          cleanup
  br label %129

127:                                              ; preds = %114
  %128 = landingpad { ptr, i32 }
          cleanup
  call void @_ZN7Logging13LoggerMessageD1Ev(ptr noundef nonnull align 8 dereferenceable(161) %12) #9
  br label %129

129:                                              ; preds = %127, %125
  %.pn82 = phi { ptr, i32 } [ %128, %127 ], [ %126, %125 ]
  call void @llvm.lifetime.end.p0(i64 432, ptr nonnull %12) #9
  br label %174

130:                                              ; preds = %111
  %131 = getelementptr inbounds i8, ptr %0, i64 2568
  %132 = load i8, ptr %131, align 8, !tbaa !149, !range !150, !noundef !151
  %133 = trunc nuw i8 %132 to i1
  br i1 %133, label %134, label %.thread148

134:                                              ; preds = %130
  call void @llvm.lifetime.start.p0(i64 432, ptr nonnull %13) #9
  invoke void @_ZNK7Logging9LoggerRefclENS_5LevelERKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEE(ptr dead_on_unwind nonnull writable sret(%"class.Logging::LoggerMessage") align 8 %13, ptr noundef nonnull align 8 dereferenceable(40) %71, i32 noundef 3, ptr noundef nonnull align 8 dereferenceable(32) @_ZN7Logging12BRIGHT_WHITEB5cxx11E)
          to label %135 unwind label %153

135:                                              ; preds = %134
  %136 = invoke noundef nonnull align 8 dereferenceable(161) ptr @_ZStlsIN7Logging13LoggerMessageEA53_cEOT_S4_RKT0_(ptr noundef nonnull align 8 dereferenceable(161) %13, ptr noundef nonnull align 1 dereferenceable(53) @.str.15)
          to label %137 unwind label %155

137:                                              ; preds = %135
  call void @_ZN7Logging13LoggerMessageD1Ev(ptr noundef nonnull align 8 dereferenceable(161) %13) #9
  call void @llvm.lifetime.end.p0(i64 432, ptr nonnull %13) #9
  call void @llvm.lifetime.start.p0(i64 88, ptr nonnull %14) #9
  %138 = invoke noundef nonnull align 8 dereferenceable(440) ptr @_ZN13SwappedVectorIN7DynexCN10Blockchain10BlockEntryEE4backEv(ptr noundef nonnull align 8 dereferenceable(1184) %75)
          to label %139 unwind label %158

139:                                              ; preds = %137
  invoke void @_ZN7DynexCN14get_block_hashERKNS_5BlockE(ptr dead_on_unwind nonnull writable sret(%"struct.Crypto::Hash") align 1 %15, ptr noundef nonnull align 8 dereferenceable(384) %138)
          to label %140 unwind label %158

140:                                              ; preds = %139
  %141 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZNK7Logging9LoggerRef9getLoggerEv(ptr noundef nonnull align 8 dereferenceable(40) %71)
          to label %142 unwind label %158

142:                                              ; preds = %140
  invoke void @_ZN7DynexCN27BlockchainIndicesSerializerC2ERNS_10BlockchainEN6Crypto4HashERN7Logging7ILoggerE(ptr noundef nonnull align 8 dereferenceable(88) %14, ptr noundef nonnull align 8 dereferenceable(2636) %0, ptr noundef nonnull byval(%"struct.Crypto::Hash") align 8 %15, ptr noundef nonnull align 8 dereferenceable(8) %141)
          to label %143 unwind label %158

143:                                              ; preds = %142
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %16) #9
  %144 = load ptr, ptr %76, align 8, !tbaa !5
  %145 = call noundef nonnull align 8 dereferenceable(32) ptr @_ZNK7DynexCN8Currency25blockchainIndicesFileNameB5cxx11Ev(ptr noundef nonnull align 8 dereferenceable(984) %144)
  invoke void @_ZN12_GLOBAL__N_110appendPathERKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEES7_(ptr dead_on_unwind nonnull writable sret(%"class.std::__cxx11::basic_string") align 8 %16, ptr noundef nonnull align 8 dereferenceable(32) %68, ptr noundef nonnull align 8 dereferenceable(32) %145)
          to label %146 unwind label %160

146:                                              ; preds = %143
  %147 = invoke noundef zeroext i1 @_ZN7DynexCN18loadFromBinaryFileINS_27BlockchainIndicesSerializerEEEbRT_RKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEE(ptr noundef nonnull align 8 dereferenceable(88) %14, ptr noundef nonnull align 8 dereferenceable(32) %16)
          to label %148 unwind label %162

148:                                              ; preds = %146
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %16) #9
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %16) #9
  %149 = call noundef zeroext i1 @_ZNK7DynexCN27BlockchainIndicesSerializer6loadedEv(ptr noundef nonnull align 8 dereferenceable(88) %14)
  br i1 %149, label %172, label %150

150:                                              ; preds = %148
  call void @llvm.lifetime.start.p0(i64 432, ptr nonnull %17) #9
  invoke void @_ZNK7Logging9LoggerRefclENS_5LevelERKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEE(ptr dead_on_unwind nonnull writable sret(%"class.Logging::LoggerMessage") align 8 %17, ptr noundef nonnull align 8 dereferenceable(40) %71, i32 noundef 2, ptr noundef nonnull align 8 dereferenceable(32) @_ZN7Logging13BRIGHT_YELLOWB5cxx11E)
          to label %151 unwind label %165

151:                                              ; preds = %150
  %152 = invoke noundef nonnull align 8 dereferenceable(161) ptr @_ZStlsIN7Logging13LoggerMessageEA73_cEOT_S4_RKT0_(ptr noundef nonnull align 8 dereferenceable(161) %17, ptr noundef nonnull align 1 dereferenceable(73) @.str.16)
          to label %.thread150 unwind label %167

.thread150:                                       ; preds = %151
  call void @_ZN7Logging13LoggerMessageD1Ev(ptr noundef nonnull align 8 dereferenceable(161) %17) #9
  call void @llvm.lifetime.end.p0(i64 432, ptr nonnull %17) #9
  call void @_ZN7DynexCN27BlockchainIndicesSerializerD2Ev(ptr noundef nonnull align 8 dereferenceable(88) %14) #9
  call void @llvm.lifetime.end.p0(i64 88, ptr nonnull %14) #9
  br label %173

153:                                              ; preds = %134
  %154 = landingpad { ptr, i32 }
          cleanup
  br label %157

155:                                              ; preds = %135
  %156 = landingpad { ptr, i32 }
          cleanup
  call void @_ZN7Logging13LoggerMessageD1Ev(ptr noundef nonnull align 8 dereferenceable(161) %13) #9
  br label %157

157:                                              ; preds = %155, %153
  %.pn84 = phi { ptr, i32 } [ %156, %155 ], [ %154, %153 ]
  call void @llvm.lifetime.end.p0(i64 432, ptr nonnull %13) #9
  br label %174

158:                                              ; preds = %142, %140, %139, %137
  %159 = landingpad { ptr, i32 }
          cleanup
  br label %171

160:                                              ; preds = %143
  %161 = landingpad { ptr, i32 }
          cleanup
  br label %164

162:                                              ; preds = %146
  %163 = landingpad { ptr, i32 }
          cleanup
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %16) #9
  br label %164

164:                                              ; preds = %162, %160
  %.pn86 = phi { ptr, i32 } [ %163, %162 ], [ %161, %160 ]
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %16) #9
  br label %170

165:                                              ; preds = %150
  %166 = landingpad { ptr, i32 }
          cleanup
  br label %169

167:                                              ; preds = %151
  %168 = landingpad { ptr, i32 }
          cleanup
  call void @_ZN7Logging13LoggerMessageD1Ev(ptr noundef nonnull align 8 dereferenceable(161) %17) #9
  br label %169

169:                                              ; preds = %167, %165
  %.pn88 = phi { ptr, i32 } [ %168, %167 ], [ %166, %165 ]
  call void @llvm.lifetime.end.p0(i64 432, ptr nonnull %17) #9
  br label %170

170:                                              ; preds = %169, %164
  %.pn88.pn = phi { ptr, i32 } [ %.pn88, %169 ], [ %.pn86, %164 ]
  call void @_ZN7DynexCN27BlockchainIndicesSerializerD2Ev(ptr noundef nonnull align 8 dereferenceable(88) %14) #9
  br label %171

171:                                              ; preds = %170, %158
  %.pn88.pn.pn = phi { ptr, i32 } [ %.pn88.pn, %170 ], [ %159, %158 ]
  call void @llvm.lifetime.end.p0(i64 88, ptr nonnull %14) #9
  br label %174

172:                                              ; preds = %148
  call void @_ZN7DynexCN27BlockchainIndicesSerializerD2Ev(ptr noundef nonnull align 8 dereferenceable(88) %14) #9
  call void @llvm.lifetime.end.p0(i64 88, ptr nonnull %14) #9
  br label %.thread148

173:                                              ; preds = %.thread150, %.thread146
  invoke void @_ZN7DynexCN10Blockchain12rebuildCacheEv(ptr noundef nonnull align 8 dereferenceable(2636) %0)
          to label %.thread148 unwind label %123

.thread148:                                       ; preds = %130, %172, %173
  call void @_ZN7DynexCN20BlockCacheSerializerD2Ev(ptr noundef nonnull align 8 dereferenceable(88) %9) #9
  call void @llvm.lifetime.end.p0(i64 88, ptr nonnull %9) #9
  br label %177

174:                                              ; preds = %171, %157, %129, %123, %122
  %.pn92 = phi { ptr, i32 } [ %124, %123 ], [ %.pn88.pn.pn, %171 ], [ %.pn84, %157 ], [ %.pn82, %129 ], [ %.pn80, %122 ]
  call void @_ZN7DynexCN20BlockCacheSerializerD2Ev(ptr noundef nonnull align 8 dereferenceable(88) %9) #9
  br label %175

175:                                              ; preds = %174, %116
  %.pn92.pn = phi { ptr, i32 } [ %.pn92, %174 ], [ %117, %116 ]
  call void @llvm.lifetime.end.p0(i64 88, ptr nonnull %9) #9
  br label %506

176:                                              ; preds = %99, %98
  invoke void @_ZN13SwappedVectorIN7DynexCN10Blockchain10BlockEntryEE5clearEv(ptr noundef nonnull align 8 dereferenceable(1184) %75)
          to label %177 unwind label %60

177:                                              ; preds = %176, %.thread148
  %178 = call noundef zeroext i1 @_ZNK13SwappedVectorIN7DynexCN10Blockchain10BlockEntryEE5emptyEv(ptr noundef nonnull align 8 dereferenceable(1184) %75)
  br i1 %178, label %179, label %212

179:                                              ; preds = %177
  call void @llvm.lifetime.start.p0(i64 432, ptr nonnull %18) #9
  invoke void @_ZNK7Logging9LoggerRefclENS_5LevelERKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEE(ptr dead_on_unwind nonnull writable sret(%"class.Logging::LoggerMessage") align 8 %18, ptr noundef nonnull align 8 dereferenceable(40) %71, i32 noundef 3, ptr noundef nonnull align 8 dereferenceable(32) @_ZN7Logging12BRIGHT_WHITEB5cxx11E)
          to label %180 unwind label %197

180:                                              ; preds = %179
  %181 = invoke noundef nonnull align 8 dereferenceable(161) ptr @_ZStlsIN7Logging13LoggerMessageEA49_cEOT_S4_RKT0_(ptr noundef nonnull align 8 dereferenceable(161) %18, ptr noundef nonnull align 1 dereferenceable(49) @.str.17)
          to label %182 unwind label %199

182:                                              ; preds = %180
  call void @_ZN7Logging13LoggerMessageD1Ev(ptr noundef nonnull align 8 dereferenceable(161) %18) #9
  call void @llvm.lifetime.end.p0(i64 432, ptr nonnull %18) #9
  call void @llvm.lifetime.start.p0(i64 5, ptr nonnull %19) #9
  call void @llvm.lifetime.start.p0(i64 5, ptr nonnull %20) #9
  invoke void @_ZN5boost17value_initializedIN7DynexCN26block_verification_contextEEC2Ev(ptr noundef nonnull align 1 dereferenceable(5) %20)
          to label %183 unwind label %202

183:                                              ; preds = %182
  %184 = invoke noundef nonnull align 1 dereferenceable(5) ptr @_ZN5boost17value_initializedIN7DynexCN26block_verification_contextEEcvRS2_Ev(ptr noundef nonnull align 1 dereferenceable(5) %20)
          to label %185 unwind label %202

185:                                              ; preds = %183
  call void @llvm.memcpy.p0.p0.i64(ptr noundef nonnull align 1 dereferenceable(5) %19, ptr noundef nonnull align 1 dereferenceable(5) %184, i64 5, i1 false), !tbaa.struct !152
  call void @llvm.lifetime.end.p0(i64 5, ptr nonnull %20) #9
  %186 = load ptr, ptr %76, align 8, !tbaa !5
  %187 = call noundef nonnull align 8 dereferenceable(384) ptr @_ZNK7DynexCN8Currency12genesisBlockEv(ptr noundef nonnull align 8 dereferenceable(984) %186)
  %188 = invoke noundef zeroext i1 @_ZN7DynexCN10Blockchain9pushBlockERKNS_5BlockERNS_26block_verification_contextE(ptr noundef nonnull align 8 dereferenceable(2636) %0, ptr noundef nonnull align 8 dereferenceable(384) %187, ptr noundef nonnull align 1 dereferenceable(5) %19)
          to label %189 unwind label %204

189:                                              ; preds = %185
  %190 = getelementptr inbounds i8, ptr %19, i64 1
  %191 = load i8, ptr %190, align 1, !tbaa !154, !range !150, !noundef !151
  %192 = trunc nuw i8 %191 to i1
  br i1 %192, label %193, label %.critedge

193:                                              ; preds = %189
  call void @llvm.lifetime.start.p0(i64 432, ptr nonnull %21) #9
  invoke void @_ZNK7Logging9LoggerRefclENS_5LevelERKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEE(ptr dead_on_unwind nonnull writable sret(%"class.Logging::LoggerMessage") align 8 %21, ptr noundef nonnull align 8 dereferenceable(40) %71, i32 noundef 1, ptr noundef nonnull align 8 dereferenceable(32) @_ZN7Logging10BRIGHT_REDB5cxx11E)
          to label %194 unwind label %206

194:                                              ; preds = %193
  %195 = invoke noundef nonnull align 8 dereferenceable(161) ptr @_ZStlsIN7Logging13LoggerMessageEA42_cEOT_S4_RKT0_(ptr noundef nonnull align 8 dereferenceable(161) %21, ptr noundef nonnull align 1 dereferenceable(42) @.str.18)
          to label %196 unwind label %208

196:                                              ; preds = %194
  call void @_ZN7Logging13LoggerMessageD1Ev(ptr noundef nonnull align 8 dereferenceable(161) %21) #9
  call void @llvm.lifetime.end.p0(i64 432, ptr nonnull %21) #9
  call void @llvm.lifetime.end.p0(i64 5, ptr nonnull %19) #9
  br label %505

197:                                              ; preds = %179
  %198 = landingpad { ptr, i32 }
          cleanup
  br label %201

199:                                              ; preds = %180
  %200 = landingpad { ptr, i32 }
          cleanup
  call void @_ZN7Logging13LoggerMessageD1Ev(ptr noundef nonnull align 8 dereferenceable(161) %18) #9
  br label %201

201:                                              ; preds = %199, %197
  %.pn98 = phi { ptr, i32 } [ %200, %199 ], [ %198, %197 ]
  call void @llvm.lifetime.end.p0(i64 432, ptr nonnull %18) #9
  br label %506

202:                                              ; preds = %183, %182
  %203 = landingpad { ptr, i32 }
          cleanup
  call void @llvm.lifetime.end.p0(i64 5, ptr nonnull %20) #9
  br label %211

204:                                              ; preds = %185
  %205 = landingpad { ptr, i32 }
          cleanup
  br label %211

206:                                              ; preds = %193
  %207 = landingpad { ptr, i32 }
          cleanup
  br label %210

208:                                              ; preds = %194
  %209 = landingpad { ptr, i32 }
          cleanup
  call void @_ZN7Logging13LoggerMessageD1Ev(ptr noundef nonnull align 8 dereferenceable(161) %21) #9
  br label %210

210:                                              ; preds = %208, %206
  %.pn100 = phi { ptr, i32 } [ %209, %208 ], [ %207, %206 ]
  call void @llvm.lifetime.end.p0(i64 432, ptr nonnull %21) #9
  br label %211

211:                                              ; preds = %210, %204, %202
  %.pn100.pn = phi { ptr, i32 } [ %.pn100, %210 ], [ %205, %204 ], [ %203, %202 ]
  call void @llvm.lifetime.end.p0(i64 5, ptr nonnull %19) #9
  br label %506

212:                                              ; preds = %177
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %22) #9
  %213 = invoke noundef nonnull align 8 dereferenceable(440) ptr @_ZN13SwappedVectorIN7DynexCN10Blockchain10BlockEntryEEixEm(ptr noundef nonnull align 8 dereferenceable(1184) %75, i64 noundef 0)
          to label %214 unwind label %223

214:                                              ; preds = %212
  invoke void @_ZN7DynexCN14get_block_hashERKNS_5BlockE(ptr dead_on_unwind nonnull writable sret(%"struct.Crypto::Hash") align 1 %22, ptr noundef nonnull align 8 dereferenceable(384) %213)
          to label %215 unwind label %223

215:                                              ; preds = %214
  %216 = load ptr, ptr %76, align 8, !tbaa !5
  %217 = call noundef nonnull align 1 dereferenceable(32) ptr @_ZNK7DynexCN8Currency16genesisBlockHashEv(ptr noundef nonnull align 8 dereferenceable(984) %216)
  %218 = call noundef zeroext i1 @_ZN6CryptoeqERKNS_4HashES2_(ptr noundef nonnull align 1 dereferenceable(32) %22, ptr noundef nonnull align 1 dereferenceable(32) %217)
  br i1 %218, label %.critedge142, label %219

219:                                              ; preds = %215
  call void @llvm.lifetime.start.p0(i64 432, ptr nonnull %23) #9
  invoke void @_ZNK7Logging9LoggerRefclENS_5LevelERKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEE(ptr dead_on_unwind nonnull writable sret(%"class.Logging::LoggerMessage") align 8 %23, ptr noundef nonnull align 8 dereferenceable(40) %71, i32 noundef 1, ptr noundef nonnull align 8 dereferenceable(32) @_ZN7Logging10BRIGHT_REDB5cxx11E)
          to label %220 unwind label %225

220:                                              ; preds = %219
  %221 = invoke noundef nonnull align 8 dereferenceable(161) ptr @_ZStlsIN7Logging13LoggerMessageEA131_cEOT_S4_RKT0_(ptr noundef nonnull align 8 dereferenceable(161) %23, ptr noundef nonnull align 1 dereferenceable(131) @.str.19)
          to label %222 unwind label %227

222:                                              ; preds = %220
  call void @_ZN7Logging13LoggerMessageD1Ev(ptr noundef nonnull align 8 dereferenceable(161) %23) #9
  call void @llvm.lifetime.end.p0(i64 432, ptr nonnull %23) #9
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %22) #9
  br label %505

223:                                              ; preds = %214, %212
  %224 = landingpad { ptr, i32 }
          cleanup
  br label %230

225:                                              ; preds = %219
  %226 = landingpad { ptr, i32 }
          cleanup
  br label %229

227:                                              ; preds = %220
  %228 = landingpad { ptr, i32 }
          cleanup
  call void @_ZN7Logging13LoggerMessageD1Ev(ptr noundef nonnull align 8 dereferenceable(161) %23) #9
  br label %229

229:                                              ; preds = %227, %225
  %.pn95 = phi { ptr, i32 } [ %228, %227 ], [ %226, %225 ]
  call void @llvm.lifetime.end.p0(i64 432, ptr nonnull %23) #9
  br label %230

230:                                              ; preds = %229, %223
  %.pn95.pn = phi { ptr, i32 } [ %.pn95, %229 ], [ %224, %223 ]
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %22) #9
  br label %506

.critedge:                                        ; preds = %189
  call void @llvm.lifetime.end.p0(i64 5, ptr nonnull %19) #9
  br label %231

.critedge142:                                     ; preds = %215
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %22) #9
  br label %231

231:                                              ; preds = %.critedge142, %.critedge
  call void @llvm.lifetime.start.p0(i64 4, ptr nonnull %24) #9
  store i32 0, ptr %24, align 4, !tbaa !156
  %232 = invoke noundef zeroext i1 @_ZN7DynexCN10Blockchain16checkCheckpointsERj(ptr noundef nonnull align 8 dereferenceable(2636) %0, ptr noundef nonnull align 4 dereferenceable(4) %24)
          to label %233 unwind label %241

233:                                              ; preds = %231
  br i1 %232, label %248, label %234

234:                                              ; preds = %233
  call void @llvm.lifetime.start.p0(i64 432, ptr nonnull %25) #9
  invoke void @_ZNK7Logging9LoggerRefclENS_5LevelERKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEE(ptr dead_on_unwind nonnull writable sret(%"class.Logging::LoggerMessage") align 8 %25, ptr noundef nonnull align 8 dereferenceable(40) %71, i32 noundef 2, ptr noundef nonnull align 8 dereferenceable(32) @_ZN7Logging13BRIGHT_YELLOWB5cxx11E)
          to label %235 unwind label %243

235:                                              ; preds = %234
  %236 = invoke noundef nonnull align 8 dereferenceable(161) ptr @_ZStlsIN7Logging13LoggerMessageEA57_cEOT_S4_RKT0_(ptr noundef nonnull align 8 dereferenceable(161) %25, ptr noundef nonnull align 1 dereferenceable(57) @.str.20)
          to label %237 unwind label %245

237:                                              ; preds = %235
  %238 = invoke noundef nonnull align 8 dereferenceable(161) ptr @_ZStlsIN7Logging13LoggerMessageEjEOT_S3_RKT0_(ptr noundef nonnull align 8 dereferenceable(161) %236, ptr noundef nonnull align 4 dereferenceable(4) %24)
          to label %239 unwind label %245

239:                                              ; preds = %237
  call void @_ZN7Logging13LoggerMessageD1Ev(ptr noundef nonnull align 8 dereferenceable(161) %25) #9
  call void @llvm.lifetime.end.p0(i64 432, ptr nonnull %25) #9
  %240 = load i32, ptr %24, align 4, !tbaa !156
  invoke void @_ZN7DynexCN10Blockchain20rollbackBlockchainToEj(ptr noundef nonnull align 8 dereferenceable(2636) %0, i32 noundef %240)
          to label %248 unwind label %241

241:                                              ; preds = %256, %252, %248, %239, %231
  %242 = landingpad { ptr, i32 }
          cleanup
  br label %504

243:                                              ; preds = %234
  %244 = landingpad { ptr, i32 }
          cleanup
  br label %247

245:                                              ; preds = %237, %235
  %246 = landingpad { ptr, i32 }
          cleanup
  call void @_ZN7Logging13LoggerMessageD1Ev(ptr noundef nonnull align 8 dereferenceable(161) %25) #9
  br label %247

247:                                              ; preds = %245, %243
  %.pn103 = phi { ptr, i32 } [ %246, %245 ], [ %244, %243 ]
  call void @llvm.lifetime.end.p0(i64 432, ptr nonnull %25) #9
  br label %504

248:                                              ; preds = %239, %233
  %249 = getelementptr inbounds i8, ptr %0, i64 2032
  %250 = invoke noundef zeroext i1 @_ZN7DynexCN20BasicUpgradeDetectorI13SwappedVectorINS_10Blockchain10BlockEntryEEE4initEv(ptr noundef nonnull align 8 dereferenceable(64) %249)
          to label %251 unwind label %241

251:                                              ; preds = %248
  br i1 %250, label %252, label %260

252:                                              ; preds = %251
  %253 = getelementptr inbounds i8, ptr %0, i64 2096
  %254 = invoke noundef zeroext i1 @_ZN7DynexCN20BasicUpgradeDetectorI13SwappedVectorINS_10Blockchain10BlockEntryEEE4initEv(ptr noundef nonnull align 8 dereferenceable(64) %253)
          to label %255 unwind label %241

255:                                              ; preds = %252
  br i1 %254, label %256, label %260

256:                                              ; preds = %255
  %257 = getelementptr inbounds i8, ptr %0, i64 2160
  %258 = invoke noundef zeroext i1 @_ZN7DynexCN20BasicUpgradeDetectorI13SwappedVectorINS_10Blockchain10BlockEntryEEE4initEv(ptr noundef nonnull align 8 dereferenceable(64) %257)
          to label %259 unwind label %241

259:                                              ; preds = %256
  br i1 %258, label %269, label %260

260:                                              ; preds = %259, %255, %251
  call void @llvm.lifetime.start.p0(i64 432, ptr nonnull %26) #9
  invoke void @_ZNK7Logging9LoggerRefclENS_5LevelERKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEE(ptr dead_on_unwind nonnull writable sret(%"class.Logging::LoggerMessage") align 8 %26, ptr noundef nonnull align 8 dereferenceable(40) %71, i32 noundef 1, ptr noundef nonnull align 8 dereferenceable(32) @_ZN7Logging10BRIGHT_REDB5cxx11E)
          to label %261 unwind label %264

261:                                              ; preds = %260
  %262 = invoke noundef nonnull align 8 dereferenceable(161) ptr @_ZStlsIN7Logging13LoggerMessageEA70_cEOT_S4_RKT0_(ptr noundef nonnull align 8 dereferenceable(161) %26, ptr noundef nonnull align 1 dereferenceable(70) @.str.21)
          to label %263 unwind label %266

263:                                              ; preds = %261
  call void @_ZN7Logging13LoggerMessageD1Ev(ptr noundef nonnull align 8 dereferenceable(161) %26) #9
  call void @llvm.lifetime.end.p0(i64 432, ptr nonnull %26) #9
  br label %503

264:                                              ; preds = %260
  %265 = landingpad { ptr, i32 }
          cleanup
  br label %268

266:                                              ; preds = %261
  %267 = landingpad { ptr, i32 }
          cleanup
  call void @_ZN7Logging13LoggerMessageD1Ev(ptr noundef nonnull align 8 dereferenceable(161) %26) #9
  br label %268

268:                                              ; preds = %266, %264
  %.pn105 = phi { ptr, i32 } [ %267, %266 ], [ %265, %264 ]
  call void @llvm.lifetime.end.p0(i64 432, ptr nonnull %26) #9
  br label %504

269:                                              ; preds = %259
  %270 = invoke noundef zeroext i1 @_ZN7DynexCN10Blockchain18checkUpgradeHeightERKNS_20BasicUpgradeDetectorI13SwappedVectorINS0_10BlockEntryEEEE(ptr noundef nonnull align 8 dereferenceable(2636) %0, ptr noundef nonnull align 8 dereferenceable(64) %249)
          to label %271 unwind label %276

271:                                              ; preds = %269
  br i1 %270, label %326, label %272

272:                                              ; preds = %271
  call void @llvm.lifetime.start.p0(i64 4, ptr nonnull %27) #9
  %273 = invoke noundef i32 @_ZNK7DynexCN20BasicUpgradeDetectorI13SwappedVectorINS_10Blockchain10BlockEntryEEE13upgradeHeightEv(ptr noundef nonnull align 8 dereferenceable(64) %249)
          to label %274 unwind label %278

274:                                              ; preds = %272
  store i32 %273, ptr %27, align 4, !tbaa !156
  %.not = icmp eq i32 %273, -1
  br i1 %.not, label %275, label %280

275:                                              ; preds = %274
  call void @__assert_fail(ptr noundef nonnull @.str.22, ptr noundef nonnull @.str.23, i32 noundef 562, ptr noundef nonnull @__PRETTY_FUNCTION__._ZN7DynexCN10Blockchain4initERKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEb) #10
  unreachable

276:                                              ; preds = %.critedge144, %438, %435, %432, %379, %326, %269
  %277 = landingpad { ptr, i32 }
          cleanup
  br label %504

278:                                              ; preds = %308, %272
  %279 = landingpad { ptr, i32 }
          cleanup
  br label %325

280:                                              ; preds = %274
  call void @llvm.lifetime.start.p0(i64 432, ptr nonnull %28) #9
  invoke void @_ZNK7Logging9LoggerRefclENS_5LevelERKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEE(ptr dead_on_unwind nonnull writable sret(%"class.Logging::LoggerMessage") align 8 %28, ptr noundef nonnull align 8 dereferenceable(40) %71, i32 noundef 2, ptr noundef nonnull align 8 dereferenceable(32) @_ZN7Logging13BRIGHT_YELLOWB5cxx11E)
          to label %281 unwind label %311

281:                                              ; preds = %280
  %282 = invoke noundef nonnull align 8 dereferenceable(161) ptr @_ZStlsIN7Logging13LoggerMessageEA26_cEOT_S4_RKT0_(ptr noundef nonnull align 8 dereferenceable(161) %28, ptr noundef nonnull align 1 dereferenceable(26) @.str.24)
          to label %283 unwind label %313

283:                                              ; preds = %281
  call void @llvm.lifetime.start.p0(i64 4, ptr nonnull %29) #9
  %284 = load i32, ptr %27, align 4, !tbaa !156
  %285 = add i32 %284, 1
  store i32 %285, ptr %29, align 4, !tbaa !156
  %286 = invoke noundef nonnull align 8 dereferenceable(161) ptr @_ZStlsIN7Logging13LoggerMessageEjEOT_S3_RKT0_(ptr noundef nonnull align 8 dereferenceable(161) %282, ptr noundef nonnull align 4 dereferenceable(4) %29)
          to label %287 unwind label %315

287:                                              ; preds = %283
  %288 = invoke noundef nonnull align 8 dereferenceable(161) ptr @_ZStlsIN7Logging13LoggerMessageEA8_cEOT_S4_RKT0_(ptr noundef nonnull align 8 dereferenceable(161) %286, ptr noundef nonnull align 1 dereferenceable(8) @.str.25)
          to label %289 unwind label %315

289:                                              ; preds = %287
  call void @llvm.lifetime.start.p0(i64 4, ptr nonnull %30) #9
  %290 = load i32, ptr %27, align 4, !tbaa !156
  %291 = add i32 %290, 1
  %292 = zext i32 %291 to i64
  %293 = invoke noundef nonnull align 8 dereferenceable(440) ptr @_ZN13SwappedVectorIN7DynexCN10Blockchain10BlockEntryEEixEm(ptr noundef nonnull align 8 dereferenceable(1184) %75, i64 noundef %292)
          to label %294 unwind label %317

294:                                              ; preds = %289
  %295 = load i8, ptr %293, align 8, !tbaa !157
  %296 = zext i8 %295 to i32
  store i32 %296, ptr %30, align 4, !tbaa !156
  %297 = invoke noundef nonnull align 8 dereferenceable(161) ptr @_ZStlsIN7Logging13LoggerMessageEiEOT_S3_RKT0_(ptr noundef nonnull align 8 dereferenceable(161) %288, ptr noundef nonnull align 4 dereferenceable(4) %30)
          to label %298 unwind label %317

298:                                              ; preds = %294
  %299 = invoke noundef nonnull align 8 dereferenceable(161) ptr @_ZStlsIN7Logging13LoggerMessageEA11_cEOT_S4_RKT0_(ptr noundef nonnull align 8 dereferenceable(161) %297, ptr noundef nonnull align 1 dereferenceable(11) @.str.26)
          to label %300 unwind label %317

300:                                              ; preds = %298
  call void @llvm.lifetime.start.p0(i64 4, ptr nonnull %31) #9
  %301 = call noundef zeroext i8 @_ZNK7DynexCN20BasicUpgradeDetectorI13SwappedVectorINS_10Blockchain10BlockEntryEEE13targetVersionEv(ptr noundef nonnull align 8 dereferenceable(64) %249)
  %302 = zext i8 %301 to i32
  store i32 %302, ptr %31, align 4, !tbaa !156
  %303 = invoke noundef nonnull align 8 dereferenceable(161) ptr @_ZStlsIN7Logging13LoggerMessageEiEOT_S3_RKT0_(ptr noundef nonnull align 8 dereferenceable(161) %299, ptr noundef nonnull align 4 dereferenceable(4) %31)
          to label %304 unwind label %319

304:                                              ; preds = %300
  %305 = invoke noundef nonnull align 8 dereferenceable(161) ptr @_ZStlsIN7Logging13LoggerMessageEA33_cEOT_S4_RKT0_(ptr noundef nonnull align 8 dereferenceable(161) %303, ptr noundef nonnull align 1 dereferenceable(33) @.str.27)
          to label %306 unwind label %319

306:                                              ; preds = %304
  %307 = invoke noundef nonnull align 8 dereferenceable(161) ptr @_ZStlsIN7Logging13LoggerMessageEjEOT_S3_RKT0_(ptr noundef nonnull align 8 dereferenceable(161) %305, ptr noundef nonnull align 4 dereferenceable(4) %27)
          to label %308 unwind label %319

308:                                              ; preds = %306
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %31) #9
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %30) #9
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %29) #9
  call void @_ZN7Logging13LoggerMessageD1Ev(ptr noundef nonnull align 8 dereferenceable(161) %28) #9
  call void @llvm.lifetime.end.p0(i64 432, ptr nonnull %28) #9
  %309 = load i32, ptr %27, align 4, !tbaa !156
  invoke void @_ZN7DynexCN10Blockchain20rollbackBlockchainToEj(ptr noundef nonnull align 8 dereferenceable(2636) %0, i32 noundef %309)
          to label %310 unwind label %278

310:                                              ; preds = %308
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %27) #9
  br label %432

311:                                              ; preds = %280
  %312 = landingpad { ptr, i32 }
          cleanup
  br label %324

313:                                              ; preds = %281
  %314 = landingpad { ptr, i32 }
          cleanup
  br label %323

315:                                              ; preds = %287, %283
  %316 = landingpad { ptr, i32 }
          cleanup
  br label %322

317:                                              ; preds = %298, %294, %289
  %318 = landingpad { ptr, i32 }
          cleanup
  br label %321

319:                                              ; preds = %306, %304, %300
  %320 = landingpad { ptr, i32 }
          cleanup
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %31) #9
  br label %321

321:                                              ; preds = %319, %317
  %.pn107 = phi { ptr, i32 } [ %320, %319 ], [ %318, %317 ]
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %30) #9
  br label %322

322:                                              ; preds = %321, %315
  %.pn107.pn = phi { ptr, i32 } [ %.pn107, %321 ], [ %316, %315 ]
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %29) #9
  br label %323

323:                                              ; preds = %322, %313
  %.pn107.pn.pn = phi { ptr, i32 } [ %.pn107.pn, %322 ], [ %314, %313 ]
  call void @_ZN7Logging13LoggerMessageD1Ev(ptr noundef nonnull align 8 dereferenceable(161) %28) #9
  br label %324

324:                                              ; preds = %323, %311
  %.pn107.pn.pn.pn = phi { ptr, i32 } [ %.pn107.pn.pn, %323 ], [ %312, %311 ]
  call void @llvm.lifetime.end.p0(i64 432, ptr nonnull %28) #9
  br label %325

325:                                              ; preds = %324, %278
  %.pn112 = phi { ptr, i32 } [ %279, %278 ], [ %.pn107.pn.pn.pn, %324 ]
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %27) #9
  br label %504

326:                                              ; preds = %271
  %327 = invoke noundef zeroext i1 @_ZN7DynexCN10Blockchain18checkUpgradeHeightERKNS_20BasicUpgradeDetectorI13SwappedVectorINS0_10BlockEntryEEEE(ptr noundef nonnull align 8 dereferenceable(2636) %0, ptr noundef nonnull align 8 dereferenceable(64) %253)
          to label %328 unwind label %276

328:                                              ; preds = %326
  br i1 %327, label %379, label %329

329:                                              ; preds = %328
  call void @llvm.lifetime.start.p0(i64 4, ptr nonnull %32) #9
  %330 = invoke noundef i32 @_ZNK7DynexCN20BasicUpgradeDetectorI13SwappedVectorINS_10Blockchain10BlockEntryEEE13upgradeHeightEv(ptr noundef nonnull align 8 dereferenceable(64) %253)
          to label %331 unwind label %362

331:                                              ; preds = %329
  store i32 %330, ptr %32, align 4, !tbaa !156
  call void @llvm.lifetime.start.p0(i64 432, ptr nonnull %33) #9
  invoke void @_ZNK7Logging9LoggerRefclENS_5LevelERKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEE(ptr dead_on_unwind nonnull writable sret(%"class.Logging::LoggerMessage") align 8 %33, ptr noundef nonnull align 8 dereferenceable(40) %71, i32 noundef 2, ptr noundef nonnull align 8 dereferenceable(32) @_ZN7Logging13BRIGHT_YELLOWB5cxx11E)
          to label %332 unwind label %364

332:                                              ; preds = %331
  %333 = invoke noundef nonnull align 8 dereferenceable(161) ptr @_ZStlsIN7Logging13LoggerMessageEA26_cEOT_S4_RKT0_(ptr noundef nonnull align 8 dereferenceable(161) %33, ptr noundef nonnull align 1 dereferenceable(26) @.str.24)
          to label %334 unwind label %366

334:                                              ; preds = %332
  call void @llvm.lifetime.start.p0(i64 4, ptr nonnull %34) #9
  %335 = load i32, ptr %32, align 4, !tbaa !156
  %336 = add i32 %335, 1
  store i32 %336, ptr %34, align 4, !tbaa !156
  %337 = invoke noundef nonnull align 8 dereferenceable(161) ptr @_ZStlsIN7Logging13LoggerMessageEjEOT_S3_RKT0_(ptr noundef nonnull align 8 dereferenceable(161) %333, ptr noundef nonnull align 4 dereferenceable(4) %34)
          to label %338 unwind label %368

338:                                              ; preds = %334
  %339 = invoke noundef nonnull align 8 dereferenceable(161) ptr @_ZStlsIN7Logging13LoggerMessageEA8_cEOT_S4_RKT0_(ptr noundef nonnull align 8 dereferenceable(161) %337, ptr noundef nonnull align 1 dereferenceable(8) @.str.25)
          to label %340 unwind label %368

340:                                              ; preds = %338
  call void @llvm.lifetime.start.p0(i64 4, ptr nonnull %35) #9
  %341 = load i32, ptr %32, align 4, !tbaa !156
  %342 = add i32 %341, 1
  %343 = zext i32 %342 to i64
  %344 = invoke noundef nonnull align 8 dereferenceable(440) ptr @_ZN13SwappedVectorIN7DynexCN10Blockchain10BlockEntryEEixEm(ptr noundef nonnull align 8 dereferenceable(1184) %75, i64 noundef %343)
          to label %345 unwind label %370

345:                                              ; preds = %340
  %346 = load i8, ptr %344, align 8, !tbaa !157
  %347 = zext i8 %346 to i32
  store i32 %347, ptr %35, align 4, !tbaa !156
  %348 = invoke noundef nonnull align 8 dereferenceable(161) ptr @_ZStlsIN7Logging13LoggerMessageEiEOT_S3_RKT0_(ptr noundef nonnull align 8 dereferenceable(161) %339, ptr noundef nonnull align 4 dereferenceable(4) %35)
          to label %349 unwind label %370

349:                                              ; preds = %345
  %350 = invoke noundef nonnull align 8 dereferenceable(161) ptr @_ZStlsIN7Logging13LoggerMessageEA11_cEOT_S4_RKT0_(ptr noundef nonnull align 8 dereferenceable(161) %348, ptr noundef nonnull align 1 dereferenceable(11) @.str.26)
          to label %351 unwind label %370

351:                                              ; preds = %349
  call void @llvm.lifetime.start.p0(i64 4, ptr nonnull %36) #9
  %352 = call noundef zeroext i8 @_ZNK7DynexCN20BasicUpgradeDetectorI13SwappedVectorINS_10Blockchain10BlockEntryEEE13targetVersionEv(ptr noundef nonnull align 8 dereferenceable(64) %253)
  %353 = zext i8 %352 to i32
  store i32 %353, ptr %36, align 4, !tbaa !156
  %354 = invoke noundef nonnull align 8 dereferenceable(161) ptr @_ZStlsIN7Logging13LoggerMessageEiEOT_S3_RKT0_(ptr noundef nonnull align 8 dereferenceable(161) %350, ptr noundef nonnull align 4 dereferenceable(4) %36)
          to label %355 unwind label %372

355:                                              ; preds = %351
  %356 = invoke noundef nonnull align 8 dereferenceable(161) ptr @_ZStlsIN7Logging13LoggerMessageEA33_cEOT_S4_RKT0_(ptr noundef nonnull align 8 dereferenceable(161) %354, ptr noundef nonnull align 1 dereferenceable(33) @.str.27)
          to label %357 unwind label %372

357:                                              ; preds = %355
  %358 = invoke noundef nonnull align 8 dereferenceable(161) ptr @_ZStlsIN7Logging13LoggerMessageEjEOT_S3_RKT0_(ptr noundef nonnull align 8 dereferenceable(161) %356, ptr noundef nonnull align 4 dereferenceable(4) %32)
          to label %359 unwind label %372

359:                                              ; preds = %357
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %36) #9
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %35) #9
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %34) #9
  call void @_ZN7Logging13LoggerMessageD1Ev(ptr noundef nonnull align 8 dereferenceable(161) %33) #9
  call void @llvm.lifetime.end.p0(i64 432, ptr nonnull %33) #9
  %360 = load i32, ptr %32, align 4, !tbaa !156
  invoke void @_ZN7DynexCN10Blockchain20rollbackBlockchainToEj(ptr noundef nonnull align 8 dereferenceable(2636) %0, i32 noundef %360)
          to label %361 unwind label %362

361:                                              ; preds = %359
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %32) #9
  br label %432

362:                                              ; preds = %359, %329
  %363 = landingpad { ptr, i32 }
          cleanup
  br label %378

364:                                              ; preds = %331
  %365 = landingpad { ptr, i32 }
          cleanup
  br label %377

366:                                              ; preds = %332
  %367 = landingpad { ptr, i32 }
          cleanup
  br label %376

368:                                              ; preds = %338, %334
  %369 = landingpad { ptr, i32 }
          cleanup
  br label %375

370:                                              ; preds = %349, %345, %340
  %371 = landingpad { ptr, i32 }
          cleanup
  br label %374

372:                                              ; preds = %357, %355, %351
  %373 = landingpad { ptr, i32 }
          cleanup
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %36) #9
  br label %374

374:                                              ; preds = %372, %370
  %.pn114 = phi { ptr, i32 } [ %373, %372 ], [ %371, %370 ]
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %35) #9
  br label %375

375:                                              ; preds = %374, %368
  %.pn114.pn = phi { ptr, i32 } [ %.pn114, %374 ], [ %369, %368 ]
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %34) #9
  br label %376

376:                                              ; preds = %375, %366
  %.pn114.pn.pn = phi { ptr, i32 } [ %.pn114.pn, %375 ], [ %367, %366 ]
  call void @_ZN7Logging13LoggerMessageD1Ev(ptr noundef nonnull align 8 dereferenceable(161) %33) #9
  br label %377

377:                                              ; preds = %376, %364
  %.pn114.pn.pn.pn = phi { ptr, i32 } [ %.pn114.pn.pn, %376 ], [ %365, %364 ]
  call void @llvm.lifetime.end.p0(i64 432, ptr nonnull %33) #9
  br label %378

378:                                              ; preds = %377, %362
  %.pn119 = phi { ptr, i32 } [ %363, %362 ], [ %.pn114.pn.pn.pn, %377 ]
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %32) #9
  br label %504

379:                                              ; preds = %328
  %380 = invoke noundef zeroext i1 @_ZN7DynexCN10Blockchain18checkUpgradeHeightERKNS_20BasicUpgradeDetectorI13SwappedVectorINS0_10BlockEntryEEEE(ptr noundef nonnull align 8 dereferenceable(2636) %0, ptr noundef nonnull align 8 dereferenceable(64) %257)
          to label %381 unwind label %276

381:                                              ; preds = %379
  br i1 %380, label %.critedge144, label %382

382:                                              ; preds = %381
  call void @llvm.lifetime.start.p0(i64 4, ptr nonnull %37) #9
  %383 = invoke noundef i32 @_ZNK7DynexCN20BasicUpgradeDetectorI13SwappedVectorINS_10Blockchain10BlockEntryEEE13upgradeHeightEv(ptr noundef nonnull align 8 dereferenceable(64) %257)
          to label %384 unwind label %415

384:                                              ; preds = %382
  store i32 %383, ptr %37, align 4, !tbaa !156
  call void @llvm.lifetime.start.p0(i64 432, ptr nonnull %38) #9
  invoke void @_ZNK7Logging9LoggerRefclENS_5LevelERKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEE(ptr dead_on_unwind nonnull writable sret(%"class.Logging::LoggerMessage") align 8 %38, ptr noundef nonnull align 8 dereferenceable(40) %71, i32 noundef 2, ptr noundef nonnull align 8 dereferenceable(32) @_ZN7Logging13BRIGHT_YELLOWB5cxx11E)
          to label %385 unwind label %417

385:                                              ; preds = %384
  %386 = invoke noundef nonnull align 8 dereferenceable(161) ptr @_ZStlsIN7Logging13LoggerMessageEA26_cEOT_S4_RKT0_(ptr noundef nonnull align 8 dereferenceable(161) %38, ptr noundef nonnull align 1 dereferenceable(26) @.str.24)
          to label %387 unwind label %419

387:                                              ; preds = %385
  call void @llvm.lifetime.start.p0(i64 4, ptr nonnull %39) #9
  %388 = load i32, ptr %37, align 4, !tbaa !156
  %389 = add i32 %388, 1
  store i32 %389, ptr %39, align 4, !tbaa !156
  %390 = invoke noundef nonnull align 8 dereferenceable(161) ptr @_ZStlsIN7Logging13LoggerMessageEjEOT_S3_RKT0_(ptr noundef nonnull align 8 dereferenceable(161) %386, ptr noundef nonnull align 4 dereferenceable(4) %39)
          to label %391 unwind label %421

391:                                              ; preds = %387
  %392 = invoke noundef nonnull align 8 dereferenceable(161) ptr @_ZStlsIN7Logging13LoggerMessageEA8_cEOT_S4_RKT0_(ptr noundef nonnull align 8 dereferenceable(161) %390, ptr noundef nonnull align 1 dereferenceable(8) @.str.25)
          to label %393 unwind label %421

393:                                              ; preds = %391
  call void @llvm.lifetime.start.p0(i64 4, ptr nonnull %40) #9
  %394 = load i32, ptr %37, align 4, !tbaa !156
  %395 = add i32 %394, 1
  %396 = zext i32 %395 to i64
  %397 = invoke noundef nonnull align 8 dereferenceable(440) ptr @_ZN13SwappedVectorIN7DynexCN10Blockchain10BlockEntryEEixEm(ptr noundef nonnull align 8 dereferenceable(1184) %75, i64 noundef %396)
          to label %398 unwind label %423

398:                                              ; preds = %393
  %399 = load i8, ptr %397, align 8, !tbaa !157
  %400 = zext i8 %399 to i32
  store i32 %400, ptr %40, align 4, !tbaa !156
  %401 = invoke noundef nonnull align 8 dereferenceable(161) ptr @_ZStlsIN7Logging13LoggerMessageEiEOT_S3_RKT0_(ptr noundef nonnull align 8 dereferenceable(161) %392, ptr noundef nonnull align 4 dereferenceable(4) %40)
          to label %402 unwind label %423

402:                                              ; preds = %398
  %403 = invoke noundef nonnull align 8 dereferenceable(161) ptr @_ZStlsIN7Logging13LoggerMessageEA11_cEOT_S4_RKT0_(ptr noundef nonnull align 8 dereferenceable(161) %401, ptr noundef nonnull align 1 dereferenceable(11) @.str.26)
          to label %404 unwind label %423

404:                                              ; preds = %402
  call void @llvm.lifetime.start.p0(i64 4, ptr nonnull %41) #9
  %405 = call noundef zeroext i8 @_ZNK7DynexCN20BasicUpgradeDetectorI13SwappedVectorINS_10Blockchain10BlockEntryEEE13targetVersionEv(ptr noundef nonnull align 8 dereferenceable(64) %257)
  %406 = zext i8 %405 to i32
  store i32 %406, ptr %41, align 4, !tbaa !156
  %407 = invoke noundef nonnull align 8 dereferenceable(161) ptr @_ZStlsIN7Logging13LoggerMessageEiEOT_S3_RKT0_(ptr noundef nonnull align 8 dereferenceable(161) %403, ptr noundef nonnull align 4 dereferenceable(4) %41)
          to label %408 unwind label %425

408:                                              ; preds = %404
  %409 = invoke noundef nonnull align 8 dereferenceable(161) ptr @_ZStlsIN7Logging13LoggerMessageEA33_cEOT_S4_RKT0_(ptr noundef nonnull align 8 dereferenceable(161) %407, ptr noundef nonnull align 1 dereferenceable(33) @.str.27)
          to label %410 unwind label %425

410:                                              ; preds = %408
  %411 = invoke noundef nonnull align 8 dereferenceable(161) ptr @_ZStlsIN7Logging13LoggerMessageEjEOT_S3_RKT0_(ptr noundef nonnull align 8 dereferenceable(161) %409, ptr noundef nonnull align 4 dereferenceable(4) %37)
          to label %412 unwind label %425

412:                                              ; preds = %410
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %41) #9
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %40) #9
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %39) #9
  call void @_ZN7Logging13LoggerMessageD1Ev(ptr noundef nonnull align 8 dereferenceable(161) %38) #9
  call void @llvm.lifetime.end.p0(i64 432, ptr nonnull %38) #9
  %413 = load i32, ptr %37, align 4, !tbaa !156
  invoke void @_ZN7DynexCN10Blockchain20rollbackBlockchainToEj(ptr noundef nonnull align 8 dereferenceable(2636) %0, i32 noundef %413)
          to label %414 unwind label %415

414:                                              ; preds = %412
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %37) #9
  br label %432

415:                                              ; preds = %412, %382
  %416 = landingpad { ptr, i32 }
          cleanup
  br label %431

417:                                              ; preds = %384
  %418 = landingpad { ptr, i32 }
          cleanup
  br label %430

419:                                              ; preds = %385
  %420 = landingpad { ptr, i32 }
          cleanup
  br label %429

421:                                              ; preds = %391, %387
  %422 = landingpad { ptr, i32 }
          cleanup
  br label %428

423:                                              ; preds = %402, %398, %393
  %424 = landingpad { ptr, i32 }
          cleanup
  br label %427

425:                                              ; preds = %410, %408, %404
  %426 = landingpad { ptr, i32 }
          cleanup
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %41) #9
  br label %427

427:                                              ; preds = %425, %423
  %.pn121 = phi { ptr, i32 } [ %426, %425 ], [ %424, %423 ]
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %40) #9
  br label %428

428:                                              ; preds = %427, %421
  %.pn121.pn = phi { ptr, i32 } [ %.pn121, %427 ], [ %422, %421 ]
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %39) #9
  br label %429

429:                                              ; preds = %428, %419
  %.pn121.pn.pn = phi { ptr, i32 } [ %.pn121.pn, %428 ], [ %420, %419 ]
  call void @_ZN7Logging13LoggerMessageD1Ev(ptr noundef nonnull align 8 dereferenceable(161) %38) #9
  br label %430

430:                                              ; preds = %429, %417
  %.pn121.pn.pn.pn = phi { ptr, i32 } [ %.pn121.pn.pn, %429 ], [ %418, %417 ]
  call void @llvm.lifetime.end.p0(i64 432, ptr nonnull %38) #9
  br label %431

431:                                              ; preds = %430, %415
  %.pn126 = phi { ptr, i32 } [ %416, %415 ], [ %.pn121.pn.pn.pn, %430 ]
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %37) #9
  br label %504

432:                                              ; preds = %310, %414, %361
  %433 = invoke noundef zeroext i1 @_ZN7DynexCN20BasicUpgradeDetectorI13SwappedVectorINS_10Blockchain10BlockEntryEEE4initEv(ptr noundef nonnull align 8 dereferenceable(64) %249)
          to label %434 unwind label %276

434:                                              ; preds = %432
  br i1 %433, label %435, label %441

435:                                              ; preds = %434
  %436 = invoke noundef zeroext i1 @_ZN7DynexCN20BasicUpgradeDetectorI13SwappedVectorINS_10Blockchain10BlockEntryEEE4initEv(ptr noundef nonnull align 8 dereferenceable(64) %253)
          to label %437 unwind label %276

437:                                              ; preds = %435
  br i1 %436, label %438, label %441

438:                                              ; preds = %437
  %439 = invoke noundef zeroext i1 @_ZN7DynexCN20BasicUpgradeDetectorI13SwappedVectorINS_10Blockchain10BlockEntryEEE4initEv(ptr noundef nonnull align 8 dereferenceable(64) %257)
          to label %440 unwind label %276

440:                                              ; preds = %438
  br i1 %439, label %.critedge144, label %441

441:                                              ; preds = %440, %437, %434
  call void @llvm.lifetime.start.p0(i64 432, ptr nonnull %42) #9
  invoke void @_ZNK7Logging9LoggerRefclENS_5LevelERKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEE(ptr dead_on_unwind nonnull writable sret(%"class.Logging::LoggerMessage") align 8 %42, ptr noundef nonnull align 8 dereferenceable(40) %71, i32 noundef 1, ptr noundef nonnull align 8 dereferenceable(32) @_ZN7Logging10BRIGHT_REDB5cxx11E)
          to label %442 unwind label %445

442:                                              ; preds = %441
  %443 = invoke noundef nonnull align 8 dereferenceable(161) ptr @_ZStlsIN7Logging13LoggerMessageEA38_cEOT_S4_RKT0_(ptr noundef nonnull align 8 dereferenceable(161) %42, ptr noundef nonnull align 1 dereferenceable(38) @.str.28)
          to label %444 unwind label %447

444:                                              ; preds = %442
  call void @_ZN7Logging13LoggerMessageD1Ev(ptr noundef nonnull align 8 dereferenceable(161) %42) #9
  call void @llvm.lifetime.end.p0(i64 432, ptr nonnull %42) #9
  br label %503

445:                                              ; preds = %441
  %446 = landingpad { ptr, i32 }
          cleanup
  br label %449

447:                                              ; preds = %442
  %448 = landingpad { ptr, i32 }
          cleanup
  call void @_ZN7Logging13LoggerMessageD1Ev(ptr noundef nonnull align 8 dereferenceable(161) %42) #9
  br label %449

449:                                              ; preds = %447, %445
  %.pn128 = phi { ptr, i32 } [ %448, %447 ], [ %446, %445 ]
  call void @llvm.lifetime.end.p0(i64 432, ptr nonnull %42) #9
  br label %504

.critedge144:                                     ; preds = %381, %440
  %450 = invoke noundef zeroext i1 @_ZN7DynexCN10Blockchain33update_next_cumulative_size_limitEv(ptr noundef nonnull align 8 dereferenceable(2636) %0)
          to label %451 unwind label %276

451:                                              ; preds = %.critedge144
  %452 = call i64 @time(ptr noundef null) #9
  %453 = invoke noundef nonnull align 8 dereferenceable(440) ptr @_ZN13SwappedVectorIN7DynexCN10Blockchain10BlockEntryEE4backEv(ptr noundef nonnull align 8 dereferenceable(1184) %75)
          to label %454 unwind label %465

454:                                              ; preds = %451
  %455 = getelementptr inbounds i8, ptr %453, i64 8
  %456 = load i64, ptr %455, align 8, !tbaa !160
  %457 = invoke noundef nonnull align 8 dereferenceable(440) ptr @_ZN13SwappedVectorIN7DynexCN10Blockchain10BlockEntryEE4backEv(ptr noundef nonnull align 8 dereferenceable(1184) %75)
          to label %458 unwind label %465

458:                                              ; preds = %454
  %459 = sub i64 %452, %456
  %460 = getelementptr inbounds i8, ptr %457, i64 8
  %461 = load i64, ptr %460, align 8, !tbaa !160
  %.not130 = icmp eq i64 %461, 0
  br i1 %.not130, label %462, label %467

462:                                              ; preds = %458
  %463 = call i64 @time(ptr noundef null) #9
  %464 = add i64 %463, -1663331870
  br label %467

465:                                              ; preds = %454, %451
  %466 = landingpad { ptr, i32 }
          cleanup
  br label %504

467:                                              ; preds = %462, %458
  %.0 = phi i64 [ %459, %458 ], [ %464, %462 ]
  call void @llvm.lifetime.start.p0(i64 432, ptr nonnull %43) #9
  invoke void @_ZNK7Logging9LoggerRefclENS_5LevelERKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEE(ptr dead_on_unwind nonnull writable sret(%"class.Logging::LoggerMessage") align 8 %43, ptr noundef nonnull align 8 dereferenceable(40) %71, i32 noundef 3, ptr noundef nonnull align 8 dereferenceable(32) @_ZN7Logging12BRIGHT_GREENB5cxx11E)
          to label %468 unwind label %486

468:                                              ; preds = %467
  %469 = invoke noundef nonnull align 8 dereferenceable(161) ptr @_ZStlsIN7Logging13LoggerMessageEA37_cEOT_S4_RKT0_(ptr noundef nonnull align 8 dereferenceable(161) %43, ptr noundef nonnull align 1 dereferenceable(37) @.str.29)
          to label %470 unwind label %488

470:                                              ; preds = %468
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %44) #9
  %471 = call noundef i64 @_ZNK13SwappedVectorIN7DynexCN10Blockchain10BlockEntryEE4sizeEv(ptr noundef nonnull align 8 dereferenceable(1184) %75)
  %472 = add i64 %471, -1
  store i64 %472, ptr %44, align 8, !tbaa !161
  %473 = invoke noundef nonnull align 8 dereferenceable(161) ptr @_ZStlsIN7Logging13LoggerMessageEmEOT_S3_RKT0_(ptr noundef nonnull align 8 dereferenceable(161) %469, ptr noundef nonnull align 8 dereferenceable(8) %44)
          to label %474 unwind label %490

474:                                              ; preds = %470
  %475 = invoke noundef nonnull align 8 dereferenceable(161) ptr @_ZStlsIN7Logging13LoggerMessageEA3_cEOT_S4_RKT0_(ptr noundef nonnull align 8 dereferenceable(161) %473, ptr noundef nonnull align 1 dereferenceable(3) @.str.30)
          to label %476 unwind label %490

476:                                              ; preds = %474
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %45) #9
  invoke void @_ZN6Common20timeIntervalToStringB5cxx11Em(ptr dead_on_unwind nonnull writable sret(%"class.std::__cxx11::basic_string") align 8 %45, i64 noundef %.0)
          to label %477 unwind label %492

477:                                              ; preds = %476
  %478 = invoke noundef nonnull align 8 dereferenceable(161) ptr @_ZStlsIN7Logging13LoggerMessageENSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEEOT_S9_RKT0_(ptr noundef nonnull align 8 dereferenceable(161) %475, ptr noundef nonnull align 8 dereferenceable(32) %45)
          to label %479 unwind label %494

479:                                              ; preds = %477
  %480 = invoke noundef nonnull align 8 dereferenceable(161) ptr @_ZStlsIN7Logging13LoggerMessageEA32_cEOT_S4_RKT0_(ptr noundef nonnull align 8 dereferenceable(161) %478, ptr noundef nonnull align 1 dereferenceable(32) @.str.31)
          to label %481 unwind label %494

481:                                              ; preds = %479
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %46) #9
  %482 = invoke noundef i64 @_ZN7DynexCN10Blockchain25getDifficultyForNextBlockEv(ptr noundef nonnull align 8 dereferenceable(2636) %0)
          to label %483 unwind label %496

483:                                              ; preds = %481
  store i64 %482, ptr %46, align 8, !tbaa !161
  %484 = invoke noundef nonnull align 8 dereferenceable(161) ptr @_ZStlsIN7Logging13LoggerMessageEmEOT_S3_RKT0_(ptr noundef nonnull align 8 dereferenceable(161) %480, ptr noundef nonnull align 8 dereferenceable(8) %46)
          to label %485 unwind label %496

485:                                              ; preds = %483
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %46) #9
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %45) #9
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %45) #9
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %44) #9
  call void @_ZN7Logging13LoggerMessageD1Ev(ptr noundef nonnull align 8 dereferenceable(161) %43) #9
  call void @llvm.lifetime.end.p0(i64 432, ptr nonnull %43) #9
  br label %503

486:                                              ; preds = %467
  %487 = landingpad { ptr, i32 }
          cleanup
  br label %502

488:                                              ; preds = %468
  %489 = landingpad { ptr, i32 }
          cleanup
  br label %501

490:                                              ; preds = %474, %470
  %491 = landingpad { ptr, i32 }
          cleanup
  br label %500

492:                                              ; preds = %476
  %493 = landingpad { ptr, i32 }
          cleanup
  br label %499

494:                                              ; preds = %479, %477
  %495 = landingpad { ptr, i32 }
          cleanup
  br label %498

496:                                              ; preds = %483, %481
  %497 = landingpad { ptr, i32 }
          cleanup
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %46) #9
  br label %498

498:                                              ; preds = %496, %494
  %.pn131 = phi { ptr, i32 } [ %497, %496 ], [ %495, %494 ]
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %45) #9
  br label %499

499:                                              ; preds = %498, %492
  %.pn131.pn = phi { ptr, i32 } [ %.pn131, %498 ], [ %493, %492 ]
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %45) #9
  br label %500

500:                                              ; preds = %499, %490
  %.pn131.pn.pn = phi { ptr, i32 } [ %.pn131.pn, %499 ], [ %491, %490 ]
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %44) #9
  br label %501

501:                                              ; preds = %500, %488
  %.pn131.pn.pn.pn = phi { ptr, i32 } [ %.pn131.pn.pn, %500 ], [ %489, %488 ]
  call void @_ZN7Logging13LoggerMessageD1Ev(ptr noundef nonnull align 8 dereferenceable(161) %43) #9
  br label %502

502:                                              ; preds = %501, %486
  %.pn131.pn.pn.pn.pn = phi { ptr, i32 } [ %.pn131.pn.pn.pn, %501 ], [ %487, %486 ]
  call void @llvm.lifetime.end.p0(i64 432, ptr nonnull %43) #9
  br label %504

503:                                              ; preds = %444, %485, %263
  %.372 = phi i1 [ false, %263 ], [ true, %485 ], [ false, %444 ]
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %24) #9
  br label %505

504:                                              ; preds = %276, %325, %378, %431, %449, %502, %465, %268, %247, %241
  %.pn131.pn.pn.pn.pn.pn.pn.pn = phi { ptr, i32 } [ %.pn105, %268 ], [ %242, %241 ], [ %.pn103, %247 ], [ %277, %276 ], [ %.pn128, %449 ], [ %.pn126, %431 ], [ %.pn119, %378 ], [ %.pn112, %325 ], [ %.pn131.pn.pn.pn.pn, %502 ], [ %466, %465 ]
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %24) #9
  br label %506

505:                                              ; preds = %222, %196, %84, %503, %59
  %.473 = phi i1 [ %.372, %503 ], [ false, %196 ], [ false, %222 ], [ false, %59 ], [ false, %84 ]
  call void @_ZNSt10lock_guardISt15recursive_mutexED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %4) #9
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %4) #9
  ret i1 %.473

506:                                              ; preds = %504, %230, %211, %201, %175, %97, %89, %66, %60
  %.pn131.pn.pn.pn.pn.pn.pn.pn.pn = phi { ptr, i32 } [ %.pn131.pn.pn.pn.pn.pn.pn.pn, %504 ], [ %.pn100.pn, %211 ], [ %.pn98, %201 ], [ %.pn95.pn, %230 ], [ %61, %60 ], [ %.pn92.pn, %175 ], [ %.pn77.pn, %97 ], [ %.pn75, %89 ], [ %.pn, %66 ]
  call void @_ZNSt10lock_guardISt15recursive_mutexED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %4) #9
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %4) #9
  resume { ptr, i32 } %.pn131.pn.pn.pn.pn.pn.pn.pn.pn
}

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

declare noundef zeroext i1 @_ZN5Tools31create_directories_if_necessaryERKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEE(ptr noundef nonnull align 8 dereferenceable(32)) local_unnamed_addr #5

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

; 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 #4

; Function Attrs: mustprogress uwtable
declare noundef nonnull align 8 dereferenceable(32) ptr @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEaSERKS4_(ptr noundef nonnull align 8 dereferenceable(32), ptr noundef nonnull align 8 dereferenceable(32)) local_unnamed_addr #7 align 2

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

; Function Attrs: mustprogress uwtable
declare dso_local noundef zeroext i1 @_ZN13SwappedVectorIN7DynexCN10Blockchain10BlockEntryEE4openERKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEESB_m(ptr noundef nonnull align 8 dereferenceable(1184), ptr noundef nonnull align 8 dereferenceable(32), ptr noundef nonnull align 8 dereferenceable(32), i64 noundef) local_unnamed_addr #7 align 2

; Function Attrs: mustprogress uwtable
declare hidden void @_ZN12_GLOBAL__N_110appendPathERKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEES7_(ptr dead_on_unwind noalias writable sret(%"class.std::__cxx11::basic_string") align 8, ptr noundef nonnull align 8 dereferenceable(32), ptr noundef nonnull align 8 dereferenceable(32)) local_unnamed_addr #7

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

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

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

declare void @_ZN7DynexCN14get_block_hashERKNS_5BlockE(ptr dead_on_unwind writable sret(%"struct.Crypto::Hash") align 1, ptr noundef nonnull align 8 dereferenceable(384)) local_unnamed_addr #5

; Function Attrs: mustprogress uwtable
declare dso_local noundef nonnull align 8 dereferenceable(440) ptr @_ZN13SwappedVectorIN7DynexCN10Blockchain10BlockEntryEE4backEv(ptr noundef nonnull align 8 dereferenceable(1184)) local_unnamed_addr #7 align 2

declare noundef nonnull align 8 dereferenceable(8) ptr @_ZNK7Logging9LoggerRef9getLoggerEv(ptr noundef nonnull align 8 dereferenceable(40)) local_unnamed_addr #5

; Function Attrs: mustprogress uwtable
declare dso_local void @_ZN7DynexCN20BlockCacheSerializerC2ERNS_10BlockchainEN6Crypto4HashERN7Logging7ILoggerE(ptr noundef nonnull align 8 dereferenceable(88), ptr noundef nonnull align 8 dereferenceable(2636), ptr noundef byval(%"struct.Crypto::Hash") align 8, ptr noundef nonnull align 8 dereferenceable(8)) unnamed_addr #7 align 2

; Function Attrs: mustprogress uwtable
declare dso_local void @_ZN7DynexCN20BlockCacheSerializer4loadERKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEE(ptr noundef nonnull align 8 dereferenceable(88), ptr noundef nonnull align 8 dereferenceable(32)) local_unnamed_addr #7 align 2

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

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

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

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

; Function Attrs: mustprogress uwtable
declare dso_local void @_ZN7DynexCN27BlockchainIndicesSerializerC2ERNS_10BlockchainEN6Crypto4HashERN7Logging7ILoggerE(ptr noundef nonnull align 8 dereferenceable(88), ptr noundef nonnull align 8 dereferenceable(2636), ptr noundef byval(%"struct.Crypto::Hash") align 8, ptr noundef nonnull align 8 dereferenceable(8)) unnamed_addr #7 align 2

; Function Attrs: mustprogress uwtable
declare dso_local noundef zeroext i1 @_ZN7DynexCN18loadFromBinaryFileINS_27BlockchainIndicesSerializerEEEbRT_RKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEE(ptr noundef nonnull align 8 dereferenceable(88), ptr noundef nonnull align 8 dereferenceable(32)) local_unnamed_addr #7

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

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

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

; Function Attrs: inlinehint mustprogress nounwind uwtable
declare dso_local void @_ZN7DynexCN27BlockchainIndicesSerializerD2Ev(ptr noundef nonnull align 8 dereferenceable(88)) unnamed_addr #3 align 2

; Function Attrs: mustprogress uwtable
declare dso_local void @_ZN7DynexCN10Blockchain12rebuildCacheEv(ptr noundef nonnull align 8 dereferenceable(2636)) local_unnamed_addr #7 align 2

; Function Attrs: inlinehint mustprogress nounwind uwtable
declare dso_local void @_ZN7DynexCN20BlockCacheSerializerD2Ev(ptr noundef nonnull align 8 dereferenceable(88)) unnamed_addr #3 align 2

; Function Attrs: mustprogress uwtable
declare dso_local void @_ZN13SwappedVectorIN7DynexCN10Blockchain10BlockEntryEE5clearEv(ptr noundef nonnull align 8 dereferenceable(1184)) local_unnamed_addr #7 align 2

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

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

; Function Attrs: mustprogress uwtable
declare dso_local noundef nonnull align 1 dereferenceable(5) ptr @_ZN5boost17value_initializedIN7DynexCN26block_verification_contextEEcvRS2_Ev(ptr noundef nonnull align 1 dereferenceable(5)) local_unnamed_addr #7 align 2

; Function Attrs: mustprogress uwtable
declare dso_local noundef zeroext i1 @_ZN7DynexCN10Blockchain9pushBlockERKNS_5BlockERNS_26block_verification_contextE(ptr noundef nonnull align 8 dereferenceable(2636), ptr noundef nonnull align 8 dereferenceable(384), ptr noundef nonnull align 1 dereferenceable(5)) local_unnamed_addr #7 align 2

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

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

; 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 #7 align 2

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

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

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

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

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

; Function Attrs: mustprogress uwtable
declare dso_local void @_ZN7DynexCN10Blockchain20rollbackBlockchainToEj(ptr noundef nonnull align 8 dereferenceable(2636), i32 noundef) local_unnamed_addr #7 align 2

; Function Attrs: mustprogress uwtable
declare dso_local noundef zeroext i1 @_ZN7DynexCN20BasicUpgradeDetectorI13SwappedVectorINS_10Blockchain10BlockEntryEEE4initEv(ptr noundef nonnull align 8 dereferenceable(64)) local_unnamed_addr #7 align 2

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

; Function Attrs: mustprogress uwtable
declare dso_local noundef zeroext i1 @_ZN7DynexCN10Blockchain18checkUpgradeHeightERKNS_20BasicUpgradeDetectorI13SwappedVectorINS0_10BlockEntryEEEE(ptr noundef nonnull align 8 dereferenceable(2636), ptr noundef nonnull align 8 dereferenceable(64)) local_unnamed_addr #7 align 2

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

; Function Attrs: noreturn nounwind
declare void @__assert_fail(ptr noundef, ptr noundef, i32 noundef, ptr noundef) local_unnamed_addr #8

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

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

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

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

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

; Function Attrs: mustprogress nounwind uwtable
declare dso_local noundef zeroext i8 @_ZNK7DynexCN20BasicUpgradeDetectorI13SwappedVectorINS_10Blockchain10BlockEntryEEE13targetVersionEv(ptr noundef nonnull align 8 dereferenceable(64)) local_unnamed_addr #2 align 2

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

; Function Attrs: mustprogress uwtable
declare dso_local noundef zeroext i1 @_ZN7DynexCN10Blockchain33update_next_cumulative_size_limitEv(ptr noundef nonnull align 8 dereferenceable(2636)) local_unnamed_addr #7 align 2

; Function Attrs: nounwind
declare i64 @time(ptr noundef) local_unnamed_addr #6

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

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

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

declare void @_ZN6Common20timeIntervalToStringB5cxx11Em(ptr dead_on_unwind writable sret(%"class.std::__cxx11::basic_string") align 8, i64 noundef) local_unnamed_addr #5

; Function Attrs: mustprogress uwtable
declare dso_local noundef i64 @_ZN7DynexCN10Blockchain25getDifficultyForNextBlockEv(ptr noundef nonnull align 8 dereferenceable(2636)) local_unnamed_addr #7 align 2

attributes #0 = { mustprogress nocallback nofree nosync nounwind willreturn memory(argmem: readwrite) }
attributes #1 = { mustprogress nocallback nofree nounwind willreturn memory(argmem: readwrite) }
attributes #2 = { 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 #3 = { 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 #4 = { 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 #5 = { "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="x86-64" "target-features"="+cmov,+cx8,+fxsr,+mmx,+sse,+sse2,+x87" "tune-cpu"="generic" }
attributes #6 = { 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 #7 = { 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 #8 = { noreturn nounwind "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="x86-64" "target-features"="+cmov,+cx8,+fxsr,+mmx,+sse,+sse2,+x87" "tune-cpu"="generic" }
attributes #9 = { nounwind }
attributes #10 = { noreturn nounwind }

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

!0 = !{i32 1, !"wchar_size", i32 4}
!1 = !{i32 8, !"PIC Level", i32 2}
!2 = !{i32 7, !"PIE Level", i32 2}
!3 = !{i32 7, !"uwtable", i32 2}
!4 = !{!"clang version 19.1.0 (git@github.com:llvm/llvm-project.git a4bf6cd7cfb1a1421ba92bca9d017b49936c55e4)"}
!5 = !{!6, !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 = !{!6, !49, i64 2568}
!150 = !{i8 0, i8 2}
!151 = !{}
!152 = !{i64 0, i64 1, !153, i64 1, i64 1, !153, i64 2, i64 1, !153, i64 3, i64 1, !153, i64 4, i64 1, !153}
!153 = !{!49, !49, i64 0}
!154 = !{!155, !49, i64 1}
!155 = !{!"_ZTSN7DynexCN26block_verification_contextE", !49, i64 0, !49, i64 1, !49, i64 2, !49, i64 3, !49, i64 4}
!156 = !{!50, !50, i64 0}
!157 = !{!158, !9, i64 0}
!158 = !{!"_ZTSN7DynexCN11BlockHeaderE", !9, i64 0, !9, i64 1, !50, i64 4, !14, i64 8, !159, i64 16}
!159 = !{!"_ZTSN6Crypto4HashE", !9, i64 0}
!160 = !{!158, !14, i64 8}
!161 = !{!14, !14, i64 0}


; Effective O3 passes: CorrelatedValuePropagationPass,EarlyCSEPass,GlobalOptPass,IPSCCPPass,InferFunctionAttrsPass,InstCombinePass,JumpThreadingPass,SROAPass,SimplifyCFGPass